hgeometry 0.5.0.0 → 0.6.0.0
raw patch · 98 files changed
+96617/−809 lines, 98 filesdep +QuickCheckdep +contravariantdep +criteriondep ~Framesdep ~basedep ~bifunctorsPVP ok
version bump matches the API change (PVP)
Dependencies added: QuickCheck, contravariant, criterion, deepseq, deepseq-generics
Dependency ranges changed: Frames, base, bifunctors, lens, optparse-applicative, semigroupoids, semigroups, singletons, vector
API changes (from Hackage documentation)
- Algorithms.Geometry.ConvexHull.Types: ConvexHull :: (SimplePolygon p r) -> ConvexHull p r
- Algorithms.Geometry.ConvexHull.Types: [_extractHull] :: ConvexHull p r -> (SimplePolygon p r)
- Algorithms.Geometry.ConvexHull.Types: extractHull :: Iso (ConvexHull p_a3DHy r_a3DHz) (ConvexHull p_a3DKt r_a3DKu) (SimplePolygon p_a3DHy r_a3DHz) (SimplePolygon p_a3DKt r_a3DKu)
- Algorithms.Geometry.ConvexHull.Types: instance (GHC.Classes.Eq p, GHC.Classes.Eq r) => GHC.Classes.Eq (Algorithms.Geometry.ConvexHull.Types.ConvexHull p r)
- Algorithms.Geometry.ConvexHull.Types: instance (GHC.Show.Show p, GHC.Show.Show r) => GHC.Show.Show (Algorithms.Geometry.ConvexHull.Types.ConvexHull p r)
- Algorithms.Geometry.ConvexHull.Types: newtype ConvexHull p r
- Algorithms.Util: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Algorithms.Util.SP a b)
- Algorithms.Util: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c) => GHC.Classes.Eq (Algorithms.Util.ST a b c)
- Algorithms.Util: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Algorithms.Util.SP a b)
- Algorithms.Util: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c) => GHC.Classes.Ord (Algorithms.Util.ST a b c)
- Algorithms.Util: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Algorithms.Util.SP a b)
- Algorithms.Util: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c) => GHC.Show.Show (Algorithms.Util.ST a b c)
- Data.Ext: instance (GHC.Classes.Eq core, GHC.Classes.Eq extra) => GHC.Classes.Eq (core Data.Ext.:+ extra)
- Data.Ext: instance (GHC.Classes.Ord core, GHC.Classes.Ord extra) => GHC.Classes.Ord (core Data.Ext.:+ extra)
- Data.Ext: instance (GHC.Enum.Bounded core, GHC.Enum.Bounded extra) => GHC.Enum.Bounded (core Data.Ext.:+ extra)
- Data.Ext: instance (GHC.Read.Read core, GHC.Read.Read extra) => GHC.Read.Read (core Data.Ext.:+ extra)
- Data.Ext: instance (GHC.Show.Show core, GHC.Show.Show extra) => GHC.Show.Show (core Data.Ext.:+ extra)
- Data.Geometry.Box.Internal: fromCornerPoints :: Point d r :+ p -> Point d r :+ p -> Box d p r
- Data.Geometry.Box.Internal: instance (GHC.Num.Num r, GHC.Classes.Ord r) => Data.Geometry.Properties.IsIntersectableWith (Data.Geometry.Box.Internal.Rectangle p r) (Data.Geometry.Box.Internal.Rectangle p r)
- Data.Geometry.Box.Internal: type IsAlwaysTrueBoundingBox g p = (Semigroup p, Arity (Dimension g))
- Data.Geometry.Interval: instance (GHC.Classes.Eq a, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.Interval.Interval a r)
- Data.Geometry.Interval: unInterval :: Iso (Interval a_a2NnJ r_a2NnK) (Interval a_a2NpK r_a2NpL) (Range ((:+) r_a2NnK a_a2NnJ)) (Range ((:+) r_a2NpL a_a2NpK))
- Data.Geometry.Ipe.Attributes: GDict :: Proxy a -> GDict c a
- Data.Geometry.Ipe.Attributes: instance Data.Singletons.SingKind 'Data.Proxy.KProxy
- Data.Geometry.Ipe.Attributes: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (ats :: [k]). Data.Semigroup.Semigroup (Data.Geometry.Ipe.Attributes.Attributes f ats)
- Data.Geometry.Ipe.Attributes: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (ats :: [k]). Data.Vinyl.Core.RecApplicative ats => GHC.Base.Monoid (Data.Geometry.Ipe.Attributes.Attributes f ats)
- Data.Geometry.Ipe.Attributes: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (ats :: [k]). Data.Vinyl.TypeLevel.RecAll (Data.Geometry.Ipe.Attributes.Attr f) ats GHC.Classes.Eq => GHC.Classes.Eq (Data.Geometry.Ipe.Attributes.Attributes f ats)
- Data.Geometry.Ipe.Attributes: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (ats :: [k]). Data.Vinyl.TypeLevel.RecAll (Data.Geometry.Ipe.Attributes.Attr f) ats GHC.Show.Show => GHC.Show.Show (Data.Geometry.Ipe.Attributes.Attributes f ats)
- Data.Geometry.Ipe.Attributes: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (l :: k). GHC.Base.Monoid (Data.Geometry.Ipe.Attributes.Attr f l)
- Data.Geometry.Ipe.Attributes: instance forall (u :: BOX) (f :: Data.Singletons.TyFun u * -> *) (label :: u). GHC.Classes.Eq (Data.Singletons.Apply f label) => GHC.Classes.Eq (Data.Geometry.Ipe.Attributes.Attr f label)
- Data.Geometry.Ipe.Attributes: instance forall (u :: BOX) (f :: Data.Singletons.TyFun u * -> *) (label :: u). GHC.Classes.Ord (Data.Singletons.Apply f label) => GHC.Classes.Ord (Data.Geometry.Ipe.Attributes.Attr f label)
- Data.Geometry.Ipe.Attributes: instance forall (u :: BOX) (f :: Data.Singletons.TyFun u * -> *) (label :: u). GHC.Read.Read (Data.Singletons.Apply f label) => GHC.Read.Read (Data.Geometry.Ipe.Attributes.Attr f label)
- Data.Geometry.Ipe.Attributes: instance forall (u :: BOX) (f :: Data.Singletons.TyFun u * -> *) (label :: u). GHC.Show.Show (Data.Singletons.Apply f label) => GHC.Show.Show (Data.Geometry.Ipe.Attributes.Attr f label)
- Data.Geometry.Ipe.PathParser: instance (GHC.Classes.Eq l, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.Ipe.PathParser.Either' l r)
- Data.Geometry.Ipe.PathParser: instance (GHC.Show.Show l, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.Ipe.PathParser.Either' l r)
- Data.Geometry.Ipe.Reader: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (at :: k). Data.Geometry.Ipe.Reader.IpeReadText (Data.Singletons.Apply f at) => Data.Geometry.Ipe.Reader.IpeReadAttr (Data.Geometry.Ipe.Attributes.Attr f at)
- Data.Geometry.Ipe.Writer: instance forall (k :: BOX) (f :: Data.Singletons.TyFun k * -> *) (at :: k). Data.Geometry.Ipe.Writer.IpeWriteText (Data.Singletons.Apply f at) => Data.Geometry.Ipe.Writer.IpeWriteText (Data.Geometry.Ipe.Attributes.Attr f at)
- Data.Geometry.Polygon: MultiPolygon :: CSeq (Point 2 r :+ p) -> [Polygon Simple p r] -> Polygon Multi p r
- Data.Geometry.Polygon: SP :: !a -> !b -> SP a b
- Data.Geometry.Polygon: SimplePolygon :: CSeq (Point 2 r :+ p) -> Polygon Simple p r
- Data.Geometry.Polygon: data SP a b
- Data.Geometry.Polygon: vertices :: Polygon t p r -> [Point 2 r :+ p]
- Data.Geometry.Polygon.Convex: type ConvexPolygon = SimplePolygon
- Data.Geometry.Slab: instance (GHC.Show.Show a, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.Slab.Slab o a r)
- Data.Geometry.Triangle: instance (GHC.Classes.Eq p, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.Triangle.Triangle p r)
- Data.Geometry.Triangle: instance (GHC.Show.Show p, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.Triangle.Triangle p r)
- Data.Geometry.Vector.VectorFixed: instance (Data.Vector.Fixed.Cont.Arity i, Data.Vector.Fixed.Cont.Arity d, Data.Vector.Fixed.Cont.Index i d, Data.Geometry.Vector.VectorFixed.Prefix i d) => Data.Geometry.Vector.VectorFixed.Prefix (Data.Vector.Fixed.Cont.S i) (Data.Vector.Fixed.Cont.S d)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World) v e f. (GHC.Classes.Eq v, GHC.Classes.Eq e, GHC.Classes.Eq f) => GHC.Classes.Eq (Data.PlanarGraph.PlanarGraph s w v e f)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World) v e f. (GHC.Show.Show v, GHC.Show.Show e, GHC.Show.Show f) => GHC.Show.Show (Data.PlanarGraph.PlanarGraph s w v e f)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Eq (Data.PlanarGraph.FaceId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Eq (Data.PlanarGraph.VertexId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Ord (Data.PlanarGraph.FaceId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Ord (Data.PlanarGraph.VertexId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Enum.Enum (Data.PlanarGraph.VertexId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Show.Show (Data.PlanarGraph.FaceId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k) (w :: Data.PlanarGraph.World). GHC.Show.Show (Data.PlanarGraph.VertexId s w)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Classes.Eq (Data.PlanarGraph.Arc s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Classes.Eq (Data.PlanarGraph.Dart s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Classes.Ord (Data.PlanarGraph.Arc s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Classes.Ord (Data.PlanarGraph.Dart s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Enum.Bounded (Data.PlanarGraph.Arc s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Enum.Enum (Data.PlanarGraph.Arc s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Enum.Enum (Data.PlanarGraph.Dart s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Show.Show (Data.PlanarGraph.Arc s)
- Data.PlanarGraph: instance forall (k :: BOX) (s :: k). GHC.Show.Show (Data.PlanarGraph.Dart s)
- Data.Range: instance GHC.Read.Read a => GHC.Read.Read (Data.Range.Range a)
- Data.Seq2: instance GHC.Read.Read a => GHC.Read.Read (Data.Seq2.Seq2 a)
- Data.Seq2: instance GHC.Read.Read a => GHC.Read.Read (Data.Seq2.ViewL1 a)
- Data.Seq2: instance GHC.Read.Read a => GHC.Read.Read (Data.Seq2.ViewL2 a)
- Data.Seq2: instance GHC.Read.Read a => GHC.Read.Read (Data.Seq2.ViewR2 a)
+ Algorithms.Geometry.DelaunayTriangulation.Types: toPlanarSubdivision :: proxy s -> Triangulation p r -> PlanarSubdivision s p () () r
+ Algorithms.Geometry.Diameter: diameterNaive :: (Ord r, Floating r, Arity d) => [Point d r :+ p] -> r
+ Algorithms.Geometry.Diameter: diametralPairNaive :: (Ord r, Num r, Arity d) => [Point d r :+ p] -> Maybe (Point d r :+ p, Point d r :+ p)
+ Algorithms.Geometry.Diameter: diametralPairWithNaive :: Ord r => (Point d r -> Point d r -> r) -> [Point d r :+ p] -> Maybe (Point d r :+ p, Point d r :+ p)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: End :: !s -> EventType s
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: Event :: !(Point 2 r) -> !(EventType (LineSegment 2 p r)) -> Event p r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: Intersection :: EventType s
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: Start :: !(NonEmpty s) -> EventType s
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: [eventPoint] :: Event p r -> !(Point 2 r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: [eventType] :: Event p r -> !(EventType (LineSegment 2 p r))
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: data Event p r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: data EventType s
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: endsAt :: Ord r => Point 2 r -> LineSegment 2 p r -> Bool
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: extractContains :: (Fractional r, Ord r) => Point 2 r -> StatusStructure p r -> (StatusStructure p r, [LineSegment 2 p r], StatusStructure p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: findNewEvent :: (Ord r, Fractional r) => Point 2 r -> LineSegment 2 p r -> LineSegment 2 p r -> Maybe (Event p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: groupStarts :: Eq r => [Event p r] -> [Event p r]
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: handle :: (Ord r, Fractional r) => Event p r -> EventQueue p r -> StatusStructure p r -> [IntersectionPoint p r]
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance (GHC.Show.Show p, GHC.Show.Show r) => GHC.Show.Show (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.Event p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance GHC.Classes.Eq (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.EventType s)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance GHC.Classes.Eq r => GHC.Classes.Eq (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.Event p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance GHC.Classes.Ord (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.EventType s)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance GHC.Classes.Ord r => GHC.Classes.Ord (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.Event p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: instance GHC.Show.Show s => GHC.Show.Show (Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann.EventType s)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: intersections :: (Ord r, Fractional r) => [LineSegment 2 p r] -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: merge :: Ord r => [IntersectionPoint p r] -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: ordAtNav :: (Ord r, Fractional r) => r -> TreeNavigator r (LineSegment 2 p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: ordPoints :: Ord r => Point 2 r -> Point 2 r -> Ordering
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: rightEndpoint :: Ord r => LineSegment 2 p r -> r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: startSegs :: Event p r -> [LineSegment 2 p r]
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: sweep :: (Ord r, Fractional r) => EventQueue p r -> StatusStructure p r -> [IntersectionPoint p r]
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: toStatusStruct :: (Fractional r, Ord r) => Point 2 r -> [LineSegment 2 p r] -> StatusStructure p r
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: type EventQueue p r = Set (Event p r)
+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann: type StatusStructure p r = BalBST r (LineSegment 2 p r)
+ Algorithms.Geometry.LineSegmentIntersection.Naive: addTo :: Ord r => Point 2 r -> LineSegment 2 p r -> Intersections p r -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.Naive: collect :: (Ord r, Fractional r) => (LineSegment 2 p r, LineSegment 2 p r) -> Intersections p r -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.Naive: handlePoint :: Ord r => LineSegment 2 p r -> LineSegment 2 p r -> Point 2 r -> Intersections p r -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.Naive: intersections :: forall r p. (Ord r, Fractional r) => [LineSegment 2 p r] -> Intersections p r
+ Algorithms.Geometry.LineSegmentIntersection.Naive: isEndPointOf :: Eq r => Point 2 r -> LineSegment 2 p r -> Bool
+ Algorithms.Geometry.LineSegmentIntersection.Naive: pairs :: [a] -> [(a, a)]
+ Algorithms.Geometry.LineSegmentIntersection.Types: Associated :: Set' (LineSegment 2 p r) -> Set' (LineSegment 2 p r) -> Associated p r
+ Algorithms.Geometry.LineSegmentIntersection.Types: IntersectionPoint :: !(Point 2 r) -> !(Associated p r) -> IntersectionPoint p r
+ Algorithms.Geometry.LineSegmentIntersection.Types: [_associatedSegs] :: IntersectionPoint p r -> !(Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: [_endPointOf] :: Associated p r -> Set' (LineSegment 2 p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: [_interiorTo] :: Associated p r -> Set' (LineSegment 2 p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: [_intersectionPoint] :: IntersectionPoint p r -> !(Point 2 r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: associated :: Ord r => [LineSegment 2 p r] -> [LineSegment 2 p r] -> Associated p r
+ Algorithms.Geometry.LineSegmentIntersection.Types: associatedSegs :: forall p_a3wne r_a3wnf p_a3wzu. Lens (IntersectionPoint p_a3wne r_a3wnf) (IntersectionPoint p_a3wzu r_a3wnf) (Associated p_a3wne r_a3wnf) (Associated p_a3wzu r_a3wnf)
+ Algorithms.Geometry.LineSegmentIntersection.Types: data Associated p r
+ Algorithms.Geometry.LineSegmentIntersection.Types: data IntersectionPoint p r
+ Algorithms.Geometry.LineSegmentIntersection.Types: endPointOf :: Associated p r -> [LineSegment 2 p r]
+ Algorithms.Geometry.LineSegmentIntersection.Types: endPoints' :: (HasEnd s, HasStart s) => s -> (StartCore s, EndCore s)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance (GHC.Classes.Eq p, GHC.Classes.Eq r) => GHC.Classes.Eq (Algorithms.Geometry.LineSegmentIntersection.Types.Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance (GHC.Classes.Eq p, GHC.Classes.Eq r) => GHC.Classes.Eq (Algorithms.Geometry.LineSegmentIntersection.Types.IntersectionPoint p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance (GHC.Show.Show p, GHC.Show.Show r) => GHC.Show.Show (Algorithms.Geometry.LineSegmentIntersection.Types.Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance (GHC.Show.Show p, GHC.Show.Show r) => GHC.Show.Show (Algorithms.Geometry.LineSegmentIntersection.Types.IntersectionPoint p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance GHC.Classes.Ord r => Data.Semigroup.Semigroup (Algorithms.Geometry.LineSegmentIntersection.Types.Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: instance GHC.Classes.Ord r => GHC.Base.Monoid (Algorithms.Geometry.LineSegmentIntersection.Types.Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: interiorTo :: Associated p r -> [LineSegment 2 p r]
+ Algorithms.Geometry.LineSegmentIntersection.Types: intersectionPoint :: forall p_a3wne r_a3wnf. Lens' (IntersectionPoint p_a3wne r_a3wnf) (Point 2 r_a3wnf)
+ Algorithms.Geometry.LineSegmentIntersection.Types: type Intersections p r = Map (Point 2 r) (Associated p r)
+ Algorithms.Geometry.LineSegmentIntersection.Types: type Set' l = Map (Point (Dimension l) (NumType l), Point (Dimension l) (NumType l)) (NonEmpty l)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: FAC :: !(Seq (Point d r :+ p)) -> !(Seq (Point d r :+ p)) -> !ShortSide -> FindAndCompact d r p
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: L :: ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: Level :: Int -> Maybe Int -> Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: NodeData :: !Int -> !(Box d () r) -> !a -> NodeData d r a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: R :: ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_bBox] :: NodeData d r a -> !(Box d () r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_leftPart] :: FindAndCompact d r p -> !(Seq (Point d r :+ p))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_nodeData] :: NodeData d r a -> !a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_rightPart] :: FindAndCompact d r p -> !(Seq (Point d r :+ p))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_shortSide] :: FindAndCompact d r p -> !ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_splitDim] :: NodeData d r a -> !Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_unLevel] :: Level -> Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: [_widestDim] :: Level -> Maybe Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: bBox :: forall d_a3lc7 r_a3lc8 a_a3lc9 d_a3lfc r_a3lfd. Lens (NodeData d_a3lc7 r_a3lc8 a_a3lc9) (NodeData d_a3lfc r_a3lfd a_a3lc9) (Box d_a3lc7 () r_a3lc8) (Box d_a3lfc () r_a3lfd)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: data FindAndCompact d r p
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: data Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: data NodeData d r a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: data ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Classes.Eq r, GHC.Classes.Eq a) => GHC.Classes.Eq (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r a)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Classes.Eq r, GHC.Classes.Eq p) => GHC.Classes.Eq (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.FindAndCompact d r p)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Show.Show r, GHC.Show.Show a) => GHC.Show.Show (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r a)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Show.Show r, GHC.Show.Show p) => GHC.Show.Show (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.FindAndCompact d r p)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance Data.Foldable.Foldable (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance Data.Semigroup.Semigroup v => Data.BinaryTree.Measured v (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r v)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance Data.Traversable.Traversable (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Base.Functor (Algorithms.Geometry.WellSeparatedPairDecomposition.Types.NodeData d r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Classes.Eq Algorithms.Geometry.WellSeparatedPairDecomposition.Types.Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Classes.Eq Algorithms.Geometry.WellSeparatedPairDecomposition.Types.ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Classes.Ord Algorithms.Geometry.WellSeparatedPairDecomposition.Types.Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Show.Show Algorithms.Geometry.WellSeparatedPairDecomposition.Types.Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: instance GHC.Show.Show Algorithms.Geometry.WellSeparatedPairDecomposition.Types.ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: leftPart :: forall d_a3lqS r_a3lqT p_a3lqU. Lens' (FindAndCompact d_a3lqS r_a3lqT p_a3lqU) (Seq ((:+) (Point d_a3lqS r_a3lqT) p_a3lqU))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: nextLevel :: Level -> Level
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: nodeData :: forall d_a3lc7 r_a3lc8 a_a3lc9 a_a3lfe. Lens (NodeData d_a3lc7 r_a3lc8 a_a3lc9) (NodeData d_a3lc7 r_a3lc8 a_a3lfe) a_a3lc9 a_a3lfe
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: rightPart :: forall d_a3lqS r_a3lqT p_a3lqU. Lens' (FindAndCompact d_a3lqS r_a3lqT p_a3lqU) (Seq ((:+) (Point d_a3lqS r_a3lqT) p_a3lqU))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: shortSide :: forall d_a3lqS r_a3lqT p_a3lqU. Lens' (FindAndCompact d_a3lqS r_a3lqT p_a3lqU) ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: splitDim :: forall d_a3lc7 r_a3lc8 a_a3lc9. Lens' (NodeData d_a3lc7 r_a3lc8 a_a3lc9) Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: type Idx = Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: type PointSeq d p r = ViewL1 (Point d r :+ p)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: type PointSet d p r a = SplitTree d p r a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: type SplitTree d p r a = BinLeafTree (NodeData d r a) (Point d r :+ p)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: type WSP d p r a = (PointSet d p r a, PointSet d p r a)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: unLevel :: Lens' Level Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: widestDim :: Lens' Level (Maybe Int)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: areWellSeparated :: (AlwaysTrueWSPD d, Fractional r, Ord r) => r -> SplitTree d p r a -> SplitTree d p r a -> Bool
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: areWellSeparated' :: (Floating r, Ord r, Arity d) => r -> SplitTree d p r a -> SplitTree d p r a -> Bool
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: assignLevel :: (c :+ (Idx :+ p)) -> Level -> RST s ()
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: assignLevels :: (Fractional r, Ord r, Arity d, KnownNat d, Show r, Show p) => Int -> Int -> Vector d (PointSeq d (Idx :+ p) r) -> Level -> [Level] -> RST s (NonEmpty Level)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: bbOf :: Ord r => SplitTree d p r a -> Box d () r
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: boxBox :: (Fractional r, Ord r, AlwaysTruePFT d, AlwaysTrueTransformation d) => r -> Box d p r -> Box d p r -> Bool
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: boxBox1 :: (Floating r, Ord r, Arity d) => r -> Box d p r -> Box d p r -> Bool
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: children' :: BinLeafTree v a -> [BinLeafTree v a]
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: compactEnds :: Arity d => Vector d (PointSeq d (Idx :+ p) r) -> RST s (Vector d (PointSeq d (Idx :+ p) r))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: compactEnds' :: PointSeq d (Idx :+ p) r -> RST s (PointSeq d (Idx :+ p) r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: distributePoints :: (Arity d, Show r, Show p) => Int -> Vector (Maybe Level) -> Vector d (PointSeq d (Idx :+ p) r) -> Vector (Vector d (PointSeq d (Idx :+ p) r))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: distributePoints' :: Int -> Vector (Maybe Level) -> PointSeq d (Idx :+ p) r -> Vector (PointSeq d (Idx :+ p) r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: dropIdx :: core :+ (t :+ extra) -> core :+ extra
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: extends :: Arity d => Vector d (PointSeq d p r) -> Vector d (Range r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: fairSplitTree :: (Fractional r, Ord r, Arity d, Index' 0 d, KnownNat d, Show r, Show p) => NonEmpty (Point d r :+ p) -> SplitTree d p r ()
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: fairSplitTree' :: (Fractional r, Ord r, Arity d, Index' 0 d, KnownNat d, Show r, Show p) => Int -> Vector d (PointSeq d (Idx :+ p) r) -> BinLeafTree Int (Point d r :+ p)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: findAndCompact :: (Ord r, Arity d, Show r, Show p) => Int -> PointSeq d (Idx :+ p) r -> r -> RST s (PointSeq d (Idx :+ p) r, PointSeq d (Idx :+ p) r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: findPairs :: (Floating r, Ord r, AlwaysTrueWSPD d) => r -> SplitTree d p r a -> SplitTree d p r a -> [WSP d p r a]
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: fromSeqUnsafe :: Seq a -> ViewL1 a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: hasLevel :: c :+ (Idx :+ p) -> RST s Bool
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: ix' :: (Arity d, KnownNat d) => Int -> Lens' (Vector d a) a
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: levelOf :: (c :+ (Idx :+ p)) -> RST s (Maybe Level)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: maxWidth :: (Arity d, KnownNat d, Num r) => SplitTree d p r a -> r
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: reIndexPoints :: (Arity d, Index' 0 d) => Vector d (PointSeq d (Idx :+ p) r) -> Vector d (PointSeq d (Idx :+ p) r)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: transpose :: Arity d => Vector d (Vector a) -> Vector (Vector d a)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: type AlwaysTrueWSPD d = (Arity d, KnownNat d, AlwaysTruePFT d, AlwaysTrueTransformation d)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: type RST s = ReaderT (MVector s (Maybe Level)) (ST s)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: wellSeparatedPairs :: (Floating r, Ord r, AlwaysTrueWSPD d) => r -> SplitTree d p r a -> [WSP d p r a]
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: widestDimension :: (Num r, Ord r, Arity d) => Vector d (PointSeq d p r) -> Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD: widths :: (Num r, Arity d) => Vector d (PointSeq d p r) -> Vector d r
+ Algorithms.Util: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Algorithms.Util.SP a b)
+ Algorithms.Util: instance (GHC.Classes.Eq c, GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Algorithms.Util.ST a b c)
+ Algorithms.Util: instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Algorithms.Util.SP a b)
+ Algorithms.Util: instance (GHC.Classes.Ord c, GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Algorithms.Util.ST a b c)
+ Algorithms.Util: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Algorithms.Util.SP a b)
+ Algorithms.Util: instance (GHC.Show.Show c, GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Algorithms.Util.ST a b c)
+ Data.BalBST: BalBST :: !(TreeNavigator k a) -> !(Tree k a) -> BalBST k a
+ Data.BalBST: Black :: Color
+ Data.BalBST: Empty :: Tree k a
+ Data.BalBST: Internal :: !Color -> !Height -> !k -> T k a
+ Data.BalBST: Leaf :: !a -> Tree k a
+ Data.BalBST: Nav :: (a -> k -> Bool) -> (a -> a -> k) -> TreeNavigator k a
+ Data.BalBST: Node :: !Color -> !Height -> (Tree k a) -> !k -> (Tree k a) -> Tree k a
+ Data.BalBST: Pair :: !a -> b -> Pair a b
+ Data.BalBST: Red :: Color
+ Data.BalBST: Split :: a -> !b -> a -> Split a b
+ Data.BalBST: Val :: !a -> T k a
+ Data.BalBST: [extractKey] :: TreeNavigator k a -> a -> a -> k
+ Data.BalBST: [fst'] :: Pair a b -> !a
+ Data.BalBST: [goLeft] :: TreeNavigator k a -> a -> k -> Bool
+ Data.BalBST: [nav] :: BalBST k a -> !(TreeNavigator k a)
+ Data.BalBST: [snd'] :: Pair a b -> b
+ Data.BalBST: [toTree] :: BalBST k a -> !(Tree k a)
+ Data.BalBST: balance :: Color -> Height -> Tree k a -> k -> Tree k a -> Tree k a
+ Data.BalBST: black :: Height -> Tree k a -> k -> Tree k a -> Tree k a
+ Data.BalBST: blacken :: Tree k a -> Tree k a
+ Data.BalBST: collect :: b -> [Pair a b] -> Pair [a] b
+ Data.BalBST: data BalBST k a
+ Data.BalBST: data Color
+ Data.BalBST: data Pair a b
+ Data.BalBST: data Split a b
+ Data.BalBST: data T k a
+ Data.BalBST: data Tree k a
+ Data.BalBST: data TreeNavigator k a
+ Data.BalBST: empty :: TreeNavigator k a -> BalBST k a
+ Data.BalBST: extractPrefix :: BalBST k a -> [Pair a (Tree k a)]
+ Data.BalBST: extractSuffix :: BalBST k a -> [Pair a (Tree k a)]
+ Data.BalBST: fromList :: TreeNavigator k a -> [a] -> BalBST k a
+ Data.BalBST: fromList' :: Ord a => [a] -> BalBST a a
+ Data.BalBST: height :: Tree k a -> Height
+ Data.BalBST: insert :: a -> BalBST k a -> BalBST k a
+ Data.BalBST: instance (GHC.Classes.Eq a, GHC.Classes.Eq k) => GHC.Classes.Eq (Data.BalBST.T k a)
+ Data.BalBST: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.BalBST.Pair a b)
+ Data.BalBST: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.BalBST.Split a b)
+ Data.BalBST: instance (GHC.Classes.Eq k, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.BalBST.Tree k a)
+ Data.BalBST: instance (GHC.Classes.Ord a, GHC.Classes.Ord k) => GHC.Classes.Ord (Data.BalBST.T k a)
+ Data.BalBST: instance (GHC.Show.Show a, GHC.Show.Show k) => GHC.Show.Show (Data.BalBST.T k a)
+ Data.BalBST: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Data.BalBST.Pair a b)
+ Data.BalBST: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Data.BalBST.Split a b)
+ Data.BalBST: instance (GHC.Show.Show k, GHC.Show.Show a) => GHC.Show.Show (Data.BalBST.BalBST k a)
+ Data.BalBST: instance (GHC.Show.Show k, GHC.Show.Show a) => GHC.Show.Show (Data.BalBST.Tree k a)
+ Data.BalBST: instance Data.Foldable.Foldable (Data.BalBST.Pair a)
+ Data.BalBST: instance Data.Functor.Contravariant.Contravariant (Data.BalBST.TreeNavigator k)
+ Data.BalBST: instance Data.Traversable.Traversable (Data.BalBST.Pair a)
+ Data.BalBST: instance GHC.Base.Functor (Data.BalBST.Pair a)
+ Data.BalBST: instance GHC.Classes.Eq Data.BalBST.Color
+ Data.BalBST: instance GHC.Classes.Ord Data.BalBST.Color
+ Data.BalBST: instance GHC.Read.Read Data.BalBST.Color
+ Data.BalBST: instance GHC.Show.Show Data.BalBST.Color
+ Data.BalBST: join :: BalBST k a -> BalBST k a -> BalBST k a
+ Data.BalBST: joinWith :: TreeNavigator k a -> Tree k a -> Tree k a -> Tree k a
+ Data.BalBST: lookup :: Eq a => a -> BalBST k a -> Maybe a
+ Data.BalBST: maxView :: BalBST k a -> Maybe (a, Tree k a)
+ Data.BalBST: member :: Eq a => a -> BalBST k a -> Bool
+ Data.BalBST: minView :: BalBST k a -> Maybe (a, Tree k a)
+ Data.BalBST: mkNode :: Height -> Tree k a -> k -> Tree k a -> k -> Tree k a -> k -> Tree k a -> Tree k a
+ Data.BalBST: null :: BalBST k a -> Bool
+ Data.BalBST: ordNav :: Ord a => TreeNavigator a a
+ Data.BalBST: ordNavBy :: Ord b => (a -> b) -> TreeNavigator b a
+ Data.BalBST: red :: Height -> Tree k a -> k -> Tree k a -> Tree k a
+ Data.BalBST: showTree :: (Show k, Show a) => BalBST k a -> String
+ Data.BalBST: split :: Eq a => a -> BalBST k a -> Split (Tree k a) (Maybe a)
+ Data.BalBST: splitExtract :: (a -> Bool) -> (a -> Bool) -> BalBST k a -> Split (BalBST k a) ([a], [a])
+ Data.BalBST: splitMonotone :: (a -> Bool) -> BalBST k a -> (BalBST k a, BalBST k a)
+ Data.BalBST: toList :: BalBST k a -> [a]
+ Data.BalBST: toList' :: Tree k a -> [a]
+ Data.BalBST: toRoseTree :: Tree k a -> Maybe (Tree (T k a))
+ Data.BalBST: type Height = Int
+ Data.BalBST: unsafeMax :: Tree k a -> a
+ Data.BalBST: unsafeMin :: Tree k a -> a
+ Data.BinaryTree: Internal :: (BinaryTree a) -> !a -> (BinaryTree a) -> BinaryTree a
+ Data.BinaryTree: InternalNode :: v -> RoseElem v a
+ Data.BinaryTree: LeafNode :: a -> RoseElem v a
+ Data.BinaryTree: Nil :: BinaryTree a
+ Data.BinaryTree: Sized :: !Size -> a -> Sized a
+ Data.BinaryTree: access :: BinaryTree a -> Maybe a
+ Data.BinaryTree: asBalancedBinTree :: [a] -> BinaryTree a
+ Data.BinaryTree: data BinaryTree a
+ Data.BinaryTree: data RoseElem v a
+ Data.BinaryTree: data Sized a
+ Data.BinaryTree: drawTree :: (Show v, Show a) => BinLeafTree v a -> String
+ Data.BinaryTree: drawTree' :: Show a => BinaryTree a -> String
+ Data.BinaryTree: foldBinaryUp :: b -> (a -> b -> b -> b) -> BinaryTree a -> BinaryTree (a, b)
+ Data.BinaryTree: foldUp :: (b -> v -> b -> b) -> (a -> b) -> BinLeafTree v a -> b
+ Data.BinaryTree: foldUpData :: (w -> v -> w -> w) -> (a -> w) -> BinLeafTree v a -> BinLeafTree w a
+ Data.BinaryTree: instance (Control.DeepSeq.NFData v, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.BinaryTree.BinLeafTree v a)
+ Data.BinaryTree: instance (GHC.Classes.Eq a, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.BinaryTree.RoseElem v a)
+ Data.BinaryTree: instance (GHC.Show.Show a, GHC.Show.Show v) => GHC.Show.Show (Data.BinaryTree.RoseElem v a)
+ Data.BinaryTree: instance Control.DeepSeq.NFData Data.BinaryTree.Size
+ Data.BinaryTree: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance Data.Foldable.Foldable Data.BinaryTree.BinaryTree
+ Data.BinaryTree: instance Data.Foldable.Foldable Data.BinaryTree.Sized
+ Data.BinaryTree: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance Data.Traversable.Traversable Data.BinaryTree.BinaryTree
+ Data.BinaryTree: instance Data.Traversable.Traversable Data.BinaryTree.Sized
+ Data.BinaryTree: instance GHC.Base.Functor (Data.BinaryTree.RoseElem v)
+ Data.BinaryTree: instance GHC.Base.Functor Data.BinaryTree.BinaryTree
+ Data.BinaryTree: instance GHC.Base.Functor Data.BinaryTree.Sized
+ Data.BinaryTree: instance GHC.Base.Monoid Data.BinaryTree.Size
+ Data.BinaryTree: instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance GHC.Generics.Generic (Data.BinaryTree.BinLeafTree v a)
+ Data.BinaryTree: instance GHC.Generics.Generic (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance GHC.Generics.Generic (Data.BinaryTree.Sized a)
+ Data.BinaryTree: instance GHC.Generics.Generic Data.BinaryTree.Size
+ Data.BinaryTree: instance GHC.Read.Read a => GHC.Read.Read (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance GHC.Show.Show a => GHC.Show.Show (Data.BinaryTree.BinaryTree a)
+ Data.BinaryTree: instance GHC.Show.Show a => GHC.Show.Show (Data.BinaryTree.Sized a)
+ Data.BinaryTree: toRoseTree :: BinLeafTree v a -> Tree (RoseElem v a)
+ Data.BinaryTree: toRoseTree' :: BinaryTree a -> Maybe (Tree a)
+ Data.BinaryTree: zipExactWith :: (u -> v -> w) -> (a -> b -> c) -> BinLeafTree u a -> BinLeafTree v b -> BinLeafTree w c
+ Data.BinaryTree.Zipper: L :: (Ctx a) -> a -> (BinaryTree a) -> Ctx a
+ Data.BinaryTree.Zipper: Loc :: (BinaryTree a) -> (Ctx a) -> BinaryTreeZipper a
+ Data.BinaryTree.Zipper: R :: (BinaryTree a) -> a -> (Ctx a) -> Ctx a
+ Data.BinaryTree.Zipper: Top :: Ctx a
+ Data.BinaryTree.Zipper: accessZ :: BinaryTreeZipper a -> Maybe a
+ Data.BinaryTree.Zipper: data BinaryTreeZipper a
+ Data.BinaryTree.Zipper: data Ctx a
+ Data.BinaryTree.Zipper: instance Data.Foldable.Foldable Data.BinaryTree.Zipper.BinaryTreeZipper
+ Data.BinaryTree.Zipper: instance Data.Foldable.Foldable Data.BinaryTree.Zipper.Ctx
+ Data.BinaryTree.Zipper: instance Data.Traversable.Traversable Data.BinaryTree.Zipper.BinaryTreeZipper
+ Data.BinaryTree.Zipper: instance Data.Traversable.Traversable Data.BinaryTree.Zipper.Ctx
+ Data.BinaryTree.Zipper: instance GHC.Base.Functor Data.BinaryTree.Zipper.BinaryTreeZipper
+ Data.BinaryTree.Zipper: instance GHC.Base.Functor Data.BinaryTree.Zipper.Ctx
+ Data.BinaryTree.Zipper: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.BinaryTree.Zipper.BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.BinaryTree.Zipper.Ctx a)
+ Data.BinaryTree.Zipper: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.BinaryTree.Zipper.BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.BinaryTree.Zipper.Ctx a)
+ Data.BinaryTree.Zipper: instance GHC.Read.Read a => GHC.Read.Read (Data.BinaryTree.Zipper.BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: instance GHC.Read.Read a => GHC.Read.Read (Data.BinaryTree.Zipper.Ctx a)
+ Data.BinaryTree.Zipper: instance GHC.Show.Show a => GHC.Show.Show (Data.BinaryTree.Zipper.BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: instance GHC.Show.Show a => GHC.Show.Show (Data.BinaryTree.Zipper.Ctx a)
+ Data.BinaryTree.Zipper: left :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: right :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: splitTree :: BinaryTreeZipper a -> (BinaryTree a, BinaryTree a)
+ Data.BinaryTree.Zipper: subTrees :: BinaryTree a -> [BinaryTree a]
+ Data.BinaryTree.Zipper: toRoot :: BinaryTreeZipper a -> BinaryTreeZipper a
+ Data.BinaryTree.Zipper: top :: BinaryTree a -> BinaryTreeZipper a
+ Data.BinaryTree.Zipper: up :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
+ Data.BinaryTree.Zipper: visitAll :: BinaryTree a -> [BinaryTreeZipper a]
+ Data.CircularSeq: insertOrd :: Ord a => a -> CSeq a -> CSeq a
+ Data.CircularSeq: insertOrdBy :: (a -> a -> Ordering) -> a -> CSeq a -> CSeq a
+ Data.CircularSeq: isShiftOf :: Eq a => CSeq a -> CSeq a -> Bool
+ Data.CircularSeq: toNonEmpty :: CSeq a -> NonEmpty a
+ Data.CircularSeq: zip3LWith :: (a -> b -> c -> d) -> CSeq a -> CSeq b -> CSeq c -> CSeq d
+ Data.CircularSeq: zipL :: CSeq a -> CSeq b -> CSeq (a, b)
+ Data.CircularSeq: zipLWith :: (a -> b -> c) -> CSeq a -> CSeq b -> CSeq c
+ Data.Ext: instance (Control.DeepSeq.NFData extra, Control.DeepSeq.NFData core) => Control.DeepSeq.NFData (core Data.Ext.:+ extra)
+ Data.Ext: instance (GHC.Classes.Eq extra, GHC.Classes.Eq core) => GHC.Classes.Eq (core Data.Ext.:+ extra)
+ Data.Ext: instance (GHC.Classes.Ord extra, GHC.Classes.Ord core) => GHC.Classes.Ord (core Data.Ext.:+ extra)
+ Data.Ext: instance (GHC.Enum.Bounded extra, GHC.Enum.Bounded core) => GHC.Enum.Bounded (core Data.Ext.:+ extra)
+ Data.Ext: instance (GHC.Read.Read extra, GHC.Read.Read core) => GHC.Read.Read (core Data.Ext.:+ extra)
+ Data.Ext: instance (GHC.Show.Show extra, GHC.Show.Show core) => GHC.Show.Show (core Data.Ext.:+ extra)
+ Data.Ext: instance GHC.Generics.Generic (core Data.Ext.:+ extra)
+ Data.Geometry.Ball: from3Points :: Fractional r => Point 2 r :+ p -> Point 2 r :+ q -> Point 2 r :+ s -> Circle () r
+ Data.Geometry.Ball: instance GHC.Generics.Generic (Data.Geometry.Ball.Ball d p r)
+ Data.Geometry.Ball: radius :: Floating r => Lens' (Ball d p r) r
+ Data.Geometry.Box: instance (Control.DeepSeq.NFData p, Control.DeepSeq.NFData r, Data.Geometry.Vector.VectorFixed.Arity d) => Control.DeepSeq.NFData (Data.Geometry.Box.Internal.Box d p r)
+ Data.Geometry.Box.Internal: CWMax :: a -> CWMax a
+ Data.Geometry.Box.Internal: CWMin :: a -> CWMin a
+ Data.Geometry.Box.Internal: [_cwMax] :: CWMax a -> a
+ Data.Geometry.Box.Internal: [_cwMin] :: CWMin a -> a
+ Data.Geometry.Box.Internal: box :: Point d r :+ p -> Point d r :+ p -> Box d p r
+ Data.Geometry.Box.Internal: centerPoint :: (Arity d, Fractional r) => Box d p r -> Point d r
+ Data.Geometry.Box.Internal: cwMax :: forall a_a1Df5 a_a1Dtb. Iso (CWMax a_a1Df5) (CWMax a_a1Dtb) a_a1Df5 a_a1Dtb
+ Data.Geometry.Box.Internal: cwMin :: forall a_a1D2y a_a1DeZ. Iso (CWMin a_a1D2y) (CWMin a_a1DeZ) a_a1D2y a_a1DeZ
+ Data.Geometry.Box.Internal: fromExtent :: Arity d => Vector d (Range r) -> Box d () r
+ Data.Geometry.Box.Internal: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Classes.Ord r) => Data.Geometry.Properties.IsIntersectableWith (Data.Geometry.Point.Point d r) (Data.Geometry.Box.Internal.Box d p r)
+ Data.Geometry.Box.Internal: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Classes.Ord r) => Data.Semigroup.Semigroup (Data.Geometry.Box.Internal.CWMax (Data.Geometry.Point.Point d r))
+ Data.Geometry.Box.Internal: instance (Data.Geometry.Vector.VectorFixed.Arity d, GHC.Classes.Ord r) => Data.Semigroup.Semigroup (Data.Geometry.Box.Internal.CWMin (Data.Geometry.Point.Point d r))
+ Data.Geometry.Box.Internal: instance (GHC.Classes.Ord r, Data.Geometry.Vector.VectorFixed.Arity d) => Data.Geometry.Properties.IsIntersectableWith (Data.Geometry.Box.Internal.Box d p r) (Data.Geometry.Box.Internal.Box d q r)
+ Data.Geometry.Box.Internal: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Geometry.Box.Internal.CWMax a)
+ Data.Geometry.Box.Internal: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Geometry.Box.Internal.CWMin a)
+ Data.Geometry.Box.Internal: instance Data.Foldable.Foldable Data.Geometry.Box.Internal.CWMax
+ Data.Geometry.Box.Internal: instance Data.Foldable.Foldable Data.Geometry.Box.Internal.CWMin
+ Data.Geometry.Box.Internal: instance Data.Geometry.Box.Internal.IsBoxable (Data.Geometry.Box.Internal.Box d p r)
+ Data.Geometry.Box.Internal: instance Data.Traversable.Traversable Data.Geometry.Box.Internal.CWMax
+ Data.Geometry.Box.Internal: instance Data.Traversable.Traversable Data.Geometry.Box.Internal.CWMin
+ Data.Geometry.Box.Internal: instance GHC.Base.Functor Data.Geometry.Box.Internal.CWMax
+ Data.Geometry.Box.Internal: instance GHC.Base.Functor Data.Geometry.Box.Internal.CWMin
+ Data.Geometry.Box.Internal: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Geometry.Box.Internal.CWMax a)
+ Data.Geometry.Box.Internal: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Geometry.Box.Internal.CWMin a)
+ Data.Geometry.Box.Internal: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Geometry.Box.Internal.CWMax a)
+ Data.Geometry.Box.Internal: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Geometry.Box.Internal.CWMin a)
+ Data.Geometry.Box.Internal: instance GHC.Generics.Generic (Data.Geometry.Box.Internal.Box d p r)
+ Data.Geometry.Box.Internal: instance GHC.Generics.Generic (Data.Geometry.Box.Internal.CWMax a)
+ Data.Geometry.Box.Internal: instance GHC.Generics.Generic (Data.Geometry.Box.Internal.CWMin a)
+ Data.Geometry.Box.Internal: instance GHC.Show.Show a => GHC.Show.Show (Data.Geometry.Box.Internal.CWMax a)
+ Data.Geometry.Box.Internal: instance GHC.Show.Show a => GHC.Show.Show (Data.Geometry.Box.Internal.CWMin a)
+ Data.Geometry.Box.Internal: newtype CWMax a
+ Data.Geometry.Box.Internal: newtype CWMin a
+ Data.Geometry.HalfLine: instance (Control.DeepSeq.NFData r, Data.Geometry.Vector.VectorFixed.Arity d) => Control.DeepSeq.NFData (Data.Geometry.HalfLine.HalfLine d r)
+ Data.Geometry.HalfLine: instance GHC.Generics.Generic (Data.Geometry.HalfLine.HalfLine d r)
+ Data.Geometry.Interval: instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.Interval.Interval a r)
+ Data.Geometry.Interval: instance (GHC.Classes.Eq r, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Geometry.Interval.Interval a r)
+ Data.Geometry.Interval: instance GHC.Generics.Generic (Data.Geometry.Interval.Interval a r)
+ Data.Geometry.Interval: type family EndExtra t;
+ Data.Geometry.Interval: }
+ Data.Geometry.Interval.Util: L :: EndPoint r -> L r
+ Data.Geometry.Interval.Util: R :: EndPoint r -> R r
+ Data.Geometry.Interval.Util: [_unL] :: L r -> EndPoint r
+ Data.Geometry.Interval.Util: [_unR] :: R r -> EndPoint r
+ Data.Geometry.Interval.Util: instance Control.DeepSeq.NFData r => Control.DeepSeq.NFData (Data.Geometry.Interval.Util.L r)
+ Data.Geometry.Interval.Util: instance Control.DeepSeq.NFData r => Control.DeepSeq.NFData (Data.Geometry.Interval.Util.R r)
+ Data.Geometry.Interval.Util: instance GHC.Classes.Eq r => GHC.Classes.Eq (Data.Geometry.Interval.Util.L r)
+ Data.Geometry.Interval.Util: instance GHC.Classes.Eq r => GHC.Classes.Eq (Data.Geometry.Interval.Util.R r)
+ Data.Geometry.Interval.Util: instance GHC.Classes.Ord r => GHC.Classes.Ord (Data.Geometry.Interval.Util.L r)
+ Data.Geometry.Interval.Util: instance GHC.Classes.Ord r => GHC.Classes.Ord (Data.Geometry.Interval.Util.R r)
+ Data.Geometry.Interval.Util: instance GHC.Generics.Generic (Data.Geometry.Interval.Util.L r)
+ Data.Geometry.Interval.Util: instance GHC.Generics.Generic (Data.Geometry.Interval.Util.R r)
+ Data.Geometry.Interval.Util: instance GHC.Show.Show r => GHC.Show.Show (Data.Geometry.Interval.Util.L r)
+ Data.Geometry.Interval.Util: instance GHC.Show.Show r => GHC.Show.Show (Data.Geometry.Interval.Util.R r)
+ Data.Geometry.Interval.Util: newtype L r
+ Data.Geometry.Interval.Util: newtype R r
+ Data.Geometry.Interval.Util: unL :: forall r_a17Yt r_a182N. Iso (L r_a17Yt) (L r_a182N) (EndPoint r_a17Yt) (EndPoint r_a182N)
+ Data.Geometry.Interval.Util: unR :: forall r_a182T r_a18dr. Iso (R r_a182T) (R r_a18dr) (EndPoint r_a182T) (EndPoint r_a18dr)
+ Data.Geometry.IntervalTree: IntervalTree :: BinaryTree (NodeData i r) -> IntervalTree i r
+ Data.Geometry.IntervalTree: NodeData :: !r -> !(Map (L r) [i]) -> !(Map (R r) [i]) -> NodeData i r
+ Data.Geometry.IntervalTree: [_intervalsLeft] :: NodeData i r -> !(Map (L r) [i])
+ Data.Geometry.IntervalTree: [_intervalsRight] :: NodeData i r -> !(Map (R r) [i])
+ Data.Geometry.IntervalTree: [_splitPoint] :: NodeData i r -> !r
+ Data.Geometry.IntervalTree: [_unIntervalTree] :: IntervalTree i r -> BinaryTree (NodeData i r)
+ Data.Geometry.IntervalTree: class IntervalLike i
+ Data.Geometry.IntervalTree: createTree :: Ord r => [r] -> IntervalTree i r
+ Data.Geometry.IntervalTree: data NodeData i r
+ Data.Geometry.IntervalTree: delete :: (Ord r, IntervalLike i, NumType i ~ r, Eq i) => i -> IntervalTree i r -> IntervalTree i r
+ Data.Geometry.IntervalTree: fromIntervals :: (Ord r, IntervalLike i, NumType i ~ r) => [i] -> IntervalTree i r
+ Data.Geometry.IntervalTree: insert :: (Ord r, IntervalLike i, NumType i ~ r) => i -> IntervalTree i r -> IntervalTree i r
+ Data.Geometry.IntervalTree: instance (Control.DeepSeq.NFData i, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.IntervalTree.NodeData i r)
+ Data.Geometry.IntervalTree: instance (Control.DeepSeq.NFData r, Control.DeepSeq.NFData i) => Control.DeepSeq.NFData (Data.Geometry.IntervalTree.IntervalTree i r)
+ Data.Geometry.IntervalTree: instance (GHC.Classes.Eq i, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.IntervalTree.NodeData i r)
+ Data.Geometry.IntervalTree: instance (GHC.Classes.Eq r, GHC.Classes.Eq i) => GHC.Classes.Eq (Data.Geometry.IntervalTree.IntervalTree i r)
+ Data.Geometry.IntervalTree: instance (GHC.Classes.Ord i, GHC.Classes.Ord r) => GHC.Classes.Ord (Data.Geometry.IntervalTree.NodeData i r)
+ Data.Geometry.IntervalTree: instance (GHC.Show.Show i, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.IntervalTree.NodeData i r)
+ Data.Geometry.IntervalTree: instance (GHC.Show.Show r, GHC.Show.Show i) => GHC.Show.Show (Data.Geometry.IntervalTree.IntervalTree i r)
+ Data.Geometry.IntervalTree: instance Data.Geometry.IntervalTree.IntervalLike (Data.Geometry.Interval.Interval p r)
+ Data.Geometry.IntervalTree: instance Data.Geometry.IntervalTree.IntervalLike (Data.Range.Range r)
+ Data.Geometry.IntervalTree: instance GHC.Generics.Generic (Data.Geometry.IntervalTree.IntervalTree i r)
+ Data.Geometry.IntervalTree: instance GHC.Generics.Generic (Data.Geometry.IntervalTree.NodeData i r)
+ Data.Geometry.IntervalTree: intervalsLeft :: forall i_a2QgX r_a2QgY. Lens' (NodeData i_a2QgX r_a2QgY) (Map (L r_a2QgY) [i_a2QgX])
+ Data.Geometry.IntervalTree: intervalsRight :: forall i_a2QgX r_a2QgY. Lens' (NodeData i_a2QgX r_a2QgY) (Map (R r_a2QgY) [i_a2QgX])
+ Data.Geometry.IntervalTree: newtype IntervalTree i r
+ Data.Geometry.IntervalTree: search :: Ord r => r -> IntervalTree i r -> [i]
+ Data.Geometry.IntervalTree: splitPoint :: forall i_a2QgX r_a2QgY. Lens' (NodeData i_a2QgX r_a2QgY) r_a2QgY
+ Data.Geometry.IntervalTree: stab :: Ord r => r -> IntervalTree i r -> [i]
+ Data.Geometry.IntervalTree: toList :: IntervalTree i r -> [i]
+ Data.Geometry.IntervalTree: toRange :: IntervalLike i => i -> Range (NumType i)
+ Data.Geometry.IntervalTree: unIntervalTree :: forall i_a2QpZ r_a2Qq0 i_a2Qwc r_a2Qwd. Iso (IntervalTree i_a2QpZ r_a2Qq0) (IntervalTree i_a2Qwc r_a2Qwd) (BinaryTree (NodeData i_a2QpZ r_a2Qq0)) (BinaryTree (NodeData i_a2Qwc r_a2Qwd))
+ Data.Geometry.Ipe.Attributes: [GDict] :: c a => Proxy a -> GDict c a
+ Data.Geometry.Ipe.Attributes: instance Data.Singletons.SingKind Data.Geometry.Ipe.Attributes.AttributeUniverse
+ Data.Geometry.Ipe.Attributes: instance forall u (ats :: [u]) (f :: Data.Singletons.TyFun u GHC.Types.* -> GHC.Types.*). Data.Vinyl.Core.RecApplicative ats => GHC.Base.Monoid (Data.Geometry.Ipe.Attributes.Attributes f ats)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: Data.Singletons.TyFun u GHC.Types.* -> GHC.Types.*) (ats :: [u]). Data.Semigroup.Semigroup (Data.Geometry.Ipe.Attributes.Attributes f ats)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: Data.Singletons.TyFun u GHC.Types.* -> GHC.Types.*) (ats :: [u]). Data.Vinyl.TypeLevel.RecAll (Data.Geometry.Ipe.Attributes.Attr f) ats GHC.Classes.Eq => GHC.Classes.Eq (Data.Geometry.Ipe.Attributes.Attributes f ats)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: Data.Singletons.TyFun u GHC.Types.* -> GHC.Types.*) (ats :: [u]). Data.Vinyl.TypeLevel.RecAll (Data.Geometry.Ipe.Attributes.Attr f) ats GHC.Show.Show => GHC.Show.Show (Data.Geometry.Ipe.Attributes.Attributes f ats)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: Data.Singletons.TyFun u GHC.Types.* -> GHC.Types.*) (l :: u). GHC.Base.Monoid (Data.Geometry.Ipe.Attributes.Attr f l)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: u Data.Singletons.~> *) (label :: u). GHC.Classes.Eq (Data.Singletons.Apply f label) => GHC.Classes.Eq (Data.Geometry.Ipe.Attributes.Attr f label)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: u Data.Singletons.~> *) (label :: u). GHC.Classes.Ord (Data.Singletons.Apply f label) => GHC.Classes.Ord (Data.Geometry.Ipe.Attributes.Attr f label)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: u Data.Singletons.~> *) (label :: u). GHC.Read.Read (Data.Singletons.Apply f label) => GHC.Read.Read (Data.Geometry.Ipe.Attributes.Attr f label)
+ Data.Geometry.Ipe.Attributes: instance forall u (f :: u Data.Singletons.~> *) (label :: u). GHC.Show.Show (Data.Singletons.Apply f label) => GHC.Show.Show (Data.Geometry.Ipe.Attributes.Attr f label)
+ Data.Geometry.Ipe.Attributes: normalArrow :: IpeArrow r
+ Data.Geometry.Ipe.IpeOut: instance Data.Geometry.Ipe.IpeOut.HasDefaultIpeOut (Data.Geometry.Polygon.Convex.ConvexPolygon p r)
+ Data.Geometry.Ipe.IpeOut: type family DefaultIpeOut g :: * -> *;
+ Data.Geometry.Ipe.IpeOut: }
+ Data.Geometry.Ipe.PathParser: instance (GHC.Classes.Eq r, GHC.Classes.Eq l) => GHC.Classes.Eq (Data.Geometry.Ipe.PathParser.Either' l r)
+ Data.Geometry.Ipe.PathParser: instance (GHC.Show.Show r, GHC.Show.Show l) => GHC.Show.Show (Data.Geometry.Ipe.PathParser.Either' l r)
+ Data.Geometry.Ipe.Reader: instance forall u (f :: u Data.Singletons.~> *) (at :: u). Data.Geometry.Ipe.Reader.IpeReadText (Data.Singletons.Apply f at) => Data.Geometry.Ipe.Reader.IpeReadAttr (Data.Geometry.Ipe.Attributes.Attr f at)
+ Data.Geometry.Ipe.Writer: instance Data.Geometry.Ipe.Writer.IpeWriteText GHC.Integer.Type.Integer
+ Data.Geometry.Ipe.Writer: instance forall u (f :: u Data.Singletons.~> *) (at :: u). Data.Geometry.Ipe.Writer.IpeWriteText (Data.Singletons.Apply f at) => Data.Geometry.Ipe.Writer.IpeWriteText (Data.Geometry.Ipe.Attributes.Attr f at)
+ Data.Geometry.KDTree: Coord :: Int -> Coord
+ Data.Geometry.KDTree: Empty :: KDTree d p r
+ Data.Geometry.KDTree: KDT :: BinLeafTree (Split d r) (Point d r :+ p) -> KDTree' d p r
+ Data.Geometry.KDTree: Split :: !(Coord d) -> !r -> !(Box d () r) -> Split d r
+ Data.Geometry.KDTree: Tree :: (KDTree' d p r) -> KDTree d p r
+ Data.Geometry.KDTree: [unCoord] :: Coord -> Int
+ Data.Geometry.KDTree: [unKDT] :: KDTree' d p r -> BinLeafTree (Split d r) (Point d r :+ p)
+ Data.Geometry.KDTree: asSingleton :: (Index' 0 d, Arity d) => PointSet (LSeq 1) d p r -> Either (Point d r :+ p) (PointSet (LSeq 2) d p r)
+ Data.Geometry.KDTree: boxOf :: (Arity d, Ord r) => BinLeafTree (Split d r) (Point d r :+ p) -> Box d () r
+ Data.Geometry.KDTree: build :: (Index' 0 d, Arity d, KnownNat d, Ord r) => Coord d -> PointSet (LSeq 1) d p r -> BinLeafTree (Split' d r) (Point d r :+ p)
+ Data.Geometry.KDTree: buildKDTree :: (Arity d, KnownNat d, Index' 0 d, Ord r) => [Point d r :+ p] -> KDTree d p r
+ Data.Geometry.KDTree: buildKDTree' :: (Arity d, KnownNat d, Index' 0 d, Ord r) => NonEmpty (Point d r :+ p) -> KDTree' d p r
+ Data.Geometry.KDTree: compareOn :: (Ord r, Arity d) => Int -> Point d r :+ e -> Point d r :+ e -> Ordering
+ Data.Geometry.KDTree: containedIn :: (Arity d, Ord r) => Box d q r -> Box d p r -> Bool
+ Data.Geometry.KDTree: data KDTree d p r
+ Data.Geometry.KDTree: data Split d r
+ Data.Geometry.KDTree: instance (GHC.Classes.Eq p, GHC.Classes.Eq r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Classes.Eq (Data.Geometry.KDTree.KDTree d p r)
+ Data.Geometry.KDTree: instance (GHC.Classes.Eq p, GHC.Classes.Eq r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Classes.Eq (Data.Geometry.KDTree.KDTree' d p r)
+ Data.Geometry.KDTree: instance (GHC.Classes.Eq r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Classes.Eq (Data.Geometry.KDTree.Split d r)
+ Data.Geometry.KDTree: instance (GHC.Show.Show p, GHC.Show.Show r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Show.Show (Data.Geometry.KDTree.KDTree d p r)
+ Data.Geometry.KDTree: instance (GHC.Show.Show p, GHC.Show.Show r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Show.Show (Data.Geometry.KDTree.KDTree' d p r)
+ Data.Geometry.KDTree: instance (GHC.Show.Show r, Data.Geometry.Vector.VectorFixed.Arity d, GHC.TypeLits.KnownNat d) => GHC.Show.Show (Data.Geometry.KDTree.Split d r)
+ Data.Geometry.KDTree: instance GHC.TypeLits.KnownNat d => GHC.Classes.Eq (Data.Geometry.KDTree.Coord d)
+ Data.Geometry.KDTree: instance GHC.TypeLits.KnownNat d => GHC.Enum.Enum (Data.Geometry.KDTree.Coord d)
+ Data.Geometry.KDTree: instance GHC.TypeLits.KnownNat d => GHC.Show.Show (Data.Geometry.KDTree.Coord d)
+ Data.Geometry.KDTree: newtype Coord (d :: Nat)
+ Data.Geometry.KDTree: newtype KDTree' d p r
+ Data.Geometry.KDTree: ordNub :: Ord a => NonEmpty a -> NonEmpty a
+ Data.Geometry.KDTree: reportSubTree :: KDTree' d p r -> NonEmpty (Point d r :+ p)
+ Data.Geometry.KDTree: searchKDTree :: (Arity d, Ord r) => Box d q r -> KDTree d p r -> [Point d r :+ p]
+ Data.Geometry.KDTree: searchKDTree' :: (Arity d, Ord r) => Box d q r -> KDTree' d p r -> [Point d r :+ p]
+ Data.Geometry.KDTree: splitOn :: (Arity d, KnownNat d, Ord r) => Coord d -> PointSet (LSeq 2) d p r -> (PointSet (LSeq 1) d p r, Split' d r, PointSet (LSeq 1) d p r)
+ Data.Geometry.KDTree: toMaybe :: KDTree d p r -> Maybe (KDTree' d p r)
+ Data.Geometry.KDTree: toPointSet :: (Arity d, Ord r) => LSeq n (Point d r :+ p) -> PointSet (LSeq n) d p r
+ Data.Geometry.KDTree: type PointSet seq d p r = Vector d (seq (Point d r :+ p))
+ Data.Geometry.KDTree: type Split' d r = SP (Coord d) r
+ Data.Geometry.Line.Internal: instance (Control.DeepSeq.NFData r, Data.Geometry.Vector.VectorFixed.Arity d) => Control.DeepSeq.NFData (Data.Geometry.Line.Internal.Line d r)
+ Data.Geometry.Line.Internal: instance GHC.Generics.Generic (Data.Geometry.Line.Internal.Line d r)
+ Data.Geometry.PlanarSubdivision: EdgeData :: !EdgeType -> !e -> EdgeData e
+ Data.Geometry.PlanarSubdivision: FaceData :: [h] -> !f -> FaceData h f
+ Data.Geometry.PlanarSubdivision: Invisible :: EdgeType
+ Data.Geometry.PlanarSubdivision: PlanarSubdivision :: PlanarGraph s Primal_ (VertexData r v) (EdgeData e) (FaceData (Dart s) f) -> PlanarSubdivision s v e f r
+ Data.Geometry.PlanarSubdivision: VertexData :: !(Point 2 r) -> !v -> VertexData r v
+ Data.Geometry.PlanarSubdivision: Visible :: EdgeType
+ Data.Geometry.PlanarSubdivision: [_eData] :: EdgeData e -> !e
+ Data.Geometry.PlanarSubdivision: [_edgeType] :: EdgeData e -> !EdgeType
+ Data.Geometry.PlanarSubdivision: [_fData] :: FaceData h f -> !f
+ Data.Geometry.PlanarSubdivision: [_graph] :: PlanarSubdivision s v e f r -> PlanarGraph s Primal_ (VertexData r v) (EdgeData e) (FaceData (Dart s) f)
+ Data.Geometry.PlanarSubdivision: [_holes] :: FaceData h f -> [h]
+ Data.Geometry.PlanarSubdivision: [_location] :: VertexData r v -> !(Point 2 r)
+ Data.Geometry.PlanarSubdivision: [_vData] :: VertexData r v -> !v
+ Data.Geometry.PlanarSubdivision: data EdgeData e
+ Data.Geometry.PlanarSubdivision: data EdgeType
+ Data.Geometry.PlanarSubdivision: data FaceData h f
+ Data.Geometry.PlanarSubdivision: data VertexData r v
+ Data.Geometry.PlanarSubdivision: eData :: forall e_a3bij e_a3bwf. Lens (EdgeData e_a3bij) (EdgeData e_a3bwf) e_a3bij e_a3bwf
+ Data.Geometry.PlanarSubdivision: edgeType :: forall e_a3bij. Lens' (EdgeData e_a3bij) EdgeType
+ Data.Geometry.PlanarSubdivision: fData :: forall h_a3bwu f_a3bwv f_a3bHi. Lens (FaceData h_a3bwu f_a3bwv) (FaceData h_a3bwu f_a3bHi) f_a3bwv f_a3bHi
+ Data.Geometry.PlanarSubdivision: fromConnectedSegments :: (Foldable f, Ord r, Num r) => proxy s -> f (LineSegment 2 p r :+ EdgeData e) -> PlanarSubdivision s [p] e () r
+ Data.Geometry.PlanarSubdivision: fromConnectedSegments' :: (Foldable f, Ord r, Num r) => proxy s -> f (LineSegment 2 p r :+ e) -> PlanarGraph s Primal_ (VertexData r [p]) e ()
+ Data.Geometry.PlanarSubdivision: fromPolygon :: proxy s -> SimplePolygon p r -> f -> f -> PlanarSubdivision s p () f r
+ Data.Geometry.PlanarSubdivision: fromVertices :: proxy s -> CSeq (Point 2 r :+ p) -> PlanarGraph s Primal_ (VertexData r p) () ()
+ Data.Geometry.PlanarSubdivision: graph :: forall s_a3bHx v_a3bHy e_a3bHz f_a3bHA r_a3bHB s_a3bO7 v_a3bO8 e_a3bO9 f_a3bOa r_a3bOb. Iso (PlanarSubdivision s_a3bHx v_a3bHy e_a3bHz f_a3bHA r_a3bHB) (PlanarSubdivision s_a3bO7 v_a3bO8 e_a3bO9 f_a3bOa r_a3bOb) (PlanarGraph s_a3bHx Primal_ (VertexData r_a3bHB v_a3bHy) (EdgeData e_a3bHz) (FaceData (Dart s_a3bHx) f_a3bHA)) (PlanarGraph s_a3bO7 Primal_ (VertexData r_a3bOb v_a3bO8) (EdgeData e_a3bO9) (FaceData (Dart s_a3bO7) f_a3bOa))
+ Data.Geometry.PlanarSubdivision: holes :: forall h_a3bwu f_a3bwv h_a3bHj. Lens (FaceData h_a3bwu f_a3bwv) (FaceData h_a3bHj f_a3bwv) [h_a3bwu] [h_a3bHj]
+ Data.Geometry.PlanarSubdivision: instance (GHC.Classes.Eq f, GHC.Classes.Eq h) => GHC.Classes.Eq (Data.Geometry.PlanarSubdivision.FaceData h f)
+ Data.Geometry.PlanarSubdivision: instance (GHC.Classes.Eq v, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.PlanarSubdivision.VertexData r v)
+ Data.Geometry.PlanarSubdivision: instance (GHC.Classes.Ord f, GHC.Classes.Ord h) => GHC.Classes.Ord (Data.Geometry.PlanarSubdivision.FaceData h f)
+ Data.Geometry.PlanarSubdivision: instance (GHC.Classes.Ord v, GHC.Classes.Ord r) => GHC.Classes.Ord (Data.Geometry.PlanarSubdivision.VertexData r v)
+ Data.Geometry.PlanarSubdivision: instance (GHC.Show.Show f, GHC.Show.Show h) => GHC.Show.Show (Data.Geometry.PlanarSubdivision.FaceData h f)
+ Data.Geometry.PlanarSubdivision: instance (GHC.Show.Show v, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.PlanarSubdivision.VertexData r v)
+ Data.Geometry.PlanarSubdivision: instance Data.Bifunctor.Bifunctor Data.Geometry.PlanarSubdivision.VertexData
+ Data.Geometry.PlanarSubdivision: instance Data.Foldable.Foldable (Data.Geometry.PlanarSubdivision.FaceData h)
+ Data.Geometry.PlanarSubdivision: instance Data.Foldable.Foldable (Data.Geometry.PlanarSubdivision.VertexData r)
+ Data.Geometry.PlanarSubdivision: instance Data.Foldable.Foldable Data.Geometry.PlanarSubdivision.EdgeData
+ Data.Geometry.PlanarSubdivision: instance Data.Traversable.Traversable (Data.Geometry.PlanarSubdivision.FaceData h)
+ Data.Geometry.PlanarSubdivision: instance Data.Traversable.Traversable (Data.Geometry.PlanarSubdivision.VertexData r)
+ Data.Geometry.PlanarSubdivision: instance Data.Traversable.Traversable Data.Geometry.PlanarSubdivision.EdgeData
+ Data.Geometry.PlanarSubdivision: instance GHC.Base.Functor (Data.Geometry.PlanarSubdivision.FaceData h)
+ Data.Geometry.PlanarSubdivision: instance GHC.Base.Functor (Data.Geometry.PlanarSubdivision.VertexData r)
+ Data.Geometry.PlanarSubdivision: instance GHC.Base.Functor Data.Geometry.PlanarSubdivision.EdgeData
+ Data.Geometry.PlanarSubdivision: instance GHC.Classes.Eq Data.Geometry.PlanarSubdivision.EdgeType
+ Data.Geometry.PlanarSubdivision: instance GHC.Classes.Eq e => GHC.Classes.Eq (Data.Geometry.PlanarSubdivision.EdgeData e)
+ Data.Geometry.PlanarSubdivision: instance GHC.Classes.Ord Data.Geometry.PlanarSubdivision.EdgeType
+ Data.Geometry.PlanarSubdivision: instance GHC.Classes.Ord e => GHC.Classes.Ord (Data.Geometry.PlanarSubdivision.EdgeData e)
+ Data.Geometry.PlanarSubdivision: instance GHC.Read.Read Data.Geometry.PlanarSubdivision.EdgeType
+ Data.Geometry.PlanarSubdivision: instance GHC.Show.Show Data.Geometry.PlanarSubdivision.EdgeType
+ Data.Geometry.PlanarSubdivision: instance GHC.Show.Show e => GHC.Show.Show (Data.Geometry.PlanarSubdivision.EdgeData e)
+ Data.Geometry.PlanarSubdivision: instance forall k (s :: k) v e f r. (GHC.Classes.Eq r, GHC.Classes.Eq v, GHC.Classes.Eq e, GHC.Classes.Eq f) => GHC.Classes.Eq (Data.Geometry.PlanarSubdivision.PlanarSubdivision s v e f r)
+ Data.Geometry.PlanarSubdivision: instance forall k (s :: k) v e f r. (GHC.Show.Show r, GHC.Show.Show v, GHC.Show.Show e, GHC.Show.Show f) => GHC.Show.Show (Data.Geometry.PlanarSubdivision.PlanarSubdivision s v e f r)
+ Data.Geometry.PlanarSubdivision: instance forall k (s :: k) v e f. GHC.Base.Functor (Data.Geometry.PlanarSubdivision.PlanarSubdivision s v e f)
+ Data.Geometry.PlanarSubdivision: location :: forall r_a3b7A v_a3b7B r_a3bi0. Lens (VertexData r_a3b7A v_a3b7B) (VertexData r_a3bi0 v_a3b7B) (Point 2 r_a3b7A) (Point 2 r_a3bi0)
+ Data.Geometry.PlanarSubdivision: newtype PlanarSubdivision s v e f r
+ Data.Geometry.PlanarSubdivision: vData :: forall r_a3b7A v_a3b7B v_a3bi1. Lens (VertexData r_a3b7A v_a3b7B) (VertexData r_a3b7A v_a3bi1) v_a3b7B v_a3bi1
+ Data.Geometry.Point: instance (Data.Geometry.Vector.VectorFixed.Arity d, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.Point.Point d r)
+ Data.Geometry.Point: instance GHC.Generics.Generic (Data.Geometry.Point.Point d r)
+ Data.Geometry.Point: pointFromList :: Arity d => [r] -> Maybe (Point d r)
+ Data.Geometry.Polygon: [MultiPolygon] :: CSeq (Point 2 r :+ p) -> [Polygon Simple p r] -> Polygon Multi p r
+ Data.Geometry.Polygon: [SimplePolygon] :: CSeq (Point 2 r :+ p) -> Polygon Simple p r
+ Data.Geometry.Polygon: instance Data.Geometry.Box.Internal.IsBoxable (Data.Geometry.Polygon.Polygon t p r)
+ Data.Geometry.Polygon: polygonVertices :: Polygon t p r -> NonEmpty (Point 2 r :+ p)
+ Data.Geometry.Polygon: toCounterClockWiseOrder :: (Eq r, Fractional r) => Polygon t p r -> Polygon t p r
+ Data.Geometry.Polygon.Convex: ConvexPolygon :: SimplePolygon p r -> ConvexPolygon p r
+ Data.Geometry.Polygon.Convex: [_simplePolygon] :: ConvexPolygon p r -> SimplePolygon p r
+ Data.Geometry.Polygon.Convex: bottomMost :: Ord r => CSeq (Point 2 r :+ p) -> CSeq (Point 2 r :+ p)
+ Data.Geometry.Polygon.Convex: instance (GHC.Classes.Eq r, GHC.Classes.Eq p) => GHC.Classes.Eq (Data.Geometry.Polygon.Convex.ConvexPolygon p r)
+ Data.Geometry.Polygon.Convex: instance (GHC.Show.Show r, GHC.Show.Show p) => GHC.Show.Show (Data.Geometry.Polygon.Convex.ConvexPolygon p r)
+ Data.Geometry.Polygon.Convex: instance Data.Geometry.Box.Internal.IsBoxable (Data.Geometry.Polygon.Convex.ConvexPolygon p r)
+ Data.Geometry.Polygon.Convex: instance Data.Geometry.Point.PointFunctor (Data.Geometry.Polygon.Convex.ConvexPolygon p)
+ Data.Geometry.Polygon.Convex: instance GHC.Num.Num r => Data.Geometry.Transformation.IsTransformable (Data.Geometry.Polygon.Convex.ConvexPolygon p r)
+ Data.Geometry.Polygon.Convex: leftTangent :: (Ord r, Num r) => ConvexPolygon p r -> Point 2 r -> Point 2 r :+ p
+ Data.Geometry.Polygon.Convex: minkowskiSum :: (Ord r, Num r) => ConvexPolygon p r -> ConvexPolygon q r -> ConvexPolygon (p, q) r
+ Data.Geometry.Polygon.Convex: newtype ConvexPolygon p r
+ Data.Geometry.Polygon.Convex: rightTangent :: (Ord r, Num r) => ConvexPolygon p r -> Point 2 r -> Point 2 r :+ p
+ Data.Geometry.Polygon.Convex: simplePolygon :: forall p_a2vyu r_a2vyv p_a2vE1 r_a2vE2. Iso (ConvexPolygon p_a2vyu r_a2vyv) (ConvexPolygon p_a2vE1 r_a2vE2) (SimplePolygon p_a2vyu r_a2vyv) (SimplePolygon p_a2vE1 r_a2vE2)
+ Data.Geometry.SegmentTree.Generic: Count :: Int -> Count
+ Data.Geometry.SegmentTree.Generic: I :: a -> I a
+ Data.Geometry.SegmentTree.Generic: LeafData :: !(AtomicRange r) -> !v -> LeafData v r
+ Data.Geometry.SegmentTree.Generic: NodeData :: !(EndPoint r) -> !(Range r) -> !v -> NodeData v r
+ Data.Geometry.SegmentTree.Generic: SegmentTree :: BinLeafTree (NodeData v r) (LeafData v r) -> SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: [_assoc] :: NodeData v r -> !v
+ Data.Geometry.SegmentTree.Generic: [_atomicRange] :: LeafData v r -> !(AtomicRange r)
+ Data.Geometry.SegmentTree.Generic: [_leafAssoc] :: LeafData v r -> !v
+ Data.Geometry.SegmentTree.Generic: [_range] :: NodeData v r -> !(Range r)
+ Data.Geometry.SegmentTree.Generic: [_splitPoint] :: NodeData v r -> !(EndPoint r)
+ Data.Geometry.SegmentTree.Generic: [_unI] :: I a -> a
+ Data.Geometry.SegmentTree.Generic: [_unSegmentTree] :: SegmentTree v r -> BinLeafTree (NodeData v r) (LeafData v r)
+ Data.Geometry.SegmentTree.Generic: [getCount] :: Count -> Int
+ Data.Geometry.SegmentTree.Generic: assoc :: forall v_a2WDR r_a2WDS v_a2WJE. Lens (NodeData v_a2WDR r_a2WDS) (NodeData v_a2WJE r_a2WDS) v_a2WDR v_a2WJE
+ Data.Geometry.SegmentTree.Generic: atomicRange :: forall v_a2WK4 r_a2WK5 r_a2WV1. Lens (LeafData v_a2WK4 r_a2WK5) (LeafData v_a2WK4 r_a2WV1) (AtomicRange r_a2WK5) (AtomicRange r_a2WV1)
+ Data.Geometry.SegmentTree.Generic: class Measured v i => Assoc v i
+ Data.Geometry.SegmentTree.Generic: createTree :: NonEmpty r -> v -> SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: data LeafData v r
+ Data.Geometry.SegmentTree.Generic: data NodeData v r
+ Data.Geometry.SegmentTree.Generic: delete :: (Assoc v i, NumType i ~ r, Ord r, IntervalLike i) => i -> SegmentTree v r -> SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: deleteAssoc :: Assoc v i => i -> v -> v
+ Data.Geometry.SegmentTree.Generic: fromIntervals :: (Ord r, Eq p, Assoc v i, IntervalLike i, Monoid v, NumType i ~ r) => (Interval p r -> i) -> NonEmpty (Interval p r) -> SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: fromIntervals' :: (Eq p, Ord r) => NonEmpty (Interval p r) -> SegmentTree [I (Interval p r)] r
+ Data.Geometry.SegmentTree.Generic: insert :: (Assoc v i, NumType i ~ r, Ord r, IntervalLike i) => i -> SegmentTree v r -> SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: insertAssoc :: Assoc v i => i -> v -> v
+ Data.Geometry.SegmentTree.Generic: instance (Control.DeepSeq.NFData r, Control.DeepSeq.NFData v) => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.SegmentTree v r)
+ Data.Geometry.SegmentTree.Generic: instance (Control.DeepSeq.NFData v, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.LeafData v r)
+ Data.Geometry.SegmentTree.Generic: instance (Control.DeepSeq.NFData v, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.NodeData v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Classes.Eq r, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.SegmentTree v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Classes.Eq v, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.LeafData v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Classes.Eq v, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.NodeData v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Show.Show r, GHC.Show.Show v) => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.SegmentTree v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Show.Show v, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.LeafData v r)
+ Data.Geometry.SegmentTree.Generic: instance (GHC.Show.Show v, GHC.Show.Show r) => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.NodeData v r)
+ Data.Geometry.SegmentTree.Generic: instance Control.DeepSeq.NFData Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance Control.DeepSeq.NFData r => Control.DeepSeq.NFData (Data.Geometry.SegmentTree.Generic.AtomicRange r)
+ Data.Geometry.SegmentTree.Generic: instance Data.BinaryTree.Measured Data.Geometry.SegmentTree.Generic.Count (Data.Geometry.SegmentTree.Generic.C i)
+ Data.Geometry.SegmentTree.Generic: instance Data.BinaryTree.Measured [Data.Geometry.SegmentTree.Generic.I a] (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance Data.Geometry.IntervalTree.IntervalLike a => Data.Geometry.IntervalTree.IntervalLike (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance Data.Geometry.SegmentTree.Generic.Assoc Data.Geometry.SegmentTree.Generic.Count (Data.Geometry.SegmentTree.Generic.C i)
+ Data.Geometry.SegmentTree.Generic: instance Data.Semigroup.Semigroup Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Base.Functor (Data.Geometry.SegmentTree.Generic.LeafData v)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Base.Functor (Data.Geometry.SegmentTree.Generic.NodeData v)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Base.Functor Data.Geometry.SegmentTree.Generic.AtomicRange
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq a => Data.Geometry.SegmentTree.Generic.Assoc [Data.Geometry.SegmentTree.Generic.I a] (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.BuildLeaf a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Eq r => GHC.Classes.Eq (Data.Geometry.SegmentTree.Generic.AtomicRange r)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Ord Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Enum.Enum Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.AtomicRange r)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.LeafData v r)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.NodeData v r)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic (Data.Geometry.SegmentTree.Generic.SegmentTree v r)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Generics.Generic Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Num.Num Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Read.Read a => GHC.Read.Read (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Read.Read a => GHC.Read.Read (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Real.Integral Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Real.Real Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Show.Show Data.Geometry.SegmentTree.Generic.Count
+ Data.Geometry.SegmentTree.Generic: instance GHC.Show.Show a => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.BuildLeaf a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Show.Show a => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.C a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Show.Show a => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.I a)
+ Data.Geometry.SegmentTree.Generic: instance GHC.Show.Show r => GHC.Show.Show (Data.Geometry.SegmentTree.Generic.AtomicRange r)
+ Data.Geometry.SegmentTree.Generic: leafAssoc :: forall v_a2WK4 r_a2WK5 v_a2WV2. Lens (LeafData v_a2WK4 r_a2WK5) (LeafData v_a2WV2 r_a2WK5) v_a2WK4 v_a2WV2
+ Data.Geometry.SegmentTree.Generic: newtype Count
+ Data.Geometry.SegmentTree.Generic: newtype I a
+ Data.Geometry.SegmentTree.Generic: newtype SegmentTree v r
+ Data.Geometry.SegmentTree.Generic: range :: forall v_a2WDR r_a2WDS. Lens' (NodeData v_a2WDR r_a2WDS) (Range r_a2WDS)
+ Data.Geometry.SegmentTree.Generic: search :: (Ord r, Monoid v) => r -> SegmentTree v r -> v
+ Data.Geometry.SegmentTree.Generic: splitPoint :: forall v_a2WDR r_a2WDS. Lens' (NodeData v_a2WDR r_a2WDS) (EndPoint r_a2WDS)
+ Data.Geometry.SegmentTree.Generic: stab :: Ord r => r -> SegmentTree v r -> [v]
+ Data.Geometry.SegmentTree.Generic: unSegmentTree :: forall v_a2WVg r_a2WVh v_a2X2c r_a2X2d. Iso (SegmentTree v_a2WVg r_a2WVh) (SegmentTree v_a2X2c r_a2X2d) (BinLeafTree (NodeData v_a2WVg r_a2WVh) (LeafData v_a2WVg r_a2WVh)) (BinLeafTree (NodeData v_a2X2c r_a2X2d) (LeafData v_a2X2c r_a2X2d))
+ Data.Geometry.Slab: instance (GHC.Show.Show r, GHC.Show.Show a) => GHC.Show.Show (Data.Geometry.Slab.Slab o a r)
+ Data.Geometry.Slab: test :: SubLine 2 () Double
+ Data.Geometry.Triangle: instance (GHC.Classes.Eq r, GHC.Classes.Eq p) => GHC.Classes.Eq (Data.Geometry.Triangle.Triangle p r)
+ Data.Geometry.Triangle: instance (GHC.Show.Show r, GHC.Show.Show p) => GHC.Show.Show (Data.Geometry.Triangle.Triangle p r)
+ Data.Geometry.Vector: type family Diff (p :: * -> *) :: * -> *;
+ Data.Geometry.Vector: }
+ Data.Geometry.Vector.VectorFixed: instance (Data.Geometry.Vector.VectorFixed.Arity d, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Geometry.Vector.VectorFixed.Vector d r)
+ Data.Geometry.Vector.VectorFixed: instance (Data.Vector.Fixed.Cont.Arity i, Data.Vector.Fixed.Cont.Arity d, Data.Geometry.Vector.VectorFixed.Prefix i d) => Data.Geometry.Vector.VectorFixed.Prefix (Data.Vector.Fixed.Cont.S i) (Data.Vector.Fixed.Cont.S d)
+ Data.Geometry.Vector.VectorFixed: instance GHC.Generics.Generic (Data.Geometry.Vector.VectorFixed.Vector d r)
+ Data.Geometry.Vector.VectorFixed: vectorFromList :: Arity d => [a] -> Maybe (Vector d a)
+ Data.Geometry.Vector.VectorFixed: vectorFromListUnsafe :: Arity d => [a] -> Vector d a
+ Data.PlanarGraph: boundaryVertices :: FaceId s w -> PlanarGraph s w v e f -> Vector (VertexId s w)
+ Data.PlanarGraph: buildEdgeOracle :: forall f s w e. (Foldable f) => [(VertexId s w, f (VertexId s w :+ e))] -> EdgeOracle s w e
+ Data.PlanarGraph: data EdgeOracle s w a
+ Data.PlanarGraph: edgeOracle :: PlanarGraph s w v e f -> EdgeOracle s w ()
+ Data.PlanarGraph: findEdge :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Maybe a
+ Data.PlanarGraph: fromAdjacencyLists :: forall s w f. (Foldable f, Functor f) => [(VertexId s w, f (VertexId s w))] -> PlanarGraph s w () () ()
+ Data.PlanarGraph: hasEdge :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Bool
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World) a. GHC.Classes.Eq a => GHC.Classes.Eq (Data.PlanarGraph.EdgeOracle s w a)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World) a. GHC.Show.Show a => GHC.Show.Show (Data.PlanarGraph.EdgeOracle s w a)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World) v e f. (GHC.Classes.Eq f, GHC.Classes.Eq e, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.PlanarGraph.PlanarGraph s w v e f)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World) v e f. (GHC.Show.Show f, GHC.Show.Show e, GHC.Show.Show v) => GHC.Show.Show (Data.PlanarGraph.PlanarGraph s w v e f)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). Data.Foldable.Foldable (Data.PlanarGraph.EdgeOracle s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). Data.Traversable.Traversable (Data.PlanarGraph.EdgeOracle s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Base.Functor (Data.PlanarGraph.EdgeOracle s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Eq (Data.PlanarGraph.FaceId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Eq (Data.PlanarGraph.VertexId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Ord (Data.PlanarGraph.FaceId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Classes.Ord (Data.PlanarGraph.VertexId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Enum.Enum (Data.PlanarGraph.VertexId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Show.Show (Data.PlanarGraph.FaceId s w)
+ Data.PlanarGraph: instance forall k (s :: k) (w :: Data.PlanarGraph.World). GHC.Show.Show (Data.PlanarGraph.VertexId s w)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Classes.Eq (Data.PlanarGraph.Arc s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Classes.Eq (Data.PlanarGraph.Dart s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Classes.Ord (Data.PlanarGraph.Arc s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Classes.Ord (Data.PlanarGraph.Dart s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Enum.Bounded (Data.PlanarGraph.Arc s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Enum.Enum (Data.PlanarGraph.Arc s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Enum.Enum (Data.PlanarGraph.Dart s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Show.Show (Data.PlanarGraph.Arc s)
+ Data.PlanarGraph: instance forall k (s :: k). GHC.Show.Show (Data.PlanarGraph.Dart s)
+ Data.PlaneGraph: faceToSimplePolygon :: FaceId s w -> PlaneGraph s w p e f r -> SimplePolygon p r :+ f
+ Data.Range: covers :: (Ord a) => Range a -> Range a -> Bool
+ Data.Range: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Range.EndPoint a)
+ Data.Range: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Range.Range a)
+ Data.Range: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Range.EndPoint a)
+ Data.Range: instance GHC.Generics.Generic (Data.Range.EndPoint a)
+ Data.Range: instance GHC.Generics.Generic (Data.Range.Range a)
+ Data.Seq: (<|) :: a -> LSeq n a -> LSeq (1 + n) a
+ Data.Seq: (><) :: LSeq n a -> LSeq m a -> LSeq (n + m) a
+ Data.Seq: (|>) :: LSeq n a -> a -> LSeq (1 + n) a
+ Data.Seq: [:<] :: a -> LSeq n a -> ViewL (1 + n) a
+ Data.Seq: [:>] :: LSeq n a -> a -> ViewR (1 + n) a
+ Data.Seq: adjust :: (a -> a) -> Int -> LSeq n a -> LSeq n a
+ Data.Seq: data LSeq (n :: Nat) a
+ Data.Seq: data ViewL n a
+ Data.Seq: data ViewR n a
+ Data.Seq: drop :: Int -> LSeq n a -> LSeq 0 a
+ Data.Seq: empty :: LSeq 0 a
+ Data.Seq: eval :: forall proxy n m a. KnownNat n => proxy n -> LSeq m a -> Maybe (LSeq n a)
+ Data.Seq: fromList :: Foldable f => f a -> LSeq 0 a
+ Data.Seq: fromNonEmpty :: NonEmpty a -> LSeq 1 a
+ Data.Seq: fromSeq :: Seq a -> LSeq 0 a
+ Data.Seq: index :: LSeq n a -> Int -> a
+ Data.Seq: infix 5 ><
+ Data.Seq: infixl 5 :|>
+ Data.Seq: infixr 5 :<<
+ Data.Seq: instance Control.Lens.At.Ixed (Data.Seq.LSeq n a)
+ Data.Seq: instance Data.Foldable.Foldable (Data.Seq.LSeq n)
+ Data.Seq: instance Data.Foldable.Foldable (Data.Seq.ViewL n)
+ Data.Seq: instance Data.Foldable.Foldable (Data.Seq.ViewR n)
+ Data.Seq: instance Data.Semigroup.Semigroup (Data.Seq.LSeq n a)
+ Data.Seq: instance Data.Semigroup.Semigroup (Data.Seq.ViewL n a)
+ Data.Seq: instance Data.Semigroup.Semigroup (Data.Seq.ViewR n a)
+ Data.Seq: instance Data.Traversable.Traversable (Data.Seq.LSeq n)
+ Data.Seq: instance Data.Traversable.Traversable (Data.Seq.ViewL n)
+ Data.Seq: instance Data.Traversable.Traversable (Data.Seq.ViewR n)
+ Data.Seq: instance GHC.Base.Functor (Data.Seq.LSeq n)
+ Data.Seq: instance GHC.Base.Functor (Data.Seq.ViewL n)
+ Data.Seq: instance GHC.Base.Functor (Data.Seq.ViewR n)
+ Data.Seq: instance GHC.Base.Monoid (Data.Seq.LSeq 0 a)
+ Data.Seq: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Seq.LSeq n a)
+ Data.Seq: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Seq.ViewL n a)
+ Data.Seq: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Seq.ViewR n a)
+ Data.Seq: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Seq.LSeq n a)
+ Data.Seq: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Seq.ViewL n a)
+ Data.Seq: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Seq.ViewR n a)
+ Data.Seq: instance GHC.Read.Read a => GHC.Read.Read (Data.Seq.LSeq n a)
+ Data.Seq: instance GHC.Show.Show a => GHC.Show.Show (Data.Seq.LSeq n a)
+ Data.Seq: instance GHC.Show.Show a => GHC.Show.Show (Data.Seq.ViewL n a)
+ Data.Seq: instance GHC.Show.Show a => GHC.Show.Show (Data.Seq.ViewR n a)
+ Data.Seq: mapWithIndex :: (Int -> a -> b) -> LSeq n a -> LSeq n b
+ Data.Seq: partition :: (a -> Bool) -> LSeq n a -> (LSeq 0 a, LSeq 0 a)
+ Data.Seq: promise :: LSeq m a -> LSeq n a
+ Data.Seq: take :: Int -> LSeq n a -> LSeq 0 a
+ Data.Seq: toNonEmpty :: LSeq (1 + n) a -> NonEmpty a
+ Data.Seq: toSeq :: LSeq n a -> Seq a
+ Data.Seq: unstableSortBy :: (a -> a -> Ordering) -> LSeq n a -> LSeq n a
+ Data.Seq: viewl :: LSeq (1 + n) a -> ViewL (1 + n) a
+ Data.Seq: viewr :: LSeq (1 + n) a -> ViewR (1 + n) a
+ Data.Seq2: partition :: (a -> Bool) -> Seq2 a -> (Seq a, Seq a)
+ Data.Seq2: viewL1FromSeq :: Seq a -> ViewL1 a
+ Data.Util: SP :: !a -> !b -> SP a b
+ Data.Util: STR :: !a -> !b -> !c -> STR a b c
+ Data.Util: [fst'] :: STR a b c -> !a
+ Data.Util: [snd'] :: STR a b c -> !b
+ Data.Util: [trd'] :: STR a b c -> !c
+ Data.Util: data SP a b
+ Data.Util: data STR a b c
+ Data.Util: instance (Data.Semigroup.Semigroup a, Data.Semigroup.Semigroup b) => Data.Semigroup.Semigroup (Data.Util.SP a b)
+ Data.Util: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Util.SP a b)
+ Data.Util: instance (GHC.Classes.Eq c, GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Util.STR a b c)
+ Data.Util: instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Util.SP a b)
+ Data.Util: instance (GHC.Classes.Ord c, GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Util.STR a b c)
+ Data.Util: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Data.Util.SP a b)
+ Data.Util: instance (GHC.Show.Show c, GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Data.Util.STR a b c)
+ Data.Util: instance Control.Lens.Tuple.Field1 (Data.Util.SP a b) (Data.Util.SP c b) a c
+ Data.Util: instance Control.Lens.Tuple.Field1 (Data.Util.STR a b c) (Data.Util.STR d b c) a d
+ Data.Util: instance Control.Lens.Tuple.Field2 (Data.Util.SP a b) (Data.Util.SP a c) b c
+ Data.Util: instance Control.Lens.Tuple.Field2 (Data.Util.STR a b c) (Data.Util.STR a d c) b d
+ Data.Util: instance Control.Lens.Tuple.Field3 (Data.Util.STR a b c) (Data.Util.STR a b d) c d
+ Data.Util: instance Data.Bifunctor.Bifunctor Data.Util.SP
+ Data.Util: instance GHC.Base.Functor (Data.Util.SP a)
+ Data.Util: instance GHC.Base.Functor (Data.Util.STR a b)
+ Data.Util: type Two a = SP a a
- Algorithms.Geometry.ConvexHull.DivideAndConqueror: convexHull :: (Ord r, Num r) => NonEmpty (Point 2 r :+ p) -> ConvexHull p r
+ Algorithms.Geometry.ConvexHull.DivideAndConqueror: convexHull :: (Ord r, Num r) => NonEmpty (Point 2 r :+ p) -> ConvexPolygon p r
- Algorithms.Geometry.ConvexHull.GrahamScan: convexHull :: (Ord r, Num r) => NonEmpty (Point 2 r :+ p) -> ConvexHull p r
+ Algorithms.Geometry.ConvexHull.GrahamScan: convexHull :: (Ord r, Num r) => NonEmpty (Point 2 r :+ p) -> ConvexPolygon p r
- Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror: firsts :: SimplePolygon (p :+ VertexID) r -> IntMap VertexID
+ Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror: firsts :: ConvexPolygon (p :+ VertexID) r -> IntMap VertexID
- Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror: fromHull :: Ord r => Mapping p r -> SimplePolygon (p :+ q) r -> Adj
+ Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror: fromHull :: Ord r => Mapping p r -> ConvexPolygon (p :+ q) r -> Adj
- Algorithms.Geometry.DelaunayTriangulation.Naive: delaunayTriangulation :: (Ord r, Fractional r, Show r, Show p) => NonEmpty (Point 2 r :+ p) -> Triangulation p r
+ Algorithms.Geometry.DelaunayTriangulation.Naive: delaunayTriangulation :: (Ord r, Fractional r) => NonEmpty (Point 2 r :+ p) -> Triangulation p r
- Algorithms.Geometry.DelaunayTriangulation.Types: neighbours :: Lens' (Triangulation p_a5uyz r_a5uyA) (Vector (CList VertexID))
+ Algorithms.Geometry.DelaunayTriangulation.Types: neighbours :: forall p_a3De0 r_a3De1. Lens' (Triangulation p_a3De0 r_a3De1) (Vector (CList VertexID))
- Algorithms.Geometry.DelaunayTriangulation.Types: positions :: Lens (Triangulation p_a5uyz r_a5uyA) (Triangulation p_a5uCq r_a5uyA) (Vector ((:+) (Point 2 r_a5uyA) p_a5uyz)) (Vector ((:+) (Point 2 r_a5uyA) p_a5uCq))
+ Algorithms.Geometry.DelaunayTriangulation.Types: positions :: forall p_a3De0 r_a3De1 p_a3Dhq. Lens (Triangulation p_a3De0 r_a3De1) (Triangulation p_a3Dhq r_a3De1) (Vector ((:+) (Point 2 r_a3De1) p_a3De0)) (Vector ((:+) (Point 2 r_a3De1) p_a3Dhq))
- Algorithms.Geometry.DelaunayTriangulation.Types: toPlaneGraph :: proxy s -> Triangulation p r -> PlaneGraph s Primal_ p () () r
+ Algorithms.Geometry.DelaunayTriangulation.Types: toPlaneGraph :: forall proxy s p r. proxy s -> Triangulation p r -> PlaneGraph s Primal_ p () () r
- Algorithms.Geometry.DelaunayTriangulation.Types: vertexIds :: Lens' (Triangulation p_a5uyz r_a5uyA) (Map (Point 2 r_a5uyA) VertexID)
+ Algorithms.Geometry.DelaunayTriangulation.Types: vertexIds :: forall p_a3De0 r_a3De1. Lens' (Triangulation p_a3De0 r_a3De1) (Map (Point 2 r_a3De1) VertexID)
- Algorithms.Geometry.SmallestEnclosingBall.Types: definingPoints :: Lens (DiskResult p_a5pns r_a5pnt) (DiskResult p_a5pzy r_a5pnt) (TwoOrThree ((:+) (Point 2 r_a5pnt) p_a5pns)) (TwoOrThree ((:+) (Point 2 r_a5pnt) p_a5pzy))
+ Algorithms.Geometry.SmallestEnclosingBall.Types: definingPoints :: forall p_a3srd r_a3sre p_a3sEo. Lens (DiskResult p_a3srd r_a3sre) (DiskResult p_a3sEo r_a3sre) (TwoOrThree ((:+) (Point 2 r_a3sre) p_a3srd)) (TwoOrThree ((:+) (Point 2 r_a3sre) p_a3sEo))
- Algorithms.Geometry.SmallestEnclosingBall.Types: enclosingDisk :: Lens' (DiskResult p_a5pns r_a5pnt) (Disk () r_a5pnt)
+ Algorithms.Geometry.SmallestEnclosingBall.Types: enclosingDisk :: forall p_a3srd r_a3sre. Lens' (DiskResult p_a3srd r_a3sre) (Disk () r_a3sre)
- Algorithms.Graph.DFS: dfs :: PlanarGraph s w v e f -> VertexId s w -> Tree (VertexId s w)
+ Algorithms.Graph.DFS: dfs :: forall s w v e f. PlanarGraph s w v e f -> VertexId s w -> Tree (VertexId s w)
- Algorithms.Graph.DFS: dfs' :: AdjacencyLists s w -> VertexId s w -> Tree (VertexId s w)
+ Algorithms.Graph.DFS: dfs' :: forall s w. AdjacencyLists s w -> VertexId s w -> Tree (VertexId s w)
- Algorithms.Graph.MST: makeTree :: PlanarGraph s w v e f -> [Dart s] -> Tree (VertexId s w)
+ Algorithms.Graph.MST: makeTree :: forall s w v e f. PlanarGraph s w v e f -> [Dart s] -> Tree (VertexId s w)
- Data.BinaryTree: Leaf :: a -> BinLeafTree v a
+ Data.BinaryTree: Leaf :: !a -> BinLeafTree v a
- Data.BinaryTree: Node :: (BinLeafTree v a) -> v -> (BinLeafTree v a) -> BinLeafTree v a
+ Data.BinaryTree: Node :: (BinLeafTree v a) -> !v -> (BinLeafTree v a) -> BinLeafTree v a
- Data.Geometry.Ball: Ball :: Point d r :+ p -> r -> Ball d p r
+ Data.Geometry.Ball: Ball :: !(Point d r :+ p) -> !r -> Ball d p r
- Data.Geometry.Ball: [_center] :: Ball d p r -> Point d r :+ p
+ Data.Geometry.Ball: [_center] :: Ball d p r -> !(Point d r :+ p)
- Data.Geometry.Ball: [_squaredRadius] :: Ball d p r -> r
+ Data.Geometry.Ball: [_squaredRadius] :: Ball d p r -> !r
- Data.Geometry.Ball: center :: Lens (Ball d_a3LuK p_a3LuL r_a3LuM) (Ball d_a3Lvj p_a3Lvk r_a3LuM) ((:+) (Point d_a3LuK r_a3LuM) p_a3LuL) ((:+) (Point d_a3Lvj r_a3LuM) p_a3Lvk)
+ Data.Geometry.Ball: center :: forall d_a1MIE p_a1MIF r_a1MIG d_a1MKU p_a1MKV. Lens (Ball d_a1MIE p_a1MIF r_a1MIG) (Ball d_a1MKU p_a1MKV r_a1MIG) ((:+) (Point d_a1MIE r_a1MIG) p_a1MIF) ((:+) (Point d_a1MKU r_a1MIG) p_a1MKV)
- Data.Geometry.Ball: squaredRadius :: Lens' (Ball d_a3LuK p_a3LuL r_a3LuM) r_a3LuM
+ Data.Geometry.Ball: squaredRadius :: forall d_a1MIE p_a1MIF r_a1MIG. Lens' (Ball d_a1MIE p_a1MIF r_a1MIG) r_a1MIG
- Data.Geometry.Box.Internal: Box :: Min (Point d r) :+ p -> Max (Point d r) :+ p -> Box d p r
+ Data.Geometry.Box.Internal: Box :: !(CWMin (Point d r) :+ p) -> !(CWMax (Point d r) :+ p) -> Box d p r
- Data.Geometry.Box.Internal: [_maxP] :: Box d p r -> Max (Point d r) :+ p
+ Data.Geometry.Box.Internal: [_maxP] :: Box d p r -> !(CWMax (Point d r) :+ p)
- Data.Geometry.Box.Internal: [_minP] :: Box d p r -> Min (Point d r) :+ p
+ Data.Geometry.Box.Internal: [_minP] :: Box d p r -> !(CWMin (Point d r) :+ p)
- Data.Geometry.Box.Internal: boundingBox :: (IsBoxable g, Monoid p, Semigroup p, Ord (NumType g)) => g -> Box (Dimension g) p (NumType g)
+ Data.Geometry.Box.Internal: boundingBox :: (IsBoxable g, Ord (NumType g)) => g -> Box (Dimension g) () (NumType g)
- Data.Geometry.Box.Internal: boundingBoxList :: (IsBoxable g, Monoid p, Foldable1 c, Ord (NumType g), IsAlwaysTrueBoundingBox g p) => c g -> Box (Dimension g) p (NumType g)
+ Data.Geometry.Box.Internal: boundingBoxList :: (IsBoxable g, Foldable1 c, Ord (NumType g), Arity (Dimension g)) => c g -> Box (Dimension g) () (NumType g)
- Data.Geometry.Box.Internal: boundingBoxList' :: (IsBoxable g, Monoid p, Ord (NumType g), IsAlwaysTrueBoundingBox g p) => [g] -> Box (Dimension g) p (NumType g)
+ Data.Geometry.Box.Internal: boundingBoxList' :: (IsBoxable g, Ord (NumType g), Arity (Dimension g)) => [g] -> Box (Dimension g) () (NumType g)
- Data.Geometry.Box.Internal: extent :: (Arity d) => Box d p r -> Vector d (Range r)
+ Data.Geometry.Box.Internal: extent :: Arity d => Box d p r -> Vector d (Range r)
- Data.Geometry.Box.Internal: maxP :: Lens' (Box d_a329K p_a329L r_a329M) ((:+) (Max (Point d_a329K r_a329M)) p_a329L)
+ Data.Geometry.Box.Internal: maxP :: forall d_a1Dti p_a1Dtj r_a1Dtk. Lens' (Box d_a1Dti p_a1Dtj r_a1Dtk) ((:+) (CWMax (Point d_a1Dti r_a1Dtk)) p_a1Dtj)
- Data.Geometry.Box.Internal: minP :: Lens' (Box d_a329K p_a329L r_a329M) ((:+) (Min (Point d_a329K r_a329M)) p_a329L)
+ Data.Geometry.Box.Internal: minP :: forall d_a1Dti p_a1Dtj r_a1Dtk. Lens' (Box d_a1Dti p_a1Dtj r_a1Dtk) ((:+) (CWMin (Point d_a1Dti r_a1Dtk)) p_a1Dtj)
- Data.Geometry.Box.Internal: widthIn :: (Arity d, Num r, Index' (i - 1) d) => proxy i -> Box d p r -> r
+ Data.Geometry.Box.Internal: widthIn :: forall proxy p i d r. (Arity d, Num r, Index' (i - 1) d) => proxy i -> Box d p r -> r
- Data.Geometry.HalfLine: halfLineDirection :: Lens' (HalfLine d_a3G71 r_a3G72) (Vector d_a3G71 r_a3G72)
+ Data.Geometry.HalfLine: halfLineDirection :: forall d_a1QUk r_a1QUl. Lens' (HalfLine d_a1QUk r_a1QUl) (Vector d_a1QUk r_a1QUl)
- Data.Geometry.HalfLine: startPoint :: Lens' (HalfLine d_a3G71 r_a3G72) (Point d_a3G71 r_a3G72)
+ Data.Geometry.HalfLine: startPoint :: forall d_a1QUk r_a1QUl. Lens' (HalfLine d_a1QUk r_a1QUl) (Point d_a1QUk r_a1QUl)
- Data.Geometry.Interval: class HasEnd t where type family EndCore t type family EndExtra t
+ Data.Geometry.Interval: class HasEnd t where type EndCore t type EndExtra t where {
- Data.Geometry.Interval: class HasStart t where type family StartCore t type family StartExtra t
+ Data.Geometry.Interval: class HasStart t where type StartCore t type StartExtra t where {
- Data.Geometry.Ipe.Attributes: arrowName :: Lens' (IpeArrow r_a2qrl) Text
+ Data.Geometry.Ipe.Attributes: arrowName :: forall r_aZgC. Lens' (IpeArrow r_aZgC) Text
- Data.Geometry.Ipe.Attributes: arrowSize :: Lens (IpeArrow r_a2qrl) (IpeArrow r_a2ro5) (IpeSize r_a2qrl) (IpeSize r_a2ro5)
+ Data.Geometry.Ipe.Attributes: arrowSize :: forall r_aZgC r_a10iH. Lens (IpeArrow r_aZgC) (IpeArrow r_a10iH) (IpeSize r_aZgC) (IpeSize r_a10iH)
- Data.Geometry.Ipe.Attributes: getAttr :: Iso (Attr f_a2pGR label_a2pGS) (Attr f_a2ql0 label_a2ql1) (Maybe (Apply f_a2pGR label_a2pGS :: *)) (Maybe (Apply f_a2ql0 label_a2ql1 :: *))
+ Data.Geometry.Ipe.Attributes: getAttr :: forall f_aYNo label_aYNp f_aZat label_aZau. Iso (Attr f_aYNo label_aYNp) (Attr f_aZat label_aZau) (Maybe (Apply f_aYNo label_aYNp :: Type)) (Maybe (Apply f_aZat label_aZau :: Type))
- Data.Geometry.Ipe.Attributes: setAttr :: (at ∈ ats) => proxy at -> Apply f at -> Attributes f ats -> Attributes f ats
+ Data.Geometry.Ipe.Attributes: setAttr :: forall proxy at ats f. (at ∈ ats) => proxy at -> Apply f at -> Attributes f ats -> Attributes f ats
- Data.Geometry.Ipe.Attributes: takeAttr :: (at ∈ ats) => proxy at -> Attributes f ats -> (Maybe (Apply f at), Attributes f ats)
+ Data.Geometry.Ipe.Attributes: takeAttr :: forall proxy at ats f. (at ∈ ats) => proxy at -> Attributes f ats -> (Maybe (Apply f at), Attributes f ats)
- Data.Geometry.Ipe.Attributes: type SAttributeUniverse (z_a2pG4 :: AttributeUniverse) = Sing z_a2pG4
+ Data.Geometry.Ipe.Attributes: type SAttributeUniverse = (Sing :: AttributeUniverse -> Type)
- Data.Geometry.Ipe.Attributes: unAttrs :: Iso (Attributes f_a2qla ats_a2qlb) (Attributes f_a2qqx ats_a2qqy) (Rec (Attr f_a2qla :: u_a2ql9 -> *) ats_a2qlb) (Rec (Attr f_a2qqx :: u_a2ql9 -> *) ats_a2qqy)
+ Data.Geometry.Ipe.Attributes: unAttrs :: forall f_aZaD ats_aZaE f_aZfu ats_aZfv. Iso (Attributes f_aZaD ats_aZaE) (Attributes f_aZfu ats_aZfv) (Rec (Attr f_aZaD :: u_aZaC -> Type) ats_aZaE) (Rec (Attr f_aZfu :: u_aZaC -> Type) ats_aZfv)
- Data.Geometry.Ipe.Attributes: unSetAttr :: (at ∈ ats) => proxy at -> Attributes f ats -> Attributes f ats
+ Data.Geometry.Ipe.Attributes: unSetAttr :: forall proxy at ats f. (at ∈ ats) => proxy at -> Attributes f ats -> Attributes f ats
- Data.Geometry.Ipe.IpeOut: class ToObject (DefaultIpeOut g) => HasDefaultIpeOut g where type family DefaultIpeOut g :: * -> *
+ Data.Geometry.Ipe.IpeOut: class ToObject (DefaultIpeOut g) => HasDefaultIpeOut g where type DefaultIpeOut g :: * -> * where {
- Data.Geometry.Ipe.Reader: fromIpeXML :: (Coordinate r, IpeRead (t r)) => ByteString -> Either ConversionError (t r)
+ Data.Geometry.Ipe.Reader: fromIpeXML :: IpeRead (t r) => ByteString -> Either ConversionError (t r)
- Data.Geometry.Ipe.Reader: ipeReadAttrs :: (f ~ AttrMapSym1 r, ats ~ AttributesOf i, RecApplicative ats, RecAll (Attr f) ats IpeReadAttr, AllSatisfy IpeAttrName ats) => proxy i -> proxy' r -> Node Text Text -> Either ConversionError (IpeAttributes i r)
+ Data.Geometry.Ipe.Reader: ipeReadAttrs :: forall proxy proxy' i r f ats. (f ~ AttrMapSym1 r, ats ~ AttributesOf i, RecApplicative ats, RecAll (Attr f) ats IpeReadAttr, AllSatisfy IpeAttrName ats) => proxy i -> proxy' r -> Node Text Text -> Either ConversionError (IpeAttributes i r)
- Data.Geometry.Ipe.Reader: ipeReadRec :: (RecApplicative ats, RecAll (Attr f) ats IpeReadAttr, AllSatisfy IpeAttrName ats) => Proxy f -> Proxy ats -> Node Text Text -> Either ConversionError (Rec (Attr f) ats)
+ Data.Geometry.Ipe.Reader: ipeReadRec :: forall f ats. (RecApplicative ats, RecAll (Attr f) ats IpeReadAttr, AllSatisfy IpeAttrName ats) => Proxy f -> Proxy ats -> Node Text Text -> Either ConversionError (Rec (Attr f) ats)
- Data.Geometry.Ipe.Types: _ArcSegment :: Prism' (PathSegment r_a41fH) ()
+ Data.Geometry.Ipe.Types: _ArcSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) ()
- Data.Geometry.Ipe.Types: _ArcTo :: Prism' (Operation r_a41wx) (Matrix 3 3 r_a41wx, Point 2 r_a41wx)
+ Data.Geometry.Ipe.Types: _ArcTo :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Matrix 3 3 r_a21Kv, Point 2 r_a21Kv)
- Data.Geometry.Ipe.Types: _ClosePath :: Prism' (Operation r_a41wx) ()
+ Data.Geometry.Ipe.Types: _ClosePath :: forall r_a21Kv. Prism' (Operation r_a21Kv) ()
- Data.Geometry.Ipe.Types: _ClosedSpline :: Prism' (Operation r_a41wx) [Point 2 r_a41wx]
+ Data.Geometry.Ipe.Types: _ClosedSpline :: forall r_a21Kv. Prism' (Operation r_a21Kv) [Point 2 r_a21Kv]
- Data.Geometry.Ipe.Types: _ClosedSplineSegment :: Prism' (PathSegment r_a41fH) ()
+ Data.Geometry.Ipe.Types: _ClosedSplineSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) ()
- Data.Geometry.Ipe.Types: _CubicBezierSegment :: Prism' (PathSegment r_a41fH) ()
+ Data.Geometry.Ipe.Types: _CubicBezierSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) ()
- Data.Geometry.Ipe.Types: _CurveTo :: Prism' (Operation r_a41wx) (Point 2 r_a41wx, Point 2 r_a41wx, Point 2 r_a41wx)
+ Data.Geometry.Ipe.Types: _CurveTo :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Point 2 r_a21Kv, Point 2 r_a21Kv, Point 2 r_a21Kv)
- Data.Geometry.Ipe.Types: _Ellipse :: Prism' (Operation r_a41wx) (Matrix 3 3 r_a41wx)
+ Data.Geometry.Ipe.Types: _Ellipse :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Matrix 3 3 r_a21Kv)
- Data.Geometry.Ipe.Types: _EllipseSegment :: Prism' (PathSegment r_a41fH) (Matrix 3 3 r_a41fH)
+ Data.Geometry.Ipe.Types: _EllipseSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) (Matrix 3 3 r_a21sF)
- Data.Geometry.Ipe.Types: _IpeGroup :: Prism' (IpeObject r_a41Qz) (IpeObject' Group r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpeGroup :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' Group r_a221g)
- Data.Geometry.Ipe.Types: _IpeImage :: Prism' (IpeObject r_a41Qz) (IpeObject' Image r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpeImage :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' Image r_a221g)
- Data.Geometry.Ipe.Types: _IpeMiniPage :: Prism' (IpeObject r_a41Qz) (IpeObject' MiniPage r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpeMiniPage :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' MiniPage r_a221g)
- Data.Geometry.Ipe.Types: _IpePath :: Prism' (IpeObject r_a41Qz) (IpeObject' Path r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpePath :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' Path r_a221g)
- Data.Geometry.Ipe.Types: _IpeTextLabel :: Prism' (IpeObject r_a41Qz) (IpeObject' TextLabel r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpeTextLabel :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' TextLabel r_a221g)
- Data.Geometry.Ipe.Types: _IpeUse :: Prism' (IpeObject r_a41Qz) (IpeObject' IpeSymbol r_a41Qz)
+ Data.Geometry.Ipe.Types: _IpeUse :: forall r_a221g. Prism' (IpeObject r_a221g) (IpeObject' IpeSymbol r_a221g)
- Data.Geometry.Ipe.Types: _LineTo :: Prism' (Operation r_a41wx) (Point 2 r_a41wx)
+ Data.Geometry.Ipe.Types: _LineTo :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Point 2 r_a21Kv)
- Data.Geometry.Ipe.Types: _MoveTo :: Prism' (Operation r_a41wx) (Point 2 r_a41wx)
+ Data.Geometry.Ipe.Types: _MoveTo :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Point 2 r_a21Kv)
- Data.Geometry.Ipe.Types: _PolyLineSegment :: Prism' (PathSegment r_a41fH) (PolyLine 2 () r_a41fH)
+ Data.Geometry.Ipe.Types: _PolyLineSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) (PolyLine 2 () r_a21sF)
- Data.Geometry.Ipe.Types: _PolygonPath :: Prism' (PathSegment r_a41fH) (SimplePolygon () r_a41fH)
+ Data.Geometry.Ipe.Types: _PolygonPath :: forall r_a21sF. Prism' (PathSegment r_a21sF) (SimplePolygon () r_a21sF)
- Data.Geometry.Ipe.Types: _QCurveTo :: Prism' (Operation r_a41wx) (Point 2 r_a41wx, Point 2 r_a41wx)
+ Data.Geometry.Ipe.Types: _QCurveTo :: forall r_a21Kv. Prism' (Operation r_a21Kv) (Point 2 r_a21Kv, Point 2 r_a21Kv)
- Data.Geometry.Ipe.Types: _QuadraticBezierSegment :: Prism' (PathSegment r_a41fH) ()
+ Data.Geometry.Ipe.Types: _QuadraticBezierSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) ()
- Data.Geometry.Ipe.Types: _Spline :: Prism' (Operation r_a41wx) [Point 2 r_a41wx]
+ Data.Geometry.Ipe.Types: _Spline :: forall r_a21Kv. Prism' (Operation r_a21Kv) [Point 2 r_a21Kv]
- Data.Geometry.Ipe.Types: _SplineSegment :: Prism' (PathSegment r_a41fH) ()
+ Data.Geometry.Ipe.Types: _SplineSegment :: forall r_a21sF. Prism' (PathSegment r_a21sF) ()
- Data.Geometry.Ipe.Types: content :: Lens (IpePage r_a42JY) (IpePage r_a42Nr) [IpeObject r_a42JY] [IpeObject r_a42Nr]
+ Data.Geometry.Ipe.Types: content :: forall r_a22Gd r_a22Js. Lens (IpePage r_a22Gd) (IpePage r_a22Js) [IpeObject r_a22Gd] [IpeObject r_a22Js]
- Data.Geometry.Ipe.Types: data AttrMapSym0 (l_a41Qa :: TyFun * (TyFun AttributeUniverse * -> *))
+ Data.Geometry.Ipe.Types: data AttrMapSym0 (l_a220R :: TyFun Type (TyFun AttributeUniverse Type -> Type))
- Data.Geometry.Ipe.Types: data AttrMapSym1 (l_a41Qd :: *) (l_a41Qc :: TyFun AttributeUniverse *)
+ Data.Geometry.Ipe.Types: data AttrMapSym1 (l_a220U :: Type) (l_a220T :: TyFun AttributeUniverse Type)
- Data.Geometry.Ipe.Types: groupItems :: Iso (Group r_a41QH) (Group r_a42cp) [IpeObject r_a41QH] [IpeObject r_a42cp]
+ Data.Geometry.Ipe.Types: groupItems :: forall r_a221o r_a22fP. Iso (Group r_a221o) (Group r_a22fP) [IpeObject r_a221o] [IpeObject r_a22fP]
- Data.Geometry.Ipe.Types: imageData :: Lens' (Image r_a40N2) ()
+ Data.Geometry.Ipe.Types: imageData :: forall r_a20YX. Lens' (Image r_a20YX) ()
- Data.Geometry.Ipe.Types: layers :: Lens' (IpePage r_a42JY) [LayerName]
+ Data.Geometry.Ipe.Types: layers :: forall r_a22Gd. Lens' (IpePage r_a22Gd) [LayerName]
- Data.Geometry.Ipe.Types: pages :: Lens (IpeFile r_a42NQ) (IpeFile r_a42SK) (NonEmpty (IpePage r_a42NQ)) (NonEmpty (IpePage r_a42SK))
+ Data.Geometry.Ipe.Types: pages :: forall r_a22JR r_a22Ol. Lens (IpeFile r_a22JR) (IpeFile r_a22Ol) (NonEmpty (IpePage r_a22JR)) (NonEmpty (IpePage r_a22Ol))
- Data.Geometry.Ipe.Types: pathSegments :: Iso (Path r_a41mB) (Path r_a41wk) (ViewL1 (PathSegment r_a41mB)) (ViewL1 (PathSegment r_a41wk))
+ Data.Geometry.Ipe.Types: pathSegments :: forall r_a21yJ r_a21Ki. Iso (Path r_a21yJ) (Path r_a21Ki) (ViewL1 (PathSegment r_a21yJ)) (ViewL1 (PathSegment r_a21Ki))
- Data.Geometry.Ipe.Types: preamble :: Lens' (IpeFile r_a42NQ) (Maybe IpePreamble)
+ Data.Geometry.Ipe.Types: preamble :: forall r_a22JR. Lens' (IpeFile r_a22JR) (Maybe IpePreamble)
- Data.Geometry.Ipe.Types: rect :: Lens (Image r_a40N2) (Image r_a40XC) (Rectangle () r_a40N2) (Rectangle () r_a40XC)
+ Data.Geometry.Ipe.Types: rect :: forall r_a20YX r_a21aK. Lens (Image r_a20YX) (Image r_a21aK) (Rectangle () r_a20YX) (Rectangle () r_a21aK)
- Data.Geometry.Ipe.Types: styles :: Lens' (IpeFile r_a42NQ) [IpeStyle]
+ Data.Geometry.Ipe.Types: styles :: forall r_a22JR. Lens' (IpeFile r_a22JR) [IpeStyle]
- Data.Geometry.Ipe.Types: symbolName :: Lens' (IpeSymbol r_a40XW) Text
+ Data.Geometry.Ipe.Types: symbolName :: forall r_a21b4. Lens' (IpeSymbol r_a21b4) Text
- Data.Geometry.Ipe.Types: symbolPoint :: Lens (IpeSymbol r_a40XW) (IpeSymbol r_a41fn) (Point 2 r_a40XW) (Point 2 r_a41fn)
+ Data.Geometry.Ipe.Types: symbolPoint :: forall r_a21b4 r_a21sl. Lens (IpeSymbol r_a21b4) (IpeSymbol r_a21sl) (Point 2 r_a21b4) (Point 2 r_a21sl)
- Data.Geometry.Ipe.Types: type AttrMapSym2 (t_a41Q8 :: *) (t_a41Q9 :: AttributeUniverse) = AttrMap t_a41Q8 t_a41Q9
+ Data.Geometry.Ipe.Types: type AttrMapSym2 (t_a220P :: Type) (t_a220Q :: AttributeUniverse) = AttrMap t_a220P t_a220Q
- Data.Geometry.Ipe.Types: views :: Lens' (IpePage r_a42JY) [View]
+ Data.Geometry.Ipe.Types: views :: forall r_a22Gd. Lens' (IpePage r_a22Gd) [View]
- Data.Geometry.Line.Internal: Line :: Point d r -> Vector d r -> Line d r
+ Data.Geometry.Line.Internal: Line :: !(Point d r) -> !(Vector d r) -> Line d r
- Data.Geometry.Line.Internal: [_anchorPoint] :: Line d r -> Point d r
+ Data.Geometry.Line.Internal: [_anchorPoint] :: Line d r -> !(Point d r)
- Data.Geometry.Line.Internal: [_direction] :: Line d r -> Vector d r
+ Data.Geometry.Line.Internal: [_direction] :: Line d r -> !(Vector d r)
- Data.Geometry.Line.Internal: anchorPoint :: Lens' (Line d_a2S3G r_a2S3H) (Point d_a2S3G r_a2S3H)
+ Data.Geometry.Line.Internal: anchorPoint :: forall d_a1tq4 r_a1tq5. Lens' (Line d_a1tq4 r_a1tq5) (Point d_a1tq4 r_a1tq5)
- Data.Geometry.Line.Internal: direction :: Lens' (Line d_a2S3G r_a2S3H) (Vector d_a2S3G r_a2S3H)
+ Data.Geometry.Line.Internal: direction :: forall d_a1tq4 r_a1tq5. Lens' (Line d_a1tq4 r_a1tq5) (Vector d_a1tq4 r_a1tq5)
- Data.Geometry.Line.Internal: toLinearFunction :: (Fractional r, Eq r) => Line 2 r -> Maybe (r, r)
+ Data.Geometry.Line.Internal: toLinearFunction :: forall r. (Fractional r, Eq r) => Line 2 r -> Maybe (r, r)
- Data.Geometry.Point: coord :: (Index' (i - 1) d, Arity d) => proxy i -> Lens' (Point d r) r
+ Data.Geometry.Point: coord :: forall proxy i d r. (Index' (i - 1) d, Arity d) => proxy i -> Lens' (Point d r) r
- Data.Geometry.Point: partitionIntoQuadrants :: (Ord r, Arity d, 1 <=. d, 2 <=. d) => Point d r :+ q -> [Point d r :+ p] -> ([Point d r :+ p], [Point d r :+ p], [Point d r :+ p], [Point d r :+ p])
+ Data.Geometry.Point: partitionIntoQuadrants :: (Ord r, 1 <=. d, 2 <=. d) => Point d r :+ q -> [Point d r :+ p] -> ([Point d r :+ p], [Point d r :+ p], [Point d r :+ p], [Point d r :+ p])
- Data.Geometry.Point: quadrant :: (Arity d, Ord r, Num r, 1 <=. d, 2 <=. d) => Point d r :+ p -> Quadrant
+ Data.Geometry.Point: quadrant :: (Ord r, Num r, 1 <=. d, 2 <=. d) => Point d r :+ p -> Quadrant
- Data.Geometry.Point: quadrantWith :: (Arity d, Ord r, 1 <=. d, 2 <=. d) => Point d r :+ q -> Point d r :+ p -> Quadrant
+ Data.Geometry.Point: quadrantWith :: (Ord r, 1 <=. d, 2 <=. d) => Point d r :+ q -> Point d r :+ p -> Quadrant
- Data.Geometry.Point: sortArround :: (Ord r, Num r) => Point 2 r :+ p -> [Point 2 r :+ p] -> [Point 2 r :+ p]
+ Data.Geometry.Point: sortArround :: (Ord r, Num r) => Point 2 r :+ q -> [Point 2 r :+ p] -> [Point 2 r :+ p]
- Data.Geometry.PolyLine: points :: Iso (PolyLine d_a3oNT p_a3oNU r_a3oNV) (PolyLine d_a3oOr p_a3oOs r_a3oOt) (Seq2 ((:+) (Point d_a3oNT r_a3oNV) p_a3oNU)) (Seq2 ((:+) (Point d_a3oOr r_a3oOt) p_a3oOs))
+ Data.Geometry.PolyLine: points :: forall d_a1WaB p_a1WaC r_a1WaD d_a1Wb9 p_a1Wba r_a1Wbb. Iso (PolyLine d_a1WaB p_a1WaC r_a1WaD) (PolyLine d_a1Wb9 p_a1Wba r_a1Wbb) (Seq2 ((:+) (Point d_a1WaB r_a1WaD) p_a1WaC)) (Seq2 ((:+) (Point d_a1Wb9 r_a1Wbb) p_a1Wba))
- Data.Geometry.Polygon: holes :: Lens' (Polygon Multi p r) [Polygon Simple p r]
+ Data.Geometry.Polygon: holes :: forall p r. Lens' (Polygon Multi p r) [Polygon Simple p r]
- Data.Geometry.Polygon: inPolygon :: (Fractional r, Ord r) => Point 2 r -> Polygon t p r -> PointLocationResult
+ Data.Geometry.Polygon: inPolygon :: forall t p r. (Fractional r, Ord r) => Point 2 r -> Polygon t p r -> PointLocationResult
- Data.Geometry.Polygon: outerBoundary :: Lens' (Polygon t p r) (CSeq (Point 2 r :+ p))
+ Data.Geometry.Polygon: outerBoundary :: forall t p r. Lens' (Polygon t p r) (CSeq (Point 2 r :+ p))
- Data.Geometry.Properties: defaultNonEmptyIntersection :: (NoIntersection ∈ IntersectionOf g h, RecApplicative (IntersectionOf g h)) => proxy g -> proxy h -> Intersection g h -> Bool
+ Data.Geometry.Properties: defaultNonEmptyIntersection :: forall g h proxy. (NoIntersection ∈ IntersectionOf g h, RecApplicative (IntersectionOf g h)) => proxy g -> proxy h -> Intersection g h -> Bool
- Data.Geometry.Properties: nonEmptyIntersection :: IsIntersectableWith g h => proxy g -> proxy h -> Intersection g h -> Bool
+ Data.Geometry.Properties: nonEmptyIntersection :: (IsIntersectableWith g h, NoIntersection ∈ IntersectionOf g h, RecApplicative (IntersectionOf g h)) => proxy g -> proxy h -> Intersection g h -> Bool
- Data.Geometry.Slab: unSlab :: Iso (Slab o_a3WeZ a_a3Wf0 r_a3Wf1) (Slab o_a3Wjz a_a3WjA r_a3WjB) (Interval a_a3Wf0 r_a3Wf1) (Interval a_a3WjA r_a3WjB)
+ Data.Geometry.Slab: unSlab :: forall o_a1TcB a_a1TcC r_a1TcD o_a1Thw a_a1Thx r_a1Thy. Iso (Slab o_a1TcB a_a1TcC r_a1TcD) (Slab o_a1Thw a_a1Thx r_a1Thy) (Interval a_a1TcC r_a1TcD) (Interval a_a1Thx r_a1Thy)
- Data.Geometry.SubLine: line :: Lens (SubLine d_a3aOr p_a3aOs r_a3aOt) (SubLine d_a3aP2 p_a3aOs r_a3aOt) (Line d_a3aOr r_a3aOt) (Line d_a3aP2 r_a3aOt)
+ Data.Geometry.SubLine: line :: forall d_a1xgl p_a1xgm r_a1xgn d_a1xgZ. Lens (SubLine d_a1xgl p_a1xgm r_a1xgn) (SubLine d_a1xgZ p_a1xgm r_a1xgn) (Line d_a1xgl r_a1xgn) (Line d_a1xgZ r_a1xgn)
- Data.Geometry.SubLine: subRange :: Lens (SubLine d_a3aOr p_a3aOs r_a3aOt) (SubLine d_a3aOr p_a3aP3 r_a3aOt) (Interval p_a3aOs r_a3aOt) (Interval p_a3aP3 r_a3aOt)
+ Data.Geometry.SubLine: subRange :: forall d_a1xgl p_a1xgm r_a1xgn p_a1xh0. Lens (SubLine d_a1xgl p_a1xgm r_a1xgn) (SubLine d_a1xgl p_a1xh0 r_a1xgn) (Interval p_a1xgm r_a1xgn) (Interval p_a1xh0 r_a1xgn)
- Data.Geometry.Transformation: mkRow :: (Arity d, Num r) => Int -> r -> Vector d r
+ Data.Geometry.Transformation: mkRow :: forall d r. (Arity d, Num r) => Int -> r -> Vector d r
- Data.Geometry.Transformation: transRow :: (Arity n, Index' (n - 1) n, Num r) => Int -> r -> Vector n r
+ Data.Geometry.Transformation: transRow :: forall n r. (Arity n, Index' (n - 1) n, Num r) => Int -> r -> Vector n r
- Data.Geometry.Vector: class Additive (Diff p) => Affine (p :: * -> *) where type family Diff (p :: * -> *) :: * -> *
+ Data.Geometry.Vector: class Additive (Diff p) => Affine (p :: * -> *) where type Diff (p :: * -> *) :: * -> * where {
- Data.Geometry.Vector.VectorFixed: element :: (Arity d, Index' i d) => proxy i -> Lens' (Vector d r) r
+ Data.Geometry.Vector.VectorFixed: element :: forall proxy i d r. (Arity d, Index' i d) => proxy i -> Lens' (Vector d r) r
- Data.Geometry.Vector.VectorFixed: element' :: (KnownNat d, Arity d) => Int -> Traversal' (Vector d r) r
+ Data.Geometry.Vector.VectorFixed: element' :: forall d r. (KnownNat d, Arity d) => Int -> Traversal' (Vector d r) r
- Data.Permutation: indexes :: Lens' (Permutation a_anmR) (Vector (Int, Int))
+ Data.Permutation: indexes :: forall a_aEzZ. Lens' (Permutation a_aEzZ) (Vector (Int, Int))
- Data.Permutation: orbits :: Lens (Permutation a_anmR) (Permutation a_aoSj) (Vector (Orbit a_anmR)) (Vector (Orbit a_aoSj))
+ Data.Permutation: orbits :: forall a_aEzZ a_aECH. Lens (Permutation a_aEzZ) (Permutation a_aECH) (Vector (Orbit a_aEzZ)) (Vector (Orbit a_aECH))
- Data.PlanarGraph: arc :: Lens (Dart s_aHRy) (Dart s_aIhb) (Arc s_aHRy) (Arc s_aIhb)
+ Data.PlanarGraph: arc :: forall s_a1cP8 s_a1d6L. Lens (Dart s_a1cP8) (Dart s_a1d6L) (Arc s_a1cP8) (Arc s_a1d6L)
- Data.PlanarGraph: direction :: Lens' (Dart s_aHRy) Direction
+ Data.PlanarGraph: direction :: forall s_a1cP8. Lens' (Dart s_a1cP8) Direction
- Data.PlanarGraph: embedding :: Lens (PlanarGraph s_aIhB w_aIhC v_aIhD e_aIhE f_aIhF) (PlanarGraph s_aICX w_aICY v_aIhD e_aIhE f_aIhF) (Permutation (Dart s_aIhB)) (Permutation (Dart s_aICX))
+ Data.PlanarGraph: embedding :: forall s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS s_a1dr3 w_a1dr4. Lens (PlanarGraph s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS) (PlanarGraph s_a1dr3 w_a1dr4 v_a1dkQ e_a1dkR f_a1dkS) (Permutation (Dart s_a1dkO)) (Permutation (Dart s_a1dr3))
- Data.PlanarGraph: faceData :: Lens (PlanarGraph s_aIhB w_aIhC v_aIhD e_aIhE f_aIhF) (PlanarGraph s_aIhB w_aICZ v_aIhD e_aIhE f_aID0) (Vector f_aIhF) (Vector f_aID0)
+ Data.PlanarGraph: faceData :: forall s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS w_a1dr5 f_a1dr6. Lens (PlanarGraph s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS) (PlanarGraph s_a1dkO w_a1dr5 v_a1dkQ e_a1dkR f_a1dr6) (Vector f_a1dkS) (Vector f_a1dr6)
- Data.PlanarGraph: planarGraph :: Permutation (Dart s) -> PlanarGraph s Primal_ () () ()
+ Data.PlanarGraph: planarGraph :: [[(Dart s, e)]] -> PlanarGraph s Primal_ () e ()
- Data.PlanarGraph: planarGraph' :: [[(Dart s, e)]] -> PlanarGraph s Primal_ () e ()
+ Data.PlanarGraph: planarGraph' :: Permutation (Dart s) -> PlanarGraph s w () () ()
- Data.PlanarGraph: vertexData :: Lens (PlanarGraph s_aIhB w_aIhC v_aIhD e_aIhE f_aIhF) (PlanarGraph s_aIhB w_aID3 v_aID4 e_aIhE f_aIhF) (Vector v_aIhD) (Vector v_aID4)
+ Data.PlanarGraph: vertexData :: forall s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS w_a1dr9 v_a1dra. Lens (PlanarGraph s_a1dkO w_a1dkP v_a1dkQ e_a1dkR f_a1dkS) (PlanarGraph s_a1dkO w_a1dr9 v_a1dra e_a1dkR f_a1dkS) (Vector v_a1dkQ) (Vector v_a1dra)
- Data.Range: Closed :: a -> EndPoint a
+ Data.Range: Closed :: !a -> EndPoint a
- Data.Range: Open :: a -> EndPoint a
+ Data.Range: Open :: !a -> EndPoint a
- Data.Range: Range :: EndPoint a -> EndPoint a -> Range a
+ Data.Range: Range :: !(EndPoint a) -> !(EndPoint a) -> Range a
- Data.Range: [_lower] :: Range a -> EndPoint a
+ Data.Range: [_lower] :: Range a -> !(EndPoint a)
- Data.Range: [_upper] :: Range a -> EndPoint a
+ Data.Range: [_upper] :: Range a -> !(EndPoint a)
- Data.Range: lower :: Lens' (Range a_a2EMo) (EndPoint a_a2EMo)
+ Data.Range: lower :: forall a_aQ5e. Lens' (Range a_aQ5e) (EndPoint a_aQ5e)
- Data.Range: upper :: Lens' (Range a_a2EMo) (EndPoint a_a2EMo)
+ Data.Range: upper :: forall a_aQ5e. Lens' (Range a_aQ5e) (EndPoint a_aQ5e)
- Data.UnBounded: unUnBounded :: Traversal (UnBounded a_a1EUA) (UnBounded a_a1FVG) a_a1EUA a_a1FVG
+ Data.UnBounded: unUnBounded :: forall a_aiMP a_amqc. Traversal (UnBounded a_aiMP) (UnBounded a_amqc) a_aiMP a_amqc
Files
- README.md +56/−10
- benchmark/Benchmarks.hs +69/−0
- doctests.hs +3/−0
- examples/BAPC2012/G.in +24762/−0
- examples/BAPC2012/G.out +49/−0
- examples/BAPC2012/Gunslinger.hs +7/−6
- examples/BAPC2012/sampleG.in +12/−0
- examples/BAPC2012/sampleG.out +2/−0
- examples/BAPC2014/Armybase.lhs +9/−10
- examples/BAPC2014/sample.in +25/−0
- examples/BAPC2014/sample.out +3/−0
- examples/BAPC2014/testdata.in +66406/−0
- examples/BAPC2014/testdata.out +78/−0
- examples/Demo/Delaunay.hs +2/−1
- examples/Demo/DrawGPX.hs +2/−1
- examples/Demo/ExpectedPairwiseDistance.hs +209/−0
- examples/Demo/GPXParser.hs +5/−7
- examples/Demo/MinDisk.hs +6/−10
- examples/Main.hs +18/−15
- hgeometry.cabal +140/−40
- src/Algorithms/Geometry/ConvexHull/DivideAndConqueror.hs +10/−14
- src/Algorithms/Geometry/ConvexHull/GrahamScan.hs +13/−14
- src/Algorithms/Geometry/ConvexHull/Types.hs +0/−14
- src/Algorithms/Geometry/DelaunayTriangulation/DivideAndConqueror.hs +14/−15
- src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs +13/−14
- src/Algorithms/Geometry/DelaunayTriangulation/Types.hs +41/−24
- src/Algorithms/Geometry/Diameter.hs +35/−0
- src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs +1/−1
- src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs +213/−0
- src/Algorithms/Geometry/LineSegmentIntersection/Naive.hs +53/−0
- src/Algorithms/Geometry/LineSegmentIntersection/Types.hs +70/−0
- src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs +6/−10
- src/Algorithms/Geometry/WellSeparatedPairDecomposition/Types.hs +73/−0
- src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs +463/−0
- src/Algorithms/Graph/DFS.hs +2/−2
- src/Algorithms/Graph/MST.hs +3/−3
- src/Control/Monad/State/Persistent.hs +0/−4
- src/Data/BalBST.hs +355/−0
- src/Data/BinaryTree.hs +143/−18
- src/Data/BinaryTree/Zipper.hs +65/−0
- src/Data/CircularList/Util.hs +2/−17
- src/Data/CircularSeq.hs +99/−8
- src/Data/Ext.hs +7/−5
- src/Data/Geometry.hs +1/−1
- src/Data/Geometry/Ball.hs +40/−12
- src/Data/Geometry/Boundary.hs +1/−4
- src/Data/Geometry/Box.hs +9/−7
- src/Data/Geometry/Box/Internal.hs +92/−44
- src/Data/Geometry/Duality.hs +0/−1
- src/Data/Geometry/HalfLine.hs +9/−9
- src/Data/Geometry/Interval.hs +21/−16
- src/Data/Geometry/Interval/Util.hs +21/−0
- src/Data/Geometry/IntervalTree.hs +160/−0
- src/Data/Geometry/Ipe/Attributes.hs +10/−8
- src/Data/Geometry/Ipe/FromIpe.hs +7/−8
- src/Data/Geometry/Ipe/IpeOut.hs +9/−9
- src/Data/Geometry/Ipe/ParserPrimitives.hs +3/−4
- src/Data/Geometry/Ipe/PathParser.hs +14/−25
- src/Data/Geometry/Ipe/Reader.hs +24/−63
- src/Data/Geometry/Ipe/Types.hs +1/−2
- src/Data/Geometry/Ipe/Writer.hs +22/−28
- src/Data/Geometry/KDTree.hs +186/−0
- src/Data/Geometry/Line/Internal.hs +13/−9
- src/Data/Geometry/LineSegment.hs +2/−2
- src/Data/Geometry/PlanarSubdivision.hs +132/−0
- src/Data/Geometry/Point.hs +31/−36
- src/Data/Geometry/PolyLine.hs +2/−4
- src/Data/Geometry/Polygon.hs +35/−31
- src/Data/Geometry/Polygon/Convex.hs +152/−50
- src/Data/Geometry/Properties.hs +3/−4
- src/Data/Geometry/SegmentTree.hs +18/−0
- src/Data/Geometry/SegmentTree/Generic.hs +307/−0
- src/Data/Geometry/Slab.hs +24/−14
- src/Data/Geometry/SubLine.hs +9/−11
- src/Data/Geometry/Transformation.hs +4/−8
- src/Data/Geometry/Vector.hs +6/−5
- src/Data/Geometry/Vector/VectorFixed.hs +19/−18
- src/Data/Permutation.hs +2/−0
- src/Data/PlanarGraph.hs +372/−65
- src/Data/PlaneGraph.hs +13/−0
- src/Data/Range.hs +35/−16
- src/Data/Seq.hs +235/−0
- src/Data/Seq2.hs +22/−11
- src/Data/Sequence/Util.hs +3/−3
- src/Data/UnBounded.hs +7/−2
- src/Data/Util.hs +41/−0
- test/Algorithms/Geometry/DelaunayTriangulation/DTSpec.hs +10/−12
- test/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmannSpec.hs +65/−0
- test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe +324/−0
- test/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPDSpec.hs +92/−0
- test/Data/EdgeOracleSpec.hs +63/−0
- test/Data/Geometry/BoxSpec.hs +16/−0
- test/Data/Geometry/IntervalSpec.hs +64/−0
- test/Data/Geometry/KDTreeSpec.hs +65/−0
- test/Data/Geometry/Polygon/Convex/ConvexSpec.hs +59/−4
- test/Data/PlanarGraphSpec.hs +97/−0
- test/QuickCheck/Instances.hs +91/−0
- test/Util.hs +10/−0
README.md view
@@ -21,19 +21,45 @@ that a polyline is a proper polyline, and thus has at least two vertices. Please note that aspect (2), implementing good algorithms, is much work in-progress. HGeometry currently has only very basic types, and implements only-a few algorithms:+progress. Only a few algorithms have been implemented, some of which could use+some improvements. Currently, HGeometry provides the following algorithms: -* two (optimal) $O(n \log n)$ time algorithms for convex hull in+* two \(O(n \log n)\) time algorithms for convex hull in $\mathbb{R}^2$: the typical Graham scan, and a divide and conqueror algorithm,-* an $O(n)$ expected time algorithm for smallest enclosing disk in $\mathbb{R}^$2,+* an \(O(n)\) expected time algorithm for smallest enclosing disk in $\mathbb{R}^$2, * the well-known Douglas Peucker polyline line simplification algorithm,-* an $O(n \log n)$ time algorithm for computing the Delaunay triangulation+* an \(O(n \log n)\) time algorithm for computing the Delaunay triangulation (using divide and conqueror).-* an $O(n \log n)$ time algorithm for computing the Euclidean Minimum Spanning+* an \(O(n \log n)\) time algorithm for computing the Euclidean Minimum Spanning Tree (EMST), based on computing the Delaunay Triangulation.+* an \(O(\log^2 n)\) time algorithm to find extremal points and tangents on/to a+ convex polygon.+* An optimal \(O(n+m)\) time algorithm to compute the Minkowski sum of two convex+polygons.+* An \(O(1/\varepsilon^dn\log n)\) time algorithm for constructing a Well-Separated pair+ decomposition. +It also has some geometric data structures. In particular, HGeometry contans an+implementation of +* A one dimensional Segment Tree. The base tree is static.+* A one dimensional Interval Tree. The base tree is static.+* A KD-Tree. The base tree is static.++HGeometry also includes a datastructure/data type for planar graphs. In+particular, it has a `EdgeOracle' data structure, that can be built in $O(n)$+time that can test if the graph contains an edge in constant time.++Numeric Types+-------------++All geometry types are parameterized by a numerical type `r`. It is well known+that Floating-point arithmetic and Geometric algorithms don't go well together;+i.e. because of floating point errors one may get completely wrong+results. Hence, I *strongly* advise against using `Double` or `Float` for these+types. In several algorithms it is sufficient if the type `r` is+`Fractional`. Hence, you can use an exact number type such as `Rational`.+ A Note on the Ext (:+) data type --------------------------------- @@ -54,9 +80,9 @@ ```haskell data Polygon (t :: PolygonType) p r where- SimplePolygon :: C.CList (Point 2 r :+ p) -> Polygon Simple p r- MultiPolygon :: C.CList (Point 2 r :+ p) -> [Polygon Simple p r] -> Polygon Multi p r- ```+ SimplePolygon :: C.CSeq (Point 2 r :+ p) -> Polygon Simple p r+ MultiPolygon :: C.CSeq (Point 2 r :+ p) -> [Polygon Simple p r] -> Polygon Multi p r+``` In all places this extra data is accessable by the (:+) type in Data.Ext, which is essentially just a pair.@@ -66,4 +92,24 @@ Apart from geometric types, HGeometry provides some interface for reading and writing Ipe (http://ipe.otfried.org). However, this is all very work in-progress. Hence, the API is experimental and may change at any time!+progress. Hence, the API is experimental and may change at any time! Here is an+example showing reading a set of points from an Ipe file, computing the+DelaunayTriangulation, and writing the result again to an output file++```haskell+mainWith :: Options -> IO ()+mainWith (Options inFile outFile) = do+ ePage <- readSinglePageFile inFile+ case ePage of+ Left err -> print err+ Right (page :: IpePage Rational) -> case page^..content.traverse._IpeUse of+ [] -> putStrLn "No points found"+ syms@(_:_) -> do+ let pts = syms&traverse.core %~ (^.symbolPoint)+ pts' = NonEmpty.fromList pts+ dt = delaunayTriangulation $ pts'+ out = [asIpe drawTriangulation dt]+ writeIpeFile outFile . singlePageFromContent $ out+```++See the examples directory for more examples.
+ benchmark/Benchmarks.hs view
@@ -0,0 +1,69 @@+module Main where++import Control.DeepSeq+import Control.Lens+import Criterion.Main+import Data.Ext+import Data.Geometry.Interval+import qualified Data.Geometry.IntervalTree as IT+import Data.Geometry.SegmentTree (I(..))+import qualified Data.Geometry.SegmentTree as SegTree+import qualified Data.List.NonEmpty as NonEmpty+import QuickCheck.Instances+import Test.QuickCheck+++-- | generates n random intervals+genIntervals :: (Ord r, Arbitrary r)+ => proxy r -> Int -> IO [Interval () r]+genIntervals _ n | n <= 0 = error "genIntervals: need n > 0"+ | otherwise = generate (vectorOf n arbitrary)++genQueries :: (Ord r, Arbitrary r)+ => proxy r -> Int -> IO [r]+genQueries _ n | n <= 0 = error "genQueries: need n > 0"+ | otherwise = generate (vectorOf n arbitrary)+++-- genQuerySetup :: (Ord r, Arbitrary r)+-- => proxy r -> Int -> IO (Int,IT.IntervalTree (I (Interval () r)) r, [r])+-- genQuerySetup p n = (\is qs -> (n, IT.fromIntervals . fmap I $ is, qs))+-- <$> genIntervals p n+-- <*> genQueries p n+++main = defaultMain [+ bgroup "IntervalTree" [ env (genIntervals (I (5 :: Int)) (100000 :: Int)) benchBuild+ -- env (genIntervals (I (5 :: Int)) (100000 :: Int)) benchQueryIT+ ]+ ]++benchBuild :: (Ord r, NFData r) => [Interval () r] -> Benchmark+benchBuild is = bgroup "build" [ bench (show n) $ nf IT.fromIntervals (take n is')+ | n <- sizes is+ ]+ where+ is' = I <$> is++benchQueryIT :: (Ord r, Arbitrary r, NFData r) => [Interval () r] -> Benchmark+benchQueryIT is = bgroup "queries"+ [ env (setup n) (\(t,qs) ->+ bench ("queries on size" ++ show n) $ whnf (queryAll t) qs)+ | n <- sizes is+ ]+ where+ is' = I <$> is+ r = is^.to head.start.core+ setup n = (IT.fromIntervals (take n is'),) <$> genQueries (I r) 100000+ queryAll t = map (flip IT.search t)+++-- benchQueryIT :: Ord r+-- => (Int, IT.IntervalTree (I (Interval () r)) r, [r]) -> Benchmark+-- benchQueryIT (n,t,qs) = bgroup "queries" [ bench "query" $ whnf (flip IT.search t) q+-- | q <- qs+-- ]+++sizes :: [a] -> [Int]+sizes xs = let n = length xs in (\i -> n*i `div` 100) <$> [5,10..100]
doctests.hs view
@@ -19,13 +19,16 @@ , "TupleSections" , "MultiParamTypeClasses" , "LambdaCase"+ , "TupleSections" + , "StandaloneDeriving" , "GeneralizedNewtypeDeriving" , "DeriveFunctor" , "DeriveFoldable" , "DeriveTraversable" , "AutoDeriveTypeable"+ , "DeriveGeneric" , "FlexibleInstances" , "FlexibleContexts" ]
+ examples/BAPC2012/G.in view
@@ -0,0 +1,24762 @@+49+-2618 0+2618 1+1000+-2618 1+-2617 21+-2616 40+-2615 58+-2614 75+-2613 91+-2612 106+-2611 120+-2610 133+-2609 145+-2608 156+-2607 166+-2605 185+-2604 194+-2602 211+-2601 219+-2599 234+-2598 241+-2595 261+-2593 274+-2590 293+-2589 299+-2586 316+-2584 327+-2581 343+-2580 348+-2576 367+-2573 381+-2571 390+-2568 403+-2564 420+-2563 424+-2558 443+-2554 458+-2551 469+-2546 487+-2544 494+-2539 511+-2536 521+-2532 534+-2527 550+-2521 569+-2520 572+-2513 592+-2507 609+-2502 623+-2498 634+-2491 653+-2488 661+-2483 674+-2476 692+-2474 697+-2467 714+-2462 726+-2454 745+-2451 752+-2444 768+-2440 777+-2431 797+-2426 808+-2420 821+-2413 836+-2405 853+-2396 872+-2395 874+-2385 893+-2376 910+-2368 925+-2361 938+-2355 949+-2344 969+-2339 978+-2330 994+-2326 1001+-2315 1020+-2308 1032+-2298 1049+-2295 1054+-2284 1072+-2276 1085+-2271 1093+-2259 1112+-2252 1123+-2243 1137+-2232 1154+-2219 1174+-2217 1177+-2204 1196+-2193 1212+-2184 1225+-2177 1235+-2165 1252+-2160 1259+-2147 1277+-2139 1288+-2128 1303+-2114 1322+-2111 1326+-2098 1343+-2088 1356+-2081 1365+-2070 1379+-2055 1398+-2051 1403+-2038 1419+-2029 1430+-2015 1447+-2010 1453+-1994 1472+-1983 1485+-1966 1505+-1960 1512+-1947 1527+-1940 1535+-1925 1552+-1917 1561+-1900 1580+-1891 1590+-1881 1601+-1870 1613+-1858 1626+-1845 1640+-1831 1655+-1816 1671+-1800 1688+-1783 1706+-1765 1725+-1746 1745+-1745 1746+-1725 1765+-1706 1783+-1688 1800+-1671 1816+-1655 1831+-1640 1845+-1626 1858+-1613 1870+-1601 1881+-1590 1891+-1580 1900+-1561 1917+-1552 1925+-1535 1940+-1527 1947+-1512 1960+-1505 1966+-1485 1983+-1472 1994+-1453 2010+-1447 2015+-1430 2029+-1419 2038+-1403 2051+-1398 2055+-1379 2070+-1365 2081+-1356 2088+-1343 2098+-1326 2111+-1322 2114+-1303 2128+-1288 2139+-1277 2147+-1259 2160+-1252 2165+-1235 2177+-1225 2184+-1212 2193+-1196 2204+-1177 2217+-1174 2219+-1154 2232+-1137 2243+-1123 2252+-1112 2259+-1093 2271+-1085 2276+-1072 2284+-1054 2295+-1049 2298+-1032 2308+-1020 2315+-1001 2326+-994 2330+-978 2339+-969 2344+-949 2355+-938 2361+-925 2368+-910 2376+-893 2385+-874 2395+-872 2396+-853 2405+-836 2413+-821 2420+-808 2426+-797 2431+-777 2440+-768 2444+-752 2451+-745 2454+-726 2462+-714 2467+-697 2474+-692 2476+-674 2483+-661 2488+-653 2491+-634 2498+-623 2502+-609 2507+-592 2513+-572 2520+-569 2521+-550 2527+-534 2532+-521 2536+-511 2539+-494 2544+-487 2546+-469 2551+-458 2554+-443 2558+-424 2563+-420 2564+-403 2568+-390 2571+-381 2573+-367 2576+-348 2580+-343 2581+-327 2584+-316 2586+-299 2589+-293 2590+-274 2593+-261 2595+-241 2598+-234 2599+-219 2601+-211 2602+-194 2604+-185 2605+-166 2607+-156 2608+-145 2609+-133 2610+-120 2611+-106 2612+-91 2613+-75 2614+-58 2615+-40 2616+-21 2617+-1 2618+0 2618+1 2618+21 2617+40 2616+58 2615+75 2614+91 2613+106 2612+120 2611+133 2610+145 2609+156 2608+166 2607+185 2605+194 2604+211 2602+219 2601+234 2599+241 2598+261 2595+274 2593+293 2590+299 2589+316 2586+327 2584+343 2581+348 2580+367 2576+381 2573+390 2571+403 2568+420 2564+424 2563+443 2558+458 2554+469 2551+487 2546+494 2544+511 2539+521 2536+534 2532+550 2527+569 2521+572 2520+592 2513+609 2507+623 2502+634 2498+653 2491+661 2488+674 2483+692 2476+697 2474+714 2467+726 2462+745 2454+752 2451+768 2444+777 2440+797 2431+808 2426+821 2420+836 2413+853 2405+872 2396+874 2395+893 2385+910 2376+925 2368+938 2361+949 2355+969 2344+978 2339+994 2330+1001 2326+1020 2315+1032 2308+1049 2298+1054 2295+1072 2284+1085 2276+1093 2271+1112 2259+1123 2252+1137 2243+1154 2232+1174 2219+1177 2217+1196 2204+1212 2193+1225 2184+1235 2177+1252 2165+1259 2160+1277 2147+1288 2139+1303 2128+1322 2114+1326 2111+1343 2098+1356 2088+1365 2081+1379 2070+1398 2055+1403 2051+1419 2038+1430 2029+1447 2015+1453 2010+1472 1994+1485 1983+1505 1966+1512 1960+1527 1947+1535 1940+1552 1925+1561 1917+1580 1900+1590 1891+1601 1881+1613 1870+1626 1858+1640 1845+1655 1831+1671 1816+1688 1800+1706 1783+1725 1765+1745 1746+1746 1745+1765 1725+1783 1706+1800 1688+1816 1671+1831 1655+1845 1640+1858 1626+1870 1613+1881 1601+1891 1590+1900 1580+1917 1561+1925 1552+1940 1535+1947 1527+1960 1512+1966 1505+1983 1485+1994 1472+2010 1453+2015 1447+2029 1430+2038 1419+2051 1403+2055 1398+2070 1379+2081 1365+2088 1356+2098 1343+2111 1326+2114 1322+2128 1303+2139 1288+2147 1277+2160 1259+2165 1252+2177 1235+2184 1225+2193 1212+2204 1196+2217 1177+2219 1174+2232 1154+2243 1137+2252 1123+2259 1112+2271 1093+2276 1085+2284 1072+2295 1054+2298 1049+2308 1032+2315 1020+2326 1001+2330 994+2339 978+2344 969+2355 949+2361 938+2368 925+2376 910+2385 893+2395 874+2396 872+2405 853+2413 836+2420 821+2426 808+2431 797+2440 777+2444 768+2451 752+2454 745+2462 726+2467 714+2474 697+2476 692+2483 674+2488 661+2491 653+2498 634+2502 623+2507 609+2513 592+2520 572+2521 569+2527 550+2532 534+2536 521+2539 511+2544 494+2546 487+2551 469+2554 458+2558 443+2563 424+2564 420+2568 403+2571 390+2573 381+2576 367+2580 348+2581 343+2584 327+2586 316+2589 299+2590 293+2593 274+2595 261+2598 241+2599 234+2601 219+2602 211+2604 194+2605 185+2607 166+2608 156+2609 145+2610 133+2611 120+2612 106+2613 91+2614 75+2615 58+2616 40+2617 21+2618 0+2618 -1+2617 -21+2616 -40+2615 -58+2614 -75+2613 -91+2612 -106+2611 -120+2610 -133+2609 -145+2608 -156+2607 -166+2605 -185+2604 -194+2602 -211+2601 -219+2599 -234+2598 -241+2595 -261+2593 -274+2590 -293+2589 -299+2586 -316+2584 -327+2581 -343+2580 -348+2576 -367+2573 -381+2571 -390+2568 -403+2564 -420+2563 -424+2558 -443+2554 -458+2551 -469+2546 -487+2544 -494+2539 -511+2536 -521+2532 -534+2527 -550+2521 -569+2520 -572+2513 -592+2507 -609+2502 -623+2498 -634+2491 -653+2488 -661+2483 -674+2476 -692+2474 -697+2467 -714+2462 -726+2454 -745+2451 -752+2444 -768+2440 -777+2431 -797+2426 -808+2420 -821+2413 -836+2405 -853+2396 -872+2395 -874+2385 -893+2376 -910+2368 -925+2361 -938+2355 -949+2344 -969+2339 -978+2330 -994+2326 -1001+2315 -1020+2308 -1032+2298 -1049+2295 -1054+2284 -1072+2276 -1085+2271 -1093+2259 -1112+2252 -1123+2243 -1137+2232 -1154+2219 -1174+2217 -1177+2204 -1196+2193 -1212+2184 -1225+2177 -1235+2165 -1252+2160 -1259+2147 -1277+2139 -1288+2128 -1303+2114 -1322+2111 -1326+2098 -1343+2088 -1356+2081 -1365+2070 -1379+2055 -1398+2051 -1403+2038 -1419+2029 -1430+2015 -1447+2010 -1453+1994 -1472+1983 -1485+1966 -1505+1960 -1512+1947 -1527+1940 -1535+1925 -1552+1917 -1561+1900 -1580+1891 -1590+1881 -1601+1870 -1613+1858 -1626+1845 -1640+1831 -1655+1816 -1671+1800 -1688+1783 -1706+1765 -1725+1746 -1745+1745 -1746+1725 -1765+1706 -1783+1688 -1800+1671 -1816+1655 -1831+1640 -1845+1626 -1858+1613 -1870+1601 -1881+1590 -1891+1580 -1900+1561 -1917+1552 -1925+1535 -1940+1527 -1947+1512 -1960+1505 -1966+1485 -1983+1472 -1994+1453 -2010+1447 -2015+1430 -2029+1419 -2038+1403 -2051+1398 -2055+1379 -2070+1365 -2081+1356 -2088+1343 -2098+1326 -2111+1322 -2114+1303 -2128+1288 -2139+1277 -2147+1259 -2160+1252 -2165+1235 -2177+1225 -2184+1212 -2193+1196 -2204+1177 -2217+1174 -2219+1154 -2232+1137 -2243+1123 -2252+1112 -2259+1093 -2271+1085 -2276+1072 -2284+1054 -2295+1049 -2298+1032 -2308+1020 -2315+1001 -2326+994 -2330+978 -2339+969 -2344+949 -2355+938 -2361+925 -2368+910 -2376+893 -2385+874 -2395+872 -2396+853 -2405+836 -2413+821 -2420+808 -2426+797 -2431+777 -2440+768 -2444+752 -2451+745 -2454+726 -2462+714 -2467+697 -2474+692 -2476+674 -2483+661 -2488+653 -2491+634 -2498+623 -2502+609 -2507+592 -2513+572 -2520+569 -2521+550 -2527+534 -2532+521 -2536+511 -2539+494 -2544+487 -2546+469 -2551+458 -2554+443 -2558+424 -2563+420 -2564+403 -2568+390 -2571+381 -2573+367 -2576+348 -2580+343 -2581+327 -2584+316 -2586+299 -2589+293 -2590+274 -2593+261 -2595+241 -2598+234 -2599+219 -2601+211 -2602+194 -2604+185 -2605+166 -2607+156 -2608+145 -2609+133 -2610+120 -2611+106 -2612+91 -2613+75 -2614+58 -2615+40 -2616+21 -2617+1 -2618+0 -2618+-1 -2618+-21 -2617+-40 -2616+-58 -2615+-75 -2614+-91 -2613+-106 -2612+-120 -2611+-133 -2610+-145 -2609+-156 -2608+-166 -2607+-185 -2605+-194 -2604+-211 -2602+-219 -2601+-234 -2599+-241 -2598+-261 -2595+-274 -2593+-293 -2590+-299 -2589+-316 -2586+-327 -2584+-343 -2581+-348 -2580+-367 -2576+-381 -2573+-390 -2571+-403 -2568+-420 -2564+-424 -2563+-443 -2558+-458 -2554+-469 -2551+-487 -2546+-494 -2544+-511 -2539+-521 -2536+-534 -2532+-550 -2527+-569 -2521+-572 -2520+-592 -2513+-609 -2507+-623 -2502+-634 -2498+-653 -2491+-661 -2488+-674 -2483+-692 -2476+-697 -2474+-714 -2467+-726 -2462+-745 -2454+-752 -2451+-768 -2444+-777 -2440+-797 -2431+-808 -2426+-821 -2420+-836 -2413+-853 -2405+-872 -2396+-874 -2395+-893 -2385+-910 -2376+-925 -2368+-938 -2361+-949 -2355+-969 -2344+-978 -2339+-994 -2330+-1001 -2326+-1020 -2315+-1032 -2308+-1049 -2298+-1054 -2295+-1072 -2284+-1085 -2276+-1093 -2271+-1112 -2259+-1123 -2252+-1137 -2243+-1154 -2232+-1174 -2219+-1177 -2217+-1196 -2204+-1212 -2193+-1225 -2184+-1235 -2177+-1252 -2165+-1259 -2160+-1277 -2147+-1288 -2139+-1303 -2128+-1322 -2114+-1326 -2111+-1343 -2098+-1356 -2088+-1365 -2081+-1379 -2070+-1398 -2055+-1403 -2051+-1419 -2038+-1430 -2029+-1447 -2015+-1453 -2010+-1472 -1994+-1485 -1983+-1505 -1966+-1512 -1960+-1527 -1947+-1535 -1940+-1552 -1925+-1561 -1917+-1580 -1900+-1590 -1891+-1601 -1881+-1613 -1870+-1626 -1858+-1640 -1845+-1655 -1831+-1671 -1816+-1688 -1800+-1706 -1783+-1725 -1765+-1745 -1746+-1746 -1745+-1765 -1725+-1783 -1706+-1800 -1688+-1816 -1671+-1831 -1655+-1845 -1640+-1858 -1626+-1870 -1613+-1881 -1601+-1891 -1590+-1900 -1580+-1917 -1561+-1925 -1552+-1940 -1535+-1947 -1527+-1960 -1512+-1966 -1505+-1983 -1485+-1994 -1472+-2010 -1453+-2015 -1447+-2029 -1430+-2038 -1419+-2051 -1403+-2055 -1398+-2070 -1379+-2081 -1365+-2088 -1356+-2098 -1343+-2111 -1326+-2114 -1322+-2128 -1303+-2139 -1288+-2147 -1277+-2160 -1259+-2165 -1252+-2177 -1235+-2184 -1225+-2193 -1212+-2204 -1196+-2217 -1177+-2219 -1174+-2232 -1154+-2243 -1137+-2252 -1123+-2259 -1112+-2271 -1093+-2276 -1085+-2284 -1072+-2295 -1054+-2298 -1049+-2308 -1032+-2315 -1020+-2326 -1001+-2330 -994+-2339 -978+-2344 -969+-2355 -949+-2361 -938+-2368 -925+-2376 -910+-2385 -893+-2395 -874+-2396 -872+-2405 -853+-2413 -836+-2420 -821+-2426 -808+-2431 -797+-2440 -777+-2444 -768+-2451 -752+-2454 -745+-2462 -726+-2467 -714+-2474 -697+-2476 -692+-2483 -674+-2488 -661+-2491 -653+-2498 -634+-2502 -623+-2507 -609+-2513 -592+-2520 -572+-2521 -569+-2527 -550+-2532 -534+-2536 -521+-2539 -511+-2544 -494+-2546 -487+-2551 -469+-2554 -458+-2558 -443+-2563 -424+-2564 -420+-2568 -403+-2571 -390+-2573 -381+-2576 -367+0 0+1 0+1+0 1+0 0+1 1+1+2 2+0 0+2 2+1+1 1+1 1+0 0+1+2 2+1 1+2 2+1+0 0+2 2+0 0+1+1 1+2 2+1 1+1+0 0+0 0+0 1+2+0 -1+0 2+0 0+0 1+2+0 2+0 -1+0 1+0 0+2+0 -1+0 2+0 1+0 0+2+0 2+0 -1+0 0+0 2+2+0 -1+0 3+0 1+-1 -1+4+0 0+0 2+2 0+2 2+0 1+1 1+4+0 0+0 2+2 0+2 2+-1 -1+0 1+4+0 0+0 2+2 0+2 2+1 1+0 1+4+0 0+0 2+2 0+2 2+0 0+0 1+2+1 2+-1 2+0 0+0 1+4+-5 -5+-5 5+5 -5+5 5+0 0+0 10+4+-5 -5+-5 5+5 -5+5 5+0 10+0 0+4+-5 -5+-5 5+5 -5+5 5+-10000 -10000+10000 10000+1+10000 -10000+-10000 -10000+10000 10000+2+10000 -10000+-10000 10000+0 0+1001 1001+1000+1 1+2 2+3 3+4 4+5 5+6 6+7 7+8 8+9 9+10 10+11 11+12 12+13 13+14 14+15 15+16 16+17 17+18 18+19 19+20 20+21 21+22 22+23 23+24 24+25 25+26 26+27 27+28 28+29 29+30 30+31 31+32 32+33 33+34 34+35 35+36 36+37 37+38 38+39 39+40 40+41 41+42 42+43 43+44 44+45 45+46 46+47 47+48 48+49 49+50 50+51 51+52 52+53 53+54 54+55 55+56 56+57 57+58 58+59 59+60 60+61 61+62 62+63 63+64 64+65 65+66 66+67 67+68 68+69 69+70 70+71 71+72 72+73 73+74 74+75 75+76 76+77 77+78 78+79 79+80 80+81 81+82 82+83 83+84 84+85 85+86 86+87 87+88 88+89 89+90 90+91 91+92 92+93 93+94 94+95 95+96 96+97 97+98 98+99 99+100 100+101 101+102 102+103 103+104 104+105 105+106 106+107 107+108 108+109 109+110 110+111 111+112 112+113 113+114 114+115 115+116 116+117 117+118 118+119 119+120 120+121 121+122 122+123 123+124 124+125 125+126 126+127 127+128 128+129 129+130 130+131 131+132 132+133 133+134 134+135 135+136 136+137 137+138 138+139 139+140 140+141 141+142 142+143 143+144 144+145 145+146 146+147 147+148 148+149 149+150 150+151 151+152 152+153 153+154 154+155 155+156 156+157 157+158 158+159 159+160 160+161 161+162 162+163 163+164 164+165 165+166 166+167 167+168 168+169 169+170 170+171 171+172 172+173 173+174 174+175 175+176 176+177 177+178 178+179 179+180 180+181 181+182 182+183 183+184 184+185 185+186 186+187 187+188 188+189 189+190 190+191 191+192 192+193 193+194 194+195 195+196 196+197 197+198 198+199 199+200 200+201 201+202 202+203 203+204 204+205 205+206 206+207 207+208 208+209 209+210 210+211 211+212 212+213 213+214 214+215 215+216 216+217 217+218 218+219 219+220 220+221 221+222 222+223 223+224 224+225 225+226 226+227 227+228 228+229 229+230 230+231 231+232 232+233 233+234 234+235 235+236 236+237 237+238 238+239 239+240 240+241 241+242 242+243 243+244 244+245 245+246 246+247 247+248 248+249 249+250 250+251 251+252 252+253 253+254 254+255 255+256 256+257 257+258 258+259 259+260 260+261 261+262 262+263 263+264 264+265 265+266 266+267 267+268 268+269 269+270 270+271 271+272 272+273 273+274 274+275 275+276 276+277 277+278 278+279 279+280 280+281 281+282 282+283 283+284 284+285 285+286 286+287 287+288 288+289 289+290 290+291 291+292 292+293 293+294 294+295 295+296 296+297 297+298 298+299 299+300 300+301 301+302 302+303 303+304 304+305 305+306 306+307 307+308 308+309 309+310 310+311 311+312 312+313 313+314 314+315 315+316 316+317 317+318 318+319 319+320 320+321 321+322 322+323 323+324 324+325 325+326 326+327 327+328 328+329 329+330 330+331 331+332 332+333 333+334 334+335 335+336 336+337 337+338 338+339 339+340 340+341 341+342 342+343 343+344 344+345 345+346 346+347 347+348 348+349 349+350 350+351 351+352 352+353 353+354 354+355 355+356 356+357 357+358 358+359 359+360 360+361 361+362 362+363 363+364 364+365 365+366 366+367 367+368 368+369 369+370 370+371 371+372 372+373 373+374 374+375 375+376 376+377 377+378 378+379 379+380 380+381 381+382 382+383 383+384 384+385 385+386 386+387 387+388 388+389 389+390 390+391 391+392 392+393 393+394 394+395 395+396 396+397 397+398 398+399 399+400 400+401 401+402 402+403 403+404 404+405 405+406 406+407 407+408 408+409 409+410 410+411 411+412 412+413 413+414 414+415 415+416 416+417 417+418 418+419 419+420 420+421 421+422 422+423 423+424 424+425 425+426 426+427 427+428 428+429 429+430 430+431 431+432 432+433 433+434 434+435 435+436 436+437 437+438 438+439 439+440 440+441 441+442 442+443 443+444 444+445 445+446 446+447 447+448 448+449 449+450 450+451 451+452 452+453 453+454 454+455 455+456 456+457 457+458 458+459 459+460 460+461 461+462 462+463 463+464 464+465 465+466 466+467 467+468 468+469 469+470 470+471 471+472 472+473 473+474 474+475 475+476 476+477 477+478 478+479 479+480 480+481 481+482 482+483 483+484 484+485 485+486 486+487 487+488 488+489 489+490 490+491 491+492 492+493 493+494 494+495 495+496 496+497 497+498 498+499 499+500 500+501 501+502 502+503 503+504 504+505 505+506 506+507 507+508 508+509 509+510 510+511 511+512 512+513 513+514 514+515 515+516 516+517 517+518 518+519 519+520 520+521 521+522 522+523 523+524 524+525 525+526 526+527 527+528 528+529 529+530 530+531 531+532 532+533 533+534 534+535 535+536 536+537 537+538 538+539 539+540 540+541 541+542 542+543 543+544 544+545 545+546 546+547 547+548 548+549 549+550 550+551 551+552 552+553 553+554 554+555 555+556 556+557 557+558 558+559 559+560 560+561 561+562 562+563 563+564 564+565 565+566 566+567 567+568 568+569 569+570 570+571 571+572 572+573 573+574 574+575 575+576 576+577 577+578 578+579 579+580 580+581 581+582 582+583 583+584 584+585 585+586 586+587 587+588 588+589 589+590 590+591 591+592 592+593 593+594 594+595 595+596 596+597 597+598 598+599 599+600 600+601 601+602 602+603 603+604 604+605 605+606 606+607 607+608 608+609 609+610 610+611 611+612 612+613 613+614 614+615 615+616 616+617 617+618 618+619 619+620 620+621 621+622 622+623 623+624 624+625 625+626 626+627 627+628 628+629 629+630 630+631 631+632 632+633 633+634 634+635 635+636 636+637 637+638 638+639 639+640 640+641 641+642 642+643 643+644 644+645 645+646 646+647 647+648 648+649 649+650 650+651 651+652 652+653 653+654 654+655 655+656 656+657 657+658 658+659 659+660 660+661 661+662 662+663 663+664 664+665 665+666 666+667 667+668 668+669 669+670 670+671 671+672 672+673 673+674 674+675 675+676 676+677 677+678 678+679 679+680 680+681 681+682 682+683 683+684 684+685 685+686 686+687 687+688 688+689 689+690 690+691 691+692 692+693 693+694 694+695 695+696 696+697 697+698 698+699 699+700 700+701 701+702 702+703 703+704 704+705 705+706 706+707 707+708 708+709 709+710 710+711 711+712 712+713 713+714 714+715 715+716 716+717 717+718 718+719 719+720 720+721 721+722 722+723 723+724 724+725 725+726 726+727 727+728 728+729 729+730 730+731 731+732 732+733 733+734 734+735 735+736 736+737 737+738 738+739 739+740 740+741 741+742 742+743 743+744 744+745 745+746 746+747 747+748 748+749 749+750 750+751 751+752 752+753 753+754 754+755 755+756 756+757 757+758 758+759 759+760 760+761 761+762 762+763 763+764 764+765 765+766 766+767 767+768 768+769 769+770 770+771 771+772 772+773 773+774 774+775 775+776 776+777 777+778 778+779 779+780 780+781 781+782 782+783 783+784 784+785 785+786 786+787 787+788 788+789 789+790 790+791 791+792 792+793 793+794 794+795 795+796 796+797 797+798 798+799 799+800 800+801 801+802 802+803 803+804 804+805 805+806 806+807 807+808 808+809 809+810 810+811 811+812 812+813 813+814 814+815 815+816 816+817 817+818 818+819 819+820 820+821 821+822 822+823 823+824 824+825 825+826 826+827 827+828 828+829 829+830 830+831 831+832 832+833 833+834 834+835 835+836 836+837 837+838 838+839 839+840 840+841 841+842 842+843 843+844 844+845 845+846 846+847 847+848 848+849 849+850 850+851 851+852 852+853 853+854 854+855 855+856 856+857 857+858 858+859 859+860 860+861 861+862 862+863 863+864 864+865 865+866 866+867 867+868 868+869 869+870 870+871 871+872 872+873 873+874 874+875 875+876 876+877 877+878 878+879 879+880 880+881 881+882 882+883 883+884 884+885 885+886 886+887 887+888 888+889 889+890 890+891 891+892 892+893 893+894 894+895 895+896 896+897 897+898 898+899 899+900 900+901 901+902 902+903 903+904 904+905 905+906 906+907 907+908 908+909 909+910 910+911 911+912 912+913 913+914 914+915 915+916 916+917 917+918 918+919 919+920 920+921 921+922 922+923 923+924 924+925 925+926 926+927 927+928 928+929 929+930 930+931 931+932 932+933 933+934 934+935 935+936 936+937 937+938 938+939 939+940 940+941 941+942 942+943 943+944 944+945 945+946 946+947 947+948 948+949 949+950 950+951 951+952 952+953 953+954 954+955 955+956 956+957 957+958 958+959 959+960 960+961 961+962 962+963 963+964 964+965 965+966 966+967 967+968 968+969 969+970 970+971 971+972 972+973 973+974 974+975 975+976 976+977 977+978 978+979 979+980 980+981 981+982 982+983 983+984 984+985 985+986 986+987 987+988 988+989 989+990 990+991 991+992 992+993 993+994 994+995 995+996 996+997 997+998 998+999 999+1000 1000+0 0+1001 1001+1000+350 350+309 309+662 662+505 505+637 637+760 760+389 389+971 971+197 197+214 214+939 939+952 952+275 275+941 941+897 897+121 121+846 846+673 673+139 139+990 990+2 2+154 154+584 584+4 4+547 547+575 575+326 326+749 749+628 628+862 862+734 734+617 617+909 909+287 287+263 263+842 842+594 594+630 630+104 104+242 242+250 250+666 666+277 277+970 970+307 307+116 116+866 866+471 471+535 535+721 721+387 387+179 179+388 388+134 134+947 947+881 881+196 196+109 109+719 719+508 508+301 301+285 285+536 536+553 553+207 207+15 15+794 794+950 950+872 872+96 96+454 454+161 161+288 288+602 602+631 631+532 532+184 184+974 974+75 75+724 724+989 989+556 556+227 227+474 474+45 45+338 338+208 208+291 291+244 244+627 627+431 431+501 501+72 72+273 273+667 667+115 115+853 853+761 761+187 187+523 523+215 215+783 783+625 625+436 436+458 458+585 585+942 942+943 943+73 73+237 237+492 492+428 428+406 406+210 210+620 620+8 8+49 49+803 803+766 766+888 888+840 840+769 769+608 608+707 707+349 349+684 684+157 157+887 887+280 280+823 823+223 223+413 413+578 578+710 710+398 398+804 804+573 573+409 409+725 725+41 41+763 763+516 516+639 639+239 239+297 297+186 186+616 616+796 796+512 512+289 289+955 955+55 55+442 442+229 229+693 693+456 456+589 589+120 120+895 895+54 54+820 820+443 443+282 282+231 231+520 520+632 632+180 180+771 771+850 850+181 181+687 687+363 363+946 946+978 978+368 368+940 940+150 150+775 775+768 768+62 62+178 178+348 348+533 533+81 81+299 299+995 995+565 565+405 405+319 319+50 50+906 906+416 416+365 365+21 21+925 925+936 936+6 6+944 944+689 689+987 987+323 323+764 764+638 638+66 66+755 755+513 513+599 599+149 149+481 481+903 903+635 635+901 901+966 966+58 58+142 142+370 370+889 889+801 801+429 429+3 3+77 77+496 496+791 791+552 552+483 483+833 833+665 665+53 53+182 182+343 343+548 548+459 459+976 976+414 414+656 656+91 91+914 914+321 321+437 437+19 19+63 63+591 591+68 68+346 346+369 369+498 498+354 354+920 920+359 359+880 880+110 110+544 544+89 89+34 34+64 64+900 900+902 902+256 256+366 366+448 448+814 814+968 968+11 11+284 284+99 99+408 408+997 997+825 825+495 495+42 42+929 929+752 752+912 912+679 679+305 305+329 329+122 122+331 331+742 742+592 592+457 457+711 711+415 415+926 926+148 148+173 173+133 133+545 545+514 514+621 621+248 248+682 682+411 411+770 770+460 460+270 270+882 882+335 335+95 95+5 5+254 254+132 132+894 894+71 71+18 18+191 191+193 193+65 65+696 696+40 40+543 543+292 292+488 488+146 146+855 855+399 399+956 956+476 476+659 659+657 657+439 439+747 747+767 767+377 377+787 787+540 540+124 124+464 464+559 559+51 51+728 728+362 362+800 800+266 266+703 703+308 308+353 353+905 905+118 118+188 188+130 130+490 490+856 856+131 131+423 423+375 375+23 23+622 622+1000 1000+525 525+493 493+158 158+80 80+690 690+119 119+427 427+786 786+777 777+998 998+972 972+784 784+677 677+204 204+836 836+607 607+788 788+953 953+965 965+452 452+759 759+686 686+489 489+14 14+312 312+671 671+524 524+494 494+164 164+983 983+13 13+706 706+795 795+504 504+373 373+743 743+316 316+233 233+961 961+260 260+705 705+597 597+44 44+816 816+934 934+502 502+39 39+400 400+28 28+612 612+883 883+646 646+342 342+295 295+896 896+327 327+230 230+751 751+733 733+674 674+924 924+774 774+590 590+868 868+169 169+582 582+527 527+268 268+451 451+704 704+586 586+807 807+357 357+849 849+509 509+163 163+845 845+797 797+518 518+199 199+155 155+463 463+251 251+172 172+272 272+720 720+165 165+726 726+255 255+76 76+515 515+611 611+385 385+744 744+789 789+159 159+61 61+874 874+70 70+762 762+805 805+198 198+445 445+821 821+534 534+174 174+147 147+580 580+519 519+171 171+340 340+873 873+678 678+554 554+351 351+808 808+852 852+670 670+858 858+113 113+419 419+817 817+517 517+933 933+467 467+740 740+330 330+83 83+449 449+658 658+730 730+234 234+167 167+529 529+648 648+830 830+781 781+144 144+170 170+106 106+831 831+461 461+916 916+176 176+381 381+143 143+570 570+189 189+441 441+480 480+613 613+336 336+810 810+48 48+951 951+551 551+138 138+680 680+875 875+497 497+211 211+317 317+624 624+669 669+623 623+701 701+935 935+286 286+802 802+52 52+141 141+834 834+201 201+29 29+702 702+890 890+236 236+111 111+560 560+374 374+676 676+16 16+938 938+854 854+843 843+754 754+396 396+205 205+303 303+195 195+135 135+7 7+403 403+792 792+948 948+739 739+985 985+949 949+384 384+748 748+879 879+899 899+587 587+967 967+136 136+100 100+22 22+341 341+746 746+664 664+877 877+709 709+361 361+619 619+1 1+371 371+579 579+692 692+511 511+778 778+203 203+249 249+645 645+318 318+313 313+466 466+444 444+750 750+991 991+101 101+418 418+470 470+568 568+394 394+799 799+378 378+36 36+596 596+521 521+932 932+712 712+574 574+683 683+59 59+296 296+723 723+194 194+603 603+156 156+959 959+221 221+185 185+636 636+151 151+644 644+647 647+626 626+973 973+300 300+839 839+224 224+653 653+397 397+24 24+571 571+364 364+963 963+57 57+741 741+31 31+867 867+688 688+697 697+835 835+871 871+274 274+507 507+539 539+487 487+246 246+722 722+609 609+561 561+218 218+190 190+46 46+908 908+438 438+546 546+819 819+753 753+26 26+108 108+90 90+827 827+232 232+918 918+294 294+822 822+564 564+528 528+913 913+306 306+337 337+915 915+245 245+225 225+392 392+860 860+996 996+499 499+426 426+878 878+259 259+9 9+992 992+869 869+960 960+598 598+522 522+102 102+765 765+25 25+355 355+809 809+569 569+432 432+401 401+776 776+482 482+322 322+298 298+716 716+919 919+271 271+344 344+162 162+640 640+832 832+848 848+824 824+595 595+402 402+94 94+643 643+206 206+407 407+937 937+958 958+235 235+123 123+650 650+258 258+175 175+78 78+811 811+583 583+562 562+47 47+125 125+290 290+844 844+694 694+641 641+192 192+904 904+655 655+691 691+217 217+324 324+315 315+12 12+360 360+222 222+240 240+714 714+69 69+410 410+863 863+930 930+581 581+907 907+491 491+921 921+382 382+661 661+541 541+465 465+576 576+715 715+200 200+847 847+17 17+267 267+43 43+88 88+478 478+302 302+537 537+975 975+311 311+390 390+261 261+33 33+479 479+114 114+826 826+735 735+67 67+600 600+736 736+859 859+718 718+334 334+982 982+209 209+969 969+675 675+738 738+395 395+931 931+430 430+994 994+279 279+503 503+577 577+605 605+38 38+152 152+531 531+462 462+446 446+618 618+404 404+468 468+238 238+988 988+729 729+339 339+954 954+922 922+892 892+202 202+558 558+177 177+663 663+685 685+870 870+785 785+964 964+345 345+421 421+213 213+253 253+257 257+660 660+790 790+681 681+917 917+572 572+857 857+927 927+216 216+555 555+886 886+713 713+530 530+999 999+500 500+772 772+841 841+601 601+758 758+87 87+891 891+60 60+550 550+538 538+455 455+376 376+837 837+264 264+898 898+700 700+818 818+737 737+281 281+82 82+563 563+367 367+615 615+779 779+269 269+604 604+86 86+97 97+30 30+588 588+283 283+140 140+893 893+320 320+74 74+984 984+145 145+358 358+328 328+453 453+672 672+928 928+276 276+166 166+92 92+128 128+107 107+633 633+757 757+433 433+219 219+593 593+372 372+727 727+815 815+993 993+20 20+865 865+356 356+347 347+798 798+698 698+813 813+386 386+160 160+98 98+425 425+420 420+352 352+695 695+699 699+884 884+325 325+380 380+731 731+127 127+980 980+642 642+447 447+412 412+829 829+651 651+542 542+851 851+278 278+84 84+228 228+756 756+864 864+606 606+945 945+486 486+37 37+27 27+923 923+526 526+129 129+241 241+911 911+440 440+484 484+247 247+473 473+510 510+304 304+450 450+424 424+475 475+112 112+745 745+629 629+828 828+10 10+265 265+838 838+153 153+105 105+773 773+649 649+652 652+103 103+117 117+977 977+126 126+183 183+861 861+962 962+379 379+79 79+168 168+85 85+979 979+435 435+391 391+717 717+981 981+793 793+35 35+668 668+422 422+383 383+557 557+137 137+806 806+472 472+252 252+243 243+614 614+876 876+32 32+220 220+549 549+332 332+314 314+417 417+812 812+634 634+910 910+56 56+654 654+506 506+262 262+957 957+226 226+986 986+610 610+780 780+477 477+293 293+485 485+434 434+93 93+393 393+333 333+310 310+732 732+782 782+708 708+566 566+212 212+469 469+885 885+567 567+0 0+1001 1001+1000+1000 1000+999 999+998 998+997 997+996 996+995 995+994 994+993 993+992 992+991 991+990 990+989 989+988 988+987 987+986 986+985 985+984 984+983 983+982 982+981 981+980 980+979 979+978 978+977 977+976 976+975 975+974 974+973 973+972 972+971 971+970 970+969 969+968 968+967 967+966 966+965 965+964 964+963 963+962 962+961 961+960 960+959 959+958 958+957 957+956 956+955 955+954 954+953 953+952 952+951 951+950 950+949 949+948 948+947 947+946 946+945 945+944 944+943 943+942 942+941 941+940 940+939 939+938 938+937 937+936 936+935 935+934 934+933 933+932 932+931 931+930 930+929 929+928 928+927 927+926 926+925 925+924 924+923 923+922 922+921 921+920 920+919 919+918 918+917 917+916 916+915 915+914 914+913 913+912 912+911 911+910 910+909 909+908 908+907 907+906 906+905 905+904 904+903 903+902 902+901 901+900 900+899 899+898 898+897 897+896 896+895 895+894 894+893 893+892 892+891 891+890 890+889 889+888 888+887 887+886 886+885 885+884 884+883 883+882 882+881 881+880 880+879 879+878 878+877 877+876 876+875 875+874 874+873 873+872 872+871 871+870 870+869 869+868 868+867 867+866 866+865 865+864 864+863 863+862 862+861 861+860 860+859 859+858 858+857 857+856 856+855 855+854 854+853 853+852 852+851 851+850 850+849 849+848 848+847 847+846 846+845 845+844 844+843 843+842 842+841 841+840 840+839 839+838 838+837 837+836 836+835 835+834 834+833 833+832 832+831 831+830 830+829 829+828 828+827 827+826 826+825 825+824 824+823 823+822 822+821 821+820 820+819 819+818 818+817 817+816 816+815 815+814 814+813 813+812 812+811 811+810 810+809 809+808 808+807 807+806 806+805 805+804 804+803 803+802 802+801 801+800 800+799 799+798 798+797 797+796 796+795 795+794 794+793 793+792 792+791 791+790 790+789 789+788 788+787 787+786 786+785 785+784 784+783 783+782 782+781 781+780 780+779 779+778 778+777 777+776 776+775 775+774 774+773 773+772 772+771 771+770 770+769 769+768 768+767 767+766 766+765 765+764 764+763 763+762 762+761 761+760 760+759 759+758 758+757 757+756 756+755 755+754 754+753 753+752 752+751 751+750 750+749 749+748 748+747 747+746 746+745 745+744 744+743 743+742 742+741 741+740 740+739 739+738 738+737 737+736 736+735 735+734 734+733 733+732 732+731 731+730 730+729 729+728 728+727 727+726 726+725 725+724 724+723 723+722 722+721 721+720 720+719 719+718 718+717 717+716 716+715 715+714 714+713 713+712 712+711 711+710 710+709 709+708 708+707 707+706 706+705 705+704 704+703 703+702 702+701 701+700 700+699 699+698 698+697 697+696 696+695 695+694 694+693 693+692 692+691 691+690 690+689 689+688 688+687 687+686 686+685 685+684 684+683 683+682 682+681 681+680 680+679 679+678 678+677 677+676 676+675 675+674 674+673 673+672 672+671 671+670 670+669 669+668 668+667 667+666 666+665 665+664 664+663 663+662 662+661 661+660 660+659 659+658 658+657 657+656 656+655 655+654 654+653 653+652 652+651 651+650 650+649 649+648 648+647 647+646 646+645 645+644 644+643 643+642 642+641 641+640 640+639 639+638 638+637 637+636 636+635 635+634 634+633 633+632 632+631 631+630 630+629 629+628 628+627 627+626 626+625 625+624 624+623 623+622 622+621 621+620 620+619 619+618 618+617 617+616 616+615 615+614 614+613 613+612 612+611 611+610 610+609 609+608 608+607 607+606 606+605 605+604 604+603 603+602 602+601 601+600 600+599 599+598 598+597 597+596 596+595 595+594 594+593 593+592 592+591 591+590 590+589 589+588 588+587 587+586 586+585 585+584 584+583 583+582 582+581 581+580 580+579 579+578 578+577 577+576 576+575 575+574 574+573 573+572 572+571 571+570 570+569 569+568 568+567 567+566 566+565 565+564 564+563 563+562 562+561 561+560 560+559 559+558 558+557 557+556 556+555 555+554 554+553 553+552 552+551 551+550 550+549 549+548 548+547 547+546 546+545 545+544 544+543 543+542 542+541 541+540 540+539 539+538 538+537 537+536 536+535 535+534 534+533 533+532 532+531 531+530 530+529 529+528 528+527 527+526 526+525 525+524 524+523 523+522 522+521 521+520 520+519 519+518 518+517 517+516 516+515 515+514 514+513 513+512 512+511 511+510 510+509 509+508 508+507 507+506 506+505 505+504 504+503 503+502 502+501 501+500 500+499 499+498 498+497 497+496 496+495 495+494 494+493 493+492 492+491 491+490 490+489 489+488 488+487 487+486 486+485 485+484 484+483 483+482 482+481 481+480 480+479 479+478 478+477 477+476 476+475 475+474 474+473 473+472 472+471 471+470 470+469 469+468 468+467 467+466 466+465 465+464 464+463 463+462 462+461 461+460 460+459 459+458 458+457 457+456 456+455 455+454 454+453 453+452 452+451 451+450 450+449 449+448 448+447 447+446 446+445 445+444 444+443 443+442 442+441 441+440 440+439 439+438 438+437 437+436 436+435 435+434 434+433 433+432 432+431 431+430 430+429 429+428 428+427 427+426 426+425 425+424 424+423 423+422 422+421 421+420 420+419 419+418 418+417 417+416 416+415 415+414 414+413 413+412 412+411 411+410 410+409 409+408 408+407 407+406 406+405 405+404 404+403 403+402 402+401 401+400 400+399 399+398 398+397 397+396 396+395 395+394 394+393 393+392 392+391 391+390 390+389 389+388 388+387 387+386 386+385 385+384 384+383 383+382 382+381 381+380 380+379 379+378 378+377 377+376 376+375 375+374 374+373 373+372 372+371 371+370 370+369 369+368 368+367 367+366 366+365 365+364 364+363 363+362 362+361 361+360 360+359 359+358 358+357 357+356 356+355 355+354 354+353 353+352 352+351 351+350 350+349 349+348 348+347 347+346 346+345 345+344 344+343 343+342 342+341 341+340 340+339 339+338 338+337 337+336 336+335 335+334 334+333 333+332 332+331 331+330 330+329 329+328 328+327 327+326 326+325 325+324 324+323 323+322 322+321 321+320 320+319 319+318 318+317 317+316 316+315 315+314 314+313 313+312 312+311 311+310 310+309 309+308 308+307 307+306 306+305 305+304 304+303 303+302 302+301 301+300 300+299 299+298 298+297 297+296 296+295 295+294 294+293 293+292 292+291 291+290 290+289 289+288 288+287 287+286 286+285 285+284 284+283 283+282 282+281 281+280 280+279 279+278 278+277 277+276 276+275 275+274 274+273 273+272 272+271 271+270 270+269 269+268 268+267 267+266 266+265 265+264 264+263 263+262 262+261 261+260 260+259 259+258 258+257 257+256 256+255 255+254 254+253 253+252 252+251 251+250 250+249 249+248 248+247 247+246 246+245 245+244 244+243 243+242 242+241 241+240 240+239 239+238 238+237 237+236 236+235 235+234 234+233 233+232 232+231 231+230 230+229 229+228 228+227 227+226 226+225 225+224 224+223 223+222 222+221 221+220 220+219 219+218 218+217 217+216 216+215 215+214 214+213 213+212 212+211 211+210 210+209 209+208 208+207 207+206 206+205 205+204 204+203 203+202 202+201 201+200 200+199 199+198 198+197 197+196 196+195 195+194 194+193 193+192 192+191 191+190 190+189 189+188 188+187 187+186 186+185 185+184 184+183 183+182 182+181 181+180 180+179 179+178 178+177 177+176 176+175 175+174 174+173 173+172 172+171 171+170 170+169 169+168 168+167 167+166 166+165 165+164 164+163 163+162 162+161 161+160 160+159 159+158 158+157 157+156 156+155 155+154 154+153 153+152 152+151 151+150 150+149 149+148 148+147 147+146 146+145 145+144 144+143 143+142 142+141 141+140 140+139 139+138 138+137 137+136 136+135 135+134 134+133 133+132 132+131 131+130 130+129 129+128 128+127 127+126 126+125 125+124 124+123 123+122 122+121 121+120 120+119 119+118 118+117 117+116 116+115 115+114 114+113 113+112 112+111 111+110 110+109 109+108 108+107 107+106 106+105 105+104 104+103 103+102 102+101 101+100 100+99 99+98 98+97 97+96 96+95 95+94 94+93 93+92 92+91 91+90 90+89 89+88 88+87 87+86 86+85 85+84 84+83 83+82 82+81 81+80 80+79 79+78 78+77 77+76 76+75 75+74 74+73 73+72 72+71 71+70 70+69 69+68 68+67 67+66 66+65 65+64 64+63 63+62 62+61 61+60 60+59 59+58 58+57 57+56 56+55 55+54 54+53 53+52 52+51 51+50 50+49 49+48 48+47 47+46 46+45 45+44 44+43 43+42 42+41 41+40 40+39 39+38 38+37 37+36 36+35 35+34 34+33 33+32 32+31 31+30 30+29 29+28 28+27 27+26 26+25 25+24 24+23 23+22 22+21 21+20 20+19 19+18 18+17 17+16 16+15 15+14 14+13 13+12 12+11 11+10 10+9 9+8 8+7 7+6 6+5 5+4 4+3 3+2 2+1 1+-10000 0+10000 0+560+-9999 1+-9999 -1+9999 1+9999 -1+-9997 2+-9997 -2+9997 2+9997 -2+-9994 3+-9994 -3+9994 3+9994 -3+-9990 4+-9990 -4+9990 4+9990 -4+-9985 5+-9985 -5+9985 5+9985 -5+-9979 6+-9979 -6+9979 6+9979 -6+-9972 7+-9972 -7+9972 7+9972 -7+-9964 8+-9964 -8+9964 8+9964 -8+-9955 9+-9955 -9+9955 9+9955 -9+-9945 10+-9945 -10+9945 10+9945 -10+-9934 11+-9934 -11+9934 11+9934 -11+-9922 12+-9922 -12+9922 12+9922 -12+-9909 13+-9909 -13+9909 13+9909 -13+-9895 14+-9895 -14+9895 14+9895 -14+-9880 15+-9880 -15+9880 15+9880 -15+-9864 16+-9864 -16+9864 16+9864 -16+-9847 17+-9847 -17+9847 17+9847 -17+-9829 18+-9829 -18+9829 18+9829 -18+-9810 19+-9810 -19+9810 19+9810 -19+-9790 20+-9790 -20+9790 20+9790 -20+-9769 21+-9769 -21+9769 21+9769 -21+-9747 22+-9747 -22+9747 22+9747 -22+-9724 23+-9724 -23+9724 23+9724 -23+-9700 24+-9700 -24+9700 24+9700 -24+-9675 25+-9675 -25+9675 25+9675 -25+-9649 26+-9649 -26+9649 26+9649 -26+-9622 27+-9622 -27+9622 27+9622 -27+-9594 28+-9594 -28+9594 28+9594 -28+-9565 29+-9565 -29+9565 29+9565 -29+-9535 30+-9535 -30+9535 30+9535 -30+-9504 31+-9504 -31+9504 31+9504 -31+-9472 32+-9472 -32+9472 32+9472 -32+-9439 33+-9439 -33+9439 33+9439 -33+-9405 34+-9405 -34+9405 34+9405 -34+-9370 35+-9370 -35+9370 35+9370 -35+-9334 36+-9334 -36+9334 36+9334 -36+-9297 37+-9297 -37+9297 37+9297 -37+-9259 38+-9259 -38+9259 38+9259 -38+-9220 39+-9220 -39+9220 39+9220 -39+-9180 40+-9180 -40+9180 40+9180 -40+-9139 41+-9139 -41+9139 41+9139 -41+-9097 42+-9097 -42+9097 42+9097 -42+-9054 43+-9054 -43+9054 43+9054 -43+-9010 44+-9010 -44+9010 44+9010 -44+-8965 45+-8965 -45+8965 45+8965 -45+-8919 46+-8919 -46+8919 46+8919 -46+-8872 47+-8872 -47+8872 47+8872 -47+-8824 48+-8824 -48+8824 48+8824 -48+-8775 49+-8775 -49+8775 49+8775 -49+-8725 50+-8725 -50+8725 50+8725 -50+-8674 51+-8674 -51+8674 51+8674 -51+-8622 52+-8622 -52+8622 52+8622 -52+-8569 53+-8569 -53+8569 53+8569 -53+-8515 54+-8515 -54+8515 54+8515 -54+-8460 55+-8460 -55+8460 55+8460 -55+-8404 56+-8404 -56+8404 56+8404 -56+-8347 57+-8347 -57+8347 57+8347 -57+-8289 58+-8289 -58+8289 58+8289 -58+-8230 59+-8230 -59+8230 59+8230 -59+-8170 60+-8170 -60+8170 60+8170 -60+-8109 61+-8109 -61+8109 61+8109 -61+-8047 62+-8047 -62+8047 62+8047 -62+-7984 63+-7984 -63+7984 63+7984 -63+-7920 64+-7920 -64+7920 64+7920 -64+-7855 65+-7855 -65+7855 65+7855 -65+-7789 66+-7789 -66+7789 66+7789 -66+-7722 67+-7722 -67+7722 67+7722 -67+-7654 68+-7654 -68+7654 68+7654 -68+-7585 69+-7585 -69+7585 69+7585 -69+-7515 70+-7515 -70+7515 70+7515 -70+-7444 71+-7444 -71+7444 71+7444 -71+-7372 72+-7372 -72+7372 72+7372 -72+-7299 73+-7299 -73+7299 73+7299 -73+-7225 74+-7225 -74+7225 74+7225 -74+-7150 75+-7150 -75+7150 75+7150 -75+-7074 76+-7074 -76+7074 76+7074 -76+-6997 77+-6997 -77+6997 77+6997 -77+-6919 78+-6919 -78+6919 78+6919 -78+-6840 79+-6840 -79+6840 79+6840 -79+-6760 80+-6760 -80+6760 80+6760 -80+-6679 81+-6679 -81+6679 81+6679 -81+-6597 82+-6597 -82+6597 82+6597 -82+-6514 83+-6514 -83+6514 83+6514 -83+-6430 84+-6430 -84+6430 84+6430 -84+-6345 85+-6345 -85+6345 85+6345 -85+-6259 86+-6259 -86+6259 86+6259 -86+-6172 87+-6172 -87+6172 87+6172 -87+-6084 88+-6084 -88+6084 88+6084 -88+-5995 89+-5995 -89+5995 89+5995 -89+-5905 90+-5905 -90+5905 90+5905 -90+-5814 91+-5814 -91+5814 91+5814 -91+-5722 92+-5722 -92+5722 92+5722 -92+-5629 93+-5629 -93+5629 93+5629 -93+-5535 94+-5535 -94+5535 94+5535 -94+-5440 95+-5440 -95+5440 95+5440 -95+-5344 96+-5344 -96+5344 96+5344 -96+-5247 97+-5247 -97+5247 97+5247 -97+-5149 98+-5149 -98+5149 98+5149 -98+-5050 99+-5050 -99+5050 99+5050 -99+-4950 100+-4950 -100+4950 100+4950 -100+-4849 101+-4849 -101+4849 101+4849 -101+-4747 102+-4747 -102+4747 102+4747 -102+-4644 103+-4644 -103+4644 103+4644 -103+-4540 104+-4540 -104+4540 104+4540 -104+-4435 105+-4435 -105+4435 105+4435 -105+-4329 106+-4329 -106+4329 106+4329 -106+-4222 107+-4222 -107+4222 107+4222 -107+-4114 108+-4114 -108+4114 108+4114 -108+-4005 109+-4005 -109+4005 109+4005 -109+-3895 110+-3895 -110+3895 110+3895 -110+-3784 111+-3784 -111+3784 111+3784 -111+-3672 112+-3672 -112+3672 112+3672 -112+-3559 113+-3559 -113+3559 113+3559 -113+-3445 114+-3445 -114+3445 114+3445 -114+-3330 115+-3330 -115+3330 115+3330 -115+-3214 116+-3214 -116+3214 116+3214 -116+-3097 117+-3097 -117+3097 117+3097 -117+-2979 118+-2979 -118+2979 118+2979 -118+-2860 119+-2860 -119+2860 119+2860 -119+-2740 120+-2740 -120+2740 120+2740 -120+-2619 121+-2619 -121+2619 121+2619 -121+-2497 122+-2497 -122+2497 122+2497 -122+-2374 123+-2374 -123+2374 123+2374 -123+-2250 124+-2250 -124+2250 124+2250 -124+-2125 125+-2125 -125+2125 125+2125 -125+-1999 126+-1999 -126+1999 126+1999 -126+-1872 127+-1872 -127+1872 127+1872 -127+-1744 128+-1744 -128+1744 128+1744 -128+-1615 129+-1615 -129+1615 129+1615 -129+-1485 130+-1485 -130+1485 130+1485 -130+-1354 131+-1354 -131+1354 131+1354 -131+-1222 132+-1222 -132+1222 132+1222 -132+-1089 133+-1089 -133+1089 133+1089 -133+-955 134+-955 -134+955 134+955 -134+-820 135+-820 -135+820 135+820 -135+-684 136+-684 -136+684 136+684 -136+-547 137+-547 -137+547 137+547 -137+-409 138+-409 -138+409 138+409 -138+-270 139+-270 -139+270 139+270 -139+-130 140+-130 -140+130 140+130 -140+-8555 4746+-5150 8178+1000+6749 3296+-8923 1329+-1040 3550+1504 -6685+-6185 -984+-779 -513+-9158 -3891+4716 -6171+2417 2347+5106 -5883+-4054 6288+-1511 2780+-704 -7578+-7602 4542+3422 -7798+7731 5063+-3607 991+-7769 -4707+-6836 5507+1998 8603+-7017 -1932+-338 6113+-1569 -3495+-30 7911+5207 -8074+-9503 -1254+-3222 -2691+6406 2056+3887 3184+-2894 5624+3431 -6847+-1081 3844+3059 3482+-8340 -5093+-5828 2379+1063 -3725+-2128 8161+-2620 1706+-6387 7364+-4049 1220+-1599 -6517+5422 -2661+-6141 1692+-1913 -3561+-1861 -7973+-7437 -5230+-2074 -782+-2366 -8549+4241 -5559+7073 861+-4693 -2419+3200 592+-5185 192+-4518 -1178+3812 -1192+8358 4866+6982 4010+-1596 861+-8540 2533+2552 543+3647 -8257+-6385 1713+6747 -4181+-791 -3707+8324 5472+3213 8301+8306 -3575+-1450 2668+2192 8938+4756 2309+-8013 -4819+1502 2799+1352 -4204+-1875 8485+7348 3606+2426 -2725+-2302 7885+7740 -4176+6746 748+7529 212+344 5521+-2909 -7365+-8816 3460+-8318 -2890+6187 -3575+1225 -2815+2757 6856+1084 9099+-1083 -6803+2179 -3823+-4082 -6264+-4618 8460+2018 5576+-7775 -3443+-8811 3709+-2545 524+3341 7816+4066 7406+6438 -5064+-4710 -2485+-7580 4742+-7986 4547+7654 4379+-5718 5536+933 -8087+162 -9946+-4225 4359+-2351 -3391+-7728 -5434+-7856 -4290+1758 -7110+-1121 -1226+-4889 215+-7064 1506+-1672 -7237+-8852 -1878+3544 -8077+-5535 -3027+1416 -1490+5113 -2506+534 -4669+4676 -124+1674 -2484+2276 -4212+-5337 -5796+-3624 1614+-1474 -2477+7502 1478+-3822 2653+6954 -1556+-2704 7679+6257 -7335+-8909 1651+-4280 -4833+612 1448+2821 -5686+4674 5535+5446 -4283+5104 -2798+1865 -2243+-2929 1317+-2492 400+801 -5782+-5461 3693+3717 7523+5524 -1355+7152 5337+3220 3428+3986 1483+2236 1008+519 8998+1875 -8451+109 4077+-7395 5433+419 5976+7081 2615+2872 7212+4769 -3751+4351 3968+8543 -793+1032 4967+-3846 -3257+284 -9970+-7781 -222+7293 5770+-4864 -4664+-873 -8443+-1615 -9653+-5169 2859+-6888 -83+-6195 -6517+-7876 1899+5170 -3242+4691 -6508+-2668 -9617+-7111 -4053+6770 -7308+3107 5626+345 6245+-6300 7314+-4308 -8773+3000 5099+2912 -2196+-2472 959+-537 -7344+-371 6594+-1739 -6457+1306 -38+4830 -4083+4194 -8444+-3772 1593+3496 -9043+-6240 -2045+5281 936+7074 94+949 3404+2237 742+-4740 2703+7527 -901+2465 2397+-3386 -1058+-5831 5710+814 -8380+561 -554+-2496 -9421+-5275 5276+2255 4955+636 -4755+4673 -558+4215 4087+-8658 -3824+-2661 -6924+-1118 -879+1974 -7544+-6702 561+988 -3472+7818 -816+-6591 -5245+-5775 1765+2885 3431+-7289 -6636+-1287 -6684+-7201 -6467+-3814 -2828+-2815 -5058+1972 7640+-3576 5488+-5131 4208+7975 -39+-5518 4422+-5894 6785+-2180 6308+8951 -1088+3390 -9077+-8822 -752+-2584 9223+3050 -7608+2463 7117+-570 2068+2401 -8893+4783 2237+-5975 -4067+1238 -6073+6305 -6591+-6804 -6934+-2297 2287+8351 2272+-4125 -2708+6109 -6280+-4265 1855+-350 -7661+-3404 4812+2507 2929+1973 -4858+6130 -7310+2940 5134+-9331 130+-3608 3101+1164 -8956+3704 -4760+-5190 8070+-4569 -5714+3524 4737+-1820 6416+6790 4964+3672 6724+-6414 -7670+5724 -6433+-8474 3281+-7436 1632+6455 -348+-5413 2017+-966 -7581+-2070 -4324+-487 7433+7615 -4943+-7302 -3960+-7851 4281+7394 4244+-1127 5927+-5577 -4245+1922 635+2425 -4153+-422 -5956+8389 -3707+1932 -9189+7136 -686+1748 3276+-3277 -4458+7574 -3945+282 4659+3356 9202+119 -158+7345 -3333+-8015 82+-6109 2843+4696 -5170+9141 -2215+3547 8216+6061 -6721+-358 -2585+5648 -3610+3398 9071+-6679 6843+2252 -4527+5908 1631+-5230 -4429+5067 -5057+-7795 -2651+-6558 -5160+6560 6549+6691 645+5261 -1990+7224 -4670+-2753 2568+5770 3483+6216 -7041+2167 -3260+3936 4134+-129 2976+9258 875+8512 4321+7597 -6348+-6869 -2550+-843 -2636+5470 -7046+107 2813+-5186 -3636+368 7400+1161 -415+3866 3956+-3809 -3997+-6097 -682+2351 -7141+6470 7596+-3597 8744+5970 -6935+5763 -6228+-7460 3726+-5211 -5517+5253 3250+-2027 -278+-5968 -4701+6933 -3685+6325 -2374+-6599 4840+-1092 1093+8819 3217+9312 2307+-69 -4041+808 8284+1172 -6125+-6279 3113+1502 -3685+2643 8718+3397 8708+-5646 -1726+5851 -3949+-7418 -2665+-2035 -1387+6741 -2238+4751 -610+327 4515+-5077 -4991+-2201 5531+-7419 5823+-8933 -4295+-4968 7285+-6806 3976+1518 -3117+-1574 -146+4403 -4446+-3764 -2477+-1765 -8813+347 -9383+-3123 -3074+89 -4419+-235 -8455+1631 3458+2704 -237+-5415 -1623+-8571 1827+74 -7507+-5410 7266+-1702 6261+-4483 8561+-7626 -921+3840 -4804+-3492 -7907+-5781 -5331+-5569 -4272+-6906 -2480+-4512 1740+710 -3907+-4697 7308+690 -1616+-3971 -4516+-3267 6863+1913 6166+-461 3794+3018 -4177+-1912 4227+-1657 9466+-2560 7224+2770 2404+-5141 2307+6241 5088+7199 -4445+1043 1290+-3390 7276+-9064 1665+-7778 3199+6093 -7573+2074 5255+-6478 4537+-5865 -2292+-593 3369+-342 -9326+1490 3705+-1638 -667+-2619 -1616+-535 -4823+3416 -5009+5077 1239+3562 -4965+6821 -3554+-2405 919+9241 -1073+8499 5084+4268 3500+7540 -882+3125 8440+4629 3438+-465 8748+-4253 -7433+1304 -1319+4908 4190+-6379 -7599+6432 -1887+8637 -406+-4975 -7542+6221 -5831+319 -8220+-4934 -5893+1837 7101+2746 2988+-4316 1411+-2141 -4302+-5052 -5106+7658 -2776+2431 7232+-3945 4954+9142 -2218+-7659 -5908+311 -6697+382 7856+-6502 7279+-4321 -6119+-5284 -6885+-7126 1619+-7790 6117+-4715 -6079+4693 -6906+-1487 485+-2232 7899+9577 -916+1525 -8264+-1198 -5993+1499 2069+-1455 -2057+4435 6366+-5111 -2436+-549 2041+-5670 6491+-1040 2697+-6262 1396+-3045 -3079+-1178 -9695+-5784 6230+-3949 40+4271 7741+-4737 1885+-9828 1450+4165 -7723+8417 -878+-5955 -6334+-2231 6182+735 2776+-608 -1942+-1996 5421+-6673 12+-7777 3898+-4423 -8276+3701 5993+-6324 661+7219 640+-7019 1426+-1528 -1320+7787 5175+-3209 -8411+-756 2799+4103 -3031+-3079 -5843+-4598 -8448+-5744 324+3477 6182+-3201 4072+-7830 -3608+-593 -3260+3477 -1338+334 7709+-3874 4076+-7621 6167+6908 2022+-3892 -2509+-7230 5615+4477 -1027+-2516 -4459+4584 -6586+6127 -3079+-1721 1765+-1239 2477+-1978 -1324+-4721 6371+6559 4950+-465 -1506+2171 -400+9848 944+5671 -929+3818 -3972+8411 -4308+5727 -7813+-994 -7545+9079 -967+-9208 -1470+-3355 -3909+7147 2548+7442 1942+-7159 -1287+-6785 3623+-997 377+-2687 9002+8100 3504+5629 6147+1197 1429+-3220 -5642+3308 8949+3707 2217+387 2625+5652 6449+2376 -1773+2067 -1416+-3949 -7766+-485 9419+5872 -1212+7509 1940+-1664 -7745+-8047 4486+3506 8275+-7900 -1070+-3539 2138+-3349 7671+1590 -6072+1651 7994+-8914 -4473+3843 6817+-7021 1111+785 -969+9514 1607+1343 8255+4540 -4178+-916 -5635+-5783 -2277+-5850 1243+368 245+1339 6567+1998 -8271+4549 -4640+-731 398+-6604 3749+1984 -3194+-3678 2945+1249 3228+5099 6880+-1728 -8461+8649 -3249+-5770 7547+-590 2959+-8179 4694+1409 -3485+-2251 6108+-2561 -6817+-6625 5174+-1238 1953+4385 -2752+-9915 1139+-2373 -6082+4371 8895+-9790 -123+6930 -1751+-3582 -1406+3271 6709+-2083 7724+8421 -273+5724 7487+3895 6593+-9032 -1729+2001 8181+7656 1240+398 -4976+-35 -9261+-5820 7799+5802 -1067+1784 -1435+-5172 -3486+7634 -2002+-1396 -6980+-1270 9783+3313 1019+-3275 7921+7295 -6305+-8809 1191+-3661 1954+3242 -4255+-1971 -8622+-2391 -6650+9172 -3068+-4946 -7316+6526 6890+-1718 -7326+-5634 5325+-5824 -1032+-2172 -7659+-4728 -8584+267 1412+-3359 8870+3225 -1223+-8224 51+2485 15+6486 3630+2893 -5975+-3467 -8293+8690 3359+6901 -361+1865 4450+-5687 2807+-7136 -3693+5112 -27+-5482 7706+5482 -4885+-8220 -3244+-2610 -1258+-4030 -5360+-87 9493+8930 2345+6350 -5664+2049 -9448+-1439 7225+7458 5996+-1378 -5549+-5011 3070+2820 9101+-4135 3790+7131 -4969+6026 4531+-5086 2743+-1576 -1308+1714 2417+-648 6341+-4313 5791+-3164 -5548+-3910 -8846+-821 -1898+5263 6957+2223 8340+3991 6330+-1998 -1821+-259 3759+500 -502+-2840 6246+-6383 -7491+-5593 286+-35 -8421+-5996 -3992+3352 8000+3882 -1171+6326 -5370+3280 -7039+8089 620+3742 1295+-7738 -93+-2107 -6953+-4064 -4411+7264 -6786+-3305 -163+-7018 1367+-77 -5577+8868 -230+-2378 -4271+1241 667+-5053 -8495+462 4779+-4350 -3139+-5674 2460+-5844 -519+-4396 179+-6793 1592+8237 1079+-8377 510+7498 -3820+-5921 -7853+-9194 -86+3024 5871+-8655 -1306+661 -8662+681 5317+-2708 -5789+8422 5349+-3720 8797+-3242 -5958+5119 -146+9864 -3+691 6349+6806 -4862+3646 -7131+-5488 835+6539 -454+4490 -173+-1999 -2330+4848 -6360+-429 2440+6694 3423+-6987 -3332+8030 2304+7353 6503+5514 6682+-1033 8330+-4937 -2818+5696 2608+-540 -3977+-4708 -692+-7106 -4154+678 609+6908 2655+964 -5456+-6768 7058+615 -8194+3056 -2958+6067 -6214+4702 5118+1770 2203+-4944 6788+4935 5019+2272 9033+-5599 1942+-6413 -2905+1903 -8165+-6995 -2202+-8355 -4439+-5905 3595+-2696 -4693+5397 4943+-2589 -5693+3341 3824+1436 -8113+2984 -5959+-574 828+172 6362+-186 3387+5363 -2787+-1855 8895+-4742 -1177+2339 1935+3639 -9101+-1022 2712+6035 7324+-2240 -4378+-4843 5893+-6557 582+-7169 4018+-3924 3226+-2897 73+-6371 2963+534 6598+683 6436+-9316 3371+-5087 -6938+1286 -3735+-3420 -2150+-1506 3608+3503 -4071+2807 -4711+-8384 321+-428 4676+2870 -6847+5044 7543+-1705 -6428+-7944 2447+-2177 7515+4376 -6380+-4504 -2262+-8075 5393+-8402 -4249+-898 -314+2366 5143+-1269 -9387+-928 -8731+973 -5936+-6466 4628+3361 -6705+1210 -8330+-6111 -1510+3511 -7460+3348 3387+4634 -8257+3452 7193+-8431 -2081+-5390 -312+-8034 1866+-7360 -1317+6758 6691+-6145 -2334+5371 5962+-2785 -8719+1644 -278+1740 4043+-6403 6113+7994 1324+636 6323+7318 -5738+5621 -1690+-624 7927+2780 2738+-3393 -6325+-654 9630+-9715 1528+-3763 -3971+-6500 -5061+9636 701+8714 2578+-8511 3623+-1173 -3566+-239 7123+-4014 -4269+-901 6292+3563 -5318+1947 -134+-6080 -5345+-5806 -2655+2146 -2529+-8661 2239+-3612 -5553+4218 -6445+3614 -1360+3624 791+-8209 2598+-3204 1115+-6475 -5119+-7516 -3923+-5106 1307+-7614 3111+-1407 -1948+-1533 -2111+5753 -5074+-3513 -8300+1405 -8066+8526 3145+1248 -4470+-8400 4138+6739 1397+-3053 2161+3492 5967+4262 8483+3099 3084+-4962 -2510+1884 6772+-2928 -1065+-3099 -8463+5715 -206+-3022 -6351+-1586 1446+6202 6225+-5183 7021+4657 -448+1792 1754+9535 140+7960 1563+4297 6998+5944 -4496+-3142 8780+-5992 6196+-1865 -1841+-5700 -4268+-3758 -2249+-3621 2632+3197 -9194+9474 -1558+3352 -945+1701 -6969+-1356 6847+2179 -6563+6684 6254+-6817 5151+-3350 -9010+6044 -889+313 9877+-8407 3972+-4949 -2044+1809 -9442+-9265 1478+-3900 8215+-5331 4620+-9280 -1776+6276 3502+2451 903+-5400 677+-4111 -6048+3870 -2314+4078 8225+-2663 -8986+1704 9802+3334 -6906+-4046 -7372+-3645 -500+-2796 2393+3358 -5046+-7305 -158+1152 7132+-6184 -6755+-5808 7200+3153 4388+-187 -2554+564 -1832+-2074 3772+1197 -9002+-2520 -6983+-1143 3604+3224 -4495+-1759 -5991+5215 6628+6261 -6938+-3350 8743+9552 1324+-7859 319+-3868 7422+3625 -6587+-8809 4274+1000 2930+4742 5138+5301 3506+8923 1174+5894 -1136+-1610 -9641+-2059 -147+-3416 1769+753 5066+-985 8884+-3943 -8032+-3969 2736+-5855 -3188+-4547 4652+-3442 4375+-3757 -6791+6647 -268+-1349 -5871+-2465 9351+768 -1499+-4316 -3109+-6965 4288+5936 -680+-1465 2604+-6944 2958+-3617 -7841+-395 -9507+5795 2449+6388 -6182+6461 -3911+-473 -9295+1944 -8449+-8423 882+-3363 -3193+-7641 5945+-2627 -7547+6682 7198+323 -1971+7547 -4206+1570 -2309+-7546 4944+542 -8161+-6949 5153+6712 6457+-6072 2873+-437 -9468+5134 -3060+4360 -6791+25 -5937+-655 7831+-558 -9798+-5061 5177+4790 -3228+-9557 -2280+-9561 -2280+1000+5800 2491+3144 -7639+2397 9180+-1510 -8506+-3264 -9295+-4569 2675+2918 4021+6269 4687+7057 469+7955 -3496+-1172 8207+-2175 2862+-1439 8860+2093 -4791+-622 -5144+1409 9453+-600 5554+2047 -1374+1159 -8125+-7715 4821+-4815 2778+495 4603+39 -2287+3702 -3981+-6743 4201+2694 -5775+2491 6891+-5250 3854+-5085 7415+4955 1870+-2255 -6591+-7148 4918+-1290 -2625+4186 2420+-6486 2964+-7813 2772+-7727 3614+4352 2564+5813 342+3636 7842+2680 858+9825 693+4953 -3201+4807 6185+2349 -9657+-812 9176+-154 2243+1427 -3843+-8786 -710+7832 -279+4182 2805+-147 -6559+1595 -2402+-1424 -6519+4251 444+-4954 -5516+604 -5445+-5090 7443+-601 2675+-7908 1142+-2649 -7554+-194 -1803+4626 5671+-4775 5303+511 942+1216 4414+-5078 -7767+1523 8094+-3027 1369+4201 2923+6370 -698+6061 -7038+-2869 1726+3617 -328+1906 -5355+-8159 -1475+-4983 5033+9552 2355+2094 -4491+-468 5298+4661 -7176+6007 4807+-749 -1372+-7398 2173+-5007 -81+8996 -2141+-4403 1255+-5247 3070+3859 -1297+4147 -3666+-7190 -4633+-6389 412+-4508 641+-1044 8199+-8268 -719+-7949 -1207+8412 -1228+-4534 6565+84 -3472+-1634 -83+-1248 -506+-1149 -1165+-6315 869+-4771 -7500+7223 -4994+-108 6089+7537 2865+-1169 -1686+2489 -9646+-759 -5729+5307 -3008+7345 -2487+-2095 -2640+-6290 2852+-7378 -6064+-8508 -4378+5292 -7803+2987 -2251+3165 -2792+-3649 7324+3399 5294+-2141 6962+-7058 -1206+-8511 4073+-2438 3005+4154 5831+2952 -1084+5756 7361+-630 4000+4095 5644+-2967 -3639+-7646 -3899+-5215 4936+4211 5173+-2431 7698+-6722 2564+-7077 -3114+5040 4870+-5002 -1151+6283 -3462+7850 2039+-328 5448+-3916 2364+5596 -3834+9533 1527+739 -3843+-933 5954+6257 -7309+-5864 4409+1560 -7215+171 6540+-998 -7932+-4379 -7513+-9150 3775+6882 -95+-6717 -7190+4251 3069+-7051 -5470+-3219 -5064+8037 -2324+8774 -4637+-1823 -411+-300 -5181+-8530 5219+1971 -7017+2436 -1543+-7687 -5978+1084 -7357+-6738 871+-4818 -115+3700 200+716 1443+-5983 -273+1663 -5296+1113 6597+-2739 7462+-5948 -935+4424 7543+-3726 -7947+-1792 -3956+-8628 -3654+-613 6840+5337 4846+3000 -607+-4945 -6676+-3314 -4836+5907 7144+-6203 -4328+2474 -6748+-564 -5041+-6659 3093+-2881 -8914+3506 -2022+-5689 -7540+7611 4425+1964 -7623+-1385 92+-3641 -8233+-4363 -3815+468 760+-2370 -3610+1915 1973+5112 -6782+-6294 -363+-8050 -3657+-5842 658+-6097 -1672+-4031 572+-5544 3089+8068 -3811+9348 3238+9308 1370+2078 3040+9519 -272+5599 -2519+-4639 -7781+7736 -3129+6379 -3765+-3812 9051+4026 -6236+-3527 3483+-6502 -149+-8164 865+545 -1202+-64 -1628+-7996 -5324+-7554 -1653+2686 9134+6109 2135+4792 -5800+-903 -5197+-3222 7341+-1547 -6734+-5715 6310+1531 5417+7619 -3004+3625 5629+2378 -1595+2012 1262+5594 3968+7307 -5528+8207 1323+-8266 -278+6734 1372+-1836 45+-6360 -5731+-4724 4675+-3088 6201+1120 -8283+5661 7454+4678 4730+2429 6849+-290 4892+3262 5646+-46 6171+-1815 2794+-9443 -2958+8557 1414+3455 4298+8471 3739+5469 7684+-6852 -6496+7544 5480+6627 3637+4504 3142+-187 -7098+-9251 -2503+1938 -2263+4404 1730+-3886 8996+1622 5506+6051 3267+3457 3811+-1520 603+-5736 5147+511 -7510+-2475 -4490+-3132 -6279+6752 -107+6534 -1579+-8047 1078+1985 -8590+218 3917+2018 3201+5880 1072+258 -2126+3603 -18+-3109 4871+1759 -4+7057 2036+-327 4939+4282 -7106+-5318 -600+2716 -7832+-392 -6001+-7320 -4247+-812 -4744+1373 2995+-1311 9730+-3294 -780+7479 -3912+7316 2868+2217 2535+3822 6759+-1340 -6175+-4707 1241+3095 -5582+-3002 -7481+4012 -3162+-5012 -6382+-6316 -7007+-901 7009+439 9857+-6850 -4732+-171 -271+6858 -4428+-3277 -5330+6087 5697+6742 6575+-5722 6985+-9267 -845+3342 -6993+-8915 -4304+-6419 7051+-5643 5269+5596 1874+-6561 6682+-7720 2398+2697 -3393+-814 -976+348 -3302+2380 3630+-2154 2442+2813 6422+-2887 9263+-3167 -8852+805 9400+-1738 3391+-5708 848+298 6301+-6183 -5836+-2758 8709+-7088 1611+1305 2234+-288 7878+5275 7627+-8625 -4074+8648 2529+-5096 -3988+-5476 -7778+1368 -1016+7243 3183+-1598 -5575+5890 -6772+2423 -7239+7250 1004+3179 -384+5535 -1094+2903 9004+1582 9374+5070 1072+-9360 2738+-3159 -9047+1784 7555+-2274 1687+1635 8629+-1365 8931+-1785 1652+-3804 9222+-9003 1705+3763 2973+2269 4767+3584 1309+-5696 7294+3191 -2526+1330 -3550+-1814 3878+-1838 3083+-216 -3543+-5043 -3923+-7809 -2870+2837 -2155+4533 -7782+3709 3613+-5402 191+2363 871+-6702 -7050+-4664 4975+3099 5155+2809 6601+-2291 7729+4481 863+-1867 -2303+6632 -5310+-9530 -994+-3842 -713+1527 1468+725 -6255+2320 -2801+6021 -590+-1829 -4801+5786 -2796+-5970 105+-1570 3167+-3664 -1386+1181 -1467+6978 -1031+1919 8165+-6824 2328+2800 -7275+-5245 -3519+6664 2664+4957 -6217+-6564 -1588+5415 -7032+4324 -2827+-6380 1309+-9828 450+4535 -5926+-5037 2377+175 -1060+177 -6263+-411 -5392+-2202 1665+-5175 -5627+-3622 724+-1829 2719+5539 -4471+550 -2609+-4032 206+-6338 -6494+-9277 3662+-3545 5157+5177 1116+-5885 -520+-9676 -1605+4447 -6132+-5316 -2019+140 -5002+3369 -2992+-1130 -4188+-5917 6656+-5684 195+-7828 5064+-4020 -6400+-1252 -7817+-6552 688+-5929 5705+184 -3561+-3269 5204+4189 8291+2974 -3328+-4434 -610+-2308 -7266+-7305 -6561+-2720 -7795+2820 2460+-3477 6626+-4751 -2011+-816 118+-10 1429+4711 6027+7097 4071+8778 1922+-6072 4290+-5382 1007+8179 98+1426 2747+-467 -5640+4437 -6736+-8270 -1473+-4030 -8264+-2293 8010+-3315 -8261+173 -4777+5957 1954+-839 1587+9275 3106+3742 -7495+-4623 -8742+3321 -5346+-5709 7673+924 5442+4894 -7023+-4067 3364+758 6312+3866 8683+4091 5662+-6585 1953+-5661 -958+2785 -7493+-1754 -3820+799 3582+-6043 5743+-285 -4088+34 -9669+840 -5118+-6646 1700+-7452 -2911+666 -6400+8393 -697+-718 2669+1189 -1986+1080 7807+1755 -2712+-1445 -783+-7208 2317+-6376 -2283+6569 2660+8291 -2856+-427 -4557+8896 2674+-7327 -375+600 6798+-1887 3880+3006 3607+-1558 -7596+6347 -6557+-254 7739+-621 -2018+91 5273+-7373 6107+-9541 2702+-3600 3001+5876 5122+-8427 4499+-2101 5539+-6425 -5602+-1430 -3580+6237 4659+3156 -1726+3339 -2348+5998 1507+5683 337+-8072 -3022+524 3422+-1116 -7960+8871 2500+8898 1142+-2607 4489+3137 -6482+5181 -5008+8282 2463+1299 -6954+1879 181+-5666 7275+6912 -5952+-6736 -148+-4309 2000+-1577 -9656+-824 -999+3399 -806+3643 -6296+3055 -3280+529 -9910+5824 -6183+5261 -7708+2047 1225+4379 7349+-7505 -5668+-4384 -3107+-3860 4172+-6627 2742+-2471 -8428+-8488 -1075+-271 5999+-2076 6769+2045 2722+-2257 2572+7819 2892+7667 -4265+-2949 -4440+-1736 -3423+-2916 -3272+-6120 -6948+2878 1355+6608 6890+-5395 -7774+2513 845+4490 4418+2285 8033+3765 -7880+-1114 -494+4029 6260+-2308 -9064+-4724 1301+-7820 -2412+-5791 -5432+-4056 7611+8603 -540+-1334 4002+-8854 4644+-1703 -619+-9024 -2812+-6970 -301+-1169 1650+2150 201+4527 1549+-3627 6155+3620 -2065+-5309 -1542+5672 994+-2568 3597+2163 8031+6342 -7377+-9480 1225+7330 -2729+-7448 -3742+-4805 3859+7441 1384+-3432 -8289+-5294 -1415+-6885 -1537+-1354 -3580+-2904 -3185+-4025 -3519+-49 -5022+-2593 -8406+6512 -562+1056 154+-5876 -2908+7693 -5098+5843 -2688+-4772 -7283+-7225 -5302+-2055 6296+-2225 -4257+1362 7870+-6734 3142+4173 -1429+-2456 -175+7959 3595+-1868 -547+-4353 6638+4829 -6673+802 1986+2654 -966+2908 -1736+-7058 2732+-961 -5016+-5150 -3088+-8697 1843+7815 984+-1384 -6998+-2830 5981+9645 798+9398 -664+6429 -6845+-4065 6133+8286 -2030+-8583 1398+1767 5617+3635 380+318 -1868+4847 -6274+8996 -2561+-7993 5799+-5687 6008+7448 5936+5560 -513+-971 -4003+3514 6284+-7310 -118+2280 748+7229 621+6771 -5920+4033 6921+823 -5469+4350 -761+-4656 -2009+8361 5067+1428 6305+373 -5696+5331 -5055+-4322 7377+4252 -2059+130 5540+4651 -3312+-724 8715+-1620 1929+6570 -4870+-7771 3790+6209 -3885+5750 790+-1164 2059+-7957 -346+8687 -3415+-3200 -7248+-7366 -6462+2959 8455+-2032 1970+128 40+5138 -3859+-6616 -2909+2914 -3675+-4290 -3046+1404 5801+4546 -2760+7038 3658+2322 8716+-7958 -1073+6231 4124+6377 -6415+-6207 -7277+-4478 4240+6767 -4516+-8140 5005+8107 1855+6394 5255+6731 -3889+7456 -1007+-4683 -4786+-4794 1711+-5079 -7350+-458 -4608+1844 6278+-7596 -1710+2659 -4811+92 4328+-7343 -3359+-3669 -3876+-9028 1224+5853 -2122+8651 1217+6433 -2869+1398 -404+7242 -4336+2062 5307+7534 6304+-3790 5186+-1637 -4282+-7227 -5728+4634 1142+4601 8284+-724 -9085+-2142 -6055+3690 5879+4569 1299+-432 -2114+1272 7612+-4696 -1321+-4022 2481+3972 -1103+-2986 5007+8764 4409+4505 -2343+269 787+4087 8149+605 2269+-163 -5945+5933 -4365+5569 -4672+4630 -871+-7455 1968+-2070 -7974+4657 -7517+5442 -1722+3061 -613+6748 122+-7238 475+-9338 -1501+5369 -4973+4764 -7612+-2219 -5297+4244 -8812+5956 -381+8337 -2080+-6331 -2344+3280 6934+-3451 4771+-3680 -858+4317 2776+3333 -3157+-5228 -4491+3373 -7569+-9056 1267+-5722 -1061+3331 -2039+-7633 3864+8986 3778+-4362 1348+4180 -4902+-4658 -2318+-1885 -9503+8864 -2652+2854 4890+7906 -5425+3053 -6178+-3069 -7459+2768 4776+-6551 -5726+4628 -6625+-5995 7062+-1183 -2564+-5879 -6159+1175 4705+7115 -5834+3869 -5161+7521 -6531+-7442 5928+5269 -1432+815 -5187+-3764 -7209+-5328 5759+9202 -2148+-7007 3121+8505 1245+-4644 750+3294 -6966+4564 -2520+941 -67+-3759 1499+2417 -9013+-3161 7766+3726 -1698+4665 -8201+-852 3172+3383 7318+-2050 168+-4309 4142+664 2404+4227 -6148+-3205 4340+-7515 1727+-6913 -231+1442 -430+-4042 -6458+-5145 -3798+-3224 5132+89 7021+1626 -4925+-4635 -7501+20 -3043+6293 2456+3937 7881+2218 -7896+1771 -9339+-7893 5357+6577 -191+5680 -7914+-3606 6645+2132 -5018+5212 3098+-2441 -98+-3024 6235+2874 -8753+6451 1482+-7023 -4158+2166 -3179+-5975 -4628+-9304 -2855+4816 -2813+-5827 5364+-6866 6825+2075 -2967+8712 -1506+-5109 427+3223 -7276+1348 -3447+2133 -3993+2333 -6009+-2984 3889+0 1440+4496 -8448+8750 662+-3641 3295+758 8884+-9298 377+-8331 5280+-500 -942+-5946 2812+-7618 6431+-750 412+5162 447+1053 -1231+-14 6665+7203 247+5502 2891+970 1246+9183 -3780+2820 -301+1936 -616+4015 -5579+2925 8397+-5966 6053+-2688 -9094+6403 -4829+-1823 9242+9758 1028+-760 6397+416 3834+-1043 4650+995 -9289+-3040 -2621+2568 -6459+8699 -4076+371 -9523+-3366 7711+5974 1579+-7943 -645+3488 8717+-959 6264+-4932 1724+-2649 -7709+-7178 -6386+7022 -1022+735 -4063+-7418 -2081+3486 5142+7649 4106+-2885 -2555+5141 2544+6724 7099+5933 867+575 -3620+5884 829+-1762 -2633+920 -8296+6245 -2692+-5115 -3752+3726 7893+1430 5144+-4027 5417+647 -4901+1978 4812+-6044 1346+6852 4734+-7765 1597+-4029 -2266+2411 2877+982 9242+7697 2364+-871 -2175+1513 2687+2863 923+-3656 -4826+-4842 -6918+-4847 7554+-1117 9031+7603 -6227+-6060 -5697+643 9962+-5837 951+4295 6078+2914 6220+1133 -6996+-2843 -3171+-4984 6571+1605 -6041+-9201 -3314+-550 -8061+-8300 2484+-7190 2107+6635 -5528+-4222 7404+7116 -4900+4607 968+-446 -5040+-2629 2480+2621 -6599+1035 2444+-232 2519+-2630 2529+6594 7051+-3934 -4333+-4216 -3936+2876 -2754+-2599 9259+4224 -3908+7466 -5872+959 9116+-3268 -4056+1216 -2973+6641 3681+-6535 -1901+4852 6979+-2033 7807+644 -9098+-1488 2467+4574 5850+-7662 5967+-3277 -5356+2493 6273+-2141 6241+3233 -1935+2150 -1074+9508 1156+5547 7620+6077 6584+-3127 600+6023 -7576+4679 572+4568 7593+480 3582+5602 -4682+3930 91+2173 -6761+-1363 8329+-78 9946+4524 -8485+-9813 1516+-9614 -1838+1000+-1484 2744+-2997 -4310+-4982 -898+-5993 -1679+6133 -364+8361 -4692+1934 -4141+2510 4707+5083 -5223+-2031 8814+-2072 2445+-6898 -395+-1658 5626+-2888 7418+-2487 -7913+553 3885+778 1458+-2740 7000+-4945 -6982+-5841 1888+4258 8351+-2070 -206+467 1133+6446 -6418+618 -3662+-5149 -2908+5964 -7849+-5395 -3229+-8849 3336+4921 7472+-3574 -3338+-8365 744+-2947 4150+3924 -5155+4735 2823+-3789 -7422+-1761 -8931+1074 388+-641 3812+4389 -1336+2032 9628+2851 -4804+4705 3833+5220 -2615+8894 2085+-2678 1014+-765 6781+-2725 -6578+-1226 5289+5027 1444+3590 8131+2944 -2481+-422 5710+-7252 3234+-663 8963+-9096 3214+3342 -3065+-238 -5418+-3914 -1022+164 -4844+-7555 2172+-5096 3351+-7596 4698+1012 -9423+7599 4753+5409 -6683+441 -2830+-521 4788+-1202 -4582+3429 -6687+-1585 9597+-6025 479+1120 7315+1694 -6497+7427 -4754+9760 -959+-4638 -167+4641 1806+4673 -8583+2408 -3035+-5054 5514+-3593 -226+-7683 5369+5884 92+3293 -2747+-8302 1159+5708 5949+-2757 134+-3380 -3069+2002 -1850+-3187 859+-285 2015+-8517 3170+-506 8538+-5529 -1221+-5679 -903+1866 -4973+-2361 8938+-8492 4927+-3387 8086+1151 2070+-6677 -6702+-6313 5043+8245 5250+4336 3879+-3867 636+-805 -6743+-1386 -6214+-294 6707+4501 -3812+-7928 2739+6823 -6850+684 7898+-6703 -4941+3339 -9147+-2417 -1319+-7184 2858+2686 -7929+-4695 7444+-8451 -3525+-1136 -5725+-6664 -3315+-5418 400+-716 9628+6084 7676+-8695 591+-4742 -5174+-5891 -2477+4532 -6634+-8254 4960+9039 3920+501 -6199+2467 443+-2367 -1436+2085 3241+-3025 9016+88 -3810+4641 -8543+-7203 1608+-7192 4343+-1244 9333+-2762 8489+1204 -3126+-1116 6846+8050 4881+-5005 6216+-8038 2867+-7315 2045+5108 -2155+5514 147+7542 6370+7278 3812+1252 -2880+-6451 -1430+7846 -3783+241 16+2756 -2915+-6685 1876+-1605 -1678+8437 -1116+4195 -7278+-2672 8442+173 -9283+4294 178+-3649 6526+-1440 -4311+-7286 -3980+4249 3284+-44 -8362+-6487 -2531+-2342 2246+-6806 -1769+6964 -2134+2821 -4753+2258 -426+386 -29+8663 2609+-7163 -6823+9345 -997+4354 2642+-5061 691+-2216 6066+7825 -2607+8978 1898+-6678 632+2014 -869+7237 6508+-2012 4341+-9348 -3061+4504 -3258+-6709 -2437+-9124 3768+1538 3426+-4618 4726+-334 124+897 -4650+3471 -3157+-1681 5977+2896 -4940+3193 -1612+5244 4301+2951 -3153+1870 -9560+9540 -2924+-5459 -8349+-3009 607+-1213 5051+260 1646+-9624 520+-2153 5802+4905 -6488+4143 -7308+5282 -2334+-2974 9128+7008 885+-2185 8418+241 2102+7542 29+2582 -4431+-5868 -7856+-2652 -3111+-527 -2735+-6008 2847+-9171 1175+4458 5226+-8006 -3944+-4248 5016+-7153 5216+-6295 -2485+5369 -161+-2628 -3080+8617 -2309+154 7429+2749 -4150+852 7826+-1856 3798+1887 -6240+-7901 5083+6341 -6990+-1398 4941+-4287 -811+6578 -6616+7262 -1278+-5291 1087+7685 3685+5249 -3301+-3712 7782+-9678 2355+9837 121+-6017 -4530+5808 5829+5174 -3077+4473 7006+6120 1703+-5538 -7793+422 8222+7896 2760+-8238 2628+-2978 -1778+-6341 -5562+-5461 321+7546 -6102+824 -4011+6967 2342+1761 -9251+-2504 8051+-4551 -8175+4639 1646+7854 4203+301 729+-8469 -2196+-172 -7832+-6972 -3647+-1128 511+7721 1593+-6377 -3329+-5583 -719+-9885 -619+-5708 -2514+3668 -2280+-5504 3762+1301 5831+7836 -2947+-8461 403+-6271 3640+2702 6167+-8859 -2264+8917 -3948+2576 3708+-1697 573+-1287 752+-5973 -2696+198 4543+1159 9088+-9598 2760+4046 -4605+7985 3096+204 406+-8289 -4669+-6877 5666+-3520 5197+8076 -1561+3953 6121+3514 -3132+6604 7308+-7136 -202+7663 -1362+-8614 -956+-4366 2151+4619 1284+4742 -4065+-5955 -3136+2552 -5454+-956 -4867+-3759 -7429+-4838 2746+-4146 -4796+-8935 -3054+2920 3168+2366 1353+-4880 4845+4215 8307+6750 -5862+-466 6472+6956 -1995+4629 -5305+-1348 -4108+9307 -1506+-5348 -6079+4353 6215+1725 3894+-7953 2954+8535 1082+-5558 -291+-2269 -5084+4986 3882+521 8871+-7662 4779+5767 -4278+2673 2468+440 -7900+3709 -8500+4013 8234+-2022 -2744+2798 -8352+-4627 1804+8455 -4858+1047 -8208+3902 -4817+-2254 6721+2264 4168+5206 7522+3108 5003+5239 1620+1125 -7731+-2390 -5353+560 7335+-4208 4308+5012 -6498+3399 -3702+-5391 5514+7832 2856+-2634 -216+-581 -5101+-6346 6446+3682 -143+-2112 2652+-7960 -1182+4122 5502+9211 3600+-4901 -1657+-8842 2417+4443 7022+-5877 5313+2414 5148+4892 -2875+-7734 -3852+4348 6307+7785 -4455+-515 -9847+-309 6070+5250 595+2549 -4079+-9518 1088+-2492 8076+2788 5700+6821 5236+-112 4200+5743 3468+605 1130+-1981 809+1012 918+9897 -70+1543 7294+-3104 -6694+2449 2590+-4739 -1661+-3513 200+7433 2696+-8551 -505+2856 -3819+7795 964+2620 -2772+-2101 3145+-1713 5862+8089 525+-7376 -125+3336 5597+7765 -2222+3372 9125+2686 -3100+-6342 -90+7615 -3525+5924 -416+-8199 -1905+7699 -2203+3644 7508+-2046 -3518+1642 -8968+1479 -808+4803 -3611+5183 1812+-2718 3397+8712 799+-1213 -108+6711 -6934+-5529 -5283+6836 -4810+2641 8141+3924 -4083+-6340 5519+2863 5741+425 -7234+5433 1514+-257 -9090+-5558 4655+6183 1369+9123 1922+-7455 -4658+-1189 -4929+-8011 -1728+4042 -4783+-2594 4548+2121 4057+-9944 673+-4740 8461+-5914 -6745+3207 -3252+235 6893+-4771 5521+9633 1557+-7513 -4653+8736 3504+5662 -3833+6412 -4205+-899 -8056+51 374+5698 5574+4684 -5588+-1457 -9440+6247 4537+6948 6624+-2728 -8956+7575 -4920+-2691 -3161+4511 840+6459 -6039+1627 2624+-787 -3248+-1643 267+-1923 -6093+3919 8252+-1193 3312+6457 -108+-3457 4997+-4722 -620+-4326 4207+8707 1338+-4215 7254+7689 -1039+6654 4331+2823 -2084+-7616 6100+7111 5941+-787 -9016+1176 6075+8500 79+-8865 -3613+5266 3138+-5843 -707+-3970 2681+-5485 -2757+1618 -8842+4471 8830+-6491 3541+-4982 -5486+3326 -3130+4050 3496+-7266 -5814+-1634 -2454+2690 -915+8186 -356+5200 -1545+1864 -7929+8166 -2969+3243 -1813+4029 -8865+6752 -6840+3043 1783+7301 4158+-1341 -346+5112 7433+-4112 -8205+498 9855+-657 -2893+-5753 -1076+-3030 -7696+-3502 -1585+-4084 7107+-635 210+4213 -9055+-6560 3071+-3719 -7498+-6715 -6843+5848 928+3126 3631+5730 -4440+6415 5174+-1024 -2424+3765 6911+1542 -9392+9724 -1722+3508 6275+2335 4634+3644 8530+-6821 -1786+8305 -1100+5164 -4058+-2733 7803+9333 2604+2435 -5464+3284 7775+6992 6647+4497 -6794+3503 -3622+1872 5139+4066 -2386+-3161 -432+6204 -7704+-7232 -4988+-7879 -5686+1501 -3615+-7027 2327+-7144 -2189+-7384 2403+153 8127+5849 1424+-989 152+150 7164+-1475 -2253+6999 5730+5574 5763+-3870 -3714+-2451 -8124+1054 4529+176 -3995+1339 7590+5670 1894+-1849 5601+9551 -2326+-7468 5800+-8328 548+5277 -2171+7758 -4421+-6975 2641+4621 6648+4165 -5403+-2243 -5779+6040 -7583+-2131 8495+-1853 -8621+9600 -503+-5052 -6876+4715 -5676+7338 1698+8335 -1738+3470 5375+-8449 519+-2167 -6995+-4925 4308+-2180 5468+-5840 -4482+4476 -3239+-1734 -3069+-4380 6857+865 8920+790 7090+-2392 -2403+-3049 -7342+6811 4495+1015 -3746+5250 -7554+-6633 -4679+-7952 -2174+-8649 -2349+-6615 4383+-7756 252+4300 474+3840 4650+-7758 4141+3275 -472+960 -310+-3592 11+-7300 1735+1788 3437+3912 -1773+-2285 7974+2817 -8942+-4108 5431+-6012 -5648+990 -9082+-8483 -1417+-7821 2235+3123 -2930+2229 -6148+478 -425+-5030 4680+-3100 656+-5308 1557+2539 -7740+4965 4131+6369 -4479+-6216 -1316+-6459 -4889+-120 4546+9628 925+-5646 4518+5717 2458+6410 -2189+-2297 1813+-9131 2257+4442 1322+-1300 2549+-8425 -937+-5905 4699+-2861 -1198+337 -4303+60 -5320+-1194 8188+3975 4690+7338 767+464 -8930+9353 -2540+-576 7697+298 9633+-4880 4277+8268 3736+-268 -9386+1515 1278+-469 -2371+-6560 -5036+-7989 -5048+-6113 7817+-4027 1659+-2716 4215+3238 4215+6042 3600+-3648 9052+-2844 -8859+2078 -3287+6320 2871+-8869 -3702+5395 1270+-248 8983+3334 -5579+2960 4571+-3073 5157+-5036 -7082+7752 -5280+6385 5682+2737 6453+-1724 2247+2841 3335+1072 -951+-6847 6089+-5157 2308+-4197 -7191+7799 -561+7999 1384+7448 -5470+6807 778+-9154 -1083+5608 -5143+2327 1655+3940 866+-4234 2114+962 6588+-8839 1870+2146 -1289+-5710 -2521+5284 286+-1321 -6634+5927 -4831+-222 2394+-1028 6233+-4254 3568+2372 -9685+-5259 3797+-5031 6382+1185 -946+-6493 7373+-569 -2586+-5208 307+-9377 -451+-3234 -3901+1415 -5624+-7422 -409+-7878 -5361+-5086 -7564+471 -6159+9824 -853+592 1850+-2015 -2006+1107 2297+6456 -1474+4697 -5553+-4761 3214+-1935 8686+2219 3093+-6375 3441+1349 -750+3669 -8742+-1240 -2707+7122 -982+-8559 1828+6954 -5262+-7069 1111+-4022 1023+-311 3300+4700 -8305+-2972 -2796+-8201 753+-8245 -964+7822 -1786+8030 -2814+1761 -6116+6744 1529+-3447 1875+5905 6447+-7227 -4125+6125 6566+-1081 7665+-1505 -2883+6084 232+-4245 3968+-3790 4076+-4993 -1476+4047 -1160+-7715 3430+283 340+3256 8377+3355 -116+-6027 -4834+54 -4846+230 2978+-1785 4659+4086 8688+1184 -1776+1848 468+5770 2000+8131 -3634+4456 3248+701 2257+6590 6690+7976 -5173+7877 -4838+164 -3634+6366 -2024+452 9044+-3148 6165+-5132 929+8883 4491+-5081 -405+3878 -3590+1762 3113+-6503 -5430+-1040 -1045+-5150 -5469+-4797 3584+-2800 -1797+-4051 -4893+6985 -2321+-3805 2512+-1182 6234+-294 7738+2336 -4694+-3253 3813+-7263 6196+8112 4834+5561 -6339+-4298 1692+4483 -3579+-6174 -7331+-3820 -593+-7719 283+2053 792+4853 -4577+-6082 -334+1209 169+-1874 -7169+-1667 3098+-7823 -3879+5136 3447+-1035 -2104+340 3512+5385 6547+1732 2971+-8523 -2533+145 -1655+6861 3174+-9144 -92+9738 1586+109 -5245+-3158 4069+6756 7024+-5135 7903+-5263 3272+804 8629+6712 6522+4789 4983+1554 -65+2354 -4903+2826 4228+-606 4449+2529 -6892+-1508 -8809+-4572 2371+4872 7250+7700 -2338+3527 1563+-5999 -3228+5013 8104+3125 1793+-1314 7854+4680 6693+6265 -7677+-3368 -1919+4515 -7601+-6178 -7020+3815 5099+2310 -1426+4003 4259+-2329 -4753+-4662 8739+4021 5668+4230 -8467+8146 -453+-905 -4034+-6805 -6702+3744 -8536+-1833 -879+1710 7619+4582 -2056+-5490 1826+-6972 -5090+-1480 5303+4897 5744+6301 -4205+1491 -9450+2876 8699+-6910 7072+3668 510+-5879 6832+-6049 2326+5090 -6349+316 -5966+-8050 -5255+-1568 -1282+556 -3416+-5019 729+-2604 -5011+-8429 1692+4541 5833+-684 5606+2836 -6724+6555 -1763+-5851 5805+8638 3795+5227 4108+-4552 2376+2271 -2913+-8025 1031+6257 2366+2507 -5378+-5285 -4959+-4706 -3162+-7421 -4237+-2092 -6947+-3860 3992+-7092 -6508+7797 1101+4175 8239+6621 -5189+6203 1181+-2329 4988+-7926 5384+-3329 -7383+-2851 8485+-5645 -4053+5156 1919+2418 -4897+-6665 6378+-6695 -3057+5727 7934+-1611 1522+-254 2580+-2088 9026+409 -5092+7924 -3897+643 -2137+3704 -2786+-274 4103+6556 -958+-372 -9036+1154 -4619+-8842 4256+4048 -8558+8883 -529+-2156 -1896+6201 -5298+9407 1597+2603 5886+-7560 5499+1583 -284+5366 7227+-4116 1005+-7288 4987+-6585 -4493+-1184 9909+-2526 -7207+-4435 -297+2105 5974+-6072 -4194+338 8566+-6149 5465+-968 3367+1730 -3265+422 7370+350 -4862+-4395 8246+5340 -4715+-1240 2952+-1500 -7266+1505 -4997+946 3054+302 5961+7854 1743+-5842 -4553+-6487 -5864+3553 2164+-9645 1908+4600 -7739+15 -2062+3254 3176+-1164 440+-5709 2513+5820 1852+-7197 -4938+-9383 2780+-2881 -443+-848 6866+4078 -282+254 7504+9328 -2524+2537 1356+4800 -586+5983 7601+1245 -5053+-9568 1461+7488 2677+7101 -748+4752 -959+-2050 4612+4 5708+9061 550+-8223 -2896+-2425 7080+-786 -475+-3249 8508+6182 6409+760 -8461+-1435 2229+-6463 2898+1868 -541+-1054 3187+5999 1664+-3382 8549+-1393 -7135+-4321 -647+3057 -3231+-3809 8871+9276 3585+1000+974 -9778+3487 -6373+-854 5073+2490 8264+-8342 1212+3570 -5056+1277 7775+213 6359+3396 -6159+7926 -4965+2985 4956+-6976 -870+3980 8519+2621 2052+1342 5053+4239 4868+5607 3704+-1167 4615+2646 432+5139 -4069+-1913 2442+4844 6360+4930 -5189+-2083 6353+-5858 5925+-2826 2229+6476 -1869+1481 -7719+2793 -6468+-1810 4864+-6939 -5819+554 1366+-1521 8858+6072 -6607+5160 1383+-1627 -1574+-6439 -3334+-7243 1098+1259 -1834+-1583 -9244+1117 3524+5424 -5453+7915 -5405+3618 9226+-90 777+6114 7514+-3683 -3253+-2303 8795+-6323 -135+-526 3458+7190 3117+1057 -8342+6948 6428+7460 4335+5746 1627+7098 2123+2872 6253+5952 5315+-1436 -8946+3455 1307+-834 -5201+-75 -5128+-1064 9544+-3389 4785+-5262 6292+5332 -7398+-6049 231+-5441 3950+-6595 6616+-2450 -5397+-8429 -1558+-7533 -3583+-5197 1212+-1731 -4051+-5281 -1876+-3191 5532+5931 7460+-3250 -6897+-6219 2164+2831 6054+9722 860+5444 -3969+-6181 -6406+-3324 -2568+-3353 7173+1023 9477+4591 8521+5789 -607+9192 1287+7676 1249+969 953+6899 -1648+4450 4854+1036 -1681+-8525 -2696+3837 -486+-4251 1110+1311 -3453+-4988 -2109+3668 4313+709 -1511+5406 -6294+-1075 1221+137 -6567+-323 -3750+1380 -3834+866 -9913+760 2775+-567 -7665+4224 84+-3735 -8606+4530 319+6895 -2895+1725 3921+690 8696+-7381 -1821+-7158 1755+-3525 -7005+1317 -8848+-1561 -7436+-8636 -170+7840 2810+-51 -246+1011 7560+8759 -1695+2192 -8247+-9103 614+8207 4693+-621 3961+5036 4192+-2482 4341+-9701 -1380+-5378 5940+-5947 5238+-8379 -4974+4536 1125+-7743 -1420+-4141 -8361+5065 -6724+2300 -6169+-7449 1151+-3650 5391+1963 9072+7249 -6866+-8284 5589+1961 -1639+-2089 -5515+-8454 -3509+5072 -1988+3998 1476+6797 -5679+-7236 1455+4798 2824+-8585 -4258+-1751 -7688+-1864 5078+-4468 8228+-3512 1344+-6439 3147+-5484 -3593+-4253 -5685+-9038 599+-7862 4184+-7281 1947+2396 2372+-4870 7036+-5731 -4272+-5040 -3248+-5643 2535+7842 -4403+-79 560+-1406 5947+4087 6291+5436 -2078+-5185 6708+7083 5895+4223 -7459+5961 -1409+4659 -2457+-2634 6185+8996 4331+-4233 6938+9405 2370+1480 -1339+8471 -1290+9297 -3473+-5428 1319+-5664 -7110+-2421 1012+6568 -1179+-5624 1708+-8449 -36+-297 5874+-9470 -2043+1568 3243+-3085 6374+1491 7291+9471 117+-1974 6506+-6704 1538+4911 2884+700 -7960+-1308 1644+5969 6525+-918 -6580+-32 -2006+4573 7708+-4476 4266+8143 -4660+2253 6362+-3974 5959+8093 176+3116 8673+6597 -876+6075 680+-4307 3290+-8130 -2926+-849 2038+2750 1764+-2616 -3956+-6856 5477+4308 6284+5675 101+1555 -8393+3317 4425+1502 -1829+5496 6268+2476 -4632+3624 3396+-5001 -4271+105 -8077+4814 -5059+6416 -3072+-7422 -2663+-3212 1141+3363 -7890+-3925 8191+9493 -1382+7957 -930+-1877 7648+3757 -1741+5258 2423+2456 9440+-4441 5215+-1869 1323+188 -6615+-2618 2204+1577 5632+1418 2125+-6303 -2723+259 7156+-3651 -82+-7184 1618+-5905 1819+909 -2295+-2248 -14+-173 -9164+-1325 -6354+2164 -2358+-3126 -1668+3086 -805+3814 -3208+5957 -7249+-3805 -7325+-6740 2780+3430 -5692+-6201 3440+5160 -5378+6982 2800+3905 -7603+-7991 5477+-4324 -1951+4327 6725+2356 4453+-1285 5496+5107 150+6936 -5008+4485 -3626+-3070 -1768+-640 -7026+-5774 1804+6411 -2575+-4320 1013+-4962 8159+-761 3119+-6777 -401+-7112 4399+2231 4985+-2579 7753+-7039 443+-6005 6225+-2114 2193+-8220 4887+-8183 5168+-87 5550+8742 -3201+4621 854+-3504 6241+3978 3826+-7509 2620+2685 3731+-3790 -6846+531 -7350+8390 -2278+-5245 6974+-3033 4950+4520 3898+-6624 -4567+4309 -6337+-1503 6268+-8195 4765+5985 2470+7937 4221+-3228 882+7069 -6554+560 6831+-586 7766+-8514 -2474+6764 -540+8009 -3530+-4775 -6853+-824 -7363+4644 2753+1168 -4630+-2457 8835+-4037 7947+-1989 7259+-7050 2170+-2112 5849+-280 7656+-5782 3933+5545 774+-4296 -3914+-4322 2407+-404 5072+-5595 -6834+4203 133+2652 -5007+6327 6574+-1660 -3415+-5336 -2918+2008 7903+-4754 -1813+-2569 7010+6893 3869+2211 2365+-7533 -126+-1811 -9827+-5751 -6756+-1970 506+6128 -1425+-3350 4707+1580 7290+-7056 5057+4157 -7848+2407 -2927+-31 9825+2971 7579+3528 779+1071 3338+2139 433+-4741 -8198+-5182 -928+392 3842+-6029 -6231+-9336 981+-6506 -5491+2030 4600+1356 6474+-1866 -1558+3776 -7057+-2189 -2384+-6376 1452+6165 670+-2738 7555+-965 -8202+-5230 5471+-4498 -648+5531 -8061+6968 -7025+233 4767+3313 -1295+4647 -5683+5158 6642+5233 -6969+-1070 -8338+2013 8807+2429 3167+-1161 -9081+6907 1198+7334 6548+4286 5578+-4559 -6391+-5643 -593+-3971 4895+2082 4925+-953 -8972+-2028 -2059+-4125 -5055+2396 -2327+9623 1896+2985 3967+-4996 -1864+2799 -948+3033 2918+-1401 9500+-5784 3650+-780 4815+-830 -5492+1302 -7513+5811 -5853+7251 2053+-544 -8867+6674 -4929+4973 261+-1428 7209+1386 -7358+-5052 -7839+-6572 -4864+5741 -1716+368 4743+-8162 -2716+-2620 -3208+6507 3648+5866 -3461+-2828 -6960+6569 3821+-5293 1224+-342 -3952+1196 -3012+4084 -1313+7090 -1582+-2346 7443+2312 9224+454 -5713+-2809 2806+7604 -3173+-2807 1753+-6103 -4452+5440 -3319+8224 -3597+-8031 -4597+-2476 4770+4610 1912+-3372 -187+8915 -3948+2583 9352+-7153 -2771+-7360 -5140+6824 6133+4475 6171+5165 1071+-5108 -8162+-4091 2311+-6892 7117+1511 -1811+2536 -5000+3512 5341+-7689 -2746+-7801 -3646+-1028 6012+-225 6157+1636 7514+4817 -5103+-1829 -8425+-2791 5346+4516 -5291+-2427 769+7401 -1652+5368 -305+-4023 7602+-541 9090+-5242 -6329+2739 9262+4086 7676+7271 -3503+-7300 1378+2203 -6014+-1606 1002+2231 5754+3364 208+-4778 3657+-1285 8786+6743 -2719+-3970 -8625+-2648 -270+-7692 -1784+1461 -4858+90 -9942+263 4974+1404 2042+8374 -4392+516 3224+-2280 -7814+-1527 5938+7909 -4517+-2727 8412+1417 -1481+7366 -1738+1090 -9486+-364 -195+3366 -905+-2753 805+-5217 -834+2934 6355+791 -86+-1196 -6538+-6318 7616+89 -6806+-526 5184+7853 -3074+-1128 8922+-3435 8995+4233 7237+211 6244+5016 7772+-118 78+-6690 -2177+2394 -8664+1196 -6224+-5770 3696+449 152+-9445 760+-5550 6369+-3013 6205+-7591 -5379+-2533 -1243+5270 -4126+-242 -9284+6371 2431+-8083 -2249+6910 -3089+1386 9055+9359 -739+4618 3860+7916 5527+-7356 4944+-4995 1281+3468 -6716+812 -4156+-2630 8231+-5955 6612+1442 9039+8560 4260+39 -9984+527 -9639+-4370 -3433+-2475 8256+-3230 -8979+3827 3113+-2047 -8410+-7984 4351+4038 2743+4142 -8897+9560 2835+-2386 4972+-3270 -6581+-5572 -3725+4520 1529+-7052 -543+-8971 -40+-4205 -6584+-2974 1003+4094 6262+-5479 -4864+-6874 -3684+-7246 890+-600 -4418+-1851 6419+5189 7621+-6190 4730+-1601 -5055+-8912 2587+-6404 7385+-6500 2793+-5859 4332+-7591 5975+-4681 1476+-908 -5648+-7874 4481+-7971 -1479+7312 4626+5302 5486+5586 -3506+8207 2334+2938 -4386+1929 2017+-433 3764+6174 -6558+-5226 -8159+-8310 -4547+5696 -4884+-3206 -5965+-5215 301+-6420 2781+8322 599+8892 2847+9296 -630+-1454 7314+6400 3377+-2881 8075+-6600 -6245+3284 993+605 -3575+3874 -8405+4449 3561+1548 -5728+7647 -3823+7155 176+-1968 -1780+3105 2540+6741 -5383+-3202 6394+4978 -2198+-3175 5673+3303 3998+-6331 -6859+-8302 3461+-2100 -1884+-3950 -1528+724 -3113+4032 -2484+496 -7423+7243 259+3444 3995+9720 -1649+2260 8301+7431 362+5831 7747+-5442 1058+2913 6386+4139 -3764+-1921 3842+-6318 -3933+3887 4115+-3965 -3737+-3738 5890+-216 3780+396 -390+5441 -6936+-9974 34+-7304 4967+6551 -4680+-6834 620+2075 -1792+5003 -433+-8959 315+7184 3378+-4748 -3822+-844 -117+9133 91+-19 6332+-6061 442+-7033 3513+3935 6193+-2144 669+-2068 -1266+2211 -7855+-6641 4068+8510 -3725+2407 3271+-2079 -7737+2213 4427+-2262 -2808+5011 -5505+9414 -969+-394 4108+4196 4741+3270 515+-4074 622+8703 1461+-603 -1855+-5804 7250+-7293 -4110+4487 1070+-2741 -3404+-322 7634+2877 -2997+-4629 4914+3709 2739+-7647 -6049+-8892 -993+-5404 1799+9233 -1449+-258 3379+9219 -379+5793 -3048+3518 8527+-4993 3296+-5875 2799+6635 -3178+-3893 4588+4912 2787+963 2154+4995 1056+8317 -5463+4090 3440+164 6424+6860 6172+-7473 170+-7808 -2388+-2500 -8465+-1140 -1053+-2066 8811+-2432 6623+-452 -2873+-3184 8353+6464 5864+4563 4385+-6662 858+-5364 -2814+-6425 6699+-6723 -4797+-1463 -793+5402 4837+4311 1575+-859 778+6554 -2732+-6722 4286+2810 5379+4933 -8570+-1670 -1540+7430 -4420+-868 -9369+3370 3735+-7156 1818+1166 -5126+-5901 6015+260 -8280+-4430 -6458+335 -843+5509 -6374+2362 -2677+8226 4591+-4178 8743+-1484 6674+4947 -8674+3690 3701+-919 8885+-8 8585+-6584 1456+-3174 -2413+3244 -5609+-3837 -8529+250 -9537+3323 8974+-773 -1985+7697 1697+-3084 1190+663 -5523+9357 2247+-394 -1016+-7407 -3142+1253 2411+-7633 4155+3659 3017+3127 1489+-7136 -1553+-1842 8794+-8418 4095+-8345 1255+-4947 -6710+-6380 5292+-8307 2294+-7423 -1659+-6569 1395+3103 8097+2128 -3042+-4078 -93+-400 -3059+-7897 5401+7919 -2156+2941 7561+-917 1584+-2846 -7626+-485 9193+-8957 1628+652 2665+-5535 3392+-5007 6885+-5020 -4756+8885 3557+3807 -5838+5300 -8148+9498 -1900+7438 -4636+-7735 1604+3040 -9197+-1762 66+-1579 -3465+626 7718+4661 1113+6593 4444+3215 6153+4721 -3134+-260 3065+-8753 -4593+-11 -1710+8304 2394+-3913 -3726+-9264 1549+4760 1127+-7857 5329+342 3474+5310 2462+2190 -775+4757 -2506+-4743 3653+-9230 1681+3817 -7725+6714 -6930+1501 987+7344 2393+1399 3086+6975 -988+-674 8177+-9138 -136+1385 5449+3792 4436+-5264 -2711+4966 4997+-6029 -2606+8509 -3553+3603 3149+-2011 -7925+2733 -1048+-1151 1313+-137 814+-7524 -3426+2179 -5724+-8426 1275+-2285 -8057+-1834 -8044+-6172 -2719+1838 859+7053 -1275+3390 -194+-8753 3609+-1270 -5465+-5262 -8482+5360 -5877+-5914 1824+-63 -8191+4987 8066+-5484 -3344+1676 3479+2090 3834+4270 -37+6528 6989+3419 3546+-31 425+658 -373+1614 -1829+-2697 -5536+5818 -2522+9874 -756+5157 3610+-9018 -1621+-1444 1047+-22 -6787+-1819 4224+-2978 -435+1278 6454+4160 6251+5682 -1981+-8517 3208+2008 -4594+-1690 -1151+-7397 2252+5007 -7864+-6100 3839+7763 282+8747 -4241+-1002 -2339+-3366 -6213+4734 1603+606 251+-237 8689+-6860 4510+5632 -5863+8026 -4302+-3929 2823+-7480 4845+3934 -8712+5889 -876+-1706 -1094+-1 2756+-709 -9739+2323 -6786+2203 -7852+4004 -3565+-3623 -1492+-2954 -2890+8785 -772+3268 -5429+-2036 3979+-4988 7353+1861 4140+5142 472+4392 -2939+-4412 8332+-4604 -8657+7875 1976+4234 -2137+6524 -7441+3228 5465+-3769 -2651+8848 700+-6371 -726+4909 1056+-4848 6039+-965 -4208+8593 835+-711 -9675+-7455 -4595+6836 3142+-2488 -2694+5017 6612+2903 1103+3009 -455+5302 1059+1610 6417+6340 4194+3513 7911+3579 -5011+-8290 -1218+-8498 2789+5078 7987+3606 -322+-8737 1312+-7764 -2686+785 -9745+2450 9191+-810 -3586+-2830 -2069+-1698 3258+1684 -2825+303 9636+-4695 2300+-1678 -3169+2499 -3290+-2696 7102+2186 3347+-2578 676+-907 -7942+5150 5563+-579 -6975+2766 -4816+1332 -5878+1887 5638+-7775 4976+7208 -3143+-5032 -2762+-4558 2598+6150 5044+-1527 -9608+-122 -2274+2937 8562+-7745 -4209+2005 -5392+4022 -6671+4256 635+5114 1156+7277 -5579+-4058 7408+4358 -8909+619 2608+-5611 5257+-5207 2744+5003 -5256+-423 -3478+7977 -175+-3391 -3886+-2572 -6411+-9102 -1682+4442 2791+-4410 3821+-472 3224+-7763 -1421+-4374 -5399+-1412 -9429+3072 8498+-8681 -473+3954 -6457+-6652 -1512+-3662 -1822+6843 4122+-5748 7666+7 3086+-5834 4145+8745 -3307+6743 4359+9131 -1528+-261 -973+-3292 2760+-5380 44+3531 9045+4120 3382+3694 -1942+-2052 -8590+1171 9459+-8458 5143+1000+-9757 -2106+7000 651+2898 -4822+-280 -3959+3098 4225+-873 -3600+8699 -2682+8616 -3388+-923 -9159+-5426 -5681+-3420 -1836+2667 -1272+-714 -8839+4282 1195+4701 4497+-3144 -9114+7102 -6579+1740 4904+-2713 -8461+-680 -2023+-5748 -277+-4385 -1161+5257 6115+6019 -393+-3300 -651+3904 1372+4383 -5890+9405 -2571+-6202 7537+2873 7903+1285 -5137+6651 4936+325 2407+-3216 -2299+-2985 -955+-3819 -8539+-7664 4737+9006 -774+-6967 2664+-3906 -6178+1597 -4746+4856 6806+-2409 2089+-5376 -1635+6713 -2437+4900 8659+6185 -4611+-2576 -4779+1225 5482+672 -4027+-2331 936+4020 7675+7313 -1389+1237 -4733+-928 -7392+-3595 -6850+-1926 -2054+369 7649+-1474 6502+5331 8379+-3775 8307+922 -3541+-1026 -8076+-530 -7067+-3219 3830+-7414 3578+3619 6829+-933 -8874+4764 6439+-4252 -188+-4644 2251+-8615 -577+4637 2126+8047 155+3460 9269+4697 -6987+2573 7674+-4598 -2520+-3903 -184+2270 -6979+-1651 6235+-2357 8987+-2852 8827+-7871 4199+-466 6752+-5687 -43+1553 5027+1608 -3874+4468 7896+-4853 -2882+2882 -3855+8312 -1222+2468 5890+-4820 4091+-5239 -5801+-4929 -1355+8047 -4484+8648 -1391+-1571 -8197+2175 2776+5832 -366+5245 -1838+-972 4612+-7463 5225+2564 3742+-6277 -5407+-8211 -5318+1621 3+2688 -6610+457 4880+-4284 7010+-3463 3225+-2483 6287+5948 7882+5937 -7122+9972 452+-4402 -5518+-6369 -6076+-6698 -7183+1302 -9699+-4917 -2532+3962 5701+6775 5522+-4019 -3766+1101 4+-2075 230+-2159 859+-8694 2562+-7383 -358+618 -9213+1216 2141+2653 4768+7605 -2682+7321 -4523+1252 -8933+-5637 1137+9465 -1822+-1539 -2168+-3231 4587+1551 4309+601 -1026+-7106 4851+-5851 927+-5634 -434+-2007 -3371+-7830 734+7635 1434+4572 2589+2473 -8216+-3019 5089+-4452 8668+-1531 -9245+4927 -1032+-4455 6442+-7152 3385+6504 -6018+-9694 1387+712 -5682+-4926 -6323+4191 -2095+2290 -4336+300 -2082+1411 -1431+1582 2801+341 545+453 -8151+-429 -3935+-8584 3133+-3152 -1884+-2198 8474+-8101 3261+4927 -3504+-957 -6550+-2670 -6297+-7116 3144+2897 -4168+-3004 -7917+3871 -7001+2622 -112+3448 -2667+5916 -7788+-872 -6410+1957 780+1307 -4396+211 67+-64 9362+-772 -8302+-3450 -5477+5988 -4160+3681 861+6948 -760+-5267 -5756+4826 195+-4248 6288+9716 2223+-9764 948+-5629 3717+1033 -7454+3043 -4007+-2515 1116+2298 4358+-4355 -3547+-6777 1635+-1070 -9264+-4335 6673+4020 -8109+2321 3769+-6364 3002+-7349 4646+5470 -7601+-3353 1085+8933 254+-1315 8553+-5177 -3949+-3051 4238+-2697 -3432+208 -6982+-2964 -10+-4814 3854+-131 2502+4951 -7904+2731 5438+3113 -7979+3621 854+35 -5612+-2945 -2271+-269 -9046+-970 4080+-7133 -275+7518 2753+682 4115+-6610 -177+-4614 -4771+-8699 -302+-1619 1515+-2623 -8427+7572 -5893+1611 -255+-362 6090+-3041 -786+732 4845+5827 -3343+1650 2700+5590 2875+6520 6935+-234 -622+5951 -3946+1672 -430+8068 -4251+2426 -5802+-3415 3551+3265 -1616+2101 -1927+-5903 -5387+7918 -5893+4197 3978+-5438 -7247+-7377 -6238+-2733 1656+-4418 -7436+1191 -2906+1748 -7609+-3075 6476+-6995 4953+-3075 9061+2337 3271+-7858 -2514+-2188 4388+-4426 8247+-3593 -123+3371 4452+9814 -1358+-5061 5523+-9348 -3309+-8806 1782+765 -9316+2792 3351+-787 9094+-2819 1471+8676 -3886+-3957 8691+8208 4534+4906 997+-6380 -1456+-8505 102+4961 3791+5196 446+7324 -3617+-4603 7480+5666 -5910+-6242 -3529+8643 410+-1781 -5016+879 -6841+-5421 -7705+4246 -2487+-1540 -4316+2042 -7881+-3256 1746+-60 8804+-989 7791+-671 -1537+-6174 2374+3689 8492+8298 3110+2334 3376+-3203 -4912+-2555 9108+5778 -4806+504 5805+-3761 -7724+-1462 -3424+-7974 -4916+-6084 87+-6980 1979+-4961 7329+5754 6966+7428 -439+-8673 -1056+282 6007+614 7425+1542 -1059+9209 3504+-6210 2792+7461 169+8282 -2140+3848 -7208+-1540 -3413+-4908 5478+-1238 -5854+5787 5476+7063 4918+-4719 1743+4930 -1904+2793 -6331+-6121 3492+-4500 -2479+-7653 -1416+6570 -1414+-4725 -3102+-6308 -3791+1047 4142+-8889 -1117+-207 -2876+-582 6261+-875 1202+-5817 -5970+3981 -3146+1812 -9448+-4326 1165+3632 5493+-5582 4601+498 -6385+6783 -2622+-1000 8324+-733 8107+1227 4792+-6229 988+-7387 -1883+1557 6176+4603 -1775+-6850 1904+4306 7140+4465 -3196+-1212 -3131+-685 7768+782 -1926+1917 5350+-1459 2062+5194 7028+-6116 -246+-6623 -3501+-2813 -3696+1763 -7572+-4801 4902+3831 204+-6984 5113+-2720 -3326+7865 -967+101 -8548+1801 -4344+-1356 -2696+7601 5366+7151 -2707+9256 996+-5451 -4684+4784 5226+1606 -5938+-1079 1306+-1848 3365+-5564 -662+-5527 4103+781 -2543+7571 -3023+-2993 3558+-6674 -4892+2641 -5389+1696 -5732+7727 1663+-5320 -817+-3396 -1826+-9931 -935+1544 -7098+-6011 -3413+2765 -7808+1001 2992+1957 -1783+-1760 -7137+1152 -5106+-3230 240+6711 -6718+-1224 4053+3699 372+-7000 -5699+-3406 -8348+-7048 -4866+6488 -5581+-3875 2756+4701 -7066+-7586 -1049+2361 6774+-1764 -8919+-446 -9921+5740 -2374+8771 -2717+-6014 2892+-6403 6946+-1561 -4529+6676 -4005+2695 4556+-5675 3902+-1387 4744+3842 -7442+1182 1142+1264 2356+2750 3009+3776 -614+-269 -1512+-3062 4132+782 -5640+-7257 3710+6126 313+6401 3291+-4267 6563+-9009 2843+-4967 2269+-6584 -5650+-8671 1164+2963 -3358+2353 -739+4882 -3754+1059 2925+-959 -6229+3798 391+-8463 -2376+-5573 3085+-2332 8667+8102 5343+-2313 -585+7877 4896+5303 2314+-4610 7041+6451 6713+-1736 -9221+-4400 5280+-985 6309+-1402 -883+3249 -136+1776 3976+-3616 -2025+5863 2851+1108 -4554+-6538 -4270+2346 2298+-2134 5348+3203 -4941+-5304 1591+-2326 -4165+-728 4982+-9860 532+6973 5156+-5257 5841+-1540 -3331+8960 4375+934 8448+1001 9245+372 -7722+-8360 -1067+-4383 2098+9180 3897+8941 -2391+-6303 -2852+3092 1074+6973 -6599+-1044 -3362+1065 -7751+8842 -1788+-6092 -6749+-4956 -7822+-42 -2464+2410 9561+6739 7334+-5977 -6441+1588 9416+4604 5550+526 -6474+3768 -3482+-5776 949+-8257 2297+-9511 1526+3393 8130+4349 1731+-1158 -4064+190 5128+-6130 -508+-172 -5875+6524 -2968+-6803 -5111+-5750 3841+7802 5967+809 -1398+-6717 -1918+-387 3003+1769 2259+3682 -649+792 2975+-8945 -79+3703 -2205+-4678 -6505+5858 -1121+-5949 4380+6212 -1956+-83 1166+4771 2016+108 236+-2488 -2776+7797 -2854+-7203 6287+-8653 -3782+-4009 5077+-2534 -8473+-1363 -702+4823 -7313+-4122 537+756 8939+5543 4792+1221 -1649+8675 -1911+-1977 -1715+8680 -1007+6951 -2498+4053 7309+2516 -9460+2584 440+-6225 -7369+-5521 -6118+-6814 -3373+-8403 815+1487 -8353+-1217 -4006+8407 2640+-5465 8358+-1892 2853+-6144 2745+2323 5674+-974 -3728+-5385 -6600+-3252 5597+43 -4127+3682 4786+-4632 -592+1642 -2492+-4971 5987+-3157 -3121+-3410 3997+-1094 -1444+401 -3581+-3874 222+-2810 1945+-4102 6704+-2139 -2320+4215 465+805 -3956+-1912 5852+-3916 5629+-6541 1319+6271 -7253+-3570 6328+-2195 -6738+6342 1756+4013 6926+-1110 -757+-6496 2845+-4273 6898+-843 -6835+-7146 1862+-6322 -2583+901 -8914+2733 -7184+5464 4143+6778 5020+3449 -9268+-3482 292+5961 4409+1567 5346+-2189 1991+-3968 -5157+6204 -965+-2016 -908+3887 -2089+-1701 4255+-4550 -3681+-5018 -6814+-1617 -5534+-7899 -4142+-3542 -8647+-4719 -3270+-504 4369+5151 -2720+9334 988+8147 -2020+-6845 -3939+3768 4074+-3517 -6201+6718 -6197+-5191 4519+-8602 -4623+5927 -5627+835 -1444+5824 6702+952 -4246+3676 -192+-5314 -6431+3212 -2904+-5313 -6599+-4973 5287+-1098 3741+2091 -1085+-2420 7004+-5526 7491+4052 -5105+1622 8278+-9010 -2105+-9917 1267+4317 6120+-79 7120+5741 -5579+-283 -1053+888 1471+1055 2187+5567 -8227+-2946 -1131+4388 3049+-3297 8567+-8470 -867+-4585 -5184+-4602 -1876+-5416 -1363+5514 56+-2592 2491+-750 -3374+-2140 3628+2422 6488+-7060 -6126+3712 2373+2853 -1709+3197 -5654+2481 8544+5407 5039+-888 -7186+1501 9330+3472 4726+3593 -1246+-5946 -6313+-5328 -5149+4547 -4148+-8386 -2079+-6507 408+2388 7102+1491 -4136+-9855 -962+1293 -2823+5429 -6675+2540 7684+2119 7983+7983 -2618+-1804 -1056+-1309 1009+-3221 598+4719 -8134+6759 -5236+4890 -5070+-6797 2017+-1728 1507+2784 836+-499 4781+-8045 2317+109 -1227+-3906 1167+-3111 5419+-8923 4465+2657 -7521+-250 -7304+373 4236+-953 -4941+9393 -1249+7367 -1592+6285 5340+1755 -8686+-4789 2285+9289 -3556+-1257 3827+-6380 3073+-6585 -2059+7681 3099+1675 -6235+2627 2319+8480 -1205+6101 -2484+-2117 -7353+-2267 7603+8485 3099+-3002 2131+6836 -4602+4757 2001+3038 3321+-7223 -6023+-535 114+7116 -4842+5526 -7450+-1605 3739+6274 -1394+-8181 -4964+-4586 3618+-7586 4940+-1228 -9757+2766 -8201+7366 3355+6475 5038+-3456 3667+-7532 5403+-3208 -5119+-3466 -7991+-7540 5121+-2156 -4927+-1066 -5449+-5837 3856+-6628 5187+2271 2570+-7418 -3417+-7969 -1181+984 4868+6615 -7370+-6431 5426+5625 5457+9258 3604+-9102 -1848+-2634 3064+-6861 -2097+9021 385+9522 -6+-3542 1828+906 -1524+3963 -7302+5859 -4481+3183 4887+5105 7088+-1304 6026+3579 -3559+-4314 8610+42 3666+4538 1214+-472 1869+3204 7249+-4005 -6760+-1684 6701+-9049 1018+-7152 4568+-3624 -3809+-7530 -3941+2085 9312+-4757 -2511+6032 7010+346 5443+-6345 -6264+9286 -153+83 1498+1473 2729+1163 8215+-6407 -6762+-8201 -725+2149 -7211+-2380 -6679+940 -3618+489 -7820+-5148 3755+4054 -7686+4310 7128+-1738 -9383+2017 2957+-6153 -7519+-3440 7784+-2935 -6790+660 9124+8358 916+9649 861+3951 -1446+3910 -6417+-6918 -4358+9798 1397+4497 6651+-1831 -4930+1532 6267+4571 -1547+-3835 -5448+2809 4083+3644 436+-7709 3277+-431 -173+4011 2834+-3767 3512+-5971 852+-3989 -1669+8175 3511+2701 7195+7108 4238+-2496 8291+4561 -3479+-8214 2388+-3922 2057+4401 -3790+966 9056+-7904 -3351+-928 4600+4063 452+-216 -1921+-8242 -818+3275 -742+1273 -1256+-3397 6031+1024 -4738+-7021 -2800+-6501 -2854+-5568 -4231+-1857 -1694+2680 -661+-3029 -820+2233 583+-2962 -1645+6144 3317+-4151 -3630+-6011 2926+-1806 -6005+-5640 5067+3241 -8118+-8704 3325+-1995 5947+8456 -706+-1096 -8073+3152 -9442+-1380 -9029+-1651 -4438+2814 -9232+-7498 2955+3392 1445+-2952 5588+8186 -2042+-2466 -4844+4658 -3562+-3834 -8459+-3811 -6785+2680 6539+-8643 3969+4641 5386+907 6513+7400 -6583+5598 3677+-1152 -5429+1180 -826+7042 -1245+160 4275+-4542 7957+761 5698+4486 -4516+1667 -4277+2116 -5558+-2860 -9421+-6298 -2129+-8704 -3435+-6096 3503+3833 -3175+267 917+4770 7017+936 -8902+3037 -6078+-3119 6675+-5078 1484+3877 -7511+-5467 2930+-879 3099+7347 -2133+-4988 -4118+2803 -4917+-5217 -18+-4824 -3271+4448 1290+5702 -4374+-6332 964+-1326 -3278+1557 -1008+734 -4018+614 -8287+-7989 5826+-6594 5195+-1992 -4505+-1671 6726+2674 8968+-6903 -7198+-5963 -1523+5061 -5655+6888 5944+6586 7400+-3215 6595+1554 -3673+-1906 -842+4054 -7641+5340 -1343+-4800 -7633+-1989 -5556+6325 4726+-7166 -5455+-6727 7113+-3810 -9083+2584 7331+7933 1331+4155 -2857+6294 -746+281 -5146+1344 3270+-4862 -895+4658 -4312+8465 1331+4937 1861+-7726 5378+-8071 -5776+-8530 -842+162 4284+-2783 -2303+-7302 627+5999 131+-5457 -3043+8208 853+-1622 6696+-724 4508+2805 -2161+3057 -1787+-2069 -8687+2261 -8985+-128 -928+8677 1793+-4474 8523+-3674 5382+-4120 -5006+-7004 -4296+7405 1477+7059 4012+-64 3539+1192 9271+6241 -3226+-2555 531+4094 -3486+-2720 4082+-126 1543+3855 4085+4815 1625+41 5207+3572 -3587+484 5914+7282 -4123+4176 4380+-3714 8429+-7274 -1661+5437 1450+1308 6488+684 2323+-4220 303+8329 2401+-81 -4261+7787 -5589+6159 -7320+-2747 -5688+673 4461+7855 208+6728 -4257+-7471 4376+1780 5958+3393 6410+-4804 -34+-1834 -4359+4698 -5042+-9418 -3120+9853 736+1000+-5259 1618+-6830 -3909+-9104 1835+-985 1403+-7951 4716+591 -5852+7244 4047+-1169 -5543+6987 3664+-4022 -2660+-6731 -2066+7713 -3096+182 -213+-2367 -8783+1108 6401+3617 3868+5092 -5201+5041 -1600+8161 2+-2944 -8119+1069 9228+5443 -6098+5078 -6433+-3262 7898+-4942 4711+1071 -9907+-8562 459+-7485 3443+-8325 201+2602 6693+4765 3351+6364 -7710+1039 6127+-1749 -5288+5175 -1600+415 4245+5443 4471+3797 8979+-6922 -6525+-8600 -4146+-5012 1960+5556 3507+1189 4707+-8675 -3596+-5978 7350+-3071 7525+731 229+790 -9682+7559 16+-7013 -4484+-1130 -607+2097 -4215+-4 -1623+-7823 -285+5284 10+-5449 7058+8755 -559+-1100 -4025+-6384 2635+-917 -8231+-1326 -4357+549 6401+1576 -6502+-8686 1601+-5256 -5945+-435 1979+63 -7400+-7258 1678+8884 -1269+-2513 1808+6968 921+9188 3345+-8861 -2970+-1408 -6535+782 -2454+-7581 5079+-2847 3831+4835 1768+-1648 -5503+-6945 2171+-8064 -5707+1347 -4952+-3849 -2970+3029 9303+6050 -5919+-4615 2429+-1304 7001+-3139 -4281+-6103 3928+6593 4742+-7546 4340+8117 -3473+1768 -3720+-8422 -858+8845 4100+-1280 -6559+-1685 -4647+-997 4136+2828 6519+1214 8009+1300 -2097+7473 5163+-4317 -3305+-1555 3025+-3742 -5868+6878 1004+3484 -3392+-2578 8306+-5192 -6375+5705 1375+8327 -1961+82 9114+-4006 -4597+-5468 6301+4731 3798+-4196 -7363+6718 5333+-3080 -9261+-7586 5758+-4926 1065+-7356 -4172+-561 1301+-6182 -7323+-8492 -4514+1193 6780+3077 -8235+-4448 4716+-3492 1918+-5314 7992+-1879 6163+-269 7128+-6395 5628+14 7558+4127 3519+4973 6285+779 1533+7065 3931+1419 -4687+8649 1349+-5886 1778+-5781 -1283+-4929 3379+2683 -8476+-2052 4207+3914 2303+-5237 8318+-1399 7288+7522 -1504+1970 -7180+9135 1885+6575 3162+4354 204+-6171 -4174+-6813 1492+3558 5237+-7418 -6465+1395 1798+-5985 4960+7775 -666+-9076 75+364 511+-834 3298+-4729 -5686+1322 9548+-3323 3015+-1860 -7931+3129 -5097+-8033 4184+-8918 3828+-4393 1260+1378 9263+-5316 502+-8637 3985+-7857 -2569+-7779 -5096+-7210 1475+-5544 8194+-1323 -4557+8779 -4112+-5065 3622+-2175 7024+-8628 -2618+4439 -8433+3361 -1739+3690 2119+-2691 -4651+3001 1239+7119 6963+-826 6179+5604 5034+2474 -198+4678 -2537+-3618 -280+4821 148+-2614 6345+-1210 -6390+-6627 -111+3738 -8820+-2281 3043+321 -7123+-6293 -5903+-8549 369+7349 -3322+-4888 -1271+-9090 -4047+4560 1594+-7394 -2953+-4742 -234+-301 4910+6811 3895+606 4739+6570 -7071+-416 -8295+-5432 4716+6621 -5061+-4337 6772+3908 -9107+-2941 -6933+1645 6019+6932 4722+-7082 -2646+-9100 1567+980 8977+3715 8879+990 6668+6423 2439+-6775 4701+-3952 -2711+-4594 8601+4118 -8773+-1237 -7774+5720 -7207+3223 2716+2978 4590+2329 -2021+-1061 5140+8366 -4277+5170 -8235+-1459 -2276+-486 -8203+7299 5886+633 -3977+2574 929+4857 -8137+3313 -1734+-293 -7492+-8153 4838+9400 -2007+-4207 2650+267 3469+5905 -799+2994 -7660+-9124 3156+5149 5421+-9031 -3717+4603 -5037+-3159 5898+-138 -1493+4865 -453+6993 -1143+2532 -5960+-7044 -1652+-1444 4896+-4570 -3049+4310 6946+872 -2077+-538 4480+4521 7956+8978 3778+2269 3511+-2214 -5251+-3332 -1351+-1237 -4114+4977 8216+-5206 4872+-8481 5142+5955 3269+8710 2937+-7540 2467+-6258 -4626+-811 8028+-5105 3268+-3958 944+-3820 -8173+1688 4929+5050 8224+5663 1792+1678 -7953+-4292 -232+-4687 -7574+-1298 -2527+-8278 3679+-1735 8135+-4588 -2650+9811 978+9051 1215+2551 -8836+-1914 -1777+-6112 3028+2941 -2613+5295 -5623+-4567 -6259+4674 -6163+-532 5045+1143 -3946+-7648 -4122+-5178 -4081+2073 -953+-8612 -4111+-195 423+4532 8763+5293 7727+-8065 -278+-4949 368+-5875 1510+-6413 2115+2440 7291+7455 5709+327 9694+2067 -9597+-1863 -33+-3750 -6577+-2905 -4671+8477 -1281+5430 -1886+8797 1635+6578 1501+-2233 3597+-19 5030+4772 3959+5041 3729+1315 1548+-9725 1246+-8137 -3822+-9018 -1943+-191 7009+-6458 -7140+-4405 2267+-1470 4192+5326 7135+9281 -200+5169 -6975+-4296 8123+-478 2535+-3381 2793+657 -3648+4183 -6998+-2473 -2918+7380 -1110+-4548 7615+3824 -5226+-7671 2287+-5932 7616+-7922 376+-8673 4951+-736 -5188+-8784 -4340+-4958 -3654+4292 3815+1893 5338+6509 5491+-1694 7239+2557 -4566+-7677 -2675+4745 3903+-3870 -6337+-1013 3528+-6215 -5080+-102 -8265+242 6299+-3404 -4239+-6800 6335+-3864 -1554+-8835 -571+1244 3596+1618 633+-1576 -8406+-1247 9681+6526 6087+-1400 8260+7393 -2580+-6743 -3384+-8472 193+5855 -1298+-6557 6228+6680 3330+4643 -7897+7564 -1870+7726 161+2170 -5617+-8496 625+-246 -3197+6575 6528+-9216 2421+2399 7832+3350 -5841+4764 -8623+-1171 4602+2369 -2283+564 -5258+-8942 -3903+17 4103+-8643 -997+8795 -1812+5954 7873+-6687 -3346+1660 2024+-3886 6991+5267 -6185+-1489 -5219+-3863 -4804+6930 455+226 4316+1893 81+-965 2020+5511 2027+-1948 -1566+-2705 -1896+-5775 1894+891 5321+4333 917+6625 5110+-1076 7756+-822 -7052+2267 -1034+4514 6629+5312 2839+2967 3558+6465 2772+-7610 -1090+732 -8759+3442 -5129+-3576 -4709+-7547 -2708+-4343 -3703+1271 -1313+-1468 -5663+5643 -7757+-8773 1491+5961 -78+-3351 578+3843 5215+-4693 -8355+-2666 5812+-7107 3645+346 -8390+6202 -4807+7019 -3151+3579 2536+-6355 -2930+2280 -8371+8649 -4752+-1360 7142+-5777 -4473+9387 -1561+-4197 2768+1049 -4223+-4664 168+5649 -2030+3077 215+2769 8784+-4083 7034+2060 1889+5606 -2373+-8230 -3873+-8551 -4739+8693 961+-6946 2672+8547 4637+1145 -6003+-7233 -947+5260 -2476+7668 -1123+-2846 -1279+184 -4186+7419 -5374+-605 -4246+7125 -6630+7292 -6630+5546 -3484+-6282 5248+-5577 1394+-3395 2876+-3466 3187+1517 -893+-2357 3027+-854 -4166+-1609 -7616+-3482 1825+-3638 -6187+-6757 2832+-4824 5655+2501 6797+-1217 3813+-6255 3999+-1711 1977+2127 -8780+9227 1087+4684 -2929+4796 -2815+-9017 2398+-765 -3140+1460 -4328+4926 -6090+688 2945+-6650 -6972+-4805 26+8819 174+431 6027+-6750 2633+-3765 -7880+4980 -2829+4108 5818+5650 6504+-2189 -5052+6195 4850+-7547 -3357+3019 1767+5786 -6682+31 4797+1140 3823+-9256 454+-7598 -1205+-5840 -543+338 -818+7635 -6023+5472 -2969+3696 -9120+9900 497+6834 3631+-2630 337+2717 3220+-5996 7476+7890 20+-660 -7329+-5472 1159+-5394 2136+7918 -3113+166 -4779+-2371 -5634+2548 -5068+2086 358+1930 4850+-6306 6669+8216 -4521+-1145 -6670+-1600 -3719+-682 -7878+-382 -3584+-9540 -503+6215 -5332+-7788 3279+312 -4156+7838 -2127+-5674 5692+2161 6714+-4662 5526+-9089 4048+7416 -547+-268 -5068+-6346 1763+-9517 -2142+6234 191+2046 1979+244 -8333+6072 5339+-1833 6972+4623 6668+3697 -7787+-136 4888+-1949 4658+-1632 2213+1306 1674+1564 -9364+2572 -2814+5857 -552+-5517 -4233+8769 4754+-9519 322+2232 8917+-4436 5445+-5968 -6320+2266 6899+1186 6050+7803 -5965+65 9234+-2923 -4539+1322 -8995+7335 -6253+-1467 -6187+-2792 2958+2611 3285+-1566 -8277+4613 4449+-2002 -9750+6770 -7202+-3700 8891+-765 7381+7170 1615+-3748 -1627+-4920 -6557+-7140 1048+-2658 5153+5419 463+-9601 2351+-4763 2648+-2216 -2496+157 4178+-7177 -240+9017 -3298+-382 -6240+259 -5353+-4486 1360+1326 -3372+-7163 3116+-7600 3440+489 -7877+7544 5138+-2699 1676+-5005 1670+-8005 1100+-7693 -2487+-2021 -4906+9766 -543+4821 1334+-3948 -3062+1388 -917+-6709 1064+3433 -6278+1309 8688+211 -3768+1435 -7062+3263 -9244+725 -5211+-9 7633+-5000 6505+1446 613+2982 2209+-3432 -5663+4823 5829+8027 265+-7425 2651+7578 2764+1327 -3829+8905 -591+-5246 -7619+-3426 1355+267 1456+-5614 -2+3599 6862+-6070 -4128+6534 469+8070 -864+-7779 -3172+-2285 5919+-4318 7019+-8106 2353+3053 -4177+6449 -5096+-6665 522+507 9193+-3212 6216+-8843 -417+8429 2489+-5341 -6430+-5044 -5095+-3899 -4549+7353 -5478+-2189 -331+-9286 -2401+-25 1095+3705 3507+-8938 819+5707 7183+3888 -5984+-6128 -1425+-4814 -8675+-6183 -6517+-796 4110+-2826 6105+-659 8652+6773 2105+-4710 -2662+-4193 -8669+-1768 302+7452 -4319+1775 -217+-7915 -4112+3735 -5244+-9264 2770+-7969 -4795+940 -1356+-1377 -5186+1280 5528+-1120 -4012+-3201 1357+923 -1205+3908 5429+-6553 -3424+-589 1987+-4408 579+-2979 -9295+5222 -6318+6810 7086+2649 511+2243 -2228+-4238 3586+-988 -2517+6477 -356+3229 -4255+-7120 4101+73 9385+-8329 -2452+-43 -4188+-336 5463+-7639 801+773 9123+3157 9000+-1733 5900+3858 7959+9 -7423+-2828 4830+9118 -2047+-5315 6719+-6283 6994+-9911 560+2337 9231+-1357 -1819+2390 -1613+1231 7551+3786 1360+-1342 -7952+4125 8955+2741 -2371+1333 4759+6057 1901+8681 -1853+-5875 543+-4847 5723+2044 1961+1064 -3698+3294 -6736+3654 4677+264 4785+3779 9105+2448 -7449+3986 8081+1634 7496+-4118 4203+-3073 6796+3373 -43+-2714 -8273+3221 -2015+6928 -2626+2233 -1066+6511 -3436+2968 8902+196 8410+4109 -389+3973 8332+2605 6734+1344 4030+9620 -521+4407 6573+-84 3408+4156 3133+-968 6083+7961 2968+-3725 3881+373 3795+1415 8820+9070 -3559+-2498 588+-4559 -6587+-3549 -1721+-3491 8601+255 -6317+3563 -5291+-6113 1893+-6268 -250+224 -6245+-1819 9664+-8005 -4657+-4169 4942+1161 7199+9718 573+-6019 4854+4649 -4528+5115 -8574+-5991 2960+-1410 1869+2092 7353+-3883 -7471+6928 3921+1520 -8847+38 -7811+6507 2554+-80 3180+1522 4383+2185 2318+-9743 -2188+-2998 -3555+1409 4297+-1836 -5345+-5609 -876+-1850 2071+-8562 -1483+-5771 4750+-1947 195+969 9678+-7077 -5322+-1256 -287+-2198 -3543+-1079 43+-6308 -7403+-6820 4067+-7543 -4991+-7812 5972+-5233 4620+-9218 905+-962 -9242+5364 2121+-2011 -7794+7029 -4938+3814 -3366+673 8596+9207 -808+377 3618+-2459 -6933+6113 3315+-5134 -3280+-1319 4015+7062 6872+-5795 -4338+-3521 -4828+-5256 -2486+3222 7288+1866 -388+3066 -2000+34 6274+-7117 -6239+2703 7012+-5165 3501+3866 1185+-252 -3086+-1934 -9710+2391 7064+8361 4976+-4286 -3188+9138 3353+-4859 674+-4778 3347+-1572 9322+823 -6561+-587 -14+-6030 -1093+-6383 -6492+-5946 -2165+8962 -385+-1064 -7789+924 3602+-4037 -6272+1688 422+-3696 365+1057 74+9205 -2714+-860 5072+-1007 9383+-1496 5624+-7863 -2325+-236 8946+7568 -6304+8833 240+6552 -1950+-4538 -8290+-155 7285+-1050 -820+-293 5211+1107 2623+95 934+5936 7331+1547 3447+5487 -432+130 5091+-4114 4782+5464 4439+5985 7124+-4599 4274+-4449 3849+-2621 8057+-2135 829+374 -5739+779 -2837+-5095 4902+-8394 722+-746 7747+7573 6152+-2455 4024+1179 6732+714 -6470+6139 7295+-8943 254+-7849 -5091+6192 481+2942 2829+-689 3563+711 9425+-3566 -6021+8871 -1288+3189 -7937+-4656 5217+-5851 -6573+1474 4584+-1309 -5351+-6998 -6003+2174 -4634+-2510 -8844+-2029 -9152+5190 -3498+-4651 5384+-2912 -8966+4428 4034+-7615 162+5467 7666+-6787 -6365+-4577 -8431+1736 -9298+6127 -4677+-1026 -1043+-5604 -6812+-4261 2730+4911 -6737+-6385 5675+-5103 7797+-459 -3427+2770 3599+717 -4981+-2843 -9336+63 -770+8799 870+-3337 1347+-8666 3080+-152 -5024+6186 -5256+-14 9805+-5103 2898+-445 -8436+-9734 -140+5930 -3857+5183 -4285+-3298 -6456+8451 3528+-6565 -3291+-2661 1371+8753 -3908+7770 286+2631 3275+-3358 -3237+-1442 -3629+6558 329+-7033 3786+-4238 -1472+5794 1760+6921 -764+-2780 -8648+-7752 6046+6950 -5764+-6865 -1227+4378 5373+15 -2107+-4133 -4353+5972 -2254+2174 -8724+-1946 -2748+8135 -5631+-3162 -4027+-4714 -5846+5658 -1556+-1833 -9132+4575 6910+-6583 4650+8434 -2223+-4630 -3865+-7918 -5167+1098 6650+-624 1404+4741 2737+2085 1953+-9649 1648+-1996 -4493+-4981 7666+3724 -5194+-7811 5699+-4159 -7254+-4798 -4513+-2566 1627+-1151 1802+-7222 -2219+-8213 5456+2413 4890+5808 -8008+-9433 2339+1000+2446 -1893+4537 -1456+1595 -6319+4454 -1441+-6551 3301+-1986 -6849+8636 256+-1596 8768+-8142 2718+-2116 -3675+-1967 4341+5909 -6586+-8020 94+-3355 -4291+5332 5802+7118 -1148+-6084 2395+6632 2416+9471 892+9782 -1074+-1871 -7685+8404 -1500+-2204 -4505+8922 -2034+6439 -2424+8486 -5181+-393 8277+-285 3472+-64 2146+-5299 -7409+4326 -1215+-6106 -4224+-6841 -1556+-179 5731+-8063 -1467+2118 -7908+-5769 -6274+-7526 -4093+6146 -3139+-1373 7569+-3197 -7926+-7660 1213+-3965 5759+-3776 -4254+-2482 1993+-1074 7218+-5613 -3757+-7852 -4384+-908 -165+-1883 -4313+-2072 1305+447 8846+-1307 -3985+-2189 -4641+8974 2717+1894 -6374+-3854 2709+3816 2585+2441 6609+-2457 2738+2112 5079+4285 3722+3511 -2487+-4102 -2072+-7484 5728+6150 7356+4479 2509+1046 -2551+-4815 -6747+-2583 -2211+4640 1437+-4295 -5211+-4204 -1163+5778 7973+3334 8887+-4429 3892+-9927 -936+-3547 -7356+6439 -5597+-2594 2231+5736 4964+7465 -2717+6092 833+5656 998+5099 -2617+9392 2652+3371 -2185+-2971 9378+-2052 -8100+-3764 -558+4877 -8694+-1767 -8481+7503 -2498+517 9315+5477 4657+6730 6429+-8001 -3179+-1930 -9068+-3079 -8418+4385 6135+-2575 9531+-3129 -5620+1214 -9722+617 1946+-3930 2785+275 -4379+-9025 2717+2024 1744+-1041 -4919+-1703 -2544+-6986 -3178+-1209 9017+-3859 7101+-5419 -8288+-600 -7015+4044 3912+-3606 9255+154 5410+-5439 -3597+4875 6168+-3746 6333+-8168 -3974+7631 -3817+-7816 -1087+3691 5435+-5211 4215+-3590 8883+-3399 8003+8342 1473+2147 -5474+-2614 -2823+3964 -8443+-1268 6685+-6227 -514+4592 -8130+-6085 -6992+5113 3420+2984 6447+2403 2597+-6866 220+3782 -5951+6484 -1199+-3886 2853+4890 -3309+2154 1055+2773 -4953+9008 -2275+-6670 -5749+7313 673+-182 -5310+-2512 -3035+6670 7177+7776 4384+-3712 -1204+-4003 -5011+-2758 -5390+-6924 -489+-7560 -6500+-4924 4754+2591 -6510+-8329 -4720+-1927 -6524+-8025 -3819+6466 -431+-4113 2251+-1040 -3775+3362 -4214+-6389 -1347+-6635 -4901+-2141 -9524+5880 3826+4223 3968+-6052 -452+2272 -8354+3914 -2368+-5045 6159+-221 5196+-2695 4499+2759 -335+-5273 -1804+3363 5024+-4313 -6607+-2309 -9556+2896 6729+4601 -7135+6085 7320+2284 386+-5161 4927+4185 1823+3640 -1894+7945 -4027+7221 3025+-1240 1736+1891 -4149+640 6490+7129 4126+-2634 -2592+-354 -997+-5759 -6506+7969 -796+3329 -4626+-7678 -324+3247 5083+-9092 -1561+4904 -3973+8313 1448+-4069 -6206+-170 -190+-1653 -6081+-4527 6657+2546 -4773+-7981 5633+-7375 -5333+5758 -1674+3370 647+3095 7622+3068 8623+-6867 6505+-226 6597+5502 5461+6434 2939+-2501 -2540+9059 521+-1259 703+3401 -5699+-2667 -6585+-280 -3585+3746 -2844+1739 9547+2437 -3169+-7134 5145+-3253 -8257+-6358 885+5531 -5348+8295 2690+676 4642+-1760 4203+1114 5006+4505 1488+4455 6283+-2271 5068+5134 5959+4430 -4515+8764 -2154+8534 -4970+-8761 -149+-3477 3703+4758 -1868+-5331 -2293+5102 -3867+1476 -9039+-497 3858+-1101 -2833+-3625 1830+3593 -2022+-6698 4569+-7191 6418+7006 4439+2893 -807+-499 8095+-9437 1668+2550 7552+-1243 -9444+-7135 -6785+-2519 8701+6058 -7447+-1884 6550+323 -5865+-220 3888+7049 -1036+-5850 2406+7146 3822+-1765 -8315+5686 -7502+-2048 -4148+-1456 -8178+6834 -3733+-459 -4649+6355 -4948+4369 6058+-94 2120+5771 -4118+-158 8689+1252 5572+-2988 -1067+-6065 -6512+1057 5095+944 -5996+9777 63+6857 344+-3318 1881+2342 5416+-8084 -1090+4806 3181+8562 -1496+3668 -6128+-1725 1453+-8774 -2993+9017 867+1543 -3756+-6533 2800+-709 -6266+-3845 -8141+8266 3373+4944 7975+-1598 -2788+-6935 796+6505 4078+-9467 1531+5839 -4059+5016 2941+-4776 -2406+2284 2885+1722 5267+8250 -3454+-1347 -7759+-3389 4030+-8871 -2845+5006 -739+4765 1576+-7451 3573+-3745 7751+4186 6535+-7455 -1490+1995 9455+2490 -6457+-1070 8478+-8298 -1885+-3927 -4533+3906 4860+-1408 8510+6631 -7263+5056 -3785+7962 -1488+-3408 -2727+-9437 2099+1630 6512+1700 2147+-3095 8204+5856 6959+-5288 6341+1836 5164+5437 -5766+5797 -2147+-3639 -7073+4282 8021+7350 6100+-8030 -4507+5212 5566+6659 -5903+-7324 5097+-1181 5632+-7085 1467+-7484 -3814+1489 9172+-8100 -3779+3649 -8799+6019 4702+1877 -6387+1131 921+8316 -141+8767 -1253+-920 -6646+1755 -2159+-991 4989+-6096 2095+-922 -3035+883 -8342+525 -2282+3508 2194+7400 4799+-3112 2355+492 -3598+-8199 -309+-2056 -8742+-5978 -5198+-4322 302+-8151 -2893+-3115 652+801 -6905+5980 -1946+-8387 5242+-2103 8133+6217 -5377+8515 2150+7205 -3933+-354 -7336+-6390 -5117+2067 3316+3662 -1520+-4756 -4772+7372 -3048+-9032 -3545+5379 -6221+7251 5075+-5376 -1345+-2533 2121+1608 42+8420 -1607+7202 1615+-4638 -2066+3098 -6257+-5510 -4475+-2321 -9387+3605 7692+-2927 4373+-8441 3417+490 -8800+89 2699+3996 253+2256 -7739+1431 8334+-2671 4100+4337 3785+3388 -4185+3689 -4940+6693 -31+-632 -4256+832 6985+-2432 -8323+-4079 -289+-7097 4314+4863 -2388+4030 691+2600 1290+701 -7649+2638 635+1969 6409+-2007 6374+8535 -3136+2865 -874+7450 4577+2152 7529+3810 930+-5280 -2397+-2661 9402+6561 -2146+8413 4627+-4930 3660+5556 -926+-4868 5634+1269 6332+606 6254+-826 3804+6802 6749+-4811 -2634+6335 6595+-6089 5581+6092 -5007+959 -8580+-7742 -3268+4677 3190+-8594 2105+-3258 -6584+-3734 -8139+2567 6628+-5395 -6346+2468 8953+5420 -3291+-5269 4197+1830 7772+8926 532+-3195 -5148+600 4738+2421 -870+98 1251+-1650 5857+-9591 -434+2653 5236+6595 -6064+3201 6279+4813 -1404+6460 -905+-7910 -3080+-4746 7344+-925 4225+3948 -479+2105 -7431+-589 9379+4914 -5454+-5741 6713+-2936 3542+5193 -6537+-4952 -87+-8304 4901+-8271 4933+-1696 9425+8346 -2706+-6023 -6597+-7039 913+1531 9528+-835 -6038+7268 6528+5505 -766+9748 155+3758 -9189+5476 -5789+7895 -4398+-1745 8295+-5370 7588+4048 1334+-755 2366+6645 -1029+9037 2619+-9475 -800+5239 -3500+5104 5891+8643 -4212+-3565 7987+-645 1203+5635 374+-9808 -804+-2801 3317+-9852 725+-8243 -702+7249 -5262+-1582 2016+-4321 5146+5415 7597+-2922 3062+-4274 -8659+3274 -4802+8481 4858+2906 4982+-4001 -5561+7669 -4849+8918 -2295+704 -8073+-4617 -1339+1560 -8534+1099 7642+7061 4923+3427 822+8399 -2195+-5055 -4331+7411 -3203+-6698 3216+3240 7442+5282 -3009+546 -259+-687 3926+3346 1618+-6481 -2638+377 -6641+4006 -7842+7112 -2916+2561 -2222+-179 643+1459 -6384+923 878+2015 -4703+660 2411+1325 -6540+-7712 3624+-7601 -5173+-560 -7320+5613 -4625+2629 -2644+2695 7506+-7411 3401+-8002 3865+-6506 -7247+7040 970+6494 536+6784 5912+3630 -6975+-7068 -1174+225 -9468+5086 4830+-1337 6900+3640 7993+2313 8481+547 -9449+-5727 6553+5089 1534+4241 4092+1831 -5157+1455 -4752+770 -7837+6389 6029+-7819 -5002+2545 3202+8820 -1754+-7009 5635+893 -1199+3698 -7338+-3393 3161+3823 5297+6811 -977+-5846 1665+-1681 9720+4402 3666+-3192 4428+5234 5907+-6151 1630+-6008 -6726+-3149 -6754+-2069 -9139+2439 -6494+107 7095+-2993 -1893+-7265 1877+8672 -1266+-4594 3564+2650 -3700+-5034 6067+681 4326+-3300 -7912+-1532 8605+-1620 -5310+-4046 -1477+551 3338+-3538 -2980+6542 -4448+-4149 -8559+-831 -338+-6574 5448+-7072 -5062+79 -905+762 6730+-6655 -1563+2857 6726+-6742 -7231+8441 -2952+9170 3944+450 7833+2930 -7898+1145 -7417+-1524 3869+754 -9507+-626 8502+2160 -283+-2827 -1844+663 -1477+-2294 4818+-6739 3304+-107 6767+-3562 4504+563 -2297+-4293 -4954+3909 4265+3992 8647+5589 -7037+6743 -7319+9096 300+6163 -1524+-3760 -5148+570 6516+845 4065+-3311 7535+-4295 946+6415 -1821+3570 -2114+6031 6234+-6553 -673+-881 -471+3750 -2198+-7668 -1926+-8575 868+-7270 1754+6111 1155+1796 4691+8813 -1955+-468 4318+3169 5672+-5152 -1881+3053 5016+-6399 -4478+-8907 -2474+2309 1038+-5215 7852+-5393 4188+-4504 -8326+-5974 -6916+-5270 -3207+-6041 1241+1826 3912+1147 952+-1880 -3472+-1695 2881+-1094 6596+-8860 -2130+7181 5524+6080 -7097+4395 7150+-6101 1917+-9131 -2971+679 -1758+2304 5870+846 -3271+4720 1246+946 1283+7416 641+6198 -6803+2373 7821+-1705 7447+-8580 -246+5738 7835+-3873 6877+-1562 -4099+-9059 609+-11 -3643+2220 -3939+-1555 -7537+-8243 5545+-3364 3773+288 3453+5594 2734+-2803 -29+-806 5384+-372 -697+2230 -4188+5596 3770+-4450 3619+-5514 -4561+5722 -7883+3188 -940+8441 405+7240 -2195+-515 8770+-2394 -6072+-6687 3307+-6472 -4594+296 9725+-7878 -2298+10 4780+-362 -8607+3577 -1778+-1981 -2331+5459 -4001+3278 -6193+-7209 -5886+-4393 7404+3426 -8560+6969 6932+2896 760+7303 878+34 8060+5534 2855+1745 -4303+-2884 1728+-2954 1563+-5081 -4852+3235 -8358+4606 -4156+9808 883+2409 -1520+487 -7563+4266 -5526+-9574 1587+2563 -7277+-5577 -6578+4355 -7640+-6114 -5349+5712 -3507+5713 -7979+-106 1594+7898 3045+-3275 -9063+-3939 -5201+7158 -250+-8302 -1323+-676 4332+-6510 -6829+2282 -4481+6507 -6847+-3365 3007+-8658 -4661+8584 3626+-1534 7854+-7623 -2995+-3108 7990+-5563 -1887+2177 -1080+-9100 -2102+1561 2380+-8716 -2181+-897 9303+1952 -4636+-2240 617+-3495 -578+-8649 -3636+3807 5103+4307 -6126+-5813 -4221+-1842 -6644+-3738 7867+-6947 -1842+-4444 7588+797 5374+4802 -904+-7195 -2479+-2759 8655+-9323 1078+-2521 -5736+-2611 6223+-7303 -3256+-8207 -2195+4766 4037+396 5171+7537 1961+5344 -4878+1576 3981+-1744 -4376+2560 -1624+-2764 5813+-2063 6459+-7196 179+-6007 7641+7115 -4053+-5169 -8528+-1877 1995+-4363 -7364+-5052 4873+-1548 5096+5406 8015+-2768 6707+6222 7809+-1800 -77+-5739 -6869+7581 -65+-7299 -136+6477 1937+2955 6683+7057 6141+-1 969+-790 7601+-4784 -2191+2961 -9369+2869 -5407+1783 -937+-4178 416+1106 1581+-833 932+7095 1658+5829 -7835+-1577 -8092+-5900 -3809+-649 -6993+-4797 -3890+-8022 -3297+-6070 940+-3844 8293+-1819 9222+292 -9448+-3781 4529+1274 5416+2032 806+-341 3529+8969 847+-971 6883+7243 6057+6021 -2082+-1816 1686+3782 -7922+-9469 -412+-4096 9084+-3963 -1488+-7169 2637+-6074 5010+8971 4158+5785 -8001+-6581 2779+-8004 -237+-7663 3125+4263 4806+-9010 3957+-1652 -9810+3603 -362+3888 -5398+2915 1164+-7889 -3366+-2673 -639+-3499 7685+-6388 -1905+560 -4390+-2590 7281+-5220 -5238+-1236 3170+-5597 -1930+-4538 -827+2735 -3134+5923 -2031+-3541 -3673+2591 1624+-6016 -2171+-5803 -5033+3837 7675+1165 6740+4461 -3414+2719 8413+84 3085+-1074 -8869+-5464 6901+9736 -1895+2967 -4882+-34 -9396+3872 -2337+2045 6246+-211 -5543+-6931 -2434+9429 1421+-995 -3687+1200 -9686+3506 -9206+-4588 -6665+135 -7458+-227 -8800+4431 -3037+-2962 8472+-1622 -986+5862 5154+5242 -8154+788 -9304+4436 1639+-1279 4340+9660 -2072+7841 -927+4353 8295+-5336 -7678+-4206 -3312+-2780 4792+4141 -8529+-4989 5266+-2261 3199+-3227 4350+-4113 5133+6614 2239+2184 7367+1800 6819+-1275 2216+-3092 -8220+-376 -7573+-9640 -2098+-6482 -5477+4413 -2893+5754 -815+5446 -7906+-5146 50+2638 -4365+-1696 -4060+-765 5652+2320 7760+-4924 2169+1426 7081+4805 -6835+1725 -4900+5983 -4799+-5556 4130+-1905 -369+-5994 7406+-1935 7484+614 -5651+-5573 3585+-2999 -2781+-7340 -1039+253 -672+-3793 -5976+2635 -4748+-1908 -4276+2287 3758+2336 9631+-1075 2056+1592 -8816+2237 -6278+2301 -8751+9146 2433+-2328 -6171+-3211 -4332+-913 -6361+3307 -5206+-5708 854+-2804 -7129+-5076 -313+994 1814+341 8906+-981 3138+5824 -6123+-7871 1871+4691 -4405+5787 -2047+1582 -3845+2334 -8309+-6244 -2126+7947 62+-4243 -8381+9861 -1365+3083 4507+7330 -6741+4543 -4504+6574 810+1541 2757+4326 -1967+-6948 6357+-5029 5113+-1369 -9007+5511 5119+3879 8477+712 -4265+-1457 6792+3940 -9066+9487 -1700+1000+-6298 4839+-6182 5452+5702 -5203+-4567 -8030+1315 -6158+2827 -8125+164 5520+5707 4334+5710 1471+3310 -5034+7012 1531+-8661 442+-5513 1617+1685 1603+2814 -5070+-846 -9092+-1138 7936+1646 5567+-4888 -6642+592 2766+7578 1562+-3943 4761+7760 5090+6705 1785+-5309 -3314+2438 7812+8966 2731+9064 -218+-8084 4389+-8937 747+-1670 8132+-8743 -40+-1959 1344+2350 3846+-4082 3918+-1665 333+-5632 -8205+6652 -4594+-3701 -5714+-8764 -2403+-4414 -3237+459 -2047+6546 -5499+6071 -1841+-8829 3510+1270 6299+-2253 -8980+-2956 -2375+49 -698+-5026 7599+-4796 1767+-1330 -8620+3174 712+-2569 2059+4382 3236+-2345 -4026+5727 -4821+1253 2892+3992 152+-5088 8235+4232 6807+469 5928+5643 3566+4243 -4664+6288 3084+786 41+-124 -8330+-8568 -906+-7827 3926+3287 8885+-1748 -1369+1546 1536+3411 -9112+-1986 3853+3848 -4843+-2566 -4138+-6246 3759+-6497 -2720+-3829 2281+2189 -6453+1712 -1666+-539 4746+-3647 7991+7215 -5964+-6667 5318+-333 4788+-4930 -6424+-520 9266+-3442 4257+-1840 -3375+-3566 -8592+-883 3045+-1138 -7358+4933 -8618+-4291 6463+-3690 294+-2410 -9656+7664 1143+-3394 -8783+6110 -2669+8121 -5273+-4810 -1891+3464 8107+6837 -6474+7851 3759+7812 -5039+-4846 2678+-5837 2171+1956 -6194+1073 -8535+-931 4220+-6711 -6516+5130 -461+3667 3997+8186 1304+-659 -1588+4214 -1870+26 -4706+-226 -965+4657 5648+-3297 -3757+2689 -8597+7686 6093+268 8702+-5228 4901+5480 -7609+4872 -6549+1877 4213+-9052 1674+-1904 5660+-8405 -3753+5684 6261+-324 -1809+-4273 4133+-987 551+3175 2032+8643 -2696+-5642 1858+2187 -4181+1113 -9035+4052 -7126+-6275 6063+-3803 -3812+-9143 -1018+2925 893+-6778 -6898+-3667 521+-7524 -5566+2713 -5886+6619 -2130+-5218 -5775+4743 -1949+-788 -4206+-1283 2631+3858 -3716+1518 -7144+-3321 -8418+-381 -692+1612 -3310+-3556 8437+8798 1033+2834 -7761+-5465 -6127+-6807 -2783+-1575 -7956+-6417 -688+5163 538+3634 -6270+1529 684+2166 -8554+2000 7820+4724 -956+-8639 3217+137 6530+3848 -3909+1230 -3901+-112 9844+-524 8283+7181 1314+4498 -4115+2439 -5843+6423 6089+405 7821+-3529 -5986+2750 1545+2750 3140+5454 655+-6699 3037+5057 3564+3531 8517+-6516 -4376+3121 -4914+-1306 -5731+8480 -732+-6452 6995+-2782 -1168+2923 -7105+-3055 5528+-7215 -6732+1673 -2009+-7456 -4324+-7755 1049+5683 7862+2051 4050+3905 -2016+9270 3489+-1604 1212+3146 3003+3790 -1233+6614 -3446+-857 948+1391 -6440+-4559 4398+5459 1321+-4439 -1603+-2309 2327+-4991 4909+4209 -3980+-454 -6771+-5917 8006+-5422 -4697+-4145 3833+-440 -9091+-4712 -7571+-5525 1940+-8784 -2356+-5391 5280+-724 5727+-7263 4726+-3276 4372+5339 -5150+-620 2107+5500 -7581+254 -9791+3076 -3480+-872 781+-1623 6295+671 -1704+372 -3133+-3819 1556+-8145 -2080+-3936 4392+5022 5986+-402 -7424+-2025 -3303+5021 -3358+4754 -8774+-2472 5207+4561 517+-2642 3620+-4011 1001+5500 -5519+-5757 924+6575 5655+4552 -2413+-5014 -6544+2534 6613+3848 -980+1818 -192+1180 2535+7045 99+5568 1521+-5188 -4193+4025 -4251+-1838 -5925+1834 -2078+-4375 -2537+-4336 739+-2789 -19+-2618 -7881+6013 3105+39 -1541+-6745 4382+404 1312+871 -360+-1300 -7054+5474 -1788+5976 4104+2569 1383+-1240 -9565+1585 6307+9031 -3192+-2264 4270+3801 -4767+3499 -79+6555 1447+7225 439+2386 -2651+2045 -9647+3622 -5638+-396 19+-9319 3490+-2729 1768+6105 -7172+7278 -1923+-2662 -8854+-4892 4831+-6000 -3540+7857 -6178+-1273 6174+-2865 -1260+3097 1549+1480 3375+-2183 1345+7430 -514+7646 1254+-8944 -1326+5047 -1325+-2122 -4791+6191 7190+6333 880+2932 -2496+-2327 -6774+-1908 -2766+-9565 -263+-3273 4377+4736 -8273+-7983 -614+2877 -727+3975 7897+2349 3318+1719 -3188+-7651 -2937+9449 1705+462 -1941+3096 2552+7841 -4195+-963 7186+2572 5782+2330 9587+-4245 3087+-8251 3063+100 -3148+758 1085+-9320 1469+-2920 -5916+1373 678+715 -657+-2379 -2095+-3521 -1331+2757 1356+6858 -1447+-6855 -1192+787 -939+4284 -2631+-763 -3958+5705 7164+7321 -3907+-492 3378+2923 6063+3942 -3429+2575 -3704+-4095 -1111+-6848 -4310+8157 172+5278 -5447+-4914 7020+44 2691+90 8600+-6897 1806+6699 -2377+-367 -2650+-2850 -7759+3612 -1294+7137 3221+5385 4890+8018 2915+-515 -9648+-7788 765+5219 4707+-1333 -3422+2456 -2169+-442 -8438+-1854 -8844+-8693 -3736+-4241 1053+1041 4882+3932 -2810+7172 3336+-6595 654+-3883 445+4630 -722+8645 907+4609 1922+-6141 -2561+-6618 7359+-6795 5958+1179 -5840+6401 -6941+3227 -2845+-3249 3004+5085 -3170+-139 7452+-1812 -4094+-5364 -7935+-3763 973+5577 -2568+3825 766+1699 7934+-2233 -5330+-2392 9709+1743 534+-2408 -798+-2515 4731+-4980 3214+-92 4103+-8469 902+-778 2793+-250 -3159+7558 -2572+5003 -6407+-6184 6579+-7525 -2097+9091 -1650+2086 7643+4298 -8726+3790 2077+2312 27+-5097 -5405+-3258 8229+-864 -4270+2966 -5201+8195 3543+-2098 -8897+2017 1371+1040 -1110+-5758 8090+-2126 -21+-9392 -1495+-2615 -444+4340 7113+1627 -6433+7630 -5901+8091 2308+9666 112+5092 715+-3474 -7029+5214 3395+5772 -514+-8833 615+-2694 6101+614 4674+-798 6431+-2055 -7102+-3680 7717+9163 2508+2372 1626+6378 6468+-2673 3001+-1439 -7076+812 -1002+-2377 7498+1044 7713+7100 -1130+-3502 976+3859 -954+-110 2807+-8246 3414+31 29+-6001 -1900+-4106 8727+6281 -5181+-3640 222+9479 2336+5753 -6853+1420 -7992+1792 5854+2639 7778+-7376 4899+8000 3684+3479 -1009+-3410 6959+-6868 -6029+1827 -2869+5975 7511+3402 4942+-2539 -3691+8125 1641+-6774 2134+6000 2386+2236 678+8088 252+3122 -9354+-2996 -8102+3312 -6431+-9448 -630+-6398 -4805+-7711 1180+1068 -4948+6437 -5630+5494 4040+-7008 -2693+-1296 -573+5408 -6008+-4593 -5679+-3136 3126+4677 -5187+-9999 29+2273 -7859+-4669 6891+-5262 272+-2572 8908+-2292 7586+2072 7241+4185 3892+-4136 1511+1074 -3514+-4607 -3007+5869 3579+-2572 -4400+6119 -5383+2609 -2992+2241 -2343+-1330 -5560+-160 9151+2494 -3459+-3464 -1878+-7146 -3367+2485 5588+4321 -6599+2204 2500+3683 3817+5016 -6009+-2193 -5302+9159 -3245+7417 4876+1148 -4387+-319 -7995+5103 4379+-1074 546+-5242 7662+-950 -6910+4688 -7989+7503 5159+4919 -2+-1093 6587+6432 -732+-3870 31+-3935 5405+1195 2262+6354 -3090+4264 -7973+2279 3323+-1269 216+6084 2144+-2565 8799+255 8038+2055 6969+5370 6767+-3365 8042+-8973 4402+3361 2185+8062 -2772+-982 9051+-901 5246+-437 -2704+-1754 5850+1053 -2059+-1756 -9694+9217 -3508+-8624 -4515+1799 5053+-2076 -8892+-2042 -3905+8062 467+-1384 6571+-1653 7099+2544 -2416+2030 -7285+-7663 1866+6672 7367+-340 -2058+-5926 5948+3066 -7086+4361 -5761+-3206 4297+6990 877+3513 3057+-1708 -3289+-9086 3691+-2287 9458+6003 6027+6039 5417+-7743 449+-3544 -2127+-6899 -5387+6992 -5428+-1767 -9035+-1557 2242+-2476 3497+4791 6764+-5103 -2568+-5770 7793+2754 -2350+4241 -6811+-4762 4176+9647 2011+-5310 -7102+-3819 7608+4640 -5834+2440 -1421+5424 -1447+-2245 -5749+-1031 -1562+6224 -3402+176 -9669+2271 5399+1696 4295+2780 8489+3916 3428+6082 -3839+7044 -6246+-4731 -4351+-273 6721+-3686 868+-4954 4659+-2252 5125+-580 -2548+8081 -579+-2148 -241+3755 447+-4302 -4728+4688 2229+2329 1984+1160 -8397+7259 5200+-3485 -3905+-5129 4670+-7533 -1263+1913 7543+-6379 1164+5722 -4221+7814 -648+-9474 -1739+5673 6370+9076 -1071+1496 2234+4567 8692+-7424 4022+-1424 1056+-4563 -7524+-4672 6292+1484 162+-433 -3283+-9354 3073+-3037 -1367+1798 -9475+-7077 -4762+1202 -1353+4663 -3544+-976 -7045+5799 -2442+-5241 -4184+-5371 -6887+384 9630+-7417 -1870+-6131 -6618+5495 1278+8461 2115+-2857 5577+4304 4192+-4502 8635+-1912 -9467+-1543 6182+-8019 -3177+-4299 1558+4883 -4433+1601 -2277+-2018 6227+3623 -3303+3216 -8002+-3773 7940+-1363 310+469 -8038+2173 9565+6360 -2250+1960 9643+7184 1321+-6007 7786+5700 4965+-5958 1913+-129 1121+-2583 -7995+-1995 -7178+-9598 2479+-4137 8179+-5267 -3909+-7629 -2401+6605 675+-1912 7850+-1585 895+3113 -6439+5309 7551+-6690 -4908+4229 -8845+1059 -7471+7036 -6185+-2567 985+2520 2792+5801 3732+-7693 1364+-2280 -1620+1256 -450+6498 -1599+-7471 3950+8019 5329+-1589 5669+-6819 -429+-1636 -2571+-1239 -2019+359 -8191+-1671 -6881+8566 -3633+2363 -5740+-2646 -5416+368 -9236+2823 -7750+9215 -2506+-5142 4554+4338 77+-7018 -5342+73 4331+-5148 -1313+5812 6922+-8272 -3970+5040 -7860+-2185 2028+-1776 5782+2621 -2725+9254 1286+-1254 -8146+-3544 3689+-7847 5392+-1890 -4224+383 6050+-4484 -2898+3993 -6247+4724 -5646+-4340 1030+-3076 6254+5127 -2385+7494 -598+3453 3589+-30 -6771+-56 -7210+-7920 -2828+-5126 8485+8090 4091+2073 5351+5676 311+5715 -2949+5436 -5710+1549 -3270+-4005 -8788+-7053 2882+3167 -4239+6357 -4671+-8337 5061+1578 4886+5769 6663+-1188 -9352+5313 5307+8215 -5152+-1872 1379+1625 -9832+1974 -3513+2188 3727+8586 -3064+-5373 4033+-7511 3732+-5068 -7065+-9320 3166+-3421 -7120+7452 -259+-5559 6222+-7748 -665+5236 3057+-1205 1542+-3309 1646+-223 5174+-760 201+-8015 348+8861 -4010+9214 3148+-8709 3380+3277 6641+-995 4234+5301 -6371+1552 -9626+2068 3106+4206 -6556+5066 -4161+-3479 2853+7148 -5568+6689 -283+7191 2208+6700 5338+-689 -1614+-6531 1338+-735 1004+-2228 -8089+1739 2561+4015 -2247+2565 -2029+5547 -5012+143 7769+-1889 2523+1162 -7722+3984 7958+-4532 6595+-2998 439+-2293 4210+-7912 -2832+6610 6963+-1460 4283+4844 5416+223 9171+6973 -1935+-8028 -5359+-1119 -4132+-8717 1912+-7151 4137+5542 -5940+3574 -2139+-5317 8207+-528 6421+9365 2219+-3110 -9250+-2816 2526+7922 5115+-5082 -1680+-3721 -538+5611 4298+3451 1114+7647 3584+787 -5286+2696 -2498+-4903 -5745+-2623 -9627+4101 -3223+5242 -5050+8968 3021+-6710 1789+4564 -4853+-5 404+-5467 -2+1865 3675+6798 -3887+6239 -4638+-1191 3844+-200 8086+-7055 -3489+-2472 8013+3581 2920+136 -1063+6436 1302+-4233 2242+2498 -8261+6121 7060+-7247 -5073+8088 335+-4803 7739+1618 7653+9323 -21+-8587 -798+411 -9614+7889 -461+-7030 959+-670 -7015+7116 -6653+6207 4976+20 4119+6894 -138+-2221 -7730+7226 567+819 -6600+-1031 -3252+2599 2668+-5452 -3858+-2557 1723+-6190 -76+323 -7094+-3245 8283+681 -718+2995 2362+9753 112+-5136 -4948+-3351 5030+-2371 8781+-5850 5880+6137 -2549+5272 -4135+6109 6327+2741 -2323+-2689 8074+6897 -3655+3984 5428+1528 7615+-7474 1951+1855 -5916+-5385 6771+-318 1239+-5976 -5232+-8407 -3279+-1972 -2895+3925 -8261+6168 2291+2596 1420+3057 -5325+2674 4681+-3081 -4326+3932 2396+-2239 -7074+4146 -2902+596 5441+-4410 4234+-6944 -430+3616 -1716+8200 3295+-2376 9246+-2599 7459+-7854 816+-7138 -5617+2192 8192+-2894 7382+-5314 -7769+-2845 1593+7948 -4196+579 4893+5230 7108+7551 2047+4066 5580+1435 -3817+1142 -7777+-3544 3277+-3377 -339+5327 7565+8849 -2376+-594 5985+-7938 5545+-2985 -4344+-5561 -1629+2344 1454+-6661 5377+-1815 8285+-5503 4791+6977 6045+4197 -4972+-4125 -5728+5596 7926+-47 4457+-3861 7959+2554 -2475+-8819 3039+-2522 -9+-2674 4887+-1155 -1745+1774 3367+-324 -7688+6299 -757+6641 -5756+-5989 5948+-5276 -1791+-3951 -2412+-3265 -1412+5374 -1000+-3360 -5830+-711 6726+1721 -7715+-809 8705+7050 2507+1150 4605+6375 -4722+7669 4592+293 -9485+-773 -7403+-2381 -1847+-3350 -8686+-4690 -4552+-1547 3243+4818 7744+-4781 -5731+1201 -5896+2206 2714+8156 -1592+8982 4391+3336 -8277+6815 3775+-6887 -231+4858 -8670+8910 -977+7143 -3167+-2098 4857+1147 6792+-3519 -1342+4562 -8338+-6764 2659+6050 -606+5946 -8026+1940 691+-9086 3536+-8009 -5753+1000+714 6097+-6205 1170+5136 -2879+-8481 -3441+-7402 1365+570 -1976+-3608 -1592+-8695 2012+1470 -300+-2507 -6103+-13 8442+4311 2863+3863 4866+4954 -465+4085 4130+1046 3403+6046 -1572+-206 -1388+-8144 2167+-4813 1171+3798 2227+-656 -1966+-7631 -2504+-4109 8450+6925 -2288+7140 1531+8254 1998+-1010 2201+-4807 1113+-5535 -6369+1810 -4223+-7122 5502+4243 -5515+6145 -4777+-8096 3291+-889 6130+-4918 803+907 -8617+-1608 3502+5494 4272+2915 4556+-9372 2315+-14 -2161+7087 1069+7626 -266+8436 -3222+-8274 4881+-2491 3083+-6385 28+5304 -6549+-613 -1585+-4589 -215+1254 -5681+2498 -8318+-9211 -2636+3012 3396+-7227 -3636+4620 -6938+1046 -2631+3024 -8631+-513 4542+6546 -701+8563 1502+5207 -2302+6308 3259+5944 1910+-3920 6736+6964 -536+4356 8873+-7740 -2826+5876 517+-1505 -950+-1902 -6464+-6482 -6078+6659 -2657+-892 7906+-2680 6638+2004 -1615+-8878 2938+3710 -3127+2412 -7627+-1796 -824+2949 7061+-6765 -659+-177 3518+-6698 -4132+-2428 2648+9842 567+467 3012+-3899 206+5544 -5236+7702 -3695+296 -5447+-3650 8080+9386 -124+-3469 -7025+6128 5061+-598 -6956+-62 -3576+3632 -1105+6466 1141+-1947 -4391+-5530 -7808+1524 2999+6930 -3293+-8566 1195+-5005 -339+5935 6793+-9927 -221+-5248 -1913+1965 -9241+1952 -2876+-7478 -5384+-1387 7827+2807 -5652+5046 -5770+-3703 -527+7426 -5604+8033 2919+3463 -3711+-9658 672+3079 -3182+1629 -8138+-6662 681+-2159 4657+1551 9406+9275 -2046+5258 -4160+-7685 -2528+5877 5471+164 -8122+8307 -4861+-2775 -9221+2471 2539+7078 1795+9371 19+-5654 -816+1430 9736+-7487 1608+-1672 -3109+-5280 -5094+-3009 -8739+-1952 1991+-7615 -5114+-92 -2667+-1006 -6342+-6936 4365+6022 3572+-2719 8828+-702 6251+-3446 -3431+-1157 -2267+4926 3812+-713 -9331+-4315 -5147+6219 1780+-2617 855+8165 4987+3862 -1677+-496 8152+-6627 6921+-5636 -4051+7338 4584+5475 1620+9267 -3092+-8766 1720+9659 205+5370 8402+8311 -2623+-1429 -3355+3 -4401+-1986 -4524+30 2388+8419 3153+8379 4300+368 -976+-584 4138+9952 -243+1281 3508+-7878 -4538+-1647 6391+1236 -725+-3303 -776+8675 805+-5580 -6855+2072 -9250+-6711 -5565+-142 5556+4217 4168+-927 5137+7578 1072+-555 -4349+2178 5150+-1131 -6425+7658 4474+1533 4926+696 3521+5357 -7421+-1208 1554+-632 -3090+-7263 5567+-5164 -4474+966 -4752+-1120 -3284+5417 3912+7199 -3293+-9318 -3190+7744 -3789+5049 7228+-9063 -1434+-4836 -2591+8980 2954+-6680 1852+-8710 -1017+7847 5859+8429 -3652+6990 -642+-3697 -8398+1055 8674+-6886 6036+-209 3800+9080 -1120+9152 3154+-1671 -9395+-6715 -3340+5498 3781+-4534 6338+704 -7162+-3949 -5404+-4436 2810+4112 4059+-4622 916+7839 -3039+1571 2464+5721 1007+-1411 -6786+-5808 2576+8617 -250+-2078 4458+7632 -1786+5007 7323+4517 5347+5799 -3338+4362 -8461+-2736 2566+7930 707+-765 5635+1905 8174+-7382 -5129+-784 -1303+-4521 -5443+-3184 -6028+3536 4687+1770 -4719+-6399 -2105+-4797 -1160+4567 -5093+240 -8307+5696 -4485+6306 -2602+990 7618+228 -6348+-6396 6679+-7164 5342+-2875 4694+-5123 -4211+7752 -5004+-5142 99+6177 5102+-5733 4664+-725 -9893+2226 -8203+1948 -4824+1427 -1160+5321 -3452+-7809 3968+6223 6903+1700 -4610+7596 -588+-7908 5761+2725 629+1123 -6253+4680 6987+4905 1473+-354 7866+-9394 -572+4791 6154+-3437 6719+5992 3891+-4890 8461+-5705 1699+2359 9166+-112 -6192+-7092 -6524+5867 -3347+1897 2701+-6175 1661+-7999 1451+7252 6035+-7902 -3791+-6768 -5690+2296 -1244+-3295 -6359+5758 -6184+2658 2136+-4473 662+906 -1209+5317 -2565+-8566 3162+4989 4135+-2289 6344+3456 4876+5918 798+3622 -158+564 -3486+1385 -2557+5229 -6497+-5116 5025+-2413 8238+-7145 -3492+-2477 2230+-8396 4598+-984 -3511+1023 -7016+-4980 7348+1105 2141+4993 4783+-2115 1265+651 2049+5396 5821+156 9009+-1665 984+1624 6168+3106 -1039+1225 8106+2304 -3908+3106 8116+4099 6678+8014 -3887+-929 -1868+2572 -6092+-7574 4865+679 -9153+-734 6618+-996 -5881+-4823 -5435+-2861 -9445+-2380 2888+8296 2160+-4764 6160+3417 4499+-3735 7270+1613 -1225+7883 -4361+6674 827+3244 -2819+2889 745+-4694 -2571+-6852 -1044+9265 3349+-9611 -580+-1390 -6219+-3420 4122+-3591 -6601+-1414 -1954+5754 6688+-5113 2323+-2444 -2288+-8495 -2821+8507 -3168+-2835 2521+-3026 985+-2416 -6402+-1760 9473+8708 -798+-8168 -4913+-4407 4747+1881 728+-2378 -5326+-4810 1076+7294 -1397+-5055 5447+-441 -3679+-6403 6981+-9743 2181+6730 -3812+7566 512+5870 3676+-5701 6812+3817 -3477+-6711 -6682+-5986 7260+3516 -3680+-6260 -5319+7392 6103+7527 -2211+-4284 -8479+4632 -8574+4194 -5197+2020 6874+595 1853+-8537 3555+672 -7055+-1073 5118+7731 742+537 -4251+495 -4036+3917 6775+-6951 1878+-2784 -1264+318 -1557+-9710 1779+7955 -1349+-983 -12+-4170 8007+9747 1723+-5794 -4588+-3587 1090+6474 2096+-310 -185+6070 -7152+4184 4592+-7195 -4103+-2739 5901+74 -8833+7580 3624+-2009 -3510+-5609 7737+-5430 1784+-1374 5360+2602 1495+-4127 -3215+2655 -6450+-6349 4389+-2558 1540+7355 -6548+2302 7349+5192 20+3761 -5641+-3235 -4546+3622 9215+1832 -6352+4652 827+6834 659+7053 3498+1095 2967+-1468 -1615+4412 -8657+1435 4982+1634 1611+-5761 4342+2942 9399+-1135 332+3768 -1835+-4741 958+5826 -7986+4037 3803+4541 -1848+-355 -7877+-199 -5885+-6710 -252+7738 -3252+834 -5447+-3115 -7749+6535 -5000+-4889 3028+-5332 6872+4499 -966+-3317 3661+-4297 -1643+1219 -6157+1746 9083+5122 2501+-2395 -9630+-7958 3607+6445 5279+6191 -5615+-9220 793+-8087 8+1756 -4438+6754 -6301+-1171 6412+-6159 2298+-4294 -8434+6500 1993+-705 9077+2454 8896+-4413 -5144+6593 -3230+8758 -4823+2185 -6451+-3807 -1563+-2165 3025+938 -3884+-1255 2734+850 -3123+-6697 -1873+3725 3959+5894 7606+3192 5602+-7180 -3213+-127 -5861+5645 -6405+-5801 4734+-6371 -3213+-3932 -5267+-5545 6658+442 6145+89 -8336+9663 1561+-3163 3691+6519 7374+1456 -6796+7109 2495+4021 -1180+-320 2290+-691 3495+4248 792+-8386 -3177+298 690+9131 942+-5798 -6583+-6834 1592+457 -7618+-6538 -4554+6093 5553+-2069 7500+-7838 554+4100 -2674+-1189 -8952+-2523 -1110+2665 5057+-1266 -8570+2870 -473+3448 -4674+4509 4833+-8260 414+-7152 3461+-1898 -2103+-2307 -5110+5286 -7208+6207 -3322+386 3720+7430 -4067+2971 2879+-2768 -7934+-8067 3644+-2247 8065+-3082 427+2935 -8590+-325 -5858+3728 9020+-1427 2765+2751 2342+-5222 7149+-8485 178+-1630 -6588+7045 5798+-5172 -2493+5725 -3825+1792 9685+-3410 3258+9883 889+-7124 -905+-6963 -777+7056 -1018+-5929 190+-2481 -3347+6191 2759+-5479 -3239+-4184 5408+-6936 -3437+7973 1120+5725 -2320+-4149 3042+-1776 -3123+-9457 -364+-6711 -2584+-3295 1704+2642 3581+-9898 429+-2183 5623+-5209 7905+1287 -6678+-8425 4887+-8137 -1555+1301 9665+-7820 1188+-2397 -3076+3454 8650+491 7154+8264 -4183+4674 -5543+-3794 -3695+-2798 -1172+510 -6498+2270 8544+-3925 6+-1228 2633+3107 -9148+-2468 -7990+4298 -1300+-2882 4706+-5621 4409+-1991 -2950+-8484 251+-8239 4649+312 -1318+7350 2320+6524 -201+-8334 -2319+9389 1596+3067 -1874+863 -3884+-6727 -5400+-8552 -2210+6709 -1147+4568 7014+5971 -2317+2741 1804+-3216 -319+3864 6899+1745 -2877+-828 -9698+1560 6416+-5792 352+4944 -7825+-3814 -7876+8339 -3931+-74 -3919+-5187 -6897+5147 8075+-4234 -3016+4122 -3411+-3821 9105+-7087 228+8099 5335+-5546 -5564+-1845 -3034+-808 -6726+7948 -1234+-6429 -7263+7069 682+-2604 3860+5123 -1642+4672 8655+3477 -928+-8489 2138+-5329 1208+-7305 891+8914 1501+5004 -2840+1768 4071+-8127 -5584+1288 1421+3439 -4042+639 -7142+5142 -2798+3951 7426+-7178 -3072+-3608 6731+4703 5951+5280 2059+2298 -4397+2059 -8261+1117 -5166+1291 6694+7075 -6503+-1953 -9073+-228 -6839+-9107 -2148+2008 5123+8804 605+-3748 7600+9556 -1790+4808 6939+6824 3629+3663 -1487+-2164 -1059+-8067 4867+-639 8829+-81 -9575+2452 5218+-1254 -9458+4037 5369+7375 -1052+3889 8736+-1951 1994+1066 -1994+-4820 2225+-2917 -2083+-851 -3197+2988 -6333+-1118 -3702+9047 -3490+-197 608+-975 3431+149 -1957+5151 -5199+-5855 -3546+-6932 -4064+-5525 -205+-2326 -168+3501 8685+4734 -7830+-1129 7010+826 -4812+123 -5031+-576 2492+-2827 4571+4691 2675+-8292 -474+1812 -3301+8191 -5041+-1701 -5253+-3569 -5987+4397 -8119+1203 -192+1056 9092+-6288 5692+2118 1858+2830 7977+-3892 1752+6649 -2845+2265 -4187+-2405 -4807+4830 7629+-412 -5606+-8205 2405+5237 -733+-2050 -4201+-8405 2175+-6074 4353+-1292 -8713+-701 -8400+-2626 3535+8958 -2818+-6569 4703+-940 5846+-1576 4622+-6245 -5925+-5418 -6721+-7896 -5918+6932 5233+-4849 5660+-4041 3154+2131 -8710+1928 -951+4836 6594+5438 7023+-4973 -134+1897 -5367+7661 3856+4151 -3403+-7889 5082+-309 5901+5091 7534+5454 -567+3980 1310+-4611 -662+7761 -853+5787 5321+-395 167+-8633 3184+4427 -4774+-292 9645+-6890 7061+6251 545+1851 -5350+-3115 -3102+-7416 2236+-9274 788+-139 2935+-715 -1512+-3342 -8115+5982 -4174+-6292 -5879+-6952 -5018+5395 2305+6278 -2673+-2233 5135+2185 -3641+9009 4289+7818 1454+-9250 -83+5503 7883+1887 -6127+-1511 -7830+-3934 -5464+4308 4272+-6416 -3092+385 3842+3540 -5064+5794 2043+8326 -3147+-7211 -814+-7163 -4872+-8593 -4+-2368 -159+-7582 189+-5388 8229+1826 8844+-4640 7681+-7631 757+4723 -19+6390 -5239+-316 1170+2563 -6020+3106 -2719+-5362 -6927+4096 3620+-7647 4408+1165 3058+-7980 -1829+-94 -3835+-788 6754+4713 -2906+476 2898+-8037 -2856+1869 8645+-126 6571+-7323 -2311+-2397 -7790+6719 2639+-2825 -3924+-2823 -6971+1187 2180+-4430 -5101+7001 -5469+-6121 -5880+-321 5774+5177 -1970+-547 6163+1454 2310+-3328 -3842+6592 -7294+-293 -373+-8862 -2303+-7814 -3189+4061 4587+246 -7841+-3259 8534+-2870 7777+7086 3296+-4580 -5095+-4000 -57+1498 559+-2836 983+7855 -1567+5971 1405+-1408 -6360+-3050 1637+-8011 -3456+-8227 -635+750 -7564+1382 6540+2451 -132+-6180 -2168+-8568 -176+-2967 8473+6014 -4654+-2671 3564+6796 -6466+-3328 -2490+1902 2971+-2918 -9070+-757 8698+-1129 825+8188 2078+327 -4248+-9000 -1239+1602 2932+-776 164+6353 -470+-1996 8810+5905 -5009+908 9623+597 -4630+3112 2827+-7987 5178+-4521 2493+4206 -3212+4127 -6901+-1787 -7464+-8445 632+-6758 -3348+-7137 -3077+8042 4913+-3239 4232+1438 -4520+-1086 -3439+5040 2416+-8915 2765+-1054 -3037+2991 -1096+-6449 -3656+1921 -3571+-1919 3133+-7423 5456+-1241 -2258+5632 5900+1037 -7100+6057 47+-9800 -973+4768 -974+-217 -200+-3769 7620+5342 -7940+-6803 -1521+-1610 -869+9303 -3517+-3533 8527+-3724 7739+-4022 2479+7299 2430+-2207 -2369+-9504 -2950+4623 205+5468 -2321+6728 -3935+-450 -7586+3504 7283+-5706 -2652+1557 -8958+-7026 1933+972 -4008+4323 -4225+4210 5258+6000 5035+4207 484+9660 1875+-794 -3698+4907 -3918+-402 -1019+3373 3157+-3042 7173+1683 -1738+-1592 4394+-4489 -7663+-3560 -412+65 -607+-6191 -7820+1954 32+-6923 7009+-4987 -8063+5103 -3698+7548 -4234+-1805 -2820+2090 9209+1934 1143+1823 6961+-2945 1283+-169 -4209+6071 -1500+6588 -6485+-5363 -8123+2081 5474+948 4907+6590 -6670+4209 -4246+3934 7762+225 -1631+-5948 -6785+-2056 1740+-1998 -447+607 -2941+3763 -9206+5014 -8520+-1822 -4342+3251 2595+-145 -7010+-2784 5943+3571 1117+417 2718+-1436 -8265+-5280 -4100+2327 3505+2464 -3135+-81 2999+-652 -9120+-8254 -3546+-1093 -3931+-6709 -933+4793 -2917+-4501 -6500+6864 -6364+-1542 -7832+7302 -6496+9330 -1100+-169 -4587+-4857 -7857+-6628 6291+-8731 -2405+-4324 7640+3762 4407+5535 7788+-6698 -6800+-6187 5261+2430 3573+-796 2998+-8751 -4426+3689 -8882+1000+-8915 2101+5577 4866+7926 3721+-5 -9930+-166 -1710+1306 4248+-8849 -3403+3070 -7203+6727 -5859+2373 -7870+-4226 -6350+8393 3082+648 7069+-2186 -9617+-1459 -2805+-3356 8392+5176 2542+-4739 -5405+-4094 3824+6128 -7108+1701 1706+-4741 -5171+-8119 1525+-642 1657+-1459 3658+-5524 -3008+-771 258+5438 232+2866 -3375+4117 2187+-3784 -949+-9635 2173+-1912 -3687+-5339 296+3504 -407+-5054 4637+3172 -1709+2395 -9166+-2603 3622+-6893 3872+4287 8435+-8936 -689+5392 8178+2963 8254+5482 2224+1912 -1869+-494 1244+-1301 -3884+8090 5054+987 -5178+587 -5167+-7615 -2429+6554 5252+-3698 294+-7977 573+2693 4452+4946 2573+9331 -1285+5180 7542+-8436 -550+-1256 2786+7658 -3985+-5528 -8120+-5284 3690+-6073 -6494+-4773 8276+8244 -3837+-45 -9162+5524 2936+-6118 2739+-1712 -1915+4554 -742+1435 -2795+5678 3586+-7246 -392+-2604 3370+8320 165+-5887 5434+-8035 -5692+1952 3049+1628 8258+3498 -815+5324 -5689+3748 8451+7409 6369+-3784 9029+-6003 1531+-1366 5042+-2600 -1356+1492 6+-3276 989+7386 5375+5195 -3583+-9405 -2037+-8909 -3021+2284 -1999+6569 7122+1879 -4560+4514 -8516+-7644 -424+-4057 -7356+-2113 -6679+5026 -7125+3127 -43+6860 1315+-4963 164+8517 -4466+-2589 4460+1877 8991+-1617 -9568+5388 7948+3679 -4512+8836 3799+-6016 -3193+8820 3138+-6105 4124+-5278 7798+8186 -5122+3664 -6099+2315 6987+7473 4227+7728 116+-2687 902+1509 1849+9175 -3730+-248 4739+3241 -5385+1512 3537+-8312 3265+-6857 -1225+-1327 7552+-5407 -424+-4165 -4671+399 -5408+-2985 -2227+3912 2571+-7705 6018+-1055 3415+5900 -3752+7329 4164+-5394 -1437+2859 -9253+3599 2175+8955 -4132+-7796 -3440+-4475 -4790+-8253 -5105+2185 -2045+-8946 91+2251 -9400+796 6434+-3080 3201+-6157 -4585+-3000 2802+-6671 -7214+-9447 2578+6147 2288+-3536 7422+858 -5521+9698 -2120+5317 -3172+3754 -7609+756 1346+-4411 8240+2695 1379+1319 -1986+-3004 -3796+7971 -714+-4801 -7758+-3169 -7087+7044 6730+-2864 3986+2570 -1367+4570 5269+-2224 6526+-3600 -8298+-254 -2490+529 4918+933 8935+4972 -7617+-4107 -4851+2528 -5334+-9472 -3163+1418 3109+-5707 517+-6204 -2935+2807 3230+1976 1581+868 313+-1538 9332+8808 1398+6916 485+3427 -1985+8267 -364+8027 -2629+778 5511+-2913 4099+-2920 -1223+-7011 -5878+-5440 1645+7790 601+-6949 -5507+534 8919+3882 -1225+2870 -3503+-3083 -4166+1974 -6239+-4886 -8318+2603 992+6310 3849+-845 7038+632 -7821+-7682 5778+-4087 -618+-8431 2657+-367 833+2149 7518+-345 -743+-604 4868+2242 229+-8105 4285+7548 -2857+-168 -3031+-3708 1204+-8310 -4462+-3230 -7997+2261 -6838+3543 3701+-7119 -811+-199 -9076+2766 -7827+-5541 -7029+4242 -5020+-5426 5162+-1765 8864+3221 1006+7701 -1983+-996 -2036+-1353 25+734 -1087+-7327 -4842+3161 2715+7988 3180+-5114 -2063+-5359 -8275+-3487 -3353+5577 -3370+-8057 -3385+-8126 -4765+-8762 3669+-2112 -5272+3867 -7034+-617 -9460+4453 8312+-5718 2523+1522 2791+8682 3261+5709 1038+-9591 1123+-8184 -2442+-4348 775+-6898 1437+854 -3186+4917 7162+2853 2916+2371 1649+-6856 3207+4554 -1210+6711 -6588+6728 -5620+49 -3668+488 -216+2605 2191+-6209 6543+1494 -9049+1924 7380+-3040 -9243+-94 557+-4081 5030+-2940 -7296+3013 -1856+314 -4385+-426 -1719+6645 -3063+-8057 -4329+2031 2451+-3549 -1007+7415 -3199+-156 -3711+437 -676+-8959 -2120+-5692 -6832+-2798 7564+-49 -5225+5495 4980+-6794 4305+-1389 4700+-3972 778+-3927 -3445+-2594 7667+3569 -1430+817 -6551+-8590 -1041+2136 -9360+884 1422+-4695 -7393+484 -9890+2487 6968+2262 2408+8582 936+2081 1489+-3644 2879+8216 -3046+-5672 -1818+-407 4925+-1548 -3459+-2915 -1697+-1489 -2110+3448 -6225+-7331 1081+-5775 3471+336 5051+2414 -1982+4055 -2248+4622 -7766+1308 6086+1568 -3058+-1058 -4522+-459 -5775+-8301 2347+2691 1772+221 8495+-3411 -3083+-9689 2307+1060 5981+1544 -5454+-380 1636+-344 -9611+-8226 -1664+4274 -8267+-3548 -446+-7033 -6313+-381 -6277+-7857 -4799+6980 6397+-7628 1214+5771 -2619+-4175 2450+2681 7883+-533 -7960+-2468 -3856+3247 4909+-6336 -2993+1413 -5087+3189 7681+1655 7963+1498 -5061+-2495 -5553+5441 5766+920 7559+6516 6522+-9692 -490+-6551 3791+-3442 6585+-5813 -8091+1007 7124+-2882 6183+1115 -4354+-9398 2528+-5195 5678+4976 6677+7627 -3004+4885 4116+-9085 1003+-3217 -3894+2501 -811+6114 2975+-2333 -8182+-814 8299+-7323 6452+4895 5956+-4511 -4930+-564 6792+-3013 -4567+-8916 3546+8220 -753+-419 9872+-1011 -3892+1733 1427+-2729 -4751+1861 -1182+799 -7126+-9947 838+6893 3450+-747 4394+-2386 3829+115 4206+6855 -1888+3510 -4243+-1418 1189+302 -8869+-240 2862+4789 115+-872 1036+1803 -1581+-2828 -8109+-4247 -2270+-692 -5494+5384 7039+5626 3235+4435 7075+-5961 5988+-4241 -310+-2393 -1905+2835 8551+8208 -5711+5563 -3684+-6017 -2803+-9586 400+-5676 6993+-1994 7171+-2364 1440+4615 825+5047 6898+-5033 249+-3648 2450+-3881 -4188+-1310 -101+3838 6150+7490 -1811+-5183 -1797+6320 2955+-7509 1480+-2775 8301+1177 -1047+8508 513+-5214 -2829+-1441 4064+2942 7406+5666 4555+3067 -5855+-6529 -2269+3674 -1490+-5681 -4589+-474 -8938+4842 -6035+-7169 290+6118 -1898+6105 -1494+3746 3532+5452 5051+2886 5777+3424 -7105+-2806 8935+4571 3106+3887 1601+7464 5580+-1003 -3303+-8616 1710+-197 6064+-3754 -3906+-7520 -1764+-7581 -4577+1510 8768+6083 -4457+2437 1119+-3161 1277+6895 1361+-6432 4961+7891 -4645+-1171 -1456+-3332 6996+8481 3163+-4598 -7454+-6546 1364+-4863 406+9605 -361+4007 8598+-615 -8625+7 7170+8846 -1206+650 -703+-3097 2736+-1073 -9101+585 -5166+4288 -4023+900 -3941+-4511 7910+-1927 9250+2520 -4809+-143 7264+-4157 -9069+-5200 -6240+-75 5634+-8332 -4338+5720 -3877+-2868 -1073+2579 -8890+625 5802+1990 -6203+3817 6645+-129 6343+-659 4933+-786 6895+6678 5048+-5685 1726+-1266 -6542+-326 -1124+3414 1603+4312 -3161+-6147 5725+3459 8691+-6494 -1659+6622 -3179+7425 -5869+4610 6822+-131 1988+-6102 1586+-4125 -4242+-4307 3733+9638 -467+-4603 -6087+2830 7983+-5882 7608+790 9267+4092 -8584+8815 1258+-9028 -3383+-7646 -6160+-7317 5278+5374 -1019+-8498 -681+-4121 6964+-8996 3503+175 -8698+-2509 9407+-5138 -3413+211 -711+4795 4414+-6505 -6247+1833 1532+985 -4950+-1856 -1590+9041 509+3878 -1152+8737 4255+-474 151+-585 9649+-5431 7458+4571 4227+4072 733+3715 6753+2295 -8933+-3234 370+-4194 -6347+-6921 542+-1967 1478+4060 -565+657 8449+-4332 -3338+2717 -5955+-7778 1435+6096 7411+-227 3508+4732 6594+-3252 4108+-5068 -3025+5368 -3752+5512 -2676+-3676 -3651+2889 6886+-726 -6638+-2390 -596+2047 -3997+-5388 -6972+4215 2528+5396 -1092+3141 9311+1722 1131+8645 4576+-8025 3981+-6626 -6004+-4627 2210+-4260 -7201+3158 6065+9238 3577+-384 6788+-3144 -8424+-5555 -2207+-9247 -1650+-2820 5843+-74 9889+6721 -5865+-5937 -2871+502 9569+9703 2198+331 -6441+-351 1375+8786 1397+-7803 -285+-1857 -2988+-7882 -5883+-22 3554+196 -6977+417 -1880+-1176 -3503+4510 -5325+276 -7758+1631 1718+305 325+-2044 -3071+-1484 2372+1315 -8920+-3411 -1624+3000 1719+5602 1452+-1112 5066+-8690 1083+4422 358+-9194 298+-806 7027+1419 3317+7145 71+-6348 6610+-773 -5963+-4062 -3407+9205 -10+360 4647+-1689 -2201+7995 4876+-7164 5844+3639 3257+-9308 -94+3787 4388+623 -2996+7340 -2130+-1518 -9004+5016 -977+7779 6158+1973 -3273+5666 -4519+691 -3719+2246 8113+-654 -3361+5851 5664+-1137 4948+7237 247+5809 6163+-3731 8154+-2398 -2732+-4464 -4627+1349 5045+-5243 1668+-5042 -1935+5831 7927+5002 4481+-5143 1175+-4383 2932+1209 -3275+3698 -8517+5824 3923+1837 -440+4222 -7638+-769 1500+5378 -5810+6871 1383+1685 -537+-7197 -3949+2588 -4390+-3512 8271+-214 6043+-2648 -6163+-2446 -1271+-6237 3586+-6892 -6796+-3545 -6339+5516 3988+242 7936+-7470 -513+90 6754+-2985 -8115+8201 -432+-8843 2437+9472 -2883+-3288 3316+1673 8613+-5246 4505+3489 6001+-3991 -6495+-1383 5222+9179 -568+1829 -5761+3882 2266+6357 4096+489 6838+-794 -5117+-3504 4203+1647 8310+4603 -2926+-3836 -3624+4293 3444+-5890 -1564+1715 -8089+-1609 -6819+-3862 9179+-7080 6614+-9604 2368+4856 -5377+7952 -5816+-6264 7102+-8446 3840+-2942 -4948+-2042 1146+-54 7486+6519 -4198+-3384 -3534+3018 37+-4231 -8109+-2783 3975+1660 -6860+1427 4403+-4858 4243+-9526 -2778+3605 -2014+-3506 8400+-5556 -167+6286 -460+8867 1395+-5164 -2940+-2158 2464+3463 7637+4807 3106+-5568 990+8697 -302+1344 -6279+1832 4357+-4923 7498+2048 8113+-2331 6823+-837 6749+-1779 -6174+3884 -403+7809 -4182+2951 -1973+-6249 -1187+-235 7467+9390 -691+7931 2427+332 -6225+6374 5695+-4774 2488+-3288 5586+894 -9012+-2636 -988+-4092 4816+-5576 -3939+-6336 101+2130 -8477+595 5946+178 5273+8918 433+3571 -6948+-8181 -1883+-5908 -4723+57 -7418+-4849 -6362+3894 -1942+3560 1935+902 -1693+7308 2665+-2388 -527+1707 1904+488 -1127+-5678 1686+612 -5912+-1616 7921+8148 2227+-3829 3359+2320 4199+516 1315+-8026 389+-4465 2749+-914 -6207+-6031 -1068+-4031 5252+-584 1191+-1419 8549+3459 -1788+3385 -5138+-7890 -5063+3934 8001+3994 -4708+-9644 2109+-2571 8001+2382 4288+-4783 2372+-4691 5613+1180 -9288+4576 8684+-3665 -5601+3656 2759+1851 1965+6827 -3756+-2244 9206+1675 -4123+3768 -2925+-5255 270+6546 3388+-7461 6007+-2053 4934+5163 609+-2191 4488+-6425 2331+-2803 -1676+-260 -83+-1209 -8180+116 -3363+4501 4821+7146 6904+-6812 2275+6432 6374+-2023 7387+-4636 -7527+-2417 4411+-1058 -3777+4084 5601+8919 -2921+-7410 6691+3354 -3062+7134 -447+1336 5758+350 -8449+3856 -2184+4968 7439+-6164 6066+-4514 3116+4498 -6292+-5943 -428+-4742 -1267+342 -8971+-257 4216+7093 -2814+-2505 -373+-1594 136+-7595 -5358+2274 2310+-3924 -2790+-1346 4274+1206 1372+3500 -7700+7628 -1129+6287 764+-488 -7275+1475 -4726+3692 7893+2552 6077+2288 -6231+-5874 6265+-571 3950+8387 3529+-5517 -6785+-57 4390+1261 -2944+3495 -1528+5206 2972+4999 -4300+2763 7111+5940 4650+7226 -2971+-3991 -1176+3180 -4274+1704 -7248+-873 -8550+8975 1721+2580 7881+2155 -1107+1465 4861+654 6300+867 7492+-1012 -3193+-5525 -2296+-4970 6946+8491 -5054+6305 -2537+-1784 -5308+-2608 -2320+8210 -2576+6802 2847+78 -4420+6639 -4190+9742 -459+8663 2589+-4250 -1829+5581 -3443+5791 4213+-1367 -7583+4130 5422+-2889 7612+430 -2310+-6262 -3716+6559 2871+7849 4748+5773 111+-1535 -1575+7350 186+1119 -6176+6910 787+-1218 7228+-8730 1786+-7890 -3611+5430 4110+-2923 3409+5168 1194+-6032 2424+-8182 -2723+7873 2254+357 -1518+-1696 9141+-4055 423+996 -5471+1715 -796+-6024 6978+-2390 4602+6512 6264+-19 -5812+6220 2406+2184 -7900+-3868 -6319+4762 -6723+-6757 2925+-7094 4282+-8466 4261+509 -4076+7940 -3595+2020 7008+-8869 -60+-4073 5846+9191 -413+-3221 -4636+-5453 2812+-8346 -3256+-6484 2028+-3862 -4801+-6023 1657+6548 151+4118 3068+1034 -1957+-2635 8784+935 -3710+-5793 -6063+-1484 -7187+-8870 365+2661 -6894+2188 -2877+-4224 -5589+-235 9454+8882 -2837+1503 -7371+634 9423+723 9796+6492 -5933+-1774 -8440+1597 860+-1461 5661+8558 -2283+3509 -715+-2662 3773+-490 -4260+-5243 -7231+-2961 7184+3564 -6040+2475 1425+-5261 5805+4439 3158+7655 -6323+-7842 -5907+9267 1448+6476 -340+5996 753+-2814 -4556+3501 8597+443 -2009+-2798 9448+-8847 -2514+-3044 7295+6409 4997+-3481 -5205+-2983 7243+-716 5748+-5765 37+4633 -7557+1231 -9312+1252 4134+4415 760+-7523 -830+1071 277+-5687 5610+-686 -303+-3765 -3102+-3960 2789+-3476 9240+-4452 -8745+1000+-2031 -3167+-7067 6789+1848 -8685+3492 1681+6189 -3815+6278 2543+-9357 2501+4588 -7117+5340 7587+-2394 -5711+-266 -3064+8990 -3275+-3758 8645+7568 -2583+-2409 -1890+1127 -5134+-8344 -5487+715 -6662+7066 -6761+7189 -6073+6375 -4063+-8144 -3041+-905 2102+1210 -8621+-5022 -3129+5241 7932+-620 -1666+6027 -7073+-6209 7104+2595 -8368+-5713 3527+-3043 -5396+-5404 1122+5756 6182+-2448 -2828+-3881 2810+8002 823+-2475 1508+6072 5618+-4134 3936+4591 -2644+-5746 -15+2636 9044+6081 3337+-210 -1136+6355 -2589+-6264 6162+-4073 3055+2850 3641+-8470 -4369+-8858 1164+2282 4488+-738 7849+-6457 -5892+3387 8473+4441 -1866+-400 4805+-2238 4090+1553 8606+-812 -6807+5504 4105+-286 1329+3118 1978+-7102 3665+463 -3902+-1340 -9839+-6046 -7392+-2285 -5725+6473 5611+7790 5509+-911 2366+-177 9327+8004 -4005+3116 -94+-4562 -8340+-5373 -8036+-6899 -262+-710 -4767+458 -4157+2098 -3952+-1091 -2923+-5413 -6602+7782 -4999+6863 6836+108 6679+-6307 6767+9304 1264+-2938 -8816+-2947 647+-2174 -3052+-3867 -8967+-436 112+-290 -2377+984 -7247+2706 -271+-1594 -7662+-8444 -2396+-6427 5184+-9419 -237+1683 -326+-8535 -4657+783 -2783+-2106 2985+-3174 1366+5869 -1677+8758 -1496+-190 -5494+-5862 8018+4372 -8419+-2411 6152+-1439 1408+6368 -6264+3807 7229+3856 -7972+5192 -3834+4695 2273+8347 3723+-3766 -3669+-7821 -3603+2137 6480+1706 -6337+-1692 5530+1644 8676+-5945 -7249+3146 -4376+4194 7486+-962 3018+4387 -6902+5871 -4889+-3414 261+-5504 4693+-1295 1220+6760 489+1603 1444+2587 3903+2290 9620+7372 -177+7156 -3805+-2052 3381+-5752 1484+4711 -4374+4295 7399+-6002 781+-1332 -1409+-6573 -5344+7650 368+2201 -5154+4479 8099+-1480 5653+3964 3788+-3051 -7311+-6244 5627+-3752 -3665+5386 7579+1470 8039+-1505 -4499+-6052 -5828+-2147 1019+-2523 -5439+-1537 -4835+-3131 9353+-4133 -4720+-4105 -3484+3456 -9145+413 -7699+-1536 4726+-3792 4574+621 6869+1060 -4514+-2297 7231+2249 4708+-4386 5315+-3470 1908+2173 5631+-3403 3619+5697 5494+7513 3247+3882 6261+-65 -7122+1675 -8613+2484 6869+-710 -5192+-2670 8595+-4643 5314+-2105 1173+-3666 -3778+947 -6890+-3867 5852+-7874 -246+9908 1276+591 -2274+-1160 6393+2176 4050+1120 6159+-8444 -227+3454 -3894+-1227 5292+4981 -8340+883 -2468+-4669 58+8106 -4866+223 -4433+2103 -3545+2746 -352+-2548 7622+-3465 -4928+-4450 -970+5463 862+-4133 -7924+1103 -720+218 2868+6341 4183+8432 -2934+977 4003+7155 6877+2582 3043+1896 2380+-5107 -5404+-4877 465+4288 -6406+-828 4893+1169 -2320+-372 7786+8660 -577+3850 -1785+2405 5627+4766 -2361+7263 6375+3812 8328+-5216 7412+-7936 -5500+8503 1964+-5309 -2330+8321 4766+-1137 6335+-4961 -7428+-1344 -1023+76 7236+-6238 3716+-6208 2139+1237 -3433+5396 -7620+-308 3383+-3709 685+-5894 -1777+-2379 -4412+4430 -1049+-1317 -4157+7557 -5992+3681 5063+5878 166+-286 286+-7213 -2176+962 5285+369 -8033+-6121 -367+6195 5785+3847 -1438+-4106 -6856+-3744 -5729+5058 -7179+-8814 205+-8401 4197+6940 -3891+-8585 4736+798 -2582+-6763 -5135+-6240 2371+4026 21+7481 -4785+-6051 6529+-1736 -1411+1340 -6244+1213 2022+4312 -6488+-4446 4080+1562 -125+-2370 4499+1878 -7395+1823 -5105+-7369 -6574+-5552 -6515+6753 -1761+-1126 3769+1568 -6596+-4211 -1758+-7223 2500+-2105 6809+-960 -657+436 -1064+-1268 -2052+-1140 9157+-2779 -6821+4660 763+-2204 -4565+-3326 -593+3465 -3721+7361 6040+-6699 -3527+3588 -9176+-2516 2736+-6828 6728+5776 2393+-7459 4888+5162 7679+-76 -6069+-6474 4695+5185 -1186+1257 9304+-4618 -7261+-6499 5397+7196 3906+-1561 6433+-7092 -3857+-1198 -2785+-4322 -3007+2793 8109+9312 3295+-290 -5630+2247 -8862+-1958 -9275+2928 3343+-5089 -2452+5434 -7731+-4197 -7256+-6489 -2824+-2452 -8698+-5553 7806+-6157 2101+6068 3464+-5291 -2603+3821 -7429+5713 -7000+-2907 -8991+5734 1666+-2807 8695+-4963 3303+690 -9747+1720 1695+8099 2219+120 937+-2657 -2945+167 -1975+-3816 9124+-8307 -2696+-5371 -3901+-695 6438+8898 362+-948 2271+9210 2307+4451 5429+2688 520+-5172 -7113+8921 3811+9397 552+4957 -1627+8482 -4762+8440 -2536+3613 -3152+920 2298+-3091 2485+-5301 -4070+-4304 -1562+14 8484+7542 3035+-5753 -5525+-3375 -9412+-5248 2783+7283 -1513+5429 5747+-3146 -9316+134 7022+1122 62+8218 2379+1991 8081+-4607 -3224+8016 1717+3001 6808+-2426 -3189+1665 2889+-5620 2234+3649 5569+-2560 6259+7477 -940+-6946 6590+-7880 -774+-3823 -4005+3423 -5194+1951 -9497+2012 4471+2476 4957+1130 8202+-1203 -1811+-2868 -7941+-6346 6237+-221 -5584+2978 -6346+-3650 -3006+3521 4131+8172 2669+-2881 4195+1971 849+-4227 -7430+-466 -2966+1477 -6185+3259 -2041+4477 -2332+-6288 6234+1270 2056+-4155 -1738+8663 2087+-715 5944+8910 -3959+9824 -1173+7939 3944+-5715 5867+-6905 -2983+459 -9655+-3181 -823+7828 -3321+1582 -9266+-4421 -7095+2758 -151+-9033 -45+-3869 7908+-3451 -2400+-4316 5566+7229 1983+9020 -3326+-3002 -9407+-3811 6211+3814 7750+-1560 6721+-874 -1863+243 7997+-792 9403+-1936 9164+3051 8488+-2617 -5966+-745 -2867+-1626 -8954+-1809 7791+-1853 2042+-8814 1709+-2489 -3558+-5243 -5468+9141 985+5195 -1005+7329 -2032+-2424 1027+-2572 6325+4013 -2525+8213 -2438+-4374 -6338+-800 -1199+-6302 -7314+-7427 5837+7163 -1353+98 7965+-5369 -6555+1015 -1879+-180 8153+-3950 -5401+3924 7358+4995 7578+547 2218+9034 2643+694 6450+-7969 -4248+-3128 -669+4424 -7026+-5082 -7663+5097 -1216+4211 8674+-1126 -9393+8277 3666+324 -4936+4074 5954+-1719 -8292+4736 -5280+394 8651+-4880 -1161+4290 1975+-5079 1514+-4311 -8683+-1215 -2445+-71 -7598+4578 6062+7272 6044+3099 612+3449 7446+2254 4964+-4905 -4707+-601 -5484+-5453 3490+5400 2094+-7969 1680+8285 858+-8926 -2255+4987 -7295+7926 5067+-2158 7578+-127 857+6202 6306+2655 1813+4502 6564+3670 546+4032 8031+-1248 -1965+-4771 7655+-4216 911+1608 -6781+1721 1075+5129 -6912+9095 3411+-582 -3046+1307 -5498+4432 3406+-3872 -4935+4614 -3681+8104 3505+926 1266+-4994 7828+-4624 5587+-4829 1427+8904 747+2474 -456+5975 7683+3952 -1302+-4406 5033+654 -892+4130 -1058+7618 -1379+-4653 -1048+-1156 -9632+-6875 6032+2264 -7721+1229 -7280+1351 -6239+-28 8498+-2232 -4349+5105 5781+-6290 567+-491 -2447+-3744 -7069+-745 6864+2959 -6261+-6635 3625+-4780 6157+-3766 -737+5229 -8399+5228 1028+-409 6365+-235 -3814+-478 -6622+-8924 -4510+-3228 1761+4644 5747+8148 -4698+-4386 -6916+-1096 3203+4108 3880+-647 -7630+1212 -1648+-3470 -879+-3754 8078+-4701 -6942+1514 7679+4713 -937+-1798 -3333+-5288 -840+6140 267+-2521 -6059+2686 -2538+-2873 -2080+4020 6547+8552 3523+-2675 4613+-5655 -2109+4902 -4477+-1686 -4846+5690 1763+6306 3668+4471 7244+8491 696+-289 -3633+-992 9841+-4968 6950+886 -2054+-1092 7195+5639 6647+8491 -3733+-694 8727+5219 -5525+-5937 -307+-76 -7411+-6945 -394+1839 -8498+-5652 142+9676 1050+3310 3553+-7284 -6109+5715 -1899+3039 -672+4146 6059+-7809 -3397+4230 -1938+-4835 -3342+487 -6668+4491 2714+-533 7745+-1691 -2425+1003 5291+6811 -7163+-4755 -4314+4542 152+-4942 -7229+-4258 2820+-1337 3102+-4874 7435+5645 2272+1149 -2395+-5311 -3775+12 5523+3503 5279+-2155 416+2874 162+-3782 -2825+-160 2631+-7119 -3788+-2983 2536+-1287 -7949+-8912 472+-2204 1640+758 6684+7356 5619+6012 -7079+-1836 -5896+7248 -4990+9563 -2550+2480 5333+4168 -4603+4005 2970+-1871 -651+58 4696+-7425 -893+-1522 8791+-6392 -5205+-496 413+-3831 2708+3585 -7010+-66 -5708+3717 6101+2710 -3337+4419 -5621+-6355 -1840+-4246 -7142+-6208 -5540+-1024 -7369+-7477 -1079+-8481 -5014+5386 -236+1416 7251+-2610 3325+-1721 1103+-2086 4687+5510 -6704+4474 3760+-907 -3539+7965 -455+2208 2822+-3480 -1179+-9350 -3042+-6579 -7368+-2567 -7217+-5818 -4715+-6113 -5748+-6638 -7346+8598 3265+-3105 -6703+2897 -1912+1704 6831+2373 9534+315 3428+2139 -2570+-9052 -2778+-4712 -5546+4426 1646+3255 -8965+-1918 -4575+3901 -1223+-8077 -1018+-5477 -4475+4997 1333+5611 2365+-6603 999+1980 -2126+-3460 -8545+3439 -5118+3189 -8087+-6323 1734+5200 -1038+2968 -9163+426 -8308+-1454 8418+5958 -5184+6808 886+6426 6300+-7006 3518+547 2046+-3080 537+348 -4588+-4011 -933+-2375 1056+9068 -1019+7456 -3464+-246 -2580+-4303 6180+-486 -4920+-8666 1492+1208 4862+-5202 2991+5883 -4023+-7673 2682+-7292 5114+-8158 2429+-6362 1413+-5070 1809+614 155+-2289 -6238+2787 1884+-5174 -1535+3899 2639+-7799 5118+-1805 -7292+7683 -3914+1079 8393+2385 4758+-3352 -7409+-4933 8281+5177 2778+-9322 3001+698 2045+5932 -3487+-1983 -8171+3449 1289+810 -585+-3933 6416+-3338 2383+4571 -6100+-4208 -2713+-8659 699+-2577 -1405+-8755 -2514+2753 9149+323 -218+-3393 4716+1597 8321+5061 6041+5436 -7119+6026 3998+1196 6866+-8209 157+1911 5057+915 -3084+2526 5670+6147 6285+-6241 -1925+-1660 8166+3910 -7097+2587 1558+-2760 -5622+1976 5429+65 7351+-6171 4534+469 5514+1770 2968+1165 -2089+9483 -494+-3050 -8266+-4833 7349+-4087 2031+-3597 -8368+-8361 4034+-3751 -3576+-6943 -1736+-4287 -1523+645 6630+-5610 1463+-5594 -5009+2461 8559+-1242 -9260+-5525 -8082+4546 3927+-4767 3468+1140 8001+251 661+-6051 3795+7500 -995+-6115 -5031+349 3970+-3219 -3351+-7248 -3959+-5745 3851+439 -3666+2583 6742+262 -582+-4846 -37+3990 -1096+-3465 -7524+2500 2503+745 7498+-1464 2209+6723 7007+-3085 -8881+3455 1778+-4365 -2726+8889 -2838+4955 8466+1597 4425+-379 -6152+-4132 777+3404 -1026+-8703 2281+3827 -8910+8000 -561+-7650 300+7700 4121+-2480 6344+5709 4719+8539 2765+-5921 -7493+-2139 -2652+-4491 4008+6776 -4391+1531 -7946+4023 1830+4598 -8755+1735 6120+8140 231+2818 -7456+-712 -6762+-4743 -195+-4331 -4978+-4815 -2362+3498 3884+1832 6457+5899 -4808+-4721 -1524+1969 7352+5277 2129+5842 5151+5776 3324+2940 -5752+-5808 -5755+-6116 832+-6303 5180+-318 -3585+-7719 3758+-1305 4652+8352 -754+-9225 -3309+-4977 3640+2601 -4067+8549 -618+-8576 818+-3300 -7717+-791 -4244+-1056 1769+3515 3762+-4682 -1333+5362 -1318+2500 -6485+81 -513+3330 -6289+-2457 -8200+-4987 5665+-345 5844+-2569 -3784+2011 -1158+-6237 4011+-2023 -6466+-2821 -5738+2452 6464+-6066 -1694+-7464 -6581+-5384 -3724+1231 3727+6271 1249+7632 -6063+-351 5682+2763 3928+-253 9662+2722 -9469+-843 5543+3186 -1363+-331 -437+168 -9996+-2754 -4788+-5654 -1357+-6559 -2478+-5168 3147+-7610 600+-409 9551+4105 -853+3454 6091+-597 -6307+-7804 5639+-3581 -4407+648 -1435+2684 -3078+-3996 8060+-5504 7565+-4601 2110+-5538 -7104+-41 -7809+-4107 -3276+7783 -359+-1530 5152+-8351 3750+8560 -4903+-3553 4895+-8474 -2845+4844 3554+-2710 -6497+4470 -6+6640 -1650+-6825 -4809+7773 -450+8892 1137+-2470 5413+163 456+6569 -4180+-2396 6367+3452 1381+2491 -1684+-330 -1111+4044 5673+-5900 462+461 -1637+3917 2837+-1828 6339+3902 214+-879 1486+7257 -1837+-2676 -8003+929 8302+-6683 -688+8126 -1709+-4750 1781+-9836 -38+-5805 2805+-7957 5195+-7727 2485+-8196 -3819+-1679 -4977+210 -1991+6597 -5241+-7564 -1088+2570 -7417+-6026 1061+848 -2598+1321 8444+-1966 7053+5582 7816+347 -592+8117 -1495+83 -5022+1679 -920+4844 -6887+-3969 -1037+4427 1513+-4667 -5702+-9462 2939+-2914 3705+2860 7340+-4047 -6908+-6871 4342+495 4114+-2369 963+-7181 992+-2492 9375+5025 -8320+6636 -4135+4342 8525+-8836 2849+-5630 5014+987 -6728+-2328 8799+1421 2015+-1306 -5316+5618 234+-5138 -3540+7887 4354+-6852 -5812+-4184 -6816+-6924 1592+7115 3350+3308 -5558+8619 -2168+-3037 9328+-8710 -4464+1000+-5224 -3237+2777 1225+-929 -3404+-4622 951+5101 -1661+-3017 3577+880 6294+50 2413+3161 -9456+-1827 -5354+-5830 5801+-5174 -6252+9649 -305+-1231 -1839+1318 -1066+-4786 -7657+3531 2363+287 -3144+-7605 926+-9784 -701+7801 -6056+-3189 -887+-7955 -1117+-4639 5748+4431 8258+-1477 -5107+-7030 4663+1555 5727+-4910 -4534+8645 757+-6793 4325+-3869 -1934+-729 -1182+-2207 -2614+-8981 -795+-3695 1320+-4391 -5364+-3921 5802+-7228 681+-9706 -706+3580 7575+-4869 4265+-6936 2618+1847 7247+-5506 -7365+5462 -7938+1461 1577+1455 3408+3999 -5246+-2860 7518+-1674 -3239+-2916 -992+-1413 -1537+-1757 6130+4367 7421+-1008 -2759+-7809 -2528+-4514 -3963+3390 -8392+-5993 -7026+4121 -8361+-3062 9136+679 2387+3640 -2967+3437 8530+-1262 -5129+4153 -1328+3988 5404+2037 4997+5268 4031+3700 8760+-4137 8996+4746 -6165+7780 2122+1844 -5116+-8414 3818+250 9259+-5199 -6495+-907 9771+1035 4822+3400 -4861+-3574 -6160+5486 -1637+-7847 -2196+1502 4456+7005 5987+3359 -6986+5200 -1284+-159 -3757+-2545 -389+820 -3863+-5961 3807+5512 7873+4586 8619+-7378 -391+-4022 -4698+2311 -5706+-4295 -6634+3634 -4981+-4197 -8618+2144 -8393+-2388 6488+5633 -815+-1920 8183+-990 6338+-7142 -2303+-5826 -604+-6900 -6122+-448 7114+6401 2779+3766 -7997+578 -9735+-9681 -62+-7345 -5377+4897 -6056+4822 -3750+4134 -4831+-8773 -262+6739 6688+3164 -2208+-4837 -8635+2821 -7100+-2635 -8212+-478 -8419+-5662 8102+-8317 -4922+2885 839+-4217 -2642+7754 4274+-6384 -668+-816 -1377+-5612 2506+5528 331+-8745 4564+1258 6392+267 448+-1958 -6307+194 -8424+2846 -6047+959 4087+-5489 6440+-8465 2767+-7840 -3703+-567 5627+3996 7622+4177 7354+-1917 -6984+2313 -8169+7041 1246+-5079 16+-2903 1793+-4312 472+5408 -8125+8565 -4038+-1261 -5813+5616 4268+1312 2858+-3737 -4184+-8548 2474+-3369 -6737+7418 2803+-537 7652+-909 -3700+-9530 -935+-9766 1963+-1993 4628+2017 7238+6294 -5550+87 1026+-3918 -8706+5708 -7748+-5462 93+2181 -9506+1709 -874+-722 821+-2422 1759+3049 3557+1564 -7104+3600 -2048+-241 -3697+6993 25+2639 9432+-6509 2028+4332 -4425+-7942 5356+-9529 -3025+-5415 129+2321 2478+690 3347+2138 -6463+-1822 -8884+5359 4936+4053 -7591+-6412 -2043+-7708 -1088+-3160 2212+7327 -553+696 7983+-4715 -255+-8096 -1008+5060 -5847+3307 9303+1796 915+1558 5615+-4308 -8611+8482 3850+-383 -2104+-395 -5645+5909 2048+-7097 -799+-5842 6180+5866 -6168+2017 -5722+-8816 1478+-5529 4638+1085 2216+962 5538+8557 3671+-7004 -5407+1717 2897+-3646 -9195+6825 3146+-5062 -7173+-1290 4814+7966 16+8110 -1430+3313 2234+-5845 -8100+-8654 489+-2618 278+-788 3799+9577 4+2326 -4854+3848 7601+8581 4712+-3827 3633+501 7246+-23 -9142+-865 6882+8652 -3601+6137 -7210+-4639 7833+3166 5408+-6422 -4074+4501 5512+-7104 -1222+1938 -9075+-508 -9206+4176 -1714+-1826 9058+-1541 6299+62 7934+2100 -7383+596 -9885+1758 3186+-7382 2260+9468 -2294+-9813 -1402+-5671 537+4140 -6334+9045 -2915+-7276 6322+4472 3613+-5364 3605+-2039 -6186+2944 668+-7153 -336+-803 -2688+-6064 4829+-8618 3777+7974 -3944+5565 -1884+-51 -7797+6320 2592+4680 5774+-7997 -4496+9737 926+3201 8260+-3963 -1040+8945 -717+7207 2873+9400 1097+-6941 5509+3869 4175+7092 -3579+1237 8920+-5885 2150+1853 2770+-1051 -4340+984 -230+6814 2805+-3142 3162+1520 -6+4664 936+2731 74+-6764 2249+1263 -8499+-2458 1496+-770 -7717+4920 4843+3869 -3885+-4296 -262+2268 -8811+-145 1859+1953 -6932+3595 1832+-6665 -5337+651 5705+5308 -7933+-6895 -4878+9064 2352+-5851 -7255+7517 -5903+-4969 588+5699 -5427+-366 -2291+4663 -5429+-3212 -7255+-2849 8959+-2783 5567+5739 -8064+-3173 7899+-818 -6820+-8230 -3802+-154 6829+2393 4747+5036 5590+910 -807+2068 4365+3677 -4681+-2784 -3543+432 -6035+-2460 -6256+6873 6768+-6128 -3626+1657 -2911+-624 1566+-4723 4790+563 -8791+-6539 6199+3233 8151+-7420 -4296+-3668 5621+-8669 -1954+-3045 7219+-593 -4139+173 -2390+-4148 4127+8218 2727+-1140 7257+-538 8404+-7866 4636+-2056 -2500+8552 4810+6318 348+-3820 4119+6290 250+-5022 -2665+4816 -7948+-531 2667+-7688 4493+-8612 -2215+-1753 2407+-3589 -6049+-6891 2281+3842 -8383+4076 2336+-7058 2998+784 99+-2796 1908+-4123 -5003+-1882 7143+3215 -1397+7210 -6008+8731 440+115 228+4805 3365+8665 -1585+5878 -2757+861 212+-5538 5589+3089 980+5013 1788+-5641 4382+-7215 4723+2282 4203+1304 1122+-4947 1232+7569 1942+-3088 -3208+4030 4467+5244 7686+4121 6920+-639 -1757+4745 -1729+-6945 -3080+4 -4020+-8053 -1065+6460 1535+1899 5352+-9629 1199+-5971 4530+-5838 1271+-4790 -3125+3373 1861+9177 2893+3776 8389+3210 537+-1900 171+-8625 3276+2203 9704+-991 -6842+781 -9772+5130 -3016+-6870 811+8266 1151+4471 -5274+7790 -916+343 -7962+2295 6948+-2338 -4771+-3412 -791+3153 4101+-8719 1635+-1685 -2286+3776 -3921+-994 -7901+2828 3404+4526 -7178+-4374 4862+8119 -5459+1991 -2801+8336 4439+3607 6556+2415 3635+1971 6645+4202 -4072+-9745 -196+-5255 7000+1312 8807+259 -583+9529 935+-2450 2938+96 -7764+3189 6841+-1170 723+7472 4062+-6252 3950+-9491 -518+-4758 3291+1260 3815+-603 227+-1298 4139+-6186 4523+4893 -4310+5161 4547+2865 -7129+-785 3437+590 5941+-2377 -8778+-3572 -7589+2354 2719+4676 4066+-8921 1474+2252 -6138+172 -6292+-5144 -3809+5596 6760+8830 -377+-1407 -2458+-7895 -5907+2836 5962+879 7954+4573 2572+-4847 -7594+1240 5995+-5230 -6751+-1219 6+4960 1992+5400 3456+4307 5440+-4167 5381+-7214 -2153+295 -7614+-4108 -8101+8353 3489+-4194 4049+2115 7344+-8430 -2385+-5709 -5271+-214 -5636+-2705 7427+8014 -3218+-359 2301+1181 6066+4583 -3280+1515 8547+1759 -5908+-3611 5105+-8274 2559+1732 -3211+3135 5969+-1294 8450+-6713 -5044+6262 4785+-7773 -2313+1105 5505+5720 1186+4518 -3393+-6390 -3513+-347 9494+6885 -1260+5503 6871+1659 -5327+-4282 4005+-2082 7748+-2109 -3826+-4388 -6372+5439 -750+-8796 -3671+5932 -4833+-457 -897+26 -9252+-9607 -1905+-4263 7237+1699 -1732+2452 -1175+4947 8339+480 4866+-2681 -3543+1890 -3434+1460 -2938+3444 9257+438 -4629+-2517 6537+8531 3830+-6334 -2910+7721 -2344+-4595 3043+1162 -7418+-8526 1931+4721 -7243+2122 2666+7935 -1176+6032 6904+-2446 -7778+8254 -5289+-89 4323+-3498 4702+-2821 8310+-5241 -8471+-2859 4674+7541 2819+8983 3478+9474 -2901+-4780 -8242+-7596 -473+5389 -7128+3153 6157+2336 231+-3363 4566+-5661 4776+4570 6625+-1510 -2320+-7135 -6809+-4772 1490+-4023 -3296+-2865 -978+4732 -7049+-3861 4728+1518 -852+-3023 -2163+-3940 2015+6238 2712+-1757 8322+-5564 -4364+8739 2816+4884 777+-1186 -9624+1777 1544+-7308 1930+-1320 -1451+-4225 2498+5058 5275+-505 1487+-1854 354+-5100 2647+-5035 -3288+-5834 -6420+-1690 902+5737 -3001+-259 -5735+7943 -863+-1941 9657+3126 614+1299 -2626+5453 8239+-2032 -8170+6991 -7071+6806 -1782+-5176 8153+-1550 6309+1165 5314+-1884 8969+-5870 -4006+5187 4379+1461 5154+-196 2917+-8039 -4446+51 -8031+6476 1989+4597 1867+-3155 -1234+1915 -439+-1448 -4439+8052 -1818+-975 368+6649 -1847+-783 -6781+-266 6900+820 -7586+5745 5501+9752 -1526+-3935 1473+-5199 -1839+7389 -100+-5198 -6736+-260 -9307+-1636 -8445+8634 -5036+3991 -7209+5626 -4047+3002 -4940+7571 3792+8303 750+2117 -633+6659 -2622+666 4775+6140 -3440+4223 5427+1078 9746+-4317 6889+-418 -6538+2220 5412+697 -9383+1540 7602+4672 -481+1128 -5978+-2163 5493+-8045 -1011+1458 -1155+2194 -4+8421 -4064+6325 1393+5576 7747+-7085 4979+3809 5773+3332 4475+-1761 3955+102 -7546+-2952 110+-7276 6141+7612 -4596+-6776 508+-4057 -4173+4547 -2060+1677 4635+393 -7784+-6236 -702+8005 4445+6408 -4489+6091 3648+-347 482+-4663 4600+4908 2184+6319 2074+4891 -4539+4917 -8490+-1070 9590+758 -8071+3758 -7751+5875 1771+-1105 9566+-404 8625+-1488 -6586+-3111 -7526+-6260 -1691+-3035 -2700+-1453 -8131+-2047 25+6856 -2362+112 -2434+-4066 -1594+34 -214+6702 -457+-7092 2132+6376 6500+2262 -2192+931 9128+2724 -7406+-926 5547+-8391 -3610+2503 7020+-7437 -4704+-1045 -4+-278 8865+-966 -5324+-2847 -1255+7895 1589+8053 4721+7480 -1658+4764 6284+3326 4902+-2915 7647+5166 -8290+-6903 -4822+3350 4164+705 6617+3998 -5584+-3389 -8703+5169 2094+1764 4809+3459 -1064+-3344 2393+4007 -5669+-6454 -4192+-2724 2567+7634 -951+-3851 -285+-5528 7909+1922 9130+-8441 -432+-5562 3283+-7726 -1749+-7117 -4416+2146 -9478+3083 3844+-7991 -5231+-2192 2194+6528 -2459+-3757 -1934+3151 -9103+8121 2187+-1867 7710+-326 -4750+1339 6958+5078 -7609+525 8782+5106 -7952+4556 577+5413 -6431+4791 4456+-7899 4683+-212 -2836+-9255 2062+1187 -4806+2961 -8858+-8305 -1121+5775 5737+515 8832+-4335 -6470+5370 -4973+-7536 -5528+-501 4376+-7014 -5087+2731 -811+-4929 4056+-7305 -5818+-2179 7698+49 5709+6733 4116+-7115 5797+4304 4492+3411 -955+-6366 4851+8795 2796+807 -3663+2709 9490+2051 9324+1152 -2991+1424 -7224+-7734 2457+-4264 1541+-8169 2316+-1469 2680+-6697 -144+-2435 4421+-6076 7731+-3200 1140+-705 -4300+8385 -4801+-5124 6128+-1394 7002+1180 -987+-5568 -2365+-2715 -1238+-4368 -7087+5536 4579+129 -9329+1180 4889+6921 -2826+7313 -1274+-941 165+3200 2875+4550 2532+9813 944+2759 7428+6644 -2268+556 9082+-3759 7132+-577 -944+1202 -7180+-792 -2974+6054 5157+5613 -8093+-4584 -2090+1631 8049+-4696 -7602+-1349 7829+6011 -5822+4660 3038+2941 5004+0 3889+-5526 -6095+-5803 -6335+7921 226+3079 114+4539 7123+-3785 -5893+-2926 -8432+5058 4905+2877 -3174+4252 4192+-2156 -6503+-2805 -1205+-637 8993+4765 -1687+2821 -2522+6742 -6585+-5676 5588+-3253 4621+-5246 1754+-5847 -4016+-614 2854+-5572 579+-8138 -934+5287 4677+-1881 2695+-2871 7701+7311 -6135+-2953 -916+-3809 7400+-1590 -4011+2955 -1253+-8007 -4980+1068 1832+-8057 -12+-1710 -8403+-6613 -5041+-4965 3148+-9411 2195+-5345 1718+-7369 -3963+-8428 -451+565 1446+-8103 -3595+-1411 3109+2205 -4800+6776 1870+2927 -4425+1571 3121+-8336 -4093+6905 1655+3524 -5951+-6864 6298+769 9530+724 9583+4222 7616+-4628 -2695+-953 5700+3962 7462+7152 2262+-5380 234+-1886 4432+-1807 9022+3136 -3214+-8905 2046+2048 -1238+6786 -3121+-5135 3930+-2986 5961+-8389 2344+-1250 8959+-4619 -6268+2328 -3622+2981 674+1253 179+6504 1965+6562 -7452+-9844 1088+2167 601+19 1522+-2458 7867+-2782 -3050+6586 -2773+5038 -3026+3209 -5454+-4229 -544+-5583 -836+-9895 869+926 9057+-7419 986+4802 8447+-2661 8390+9513 1258+2122 -9006+424 -5699+-6218 -4298+-4109 8111+6380 -6777+-2038 -1242+-775 -3886+2245 -1055+2200 -4385+4298 -1626+4382 704+435 -7119+989 5334+-2539 3455+7860 1168+-1256 6215+-1218 -2819+4857 2101+-1111 7082+8730 436+8523 -2413+123 -1448+-7536 3721+1778 -6027+4121 3570+8170 278+2456 -8399+5504 -7099+5027 2637+8388 2213+5610 -3432+-3556 -1890+-916 -8537+-6367 -4753+6136 7117+4981 -4120+-8050 4678+2838 1523+-5372 3898+4366 3386+-3048 -667+3227 1064+5821 -5931+2810 4839+-1356 -5205+-2944 -3786+7060 -5243+275 -9370+1466 -4392+-3325 5496+-1774 6468+-5125 -7895+-8838 -1647+4812 -1912+-3771 3044+344 8452+-6944 689+5804 4719+-9339 -1653+7900 4832+2656 3655+-4000 7847+-7516 1051+4512 8473+149 6407+208 1812+-4917 2922+-6333 3539+952 9239+103 837+7119 4740+1897 9368+926 7868+-5055 1435+-2125 -2944+-1100 -269+4002 3676+2175 1117+5802 -1599+1769 2693+4452 1987+-3267 8652+-1833 -6779+6929 6200+-4423 -1178+-70 9863+-6712 -7220+1000+5395 6563+6213 4903+127 5929+-8378 5157+2276 -259+3900 4559+-7038 3746+72 3123+3796 581+1382 -8521+1222 -7367+2184 -5888+5417 -6174+5071 -527+-6533 1388+4599 8136+3746 -5932+-1307 -7930+1540 -9276+5764 4708+1913 -9729+-7419 1398+-7803 2652+7462 -3493+-2764 -1756+-5481 8275+-164 -4065+-8358 3677+8638 161+2876 -7279+6931 2217+-2359 9306+669 -2965+-3812 1855+3032 -7310+-7373 4558+-9592 1115+66 -8841+-2109 3385+1455 -4888+4638 2629+7917 -4099+4622 -3975+842 9869+-3580 8242+2741 5562+-1700 -2561+-3318 -5228+7697 -5959+462 -3667+-3518 2967+-2054 -6986+-5173 599+-925 -8470+5269 3499+-3527 8891+-5948 -5474+2205 -7871+2876 7979+-5742 1788+2685 -2753+5090 3183+-6972 -5365+1357 -3649+-278 3305+-828 4262+-5093 -4999+6493 -7400+-765 -6348+-1357 9400+-7389 -5495+-5221 -3860+-817 3091+5780 3766+-1990 -3973+-6887 7106+-8933 -2383+-5363 4303+1757 -6625+-4795 1495+1048 8871+-1748 8511+-406 -986+-2804 273+-3336 802+-7440 5663+2451 -8033+-7004 4575+-8949 -2233+3283 -794+-3888 6904+-8505 1024+3835 4072+-4325 -8713+-1343 1486+-7528 -3374+-130 9428+8783 290+-7125 -2123+-2158 -817+-121 -8552+-4743 7284+-6966 -3883+182 5575+5309 6234+-9404 -2468+6026 6362+3683 6004+-6477 -2987+-5559 6020+7703 -248+-7075 3725+-8846 -2334+-4218 5342+1415 3543+5116 -3998+-6914 -953+-2945 -3659+3245 -1277+3816 6757+5723 -6938+-1141 -7526+-6746 -2089+928 232+-3591 4506+-7072 1703+-9406 -416+9954 504+-3620 -4803+-7833 -4573+-2780 1037+5551 -5707+-869 -5902+-4795 129+2484 9236+-3236 7321+9281 787+7881 6007+6980 -2544+-4158 5033+6770 -2450+-2496 4386+-1658 4434+-5859 405+-8418 -2007+-7405 4541+-6138 -3271+308 3457+765 3435+6840 -2648+-5283 -5627+-2243 7306+4551 4369+8803 -4317+1389 -7523+618 9155+3445 6730+3645 -6188+7893 -4014+4498 -4051+-1708 -7778+8086 -3486+-3683 -7242+8940 4422+204 -1835+2111 -8006+3104 -5405+319 3991+5360 -4378+5341 7785+-6349 5902+4224 2484+5895 -7156+-1199 6359+-3500 5958+-1902 6918+4097 -4735+-4406 2388+3027 2467+-5684 -5476+-3061 -2223+-4562 3155+-1105 -9547+-4636 1571+-2831 -7167+8266 -1947+-1673 -5139+856 -7640+5522 2580+-2266 -6265+2556 2127+-4068 -4989+9854 -768+-720 -5203+6325 5199+524 4318+109 -7452+9210 398+741 7995+3834 1993+-7 -7949+3392 8971+-167 -849+-2798 8644+6926 -4994+6207 -7767+7127 -482+3356 -1608+5765 355+-1525 6605+-3589 6324+1036 4186+2538 -5997+3526 7861+1480 -4338+-6095 -7471+-1631 8430+5189 -7900+3626 -4642+-2886 4469+4806 2670+-7077 -127+-3536 -6493+6253 2446+-4575 -3434+8799 3134+-1152 1023+150 8768+6525 2674+-1469 -5983+6223 2000+8630 3130+1071 -6252+5895 2999+3361 9114+-549 -5512+-4376 -7002+7416 -5121+8003 1546+8028 -143+-2021 6977+1577 -6981+2147 -351+-216 -1627+-4150 5252+-6912 -4039+-1808 1553+7972 -3537+6844 -5036+-6005 -7790+-6043 -6375+6629 7296+-4389 8634+-4031 -3219+4611 -36+-4392 4035+2989 -4407+2271 5420+-62 -4187+-1369 8168+-2686 1845+-4668 5664+1388 -4197+7201 4700+-6465 -3+-5650 2602+3179 -4523+-5733 -7588+-3515 5257+-5391 201+-7977 -1791+-1730 2799+-8675 -463+6992 7131+6767 -7338+5407 4139+-5808 -4730+3375 5239+2937 8913+-3310 1247+-4919 5854+-7377 4753+-2164 3838+-2956 -200+6175 4354+1106 -485+-8474 -3820+-3504 6059+-608 -1019+-1436 -7184+-1410 1998+2810 507+-5264 2243+-2395 9545+-3269 -4396+3160 -7345+-1607 568+-618 1639+-7953 3787+-2495 4965+-6716 -6977+-1146 -7633+-1328 8651+-1203 -6773+-3784 8921+-573 -9924+5771 -321+-3569 4301+-6264 -5924+-1346 3952+-8319 4814+737 -6480+8294 -356+5408 4903+1406 9383+1909 -4385+-7227 -2775+-3207 7140+-8797 -2736+-7483 6308+948 -6749+-7116 4458+-2358 -392+-4663 -5381+-3267 -5328+-3283 3632+-8766 2768+2497 -6852+-3487 829+-5583 2269+3850 8409+-1088 -9534+2192 7255+3144 -4143+-5459 2130+2977 3160+4708 -6517+-41 6053+87 8661+1790 5227+9126 958+-6343 5615+7534 -3711+-4207 6445+1938 7766+6330 7582+-6430 3305+8976 -2334+4668 -6761+2139 -6167+5109 2206+-7183 4478+391 3304+490 -4981+2567 6720+-3498 7436+-198 -4005+8130 5750+5181 3779+940 -216+-1767 8772+-8199 4146+8515 -4519+-141 7040+4833 -8689+924 2804+2932 -6190+-6200 -707+3991 -8509+4778 -4394+-4559 -3982+-9068 3994+-4981 -410+9477 -1981+837 -9819+7124 6556+1154 -9667+1641 1741+-870 347+-3088 -7298+-4850 -5322+-4888 -2759+2145 634+-8334 -5451+-7437 -226+6889 2982+4285 3322+-83 -8916+6928 5307+9314 -1973+8540 1872+5680 6557+814 1785+-6616 7146+4728 6829+1410 4918+-3930 5172+6769 -1690+3765 3371+-3403 -7042+-424 2783+4537 387+-77 7293+-4819 8468+-8032 -376+-8372 3007+2203 7651+-4234 2537+1428 5635+-6901 7142+-7416 -6654+5688 697+5571 6900+3957 7058+-7392 4392+-9388 -1317+3061 1864+4563 -2439+-3871 4908+980 4307+-3569 4111+-378 -2274+34 -972+-8576 -2386+-7293 2692+-8528 3813+-2280 -5034+268 -6964+13 -615+1746 7500+2115 -8294+1377 -5784+-8497 -1889+-3218 -9444+-2995 -945+1275 -3484+63 7207+6097 -6926+-6746 -5474+-435 -3017+-621 553+2605 5792+3585 1047+-2869 9258+-1252 8600+-256 -9847+8221 -3503+2444 -122+6179 4625+8833 -1298+1024 8350+-1370 2443+-9898 -688+4019 6092+-9442 -2174+-243 -1727+5878 -5457+1820 1330+4477 -4580+-2912 6935+-3598 6109+1211 -8006+67 -8342+-277 6249+2449 4877+2357 -6697+-4118 6255+-5915 -1932+-8026 5848+-6679 335+1749 5925+828 -3093+-7033 -3623+-5044 -8284+7760 -3784+-8771 2574+-6225 5384+5168 5700+678 7575+-2555 4113+2112 -2241+6078 6761+-7779 1681+-5511 3336+-2867 -8921+4911 2497+-9164 -51+-6269 7381+-7469 -3386+-4508 2195+1907 -6393+-6258 -3124+6906 648+-1048 3740+-1566 5182+1480 5300+-4700 606+4818 -3770+8827 2470+-4961 -6057+2753 -1362+-8156 4379+1870 -1471+-1637 5958+114 -7038+6477 -2220+8547 -3331+-8960 -3441+1814 -1192+-3600 -3699+-921 3713+200 7450+-2831 5050+3624 -8636+-76 -5179+-6603 -7244+2854 3764+8740 2155+2735 6804+-1014 -1779+948 -4531+4975 8347+-8032 3381+-5391 -3494+3385 5640+-626 4065+6955 5952+-3705 -8699+6981 -4953+-3795 3040+-5044 5663+-3009 1786+-6636 4011+8648 -4471+-1756 -133+-7835 3151+1223 3970+6822 -5290+6857 -5506+1089 -3342+5711 7458+7632 1480+2296 5242+-1859 -3970+-5514 2292+-3444 -2761+-480 -9790+-6702 -5976+-8908 1232+-2523 6274+-6600 1694+5985 2579+7066 3759+6333 5786+3057 5309+6738 -7100+-4484 1662+-3155 -6554+-9569 -541+-7450 -5464+2749 8760+771 8038+-6354 -3589+-250 9774+1397 6466+634 -9843+8060 3279+-1473 -7518+5875 5012+4147 -784+-9303 1901+-5125 -7863+1983 -411+851 -9659+-7821 -4699+2337 6547+1505 9408+3274 6751+42 -8112+5500 3026+2395 -8200+989 -9653+688 -1849+-4911 2461+-1824 -1762+-4938 4442+934 -7036+-1520 -430+8677 2852+-4263 6343+-1428 922+-4332 5787+4240 -3392+507 5957+-6683 2287+-3025 443+6645 -4590+-3071 2744+3814 -4661+7592 -587+-520 4889+-2730 7973+2263 1685+-3501 -6169+-4717 -8570+4194 -7112+2708 7009+7062 4305+-9641 2270+-1938 3292+3382 5006+6731 -2681+3579 -3634+-1002 6364+2146 4905+-3756 8739+-4951 1046+7415 -4892+2279 -3353+2175 -9343+1018 -2166+6004 -6838+-2380 6125+-6280 2726+2728 -1474+5862 6157+-4255 -7995+-190 -8778+9528 -1195+2714 8363+3089 5158+7685 -1280+3179 -6549+1391 -3094+-5970 -3155+4372 680+8439 -3537+-5240 2508+5167 -4306+7802 -1371+-3147 2170+-3211 5592+575 -6550+1919 2869+-3845 -3746+2138 5400+-4900 -8476+-2782 -7821+1220 -3288+1663 2650+5777 832+7884 4002+4351 1431+2055 -4267+367 -3154+-273 -7796+8828 2283+-6074 3751+-705 8734+-6713 -6508+-234 -2055+-1118 8462+6430 3726+-2818 3384+6101 -6918+-1038 5554+1455 6902+3705 256+-3463 5727+7252 1494+248 627+9621 2249+4984 -1325+5506 7436+-1725 -1367+-3039 -873+805 6555+-2773 4987+-3066 -1919+-139 -3423+-5656 2050+-8117 -3169+-5315 2339+-1468 -755+-2189 4025+-9720 -2197+-3726 -309+1644 -6804+-538 -9714+-2343 -8932+-7611 -297+5015 -6303+8481 2800+6898 -6844+987 4527+-5853 2154+-6744 699+-4192 -8512+-1917 -9611+-4351 -1115+3355 1078+-1659 -7110+-1592 -5909+-6020 3797+6317 -5045+-2778 1033+-4199 8188+3343 -5681+4326 3480+6289 -5022+-2168 9421+-6147 -3700+-8927 -3114+5874 6856+1669 -8627+2802 3648+3155 2485+-4351 4390+9319 -1213+-7199 -6324+8334 -4908+-6760 -3838+4891 -6857+1393 -2944+-7960 -5673+-1135 -9326+782 4510+-6485 675+3442 9165+62 57+9421 2417+-1173 6177+-8256 -1094+-1309 333+-7712 1005+4070 -223+-9316 -874+-1377 -8325+-3225 -3700+-906 -283+4518 -7798+-4111 6263+-2328 2336+1559 -1929+2369 6342+-3131 1977+9363 1799+-1166 1011+-2695 -7598+6002 -4429+208 -558+2034 8859+-5167 -4139+-476 -3031+-815 -4275+1274 1997+5216 -605+5405 2850+5340 1232+-1953 -7819+-7509 -1512+4729 -5776+-2108 9439+-694 -4051+5730 -6534+-2864 -1700+-4463 -2757+967 301+-3655 -5625+9586 1521+9873 -1235+-2512 1234+3705 -3066+-2957 -4503+6927 3194+1604 4213+-7037 5961+3959 2463+6348 3522+-8887 -2173+-3447 -718+-2929 1413+9894 -1024+5638 5817+1758 -2319+-3333 6621+4356 -6081+7751 4003+323 -3492+4604 -5639+-4882 2355+3036 -6090+-2162 -9231+6383 1759+-9358 -1468+-1163 9393+2783 -1103+-6653 -4796+-1735 1436+-6184 -4288+-6620 -3687+297 -8713+4456 5047+-8022 -1875+-7213 4380+2340 -4064+8767 2886+-383 4992+641 -7872+494 -4578+4843 3248+-750 7665+-1644 5326+1846 708+4170 -6975+4942 -7475+-1054 -5357+4813 683+-5149 -2591+-942 -8504+7139 6903+-6786 -30+-8320 -2579+-9233 475+2835 1149+-6199 4398+-9648 956+-4810 7220+629 494+5554 -4784+-2896 6551+48 8454+-4592 1072+-9193 3907+-9413 -3375+-1966 8383+7739 5966+4491 8397+5819 -2769+-7322 -6683+-1204 5083+-8496 -4435+-4940 -5131+-8722 -2972+1608 -7148+3028 8321+-7810 -839+-3607 -2132+1417 -1674+7173 1425+-1741 -282+607 -9253+7047 2491+2676 3317+7548 -346+-7813 763+2760 -9410+-3951 744+1320 1114+2090 -442+-1538 6261+1203 1122+3932 -4996+9428 -725+-2485 -4570+7899 530+-4701 2662+3880 4581+-5638 5357+-2430 3090+-621 2172+2789 1315+9524 -2516+-4684 5629+3721 4573+9576 -1386+-3703 251+8006 4438+2653 -4949+5244 4884+4463 5021+376 7181+-2030 6423+6797 -5896+79 -5278+1495 -6352+-4431 -3021+5109 4603+6437 -4343+-2952 -3980+8579 -4556+2156 3136+-1334 -4276+7544 -5555+-2471 6848+-682 4058+4655 4058+-9033 2891+-1266 8821+-5997 -6767+-5442 -3612+3085 4172+-5839 -5516+-7611 1202+1611 1010+-3313 -6772+8576 -4523+-7437 -547+-2063 5360+3514 -7460+8235 4151+-5569 7495+-4287 -6505+-4976 5993+5959 -430+-4554 5387+9096 3019+6938 2582+-5079 2398+1385 -994+-1063 -5507+2572 -7937+-9322 2518+7294 -976+-3480 1743+3448 -8943+-7217 -4175+2498 9143+2434 -476+-2169 9203+-1271 6047+-2671 -3864+5799 -7605+161 9691+1315 543+3435 3679+5752 3394+-6728 6607+5855 -3209+-6288 1835+1787 4618+-2627 -9327+1869 6000+6188 -217+-8574 -1523+5262 -1317+1912 -4913+166 4222+-5770 1268+6433 -5734+4496 8363+1222 -9231+-5489 7299+-7798 -2385+2012 -1779+-1971 2352+1438 -9666+-7550 4073+3269 -3965+-6771 -4538+7160 -5285+240 1591+-5060 4362+9947 -666+-3072 -1037+-254 -5681+1453 -4234+-6738 -879+8505 -1593+-1688 6494+-50 -4464+-3128 8409+-6146 -547+-4974 -8128+8028 -5904+3111 6277+-5495 7855+780 7716+-621 3714+-6039 -3631+7449 5897+-6652 -3035+-3425 3622+1914 -7707+-3433 -2961+3692 -2073+4486 -1323+-4032 -3381+4823 7170+-5811 -4077+9532 -619+-3509 -7070+4820 -6775+2242 2952+-1215 8193+-2923 2913+4068 8895+-977 9853+58 5619+-2749 -661+7491 -6335+-9309 -3464+1000+3829 6620+576 -1182+3327 -5046+-5111 5868+-3913 6417+390 -2802+-3962 -3954+3201 -3330+1956 1406+3413 -4286+6697 -3040+-3172 8966+2076 -8173+-241 1911+5425 -7060+-738 992+-9253 -2885+-4830 3713+-3286 5529+-1574 -9396+864 -6696+-7953 -2696+3029 3944+-2193 -3611+3960 7351+1331 -910+-2426 7456+-3639 3526+2488 -5019+4571 7908+-8278 -2323+-4034 706+6180 4043+5404 -7897+4089 -2131+-5119 -6364+-836 4134+-795 3754+-7016 -5580+2663 -4871+2768 -3649+-1214 -8895+-8413 -875+4536 3106+-5774 7089+-369 7020+-8258 4428+8635 -1088+-9419 3307+-5116 -7449+-9136 -1923+4026 5990+-1702 5846+-9546 -2907+3447 -4092+-4270 7162+-4244 -3984+-3304 -4123+-1128 4430+-8465 -4301+6081 -3008+-2361 -6230+-1068 1332+-4006 6018+5469 448+-1207 6658+-2858 -1415+7174 -1544+5805 -7+-8128 5361+-1666 3598+-4416 -3713+808 8568+-1180 -8864+184 -7858+-3662 -7826+2136 -9354+-227 -6961+814 5994+3989 -8496+-3745 -69+3905 -3906+-4535 -6702+-2584 -3248+-8976 -1543+-3863 2810+-5984 1955+-4719 -342+7204 4119+4739 4162+82 -1654+5404 3524+5780 -7575+1378 -7171+-4562 -2110+-3441 -332+-5450 2107+1857 3027+-706 -73+-4535 2704+6430 -5841+3472 4484+6735 -7276+3068 -7953+-1563 9356+-858 -2746+-633 -5953+-3166 2923+-9232 -1616+6603 4593+3730 604+5752 7134+-982 948+1492 8313+-8934 -2342+7970 -3920+-1818 -8343+7119 6980+2141 -5444+-5124 -861+4328 -3025+8372 -2595+7581 6342+7413 2097+-9102 3252+165 6042+3143 -4801+4316 -8480+-5884 3174+-4215 -3147+-4609 -8769+-1513 -6114+9177 3347+-4109 4910+-836 2349+1104 3103+-8501 1770+698 -9477+-8244 4952+-1106 7179+3694 -745+-8092 -967+75 -8635+9063 116+2390 -8185+5720 4746+-2713 -720+-1815 -5191+5978 21+6933 -1607+1374 7473+-1327 5431+-9290 976+4445 -7525+131 -9375+-5423 -7198+-4235 -3707+-6236 2465+-2893 3426+3628 7062+5894 6448+4157 -667+-8255 -2430+1153 -7649+-4976 2216+-343 -2590+1166 -9302+-7850 -3744+-2820 -5248+2950 2347+-3986 -4880+-29 -1033+1771 2414+-6380 1409+6596 6604+655 -758+5354 -5225+-4407 -6414+1715 -8780+-558 3677+2969 -6558+-6031 -2874+-4662 4527+6588 -4571+-3402 356+3769 786+2530 -2364+1182 4072+-9221 3402+-2534 749+-4123 -6295+556 -9959+4136 -5347+-1248 -5552+8617 1405+-691 -2817+2794 -1281+-6765 3954+933 -7377+-6914 -1542+2098 4866+6113 -654+-2093 514+-6477 2521+7377 -4041+-7998 -2700+3031 -5969+-5889 5665+-3906 -7605+-2117 88+3615 8655+5021 8622+-6852 2053+7463 -5829+-704 -6615+2129 -1696+-7451 5514+4027 4385+4669 47+-510 2081+-7018 3317+-5760 6787+-7508 4709+4784 1255+4169 7574+9187 -326+-7115 -4138+-5641 -7496+3342 -3025+4485 -574+5172 4691+3573 -1166+-4693 -7388+-4042 -7415+4076 6240+-2409 4256+2810 -8330+2065 7958+5557 359+-1303 -2796+-7 -460+4690 -5283+5900 285+3981 7751+-622 1166+-3420 -2297+944 4526+-4301 -3465+6046 48+-5346 4548+-1760 1382+-5702 7149+7188 -1596+-7553 -1197+8984 1341+-664 8454+2946 3587+3535 5168+-5058 2233+5537 2083+269 -3053+-4000 -7703+1574 596+-1700 6539+3009 5303+43 -8050+-24 5633+-3954 8969+4065 -8790+-2282 -1774+-3404 -1827+-72 9239+-3776 5940+-6027 4158+4803 1775+-3517 1966+-3064 4702+-8027 158+-4662 -272+3058 -8352+-3227 -2995+-1662 1880+-7947 -435+-5238 -3738+-6753 5091+2222 7040+2490 -5823+-1683 -8943+7285 -1846+-6316 -3175+-5809 -2870+3160 -4811+-4150 -757+3166 3548+2038 9703+-2627 -3640+-3308 -3747+2831 -9134+2592 2747+-1766 5564+-1193 7189+5300 4997+-5849 -2671+-5510 4493+-7108 4573+-3151 -2107+-1092 -7529+-6149 -2042+1855 -8969+-8038 1686+3746 -3086+-6300 -2463+5022 -1690+-1807 -9596+3139 -5582+4365 -5537+8745 -1031+-5200 -5042+2433 -1049+-4033 8805+-120 -6873+-3880 -6117+-1094 -5524+-7316 -4628+5276 5731+-6456 90+5686 -6335+3035 9214+-2848 -476+6038 5347+6582 -3783+8719 -4357+-9097 -1475+881 3644+-5559 -1053+-2078 524+6885 -7102+1383 305+1979 4193+5109 3956+-5448 6311+8758 -2059+50 2816+7662 -4654+-2087 -9639+-1977 -8435+-9232 -736+-1510 -6592+1095 -9636+-5282 -2510+3803 -1273+1489 -9513+3767 -3192+-486 -5906+460 8210+3627 -4583+4025 1623+-804 -7273+1012 -3447+-4964 -2841+-4230 3945+-3825 5769+-3706 -478+-3065 -681+4368 -4266+1907 4253+-4624 4384+3116 2774+5292 308+8651 498+-2419 2207+646 1342+8478 -3001+6031 875+8417 -921+-7624 5650+-8895 -793+-5810 -555+-154 2497+3595 8513+-6008 -3644+-3166 5751+4855 3700+7686 -6070+5021 7949+100 3598+7805 5580+-8260 3753+-3481 2389+-3671 -5521+-7037 -4406+-765 6633+5530 -5849+-56 1965+-2957 -773+798 7884+8719 -3802+-841 -7444+-1628 7295+3286 6125+-7169 -2968+-2347 -6373+4260 -1044+645 5301+-3522 8435+-5323 -7146+1626 -1580+4876 -1134+1446 5271+-3097 249+-3790 -6464+7121 3185+1085 4867+3095 3534+4034 3315+1315 -4114+1342 -2942+9164 -3580+4511 -18+-3256 3214+5569 -1466+8943 -1029+2118 -4285+1438 7462+5982 292+1849 -4162+-8179 -3515+8753 2791+-2698 -6265+2000 -9537+1650 -1395+8500 2384+7257 518+148 3284+-4645 -2569+-3018 2813+7467 -3622+5577 2919+116 2600+348 -4542+-1077 4348+-1512 101+5345 6138+750 -4155+-5726 6318+-3638 6948+5728 -7017+6788 226+6012 -880+-5214 7883+3061 6647+-333 1435+7517 -2226+7187 90+-4496 7041+-4527 7410+-2625 -5836+-3361 -3778+-6829 -2776+-4281 -6544+-8090 4667+-3107 -5061+-6880 4496+5703 -1938+6407 -4661+6256 -7337+-1202 -7814+1011 -494+-3690 -7384+215 7737+-8742 936+-4515 -4824+9362 532+7948 -3934+5261 6625+7109 110+-2137 -3823+-7408 6258+-2797 1129+8890 3073+6734 -4364+891 -7570+-8840 1500+-2503 9453+6841 3143+6241 -142+-5935 -3860+9075 -3197+-5190 -195+6993 3436+5366 2392+9490 1264+-6035 -5125+9065 -698+-4573 4961+469 2687+-5001 -5485+1059 -3416+235 5677+841 9424+-3302 -4541+654 -1558+-6104 1385+1520 -3225+-1328 -575+-6954 7028+-4186 3586+1402 -4328+5083 -7859+-1593 5851+-2983 -6805+3337 -87+5111 5725+-8198 1374+9004 571+-6116 6661+8680 -4529+1522 9224+6538 -6582+-298 7712+-7686 4961+19 4250+-9408 1128+-9120 -2557+-7939 3610+-842 3304+-2027 3554+-3664 4825+-310 -3267+1366 -8924+-6358 3686+6446 -3379+-7712 -1473+4408 -2134+-9457 2233+-3900 -6519+9230 -3011+-6586 -4962+-5640 559+9449 -3162+3434 3848+-7140 -5112+-1868 6840+-2511 -8670+6799 5040+-809 467+470 -2150+6857 5093+2303 -6130+-1028 8918+-5317 -1251+5932 -3914+-5686 -7900+-8327 4801+-6248 -7566+-7917 460+6133 -6405+-7762 1767+2014 3187+-7627 -4241+4041 7506+-1019 4856+6682 412+2643 2095+-901 3384+8409 994+-1800 4333+-798 4868+1029 1046+-2445 -1181+6260 126+-7676 -1436+-1 -2444+-742 -5562+-95 648+-1947 -572+4647 -3773+-8555 -1857+1733 9136+1692 -8770+-2854 -6170+5145 -6339+-854 -5659+2233 -4577+-635 1080+-2866 -6541+765 6159+-5328 6256+634 -6358+6764 5058+2687 -4463+2100 478+4709 -8091+7408 -1062+5829 -7671+3517 3028+4131 1603+7047 -2686+-2658 -8186+1298 6090+-8914 909+6064 3050+1377 -4678+-1112 -1895+8757 -1240+8893 1771+3284 5435+-5433 1436+-3183 -5553+-2859 -746+-2631 2987+7242 4625+5299 2073+5502 -4094+4376 -7489+-7219 3061+-5153 -1221+133 -4379+-1258 6734+-6310 -3039+-4625 -4238+-5349 -2150+4168 -4666+-3384 -2063+-2145 6200+9174 152+745 5781+-5221 -7336+198 -2719+4168 5467+5019 -4622+-6591 -1950+-6604 -3816+593 -4527+-2540 -2152+8621 588+-7569 -3798+1038 -6881+-3117 -1588+-1916 2687+472 7362+5061 6432+4088 4775+5164 -4949+-5062 -3323+-2476 980+6734 1490+-6062 -5989+3750 -7881+4731 -8025+-2835 8652+4397 8261+-2265 -4853+-3825 -3329+7576 2228+-6798 -5799+-8803 -1366+-6986 7065+-129 3724+-3173 3462+-5936 3264+-3724 -6360+3424 -5733+2192 -8766+-8697 -4110+-9637 -2648+-3996 6261+997 -7929+8288 4546+-2096 -2422+-2081 -9040+6561 -6989+-585 -349+-2171 6055+1746 3568+3311 -1752+-5384 352+4057 -7925+-7970 2936+2971 191+4708 6937+-6802 147+4588 -1821+-1734 3911+3630 -2181+369 -2337+-4955 -4288+564 111+-2228 -9231+-3210 -4992+930 5642+-2544 -4009+-5307 -5929+-2951 3949+9191 -3491+-483 5043+7169 -4288+-5392 1258+-1349 894+-101 -5542+3849 8085+1351 -9135+-2024 9008+5291 6900+-8340 3325+3116 -5824+5439 2793+-4447 5798+153 117+5169 -946+-3207 -5283+-3728 -9084+270 -8822+-8556 1515+-8224 3730+-2526 -4256+1510 6842+430 789+7790 -1748+-6253 6363+4656 -1679+-2515 9380+5597 -3994+1565 -8876+5960 -7777+2101 2779+-2004 -3529+2872 6522+-5290 -4612+8168 -3891+309 9896+-5830 6046+5513 -101+-1186 64+-1684 -2533+-9608 -2206+-4583 3787+-2214 -938+3701 1051+841 -8115+-5421 4021+2063 -5609+-5433 -5572+-2110 9517+-4673 -6555+-5677 -5631+842 -8533+7086 -507+6699 -2707+-629 -5985+-4131 -7467+6793 1115+-8669 -3861+-9482 -2731+-3466 2352+1555 3813+6823 -2640+2038 -4697+9654 -2027+1648 -7815+-9230 2014+6717 -2807+720 1482+-4964 -6508+-141 9936+8101 -5564+3060 8366+5542 7907+4903 1616+-3652 7219+1470 -9852+2239 235+6831 4096+1260 -9576+1620 2894+6338 5485+4639 4596+-4713 -442+-5858 -1064+-3749 -3330+3531 8117+-8261 -4+-5630 345+-303 -3853+-8199 -4199+-7975 -5025+-1547 -7545+-4305 -7317+-2831 2650+-90 -8106+6270 3914+-5875 -7115+-7598 -1494+5142 -943+-6787 2144+-3865 -7107+-8118 -5430+2091 6998+8538 -836+-5324 -2953+-6302 -2496+-3386 -6916+1767 -2197+-370 -7005+-3000 7456+-8707 -114+-713 693+-4049 5785+8320 -1749+7575 -870+-8265 -3747+-7868 -4366+7448 4301+-1484 -2754+-3515 3102+5807 -3387+2335 -8937+237 -2210+-5501 7954+5010 4394+3642 -2689+9239 -2561+4751 2525+-9069 -1154+-1111 -9484+8324 -1304+188 8312+-9347 -1993+-4113 -6931+8548 -4283+-15 5222+147 2067+1364 -2737+7781 3476+-6685 -2880+-8064 -840+7630 -364+-6456 5600+-921 -1321+1307 -7291+-7769 3614+2860 -8135+-4901 5436+-1794 1530+-1995 -6170+4830 -5519+-44 -7323+-4487 8531+-6365 -2709+-217 4996+-2707 -854+-4946 2935+-3244 -8377+-9171 -3179+4564 2682+3196 5313+-3279 -2266+4881 2383+5566 -6433+-2149 -2076+-306 -4609+2139 -6530+8686 4671+6007 2089+5704 5844+-3420 -2303+-9553 -120+-1058 -8197+-3635 -7117+8926 2193+870 -9197+6499 -5174+-4293 108+-2713 -558+6808 1445+-3062 6025+3078 4539+5485 -1435+-359 -4723+-2438 3817+8732 -2706+794 -1094+-1736 -1233+-1349 -9566+-3280 1414+-2338 8265+4920 4851+6592 -959+6196 -3858+-9142 112+-3906 -3761+114 -467+-1677 9845+-6782 2631+5700 1503+4225 8433+-2604 4753+4232 1482+-1165 6353+-4301 -7585+-1912 576+4816 692+2028 -57+8541 -1206+-9036 4249+324 -7213+7358 5863+2335 5084+3113 -2426+5458 -4743+-6507 1856+4760 946+235 8268+2288 8233+-4355 6912+457 9971+-4849 156+1527 -2588+-3223 5298+3636 -3769+-605 -9546+-5748 -5503+3120 -8558+-2322 -832+5900 3245+-7325 -4314+6515 -3537+4874 -8593+-4275 -4663+-5768 -466+-1248 8163+2912 8946+-7275 -1875+-5544 -1365+-2650 5754+-4588 -8777+54 6529+-1414 -3324+3432 2806+-3028 3889+1151 -6648+723 490+1038 -2836+5547 5744+-4193 6002+-3154 1408+-4702 2060+9343 -2732+4389 -7348+4660 6358+-6899 6056+-1691 -7302+-786 6910+-4204 1385+-8967 -4099+3904 -9199+4214 -8024+-2873 -7020+-1913 4458+2031 4623+-1037 -1301+-1474 4226+5700 -7086+5054 -3037+-5667 2139+2601 -2531+1150 3939+-2565 -7501+1400 7852+-8122 2203+-8250 -832+3411 8491+-6402 7593+-9304 -1034+-1409 4198+1543 6071+-926 -8022+-6207 5579+-9069 -4025+6079 -831+9204 -85+-2187 9205+3556 -7827+2723 7556+3154 -3758+-2137 5142+-7915 -3894+5789 -3921+-1403 -805+3216 1679+9441 -2568+2823 -5196+822 7686+6724 -1191+-7291 2428+-8637 4235+1200 -9445+3457 -7691+8969 -1621+2801 -4194+5527 8193+8117 -5672+1000+9512 -1044+1197 -76+2563 -3521+-5067 -5056+1259 -1502+7647 3499+2701 -3979+-3840 7842+-3696 -4709+2396 -923+-715 681+-937 -8541+6476 4585+-6980 6708+3200 -5967+-6969 687+1416 -4322+-4982 3842+2813 -1386+2543 567+-6357 -1016+2267 2743+-9244 -3056+-9106 -3838+4011 -4662+2116 -1429+6219 -5021+-1973 8858+2233 8181+-5370 2992+-7380 -6347+4290 -2785+8589 1505+1156 -383+2892 1543+-5600 74+95 -9036+-7651 -6377+6567 -5103+-873 565+1103 1943+8937 550+-7222 2648+7925 266+-6163 2055+-6881 6604+-3572 1821+1938 1617+-1382 4884+1176 6371+7695 2377+6250 -6275+9099 -1456+-1763 -7882+1984 1805+-6206 -5695+-2947 3928+2740 -8149+-5006 917+2031 -9139+-5113 4845+-6691 -902+2367 -3822+4037 -180+-8608 -3050+-3342 -5073+7669 6008+-1622 8952+-3471 -7081+7263 6+3000 -1220+-1581 164+6024 4928+4992 -2626+3918 -3333+2539 -4720+-6091 -3390+-9298 -1447+3704 -7933+-2773 7082+-7154 501+810 5668+2958 7799+7786 -4311+-5585 8061+4764 -4914+-423 -1713+-3497 8442+-1483 4561+-1678 3866+3350 -3930+-4516 -7192+2224 9248+-3419 -1593+-2252 7950+1507 -7157+751 -4646+369 3293+8586 -4916+-5651 4793+2623 2434+-2664 6116+-2704 -2165+6200 -3334+765 -7791+3148 -4193+-859 -3299+8596 2159+11 -2657+7649 -1639+-1957 9089+-5619 2339+7864 1259+6796 6855+3229 -3071+-1486 -4230+3165 2125+-3482 8325+-1642 6886+-894 7393+8718 3621+-3254 3180+-5440 -1224+5814 6030+-5974 -3903+-4964 -5951+-4250 524+4895 -4953+-1866 -3480+-2131 -7771+7840 2888+-2114 7886+-1260 3794+-3258 -2166+4532 2107+6543 -3074+3442 483+-3255 2223+-1550 -7614+213 -3406+-4695 -737+-1276 7575+8639 -3229+6622 6857+-5124 8509+-6392 5648+-2790 -1518+2041 5905+-7704 2516+1487 8032+4105 5787+3027 3545+-6248 2895+-871 6625+-221 -125+-5936 -835+-3948 4168+-6652 4097+5606 4761+-1417 1191+-621 3971+-3425 -2270+-28 5720+-2447 -8383+-4450 8440+-5182 -3052+1622 -7677+-5216 -5253+-1855 6889+-855 -297+-3150 7123+-6913 -6251+3504 -2958+-4221 -1769+-7946 -2539+-3825 -1090+5351 8161+-1780 -2849+4080 6224+-3923 -6488+876 6647+6622 -6725+-346 -5396+4883 7646+5573 8002+492 8398+-2131 -4492+4369 -2401+1751 4248+2153 -6116+667 -996+5695 -5215+5989 1347+7782 -6138+-4464 5762+-8767 2262+-9021 -1580+6399 2724+-755 3157+-1005 3607+-2168 8081+6687 944+-2595 7961+130 6018+-1126 -3156+-5329 6061+3180 332+-3974 -3400+-8448 396+3765 -137+7183 -774+8621 1147+-6250 631+5653 -4975+-6200 -1993+-6701 4167+6919 -4491+-2187 7321+7438 1764+4924 3676+-1235 4790+6121 2938+1981 -9730+-6190 460+-5152 5363+1969 1712+-8636 3652+2660 -9229+7857 -4986+-950 1362+-969 -6040+2705 -3021+-8108 1202+7966 -2848+-4903 -4147+-8830 2978+-6818 4929+-8345 5456+-5142 273+-7084 -5762+2265 -3212+-588 -4087+-1402 -5013+-6726 3374+-4005 2068+2846 -7111+-8574 3345+5539 -6421+2147 4478+-2835 -1481+7813 6236+-4947 -7859+-4086 157+1255 2017+5479 -4037+-3109 -1541+-3629 -6293+8833 -2552+6176 3499+6297 -4472+3739 -8553+1001 -7509+5761 -1753+-5350 -3324+-1843 6110+1650 5853+-5408 -4204+-3232 -4106+6174 500+-2791 3680+2363 420+2077 -6657+8561 -4335+-8236 -3842+9062 -744+329 5339+-666 -7792+1452 -1044+-8134 -5254+7049 -4483+5352 -5834+-7583 2119+-1005 8181+-5610 -5635+-8080 -2391+2837 8392+-9289 1834+-5443 8066+3661 183+5974 -5513+3482 -1340+-2164 2581+6805 675+-5634 -3423+-4803 2734+-8191 -5316+-7389 4301+3932 -6694+-1714 4136+-1827 -1623+-8234 -3424+-6717 5582+-3194 -4965+-5818 -1305+2211 -9426+7074 -6604+410 564+2483 5381+778 6474+-2885 -3091+-2068 1422+4339 2104+2226 -537+-1818 -2419+7753 1056+3669 -8667+5167 6711+3623 -6511+-1774 2492+1257 8917+-2638 -1490+3318 2422+756 7722+-1457 859+-1856 1695+-5123 359+8594 -2137+2691 -997+-4423 -4016+2326 31+27 -4187+626 7076+8215 3699+676 361+-3120 1005+4545 3134+-6953 -4667+-3970 763+532 -270+-7969 -1295+-7125 -4534+3013 -8575+-8341 4270+-1719 2213+-4095 -3209+7826 -4873+-5098 8105+-134 -3159+1419 5698+-3777 -4999+3600 5029+6327 -692+759 3088+-7745 5464+1860 -9210+2694 1314+1749 2456+5755 -3717+2175 -2906+4366 -5455+5742 6387+2225 -2890+6105 3064+-1819 1771+-5871 -4368+-3037 7434+4605 -3677+91 -8274+7662 942+-1448 8515+-2673 -4948+-1150 -7512+-8250 -4705+-5598 -41+-5519 7093+285 -4369+-3643 -8599+-472 -8008+3266 -2422+-366 -9590+884 -9936+-6708 -4513+-396 5012+2061 9269+3442 -5067+-5104 7908+6476 -5512+-7545 3737+7154 -2524+451 1187+-349 -2013+-789 -5542+5567 -6030+-6413 -4479+4732 7512+-3128 -9225+-5994 6844+-2184 3282+-2435 1126+747 5649+4592 5810+8033 3624+-8042 -2774+6477 -7505+-7456 730+7044 3243+5391 7562+4953 -1485+-281 -2687+5215 4263+4079 -6544+2217 -8943+2636 -3866+-2491 -6712+-818 4823+5799 -7944+8779 -4443+7541 -6025+34 -8790+7590 3722+3691 2389+4389 -4171+-226 4760+-3313 6448+2268 9371+-3960 7559+6049 -4956+2570 -3548+5298 -2522+5215 1972+1804 5919+-2356 8867+9493 2018+8609 -2027+814 -259+4364 -2373+69 -8526+4037 -2811+5722 6555+-3691 -5728+5599 -767+-4099 -7156+3193 8023+-6307 4848+-2588 -4299+274 -7840+-2358 9403+-2522 641+1873 -3435+6815 4788+8077 1887+-7735 677+3317 6400+2534 -4325+1640 9518+-4682 -964+-8139 2109+6366 2928+2936 -4577+-4469 8702+-982 1843+-5365 8032+4298 7700+-2525 -4094+5611 -6886+5034 5136+9424 1362+1508 3414+-1359 -210+224 -5026+-8197 3799+-197 4715+4127 8+-4473 -6839+742 -1466+1437 -6806+-3988 6993+-2892 55+-8943 285+-927 1029+4755 7850+-3043 -6301+-2422 -5323+5748 -738+-72 2191+-8903 2891+4649 -3165+6264 7614+-359 1540+-2209 -9652+-1533 6461+7082 1723+-723 9243+-5680 -5226+-2315 -4652+-2479 -582+-5444 -5683+-7217 -1653+4743 -5303+-494 -3012+2536 -525+6912 -5365+3734 -3551+-8755 2327+2337 -266+7774 3661+3624 -3223+4786 8776+-1375 -3116+8769 -207+-4024 3104+-7014 251+-6230 3096+6776 33+5489 7480+2775 737+-6113 -7437+-5368 -6474+-728 7864+-8666 -3115+3684 460+-3293 -4062+7087 237+-8028 3392+-4879 -1767+-158 490+-5321 -838+5147 -8336+7348 139+4265 -4656+-5710 -2482+9226 483+4004 7516+-1486 -1329+7483 3388+4202 2125+7465 5222+1642 2307+4167 -4518+-5092 -2894+-6113 -7212+-3923 1881+8184 -2740+-3458 2733+-5201 -7324+-2075 -6866+4063 -5270+-4285 -6164+-5020 7576+4153 1448+3787 -8752+5237 4149+461 -825+-4069 6238+-5333 -3099+4557 -7082+3431 -4391+-6172 1349+2967 6766+-337 3803+364 -3909+-2427 5292+-7176 -3661+3132 -8319+-2552 -5069+783 -4597+-7604 4222+7981 5702+-820 3315+3358 2957+6276 -5201+1827 -1190+6507 -2384+2060 7439+6073 6115+-2782 6199+5818 -864+-7392 -3849+8868 3738+5576 1017+795 9720+7229 3704+-7970 -2587+-5747 -4551+2144 -7697+3598 2871+972 4040+2225 6435+-8281 2568+-9146 4001+2997 -8181+-3632 2556+-8075 2745+-2271 2514+-2518 -3856+-3118 5886+-5054 4699+-7019 -928+5204 -3935+-2515 -8078+-7732 2295+-8604 -1915+735 -8261+-501 6296+4344 522+-3233 2220+694 8689+-3047 -5246+-4101 6600+2978 -8409+-6894 2487+1340 6361+-1970 3774+-930 3406+-7006 3758+1962 8336+4613 -3235+-227 8366+-1918 9615+-4577 -3818+1790 -2643+-3332 3988+1345 -8681+-1788 -7001+506 6745+-6473 -530+-8271 4096+9198 -2373+4169 8936+-6678 6561+7938 6057+6291 7208+-3274 -5465+967 3319+6344 -3577+-4825 -2635+6333 5251+-9573 -1447+-7045 -1294+-6954 5589+-4760 -7492+1278 6625+-2169 -5479+-479 4322+-5547 -1005+-6628 3639+-4452 -1189+-824 -1330+1809 5610+1915 -7424+-5744 5821+-4309 -6843+3650 2975+-4439 -8549+2666 1794+-2409 3329+-562 1245+3948 2723+3548 299+-9360 2952+-577 -954+-6447 4935+-196 6144+1211 -788+7879 -3777+3684 -1732+1884 -6484+-3407 -6866+-119 7689+-5605 4327+6344 6303+544 -3543+3919 -3036+821 -1134+6063 -1990+-8094 -5765+-5307 6434+344 -3756+448 5274+2922 -7572+-3999 -8606+3496 7730+-8798 2108+5099 -7007+-6034 -3963+-6372 6717+2948 1404+8380 -3917+-8549 3497+5465 3407+-577 1502+8489 3247+2862 -656+2751 -4072+219 -5356+1019 -7371+3712 5869+5444 2424+7956 826+6873 6451+716 -9906+870 -6142+473 4276+9439 2736+-4747 6855+5737 3501+-7824 -5660+5291 -2282+2739 5828+5999 -6937+898 -118+7252 -6825+-1803 -8176+-181 -2604+1376 8944+-1074 9356+3616 8980+7206 200+9843 473+4866 5630+147 -5766+-1778 -643+6690 1568+2370 7441+-2819 5995+2326 -5553+7824 -425+4588 -2557+5808 2964+-4066 -3394+-502 -9249+-1807 4731+-3279 6935+-9235 3334+3624 4382+651 -2360+2445 -9039+1134 581+2460 422+-6923 1931+-3935 -5655+-379 3159+-4846 -6036+333 8635+-1311 3368+-8818 4137+-391 2876+-6242 -3536+-6492 578+-7354 4344+-6604 1687+-1618 5392+-7284 3554+3177 4071+-1453 1481+-3388 -4780+-2351 203+-6697 -2088+2415 -6908+44 -8076+-38 -8391+8527 3064+6186 -969+7571 -4469+-7859 609+-654 -8848+-1982 6733+-6586 6407+-7779 5459+4436 -731+-6265 1276+-7119 741+67 4017+1019 191+8603 -3006+-7146 4968+-4831 3426+1754 -5073+668 -4116+2473 -9407+7643 -6424+-2946 6835+-3272 -2560+-8696 3936+-3515 1478+-5491 5972+889 5624+7342 2270+-4492 -886+-4238 -759+319 1278+-4071 -6085+-5524 -7802+5414 1154+-537 863+-1280 5085+-4817 6340+3464 -2956+9558 2136+-5470 -6504+-7946 -6051+1431 4778+4372 -164+8042 -860+-3528 3632+-6099 5122+-6539 7432+-457 -24+-709 -3653+6805 -3092+9512 221+4022 -8910+2955 5645+-1128 -4079+2638 -8663+-9444 -3224+3467 8480+-4609 -512+2707 1925+-7251 3941+-2645 -2097+-6004 -6065+3965 8539+6777 -3958+-5387 -7720+558 6015+1768 -5735+1248 -8621+-8194 5582+-167 -5471+-4281 -823+2852 -2292+7095 5066+-1520 4201+8387 -4547+7424 3686+3713 -353+1644 -2235+-1596 579+-7779 1512+9305 961+-6467 -6433+-6469 -4371+8122 -2133+-2155 9256+2459 -4215+-4983 -8382+-1974 -2004+-4639 -2778+4753 -8253+-2430 -5258+-1583 -2607+2208 -3764+-7099 -4064+1286 -5531+-2225 9220+-4966 4047+-2460 -8153+-5761 -4374+-6875 -4941+-2862 5669+8278 3546+-740 -6070+-4853 2964+-8259 -613+1227 -1378+-147 -816+-5708 2134+-3961 8398+-6444 6801+2242 2885+-6394 -2290+6655 1206+7221 -1094+5990 -4998+3563 2797+5431 2978+2351 -762+-3070 1162+5354 -1172+-4054 1183+-6286 7213+5038 -2661+-7579 -2992+4170 -6568+-903 -7157+751 -548+-2464 -627+-4840 -5342+7433 -6635+1596 3170+6379 6803+688 -706+2749 5024+-3053 3201+-8508 -4948+6230 2929+7682 5740+6705 2235+5792 5798+-567 9436+-60 5714+-6110 4178+-3856 -3252+1470 9503+-6890 -2484+3848 -5531+-1983 -2940+-6715 6407+2563 89+4815 -6409+-6729 5008+4898 -3838+9032 -398+-2532 8224+5906 6739+-2983 7638+-5644 2861+-3093 767+-9108 885+8511 4612+6948 2173+-5904 -6712+554 1894+2027 -9704+6065 -2005+5162 1010+2962 -5722+-2265 -8640+8405 -917+2990 -2482+-3452 -8072+-2030 2805+-5712 -639+7400 -3700+-3942 -8088+8878 -3199+-764 6448+6891 2206+-8075 359+-8271 3911+108 -6980+-7471 5260+-3112 3589+-737 4211+-3212 1670+457 -4091+5617 4433+-1601 361+-243 9673+-8432 -1027+5207 6506+-9131 -2896+2795 -1024+7935 2507+-3942 -7322+-5853 -7216+-7760 702+3906 -7806+2740 8233+91 9303+-7134 3596+3012 8612+-1253 5486+2660 -1010+3777 -8000+-2921 -9524+-8659 2404+-9823 -95+2350 8725+1172 -3741+-6251 526+-7086 -3643+2672 3594+-9167 -3619+-8146 -175+93 -5729+0 855+3870 3929+3816 -642+-1615 -962+-4051 3825+-330 -6326+190 9421+8181 3914+1595 -234+1532 -6513+830 6553+4869 -7835+-6448 6532+-9216 -3337+-3651 1976+-2585 9031+8124 5019+-4477 -6376+-9808 -1022+-8550 -3359+-5633 -3460+2203 5341+5202 3078+-4196 -8963+-9592 -2094+1000+-2695 5316+7565 866+2225 -1379+5073 -813+8416 -1353+3654 -1294+3389 1419+6387 1365+8166 2530+-4909 3954+-4548 2875+-6747 5290+4636 5116+-2777 -8847+6402 -7196+-6425 6059+629 4596+-869 -7819+6157 -4745+-6851 4339+6309 3564+-8830 1941+4861 -6330+-4914 984+-202 8456+970 9124+-2996 -2814+-8430 -5234+5666 9+-7887 -2522+6512 6900+-437 8395+-1380 -3793+1530 -7183+3133 925+-3490 4578+2506 1435+2941 -5228+-1643 -9735+5395 -1797+740 -8535+4715 3169+3738 -4869+592 6675+2712 -9596+-6991 1821+-5458 3636+923 4204+-5010 4463+8690 418+3834 -4254+-5508 6780+1556 -5215+8022 -695+-5117 1216+5355 -5224+8503 3507+996 7244+2202 7251+5608 2474+-2190 -1085+5433 -56+2072 5570+-3751 5697+-3553 2690+-6915 3466+-2494 7776+9245 -2203+2091 -1328+313 -8534+6151 -6931+1950 759+1505 5907+7391 3295+-3680 -9094+6389 1349+4209 -1876+5620 3131+-7043 1201+-1296 -6037+3092 1854+6814 4157+5332 -1322+-2310 -4244+-61 -7673+3205 -1399+-8239 4949+-8559 -827+8837 4539+-4600 -3010+9058 2122+2405 -2115+3028 -6289+-5630 5970+7534 3343+-1756 -9564+-4753 -4145+-3721 1618+-2012 1567+-6404 2681+-5565 -2682+-8778 2797+621 1614+8760 1259+-9662 2417+-5185 -2529+-846 -4251+6834 662+8890 -2486+4796 8491+-7989 -434+-6378 2361+-4461 -1297+-2629 5524+5186 -6555+3968 -6759+-4261 4755+-1749 1361+-304 1127+-4382 -1398+5058 7791+1662 1997+337 -6890+-1366 -6130+1535 -4582+999 -6610+-5314 3507+-3011 3966+-984 -4286+-2807 5088+-8389 -2899+4424 -2487+-9167 3849+-6845 6867+3239 -8720+3696 4365+3177 3857+838 890+-5458 -456+3092 -6487+1873 988+7053 7077+2084 9155+5223 -2187+1998 -4517+2002 3857+6948 6077+5497 -979+-9006 2413+5097 -7964+-2088 9366+471 -7562+7966 -2417+165 9651+247 392+6196 -1305+5940 1825+-1576 6487+-688 -5677+-67 517+-4680 6021+-7129 490+9112 -2583+3473 1428+3336 4641+7424 2667+-7908 2810+-8240 -2763+1653 -773+4669 -6791+2728 -6273+5229 -4722+522 -9540+3590 360+1816 4242+-4783 -7494+5992 3054+6964 -7165+6500 5047+-7853 2268+4913 -4463+-5853 1032+5577 5891+3026 6670+-1909 103+-691 4547+-8675 2184+-8593 3476+-128 6517+847 -4079+1934 -5911+6134 -6223+4186 7557+3373 -1621+-3758 7558+-4101 -4300+-8559 -687+41 7015+-1187 9421+9317 -2543+-4219 -7070+4179 -7989+-2425 4588+5646 -2724+1124 -4268+-3259 -387+8604 -3132+-584 6112+-633 -204+-5090 -8497+-1305 -4579+3811 -8490+2272 -3001+3555 8181+-9357 -2859+3442 3388+4495 4084+-7762 55+-6098 -5303+-2915 6162+-3604 -1857+-2136 1388+2145 5914+7562 -3118+4606 2644+2257 6687+-1503 -2630+7097 -3611+-7150 -1648+8784 2585+5294 -6432+4135 -9074+-3755 2879+-896 -7072+1310 -8427+9983 -510+4667 1044+-6164 1876+2202 5457+-411 -2816+-1265 -819+-1024 9648+2180 8478+5173 4619+8676 -3190+-6284 5390+-1746 -5212+-4900 5801+885 -975+-6999 -3641+7707 2719+1519 1125+-2124 -5399+-8881 2377+-878 4812+-1689 -6206+2188 5423+-6701 1904+959 -6210+-1573 -1710+-8188 -3585+-6329 -2910+-54 617+3071 9437+-8608 -1694+3951 -4119+-5116 5102+-2811 -5835+-1375 5346+-7661 -6106+-5616 4613+924 -1539+-6245 3569+4624 -2228+-1451 -4402+4168 2620+-1518 8496+6086 2432+-6665 766+-1731 -8460+2733 -8469+-1721 -54+-9407 228+8916 -808+1274 3705+-165 2197+6862 917+-5852 -7773+-9070 -1800+-7201 -4893+-8321 -1833+2681 8495+-6261 -2539+3369 -6247+1686 -2108+2404 -5260+-5722 2762+5915 1067+-2352 833+-4202 -2870+3906 737+1095 7603+-3206 -8232+7030 7093+-2956 5051+-3298 3976+-4958 474+-6878 -4187+1966 7692+-2390 4755+-2407 -8760+910 8735+-547 -7727+-7785 -5873+-7496 6534+5389 7094+7099 5803+-581 -8337+2518 -9656+5535 6971+-5285 5433+2990 -6196+-1452 -5502+-6993 6095+8148 -2776+5359 7449+-5906 -7703+2185 3828+6719 6172+2682 -7916+7306 -4101+1250 -6749+5872 -1886+2905 -4716+5533 1617+813 -9662+-6487 7307+8244 -5227+1790 -2584+-2255 8207+-3272 -719+-3338 -3167+-1264 7081+-2143 -6959+6746 -942+694 -8937+-3659 5177+-946 6416+2614 7865+1392 -3346+-617 -2645+-1825 -8512+4686 -4142+-4534 7269+3282 -2620+-2049 -3547+-7079 1115+3620 5676+6182 7056+1240 -3363+6509 -5007+-2686 7239+2347 -5988+-4663 3400+-7495 5463+-1128 8112+3468 -1486+-4884 4260+374 7056+-7866 1354+2831 -1232+386 131+973 -8673+-2948 -3897+5732 1003+856 4693+7415 -4080+3098 5699+-700 -1026+-987 7456+806 9235+-4368 8336+-4750 -7929+-290 2398+3451 -5337+-4684 693+1127 145+3353 -5328+-3074 9012+-8900 -635+1811 -9406+-8419 -5348+-8541 -2344+9854 509+-8353 -992+633 -4533+2542 -6144+84 9985+-5299 890+4762 3426+-480 5731+9031 -3186+-7644 3007+-3556 -159+4908 6456+9406 111+6162 -6200+109 8238+-3174 -2135+-2826 5743+2416 2831+7214 -4506+-6192 -5696+4207 -8022+2503 -3034+-7061 -5654+-6165 -3554+-6137 7260+1295 -2188+1696 8609+-4372 -7812+6765 3810+5401 522+6652 2543+-8251 -2591+-3049 -8271+-8013 1606+-5336 -4596+-7182 -2572+-4187 7600+5935 3319+5997 -1644+-2890 5878+-4444 -7519+4596 8160+-6440 7020+315 6762+124 2927+5816 -6677+-139 1962+6009 -7269+5346 5139+2114 -447+3429 3706+-4901 -7229+6823 -1046+7041 6942+-743 -4055+3241 971+824 1567+-8499 3578+5203 7812+6120 3184+-1540 1835+3493 3085+-9079 -2999+-6076 6986+-2556 -1949+-3014 4681+-6967 -2651+-5022 -1861+7768 983+4204 3225+4826 5030+5302 7976+-5508 -1984+-7883 -4172+-7465 3871+1287 6214+-6964 5281+739 7617+-4702 3265+-6681 -6476+-692 -7582+8665 -707+-8948 4284+5448 -6761+7441 -1436+1613 -7426+3653 6280+2561 9264+-3534 5299+-4909 6614+-4710 3263+531 -4512+900 -5350+-6192 3283+-4537 7478+676 8466+3268 8787+-4723 725+5687 5940+-4961 -4730+4248 -8300+-7945 5765+3129 -9019+-5915 -4189+1244 -8943+-9523 2744+-1895 -4203+4901 -1697+5721 -1977+8403 -3646+2712 -1288+-4360 -7079+-5326 6623+-85 -6820+-1066 -4364+1914 8084+2040 -316+1730 7751+-2214 -6297+-579 -4598+1550 -7321+-1889 -4744+7745 -5387+7162 -825+1699 3106+4742 8400+8210 -4685+-1246 2812+-2995 900+4776 5040+2542 -9234+443 1853+-4886 3090+6320 -5411+-2445 6156+1396 9305+-947 -427+2468 -149+-6547 -682+310 2689+-8498 -5101+496 -9118+872 6983+975 -6047+7019 3088+-2784 -1418+-6223 289+1200 9157+-7310 -265+-2259 -4881+418 1961+536 6937+-1381 7411+-2951 1527+-3502 4508+-3660 1223+-1847 8718+4154 3577+4960 7182+-2790 -5257+3128 -2360+1182 222+-4146 466+3997 2139+148 1324+881 1109+4029 4704+9838 1747+853 -393+1582 -850+1971 6465+888 -9415+-7322 5426+97 -914+7750 6010+7952 -5954+5312 -8039+5985 -4997+9432 2439+-4182 -2190+-3466 -4662+6585 -582+-1977 3354+5878 5145+-3542 6321+-973 -9747+-5026 -346+1555 8254+9028 1662+-1043 -9685+2630 -6360+-3116 5870+-9516 -2980+-1421 -7937+-3009 -7855+9429 -1381+-453 -2930+-2111 6904+3968 -4145+-8143 -2943+-7712 -4639+-1134 -7375+5337 -1298+7244 -4148+-6115 -6382+2531 5127+-950 2684+-6881 2243+9535 -876+5592 8124+-2088 3570+-4119 -8788+-7944 5522+3723 -6717+-5860 -6592+-8183 -3671+3151 1746+-2125 7339+4264 -3708+4663 4285+7453 1332+-7871 -2404+406 -8701+5236 4115+1362 6708+-2125 318+-715 6684+5527 5939+1024 -8712+-8463 -1300+-5506 2949+3463 5123+-5932 3182+-2923 259+-5922 5062+-3779 5635+3690 -3345+185 -8691+-7393 6113+-12 -5601+9386 -860+-1932 -459+-1433 -6077+-7773 -535+-469 -9797+-587 9103+-20 -6668+-3863 8580+-2479 6318+-3597 5375+-118 901+-3793 -4365+-193 972+3591 7904+-1634 -6490+-9143 -3932+-3617 8647+5971 669+6893 -736+166 -6753+2406 7080+-9347 2883+9096 -903+3768 -2195+-9623 107+-1844 -7360+-5345 2332+8487 313+-4363 -6004+-4694 4200+-6554 -2154+-3478 -8868+-8894 -3175+-3081 -5687+-6999 -4032+-1316 447+-7988 4042+611 8592+-8025 1405+4977 -7378+-6903 6552+-7990 4579+9699 -1556+-6650 -6725+-1801 6293+509 -8284+8164 344+-3789 -7706+-7193 -5392+-2753 275+1971 1783+-8893 546+-6143 7798+-4907 -6355+-4409 -4237+-405 -6014+-7995 4065+937 4374+6346 -1462+-2252 -8738+4894 6473+-7040 6301+-7587 4506+1921 7873+-618 -9859+-9096 -1424+-9617 541+4010 -5702+4403 -5930+-6164 -7777+4444 -988+7873 -2889+2714 791+7447 2971+1581 -7866+-889 3239+-1052 4317+5785 -2982+262 4316+-2268 8670+-5337 3468+-4074 -2422+-2925 -3991+-5507 3589+3646 6965+2838 2898+322 -1107+7367 3234+7104 808+5347 2563+1592 2657+4557 -5070+1976 978+647 -5381+1383 -436+-5468 -5445+6378 -6784+671 -4220+8944 -1616+5468 -6000+3096 5754+-9664 -1204+7197 -5637+3114 -7442+6025 2882+-1867 -8468+-292 2313+8222 4101+-950 938+7922 -1900+-4467 -7017+-4543 -2721+1263 -1628+-3249 -7947+-6169 -1235+6787 -469+-6653 4212+-1400 -3520+1149 -7886+7282 3355+-1038 8898+756 975+-5974 -7527+5772 698+-1476 -8083+-4558 -7298+-1598 3804+2480 8756+6626 -714+5767 -7984+-7943 3947+-1355 8364+1747 1306+7159 2716+1190 -2346+-42 -2762+-448 -7296+-6282 1255+-920 -6673+-7545 -1938+-6723 -5547+8411 -4524+2359 7006+1780 9228+-4713 8198+7798 5872+-5787 4111+4484 5308+-261 -2160+-1835 1923+-6450 5782+2735 -6210+5639 -7868+871 3465+3213 4823+-4974 -7692+6414 -499+-4555 -1147+9890 -773+-1939 -9683+-8113 -2106+-4333 -6242+-6511 -6435+6716 -5712+6958 2336+7223 4863+627 4497+-8644 -1831+4460 5965+-1295 1995+-5539 7585+2131 1336+8006 4326+4930 7725+6491 -1846+5233 -4141+2937 -820+8553 -625+-156 -90+-2033 2933+-2784 -4189+2085 -8471+-691 2881+-6846 -2905+4286 -314+-7602 -3182+-767 -7801+7263 4367+-8518 -4781+215 -9591+6557 -4672+-6095 -1770+-294 -7964+6428 6665+73 1608+7595 5599+4932 3568+-5867 6645+8909 -777+-6179 6714+-6755 -4334+-4533 -2278+-1692 -9768+-2972 -3908+4106 -6985+968 -5358+-8420 -4292+497 3224+2286 -1142+-2653 1219+-1813 6875+-6279 280+6688 -3240+-1202 1684+3935 -9093+5131 2065+-173 2257+-2595 -4971+-2468 8519+-2187 6626+7188 -4249+4983 3926+-3249 9152+-6786 4456+6523 -4498+-8111 4721+6484 -4819+-5613 933+1123 1973+377 7004+2000 8192+-1295 -9281+934 -2020+1958 -9797+-4071 739+-5472 4549+-2281 -7035+4325 8347+-1734 4770+3481 -6015+-6250 1678+3482 6495+2198 -2819+-7293 -783+-1700 -2285+7359 -2807+-2290 -931+-9058 -56+-2286 -8303+-338 -7174+-569 6750+-5786 5973+-7722 1140+-3298 -9424+862 -4947+3538 5115+-6304 -1413+-1950 -5390+-2610 9272+-6087 -313+219 4931+-2968 -2703+1905 -3591+3962 -5902+-1516 -1571+9725 2180+239 3210+4536 373+4003 -1424+-6074 4680+-1150 -7702+5096 -4285+9347 2309+-7761 -6098+2131 3413+-4987 -3872+3187 -4001+3934 6956+-3485 1434+-407 8261+-5329 -119+-8623 -4478+8078 4805+-5985 2811+6631 -7147+-3150 -5831+6537 -7236+-1405 -8195+7206 -3639+5460 5946+-6979 2069+-4989 -5421+405 4858+6236 -2068+438 -4463+-4079 2703+-7591 1896+-2367 -4845+-2647 690+1323 -7283+1185 -5491+3368 -7694+-265 -5493+-968 1775+4897 -1089+8609 -3893+-3953 6983+7793 -5797+-8410 1372+-5959 7862+6653 826+-4410 -5285+1956 241+-5115 -6506+-5987 -3283+-6805 687+-6550 -287+445 -5560+9052 2180+-1658 1110+2145 -4413+9337 -561+-71 -6498+5666 -2218+-5066 4299+296 599+115 -1281+5914 2939+-2134 4006+-1912 -8432+4828 -3707+3756 4916+-2271 3084+9217 -1214+296 -7980+2687 351+3361 6172+2394 2419+1446 4159+-109 8830+53 -5796+2801 6349+-5583 -3517+-3631 7771+-1080 -9022+8491 1531+-86 -8763+-3686 3893+-3859 -679+3183 7768+-4018 -20+-8506 -2596+-7578 1138+-4316 1864+-3713 -300+-4342 5057+8714 -2821+639 -6442+-1313 -5364+6331 5436+-2074 8991+2590 -7976+3678 608+-2933 5298+-9330 -952+7101 4042+2168 -1920+-9337 3332+-4500 -8838+1000+-137 9836+8205 513+3490 -5672+-876 11+-1119 2341+505 -3136+1056 2814+-404 2471+-9185 3115+-3637 -598+780 -9315+3080 -7731+-6274 304+8400 -5239+3058 -4101+464 -7596+-1277 67+-596 6282+4977 996+-8930 2401+6375 6807+-1945 -1968+-1760 -715+-6132 -7538+-7959 -1913+-296 -2053+1539 4325+4345 678+-6157 -1051+-7851 -1685+-1635 2355+2096 -161+-8058 5687+6865 1851+-1539 -6187+3935 -7064+3264 6726+-2678 6140+-7072 803+8808 3624+-2503 -6122+309 450+3216 5246+7569 761+8648 1711+6812 4260+1533 1334+8663 -3194+-5155 5031+6932 4450+-5719 7503+-2582 1980+4373 1015+5827 -7192+118 375+5300 8047+4466 -4231+-7976 3020+-1092 -2181+-2371 -8200+3008 -448+-3505 6201+7146 -6673+-2472 7527+7482 5093+-7585 6471+1071 -5185+7657 4750+-1152 3416+9607 -13+-3855 7452+2296 9489+-448 382+-9145 842+2236 334+3894 -3491+-4158 -2265+4002 1822+7516 1222+2563 6395+1427 5304+-7339 1277+-998 4599+3239 5234+-2605 -1055+-6415 7041+-6529 4578+-7141 -3823+7471 2524+-198 -9018+888 3293+-6817 -1588+-5911 6230+-1492 -5427+4090 -1133+-786 2039+-2670 -14+7622 -5216+1293 318+860 9089+-2989 307+-549 3456+-6626 1048+-2184 864+7055 4478+-5153 -5098+4399 1935+1999 433+2896 6554+-9274 -3414+4426 -1264+-1747 -7189+660 6814+2350 5537+-3348 -7995+1240 4609+-5471 6224+1708 457+13 -2794+-293 5646+2781 4657+6046 -6406+-200 1036+7217 -1305+-3296 5295+3763 -5103+7017 -5624+-7727 -671+-6195 6557+-1978 7458+-8103 5764+4192 6685+4003 4443+662 -3497+2587 964+2122 -9183+5973 2800+-5697 -7927+-9425 1579+2390 -6584+-4212 -3235+-5077 -4956+2245 6146+-7064 -5732+-9063 -3235+-5021 -6061+7212 2173+1111 5210+-2241 6489+-430 -7465+2092 2100+8125 2895+-1860 -9398+-3852 2347+779 -8383+-1610 3690+-2272 6279+-2450 6783+-2137 7893+4806 2343+3986 3551+6011 -4947+-4649 2548+-2290 7890+-800 -1304+5138 4632+4417 6467+3653 6202+-8733 -2793+-784 -8865+7887 -3359+-130 7557+-342 -7913+3459 7170+-1289 -9730+941 -8265+-5500 5824+-108 2464+2408 7041+4015 -6077+8191 -3204+-7693 4282+5391 4258+-3984 4501+325 9908+5373 1049+5384 1971+-3422 -1654+4743 6405+7115 -941+-7658 -4412+-8235 435+-5095 3544+-3144 -8384+4182 -621+-1640 -2082+-5392 1640+6774 -5682+5893 1963+-7457 -1267+5380 -2875+9858 -735+3525 4807+2771 1008+2056 -872+-3199 4708+5362 4053+8660 983+-7649 -4588+4373 -5834+6130 -3334+6343 3681+-6448 3332+-1686 1678+-4932 -2055+-5769 6464+6037 5547+-9115 3882+22 -5077+6905 -4893+-5183 -5018+2275 -2828+9457 2970+3864 -2344+-2064 -5286+-1383 5442+-4226 2876+-4637 1586+6075 5221+6278 4350+5512 -6569+6786 5898+-1650 -8754+8273 -1130+-2742 3791+-8655 3765+6089 -7429+-4905 209+7103 1703+8077 -768+5596 -1405+-3115 -1908+-4101 -2103+-5487 -7934+-3225 -9309+-7847 -1671+7461 3874+-8058 -3498+-1872 -8969+928 -5888+-3937 -4311+8491 520+-2825 11+2631 -6730+8382 -2519+-9183 -2950+3020 -5728+-8723 -4442+4626 -963+-6865 -5908+-5522 4684+4711 4674+-3736 -3774+-1737 6172+3826 7700+-3969 7118+-8426 5180+7635 -45+-1268 -5810+-2113 9750+-4352 4730+4457 3873+-8310 -5362+6764 3820+-6168 6350+-2098 6647+3930 -8703+-3193 -6132+6992 5875+-1551 -8305+-7595 2027+3314 -1010+-3324 -5443+2628 -385+-1230 -1561+9536 2404+869 -3924+-8940 3873+717 -2447+-4041 -4885+-4260 3388+-4050 4795+2800 -5965+-3142 5834+-7328 4146+2569 -9230+-1188 7509+-8069 5511+-1173 9347+935 -7730+6220 3130+-2392 8560+2359 -4643+-8914 150+5474 5321+-5429 -8048+4225 -933+-5525 2230+1669 7120+-2224 5632+1687 -1848+-1081 9406+2855 702+8156 5572+-5056 6209+-7631 2280+-9369 1105+8506 4929+-1459 1158+6287 -2653+-4447 -6115+-1919 -3671+5969 6859+8247 3689+2458 8282+4792 -5170+7674 -5038+-5550 4215+2706 -42+-3828 -2199+4864 1780+5241 -3455+-6052 -5959+2630 -7262+1995 -2477+-1658 -1322+3695 8636+7854 945+233 4821+-6532 735+-7174 -5025+-3792 3106+8423 4880+8882 -2426+-5886 -7076+-4387 -1756+-3645 3808+-3074 -5408+-4123 -5279+-417 -9540+-2536 -8769+-4898 5532+3110 408+5761 3844+-1325 -3805+-3877 -5616+-320 -3045+-2747 1596+6201 -6260+3391 4820+1834 4932+1212 9123+5975 -7936+-8556 -50+1198 3151+6824 -522+6451 -6786+-948 4213+-3628 -9285+5071 -5194+-2497 -1211+-1624 -2973+7315 3364+5823 2831+7107 -3530+1008 -1878+4488 -6075+-5676 -5620+-4467 1641+7536 3246+-829 -6269+2528 -4414+-3754 -6394+8411 -2576+-143 -6147+7728 -1781+3206 -2625+-5457 -1343+8158 -5011+-2898 -4403+-9316 875+-8293 -5058+4661 -5377+-5653 556+3830 -5699+-4606 562+8827 3027+38 -3931+-2697 6848+-9144 -2420+-3087 3313+8328 -557+-5586 -1242+-3458 9287+-4820 7012+-3277 -1748+1204 205+-2869 6701+-5031 -3900+-4235 3407+3522 7356+880 -8624+-4157 -4327+-5808 4163+-1099 -4424+8098 5571+5330 -3250+-268 -6319+8587 3007+7762 -4547+-7374 1275+-6736 -4286+-5850 -634+2649 3410+-3651 -3766+-2628 -5647+-4079 -2874+-288 -8701+7506 3854+4104 3323+-4029 -3844+150 1726+5468 -7480+-6554 -4767+7621 2793+5211 8088+-2626 3142+1262 -2434+9427 178+-6795 7047+4285 -5613+-5830 7966+1958 1092+5994 -7461+7251 701+2098 -7782+-6211 5731+6450 -5764+-5853 755+-3392 2839+8091 -576+-1382 421+-1752 6200+1657 -7036+5997 -4754+6860 -4464+-9022 -3232+1193 6935+3764 421+7594 -31+868 -2887+-69 -8261+2528 7535+-3109 6305+-2497 5147+6503 7461+-1478 4510+-5489 557+-9718 2093+-5107 184+-518 -2529+3870 5072+7730 -6090+-5884 -3533+-5823 6493+-3635 7057+5776 21+2398 -8900+-7308 -1219+5122 235+5664 5899+5111 1666+-8828 4438+-4620 692+160 9893+-6126 7270+6055 -3+2020 849+-8476 3816+-6712 -4412+6224 4137+2175 -9078+6490 2212+-792 -1332+-6941 -3100+-2331 -8638+137 -7144+2591 -7415+9328 -1164+8943 -649+-6250 -3411+-1295 -2507+3320 -1282+293 -4388+-2469 -3478+-8252 5325+-2924 8314+2484 8402+4758 -882+-5932 -4146+-7715 6109+834 1708+-6272 2890+-6710 3336+-4506 6135+-2323 -379+3339 4411+-665 2691+-2870 7225+3687 -2072+1773 1703+750 -9314+6894 -457+353 -2641+4268 -4970+-9353 -644+-6794 4362+-1506 7151+-1344 -1486+7472 -6543+-8453 -4902+-2320 -6921+6176 5854+7763 -3374+3015 -6021+-852 5811+6856 -1728+-2633 -3822+3037 -3687+-4997 -3186+-2930 3476+706 7993+-4262 -6283+1099 -8179+7775 -5653+-655 -457+464 -1721+-888 8327+-6973 1048+8043 -3932+1283 -4480+8640 3665+-6118 -4991+-7252 -3438+4747 6563+1964 -4833+-8103 -2009+9286 203+-2138 7788+-500 -2952+6373 307+8081 -3672+3753 7523+-404 -4957+-1700 6911+-6590 -3383+-4642 2260+970 -9603+2067 -142+-6887 -886+4500 -8168+5523 -6437+7739 2728+1947 -1771+-2991 -5133+375 746+-6428 4864+4871 -3217+2711 -6082+-6964 4347+-4574 1920+6406 423+1212 4616+4593 -2567+-5150 3589+-5179 7432+-3457 1203+6739 -2172+4446 6410+-2224 3795+-5166 -636+-4884 7849+1778 -6395+-6864 -6174+-3247 -8533+4290 -2585+3028 6644+4756 -3821+-6551 314+8075 -3045+-851 -4764+2561 3838+-1961 181+776 8067+-4451 -3681+8147 -5780+-7394 -6259+7187 -4029+-6306 -6590+-5716 -3623+2191 5908+-2214 5188+3209 -9466+3177 2635+137 -6777+2018 -9434+8527 -1036+7046 -2015+1480 5499+-968 5518+7685 1310+3270 -7617+-4302 -4225+9950 -154+-6908 -5306+-1634 -2128+4345 1684+-5220 4456+5293 7658+-6681 -3134+8035 -3881+-3885 -6697+2749 -1934+6582 -227+3262 -342+-1612 4812+8179 -2614+6835 -4063+8455 3699+-3134 5676+194 6081+3762 7241+5382 5232+-6209 5114+-6316 -6664+-4182 -4208+3143 -4127+-2222 -8373+-3012 -806+6673 -2544+-8434 2598+3180 -7068+-4063 -5336+-6872 455+-2034 -6214+-5581 7342+-9667 2012+3755 5327+4826 3369+-9531 -2436+2699 -8473+-830 -1764+5179 3063+-4247 -8139+-6893 5155+-8258 -1914+147 -9712+5087 3664+6850 3619+5886 -6439+-3227 -6485+-3439 -4261+-11 -2638+-3290 2537+2814 9136+-5103 -1575+820 -2026+-2995 -610+4743 -3557+6228 5586+-1740 6206+-9659 661+134 2774+-2549 -8426+1337 -4257+2332 -7124+-6786 -2086+-1516 8695+6518 4776+-2356 -6321+-5954 -7979+-8414 2386+2193 1591+-7453 111+-3522 -1107+4207 -3965+-6850 6881+5220 1576+121 5023+-2283 -7893+2009 2419+-8446 -3051+1798 2490+-1387 -5639+5620 3255+4339 -4775+2283 3224+-9583 -1883+5017 -362+2996 7757+-587 -1409+-5283 4161+-9966 -709+-8949 3902+-8453 -5017+-913 -6820+-5776 3655+-8967 -2889+2965 6815+-6842 5797+7693 -5753+6875 -3968+-3666 -3413+3634 -5871+155 5604+6235 -1176+64 2414+-5369 -8394+-5943 -5412+-3556 -4637+399 -1807+-3304 6743+-2958 2434+2425 7821+4853 -4090+-8637 3218+-359 9289+1514 6337+-3940 -4165+7480 -327+2444 -5023+1918 5346+-1166 -6332+-6439 -7287+3720 -4736+6811 2006+-2466 7040+-570 7244+-8050 5088+-5165 3165+1601 -7503+-4914 -8301+1518 1980+6927 -1649+-1081 -8144+3933 -2658+2313 3768+-6811 1614+7571 5045+6648 5466+-6361 -26+440 2481+6161 -6383+2863 -3407+4633 -4652+2169 3183+7169 5989+1366 -6050+-7915 -171+-7672 6412+7301 5825+-4425 7147+579 1276+8667 132+-2893 3933+-5064 -6229+-2926 6260+-5488 7398+-2642 7347+-3391 -4986+4859 -6171+859 -3231+7667 3748+907 6285+5797 -4668+2994 -8221+2999 1843+-543 8259+-1672 -4571+3412 -1044+-2760 4780+31 -7542+2175 -3446+-888 7916+1334 9319+2739 -6136+-4174 -764+-1781 -5604+148 4918+-1689 1700+-2406 8447+-137 8922+6001 7288+3670 -2066+2496 -7156+7435 -1962+1006 5960+5971 -653+-2345 -7155+7476 5967+-912 -1652+298 -7317+-7598 -3046+2671 -172+-5986 3689+5296 -1629+8831 33+5579 181+-353 -4209+1683 -5930+2463 -4197+6996 -2499+152 -5437+-3900 -2852+6248 3940+2272 -9690+-4724 850+2 6373+-4729 -2686+-7254 391+3664 8877+-7603 -6442+-4047 -3534+-2439 6362+6394 -7270+1937 -3355+3091 -5796+1871 -91+-5273 523+2830 -7474+5933 3523+4236 -1932+-4784 4570+3038 -2096+-7392 -1083+-4457 4552+2876 3566+-5225 -6280+-3292 4551+-6950 -4388+6039 6371+2299 1018+3238 3509+5240 -5189+-5219 4996+-9692 -3+1572 2002+2604 7720+4654 -7487+966 1832+-2276 1385+4083 3577+-8667 -4036+2486 -3797+-21 8764+1606 5263+781 5207+3562 -6102+2766 -7+-938 -2657+2085 8945+2801 -1426+5999 2398+-6212 -3871+-960 3770+-3680 2696+-4316 384+-1096 -5807+-3503 288+-7895 5279+472 5548+-316 -8129+-350 -802+2454 5129+-2801 -7210+-3516 3096+-6470 -3076+-2159 -2152+4089 -7580+1052 -3614+-1603 -2505+-9563 2787+5541 4491+4657 1292+1356 2108+-7524 6128+861 -2153+3670 6498+8593 -1058+-1740 2706+5458 5604+8179 -1904+6744 -4603+-2584 -8671+3865 7671+-6781 -6639+867 6750+-5073 1171+-2306 -9669+-2097 1502+1549 1640+6472 -845+3414 -6219+235 -8448+-2206 1548+6847 -2715+6646 976+-3822 3435+-3585 -2269+-8869 1770+5072 -5830+4094 166+-7087 3877+6256 199+-7191 -5900+-2944 3616+1595 2170+3313 -8348+1179 -6832+3896 6031+-3123 -8318+-4738 -5502+8355 108+-1406 -4116+-1984 8704+-2264 -2112+-6427 6586+-2521 4546+3915 -929+-3466 -2688+3886 4830+-2346 5572+5926 -6708+-9287 -1339+-1422 9516+6074 -3920+-4052 3669+-2046 8945+-5139 -7541+1885 7991+-984 5234+4082 -8420+2238 -7995+9331 534+2990 7885+-6398 -968+8511 -4186+4291 3460+-2528 2307+-847 -4926+-7273 634+-852 432+-1845 -1448+903 -5275+3974 -4102+3193 -9137+7909 4744+1178 -9075+7234 -5251+-612 -5390+-3094 8088+2110 2881+-610 -3610+-5561 4108+8535 -3604+-1103 -9491+-3274 2741+3542 -8232+179 4688+-3493 319+-7973 -110+1556 -562+-4888 -8536+6784 -6201+-579 8418+5016 -8175+5662 -1285+9364 979+-2402 -3177+-2546 7334+4511 600+-27 -5490+-4591 2041+2276 7812+2543 -6906+-5306 -5791+145 2339+2784 -8216+1130 -6568+4236 4309+3759 -9119+8596 4512+1000+-1130 -6466+9370 -1179+-4512 6313+3937 -4301+114 -3516+-2952 -7540+1132 44+-562 -6297+-249 709+0 -4274+-4225 5658+-5082 4389+24 -303+-8757 -1101+-7685 -4856+5402 1845+-4249 -2977+-2572 -430+-5473 3339+-4040 950+6064 5782+-8327 -2886+-4088 6304+-4840 5701+-4243 -2913+7866 3704+-51 -3746+5974 -5238+-9481 -1796+1145 -2423+1615 -4254+3526 424+-3638 -1766+8204 -385+6297 5048+-4590 3846+-1977 -3509+-18 -3118+5445 2707+-4977 7368+-6869 2564+-1759 5270+-1846 5634+5548 -1277+-2653 3048+-402 3815+7554 1498+7885 3635+-7174 1047+3912 2404+-2652 9053+4343 6302+6566 1544+2691 -6179+-1928 -9383+-8505 -1879+-3947 -6911+3984 5293+-3175 8633+-2046 2145+6866 3453+-6930 -1256+4720 -4851+8925 -2374+-3268 -7484+-3685 -1189+-8022 2624+-5876 281+-3653 7821+7977 5305+364 9080+680 5309+-3604 -5101+1407 3210+-6087 2253+2665 -9216+-750 -5089+-2585 -8352+-3139 -6372+2106 -4893+-8943 1600+-3471 -2218+1034 -2870+5368 -357+-9210 -2854+-2324 -3219+4452 -5643+5048 8414+-958 8289+-4065 -3983+1594 5271+628 3251+-7082 423+-6886 6949+6625 2814+1184 7266+8229 -3264+2582 -6603+-3619 -2934+-3211 3694+-1062 -7434+-6409 4107+6248 -4109+3750 -4350+-1141 4900+1604 92+944 3851+8162 -460+-5879 4394+7751 -4189+-5944 3257+-5118 4601+-9167 538+7702 -2425+1713 7201+3948 -7992+-1874 -6205+8473 -222+6369 -4560+2187 9515+-7205 1914+-6317 -6934+2223 4200+-4349 3597+-6653 3064+-2403 -3276+-4900 8710+40 -3976+5757 7280+-3846 7725+-3003 -9500+3589 1793+2141 -1633+-5030 -936+-400 -8698+1784 676+6942 -7118+-528 -362+782 9948+57 33+6346 -911+-3319 -5097+-5237 1986+-4230 7634+-8022 4045+6569 -2521+2465 -3206+-3123 -3186+3239 7807+8548 -5133+5397 3747+7537 3314+-174 822+-832 -6158+6033 332+-5484 -5114+5952 4655+4113 -7725+269 7442+6293 1229+-1481 -8012+1579 -646+-956 5105+5522 -6045+5106 -3960+-2785 -6424+4810 -3016+-7366 -5935+7846 255+-6663 -3189+-3026 4053+1312 -9290+3526 22+6375 -5746+-2265 6474+91 -7650+942 -2487+-5639 -1982+-842 8732+-5358 3779+526 2466+3622 -1234+3837 -8324+-3056 4033+-5390 -7534+-1672 -7538+-1404 -3887+5513 6806+7096 -3048+4085 5407+-4030 3151+-2553 8434+492 5054+-4634 -955+-4369 3151+-7 5836+-2620 -4394+6895 -4216+2594 -5914+-124 6281+1054 2373+5964 -3834+963 8658+6047 371+-9011 -325+-6273 188+-23 3521+6507 3028+-4680 -2364+2826 4193+4790 -4359+5600 5922+5546 3354+-5334 6861+-6797 -6922+2582 7687+3681 4702+9259 3083+-4138 -2476+-145 7525+7779 625+-7047 1608+5201 -8250+-5908 6795+-1976 -922+4980 4106+-5841 5167+4369 -1094+-3003 -4433+7767 3590+-3591 -2122+-7781 3689+781 -1021+-343 3002+-1709 8118+-6131 159+-5210 -6106+-3262 -8487+-3791 439+3027 3830+-256 -8528+1268 -5038+-1573 7661+7585 -3463+-3367 -9328+-2971 -675+-6599 4574+-5453 -1007+-7669 -1404+7367 4822+5123 -7799+5177 -1117+4760 1140+7952 -772+-9447 -1155+3001 -200+-3967 4874+6811 4702+-4994 -4419+4079 7372+8285 2766+-1072 9666+9408 2296+5805 -6337+7703 -4994+5761 5427+7555 5175+-2698 -8924+-1358 -1115+942 -3476+5135 3315+-1609 3457+5393 4063+1754 -7338+1969 6259+408 -5708+-7713 2078+8826 -678+-2343 -1254+-693 -9835+-1376 7998+2660 -5633+3364 -7755+-3060 3130+4659 -8753+7389 168+7506 6380+4592 867+1715 1919+-254 1636+-1870 1722+4429 -7047+5473 -4578+-4234 -7099+218 7313+-8393 4895+5007 2112+-9662 656+3546 4015+-4716 -3536+806 -941+-3179 6313+4041 5726+5916 2836+681 3930+-6191 -1915+2030 8879+2754 2071+-7314 6102+-9189 34+-779 -3879+3396 7845+1402 -3128+-6610 -700+-652 7920+3735 -6084+5655 7295+-5399 4664+9900 -998+-2349 -5952+-8801 2847+2848 3489+5699 8141+-9355 -1907+1162 7179+-5672 7742+5538 280+-5262 -492+-3522 -6599+-1690 -6560+1684 -8270+-1602 -9264+-4852 6895+-817 8340+7205 3574+-5724 -4022+3704 -2623+3600 -2354+1025 3304+-8676 -3996+3222 8087+-9394 3050+-7758 -2182+4815 -6045+-8014 -2562+1308 -60+7732 -407+-3013 -1829+-3456 9376+-2543 1039+-635 9476+297 7155+-2212 -2674+-4427 5394+-3676 -7441+84 7441+-3206 5025+-1395 -7317+-1273 5699+-8164 -4630+-2528 -2439+3193 -7796+769 8064+4866 7644+5871 7655+-6410 4877+5101 -8086+-1816 -3333+-3922 -189+-9262 690+-6996 5568+-7705 -226+3402 8219+7087 1561+4126 2095+-8004 5288+-1585 5047+-435 3449+-5138 6040+-272 -9035+-2731 6351+-266 -7117+3897 854+3980 -5925+9808 1867+-2601 -2057+-820 1338+4297 8738+-5345 2638+4653 3076+-6543 -3641+9118 3118+3688 -1084+-1076 559+2437 -8420+-748 9290+1819 -8381+5365 4534+1520 -719+2958 4805+6217 2482+-7985 -4044+-6300 2688+7078 1566+5378 -1126+-3310 -8264+5278 -1948+-3648 7151+4756 5895+6076 2150+-1397 5078+3879 -7106+781 1650+1107 1413+1055 -7226+-5404 -3983+-3786 8437+1882 229+2602 -2595+4529 567+-4125 7665+6348 -2768+-6334 -5293+8181 4335+-5538 -1743+1266 -8092+-3503 6089+-7678 -3916+8238 2080+-2472 -8230+-5528 -778+5511 -6290+3701 -1442+3074 4336+-1059 -2112+2915 7892+8014 961+-2961 -5104+3821 5799+5882 965+3356 -1336+-5638 1644+1354 -4460+3562 9078+-1717 2328+7781 4357+4165 4251+3819 -4260+3600 1934+3724 153+-2236 -1389+-280 -8410+9511 386+-6181 -6234+-5079 -3542+-3115 7448+4601 4079+9749 1329+-3661 -4212+-1882 1400+-3441 -3142+6886 975+-2036 -7344+6750 2157+1194 9551+1568 -6773+6299 7366+9395 1879+2518 -9557+-47 6257+8011 -3647+-5550 8237+-7803 -687+6520 -6632+72 3437+9684 238+4899 -5241+-963 -6758+-6167 1587+2618 6188+7441 -401+5575 -1191+-2862 3451+-1507 7061+-3224 -1889+-1146 -5027+2038 8058+4708 4703+3453 -3046+2324 8326+4489 -7333+-5662 -6403+927 5810+6662 -4426+1183 -314+7121 3721+-8571 4705+-1547 7232+-3846 -653+-3127 5398+2288 3701+-89 -7327+-2576 -4314+-1565 3183+-6158 -3007+3606 1333+6275 1435+-3586 207+3383 9295+5622 495+-3916 4571+-449 1095+4937 -2215+9314 2786+353 -89+3029 4121+6903 3334+-3827 -2445+7781 1759+-7227 6862+7929 1747+-1055 -5311+-4892 1174+6692 773+-5125 -7681+-8713 -915+-687 4528+-9196 -1612+4545 -1516+2309 6146+-1257 3066+-6547 2626+-3477 3183+-5800 -1647+4394 3431+4669 -5111+-7379 4066+7333 3119+1486 -291+-6315 5686+6567 6670+9345 810+-3007 9189+2168 6393+-8580 -516+137 -2376+-9445 -316+4846 3520+276 971+-7783 1874+-1019 4539+-1378 -4013+803 8625+-4881 -4576+-1890 5781+6282 7645+2017 46+-2372 -4020+2062 3841+6500 -1979+-4830 -6741+1317 -2526+5248 3632+5895 -1062+-3292 9364+-1712 -1517+7985 1056+297 -9733+-2268 5648+-6596 652+-1892 -1391+4705 5658+-767 160+4354 6244+1491 6774+-3405 2034+3816 -5847+7232 4271+-8925 -454+-970 -1761+84 -2815+2985 3609+8202 3792+2886 -1298+-9870 -852+9572 -2557+7272 5850+-4299 -1485+-1856 -536+-3335 2490+4853 -8509+-2057 -2256+-1565 -1161+-3404 -2991+-5433 7323+2063 -1545+1076 -4467+-1502 6251+752 8223+514 4889+-6751 -3159+1046 -1648+3120 308+-819 -9047+-4085 3452+-1923 3808+4711 -6985+823 -2425+7974 3597+-1088 -8279+-5332 1424+728 -5800+3853 -8143+-5649 -3333+5691 5371+-1417 -1759+2555 -2190+-4957 506+-7686 -2804+-3761 4435+1941 -169+948 -1066+6419 420+2465 -7542+3736 -3037+-4824 1058+-6864 -2238+-7994 -2041+937 2631+270 4798+-2472 -7331+5367 -1801+1466 -7341+588 -8597+-5638 7349+-9127 -858+-4542 6170+-2142 8077+926 8077+3695 604+-6254 -3124+1346 9758+-9040 -2825+-7861 -2808+-5520 -7022+-5464 4532+-5237 1346+8457 -2985+-3715 8677+-4711 -4072+5435 8077+-2419 -567+308 5305+-2453 7344+-1484 1879+-1360 9124+2623 408+-2421 -7382+5340 -5903+-2511 -3541+1624 4654+-9128 3589+1031 -1662+3108 7828+-2306 2248+-5441 7439+-6065 2801+-2372 1639+-4038 6571+1743 701+7426 2912+8825 -3728+-2874 -6506+6677 7171+5157 7202+6494 -1340+7068 -4663+8450 1814+3383 1249+6802 4515+-1354 1042+180 9725+-1268 -2333+2863 -9489+8713 3872+-2392 -993+2560 1407+-1000 -5687+9608 -215+-9606 497+5086 1685+-1662 2109+-5129 146+-4969 -4019+-6805 -5294+2750 -2140+-6784 -3912+7822 2263+3113 7546+-4707 -3964+2915 -464+-5386 789+-6449 -5717+-3790 -2463+-337 -5352+2966 -5997+-2759 1147+9029 2212+-3864 8651+-1411 4316+7465 3580+1200 -2604+2074 -5732+6003 7207+-6827 -6739+6746 -2977+8382 4574+-8621 -1191+-4349 1045+5343 5621+1092 -8722+2217 469+-3172 2159+4673 5616+5130 -4044+-4461 2931+-6357 -3600+-1475 963+5657 7746+2630 1959+-111 -5261+2949 -7808+-6226 -3507+4790 -1415+-6586 -1825+5241 3941+1907 3882+-248 9678+8565 -1359+-2193 -6989+-877 -7327+1320 -9672+1438 7225+-4492 -8294+2654 991+9710 -500+1180 -9828+-3309 8879+8756 385+1624 4810+-9496 2001+-7800 1779+-895 8243+91 -2377+8455 -1451+-3694 6117+-8060 -4015+-3780 -7139+4341 -4503+2222 -3377+-4576 4298+-4196 6005+3577 -2405+1067 3795+1038 -8038+6558 -3349+-3023 215+-3291 2338+5352 -529+6723 -3943+-3689 -2584+-8256 -2451+-8085 4886+-3506 8135+-615 5681+1385 -317+-5516 8335+9855 -1248+-1365 -663+-3092 -1272+-9149 1137+5069 1178+7791 -1891+-3394 -2485+-4623 6380+274 6826+3598 1669+-1018 4080+-8072 -2066+4994 677+37 -1535+6267 -2023+4086 -2151+2247 -2255+6356 -6866+-2253 -1832+-4090 6838+-8659 2532+2062 3223+5701 2119+1495 -6667+1540 -5023+-621 3774+-5173 1011+459 -6441+-3605 -6627+3005 -7039+2793 6885+-84 -5683+-5401 1570+-5090 -2932+8167 4475+7826 2606+-3927 -8363+-5308 -664+6280 -1544+-2425 8473+5442 93+5126 8574+-7911 -4637+7837 5369+-2525 5175+5287 5715+7738 -1662+3959 418+-4405 6788+4267 -880+-3063 -3111+4790 -1408+-6473 -6004+9490 1647+-4898 -5499+334 -7482+-2353 -4895+4866 7384+-611 4761+-312 -6438+5783 4677+-6276 -6279+2185 -4268+-6639 -5732+-918 5733+-3888 2989+-2995 -7311+9789 -222+3455 5712+-4516 -7675+-3091 -1708+-5098 -1977+-3148 -3432+-1245 1942+-3104 1247+-743 -7957+3774 -8220+1821 5621+3904 5021+-6584 1525+1865 -4638+3858 -8259+-6179 7705+5453 -1005+5045 3865+-5148 3919+5273 -6670+1838 -6916+8155 -5242+-1228 3082+-4003 7320+577 -9980+7930 5945+-399 -8517+-8457 -778+-6859 -5465+-1593 1779+-5119 -5479+5123 -2357+6676 -3859+6569 2829+3443 6886+1042 1062+382 1679+2480 -9471+5800 7317+-1647 -4525+-4595 100+-1711 -375+-6001 -1030+-1645 7706+8428 3169+524 -5895+3963 6660+-1399 1219+-3311 2987+1285 -2302+-8503 -1677+226 -6661+2712 5576+4348 5160+1907 -6903+11 -5070+2849 -9353+3417 -3428+3697 -3386+486 3533+5214 -5814+6264 3247+-2943 2265+-5003 -3795+6279 -4336+-4020 -5632+-832 -5201+-3250 9279+-731 7786+-7073 -5393+5833 2973+5140 -7831+-4742 51+-8594 -1298+-2689 -7348+-8525 1483+3546 -4944+-9136 1961+7505 5933+-1790 -6435+-3338 -1968+5520 3222+5179 -1733+-1261 -4709+-320 -5868+7026 -3779+-13 7838+-3018 -9199+-3435 -2084+-1603 -5260+-3477 -4340+6771 713+33 4949+-487 -4967+-4917 -5789+-8462 1082+-894 1782+6638 -6319+5418 8166+1757 -4853+2937 6731+6822 5575+273 -297+-5601 -6649+2580 -17+-1910 7353+-1987 1800+-4176 -1275+7473 2116+-7084 -2944+609 7712+-5535 -1374+2136 2035+-3936 8276+2388 -7906+-6601 3120+4916 1328+947 9127+-4909 -6969+8603 -1922+-5750 4939+5165 -685+-3621 -522+-617 -8022+-6193 7018+1666 -6354+270 -4706+-1907 1966+-3489 -763+-285 -9483+3783 -4130+8592 1584+6175 4939+-3262 -5614+6014 2364+4058 1671+-5062 -2351+514 -5958+1810 8554+2711 1825+-5487 -3294+-8433 -426+-1334 3873+6034 -15+-4275 1778+800 8940+7449 2389+1680 -7646+7615 -4283+156 -1071+-4536 -5125+3453 4418+2625 -5144+-6869 2789+4742 -1447+-5421 4938+-9381 2649+8119 5476+1000+9485 2563+-4541 4897+-7856 -3725+6653 -7241+79 -669+5730 2564+6609 -4886+5214 5316+9623 1209+-5483 -1363+5957 4977+-452 8827+585 -5720+-2230 -8944+8261 352+-985 -6990+2465 -2182+-999 9642+-5329 -4911+-7431 4743+-2201 -6825+7292 6420+2321 -1814+9589 -806+-194 -3675+-4727 -5859+-4810 7825+-6838 -5855+-4613 3216+-5939 6153+8123 2003+-7401 2432+7209 -4608+-5085 6568+-4802 7730+-2460 5771+7357 -6078+-2887 7342+-6169 -3811+3206 -6950+-8745 -2171+4473 -2397+-1676 -7647+-3967 1472+-6630 -3555+7981 -2927+2130 1332+5195 3334+-8110 2702+7411 6513+-929 -7096+6228 -2206+-6188 -2407+3714 2994+5913 3412+4432 6997+-1742 9029+-2178 -2385+-76 -5774+3071 -4050+-4122 -1695+3133 3406+1357 -174+1909 -3888+3258 -1351+9154 1262+-6500 -2430+5729 -6511+-3113 9358+-7939 1566+-7018 4501+7921 3926+-1911 7751+3235 -1612+2980 1403+39 9797+9625 -1593+-4290 -397+632 -4347+6327 6095+1210 543+4397 -5314+3320 -608+2187 1923+-4932 4365+-2871 3456+-761 1758+7847 -1552+-3274 -7128+7682 -2435+5487 144+5131 6141+5068 -3941+-3644 -5593+-1101 -6781+5906 -6138+-3354 -4546+-9151 -1495+7990 -2050+8708 -2151+2942 5306+-1177 -2149+-4815 -4319+7909 923+-3811 -4904+-2339 9503+1931 -1477+1481 5598+-8001 -320+-6945 -2695+-2822 2324+3815 7787+-2642 -2967+1456 -6817+-2049 -3875+-4870 -4855+2555 1586+-7368 5139+-8753 4631+-1084 1134+402 7229+3682 8975+-7263 -1654+-3170 1126+-1492 5773+-6384 5573+-1972 -9139+2271 7742+-206 -7291+-4 8446+-7857 -3785+-5730 4467+-6241 2695+-6696 -6775+-1681 1236+-7172 -6301+-2042 8006+3898 -993+8156 -1053+-2323 8593+3765 1822+3151 8611+-26 -5996+1716 2051+-8400 -2592+-5916 1076+-2937 5871+8190 -4908+-9034 -4178+7637 -5630+-3193 -8562+3809 -1193+7415 1613+-8296 1197+7429 -5519+3730 5773+-7005 -2846+1495 7276+-2441 7343+4323 2928+1425 9015+8206 -5690+-8320 -3319+-2473 4630+4519 8463+-4512 -2779+1881 2277+-5124 -5314+4050 3738+-2530 -7777+6117 -5719+-8154 -1632+-6428 -3006+-2207 9712+1848 -4260+-9104 680+-260 8291+-1021 -5394+-3397 8712+1995 -6901+-1989 -1848+5016 -7754+-4791 -204+7353 -3353+314 9145+1775 -8087+5575 4346+-596 4222+-5596 -8000+8579 -3154+3345 -9299+-4024 -6519+-6579 2109+6012 -7817+-1746 -9833+-4532 3707+-4709 -6121+127 726+-4751 -6011+6736 -443+820 -2479+5380 1532+-1703 -5606+-9658 894+4341 -356+8408 -302+6636 2152+1492 -2117+5925 -5187+-7370 1888+3737 2247+712 -3962+360 2877+2684 1219+-1284 5053+-5336 7511+1635 2431+4114 7285+6737 -6028+1826 -6146+-2975 -2512+6384 904+1809 -8643+-1855 4589+4912 -1741+2595 -6067+4367 4202+5442 -181+-2199 -6380+-2185 -3522+-2276 3877+-1004 -7934+1080 -5811+-4304 6466+2008 5519+-6507 5841+-5858 -2529+150 3328+-2319 -5745+-5389 7692+-3786 3385+-5492 -349+-8614 4764+-4400 -628+5150 -7261+-4827 2003+-1888 686+-829 7935+-209 -7826+-2057 9164+6756 3171+456 8097+-7328 3841+-1700 7021+-1620 -6453+-7568 -6143+-4062 -3746+-3098 3544+7970 -2595+-1045 4284+-2151 761+-679 -1027+-4149 1121+-1206 4762+2290 -7317+-4770 8260+-6740 2334+2787 7565+-8393 3871+697 5974+-7848 -5273+-3806 2178+3438 9177+-8081 267+6753 5052+-805 3818+-1236 -1690+-5886 3960+1555 -9332+9150 -1390+-7702 91+3584 7380+-3182 -6338+5251 5389+-1172 -9655+-7207 1267+-2673 -8079+-7263 -6760+3412 8256+-2154 8215+-1643 -1481+-1315 -7267+-865 -3107+-4142 -7193+-8394 1654+-649 -4830+4506 -525+1678 8440+-7465 6035+-7152 4019+1269 452+6894 -1278+-1795 -2267+-2732 -4101+991 9579+2359 3881+-1977 670+4604 -3640+3723 -2197+3059 6746+4803 2324+791 -2180+4605 -7567+3116 -3436+6000 5829+1695 -998+3781 -3128+-6673 7323+-8386 -1818+-2093 2490+9194 -2474+3923 2184+2038 1596+6580 2766+-4491 926+7605 2601+9507 -1799+7614 -5606+-3140 290+6616 5654+2643 -3477+6043 3108+-1790 -9818+-3564 4491+-1701 3143+8803 -3668+-938 -6426+-775 9164+143 -8516+-254 -7248+633 4804+2976 8518+-3639 -6418+566 -133+-172 -2041+6246 -6170+5817 950+5655 -4877+4290 6720+-132 -3734+8074 5540+5563 -1173+-389 7323+-470 7341+-2796 -5364+-2277 9245+4099 6247+-7191 -3205+-4926 -5260+6244 1058+1155 8575+4713 3967+1300 8626+-8112 -1071+-3139 370+1287 -8652+-8591 -4255+8037 4779+2922 3667+-7146 42+8929 294+-7380 2930+-6086 -589+4646 -3945+2358 2337+-1498 7577+1111 8562+5248 6163+2791 -1419+3805 -1554+-8627 1326+6552 56+-6040 7073+-6904 2195+3283 -2234+3748 -1175+-3491 -5584+-4035 -3916+-5086 -4313+-5185 -647+-5345 -7481+5476 -830+3144 -6077+2564 -1651+-925 679+-482 -9841+2859 5833+1042 -374+8095 444+4557 2402+3145 -8263+-1247 -8908+1350 6748+1926 388+7273 -4928+-7539 1642+-2031 -2197+-5057 -391+-3036 -6803+-7949 -5712+-2127 -5256+6376 2361+-817 -634+-857 179+1403 -4767+-319 -2365+-7593 -4365+-5355 -3583+868 36+219 -810+6649 6067+491 -5115+794 -8917+-9109 3640+4972 -2596+-4816 1025+755 -1581+-4651 8192+-2034 1169+1091 4976+-4247 -298+-1987 -4157+5721 -5046+181 -1810+-9144 -1003+-4096 6048+1404 -1569+-8071 3065+1121 4333+1384 -6760+8218 -15+4256 1694+-2551 1084+-2605 -5027+-2011 7601+-2457 -7826+-5914 6577+676 6645+6657 -3043+1804 -2889+176 -3557+4425 -2677+-5614 6498+-8437 4758+-9656 1655+3923 -7310+-3236 2404+1408 2330+-4480 3241+-3636 -2896+5784 -3748+-6364 -7283+-2233 -1764+-5841 6950+2934 4853+-122 -3625+105 -8885+-2546 7468+8871 -2655+-4721 6807+-6220 -2858+-6666 -4742+2869 7501+7646 5105+-1984 -3106+747 482+-4092 -5142+-3575 -9211+2340 9080+4179 1485+-1134 -6029+-7697 2995+106 2771+-5191 5774+6876 -5558+3855 6871+5640 7474+-9481 1798+7104 -2403+2951 6522+-5130 1382+-2590 -3832+1145 1698+-3823 -4424+7914 -889+3939 7829+7495 5949+-7971 1257+-8427 5202+8100 -367+-4247 7204+7122 -2331+865 -6489+-8738 4321+-6309 -3777+-1874 -7231+8824 4442+-8544 -2774+-9675 -2023+1280 -4907+1478 -6800+6100 5214+6378 -6943+-2281 -5572+-3529 -4628+-1159 9862+-5268 1594+-8119 4328+7415 -1447+7248 -5559+6617 -1161+1900 4403+7608 2262+-4581 -377+-3147 3378+-8133 1645+-9271 2053+9645 1007+8682 -3652+3385 -33+9015 3566+-7190 -6379+9351 -2917+-1145 2033+-5062 5627+-1742 -2902+-962 1096+2562 -4490+-4722 8662+2639 4226+-184 -632+-3626 5897+5984 4322+5478 -4229+-2611 3280+-3201 5998+5658 -7144+6830 -1948+-6595 4438+6751 -4075+-5500 6061+5421 3482+2417 4040+4637 -2911+-5012 -6163+2867 -3216+-2569 9077+1078 -3439+4793 1616+6015 -1538+-5087 -8037+7501 3127+4974 -6474+-3408 -4592+1352 8795+-4126 -2869+-2890 566+5086 -4401+-1608 -6876+-8499 -1006+-3533 -7555+3495 8840+7065 6337+-809 -7601+2136 -2514+9024 -1552+3259 7092+-3200 -2969+1122 4213+2467 6261+4802 -766+-2588 3269+-3003 6001+1013 4408+1101 7861+1705 3975+-4597 -7344+-5399 -2045+4806 2349+-6383 -2315+303 -3546+-8875 3271+3460 5104+4277 7180+-2380 -3070+6359 -1013+5185 1510+-6091 7781+-4116 7232+-2008 915+-5400 6939+3635 -8167+3335 -8630+-5076 -2039+6983 3268+-2412 6545+-4650 -6718+-8687 4551+-7340 1076+-2826 -3947+-8335 490+5110 4913+-4012 -2854+1038 3767+94 -2728+-2051 4568+6587 -3386+-7438 -4279+2183 -1623+-4576 -1923+4616 7857+2897 -7687+4056 1227+-3157 -5193+-4324 -4584+4899 -7172+-345 1487+-5722 -1597+-3714 -944+2958 -8782+-1078 -1671+2862 -5979+4307 -86+4276 6883+-850 -6982+-129 -1159+813 -7519+1276 -4267+-5521 3779+361 4650+1591 -8902+-5818 404+-7188 -3518+6540 -4593+-7923 -5473+545 7417+-4997 -4557+-8195 110+-5022 4460+2375 6830+-4417 -2873+1429 7139+5585 1041+8636 -770+755 7392+4544 5370+6088 -4137+-4612 -1881+1039 4033+2361 8151+-1616 -7546+-2214 3484+-1051 -6607+-3884 1958+-6848 -1711+4731 -4443+5931 2487+-3716 2478+9126 -3411+2785 -585+-7454 -1433+6811 -6678+-3532 1542+1056 4963+1561 6291+-44 8123+-5813 -2738+-407 -7949+-2755 6796+5354 7200+-1366 -5641+-2896 8651+441 -9082+1054 84+5140 920+-3685 720+4596 -4341+-71 -3679+-4480 803+-7860 473+6240 1722+523 -6751+-3270 6450+-1023 -9366+7147 -1911+-7038 6603+1630 -1257+8108 2253+4250 1334+-1359 -7096+-6698 4181+3498 -2702+2436 5304+2577 3293+-7585 6150+-5390 -4169+-2128 -3328+-5689 3256+-6807 3363+-1559 9079+2192 -5554+-4344 5758+-5803 -2409+-94 4820+1663 3726+9119 1453+7087 -5553+-3787 3054+4813 -4817+4485 -2189+-2992 289+235 4997+8568 -3822+9358 422+1942 4021+-1221 -5921+-4530 2058+-2159 -208+-1650 7730+-8743 -3397+-2593 -5376+-5482 1423+-124 9469+-5059 -7783+-6443 2671+7782 5954+-5935 -5403+-7007 6709+6967 4799+8590 1448+4235 5326+-6464 2701+-7528 -5108+513 504+1307 4138+-6840 -4422+1275 9889+4644 -6588+2592 -8690+517 1117+-6758 -2894+-7382 1638+6580 6407+1951 1459+-5003 -3128+-6403 -3248+-3929 3909+3763 3607+-6162 7341+3198 -7930+-7313 -2105+-5277 5423+7328 -6300+-1556 -9164+-7096 -327+3088 6299+5906 -3020+-6954 1494+355 7700+3495 4322+-8131 4420+6291 6911+-5863 1417+-7342 -5442+-4567 5068+-2468 817+-3345 7112+278 7262+-1029 8194+-2022 -985+1814 7810+1034 -5361+-1939 -5783+-1442 -3801+-7907 101+8378 -2387+7578 5861+450 2926+-3502 6644+-7194 -1912+4853 -571+3055 -3386+-2250 -5493+-1001 -6643+1560 9277+-239 6428+8423 1080+1254 -7468+-8505 4712+-7906 -5247+-2919 -8738+4058 3640+7711 -5573+-1103 -1165+-7379 -5266+-1813 -1745+-8864 1416+-5831 -7772+5858 487+-5265 7684+9883 3+-1212 8663+6562 1755+-3504 -1305+-336 3122+3742 -7632+6435 -6528+3354 -4122+-230 2773+5153 -1481+-2854 -5603+-2211 3782+549 -4136+-6193 -6046+-5393 -1774+-2499 5364+-1261 8344+-5512 228+6739 -3937+-4128 305+-8111 -5414+-3140 -8065+2805 -4293+6313 7321+1399 5070+-2316 1076+4136 -6886+704 -2890+-2150 1689+-8132 2017+-883 -9944+-7292 1171+-7980 -940+-7621 -1680+-6238 -3316+435 -2471+-1565 -8503+130 -8397+4326 -2217+-6278 4905+3588 5253+-7207 -859+7427 6212+-6175 7812+5745 4112+7742 -871+8138 -4840+-5926 -4303+9709 2179+1424 5164+8705 -302+9225 3035+-5210 -4653+-4809 -6454+5833 7605+-9716 255+-2374 -3735+539 6883+7327 2847+1924 3998+4977 -3289+5038 -806+-2927 -5763+-8912 -1881+7958 3155+-4905 -114+2921 5310+5120 -4714+-1884 2420+-842 9190+-2877 827+-1718 607+5256 -536+892 1143+2760 -1059+1758 5879+-1345 -5424+-2325 -1794+4039 -937+-2321 -794+-1805 -3187+3088 -6676+1267 -9463+-7913 4270+-1505 4876+7829 -1262+6273 -7578+-1578 8931+5642 -2836+-937 8149+7910 -395+-9233 214+-1726 -7665+688 1999+-1393 2831+-9593 198+3473 -7144+-3341 -3066+748 -5311+513 5464+6037 -5911+-6165 4235+-7012 -5405+1674 9294+-1965 -8944+-4009 -5325+8506 3791+3046 -5823+4300 858+3731 5059+3270 4183+-973 -343+2183 4751+5074 -2119+4949 -6582+-1098 -9536+-958 7271+8508 2120+5686 4526+623 -6871+5433 3357+3085 -1070+4887 2018+-365 2677+2526 -6608+1618 7309+3466 7150+2703 3682+3109 3488+-6406 2579+-6593 -392+2794 -643+-3081 -2179+6058 -7237+4915 1534+413 -1743+-5332 1117+-2941 7613+2706 -5827+6809 6768+5212 -1036+-1778 6186+5882 3286+-541 -2482+-4425 -5562+9020 550+5491 -1253+-7097 3323+-1234 -4903+-2650 -62+6172 5237+4228 -1795+-6830 -1936+-6665 -5577+-683 5899+8487 -3367+420 6714+-2180 93+4226 8659+-5428 -1464+-1367 8945+-8345 938+-5415 -1042+6377 -4038+3544 7913+2494 -6553+-5173 5632+-1971 9366+8934 -3764+1681 -8918+-752 -6277+5969 -4335+5158 -4784+6045 -166+1976 -9056+-2625 -8934+1102 2648+-5541 -1959+1267 -3882+-8382 -163+3072 -3235+-5650 4209+5702 2455+175 -1278+3380 -7308+-3957 -6505+5963 -2269+3099 -5399+207 22+7123 1725+7122 6638+-9148 3966+1000+2150 4978+-7561 2465+-3574 3887+-5840 -7731+2602 -5577+-966 2562+3684 4281+-9101 2482+-4584 -6527+6968 1608+-5563 -7386+2478 1001+2829 8941+5687 -5482+9293 1465+1783 -7685+3654 -6461+5322 6487+2491 -8847+6949 -2035+1798 1244+2396 -6066+7389 -6372+1152 6963+1729 -9016+-8306 -3310+-4072 -8017+755 2289+-504 -6557+9932 367+-1375 -8690+1344 2101+-229 -5197+3661 -7323+-6952 3608+-615 3399+-6342 6078+6318 1295+8015 141+3229 9132+-3126 1368+4790 -2936+-5854 3051+395 -6196+1279 -575+-4863 2463+-4313 2894+-2935 1166+-6265 953+517 -8696+5655 -463+-6272 5803+-6471 2430+-31 9968+1383 2354+-7423 3906+-2623 -8081+3780 -6584+3102 -4202+5016 -5575+1272 -4949+-925 -8857+5621 -97+-1908 1366+-9729 -71+1208 -9242+-2868 1793+-1107 9151+-5428 2433+2453 -1931+-1920 4796+9175 -3271+-5902 29+-8688 1127+4240 -8813+2790 -3836+258 -9570+4200 5145+-3385 -3714+3554 7551+4964 -8335+-1788 -334+735 9792+1277 1962+-882 5449+2237 7045+1914 5232+2018 6750+-7432 3956+-5561 -3320+-4405 -3717+1919 -8974+7330 2517+-9682 114+2832 -1976+5069 2555+6328 3068+-5697 3496+-1211 -3292+-2255 5310+6651 2985+-3051 -8227+8963 -1021+2463 -5684+1934 7069+-5637 6406+-341 3445+1629 5417+5173 -8329+8605 -2127+4856 -4567+-4485 -6901+916 -3796+2898 -7008+2874 -1940+3841 -7059+2843 -5720+-4756 -5696+6474 -4567+-526 -5350+2002 -1266+-3393 -467+-3816 6023+-5863 3832+6252 7078+-8191 -3155+2691 1793+2539 2084+5971 1173+-4130 -2574+-5330 -4077+3109 536+-4730 5817+-5579 8043+5098 -5830+6442 -4286+1219 2661+5503 82+5100 849+-5559 6026+2034 -7179+-6194 382+-4776 7780+-3302 4772+6868 2741+5521 7082+7320 -4480+4930 3952+-4729 5917+-4046 4097+5102 -7152+1633 1490+-486 2287+-4887 1684+-5277 -7320+-1815 339+6146 6511+-3073 9010+8593 1684+4101 772+-4524 5078+5351 -575+-2011 -509+-4780 2842+-9286 -952+2730 1949+-3973 2903+8218 4439+-3068 -5504+5114 5885+7009 1649+-5226 -1157+269 6643+-566 6651+2122 -8651+3250 -1686+-6529 5971+6180 4372+744 8864+-8801 -3145+7682 -5489+5722 2117+-15 4665+3509 3809+313 6951+-6978 4128+1899 4922+-6146 4135+-5224 628+-3968 -7587+-1002 -7379+-5920 2142+-3589 -5465+-9167 3147+-3119 9001+-3791 7169+-1538 8040+-7276 4606+-2683 5616+-3805 -4845+2600 -5796+-3910 4465+4173 8733+-2105 7888+-45 2044+4288 -4207+3734 4672+-4956 -3803+7435 -175+-7892 5441+5453 -4928+-6585 6985+2482 -8276+2230 7167+-6961 3650+5844 -3310+-3116 5923+6182 -5132+4940 -1807+1873 -2734+1776 5320+-683 -3085+5432 7364+-8505 2600+-132 -5202+1828 -8048+-6791 5044+-3682 4834+1246 -1411+4894 -982+783 3852+-4077 1463+-5701 -2738+-5372 -7175+3977 7111+-1326 165+-2685 -4506+2808 -6358+3755 4792+-177 2290+-6762 4690+3218 -1836+-6377 5022+6946 2015+413 -8805+-5989 428+888 7166+-8318 -759+-458 -9183+-1016 470+-4397 -478+6538 247+-6606 -1977+3816 2560+-2727 -6208+1018 -5000+-3237 7244+-5582 -1987+8452 2711+-2959 6808+6052 2962+1531 5567+-2946 6642+-1140 1779+1731 -8928+3049 -7477+-2423 8026+4082 3028+-5185 -1385+3881 -4446+5699 -4775+-1824 -2790+-9010 1087+-4919 7266+9172 2696+-4450 -5952+239 -8697+-5177 4733+4651 -3355+2259 -3359+-6531 -5580+-5070 -8338+-4618 5385+4876 -7141+-3170 8125+-5449 5794+-1011 -2264+9626 -808+1528 -1488+6470 -2177+6915 -6979+9009 1735+-34 8193+2107 -3285+5180 -382+729 4383+-2196 5132+852 -6973+973 8772+-3841 -2139+-3841 2261+-6399 -6871+9515 -2084+-208 -4051+8139 -3245+2814 3318+1562 -8581+-2938 8936+6167 6461+884 -297+-1736 -6229+-8266 4338+9195 2751+2778 -4285+7130 -1799+-520 -8757+-6580 -6342+-1929 391+-1041 -425+6836 3568+3517 -8729+-7875 1293+-8854 4016+6247 -7481+-3058 5421+-6300 6893+5235 318+5248 -1153+4741 1363+-7125 2699+-5182 -5048+3612 -7452+-972 -479+946 -5486+-5129 -6599+1647 613+2628 8455+-8429 4193+9281 1783+-603 592+-4372 -2643+5434 5212+-9338 1991+1901 -7920+5936 3455+-1406 -3098+4722 -1088+-3209 5670+-7658 -3361+6318 7568+-2747 5444+-5475 5361+1090 253+9291 -3546+2306 6378+1685 -1355+-952 5431+1390 -7343+5620 3714+7964 -3061+481 4199+171 -701+-6672 -3220+-2690 -6726+-4578 2996+5676 -1452+4602 1107+-8460 -1551+2059 2002+4088 -6640+2294 1030+-3716 4551+-2685 -3277+-6699 -6029+-3947 694+4820 -8319+280 -6178+-6848 1200+-5682 7966+2592 -8394+2429 18+3633 3280+-7837 4396+8521 -2055+2824 3666+-1098 748+2983 4633+2799 -898+-5893 5741+7160 6547+8482 -4774+3533 -5318+507 -6460+-1119 8150+1352 -89+8904 1871+-6010 6875+7367 -4439+9188 -1781+1530 4062+7884 1288+3720 -4810+3224 -637+315 2989+-125 8943+6295 3206+-5529 955+-8061 5485+-239 -5470+-946 1844+-3461 -5721+-6397 -1663+-7179 3881+2217 7493+7792 2771+-1822 -8353+8016 -2058+-343 -2309+-1731 3959+-3858 3327+1034 -72+6451 -7435+-7619 -4122+-603 -5492+9134 2351+-3531 -4011+-2818 -7335+4399 -3444+-118 3490+8072 3538+96 910+-4701 -4049+7225 248+-673 3840+1711 -1691+-5635 -2643+3222 -2300+-2039 -8738+2204 -9258+-7839 2565+1965 -7887+-7064 6601+3392 3382+-4061 -7728+7291 841+2600 9545+166 -5749+-4855 3801+-3463 -7793+-24 4979+109 7634+8443 757+-4795 877+-427 -4283+-4089 -8515+3713 -2253+3557 4639+-3129 4976+-1090 -4852+-3445 1740+-8515 -4963+784 1732+-7637 -2240+-3050 6936+-2356 9186+8539 -814+4454 8360+9639 -1568+6274 -258+6537 4607+1050 -8873+5678 4672+3900 -2984+-3418 5939+7537 -727+-2005 -3960+-5303 -6137+4852 7681+-1346 3945+2380 -4459+-574 3417+-4136 -2436+-5216 -998+-1830 -7855+-1387 8137+-4807 1671+5220 4185+1028 1591+-4923 -6822+-6947 -1270+-7792 5+-403 2882+-4540 2645+-3976 -5149+-2810 -8202+-1922 -9604+6921 898+1268 4654+2446 -6083+-2539 7054+-9461 2903+-2788 5363+7428 3784+-2401 -8498+-4258 6623+-7204 1709+7138 4191+3612 -2844+-2289 8716+-2672 -3959+-2738 -4098+8593 -3006+9216 303+5478 534+-5872 -2055+-2051 -2264+1857 -5229+2047 641+3926 -2231+4357 -234+-5805 7089+4325 -1355+-2168 -1884+1329 -7614+-7542 1987+-6762 21+-8526 1938+1047 978+533 8848+3193 1150+-1134 -6682+-419 6032+-2165 -8078+-5093 4814+-7061 -1167+-7638 -5374+-6032 6551+-2517 2666+3298 -3632+1810 8695+197 6763+-2073 540+3150 5754+56 -8853+-468 -6797+-6146 5150+-7315 -4298+-6291 1205+-6418 3824+-1279 7233+5215 3883+5222 2057+-460 -6314+-4554 -2965+-2238 -3300+3607 -7604+1705 5667+-3726 1772+2712 -2271+4022 -900+-1026 8335+6988 -500+-9541 -2760+-9523 -1011+-2298 7563+-2304 7193+3831 -835+5578 -8106+-989 302+5758 -2282+2861 -1655+36 -1081+-2439 -1672+2990 -5715+-1579 -750+331 -5797+-8634 -4367+-2649 -4710+-8799 -333+-2264 -6791+3353 1160+2260 4907+-2507 3548+9078 -3319+-3365 5401+5435 -3756+-6885 4832+1096 -6873+978 2081+338 3091+-4709 -5166+-7222 -3944+-104 8717+9651 1290+6428 4418+954 1507+-1879 -9016+-4705 -1851+7437 -503+-7529 -3159+-4253 7332+-1464 -2779+-1067 -5711+-4681 -2246+1009 -4819+3304 8023+1360 1312+184 8147+1045 -4848+-5670 -8174+8112 -280+-1552 -8433+-1386 -1702+6463 -992+308 -5560+-1943 1205+-8613 5026+-5121 7458+-1312 -767+-541 -2358+-5492 2263+3737 982+-8282 -5500+-4724 -2282+58 1107+-1822 -7406+888 39+-4024 789+-7815 -5937+1358 8370+-3691 -8835+9134 274+1194 279+6221 -4319+5063 -3777+-5289 -6181+3245 -1889+-701 7456+591 -5365+408 -8305+5560 -4980+3938 7562+3874 8598+-5379 -716+625 791+4935 5268+642 7709+32 -1355+1480 9525+-1447 8494+-3257 8855+-1487 -5134+3944 -7334+5323 -7493+4784 7481+-4480 -6120+9590 -2189+-3554 797+4871 -3922+8012 -5122+-887 7891+879 7546+-5688 -3013+4283 -6831+6391 -769+-165 -9430+3393 8663+-1450 -3401+-6939 5013+6932 4154+1855 -2812+7342 -4053+-1314 7791+1878 8735+1986 3354+-8526 3858+-20 8098+-1776 6309+489 5132+-2896 4895+-3554 -3163+5908 3135+456 -3316+-959 -4372+-5251 1486+3624 2761+4238 -6157+-9161 3932+-7009 -687+3870 -2592+3550 -1245+-4852 7369+3734 -3417+5059 -3614+-2921 -4632+-6205 6251+6125 -671+7075 2007+-3616 -200+-1002 6948+151 -7904+-4473 5675+4467 -8425+-2382 -3352+6547 -6718+4726 7140+549 -9045+-8823 -3457+1721 8493+-2000 -4959+691 5289+-1892 -7569+5913 -3604+-1011 3182+5435 -259+1977 5161+-7668 -432+-637 -9479+-1991 1302+8020 808+-8954 -1431+2463 -3736+268 -7535+6203 6475+1558 2660+2671 5046+-1645 9555+6560 1138+-5218 7860+4197 3921+5704 220+2421 -3752+2130 -1981+2243 -3174+-3339 2825+-6060 -1745+-1766 8628+334 -4336+6525 -259+-7361 2458+-1686 -8319+1709 7536+650 1478+6637 7145+-5192 -72+-5086 5684+1320 -4675+-2408 1934+4760 -3364+-9024 -2653+-5318 2216+-4562 -4599+6024 2068+3557 -8378+-3628 -1152+3788 7401+6019 -7464+8231 -3479+-2648 7727+4879 -554+2880 -8065+-125 -6137+-979 -6715+-2584 4449+7081 3961+-2003 -4594+7077 -125+-4901 7882+739 -4721+5681 -6601+-9262 -2108+2054 6128+2256 -6702+1094 7909+-5627 -7876+320 -9075+2701 -182+7618 5713+6152 7561+1111 1588+6575 -6413+586 8939+384 -1885+-7110 -6306+3534 4475+-5773 805+1674 -9009+1061 -805+-520 -9635+-1272 -8109+-1072 -3664+-5333 -7450+501 -2122+-3295 -6886+2796 8129+1345 -6945+-2531 3275+1490 -6248+2371 8922+1548 -9051+1453 1638+-7211 -6299+-1159 -5889+-3874 5284+753 -5640+3763 -6767+1886 4423+208 -250+4930 658+-2558 6207+2275 -4522+-8918 2387+5133 2023+-2345 -928+2963 -343+-3755 7338+6281 3828+-154 -6255+4796 -6166+-1915 9760+9489 1316+-2803 2993+-8701 -2080+3030 -8375+-2795 4388+9002 -94+-3234 9213+-4601 -7021+2694 4320+-476 -9945+-4267 5646+2462 -2538+-1173 5373+1174 633+-4700 -769+1307 -2703+-8028 -1049+2526 -6456+7000 -5403+-4235 1093+-5075 -8073+-6466 -6654+9807 -250+-3526 683+-4109 -4660+-390 -7573+-244 -1971+5316 -2973+6134 -5748+271 6387+5407 6513+-5564 -7381+749 6787+1125 1121+4956 2947+4724 4329+4844 7960+-2650 -7338+-926 692+-1182 4347+3905 5907+-2918 583+-6532 -5552+-5411 4199+1836 571+3087 9366+931 3098+-6311 3214+1509 -5253+-4904 5278+1829 -734+8190 1495+-7863 -827+-7263 4969+-8394 5086+-3487 -4238+-1546 3035+3403 2162+-3621 -2925+2821 -1906+2337 8765+7050 1324+-6172 4206+4934 -7338+1841 -3012+5693 -6675+-204 -6210+-1498 -6732+-8089 -1963+4441 3309+7159 -1356+-4955 4936+-1560 -9114+7176 850+2852 -7025+7840 -3668+-9076 126+3250 3972+-5279 6606+1645 -7359+75 -5904+-537 -3161+7807 4932+2447 -7451+-3101 6231+-8172 956+3162 4295+-1870 3633+3487 -4055+-9138 4004+1292 2963+-5221 7682+-9682 484+1239 -1006+-6836 536+-5228 -396+-2296 7900+2463 4055+-581 -951+5012 -5227+-7135 -2303+6394 4452+8618 3961+-6402 2596+7583 4211+8862 -4155+-9590 -1723+3518 122+-4339 4866+2682 -288+5033 1159+-1083 4392+2915 7572+-6904 751+-3623 8630+229 -7738+-3667 6949+-1967 8344+-2081 8269+-5677 2932+828 -6314+2893 -9222+-6437 -2358+-6939 -2290+1232 8449+2219 -1712+3866 -4371+6775 -7036+7044 -6930+418 2718+-8537 -2077+1648 -5682+-6440 -400+-1923 487+-6435 -7103+2973 3756+1830 -7738+2514 -3792+7923 5712+6107 -6247+8243 -3241+-3312 -5388+-2190 -8195+-9391 1189+8166 2737+9395 3117+5085 775+7543 -6428+2432 -2641+4320 -3861+-2421 -2054+3698 3552+-1367 8118+1339 -9654+1285 9790+-1046 3579+3872 -335+-5468 -4789+-8617 341+-1284 3357+-3646 -2750+-3118 7625+6886 -835+-7262 3645+-151 -7700+-2252 9416+-2469 -554+5536 -4791+-7003 1936+1429 -9738+-1758 3292+6754 5289+-6804 -3488+44 7980+-1605 1891+3378 3083+-212 2624+-6064 -3460+-5704 939+-8963 -1564+0 0+1 0+2+2 1+2 -1+1 0+0 0+2+2 1+2 -1
+ examples/BAPC2012/G.out view
@@ -0,0 +1,49 @@+8001.941+1.000+1.414+2.828+1.414+1.414+2.828+1.414+1.000+1.000+1.000+1.000+2.000+2.236+IMPOSSIBLE+2.236+IMPOSSIBLE+1.000+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+28284.271+40000.000+1415.628+1415.628+1415.628+20005.304+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+24139.577+9754.896+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+9118.184+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+IMPOSSIBLE+1.000+1.000
examples/BAPC2012/Gunslinger.hs view
@@ -3,15 +3,16 @@ import Algorithms.Geometry.ConvexHull.GrahamScan import Control.Lens import qualified Data.CircularSeq as C-import qualified Data.Foldable as F-import qualified Data.List.NonEmpty as NonEmpty import Data.Ext import Data.Fixed+import qualified Data.Foldable as F import Data.Geometry.Point import Data.Geometry.Polygon-import qualified Data.List as L+import Data.Geometry.Polygon.Convex+import qualified Data.List as L+import qualified Data.List.NonEmpty as NonEmpty import Data.Maybe-import Linear.Affine(distanceA)+import Linear.Affine (distanceA) {- @@ -98,8 +99,8 @@ escape (Input l h ds) = case convexHull . NonEmpty.fromList $ (l :+ Luke) : (h :+ Hatch) : map (:+ Dalton) ds of -- all positions are distinct, so the hull has at least two elements- ConvexHull poly -> case C.findRotateTo (\p -> p^.extra == Luke) $- poly^.outerBoundary of+ ConvexPolygon poly -> case C.findRotateTo (\p -> p^.extra == Luke) $+ poly^.outerBoundary of Nothing -> Impossible Just h -> (distanceToHatch $ C.leftElements h) `min`
+ examples/BAPC2012/sampleG.in view
@@ -0,0 +1,12 @@+2+0 0+2 0+2+1 1+1 -2+0 0+2 0+3+1 1+1 -2+-1 0
+ examples/BAPC2012/sampleG.out view
@@ -0,0 +1,2 @@+2.828+IMPOSSIBLE
examples/BAPC2014/Armybase.lhs view
@@ -14,15 +14,14 @@ > {-# LANGUAGE GeneralizedNewtypeDeriving #-} > module BAPC2014.Armybase where -> import Control.Applicative+ > import Control.Lens((^.))-> import Data.Monoid > import Data.Ix > import Data.Ext- > import Data.Geometry.Triangle > import Data.Geometry.Point > import Data.Geometry.Polygon+> import Data.Geometry.Polygon.Convex > import Algorithms.Geometry.ConvexHull.GrahamScan > import qualified Data.Array as A > import qualified Data.Foldable as F@@ -90,10 +89,10 @@ > maxBaseArea :: PointSet -> Area > maxBaseArea [] = 0 > maxBaseArea p = case convexHull . NonEmpty.fromList $ map ext p of-> ch@(ConvexHull h) -> case F.toList $ h ^. outerBoundary of-> [_,_] -> 0-> [a,b,c] -> triangArea $ Triangle a b c-> _ -> maxAreaQuadrangle ch+> ch@(ConvexPolygon h) -> case F.toList $ h ^. outerBoundary of+> [_,_] -> 0+> [a,b,c] -> triangArea $ Triangle a b c+> _ -> maxAreaQuadrangle ch <div class="observation">@@ -105,7 +104,7 @@ subproblems, in both of which we have to find the largest triangle that has $p$ and $q$ as vertices. -> maxAreaQuadrangle :: ConvexHull () Int -> Area+> maxAreaQuadrangle :: ConvexPolygon () Int -> Area > maxAreaQuadrangle = maximum' . map (uncurry3 maxAreaQuadrangleWith) . allChains > where > uncurry3 f (a,b,c) = f a b c@@ -116,9 +115,9 @@ > type Chain = Array Int (Point 2 Int) -> allChains :: ConvexHull () Int+> allChains :: ConvexPolygon () Int > -> [(Point 2 Int, Point 2 Int, (Chain,Chain))]-> allChains (ConvexHull ch) =+> allChains (ConvexPolygon ch) = > [ (chA ! i, chA ! j, chains chA i j) | i <- [1..n-2], j <- rest i ] > where > n = F.length $ ch^.outerBoundary
+ examples/BAPC2014/sample.in view
@@ -0,0 +1,25 @@+3+6+0 0+3 7+10 0+11 6+0 10+10 10+5+0 0+-2 -2+3 -2+0 1+0 3+10+3 1+4 1+5 9+2 6+5 3+5 8+9 7+9 3+2 3+8 4
+ examples/BAPC2014/sample.out view
@@ -0,0 +1,3 @@+100+12.5+31
+ examples/BAPC2014/testdata.in view
@@ -0,0 +1,66406 @@+78+1000+-4853 -3443+1905 -6863+2021 6184+-5801 -1982+6622 1440+6910 -1931+1827 6277+-5033 4273+-2930 -5333+-5738 3246+-1436 6734+2959 -6561+4456 -5600+-6402 570+6483 1753+-1331 6753+5696 3053+-5811 3116+4383 4527+1418 6446+5966 2658+-2518 6369+6235 -3558+6222 2239+4517 -5548+-1793 -6077+6720 1183+-3443 5805+-6304 1750+-5653 3391+4064 -5907+-5444 3722+6802 924+6078 2480+5654 -4375+-4659 -3682+4527 4387+1608 6373+-1400 -6286+1520 -6920+-5881 -1815+3207 5481+-5888 2969+-6143 2382+-4527 4841+-2458 -5673+-4967 -3298+-1540 6713+-4638 4725+1112 -6933+1299 6488+-2926 -5336+288 6749+-6181 -1026+5515 -4541+-1343 -6314+-6124 -1212+-4974 -3289+-5359 3844+2835 -6618+5417 -4652+5449 -4616+-3809 -4584+5932 -4014+7003 -1265+594 6688+1511 6411+-6295 -570+6638 1400+1964 6212+-6344 -318+-907 6817+1742 6316+-6274 1902+-5507 -2500+6556 -2977+6809 899+1762 6307+493 -6875+1758 -6887+-5906 2934+6397 1931+5331 3518+-6372 -57+-6254 1995+-6179 -1033+2191 6098+-4228 -4162+-4218 5150+6740 -2553+-3 -6783+888 -6919+-5637 3418+5743 2988+-3220 -5109+6683 1283+323 6743+-6020 2696+-1217 6772+-5311 3912+6891 576+5124 3763+-2315 -5766+3897 4961+3665 -6176+7015 -1067+5630 -4404+7014 -1092+4584 4331+-3044 6074+-5299 -2832+-6125 -1209+-5978 -1596+7019 -516+-1849 -6045+-5862 -1855+6999 -1309+2631 5849+5940 2699+-3428 5816+2239 6072+6800 931+-5718 -2138+-1573 6706+6599 1494+1377 6461+6980 -1487+5387 3449+6221 -3581+2531 -6726+2231 -6800+-930 6814+-4474 4895+7021 -894+-2010 -5951+-6105 -1268+4671 -5411+-1840 6643+159 -6819+5057 3838+-320 6821+6831 -2273+2740 5784+-470 6830+5778 -4220+7018 -990+-6119 2451+-73 -6766+907 6608+-6398 859+-3754 5566+-1910 6624+998 -6927+6921 446+-1121 -6418+-3076 -5222+-3231 -5100+-2338 6459+1916 6235+-5601 -2341+-5457 -2582+-4077 -4317+4849 4060+4245 -5772+5673 -4352+443 6721+1314 -6939+-491 6831+6104 -3766+-6307 1733+-6354 -233+-6327 -416+-5600 3479+-4050 5309+333 -6851+-209 6812+2923 -6578+6696 1248+-1675 -6143+5259 -4827+6987 14+2204 6091+3909 -6018+204 6762+-890 -6513+3488 -6280+-4465 -3908+-6076 2565+1401 -6934+1192 -6936+3551 5231+6878 -2084+-6103 2495+6509 -3071+-5052 4250+-1141 -6409+-5777 -2031+1897 6244+3547 5234+-780 6832+-5157 4118+-6393 274+-6001 -1542+-6289 1829+6467 -3152+-2162 6539+624 6681+6895 -2004+-2613 6319+-6359 1385+6965 216+-6342 -333+6859 -2166+1461 -6927+-3184 5986+6965 -1603+5801 -4190+-6168 -1071+4375 -5668+3170 -6455+5596 -4445+-4352 5019+-6386 1107+-5504 -2505+-3132 -5179+-1570 -6200+-5027 -3220+5905 2753+-5662 -2236+5588 3196+7023 -672+1911 -6862+-987 -6475+-6208 2178+-3848 5487+3505 5265+4014 4862+6959 -1646+-739 -6569+-267 6817+6764 -2484+-1009 -6466+1786 6296+6891 -2023+7010 -286+-6140 -1162+3942 -5995+38 6785+-3526 -4846+6169 2329+-5846 3050+-5009 4302+-58 6797+-3689 5619+2622 -6700+1952 -6855+-6275 -657+7017 -449+-6010 -1520+4128 -5860+5226 3645+-5310 -2815+-4736 4617+3303 -6384+6932 -1812+3063 5582+-4124 -4269+2666 -6686+-6213 2160+-6130 2420+-3624 5670+-5222 -2948+4740 -5347+-6386 127+61 6782+1152 6536+2641 -6694+2442 -6750+14 -6787+653 -6896+-4415 4955+-6043 -1435+-5634 3423+-5991 2758+2783 -6641+7022 -858+-1619 6696+-4575 -3782+-5830 -1922+-6402 709+-6099 -1285+-4914 -3366+-5554 3553+3987 -5963+6842 774+397 6730+-5345 -2760+-3987 5366+-6378 1207+-1892 -6020+3443 -6306+7000 -125+5834 2859+-4351 5020+4236 4663+183 -6824+-3356 -4996+-2579 -5588+6641 -2798+-5180 4088+-6381 52+7007 -229+6055 2517+3852 4998+-3321 5893+6827 832+-5199 4063+2194 -6808+7002 -154+-840 6825+2296 -6785+-3906 -4489+6794 -2392+6876 638+-6366 -116+-6390 1042+-692 6837+740 -6906+1718 -6893+5242 -4845+657 6673+269 -6840+3524 5251+5505 3302+-1295 -6337+6024 -3883+-1162 6781+5434 -4633+-5763 3202+4400 4511+-440 -6666+-119 6804+4726 -5360+5864 2815+-6239 -805+607 6685+6119 -3743+-3402 5835+-6396 914+-5319 -2801+-5089 -3136+-6110 2476+6569 -2950+2098 -6828+1551 -6916+3697 5120+-2598 6327+-6221 -876+1630 6364+-4894 4439+-6373 -46+-3507 5758+-1704 -6127+4049 -5918+3390 5349+5474 3341+-1514 -6229+-5567 -2399+2208 -6805+-1988 6602+3071 -6506+2936 5664+-1957 -5982+509 6707+3873 -6043+-6397 888+-3373 5856+6994 -56+2444 5958+-3810 5519+-899 6818+-5434 -2619+-6403 641+-4903 -3380+-4164 5202+2542 -6723+7019 -961+-2643 -5542+5183 -4907+298 -6845+6188 2297+-6379 23+6923 -1863+5648 3118+-4813 4531+-4887 4447+417 -6864+-5231 4020+-1610 6698+5036 -5057+-6008 -1525+-6149 -1133+-6062 -1385+-4939 4386+6940 -1765+694 6664+-6393 990+-4562 4805+-36 -6775+-5112 4176+4471 4442+-3903 5440+5997 2609+-6382 1163+1237 6509+3541 -6249+3870 -6045+6065 -3824+6999 -112+6686 1275+-6017 -1502+2697 5810+1844 6269+-2549 6353+6985 -1444+6344 -3374+560 -6884+-5213 -2961+-5116 4171+352 6738+-3029 -5258+6896 555+2041 -6839+-2442 -5684+6713 1202+6903 525+-1284 6761+-1738 -6108+6992 -1377+6125 2403+462 6717+-5913 -1747+7013 -1111+7024 -741+6258 -3520+-1821 6648+-2867 6178+3106 -6488+5086 3806+-6280 1873+7014 -376+5026 3872+-6188 -1001+-2042 6585+4973 -5121+-5319 3901+-6353 1434+1717 6327+1240 6508+6982 63+-377 6825+6875 -2097+3438 5314+3650 5156+-1206 -6379+-1747 6666+-960 -6486+-3615 -4765+-3779 -4613+-5749 -2082+-1921 6621+6928 -1835+2368 -6768+1135 -6934+2161 -6815+-286 -6710+89 -6804+4106 4781+-3252 5941+438 6722+3753 5077+-5776 -2033+-6371 1275+1256 -6938+853 -6916+2609 -6704+6398 -3279+3364 -6351+4816 4094+3886 -6034+-2076 -5912+3604 -6212+364 -6856+532 6702+-6387 145+5827 2869+-1276 -6346+-6025 2685+6213 -3594+2663 -6687+-619 -6610+-3270 -5068+-2884 -5367+3891 4966+-1477 6726+-5639 -2276+-6401 756+2438 -6751+6511 1694+-5403 3781+2732 -6663+830 -6914+-6317 -467+5508 -4549+4077 4807+-1033 6800+-6049 2631+-4828 4514+-591 -6619+6534 1645+6670 -2733+-3249 5943+-4503 -3865+3994 -5958+-6399 448+796 -6911+-6394 965+6149 -3696+6919 -1884+4978 3924+-3694 5615+-6232 2089+-2485 6386+7021 -585+-3896 5446+-6319 1663+941 -6923+1751 6312+-968 6809+3079 5571+-2754 6243+-5548 -2431+6274 -3493+1223 -6937+-3154 -5162+-678 -6590+-3163 -5155+464 -6871+5601 -4439+6916 468+-6210 2171+-6337 -364+-1066 -6442+-3918 5427+6853 -2191+6580 -2927+-6238 2064+3264 5440+-4605 -3747+2325 6025+-1290 6760+-4653 4709+4660 -5421+5686 -4336+-6255 -740+-2319 6468+-4255 -4134+4647 4267+-3137 6017+-5723 -2129+7007 -1209+-2020 6592+6821 -2307+-2214 6516+-5577 -2382+-2193 -5841+4915 3991+6763 -2487+-4161 -4231+3775 5060+5215 3658+2461 -6745+-5697 -2175+-4405 -3974+-2071 -5915+1783 -6883+1654 -6902+5980 -3946+1212 6517+-3762 -4629+-2682 6282+6751 -2522+-4667 4694+6570 1562+5095 -4997+-3337 -5012+6746 1107+-5284 -2855+6370 1980+-877 -6518+3135 5532+2891 -6593+5737 -4273+1061 6564+1091 -6932+-5117 -3097+6422 1880+80 -6802+5626 3147+1123 6545+-6067 2588+-2903 -5353+3476 -6287+7011 -1144+-4562 -3797+6781 -2432+-5948 2848+4904 -5189+-2920 6147+6951 -1700+-5122 -3090+-6403 639+6283 2134+-2704 -5498+4524 -5542+6834 -2262+-4119 5245+-187 -6737+-6206 -934+6993 -45+5788 -4207+6745 1110+6664 1333+6198 2280+-6401 526+3200 5486+6724 -2597+-6385 111+-6384 1136+6948 314+-2001 6598+2057 -6836+-6270 1921+5843 2846+-616 -6611+-693 6837+5524 3278+-1420 6737+-5483 3664+-5065 4234+-5935 2875+-1583 -6193+1581 6384+-6302 1761+7005 -1238+5560 -4488+4431 -5621+2881 5698+5015 3884+-6304 -529+7015 -400+-5920 -1731+-4436 -3940+-1104 6790+-3835 5498+6099 2446+128 6773+6829 -2280+5535 3264+471 -6872+6761 1060+6255 -3525+-531 -6638+-6396 347+-412 6827+2240 -6798+2513 5918+1360 6467+-32 6794+1033 -6929+6859 707+-4283 5087+6260 2174+5148 -4943+-2260 -5800+2578 5880+-6338 1544+6646 -2787+-2817 -5416+-3265 5932+-5682 3342+7012 -329+3234 -6421+-4594 -3760+5738 2995+6789 969+-6042 2647+-136 -6750+-4496 -3873+6726 1166+6451 1820+-3572 5710+-5723 3272+-756 -6563+-6392 1009+4430 4482+-4796 4550+-4766 -3551+-2450 6404+4876 4032+-1618 -6174+-1223 -6371+6958 262+-6231 2093+-354 -6691+6102 -3769+-1467 -6253+-6394 298+7002 -1277+6612 -2860+2359 6006+257 6754+6398 1929+2692 5813+4539 -5529+-6311 1710+-4975 4343+-6052 2624+-5949 -1664+1336 -6938+-4693 4665+6303 -3444+27 -6790+5314 -4767+-4446 -3929+-2302 6476+2940 -6570+4310 -5721+-4276 -4112+7020 -550+-5777 3177+3977 4894+-5481 3667+-5254 3989+-5417 -2646+2814 5739+-3276 -5063+-5376 -2711+6957 268+-1370 6746+-3000 -5280+3784 5053+6952 -1694+4299 4605+541 6700+4469 -5589+-2170 -5855+-4820 -3484+-5159 -3038+6502 1713+6982 -1470+-2586 -5583+-6270 -678+-4884 -3404+-2514 -5634+5280 3580+2142 -6819+6480 -3127+-1097 6791+1020 6576+-5498 3641+112 -6809+6963 231+-4189 5178+-4039 5319+7024 -743+6359 -3348+-4980 4337+-6344 1501+3014 5614+6731 -2578+1498 6416+-4394 -3986+6770 1031+6344 2027+2470 5943+3958 4910+2296 6041+6688 -2690+6686 -2695+6969 185+-1130 -6414+-2983 6110+4350 4558+3325 5396+6631 1418+-3678 -4707+-1021 -6461+-602 6835+3587 -6222+-4311 -4075+-3729 -4660+-6361 1368+5875 -4091+-224 -6727+6663 -2749+4785 -5304+-1823 -6060+-6331 1592+-175 6809+2791 5753+-3850 -4544+-5206 -2971+808 6635+-6238 -809+-4294 -4093+-1692 6679+-2045 6584+-4195 -4196+2088 6151+-4621 4743+150 6770+-6160 2330+-6065 2593+4315 -5717+-6300 -548+2414 5975+224 -6832+-6092 -1304+6852 -2195+4214 -5796+1687 6340+-2743 6249+-2350 -5744+-399 -6678+6128 2398+-393 6826+-5614 3456+1528 -6919+-4710 -3620+4147 4744+-4105 5258+178 -6823+-3964 -4432+-3593 5694+1725 -6892+4972 -5122+-1817 6649+3758 -6119+-6400 483+6901 -1975+-6257 1982+6629 1423+5274 -4811+-6389 184+-3963 -4433+5288 -4796+1642 6359+-6181 2265+-2111 6561+6860 703+-1165 -6398+6975 131+7008 -247+-797 -6548+2971 5642+4608 -5468+2313 -6781+7023 -811+-571 6834+-3366 5861+-2855 6185+-6403 640+3375 -6345+6909 -1936+1014 -6928+4839 -5252+5852 -4122+5918 -4033+679 -6899+6938 365+-6336 -370+3219 -6429+-3393 -4964+-2119 -5886+6974 -1536+2135 6127+-6378 10+-6361 -165+5940 -4003+4810 -5280+-5959 2825+6432 -3218+3621 5178+-6381 1175+5595 3187+1991 -6848+6925 427+5920 2730+6673 -2726+-2966 6120+7024 -742+7006 -213+-6348 -287+-5890 -1796+975 6589+5357 -4719+-5075 -3155+-6173 2290+3841 5007+-3485 -4883+757 6648+6384 -3304+6175 -3655+-5859 3025+-6200 2205+-6391 227+6971 168+-1521 6717+-6282 -627+-6075 -1350+-502 -6647+6802 -2367+-5592 3492+1313 -6939+845 6625+4023 -5937+-5528 3594+4193 -5812+-3288 5916+3698 -6156+4585 4330+-1675 6683+-6350 -270+-514 6832+6527 -3036+3092 5562+-6288 1834+1469 6427+583 -6887+7022 -628+4745 4167+-4026 -4369+4201 4695+5183 3695+-5243 -2917+-3456 -4909+-6364 1342+5117 3771+5196 3680+6541 1629+6339 2036+-2393 -5716+-2822 6204+6925 -1852+5067 3827+-848 -6529+5710 3034+-2391 6433+3012 -6535+6038 2544+4698 4215+-4357 -4026+-5167 4105+3805 -6088+4782 4129+6318 2073+5780 2936+-2471 -5664+-2769 -5451+6697 -2667+-5005 -3249+-715 6836+4897 4010+7017 -1016+157 6769+-2270 6491+5931 2713+-6398 414+-6330 1598+1838 -6874+-5297 3931+-6298 1782+-1096 -6429+-232 6814+-3077 6054+3139 -6471+-1137 6785+-635 6836+-6065 -1377+-5478 -2548+5733 -4278+1589 -6911+5820 -4165+-6400 792+-3580 -4797+5441 3382+-1587 6703+4932 3973+-6142 2385+1000+1647 4095+-6681 -1072+-3060 3697+-3173 3625+-79 -8770+-1099 4505+-6637 -2621+4515 -6640+-1440 -8484+-1826 -8326+-4887 -5924+-5705 -4778+-6725 -1799+-4499 2595+5531 539+-5271 -5420+3965 2510+-3573 -7254+-4176 2881+-2318 4115+-2327 -8083+4738 -6409+-6727 -1670+5421 711+4367 2086+-5359 -5298+5921 -4764+3021 3317+4070 2407+5035 -6083+-2433 4056+-6700 -2230+-5970 -4332+-4816 -6008+-971 -8632+-1918 4293+-1064 4509+-6720 -1958+-3429 3452+4789 1591+6012 -316+3362 -7604+-2098 4216+4305 -6840+5115 -5986+-3473 -7336+-5622 1332+-6567 -554+3160 -7746+-6710 -2123+876 -8741+-1295 -8538+-1312 -8532+-5893 -4467+-4639 -6212+-6561 -534+-3245 3578+6548 -2561+-2695 -7883+-214 -8762+-5156 -5576+-6183 372+5434 691+-6013 -4253+-1554 -8440+6503 -3152+-2051 -8223+5834 22+-655 -8701+-6673 -1017+3733 2730+-4229 2836+6347 -1190+-3028 -7669+3752 -7312+4919 -6214+476 4470+-3816 -7046+-6305 112+1652 -8559+-6376 -3488+-6604 -2762+-3744 3225+740 -8754+334 4496+6264 -4024+-6623 -769+6346 -3802+-6146 444+-6416 -142+4 -8773+6535 -2162+4177 2293+-6705 -1290+-6260 210+219 4515+-6682 -1079+-6628 -791+5389 760+-6483 -313+3798 -7275+-6129 -4035+6514 -3068+4637 1777+-1191 -8572+5936 -4735+-530 -8724+-6038 -4207+4614 1804+-351 4546+-2211 4165+-6678 -2393+-6706 -2170+5047 -6069+-3346 -7438+-4546 -6317+3965 -7139+1701 4071+-2521 -7981+-1218 4488+-2888 3803+6513 -3076+-4387 2698+5791 101+2881 -7928+-1239 -8557+5715 -5133+6301 -1044+4852 -6288+6521 -2001+-5667 1264+1076 -8712+1543 4140+-5081 -5675+-6314 92+3744 2720+793 -8749+-4316 -6567+-3237 -7521+6110 -4378+-2304 -8095+1311 -8657+-6653 -909+5649 -5241+-6692 -1155+-6649 -2562+1819 4017+3997 -7112+-3001 3734+-1186 4493+-5665 -4841+845 -8744+5127 1141+-6192 -3913+1765 4042+-3977 3044+-3647 -7192+4250 -6891+5892 -4820+-6550 -2960+1055 -8716+-6727 -1669+-698 -8693+6547 -2590+-1421 4443+-4914 -5891+-2965 -7711+-6597 -664+2447 3692+-6635 -823+-6716 -1434+1110 -8705+-5828 1010+-3936 3077+293 4503+6038 -370+6537 -2195+1776 4037+-345 -8751+5878 -59+-4799 -6028+6541 -2273+-1758 4352+2342 3750+-5610 1349+412 -8774+6210 -4153+6381 -3700+6412 -3590+-690 4538+-1949 4280+4676 1731+-3200 -7548+3488 2944+-1649 4384+-6717 -1452+-4968 -5822+-4742 -6094+-3674 -7169+-6095 -4100+-6289 -3705+-2748 3884+1770 -8511+-3548 3368+1681 4080+3183 -7730+1437 -8624+-2754 -7846+112 4525+-6703 -2204+-1682 -8388+6510 -1913+166 4520+4393 2057+-4901 -5907+-6697 -1198+-5894 902+-6711 -1365+-809 -8670+-5613 -4922+4387 -6763+-1607 -8419+-1487 -8466+1579 -8583+-6621 -2692+5426 -5587+2440 3696+3167 3207+5353 -5686+2709 -8034+-6604 -691+-6721 -1527+-4144 2908+2453 -8180+5275 -5786+-857 -8659+6494 -3214+-2764 3875+-5225 -5483+-1097 -8599+4568 -6586+-6587 -2826+6522 -2990+6442 -1539+5218 -5858+1535 -8596+-919 4523+4250 2214+6505 -3137+-3605 3327+-3339 3515+6437 -3491+6430 -1488+-5955 -4359+630 4439+-1236 -8558+5656 334+2699 3536+5839 -4919+1995 -8413+-906 4524+-4484 2609+-1944 -8273+-6714 -2069+-6336 43+-6311 -3653+4894 -6242+-1880 -8302+-1360 4458+2418 -8199+6183 -4215+-743 4535+3307 -7643+6405 -3616+6489 -3245+5173 1077+2908 3397+-5974 766+-398 -8746+843 4388+-6366 -3515+5557 -5388+5526 547+5389 -5638+-6443 -207+1470 -8615+-1166 4496+6518 -3033+5916 -131+3039 3304+-1714 4365+1739 -8524+5046 1252+-5976 -4321+-6234 -3825+-479 4546+1308 4235+5189 1054+4600 -6553+-4099 -6784+-6698 -2247+-6713 -2083+5528 -5434+64 4529+-528 4545+6159 -644+4700 -6449+-5128 -5613+-756 -8682+-2597 3968+1631 4102+-2560 3988+4628 -6524+-6693 -1163+4118 -7009+-5490 -5107+-5916 865+2137 -8347+4708 1693+-6106 -4079+3920 2553+5683 -5186+-4356 -6524+3704 2756+-6726 -1736+-6657 -2521+-1616 4393+-4418 -6457+-5576 1396+2783 -7989+5362 801+3116 3247+-3510 3395+3891 -7200+6431 -1492+-1642 4386+727 -8755+-5023 -5751+-3362 3499+5967 -4675+-6652 -904+6237 -4089+-3824 -7039+-3579 -7249+-4882 -5930+2643 -8073+-1773 -8349+564 -8766+-2814 -7808+2916 -7906+-4644 2458+4141 -6989+5927 -152+-4793 -6035+-2687 -7888+-6296 -3689+1820 -8490+-6499 -3128+-6340 34+6361 -3759+-6507 -3103+6547 -2495+-4297 2778+-810 4531+-5346 1691+-5098 1983+-2594 -7941+-3917 3092+-305 4545+-1999 4259+5606 -5310+3147 -7755+-2057 4234+-4566 2532+-6057 -4172+-5970 773+1375 4209+-5605 1356+3066 -7809+5241 -5829+5983 -4644+-5751 -4704+6502 -3159+-5031 2057+-3802 3181+3241 3148+1181 -8689+1370 -8642+1996 3930+2569 -8115+4376 2076+4977 1345+-6689 -2318+-5397 -5243+-6680 -2380+-5959 -4352+-81 4538+4137 2336+-5042 2045+3942 -7158+-4320 2758+3495 2938+5791 -5004+3865 -7221+6275 -964+3058 3290+-1234 4485+-6523 -3051+4320 -6826+5564 486+5659 329+928 -8735+6544 -2341+2516 3652+-5294 1755+6382 -1310+2786 3480+979 4351+-5013 -5764+-4249 -6638+1116 4307+5776 128+4489 1948+6532 -2866+6499 -1838+6548 -2562+3738 -7323+3678 2779+-6018 688+6161 -4265+5135 1130+6089 -480+-6727 -1671+-5707 1203+-6525 -429+81 -8775+6388 -3677+-1810 -8333+1423 4190+3337 3070+1851 4002+3394 3023+-3327 -7453+2812 3463+-3516 -7301+-4918 -5886+4782 1600+-6240 -3812+-590 -8713+-1955 -8268+6382 -3697+1164 -8693+4720 -6428+4465 -6689+-4899 2197+6485 -3266+1060 4326+1984 -8418+920 -8736+-6217 -3861+6216 -795+6263 -929+-4429 2660+-100 4539+577 4451+-6664 -965+6455 -1596+1007 -8724+-3748 3222+6501 -1851+-3634 -7203+-4397 2689+6539 -2232+287 4504+2508 3657+-5214 1852+6531 -2108+2194 -8318+-2921 3783+4735 1660+-2280 4133+1878 -8465+767 4407+4857 1503+-6003 715+1722 -8531+5171 -5917+-2163 4187+4516 -6639+-2991 -7694+-3993 -6885+6004 -4603+6081 -4441+-751 -8683+-5221 1844+-6710 -1352+6408 -1405+3250 -7683+2575 3615+1242 -8674+-4807 2293+-3210 3601+-6634 -2635+6025 -4560+-2240 -8128+-1862 4316+-5736 1157+-6318 -3636+2742 -8014+-5155 1919+-5443 -5176+-3883 -6987+-6115 504+5962 -219+-217 4543+2814 -7970+5780 121+2277 -8275+-6031 664+6542 -2704+-6614 -2722+-513 -8727+3761 2704+6524 -2027+-2174 4182+-3823 3165+4239 2226+-5622 -4908+5887 -76+-1055 4510+-5532 1455+511 -8769+-2459 -8014+4069 2408+5343 829+-6469 -3221+-2275 -8110+-2993 3739+-291 -8756+5443 677+-6361 -3528+918 4368+4218 -6920+1683 -8547+6458 -1610+6470 -1669+-4855 -5962+2635 3577+-6526 -3041+-6391 -3447+-57 -8771+35 4531+-634 4541+3683 -7366+3031 -7832+5859 -24+5322 -5726+-3739 -7113+-3415 -7383+-412 4547+6489 -1777+-4248 -6639+-1107 4504+-6327 -3614+-4081 2960+907 4371+5329 -5717+2415 3710+6546 -2432+-2822 3842+-1024 4513+6548 -2560+1617 -8571+2927 -7899+2650 -8069+3560 2882+-6668 -2454+4968 -6159+-6066 -4155+6328 -1128+411 4482+-5350 1686+6534 -2148+-2030 -8233+2139 -8346+5852 -4895+3369 -7599+6322 -3869+-6299 -3682+4844 1520+5397 -5627+-3218 -7535+-3292 3547+2528 -8138+5833 -4930+2714 -8031+-6338 -3587+3148 3222+5488 -5495+708 4421+994 -8726+-6720 -1508+6538 -2779+6334 -1147+-472 -8734+-3670 3280+-2316 4116+4902 1444+6527 -2061+-5929 843+678 4428+6518 -1976+-5551 1430+1428 4188+-2497 4022+1503 4157+5624 387+-1158 -8582+5264 945+-1490 4426+-6565 -547+1477 4168+4304 2155+-6609 -2743+-4779 2322+-2406 4070+-1796 4340+-6442 -3302+-6204 329+-5454 1555+6456 -3408+-6724 -1856+-5508 1486+-6718 -1999+6425 -1469+-6012 699+2969 3354+-6454 -3267+6148 -617+-2962 3758+2215 3817+3116 -7776+455 -8772+3855 2615+3491 -7511+-6537 -3004+6061 -419+-4302 -6582+5311 876+-280 -8757+-3106 3668+-6717 -2019+-5397 1627+-1793 4341+6078 -456+5167 -5922+2096 3879+6013 -318+3331 -7626+-2917 -7742+-6480 -3187+6478 -1710+-3667 -7175+4496 1940+6386 -3684+3645 2808+5042 -6075+-5710 -4770+-1374 -8509+-5743 -4717+-5314 -5361+4208 -6929+-1086 -8602+6545 -2375+3565 -7456+-6561 -2921+-3295 3545+-6355 0+3426 -7558+6541 -2723+6358 -1227+-5838 -4560+6117 -542+-4429 -6445+-3148 -7585+-1115 -8594+-260 4544+-4034 -6846+3113 -7778+6418 -3567+5750 -5074+-6362 -16+172 -8777+-6668 -986+349 -8776+-6688 -2325+1614 -8572+5595 435+5797 90+1133 4301+-972 4518+-6568 -2896+6135 -4323+-6726 -1641+4030 -7084+-5878 -4493+-4555 -6307+2462 -8175+-413 4547+-4580 -6279+3310 3092+101 4526+-3931 3081+3294 3105+-5568 -4991+-6723 -1890+5431 -5580+3723 2739+-2106 -8196+3695 2764+-1901 4300+-3087 -7628+-946 -8638+-6257 -3775+-153 -8766+-1022 -8619+6435 -1509+6537 -2797+4679 -6471+6389 -1335+4000 2476+-3857 -7010+-4044 2990+-4747 2355+5150 -5943+4620 1797+4336 2120+-5624 1329+2994 -7856+6182 -703+-243 -8760+-1602 -8421+1039 -8719+1872 3992+6120 -549+-3912 -6961+-879 4526+-4668 -6179+5977 -248+3400 3018+-5916 -4427+-2394 -8048+-6156 -3983+5372 -5661+-3862 3135+6474 -3322+4739 1655+3522 -7488+-6412 -3389+3455 2972+-3486 3412+4401 2048+6449 -3440+6444 -3462+-1173 4495+-6591 -641+-4572 -6288+-4917 2178+-4290 2784+-2707 3907+-6540 -472+-6162 413+-5073 2011+6304 -3918+-6716 -2036+-4961 -5831+-4879 2218+-6684 -1094+6197 -743+-5539 -5035+-6235 264+-1983 -8255+-4694 2409+-6182 374+-5368 -5285+-4970 2122+-5862 955+-2641 3944+1057 4327+-1312 4469+-3207 -7543+3468 2961+-2626 -7923+-5329 1712+519 4462+1465 4173+987 -8727+-2574 -7952+-6431 -3334+2227 -8301+4050 -7067+6538 -2212+6187 -716+-2829 3838+4791 -6353+5737 196+-4695 2408+5218 1012+2849 3438+2101 -8364+-6724 -1586+2032 -8396+4976 -6150+-5352 -5308+-6513 -3084+-1549 4411+1463 -8617+-5306 -5372+5540 -5415+3623 -7412+5714 236+-4515 -6351+3674 -7373+-2175 -8161+6545 -2645+300 -8777+3644 -7396+3598 2849+5579 -5353+-3902 -6970+-2456 4044+-6389 -78+-6458 -245+-4483 -6386+-5245 1815+-5719 1184+126 -8776+-4121 2927+6425 -3540+6473 -3327+-5226 1838+-5420 1598+5180 1067+2585 -8106+885 -8740+-6697 -2255+2125 3864+-98 -8769+-5501 1495+5445 -5560+3569 -7453+1927 3965+-1255 4481+6290 -1010+-3701 3257+5066 -6046+-3923 -6951+1919 -8447+6003 -4605+6055 -406+1012 4341+-6616 -740+6320 -1103+-6071 589+-2803 -7815+4439 -6714+6157 -4274+4563 1863+631 -8762+1261 4253+5092 1189+1804 4024+-6289 147+-6191 -3915+-6646 -875+-5036 -5734+936 4363+6519 -1984+4834 1533+-5600 -4942+6139 -595+-5774 -4666+-3874 -6995+-1831 4328+-5835 -4565+3902 -7191+2148 3852+-591 4543+-6395 -3436+-2619 -7927+5572 473+2254 -8287+-6046 636+-122 4540+-6100 533+2381 -8219+5027 1278+-1860 -8311+4460 1981+-5541 -5032+6467 -3356+-6141 -4012+-4709 -6132+-1343 4462+233 -8778+6212 -784+-3489 -7323+4703 1699+-1644 -8404+2061 3897+-1998 -8248+5699 262+-1656 -8399+4949 1382+-466 -8735+6526 -2941+-5785 1079+-3295 -7478+-6268 -3751+4863 -6276+-6560 -531+6252 -897+-5147 1928+351 4493+2395 3721+6233 -842+-2373 4087+6175 -685+1594 4118+234 -8778+6371 -1271+2624 3584+-3541 3373+4111 -7015+3814 2654+-3777 -7080+2318 -8253+6344 -1180+-2878 -7767+-3940 -6935+-2632 3949+-4675 -6171+-4179 -6707+4722 1676+-5206 -5509+5486 610+-1289 4474+-5758 1122+-1722 -8371+-6501 -362+6110 -526+572 4452+-3326 3524+2738 3511+5360 804+2280 3783+6531 -2879+5443 -5563+-3420 -7379+3236 3152+-5803 -4618+3757 -7308+-4858 2240+5795 -4997+6132 -578+4123 2351+-5522 -5060+1195 4278+-6584 -615+-6610 -2739+-3853 3142+-4618 2483+792 4401+-3095 3675+6279 -3986+38 -8774+5867 -4867+6176 -4231+-2893 3800+2822 -7965+700 -8757+3028 3312+5824 -4946+-26 4535+-4144 -6741+-6354 -3546+-183 4542+3637 2815+6056 -4495+-4070 2969+5950 -196+-4209 2853+6126 -4343+5737 -5096+-6701 -1241+-887 -8652+6509 -1906+-5568 1407+4530 1901+1133 -8700+1000+7839 1831+-5326 -1240+-5369 -12+4056 5978+2148 -6959+4571 -5761+716 6592+-3305 3935+2090 -6975+-2271 4963+7840 -1642+800 6614+6026 -4398+5397 -5042+-4497 2390+5544 4919+2769 6544+1707 6709+5943 -4487+-5384 -189+3624 -6366+2282 -6920+-2162 -5779+-3868 3280+1989 6694+1165 -7098+6886 3523+2727 6557+-5285 456+1892 -7024+1924 -7017+-5106 1108+-406 6191+-2347 4895+7522 2501+6777 3658+-1676 5451+-1429 5619+-5212 -1748+162 6419+-236 -6842+-1103 5824+-2208 5019+-1789 -6045+4184 5905+-4681 -2985+8139 720+-1393 -6292+7767 -1821+-5253 596+-46 -6909+-2390 4856+8074 -852+22 -6931+8044 -983+5294 -5139+7661 2222+2621 6587+192 6430+7639 2267+8023 -1072+6977 -3249+8185 196+-2763 4503+6137 4366+8107 910+8027 1276+-902 -6555+-277 6247+8147 664+7347 -2676+1231 6689+7482 2579+4200 -6019+7313 -2735+7985 1417+643 6572+-3476 3742+-5351 -1087+7043 3317+-1610 5498+4773 5524+7073 3276+415 -7029+-5197 813+5827 4668+-522 6139+-3855 3296+1619 -7069+-4438 -3418+-1378 5652+1574 6710+-4276 2731+-3735 3440+1009 6658+-4901 -2545+-2233 -5726+-2642 -5399+-2512 -5505+-5194 -1804+-539 6131+5109 -5308+-2955 -5130+7582 2383+8106 -696+-4855 1707+-4847 1724+6421 4067+-2503 4752+-1600 -6167+-2318 4921+5034 -5375+-5080 -2134+8092 994+-2097 5116+-1579 -6180+1991 -7001+-5232 685+-2395 -5599+6250 4250+-3656 3533+2747 -6762+-3780 -4287+7961 -1294+5354 5077+-3058 -5034+5049 5320+-4370 -3528+3223 6380+5247 5163+5751 -4688+5303 5118+5606 -4837+-2753 -5306+100 6396+6447 -3920+-263 -6832+5781 4711+-5282 -1476+7540 -2313+-4036 3067+-4672 -3002+-5238 660+-3953 3173+6400 -3975+239 6447+-5283 465+-4607 2198+7268 2964+2227 6667+-2182 5042+6622 -3712+5309 -5125+2294 6656+-791 6002+6715 3732+-1898 -5970+6313 -4076+2951 6483+-971 -6521+-329 6225+-3924 -4119+256 -6996+-2936 -5147+7541 -2311+8172 -253+6875 3537+8016 1317+-4372 2588+-1268 5722+4779 -5594+4791 5511+4293 5840+6864 -3404+2501 6617+3120 -6612+3244 -6557+1217 -7097+-5225 -1704+-5368 -4+-4118 2956+-5315 309+3880 6073+951 6648+4288 5843+-5348 -1107+-1721 5418+1491 -7084+7291 -2772+2376 6642+7288 -2777+-5386 -232+5239 -5190+-2586 4674+8159 -383+-3248 3997+6655 -3672+7324 -2716+8177 347+-5395 -559+-5386 -734+8083 -810+7549 2448+-2112 5103+-2104 -5822+7364 -2646+-1882 5293+6383 4108+-3609 3588+2586 6596+-1265 -6365+8159 564+7837 1836+3264 6363+7971 1460+3330 -6518+-4772 1879+-1908 5272+5892 -4541+-4792 -2768+-2579 -5451+-5288 442+4742 5546+-5148 979+-1776 5377+-4622 -3095+-4477 -3351+1382 6703+-605 6099+-4294 -3646+6107 -4310+-4041 -3978+-4793 1836+8186 174+-4750 1924+-4993 1393+4849 -5536+7876 -1551+-3429 3796+-3121 4133+7404 -2574+-5383 -777+7755 2024+-4691 -2966+-1561 -6191+-3019 4240+-1929 5255+4059 -6109+3553 6236+-973 -6520+-2857 4407+4903 -5490+8182 -38+-3459 -4637+-5275 -1508+4512 -5805+8096 -747+-5157 -1917+4286 -5963+4580 -5754+4391 5780+5438 -5003+-1035 5865+8165 -333+2599 -6817+308 -7008+1172 6682+-5219 -1725+-5383 -169+-3630 -4454+499 6530+2436 -6872+-2607 -5428+8167 -316+-5373 -898+5986 -4441+5398 5041+2629 -6806+6167 -4243+8186 173+-3986 -4045+5809 4685+1421 6705+7897 -1495+2417 6634+-2672 4592+8023 1291+7890 -1514+5554 -4890+-1502 -6227+7681 -2017+8048 1196+3912 6056+-3662 -4419+5961 4539+4973 -5429+1050 -7095+7190 3095+3352 6326+300 6467+-5350 -1094+8150 642+-79 6327+5919 4580+7484 -2423+576 6553+-3751 -4320+-4002 3111+4220 -6006+8130 -570+4647 5612+8164 511+444 -7034+-2337 4904+-3972 -4062+-2877 -5199+7509 -2374+-5249 -1614+6744 -3560+-5379 -103+5079 5297+-5170 907+-4560 2282+7111 -3053+8013 1328+-5046 -2223+7328 2860+-4921 1561+3087 -6626+-4282 -3663+-26 6348+355 6485+8156 -405+7195 -2926+-1629 -6149+-3496 -4598+3642 6193+2928 -6691+-4963 1465+7210 -2903+-1004 5883+-2893 4370+8169 -297+-3728 -4346+6702 -3613+-3347 -4752+3494 6264+5553 -4891+1945 -7012+946 6647+4720 -5642+2788 6538+7087 3256+-1982 -5911+5849 4647+-3376 3856+64 -6944+-146 -6875+8171 -269+-5271 518+8131 -564+8170 -284+-2229 -5729+4493 -5819+7351 -2669+2990 -6666+-3592 -4495+1118 6675+8064 1130+-1149 -6428+-4970 -2398+404 6501+-4707 -2935+3762 6134+2101 -6972+7163 -2975+-5394 -583+4612 -5729+-1320 5689+2837 6522+7020 -3187+-3831 3325+2760 -6757+-5180 -1847+6526 -3827+-3703 -4374+-1216 -6392+1741 6708+7692 2158+5181 -5243+-2243 4988+-5129 1040+2726 -6770+7149 3160+-3235 4011+-3799 -4265+-3316 3923+1680 -7061+2071 6687+8168 468+1111 6674+4567 -5764+-4073 3017+7430 2677+1350 -7093+-5393 -420+3145 -6601+7638 -2111+-5337 -1176+4474 5727+3765 -6287+-2606 4655+65 6383+846 6625+3525 -6419+4018 -6135+-4583 -3165+2358 -6897+-5000 1376+-4419 2516+-4503 -3306+7146 -3001+-3855 -4200+7939 -1366+-2062 -5853+7754 -1852+-4404 2539+-3018 -5072+7337 2844+-2815 4450+975 -7092+1070 6668+2075 -6979+-5222 -1715+2131 6680+4401 -5885+4888 -5503+564 -7054+-4181 2869+7920 -1427+8117 853+-5305 360+802 -7081+7441 -2506+3827 6101+-5338 -1170+4895 5435+-1495 5576+3054 6445+-4448 -3401+7712 -1948+-3215 -4882+-5387 -718+-3346 -4753+-5257 -1583+4007 6005+7814 1893+-889 5948+8007 -1132+6499 -3859+6590 3878+7973 -1253+-5376 -71+7954 -1317+3313 -6526+1259 -7096+5831 -4605+2535 6609+-4168 2887+-4822 -2707+-667 -6667+-5102 1119+7662 -2059+6909 -3343+-453 6170+6287 4211+-2707 -5345+-5105 -2065+1021 -7094+6583 -3759+-4838 1743+-4500 2385+-4930 -2484+7226 3036+6646 -3683+7761 2011+5062 -5350+-4399 -3482+-4546 -3231+3483 6269+-5076 1187+-2258 -5707+6954 3435+-5390 -323+-5216 745+5928 -4503+-5391 -648+5643 4834+-5004 -2323+-3864 3285+-568 -6710+4226 5880+4352 5804+3458 -6454+-2703 4562+-4533 2329+-607 6098+-4472 2431+446 6514+-4126 -3870+3012 -6657+1949 6697+7374 2778+-1543 5544+5494 -4949+-4277 -3670+7784 -1780+3957 -6173+3680 -6335+-3128 -4967+2347 6647+-5266 540+-1975 -5916+6247 -4152+2908 6498+-5378 -90+2531 6610+-160 -6870+5498 4958+260 -6997+1673 -7062+-5377 -80+7068 3283+4602 5643+741 -7076+8184 33+8057 -927+-4870 -2609+-734 6032+7925 1596+4802 -5575+-473 -6750+-5395 -561+8128 789+-117 -6885+-5048 -2218+5668 4812+7646 -2094+7498 2548+-3761 3409+660 -7067+-562 6120+7867 -1574+-4718 1987+-1036 -6488+205 -6983+6972 -3256+4121 5942+4580 5658+6396 4094+105 -6956+3795 -6270+-2762 4504+-5134 -1983+8062 -905+7463 2615+4853 5466+44 6375+5024 5339+-5323 268+1915 -7019+87 -6951+-804 5995+6849 3570+-432 -6767+-561 -6713+-3522 3689+-4939 -2465+5620 4854+6069 4433+3897 6064+2215 -6940+-4163 -3822+-4009 3102+8182 261+-2829 -5241+-974 5900+7067 -3118+-4976 1434+2345 -6901+-4537 -3247+-5350 116+4855 -5531+-2064 5144+5138 -5282+-4573 2259+8177 -155+1441 6706+-1106 -6451+3068 -6634+2170 6675+8151 -439+8073 1089+7730 2078+3162 6404+-3335 3902+-3907 -4139+3582 -6389+-5028 1307+-4899 1610+6571 3900+-5269 -1534+2840 6521+-5355 85+5727 4760+6220 -4183+-3036 -5055+2937 6488+5648 -4794+-3603 3595+-4426 2505+-2456 -5550+-1951 -5933+8175 376+6138 4365+7263 -2818+8175 -198+-2448 4803+-137 6304+7791 -1763+-4871 1672+3764 6133+7245 -2847+-5392 -384+-2518 4738+7919 1613+5746 4743+6006 4495+-1780 5374+7239 3014+3894 -6211+8183 -3+-1811 -6030+-4791 -2770+-3137 4116+-5356 -1051+-4693 2036+8076 -843+690 6585+8079 -829+-4355 2614+-5055 -2200+8015 -1103+1323 6699+5132 5255+374 -7021+6959 -3274+6096 -4322+-5384 -763+2704 6564+4467 -5838+2387 -6888+1626 6711+-5232 -1678+1300 6697+7413 2708+-5380 -118+-5292 423+2123 6681+1902 6700+7115 3213+2981 6472+7584 -2223+-4435 -3423+7721 2097+-5273 -1517+-3404 -4694+-4320 2666+-4964 -2411+-5390 -668+8114 -655+-5023 -2280+8142 700+5794 4699+-2563 -5464+2062 6688+-3708 3472+6126 -4289+7563 -2266+7893 -1506+-5236 -1663+1671 6710+6338 -4047+4334 -5931+-5085 1164+-2990 -5098+1326 -7094+2292 -6917+5358 -5079+4456 -5846+-1683 -6114+7274 -2800+7731 -1905+7782 1965+3319 6340+-3101 4154+-762 -6623+1782 -7045+-1409 5632+7871 1747+-4758 -2835+4999 -5406+-3040 4218+-1786 -6047+-1720 -6090+-3170 -4926+-2567 4692+-1702 5432+6195 4307+-605 -6694+1532 6709+842 -7084+7472 2598+3396 -6486+8087 1020+2050 6689+5463 -4979+-667 6067+1084 -7096+-4404 -3474+7988 -1200+2483 6621+-692 -6656+-851 -6580+7795 1936+-5367 -960+-5378 -843+1465 6707+-774 6011+-5049 1255+-4650 2119+-5128 -2000+-5360 52+8186 172+1625 6711+-1521 5559+-5204 -1773+-4826 1768+-1166 5786+-5394 -489+3398 -6485+-5099 1127+1560 -7076+8146 -472+3353 -6507+4111 -6076+1796 6706+1120 -7097+1816 6705+-3195 4054+-5182 866+4370 5793+-2288 -5684+7819 -1694+6453 4032+8169 456+6698 3752+8003 1361+-2341 -5642+-1121 -6443+-4186 2862+-4940 1518+-4639 -3064+-4991 -2352+3134 6415+1869 6702+170 -6974+3693 6168+-1789 5367+5613 4860+-5224 716+668 -7068+-1941 -5940+3565 -6398+6552 -3796+-3551 -4539+290 -7004+1147 6679+3 -6925+1468 -7086+3742 -6300+31 6370+-2960 4301+-703 -6651+-1330 -6329+-818 -6596+-4556 2289+6758 3681+922 -7089+6763 3675+8160 -375+7617 -2155+1003 6657+1788 -7044+1840 -7035+8181 281+2691 -6783+7995 1386+433 6510+7040 3321+7583 2381+-3967 -4068+-5374 -54+6778 -3517+8104 927+-1227 5748+-5359 -1029+-2822 -5247+995 -7093+-3003 -5086+-4095 -3910+-1856 -5999+-1435 -6267+-221 6270+5684 -4757+7896 1678+-4890 1630+-190 -6859+8129 783+497 -7043+-371 -6791+6991 3386+729 -7075+7085 3259+-4324 -3600+7161 3141+685 -7070+-4660 2100+4420 5762+-833 5979+5912 -4520+8127 -586+-4252 -3704+-5395 -560+-1089 -6460+5370 5064+509 6533+-3547 3660+8066 1121+6342 4152+5186 5212+-3278 -4820+4699 -5659+2106 6683+-2993 4267+-5316 -1297+6800 -3489+-1497 -6230+1721 -7055+6267 -4129+7858 1782+8181 -64+6039 -4384+867 6630+1409 -7090+6519 3959+-4229 2800+6793 -3498+2686 6569+4577 5660+5810 -4627+4953 5392+-2647 4616+-4058 -3957+-2852 -5221+1166 -7098+-5340 177+2014 -6995+5020 5342+7195 3087+4732 5553+-528 -6727+2491 -6854+7398 -2585+5433 5012+6394 -3982+7948 1530+3197 -6578+7294 2919+4312 -5946+889 -7087+-5339 183+8141 -503+-1988 5207+8178 331+876 6632+4309 -5948+6300 -4091+4689 5583+6827 -3454+3027 6455+-2000 -5898+-2011 5188+6659 -3667+-5391 -349+-5377 -855+7613 2320+8180 -87+3826 -6252+-5313 -1314+-4200 -3773+-5368 -951+-4358 -3547+-1518 5561+3940 6041+-5163 930+1370 -7092+7217 -2892+2870 -6714+-330 -6807+-3605 -4481+-4249 -3708+303 -7007+-4522 2348+4673 -5680+7846 1813+-3152 4100+8168 -307+-3911 3226+-343 -6802+-4749 1926+3595 -6382+5377 -5061+-1665 5459+-3792 3372+6832 3591+701 6588+7451 -2487+5784 -4654+1845 -7034+-5301 -1381+1644 -7066+6494 3987+3609 6209+-4454 2460+5128 -5291+-5381 -134+-3509 3704+3121 6420+899 6637+-5389 -300+-5365 18+6917 3483+-49 -6908+8029 -1047+-3456 3765+-5067 -2169+621 -7062+-354 6214+2552 -6834+-199 6279+6542 3933+8174 390+1770 6707+4766 5529+8158 573+2488 6620+2817 -6735+-2058 5149+4511 5703+7690 -1997+-4296 -3643+720 -7074+8010 1338+-5336 199+-4848 -2654+-4731 -2888+8174 -218+-5296 -1407+7229 3031+8141 707+7629 -2130+4169 -6039+4183 -6030+-296 6239+8060 1147+777 6608+-4084 -3924+3396 6307+8040 1227+-951 5913+-4613 2187+-4483 2413+8185 102+-3987 3130+6646 3813+-1821 5342+3458 6280+-1392 5643+3359 6323+1000+-1712 -3044+-6158 -847+106 9712+-7779 5066+4747 1374+-608 9820+1621 8996+4487 6195+-5049 8297+-4293 -2352+5044 2075+1673 -1878+-50 9746+-8168 2709+3399 7508+-1950 9723+-4513 8677+-8144 2484+1419 9128+-8145 3836+4710 1306+-4997 -1854+-4564 -2173+-3510 9241+-4320 8804+-7993 4465+-5543 7908+-1851 -3050+-7929 4667+394 -2572+2584 -1203+-7846 1415+4157 6659+-351 9795+-4405 -2280+-5588 -1369+1226 -2162+-5150 -1733+-7180 313+-2726 9535+-6351 -652+4067 332+-7356 5866+-7830 1381+-7712 5222+-4271 8835+4464 882+446 9600+3782 -24+1690 8949+5239 4493+5249 4431+4845 1570+545 -2507+-8161 3722+-4107 8934+-7621 5402+-1676 -3042+5316 3685+-708 -2905+4306 6463+3444 7462+-7238 396+-6740 -235+-5458 7979+-6131 7375+3417 -434+-7665 5318+1074 9324+1173 -2192+4322 676+5086 5075+5280 3000+5249 2816+-6291 7210+-4082 -2477+-4195 -2412+-7443 5719+5316 3560+-101 -2745+-2013 9712+2340 8458+5305 3246+4956 5395+-2773 9521+-7584 5470+4211 6590+2714 8145+-6083 -920+4931 1772+5214 2657+3112 7788+-8191 3154+-2266 -3044+4588 1090+-8179 3530+-3273 9346+3358 -497+-3893 9052+5023 5244+-7765 1256+5078 5098+-4458 -2245+-8167 3671+-6052 -950+-8094 2185+-5956 7541+5124 4964+4235 557+-8186 3386+-8031 1923+-6503 6977+4825 1526+-4634 8595+2605 8239+-3197 9374+-4381 8764+5317 3624+-4731 8528+-8183 2933+5227 4557+5157 4853+-148 -2759+-533 9815+-2998 9446+-1985 9717+-7320 519+-3968 9012+2835 -989+-8123 3960+-8060 4235+1859 8830+-7860 4862+-7972 4532+4168 6645+2977 -862+-3114 -2898+4556 6089+3827 29+167 9695+-728 9826+5287 3054+-3041 -2919+-3744 9128+5024 2018+5043 2072+-8043 1967+3 9735+980 -2296+-8154 3776+213 -2638+-7952 1678+-5802 7682+-7539 858+-7419 670+5313 3764+-1162 9820+-1691 9765+-8116 3993+-7771 5085+939 -2317+5166 2468+1072 9325+-7795 1313+-6472 7012+1208 9253+-3164 -2881+780 -2396+-8171 2746+-4373 -2301+962 9379+-7704 1144+-3948 -2548+-7960 1701+-571 9818+4086 357+-4342 -2321+-6318 -686+4177 479+-6686 -296+-5884 -1106+3533 7370+-6526 6951+-496 -2857+-8190 3216+-3883 -2580+5183 2530+5300 3990+-7723 1178+-6248 7256+-5344 8070+-7277 454+-4516 8675+12 -2709+5270 4292+-8157 2587+4768 1414+-2332 9644+-7092 195+4687 5881+-2539 9589+-7388 5813+4957 5393+-8182 3475+1097 9312+-7921 1593+5298 4017+5165 4824+-7850 1424+4634 1171+-7109 6219+1446 -2028+-5641 7824+4508 6163+5297 4030+4283 6495+4403 6322+3791 7095+-2883 9486+4921 5463+-2456 -3027+-2980 -2936+-7699 5250+1279 -2131+-2208 -3047+-8035 4326+-8088 4119+3935 162+1184 9266+-5504 7941+-8191 3153+5282 4198+-7916 1580+-6888 6513+-7892 4775+-8135 3899+-3450 9269+2810 -1011+375 -2579+3970 6891+5312 3390+-3693 9153+5293 3105+879 9419+1366 -2078+2703 -1103+-2981 9452+-5577 7879+-8187 3359+5203 4671+-8030 4343+1103 -2231+-5642 -1322+-6545 -449+-936 9828+3949 6916+-2341 -3039+-667 -2896+4986 1914+636 -2465+-5479 -1463+5195 4706+4687 1265+-6824 6595+3930 6938+2825 8048+3178 7726+4252 580+-5423 -1510+-7487 5642+-4733 -2054+3866 7011+240 9674+-5044 -1817+5081 2190+-6665 -319+3284 7623+-1198 9818+1361 9164+-2531 -3018+-741 -2912+-861 -2936+3990 232+-5986 -1012+-525 -2864+-8185 3411+2476 8347+4014 263+-1551 -3033+-2546 9587+-4606 8614+-3637 -2695+-8134 2414+-343 9794+3975 6885+-8136 3893+3196 -658+-2133 9688+-2523 -3019+-7931 1620+4940 1794+4514 963+-2397 9628+5307 3878+-6453 -546+-6437 7051+5313 3417+-4102 -2466+-3576 -2722+-7459 732+4482 910+-2071 9701+-5773 7708+5156 2433+5260 4362+-6002 -997+1426 -2041+2175 -1521+-4741 8521+-7051 6297+2878 8001+-8173 3611+1118 9301+-8101 2219+-2604 -3008+1866 8825+4100 6731+-4798 -2007+-262 -2792+-7998 1812+494 -2530+-2709 9540+4294 6480+-1321 -3009+-3836 -2603+1507 -1988+-7201 6093+-6960 6419+-2650 -3001+5282 3015+-1230 -2996+-6221 -785+421 -2561+-1323 9809+2630 -1165+-4100 8938+-3946 -2549+3257 -599+2649 -1149+4844 5607+-1812 9746+399 -2570+-542 -2868+-4125 -2453+1584 9021+-6494 -503+-834 9830+-2612 9568+-7126 6196+-2207 9672+4804 1483+-6035 -966+-5584 7873+-7552 5527+-2886 9485+-1885 9734+-4928 -1908+-6000 7500+3161 7742+5242 2783+3697 -123+-8149 2521+-1415 -3021+5186 4743+-7774 1273+516 9573+4619 5991+5150 4878+-7868 1465+3898 116+-7248 6026+-270 9784+3477 7428+2925 7959+5097 5043+2353 -1385+2054 8684+2000 -1650+-6367 7128+5304 3927+-2285 -3043+-7168 296+-5373 8047+-2819 9507+5028 5232+724 -2423+-7031 117+1924 8783+4364 6380+1019 -2276+1009 9356+3579 7322+-6777 -193+4374 750+-4547 8654+-7042 131+1531 9056+-8190 3091+636 9526+1321 9188+-5913 7581+-7500 796+619 9533+4325 6436+-1405 -3020+-6772 6660+342 9639+-8169 3652+4626 5980+2126 -1558+-8069 2070+2070 -1599+5136 2366+5292 3096+4891 5520+4779 1435+-3598 9199+2710 -1097+4926 1760+-3359 9310+-6997 74+4585 6044+5143 4902+-3268 9348+-7561 895+5289 4126+-181 9770+1732 -1838+-8184 3434+-5330 8081+4665 5918+1348 9172+3598 -236+648 9521+3724 7168+4545 6106+3244 7662+2956 7931+4417 812+-3062 9423+-1553 9785+-6232 7273+-413 -2835+894 9412+-6598 -392+-5692 7780+-2166 9681+-1617 -3038+-3916 9040+-7430 687+4040 6806+-3550 9222+-2409 -3032+-6610 -379+-8166 3680+5125 4961+4972 5361+3126 -724+5186 2541+-5281 -1628+5161 2450+2456 -1305+-2040 -3054+-5699 -1272+-599 -2881+-3654 9172+4351 6399+-4981 8348+3759 7130+-4285 -2357+-2671 9551+-6273 -732+-3971 -2536+-175 9769+-6804 -162+-7784 1292+2237 8540+4900 5503+1258 9225+-6864 6544+-8172 3623+5004 5288+-5523 7925+5262 2883+-3707 -2664+-2378 9633+-6941 6444+-2275 9657+5308 3301+4576 6058+-3291 -2835+-7007 6356+-6849 -109+2123 8630+-55 -2731+-2699 -2993+-2097 -3052+-7918 4701+-165 -2764+4838 1554+-8189 3059+5271 2940+-1098 9823+-7708 5231+-7878 1488+-1183 9819+5283 4189+-6220 -786+4286 6491+227 9678+356 9634+-6898 6500+-5498 7946+-4495 -2220+-4879 -1946+-4718 8537+-402 -2832+-6844 -115+-6175 7332+-7823 4959+-3935 9030+2558 -1224+1074 -2247+4367 740+-8010 4410+-7199 340+-7924 1601+-3753 -2643+-3419 9283+3010 7882+4401 6325+763 9471+-7999 1815+-2961 9459+-7275 451+-140 9763+-3134 9397+2401 -1348+4722 5822+-3510 -2750+-1744 9757+-3522 -2745+4869 5561+-6656 6800+-1023 9826+3832 35+-8184 2952+3507 7397+3736 7155+87 -2683+-7904 1549+-7971 1733+-8057 4246+-7814 4982+-477 -2852+-5684 7787+3671 7225+-8103 4052+3665 -160+1958 8758+3209 7696+5098 2244+3655 7242+3301 -556+-2734 -2987+5229 2724+-3295 9337+1094 -2236+1844 -1761+-7338 5894+3864 74+3812 7072+3504 -340+-8109 2260+4849 5598+4446 6257+-7382 613+-5000 8334+-7679 5291+-7653 5341+5277 4240+-7695 1128+-8105 4043+5310 3824+1397 -2059+-8162 2639+-4944 8375+-7719 5206+3620 7279+-7627 1008+-6118 -886+-1516 -3030+-7664 1073+-224 9777+5299 3165+-8164 3697+-1050 9825+5309 3843+-7225 377+-5933 -1061+-5851 7638+3939 167+-3493 -2757+-8174 3598+5055 2109+4897 1691+5220 4591+1233 -2158+1776 -1808+-7450 718+-6974 45+-6627 6834+4678 1249+-8088 2156+-7800 5016+-7405 5784+-7642 5362+-7016 98+-4758 -2036+-7085 186+188 -2647+844 9435+-4132 -2449+1587 9019+-3527 9233+5110 5005+-7678 5293+5279 2993+-1824 -3049+4805 1485+-5709 7765+3535 -306+-7984 1771+-2461 9611+5266 2908+5030 5227+4024 276+-5350 -1571+-2819 -2971+2928 -906+2297 -1428+4830 5632+-7831 1383+1061 -2254+-2472 9608+-7897 1532+3493 -352+4757 5761+-7157 281+4133 420+-4235 -2388+1867 -1745+576 -2493+3039 -805+4949 1817+-8172 2759+-6571 6899+4613 1134+-4983 -1865+1735 8918+-7718 1169+-7493 785+-203 -2775+-2693 -2994+2499 -1271+5317 3622+-418 9803+-1776 -3047+-1938 -3052+-1392 9803+-8074 4178+107 -2676+4821 5648+2669 -1132+4791 1458+-1358 9806+-4461 -2243+-7361 581+-2877 -2959+4647 1194+5266 4321+5057 5156+1539 -1967+49 9725+-3390 -2797+-3718 -2659+-3216 -2863+-2002 9714+-5799 -1183+3444 -405+-7508 5605+-2303 -3042+-2824 -2970+4123 6702+-3230 -2858+-3948 9023+-6813 6609+4218 6581+1499 9077+5310 3342+-1617 9776+-5752 -1225+-4240 8854+-8140 2455+-7948 4608+5275 4255+3652 -175+5261 2877+-1459 9797+4834 1545+485 -2534+2170 8593+-465 9808+-7902 1544+-7196 6100+-1482 -3027+-835 9830+-5171 8204+5311 3365+1042 -2264+-989 -2958+2276 8509+872 -2351+-5275 8124+1228 9242+-2349 9640+-2773 -2980+4073 6765+-304 9789+-8140 3868+-7743 1215+-6174 7333+3989 6868+-589 9819+5312 3785+-2146 -3050+4569 1057+-4047 8968+3431 -419+-8077 2105+-6070 7434+-7840 4915+4905 1710+-7561 5511+-8060 2033+-2039 -3054+-3746 9127+2624 -1170+-7596 954+-5321 -1595+-7462 5686+-4448 8720+417 9611+3374 -480+2447 8371+5050 5175+-8178 2849+-1257 9814+-890 9829+-1130 -2981+-7748 5139+4966 1861+-777 9828+5119 2311+1760 -1819+-924 -2947+653 -2457+2899 -932+-1111 -2978+-1763 9754+676 -2446+-1257 -3000+-4650 8584+290 9657+4993 1933+-8163 2650+-2912 9476+-3977 9007+-3421 -2785+-7867 4843+3053 -792+-6305 7195+-872 -2938+-8123 2345+1574 -1944+124 -2670+1884 8812+-995 -2959+-1183 -2989+-3813 9093+-803 -2925+-8174 2786+-3196 -2870+-8114 2289+-6529 -466+-8186 2991+-4805 8476+-4176 8893+-6381 -621+-8156 3761+4753 5768+-8040 4308+1800 8872+-4832 -1982+1468 9097+3629 -201+-8153 3783+-6431 -569+2549 8286+-335 -2813+1411 9133+-6633 -354+833 9440+-6809 6614+2563 -1220+-5437 7996+3563 -275+-7160 285+3903 6969+5042 5196+3873 85+3072 7825+-7120 232+3082 -765+-750 9827+-6947 11+-8039 1952+5317 3623+614 9535+-7521 5582+-1062 -2970+5214 4620+-6863 -92+-8189 3272+322 9646+-5124 8240+-3249 9355+-7631 1015+-8156 2578+323 -2598+-1644 9772+5314 3459+5020 5251+5231 2733+-8187 3012+-8017 1874+-6823 -140+-1984 -3053+-6318 7181+-4300 8817+-5227 8161+-666 9823+38 -2700+-7241 6036+-3488 -2759+-6409 7082+-2901 -2954+5300 3178+-5432 8000+-3463 9263+5308 3861+-8188 3317+5288 4137+3950 181+870 -2352+2482 8342+-7894 1525+-3768 -2636+-7340 5891+-6701 6747+-6031 7471+1642 -1899+2250 -1464+2005 8722+5315 3504+-8151 2536+-5214 -1682+-7291 5964+5074 2168+3346 7562+-4058 -2490+3059 7837+2407 8404+-7805 5004+4212 526+2818 -1004+589 -2487+-3992 -2525+1251 9229+4874 1637+819 -2377+-4609 -2142+5169 4809+4910 5484+-7086 6250+-1076 9824+5235 4516+4327 683+4301 647+4994 5311+-7898 4758+-889 -2941+547 9561+5295 3124+-2923 -2949+-5830 -1155+-6539 6936+-1893 -3051+-3854 9072+2655 8196+-7955 4586+-6378 7116+3753 -58+-1510 9791+5315 3717+5047 5183+-981 9827+-55 9747+4466 885+3557 7345+5290 3079+-6407 -594+-3368 9306+4142 6678+-6914 -30+27 9730+5177 4778+-8113 2283+-4413 8743+-68 -2735+260 -2621+4976 5352+-5529 -1420+-1364 -3015+-3087 9414+2107 -1572+-8191 3152+-4222 -2396+4790 5703+-8181 2898+2768 8098+4531 992+-8024 1898+3300 -557+3347 7561+5200 2598+-3101 -2902+-4874 8426+-8182 2915+702 9498+5018 2001+-328 -2811+-1469 9796+-1798 -3048+-5078 8275+-5356 -1566+3128 7773+1931 -1700+-1879 9735+2767 -1048+9 -2710+-4153 8907+4246 6544+-2124 -3051+1302 -2117+1857 -1752+5294 4067+1639 -1901+2109 8641+-4740 -2049+-2570 -3013+-2806 9511+-5927 7568+-6747 6691+3157 -695+2470 -1294+2204 -1499+-7917 4704+-1691 -3043+-8051 1998+-6706 6741+-7175 6129+-5111 -1764+5298 3153+-5946 -1049+-101 9756+-4674 -2096+5240 4487+-3320 -2824+-6738 6702+1000+-4307 -2360+8679 1526+8686 -844+5498 -5288+-2941 -4304+8812 36+2151 7227+1036 7146+-246 -6302+8754 -494+-4873 427+-1038 6156+-3948 -3021+8818 504+3087 7093+5805 -5012+5897 -4926+8811 631+-1694 5619+7090 4517+1164 7169+-3466 3740+4262 -6186+3345 7036+2548 7185+-3937 -3039+2383 7205+-4834 -544+-4059 -2831+7404 -3291+4324 -6149+-404 6587+8306 2679+2635 -6741+-3676 3475+5720 5832+5715 5836+8757 1093+-4414 2340+-2751 4581+302 -6512+6962 4662+8780 934+8277 2742+3092 7092+-4851 666+8697 1433+-4829 849+-4630 1755+-4442 2279+7194 4397+-4655 -1440+5671 -5135+-4401 -2155+-2131 -5092+6131 -4702+3310 7044+7967 3333+8608 -1160+5049 6300+8164 2972+-2718 4617+7150 -3597+-4885 101+1673 -6768+-1359 5907+8801 764+4554 -6003+8693 -812+-4819 -644+8592 -1219+-2402 4944+8535 2090+-1849 -5329+-3580 -3548+8514 2152+-1152 6072+-4787 1107+-945 -5952+7550 -3109+-2057 5282+-3917 3149+-4770 -926+-721 -6078+-4339 -2293+-4701 -1268+7020 -3752+-70 -6376+8544 -1390+-3745 -3322+8353 -1889+-4748 1293+7416 4127+3839 -6403+-1753 -5406+-4798 -773+-4786 1112+3542 -6523+-3965 -2993+2418 7201+8736 1222+6668 -4155+-4654 1668+-3334 -3855+-4550 -1776+-375 -6245+6017 -4812+8425 -1723+4436 6637+-2282 5064+-4422 2323+2087 -6793+-2523 -4734+-3809 -3231+-4681 -1344+2664 -6737+5381 6079+6340 -4495+-1622 -5503+-3952 3099+5381 -5388+8661 -952+8815 79+3352 -6584+3162 7077+-2741 4592+813 -6636+949 -6663+-4640 -1493+1520 -6752+-4882 -6+6823 4814+-3015 -4223+-205 6701+-307 6645+6953 4672+6889 -3905+5332 -5429+8195 -2173+-616 6452+347 6954+759 7082+1049 -6682+-3211 -4000+8808 -18+-4723 1401+-1713 -5436+-3155 4114+6689 -4132+2822 -6712+4446 -6073+8661 1616+4646 -5940+-4478 2195+-4816 943+2511 7190+1635 7226+-1782 -5383+1413 7204+1555 -6756+504 7008+7710 3733+-2647 4692+6993 -3784+8781 -286+-4879 -76+4741 6483+-4597 -1641+7855 -2700+-1100 -5858+4143 -6252+3888 6873+2799 -6716+4838 -5806+-4866 518+8058 -2397+2265 7217+-1348 5916+-4131 -2701+-1649 5659+2846 7139+-2491 -4765+2907 -6696+6166 -4668+4945 6364+-4487 2172+1261 -6718+7813 3582+6070 -4761+7886 3470+-3999 3030+3686 -6468+-1740 -5416+8804 -69+6220 -4615+3663 6953+-3873 -3136+-4303 2543+-3010 4286+-2124 -5098+-527 -6174+6808 -3998+2756 7155+6559 5087+-4858 600+-4053 2950+4770 6467+8501 -1517+6890 4741+8549 -1373+5678 5865+-4103 2873+8128 -2284+1325 -6727+-3727 -3347+-2182 -5048+6675 4969+-4605 1842+-1195 -5797+533 7017+-1733 5584+1130 -6697+8366 -1861+5121 -5599+2942 7121+7186 -3554+8666 1592+-1523 -5574+6462 -4370+6656 -4168+2460 -6762+7770 3646+-4879 341+8760 -453+7353 -3353+-1988 -5213+192 -6476+3314 -6595+1208 7176+-152 6729+-4828 857+-4612 -1591+-3612 3558+1116 7161+8222 -2127+-4163 -2642+-4873 -182+4176 -6234+8638 1721+8726 1278+-4692 -1303+-2132 5210+-1105 6107+5587 -5210+-1998 5338+-1959 5375+4976 -5707+-3129 4145+7818 -2752+-1353 -5692+8775 -335+8446 2337+-607 -6135+-3082 4201+4883 6401+5936 -4889+918 -6657+-4029 -2884+8380 2506+8724 -663+4728 6490+-1675 5636+-4201 2715+-4257 2622+2990 -6679+-4508 -1888+6879 4753+8783 911+3487 7001+-832 -6018+4491 -6044+-3503 3695+-4339 2478+8807 692+3919 6861+8277 -2029+3497 -6539+6062 5547+-4194 -2584+-364 -6250+6869 -3928+-324 6635+-1860 -5320+6776 4864+-1215 6023+1139 7165+275 -6504+3428 7016+-4674 -1370+5448 -5331+-4670 1609+8507 2172+-2304 -4940+-457 6554+8822 285+-1279 5972+3756 -6439+-1305 5951+7301 -3416+8817 525+6717 4926+3358 7033+-2813 4512+-4082 -2790+3253 7057+2254 7218+-1283 -5739+4241 6726+-3880 3201+4528 -6020+-4750 -1031+5221 6188+-3786 3330+-4845 -462+8596 1878+-1777 -5387+586 7033+7724 -2881+-4874 413+4551 -6005+799 7093+6618 5027+6560 5086+8761 -446+8029 -2443+3042 -6668+7226 4359+-3809 3299+8669 -919+-3256 -3948+-4120 2846+2989 7112+5691 5855+4822 6437+8460 -1630+7937 -2581+-4759 -984+7495 4027+-3783 3334+5133 6246+1940 7242+-3875 -3133+7557 3945+5090 -5623+-3288 -3910+-1388 -5668+4073 6798+-4716 -1200+8198 2905+-4876 -131+4361 6672+7890 -2650+3896 6870+7616 3864+-970 6205+8643 -1025+-1802 5521+6374 5267+1998 -6793+2724 7160+7441 -3246+8630 1752+-4564 -1737+-2779 -4477+2359 -6772+-2838 -4415+-2952 -4292+-4347 -2276+396 6972+896 7117+7813 -2759+-2951 4354+3970 -6341+-449 6559+-4569 -1723+8227 2846+5865 5713+8789 -217+-355 -6254+-4870 467+8799 781+8619 1793+7747 3680+-4611 1822+8796 -151+4302 6699+7412 4132+5661 -5144+3880 -6384+-4812 970+5866 -4955+-2228 5117+8742 1187+624 7044+2380 -6770+-3559 3626+-613 6454+451 -6552+4598 6558+-3605 -3515+-839 -6014+7747 -2850+3604 -6500+-4442 -2057+8742 -568+1057 7150+-199 -6322+8444 -1673+-3772 -3284+8101 3091+1787 -6778+-3104 -4123+1303 7190+8578 1942+3939 -6356+1494 -6749+90 6848+-1040 -5895+4342 -6138+5787 5778+8245 2809+5601 5922+-3309 3930+6494 5151+7334 4229+-2737 -4520+-4875 -149+691 7063+8791 848+8708 1375+50 -6424+8406 2442+-2622 -4637+5326 -5434+-2370 -4881+8820 174+1982 7240+1877 7243+8821 425+6003 5597+-4736 1346+-4576 -1703+-4020 2999+-3619 -3496+7665 3796+170 6883+441 6988+-1394 5878+-3339 -3849+-2193 5151+8773 986+825 7100+1342 7195+-1068 -5878+5682 5862+-1388 5883+5043 -5658+6180 5444+8822 394+-423 -6223+-1 6805+-590 6469+1593 -6760+3746 6925+-3396 -3780+2889 7131+7991 -2501+5740 -5072+8823 348+-3478 -3678+7577 -3074+-3152 -4068+1427 -6741+-945 6223+-4190 2733+3768 -6434+7247 -3481+8667 1587+5560 5952+7875 3488+-386 6598+7656 -2971+3405 -6568+4978 6344+-2451 4894+-1007 -5915+2785 7150+8792 840+-4681 1567+4395 -6105+-1867 5461+3113 -6651+3179 -6633+-3382 -3797+8170 -2215+8368 2535+-3649 -3455+2345 7209+8502 2186+-1560 5737+7997 3280+-3415 3802+5632 -5170+-660 -6109+8733 1239+3139 -6644+6327 5312+-803 -6034+-3581 3598+593 -6587+-3212 4046+7678 -2942+5222 -5519+8737 -595+7277 4298+-3875 3208+-3066 -4166+2198 -6786+-4853 -399+-498 -6188+7721 -2885+-3509 -3639+3715 6936+115 -6448+-4760 1238+8340 -1914+1767 7237+5159 6229+-1840 5486+5085 6277+-3630 -3481+5537 -5254+7447 4088+8725 -658+-1632 5674+1405 7203+4708 -5897+3648 -6483+7688 3764+716 -6615+-1147 -5828+8101 -2328+3109 -6652+6308 5330+-3918 -3068+-4284 2576+-3055 4233+6069 5541+8416 -1746+6289 -4547+-4606 1839+8823 349+8674 -897+3548 6985+-3262 -3941+6585 -4243+8814 580+8329 2627+-4468 -1993+8339 2604+-4788 -829+-2666 4672+-1284 5968+-2857 -4395+3952 6848+182 6888+-4843 735+-3718 3420+-4883 24+1693 7231+-4884 55+-4096 -2765+1974 -6792+5995 -4833+8823 350+-833 6302+-4885 100+-4171 2764+5514 5985+8746 1162+390 -6536+8803 741+5153 -5574+7811 3585+3247 -6614+-2524 4819+-135 -6349+3798 -6421+7568 3930+8139 -2266+99 6852+-4796 1060+-4635 1737+4781 -5846+19 -6412+-1456 -5621+5112 -5606+776 -6628+6242 5389+982 7135+4137 6771+2303 -6777+810 7096+3307 -6597+8520 -1461+5394 6070+4883 -5774+-4863 -315+3222 7064+-4489 -1938+-4582 1910+-4163 2777+-1466 -5614+334 6949+58 6833+5570 -5225+-3429 -3739+2142 -6790+-4428 2310+7272 4304+-3574 3607+-4091 2892+1956 -6791+5651 5885+-3968 -2988+-3474 -3683+8688 1480+8821 224+4387 -6110+1182 -6706+4184 6751+8819 140+2902 -6697+8639 1717+-3089 -4140+4245 -6196+-4563 1966+-1927 -5264+-2491 4853+5461 6023+-2351 4996+-4837 784+-4368 -2230+8619 -1118+8360 -1874+8705 -756+5086 -5626+-4741 -1077+7736 3696+8109 -2315+8741 1193+1579 7221+-4795 -790+3823 6897+829 7101+-3304 3936+6810 4828+-4723 -1167+628 -6595+-4869 -243+-3639 3523+4579 -5986+2210 -6785+1031 7145+3583 -6508+-641 6435+1796 7239+7929 3398+7497 -3177+-4864 539+-34 6789+1507 7214+3434 -6559+3125 7085+8069 3150+-4415 2338+-1111 -5851+6558 -4271+-2680 -4578+-1443 -5630+2677 7167+7149 4449+-4430 -2086+8534 2093+7958 -2550+8612 1819+3782 6912+1895 -6787+-4767 1205+-708 6389+7867 -2683+5291 6141+-101 6755+8772 993+-553 6493+5414 -5360+444 6989+5217 -5523+-4880 -55+-3363 3865+7242 -3487+2245 -6782+-4731 1368+-3550 -3587+8285 2725+3591 -6505+1214 -6711+156 -6463+-2160 -5067+8712 -722+8020 3239+-1744 -5413+4545 6584+-4827 -591+145 -6459+-4804 -738+5798 5769+5038 6307+-303 -6277+-3005 -4234+8352 -1891+-3248 4003+7042 4572+5778 -5037+-4402 2363+42 -6421+8466 2284+-4696 1509+8041 -2424+3793 6908+5613 -5187+-1576 -5536+-3832 -3197+4090 -6280+6120 5497+-4835 -537+8573 -1288+8241 -2094+8593 1889+6943 4683+1846 -6783+8766 -408+-4842 -485+-4881 309+5692 -5116+-1174 6055+-2931 4377+2444 7198+-1765 5555+8561 2002+7367 4188+7784 -2799+6679 -4143+-3024 -4213+4156 -6245+7027 4589+-4623 -1553+4348 6678+4496 6608+8813 598+-2730 4604+948 7128+7543 3964+8811 22+996 -6672+6461 5183+8802 -90+8820 455+-4470 2214+-4882 275+2808 7146+4659 6527+7512 -3158+-2350 4997+2171 -6788+2374 7206+-3846 3248+8034 3214+-4596 -1644+2431 -6765+5243 -5502+6389 -4445+-14 -6399+7067 -3696+8644 -1021+326 -6519+1478 7211+-4883 225+290 6932+8132 3033+-2242 -4995+4777 6463+8545 2057+8765 1040+8380 -1830+8767 -400+1684 -6769+2061 -6794+2533 -6754+-4466 -1998+6751 -4063+-2079 5261+-4055 2947+6288 -4548+-508 6522+2613 7176+-4604 -1618+-1599 5703+8817 108+-2556 -4702+3612 6968+-4226 -2523+-4705 1474+-4391 -2178+8404 2447+252 6917+-1221 -5780+5019 6319+-4398 -2162+4313 6694+846 -6643+8427 2387+-3750 -3315+3972 -6340+8488 2225+7906 3437+1740 7235+2525 -6755+-4700 -1272+-4232 2664+-3557 -3578+-900 6255+2956 -6686+2209 7222+-3678 -3415+1274 7186+3636 6961+4039 -6306+8550 2040+8634 -1060+8721 1305+-481 -6196+-218 6694+5297 -5458+-1723 5593+8568 -1306+7856 3517+-4540 2030+-238 6683+-4522 2079+-4884 164+7320 4246+-4658 -1429+8654 1649+-2007 -5197+6098 5516+7587 3904+1564 -6757+7472 -3208+8734 -611+-3991 -2949+-4799 1044+4419 6645+-4367 2427+-4877 370+-3798 -3247+7519 -3149+-1754 5565+-1443 5837+2286 7215+6795 4844+-4880 326+-1928 5404+-1510 5780+1729 -6773+8478 -1581+2060 -6794+4293 6703+-2589 4752+2671 -6736+1851 7242+7903 3442+1267 7185+1652 -6766+-410 -6229+3128 -6647+8543 -1393+-2872 -4379+5326 6117+7683 3771+7093 -3665+2092 7232+-558 -6159+8698 -789+-4804 1017+-3981 -2966+8818 123+7919 3415+580 -6584+4771 -5853+-1081 -5870+7004 4615+-1183 6048+-1663 -5473+-4885 99+-2621 -4638+-843 6295+-1476 5809+-32 6790+-4289 -2397+-4260 -2456+2730 -6727+7200 4390+-3929 3132+-4823 895+1878 7243+-4774 1171+6429 5214+8750 -521+-4808 -713+8336 2611+6429 -4404+5404 6063+6604 -4223+1558 7219+-2870 4447+7518 3997+5455 -5325+-4861 -332+3494 -6540+355 6957+2596 -6746+8408 -1765+5006 6327+851 -6644+-1148 6075+-4854 -391+-884 -5988+6948 -3837+-4706 1470+-4755 1261+-4506 2122+874 7112+-2885 -4365+3848 -6399+140 6870+1390 -6736+-2620 4720+2774 -6720+7614 -3026+5286 -5467+8542 2067+3064 -6663+-4803 -744+2043 7236+-1517 5774+-4865 -292+3020 7106+1728 7234+631 7046+-4607 -1608+5926 5662+4008 6825+4465 6623+1964 7241+7488 4036+2881 -6701+-2389 -4863+1153 -6701+4908 -5756+-2436 -4818+-4822 902+685 -6608+5945 5646+1092 -6690+6527 -4303+5703 -5106+7993 -2498+510 -6567+-4783 -856+8305 -1978+-3740 3391+-4728 -1143+-4528 -1835+-790 -6041+-3534 3657+223 -6487+-4729 -1138+-2065 -5148+-770 6346+1000+7359 5927+-3173 5595+8995 1842+-395 7790+5328 7709+6676 6617+-489 -4416+7549 5700+-5025 2741+-2123 -3439+-4442 3970+-2745 6023+5073 7871+-4697 3504+7144 6166+-3683 -1933+-2145 6568+-1510 7068+-3840 4846+3186 8523+1327 -4758+-10 -4566+631 8240+-389 -4454+-4269 4259+-4739 -244+-5043 515+383 -4652+3831 8392+-3227 -2439+7565 -1132+4276 -3928+1199 8416+-4571 -586+8342 4501+-4821 3242+8989 2682+7823 5346+1678 -4745+5669 -2982+-3753 4953+292 8113+7566 5679+4227 -3955+8628 3911+2829 -4527+-4029 4602+-4516 -691+-5033 486+-4525 -674+7806 -828+7690 -978+568 -4687+8222 4726+7133 -1617+-824 7535+7437 5836+-475 7746+-4994 375+4113 -4015+4641 -3708+1031 8367+-2610 6152+-4625 3642+5221 -3318+-2308 -3286+-4415 4016+-1063 -4158+2767 8572+-1076 7373+3009 -4471+-5177 1193+-1313 7210+-805 7547+-50 7962+-4191 -1251+2500 -4621+7723 5478+5589 -3045+-5162 2123+8496 4197+2829 8566+5697 7453+-5132 840+-332 -4474+-4184 4388+5620 7509+3566 8452+1581 -4750+4880 7985+7843 -779+3410 -4332+4683 8086+1626 8513+8192 4779+5736 -2929+8949 2987+-5145 2241+9006 1986+8820 3427+-3561 -2078+-18 7977+8824 1035+-4808 3271+6190 -2541+-4940 2967+5650 -2997+7899 5243+-2543 6214+998 -4740+4518 8158+926 -4732+8481 4228+-829 -4276+8008 5078+477 8185+-955 7452+-1574 7021+6837 6467+808 8298+-4060 4560+6360 -2387+6501 -2255+6440 6835+-3275 5488+-3732 -1873+2103 -4701+456 -4666+1050 -4745+2819 8567+9005 2475+-5016 2767+-5199 1626+-5195 1749+-3296 -2371+1771 8537+8638 585+7219 6085+-5093 2509+-5186 1315+5253 7758+-4150 4436+1317 8448+8045 5020+-1135 7334+-410 7782+-5188 1352+4803 -3605+-4770 -178+2218 -4681+8765 3576+8982 1727+-3114 5656+6028 7195+-4282 4238+8746 833+875 8319+-2531 6225+-757 7577+8961 2920+1127 -4751+3792 -4170+2746 8574+-4392 4055+7639 5587+8070 -457+-1462 7103+-1436 -3931+-1631 -3802+5009 7910+1540 -4752+1156 8404+4810 8023+3867 -4135+-3944 4714+-5067 592+8012 -545+8592 484+-4679 -370+7967 -609+4087 8322+-551 -4392+-4516 3842+-4202 -1234+5494 7598+259 8099+8112 4913+525 -4679+6776 6524+5940 7266+-4630 -471+-4335 4151+2661 -4577+2156 -4692+8324 -31+2926 -4497+8086 -432+-2434 -3177+-4574 3738+4709 -3665+8333 -15+9012 2334+7509 5749+2618 -4589+-4175 4401+4622 -3720+7288 6008+6735 -2027+8811 1000+8782 924+1937 8556+8833 1060+-649 7643+2004 -4716+5296 7730+-3329 5430+6012 7208+7866 -748+-3455 5293+-5026 2738+-533 -4399+-512 7725+2590 8583+3933 -4104+-4530 3817+1181 8411+7873 5279+8919 1353+8222 -206+6800 -1963+3249 8514+2360 8582+2477 -4627+-3703 5012+7296 5999+9016 2202+2865 -4516+-2845 -2803+-3083 5688+8479 255+-3620 -2009+7985 -584+-2657 6108+8964 2901+8753 3607+9015 2147+4149 8301+5094 7858+8979 1704+529 8204+8713 3708+988 -4739+8298 4584+5986 7229+4893 -3546+407 8159+1445 8477+8800 971+6117 -2606+-1940 -3581+8423 4345+8388 4413+4662 8096+1328 -4758+1714 8528+-4546 -634+8994 1831+-2198 6522+1695 -4744+-225 7878+7272 -1466+8625 556+-1696 -3758+-5123 2373+8149 -329+-1043 -4169+5190 7798+3186 -4413+1227 -4756+-5090 669+9014 2280+7204 -1540+813 -4719+6375 6894+5273 7745+-5135 856+-4507 3858+8155 4841+-5147 926+-2464 6286+891 8324+-1248 7256+7694 -973+-4195 4372+4595 -3737+-5134 2309+8091 -424+1160 -4753+3208 8520+4090 8321+189 -4612+-1561 -3849+-3073 -2589+8217 4735+-5187 1870+-3732 4978+8556 4071+2372 -4650+3148 8528+8843 1089+4427 8196+415 8162+-1138 7332+-227 7877+-4706 -314+-1404 7145+5821 7359+7784 -857+-2373 6368+-5192 1428+8448 4296+-2983 5790+-5176 2006+3761 -4184+4489 -3802+6284 6975+6125 7113+-2130 6581+3762 8409+8984 2728+-5044 518+-4106 4497+8884 3235+-4274 4251+-4799 3291+105 -4594+1384 8464+-4363 4104+9013 2096+-3839 -1738+9008 2419+-4257 -1147+3820 -4157+-3953 -1589+4153 -3994+7549 -1151+-3020 -2640+-5169 2067+1273 -4757+-203 -4516+-1907 -3606+-4783 3326+2290 -4667+6427 -2325+-5102 2474+3619 -4246+-5172 1145+-3471 -2181+4574 -3750+-133 7923+8793 3501+-3606 5124+3983 -4080+-5109 2441+-4814 -77+-1180 7303+3382 8489+-2698 -2939+675 8255+-3520 5222+4329 -3898+-5182 1249+882 -4727+3733 8416+1082 -4748+-296 7842+-3798 -1791+7761 -887+-196 -4518+4044 -4050+8259 -143+2139 8572+-1422 7132+678 8256+-3883 -1681+7980 5121+6900 -1861+-3822 -1760+-2859 -2790+8734 804+3976 8355+8842 1086+-5164 2108+2786 -4540+6987 6322+-3692 -1922+-2300 6433+-2467 -3148+631 -4696+8001 -561+2709 -4563+4530 -3777+251 -4625+3712 8421+7113 6198+8860 3312+-2776 -2867+-5197 1708+-5178 1985+5598 -3038+-3709 5005+669 -4701+7877 -733+-3551 5187+-581 7684+8910 1318+-2062 6638+1353 8457+3898 8375+4398 -3857+7992 -574+-2749 -2892+-2857 5914+2935 8554+-1743 -3725+133 8045+-1737 6899+1527 8494+-5189 1841+8686 693+-2916 -2737+-4075 -1426+-336 7821+-4983 2856+7657 -1019+1813 8543+1125 8395+4042 -4051+-1197 -4080+1710 -4743+3288 -4377+8815 3441+1478 8484+-5133 845+8969 1633+-1079 -4149+-5152 968+-4049 4575+-4994 2827+-1192 -4083+3542 8457+1269 8435+-5101 2478+8962 1586+7526 -1178+8600 501+-1123 -4124+8874 1190+3429 8480+-459 7755+7227 -1515+7615 5618+-1456 -3918+7378 5905+2735 8575+7846 -775+1096 -4749+2433 -4637+-1346 -3988+-2623 -3008+4646 8103+7327 5964+8977 2790+-1008 -4188+8994 2634+-442 -4434+8931 3064+3470 -4309+4820 -3594+4056 8332+1876 8550+-3411 -2248+4403 -3854+-4896 119+8861 3309+6251 7004+-3873 4805+-4338 -1014+-4298 -1081+4368 8219+128 -4599+-1373 -3971+-1852 6809+-3258 5506+-3316 5444+-1691 6934+8729 792+-397 -4451+2066 -4707+5513 7585+-3967 4684+-4997 2819+-4664 -401+-4662 3572+2107 8570+602 -4692+-4948 251+7520 -1185+8523 4141+2721 8576+-1880 -3626+-1677 -3771+8891 1249+-4794 -123+-1597 7004+-637 -4358+4955 -3505+5911 7289+435 -4662+1969 8559+-755 -4308+-4129 -1346+8046 -494+585 8224+-4976 326+-5071 605+2891 8559+-4581 3725+5879 -2811+6126 -2598+5161 -3361+8850 3341+1143 -4752+-3749 -1852+2023 8564+8209 -228+8951 1518+8675 3800+1720 8529+4350 8226+3684 -4218+6920 6387+-2982 5791+1661 8519+-672 7629+4212 -3963+2490 8585+1390 -4757+25 7997+-2211 -3368+8907 3158+-4606 -518+-2558 -3067+3004 8546+-5078 628+988 8354+-4332 4156+4997 -3476+8152 -324+9016 2200+1794 -4737+8915 3129+-1003 7421+2046 -4710+952 8343+-4442 -830+-3510 -2137+540 8208+8115 4908+1336 8453+4259 8261+6674 -2087+5935 7270+3689 8426+3277 -4381+-4616 3659+8029 -520+8587 4005+-5183 1263+-5003 400+7892 5253+2427 8584+3827 8393+3950 -4096+-3672 5048+9012 2078+5554 -3072+7611 5623+5448 7629+2249 -4675+8027 -523+-2118 -3443+2657 8580+9004 1957+7700 5508+4020 8343+-5182 1936+1340 8454+-502 -4411+5414 -3177+796 -4717+8811 3452+-3479 -2172+3949 8362+-3877 4800+1941 -4723+3215 -4403+8616 536+3558 -4272+8952 2971+6733 6564+-5153 2187+8290 4599+-5074 2578+-586 7681+-14 -4565+8895 3199+8442 185+4843 -3579+4774 8042+-986 7432+-4295 -1086+4572 8135+-1948 6733+-1511 -3882+6562 -2196+8940 1454+55 -4582+4013 8345+388 -4653+7146 -1603+-713 7604+8969 2859+1599 8508+-3327 -2339+8631 3904+7112 6199+-2808 5962+8926 1386+-5152 2194+-866 -4259+-4056 -1452+198 8073+-2548 -3076+-4858 27+-2281 -3309+-4400 -908+7656 5565+-610 -4369+8259 4657+-3989 4655+-4405 -899+7019 -1738+-2235 -3348+8545 386+-4917 3023+6990 -1768+108 8034+8135 -352+8074 4974+3139 -4429+8704 734+4322 -3902+-3794 4903+-3654 -1968+6662 6630+8970 1640+5724 7433+-1821 -3669+-5007 2792+4940 7951+-1624 6984+-5025 463+3232 -4397+-3390 -2271+5279 -3276+2481 -4626+8950 2982+8447 4298+7709 -954+-4965 2903+4772 -3625+-132 -4535+6238 -2498+609 -4693+-5140 884+-5196 1518+-116 7931+319 -4639+7337 -1395+7770 5416+9010 2047+6184 7062+-1943 6737+8433 168+-1803 -3682+-4831 -37+-1919 6756+3292 8506+4860 7996+4206 8281+-4131 -1343+1457 -4755+-5199 1625+9000 2564+8947 2996+-2309 6425+2019 -4714+1071 -4747+-3794 -1796+7476 -1236+-4212 4347+8993 1821+1880 -4729+-5199 1627+-5198 1578+2048 8566+-4405 4033+1568 8502+8180 -277+5065 -3429+-5057 2637+3142 -4428+3525 -4286+7075 -1679+6147 7094+-1479 -3903+-2684 6082+-1781 6865+748 8279+-2034 -3509+-4026 4606+84 -4589+6259 6997+4454 8185+8893 1256+-976 -4205+-1026 7406+-5165 2100+3361 8493+6474 -2281+7771 -874+6625 -2135+-4229 4321+6931 -1829+6859 -1903+7489 -1221+6292 -2449+9015 2249+-3295 -2372+1751 8534+2548 -4608+-3954 4701+-4163 -1294+-5050 537+-3170 -2495+5962 -2741+2197 8575+-2484 -3133+1931 -4724+7946 5173+-5196 1731+-5191 1408+1996 -4717+4952 -3507+5014 7907+2202 -4684+8842 3364+4896 7976+-4728 3441+7948 5170+-4869 3134+-4912 3035+-2259 6469+2277 8579+205 8076+5765 -2906+-4228 -1193+-2367 -3235+-2094 -3462+-4318 4179+-4006 -1519+1848 -4732+7044 6266+1489 -4754+8232 -189+2674 8579+4306 8243+-5195 1493+5378 7676+4825 8015+-505 7729+3402 -4335+-3410 5342+-4375 -952+-3466 5281+1108 8390+1830 8545+-2169 -3402+-4253 4284+5239 -3305+2776 -4543+-4481 -757+6452 6824+8333 4518+8937 3039+8999 2578+6799 -1964+8515 325+-4775 3343+3835 -4150+2464 -4630+-166 7907+5851 7336+6098 7136+9014 2119+56 8011+-81 -4548+602 8230+-5098 698+2236 8577+2191 -4686+1041 8370+8768 3568+-2635 -2997+-2195 -3381+8999 1891+-701 -4331+-5144 907+-2959 -2697+4292 -3919+-4951 259+6348 -2398+8284 -100+-5147 2228+8918 1349+3709 -4207+8019 5061+347 8136+8659 632+8957 2943+-3542 -2100+-1772 6872+-270 -4495+-5166 1090+4214 8278+8983 2737+8888 3222+-5130 831+739 -4710+4793 8032+8981 1719+6593 6694+-4473 -772+6566 6719+3628 8439+1798 8541+-2330 -3267+2692 -4568+-5120 788+3612 -4249+6515 6766+-889 -4248+9003 2512+8398 102+7092 -1661+6039 7186+2636 -4584+4706 8075+-2421 6325+8728 3671+8986 1760+7423 -1297+-3103 -2560+2122 8571+-5114 763+2942 -4492+7368 -1360+-845 -4269+-3892 4781+6301 6960+-4631 -469+-4168 4411+-239 -4505+-778 7564+6281 -2459+5391 -3194+9009 2399+6015 -2695+-5076 2571+8386 80+-2004 -3532+-2475 6276+4466 -3816+8347 10+-5198 1680+7228 6075+-5047 2670+5757 7408+-4210 4350+5560 7552+-3748 4959+2328 8581+9013 2309+5760 -2910+5508 -3107+8757 860+-5167 1099+1987 -4718+3340 -4358+-4998 386+-3042 5730+-3387 5367+-4885 92+1769 -4739+-2007 6684+8363 4461+5163 7815+-5197 1547+3434 8479+8099 -411+-3659 5063+8702 3735+1886 8551+8937 1438+-1833 6824+8867 3290+-4929 2994+275 -4630+1615 8511+8611 3950+7611 -1076+-5177 1996+9016 2201+-993 -4196+2097 -4702+-4842 3195+-2442 -3170+7570 -1126+8391 89+-957 -4215+5638 7496+-5160 1037+-4082 -1416+-4936 220+1620 -4748+5130 -3383+2544 8584+5327 -3241+5824 -2857+3021 8544+-3906 -1651+7500 5760+2489 8585+4319 8238+-2222 -3359+-1256 -4044+7207 6098+-4467 3927+-4911 156+-5193 1780+4616 8116+5441 -3157+8864 1157+2339 -4657+8964 1599+8814 1008+5947 -2754+2690 8578+-799 -4289+-4811 -84+1821 8544+8563 423+7923 -670+7471 5795+6052 7175+-3 7984+6890 6416+3069 -4452+-3402 -2258+6365 6903+-5120 2389+3498 8466+8514 323+-1344 7188+6076 -2642+8648 3864+-4746 3404+-1277 -4031+-4569 3747+-3202 5565+7283 -1454+-4887 3093+3078 8537+-2918 5854+-892 7492+3215 8519+-273 -4494+-159 -4528+-4698 3502+1000+3333 -7799+7270 1522+7988 -2743+6874 -5015+-5152 424+-5183 292+8094 -2186+-4110 -4532+3743 -7639+-1584 4777+-1592 4772+8089 -2217+6367 2637+-3319 -5433+-1806 -6800+-5316 -2087+-5228 78+3054 -7891+8011 -8+753 -8019+5552 3476+7949 182+-399 5332+-5213 -2532+5791 -6224+7992 -2724+6553 2428+-3848 -4846+7432 -4182+-3683 2993+5502 3523+-4147 2411+-688 -7501+2707 5329+-3850 2795+7727 717+7776 -3480+-1868 -6755+-3576 -5153+830 5570+-3792 2865+55 5458+-5311 -381+7865 -3217+1786 5543+1866 5532+-2939 3763+-4978 -3144+-2791 3894+3971 -7526+5139 -6768+3596 -7700+6312 2698+1070 -8067+8171 -1054+8167 -1533+-4912 -3283+-5201 208+-299 5364+-5243 -2426+7263 1532+-1074 5065+7279 -4429+-2361 4242+-650 -7522+6617 -5340+2964 -7918+-4616 1708+-2652 -6094+-5105 598+-3637 3046+543 -7979+3479 4985+892 5575+8107 -429+7829 -3331+-5165 372+5841 3197+-1879 -6747+8142 -1819+3948 -7538+-527 -7587+509 5534+4880 4072+7934 -2974+2643 5350+7495 1159+-2054 -6615+-1906 4567+-5298 -299+3289 5085+534 5537+8129 -544+-5321 -449+-879 5154+-5367 -1690+8162 -886+7908 295+362 -7931+1588 5566+1653 5559+5096 -6800+-3630 3054+4613 -7140+-5039 812+3609 4911+-1217 -7191+-4698 1566+4485 4363+7996 41+-4250 -4352+4238 4529+1497 -8096+7786 -3453+-799 -7438+-5350 -1885+8164 -917+-263 5375+7977 100+8115 -2045+7221 1591+-3332 3381+-5379 -1040+4809 -7006+3670 -7670+-4911 -3285+-5072 -2926+7788 587+6639 2330+2899 -7936+4542 -7186+8141 -631+-2941 -5820+1771 -8097+6526 -5448+-1822 4624+1899 5527+-2554 4091+5842 3196+8158 -826+2850 -7949+4889 4065+-5119 548+-704 -7492+-4926 -3254+-4247 -4356+6952 1952+7882 -3161+-5384 -1344+6024 -5999+148 -7866+8153 -759+-5285 -221+8137 -1865+-5231 -2470+5209 -6714+-4501 1893+2564 -8008+7410 -4219+-5272 -2301+1060 5582+-3233 3483+3550 -7718+-1751 -6839+-5324 -471+-396 5333+-3880 -4809+4798 4135+5252 3754+-620 5255+-4753 1466+7803 -3405+3827 4784+1905 5526+8032 -2530+1817 5539+4132 4597+2248 5463+-5320 -442+-4187 -4435+-1537 4806+-3701 -5013+8148 -701+2429 5415+1668 -8099+-1973 4521+-4742 -3606+7880 369+6978 1919+-2212 -6489+8033 -86+2477 5401+-86 -7785+-4196 2343+1899 -8091+-556 5278+-5373 -1599+8073 -2312+8130 -1927+2360 -8040+4972 3999+5935 3101+-2711 -6039+5732 3304+-1168 -7221+683 -8006+7527 -4013+-4995 937+6364 -5634+7717 738+7817 519+4559 -7175+1020 5581+5730 -6279+-5098 -2862+-5168 359+-2157 4392+2757 5312+-4022 -4640+2257 -8053+7840 465+-542 5283+8043 -2474+-1036 -7300+-2089 -6588+-12 5444+7321 1448+2472 -8024+-3540 3155+-5165 -2678+6827 2107+-4176 -4449+7304 -4390+5126 3867+-3925 -4756+-5343 -1938+-4575 -3896+-945 5126+7445 -4160+-4102 2473+-3121 3595+7128 1719+-2267 -6442+2345 -8042+7959 -2875+-2175 4379+-5385 -1308+-5229 -2477+-2007 -6651+-4773 1429+1124 5583+1961 -8086+6306 -5699+5259 -6675+4616 -7138+-4601 -3854+8006 -2657+2321 5445+-4315 2173+-210 5391+-3179 3538+-4997 -3103+-5130 -2776+3099 5174+-4375 2085+8111 -2074+7898 -3107+8159 -840+-2427 4191+7481 1184+4306 4485+4724 4191+-4619 1703+945 -8051+8172 -1420+4845 4099+-818 -7427+-5130 507+-3573 3118+-3436 -5307+6049 2982+5443 3578+3921 -7552+3347 -7794+3187 -7849+2336 5441+-4704 -3675+-2681 3988+5278 -6660+-5306 -349+-5185 -2619+-2237 4334+7896 -3114+7410 1307+3906 4737+4102 4616+-4936 -3233+-2318 -6398+-3399 -5347+-4686 -3707+7769 628+4018 -7501+-1157 5022+-5339 -589+925 -8048+-5338 -1972+-4064 2524+-297 -7695+-4513 1874+-4851 1273+2124 5487+6068 -5954+-4280 2224+7675 -3719+-3180 3537+-2461 -6270+1338 -8091+-2844 -5913+2282 -8050+-4598 -3859+-4659 -3754+163 5480+3088 5179+3224 5116+-1582 -6957+4542 4323+-3660 -5059+7407 -4224+2803 -7960+-4991 -3116+6123 -5897+-5347 -660+1453 5575+-5296 -2188+2736 -7974+7674 824+3818 -7604+-4445 1979+7849 -3268+8175 -1274+-250 -7716+-4094 2484+-3958 2661+538 -7978+-5385 -1309+1138 -8075+6885 -5000+-1341 -7113+355 -7929+2108 5490+-591 -7554+-4399 -4150+-1180 5010+7236 -4495+7921 -3023+-805 5184+-1495 -7014+7371 1372+-2545 -6193+-1585 -6955+-2558 -6181+7921 260+4264 -7361+227 5492+-2622 4036+2789 -7963+2520 5388+6358 2647+-4273 2234+7703 767+1523 5572+-2181 -6515+7885 -3151+4872 -6962+-525 -7588+431 5524+7071 -4740+3190 -7848+7564 -3945+8172 -1079+7292 -4409+4948 -6908+2397 5424+4923 -6926+2900 5260+-4690 -3700+3410 5023+4720 4194+2633 -7995+6582 2395+-2638 -6107+7642 -3789+-4352 2119+-4502 -4005+-3886 -4802+827 -8032+-5241 14+5109 3882+-4963 1021+-2305 4284+1268 -8088+1005 -8059+-3841 -4854+6813 2124+2009 -8081+-1751 4670+-5341 -1953+-1929 -6710+3490 -7741+-699 5225+910 5576+4375 -7293+-359 5345+-5270 -137+-5074 701+-5058 752+4916 -6931+-4819 -3464+968 5579+2812 -7958+2895 5262+3601 -7698+4697 -7083+-5380 -1462+-5305 -2144+5152 -6758+-3374 -5374+4764 -7037+2181 5476+7570 1022+1799 -8096+-5381 -1096+1193 -8081+-1447 -7045+4662 -7107+-3791 -4911+6138 -5881+6413 -5579+-4530 -3964+2576 5371+470 -7961+3781 4811+7943 -2940+5675 -6328+-759 5202+-3225 -5533+-3454 3250+5582 -6410+-3489 3212+-5382 -1411+992 5580+6421 -5570+-121 -7771+-3051 -5712+6016 3017+6641 -5311+-3826 2824+-4591 1749+2591 -8003+5802 -6214+7139 1704+455 -7957+5003 3973+-5158 -2698+-2468 4159+6749 -5177+8022 -46+4967 4003+-5094 635+5221 3782+-4809 1361+4067 4638+6104 -5917+-182 -7745+7489 -4082+4221 -7386+-4430 -4107+7209 -4536+8074 -266+-1768 4659+-3050 -5713+2436 5413+2011 5508+3245 5106+-4036 -4623+-5186 -2616+-2487 4144+8168 -1516+7477 1191+-5346 -651+-4972 998+4978 3994+8176 -1208+-2024 -6638+8112 -455+5263 3744+8171 -1453+-1072 5066+4966 -6895+-2125 4415+7610 948+-2335 -6383+5173 3825+-2744 -6008+-454 -7622+1598 5565+-937 -7358+1430 -8094+1862 -8093+517 -7973+-2911 -5849+-4985 964+6766 2181+-1894 -6736+4908 4050+5349 3665+8168 -993+-4488 1913+7641 888+6190 2831+5336 3677+3041 5200+997 -8058+-259 -7712+-5117 -2811+653 5551+8173 -1381+7843 -3287+8125 -523+-5282 -204+-2724 3952+-1473 4845+7863 410+3495 4976+2 5447+-5359 -1792+8150 -724+7450 1238+-375 -7659+3240 -7831+-5384 -1242+-5091 645+8063 -215+886 -8042+-5321 -2061+5218 -6707+-5383 -1182+7956 162+3736 -7642+-4850 -3404+6492 2497+-4580 -3888+-5371 -1630+6181 -5835+6583 -5381+-2344 4255+34 -7828+-3011 3698+-4550 1815+-4377 2082+6280 -5728+6819 -5087+8097 -2167+-1311 -7132+-1430 4870+-4679 1600+5069 -6820+3863 -7582+-1227 4985+8154 -771+2274 5457+-1397 4889+5101 3889+5971 -6053+5592 3438+7603 961+6110 2917+-3390 3319+271 -7904+7830 -3328+-4779 -3538+-5265 -110+-5374 -1582+104 5468+4659 4239+6871 -5019+-5376 -983+5298 3712+7943 199+4477 -7228+-3110 -5652+-2507 -6228+6426 2571+-4795 1388+7680 -3708+-3277 3438+4815 4122+-1115 -7253+-4884 1203+-5220 -2508+7038 1840+-449 5315+-5378 -1018+-5385 -1310+-4348 -4220+7625 -3825+7702 769+-5372 -927+4376 4439+7768 -3501+8019 -2594+-4051 2541+446 5526+-5152 -2715+-3905 2728+1294 5580+6165 2858+7306 1470+6227 2791+-4337 -4235+-5332 -531+394 -7940+6985 1910+-2278 4304+2687 -7984+1964 5516+1881 -8092+-3976 2638+-3313 3401+7544 -3982+-1350 4916+5635 3397+5135 -6771+-4693 1575+1543 -8097+6696 -5244+-4780 1416+8102 -2135+-4028 2571+-4953 -3197+3411 -7771+8175 -1172+-3635 -5087+1424 5576+-5377 -1523+8034 -90+6855 -5040+-5126 522+8052 -166+8020 -39+-2081 4446+7293 1489+-3347 3365+314 -7917+5912 -6111+-3515 3183+5028 -6850+8165 -1564+2912 5255+-2884 3812+6671 2293+-5261 -2350+-4479 -4038+3090 -7880+7392 1338+3166 5143+1721 5551+-5352 -1868+5472 -6504+-679 -7506+2074 -8074+-2761 -5992+7703 -3656+5882 -6140+-4472 -4048+8138 -1856+-5038 815+3678 4871+5649 -6351+8158 -1648+-5382 -1135+8163 -1589+6967 1933+-5283 -2250+610 -7992+7106 -4689+7822 -3351+8176 -1206+5865 -6156+6901 2016+4383 -7288+-3091 3624+5901 3136+319 5508+2038 5503+7917 -3038+-5363 -1745+6893 -4989+-4619 -3823+4328 -7322+-810 5182+-5181 301+-4736 1497+-4889 1192+1731 -8098+1823 -8095+1203 -8082+5702 3333+4446 -7248+-2472 -6260+-5334 -1993+-5143 458+4418 4410+-1478 4842+7143 -4635+-2611 -6132+-2117 -6566+4008 4675+7484 -4091+-1276 -7154+-4223 2305+3728 4842+-766 -7457+717 5558+4773 4154+2198 -8060+-3258 -5498+7754 -3537+929 5577+-1614 -6935+6987 -4859+-2310 -6405+-4161 -4468+3865 -7581+-3000 3708+6677 2286+-2801 -5954+-5026 -3035+-5381 -1437+-1130 5036+-887 -7387+-4747 1477+-5252 -42+-5000 -3096+2991 -7910+2877 5269+7972 -2817+-4083 2499+-952 5123+7791 580+-487 5302+-891 5149+-5197 227+1463 -8095+6428 -5562+974 -8055+2138 -8067+8122 -1993+7571 -3932+-5351 -697+1328 5579+8170 -1476+-1120 -7250+1667 -8099+-4204 -4413+1846 5535+7389 1343+6451 2543+7976 103+7718 -3622+6259 2756+-4418 2020+3781 -7622+200 5487+-498 -7601+2417 -8032+8087 -328+7952 -2905+-21 5442+-2176 -6519+-5291 -256+3456 -7754+-5351 -1877+7341 -4331+-1262 4966+-4654 1644+-3205 -5554+-3975 -4697+4269 -7358+-5089 -2885+-4194 -4426+6767 -5154+-772 5197+-5270 -2310+6484 2506+-5242 -2430+-1933 -6707+3441 5006+-5358 -763+1361 5578+7190 1634+8096 -372+4053 -7482+-2098 -6581+6938 -4927+-2187 -6510+-1285 4953+7743 -3563+3382 5038+2825 -7955+5571 3458+-4288 -4301+-5377 -1000+4341 -7314+-2430 -6298+-1027 5088+7763 -3514+5413 -6552+7168 -4598+-5257 -2367+4597 4284+-3735 2932+-5380 -1063+1598 -8098+3316 5072+7533 1090+2628 -7996+8132 -563+7744 681+3911 4734+-1063 -7284+1367 -8092+5996 3038+3470 4990+-1627 -6926+-5161 389+-3693 -5022+215 -7887+-3567 -5163+-4812 -3477+782 5565+-1686 4712+6331 -5671+780 -8024+-5052 771+-3622 3063+4076 -7469+3682 -7665+-1388 -7083+1248 5581+4373 4441+8123 -1985+-1515 -7001+7382 -4265+7079 1785+-4515 -3986+-4952 1047+7782 600+2823 5289+284 5502+-4977 985+-5303 -330+-5363 -821+-2348 4252+8174 -1334+3854 4768+-5368 -1676+-2780 -5974+-5367 -868+1129 -8074+-3762 -4944+593 5544+4141 -7432+-2858 3835+-200 5394+6632 2338+-3144 -5617+-4883 -3340+7910 -3064+4405 4419+8154 -1695+-4927 1106+-104 -7778+-3074 3640+5058 3926+-990 5106+8004 16+5781 3256+-2382 -6341+-59 5433+-1825 4622+8061 -206+-2132 4410+7014 -4821+1123 5583+7366 1380+-990 -7327+-433 -7632+6842 -5057+-1871 4591+3278 -7818+8173 -1105+7470 -4116+158 5479+-109 -7776+8076 -2295+202 -7883+8134 -578+-3521 -5214+-55 5434+-51 -7798+-5357 -1815+7045 -4777+3590 4922+4179 4567+8082 -2260+4188 -7405+3150 -7861+-34 5439+5515 -6468+8165 -934+4670 4231+3001 -7907+5535 3492+7064 -4750+-4080 2503+2842 5282+2253 5462+-5215 141+7538 -3993+-4089 -4558+3959 4705+-4912 1140+-5362 -1757+1193 5582+6995 1897+1794 5542+-619 -7539+8112 -2067+7600 -3877+7956 -2888+6716 2240+-2990 -5772+8149 -1753+7586 -3904+-108 5420+-665 5238+4685 4220+7889 346+8176 -1207+-308 -7690+2589 5367+-3468 -5272+8169 -1498+3050 5196+-1655 4732+3318 5071+-5205 -2557+5402 3616+5345 -6607+5970 -6054+8048 -149+-4254 2261+6880 2042+-5107 591+6474 -5509+-5012 889+-32 -7805+892 -8043+-5331 -523+1662 5558+7166 -4601+-5374 -952+8143 -648+-5031 835+4286 4498+-2418 4198+8056 -2406+6245 -5766+374 5516+-4834 1309+-1694 -6879+2846 -7950+2507 -8018+-173 5402+-1550 4798+84 -7845+3557 4941+-1982 -6670+7974 -2808+-4641 1666+5429 3591+667 -8003+2973 5229+8061 -2379+8142 -639+-5049 -2981+3563 -7713+-2018 4490+7041 1836+1000+-2193 -7814+-4375 -5478+-1528 3779+-4782 -4832+6343 -6276+-3370 -6715+-3970 1499+7142 -5226+1674 4506+-5426 -1249+-5488 -1657+-1013 4078+3103 -8938+4180 3433+-2169 3288+-5402 -1137+7078 356+6289 1446+5314 -7351+-5172 -392+-5524 -2222+6898 638+-254 4386+-1331 3904+978 -9234+2227 -9203+-4895 -4619+2508 -9147+995 -9235+910 -9229+-3817 -6203+6639 -5914+7531 -528+3048 -8961+6410 1295+-4902 190+3935 3594+6802 777+7787 -1215+7696 -930+7869 -3405+3219 4015+7928 -2976+-3709 -6334+-5505 -2703+5058 2733+-5253 -3808+-5496 -1732+-5484 -1622+7717 -991+-4933 132+1185 -9244+7824 -1348+2148 -9213+-1551 -8271+6711 903+5115 -7538+2651 4269+7938 -2877+3372 3933+6160 -6483+-5158 -4042+110 -9085+-1901 3512+6008 1780+5517 -7153+-5464 -1465+7816 -1317+7540 -4483+-3911 1568+-1432 3841+2450 -9161+-2067 3374+4625 3106+-5185 -3977+5853 1952+665 -9202+6621 -5937+5300 2510+2204 -9206+1713 4501+2177 4415+228 4498+-5508 -1854+1630 4511+-5439 -3156+-4844 -4719+-141 4421+7144 -5223+3609 3797+802 -9219+-4710 518+4310 -8238+7443 -4690+3500 3861+3387 -8813+-1272 3940+2816 4204+6146 1620+4918 2856+-5045 -87+7214 124+-2882 2643+872 -9226+3179 -8906+3983 3563+-2261 -7757+-2863 2661+-5523 -2173+-5519 -2496+7590 -4355+5260 -7402+-3363 2162+-5111 -232+-4769 426+5989 -6669+-804 -8714+-3693 -6353+-5488 -2858+7131 267+6649 987+5969 -6690+7685 -900+7477 -4621+7175 -5175+4648 -7956+5747 -6919+7201 -5134+4333 -8220+-5038 -4317+7795 -1242+7508 -4556+5447 -7222+-1087 4042+529 4528+7930 -1936+577 -9190+-754 -8740+7882 -1606+2119 4429+7950 -2192+2097 4434+7191 164+7382 -4808+1604 -9249+7117 -5263+2686 -9094+-85 -9025+5059 -7590+-3397 2127+7346 -128+7938 -2016+6961 542+-1362 -8391+-5425 -3223+-1891 -8044+1861 4481+7798 -3705+-4072 -5884+-4076 1371+7442 -4692+1790 4491+3071 4088+7411 -4752+7686 -4073+-3766 -6265+-4307 1077+-5207 -494+-154 -9001+-2744 -7333+3845 -8561+-3664 -6387+-5511 -1901+-4171 -5756+-3547 -6521+7396 -4781+7365 -4840+-4646 -5064+-5478 -1573+3025 4110+7015 -5411+-3524 -6547+7944 -2791+-3206 2322+-2868 -7218+-1207 3978+7276 11+1522 4521+1712 -9245+-3142 -6955+-1122 4024+-4774 418+7952 -2645+-5514 -2582+-5140 -4085+-5422 -3236+6603 1048+2569 4299+5956 1839+-1492 -8309+-4514 799+7937 -2005+446 -9166+-1413 3853+-2362 -7671+-2627 2882+-1080 -8562+-5511 -2628+5231 2574+-1397 -8369+7825 -3606+4224 -8304+-1499 3798+-5448 -1361+-4298 -5585+940 4543+2762 4226+6076 1702+7849 -1451+-9 -9049+2106 -9218+7940 -2854+112 4480+-5254 -635+4475 3225+2243 4398+1767 4494+-612 -8809+-1966 -7990+6544 -6035+-5015 -4367+4046 3522+5696 -6971+7757 -3845+-2307 3170+2051 -9224+7165 209+6848 711+2106 4432+-4801 372+-5446 -1350+5979 1813+3251 3998+-4819 -4767+1346 4532+-1763 3618+2274 4390+-3996 1468+-3341 -6746+-2564 2940+7954 -2580+7956 -2486+-4391 -5455+-3888 -6116+28 4464+7951 -2670+3359 3940+3512 3854+4547 3170+-754 4195+1146 4539+-3788 1708+4172 -8342+2790 4215+-353 -8925+3445 -8786+3864 -8549+6087 -6564+-3147 2382+-3114 -6984+1366 4531+1844 -9239+650 4534+1491 -9251+5574 2247+2708 -9087+7953 -2265+6730 877+-3082 -7017+-2693 -7380+2322 4377+-5274 -3749+7949 -2709+-3583 -6480+1102 4540+-18 4453+7082 -5314+-4503 -5290+6574 -5997+-819 -8706+4895 2876+1432 -9250+-5491 -1685+-853 4152+-1245 3956+-4712 515+7896 -3243+7210 131+-5520 -2063+5795 -6870+7038 421+4573 3149+-345 4356+6437 1261+5086 -7565+7158 221+498 4526+7891 -1652+7942 -2066+3924 3601+-5108 -225+2777 -9064+-3209 -6885+-5456 -1407+571 -9189+5964 1830+7833 -3575+-5110 -4155+6739 -5785+3448 3891+3646 -8682+2339 4372+-358 -8923+-860 -8684+-5328 -873+-4320 1060+2586 4293+2695 4252+7917 -1827+381 4516+50 -9067+7315 -4933+-4529 -5250+2349 4369+-5472 -2974+-5099 -4180+3186 4032+2517 4317+2173 4416+-914 4124+-5518 -2516+7586 -4366+7092 333+6402 -6207+-1878 3530+6022 -6634+-5363 -3466+-4606 -5129+2951 4144+-940 -8641+3292 3976+-2935 2592+5191 -7467+-2378 3108+-2047 -7930+-5207 -3924+7946 -2126+2382 4359+642 -9199+6049 -6605+1330 -9248+-76 4439+2065 4441+-3865 1621+-5230 -562+1583 4516+-5154 -342+7639 -784+-5269 -681+7517 -4536+3587 -8715+3346 -8832+4443 -8129+7910 -3135+4552 3166+427 -9162+7930 -2957+7947 -2742+-721 4209+-2008 -7959+-5351 -951+-4986 -4429+4801 -7824+4116 3476+-3644 -6410+-203 4402+4972 2809+7248 -5054+7857 -1485+2606 -9119+-5405 -1150+-4563 -5197+7881 -1601+6529 1144+-991 -8613+-2654 2857+-5387 -1079+1560 4518+-5519 -2038+-3421 -6660+4400 -8165+-4336 1039+-1236 -8469+-276 4379+-1325 -8414+-2111 3337+-5346 -934+6423 -6182+2635 -9110+-4726 -4929+6946 -5507+6768 -5747+1379 -9249+-593 -8818+-5523 -2378+6349 -6269+-3917 1561+-3978 -6003+3519 -8750+6697 922+-5437 -1303+7895 -1675+-3655 1856+-3845 1644+7505 -469+4601 -7996+5176 2625+2573 -9129+-4099 1343+-1085 4043+849 -9224+2173 -9210+6995 489+7950 -2692+719 -9209+793 -9218+-5285 -3717+-3830 1661+1159 -9243+4621 -7979+6249 1495+-4253 1147+7955 -2535+-4979 44+-5158 -353+-4279 -5611+2274 -9196+83 -9077+367 -9149+6779 809+1247 4536+3269 -8867+1492 -9251+-5417 -3257+7293 -22+7328 -91+-4112 1327+-5286 -3714+3794 3683+-2626 -7441+-639 -8796+-110 4430+-2463 -7584+296 -9133+-310 4368+2823 -9047+-3666 1844+7269 -5017+-3295 -6795+-2336 3145+7755 -1110+7883 -3330+6478 1209+-5485 -2881+3423 3905+4744 3006+-5137 -298+2745 -9075+4810 -7816+6685 -5855+-4518 -5267+-3515 2005+-2141 -7857+-1344 3896+6692 -5846+-4926 -4555+1963 -9232+3153 -8917+7738 -3908+4996 -7648+-4370 -5485+6950 559+-3857 -6154+-1016 -8599+-1485 3807+-5521 -2443+284 4505+-4005 -5969+6556 1109+-4699 -4975+5343 2470+158 4488+-5480 -2917+-1740 3634+-384 -8912+7837 -3558+1183 4538+-756 -8739+-4621 648+-616 4253+-4861 -4686+7470 -391+-4124 -5817+5947 -6713+-4416 -5419+-2548 -7510+-5515 -2566+5405 -7263+1903 -9236+4195 -8326+1273 4535+7334 -4898+-4217 -5695+-1981 -7979+-5510 -2642+4355 3313+4682 -7927+-4046 -5917+7280 -4997+152 4487+-174 4411+3931 -8506+1437 4527+5663 2154+2885 -9024+1218 4537+3917 -8515+-5008 -4382+4319 -8231+5387 2429+-1618 3718+326 4510+7590 -666+-5467 -1488+-2906 2620+7774 -1172+2980 -8988+6987 -5450+4291 3358+-2250 3219+-1049 -8580+-2216 3248+7858 -3459+6508 -6079+-1614 -8230+5402 2415+3757 3706+2742 -9076+-5436 -1298+-4260 1138+2542 -9138+3829 3661+4050 -8426+2309 -9190+-520 4291+-453 4316+-1462 -8328+1661 -9247+-4914 -4580+-4611 -5121+4917 -7720+2136 4425+-5189 -441+6851 -5637+-3231 -6862+-5378 -3414+-5323 -3598+7880 -3347+6807 770+512 -9179+7854 -1472+-2011 3421+5455 2365+6752 -5768+7957 -2430+-1503 -8302+6262 -6369+-4142 1289+-1032 4069+-3991 1474+7810 -1294+-5227 -3875+-3465 -6612+5049 2741+-4957 -4490+-5060 -4268+-2530 2971+-3023 -7073+1384 4530+4962 -7679+-5498 -1751+-1270 -8448+4117 -8380+3960 -8487+7569 -4410+-2068 -7914+-3460 2062+-3532 -6538+189 -9106+-2955 -7137+-4347 -5517+4398 3282+4980 2802+-4116 1322+-5128 -275+1997 -9229+5367 -7300+7906 -3166+-5451 -1378+2785 4217+-2369 3116+5130 -7524+1986 4458+-2973 2555+-671 4230+2853 4188+-1685 3672+-2617 -7449+335 -9142+-5177 -406+-3728 1775+123 4482+7916 -3086+-5508 -2669+-5393 -1102+-548 4280+-3714 -6328+941 4543+771 4539+-3015 2514+259 -9124+7549 -569+3639 -8686+7662 -4146+-4950 100+5638 -7030+7010 -5418+7604 -4316+5518 -7152+3776 -8604+5641 2177+-3455 -6623+-5384 -3391+-1681 -8186+5125 2672+7899 -3220+-5010 -16+-703 -8765+7621 -4267+-3444 -6635+-2485 3012+7053 -5356+-3590 1926+-5384 -1068+4479 3222+4499 -8082+3481 3872+-263 -8960+-4660 -5041+-2911 -7178+-5085 -172+4113 3478+828 4541+1943 4467+2005 4454+1053 4541+5829 -6835+4543 -8045+-1838 3561+7920 -1850+1920 4471+7542 -553+5295 -7369+-4456 879+-5306 -800+-4689 -4992+3763 -8612+7358 -153+-1792 3596+6141 1626+7663 -4143+-2398 -7640+-4425 -5406+3554 -8732+1639 4510+7260 42+4693 3049+-5515 -1966+-4816 346+-3085 2445+435 4521+-4097 -5852+7639 -4214+-5459 -3056+-4373 990+2385 -9176+6036 -6619+5727 2087+-5463 -3033+-4743 467+2475 -9155+750 -9213+-4578 710+2900 4167+-3537 1982+-3935 -6057+3285 -8860+-468 -8875+2619 -9115+-2759 2759+7719 -3970+7706 -959+-4896 -4617+3894 3620+6277 -6352+7609 -4302+-1583 3742+6504 1176+-787 -8723+897 -9228+7701 -4027+1249 -9246+7936 -2898+-421 -8896+-747 4198+5876 1927+-565 -8831+720 4537+-1068 -8569+6823 747+-4759 -4872+2952 -8999+6471 -6124+6006 -6651+2404 -9172+7851 -3493+-4039 1416+-5073 -4239+7947 -2142+4830 2932+6888 -5587+6320 1408+7878 -3358+-2486 -7564+42 4467+205 4495+7121 284+-5117 -4139+7440 -326+-1525 3781+-5506 -1831+7418 -279+7659 -833+7943 -2807+158 -9098+6297 -6329+7206 -5126+4323 3336+2441 4341+-1155 4007+-5524 -2344+-1164 4002+-5011 -18+4768 -7853+6015 1772+7543 -4476+-5525 -2278+7951 -2212+7952 -2234+-4207 1206+4440 3251+-4685 555+-43 4447+-5518 -2016+6896 -5576+7819 -3629+7043 413+6098 -6552+-219 -8977+3188 4031+-5512 -1917+-837 4159+3677 -8664+-1150 -8521+-54 -9035+6646 991+-5355 -3493+-2189 3271+-5449 -3107+-2433 3059+-2120 -7874+3517 -8751+7834 -3571+7860 -1499+-5401 -1133+-5474 -1542+1048 -9238+3704 -8648+3464 -8777+588 4531+-5498 -2772+1110 -9241+3230 -8884+6548 -6030+6857 698+-5250 -3816+-2970 -7123+-5525 -2277+-3617 1897+-971 -8624+6096 1679+-137 -9007+-927 -8648+4500 3206+1214 -9245+-4733 -4917+-3086 2444+-391 4339+5513 2310+4238 3394+-2540 -7517+-4464 868+7834 -1389+-4964 73+2390 -9175+489 -9175+5514 2309+-3315 2211+-5504 -1810+-3574 1943+-5525 -2279+-5342 -3536+2862 4184+5897 1904+-313 4367+-4837 309+-5278 -709+-5392 -3360+-1859 -8066+1554 -9250+-955 4105+7923 -3023+-5506 -2692+1782 -9242+878 4542+1066 -9239+-2312 -7714+-2043 -7933+7888 -3301+7447 -341+5338 -7328+3186 -8903+-1923 -8021+7922 -1867+-4189 1229+-1887 3523+-4848 289+7912 -1791+7920 -3051+-2828 2694+1535 4520+-519 -8852+-798 4176+6198 1557+-4555 742+5802 2007+5579 -7090+1322 4533+7718 -994+3957 -8489+2320 -9188+93 -9080+-187 4407+-5520 -2474+6125 1645+-5490 -2841+4739 -7878+6805 -5698+4413 3271+1682 4505+4015 -8450+7251 59+-1884 -8049+5887 1915+-5325 -863+-4727 492+7572 -623+-4214 -5699+-4883 225+7955 -2330+3582 3813+-4466 -5346+6220 -6416+3668 3761+7889 -3295+-4778 -4839+7868 -3410+2486 4327+7957 -2431+-5402 -3319+3044 4101+47 4468+-4828 -4750+-430 -8892+7760 -3835+-330 -8934+-1684 -8184+-2698 2816+326 -9140+3702 3740+259 4502+-4419 929+758 -9214+3596 -8710+7389 -218+3236 4006+-3081 -7018+-1748 -8141+-2115 -7878+2520 4316+-4583 703+-1806 -8102+6935 582+-5450 -3102+7957 -2429+7327 -89+4316 3341+-3576 -6488+-5419 -1215+5892 -6770+-5076 -152+7904 -1734+5773 2038+-2683 2830+7233 -5080+-5366 -1003+3403 3916+255 -9123+7940 -2039+-88 -9024+1855 4482+6367 1349+7816 -3640+1086 -9240+-5457 -1413+1286 -9247+-3557 1961+-3264 2263+6531 -6051+2280 -9195+5314 2497+7956 -2364+-1177 -8505+4865 -7767+313 -9137+7710 -3999+7617 -731+7560 -4433+1454 4526+-5264 -3778+7492 -440+6428 -6176+469 4524+-2882 -7205+7682 -892+-5231 -565+2997 4123+-5428 -3209+-5522 -2128+7778 -3774+1000 4542+7871 -1552+-2799 -7282+7733 -1041+5546 2276+-4650 606+-5301 -3667+7159 -5200+4270 -8269+7783 -3757+4794 2963+-5517 -1999+-5287 -738+1934 -9234+-3604 1911+7943 -2080+-1968 3457+-1214 3974+-4265 -5630+3135 4057+1000+377 -3737+-6042 -3339+-4548 -4328+-9096 1899+-3984 8472+-5702 7370+-6825 6320+4398 2023+-9074 1091+2909 -1321+-7438 5629+1803 7052+1608 7232+4305 1444+1171 7611+1493 7336+-6433 -2987+-5094 -4031+2741 6078+2982 -1223+4000 4286+-5670 -3640+-1813 -4732+-4135 -4502+-8192 4548+-8655 3650+2834 -1418+3926 360+2392 -1936+-6097 7033+4195 1048+-7121 5998+-8497 3987+-8496 3989+-1168 -4565+-8967 523+-4769 -4222+-4722 8073+4142 3995+2756 -1515+3592 4985+3576 -320+504 8087+4423 2642+4209 3833+3614 -251+-5362 -3858+-2536 8895+4194 1045+-9074 2156+365 8174+3943 397+-8759 3390+-7014 6116+4397 2984+-8882 258+-2816 8855+-7910 -1378+2332 -2002+-2448 8902+-9080 2091+1976 -2382+-6001 -3374+-9105 1472+-5114 7813+-8953 466+1556 -2791+-5385 7619+-5892 -3465+4420 2706+-9089 1225+716 -3495+-9108 1665+1446 7378+-3871 8527+3271 5437+1658 -2697+-8381 4209+139 8308+2560 6280+3631 -220+412 8145+1940 6921+3394 -627+-1931 -4752+-1626 -4695+-3468 8694+3816 4621+4119 4046+-3514 8679+-7423 -1964+-2547 8894+4415 2228+-9104 1449+1483 7345+-4057 -4530+-7548 -1818+-4328 8294+-3760 8578+-4771 -4221+-5339 7653+4426 2449+4235 1181+-7073 -2348+-4339 -4420+1180 -3122+-2133 8911+-7417 5655+-1068 8779+-6526 -2899+-3355 -4717+3572 -327+89 8335+-7398 -1993+-9091 1246+1330 -2994+234 8253+-8093 -1136+250 -3823+-3525 8675+-5498 -3765+4254 3703+-4583 -4312+2040 6824+-9086 1194+-1907 8903+-1980 -4760+-9049 911+-2805 -4787+-7647 5360+4377 1823+-1473 -4657+-8725 3477+-8823 3222+-7188 -2225+-8385 -695+-8933 2878+-8461 -570+-4275 -4447+-5319 -3887+-134 8442+-473 8588+-6658 6496+1842 -2520+3903 4467+-7970 -1301+2873 -1368+-7387 5691+-4214 -4472+70 -3940+1476 -2864+1415 -2919+-460 -4236+2506 6339+4414 2807+-3352 8730+4415 2793+-9101 1389+-1115 -4545+-7074 6050+3999 527+-3085 -4757+-4438 8235+4115 823+-2220 -4787+4247 3725+3695 4822+-8899 302+-8813 94+1245 7550+2481 -1837+2280 6579+-294 -4148+-8498 -507+-7810 5135+-6962 -2465+4403 2079+-3580 8654+4342 1611+3976 471+-8701 3538+2928 -1296+-8505 -495+162 8295+-8647 -238+-8585 -353+-6485 -2938+-4094 -4517+1009 -3265+-8309 -817+-5008 7886+-7747 -1580+3849 196+-8274 -871+2894 5899+3773 45+-6722 -2710+4162 951+1950 -2409+-1387 -4633+-9056 959+-441 -4226+-1562 -4680+2735 -1541+-9107 1535+-9097 1321+-1064 8778+-9036 2436+-9078 1122+3068 -1105+4251 1236+2189 -2157+-9102 1408+4420 2319+4043 637+-9048 2361+488 -3660+810 -3422+-2207 -4786+-745 8685+-2485 -4798+1148 -3149+-1522 -4670+637 8001+1425 -2910+2866 5932+545 -3620+4404 2920+816 7879+-6871 6271+-8608 3754+-5691 7379+4202 3851+-7650 -1697+-6424 6732+1072 -3213+-3056 8809+-4664 8108+-2913 -4777+-4108 8409+184 -3866+4382 1863+-187 -4090+276 -3806+2781 -1484+-5727 -3597+4217 3812+-1214 -4580+-8228 4486+3390 5279+3246 5469+-3063 -4760+-1231 8815+4366 1753+2866 -1377+4126 4031+868 7842+-5927 -3436+-8170 -1027+2607 -1692+-9032 805+-8148 4623+-8834 3192+4425 2579+-3618 -4664+-8296 4365+1045 7711+-7295 5799+2077 -2276+-691 8667+-5186 -3973+4392 1958+-3496 -4692+-6759 6390+-2791 -4788+-4388 8262+-7864 5058+-9101 1815+-7331 -2068+-7555 5482+3954 421+850 7855+-3477 -4696+-4961 7918+-830 8711+-5675 7392+-8929 389+3959 432+-5760 7322+1091 7676+4389 1927+-8639 -253+1360 7453+-5621 7435+3228 -877+1160 7620+3228 5492+-2549 -4797+-4457 -4369+-5853 -3497+-5620 -3677+915 7808+4104 794+4374 3155+-343 8534+3469 -504+-1014 -4504+-8891 281+-4870 -4166+3065 5694+-2693 -4794+485 8099+-7603 -1753+-8217 4505+-7199 -2213+4031 4226+-3209 8771+-1841 8898+2705 -1577+-5830 7263+-500 -4257+-3395 8717+4426 2535+1785 -2576+-5532 -3741+-1006 8763+-9035 2442+2439 -1884+-9040 850+1724 7126+-2311 8909+-7957 4922+-7045 6082+3505 5116+-5167 -3985+-8226 -944+-5550 -3728+-7463 5598+4427 2479+-5433 7582+972 -3295+-5533 7504+-76 -4028+-3404 -4709+-2818 -4786+-8808 83+4271 3648+-1327 8831+3815 127+-8224 -947+634 8003+-8713 -112+-2074 -4774+-187 8466+2721 -1558+-8827 126+3878 257+-9001 663+-1678 -4707+-6622 -2807+4361 3244+-6045 7079+4427 2478+-971 8753+-8348 4270+1554 7281+-4618 8135+-4209 -4474+-8199 4536+4423 2381+4200 3856+-9085 2035+-244 -4121+-4546 8176+-9109 1636+-6504 -2920+-7771 5190+-3567 8659+-8838 152+803 7888+583 -3593+-6236 -3167+3542 5061+-8258 4434+3699 -95+3639 4912+1822 7034+760 -3461+-3890 8518+2965 -1246+-9108 1579+-2726 -4792+4359 1709+-8962 2770+594 -3585+3814 125+-6778 6370+-1891 8902+-8151 4618+-4246 -4459+-3937 -4571+4298 3538+2041 6823+-3908 -4580+-8801 68+-7478 -1900+-3004 8821+-7857 5068+-7576 -1785+3166 5570+108 8325+-9109 1637+-4372 -4406+-8786 3320+3213 5511+24 8367+-7960 -1314+-3295 8747+4145 3988+3627 4931+680 7972+-3160 8784+1665 7180+3457 5185+3316 -746+-4638 -4286+-7548 5491+1701 -2657+-310 8520+3288 5415+3779 4684+-6524 6634+-8455 4069+4331 3400+-1866 -4741+-625 8644+-5485 -3774+-6897 -2532+2693 6133+-4053 8437+-9018 2535+3744 4742+-8187 -1002+4410 2856+-136 -4062+-18 -3994+-8321 -798+-2285 8910+3182 -944+304 -3787+-4983 -4099+4019 576+-1157 -4561+2342 6514+-9084 1175+-1470 8853+-1129 8793+-5556 7486+-1458 -4653+-1102 -4540+4427 2477+-3004 -4767+-5227 7734+3741 -16+4414 2215+3935 4408+3175 -954+2177 6685+4065 4157+-5773 -3562+-7294 -2109+-3809 8556+826 7872+-2683 8877+-6300 6848+-9061 995+-9096 1307+-4587 8153+-2057 -4772+-7610 5410+-3598 8647+3381 -647+-4423 -4384+4367 3203+-8313 4334+-7910 4991+-8856 195+-7591 5435+3517 -422+-873 -4442+-1383 8840+-3668 8618+-371 -4189+-8645 3673+3577 5008+-2841 -4784+3275 -808+-6128 -3264+-5265 7707+-9028 784+-8917 2933+-216 8479+3429 -570+-3030 -4764+1742 -2618+419 -3708+-2475 8900+-4706 -4253+-6859 -2571+4387 3060+2143 -2206+-3451 -4701+1618 -2734+2830 -1423+-1678 8881+-6290 -3118+-2242 8911+-1925 -4751+-7516 5532+-4790 -4211+-8595 3782+-5398 7609+4410 2164+-5982 -3390+-8542 -431+-8072 -1165+3703 4809+1403 7416+-7342 5744+-1278 8823+-6347 -3066+2612 6223+-5354 7642+2716 6107+-9043 870+4353 1672+-9092 1258+-811 -4413+2517 6327+-3842 -4600+-956 -4479+-1432 -4646+1380 -2950+2542 -1767+-4155 8385+-7375 -2019+-8343 -763+4285 3591+3790 78+3273 -811+1300 7504+-4241 8340+-7224 5881+4131 4020+-8736 3449+-2978 8826+-9097 1886+4350 3309+-4866 7980+-7686 -1654+-4916 -4139+4422 2665+-6383 6771+-8681 3587+2649 6182+-8426 -628+4355 3281+4392 3023+-944 8745+-1774 -4725+-8682 -172+-588 8631+-7531 -1838+2493 6353+-6687 -2744+-6062 7064+-3711 -4639+-1877 8901+672 -3528+-4495 -4352+-720 8677+-2286 -4791+1301 -3019+-4741 8061+-2234 -4788+-6107 7024+4156 3962+-5921 7186+-9018 737+1239 -3072+-539 8613+-2135 -4780+-5842 -3506+3004 5768+-1416 8845+-2869 8846+1406 -2927+-8877 3066+-6175 -3222+1718 -2641+2005 6858+-44 8400+-3268 8755+-7175 -2239+-9041 2405+-6400 6755+-5059 7851+-774 8694+-2908 8839+-7848 -1456+-6604 6552+4363 1734+-9092 1950+-629 -4323+-8031 4810+-8636 3693+-225 8483+4419 2725+521 -3637+-3143 -4749+2232 -2111+-8076 4741+-9064 2251+-3738 -4631+-99 8426+-5276 7699+-2033 8909+-5492 7536+3056 5705+-7750 5219+-2960 -4772+3411 5250+-9079 1130+3965 4352+2019 -2337+2726 -1552+-1287 -4603+-3895 -4584+-9000 2615+-4311 8303+4318 1499+-5203 7751+3973 464+3913 332+-3533 8672+1455 7370+2921 5867+4176 992+-8779 22+-7472 -1907+-2081 8910+-3603 8645+739 7932+-5754 7327+1210 7579+3860 4545+-787 8698+-4375 8269+-907 8734+-6137 -3256+-3991 -4553+-5674 -3637+2613 -1685+1922 -2438+-7512 5537+2968 5811+-2852 -4783+4379 3119+-7024 -2400+-6594 -2834+3031 -1156+-7998 4860+3256 -836+874 -3372+1078 -3208+-5933 -3431+1841 -2521+-1704 -4712+-9031 2465+-5170 7774+2849 5952+-5597 -3694+-9024 2503+2407 6445+2466 6382+938 7791+3337 5350+-547 8616+-1956 8906+3278 5428+4324 3430+-3962 -4563+-1084 -4533+851 -3390+-7895 -1397+-8824 119+188 8280+-8019 -1236+-8791 47+2796 6014+4380 1846+4174 3919+-9019 2530+-2702 8874+-1683 -4708+-8063 4761+-4803 8021+-8560 3857+-3299 -4726+-3120 8794+-8617 -294+3340 5346+3089 -1076+-5101 7822+-1722 8886+3128 -1021+4336 1579+-6723 -2709+1891 -2470+-2649 -4795+-2397 -4796+-2775 -4789+-5508 -3758+-4222 8350+4405 2102+-574 -4295+4273 1317+-2919 8837+2363 -1968+-3250 8760+-307 -4155+-7738 -1591+-9013 714+-8884 263+-9102 1795+699 -3508+657 -3539+-4752 8054+2289 -2049+-1619 8874+-8858 3122+-8139 -1071+2215 6646+-7242 -2166+-6179 6959+-8259 -894+4396 2992+-8797 3291+-2371 -4795+-9109 1635+-95 -4039+-7938 4950+-4691 8092+-1652 8878+-7664 5337+-6088 7041+-4986 7901+-2625 8886+-2440 -4797+4346 3330+-8111 4684+-2601 -4796+-1546 8864+-2197 8912+-9098 1337+-6914 6225+-922 -4464+-6085 -3302+-9010 701+-8568 -384+-3246 -4734+-8568 3840+-5421 -3818+-2375 8906+-1186 8806+-8377 -708+-3775 -4620+-4466 -4365+-884 -4447+4254 1247+-468 8586+-6165 -3231+3349 -696+3510 -434+4224 3793+939 -3321+-7270 5828+-7148 -2268+-8876 3069+-8423 4130+-6158 6978+3546 -372+4419 2299+4409 2868+4416 2777+-2751 8866+-761 -4389+4097 4092+-8987 2670+-9069 1054+-2462 8901+-6701 6451+-6406 -3012+-1830 8897+-9045 2380+40 -3959+2110 6753+-5654 7409+-1763 -4723+-7408 5666+3706 -82+2391 6462+-6573 6584+-4143 -4499+-1330 -4616+-995 8760+4313 3476+-259 8498+2096 -2256+3886 274+3535 -391+-8022 -1232+-3959 -4564+-7928 -1355+-1539 8863+-3921 8503+-407 8561+-7089 -2331+1912 6948+432 -3699+-9037 833+4109 4067+2588 -1714+-9006 684+-3852 -4597+-5102 -4026+-8658 3643+-5983 7133+-3614 -4665+751 -3468+774 7908+-2757 8865+301 8213+-8714 -110+3466 -509+-527 -4271+4214 3820+87 8336+-3553 -4679+-4932 7937+-2196 8912+1363 -2965+1319 7488+3661 4877+-5442 7575+-723 8678+-2599 8889+-3212 -4739+-8472 4036+4328 3413+-7953 -1323+-4606 8142+-9087 2012+-8458 -575+-3224 8767+-3676 -4649+3957 4367+2660 -1630+-8844 3163+-5047 -4060+-8906 321+59 -3947+4077 724+-1545 -4676+4416 2243+-1079 -4531+121 -3907+3488 5141+-4182 8371+4402 2939+-6971 6163+-3137 8790+-8936 2867+3776 4689+-8641 3682+101 -3920+-8980 576+-1989 8908+-7403 5672+4379 1838+-3687 -4646+-4783 8034+-9098 1871+-6340 6811+279 -3804+-7289 5806+4349 1649+-4844 -4181+4141 892+-6238 6905+4337 1584+-2083 -4775+-3798 8561+2790 6021+3823 4609+4319 3451+-5381 7622+-7800 -1515+-1436 8848+-8936 411+4407 2889+-5250 -3932+-8254 4441+-9081 1147+-5862 7236+-8955 2797+-1274 -4599+-6792 -2639+9 -3978+3666 -156+-2396 8905+-2999 8822+4280 1344+4032 4224+4336 3377+993 -3278+-7163 5951+-9071 2187+-7955 4925+-1864 8900+-5316 -3889+-5456 -3794+-7713 5270+-3266 -4731+-3408 8713+4358 3264+4331 1555+-8388 4196+-2307 -4792+-6632 6523+3963 441+-3726 8593+-1597 8871+-9013 2559+568 8046+3544 5058+-1769 8891+-1149 -4558+-2486 -4798+-436 8573+4297 1411+-3136 -4750+-1656 -4702+-698 -4358+-64 -4021+-2146 -4781+-6467 6690+-4495 8204+992 7751+-8898 2998+420 8140+-8896 294+-792 -4404+703 -3505+-8531 3918+4054 665+-3026 8816+-9062 2268+-4958 7920+4152 922+-354 -4180+-6012 7108+988 7754+4216 1116+1497 -2845+326 -3772+-1999 -4763+1020 -3256+-8747 -43+-8979 2703+3118 5629+1751 7101+-8625 3717+-1205 8810+4354 1678+-4263 -4452+4399 2967+1251 7545+-9061 2276+3886 4498+-419 8566+1844 7013+-9105 1733+-6523 6635+-2608 8888+-8995 638+-4821 -4194+-840 8714+-9059 2291+-1414 -4641+1000+5405 -5709+-1698 5953+9153 2592+1778 7947+1967 -6058+3205 8004+-3874 2095+4217 7675+6514 -5037+-2525 -2159+8913 -2456+5678 6701+9370 2069+8699 -2797+9445 1844+-1882 5768+4781 7346+-2251 5369+-3860 1066+9404 -1471+4644 -6018+9732 -30+9058 2781+3527 7928+4389 7586+9026 2842+-3803 679+6079 6369+9635 -674+1247 -5708+-2369 -2373+2089 -6100+9597 1260+9737 149+9642 1021+1046 -5578+7525 -4185+2472 -6202+-3864 1101+9516 1603+2540 8063+-3911 1676+5094 7130+9728 299+9644 -631+6212 -5242+9601 -818+7860 -3842+5413 6899+-785 6736+7105 -4577+9701 -327+-744 -4156+-265 7087+-3872 2108+-3604 -119+6595 -4980+7941 -3754+-1547 6100+-3817 2399+8965 -2364+4980 -5900+6730 5771+6553 5941+-3906 1531+-3459 -529+1003 -5549+-3668 91+4559 7489+2043 8001+4554 7492+9475 -1275+-2614 -2033+8866 3135+9127 2645+9563 1416+5807 -5487+-3689 165+9332 2175+2475 8058+3434 -6283+-1113 -3797+8426 -3176+-1112 -3798+1312 -5747+9709 -269+-3317 3800+4616 -6027+9712 478+4068 -6175+1674 7923+9673 -486+8379 -3238+9350 -1606+9007 -2288+9508 1632+6275 6197+-3885 1290+-3888 1991+-2453 -2259+-850 6688+-583 -4306+9737 68+-2918 -1573+7205 5292+2383 8050+941 7704+5578 -5616+20 7255+8789 3267+5871 6546+9736 196+2907 -6279+-926 6630+9187 2520+-3231 -1013+723 7616+9679 771+1610 -5907+2643 8068+-3266 -946+1653 -5927+5960 6471+-3360 -752+-2410 -2318+9450 -1348+3454 7946+-2151 -2651+6612 -4968+847 7668+3444 -6282+461 7497+7047 5456+9256 -1814+3891 7814+9703 561+3944 7793+9719 402+9586 1313+-2492 5084+4743 7371+332 7430+8917 -2449+9733 -13+9552 -1006+6357 -5145+-438 6975+9604 1226+-3726 309+9581 1337+-2599 4944+-2254 -2524+3301 -6294+972 7715+4374 7594+4572 7481+7654 -4056+-3180 4056+9738 91+8324 3966+-3118 -1225+4409 7575+-1765 5887+-3707 231+8680 -2825+641 -5296+8237 4086+7930 4478+3611 7906+510 -5201+-2905 -1594+829 -5430+6027 6414+4956 7227+9730 -61+3423 -6284+-2716 -1885+8509 -3064+5186 7064+-3460 3519+-3902 1843+7978 4419+9347 2134+6213 6252+6939 5566+9725 -122+4975 7214+2227 8031+7500 4980+9531 -1083+9699 -340+6127 -5297+1255 -5713+-1836 -3029+9651 -597+1052 7743+-3901 1855+-3679 129+666 -5314+3352 -6290+249 7384+955 7709+9539 1518+-3623 3116+-3758 2649+9197 -1930+8970 -2355+-1332 -3572+-1220 -3688+-3649 3040+-3798 651+8776 -2680+-3598 3184+9478 1735+-3467 -508+-3742 2710+-3808 2442+6192 -5255+-2207 -2582+2972 -6286+-3430 3580+7476 -4233+-687 6805+3850 -6220+-3774 2586+-1279 -3627+1923 7977+3108 8022+2172 -6125+9625 1117+-3505 -407+9657 929+4515 7515+5057 -5868+7099 -4582+-3014 -1410+-2917 4497+-2020 5624+-385 7010+9687 702+-2731 -1863+7784 -3923+1323 7830+8502 3713+-3729 2759+4145 7708+536 7533+9652 960+4659 7426+-3347 -780+4778 7348+6262 -5209+7407 -4300+2418 -6189+-3814 741+9641 1027+3982 -6193+-1398 -3503+7264 5230+4043 7752+3860 7826+1936 -6046+-612 6857+6957 -4699+-3778 547+-200 -4646+9512 -1151+1295 -5737+-3577 3239+7774 4666+8666 3467+-3681 136+5701 6683+16 -4828+1883 -6025+2719 -6254+1168 -5658+4466 7543+-3531 3355+-154 7154+2678 8067+2787 -6265+-3523 3374+931 -5500+-2990 4384+-2711 4792+9286 2297+9623 -726+7541 4936+-2643 4885+9144 -2032+-2962 -1499+6117 6336+1438 -5818+9569 -942+8133 -3538+8470 -3117+1474 -5837+-3905 1798+-3787 593+1087 7755+-2872 4565+-365 7023+5852 -5461+-3685 2919+670 7593+9387 2019+3181 8009+6638 -4949+89 -4886+-3830 839+-768 6748+9165 2567+5008 7191+7200 -4496+9711 -254+-3833 2321+-1788 -3085+-1975 5672+815 7655+5992 6444+5161 7082+-3012 4349+-2292 -2475+6265 -5207+4400 7580+-3478 -479+2026 -6080+4198 7684+9527 1563+8441 3801+7441 5043+8748 3336+-63 -4762+-3354 -765+852 -5446+1642 -5922+3132 -6298+1427 -5812+770 7636+-3632 -31+-866 -4039+3904 -6209+-1007 6566+-2200 5427+3949 7791+11 -4824+7190 -4505+-252 -4601+8646 3498+-480 -4400+-3754 431+6615 5882+2646 -6241+347 7438+9694 -369+-25 7229+9296 -1732+459 7496+3040 8033+-697 6798+5101 7125+8078 -3601+3948 -6200+8538 -3024+-290 -4568+9553 1459+3287 -6295+3149 -6299+-3900 1457+1049 -5580+2981 8040+1476 7873+-435 6977+-3825 808+9174 2548+-1431 6211+5104 -5848+3682 7885+-3777 542+-3086 4224+1695 7928+422 7477+9708 515+8991 2908+2373 -6178+1518 -5860+-3583 -183+7818 -3887+6352 6127+3582 7914+9050 -2208+-3543 -301+2245 -6146+8196 4141+3265 7991+9702 -320+-3664 2993+6422 6063+-763 -4138+149 -4933+6753 -4862+1084 -5603+8551 -3006+-3039 -1367+-903 -4003+-44 -4778+9476 -1272+5495 -5662+7322 5169+7810 4623+-839 -4065+8081 4292+2774 8061+-3300 -877+2920 8047+-2033 5610+3801 7848+1518 7884+9738 92+-2379 5222+1977 7988+3183 -6300+3053 -6293+4132 -6160+4855 -5947+-3189 -1093+-2354 5251+9727 311+904 7690+9432 -1397+8206 -3454+7861 4562+5928 -5417+1370 7844+8600 -2938+7378 5110+8839 -2581+-3103 4194+-101 7185+3142 8016+3539 -6271+-1983 -2855+9231 2424+5223 -5796+871 -5459+6888 -4755+6503 5988+2562 -6223+7847 -3856+2404 8052+2156 8021+78 7288+-3892 1366+7182 -4512+4532 7505+842 7666+9566 1403+6940 5565+4923 -5922+5025 7179+2163 8022+1796 -5989+-3898 1890+4740 -5987+4199 -6144+9722 368+9734 6+126 -4915+572 -5246+-3906 1781+-3759 455+-3770 508+8356 -3268+2463 8057+-3907 1762+604 7564+2713 -6253+4174 7695+-3851 2227+4872 -5941+7615 4853+2832 8056+-3605 3165+7290 -4413+5398 6910+-2949 4448+9715 -223+2622 -6236+122 7313+733 -5362+-2034 -2794+-3469 3500+-133 -4703+70 -4871+-3893 1943+6296 6178+4309 7628+2526 8062+5630 -5587+7258 -4443+8841 3178+4798 -5967+6435 6051+-3554 3299+244 -5005+-2921 -1568+1954 -6053+-3891 1355+429 -5142+9495 1677+5689 -5554+3409 7957+-1495 -3401+5738 6654+4775 -5975+1029 7735+3531 -6272+5447 6874+4309 -6116+-1437 -3462+8181 -3483+5255 7014+-3796 2494+-2529 5036+9718 413+8352 3927+4153 -6155+9630 1089+9720 -175+7663 4797+-2317 -2442+-2865 -1658+-2093 5545+7715 4736+1185 -5669+1682 -5940+2556 8064+9319 2210+-2172 5458+-3895 1922+8802 3245+5981 -5386+8034 4350+4504 -6062+-3326 -824+4440 -6081+5368 -5728+3184 -6300+7757 -3951+-165 -4676+179 -4956+9093 2714+-3849 2238+4083 7735+8930 -2426+9260 2358+5816 6592+6772 -4847+-846 6691+-2374 5228+380 -5106+-2124 5511+1152 7776+1345 -5766+1629 -5916+-1930 5719+6739 -4873+8603 3564+8958 2969+9662 896+-2877 -1639+2644 8068+1273 -5724+-2485 5093+6100 -5314+-3415 -631+-3436 -583+-3876 1207+2641 -6240+-3856 2199+9678 779+7622 4845+726 -5357+-3338 -799+9305 2247+9102 -2111+3815 7843+9455 -1334+2685 -6248+-3628 3102+-3895 1400+-3852 997+-3651 33+6590 5906+7343 -4362+-3187 4043+-1766 5886+-1363 6273+4580 7476+-595 -4295+-3143 4123+-1795 -3077+3186 8008+-3131 -1201+8100 4268+1759 7943+-3869 1145+248 -5008+4482 7534+6817 5686+-3666 2986+-231 7108+2393 8051+9364 2086+9181 2533+-3875 2088+-3903 1829+9222 -1881+4855 7296+9257 -1812+2527 -6215+9696 623+-3492 -442+-912 6641+499 -5193+-3061 4267+-1446 6197+-1146 6454+-2273 -2500+-676 -4220+4185 7690+2695 8066+9381 -1531+-3713 254+9676 -470+6410 6074+-1991 5655+-2039 -2788+9722 -154+-1463 6181+4675 -6008+6164 6295+6677 -4920+-3275 3879+4886 -5936+-1673 -3212+-3910 1619+2964 8042+9459 1799+-2975 -1477+1628 7912+-300 7065+8319 -3316+-3537 -318+9638 -660+8744 -2729+9683 -431+-3911 1677+-1827 5824+-1272 6350+-2819 -1730+-3498 3433+2288 8039+1673 -5936+3082 -6295+3671 -6253+-1373 6264+-1061 6523+2136 8018+-1580 6068+9181 -1961+5157 -5825+-1957 5691+-724 6779+4998 7198+-1310 6318+9014 -2275+-3803 2464+7895 4521+-1378 -3524+4824 7317+9294 2276+-3832 2326+5508 -5655+-3881 1253+-3824 2365+972 -5528+9540 1514+4353 7605+-525 -4359+303 -5049+2216 -6138+-3549 3312+3300 7983+-2068 -2753+-2776 -1796+6973 -4686+3600 -6263+5579 6776+338 -5075+8558 3631+-3071 -1310+-3867 2137+8649 -2869+4957 -5909+3855 -6219+6323 -5168+5291 -5765+3738 7868+-577 6881+521 7526+7802 -3904+9410 1951+4049 -6179+4351 -6105+-178 -4665+8817 -2616+1450 7866+2995 -6288+1453 -5826+8467 3764+-2103 -2710+7374 -4332+-2571 -2094+8144 4210+-608 -4283+8398 3862+-3846 2254+-3223 3976+8119 4243+9534 1537+2300 -6160+9376 -1544+9735 212+5097 -5851+9215 2459+-2114 5522+8692 3426+-1614 -3275+-386 -4484+5890 6530+802 -5411+7554 4922+6871 5633+8704 3407+3593 7911+7106 5395+2354 8047+-3520 -366+8312 -3325+4457 -6076+5012 -5887+-337 -4527+-1888 -2968+6307 6168+9287 -1751+3748 -6240+9263 2351+-3648 3043+6452 -5080+9425 -1416+1849 -6011+-3354 3729+9242 2399+7034 -4636+-203 7125+-2773 4706+-990 -3918+-3909 1572+6092 -5319+1612 -5908+6551 -5011+7885 -3815+-1357 -3546+1879 7968+5749 -5520+-3835 872+9738 90+5811 6596+8732 3362+-3327 3781+8027 -3659+-3787 2532+9660 -553+-943 -3964+-3700 205+7273 -4429+9431 1887+5366 -5729+1845 7961+7593 -4118+8745 3341+3355 7970+1972 7987+-1207 6404+138 7322+2296 8040+-2058 5583+8085 4287+-3433 -590+9411 1948+5705 -5545+9491 -1225+9506 1639+-3901 1469+6673 -4923+8490 -3090+-1947 -2898+-1516 6130+8834 -2589+-3300 3832+819 -5423+-2640 -1996+1878 -6023+3523 7929+5306 -5758+3873 7821+-3138 4132+9630 -696+6524 -5030+-2306 5306+-530 6913+-1649 6001+6005 6433+6058 -5340+-2839 -1699+-2552 5006+-3164 -1140+-496 6936+9678 -459+3114 8021+-3910 1700+-811 6717+-625 6848+2234 -6143+-3429 3582+9605 1221+9614 1175+4714 7390+-1130 6467+-3792 2511+3217 -6299+-3712 250+-1714 -3168+1262 7811+5757 6639+4278 7644+-1355 6280+6770 5732+5480 -5670+7999 -3690+-3584 -180+3655 7893+9493 -1218+197 7355+2610 8067+-3739 365+-3199 -1074+1387 7849+-3842 922+9659 -558+-2663 4858+-3709 2833+9358 -1587+7225 5271+-3811 2428+4565 -6043+1211 7795+-1551 -3342+7866 4556+-788 -4114+7951 -3743+3691 -6250+2029 -6081+319 7423+9325 -1665+-3260 3907+-3851 989+7007 5497+9127 -2064+2591 8066+414 -5131+8201 -3460+3664 -6254+-2497 -2198+2855 8054+7184 5314+4642 7437+870 7677+1418 -5807+-2430 5160+4215 7676+9619 -743+8280 4027+-3404 -656+3271 -6296+8945 2993+4154 7704+6693 5807+6834 -4798+-3107 -1245+-1278 6345+-1044 -3865+-3007 4357+-2724 4774+730 7619+9729 -75+9536 -1065+9154 -2013+1113 -5622+6571 5924+-2822 4637+-3752 422+5489 6843+-3884 2022+-3026 4326+2304 -6161+1784 -5984+3364 -6289+7592 -4119+6404 -5113+5583 6773+4985 -5898+9556 -991+5916 -5424+-3560 -251+-469 -4410+6439 -5089+-2675 -1945+4896 7268+8934 3013+-3911 1678+6030 -5357+1561 7895+-3618 -76+2079 8008+-3395 3649+-3736 352+2846 -6272+-2853 4593+-3908 1556+5648 6724+5328 6961+2863 -6274+9585 -881+-273 7082+7709 -4000+4031 7757+5524 6817+-2258 -2519+1361 -5775+3236 -6298+8898 3078+-945 6615+9614 -764+8853 -2558+3978 7779+-3815 747+8257 -3392+5317 6969+3798 7849+1268 -5721+7159 5340+9728 -87+-448 -4429+-3090 4217+-3704 2851+3784 -6233+2012 -6075+9733 237+2745 8063+9087 -2139+5461 -5680+366 7448+-3882 2037+9669 846+4377 -6098+-2682 4832+-3370 3698+9579 1346+9691 667+9016 2861+8543 3653+-3388 -691+6666 5833+3473 -6279+-1180 -3729+1183 7786+4266 -6127+-89 7192+8888 -2499+-1727 -3154+-726 -4173+1744 -5967+7137 -4550+2145 -6117+1549 -5876+7920 -3777+-3725 2774+5+0 0+0 40+10 55+20 40+20 0+1000+29 9998+29 -9998+-29 9998+-29 -9998+9998 29+9998 -29+-9998 29+-9998 -29+59 9998+59 -9998+-59 9998+-59 -9998+9998 59+9998 -59+-9998 59+-9998 -59+89 9998+89 -9998+-89 9998+-89 -9998+9998 89+9998 -89+-9998 89+-9998 -89+119 9998+119 -9998+-119 9998+-119 -9998+9998 119+9998 -119+-9998 119+-9998 -119+149 9997+149 -9997+-149 9997+-149 -9997+9997 149+9997 -149+-9997 149+-9997 -149+179 9997+179 -9997+-179 9997+-179 -9997+9997 179+9997 -179+-9997 179+-9997 -179+209 9996+209 -9996+-209 9996+-209 -9996+9996 209+9996 -209+-9996 209+-9996 -209+239 9996+239 -9996+-239 9996+-239 -9996+9996 239+9996 -239+-9996 239+-9996 -239+269 9995+269 -9995+-269 9995+-269 -9995+9995 269+9995 -269+-9995 269+-9995 -269+299 9994+299 -9994+-299 9994+-299 -9994+9994 299+9994 -299+-9994 299+-9994 -299+329 9993+329 -9993+-329 9993+-329 -9993+9993 329+9993 -329+-9993 329+-9993 -329+359 9992+359 -9992+-359 9992+-359 -9992+9992 359+9992 -359+-9992 359+-9992 -359+389 9991+389 -9991+-389 9991+-389 -9991+9991 389+9991 -389+-9991 389+-9991 -389+419 9990+419 -9990+-419 9990+-419 -9990+9990 419+9990 -419+-9990 419+-9990 -419+449 9988+449 -9988+-449 9988+-449 -9988+9988 449+9988 -449+-9988 449+-9988 -449+479 9987+479 -9987+-479 9987+-479 -9987+9987 479+9987 -479+-9987 479+-9987 -479+509 9985+509 -9985+-509 9985+-509 -9985+9985 509+9985 -509+-9985 509+-9985 -509+539 9984+539 -9984+-539 9984+-539 -9984+9984 539+9984 -539+-9984 539+-9984 -539+569 9982+569 -9982+-569 9982+-569 -9982+9982 569+9982 -569+-9982 569+-9982 -569+599 9981+599 -9981+-599 9981+-599 -9981+9981 599+9981 -599+-9981 599+-9981 -599+629 9979+629 -9979+-629 9979+-629 -9979+9979 629+9979 -629+-9979 629+-9979 -629+659 9977+659 -9977+-659 9977+-659 -9977+9977 659+9977 -659+-9977 659+-9977 -659+689 9975+689 -9975+-689 9975+-689 -9975+9975 689+9975 -689+-9975 689+-9975 -689+719 9973+719 -9973+-719 9973+-719 -9973+9973 719+9973 -719+-9973 719+-9973 -719+749 9970+749 -9970+-749 9970+-749 -9970+9970 749+9970 -749+-9970 749+-9970 -749+779 9968+779 -9968+-779 9968+-779 -9968+9968 779+9968 -779+-9968 779+-9968 -779+809 9966+809 -9966+-809 9966+-809 -9966+9966 809+9966 -809+-9966 809+-9966 -809+838 9963+838 -9963+-838 9963+-838 -9963+9963 838+9963 -838+-9963 838+-9963 -838+868 9961+868 -9961+-868 9961+-868 -9961+9961 868+9961 -868+-9961 868+-9961 -868+898 9958+898 -9958+-898 9958+-898 -9958+9958 898+9958 -898+-9958 898+-9958 -898+928 9955+928 -9955+-928 9955+-928 -9955+9955 928+9955 -928+-9955 928+-9955 -928+958 9952+958 -9952+-958 9952+-958 -9952+9952 958+9952 -958+-9952 958+-9952 -958+988 9950+988 -9950+-988 9950+-988 -9950+9950 988+9950 -988+-9950 988+-9950 -988+1018 9947+1018 -9947+-1018 9947+-1018 -9947+9947 1018+9947 -1018+-9947 1018+-9947 -1018+1047 9943+1047 -9943+-1047 9943+-1047 -9943+9943 1047+9943 -1047+-9943 1047+-9943 -1047+1077 9940+1077 -9940+-1077 9940+-1077 -9940+9940 1077+9940 -1077+-9940 1077+-9940 -1077+1107 9937+1107 -9937+-1107 9937+-1107 -9937+9937 1107+9937 -1107+-9937 1107+-9937 -1107+1137 9934+1137 -9934+-1137 9934+-1137 -9934+9934 1137+9934 -1137+-9934 1137+-9934 -1137+1167 9930+1167 -9930+-1167 9930+-1167 -9930+9930 1167+9930 -1167+-9930 1167+-9930 -1167+1197 9927+1197 -9927+-1197 9927+-1197 -9927+9927 1197+9927 -1197+-9927 1197+-9927 -1197+1226 9923+1226 -9923+-1226 9923+-1226 -9923+9923 1226+9923 -1226+-9923 1226+-9923 -1226+1256 9919+1256 -9919+-1256 9919+-1256 -9919+9919 1256+9919 -1256+-9919 1256+-9919 -1256+1286 9915+1286 -9915+-1286 9915+-1286 -9915+9915 1286+9915 -1286+-9915 1286+-9915 -1286+1316 9912+1316 -9912+-1316 9912+-1316 -9912+9912 1316+9912 -1316+-9912 1316+-9912 -1316+1345 9908+1345 -9908+-1345 9908+-1345 -9908+9908 1345+9908 -1345+-9908 1345+-9908 -1345+1375 9903+1375 -9903+-1375 9903+-1375 -9903+9903 1375+9903 -1375+-9903 1375+-9903 -1375+1405 9899+1405 -9899+-1405 9899+-1405 -9899+9899 1405+9899 -1405+-9899 1405+-9899 -1405+1434 9895+1434 -9895+-1434 9895+-1434 -9895+9895 1434+9895 -1434+-9895 1434+-9895 -1434+1464 9891+1464 -9891+-1464 9891+-1464 -9891+9891 1464+9891 -1464+-9891 1464+-9891 -1464+1494 9886+1494 -9886+-1494 9886+-1494 -9886+9886 1494+9886 -1494+-9886 1494+-9886 -1494+1523 9882+1523 -9882+-1523 9882+-1523 -9882+9882 1523+9882 -1523+-9882 1523+-9882 -1523+1553 9877+1553 -9877+-1553 9877+-1553 -9877+9877 1553+9877 -1553+-9877 1553+-9877 -1553+1583 9872+1583 -9872+-1583 9872+-1583 -9872+9872 1583+9872 -1583+-9872 1583+-9872 -1583+1612 9868+1612 -9868+-1612 9868+-1612 -9868+9868 1612+9868 -1612+-9868 1612+-9868 -1612+1642 9863+1642 -9863+-1642 9863+-1642 -9863+9863 1642+9863 -1642+-9863 1642+-9863 -1642+1671 9858+1671 -9858+-1671 9858+-1671 -9858+9858 1671+9858 -1671+-9858 1671+-9858 -1671+1701 9853+1701 -9853+-1701 9853+-1701 -9853+9853 1701+9853 -1701+-9853 1701+-9853 -1701+1731 9848+1731 -9848+-1731 9848+-1731 -9848+9848 1731+9848 -1731+-9848 1731+-9848 -1731+1760 9842+1760 -9842+-1760 9842+-1760 -9842+9842 1760+9842 -1760+-9842 1760+-9842 -1760+1790 9837+1790 -9837+-1790 9837+-1790 -9837+9837 1790+9837 -1790+-9837 1790+-9837 -1790+1819 9832+1819 -9832+-1819 9832+-1819 -9832+9832 1819+9832 -1819+-9832 1819+-9832 -1819+1849 9826+1849 -9826+-1849 9826+-1849 -9826+9826 1849+9826 -1849+-9826 1849+-9826 -1849+1878 9820+1878 -9820+-1878 9820+-1878 -9820+9820 1878+9820 -1878+-9820 1878+-9820 -1878+1908 9815+1908 -9815+-1908 9815+-1908 -9815+9815 1908+9815 -1908+-9815 1908+-9815 -1908+1937 9809+1937 -9809+-1937 9809+-1937 -9809+9809 1937+9809 -1937+-9809 1937+-9809 -1937+1966 9803+1966 -9803+-1966 9803+-1966 -9803+9803 1966+9803 -1966+-9803 1966+-9803 -1966+1996 9797+1996 -9797+-1996 9797+-1996 -9797+9797 1996+9797 -1996+-9797 1996+-9797 -1996+2025 9791+2025 -9791+-2025 9791+-2025 -9791+9791 2025+9791 -2025+-9791 2025+-9791 -2025+2055 9785+2055 -9785+-2055 9785+-2055 -9785+9785 2055+9785 -2055+-9785 2055+-9785 -2055+2084 9779+2084 -9779+-2084 9779+-2084 -9779+9779 2084+9779 -2084+-9779 2084+-9779 -2084+2113 9773+2113 -9773+-2113 9773+-2113 -9773+9773 2113+9773 -2113+-9773 2113+-9773 -2113+2143 9766+2143 -9766+-2143 9766+-2143 -9766+9766 2143+9766 -2143+-9766 2143+-9766 -2143+2172 9760+2172 -9760+-2172 9760+-2172 -9760+9760 2172+9760 -2172+-9760 2172+-9760 -2172+2201 9753+2201 -9753+-2201 9753+-2201 -9753+9753 2201+9753 -2201+-9753 2201+-9753 -2201+2230 9746+2230 -9746+-2230 9746+-2230 -9746+9746 2230+9746 -2230+-9746 2230+-9746 -2230+2260 9740+2260 -9740+-2260 9740+-2260 -9740+9740 2260+9740 -2260+-9740 2260+-9740 -2260+2289 9733+2289 -9733+-2289 9733+-2289 -9733+9733 2289+9733 -2289+-9733 2289+-9733 -2289+2318 9726+2318 -9726+-2318 9726+-2318 -9726+9726 2318+9726 -2318+-9726 2318+-9726 -2318+2347 9719+2347 -9719+-2347 9719+-2347 -9719+9719 2347+9719 -2347+-9719 2347+-9719 -2347+2376 9712+2376 -9712+-2376 9712+-2376 -9712+9712 2376+9712 -2376+-9712 2376+-9712 -2376+2405 9705+2405 -9705+-2405 9705+-2405 -9705+9705 2405+9705 -2405+-9705 2405+-9705 -2405+2435 9697+2435 -9697+-2435 9697+-2435 -9697+9697 2435+9697 -2435+-9697 2435+-9697 -2435+2464 9690+2464 -9690+-2464 9690+-2464 -9690+9690 2464+9690 -2464+-9690 2464+-9690 -2464+2493 9683+2493 -9683+-2493 9683+-2493 -9683+9683 2493+9683 -2493+-9683 2493+-9683 -2493+2522 9675+2522 -9675+-2522 9675+-2522 -9675+9675 2522+9675 -2522+-9675 2522+-9675 -2522+2551 9668+2551 -9668+-2551 9668+-2551 -9668+9668 2551+9668 -2551+-9668 2551+-9668 -2551+2580 9660+2580 -9660+-2580 9660+-2580 -9660+9660 2580+9660 -2580+-9660 2580+-9660 -2580+2609 9652+2609 -9652+-2609 9652+-2609 -9652+9652 2609+9652 -2609+-9652 2609+-9652 -2609+2638 9644+2638 -9644+-2638 9644+-2638 -9644+9644 2638+9644 -2638+-9644 2638+-9644 -2638+2667 9636+2667 -9636+-2667 9636+-2667 -9636+9636 2667+9636 -2667+-9636 2667+-9636 -2667+2695 9628+2695 -9628+-2695 9628+-2695 -9628+9628 2695+9628 -2695+-9628 2695+-9628 -2695+2724 9620+2724 -9620+-2724 9620+-2724 -9620+9620 2724+9620 -2724+-9620 2724+-9620 -2724+2753 9612+2753 -9612+-2753 9612+-2753 -9612+9612 2753+9612 -2753+-9612 2753+-9612 -2753+2782 9604+2782 -9604+-2782 9604+-2782 -9604+9604 2782+9604 -2782+-9604 2782+-9604 -2782+2811 9595+2811 -9595+-2811 9595+-2811 -9595+9595 2811+9595 -2811+-9595 2811+-9595 -2811+2840 9587+2840 -9587+-2840 9587+-2840 -9587+9587 2840+9587 -2840+-9587 2840+-9587 -2840+2868 9578+2868 -9578+-2868 9578+-2868 -9578+9578 2868+9578 -2868+-9578 2868+-9578 -2868+2897 9569+2897 -9569+-2897 9569+-2897 -9569+9569 2897+9569 -2897+-9569 2897+-9569 -2897+2926 9561+2926 -9561+-2926 9561+-2926 -9561+9561 2926+9561 -2926+-9561 2926+-9561 -2926+2954 9552+2954 -9552+-2954 9552+-2954 -9552+9552 2954+9552 -2954+-9552 2954+-9552 -2954+2983 9543+2983 -9543+-2983 9543+-2983 -9543+9543 2983+9543 -2983+-9543 2983+-9543 -2983+3012 9534+3012 -9534+-3012 9534+-3012 -9534+9534 3012+9534 -3012+-9534 3012+-9534 -3012+3040 9525+3040 -9525+-3040 9525+-3040 -9525+9525 3040+9525 -3040+-9525 3040+-9525 -3040+3069 9516+3069 -9516+-3069 9516+-3069 -9516+9516 3069+9516 -3069+-9516 3069+-9516 -3069+3097 9507+3097 -9507+-3097 9507+-3097 -9507+9507 3097+9507 -3097+-9507 3097+-9507 -3097+3126 9497+3126 -9497+-3126 9497+-3126 -9497+9497 3126+9497 -3126+-9497 3126+-9497 -3126+3154 9488+3154 -9488+-3154 9488+-3154 -9488+9488 3154+9488 -3154+-9488 3154+-9488 -3154+3183 9478+3183 -9478+-3183 9478+-3183 -9478+9478 3183+9478 -3183+-9478 3183+-9478 -3183+3211 9469+3211 -9469+-3211 9469+-3211 -9469+9469 3211+9469 -3211+-9469 3211+-9469 -3211+3240 9459+3240 -9459+-3240 9459+-3240 -9459+9459 3240+9459 -3240+-9459 3240+-9459 -3240+3268 9449+3268 -9449+-3268 9449+-3268 -9449+9449 3268+9449 -3268+-9449 3268+-9449 -3268+3296 9439+3296 -9439+-3296 9439+-3296 -9439+9439 3296+9439 -3296+-9439 3296+-9439 -3296+3325 9429+3325 -9429+-3325 9429+-3325 -9429+9429 3325+9429 -3325+-9429 3325+-9429 -3325+3353 9419+3353 -9419+-3353 9419+-3353 -9419+9419 3353+9419 -3353+-9419 3353+-9419 -3353+3381 9409+3381 -9409+-3381 9409+-3381 -9409+9409 3381+9409 -3381+-9409 3381+-9409 -3381+3409 9399+3409 -9399+-3409 9399+-3409 -9399+9399 3409+9399 -3409+-9399 3409+-9399 -3409+3438 9389+3438 -9389+-3438 9389+-3438 -9389+9389 3438+9389 -3438+-9389 3438+-9389 -3438+3466 9378+3466 -9378+-3466 9378+-3466 -9378+9378 3466+9378 -3466+-9378 3466+-9378 -3466+3494 9368+3494 -9368+-3494 9368+-3494 -9368+9368 3494+9368 -3494+-9368 3494+-9368 -3494+3522 9358+3522 -9358+-3522 9358+-3522 -9358+9358 3522+9358 -3522+-9358 3522+-9358 -3522+3550 9347+3550 -9347+-3550 9347+-3550 -9347+9347 3550+9347 -3550+-9347 3550+-9347 -3550+3578 9336+3578 -9336+-3578 9336+-3578 -9336+9336 3578+9336 -3578+-9336 3578+-9336 -3578+3606 9325+3606 -9325+-3606 9325+-3606 -9325+9325 3606+9325 -3606+-9325 3606+-9325 -3606+3634 9315+3634 -9315+-3634 9315+-3634 -9315+9315 3634+9315 -3634+-9315 3634+-9315 -3634+7072 7072+7072 -7072+-7072 7072+-7072 -7072+0 9999+0 -9999+9999 0+-9999 0+1000+4846 8746+4846 -8746+-4846 8746+-4846 -8746+8746 4846+8746 -4846+-8746 4846+-8746 -4846+4899 8717+4899 -8717+-4899 8717+-4899 -8717+8717 4899+8717 -4899+-8717 4899+-8717 -4899+4951 8688+4951 -8688+-4951 8688+-4951 -8688+8688 4951+8688 -4951+-8688 4951+-8688 -4951+5003 8658+5003 -8658+-5003 8658+-5003 -8658+8658 5003+8658 -5003+-8658 5003+-8658 -5003+5055 8628+5055 -8628+-5055 8628+-5055 -8628+8628 5055+8628 -5055+-8628 5055+-8628 -5055+5107 8597+5107 -8597+-5107 8597+-5107 -8597+8597 5107+8597 -5107+-8597 5107+-8597 -5107+5158 8566+5158 -8566+-5158 8566+-5158 -8566+8566 5158+8566 -5158+-8566 5158+-8566 -5158+5209 8535+5209 -8535+-5209 8535+-5209 -8535+8535 5209+8535 -5209+-8535 5209+-8535 -5209+5260 8504+5260 -8504+-5260 8504+-5260 -8504+8504 5260+8504 -5260+-8504 5260+-8504 -5260+5311 8472+5311 -8472+-5311 8472+-5311 -8472+8472 5311+8472 -5311+-8472 5311+-8472 -5311+5362 8440+5362 -8440+-5362 8440+-5362 -8440+8440 5362+8440 -5362+-8440 5362+-8440 -5362+5413 8408+5413 -8408+-5413 8408+-5413 -8408+8408 5413+8408 -5413+-8408 5413+-8408 -5413+5463 8375+5463 -8375+-5463 8375+-5463 -8375+8375 5463+8375 -5463+-8375 5463+-8375 -5463+5513 8342+5513 -8342+-5513 8342+-5513 -8342+8342 5513+8342 -5513+-8342 5513+-8342 -5513+5563 8309+5563 -8309+-5563 8309+-5563 -8309+8309 5563+8309 -5563+-8309 5563+-8309 -5563+5613 8275+5613 -8275+-5613 8275+-5613 -8275+8275 5613+8275 -5613+-8275 5613+-8275 -5613+5662 8242+5662 -8242+-5662 8242+-5662 -8242+8242 5662+8242 -5662+-8242 5662+-8242 -5662+5712 8207+5712 -8207+-5712 8207+-5712 -8207+8207 5712+8207 -5712+-8207 5712+-8207 -5712+5761 8173+5761 -8173+-5761 8173+-5761 -8173+8173 5761+8173 -5761+-8173 5761+-8173 -5761+5810 8138+5810 -8138+-5810 8138+-5810 -8138+8138 5810+8138 -5810+-8138 5810+-8138 -5810+5859 8103+5859 -8103+-5859 8103+-5859 -8103+8103 5859+8103 -5859+-8103 5859+-8103 -5859+5907 8068+5907 -8068+-5907 8068+-5907 -8068+8068 5907+8068 -5907+-8068 5907+-8068 -5907+5955 8032+5955 -8032+-5955 8032+-5955 -8032+8032 5955+8032 -5955+-8032 5955+-8032 -5955+6003 7997+6003 -7997+-6003 7997+-6003 -7997+7997 6003+7997 -6003+-7997 6003+-7997 -6003+6051 7960+6051 -7960+-6051 7960+-6051 -7960+7960 6051+7960 -6051+-7960 6051+-7960 -6051+6099 7924+6099 -7924+-6099 7924+-6099 -7924+7924 6099+7924 -6099+-7924 6099+-7924 -6099+6146 7887+6146 -7887+-6146 7887+-6146 -7887+7887 6146+7887 -6146+-7887 6146+-7887 -6146+6194 7850+6194 -7850+-6194 7850+-6194 -7850+7850 6194+7850 -6194+-7850 6194+-7850 -6194+6241 7813+6241 -7813+-6241 7813+-6241 -7813+7813 6241+7813 -6241+-7813 6241+-7813 -6241+6287 7775+6287 -7775+-6287 7775+-6287 -7775+7775 6287+7775 -6287+-7775 6287+-7775 -6287+6334 7737+6334 -7737+-6334 7737+-6334 -7737+7737 6334+7737 -6334+-7737 6334+-7737 -6334+6380 7699+6380 -7699+-6380 7699+-6380 -7699+7699 6380+7699 -6380+-7699 6380+-7699 -6380+6426 7661+6426 -7661+-6426 7661+-6426 -7661+7661 6426+7661 -6426+-7661 6426+-7661 -6426+6472 7622+6472 -7622+-6472 7622+-6472 -7622+7622 6472+7622 -6472+-7622 6472+-7622 -6472+6518 7583+6518 -7583+-6518 7583+-6518 -7583+7583 6518+7583 -6518+-7583 6518+-7583 -6518+6563 7544+6563 -7544+-6563 7544+-6563 -7544+7544 6563+7544 -6563+-7544 6563+-7544 -6563+6608 7504+6608 -7504+-6608 7504+-6608 -7504+7504 6608+7504 -6608+-7504 6608+-7504 -6608+6653 7465+6653 -7465+-6653 7465+-6653 -7465+7465 6653+7465 -6653+-7465 6653+-7465 -6653+6698 7425+6698 -7425+-6698 7425+-6698 -7425+7425 6698+7425 -6698+-7425 6698+-7425 -6698+6742 7384+6742 -7384+-6742 7384+-6742 -7384+7384 6742+7384 -6742+-7384 6742+-7384 -6742+6787 7344+6787 -7344+-6787 7344+-6787 -7344+7344 6787+7344 -6787+-7344 6787+-7344 -6787+6831 7303+6831 -7303+-6831 7303+-6831 -7303+7303 6831+7303 -6831+-7303 6831+-7303 -6831+6874 7262+6874 -7262+-6874 7262+-6874 -7262+7262 6874+7262 -6874+-7262 6874+-7262 -6874+6918 7220+6918 -7220+-6918 7220+-6918 -7220+7220 6918+7220 -6918+-7220 6918+-7220 -6918+6961 7179+6961 -7179+-6961 7179+-6961 -7179+7179 6961+7179 -6961+-7179 6961+-7179 -6961+7004 7137+7004 -7137+-7004 7137+-7004 -7137+7137 7004+7137 -7004+-7137 7004+-7137 -7004+7046 7095+7046 -7095+-7046 7095+-7046 -7095+7095 7046+7095 -7046+-7095 7046+-7095 -7046+7089 7052+7089 -7052+-7089 7052+-7089 -7052+7052 7089+7052 -7089+-7052 7089+-7052 -7089+7131 7009+7131 -7009+-7131 7009+-7131 -7009+7009 7131+7009 -7131+-7009 7131+-7009 -7131+7173 6967+7173 -6967+-7173 6967+-7173 -6967+6967 7173+6967 -7173+-6967 7173+-6967 -7173+7215 6923+7215 -6923+-7215 6923+-7215 -6923+6923 7215+6923 -7215+-6923 7215+-6923 -7215+7256 6880+7256 -6880+-7256 6880+-7256 -6880+6880 7256+6880 -7256+-6880 7256+-6880 -7256+7297 6836+7297 -6836+-7297 6836+-7297 -6836+6836 7297+6836 -7297+-6836 7297+-6836 -7297+7338 6792+7338 -6792+-7338 6792+-7338 -6792+6792 7338+6792 -7338+-6792 7338+-6792 -7338+7379 6748+7379 -6748+-7379 6748+-7379 -6748+6748 7379+6748 -7379+-6748 7379+-6748 -7379+7419 6704+7419 -6704+-7419 6704+-7419 -6704+6704 7419+6704 -7419+-6704 7419+-6704 -7419+7459 6659+7459 -6659+-7459 6659+-7459 -6659+6659 7459+6659 -7459+-6659 7459+-6659 -7459+7499 6614+7499 -6614+-7499 6614+-7499 -6614+6614 7499+6614 -7499+-6614 7499+-6614 -7499+7539 6569+7539 -6569+-7539 6569+-7539 -6569+6569 7539+6569 -7539+-6569 7539+-6569 -7539+7578 6524+7578 -6524+-7578 6524+-7578 -6524+6524 7578+6524 -7578+-6524 7578+-6524 -7578+7617 6478+7617 -6478+-7617 6478+-7617 -6478+6478 7617+6478 -7617+-6478 7617+-6478 -7617+7656 6432+7656 -6432+-7656 6432+-7656 -6432+6432 7656+6432 -7656+-6432 7656+-6432 -7656+7694 6386+7694 -6386+-7694 6386+-7694 -6386+6386 7694+6386 -7694+-6386 7694+-6386 -7694+7732 6340+7732 -6340+-7732 6340+-7732 -6340+6340 7732+6340 -7732+-6340 7732+-6340 -7732+7770 6294+7770 -6294+-7770 6294+-7770 -6294+6294 7770+6294 -7770+-6294 7770+-6294 -7770+7808 6247+7808 -6247+-7808 6247+-7808 -6247+6247 7808+6247 -7808+-6247 7808+-6247 -7808+7845 6200+7845 -6200+-7845 6200+-7845 -6200+6200 7845+6200 -7845+-6200 7845+-6200 -7845+7882 6153+7882 -6153+-7882 6153+-7882 -6153+6153 7882+6153 -7882+-6153 7882+-6153 -7882+7919 6105+7919 -6105+-7919 6105+-7919 -6105+6105 7919+6105 -7919+-6105 7919+-6105 -7919+7956 6058+7956 -6058+-7956 6058+-7956 -6058+6058 7956+6058 -7956+-6058 7956+-6058 -7956+7992 6010+7992 -6010+-7992 6010+-7992 -6010+6010 7992+6010 -7992+-6010 7992+-6010 -7992+8028 5962+8028 -5962+-8028 5962+-8028 -5962+5962 8028+5962 -8028+-5962 8028+-5962 -8028+8063 5914+8063 -5914+-8063 5914+-8063 -5914+5914 8063+5914 -8063+-5914 8063+-5914 -8063+8099 5865+8099 -5865+-8099 5865+-8099 -5865+5865 8099+5865 -8099+-5865 8099+-5865 -8099+8134 5816+8134 -5816+-8134 5816+-8134 -5816+5816 8134+5816 -8134+-5816 8134+-5816 -8134+8168 5767+8168 -5767+-8168 5767+-8168 -5767+5767 8168+5767 -8168+-5767 8168+-5767 -8168+8203 5718+8203 -5718+-8203 5718+-8203 -5718+5718 8203+5718 -8203+-5718 8203+-5718 -8203+8237 5669+8237 -5669+-8237 5669+-8237 -5669+5669 8237+5669 -8237+-5669 8237+-5669 -8237+8271 5619+8271 -5619+-8271 5619+-8271 -5619+5619 8271+5619 -8271+-5619 8271+-5619 -8271+8304 5570+8304 -5570+-8304 5570+-8304 -5570+5570 8304+5570 -8304+-5570 8304+-5570 -8304+8338 5520+8338 -5520+-8338 5520+-8338 -5520+5520 8338+5520 -8338+-5520 8338+-5520 -8338+8371 5470+8371 -5470+-8371 5470+-8371 -5470+5470 8371+5470 -8371+-5470 8371+-5470 -8371+8403 5419+8403 -5419+-8403 5419+-8403 -5419+5419 8403+5419 -8403+-5419 8403+-5419 -8403+8436 5369+8436 -5369+-8436 5369+-8436 -5369+5369 8436+5369 -8436+-5369 8436+-5369 -8436+8468 5318+8468 -5318+-8468 5318+-8468 -5318+5318 8468+5318 -8468+-5318 8468+-5318 -8468+8500 5267+8500 -5267+-8500 5267+-8500 -5267+5267 8500+5267 -8500+-5267 8500+-5267 -8500+8531 5216+8531 -5216+-8531 5216+-8531 -5216+5216 8531+5216 -8531+-5216 8531+-5216 -8531+8562 5165+8562 -5165+-8562 5165+-8562 -5165+5165 8562+5165 -8562+-5165 8562+-5165 -8562+8593 5113+8593 -5113+-8593 5113+-8593 -5113+5113 8593+5113 -8593+-5113 8593+-5113 -8593+8624 5062+8624 -5062+-8624 5062+-8624 -5062+5062 8624+5062 -8624+-5062 8624+-5062 -8624+8654 5010+8654 -5010+-8654 5010+-8654 -5010+5010 8654+5010 -8654+-5010 8654+-5010 -8654+8684 4958+8684 -4958+-8684 4958+-8684 -4958+4958 8684+4958 -8684+-4958 8684+-4958 -8684+8713 4906+8713 -4906+-8713 4906+-8713 -4906+4906 8713+4906 -8713+-4906 8713+-4906 -8713+8743 4853+8743 -4853+-8743 4853+-8743 -4853+4853 8743+4853 -8743+-4853 8743+-4853 -8743+8772 4801+8772 -4801+-8772 4801+-8772 -4801+4801 8772+4801 -8772+-4801 8772+-4801 -8772+8800 4748+8800 -4748+-8800 4748+-8800 -4748+4748 8800+4748 -8800+-4748 8800+-4748 -8800+8828 4695+8828 -4695+-8828 4695+-8828 -4695+4695 8828+4695 -8828+-4695 8828+-4695 -8828+8857 4642+8857 -4642+-8857 4642+-8857 -4642+4642 8857+4642 -8857+-4642 8857+-4642 -8857+8884 4589+8884 -4589+-8884 4589+-8884 -4589+4589 8884+4589 -8884+-4589 8884+-4589 -8884+8912 4535+8912 -4535+-8912 4535+-8912 -4535+4535 8912+4535 -8912+-4535 8912+-4535 -8912+8939 4482+8939 -4482+-8939 4482+-8939 -4482+4482 8939+4482 -8939+-4482 8939+-4482 -8939+8965 4428+8965 -4428+-8965 4428+-8965 -4428+4428 8965+4428 -8965+-4428 8965+-4428 -8965+8992 4374+8992 -4374+-8992 4374+-8992 -4374+4374 8992+4374 -8992+-4374 8992+-4374 -8992+9018 4320+9018 -4320+-9018 4320+-9018 -4320+4320 9018+4320 -9018+-4320 9018+-4320 -9018+9044 4266+9044 -4266+-9044 4266+-9044 -4266+4266 9044+4266 -9044+-4266 9044+-4266 -9044+9069 4212+9069 -4212+-9069 4212+-9069 -4212+4212 9069+4212 -9069+-4212 9069+-4212 -9069+9094 4157+9094 -4157+-9094 4157+-9094 -4157+4157 9094+4157 -9094+-4157 9094+-4157 -9094+9119 4103+9119 -4103+-9119 4103+-9119 -4103+4103 9119+4103 -9119+-4103 9119+-4103 -9119+9143 4048+9143 -4048+-9143 4048+-9143 -4048+4048 9143+4048 -9143+-4048 9143+-4048 -9143+9168 3993+9168 -3993+-9168 3993+-9168 -3993+3993 9168+3993 -9168+-3993 9168+-3993 -9168+9191 3938+9191 -3938+-9191 3938+-9191 -3938+3938 9191+3938 -9191+-3938 9191+-3938 -9191+9215 3883+9215 -3883+-9215 3883+-9215 -3883+3883 9215+3883 -9215+-3883 9215+-3883 -9215+9238 3827+9238 -3827+-9238 3827+-9238 -3827+3827 9238+3827 -9238+-3827 9238+-3827 -9238+9261 3772+9261 -3772+-9261 3772+-9261 -3772+3772 9261+3772 -9261+-3772 9261+-3772 -9261+9283 3716+9283 -3716+-9283 3716+-9283 -3716+3716 9283+3716 -9283+-3716 9283+-3716 -9283+9305 3660+9305 -3660+-9305 3660+-9305 -3660+3660 9305+3660 -9305+-3660 9305+-3660 -9305+9327 3604+9327 -3604+-9327 3604+-9327 -3604+3604 9327+3604 -9327+-3604 9327+-3604 -9327+9349 3548+9349 -3548+-9349 3548+-9349 -3548+3548 9349+3548 -9349+-3548 9349+-3548 -9349+9370 3492+9370 -3492+-9370 3492+-9370 -3492+3492 9370+3492 -9370+-3492 9370+-3492 -9370+9390 3436+9390 -3436+-9390 3436+-9390 -3436+3436 9390+3436 -9390+-3436 9390+-3436 -9390+9411 3380+9411 -3380+-9411 3380+-9411 -3380+3380 9411+3380 -9411+-3380 9411+-3380 -9411+9431 3323+9431 -3323+-9431 3323+-9431 -3323+3323 9431+3323 -9431+-3323 9431+-3323 -9431+9451 3266+9451 -3266+-9451 3266+-9451 -3266+3266 9451+3266 -9451+-3266 9451+-3266 -9451+9470 3210+9470 -3210+-9470 3210+-9470 -3210+3210 9470+3210 -9470+-3210 9470+-3210 -9470+9489 3153+9489 -3153+-9489 3153+-9489 -3153+3153 9489+3153 -9489+-3153 9489+-3153 -9489+3+0 0+16 0+32 0+3+0 0+48 32+80 0+4+0 64+64 64+64 0+0 0+16+0 0+0 16+16 16+32 16+32 0+16 0+48 16+48 0+48 32+32 32+16 32+0 32+0 48+16 48+32 48+48 48+5+-16 0+16 16+16 -16+-16 16+-16 -16+1000+10000 -2356+6981 8859+4409 8531+1844 597+9041 -5238+-8290 -3149+-9627 -1520+455 1157+-1073 -3309+-966 3328+-6731 24+-8126 -539+-1743 2912+-6093 9130+-1938 1366+-263 3166+3283 -5063+8558 -7537+-2638 2217+3064 -8687+5300 -6476+6443 5934+4732 -6494+7942 -5703+4580 -5352+7915 2582+-485 4105+-788 -8836+-5959 -5535+-1092 1619+8938 5815+-1673 1810+1470 9362+6365 -2360+4518 -9353+-6214 1857+-3913 -6531+-862 -8172+-1790 7972+4850 3006+2689 594+3486 -6902+-4102 -5843+9809 5974+-6307 3577+6097 1871+-8305 2948+-3872 -5661+2697 -5722+122 -6460+-6746 -396+7179 -8743+-4643 9258+3667 8035+2129 -3035+6753 -2581+-7041 -4329+-1898 -3433+-5005 -2829+217 871+-5077 9715+-4362 8931+-9687 -7875+8761 3487+3188 2596+-6175 -6817+4922 5745+833 -9288+6121 3428+691 3962+6958 -352+-223 2408+157 -7304+8118 -5713+-4855 -1835+-6863 -5380+5392 8940+-1821 -9211+2434 5+-8328 7549+5325 5643+-4616 2599+-4670 6746+974 -5370+-1299 1436+2413 -3988+-9673 2294+8716 1245+-1519 -5931+3451 -3237+8187 7463+8558 -3637+-4432 7383+889 -5394+8264 3586+-4732 9755+-1698 -2453+-2198 7626+-2742 1617+9202 -8063+7409 3129+2130 -2538+6277 -525+-979 -3395+-2803 1444+2700 -8453+-2180 2701+-7915 4903+3774 3929+6880 -3379+5956 1236+3597 -3295+-4532 -7664+-7558 2124+6621 -2276+-219 1283+-4378 4412+-3399 -2353+-8012 -8110+2212 537+-8101 -2606+-5886 7968+4403 -6344+-8013 -58+-2332 -2165+8125 884+4424 9458+6965 937+5948 8054+-953 -4275+-3133 3108+1726 8051+-6180 3158+6748 3714+-2466 3783+7750 -9014+-8952 -7199+8252 -7042+-4327 -9437+-2688 5482+-7329 -8940+6855 144+4896 -4797+-7870 -8721+5867 -5018+-8670 5009+30 -5631+5342 -9715+-2928 3831+-1063 6780+3323 9346+6925 1807+295 -6902+-9919 -4933+-2416 8494+2009 1022+6660 9126+-5914 -9506+-7875 -8722+-889 2505+8576 -8946+1362 1449+2489 1667+-6629 -7899+5782 -7464+-1377 3526+-1169 1197+-1890 8197+-439 -420+3590 2410+2333 5430+-8516 3194+-5833 -6960+744 -1165+-8388 -9267+-4283 4087+-6892 297+799 8068+3095 8574+2361 4403+-9632 2566+1242 -4354+7637 311+-8081 9358+-8700 -8992+-4389 -2833+3328 6889+-3847 6121+-1648 3596+1590 -379+-5737 8116+3425 -6152+6127 -3356+6433 -5055+2728 -317+-8110 -5458+2775 2917+247 -6818+-9988 -8290+-1339 8116+3677 5110+-8254 -6334+9893 -2904+-2966 2901+-264 -7717+1205 7157+-6979 9945+9521 -2022+311 392+-8979 -9848+-448 84+793 7499+-3983 -5655+-4990 2424+8408 -1548+-6207 3824+8304 -9553+3441 -3189+9515 6564+7330 6232+7247 -6424+-8704 7255+-8910 5394+-6609 3069+5482 -3536+3036 -9868+-2348 -1526+9470 -647+1163 -19+3077 687+-5632 -3364+-5963 609+6134 8540+-7108 18+7019 -9025+-1976 5395+9070 2425+872 2301+-897 2310+-4262 7122+3406 -6149+-2380 8147+536 -2480+7111 9066+1837 9658+-1116 -8560+-1320 900+366 3041+4293 -7729+-3333 3828+-3777 -3189+6492 -5821+-463 -5553+9107 7879+-9758 -2325+4827 2514+-2794 -8294+-963 -1745+-2375 5223+5697 -3122+4240 -4193+-6885 3868+-6812 -6745+-4280 5712+6177 3699+-1408 9632+9292 4778+-9208 3183+-7677 -7018+-6872 7919+1629 2971+9856 3006+-4889 9579+4282 -2083+-8682 -625+-4580 9436+3334 5003+1094 8114+819 -84+-823 9449+-2516 7393+9443 6896+2839 3988+-7400 3297+980 4093+-8457 -9805+7019 4107+-369 6058+6930 -6229+-1706 2816+-2454 -349+1302 -4451+7801 9694+6296 2535+-1348 -3884+7067 8568+7843 -5741+-9563 3045+2457 -2932+-2349 2831+-4254 3900+-2005 -7106+-8389 -6629+8789 6992+2014 7144+-3419 6315+-1387 -9761+5277 5765+-2836 5186+-8545 8251+-4213 6709+-8727 -5801+-9997 8080+3478 4093+4599 -1613+-5416 -2069+7554 -7765+9324 -1415+-2975 6750+-2678 -9928+-8350 -9436+-2717 1397+-9514 -7786+771 -3755+9383 8705+-7552 -4995+1869 5062+8514 -6279+-1300 -4924+1486 8650+1480 4573+-7898 -3766+-6483 -7901+6368 3053+-272 6006+-4441 8097+3583 1600+1827 154+-2919 3651+2846 9062+-8174 -8232+5958 2691+2229 27+-8887 1904+5820 -5179+-5439 7026+5128 6635+5414 -293+-947 -6129+8085 -8103+1764 1490+-6624 1632+7071 -5943+9052 -8041+-9712 -2299+9978 -8074+1976 -2808+526 -4156+-1131 -9212+8058 984+3521 -4396+9 -8383+1159 7673+5736 7245+7376 4993+-865 -62+3542 572+-7842 -3323+9476 -5886+-1795 -3449+-9032 -4065+1649 1178+-7179 7694+7085 -5800+-6405 7847+1710 8605+2492 -1300+-7823 -129+4825 -8516+6392 3319+4882 -1009+-739 4659+-972 8025+-9194 -9363+4611 -3480+2839 8220+6993 -4473+8369 -4590+-1378 5455+5231 5006+4928 -1012+-1027 1039+-1245 -6168+7694 8522+-8450 5440+7783 9388+-3037 1865+4387 -715+-2396 3289+-8772 -9151+6998 7411+4349 9178+6016 -3629+5781 9606+2169 -3008+3323 5544+4951 -6563+-3505 5025+-2747 -9244+9602 -1810+4379 -1972+-6695 -4589+857 -9247+1635 -5747+7119 439+6905 -9354+1143 -1928+-3761 -9405+577 -3405+-4816 -8811+-5277 -8140+9139 -4696+3569 1180+9930 -816+-3635 5790+6274 -7702+8872 5213+-8164 -7982+-3214 8557+-6018 -1327+-3677 6645+-9262 -7674+-1962 -4075+1853 3763+9003 -4649+-2185 -9397+-1909 -3139+3851 4033+9644 1618+-5285 -8757+-8760 -8326+4521 8930+-5758 -1360+9548 6501+-9832 -4783+-9569 7572+-6733 6115+-2629 6846+5526 3314+1650 -1709+-5830 -3921+-5075 -5148+1335 185+-3714 6607+-6158 -5077+1890 -5106+-5019 -7947+-1736 7733+7491 -414+-9222 3675+-8234 6733+-7792 -7540+-214 1761+-7653 -9651+-8554 -2987+4140 -6794+-15 7773+5588 -9439+5002 -768+8215 6636+2468 1009+-9894 -162+9216 9347+-71 -3044+7138 737+-6816 -4261+4186 1623+8274 746+1885 -7849+-1402 7365+-9228 3073+3383 9740+-9054 6230+1187 -3247+7621 -9249+1467 9177+6817 1256+2307 9459+5003 2539+-325 -4172+-9327 8018+7177 -1402+379 -2069+-8353 -1957+-3559 6131+-3354 -9470+-526 8583+-8102 5075+-9571 -3449+-1555 -4497+-3832 2637+-5150 5889+-7273 -7275+8205 5312+-7102 2534+-6140 8336+3017 -9461+-5870 -5440+-9897 8630+2785 7556+6658 -2012+527 719+-5509 -1925+8479 -4308+-8579 -1155+1429 -6343+-9006 9986+-14 -915+6558 9889+-8016 -3851+8280 2059+-8597 7705+-8648 854+-147 3300+-8557 -6858+2696 -4734+-9474 -556+2823 6026+6131 816+-5818 -4918+8300 -1073+-2083 -1890+-1571 -8032+4298 -7896+-2339 5635+7864 -4827+7142 -3549+-626 -8622+-3232 -358+-7239 -7385+-3623 -4070+3912 -3225+-7980 -4068+7591 7745+-1915 7282+1660 -5997+-3267 6921+2214 -6573+6170 -3858+-787 -3407+9844 -9423+4498 -5772+656 4438+-3189 3323+-5483 7320+8007 -499+1555 -2601+519 3629+-3404 9761+-6048 -818+-9 -4116+5745 1957+-515 7468+-899 6588+7483 1667+500 -8448+-4252 -1440+9710 876+24 8841+-9446 -6842+-6366 -5663+-9551 380+-1581 7329+7369 3827+-5333 -8035+8399 -791+-4666 9710+-4566 -5183+-7104 -7591+-9757 -5698+9509 3824+8831 2595+1694 1837+-8560 -9336+7745 4453+8751 8331+454 -4807+-9378 1598+3906 7569+-6730 6977+-2841 -3122+6009 -9803+-6142 -8705+6565 2495+8253 -2708+-5627 -5361+-9052 -6771+6286 9993+-3649 -4308+-3794 5595+869 -2938+-8439 -6479+2038 -298+7061 1416+-8551 2999+7249 9209+-250 1272+-2148 8668+5732 3076+6413 5845+8713 8631+-5976 -4371+7237 -3952+-2337 4673+-6293 4146+-4703 -8772+3591 -2386+-1490 -7689+5394 9213+-9430 6558+-8166 -4003+-7722 -2437+5497 -5505+4703 8696+5302 -8551+8213 8768+7067 -728+8695 1044+-3893 7704+3114 4603+-1247 6812+-6326 -8435+-9951 2269+8179 3530+2613 -1462+1357 9740+-9080 -6292+-3424 -2256+-1894 839+-7185 8946+9985 7225+-707 9134+-7348 8628+9254 -1398+-1932 4863+-2569 8361+1223 2558+4016 1959+-8887 8067+-436 -643+-4985 -3915+4382 -4017+1293 4304+229 2395+-8635 4225+9054 4238+-4922 25+-8949 9263+-5454 -7519+9992 3662+-5453 547+531 -4828+-686 5909+-6598 -9715+-6929 7492+-2696 4383+-1620 -411+1730 1258+1499 -1077+-2946 -4396+6977 -4253+-3735 -8106+-6548 376+-7970 1163+661 2865+2271 -8744+3578 -5474+2524 -1902+-2057 4564+-3012 3962+8092 -2625+-1269 3585+-8973 -9967+-6309 7674+-2609 3172+3584 8187+9468 2358+-277 -402+2113 -9920+7456 6894+4664 2673+2745 -9901+5420 -6058+6246 8559+-3852 -7402+1655 -2895+7804 -4426+-3226 -2903+7949 3164+4261 -6516+4052 -3807+-5619 -6554+6084 -5196+8956 5955+-8373 7235+1567 9353+-1323 1180+5139 5383+-6608 7430+-3304 -6596+-5046 -154+-9788 8152+-115 8976+-6706 1048+7842 2184+7867 -968+-4803 -7226+-2953 -4749+9903 9936+-6541 6749+7686 5602+5698 -3948+-9484 -6242+3711 -7593+7226 -3491+-6114 -1962+-5083 3283+8063 -9589+-762 5176+7152 3279+3733 -2867+-1944 4344+4428 -900+-8723 -8383+272 4314+4988 8008+-9998 701+-4154 -5270+1584 -8882+-576 -5483+9901 3616+9427 8872+-1572 1199+4929 5214+1849 -7603+-5435 6435+-2919 1618+-9481 2177+-1705 -1152+-6592 2715+-9494 8558+1794 7336+9232 4463+1616 -4448+-7547 2037+-1610 -6599+8074 3276+7792 -6534+9330 -7141+-5471 3762+-3688 -9424+9920 -3861+-2568 8802+260 4026+-5103 1743+-7701 -1029+-7383 2792+-5605 9161+-191 -4989+-5364 4523+8198 4288+-9314 1588+-3410 -2276+1399 1530+-7958 -9008+3175 -5989+-6579 -2109+-7443 7267+2688 4639+9788 355+-2351 -9217+-6042 6566+-7058 3053+-5930 5074+-4203 3174+7069 -6011+7416 7682+-9322 -4355+-4638 -4703+3332 4434+-9622 8963+-1545 3677+4118 -804+3224 -792+8325 3774+1040 -1009+259 3326+9091 561+-985 -7471+-1868 6525+-4468 -2848+5318 -205+1684 5782+-2573 8589+9661 -7048+-6444 -4624+-6965 -3743+1039 -7522+2890 4015+-3304 2849+-7994 -1460+2438 -1758+1827 -8269+-7013 2423+2010 2298+7286 -641+-574 2552+-2575 5055+3906 201+-8616 -1158+3822 1441+5250 622+-9395 2002+-1747 7271+666 1179+729 -9323+3272 -895+8582 -5941+2950 9488+-9442 9458+-3012 -438+5591 6536+-860 -9542+-4752 4905+7462 7388+-374 8439+-8333 -2701+-5598 -473+2076 -7187+-5632 7381+9611 -1853+-8052 -8594+7206 8134+9891 4140+-1611 -393+-1897 6348+-5826 4199+-112 -9296+-6011 282+-8803 2679+5159 -9042+-4620 8671+2143 1659+-2116 6740+-6032 -9817+165 8807+-892 1994+2146 9077+-9293 5862+-7255 8076+-6837 7246+8053 8484+1857 9100+-2938 2421+-2617 3772+-5784 4362+4148 2044+-9860 324+-7644 1144+-3213 4040+-140 7107+9212 -4299+440 -6090+7400 -7147+-4850 -6436+7219 -4821+-4377 944+1873 5593+-1934 8206+5274 -1645+-7918 -2362+5280 6073+9061 -1356+-8296 -4880+6185 2195+7113 -6376+735 -702+94 -7748+4286 296+-7871 7444+-1070 -2212+-8551 1065+-8005 -9876+8011 9568+2566 -4386+-8836 4814+8021 2055+8322 -5733+8697 -8996+2814 -8245+-1130 5396+-6436 -726+9014 5574+-3771 6739+-6442 -2824+-7349 -607+9346 8597+4123 5549+757 4646+2402 1857+-8845 5570+-6095 -8639+-2428 -8365+-5757 8317+-6863 2980+2235 3941+263 -8606+-238 3420+-7054 4465+-6755 3417+-8409 -6111+4748 -3455+-8014 1305+-5989 -8370+-9423 6053+4730 -6723+-6636 -9600+8801 2457+-7576 5396+-8364 -612+-2672 -4780+1772 -6581+7621 -4160+-3413 1039+-5843 -3005+-3422 -7453+-8873 -434+9676 -7854+5781 -4349+-3385 6134+225 -2269+4526 5435+-6987 -3809+-3824 -757+7001 9230+-6460 -6039+-4766 -9685+4022 6082+-7318 -6396+-4595 -5039+-6294 8186+-9333 -4121+-9179 -6694+5980 -9519+8059 506+-4361 -8392+-6479 -9618+-174 -419+-9279 -9731+-7497 9815+8092 8076+-5842 -1780+8612 1158+-6232 9847+6620 4820+-8070 -6862+3457 -3720+4085 -1288+2447 4106+-8513 -8356+-6510 -1570+2435 -8635+-8709 -9145+5143 3105+-3723 4499+5974 -9010+2618 2654+7545 -5626+7385 4048+-9865 -202+6445 -1856+-7377 9810+692 -7832+-7950 2662+1980 6119+8657 -2183+-5116 -2684+4612 8821+-2595 4533+4454 -8621+162 8774+141 -7512+9398 -2558+-8500 4880+-19 2297+-3744 -885+-1564 119+-5747 7141+-5282 694+-5943 -9870+1000+-3022 6257+5891 4792+3603 -7011+-1020 -6814+173 -334+9031 -2130+5113 540+6185 -3166+-8600 1813+-5748 -8661+-2980 4223+5424 -8282+4460 2681+8393 -3562+-6146 -162+-1950 5370+4654 -2346+7585 -1465+7970 2754+4893 8448+1362 -5450+-1739 7875+-8840 -3232+6110 -9736+7936 -9426+-2980 8364+-6243 -1202+8890 -665+-4770 4346+3946 -5168+1194 2739+-9233 -3627+3853 -3961+5694 -69+4780 2204+-2874 -2321+-6475 -5453+-4656 6346+1165 8960+3929 -9312+-9805 -602+-7674 6189+2357 9898+4933 89+-3668 8522+-1076 -9685+-6669 5797+-9886 387+-726 -3721+303 3820+-4043 7471+-5387 4128+-8359 -1436+9840 6300+4090 -3071+5978 -6965+9824 -8476+2962 -9719+1189 -3182+-5106 -5524+-4470 6664+-6873 -7588+6523 9681+-1676 -6930+-8289 6286+1043 1240+6487 -8261+-940 1875+-8191 -1371+2828 4113+-8478 6673+-4477 -1797+-1192 -3357+3756 5435+-730 3355+-7618 2539+-2419 7137+8738 -528+-8897 2075+422 -7997+808 -8194+890 8077+5080 348+-627 -7231+1525 5276+9149 8428+-9085 3805+-4142 -2702+-7492 -3898+5062 2031+-4917 9089+641 2948+1870 -8092+-1459 -4784+-352 3908+9360 171+5185 1096+-7253 -9197+-8157 2393+-3542 -6987+-8376 -8441+2066 6971+651 640+3660 -255+7870 1616+1609 -2886+6613 -3058+-1282 1026+-1638 6071+2602 9713+8088 -6914+7187 -6716+-2299 -8358+2808 -7449+-8319 -1614+-7632 8992+-4275 2008+-3735 8801+-3449 4827+-5868 2314+-2367 6+-2560 -992+3391 -764+-7373 -8513+-1369 6202+280 2376+-6876 -921+2330 -1178+2676 9455+8454 1287+9110 9944+934 -8038+-7226 -9578+8354 6349+4720 7267+-460 -6236+689 4741+-1977 -5288+605 -2998+-4765 -9934+-1988 5905+-4157 2815+-5852 -5555+729 -2181+5602 -1082+-3693 -3170+-2562 2007+2472 5030+8038 6761+-4273 -9018+8207 8184+4367 -6570+-5722 2342+-3533 -3701+9731 -7953+9787 7175+1651 -9460+4719 -5317+5071 -4760+-4341 -1604+3741 -7318+6602 9827+4997 -4708+8559 6657+-750 -7121+-4059 948+2102 -2150+-2018 5704+-4894 7714+9997 -2333+-8933 4369+9647 -2140+2499 2400+8788 4328+-4694 -1039+-4861 -9661+2617 969+8159 3058+-9885 3911+-3292 -1849+4107 5716+7513 -4521+8310 -9386+4239 6497+7310 -1725+-7181 7132+-2594 8110+1262 4604+866 2853+1778 -7166+3542 7647+-923 1227+-8957 5005+2188 9670+-5807 5437+-4940 -6165+-2029 -1703+-4776 -3214+6380 532+5161 306+2644 -6187+-9054 -4093+-8482 -3463+-2045 -9173+847 8080+2288 663+4061 -5589+2626 9596+-7773 529+-2533 -1874+3813 -2866+7444 3567+-9144 -8147+-5782 396+-5643 3607+528 -6623+4422 -5079+1937 -5704+-4366 -8526+4642 999+5096 7146+7887 1401+-6871 9218+2471 -808+1689 -2906+6278 -148+1932 -491+-2019 3554+-7711 1625+-771 1540+851 -6408+-8485 -4979+-1479 -5774+8157 838+8765 5092+-44 9052+-1363 -2510+-6133 8550+-8048 -7544+1302 -6843+-2831 3487+-638 -985+7017 2552+1510 1934+-967 5393+-7747 -1203+-840 888+-187 -5084+5068 -9701+5870 -9373+-3680 -6779+3001 3687+3482 -4585+-480 3238+-9378 9649+-2700 -5026+-6010 -8046+-2234 -76+1715 -733+2108 1318+-5913 3554+1661 -790+-5116 -5539+7531 6302+-7469 5052+4144 -5+9112 -3542+7965 2931+-7070 -8203+1012 3282+3128 -6443+-4407 -5462+-4340 8996+-5016 -8591+1714 -6022+625 8202+-1764 5883+-7778 3182+4184 5500+-2020 -1153+-3121 8708+-5185 -4442+3427 -627+-169 4064+-202 -2178+-8161 -9199+5875 7538+1373 2649+-3273 466+-1936 -8043+-3648 -1552+4906 4741+-8360 -45+6125 1535+-8606 -8100+-3195 -4727+7050 1713+-3429 6522+9061 -3152+-633 7938+3428 -9369+-1312 -6161+6940 -6485+-8536 -3449+384 -5652+-4342 -5586+-8199 8961+-1671 866+3813 -5769+-9952 8227+-4860 -7699+5136 6438+6349 8369+-7929 -7677+-4558 3757+154 -5434+4656 -9615+1135 -1047+-5854 -6250+-3063 -4909+-254 -2617+-7514 2965+-9744 1775+-1627 -6637+9897 -6068+-8434 8016+-1334 4321+-9826 -5557+-4933 535+529 5530+-9787 -9333+5360 66+-7810 -6984+6943 -9702+3190 -3569+-6773 -4634+5377 4652+5679 -1307+8662 -6090+4482 -444+6767 -2621+4320 -8304+-8742 8993+-8730 -729+6512 -3737+-782 -9542+4616 -2642+431 3231+-9077 -4120+4149 -1379+-7491 699+4465 2072+7016 -4235+6590 -4636+5015 -5287+6499 4916+-165 3413+8982 -7154+3467 7016+6451 -6653+1748 -428+-9273 9040+-9005 -2776+1289 5569+-8881 -9628+-1533 2049+-9638 -9842+-4487 -726+-1535 -5206+9162 8213+4883 -7201+2096 -2615+-8966 -2458+7958 9658+4579 -3132+3635 3563+3848 -1908+-6374 -5170+9605 -7343+-3025 -5617+5616 -3914+6786 -5611+-3977 6181+-5721 1580+-2619 7126+-1453 83+999 -4721+-6948 -4482+-5067 6787+-1748 -1518+-2030 8948+-4424 -882+9841 -4728+-9838 3096+8928 1140+-865 -1679+5603 5080+7886 6883+9406 -4126+990 -4094+5996 -5867+8108 -5653+-1497 2745+9031 5503+1633 -7810+-1193 -2498+5228 -7953+3609 -5048+2409 -848+7150 2083+-4593 9297+3029 -8527+6255 -6849+9585 6283+-4666 -8223+-2347 -9268+-6229 9697+4635 6598+7726 4587+-4633 6877+-3348 2975+-289 334+6198 -9303+3427 8759+-1314 6788+448 8505+4452 3578+-6989 134+-6201 -7027+1475 3208+-5026 557+-729 -9676+-7157 -7635+5707 -703+-1341 -8123+-1879 9476+7927 6937+-7297 -7911+1213 -9573+6666 3682+2884 -4181+5478 9740+5137 -162+1595 -9749+3953 -5481+9420 6146+-3189 5437+3323 -1135+907 -1372+-8489 -5482+-2086 4342+-261 -4113+-7605 -8100+5786 -8063+6510 -7928+-6027 -7743+-5491 2746+-2186 2546+4962 -7840+-2102 -4339+9632 -2314+-5981 1523+6324 -9107+-2392 1927+-6662 5419+-7445 7864+2486 55+-9022 -523+2596 6640+-3176 -718+-2063 -7147+-2871 -6496+6452 123+5270 -9223+3398 3439+-8687 -9848+5972 -7053+-3810 7195+-2809 666+5934 4811+2607 -3928+-2809 2620+-4243 2537+2206 2871+-352 -416+8438 -1105+3039 1623+3304 7690+-5219 1098+-4262 -1624+-3233 5249+-399 -4181+9031 -8151+8759 7501+6051 3302+-7080 3559+-7087 -8551+4088 -4826+-3887 9519+9932 -1072+-6076 2955+1728 2533+6129 -1072+-3777 -7101+9594 7476+1281 8823+4322 3671+-6081 -9266+7005 36+8489 -9527+5757 -5549+-9672 -9956+-6822 -9397+8057 4431+6840 -3726+-228 -7580+-1030 5777+1514 -6419+-5622 2617+-3078 5731+-6798 4868+-3778 -2132+-9368 9283+7280 9400+4902 -6691+-6787 6372+3239 -5404+-24 8379+5274 5414+-3507 346+-6667 3245+-7067 -4058+-3016 -406+-1219 -7040+-4635 -8815+5485 -3992+3997 3667+857 -7108+9759 -3580+7855 -5960+-5209 8002+9349 809+-6487 964+7893 -8140+-8892 1894+7232 -4431+-4968 1478+2842 -704+-5402 7210+5748 6900+1828 -6963+-7763 5918+875 -1932+-5828 -3391+-7439 7573+8142 -9404+-8702 9188+145 376+9616 -5935+1611 -3763+8778 -301+-4546 4841+4177 -984+7405 5951+-831 7560+-7262 5778+-3390 7794+8319 6328+-9628 8033+6638 -7436+5892 -5063+2353 4402+7658 8762+-6473 -2061+180 -8599+7829 2423+9765 7366+1890 7154+-5 -619+-8875 -1320+1872 7493+1602 -2387+8209 7+1745 5850+4713 -1266+8067 -4661+-3703 3674+-8070 8579+-9128 5480+7136 -8187+9587 7399+6023 6996+-194 -4626+7287 194+-4755 9244+8822 4452+-7452 -4139+-2043 -974+9757 9565+-6260 -545+7962 -1091+2887 6804+-7397 9310+-931 5797+4899 2792+-7457 -2258+4461 5820+-1915 7292+-264 940+6498 -2148+-8485 5324+5263 -3126+8349 6036+5472 7802+-3774 -2121+-3079 7344+-1251 7693+-3984 -6450+-2656 -5194+9552 2309+-4247 9695+8203 9872+9373 -882+3567 8240+-353 4618+3524 5367+8383 6875+-5240 8238+5749 -7407+7139 7824+2779 9295+-5886 -3898+-5943 4244+-9158 -6009+120 2937+-8680 2143+-4704 3185+-5813 6448+4778 -1078+4048 1656+228 -8203+2811 -4843+-5036 -2530+6013 9999+3360 8044+2897 -6695+-7426 1351+1619 -3879+2028 4600+3467 2658+-3938 -4027+2819 9096+7520 -621+2434 -9925+-4096 4105+-5482 -9007+3178 2951+8812 3624+7795 -4608+-8785 7667+-2725 -1169+-9284 -2165+-1533 8408+2339 8766+4159 -6411+-1580 5777+-8838 2541+893 -2091+-4564 -5936+5919 7342+8587 -4406+6826 9153+-2077 -3183+2560 9267+8095 -5595+8889 7475+-8279 -2319+-1037 3078+1898 -8009+9802 9167+3241 448+9396 -3070+-8835 5985+7844 6769+9194 -7887+7265 -3749+-6098 -5818+9026 6991+-1185 -2549+8449 -2392+-603 8782+6459 -967+-2153 -8796+4386 -4083+-6127 1078+421 9332+-1509 5699+-3571 8065+-9154 4736+-9398 993+-7238 -5696+-706 5946+8388 -3217+-2497 -5064+-3593 -547+-1517 7984+4768 5369+6903 8674+9610 8799+1992 -7652+-1544 -1166+6253 -6267+7693 -6443+932 4962+-4086 -6563+-4230 5001+6412 -6901+-5240 -815+1393 6851+8300 6385+-7281 8022+2723 3209+-5429 -8660+-9179 4417+1282 -1684+5691 6854+-3771 -5667+-4139 -7321+-6010 1924+-4395 7606+8957 -3924+-3879 9420+-6668 -9739+8394 1269+-3063 -1655+1301 -4806+-8173 1267+2369 6110+2960 -2345+9050 -8968+6085 6258+2463 -4728+-4180 8615+6824 7670+-6842 1195+5986 6565+2035 8227+-2494 -8696+-3595 -3098+-1280 -5354+-5507 -4375+8292 -5293+6678 -9153+-6362 -4215+7582 422+1436 -8994+-3065 -9618+-8104 -2877+4786 1449+-7416 -8785+-757 -2979+5634 -572+-9515 1631+-3422 -1616+-7679 -9843+9216 -9847+-4658 -2761+-536 7702+-5918 1995+-4093 8861+9735 -4535+-4534 4426+-5171 -385+-8787 -9112+5255 7312+3671 -9697+9384 7046+255 -6858+8778 1142+4412 463+6147 1125+901 1738+-2004 -8064+658 -8134+-6252 6576+-9053 -2233+6006 -5316+9359 5062+-8092 -597+6569 -155+-9457 9928+9721 -4464+-7713 -3956+-8376 9859+-1668 -4116+-8991 7463+6862 601+-2445 -52+1977 9435+8399 6129+7652 -246+4327 -6434+-5682 2139+-3781 1044+-1376 4543+3298 -5908+4561 -5487+4358 4039+-2944 9730+-8632 651+-4791 -9158+-3417 -7097+-6372 8071+221 -6950+-1268 -1179+-3766 -5357+-2407 -7438+8560 -5392+8817 -5074+5655 -6950+4239 -8922+8576 -7026+-2948 8807+-4337 -3867+-4310 3182+5192 -3378+-7491 -3839+3966 -965+-3185 -133+-4131 -9529+-6999 -7619+5608 -9979+-4713 -206+-7622 -1187+-4457 9707+-2546 9316+6527 -3692+-4839 -5428+-7386 6119+3959 -1268+30 8755+-9597 -5544+-3682 2316+-9418 -1271+5123 113+9923 2303+-7332 -126+-2387 -7445+-5845 -9563+-2127 9773+-537 8535+2951 149+7647 1772+-5661 -4919+-5957 -616+5972 7505+-6714 -8348+-2128 -9042+-8816 -91+434 2230+-3705 -2812+-2067 -322+-8613 -4918+3788 7147+-4936 -248+-7499 -9360+1893 -1752+-6165 -5904+-6969 6958+-4267 -2215+3476 3010+993 3163+-1558 -3944+6008 -5459+1434 6250+-3026 -4633+-1565 1438+5585 -795+8776 -4120+3744 4389+9263 -7066+-3738 -3602+-4284 -8856+-5349 2679+-5351 -7997+-1332 2610+-6291 -7872+-3668 -8542+-6052 4817+-804 7762+1379 -5219+-986 269+-6131 -8531+-2326 -1631+-9693 -7024+-3830 -1518+8195 3385+8349 843+-21 -8158+8758 8467+-5402 -9887+6661 6333+-1878 -2468+5734 496+9347 -4313+-6163 -6107+3855 -4177+-536 1241+-3526 -31+-1958 -8535+7278 5634+2557 -308+-3796 7365+-8197 -799+-1487 -5345+-9536 -3103+7558 -7704+5350 -3446+-7807 -2234+-6930 -3519+-1370 9818+3197 465+8172 5711+2935 -7123+9610 -3431+-2623 3195+9742 -840+-9308 9440+4988 -3256+-1997 -3266+-6589 -7763+1222 -190+4902 -7027+7943 9008+-926 9027+-119 9917+-8514 -9135+-5869 -7110+5733 608+-5510 -3987+8667 -2554+-6008 4017+-6782 -1368+6279 -6542+-633 -1498+-8014 -1727+6821 -475+6113 -4306+4516 -4802+2619 -2678+-5623 -1033+8652 -350+-2804 4599+-4321 -9729+4466 -562+442 -6520+-2813 8115+6648 7312+1133 4982+-9992 -1927+3259 -4055+-1988 -3109+-2853 -9462+-118 8628+-6532 2957+7115 3566+-4250 5793+7818 -6561+7450 8347+-7957 8907+-9081 7235+-9699 2777+-5630 425+336 -7209+-3383 5962+2006 7290+4705 -2249+-6634 -1581+-8156 894+142 -4595+-8956 -599+-3386 -335+8522 -9804+8612 -3748+-6081 -3216+8494 7380+-3405 8910+5773 -9471+929 -8685+-5432 1955+-529 7879+1100 1767+795 -7727+7209 1339+8131 -9420+-4148 -6178+3572 -4821+-2426 3459+-7168 -3437+7700 4166+1000+-4730 -1055+-4110 6891+-341 6767+-1126 -6613+-4036 -1978+900 5745+3686 -4629+-3437 -5183+-2112 -2518+9228 9250+8867 -8288+1409 620+7605 -3370+8673 -5097+-9498 -7352+-7411 -991+6425 -1369+4211 -4633+5181 -5098+8159 -9956+-2221 -9829+9093 -2634+3994 -1479+-3735 -2909+-4927 8245+1464 1012+-5849 -9382+2139 8180+7439 -5696+-6869 9781+6383 2973+7641 -287+-7230 -1752+-3020 -5973+1943 -5537+-9260 8463+-1587 -2302+5788 -6063+8838 3260+8644 1698+9006 5873+-976 -7876+8718 7402+4521 -6762+4054 933+7935 -4603+-3025 -7143+-6681 -8291+8668 8938+-3072 -9288+1997 3843+3171 -8405+1625 1284+6368 -4437+-7431 6673+-5080 -6451+3888 -5591+2547 -684+4039 7154+-684 -6205+7908 -5534+-4916 -5336+-8190 -707+1043 1877+-4319 -5572+-9181 -4633+-8002 7488+-7690 2240+2622 5826+1270 -8740+880 -7929+-3697 789+1696 -8363+-9359 4769+3133 -9540+2060 6438+-7835 4431+-8777 3156+9151 -8843+6092 -2667+991 -6297+2138 -8959+8976 5908+-9150 -7741+-4380 -7509+910 -2399+-3883 -9857+5131 744+-1788 6188+8274 8241+6215 -1645+4314 514+-8428 7337+-956 6591+-1341 3812+-9693 -688+8723 9337+-7527 5915+756 8494+9635 -9834+7900 6899+-8574 5276+9055 -693+-3188 -1882+4059 6154+-2120 -4778+-9891 -4715+3182 -8000+-6454 -6031+-1746 -5798+-8666 7241+6048 1056+-7633 -2025+-3195 6165+-4368 5587+7389 -550+-5553 1799+-9677 -6930+4853 5137+3630 9018+-9966 -819+6900 -287+-5972 4136+-7664 -5737+-1208 2567+-1838 -4674+-9268 -5971+2642 -6572+5174 3181+7440 3455+-2279 -8151+-8749 6619+-338 -6259+5973 -5323+-3248 3492+9666 9732+517 -3046+-3366 -6854+-9214 8799+-7058 -3318+4043 -7889+-7100 6423+-812 3197+5311 3551+-2291 -8859+-9496 -6020+618 -8233+-7699 3086+-8296 8053+415 -8725+6337 8113+-7760 1169+-9425 8050+-6431 -1303+-138 -4215+4960 2325+-3837 -4397+1228 -4626+-6644 -8603+-4663 -4231+8307 -4919+-1266 2935+9350 -5045+1345 7390+-6099 568+-9322 3366+4230 5680+-8691 -1699+4076 5983+-8533 -4113+3412 -1090+-3867 -9545+-635 9613+-5574 -2092+-5369 9047+-2378 9138+8921 -4676+8552 -8866+-9870 7695+4002 5626+-6014 4279+1111 -5681+7431 3770+-9667 -6917+-5288 -2069+-6833 -390+9349 -4899+4619 2944+-1337 -6965+-3563 3399+-8809 3190+7780 4838+2259 -2870+830 7797+8119 4990+8637 -7458+-422 -4408+1059 1530+3452 8558+-7955 -1627+7688 -389+-7640 6441+9109 4647+-3991 -421+-4644 -3220+-6864 -6183+3788 -5647+4522 -7100+-4349 -5063+2626 -2744+-222 -1610+-5578 -1183+-5079 -2006+-6693 -8813+8560 -4160+-8801 3564+-2562 4458+3660 426+1885 -1075+5122 9425+-9274 3602+7671 4503+-4978 1916+-6099 -5191+7524 -7174+-2025 -6133+-9995 -8553+4722 -1233+-4763 1783+-2357 -6967+-8383 -6033+-9852 -4516+9547 2601+-6487 7688+9187 2953+-8410 1044+-7306 -6235+7417 -9931+-4201 -9531+-8959 -6939+-3762 -6557+7695 968+4911 9758+-3967 4838+9653 9101+-5024 -7842+319 -4855+-3221 1741+9906 -9484+9278 -3577+-9005 -2838+1995 -1392+4470 3039+-2266 8889+-9273 9502+2040 6882+6879 3151+-4532 2419+2469 -2629+-76 -6932+2770 1372+-5967 5995+4343 4497+6029 -3592+-9298 5374+3596 603+-1370 -8183+2297 8523+-8586 -4085+6724 6646+350 1721+-2624 2474+-6569 9888+1550 -8153+4471 3765+7924 -3643+-8167 1456+-3799 -8489+569 5186+-3486 -6251+-2704 -5324+-1175 -5569+1073 5854+-4209 396+2071 7922+-9127 8999+8191 5202+5404 8042+-6593 -962+-9045 -8138+-3448 -784+-865 2413+-6403 9847+-999 -7163+-2363 -4584+-7214 1056+-737 -4516+-2564 8281+-3014 4734+5097 78+-1376 -5251+62 -2291+-8938 -1266+-3154 -5707+-1061 8091+-9680 -8474+-9550 9795+-6490 -5998+1736 8088+-2408 6269+4969 1148+-8794 -5869+8268 -9334+-5747 746+-7260 -4706+7347 4350+9385 -6838+4690 -6446+-5514 3503+5068 -1514+9134 -6431+8215 1364+-9831 8368+-4428 619+-9540 -7299+8465 -2793+415 890+3649 8912+-3765 -6872+7161 -2283+3278 -5047+-1536 -1693+-6151 -7531+-9680 3444+9230 2705+-9672 1595+-6926 7251+4027 -6162+-494 4024+7650 1880+1154 -7300+-6406 -1026+9801 5232+4555 -9108+-1139 -6494+-3030 -9789+-701 -2470+639 -6020+-7477 4231+-9553 6360+7639 5465+-8445 1522+1881 1959+-8975 6815+-145 2479+9076 -8291+-9879 7188+-2812 5573+7825 -7450+-2602 -687+1007 -9638+1921 2959+1994 3261+8055 5313+-4561 2749+-8235 6821+-5377 -6348+7950 -9845+7346 -5642+-8487 7298+4738 5016+1190 -2593+-6986 5136+-3571 9879+-2100 7841+4922 -1649+-7303 6841+9569 -9548+-1424 6080+9573 8306+4299 -5825+3941 -7196+3988 -5966+-2739 2074+-505 1537+1815 9222+1865 1124+9601 -7830+-3730 4481+299 673+6110 -8006+5034 6984+-6241 -5447+-5803 -3945+-8403 3077+-973 -5900+-8305 -9798+2322 -1673+8594 7520+2898 7177+3127 -9772+5011 9297+8210 8136+7970 7098+8131 -6968+-3096 -4794+7140 -5918+4163 824+-5268 -1030+-2608 -944+-7728 8850+2071 -939+-2812 5078+-3107 -2467+1223 -6420+-1459 -2119+9964 -9310+7830 -107+8944 746+8296 7489+3156 2881+5380 7638+-8596 -2106+-4634 2594+9810 -9714+3552 -5641+629 1992+4478 76+-3275 4951+8340 2388+5433 301+6238 -9052+7089 -5105+705 -9086+-8469 371+-4284 -9207+1197 -3912+7907 3641+9263 -4604+3328 -9606+612 -4606+7593 -9812+-2358 9519+-210 -8036+-4244 -2576+-3945 9542+-9256 7493+-146 1680+7719 -8436+2494 -6052+-2421 -7820+-4995 3110+8457 7984+-1481 -6885+9693 -8228+-6431 7343+1397 -8750+-1976 4767+8571 -8158+5216 8362+-9563 7265+6843 -8061+9799 3972+5952 848+-2699 -2182+5729 -8858+7558 -1611+-488 -3637+-1029 -6555+-3093 -3921+-327 -5350+-6253 8861+-4804 -4270+1148 -3987+-3363 7039+-9962 5115+1082 -9865+-3336 5225+-4135 -9761+-1448 -504+-5978 4496+3796 -8990+7452 -2061+8275 130+6839 -902+4950 79+-4081 -2380+4272 2455+5492 -1029+-2914 4460+-467 6859+2479 8911+8464 1157+-4275 1507+1237 -6450+-3884 3099+8900 3199+-3884 7108+8731 9021+-3578 8366+-7877 5503+5659 7167+-7601 -7375+-9661 -510+4341 5988+8697 -7674+9298 9520+9371 -5503+4454 6314+-6354 -5408+2115 5727+5534 3564+-5049 -204+-4849 6877+5567 9049+-9879 1797+3200 -9816+-9327 4321+2738 -8615+9876 5131+-7408 3953+-7464 9899+-8665 -2388+-1883 -5121+6658 4760+-2134 -7884+-8460 -5273+7800 5288+515 5137+1340 -407+-7930 -8354+5359 191+9898 -4723+3203 -8465+652 4399+7043 -4223+-9774 -6791+-4839 -201+-8000 8033+-6623 1593+3805 7420+5814 5113+-2762 4600+9366 -8581+-887 -749+791 4419+-7809 631+6511 -6316+4080 -6419+5354 -8104+-1031 5217+-5553 -9426+-6470 471+1585 -5077+3582 6845+2080 -8031+9052 4785+-1530 2231+9536 6450+-2808 8893+5748 -4677+-4081 9254+3602 -1904+-524 -5056+4456 -7917+-6371 7217+-3254 -1918+8226 -9621+9813 -2586+-4560 -6803+-7039 230+-850 -3641+9526 -7030+5740 -9013+5172 -5837+-7921 -8775+4583 -3214+3958 2800+-5180 -5228+2259 -9844+1921 -4352+-1794 7330+-8849 6866+1041 3508+-1366 9342+-9868 -6141+-4853 -8282+7824 -3586+6993 -6581+8287 8111+-9370 -4031+7759 -4237+-164 -103+-5887 -1160+8650 -5340+-3258 -774+2933 -3816+-9155 5906+7824 -7620+-6883 8730+4370 -878+3719 480+3475 -7848+4991 -3136+-356 6759+5879 7207+9849 920+-334 1238+4620 5059+-1001 -7283+1458 -7317+-4457 -9225+-5194 511+6852 1900+-2192 -7705+-3945 -9302+-2314 1752+2091 6204+9481 9752+-4233 -8493+3203 6399+-9893 -8039+9235 -6340+-9954 530+5540 -6423+5837 -2940+1631 1777+7135 4751+2510 7264+7493 -2993+-5063 -1348+7182 9196+-3672 -9216+9700 7954+-6823 6179+-8227 4746+2852 8875+5638 6875+1189 -3031+-4485 -1654+-1014 1339+-4739 -1321+-9270 4920+3204 -1721+-4878 7475+9574 228+-2445 6798+-9724 8024+-6847 8394+5672 5201+-236 7140+-9169 1853+-6204 9192+-4161 -4292+3014 7052+-4812 -4946+-9764 9803+4588 -7686+4490 -4036+-7769 2311+6757 -4536+-4559 -6088+-7376 -4890+-4765 2226+-2126 1927+-1083 6261+1680 9836+-9590 -96+-2561 -185+-5094 3346+347 -721+254 -6006+1741 -3176+-7948 8829+2653 5580+2074 3562+-2328 -221+2713 -6294+2225 -2232+6282 2550+8804 -9138+4719 -4300+7680 6944+8370 3042+-1170 -8859+9749 -712+6977 -7198+-1664 -245+3085 4041+-4121 6689+724 -8065+-7182 -9866+-9611 8173+5163 -1114+7459 6654+2598 -6682+-6015 8187+7539 -7087+7716 -8503+7845 7740+2055 1117+-5388 -6839+-96 9832+-529 -8324+5579 -4340+1687 -7730+-8709 -5790+5549 -6321+9461 1853+2826 4645+-7070 3849+-5343 2816+-5614 3311+-9436 -3625+840 5968+3798 -3829+5767 7288+7315 -6591+-8111 3970+1721 7857+3464 -2984+-8962 88+-60 -6567+9953 5225+-9709 -4161+-4326 -6114+-528 -5040+6702 -2597+4069 -8107+-5106 -8756+-3396 4531+-4981 8494+-7221 -4564+9802 -2669+9419 6755+1531 7534+2009 -8912+-3447 -6822+-1956 879+503 1835+7113 6158+-9996 -865+2532 -6671+1631 -9331+-1046 8697+2658 8361+8212 -3780+5164 -9371+4071 -7004+-544 8045+9910 9174+8051 -7201+-7290 -1479+5997 -9240+4382 445+1912 -40+2099 -9555+-1283 -9634+-7876 8778+1325 1074+-5597 7778+-1892 -1837+-4752 -1398+659 -7559+-9389 -5631+-367 -6748+-9486 -1371+-7871 -9089+-2992 -3373+-8400 -7501+556 4587+3358 -3494+-8018 -5305+539 -5050+-3821 -6497+-9675 1001+6937 5551+7657 7857+-1300 4051+-9254 5257+1722 -6092+-4178 3694+-7029 -1593+-7000 7019+-6787 -1277+9966 4806+-8884 -1782+-9902 -2228+-2177 -970+-5781 -8040+-2320 5176+-4497 729+-2931 2582+4301 -9168+5896 417+-2828 -8825+6049 -4580+-1851 -8371+-942 -8024+-802 7877+-2471 1876+3773 9077+7734 -2202+7114 -6523+3381 -9542+-3621 -5502+-1153 7844+9163 8455+1571 1640+4896 -2030+-6940 -4601+-3531 -8028+4148 -3980+-7905 9355+2777 -3889+-2617 -9446+-4023 -4421+-8204 -8228+-529 4474+7252 -2004+-5335 4406+1385 -9004+-9988 -9211+6359 7375+1544 1112+-3084 641+7050 -3389+3203 -7616+3653 -9107+-1435 1755+-1862 -6933+2440 2492+3368 -2890+-3013 -3498+-7819 -4075+9807 -4478+7776 7105+-4796 9714+6345 1557+-4607 5135+9969 -2952+1309 -5413+4968 -8313+-7447 -1632+-4154 -9360+2954 5183+-2330 -8359+1724 4053+2671 3194+861 -2615+-4968 8714+8025 9593+-586 -1384+2751 -3054+1610 6271+-3915 4216+-540 7967+-980 5285+-6971 -9196+47 -2561+-6812 -3492+-6604 8644+2780 7234+-5646 6330+3557 -9919+-3442 -4633+641 3305+5073 5939+3016 7683+8021 2761+-1552 -9312+-8034 4700+6862 -7200+-9337 4260+9967 -2950+-4836 8876+9428 -2562+-3646 -1676+975 6628+-4860 5220+5878 7444+-9535 8778+3022 -5710+-9574 2786+468 -5931+8272 -8806+-1218 2901+9095 5951+450 8221+-275 629+4723 -4785+8353 9571+-6232 7783+4095 -6628+-6118 4912+-4786 -8411+3095 9866+-6960 -6195+-4785 531+-7660 -4753+-4453 9051+-3112 -2907+1838 -6288+-6164 1203+-2467 596+-4296 -1795+-7113 -758+-5117 7163+-9992 -1363+-8532 7126+8766 8997+5557 9849+1292 -9716+5915 5724+3122 8547+-9161 -3633+-3967 206+-2518 -6589+-9666 5994+-788 1668+2196 7010+8106 -9136+-3529 10+4301 5450+2776 -4066+-3288 -9311+-4399 -9459+7086 4844+7144 4452+9941 4816+-2135 -6269+-7882 5355+-5520 -952+8247 2994+5442 -1871+-706 6396+-2002 4648+1719 -29+-2965 -6652+-887 -7142+-5691 -6902+-3975 -381+-1229 6502+9304 5666+1489 5572+-2593 -7673+3962 -3858+9351 6129+-4753 -4356+-3903 -5328+-6096 -7277+-2993 -3823+9639 -1869+6156 -9467+-6860 3588+-9938 -1448+-5370 1094+-5754 6621+2772 3333+-8217 6756+-3280 7571+-8871 6671+-2423 5487+5905 -5408+-4578 9293+2592 5856+-9976 5364+8251 2785+-3058 8172+1012 -757+-6351 3333+8753 5706+-2635 -8239+-745 -7221+-8129 2536+7705 3518+-8356 137+7926 -2874+2687 -7217+3896 -7588+-9993 -8394+3585 7729+-4599 7468+554 4079+-2097 -2497+4899 -2448+54 -6081+-6912 -8107+-9043 -8524+-3970 -4228+-5845 1780+-8294 7509+-2441 4909+-5284 -4048+9593 -8273+-6411 8434+4154 -5069+-5856 -4569+102 9756+167 -9265+1000+3279 1304+-2499 -3861+7623 -993+6530 -2174+-4257 -4408+3792 5144+5496 9187+6006 -7911+-8299 -5678+9665 1205+-4509 649+2318 7115+-5339 8384+-4472 -8981+1068 4980+1483 -7699+-6276 -8510+5200 68+-3445 7565+-5643 5551+6313 -6373+9502 6254+825 922+6631 3476+6831 -1701+7403 -4406+-5277 -5630+9049 -9473+-2136 -910+-5053 7460+-3569 940+-9375 9880+-1964 1999+-2849 2528+7892 -4040+-3717 -352+546 -1456+-9845 6099+5973 1306+7355 5894+-2224 -9338+-4100 -3322+1383 -3660+8608 -7733+-5888 -2096+6423 -7331+1795 -9142+5927 5639+-334 -4739+-5963 3592+-1557 -9185+22 7066+-935 -9789+-7346 -1783+9784 753+-9881 7556+-9146 3274+2457 7931+-3734 4247+-5130 -2769+-1553 -1922+1905 -9988+-9198 5126+697 7536+9805 6873+-7582 -1648+-7944 9560+8935 -4046+5762 -9037+-285 -9208+-2520 4428+-7512 7143+9888 3757+6861 3770+4248 -7608+-6171 -6270+8493 8867+-4891 -7794+6542 174+1385 -669+7838 -5249+-4456 -3486+-6962 6435+-7648 3229+-2163 -5017+1899 3684+-6185 7937+-2188 9250+5780 -8237+9453 9729+2412 7318+8439 -697+-5131 -4527+-5287 -2444+3700 -8049+99 -2795+3718 3835+5096 -6125+2026 -1181+-7324 617+8507 -3132+-4730 7988+2826 9722+-3233 -4730+-6546 369+-1305 -9278+-932 7599+9112 2427+8323 -1131+5254 -7533+-5630 8629+-5765 812+-1113 8503+-1246 2883+5971 -9706+-1936 -7956+-3816 6860+-5408 -3492+555 688+1311 -6982+3887 -6551+-7951 -3946+-6778 -3643+-1736 -331+7273 -6400+1533 -2594+-2711 -8943+761 9029+-2196 -6903+9444 6670+-4947 645+3492 -3309+-7883 6501+-2884 7394+9842 7165+-4246 -7945+7060 6626+4399 -9924+5542 -6584+8650 5563+-184 1938+1392 -1572+-8597 -662+-2304 5246+-4967 6139+6733 -9900+-4820 8339+4637 7859+2996 -9321+-4799 -3600+4031 -1401+2929 4232+-7558 7966+-8031 9680+3366 -1689+9601 6624+4722 -6982+-5562 6418+-8110 4420+8413 -2423+-2370 -7449+-7102 4440+3907 -5588+8933 -7728+5119 -1592+9261 -1068+-800 3790+7181 -8525+-4073 -6614+8584 -195+-9095 -4102+7742 3389+-3164 8353+6348 -1182+-1399 3911+9666 8385+-2964 5475+-5572 -2732+-7054 8098+-9493 539+-2220 4402+7724 -6703+7808 4618+3345 -7636+2971 -2313+168 5428+9415 -116+-1125 8634+8942 2672+-2374 1805+-1835 8368+9158 8832+-8749 4052+-2899 1534+3043 6780+-7803 2644+2986 7785+-813 6506+5373 1041+4263 7921+9240 -4774+8930 -7806+-1628 9154+8719 -5681+-5822 -8799+3402 -8443+-9483 9750+-1824 1254+3802 -8873+2005 -2335+-5508 8274+-254 -2077+5876 -1909+2725 2480+7776 5356+-1569 -2565+-3938 -4042+-5729 -9228+8676 -2225+-7134 -7196+-8388 -1634+-3251 -6604+-2419 -2717+4384 6129+-7989 2805+-853 1939+9818 1283+7641 1213+-2243 -947+8413 4372+-5795 1411+2638 3463+-1253 1260+-2452 -5237+791 5544+1599 987+6965 5670+5235 2605+-967 8984+6636 3540+-2737 8103+2252 -6442+-3092 -2165+-1841 -7605+1419 -1736+281 -6786+4812 1751+-9206 6616+-7892 419+617 7227+-5037 9136+-4186 9074+6640 -3736+4434 -526+-6649 -3332+-3969 3111+-8154 1225+8482 -7301+-515 5220+-7937 5482+104 -7667+2221 -8668+-8510 -8347+6759 -9581+3087 -6780+6426 -7547+8668 8314+2815 -4893+-7861 -4789+906 9687+-6787 -1417+-9824 5479+5765 9343+7001 9847+2848 -6228+2542 915+6032 165+8889 7049+-4256 7857+2672 -1260+-2638 473+6692 -3248+8396 -6367+5155 -8106+6292 -4269+-8680 -3570+-4357 2516+7648 9212+-862 2005+-1760 5686+-8804 -4485+-4036 1127+-7940 6119+-3181 -918+7566 2055+873 7675+8606 -2431+-2856 -6651+9585 9203+1531 1875+8957 1123+8071 -7757+6088 5059+-6367 3545+4427 -9850+-9984 6129+-3765 -9621+-6702 1781+1915 -7059+-5512 7286+6787 -3622+9943 4252+1046 4015+2873 1495+1341 7577+-4024 3234+-9428 2229+4627 -6091+-7672 -2838+-7526 8113+2582 -9432+5118 -8059+3054 -6535+-4786 7816+9130 -6665+-6447 -7718+-2293 3664+9548 7571+-1797 1166+-6496 5155+-3862 7077+111 7576+-8475 8952+4039 -4728+-911 9728+4268 -3665+7098 -4841+-262 -8145+-9802 -3005+-6770 5894+-4834 5392+1566 -9952+3322 -898+-3060 3230+1241 -3096+-4374 -9476+3289 1791+1075 -9506+-5939 6704+9821 6664+1759 -5633+-9014 9051+5158 4728+7529 -8133+8884 -9194+7681 -1671+-3407 2662+-2877 -5506+1319 8184+-7383 127+4523 8117+-2925 -9775+5251 -3877+-5823 -9918+-897 74+3778 -4593+2955 -9064+4951 -1225+-2009 3015+4427 -1822+-2204 1903+9954 5552+4924 -7079+1875 -2263+2700 -6397+7177 654+2822 -2788+-3555 -9573+-268 1067+-5410 -1376+-954 -2486+-6798 -1777+5894 -8070+1162 7657+191 9865+4996 -2148+74 43+1616 2194+9808 6280+-9061 5407+-2547 3130+-8249 2947+4063 -6929+3566 -6171+5365 8887+-319 -7738+9185 3325+-9540 -3202+2044 1898+5145 5753+-1524 7196+7412 7033+7883 -6888+2510 -1934+7366 668+6826 -9660+226 8093+8937 1445+-5876 -3846+-2842 3980+-2921 -3868+2774 335+5257 -150+-7522 -9027+-5942 -7220+1035 -4970+5318 -9196+7895 -9928+4459 -4738+791 -7643+9013 -9187+-1828 -8181+-467 -6814+7730 -8800+-4313 -6540+-8701 -6135+8158 3095+4622 6749+5784 -2888+7042 -4113+4066 9186+6379 8210+-8868 638+-2231 1595+3172 -8283+-8867 -1119+4229 4548+7828 -8690+9776 -3872+-8592 -6105+-8110 -2279+-6541 372+-4156 -1218+-70 404+6044 -9476+8206 -4825+1981 7480+-7018 7366+3283 -5820+-4207 8467+-8063 -8853+3049 -5002+9980 2202+7293 -5744+-9108 -4155+-9673 7829+-6899 -6290+-375 1636+5878 9815+-7024 7260+-6015 -1298+-8912 9063+-573 -9461+-2452 752+2868 -1337+-7259 -1286+1970 7152+4737 -7301+9412 -5901+2113 -3265+4968 2757+1587 -9419+3758 600+4897 -2142+9790 -459+-6512 7874+-3729 -5050+5601 -4318+-5736 5906+2931 2494+-3832 -3782+-2354 -1808+9700 3574+-8101 -8403+-9646 -6091+-2148 -2203+6019 7739+5041 6218+-1758 -8986+1350 -1020+8295 -7523+-2296 -193+-5937 2791+6391 -5862+-6035 -8684+-5416 5172+8836 -3763+-5049 7211+8698 9399+-8141 -4405+834 -5656+1108 4780+7493 1397+-7663 -6433+8363 -5522+-5890 5690+-4583 8591+2913 3676+6362 3334+9419 8494+-235 -275+-2754 -5480+8884 -4784+-4143 4609+-1150 -8765+-4198 6254+-833 9242+-9569 -6395+-4415 7398+690 3647+8291 -3308+5920 8119+5622 -1691+3373 -4662+2659 6087+6858 1677+5804 7899+-7476 -6960+1213 -6986+9822 -5167+-6803 6522+-4258 5742+-139 -8856+-2345 524+6840 7733+9747 -3822+7742 1040+-8901 1482+1779 -2905+-815 4478+-8292 -748+1930 -8757+594 1871+9020 -8571+5220 -9858+-3509 -2000+-4005 9891+6162 126+8884 -3178+8356 -9511+-6897 -4134+9423 -7829+-4874 -5514+-8077 -8969+7784 -8124+-2072 6194+-2460 -8965+-3278 -9806+-6175 3702+-2661 -7857+-2267 8957+-2946 -2149+-1829 259+-8682 -1410+-9521 -955+-8713 -4214+1852 6630+-4093 -759+1329 -2782+-4583 -7701+-4200 4179+-810 -1360+6132 3193+5842 -1172+3550 -6540+1822 7430+4153 -1484+-695 3968+-1358 2702+-6691 -8534+-6724 6338+-4703 -1294+6009 323+2822 -9882+-2882 -8005+-2607 -4103+-793 159+-1857 5361+1263 7039+5772 5897+-1196 5646+1089 -2196+-612 6081+1849 -9405+-9849 -9988+910 3410+3141 -5947+-377 8957+-3283 -3990+3601 439+-3995 645+212 -875+-2697 -2474+6686 -5718+2395 -7974+2631 -8933+2977 3500+-5392 7640+8051 6486+-7233 -9450+2648 -8570+6334 -867+1087 7070+-6813 -5860+8423 5161+464 2480+7596 -7916+-2131 4558+-4858 9836+-9209 -9850+3352 8725+-9443 5787+8973 -8359+2098 -5298+-1239 -5355+-9057 -2405+-468 5894+540 2961+9465 -2109+3293 7464+-3995 5227+-5295 7618+-6302 5997+3609 9296+2309 8527+-8150 -6255+-4953 -2783+-1010 -3004+4568 9188+-5033 9328+-7130 -7303+-7184 -3761+8100 -9757+1894 -8536+-4671 -3922+5147 2131+-3278 192+-481 879+-8232 8213+5792 -9713+-8790 2830+9642 -1219+4626 -3905+7268 -5212+1071 6996+2049 -1423+8381 1804+-4158 -9251+-5875 -8573+-9313 -8402+-7601 -4020+2064 -3683+-2556 2997+-4147 -2028+-6098 -4661+-6492 -3459+254 -7958+-5836 4255+-2930 1535+7965 5050+4428 1111+-9566 -9881+-594 8158+-2900 -3484+-3418 -8573+2492 -6931+9506 -6110+-9045 -6421+5913 -4478+8814 -7632+3076 -179+-4807 4248+-5473 -9639+5908 4043+8253 5305+-588 -7605+-422 1807+-8438 3893+1928 828+9995 1020+-5059 -2872+-6704 7795+2991 -1115+-3369 4136+-1067 -5980+2701 5290+5754 8088+-2367 -6574+6745 -3181+-722 -84+9798 -7081+6400 8615+8697 -5395+606 1260+1469 1403+-4054 -3971+-9105 -5265+154 -9660+-8107 5258+8702 6162+6756 8174+-1841 -2673+-6610 4322+3055 -1280+8792 3048+869 -483+6623 -194+4659 8223+-4848 5804+-16 3737+1758 6807+2066 -9622+-4394 4888+-2226 -8129+-1783 2435+-524 6731+7542 8309+1741 -577+6244 -1498+9693 -2352+4402 6020+-5529 -2953+6574 1855+2261 7274+9697 4943+6427 -3989+628 -6596+-6315 -3110+5524 4252+674 -2541+-5179 -3524+3630 3587+-3507 -9322+8365 -4748+-2451 -9283+4862 8378+-9398 2049+4658 8051+8266 3295+3608 -6047+8697 6786+-9534 5518+3781 -5787+6641 9103+3267 -5627+-4366 3475+-5155 -8124+3113 -1977+2074 -2874+9381 -4420+-8987 -9869+-9664 -87+-8216 1934+-1045 -7775+-5384 3950+5917 4979+9055 -5584+5185 -3592+419 7370+-7623 -879+980 4925+5244 -6679+4478 7153+-5888 -1301+7999 -4146+-6804 -6922+-7561 -2950+7015 6208+9105 6168+-3769 7555+-3004 -3018+-1246 7632+7603 486+-1733 -5565+1334 1462+-3539 -9386+6119 -6818+-5611 2263+-731 -9952+-3299 -98+6012 -8498+-7524 -3958+356 -615+-6746 6793+-4130 4286+788 -3070+1015 5631+4036 6061+6170 -7862+-8549 -5028+9357 -9011+-5410 6452+6618 8197+3711 7686+-2884 -9268+-1395 -656+-3276 6902+4664 -5215+-3966 7888+1631 3883+978 8708+5064 -8899+-9853 -8093+2156 -2442+-6030 3047+9223 -9485+6924 -9688+5199 -74+-2674 645+8322 -9719+-9759 -8114+-9042 2857+-9862 2777+4087 -2527+8119 -2431+8908 -6634+4412 7542+6204 16+-3104 4222+-7787 2364+-9546 -8281+7400 460+5499 4819+-8258 -5315+6036 -4249+8223 -3495+1354 -9391+-1764 -6576+1581 2986+5986 -9382+7554 -2650+9801 9993+3145 245+-8650 -7252+7049 3199+-4486 8663+3002 6155+-7932 8162+-7567 2796+-2447 9456+-2935 -2129+-9023 -7178+4675 -1633+-1768 5041+3344 -7271+-6908 3346+-1131 5730+9964 7973+-8126 -5909+9411 765+-3996 -1296+-5485 -2495+9603 -1944+3338 5240+4404 3646+62 5204+5350 -9773+4319 -3702+2380 7268+-1621 2333+-1479 -8432+8301 -7882+-583 -3371+1055 3678+-931 -2378+-955 -1168+2868 -2588+-2338 -9660+-5089 5754+-9315 -24+5999 8135+-5782 -1217+2565 9032+9138 4498+2379 1711+7958 381+8815 500+-4637 -5845+6061 1802+-578 -5586+-2119 -4286+6663 7069+5443 -5806+-2554 -3574+9619 4326+7769 9350+326 1655+-8395 -7298+7938 -7850+-5902 -9392+2123 -9724+-7707 7094+-475 -2924+2954 -8375+516 468+5947 5001+5559 -9145+2816 2791+4620 -6564+8336 1498+3317 4866+-1979 -6013+6154 821+2607 -8976+7710 -7927+6254 -9403+-9110 -5505+7615 8433+3615 2907+5927 9374+-4563 -6360+6 -5612+-7952 4793+-3379 -556+494 6809+-1755 70+8924 -4356+-2982 6501+-496 8762+-7386 7292+-2094 4800+8839 758+-9353 7753+3003 -7379+2710 2627+7318 5947+5693 -6714+-2315 4803+8143 -3591+-8624 -828+-6299 2961+-9254 -2203+4811 -6798+907 8299+2352 5617+-2054 -7601+1169 209+7731 3154+425 4763+9900 2384+2311 106+-5058 -1339+5836 -6668+-7694 -2759+9064 6639+-4083 -8846+9434 -7298+5552 3545+2704 6191+-9049 9083+-8274 -6698+-7430 -1253+-953 6165+8993 -5720+1776 1489+6626 -4929+4046 -1601+-5790 6236+-3843 1201+8079 9942+-1303 -8482+1856 1389+4295 5737+-8232 8913+7747 2534+6752 2551+-4754 -4088+-4398 3771+-5622 -280+7975 5324+-8393 9420+-9578 -9379+4549 -8133+-1084 493+-3291 -1462+-6337 -5827+-5299 -6808+-3403 8713+9023 8543+7267 6199+-5950 8521+4650 1220+-2879 4242+-5861 -750+7307 -7837+5050 -1356+-8363 6125+-5490 -5303+-6277 -4009+-3511 6273+1000+3303 7406+-8040 -5037+-4324 9859+-5368 1676+3604 -3702+3456 -8112+-1195 6834+-2364 9737+867 1245+6155 -6423+1683 -6314+2124 6324+-5149 149+-8406 -6274+424 -8928+7907 5564+-5720 8040+1327 -5026+4650 3272+9592 -6568+-2136 7897+-6983 -4021+-7321 -7038+-9924 -4914+-5407 -4954+6832 -4617+5360 -3684+-6281 5337+-2784 4324+5918 -7915+6229 4612+-6920 7676+-4386 -954+-4603 -5871+4318 7167+9732 5782+17 -733+-1196 -3669+-9946 3206+3608 -8566+865 -7446+977 -6993+-5075 -3031+3371 6402+-5907 3895+4782 -1455+6792 -4849+6793 -2669+-6238 -2681+-3147 3272+-5508 -3180+6197 -3302+3518 -9104+-2923 978+-2781 4639+364 -6759+-9535 7035+-8888 2862+1298 2012+8878 1529+3335 -6214+-3738 -2943+3436 4563+-4955 -7052+-7404 2991+-386 4251+6565 6656+-3790 -5285+2745 198+864 -9771+9900 -9541+6930 4877+-1746 5902+-9919 6403+-2206 7438+8673 1823+-6221 5954+-6254 -6172+230 -4308+6614 -873+-3690 -6550+9643 -6602+-8434 9492+1446 8215+2816 -1125+-2484 4118+-8864 7083+7413 -8763+7973 -8530+-3174 -4594+9135 1189+9031 -7261+9347 -2155+-3251 8582+4166 7104+-8818 -8526+-7430 -8970+-9944 4200+9083 2426+-4899 -9207+6163 3562+-4617 4145+-3405 -9078+-420 2759+3936 5165+3525 6920+-2764 5076+7225 5042+-3167 7367+4975 8527+1435 5422+3286 -9697+7385 -8522+-9454 -3001+5949 -1768+-2316 -9213+-7214 -9212+-5484 -9943+9054 4866+-6698 5493+5971 9883+346 1353+-9715 2435+-1327 5128+-4343 9391+-1410 1093+-2638 8750+-6854 -5121+-8139 -310+8554 -5320+373 735+1137 7028+-8935 -4695+-552 -666+-5016 7963+-638 4139+-4380 6541+-6917 -6957+6852 -7018+7909 -3166+9134 7661+-4934 4870+9938 -7805+-2009 1976+5076 -6998+820 3639+9245 -4040+-2345 1626+7078 -1414+-6065 -431+4656 4243+9257 3072+-3033 8954+7631 2814+984 6278+-1605 3294+3098 -6779+-3273 -8736+4575 -3854+-2864 6855+-266 -2043+7093 5107+2607 1429+7209 6318+-7116 -6364+5962 2706+-9996 -7674+-5250 620+-3710 -7588+-3328 5544+7708 -1247+-9830 2986+-4016 -6271+9296 9701+3738 1597+1678 -2568+-6590 -8564+9851 -4783+6142 -5961+-8939 -5904+6773 9621+-8914 7766+7637 446+-6725 5210+7240 -6876+7131 7954+-9645 4725+-3183 6702+-3152 6942+-4465 -2704+-7704 -9438+-8120 8719+8231 -7343+6902 -1097+-6876 -7500+907 -156+981 -3519+-4646 -8164+4261 530+-1225 -8324+-8458 -278+3729 8208+5254 -251+687 -824+8833 9481+-6823 -144+5795 2435+-7907 -753+2324 6574+-7039 -6598+-2288 3226+6 3142+-1750 6629+-8776 -988+3168 -6326+-4269 -4292+850 7460+-1927 -2767+-9896 -2755+3464 -2923+8677 -4461+9205 2015+6196 5348+-6773 -6465+5962 945+3086 -2692+-7285 -251+-5311 8562+-2301 -97+4921 -9422+-8041 -77+-9074 -3873+-5899 9321+8182 -9829+1915 -7415+1063 -8767+-3582 -3869+7598 -8330+7864 -926+9373 3371+-2647 1072+-6244 -648+288 8601+-7905 -1535+-4881 7375+633 5389+-3607 869+790 -8963+8526 9128+1335 9910+-9345 3247+7638 -5876+-5140 -5717+-8072 -841+8484 -6591+6621 2928+-6235 1685+1730 -1154+-1637 -3140+-6258 -4192+-3220 -1375+-3704 -7539+9387 5661+-2266 8423+-2898 -8090+9085 2062+-728 7117+-7083 5415+-7225 6646+1285 737+-3887 -904+9526 2001+-4001 7796+-927 9426+-5997 -4772+-879 3799+5933 1135+4354 3261+8276 -9581+9368 6876+3165 -8662+-543 4167+817 -8212+-3912 8239+4340 -8810+-1349 7644+6940 -716+5403 -5399+-4143 562+-8129 -5457+7848 -2869+-1477 6792+9833 -2627+2925 -784+-2355 4273+-5643 -8213+-2237 -1312+-6820 7975+7373 8642+-6102 -7997+-3968 8888+-9179 -1946+9962 -1913+5341 6314+5283 4518+5210 2053+-3707 -3586+-9515 7161+-6324 1866+-8601 9276+967 8945+1976 2817+8864 -6127+-5022 8515+-6239 6117+-5518 -1984+-1414 1830+9555 -3063+-3063 4035+-7109 -1461+5525 -5544+2865 -2854+-9593 95+1387 -8935+-8937 7115+4255 1460+8031 -9521+3457 -7716+4555 -4412+-5872 -8637+5320 -5299+136 -6966+-1782 2710+-9794 -1169+3268 -9098+-1900 578+7905 -344+1497 9713+-7373 -8601+5059 -5128+-3386 -9348+9739 -8453+-8057 8148+-2099 1696+7703 -9081+586 -945+3091 -7343+-7766 -194+7270 8123+1214 -253+-7944 -298+-3243 -9403+-5731 -5699+-2029 2250+-1141 -1156+7154 -9252+-2892 1837+-6379 -4973+2205 -2348+3834 2806+-6255 -3953+-512 6679+9144 4643+-552 -2800+-6805 -1632+-3382 7547+7513 -3646+1761 -6241+8009 184+9927 179+-369 3189+4765 3347+-3464 8604+9856 -3999+4350 6279+-6198 -9782+-3075 -3267+-3362 -8290+-5613 5622+3320 -9389+-1139 -1672+4853 9081+1665 8404+2217 3154+5256 8144+-245 6799+3810 9538+-5901 1656+-3096 3826+8116 2905+-8317 -4191+-9520 -7672+3417 -7130+-9330 -5940+-7882 -2533+-6477 -1019+-8210 -8963+-5593 8276+858 7048+4177 1912+-4956 3326+9684 -3241+-1776 -4375+7514 1132+8547 -2234+3531 -3373+-8883 -9207+8927 7235+7494 7152+-697 4447+6366 -9592+-137 -1105+-4624 -7453+-7820 -69+-7539 6117+60 -2182+-3611 8910+-2922 4128+6840 -1298+-9094 -9366+5142 -8632+-1380 2701+4328 7594+-6697 -3271+774 5004+-1469 4823+6728 -2572+-7777 -6839+-2117 1597+4750 876+-7655 -987+-28 -6268+4632 7983+-3645 -6010+-230 3470+-3145 9737+-8781 6805+-6667 2685+-3740 3836+4720 -5307+-9725 -9009+-2654 -1621+-1819 8450+-980 -1791+-7297 -9956+5204 723+7955 3456+6354 6108+9561 -891+9077 8754+3859 6893+4161 -3231+6525 -8072+2295 -7803+151 4227+-4679 547+42 7383+-7807 -9203+-8961 9509+5778 9636+-3226 2049+-3446 8168+-5953 -977+4277 -4953+-5692 7358+1274 46+-4039 4968+-474 5141+3917 7073+-8553 -7384+161 -9961+-7654 3513+-8898 -1795+-6516 4280+5206 -8478+2071 -4509+-6220 9328+-9521 -9508+-242 -6706+4622 -6109+-242 -6075+-4809 8819+9042 -4817+-6492 7649+-5509 -9331+-1119 -9568+8553 -5689+-3805 -5644+230 -4620+-8852 -1795+6486 -671+5804 -3397+5592 -5455+-6710 6450+-8601 -742+-8844 -6817+-8608 7690+3078 -6450+2673 1973+-4910 -8354+-2152 -5209+8923 6028+-3921 8053+-3307 -2036+-3713 -4621+7773 5148+-8807 -3655+-1320 1933+576 -8945+-2458 1566+-9586 -4790+4421 1867+-208 1881+-1936 -3654+-9825 6653+6436 -3128+-6723 5316+208 9333+3947 8849+-2148 2455+7271 -7609+-886 -4548+-2651 7668+9942 4406+4997 6071+-3425 3336+-1721 -1761+-7331 -2295+5222 8407+2225 3708+8655 -956+2564 6658+-7744 -4856+7419 -7218+870 -6419+6475 -4316+-6237 9957+-8036 1604+8003 9455+-6109 7312+6873 138+-8586 -6758+9734 1831+3014 9884+6348 1077+-2539 8490+5201 -8344+4281 -6415+5539 5498+-3180 4672+5358 827+1031 9394+9250 4458+-3903 -9477+-1548 -2594+-7124 2368+-7189 -8640+4125 -4426+-9432 -9675+-2433 3593+6831 -1011+3356 633+-5805 2180+-7505 5232+-7508 7424+833 9781+-5311 -3539+5683 -6341+-1674 -6448+8406 1080+-5260 3301+6681 -505+8505 -6636+-603 2983+5554 -4007+-1967 -874+7632 9041+-7653 2158+-5117 5132+-876 -9353+-5423 -3171+9322 -2550+-6605 -3204+-1297 -9530+-1193 -4134+-146 4487+4176 6801+-3321 8423+-3694 -8436+7198 -3674+-7785 -1175+-5390 -1916+8001 -9100+-2716 -3114+-7681 -692+2148 -6008+7455 2586+4749 -7946+-4601 423+-5439 4744+-2336 -1502+180 2302+5739 -163+7128 -3573+-5465 7662+-9764 5563+7482 5741+6395 -2178+216 -6084+-3725 6094+-5771 7039+-4395 -5846+-1925 -9939+6391 7804+9695 -2066+-9245 -7374+-9351 5911+-3605 -26+-6718 497+-8653 4936+4468 -342+8778 2228+-4193 -1925+5270 880+-3234 -2357+2784 -290+6992 -2453+6256 7815+3041 3089+-1225 -2923+2446 -3103+2973 -1627+-7553 123+1078 -8387+872 -332+-9843 -7472+-8392 -8220+9945 8188+5369 -4257+9581 -3828+-1895 -8222+1522 -9425+9462 -3864+6549 1666+-8282 -5099+5531 -480+7635 -9283+3360 -2167+4489 -1266+-3349 -1284+-9285 -9930+5968 4423+-7962 -7306+-4453 3525+888 -1416+3074 1831+7874 8513+7942 9283+-5663 -3540+-5622 -500+-4217 8512+-3905 -5860+-881 -7516+1819 4288+1078 -6816+7821 -9126+3599 419+3948 2978+-3899 -6618+-3967 8685+4716 -3552+8611 1921+2678 9778+-1402 8973+3625 -4399+-3001 -4438+5646 -1680+-5118 3065+3085 -4385+7527 -807+-2670 -5675+-6233 -3483+-9485 8145+8565 -7260+7533 -7561+-5663 3838+-9430 -9821+-8493 3803+9741 -4441+853 -8833+-4272 -8734+8802 -1671+-4638 1039+-5585 -6036+-6647 -8638+6652 6854+-9358 -6285+-9346 -9481+8400 7170+3364 5695+-9694 5460+3756 -85+-1215 6812+-1575 -6296+6521 6342+-8960 -4999+3384 -5430+816 -8333+5711 5114+-9863 6340+1026 -2238+6324 8378+-7874 -3542+-8431 9576+-5001 -2179+5753 7174+1640 -8336+-5256 -4913+-1726 828+-9181 6228+551 4136+7844 6586+-3405 -6998+2137 4718+4098 -2803+2428 -6139+7690 4780+2896 169+5082 -6808+4945 4097+1783 2978+9549 9569+-6352 -6908+-7030 9888+2627 7305+-5767 -3020+-7566 -6755+9312 -7633+-4489 5575+5074 -2472+-591 -7669+-5236 -62+-1422 -5852+4569 4286+7553 8899+7425 -3879+2478 2150+2135 -7489+-3737 1359+-610 -7761+-9956 1781+-4106 -5254+-6359 -6173+-406 -7177+-6018 -156+220 -4091+9503 -3230+3860 -8551+5863 5512+6383 9248+-4499 -742+-4563 402+9547 7172+-8342 119+-3934 1962+-5233 -1613+-1207 2754+1879 -3540+-7264 6631+405 9501+5493 265+4761 9714+570 5068+-6157 8230+8001 2486+-5989 1802+-1472 -616+-7279 -2617+-768 7324+274 -7974+653 -8411+6856 -7836+-592 486+-787 2913+-4296 -2235+1898 -2387+8270 8411+-2493 5338+-5017 -5238+3029 4224+8936 -7043+-9958 9475+1638 -9331+21 -4689+403 4593+-8847 -3532+-1735 -731+2280 1032+-3122 -6013+3239 -1182+-5772 -5649+-2423 6736+4873 -2651+1113 9427+8769 2651+-6304 -4954+-6969 -495+96 -2711+600 9157+2886 347+-7286 -1373+8127 -2220+-1101 -9382+-4129 3453+-7994 -8037+-3152 725+-9913 -9428+-6450 -1224+9873 -1454+-596 -7036+2836 584+-7806 -5655+-5556 -6230+1794 6434+4799 3893+9085 -2062+-3053 -1053+-3278 6888+-1505 2995+-7285 5202+5696 -2881+-8061 6747+6842 7466+9006 2497+-1673 -6755+-3052 -8528+-3100 -5938+6656 5729+7326 -10000+7651 -9851+-671 -1347+7207 1570+6537 -4493+-4282 1108+-436 -7376+-8526 -6684+-8178 469+-8206 2416+-1547 453+-9544 6169+-613 -5706+9633 5067+5307 5907+-7323 5168+1888 1933+-4798 2457+8674 -5546+-2091 -8610+-6571 423+7904 -6506+-3451 -9552+7612 6612+4049 3723+-5110 7523+-2924 -5344+2906 -6239+-5809 8961+6352 1546+-8922 2662+7942 9151+-5616 1797+7680 -8016+5955 -8391+4915 5476+-3196 -9214+-8338 -2820+5580 1569+-2948 -2304+-5490 -7585+6928 -1489+7177 8215+-686 6604+6727 -3414+-3140 -4329+4020 -8426+-7931 -7047+-5027 -997+849 8438+-4360 -2342+1534 4407+-9300 1868+8014 4317+6685 -9353+-5037 4368+-5886 -1865+-7249 5213+5637 -4559+1983 6320+-8299 1973+-2721 7120+-646 -5926+5579 -6627+381 4047+8786 878+957 649+603 -366+2590 -601+8730 6255+3746 -4394+4217 8921+6480 -1791+-9850 6671+-1615 -7134+7733 4998+586 -4277+-1846 6729+8755 4042+-9296 371+1172 -9661+-4059 3502+6462 -5705+-2327 1330+-6403 -3381+8468 8071+-1187 -313+-4120 -4133+5075 5644+-5369 2870+-5098 -3711+4824 -4657+-1027 6581+4127 4464+-6023 -9695+8446 -2076+-3348 2805+-2965 -4724+-7030 -1790+-56 -5116+729 -5646+-8089 -643+9657 -5082+-8116 -3178+-8012 6120+-6575 -8503+3367 6690+-1122 -373+-4388 8334+-5176 -8462+3480 1781+1515 -8164+-7017 6618+-9981 7737+9748 -8682+5467 -7054+-6474 9295+-2908 -77+-5612 413+-4926 -3562+4697 -72+-3901 -8463+-5031 -8864+2224 -7832+-1061 3280+8530 -5067+7149 2713+3119 -2074+-7026 3372+-9410 -3781+5431 4040+5571 7054+-6438 5806+-4194 -241+8988 -4381+8065 -4829+460 6481+-4046 2166+2579 -1372+9944 -7761+-26 892+-1443 366+5986 7480+-9438 970+-8203 -562+9719 -2878+-8279 -2318+-4469 7169+6450 -933+1217 -5701+-3306 9294+2628 -311+-4184 -3984+6224 860+-5643 5727+7102 -4195+493 1437+6468 -7856+-2316 2530+-589 5169+4655 -2140+-9989 1661+1000+-3119 9842+-4080 -8422+-4625 -6404+6550 -5028+6792 4980+-916 5389+4774 7754+-7714 7409+195 -808+-9929 -9125+-3101 8799+8610 -741+-6443 3052+374 -2321+-4302 1890+8508 2181+7102 -2460+8874 -6699+1956 261+961 8362+3156 8126+3292 5007+2463 -5283+5955 -786+3996 6341+-1810 726+-9949 9229+5461 7908+-4050 2655+-9425 -6403+2151 -3783+1745 8292+-9765 8836+-1668 1212+-7281 -2578+6341 -2101+-2829 -2098+-2386 2937+3536 -7666+-5900 -4120+-6756 3616+-4775 5675+-491 -5501+8566 3348+3268 7283+-9821 6328+-6274 1088+-8050 -2805+-4715 -3116+-9900 -1745+-4609 -2364+-3779 5535+6885 3557+-2750 4891+2934 -6163+-6264 -1208+-7918 -4638+514 -6355+9720 5462+-6861 9222+6986 -5789+-5165 8297+-8511 8167+8507 -7866+-4403 -4109+-2370 2482+-5893 -6302+-9989 -8931+7651 6491+3573 -2259+-9327 -3488+3765 904+-2121 -1968+827 7015+9418 -2345+-6368 -6291+6584 6496+1204 120+2427 -4930+5927 5601+8570 5049+-4652 -7722+1679 9069+7328 18+3836 1150+-5978 6367+3279 -350+5633 -7055+4748 -3963+-8318 -1971+6842 4712+6950 -8153+-3788 -2894+6525 -2941+6093 9733+-9987 -9542+2137 -6314+7508 -6839+1295 -9060+5103 -9664+-978 -12+4029 -5123+684 1093+3987 -400+-6601 4842+-43 -1903+-4748 -3595+-1993 -371+-7327 -3800+-2802 4344+7131 2249+1809 -1933+-1174 5722+-7206 -8297+-297 5816+6251 8376+9455 8672+-6511 -869+-3626 1007+-9180 3911+8448 1199+-6949 -7568+9781 -9896+5603 -9937+2156 117+8035 1882+-3359 -6638+-7220 2732+2199 9146+5570 -7078+-2991 -9050+-1481 1354+-8515 -2461+-9796 4123+-2673 1172+-3555 5251+6400 -9069+-8243 3271+279 2055+8406 2717+-7072 -9653+8674 4191+4827 -6046+6200 -8603+1554 -6113+-1630 3798+-8091 -9432+8382 5961+-9196 -9580+1821 804+62 -4174+-9274 6925+-3335 -9710+476 1335+-599 -5683+6548 -5207+-651 -8627+-7888 -6233+8802 -847+-4952 5354+3727 -4477+-9285 5760+8153 2036+-4546 277+-4130 -2217+8583 -338+9362 9572+-2359 -1675+-243 8234+-3022 -1560+-5992 2388+-306 -9036+7944 1634+-9834 -2050+4947 -8999+5270 -1200+3249 -4719+-8384 2308+-9935 6182+40 986+-1081 1978+4327 -7288+2008 -134+917 1008+5603 -6357+1885 -3828+4036 -5576+6877 390+-5311 -8047+6024 -4047+-8737 -6733+-3193 1077+4578 5670+-4205 6193+1636 -6345+1628 -6951+-6107 -2903+-5041 -9248+5663 -2115+-3123 -8881+-2426 707+1909 5079+419 -7821+6051 3680+-6815 9693+-3317 5468+-4234 1263+-5239 -3113+-1020 -1000+8184 7773+5112 6810+-7331 2213+-8290 -6464+-8764 9319+-8637 9253+3722 2008+-1852 9570+3307 2297+5237 -1072+-8352 4003+2664 -3592+669 6303+-990 2796+-855 -6053+-9517 2880+7967 2616+-8270 7891+-8753 1111+662 7060+-8998 6096+9810 1315+-9763 5322+-5890 -7947+-87 -7703+-5107 1234+258 -7612+-3936 5301+4715 2277+8986 -4285+-6446 -8188+9329 8577+8358 4520+-907 6420+-764 -5795+9699 502+-5358 -5669+-2719 -44+9968 -1082+8672 8416+2998 788+3576 -7425+9726 -6022+-5251 -9543+-449 -396+-7246 8768+4569 4325+6338 -5941+9635 -8358+-6936 -1300+8057 7652+-2884 313+5186 -163+6454 -6976+4761 8500+-8685 -397+2954 -9885+405 -7128+-6564 -3946+1696 -5107+-2614 5084+8060 -9504+-3325 3611+-8876 -8975+-7068 5239+229 -143+-9058 495+5152 4952+9989 4346+-6259 -5911+-8878 2250+2395 7873+-2013 4908+4575 -416+-810 -234+-1865 2796+-994 6095+8114 2601+-2127 -9667+-3290 -1418+-3683 1499+4253 -3249+4448 -6477+9207 9991+-3757 1799+-7106 -9027+9435 1790+-499 -820+2272 -13+9238 8454+2010 -5800+2728 -1482+1489 -6412+-1295 2774+-8912 9478+3973 -3180+9849 -4309+1941 1625+4824 -5188+-3482 9630+-8681 -6888+-8755 6936+9149 5392+343 3673+-137 -5721+1050 -656+6134 -7015+34 -4692+-171 2676+-1919 -2118+3381 7169+-426 3333+5030 -4660+7103 -4147+-7138 -5128+5407 7756+9665 4760+-11 -2994+-554 4952+452 -4370+5422 -2113+-4857 -4805+-4178 1814+-6456 5444+3611 4140+8183 1898+-131 -6869+3132 7181+4843 -2448+-3333 -1919+-7283 -21+5213 -8339+-6691 1584+-8666 -1308+8510 -2694+-1372 1947+-3385 -4518+4888 1310+509 -3042+5102 2609+-4414 -7209+-3752 161+-533 -3104+4844 -428+1834 -3359+1992 7370+-1545 -8+8648 4073+223 -7819+-1929 -7990+-8841 6631+509 -5161+9053 7024+2158 1771+-816 -1643+-1945 -7411+-4395 7099+5757 -1071+8373 571+-3756 9626+2879 -2850+1885 3723+3051 6657+-9119 -1664+-6698 544+-5070 -387+8966 8643+-4166 1500+-7139 -1746+6007 -9199+2068 -7311+-3139 1270+5296 -9158+4481 -4638+8995 6616+-9318 -9626+5666 653+-2064 -2593+-2613 -2409+2571 -6856+-52 -7248+8600 -6819+-7093 8826+6626 -1742+2458 8568+4996 5099+2323 -2387+-6702 -9656+7311 6361+-2975 806+-9980 5867+2932 5111+-3112 -7382+9912 -9056+-4359 -6273+6334 1263+-2289 9929+-1315 9224+-8080 6749+-5929 6006+2031 -1212+7633 2291+-7779 -9358+3947 5998+-5170 8469+2674 -1350+4477 -9767+-8692 3747+-4577 -1279+-1550 7828+2942 -4943+-9788 -1206+-3496 -2646+8881 -8773+3779 3904+-3016 2820+3767 8928+-7780 3690+2450 -8810+8859 -7895+8533 -1375+8191 2303+6662 -3725+-8348 -9592+-1336 6125+-8309 845+1419 -9312+5091 5135+-5286 -3047+6395 3494+6758 -6160+7954 -4513+-8462 274+1650 2909+9598 -410+1339 4095+-4054 3060+3248 -2565+-5050 -8309+-4574 9652+757 9255+4252 8501+-6180 -2655+4827 236+1622 8335+-3071 1897+-2595 -5867+8356 4684+-668 -5638+11 1675+-541 6638+-6411 -7435+-8430 -1349+-6988 -274+-8684 -1824+2796 -79+1633 5061+3482 -8499+4053 -7253+-5659 7298+-2333 4256+868 3401+8645 -8663+-2572 3192+-5545 9352+-8455 4681+-2442 -2098+5218 -7327+5441 -3484+9403 -89+3808 -7991+-5156 -4653+9606 1084+7595 -9321+-6305 -4781+2045 8900+-9809 -6549+-279 7903+-2163 2536+9007 -7725+1891 3945+3922 3732+-6232 -1449+-6667 -6063+-763 -103+-2914 3946+4768 4933+-2642 7906+-1854 9587+8656 873+2583 -3076+800 -3624+-7388 -7451+5809 -1908+8466 2228+1572 -9307+-8953 7312+-3464 -4507+-2132 -4797+8358 2750+6268 6050+-1293 9656+1380 1099+7219 4974+-6895 -1250+4404 9173+5974 -252+-5717 -2107+-194 -87+-2376 200+-8764 -364+8489 3463+1998 -7094+-6067 7184+-5111 -2436+1210 -2562+8950 -8324+-1290 -6180+898 -4436+1122 -1659+-9862 6685+753 3145+4971 575+-7419 -6564+9678 -8175+8106 8095+-1895 6648+-8531 -3931+5472 -2701+-8727 -1833+-5772 -4236+-8381 -4018+-2363 -3469+-8669 -3858+-4404 -4683+-1661 -69+1935 5805+9866 -8132+-4769 -655+-8041 -6382+-9747 2808+-7650 -5249+819 -7138+2820 5850+1949 1755+-9558 9661+-5458 -285+-5800 -1971+-4106 -312+-658 5410+4746 7130+-9017 6302+-9859 242+-7085 -710+7240 -139+-6861 5074+-9522 -6958+8061 -2632+7949 -5864+-2863 585+7438 -184+-1235 -9558+1238 -3482+-429 6690+567 -1953+-532 3300+-4942 5273+-5352 6654+-2926 2953+-7182 -4178+267 1605+1519 1733+-4426 8504+-5832 4144+7556 7687+-2595 -937+9614 6329+7426 6870+-505 377+9615 2067+-4757 3668+8290 4095+3453 5244+4396 -1855+-3123 -9338+-7682 8898+-5884 6407+1018 7431+-3181 -4752+-1558 9166+6457 -6004+-2237 -8561+448 6326+4799 2709+-4585 1223+8259 -5475+-8267 -4653+671 -2151+-8922 -7140+7560 -4681+6166 803+9292 -7737+4999 -605+2407 -218+-7796 -5760+-2081 -5793+8964 1093+4512 1972+-6043 6272+1596 6262+-4373 7165+-5397 -7624+1409 -8600+4579 -5681+-6201 3305+-1273 -2516+-6736 7224+-9253 -6442+-6787 -1881+-7167 -4668+-8196 3188+8479 1485+5241 9290+2290 -3441+7016 8998+-1657 4278+484 -1585+-8976 2982+-9544 -8206+-4700 -6331+2638 314+-4748 9632+-6466 -8292+3822 4856+5183 633+-2886 -8451+853 9022+-6854 -8347+8704 748+-7955 4901+6597 6028+-6766 8591+-8297 -1059+-9965 -3227+-1821 -3635+890 6222+-5120 4559+-3666 -6470+-5200 7845+8491 -2347+-5697 4722+-7067 -3326+7071 5803+-8105 -2976+5610 -7640+-5600 -7864+4163 -4614+-1969 4184+-7371 -711+-7870 -5781+-8393 -6315+-2741 1739+-1410 6915+9367 -1939+7870 4687+5691 3563+-8373 -6238+8546 -8373+5656 3734+8796 9015+-2117 -6640+-3266 -8987+-2937 -9619+-2692 1269+-1318 3109+-9476 -2812+4780 -6058+5381 -4880+-122 -5758+238 8244+-4246 696+-9572 -4992+-5526 6006+5784 -4273+2 -7268+-1173 6858+-6304 8381+3817 3857+9455 172+-2238 35+-2753 5415+8530 -6609+6140 -5217+-6744 -9185+5245 2684+-8660 3338+9087 -6952+-730 4056+-7762 -6963+2196 9538+6076 -6332+-4921 -7165+4807 7638+7397 -4646+-467 8221+-7158 7586+-2425 -4029+8249 8852+8821 -5309+-6600 6312+-3372 -7000+2072 -6817+8235 -4601+4125 7280+2114 1895+-1889 420+-2583 3989+2132 4429+9185 -781+3888 828+3632 1850+2234 -2543+8842 -9082+-6465 -1636+-5388 -9151+-1794 -6615+9082 1110+-9648 -255+3333 4371+6675 4095+8661 -8806+-6331 8192+-514 -2037+252 -7482+9996 -9009+-5194 922+9720 -3532+-7748 -6527+-6809 -277+6730 5987+4825 3327+-7360 -6603+-4261 -4274+-7071 -3239+-5726 8893+-8402 -7086+8730 5761+-8359 -8417+3168 -6586+6722 4645+8166 -6127+-7375 1233+2415 2768+5709 -6491+-5452 7696+-1690 -5205+-9454 -259+-147 -6024+-160 2737+-6527 -4479+8630 -5104+-6156 -6765+-7211 5512+625 -8067+446 -7448+83 1006+841 1476+-9956 -2937+7090 6139+5530 -1938+-4196 1295+-9666 9105+-3431 9000+1861 8146+-7526 -3705+-6199 -1665+795 8265+-4573 -1375+2238 -7341+-3761 -9683+-8695 -8800+8154 -1703+7333 2226+1330 -2139+-5867 9852+3969 -3685+-9841 -4733+-4820 -3233+6981 -8259+6130 -1675+3484 -3546+-6630 -2590+-5202 -9385+-988 4986+8104 -7405+4530 5569+-3482 3561+9590 -4979+7873 -6995+-6226 -8036+2696 4952+-6795 -2495+-9704 5777+-2970 6874+-9027 -2520+-7743 -9592+-7153 2437+-2331 -9238+8831 9621+-5960 8807+1268 -3537+2608 886+6713 7338+3536 -5303+-4092 -3235+2505 9602+7199 -1059+8119 7936+2717 3218+-6076 -9633+-1139 7805+2656 -2643+-268 9892+9404 4969+-9190 2806+5982 -1343+-1287 -307+-8388 932+9287 -3186+-7518 5122+2486 2410+9572 1897+5520 -9629+-3375 -3835+2636 8765+8707 5720+6318 -4133+-1601 -6838+-7023 4785+-3040 2166+-6883 -9558+-5899 -796+-4170 4719+2801 -4801+4134 8754+-2863 -9193+8816 -9060+-4245 -9398+4548 8611+-4929 9664+6723 -8502+3795 7861+4423 -2570+9923 -3800+8102 -8184+-4733 8339+7871 -8490+-1733 7779+1718 3958+4129 -12+9710 -4583+-675 6430+3366 6660+860 -427+6414 5067+4765 878+-9391 570+-9787 8033+6417 8673+-4284 -5908+-9512 8331+-4863 -7517+9279 -8620+6005 6689+-4872 1028+3974 3682+2042 -1496+7960 -5288+2370 3907+8277 5074+3036 9248+-2844 1447+-6929 -3856+-6759 -5829+5966 1364+-3041 1396+6478 -8433+-9273 -3089+-6294 3512+758 2350+-2574 5903+-9725 -4009+-8165 -7165+8765 2731+6101 210+-5735 4145+5595 5142+7771 -5110+-5667 -8550+8364 8318+-6193 1073+-2602 -1276+-8449 7155+-2680 6744+-2927 9191+-4950 -2615+-956 9220+6526 -8755+-4903 -3744+7639 2243+-6321 5535+-7413 -7307+4075 9091+-5155 -6886+-8776 2129+8608 -8224+-9381 -8717+-962 -7968+2890 -7272+569 7666+3934 7167+-2285 6480+6766 1359+697 -4207+-1938 6209+-6501 5989+4309 1411+-4772 -6511+-9087 6026+1698 -7323+186 -4555+-2023 -1541+8793 -8099+8750 9790+4831 2700+7563 -8990+1343 -5396+-5923 9380+8319 -7456+-7925 -7474+-2462 3196+5560 -256+-1656 2280+-7135 -5555+10 -8032+2710 -9497+-7305 -8648+4273 8712+3158 6461+916 -641+5164 2697+-7802 2082+-5104 4096+-154 -3955+-5995 601+6997 -1270+3160 -8178+-5374 3643+-8377 -5728+2706 -5324+8514 7159+-6705 2472+831 -9662+-673 2547+200 6700+9362 9741+-4197 -5798+6431 8099+-2739 -6815+5039 -2495+-1069 6347+8874 4051+-4384 -2007+8639 1499+486 -6643+209 -8680+-1227 -938+4860 -9793+6907 -1800+6732 -5566+6526 7455+-2084 9938+4527 -9763+-3149 -8768+2859 -2916+2635 -4548+1403 4214+-3011 -9375+-5322 -2218+-2190 -6873+9701 -8768+1000+-7553 1413+-9530 8074+-3405 -5184+-3886 5123+-827 -2749+8008 3892+9337 -5318+3704 637+8766 -3438+-6608 2043+-5560 -1343+6732 -2052+-2779 -3439+8854 -4105+-7676 9465+-2663 -9271+-1497 -2515+9233 -4966+3161 -4721+2421 -2156+-4482 1362+-9406 -6659+2822 -9001+9805 2264+323 -3129+-5581 -4315+-8344 259+3648 9326+8847 3237+-3032 9880+9287 5714+-2733 -7618+-7587 -6216+-7595 -8272+6907 -564+8820 1894+-6472 -5024+4349 8565+-271 -6563+-6472 7977+5825 6223+8817 -6375+9409 264+-6851 -4724+-9198 2970+-7984 8746+9093 -5452+8897 -2098+-8795 5333+-8633 -8354+5797 -58+-3410 2063+-207 7476+-4059 2882+-3216 9245+6734 7833+-6751 8166+-5442 -5738+-1435 -6337+7585 -2248+755 5547+7660 8875+7251 -6906+-4501 396+-9518 -4634+8901 232+1572 -1354+-3534 -7823+-6992 -8155+-5080 -697+3822 -6039+3509 -7778+28 -7840+-1993 3379+1513 -3404+-9593 -6374+-5715 8878+-7987 2284+-4906 4432+7730 -7888+8246 -3584+-2484 -2044+-2765 3537+3753 -2811+-4196 5129+-1664 -7820+-8254 2726+-9662 2407+2986 4195+-7697 9337+932 -8257+4531 -4873+195 -2091+-6638 946+5014 -5591+9085 -8086+6865 9349+-9825 -1856+5053 -71+8641 1323+948 2790+7745 -3055+-3218 -5775+4480 -3312+9444 -9549+6647 8280+1617 -4189+-862 9584+7475 4508+1719 4107+372 -3535+-7149 2460+-6371 7098+4796 8959+-7689 -1132+5822 -4869+4709 9289+-5234 -7777+-4438 -4021+-3934 911+-1557 -8296+-6289 630+-5474 -9442+4695 -5160+7197 -9282+-7196 4732+-5715 6092+4635 2601+-8288 -9897+-4018 82+8273 7025+7757 7047+-5202 -5796+9362 1092+1685 -959+-574 8670+-6861 4324+2838 8190+3640 5673+9047 -7535+1783 -5579+-9817 5301+-281 552+6006 -1392+490 -5407+-8628 -9018+8169 -2636+-8996 4139+-472 1453+4066 6532+-1724 2941+-1167 -3367+-7888 -8595+-1932 4600+5545 6010+-7192 1614+-1001 5675+5685 -6065+-1766 -6087+2763 2549+6540 -380+6156 5185+-7517 -6553+8095 -4255+5660 -7626+1985 3489+-3888 -3262+3330 7792+9834 1782+-4276 -5668+-9924 8649+7822 8028+-8686 404+-4495 5059+1080 1353+-7673 -9295+2988 -237+-7093 1683+2384 -8998+-5566 2089+-6736 8788+7753 6516+-9598 -2171+-3280 -2428+-9941 9115+3465 -9800+-6456 -8671+442 -8211+4543 -9254+6346 -3076+-9091 -1427+4130 4820+-4076 -1926+6325 6773+-8145 3629+2301 -2305+-6324 6967+-8600 -689+2900 -32+1063 -8331+-8566 9609+3513 8161+4849 -2214+-8357 1177+-8247 5713+6136 -6729+8043 9298+7967 -4730+-2833 956+1087 -8289+-3038 -3213+1896 1397+9678 -7078+-2722 1166+-6142 5389+5926 5304+-6276 -9087+-7329 498+-8423 -8968+9161 8405+9711 -4202+3568 1412+4682 7261+5047 -2265+-9790 -9495+-3845 9089+1371 -1490+1239 6093+1032 -9000+-292 8845+1474 4412+5970 7559+-111 8094+2311 -543+5982 5022+-5604 -4370+-7184 -3340+-7147 -4629+440 -1157+5203 5134+-731 9723+3380 81+-7779 -3505+-3389 -9881+-1032 9822+935 8978+-6500 2540+9651 5549+3577 -9364+4538 4925+-877 8633+-9804 8771+3811 8646+-7906 -9875+7658 -4235+1848 -9555+-2432 -6336+3791 6466+1162 -9536+-5658 -7950+4532 -6740+9706 -5561+-2777 -8943+-1293 4709+-2703 5658+1403 -5595+-8681 4118+9640 4908+1286 9408+-5339 9742+-8023 -2259+7663 8244+-7857 -8729+9034 -2908+4410 477+9265 3235+2751 7670+-9489 7997+3574 -3206+-237 -9031+4627 1401+-9791 644+-5477 5976+6661 -3462+-9181 -7458+2851 9789+-8998 7555+-503 -8752+2086 1079+7930 -9457+-7959 -2263+-6538 -2508+7969 -9586+-5792 -2988+1410 6095+3757 4198+-5708 2940+4077 -8881+5404 6282+9430 -8906+-2001 -380+132 2351+-4427 -5977+-2311 -5827+-6868 7765+-677 6415+-14 3827+3030 5670+-74 -1068+-5800 -9416+-7716 6415+-1136 -4981+-4469 2787+-1820 3212+1981 -9838+-5596 -4866+8782 -1343+2687 8226+9778 -2445+588 6073+1106 -3503+-8475 -8611+-5836 -2628+-1351 -6615+-9238 -7736+-7726 -1373+2656 -2419+268 5866+3569 344+2083 -5672+7204 -4867+6112 5501+-7027 -6453+-8847 4514+8544 -6769+9502 9531+-9822 -3495+5165 7824+1212 -2240+6528 8261+-5074 -4514+8808 27+-6033 1495+4707 1044+-3320 7601+-1144 66+-1899 -981+-5796 -394+6080 387+2786 -4945+6323 1303+-8248 7217+-9096 5434+-679 -3907+3602 -6195+1653 -6417+-6810 -3074+1311 4390+4616 -3827+-9034 8185+4991 7409+-4517 -2394+4419 -4055+-4370 -7650+-9174 -6600+8573 -9651+1980 546+-9197 1973+4964 -5588+6267 -8412+2810 5226+-2638 -7876+2892 5010+-1689 -4312+-3890 8043+5088 2933+-2217 -9662+-131 -7100+-4860 887+-714 3943+-8325 3547+6587 -3415+1549 -9977+2641 -3494+8607 1175+-7602 6397+4649 -7304+397 7523+2837 4744+105 9926+-6834 -7161+-4698 -3006+2870 -6283+2343 -2983+-2363 9115+6722 -3328+5820 1864+-6104 491+9564 4376+9091 661+-5737 9932+-342 4788+8620 -4960+7984 9934+-6235 -3068+-5739 3811+9571 -8804+2031 -6331+7550 2026+9032 -4333+3946 -3101+5095 5485+-7707 6263+1288 6583+-5308 926+4580 9203+-1668 -3867+-3856 -9921+-328 3786+-2035 -5958+8807 4373+2062 -5020+3683 -1883+8107 -7088+-106 3105+7445 8077+-4018 -1229+-1641 3845+6634 -2420+8797 1460+8401 -9027+272 -6513+2096 -8899+-8557 1499+1698 1385+1623 6435+-2731 -4008+8027 -6795+7304 1093+-5015 -5039+1888 1329+1261 1714+1227 1953+-1388 71+-220 -2001+-3294 -2990+-3686 5509+7450 -6716+5895 2872+968 390+-6251 475+6252 -4271+-1512 -7397+8088 7277+-6675 1456+6668 -2343+-1007 5268+-4376 -4507+5292 1736+5416 1844+5183 -9600+8141 -2822+-9975 4805+-7091 1255+8340 -9770+-80 5166+5944 -1643+-9123 7502+-8596 4353+9939 8699+-2057 1551+-3459 6020+-8276 1896+-1532 6227+3078 764+-3469 3318+-5307 182+-9206 -7912+8547 -2017+6672 8101+-6912 9644+-9933 -2976+6311 3629+-5950 9185+-6856 1909+-3810 -9916+7748 -5707+-5346 -9485+5296 -7581+-4550 2478+-8078 -4172+-4477 3962+532 6435+-9049 642+-5929 9669+7417 -7976+-287 6047+-5496 -2312+2527 6817+6649 139+9940 -2101+-5617 -7165+-8376 -8514+-1806 5418+-7404 677+8107 -6170+-9044 -6800+-8972 -3510+5560 -2741+718 3093+-8463 -2275+-3951 -9712+6184 -8662+-2934 -4511+7399 -4310+5392 -7912+-8118 -41+2548 1486+2387 3219+6777 -4846+-5907 -5417+-2227 7954+-884 -6816+-6220 -5202+7420 -1395+-7908 2176+1229 -4964+1354 7326+-9072 -5990+4730 3219+1185 2395+-8601 1914+2898 -984+-9214 7313+6511 8674+-8906 181+-6790 -5825+3928 -5277+4581 8357+-8059 1116+-7070 -9374+-8369 -9072+3088 823+-3960 480+-4062 7351+2593 4621+-9549 5160+-5800 -2627+1844 7309+-5385 -6108+3396 -650+-24 5849+6983 6526+-2990 563+-6910 -6420+4108 6507+-9797 -762+-4135 -355+1416 2371+-5089 -7527+-5274 -1430+-1836 -9783+-5400 414+5633 8353+-7936 -22+-4800 -6865+-1381 48+-1075 6114+-2761 -6350+-2980 4504+-4374 5557+8231 2305+8613 6665+-3774 -4735+1594 2480+5449 -1058+162 -5910+-9855 -5185+-5448 8360+7285 2822+-1194 3555+9213 -5798+-6431 3042+8049 6342+-7373 3077+2870 2002+-6996 9491+5493 7434+8280 5501+2871 124+-7660 -3259+5467 -8075+6993 -9077+-610 -6727+-5575 325+-2455 -321+-4887 7884+-2751 6653+-7346 2767+6231 1068+1661 4244+1088 -2079+3767 8993+7452 2257+-9963 -3181+2052 2865+-106 9223+-8830 -2684+4314 -958+-7531 -9951+15 -3142+-8745 -4590+7682 -1019+2412 6251+-1918 -8838+-7331 4670+-6630 2410+-9610 -9565+9028 -8585+2040 9652+423 9055+1685 2677+-996 48+4052 -552+-7104 5877+-7738 -9769+3171 3859+8388 -871+8629 747+-3728 9168+-8623 -4087+-6510 -9407+-2152 8882+-3107 -3638+-3476 3019+3150 2923+1438 -7817+-1233 9457+4945 7986+-4076 8782+451 1767+9616 866+-1410 -8354+-9555 6768+-6325 7164+6026 452+-4981 5825+2365 -904+2516 1198+-7526 -8208+6122 -1611+2795 -7106+4637 7252+-8981 -7013+-4150 9504+-3083 3056+-9703 -1829+748 8901+9406 -5050+7831 1853+-4828 -8156+-1857 6236+-3648 4199+-4218 6028+562 -4127+-3445 -1863+-3835 2780+-1366 -2586+-2532 -2822+-9325 1904+-6069 -405+2748 -3724+-2662 6881+949 4903+-4451 196+-3425 -2402+-7854 -6607+9111 922+-1062 793+-9469 8213+-2453 -718+9752 -3823+9825 -6496+3488 9249+8390 1998+9509 -2728+-7179 2944+2132 6552+-7229 -2906+257 9296+244 9416+-4050 -6463+-5504 1725+8077 -660+-5003 -6930+3158 7898+-3818 5905+2644 1820+8905 -9438+4815 6016+-3883 -2486+9137 3074+3679 2370+7561 4477+-6416 -5411+6346 9601+-1186 2606+-2160 -85+4914 9937+5478 -1099+2731 -7629+-9682 -5603+5100 9565+-4532 -852+-474 -9127+-9525 -5632+-4555 -2822+-1512 -334+-1036 -6426+-3298 5807+7245 1095+-2119 -5227+7165 4457+3038 7168+-2276 -6274+-4703 -8501+233 4585+6565 -1316+1534 5589+3215 -9294+6799 7744+5210 -951+-5888 -3436+-4753 8553+6847 -3573+393 7+-2695 2961+-3522 55+-917 2148+8302 6677+8139 -567+-4327 445+2208 7874+-12 -3149+-9608 -7758+-5380 -2763+-525 -8130+5319 -342+-1388 -2382+-3929 5117+-5062 -2765+-1499 6359+6772 7154+6001 3849+1494 8157+-3429 -9865+9539 -1658+-9591 3973+-9104 -8570+-781 6276+2145 -58+-830 -1025+-1899 -8197+9560 8929+-8662 -2946+-2138 7217+-1632 -6758+-8449 5682+6250 3199+8208 -776+-1786 -8620+5578 1169+-6656 4371+2094 1566+-8940 8169+-2574 3626+-5720 5352+4707 -9647+-9590 8173+-7678 -7530+3365 -6190+5772 -9666+1584 -8841+-649 5177+2309 -9334+8634 2887+8870 -8557+4091 9258+6835 -9140+-6575 7396+-6984 4917+-8679 2930+7032 -2170+-8741 -169+-6738 9998+1958 8244+-3357 -1306+5422 9524+2104 4135+3744 -383+-105 9847+5254 6432+-2323 -2764+-6779 8143+-4988 9144+3547 -8157+537 -9973+3764 3590+-4119 -4123+6478 4806+4817 1060+3239 3184+-9717 7182+5803 5618+-2730 2051+-3994 -5425+-6662 -820+2574 976+6231 8282+-5288 7501+5010 2461+2088 -153+-9608 -5639+-9153 9631+2217 5245+-8866 8835+-2034 9224+-4435 -3202+-7656 5804+9007 -362+-1112 -350+-6312 2262+8880 2511+1087 -2402+4741 -2292+-5433 -1470+-3285 -6773+-1861 8494+-4280 8908+2476 -3245+8685 1177+1967 3242+-2418 4819+-9117 -8928+-2237 -9969+-335 -1494+5554 5893+-5455 1484+631 5267+-5143 609+2718 -6652+8143 6584+-8740 441+1626 8107+5445 5640+-3224 -4647+5761 5084+-2826 7658+8808 -6834+4577 -5099+-815 -7552+-3839 -6661+8051 -8427+3273 -8183+8820 3092+-5138 217+1138 -9857+-1486 7731+5262 4203+-2367 -7350+2027 -2357+5077 8169+-5513 4571+-1382 -6537+667 -579+5703 9256+-9013 9969+7469 1270+-4968 3414+-1187 7112+1079 -6140+629 6129+4224 -106+6619 4517+1133 1778+-2742 -9274+-527 -8759+3767 3749+3030 3377+-6069 6223+-156 -1470+6916 901+7822 6637+-5006 4681+6211 -3440+759 3779+6438 -9415+9504 -8499+-3966 650+6648 -5147+8851 -318+3458 -7154+-2717 -255+985 -4531+-3222 5775+-4160 -5404+6390 8617+6655 7452+2462 -434+-3396 9591+-1103 -3538+-2062 9626+-1982 -8142+8247 -9831+1438 -254+100 9119+-8815 -6248+-7289 -9216+5528 2515+-8449 -4063+-6496 8811+-5287 2718+8665 3268+8687 5705+-6986 7875+524 1558+1409 -873+1729 846+-8903 -7781+-6733 -3371+-9148 5945+-378 3803+-5085 9094+-7847 -9360+8883 5240+6413 739+9069 1571+7638 -3499+-9732 -4809+6400 -3731+-8039 -4058+-9168 5096+8029 -9332+7955 5593+7265 -3146+90 1157+-6088 -4642+-69 -6592+21 -7674+5439 -1219+-6512 8963+-7250 7279+99 -1834+-3774 2908+4319 -3345+-607 -4498+566 -9140+-7199 246+-3079 -5097+2933 -4454+-7553 712+-8514 5191+2421 9279+9874 -1766+-5090 8130+-2946 4127+-4256 6841+8194 7165+-886 8260+-6155 4476+7086 4949+-8554 -1064+-4101 -6829+6940 -1856+3911 -7455+5108 1963+1932 1961+7417 5635+7366 -2132+7008 -3093+1068 -4531+-5216 5389+2036 7338+1884 8581+5453 -3016+3951 9427+5290 6438+-8333 9166+8321 -1186+6617 1164+-7412 -7389+5638 -3288+-6411 6125+-6056 -3182+8327 704+2615 -7583+4064 -7581+4825 787+1088 4555+-36 9410+1000+9695 -5162+363 1271+-7337 9563+4421 101+1497 276+-7367 7024+1453 -7234+1148 -8750+-4852 6638+-6378 8157+-5004 -2919+9238 -7013+9540 -3166+8870 -2867+5636 4701+-8023 7996+6750 -9665+3928 6815+-7832 4037+552 -3891+9367 7126+7163 9477+-7136 -9405+4434 -341+177 -2234+-7717 -750+8995 -517+-1116 -7577+-4042 8175+-9079 -2679+7267 -11+37 6839+6974 -952+4650 6919+6649 -8095+6200 -1349+-9484 7487+931 -4189+1192 -8454+2166 9986+-1841 -1473+1730 -2206+-4842 184+9427 -3367+-9393 -727+2524 8222+-6541 -6504+6416 8799+9958 -4533+-112 -4603+-9054 -1007+5580 -5976+8970 -4907+-5948 3280+689 8584+9330 -1633+-779 1896+-7167 2770+7986 6577+533 2532+-3264 -3497+-3198 -9020+-7641 1225+-4735 -1115+8926 3179+3856 5578+86 3956+-6235 3876+-6941 4713+3882 8917+1869 7830+2192 -8878+7135 9085+1414 6002+7765 -5911+7294 -755+3709 -2613+3262 8128+-8261 4172+-8949 -3287+-5686 7047+6077 -7049+-6606 6656+-2964 132+-9547 6038+-6336 -1552+-2155 1979+9492 4520+-1727 7087+5393 576+-5290 -5000+3951 -8410+-9816 -9232+5014 1174+3127 3420+6318 -647+-7739 -6036+518 -5461+8519 5566+-334 9102+-462 1869+-667 9346+3670 -3613+-5650 6311+-3500 -777+6624 -4175+6993 2947+5261 -8367+-1848 -633+-6023 -5246+6921 2138+983 -2260+9586 4035+-2907 9183+-6119 4771+7621 -8294+-7572 8241+-6047 4990+486 7807+-7074 1983+7434 403+5119 -8827+-229 -7809+8071 -1922+2980 9268+7739 -2625+6219 -7976+6324 5087+-4210 2314+2747 -8384+7476 -5206+2850 2684+-3269 -1648+5784 9312+7266 -3195+-7245 -9772+8339 5298+6256 -4413+466 8053+1766 -7819+-4769 2925+-1408 2968+-8808 -7218+1707 -5264+7216 -2728+-8633 -4641+3659 -545+-7300 7355+-4916 -6204+-7210 -4178+-7719 7269+4319 -6071+-8824 -7868+-9793 -299+6176 -725+8778 -8383+7730 848+9748 -2958+864 -1631+-5806 513+9270 9477+-9744 4175+-4226 -3578+-1655 -6983+-206 -2569+9365 2927+6399 1612+-1361 -4943+7811 -6975+-5117 29+9864 -6416+-681 5281+-3689 -3012+3899 -1792+7419 4555+-8272 4162+-6540 6540+8819 5395+-7283 -921+8783 8875+8498 -1007+9006 -5952+-5816 -4458+6850 2266+-3409 9165+2278 1708+-1407 -1300+6274 5124+-266 -9994+-4212 -2648+-896 290+6458 -8923+-8830 7280+-5774 9967+-2498 -9838+8510 1167+7597 -7728+-7235 -3327+1880 -655+1418 4356+-8920 -301+-8270 7743+-7023 7415+-6008 -7131+-9426 1950+526 -3258+-9523 -5255+-3298 7475+6149 -6680+7039 8537+-6676 4326+-411 -2625+4693 -7265+-9648 3311+-3888 -7417+6463 8820+1616 -5222+5941 -8541+-7691 -6071+640 8257+-5793 7795+-3982 8183+5297 -6969+-5731 -4177+881 -8492+-2851 -6376+-8779 -3144+-2291 1716+4133 6141+-8818 -8491+6128 -3406+-3313 -6620+2606 5140+3569 4875+-6913 -5010+-4599 2834+-7834 8248+6057 5999+7072 3801+-7321 1989+2715 1063+-2706 6758+-4020 -8230+6307 -9148+8598 8235+-9478 -4885+-3726 -5037+4572 -9256+1872 8008+-9356 1355+-2993 -9914+960 -8340+-8117 -1960+2983 -2160+457 -2762+-9734 -4579+5566 1038+-5833 -5949+-2040 636+-2036 3781+2410 79+-6724 -2320+4824 7440+5110 6776+4946 8358+6779 -4008+9233 4299+8976 -5227+-5982 -6675+-4245 -8116+9700 6228+-9275 1275+4101 2652+-5827 6841+3102 1040+3178 9036+4179 -1586+-6449 -153+-8901 3411+5550 -2515+1536 -7202+8309 6354+-2889 8791+6527 6882+-3753 4172+8157 -4658+-5600 -4522+9043 1656+-61 -4405+-436 4651+-581 -3039+-9884 7502+-8820 -9637+9853 -9228+1297 -9856+-6651 2777+-5878 -5309+6320 -7610+-6425 8643+9706 7150+-9569 -2561+-8785 -351+9989 -8919+-1705 1075+-4243 7949+8241 -7750+8511 3649+-7251 -3396+7191 5029+8607 6308+-6367 1915+-3699 -1255+-2804 9628+6348 9026+6372 -5005+7308 9439+-8782 -6164+3483 -8619+8645 4558+770 4681+8059 547+-7665 -9334+5219 8454+-4918 -8844+1736 -60+5570 -8620+-4574 8937+-642 -2227+1932 700+-1567 -8163+1221 -8500+7467 2197+3491 9979+5730 3437+6387 3443+-9233 4363+1275 3228+5807 889+-4689 3454+-1080 -1272+-4402 4324+2444 -1859+-6138 -6263+2347 2246+-1531 540+-4507 7096+9046 -6005+9650 -7857+8187 4294+-1471 -8290+1466 -1700+4554 4590+5992 9144+6038 -8270+-4098 -5596+-6675 5804+2416 -7504+7136 -2837+1855 -3474+-1620 -1594+-590 -6554+6672 7768+-7661 882+-8893 3330+532 669+900 -6613+6519 8024+1633 9930+6476 -8379+6563 9706+-8297 7793+-1669 1161+-9261 -965+4465 -119+-1480 -7853+6573 9404+-7410 9720+1876 -8189+-2244 -9191+-2019 4961+-3235 -4195+7916 -3047+-6437 9481+7154 -7718+8857 1540+4880 -7520+-1744 3048+-9861 -6160+3369 -5506+-2043 -6457+-6720 -8621+2602 9958+-2901 -1935+6554 -8907+7854 6335+-9163 -4081+-4502 1408+810 331+-6924 6204+-3388 4678+-5390 -3083+-9651 -5837+3833 -9274+-5061 -2411+4623 9671+8102 -6039+2872 -9926+-2086 1440+2474 -4395+-8724 -6471+2358 -4214+5502 4172+7444 -5961+7603 9644+166 -4278+2062 -3119+-5698 6684+-5864 5528+9060 -2674+-6253 -9537+585 550+5700 7710+-5813 3755+7908 -7091+9559 -9130+-1351 -3042+3546 -6717+8275 -4279+6269 411+-6296 2433+-1081 1383+5709 -755+-5878 1615+-1456 8652+1626 -8374+-6273 1958+-3979 -4134+-5663 -9360+-5988 4179+-910 3870+1494 5490+7599 -7391+8178 -3696+7680 188+-1854 735+-8920 1729+-3898 5896+4745 9609+4712 -8836+-1490 8617+-4550 9628+8779 6960+3463 5890+-4170 -7458+-2282 -9074+2851 6044+-6360 8052+-309 -8730+-7634 137+-8375 -8588+-3626 -5875+-1040 6844+7818 -5373+6393 -5177+-6021 -1644+4414 -1867+-5893 7469+-2779 -6219+-1971 -2460+280 9673+-9589 4142+1581 -4290+6993 6887+-416 7515+7206 2861+5212 -9222+4462 -2622+1355 1679+-8701 6250+-9649 5521+-5188 -2387+-3198 2806+-5871 4160+8014 4728+-3113 3483+3249 7506+-2331 4146+942 -1966+-6312 -9836+9366 -5628+-8241 8209+2317 7998+-365 1904+8080 -5104+-2678 -9225+6021 -5269+-4414 -1780+235 -2050+7845 -2066+1509 8128+8198 -293+-2620 9450+-5146 -467+-8740 -9309+2676 -5200+-1905 7850+7166 -4856+6177 841+-3530 -63+-9607 -1721+1558 770+-6250 1119+-1686 -6994+8841 1496+1066 -2948+7806 5512+-8040 -1455+-5508 9650+9368 3319+9722 8211+213 -3049+7380 4012+-273 4668+4648 3817+8726 -9907+-1689 -3682+1737 867+618 -4534+-3795 -5405+-2395 -6228+-8051 5043+-9713 2798+-8163 -2742+-6702 2584+2907 -2258+4204 3149+94 -6553+-5222 -8329+3844 -1224+-4766 -184+-8953 7250+-1411 7925+-9470 4804+9155 -3581+4557 3776+6640 4940+9903 3658+9437 7356+-1864 -4581+9720 4421+-1159 2086+-2967 -6513+3890 2637+8794 7435+3230 9872+66 1652+9157 3281+7850 663+-3888 1480+-9091 -6507+2503 -3+-9483 -9929+1203 9405+-3943 -780+7359 3445+-3489 4019+-1779 -3062+-6221 6171+-4673 5374+-1762 6764+1727 -2665+-7025 -8767+-5086 -1379+7148 -8113+1545 -5710+2668 -5080+371 5708+7243 255+7198 5370+3464 -4638+4599 9166+1175 -4131+-5725 -1757+3015 -9007+3719 4300+5706 -8405+-5577 3433+2030 -801+3225 8940+1915 4509+-2052 -269+-7559 6380+1765 3901+1630 8539+5235 -6305+7769 -6142+3140 747+-9396 3991+785 -9167+196 4086+4081 -3710+-7097 3245+-3865 6049+-7628 81+-8912 7497+4607 4235+5780 3724+4423 3125+4997 8587+4887 8029+-8815 6676+-2568 1860+3657 5132+6609 -3743+-9185 3917+-5648 2152+-4104 3248+-813 -2175+-8492 -7910+-1093 -9334+-4599 7608+3734 1599+-6717 -368+4533 -4673+6920 -9310+7830 -4436+-7950 -5804+-5720 5972+-9403 -1204+-6042 -5752+9089 -1058+3297 3832+-1699 1013+-4924 6581+2314 8995+6290 -2380+-7441 -635+2090 -5500+-5411 -453+4691 -2540+-1588 3742+8987 7972+-8335 5939+-917 589+-3147 838+6304 -9231+7554 -4594+1825 -9613+-7232 9898+2059 -6595+-2956 -4715+8302 -8500+-1727 -2885+-4628 -4890+4286 2035+-1964 8996+-4102 8050+7128 3875+876 -2772+-9073 -4547+7227 2401+6200 -4797+-5182 -8100+-9993 1281+164 7003+8248 6979+8839 8243+4851 -2860+-4482 -4795+-1499 4422+-5220 3487+-9379 5151+-853 9852+8069 -2718+-7982 -5358+-4933 -5599+-738 1858+9278 -3034+8969 -7777+-7238 -3299+6760 2369+-7228 -9720+7289 9634+-6088 4504+-9774 1821+-1318 7263+-4961 6714+-8805 -5176+-870 -5546+-2932 4594+8335 7387+-3167 2655+2704 -2560+-768 8447+-1004 5481+-2815 6431+-8617 7418+3474 631+6110 7715+3000 -9921+-177 -8192+-1736 8048+-5549 5987+8419 -2247+1102 -9949+6208 -9593+-159 -4580+8081 8284+-3732 1106+893 8420+-7372 2098+-16 138+7902 -3595+-4675 -4356+4344 -9283+-6290 6399+-6634 -8924+-7265 -3280+2479 2396+7635 -2908+4841 -9802+-8692 2935+-1097 -1581+-4563 -9324+-6390 -1600+8213 -8625+7319 -2089+9501 8426+345 4632+-3561 -6520+-5452 6865+-3647 2472+7396 5417+-8736 7669+-9479 -2726+4952 -1797+-5375 4022+-4080 -6993+8526 2154+8976 9183+-4580 5838+-6008 1559+-9689 -7024+-3418 8581+6277 -6417+-4093 -2891+8887 6085+212 -9190+-3817 140+6953 2902+316 4629+-9373 -3807+2937 3410+-2892 9979+-3167 4813+-2263 8090+4752 8328+7095 -3504+-1976 2648+-4230 268+-9463 -1498+1757 5844+9096 -5337+7398 -7704+2665 9978+-1010 -9906+3026 6216+1154 2759+-8648 -9737+1985 8092+-833 891+4187 -8142+32 -3520+-1459 -8258+-8652 4541+-3284 -8020+7397 6533+-773 -6762+7646 9893+8291 -1135+-6697 4357+-2498 -5713+5824 -4584+6695 -8260+-1721 5742+8388 -5975+-2444 3227+4699 4353+-3418 -5559+-759 9019+643 6928+-2294 6079+-4360 -3722+7406 4176+-3217 -6164+7058 -715+4565 -6193+8685 -6788+-9629 -8641+-1468 -5116+6155 5313+-7369 9451+-6749 -8514+-6214 -6240+-6247 5179+2764 -8676+-560 -2595+1098 7681+8221 -385+9902 -3935+3854 -5367+-9494 682+-1909 -8245+6714 -1986+-484 8925+7463 6574+6825 2073+-9757 -9645+-3822 -42+7057 -5748+-7146 -6627+9939 8190+-4177 -5504+-917 -9870+3018 1836+3635 -6572+7853 9634+8986 -3759+-9493 -99+5750 -7646+1351 -8440+-4550 5434+-8336 -6907+9131 378+-1795 4150+-5589 9948+6027 -5200+-1984 -8244+-6918 -7588+3645 -2849+-364 -4126+-6798 -9149+-8058 4244+-4129 -4909+689 3379+-3845 6000+-7162 7818+6863 -7857+-8339 6208+-5612 -7895+8680 -3901+-4625 7571+-6234 6894+-1140 8013+-309 -1041+2279 9836+-7355 7059+6306 5340+3996 9617+-490 777+9626 -4281+-3394 -6566+1315 5323+5073 -8482+-2018 3910+-6902 -1048+-8800 -9977+-587 -3712+-6134 6556+-40 3488+-4549 -3777+-319 -6957+-9791 -5603+-302 6679+8234 773+3573 -2679+-815 2547+1809 -6922+-6041 -8046+-7592 -1844+5212 -1242+7082 8371+-1830 3890+-5191 189+4311 2060+-2629 -2779+-4217 739+1984 -1505+-5587 -3053+7216 -3972+4099 4980+9201 -5172+6968 -2664+-6978 -3795+-1990 4313+-2736 -7253+-5160 1461+-4342 6407+-4358 -6362+6102 -2643+7715 -4090+-2395 1528+1619 -1058+9385 -3546+8260 -9996+-5679 -1609+5074 205+-1281 -4172+413 -402+5848 8711+-9685 -4079+7503 4626+1936 -7229+9308 6856+4293 8887+-8381 3980+3409 6549+757 -4043+-2774 6348+-7826 7880+7500 -6804+4220 -4518+-2608 3397+7593 -782+-6904 -8030+-5343 -7144+245 -9841+-8962 -9859+3569 -5356+-8699 5026+2670 -5443+2215 -8054+2740 6908+6718 -8662+9888 -2846+9749 4562+3487 -9059+722 7580+8337 -412+1384 7786+-2965 4429+998 4282+-107 -2103+-6649 5992+-2542 9930+7748 -621+2540 7558+5744 830+-4621 5631+-9133 -5372+-6568 -5065+-8540 5660+-9778 -5495+5332 -8138+-5317 -3228+-7006 1720+6894 9802+-247 -9177+-3661 -5461+-8186 6348+-6839 5464+5955 1773+1619 4529+-9457 -8364+-3677 8626+-6776 389+-3667 -9308+-1701 7402+-3666 6956+6286 -6249+-7059 614+773 5335+7154 8033+9889 8585+3318 -8248+3501 -2652+-4999 -9341+2593 -6435+-9263 9953+1182 3968+-2752 -438+-6770 6514+-67 6984+-8739 6560+2002 -4992+3592 7853+-833 -4815+-4280 -3134+-962 -8079+-774 -8806+4753 6325+-9107 3565+-59 5432+912 -6102+321 8707+-5366 -479+-7748 -7540+1760 5501+-8940 -4233+8940 -1417+1000+2862 -4674+-4473 -986+-4498 8611+5993 -7379+2384 -6332+-9316 -9074+-9056 6901+7617 -8508+-3259 7630+-3804 -4964+-267 9512+955 -1331+-1346 -2230+-1627 1667+6060 734+1624 3394+8587 -1461+-4843 -5933+-695 -2847+5062 -9813+5829 5645+4313 -3314+-3728 5507+2816 -7737+1503 3117+9610 6394+1553 -2193+-8104 -609+-9855 -7078+1431 155+-9031 1232+9221 -6132+-6114 1627+-9626 8304+4045 -8644+7862 1496+1990 9294+-8601 -543+-9152 -9601+-2347 4700+-5088 -4557+4481 265+-7431 -8459+-3817 -477+-467 9724+4296 -8378+-6066 9660+-581 9957+2766 779+601 704+-6362 8348+-2353 -2192+-9859 -882+-3316 -4594+8365 1904+-806 2768+7516 -8673+-5303 -9248+5799 -6773+-7352 -3967+-6054 1900+3840 1329+2167 -2840+-1737 9614+-9955 7756+744 8618+-9830 3419+6691 3135+2217 7135+2277 4015+6079 -1004+-7811 7038+8390 -4215+5173 5339+-5597 6209+-3445 5474+6418 -56+-3499 -9266+-6851 -9852+1038 4492+6503 9421+-719 -1451+8940 2808+2293 -9488+-8184 -4629+-9671 5985+-1809 -6138+-8773 -1311+6651 8745+-977 5132+-6331 -4633+5847 -3120+5317 -4717+8954 -5752+-6269 3939+-6092 3140+3495 2036+-5415 -9979+3499 5050+6066 -8756+-2169 -8458+-7104 -9806+-3273 -7306+7310 6968+7406 -5866+-5455 6832+1528 -5076+7002 2236+8533 2546+-4337 -8809+-4523 -5822+-1316 2464+4231 2204+-1981 -3460+-7986 -1820+-6902 6471+5840 -5718+-7860 8824+-7962 -9836+-9628 504+-1539 -5371+-6769 -2049+8888 1819+-8247 -3401+9899 -7503+3938 -1379+4331 4161+2241 -7483+8100 -9125+-9118 4460+-2501 -9687+71 6439+-6696 -8910+-3727 6786+-5753 8258+-2488 611+-3970 9847+6263 -5981+-5149 -3310+-5462 -8734+-2117 -3457+1436 3945+-5779 -2935+2198 6305+3281 4431+6105 -9318+-5061 3815+-9582 -7139+9974 80+-628 -6755+-2189 -2668+-5556 -6308+-7381 -1100+-860 3655+-3950 -9876+-8461 4286+3763 6629+-8313 -7085+753 -8546+2951 -9760+-8461 4579+4023 7021+-9240 -1443+7750 -3010+-2287 4190+-7348 -3025+-3053 5155+9159 3488+-3762 1843+5178 -2578+-4294 -5959+6573 5988+2876 4231+2775 -7571+9007 7102+-405 5355+3999 -4090+8597 2199+-3336 3328+-6613 -6095+1520 -8972+-6217 -7327+-2487 -7137+233 -5277+523 2263+7342 -6533+-1146 -3645+-9905 1456+4215 2478+1092 3076+-2609 -9667+5309 9782+-4342 5369+8367 6395+-7924 9898+-8577 5203+-5020 4850+4499 5954+-9926 2156+2585 -2286+-4018 -1740+-3581 820+2940 7732+-1603 1548+-6121 -1843+-2092 -4952+-2990 2234+-9944 -7966+-5752 -383+-6668 -699+-1129 677+-5000 5779+2680 3894+1647 1371+2106 -696+9020 7784+-782 7512+-2475 -7830+-9530 -1521+-3564 -1390+-391 4508+-8323 -1071+3920 -7708+-6189 -4310+-5846 -14+-7032 -393+2590 6363+3804 1401+-6301 -5995+-6002 5+-4385 7293+-8797 -9268+5077 1700+-8548 2523+-2382 -2536+4354 -7586+-8075 9032+2123 5594+4240 3603+9975 -9908+1841 -904+1985 3548+7813 -4976+4654 5990+-4157 234+7227 2889+2857 3000+3580 -4724+-4514 2498+3935 -2796+1084 -798+-1140 8891+-1120 9321+-2113 -1599+-28 -9302+-465 7383+-9100 -7667+2017 -252+-3030 3134+-3690 -9932+2279 -5964+-3475 3353+-5001 2696+6249 9009+879 -1580+749 6416+-3136 -1274+-2325 7001+222 -5147+-1889 -6572+-5626 8972+-1924 -8682+6312 -6441+2770 -4829+-5003 4466+-8532 3015+5721 1759+-9923 5733+-8819 995+3349 -4698+-5630 -1376+3072 6493+9653 3099+6861 -3579+7749 1861+-3084 -5339+-8816 -9562+8764 -6747+-7866 -3851+-7999 -7625+-8376 -7905+-5909 -6863+6044 3307+-3624 7772+9944 5813+2787 8269+-3590 3248+9925 -6810+-1371 6881+7254 -3955+-3042 2195+-1086 8764+2959 230+-1027 -5145+-8157 -4230+-3546 2282+-559 -6938+7149 998+-6516 -17+-8539 -2475+3085 -7600+-9503 4061+9058 6068+-7915 8957+-2518 -7644+4598 -8730+6012 -2645+-7334 6145+9192 -199+-256 2908+-3523 8346+1779 8885+-4899 -2709+7772 5833+-6068 2669+9258 4064+-7933 7723+-1780 -1726+3724 -4422+-5167 4015+2465 -3017+1294 9976+848 -2612+-3747 651+7942 -3503+-6176 9204+-2371 -5463+-4552 3905+-1048 -4960+-5292 259+-4896 1709+5184 2119+12 7428+5708 7668+766 6333+-1630 -4477+7005 -9289+464 2416+-6128 1878+286 9441+8784 -7619+-3865 -689+3315 7499+7211 -5604+948 3811+6323 -7898+-443 3539+-7989 2492+-4929 -9126+-9606 -4846+4476 -3443+-5044 115+-8135 -4652+7830 5340+5427 3362+-6147 2508+-9818 -2385+6489 -2875+4429 -8613+-3745 5841+-4763 1620+-327 -3390+456 -8105+-8633 -9936+8151 6848+2122 -4527+6189 3529+-5254 2191+-4408 6013+8426 -7579+803 2750+-1892 -7582+2799 7661+1340 1421+8868 -2732+-5573 5008+8106 -9133+7269 549+-5866 -9885+-8943 -8366+8354 -9324+7998 2942+3672 3835+8665 -5839+393 -2510+-5303 5722+-9503 6225+-4223 995+-2041 3248+1446 6003+1912 3839+398 3876+-2712 -2275+-1148 1110+-9418 -1363+-4044 5848+5281 -9036+3348 -2949+5785 1215+-7489 5992+-5684 -6588+-8383 -9929+-5112 1998+-7910 -4766+2801 276+5105 -3985+-4323 -9588+2296 33+-8493 -6028+5411 -6923+-4061 9956+5460 -2398+1718 -6557+-8909 2299+-2784 -2647+-3227 -6338+-1047 -1019+2077 9644+3687 -9259+2018 6519+713 3822+2240 -5911+40 -7562+-7044 -7570+4883 6250+-7374 3258+-1277 6215+516 994+617 7006+1165 -7783+-3640 -7487+3420 5243+5276 -5548+5039 8113+-4753 -4238+6369 -7834+2993 -8844+-3437 9936+1633 3838+-4491 -7332+7893 8240+-810 -3231+-7214 -630+-2212 7555+5038 3113+6312 -873+4016 -1439+2455 9322+-6576 -1640+8295 2246+4178 9294+-5434 5740+-8299 2970+4868 -5989+-4969 2832+-7531 525+-5631 -226+-2266 6917+9118 6667+-4793 6206+-2873 3472+-5143 862+2598 3953+-1258 -6795+-8653 -9829+-661 -3124+-7642 -2240+4040 -8647+-6227 -8366+6250 4786+-2860 -2875+-7742 -5568+1187 9856+-2746 2944+-6052 -48+-3795 4967+3685 -5838+-4655 1681+-5336 6259+-4853 -2706+-3217 -5633+-1431 -1640+5459 -5356+-7664 -3073+6326 6406+5488 -5923+-8818 2359+-8830 -580+-1675 3201+6518 2697+-2738 -6565+6721 -4827+1569 -8418+-4266 6839+9873 -163+2690 5291+2231 5148+-865 5647+-1637 1551+-7551 -9141+1873 -129+-8772 751+-3145 -8414+1748 5287+-4232 5318+8722 1883+3503 -7792+3717 5231+2007 -8646+-3330 -6615+6385 -2510+-9824 4947+-1494 -1650+-73 -3000+1040 4542+7 7069+7777 5411+-7991 9000+5581 -6909+5454 -3522+-8637 -5283+-7636 5083+9644 -2937+6340 9748+6353 -2101+-4614 7275+-7905 4924+-3390 -9682+-3890 -6405+-2811 385+-4526 8455+-9569 2735+-6487 6887+6379 -292+6736 5718+5541 -3112+-1232 -3891+9447 -5711+-2901 7898+-8779 1660+1300 8057+-9429 -5543+-2887 3052+-8253 5706+3096 -5006+7378 -6706+-7008 10000+-5540 -2774+1218 -474+-3397 1401+3033 -2304+-1461 406+-7902 -1889+4762 2995+-7932 3583+9595 6314+-3340 -7143+-69 7300+-2222 7037+-3704 5718+-984 -5346+9702 -6526+-37 8652+-1597 -3051+977 -5698+4675 -1925+-2162 -845+-2480 -5982+-2875 1172+5895 -7950+6713 -2903+8246 -534+-9484 8848+2952 9344+-9869 -81+9553 -7690+409 7516+6105 -5071+-8409 -3753+-6 4110+4716 5717+-3094 8621+7651 -2980+9386 -8437+5881 1374+-3014 4886+-9601 5463+-5433 -5422+3213 9339+-6976 -6435+-2526 9928+4914 8593+-6439 2967+3606 7442+1205 -4790+-450 7145+-8575 9251+8199 8813+-2126 8588+-3052 -3566+335 -2035+3511 2359+573 -8322+-9972 -2864+-5216 -9931+2109 -1532+3793 4029+6888 8548+6195 -3756+1990 1004+-7948 -2477+-4362 247+2815 -5926+8670 3074+1690 -4505+-2575 -9387+-274 -4364+-2714 -6658+7866 -3648+681 3942+2694 4119+6181 -8072+9736 4548+3450 9207+3946 643+-9324 6857+-1994 -9342+-4907 3003+9802 6637+-4213 7355+-8967 -7099+-1247 -1995+2717 -3328+-9442 8318+-2428 -3571+7067 7466+-474 -1863+-6546 7434+-4401 -9661+9634 855+1721 1790+-256 7403+8359 633+9240 5526+5741 -9373+-7166 4459+2666 4628+3658 4930+2488 8375+-2395 -5584+2443 9871+9806 -4188+-6181 8746+-3802 7592+-1489 6435+-5020 8743+-1353 -6030+-1900 1544+828 9859+-7195 -4418+-6016 -5749+1722 -418+-1603 -5435+-2887 3660+-1239 7279+9137 2047+7799 4570+7898 -6673+-9013 -5273+-3181 -7277+-7244 -4203+3422 -6830+1187 -75+8402 -414+3008 -9057+1845 5017+2483 2382+-8510 4905+7624 8279+1048 -9495+-3153 -3842+-3616 -4633+692 7154+5125 -5757+-9839 6229+386 -7846+2618 5548+1399 -9549+2391 -4384+-3980 224+-1538 -5801+9145 5517+-5276 2567+-7176 4022+3124 -638+-1683 4385+34 -7789+-3880 7314+-7430 -6407+217 -3678+-6713 7839+1432 5582+-9201 -1894+7814 -5801+4998 1623+2782 -5869+1015 -9268+-3766 -5832+4198 5082+316 1529+5375 1403+-9406 -7116+4599 -5623+9221 7017+-1491 -1842+4257 -1681+3490 8993+-1943 -402+-8840 8162+-3456 -8961+-1955 8055+-1493 -3015+1569 -4760+-1489 -5056+9987 9498+1993 5001+1688 2869+-3004 1972+-4411 -4708+8244 3081+6917 -6461+6566 3795+3701 -9175+8047 -5817+734 -4792+-7546 2212+-1558 -1770+-6592 -4753+-1715 -9081+-1366 -9865+-5072 437+-3522 5068+4845 2815+-9107 -2083+502 -2917+-8274 1192+3063 -26+2308 9959+-1394 -197+-1467 234+7315 -806+-9872 -100+1911 -7+-7981 7203+629 5098+5243 -593+-9853 9331+-4010 -624+818 3862+-7838 965+1731 9090+-693 5780+5753 1729+6403 4122+8462 7688+-7450 3753+-6317 4492+3479 1327+8642 2670+-2716 -2714+-5994 -88+3317 -7608+1838 -9146+-7299 3617+-2784 725+-1731 8263+914 9092+-1052 2472+-3975 8027+-8022 -2122+-4273 -7199+-5601 -4923+7248 5297+-4482 -4031+-523 9115+-3643 9789+-247 -6893+-2455 9690+-1342 -82+1651 -9861+9503 -8830+7978 -2964+9463 -8327+4661 1946+6910 -1574+558 -2926+-8775 -7572+-9958 4326+-1474 -4176+-8361 -9554+-1922 2005+-3313 -7069+-5218 2419+-4145 -1577+2434 1552+-6444 9831+9994 2641+-7411 -7431+-8306 5528+855 7137+-2105 -1675+143 616+-8034 -6339+6069 6336+8942 -6557+-6321 8358+-7927 2622+636 -9354+-5662 1185+4016 2772+-39 -7305+7291 8469+2590 -1229+-3144 -2384+26 -7660+-9930 -9349+-5548 9623+-9932 -9787+-7125 5573+7702 7680+5792 8618+-1711 -1078+3173 -3177+239 3056+-8696 8898+-8275 8600+-8343 -6767+7402 8036+252 8347+-17 4004+-6590 -5450+7487 -3195+-7537 6905+4418 -4191+7401 -5732+6394 2108+-1260 -806+-203 8450+2927 4997+-4236 2878+-6082 -5375+3055 9852+-1371 9600+-5693 8010+-7953 9393+-4519 4988+-5492 -6964+-7464 4447+461 -9874+-4879 8076+8291 -3929+9274 6628+-2301 -4227+-9229 3005+-7285 -8204+-2519 5980+9651 -3417+-9722 -3939+-7664 1692+6133 -5484+-4392 4671+-9610 -7703+8250 -438+-6609 5195+-800 -573+-3969 -7016+-3753 -9596+-3532 -9016+-1100 2028+9134 -1787+-7448 -4724+-1625 1653+-3405 7486+-2332 -3651+-6536 -1082+4851 -9284+-8225 -2051+-8348 -7276+8053 -2389+-42 -9787+-2426 -184+-1947 7812+-8830 4334+7025 -5289+-8379 -8066+-5876 6596+5979 -7383+-7682 -7370+-624 4279+7595 -2781+-7027 5825+1478 8484+3967 4888+-99 4998+-7609 4237+3701 4523+348 -7227+8534 -4282+-1025 -6031+-3919 -4039+2147 4391+2423 -8590+6431 2463+-6205 6869+876 7595+-3438 -6249+6474 -1023+8949 9930+4449 -5476+-2410 -5864+9942 -363+-7101 4535+-1409 6151+9852 -6922+6210 -7273+4990 2017+-1701 -8713+-957 9959+2200 -8387+9955 6061+9438 4700+1285 -3471+6845 773+-2029 -5314+6739 -8270+-7739 -1344+2576 -2546+-6747 -1795+7635 -1500+43 -8123+-7270 5533+873 5737+-2782 -3710+4778 -6640+-3793 -1681+-2232 9926+-4455 -9834+1537 7369+5555 8063+4717 9745+-4436 1058+-1306 3524+4697 -4911+4624 770+-4049 -2283+8518 -1834+4036 -2256+246 -5510+5882 2836+7211 134+-2432 5464+1123 -1100+-2794 1264+5006 -6121+-1421 -7391+-623 7306+151 4059+-9941 7365+-1466 -2079+-1372 1548+-7769 7602+-4011 -4343+-7043 8641+896 -7507+-649 -3406+-7252 -7801+8258 -9624+-4994 3373+2893 5840+-6777 2955+-3631 -7635+-5607 -1054+1193 1663+-9413 -6025+-7223 -425+7884 -3440+371 -2734+4375 -8336+9113 -2108+3082 8852+1000+9504 -2327+-6783 7605+5145 2655+7344 -3956+-3298 -8188+-3661 -1942+530 7531+-2967 -3794+-8185 5593+-2191 -5901+5867 -8994+-5766 4751+5353 4891+195 8736+8195 6654+-3653 8955+7146 6684+-220 -3841+-8187 4653+7937 -4169+100 -6377+3954 8221+339 9432+6548 7864+7684 -7271+-9642 -3818+-730 2688+-7020 -5101+-8824 -4905+5058 6081+-7233 7415+8405 -915+188 5853+-7544 6285+3073 -1685+-3786 -4684+4711 -2815+5341 -9555+4724 8162+-6892 -6832+4293 5743+-449 7338+4966 2410+-7745 9742+-5434 9692+-4213 -1588+-6935 -354+-1890 -5764+5253 6621+9633 -2211+-9012 -4441+227 4748+5537 5937+-9794 1995+8921 8065+8492 -12+4229 -1851+-8585 6183+5775 -2607+-9376 -106+736 4180+-6144 4932+-9979 9360+-5155 -5464+6762 9811+2744 6156+6113 -2288+3176 6918+3726 1784+9888 -6480+-1500 8409+-5407 8235+594 -8324+-6689 -6580+3092 -6171+-9252 1059+-8363 -4901+-7622 5481+-7304 -7848+-658 5041+-8746 -9277+-3671 5662+6547 4954+2986 -2310+9381 6000+8522 -2816+1102 -7335+-4391 -9693+104 8573+-5097 -2568+6002 -2814+8315 6934+924 307+-5378 274+-9815 -4728+-6310 1048+-368 -1441+-388 -6364+8930 8158+1037 8196+-797 -5476+-6818 -9392+-3784 -5617+1038 -7139+-4551 -6273+2470 8871+8273 9611+-9802 -1406+-5498 -4530+8470 -5796+8033 1+-6768 -9163+-7610 -9358+-3422 2622+-1040 -215+5208 -3033+-9487 9723+5593 9253+5180 7580+-3820 -7066+-1825 4614+-1554 7823+1636 5312+1141 -397+-1017 9260+7463 1239+7585 -3770+4319 1994+1706 -8235+1057 6240+-594 -4558+4967 -622+2426 -5727+-3873 7232+-1545 1484+9931 -7631+-7717 542+5554 5542+7308 6360+-6763 3596+5097 -1127+-1928 -5252+8396 417+1054 -741+4493 -1518+-6291 3893+9338 8440+5339 -2918+-2885 -992+-1273 7791+6580 -7729+-6574 3260+5414 4063+3000 -2920+-9092 -9637+-398 1378+9847 4645+8141 -8080+-7813 -2015+-2707 3507+-276 1555+779 -1+-2358 3731+-6228 -2624+-8528 -4406+5560 -2132+5238 -4389+2780 -7656+2680 -2618+-5344 -8092+-2252 -5265+5270 8923+8901 7438+2918 7083+-4814 -5227+8066 -6535+-8249 1907+-1581 -9735+3709 -8428+6705 -5888+8547 9927+-3660 8290+-6325 -1073+-873 -165+-245 -4058+-3697 -1531+-2027 -3113+-8968 9211+-3042 -3781+1993 -82+-1632 -9981+7108 3408+4531 7331+-3995 -3954+-6171 7673+-4552 -4623+2082 -6775+-9243 -8240+9823 8948+-6204 -644+7389 6420+9121 7975+3227 -853+3150 -1817+7854 -14+2069 -9110+9119 -9858+-4684 9186+6870 -8839+7429 7740+5406 -6262+-8893 9432+-3228 6662+8512 -7520+2168 1331+-1990 2289+864 -7837+6851 -267+-1467 -3133+9762 -9348+6108 6002+2870 -2064+6437 -9448+4940 -4192+2478 -9594+-7863 4204+1819 -4143+-6059 -3035+9272 6153+-9136 6691+-914 7412+-1113 -8353+-1434 -963+7166 1064+4694 3045+3684 8568+-2328 -9215+466 -9569+657 7721+-7991 -1122+-8015 146+5481 -5209+-3174 -6999+-2056 4594+1453 7826+6615 3797+-9001 9543+3449 6649+1105 -88+-2491 -1719+-2737 6829+9578 -9411+4239 9471+4901 -1404+5978 -1912+7389 5036+-9574 -6540+8494 3195+6348 1629+-3307 -747+15 9672+-6520 5827+-5851 -5977+-5092 -1855+-5274 -9226+-9995 6266+-4233 8078+219 2588+9768 5266+9150 1653+-3010 2497+-1551 376+-4692 -3221+-505 -9870+-7514 -6395+-127 8727+-6856 -2469+-7132 -6912+-8360 9442+1315 -3644+8639 9732+8609 -972+-7426 -7091+-8072 9781+-2825 -540+3766 -7714+-6548 9262+4406 -4864+-9028 -2638+-7118 -7841+2308 -3259+-8402 3392+6617 -3502+8588 -2148+7605 -8655+-9364 2004+-2808 2365+-5677 -8184+2197 3103+-4129 -5312+-7567 880+1860 9304+-881 -9698+-8929 -6895+5971 -4074+-8468 2725+-154 8865+749 4669+1959 6715+3705 -2614+-9996 -1347+-7949 -5365+-6531 -2281+-8169 -4465+8577 8057+6140 -5357+756 -8364+4380 -3393+-7934 1549+230 2152+-4695 5563+-4662 7272+-3289 1540+-2106 8433+5079 -6292+-7462 7769+-8726 8666+5657 8316+-9349 1530+3778 -9212+-5548 1153+-5476 -4846+9500 -261+6411 -2711+6063 9700+-6762 -5735+9 -4721+9667 3767+3537 8887+7138 5840+8919 -3913+-5362 -9530+-6844 -247+-634 -3579+-3083 6753+-5013 -6867+4107 9146+-3014 -1981+3487 9768+7574 6696+-5261 151+-8112 -4592+8769 887+-8376 -4086+-5461 628+4382 5454+-8133 3104+-3897 2040+5580 -2323+-7726 -8156+-9232 9431+-2212 -2643+4692 -1226+7360 -7288+-7168 -3894+8393 -1710+6984 -3224+-4535 -6003+-1680 5055+-3004 6540+-143 7648+2979 3845+5711 -9339+54 -2254+-4127 32+5704 8610+-7829 -3871+6993 -3101+2170 -4463+-5638 -2247+4618 -4475+-8341 -5274+-8208 5259+-4387 5164+7552 5014+-7882 5536+-9667 148+2925 4310+-3598 -5745+5880 -8926+6857 6216+-1838 8619+4523 -8989+-7885 8206+6790 6294+-5993 -9882+-7269 -7694+2298 -9482+9893 7610+-7177 6250+9547 3224+-4144 -272+-2455 -3618+3558 4201+1452 2650+9742 -1580+8818 -6939+-7418 -760+3680 -4838+558 -4422+-5869 -9767+-9897 7873+8234 5653+-1480 6850+3756 2431+6632 -325+-4655 -4556+-93 9009+-598 9757+-2115 -979+2838 9637+-9638 9402+-5049 4200+7882 -4815+-5775 -9410+4767 -3417+-9910 -6411+-5956 4580+-3596 -2564+2919 -9402+-6534 8902+8256 8336+-2615 3015+-5117 -2743+9322 5797+-1733 -6697+5418 -54+3244 8595+3060 -944+-5877 -3706+-3504 3786+-3547 -8693+-2662 -1833+-3770 -9496+3072 -241+-7264 1750+-1491 -4358+-4083 -226+-1078 -5007+663 -6909+1523 -1253+2858 1887+-1357 329+-1054 -1989+-624 1098+-1642 -7912+1182 -9714+-66 -8599+6905 4148+-7663 3098+2603 3588+-2745 7436+-3082 -3308+1992 -8794+6838 3877+-7489 4677+8611 8214+-5354 5710+841 -9234+-4628 7315+-9651 6064+-6436 -1443+656 1236+-9467 4882+-5580 -7519+-2532 7414+-1298 -5723+-1858 -6221+-4194 -7237+-3823 5645+-2466 3463+-453 -3932+-4612 8844+-8568 -7933+3339 -4493+6379 1008+6728 3589+4861 -9143+5732 -4881+3665 8622+1504 -9574+-315 5984+-3700 -7707+-9589 -2264+9015 7382+5502 -1394+-2663 -8578+-1192 3909+9929 8408+1982 -1584+-7815 1434+1611 -8681+-1233 -7120+-5293 -7292+-9484 3276+4354 -225+9110 3796+5021 6736+-3510 7767+-1750 7723+-7718 6035+-3576 3101+4170 3578+-786 -6484+5184 -9766+9933 -8085+-2103 -5959+-6899 -7425+-8014 5505+1429 8125+-1511 -6864+-9332 3816+-9207 -4572+-5116 3919+5769 6344+-7740 -8799+4283 8191+9732 6755+-8452 2718+5871 1606+-623 -1476+8798 -8709+-6809 -2676+1384 -9074+-2090 -9584+8927 3736+5409 5852+-2538 -1497+-1931 1646+7600 -8372+4193 -7570+-9728 -3680+6803 -5378+-8065 -8034+6432 -3663+3361 -7925+7071 -376+3026 3740+-6516 6450+1846 8422+-5142 -6171+-323 -6133+-3343 6088+-8806 -1483+8025 5688+-7741 -3579+4657 5061+6086 -88+9815 244+-9672 5774+-4941 2475+-7542 7506+4550 -4525+-6347 -5344+7629 9152+-4280 263+-7430 7251+-3487 -2630+-7311 -3339+-5080 -2698+-3304 -6612+-6409 -1273+625 -1173+-2839 -5019+7858 -5239+1907 -5066+1693 4029+-5610 5523+4561 2869+-3111 -3170+-9987 3097+5838 -7530+-9264 9365+7056 4720+-7534 8302+4964 -3320+9155 -2867+-872 1932+7777 7627+-6240 8735+7153 -8845+-8227 3840+-9460 9673+2601 5550+-8003 8568+-1276 8425+9001 -8397+-1545 8179+6290 5176+3547 7895+1938 8905+-9546 2116+5460 4040+2929 2830+4769 -9611+-2403 -2318+5988 -9773+-519 8951+799 -1501+-1505 -6880+-2170 -6133+-9671 -3597+8042 3836+-2517 1419+-1581 5807+-6097 -3702+861 294+-2101 3994+-5277 403+-4549 8482+7962 4508+-5206 805+-3672 6911+-8475 -232+3988 4167+9552 -4795+7434 8247+-3613 -8218+6606 3802+-8295 -6416+-9068 -324+5269 9727+-2404 2753+6271 3155+5845 -6199+-5945 -8361+3025 1424+-2585 -4710+-4326 -2091+-1692 -7417+3834 1566+8233 -1732+6118 -1273+2891 -1902+-9076 -3901+-9162 1489+-1275 -4929+-5586 1883+-2926 7437+4415 -34+3489 -1460+-8393 7003+-1182 7406+-9778 -4109+-6970 5495+5743 -8246+159 8701+4543 -9850+7952 -6918+6531 -1278+-4090 -2225+3349 6012+9950 -6244+3708 9520+-2241 5722+3945 9627+-4717 -5980+-685 2991+9962 7819+4825 7369+3541 -8124+3589 -7745+8387 3007+-5400 -1804+-2744 6689+-1259 5159+9477 -6882+1797 -699+-1198 6589+1103 6748+8334 932+1846 3324+1893 -5653+1075 -1275+2524 -4324+-4169 -5002+5897 -2862+2676 632+-4479 -7894+-1727 -1340+-1969 -2603+6708 -432+863 -1570+7696 1958+-9407 9735+-1607 990+277 2894+4559 -5093+6822 -9900+3171 -5645+-6699 1282+8703 5729+3683 598+-9610 5069+8979 9867+6377 2475+-3421 3405+-3032 -5956+3487 4152+7216 4002+-6208 -4352+2957 -2907+-6634 3038+3002 -4124+1284 9897+1047 -3150+7994 -4442+-7858 5373+3369 1642+433 -9632+-4763 8907+8067 -3198+5962 -8623+8063 -5735+3698 -8450+-8705 -4019+-9750 -6378+8609 6386+3311 2496+-5745 111+-5678 -5556+4347 -2350+-187 -1749+-9376 3042+3806 -1825+-6476 4869+2295 -7711+9493 -768+-1296 -3793+9555 6996+-3124 7066+-4303 9453+428 -2082+-9774 9463+3309 -451+3710 -836+7233 -5475+6248 -1039+3564 -7071+-6522 3588+-8898 5865+195 -3869+-5903 3355+7806 -266+-2379 -6649+5308 1523+-2876 -4213+3783 -1544+-9978 -8369+8275 -1199+9400 8878+-3083 401+3149 -5284+-5370 1175+-789 -3211+-6531 -1995+858 674+-4543 -715+1592 9580+696 -594+-2168 -5297+5788 -3348+-1493 -6009+-9991 -9833+7564 5393+-5271 2765+7938 -1435+-9486 -6895+2525 -2192+-331 -7145+12 4543+-78 2272+-9095 9279+-2021 -8067+-3658 -5714+2985 9264+-7113 2411+-6577 -4245+-5849 2258+3343 -7092+7004 9108+-1606 -459+-7869 -1348+677 -631+4978 4203+-2019 -8381+8652 -8189+-1433 -3472+-9081 -8908+6514 2796+2883 -3362+-1772 -5049+-568 1482+6463 -9399+-2087 -800+-1245 -2094+5994 -7417+9720 3994+-5741 -617+448 4942+-712 -9998+-4558 -5606+6739 -4399+-2938 7346+-5059 -660+-5889 8733+4070 7685+2555 -5985+-134 -5459+-3499 634+4996 -145+5133 -6105+-2268 -994+7778 9453+5070 2846+7683 -5301+-568 9227+687 -9619+1328 -9974+-4993 8114+4374 -5295+-7915 2818+6108 1999+57 8248+4630 -5319+-4492 3440+1273 -4566+1585 5905+-487 -6636+-5524 5483+-6673 -3362+5017 2041+-9734 -4382+-1702 5131+1326 -8363+-4211 3521+1003 -7036+1799 -3067+-9231 2983+-8820 7541+6328 7285+-8095 -922+2847 2206+6500 -9586+191 -6001+5181 -1767+8607 4668+3931 -6538+589 6754+-3847 7053+-2483 404+-8606 9638+-356 -7158+8832 -8214+3523 1928+-3297 -6458+-2370 -1446+5640 -2272+-406 -740+-7638 9010+8082 4152+3476 8294+-8709 -9165+-6614 -1036+-3525 5014+5516 -8191+-93 5874+6477 8436+3078 1277+-6849 6591+-5968 -1549+4900 -748+-6342 -1486+-3004 5936+5019 -5073+8799 7694+-8390 2198+-837 9724+4877 5940+2321 -6062+-7975 -4271+-3233 -4171+8191 221+2552 -8084+-6838 7356+-2380 -6750+-9084 7722+7175 -6052+8634 -6527+-9858 -3207+7137 -7519+-5391 -6477+-8748 2678+3224 -164+3201 1100+-5920 -2476+-2624 -790+-1015 5311+8891 -4816+8181 -5201+-3031 -3644+-8827 -2153+4154 6740+-8364 -9002+-5022 5444+-9433 9290+8055 589+-5076 9084+-4546 4783+-6609 8300+5025 1268+8586 3209+7698 -847+5464 -8469+-2061 -1984+-7924 -9802+7531 6200+-5121 7787+9018 9326+-2365 -5870+-1517 -1617+9894 -2993+4387 1066+-7560 -8086+-6399 -3193+-9722 19+-8847 -2288+-824 8519+8858 -1419+5015 -1630+-8447 -6560+428 3475+4531 -4373+-8041 -9862+-1701 4710+-7153 -6920+-4207 -2166+1488 -7251+1752 2200+-6675 -7837+-8484 -2185+4167 9660+2776 5086+7310 -6262+1295 1886+-9293 -5288+1251 -800+4574 -5171+-8716 -3168+-3833 -9092+-4703 2637+-522 -3523+3557 7934+1616 3496+-4439 -4619+-7967 3903+-9754 4763+-7370 8237+-3247 -4204+-5794 5360+4222 9660+-4491 -4033+-5935 2421+652 7381+5729 159+522 9849+7917 -3838+-2214 -4748+2465 4898+8286 -3715+-8925 -911+5467 -3007+6737 -5168+5487 7906+6800 7296+-3580 6504+6462 3687+1690 5258+6907 -7030+5920 -5292+-6249 -5414+5128 -9538+-6162 -7303+-3565 8772+5055 4819+-5400 8293+5857 6761+-5263 -6498+3866 3215+8545 -9389+1000+-5593 -7813+6286 -7397+7093 -2520+2275 -8398+-165 2409+1497 6568+3626 -8902+-1579 -2843+-8525 -5065+-2085 -2041+5545 7118+368 -9798+9161 -4764+1122 -7396+8891 -279+-3530 -7267+-4126 5338+5736 7243+-5249 -1134+-7560 -4190+4217 -5395+-4232 2041+-9240 -9965+9075 5400+-8765 384+1396 -5152+5490 2345+-2233 -4292+-4194 3198+-9980 -7650+3171 397+5435 4352+2533 -1206+-7656 -4374+7491 7628+-8646 -5088+-8852 1665+1018 7857+2697 4579+-7525 -6294+-6219 -2493+-9356 2106+-7275 -5514+6774 -1356+2339 508+-6097 9973+5139 1327+-2320 -5551+-9453 5788+-8791 -7673+-6582 1981+661 7074+7444 -1819+-1218 2532+-552 3830+8467 -1558+7388 6009+1631 -3816+-7998 5050+-3042 -9618+-2190 -6552+10 -8190+7843 -4001+4962 -7435+2474 -4535+641 -860+-476 1329+2109 397+-5644 2343+-1994 -631+4408 -9611+6832 6724+-4972 8421+-2702 -134+-3476 5535+-5250 9784+-5862 6428+-439 -920+-915 -8335+-6283 -9870+-4967 -7287+1902 -9446+608 -1443+4717 5696+-4025 7842+-4636 -9293+-2932 -1862+7927 6534+-4036 5480+-2730 175+-8290 8369+-9112 -6021+6273 7103+-9820 6259+-2936 4378+-5748 -2135+-7997 -95+-1133 -9644+-7476 -1584+630 -6441+-8606 -867+3569 -851+607 -5294+-7627 5115+8002 -4934+8781 5119+-9264 5252+-3303 8456+2471 -7189+5601 -904+-8598 -9722+-6089 6755+3795 8965+8573 4798+9576 2133+8642 -6726+796 -7325+-5530 2835+-3529 5152+8357 1469+-9312 2209+-1786 5425+-309 64+-9743 6832+-7973 -3298+225 2318+-3445 7145+2623 -834+-1086 8717+-9410 -750+5451 -5213+-4129 -9937+8881 1431+8555 -2675+3469 2429+-3713 2591+1342 -1809+3212 7818+-4730 -4162+-3156 6537+-169 -7849+-480 9626+-8835 152+-1121 2233+4752 -329+-7723 -1286+-8785 9097+2255 -3927+-6934 -9835+9758 -5494+-7880 -3159+-5386 3604+1911 1858+-1563 -1895+-9022 4099+-7169 -8509+4449 4673+-9735 -3993+-4791 -5325+-6495 -5673+-6751 -5455+1964 -1132+-772 -3213+4203 6098+-6839 4726+9119 8074+861 -5494+837 2186+-8052 6080+-2057 911+-8204 -6532+-9609 5562+3909 -2514+7180 -5069+-5906 -2045+9735 -8529+8648 5024+-9579 7717+-8218 5091+3648 3631+-3166 2813+-8624 -2348+5068 7221+-5238 7824+-9798 3950+-4802 -3939+8442 3248+6771 3794+-5136 4125+107 -1614+-7734 5213+-325 5918+-6520 -9762+8476 -8839+-2951 2770+-3484 -5091+-2394 5645+-9526 -1276+3986 561+8808 -955+-6809 452+-9973 -9334+-1838 2536+4809 -5149+-1856 -7825+1058 -1553+-2329 6799+729 -4070+-7740 -9857+-3895 -517+6049 -2392+-4608 3884+6783 7403+-4748 -1786+-6822 -7679+-5462 5168+7477 6145+7767 -2464+-8313 -3460+2106 7486+-377 5011+-2421 9771+-7618 4914+-363 863+-8815 -4827+6375 8766+7128 8898+1202 7113+-5389 484+7811 8269+-1513 -4221+-8997 1369+-6849 2074+-6787 -8376+9590 2212+9369 -1122+642 264+9539 7780+4694 -5311+-5657 -9554+7873 -7799+-1883 2149+-4370 -331+7172 -7110+-222 9562+2700 -2288+2542 9218+-9381 -982+8498 -4590+-8394 5806+-2495 -4284+2524 2469+-6545 -2382+-9540 1380+731 7290+7585 7154+3609 8697+5977 -6214+-9619 8803+6442 9724+-3430 -6851+7025 -2370+9695 6176+-5570 -4270+8628 -2253+-6342 3424+-885 5090+3977 8719+4948 -7506+-8759 3342+7368 7439+3477 8298+-4764 4479+-1797 -3581+-275 9481+-7310 1550+9490 2007+-8317 7994+822 9679+1727 -4333+1252 1019+-135 2887+-2989 -2687+-8451 -2750+-1863 -3518+8189 -1138+-9289 1364+-9516 8244+-4751 -7753+4755 5410+-1396 -13+5841 -5644+-3737 -4779+2063 9457+8963 -5026+-4540 -9379+-6683 8690+7110 988+-1646 136+364 6087+8977 -4432+-9171 -7305+-8779 2271+-974 5463+-5568 -2403+2387 6126+-913 -3153+-334 -5326+-3170 6899+-5750 7187+6140 3670+6521 -1033+463 -5816+-7246 5521+8161 -2962+-7876 -865+3626 -2284+-9239 -7760+4929 5857+9097 -9210+-1439 5253+-7932 -5179+8893 3478+-551 5784+-3809 7655+-312 1487+9292 -854+3748 -413+-1478 8405+-770 -9705+-4695 9598+-5770 6818+1904 9186+-3407 -9171+8582 -685+6501 5076+7205 -6217+-5492 -3777+-7191 -1701+9899 1960+-6726 -9032+-7836 -5058+6785 6106+-9076 -5463+7267 -1801+9870 -3372+2356 -3421+-6271 743+-30 7060+7644 -2923+2478 -8664+1285 8397+4209 -4255+3399 3895+68 6645+4373 8350+-8536 -9555+-839 -9342+4716 1501+6524 4558+-9155 -4695+-5442 -2431+-5323 385+-3612 -9818+-1726 7458+-619 -4806+-1175 6277+7606 8321+8357 8579+-9140 -8964+-1441 -2325+-5927 4703+4708 -4367+-1152 -3545+-2607 4750+-5923 4698+-8662 -4653+-28 -5305+-4270 9323+7079 489+-7646 7733+-4638 -4979+1979 6063+8392 4736+7902 3531+7998 -4087+-1011 -2712+4877 7930+3351 7937+-436 911+-5976 9134+-8376 -818+-5745 2533+-679 -4323+-118 1995+9422 1830+412 7347+-3070 3901+-2718 -5858+6299 6528+4718 -3906+571 -3241+347 -3834+1927 8329+-7144 1084+-7380 3221+1011 -2786+7067 -9127+8683 3993+-3719 -3997+-6475 9516+8042 3748+9816 9692+3949 8934+-3898 6563+209 -678+-6942 5368+-2016 -4625+5855 -2819+-4882 4222+1727 3798+3756 -4690+4781 -8492+1546 -5989+3236 -6949+-5426 236+6787 2086+-2894 -3256+5317 -5005+-5450 -3689+4480 5759+-7254 -3856+4 1140+8631 -9602+389 2279+-252 2151+1142 3098+4611 -7884+3288 8442+3515 -3417+2482 9601+8772 -8871+9483 -4693+-1906 9629+2018 -3995+-2172 2157+-9919 -4357+-1602 -8519+-8367 -7478+9259 8457+7086 -8068+-8517 -8207+-9890 -8463+-5146 -2219+9466 8291+-9535 -6803+-3395 -5056+8988 -7645+6647 -4569+2362 -4527+7532 -8505+1297 1856+-6813 9498+-5583 8466+3869 -9479+-6162 6252+-2730 1474+-6720 -705+-4034 331+1451 4406+5071 -7126+6103 -7200+4552 -795+7916 7380+4289 -196+-9193 -9182+-5599 -3474+1888 -2052+1880 -6335+-5117 -5819+-2468 -9997+9335 7128+-3991 -1825+-3255 -454+2173 1157+-7046 -8974+1994 -7525+-8936 8825+1984 -405+3322 9143+-5214 -5455+-6022 -6057+-9718 -5334+-5584 7293+1117 5990+3843 -4939+5232 -8220+3167 -7601+-7036 -1403+-1881 1020+-8023 -4303+-8740 2859+4995 3240+4814 3137+-5986 -6666+-6446 4021+2007 -8309+2096 371+-4278 -814+-622 -3311+-4342 2481+6974 -1908+7955 -3379+-2830 1160+-2470 -4931+-3402 -7583+7177 -3700+3118 8689+-977 7982+6030 -1112+3203 8643+5675 -7835+4367 -4656+-8181 2816+-5150 -2439+699 8381+3251 6619+-1572 9487+1634 -8959+1470 9908+-4260 4092+8562 5212+3466 8054+-3718 -4404+6691 -7843+1643 2570+-9609 -2768+-4371 -8012+5019 -9332+-7913 630+2320 976+4494 -9160+3127 -7885+569 -6651+3879 2258+-2983 -6317+2554 -3969+9756 56+1378 9748+-1996 -5630+2939 -6158+-3648 -6840+-7763 1659+-9152 -6643+-1379 -9290+-1854 7417+8590 9311+7191 -7151+-5403 -2203+4764 1+-3241 7316+9177 -6393+8033 -2337+-709 -6049+2577 8803+5710 -8155+8637 -6876+7611 -4840+-6445 -8376+-7482 -5710+2281 -7011+5180 6700+-7616 -4740+-7721 5594+-8277 -9367+-7502 -3503+3816 9510+7157 8842+-9329 -7640+1144 -2771+5061 -463+75 8778+7461 -9178+7170 3166+3354 -1596+-7643 -1129+-7459 484+6266 2283+809 3520+2318 9966+2899 -5437+3672 1679+4648 -3909+435 4761+4365 -2788+-5629 7803+6045 313+-2153 6413+5171 6930+3841 2123+-1806 -6799+-6402 9896+-9548 -2709+-9671 -4603+4357 -5632+-4644 5789+-4504 3783+-1279 9923+-5263 -6553+-2979 -438+8399 -6551+-2447 6881+-1643 7117+8747 -2372+4512 2310+-3459 -3046+-5107 -2125+5126 8224+-9996 976+-9346 -1488+1068 -3873+7597 1971+-1656 2312+-1832 3511+2000 -6856+8547 -28+-3479 4935+4701 -7391+5474 2989+2386 -1763+-4478 6711+-7877 8612+-493 8668+8829 -214+2527 -9490+7290 -2984+771 4246+-7015 -7159+-6653 9931+-7119 -1360+-3128 8532+-5744 -4798+5761 -240+4643 -6145+-1713 -1251+4439 -4513+4619 -9572+-7640 -5117+-1413 6079+-7400 7545+7481 -9986+710 -2875+-7461 1328+9916 -6008+3059 3439+4382 3643+-6743 657+-3296 3905+3616 5879+7314 -8622+-1585 -5115+7881 -2069+-3136 -7624+9812 7327+8830 3115+-950 -5996+9946 9254+-4699 -7235+9419 -1181+6664 -878+9330 -1759+93 2904+6641 -5032+3033 5738+-5834 -8765+9971 -4221+6192 6197+-8161 1411+-5050 1810+-1688 -6690+1167 9118+-9262 -1745+-179 3402+7919 -4942+-2547 -8241+-8286 131+1711 1817+2261 5422+3479 5620+6042 8814+-6530 1958+7272 -3339+7132 -9031+-8307 5112+-7827 1091+3538 -6109+-2439 6244+1860 -3601+-4633 -187+-6570 2181+-5123 -6665+6504 -992+6044 8424+-2725 -3549+5599 93+-7795 3875+-6008 4396+866 1181+8116 -7477+5458 2612+1108 2346+8670 -2411+-8924 -4257+9618 -7628+641 7498+-9418 6370+6523 -5119+-3274 6660+7142 7693+-9579 7587+752 -4031+-5326 6228+820 6601+4845 -7833+-198 5347+-1263 173+-2242 2417+2191 -7972+3740 -7001+3427 2395+-5630 5385+-2614 -5065+-7701 -2890+8922 5389+3815 -2317+-3776 -2849+-9710 7749+-762 -5640+4421 -3677+-8250 4053+1652 2760+-2087 2325+-711 1410+-2110 -7081+-112 3857+-5407 6606+-5520 -5102+1851 6428+-5360 5006+-6856 8282+-1472 -5379+3195 -4066+-2426 -876+9454 -445+-3098 -3081+2582 -9726+-6548 1500+-2451 1346+8172 2497+6568 7728+-6666 7847+-4655 -5931+7557 -6054+-2527 6063+-9028 -7961+-7905 -3424+-9466 -2167+6033 1038+-4828 -6507+1982 3759+-6543 2673+8888 7451+-4669 -463+-1744 8173+-2985 4110+1217 8765+372 8744+-2204 -7356+-7364 -2669+-4651 8869+3404 7672+-9923 -5474+-8629 2139+6834 4738+5111 9450+540 -492+-2159 4613+-697 -9130+8743 -4196+-9796 5748+-621 9700+876 403+-961 974+-2898 9300+-6985 -1670+1404 -9058+4690 9285+2289 4385+2629 8656+8750 9534+6892 -3976+-5327 -438+-8806 4843+-651 9471+6054 -831+556 -7124+-91 2146+6186 899+9833 8618+-4580 -3465+4206 5317+-2199 -1791+1691 3539+-7358 6990+4262 -3193+2256 7327+8622 1779+-5425 -2397+-5070 -3212+3439 -798+-6222 7907+-8088 2387+2930 4727+-6696 2111+-8119 -3178+-2576 -9211+-9427 -3092+-2860 -3853+-7800 2294+-7786 1575+910 -3621+-1277 6374+2509 -8517+4932 -785+-2326 -153+-8672 -9627+-1419 9980+-2351 5184+-7745 -1822+-2029 -5674+-6378 7662+2233 1197+-5425 9401+6066 3000+-1601 8811+5777 -8792+-8203 304+2767 2621+-7782 -8251+-7910 7522+3770 -9189+6930 2298+5712 5279+9516 -5650+7562 1445+6728 5536+-6841 -242+-7552 -7739+332 8375+-5766 -5098+-3608 624+9060 -8143+-1108 -2179+1413 -8517+8680 3412+-4096 -4854+-7873 3978+1819 7755+6506 2373+1808 -3183+-6005 -9966+-6597 -3481+-2620 -411+4153 9871+-4380 7104+-4980 -1765+-9175 -9569+-6321 4679+-8057 -9822+3036 -9778+-8456 -7951+4961 8954+7359 1363+-4470 -9022+-6378 6273+9660 3435+9315 6372+-6381 5634+5603 -6884+1295 -167+298 -8240+9094 -3027+8893 6925+4772 4552+3281 -705+7267 5416+6388 -7262+-7507 -1617+6153 5006+-7643 -7565+-5481 -5677+-1437 -8682+9819 9902+-1753 -7757+6763 -4643+2030 -7991+1808 7394+6971 -2858+-5794 -8519+-7265 -3756+-9646 -5583+7186 -6581+-2757 -8207+-6746 1304+2593 -7702+-5303 -8852+-3072 -4750+-4603 3384+-2132 -7968+1563 -3072+1619 -378+-1414 -9404+9111 8842+-6630 -2620+-8156 -988+-9173 -6229+3872 554+9052 8735+-5852 504+-1164 -5489+5120 -6417+-9586 -3381+352 -3865+-7589 4190+5584 2412+-9902 6674+3128 -3302+7700 4489+-6613 -7624+7508 1792+-5778 -9491+8466 9092+-3015 -4+-1006 4023+-7269 9827+8131 1708+-1381 1338+3463 -120+2583 7999+4684 7318+-1321 2385+5796 -8857+2708 -6315+1190 -4206+-4268 3864+-7435 -6069+-3584 -4577+-7317 -3484+-776 -9113+-3489 -6896+-8039 4134+-6521 -5435+1966 -4128+-4209 -6904+-469 -2083+881 8211+7420 -5474+5999 -5240+-4905 9304+-6093 1891+7547 -6821+7274 -7923+-4697 -8367+-1940 2020+-2957 7713+-9078 -3892+1908 6098+4440 5329+4198 -1991+453 -3709+9687 7099+7248 -1188+-2569 -2277+-2629 -1747+5043 8701+1517 273+303 -8180+4107 4424+4395 3348+-8694 4777+5332 -2648+9260 780+-7535 -6757+6981 -4716+933 -9295+-9650 -3313+-7582 7965+-3084 4163+-9069 1305+7053 -4475+1000+1817 -3434+7683 325+-9918 4038+3581 -4229+-7938 -686+9274 -6349+3042 8421+-201 -260+2797 -742+-7799 8234+6319 -1465+3252 787+-533 9010+-5389 3271+9179 -5125+9175 6785+4951 -3524+-9724 3835+-5818 3477+-4291 4144+-7283 1310+-296 -9266+-4882 -6221+5801 -2181+-325 5333+-8255 4705+2948 9957+5327 -911+9291 4097+-291 -4723+-6689 5474+-7317 332+4835 9260+-5056 -4222+-5631 -6207+-4893 4033+-6531 9007+-4207 -1931+9471 7093+-2860 7318+-6652 -1054+8883 -4829+-4763 -3509+6761 -5036+2033 2124+1477 -4356+6372 -5204+6335 74+9674 -1463+8718 2801+4311 7605+-5709 -4396+-6228 -9354+8386 8868+-6812 4180+-3419 2692+1232 -1835+-5798 6659+-8672 -542+4216 1955+-8119 -2861+8314 5198+6756 420+-6706 3659+3151 3011+4384 5263+460 -7608+5960 -3644+-9500 3636+-2850 -9821+6984 1943+-58 3385+1641 -3668+-6770 -5227+9526 -4165+-5747 3134+-773 3308+8185 4225+-6694 3543+-3196 -3618+4835 49+6732 2792+6783 -4220+-8636 9347+-3648 -1069+3170 -3796+5073 -6265+9835 -1178+-6700 9141+7062 8510+5001 -4817+9233 8084+-3212 1364+-6446 4581+7831 1348+4884 4917+5801 -17+-8850 -7196+5795 -6386+-2655 8295+4043 4946+8860 -8390+5123 7097+-3013 -8155+-9736 8587+-9780 4184+-1993 -2531+6912 -9851+-9253 -4440+6107 -6413+5644 4094+-8403 -1414+-5690 7621+-8628 3732+7911 6427+4069 -7845+-8257 -2611+-4775 4130+-3231 6638+-4563 3031+3552 -800+6767 -967+304 -9427+7464 9918+3296 -7470+9550 7746+-6993 -1988+-7446 -5020+-7315 -7270+-757 3031+-4294 2905+8591 -4223+8028 1740+7270 -6187+643 -9508+-7133 -3381+4331 -5898+-8430 -3267+-8065 -2450+-3521 -4514+9472 -4740+3062 -2378+7238 1255+-1902 -5360+-5768 1473+-6811 -872+1036 2443+-125 1076+-8555 -5523+-5130 -994+-8135 -4613+1221 -7783+-8755 -1007+3474 1008+4709 -240+-1198 -8786+2870 -7334+-1295 2152+8113 5665+4607 -752+4993 -6062+-5013 2410+4517 -5427+9894 -2447+-4063 8187+6240 4906+-2888 -1246+4309 2738+-421 -2998+1882 2493+9067 -921+1522 7964+-312 -4532+-3814 3479+-4531 9047+7187 27+9139 7265+-4728 -452+-2693 -6329+3577 -3402+6691 5143+3391 5535+-5975 -7677+-6354 -5515+-2254 -332+9782 -8688+3577 5120+8716 -9191+-6364 -9208+1722 -2260+-6618 -8754+9022 3422+-5251 523+9365 -437+9553 5900+6820 9066+9000 5676+7172 1764+4424 7737+4907 -7381+-6799 -6120+9485 4044+7537 -8589+6997 6249+4540 5100+-5914 4421+-3579 -3109+3927 -6477+2939 6773+1821 -952+5976 4344+25 -2876+303 6183+-6826 2408+-2422 4743+-1761 -1455+5428 -6+-9532 -9851+-4009 -3618+8457 7026+-772 5277+8844 9398+7133 -1715+6876 -6519+5712 -6532+9229 5672+-2526 -9504+2818 4110+-6707 7272+5420 7780+5977 1525+2655 8976+125 -2881+-4158 -6341+2415 4329+7368 2863+-319 -80+-7965 -677+1644 -753+8628 -9747+-1548 3701+1730 4641+4687 -9943+3605 -5101+9168 8637+-4457 6097+3663 -624+-4852 -1334+-4411 -8752+2341 -3798+3077 -5733+-6636 -8398+2957 6102+3173 7334+-7151 1090+957 -5868+2446 -8152+2333 -3663+6224 339+-4133 -6731+3292 9769+1429 -2675+9075 8574+-2436 4953+2146 3855+-8681 252+3513 -405+6415 4307+7774 6255+9918 4460+1691 -5966+-6454 -8320+-1775 1370+-5340 -2938+9886 -7853+-4550 -1562+4132 141+-402 -5997+-1393 6084+-4323 -5976+-8006 8907+9490 -5653+-9627 877+-3968 1070+6550 -1085+-796 2244+2185 -6028+-450 6022+2227 5924+4912 -9963+-5666 4020+9959 780+198 -9028+1714 6150+4674 14+1353 780+4024 1327+-5928 -9673+-2748 9388+-7394 4843+-3449 -85+1620 7375+-7476 -1734+-9878 -1772+5119 9110+6798 -1730+8756 5087+-284 7126+2309 1807+4173 4717+-8868 -7962+709 -9094+-4520 9940+-6467 -8404+-4835 -8160+-4642 737+-6293 50+-1970 7847+-5100 4458+4877 -4853+1720 2791+-4909 -4454+5032 8764+9678 6921+9978 1509+2843 -7076+3078 8839+7285 -75+4173 -91+2457 -3188+-2003 8494+517 -2639+1290 4744+-1189 4172+5004 48+-6207 5240+9967 -3399+7064 8774+8667 -4549+9047 -2370+-1874 4099+2678 -1462+519 -9531+1485 -5075+658 1929+-7698 -5822+1837 -9129+8087 4201+358 1736+8731 8698+1037 6832+3577 2728+-3953 -8423+-820 7216+-8707 -1477+4976 -7930+-9758 1155+5932 5620+1880 1837+3636 -1510+-6822 -760+-5044 6631+-7591 -6048+5011 6449+-3510 -9581+759 7081+743 1350+978 -5586+-6934 -7363+-9987 -5799+-3429 3961+1065 7128+-6315 6280+5347 -8800+-7115 -921+4799 -6740+-8266 -4439+2562 6055+2834 -2012+7894 2551+1739 9260+6055 -4842+-7379 -9524+-2986 1838+8094 1653+966 -5854+-251 8113+9744 5102+-7000 9359+1103 -3033+-4607 7982+5943 -8776+-4566 3172+5932 2277+-6851 -3646+9304 -9138+7560 9471+-2162 -489+4729 4497+4212 -6194+4531 -9713+8559 8629+6033 9143+3070 1724+9726 7481+-8886 541+6051 1697+-1325 -5861+2091 -6979+-4573 -8589+3833 -5498+-8862 801+-9885 7813+-579 -7878+8984 -9220+6029 4159+-6789 -2691+2564 6623+-2128 3378+-4275 1072+-9700 6311+-4560 6334+-3005 -9492+-6304 5944+-3549 8708+8272 -510+9030 -5384+9242 6395+1468 -4726+1079 -8360+-4570 8450+9707 5850+3512 -7509+5438 6801+-1639 -2998+-1695 6493+-7518 98+4319 8384+3386 -2970+-8664 -1581+6588 -5868+3395 2297+8886 -4893+743 -5550+-6828 -8751+-7591 -3747+-2849 -2996+8190 549+-8721 -8652+-3726 5287+-9469 -3421+1785 -9767+-6608 4600+-7976 8193+866 7958+2952 -7993+-3779 -1304+5937 1646+237 3257+-6681 -4899+8551 -6729+-6276 -3649+-5678 1293+-2152 -7780+2383 8126+9518 5237+-7919 -9052+-8129 6873+-1594 -8372+-1042 -355+-1573 -5286+999 -1174+-8940 2119+3204 7177+4736 1206+4014 273+-9762 3253+2211 -2297+-5584 4601+-6992 -3025+-6105 9887+-9575 1294+610 6362+6415 7955+-6056 2560+-3023 4537+5286 -9932+-6789 -7812+7735 9001+-5470 2640+3460 -3975+-9834 -7942+6528 -9031+9119 9942+3957 9500+-7870 -4484+-6146 9298+6922 -4870+6888 3846+-3587 -1542+1724 -4055+-7640 6068+-3432 5394+2404 -4746+3594 -1472+8688 3201+4170 -6912+-1315 3739+416 5266+7312 1561+-1545 -5985+2943 1531+-4521 918+-5540 8412+-8122 -1606+-6634 -7878+-7298 -7934+597 6125+6305 -5911+-8414 7787+-2000 9877+2904 -8428+7866 7491+-8447 4390+-890 -5632+-8022 2538+1896 1891+9544 8427+705 3329+6358 -5628+9396 -5372+6408 7570+2443 -7313+-1512 -6848+-3761 -3044+295 4023+732 -4702+9254 6606+9206 746+3320 -2669+8983 9572+-6337 2425+4436 -2995+-7103 6213+-2119 -565+5098 6396+1536 3840+6991 -6172+-3192 66+8756 3496+9135 5316+-9823 6923+4197 -8197+9224 -6655+2184 -8692+-3429 7536+7460 -5947+-3181 -211+-5710 4979+-6164 4166+3911 -7337+9803 3669+9714 -9028+-8774 5958+-95 4899+6464 8538+9673 -7801+-3405 673+6441 3417+4897 -7924+2772 -8525+7914 3459+-2340 -7648+-4537 -8748+3990 -6318+-9615 8891+-4547 -4811+-2650 -342+-1407 8535+-7323 -9113+-8365 7430+-2689 5056+-6828 -2051+-4022 -6674+6111 -5755+1131 -9769+-8330 -2296+-8902 1353+212 -974+-7415 6130+-6118 -2290+-4051 -7540+-3634 1864+-1070 -5414+8163 -8937+-9191 8053+6350 -4579+-1051 -8333+-7710 9122+7640 -3822+-8855 -6174+4086 -9232+-7451 -7443+-6758 7945+567 1567+2579 -7801+-6248 5851+7400 -7335+-6887 -4110+9972 1208+222 940+-6997 -2079+8764 -718+2388 7387+-4994 5430+-5021 2880+-4234 9253+-2514 6133+8584 -1418+4158 5399+-2178 -2276+2373 9441+-1142 8874+-7508 276+-620 5743+2422 6250+4383 -2856+-1698 5783+-8798 -5732+-602 -5926+9385 -9664+-973 7979+9021 4458+7223 -4117+2505 -8326+-7623 2281+-803 5891+-8770 792+4592 -6837+3236 -4546+1480 -8522+-1648 -8687+-9876 2760+1755 -111+-4042 -3401+1712 5067+3865 -2454+-7288 -6993+-2539 -6759+-6947 1258+-4154 -2624+6120 -4126+-5525 628+-9294 1092+3934 1967+2807 0+5425 -9471+3026 -8756+8165 -5221+1541 3954+5544 -828+-6446 2501+-7867 8326+8529 -4022+4347 2165+2334 7567+1334 -2221+1965 3406+7348 -681+3896 6230+-7788 8694+4167 779+2450 -9870+-3315 3909+-6646 7280+-4114 -3068+-1200 266+-7489 7884+-8786 2040+9250 9016+1045 -948+-512 -1744+277 -6453+7199 7585+-6517 6770+-4215 -10+-3603 -4807+-8054 4291+-1828 -5536+2553 9091+-898 1409+6737 1789+-7366 599+3630 9784+7251 6474+-4684 3972+9034 -6599+7828 -472+-2342 -201+6487 -7176+-7213 6446+-49 -6620+-6675 -8224+1044 -1425+7258 2814+-4655 278+4585 -6089+-205 4925+5078 -2499+-7798 -1528+-8118 -5889+-3976 1218+-794 5630+3449 6710+4229 7618+1361 2905+-4960 -7543+-3715 6200+4570 652+-1793 -867+5759 -6642+2488 7916+9502 9353+659 2132+5214 88+-4646 -2660+1187 7907+5307 -1850+7298 -16+4414 6057+-1239 -2466+9684 6214+3861 -1711+-3401 -1572+825 2390+3795 7931+6924 6116+-6067 3664+-2885 2238+8240 -1814+-6355 -3797+5306 -483+-3485 -7980+9043 -9003+1825 -7798+-5522 -7363+-1572 -5658+4410 -9765+2789 5520+-9300 7116+-2656 8033+-6109 9359+-1760 -7220+8925 2840+-3907 -1175+-8377 -6077+-9360 -6115+8422 133+-4797 8643+-3565 5400+2364 916+-9881 -7869+-8987 -9535+-9307 -1402+222 2623+8714 6246+5837 2703+1330 -5306+7999 3853+9407 -7864+-8930 -9453+-6043 -3457+7399 5007+3054 -4530+836 -4323+-5243 8667+-9149 -401+9877 -9295+-3250 -7989+8524 -591+-2787 -2953+-1847 190+1192 -5637+-976 7955+6190 -9989+-7221 3428+-9686 35+9208 -3989+-262 6658+4680 6120+-3452 9755+-5413 -692+7572 -2989+-421 6936+4860 -2170+2298 4855+-6480 -5267+-2437 7467+-7414 -3313+-8274 -8218+-5424 4631+-4672 -7342+1866 -7000+3470 -8731+9355 6154+3455 -5053+5282 -8194+-5224 5709+4979 5026+9211 -7154+-607 9783+7660 -7178+-9096 6010+6376 1073+-901 2401+5739 6474+9147 3395+3993 -6141+-903 8341+-8302 -5076+8847 -3350+-645 -6434+7597 -9783+9911 -5495+-8804 -8948+-6208 6109+-9587 541+-9720 -7028+-4694 -4974+3141 9129+-9799 8225+-5417 3621+-1832 2998+-535 -805+-6733 7340+-2216 -7475+-9244 -3333+-7655 9043+7004 -3023+-1895 3888+8336 -8838+4950 4086+3282 -5722+516 -9397+-5364 -8941+9029 -8301+-6053 7341+9448 7294+-2756 -1163+9217 -4589+-5099 3166+3801 -6603+-2977 7783+2756 8311+6456 7442+-5913 3970+987 3010+-1233 8524+4104 3266+-2288 -3028+7009 3303+5540 2752+-9684 9432+5240 -651+8174 2254+-57 -6219+434 -7120+-8209 -4643+9685 -3687+-4521 -8811+4290 2987+-7591 -9169+5207 -3943+4728 -9136+-49 -8255+7873 -2602+-1027 7796+-6922 6860+-3584 -5004+6242 1161+8603 -1193+-9211 2992+-2670 7336+-437 9178+9705 -3233+-6807 -1359+2221 3090+2458 -9140+552 9050+-2793 7279+-703 -3805+6161 -2921+-7370 -2641+2007 9790+3595 5536+-8589 5034+-940 5848+-8628 381+-6851 -2719+1333 8739+2403 4208+-3255 1441+1918 -1869+-9642 1183+-9492 -4465+-1439 -2914+276 -8037+8307 -4409+-4350 -4631+3513 195+2439 6427+-8850 -9075+-9032 2973+-1902 -3548+-2067 6154+7565 6596+-7641 -8854+-1151 6994+3676 -6533+7625 495+-8947 -499+-6436 -7438+6800 8688+9501 1052+-274 -7045+-7428 2711+-2588 32+5025 -4802+4802 4319+1398 -8403+-9602 6421+6026 -33+-4832 -4293+2719 -7803+4475 -2860+-3383 -4054+-1679 7700+9878 8494+-6725 770+2657 -6362+6310 -787+5840 5787+-7672 -4548+-47 572+6966 6010+5811 9904+5530 6518+4833 -9695+-818 -5787+-1512 9299+9283 3400+6064 -7733+5260 1070+4378 -9530+-3002 -5707+-7995 -5737+6048 4660+4366 -8965+-9194 5479+2727 -182+-8089 -2451+2785 9536+-1706 -586+9541 7425+8246 -7232+-4988 -8435+-1820 -5706+5161 4217+-5105 4147+7956 6664+-9280 298+-6438 -4486+-3331 829+-1322 2754+6003 -250+-3787 -5586+9537 -9026+-4968 4739+4284 -5160+-2449 -6697+8839 -130+4926 -6723+140 248+719 748+-4007 6643+-4663 -6361+-6172 -8019+7511 -4897+4570 -9982+6620 7465+7642 7206+1645 1757+-3953 2581+9795 6183+6812 1381+-7116 -7023+4885 -6939+9922 -7166+6748 5013+-7984 -1196+1000+8267 1344+9117 -6880+-7633 748+-120 -4961+-989 -4049+7338 2224+-136 -7300+6138 175+5083 4024+1457 -5856+2190 -5088+-1790 2891+4974 -5628+-208 4302+-3385 7389+-5294 -1882+103 513+6779 -7462+-1236 7451+3107 -8007+-8782 -166+-4759 -1868+-4822 -4954+-2750 -4303+-6393 3169+-5877 6319+-9136 -6407+-9177 -603+-433 2708+4524 -4666+2777 -3635+4896 2954+9418 3239+-6560 5248+8650 5263+8780 9615+5143 180+-8251 6499+-5039 -1883+-3282 435+-9707 7047+-8214 215+5565 -7623+-3408 -8932+-3377 -9485+-152 8144+-1232 9255+-2261 4914+-7702 -9617+902 -1824+-6627 6829+4259 -6189+8543 7873+9809 7317+1185 2347+8695 6072+-4184 691+-3397 -2862+1822 -9852+-6250 1983+-7534 1848+133 -7329+-9612 -9186+9903 -7779+-2098 1189+-1795 -7530+-2648 -2218+8654 -6712+-9167 4892+4259 -3577+1402 4728+1755 1411+-2176 -2808+8421 -3591+-2556 4896+6688 -2281+-5868 7715+-1634 -7169+-415 4146+-1785 9988+5015 -5526+432 6119+-5015 4074+-5334 -834+328 -6014+-2469 7000+-4310 -915+-8963 2519+6265 677+-4970 5800+-536 -5996+-1259 -8474+3022 8859+1557 -8491+-5697 4977+5312 -1628+1567 1059+-6822 -3526+5936 -3861+-7354 3017+7256 2456+-5107 2998+-7031 946+-9626 1507+2813 3040+-5058 -3848+-6380 408+-6129 -1327+8129 -1071+-6552 7811+3335 9733+-3092 5013+-9017 1252+-5583 -337+-8279 -8188+9810 -705+2428 -1023+-498 -3480+1418 -6102+2623 4809+4282 -4812+144 -1079+733 1989+-895 -6329+-4643 6934+-438 3616+6190 -9120+-4519 -8446+-8423 9351+2105 -863+168 -9277+-3201 -8508+4915 7273+-5031 -6493+7109 4452+-8044 -182+9711 -5872+-6319 -9899+-765 3267+-9242 9956+3149 1112+-3364 -345+-7886 -2935+-1063 1988+-9949 -2753+-7627 -9222+294 7207+6690 9023+-7161 4201+2495 8469+-3807 -869+6311 8397+2141 -4214+141 -3536+-7086 -7809+-7042 -2568+-1685 9731+-6555 -2120+6039 1621+-4667 -3589+5526 4735+-5701 -5302+-4179 3896+655 -1972+7047 -264+5643 -4411+-7717 60+3217 8407+-5805 -5625+-6938 2870+-9615 -6012+206 4380+8607 2443+7754 -7965+-978 2046+9669 -8964+2331 6905+4239 3170+952 1305+336 -4983+27 -5221+322 4708+-5865 5573+9524 -3340+-3862 -6052+1690 28+-2701 -319+9495 4890+1151 3768+8045 -5407+4880 -3014+6801 -5244+-641 6818+-1244 8048+9626 -2834+-3558 -7688+6568 6581+-3906 1017+-2992 6091+3576 -7300+8111 -499+6370 5954+8909 -1459+-959 -5078+-6818 -3746+-84 5087+-8628 -4707+-2078 -1495+3102 -4567+6239 -5220+1194 4547+9455 -7008+-8133 2588+3331 -8450+-9431 2209+519 -2389+-6167 6779+4133 -8086+1001 -275+-3266 7855+-1613 -5172+3598 6116+-2941 4983+5890 8612+-6337 -6462+-9301 7964+1599 -7170+9126 -3362+-609 7597+-7287 1501+388 -2111+-7261 6307+7812 613+-2873 3486+-203 4917+-7760 2108+-6141 -2459+3216 -7461+2721 368+5378 -6005+-1221 -1265+9596 -228+-148 4497+-2681 -878+9236 -5801+6764 2853+9904 7356+-3476 -1620+-4145 844+560 -7088+-3372 8592+-1505 -5842+7053 -3907+8606 3642+-16 -2383+-429 6622+434 9137+-8635 -8373+-5034 5135+-6014 634+3526 -3492+-2409 -9614+5519 2768+-1271 8435+-6267 7806+2943 -9992+5584 -207+8471 -4949+7094 6791+-5086 5679+817 -5643+8991 9893+9018 -7873+8862 -7055+-7572 -7225+196 133+-863 -6219+5356 -549+-1712 -321+-2161 -3348+212 -4217+-1314 -8870+-2823 -5325+-1643 4219+8060 2273+-1770 -2150+2037 6525+-3525 -6951+-2532 1602+5521 -4561+2944 6194+398 -9438+-6505 -4855+-8124 -191+6169 8581+-2549 -6454+-5179 773+-7817 6874+-5954 5717+-9192 9329+-6363 -6740+-7191 -1527+-7929 -1149+3919 952+4699 4054+1491 7853+4491 -2984+2972 -3076+6686 -7145+7783 5395+-7373 -3988+8981 6462+-854 -8237+-9188 7400+2831 3120+1850 5076+8280 -65+-5263 3649+-7461 -7716+-3000 401+8619 430+-2434 -6241+-8126 4282+-724 3361+8414 1772+-4589 2794+-9093 9304+8325 1123+-8726 -2460+-1747 -1999+702 1621+-2639 -620+-3840 1876+401 3161+-6519 -2209+-8804 8207+-7307 1655+-6248 -3656+-2777 1925+4331 7224+3888 4709+-3064 -5011+-1307 -7063+3349 -1324+6080 4760+-5207 -9809+-3656 -9216+2491 -6702+6033 -1121+4131 -3523+4485 -1174+-4306 -7788+4329 -7667+9656 -3439+3432 8887+5551 -2286+5407 6876+9963 7741+-532 31+206 2474+-2871 -5456+6986 7877+-5136 -5825+-6931 2860+-5974 345+-8584 -6498+8571 -3585+5757 -6329+-5340 6763+9082 -2460+-2747 2026+6632 6028+-9624 8341+-9742 2984+1309 -3833+6235 4970+-8512 -2727+7285 632+-7189 -3164+-3573 2077+-5918 -8482+-5837 8069+-6634 -8225+-4257 6903+4075 1404+6081 737+-6981 -8132+3994 1664+2753 1718+3467 -4600+7522 4652+1365 -3509+247 4326+-4777 -1857+8650 9736+4142 -6923+-5208 1621+2246 6660+7215 -5681+3992 -3943+-1100 -180+-3084 -2422+6284 -3714+388 4619+962 8020+-690 9053+2030 9337+7123 -9877+1766 1956+-4844 -9143+-3536 -7424+-5818 -1154+-9800 9999+-7535 -3406+-2740 4935+-5600 -3585+3528 7069+-2029 7104+9896 7983+8807 -5353+-5854 -9941+-8672 -2664+8309 8026+8207 3985+9529 7183+7543 -2053+-3244 8447+-941 2538+-6127 -2593+-2318 -911+763 3991+-9616 2430+-3660 -1411+9839 4492+5767 -9943+2960 6718+1978 -9325+-999 -8954+-8985 4698+-2497 4719+-2791 7983+5318 2089+-5913 9723+-7773 -1102+2728 8700+1777 -4999+9288 -8490+-6923 -1447+-4821 -7917+-5323 -5916+9394 774+-6431 5368+-9268 -134+6679 7893+-4219 1225+-4338 -9657+2923 5102+-2901 2851+9926 6509+4422 2519+7301 -22+-6654 1833+7823 -3629+-592 5070+7856 9829+-7519 9770+8886 6575+9113 27+7396 7032+-1260 -7378+-5103 1050+-849 521+8224 3337+475 7116+8901 -717+8516 -3688+8887 5013+5554 2950+7772 9397+-6289 4989+-4780 3245+4859 9939+3335 -2270+1649 -2968+4212 -3312+1467 6775+-1987 -3785+3349 4026+-4295 9011+-853 -8952+6549 -7227+8359 5320+6091 5285+-8858 302+-5880 -1000+-8921 -1023+282 -9811+5841 -1554+8593 -344+-3080 3044+-9785 -9428+-2337 -7866+-5996 8346+-282 4963+3970 8059+-6517 -2792+-5976 6538+5601 9749+-8150 1607+3288 -9783+9191 4109+9519 -1768+9880 6928+-3473 5458+-657 -7168+8865 7428+4769 -9084+-1902 -5114+-1228 -4103+-2309 -4153+5575 7603+6880 9722+-1428 8588+2186 -7870+9814 -1661+-9163 -5200+-1025 -2864+2267 708+-8348 -8334+4974 1456+-4815 -1496+-6376 -775+4946 -9069+-4672 -1729+-4514 -6185+-1487 -2631+8639 6504+7962 -1479+-288 29+6353 -5933+1826 7003+9723 -969+1520 8132+-7549 -5268+4814 7313+-8331 -8249+-773 9899+4869 6096+-5601 -546+-9596 -1949+406 -1656+-3218 -9880+-7392 -8030+-1160 -9637+-5751 -5949+1358 2409+6315 -673+6195 -3294+-5309 3649+562 6885+2042 -2428+-7382 3486+-2762 4732+-8093 9181+3532 -3285+-8337 -8456+-7227 -6471+4084 1317+9760 6548+-3661 1452+953 8561+3103 6685+2162 4787+5422 7545+91 540+6106 7446+-492 -5483+-5747 -8366+-474 6321+253 9896+-2062 -272+3181 5428+-4543 8081+-1716 3375+2928 1897+-7468 -2121+6429 -604+7025 4790+-2867 667+7060 8543+4803 4243+-6981 1534+-2070 -8523+-3799 6177+-6418 9671+-1267 2695+7344 -8339+4098 -6346+-6256 -987+6840 4547+9717 7316+-4032 -4834+-9024 7035+-7570 -3685+-1907 2915+-4940 -7325+4672 1459+-9087 -8077+9114 9513+4531 -3786+1300 7124+472 -2593+1830 81+-3138 -1497+4597 6653+-2642 -4482+-5265 5816+7081 4997+7048 -4610+1424 2078+3436 -4432+-334 -6551+8794 5694+-831 7072+4477 5924+9708 2434+-1481 6650+-320 6393+4893 1052+3488 3103+9305 5980+-6940 7650+-5966 -1128+658 2063+6847 -8084+-9407 213+-7934 2543+-7788 1256+3428 573+-4004 -6989+6607 -7385+2439 6134+-820 -264+-6369 -6100+803 7533+-1274 5169+7534 4257+-4114 8508+-3155 9403+-5902 -2615+4362 4540+-9462 1548+7521 -6116+-8673 3474+-5682 4149+-8935 -6048+-9635 4243+-2091 7004+1961 -7765+8498 2503+-4164 5791+-1296 -4943+-7719 -845+5446 -7137+-9410 3202+-8441 7057+-6862 4926+-8912 8384+-4623 -163+-9615 -8571+-2321 -9183+8737 3777+-9526 2570+-2467 7596+2803 -1304+8602 -9223+9414 809+4870 2873+9308 3088+-2235 -9044+5525 2370+7951 7612+-1574 -5888+-7536 1338+9382 -2028+1804 -3834+-5359 5440+78 4113+-7725 3162+3463 -5353+-7345 -7351+1397 -3761+1825 -9231+-8137 2669+-7095 -9153+-3112 -8143+-9545 -1694+9231 5964+2949 -5670+701 9310+-8699 -4448+9042 5584+5803 -8378+2637 -8184+409 -5780+-5966 -2669+2750 6692+-2524 4225+1009 7445+-3882 -5160+9787 2391+955 9688+1977 -8048+1324 -2916+2505 9617+-9667 -5138+340 -4625+8445 -8173+-7338 -536+-9962 1706+-5191 -6310+-8919 -5938+814 369+-991 -7805+-2628 -9602+-1799 -6570+-4290 7319+-3905 7760+-2689 -8403+-7698 -2459+-2574 -5621+-7543 1824+-344 347+1765 -7140+4530 -3787+8012 -7723+5214 6794+-7647 8761+-4873 1699+-5791 -8558+-3402 823+7881 3732+-3044 355+-1130 5208+2174 4023+-2126 -7195+-4169 -6757+-7665 9428+2017 3374+-453 7052+7551 8030+-832 5314+-3239 8231+-8144 8461+3709 9621+-6880 -895+4406 -188+-6769 4360+-7617 -4865+7844 -3050+-7460 -4097+540 -642+6991 -4954+-9573 2593+-5460 6155+-7344 3673+6383 4041+651 -2897+6877 -7001+-1764 3282+1336 7672+8979 6165+348 -4404+-1312 4875+-6727 3136+1802 2146+-8625 9605+7998 7465+4307 -8677+9558 7857+3372 4458+5915 1036+-8394 -1195+-9006 2212+3489 7436+2845 -6056+-7412 3725+-4988 -1191+857 5982+1292 -7691+3456 -777+-6170 6315+5530 8575+2788 -1171+9974 6394+5546 4307+5481 -9619+3192 7144+50 2452+2669 -7500+3383 2786+-434 -1041+1905 3975+6074 -1222+-2726 1974+-1469 -8854+2678 311+3988 -9556+-2872 -9208+-4763 4063+1269 -5710+8624 3992+-6235 -6726+-6873 9120+6291 4823+-6938 -7789+-4050 -7992+9279 7719+1258 -8952+-1125 -6031+-2570 -4177+8274 2504+-1936 2520+-27 -8975+-2786 5275+-1385 9288+6793 -9645+-104 5940+-9875 -4286+-6142 -4661+6925 -8607+8262 -7407+-4848 -2006+-9071 -7644+-7852 -1654+3382 -2714+6124 9567+-1438 -8516+7953 -1115+2875 -996+-8284 3579+-9805 -6133+9163 9976+1591 5900+-5875 9738+6571 -4723+9875 -1383+2505 6219+-5195 -9783+-1996 5737+-265 701+7081 5857+8005 4630+6886 -4402+8124 9873+-1905 -7581+2608 8409+1341 -7308+-3489 -3845+53 -5726+9952 -5+-2165 -4504+-8462 -5483+9965 8485+-9926 -2508+4773 -8697+-6300 -8560+-7855 -3381+-1343 2766+825 -5248+8964 9703+7371 2097+-3747 -3885+1107 -7630+-9070 3864+-4033 5602+-4863 -6057+-9099 -565+6584 -2354+9335 2390+2617 7356+-4450 -5005+-6270 -907+2251 4688+5756 4169+-5753 5394+3328 -5529+120 9965+-2053 -7630+-8767 8251+-7447 4452+3102 -4876+2776 5959+9472 2001+-3211 -7881+-3136 11+-8971 9254+2427 9285+6082 7779+-4346 7253+5002 8686+7836 5850+-1059 2325+-3104 -6039+-8202 2014+3169 -949+5771 -6781+-7465 9857+1883 -7972+3562 4993+-7059 7681+358 8370+5892 -3616+2383 -2533+2735 -5829+7449 2226+-2133 5063+-1763 8966+-4649 1492+6493 7093+3878 -4102+-9716 -8372+7394 2633+-967 6477+-6240 3544+-7662 7943+-1755 -2170+-6970 1798+7335 -3018+-4387 7551+-4130 -7786+5459 -9371+6781 -7777+-2855 -6108+-8929 5141+-8371 -5333+3596 -862+2087 3153+566 2113+3038 4143+3849 -6923+-7083 -8521+-6450 -3787+-7394 -7421+-5992 2800+-8515 -4897+9187 1518+-5794 -6229+-1029 9421+-7085 -1077+6060 3953+-2967 -4086+-6318 -3478+-6299 -9822+-7837 -6093+5206 -7023+7881 -8070+-1125 -9393+-2623 8302+-3291 5471+-4489 -3135+-8657 5176+4809 -2091+-4189 -5970+1793 -1521+-5060 7824+-9030 -5841+2803 3124+7005 9761+-7044 -1057+-6078 8523+-2981 -9617+3644 -3497+2321 1377+-8176 -6138+-6629 -4785+7735 6092+-4072 309+-7520 5483+6251 -9122+-9630 7925+-1610 3320+-7521 -9068+-8505 5424+-3384 -3453+-5240 7991+-5683 -8411+1960 -5505+9642 1859+-5533 -5083+-3553 -8871+8938 -8386+3567 7980+7873 -1796+8650 -8133+-3073 -307+-3023 6842+-6393 -9693+-7955 5172+-5561 -812+1000+-9569 -374+1967 -1508+-6477 -6073+-26 7964+5665 3463+5288 4214+7104 -5091+-1354 -7994+-8700 -2934+-5076 4554+1682 -3245+3492 8225+5975 5412+-4335 5058+-4610 7469+-279 -3453+6359 9134+531 -6890+-3563 449+570 8899+-5014 -735+-9334 6824+33 5296+-7556 -5407+5249 6449+9959 -6101+4245 4641+-1361 7240+2319 -8491+-8863 6277+4036 8154+1943 2523+-1944 7492+194 -4073+-9426 -6268+-5061 -1507+583 4656+8119 -9763+7288 -7847+1092 2600+1079 2337+923 -3562+-1775 -966+9978 5586+5235 2383+-889 -8407+-7429 72+-6988 2172+1646 5300+-1939 -7309+-3115 -2622+-2463 865+9175 -5909+7530 -6426+6971 1362+-110 8789+2377 -3250+8067 -2973+-9671 3767+-2419 -9779+-6529 9979+44 -2697+-1101 5100+9111 -94+7941 4356+-9057 -3283+6351 4897+2297 4853+-1082 8178+4938 -3536+-3378 -5526+-6259 -8452+-2590 -8930+-1668 -4506+6072 6683+8410 3692+-4618 -5030+1838 3259+7504 2464+3701 1023+6028 -172+2040 9167+1952 6507+7744 4425+-1681 -3669+9777 2316+6651 -6428+-4339 -2862+-9785 7926+-8121 4278+301 -479+-9483 7953+-3676 5013+1891 4367+6956 8821+-4445 -6448+-7956 -4030+-1799 3091+6165 5145+-1852 7231+-3672 -7939+-148 9782+1255 1361+-9063 -9731+3740 4829+811 2781+4765 -7628+-2970 -554+-5631 1306+-8435 5224+-6460 3779+5515 -1141+4460 6564+9495 -4311+-531 9600+1454 7714+-9376 -9551+8795 -5488+7962 7458+-6548 8500+7299 -3071+-9122 -4052+6242 -7232+6536 2152+-1097 4450+2282 -6254+-9876 -6560+4715 9475+8833 9858+-7652 -4324+-6275 -4479+9147 -7658+-7879 -7799+7335 1163+4140 -5749+4972 3977+8739 82+-6042 -3554+-8027 8489+-4587 1082+6932 4652+-2130 8585+-9952 -527+-7087 1953+2755 -8963+8328 -9392+-3633 685+-4932 6343+9410 -1179+-492 -5155+2604 -5892+-9869 -2921+-171 747+-9160 1245+2207 9373+8805 -2086+-6892 -4875+2789 8680+9422 -9322+-6634 -1810+-1936 1923+4327 4470+-1432 8655+9047 5738+7180 1435+-3363 7424+-6238 -306+-820 6752+6659 3170+232 2275+9988 5351+1077 6573+-5846 -6652+1889 -2647+1256 7500+8589 -7791+2793 5570+-938 -6084+-703 9186+-2826 6098+936 -1669+6781 1934+-1036 -6899+-4654 -3836+8264 -1044+-3853 -5554+8854 -1016+579 -577+5818 -5297+8779 2362+-5653 -9662+5074 -370+-8080 2214+-7873 5037+-5159 203+-1888 -5746+-4589 -6424+-6802 1797+2969 5894+-8626 367+8897 -2042+808 -9882+3842 7088+9113 -6187+2308 -9765+2453 2107+-9225 -5669+-9864 -9805+4456 -1729+4083 -9253+3503 8540+-5041 1254+-8060 -3734+-7145 -7860+1168 7512+-3102 2529+-9289 -8344+1580 1780+481 -2533+-440 -2141+-628 3374+-9877 -1102+9939 -3144+5379 4145+-3916 4+-345 -826+-5713 -9140+-7015 -3007+-6149 -3257+-7066 -3296+99 9426+2338 625+-3437 4135+-545 9384+-8398 -4148+-9510 8043+-5818 8897+-7037 8409+-7534 -8655+4791 -8078+-3632 -1923+-1120 -2334+1968 -5183+-4754 383+7704 6062+9967 -4386+-4647 -8445+-9147 -8982+686 -8562+9123 -3592+7441 2650+9742 -9818+-4777 2328+1375 -4358+9000 8417+-2208 -3775+3227 -161+-1835 -5385+5644 -949+-5578 -913+-2807 -3051+8886 4661+1733 -9123+3076 -2325+-3593 7621+621 -3503+-4032 -4602+-3633 -8706+4360 -4810+1256 6668+-2535 -7016+4818 -9616+1757 5817+7125 -6242+3865 -9780+7533 -5888+-4565 -953+425 -9820+986 8136+-3644 3855+-6924 -9867+-7759 -8019+-6287 4318+4118 3636+7375 -3251+-1857 -3451+2334 -9598+-5813 -4816+-7564 3247+34 3593+9732 4182+6475 3771+2987 7029+-4546 5068+1706 -2319+-6635 8701+-6393 8324+2992 -4285+-5345 615+-9191 9517+3856 8892+-8259 8999+-4551 4240+-7359 6412+187 -1071+8253 -140+-1676 1190+3280 -362+5739 1545+9522 9384+3561 -2853+-9898 -4238+7568 -7959+961 -2617+-7426 5037+-9184 -2348+-4870 -498+-8749 2945+-8393 -396+-2782 2897+1523 3939+-1495 4747+8544 -6579+9874 2077+9116 4044+4854 7906+-7468 -4954+-956 2806+-7686 4147+9913 -4660+3583 -287+-1264 8046+-9490 -3441+3680 7384+7771 -9041+-5356 -985+-6292 -9016+-2996 -4447+9221 6665+-4072 5492+7596 9865+-135 1137+3947 2210+5919 -7937+6603 -6447+8436 -2932+1384 -7263+-7960 -2801+7761 -1982+-4025 -6992+4079 5266+-5498 -8123+9189 -1380+-3207 -5085+-6149 -8939+-4502 400+-7578 727+-1985 -9796+-923 7472+-498 9878+7506 72+-6274 -4784+-619 4844+6016 585+6086 3213+4343 9205+5146 2741+-3968 2305+-4069 5942+-911 -8416+4969 -8789+4149 8279+-4545 -5124+2649 -6804+6213 -5307+8016 9785+1862 -3914+-7029 -1871+5213 5810+6093 -7379+6787 9371+-9474 8059+6462 1027+-1501 65+-9900 -2561+-9050 6493+4028 8828+8973 -4085+-9056 -6489+-3657 6237+9630 6296+-4644 -679+-3818 -6927+-8175 -4411+3696 4494+2653 -6445+-9266 9982+100 -6647+-7338 -6376+2008 -485+-1139 5400+-5037 3260+-6731 -5673+5807 -4850+-9319 9515+-3498 -7100+1884 -6286+8379 -4389+5664 -4222+6451 3432+2609 4946+7830 -51+817 6483+-9801 -1011+395 5939+6092 1383+-592 5426+-6055 6449+339 -8116+1060 -6623+-8156 5364+6017 8378+4995 -5671+3624 -97+3651 -4251+3496 1988+8407 -6143+-2918 -7037+-5653 -843+-7264 3247+-3072 9986+-9440 8264+6525 2959+2561 -3617+-2239 -2807+213 -7155+2141 -7419+-263 3616+-2679 -6455+-410 6294+2885 8541+-5862 -6146+7982 8713+-5483 4568+-6915 -3640+3143 -8399+-4473 6816+8431 -4950+-729 -6320+3227 -926+5242 8770+-9861 -6132+-240 -9845+7650 5274+-3232 -8118+4003 -8345+-5886 8249+2397 -549+8579 -6037+3598 -1495+7897 -7524+6578 -371+-296 -8998+-1589 3511+6189 9840+-9294 7873+1621 6374+5990 -8479+-5536 -5553+2056 -9927+7386 -7977+5734 1711+7250 -3469+2037 4525+-6369 7127+-1818 556+-599 -3157+4418 -2693+-6833 1327+-7706 5235+126 2691+7701 -4931+4837 6111+-1233 5381+-8225 -8871+-9048 9619+-962 9341+4717 1965+7666 -7117+-2506 -6592+-89 -1240+-4301 -6399+-109 5110+5306 -1474+87 -5464+-5687 2309+-9012 -639+926 2007+-4990 5881+4940 1241+-4272 -6348+2976 -2373+-404 -2942+7227 8322+439 -6739+-9434 6804+6607 -2716+4281 7965+-688 516+3293 1533+7499 2154+-1422 8793+8687 -3225+1510 2265+969 3990+-1529 8653+4720 -8202+4351 6059+8501 -1315+-467 8050+7314 6613+-7039 -5361+1498 -928+-2272 -7312+9100 -2242+-796 8988+6639 -3856+5579 -2695+2861 -4219+9792 3309+5512 6014+3920 540+-2697 2770+1352 9268+1221 7322+5760 3817+-5126 2502+8381 4114+-7094 -2612+5516 5800+-3782 8347+668 -3611+854 4742+4408 -1678+2640 2919+3426 5632+6047 7952+7216 7748+7316 7240+5795 5066+-3815 -3600+-1087 4893+-2472 -1194+8818 9890+8416 9848+2012 7177+-4577 5894+-9848 553+2934 -90+8760 2292+9063 9557+2728 -2406+-3870 8403+-2931 5780+5662 -4855+-4379 5937+9419 -3968+-8547 -1157+-2084 5705+4869 -2096+-3041 6593+-4511 -7994+-9310 2919+-3400 3016+512 -8935+-766 -6752+4366 967+-8967 -1210+-7705 -3719+-1656 -2270+185 -3309+7193 7561+-2404 -7459+-4700 -3532+8756 4396+-6702 7803+-3057 -7952+9537 -8686+9560 3914+7215 9341+-1596 -5676+-7841 5013+-9831 3682+8343 -5387+7640 -3988+3879 -5606+2274 -4128+9037 -6503+-3248 -209+-7311 -6668+-247 -945+6941 -7936+-3184 -3482+-9913 1294+-2179 -6875+5661 5428+-8410 -1632+7009 -6862+-4743 9042+5879 7021+214 -5773+9604 3509+6051 -9011+-6328 871+59 -7980+937 -6872+-6927 -1241+4959 -6771+-279 -7859+-1304 -7295+-5757 -2306+3115 9595+8819 -8828+9620 6214+8986 -8560+-1216 222+-5347 -3640+-2553 4727+3324 4614+9611 -8369+9110 -3158+1238 1656+-9749 2119+-2354 -8145+3225 -7586+-3919 7398+3094 -1889+-1113 6754+-2595 -8568+-2154 -9902+-66 9678+-1281 -6398+5503 3302+-9934 -787+-3637 -6608+1622 -7168+-9149 -6206+6164 8494+-5526 7996+4809 -1240+9456 1956+6753 2499+-6280 2876+-3127 -3155+7359 -4282+-6386 2107+7737 2004+-5738 -4919+5049 5049+-6792 -8522+-492 8663+-606 5220+2591 -7411+7440 -5967+-6262 7988+1234 1088+5521 -8987+9506 5993+-3280 1503+-1007 -2332+-6032 320+5786 2349+-9204 3318+-8846 5208+-7270 -5626+-4174 -7882+3390 -174+-2396 -5349+-7308 1726+8617 443+-2355 -8359+-4017 3363+9938 6345+-3379 -7249+2141 -3557+-6366 5411+9227 -5925+-7540 -2484+-4169 9029+1748 -5309+8957 2170+-4371 -714+7607 -4498+3163 3076+-708 -3888+5319 1479+6739 -7977+-4912 778+-5426 3026+473 6416+-1931 -5941+-5836 -7657+388 -6780+6936 1772+5340 2916+2621 9396+8247 -8772+-1189 449+5361 -3663+2729 9911+748 5230+6436 5075+8093 2830+-1004 -7265+-1670 1130+-7435 -4244+2664 8139+-1471 -9148+4931 3493+5614 7773+-9359 -5148+3658 8388+1979 1186+7124 8908+-2625 9681+-8844 8743+-7422 -5290+9392 -8935+9188 5409+-2613 -3459+8179 -4335+-9443 8835+3190 5925+7930 -4698+-2882 -3236+-4275 5126+8192 2495+8954 -9288+6928 4285+-5332 -3028+-2638 -3965+-6586 -9686+7369 -8988+8193 -5370+385 3735+-7713 3272+-727 5690+9179 -7394+-4310 4224+46 5032+-8768 9975+-1503 6717+-2788 -416+848 -8937+3178 -3195+-7858 -2918+8892 -433+9851 6946+485 -3998+9604 -9277+3264 -5522+-2271 7759+-3607 2840+2603 -7523+-4475 -7170+-4989 8635+-824 -707+-3201 -1907+9666 -3841+-3953 -5623+-8731 -5155+420 -9707+8737 8769+9432 2152+2799 -6185+3489 8559+4479 -7335+7601 6503+3590 8697+-6866 8161+2675 -7214+-5757 -911+-8697 8761+-791 -8755+-4698 8361+-5837 4342+6411 8423+-5102 3956+9393 -5790+1776 -8696+6229 -4564+-699 -2656+-6655 3144+-540 1286+-8793 -3611+-6515 8528+9351 -4702+9506 2992+5095 -2134+3028 8249+1608 3396+3024 7943+454 -2563+-1491 5514+1567 -5383+5592 -1181+4353 -7346+4540 7403+-56 6268+-8496 8467+4348 4200+-7427 -3733+-4369 3353+5748 31+8512 8807+-7405 -9691+-576 6438+-4432 673+-1384 2014+9275 -7016+1501 -2650+6115 7329+-2449 184+-5108 -4227+1615 -4483+6297 1161+4133 5788+9247 9173+-2744 -1282+-3052 -7416+5432 2714+-6392 4285+-9633 8539+-4551 -8515+8366 -3622+-3491 -9601+-6468 -7099+9244 2645+-4808 6974+5675 -8426+8893 2421+-5311 2321+2106 1531+-5901 6277+3636 2380+-2735 6439+-6237 9249+197 5579+-7374 -2870+-9256 -5659+-8614 -9637+-6871 -8977+-187 7878+-8868 2959+-9292 -3459+3726 428+6653 -694+614 9618+2291 2758+-2811 -8041+-1458 -6665+6184 -7580+-9364 8297+-6149 -3681+9498 7658+-7990 -6214+-6435 -3612+-5702 -1118+9223 -2334+-379 -2273+-1094 -9889+-3158 -6917+1698 6220+-8408 -6604+-8909 -9979+-3229 -6058+9985 -2802+7984 -9012+-2532 -6579+743 5345+-9043 -7032+9615 -3104+-1788 4900+-1909 -2740+5789 -6244+-1253 7118+7347 -1866+3371 3250+-7910 -4646+-8562 -2934+-7917 9410+-5836 -5574+1766 5877+1184 7027+-192 -4328+-1209 3096+6574 2679+1250 6479+-7684 869+2681 8281+-8072 7650+-4372 -9176+7453 -8899+-3292 9392+-6496 2784+2561 -5223+-617 8058+4649 -900+4613 -6025+-6973 5664+7501 -550+206 8890+-7451 -5163+-3972 3765+-9214 -6432+1848 -2517+7408 -8406+3456 -7860+-2190 -4159+9265 -9638+-4015 -7988+5361 -826+296 -5732+8145 -6040+-8487 -3384+8241 8961+-5548 -5583+-2733 -1069+-7248 -2284+7555 7737+2724 -6178+4120 3028+6055 -1358+-228 2063+3275 9345+9702 8684+7377 -17+7720 7331+2833 -3510+-494 -2508+-6510 4528+5142 8012+5095 -6059+9537 3627+-8267 1073+-7910 9608+-6565 2066+8073 5381+-2597 -9366+9305 -2243+-5083 -211+6371 3224+5143 8236+4469 5576+2421 4632+3311 6733+3446 9271+5821 9478+-5515 653+-3344 1787+-4875 -7280+6719 -3335+3054 -1478+9942 -8546+5931 5419+-5883 -1884+7765 9638+-9993 -3601+-1021 1646+3083 9162+7294 4270+9924 -6304+-3478 8159+8807 7255+4565 1360+2676 -6745+-1999 5709+-9250 330+896 6439+9340 5659+5176 6946+-890 0+-9270 5418+8225 -6018+-9715 9895+-2701 -4089+-5953 -1376+-7227 1430+-7385 -8315+3468 8895+-1168 2057+8797 -9863+568 -6548+8003 -6791+1910 2662+6025 -7933+4718 9580+-3584 -9516+6246 -1912+-5785 7367+1000+-9323 -1789+4669 -2183+3613 9724+9736 2579+-8568 2223+-8003 -1814+5790 -3000+-104 -4851+6707 8780+7311 6907+-1523 -7849+5916 2388+5701 -9023+-2950 3402+-145 5043+-1828 -1551+-6262 3420+-7428 -3091+-833 -5580+5611 -8236+-2573 9973+2375 -7811+-1394 -8472+-8527 712+-6424 3294+4628 4978+7446 8884+-1457 2705+4228 2918+-1577 3010+-8913 1253+8377 4818+9090 1940+3300 6704+9392 3223+4058 5852+-4155 -6642+3251 -5246+-7037 -1336+2761 -5547+9189 4847+2422 1819+897 7395+5047 -6873+2979 5436+6065 9589+-4764 -3519+-1960 -5967+7820 5251+-9630 -6356+8234 5477+5065 -3280+7498 -4217+7740 5664+9108 -5672+-3134 4678+-1183 -8582+-7556 91+-2098 -7343+4068 562+4186 1589+-590 1051+-3646 1417+-1992 6996+783 3309+8 -6290+2549 -2156+5355 4248+-4235 -6813+3884 -8892+-1974 -5910+-9640 -7848+6724 6728+-8794 5207+2601 6939+-9139 -932+-6893 -6133+8922 -3336+-3944 4800+6934 4900+5441 7873+-1911 -8043+-3936 1675+5778 4197+-1306 -4379+4011 -2782+8169 3741+6767 -6937+3444 -7030+-3009 8060+-2346 -233+4840 -2410+-4088 -9107+-4014 -3140+2484 3525+-1231 -8732+-3366 -3986+-6908 8918+-8448 -4715+-4283 -6041+5040 8119+2797 -9889+-4102 9461+4929 -8255+-8190 -3764+-1702 1637+-8497 375+1608 -2337+5395 -614+952 8+-5989 3675+-1105 -6782+-7861 7518+2636 -5244+5181 4037+-3752 -5553+-7534 -7390+3024 -7114+523 2252+5345 -4571+-3937 -5321+5019 -6777+-125 -4031+-8433 3071+-6904 -3196+-2092 -3939+9537 -4440+5021 -6804+-6312 -4613+-2347 4307+-1762 2928+-9085 1711+3588 -9434+5819 4275+-9282 -2839+3947 5996+-3550 -2405+7566 1935+1849 9789+7773 8057+-3405 4533+1913 940+4697 -8976+215 9407+4377 4857+-1535 4532+-4731 -5574+6872 -6617+1527 -6541+-9840 3528+-5029 64+-3155 -2495+2483 2648+-8084 4273+7282 3509+4021 5068+9146 -6591+-8369 1805+-5054 364+809 6659+1969 -5955+-1423 1363+-9407 1567+-2356 -8213+-4990 -8872+-3872 5612+-4202 454+5665 1298+4085 3535+9492 -6304+706 -2861+6126 6395+5823 -354+-862 5524+5903 3686+2537 -4712+-7249 6605+570 2386+7623 1818+-9244 9741+1450 -2353+421 -5010+-4201 9532+-6389 -621+-6022 3505+9128 -2509+-3129 3983+-5967 -8145+-1998 -3244+9448 -5667+5275 7326+1137 3783+-8936 4064+-8916 -5991+-3152 -4750+1152 98+-7098 9661+5248 -5627+7578 5201+3308 -1032+3229 -3356+-127 460+-9165 -4815+-7352 6651+8678 6639+-5183 9078+5751 -9613+-8683 3812+4161 -5437+1731 6727+-3929 -6778+3399 -2788+-6051 -2525+8043 -172+5296 813+-5288 -5651+-7248 9123+-1743 8361+9871 -6369+6667 -9737+7013 1058+-2994 -5999+2877 -6547+2734 -4392+16 -4843+-2639 5886+3192 -2146+2381 3480+-1608 3369+6784 1717+-6815 1818+-7366 9073+567 9201+3493 -1109+6435 -6037+-206 -3263+4113 2353+6985 -4929+5238 -1662+-7437 5425+4748 -4276+3345 -9700+6198 2634+3209 674+1635 -3848+4106 -6764+5821 -6019+-4179 -4298+952 -5133+-7998 2582+1376 4038+-5350 -7597+1782 5759+4945 -2914+3195 7500+9251 3825+-2454 -4712+1605 -9832+-591 -5543+-2767 7265+-5539 1482+-2312 2502+-7749 7187+2378 4272+-5769 6028+-1838 -7402+6446 6071+-1531 9448+-1675 3639+-2890 9155+7953 -8196+8187 9043+568 2649+1328 9247+-8758 3537+-8030 4611+1171 2579+-242 -2366+8758 -1620+1670 2794+6623 -9281+-8857 9579+-9171 4672+4068 8411+-2242 -3934+-7357 -6803+-6317 5123+2248 5973+9130 -7628+-7141 -1383+-8549 480+8089 3813+-5539 -4375+-448 -7446+4953 -9697+-1943 3344+690 8751+-3125 3219+7150 6363+-6246 -8100+-8565 9292+5285 -5739+-1306 -2989+-4174 -8543+-3625 1451+5428 5702+-311 6210+-3733 1094+3138 -8906+884 5306+-1904 -502+4747 7832+2339 3602+-9322 -1051+8981 -9863+-2245 3026+-7324 8304+-4720 -2290+-3060 -4574+2916 4134+8976 5156+-1192 5936+-1903 -5719+-9440 5555+-4862 2438+-2035 -7291+-9557 -5157+-5447 -1628+-8099 -4180+-1020 -2491+9622 -5101+4169 5173+8179 8996+-2492 -8875+7692 7877+-9471 -5093+-6306 7525+-7887 2389+3692 6533+-6740 -1077+8998 -7477+-1807 -6853+-167 7989+-8710 9319+-6144 6882+3834 3858+8896 -3706+4306 5374+5148 1672+9076 3314+4612 5789+2342 -8848+-9168 1824+-694 -6992+492 -9289+6379 -2377+-6900 4458+387 7639+-3692 -3768+5326 -5056+-1553 -8553+3763 -8410+-172 -7467+1033 9946+1689 -6612+9919 -4666+-2027 3034+-4944 6051+5575 -4214+-9422 -9475+4102 -5122+-9537 -7741+855 7883+8628 2323+-1970 6061+5104 170+4466 5219+1709 -69+-8337 -6875+1109 -8009+-4829 -8+4614 1408+5499 460+-7767 2739+5651 1259+-2520 -5519+6350 3566+217 1008+-9425 -9047+5559 9916+-622 3839+-338 5315+-7384 -8189+-4473 2161+-8461 4937+-5457 9196+-7968 9412+-7030 3840+-2657 4415+5354 -9733+3316 -4117+-9952 -4293+-155 -728+9943 -4289+-876 -4919+-3721 9430+-1020 5673+3351 -5719+-8982 -5067+-2319 9931+-2912 -2923+3982 2404+-1986 -9996+-2230 4966+-7495 9253+9417 -8985+3051 4018+3498 -3125+6807 483+5763 435+-7904 2696+-1877 2040+319 5765+-3797 2315+-7344 5025+7488 -660+-1591 6482+640 6880+7157 1324+3022 -9563+9236 5641+-7342 -2976+-155 2587+-6444 600+8892 3984+9348 7130+7187 1765+-1641 1327+2301 -3272+-412 9445+9812 -4640+4999 5660+5071 8698+8036 -8079+1974 7032+-7826 -58+2483 -2493+-8586 -7808+1476 114+4221 -6340+-6814 -2561+7198 6063+7202 3017+-1141 8914+5673 -7015+-6104 4276+-6911 5093+-8332 -4318+7756 2611+4736 -7240+-4658 -521+-1407 -7880+5516 -703+9217 4904+-4144 -627+-9456 6768+5531 4616+9540 9996+4333 -4578+-5325 -5134+-9160 7244+9804 520+6184 8721+3038 4219+-53 4373+3282 4323+-6342 -5238+2122 8601+8482 -9905+-8875 6540+9456 8628+3433 3254+7285 8133+-8640 6389+-4841 -8871+5605 5497+943 1194+6301 -6985+7392 -9373+-2818 79+5292 -4569+-9231 9482+484 6141+-3716 -1313+3973 -4075+963 3874+-3259 -9307+8789 6421+8995 9867+-9918 1386+4777 -3593+6309 6842+9979 8656+3717 -2981+-624 -4645+-6604 -6006+9722 6998+5694 5232+-9060 -9947+1212 -8559+-4609 5548+5498 -6884+5917 -4938+-2399 -6158+3643 1363+-9286 -3901+-933 -7696+-8124 5925+2682 -1867+4838 -9467+9839 -5504+-2807 4635+1390 9862+976 8140+-2490 7066+-4157 3966+-9552 -7005+2514 3911+-8218 4294+4303 -7406+527 -910+-9425 9192+-7160 7887+-609 6527+3014 1072+3176 -9683+80 4032+3669 -648+4266 -385+9012 326+-320 -7312+-1219 -8763+4445 -1032+2384 6164+-8929 -6386+-4269 -5831+4069 6590+4809 -6866+7923 -4999+103 -520+7347 -8792+5943 -7068+-3858 -1985+541 5774+-1913 3426+-7388 7593+-1786 -8148+4789 -1854+-6404 -7733+-7172 5229+5182 3164+3998 3996+4987 -4705+-4054 -9574+7264 333+511 30+9168 -6983+6705 -1444+-1230 -3878+-3509 4033+2446 6099+5132 4977+-4718 715+-4924 -9531+4556 8172+-8242 -7961+541 4800+-9222 -7866+52 -9190+2194 -8178+8329 -2476+5238 -8943+8105 -1729+9426 305+2676 -4143+8596 5852+-4766 -5314+3858 -1467+648 4301+8629 1691+919 -2164+2346 -8715+-1935 -1474+9738 855+-8010 1988+-9698 -3715+4777 -2167+1471 -3675+-2732 8759+-6460 1304+4037 2707+-9449 2850+9978 -7163+3653 3581+2550 -6132+-5715 -7633+-3716 2233+-3394 -1532+-900 -4455+-8393 -2158+122 1929+-3087 -1044+7686 -4883+-8936 477+1387 -6455+4713 7998+-8388 6383+-7175 -6550+-6151 6519+-8391 1636+-5684 -4648+-1131 -1525+-3349 5158+8830 -5689+2546 1157+2374 -9623+6369 7576+6650 4944+6028 8109+6153 6089+-3648 -1199+8028 3431+4232 -1830+6234 -8481+3919 -963+472 -2172+756 -1065+9732 -1262+-524 9088+9773 -9369+6077 -20+8321 1748+4931 4204+-5090 3920+-1082 -4065+-4853 3924+-2719 -4300+8946 4373+-1167 -4531+9784 -5699+4362 4941+-5133 8835+-5254 2252+-9130 -7083+-4831 -6820+4603 -9958+-1154 -8823+4091 2612+7681 -3416+4604 2615+3552 -9742+2707 4651+-9755 -3996+6023 5738+5270 -8971+-3311 -8110+-9963 2390+-5093 -8752+7477 -1238+6685 -5165+3402 -6803+519 648+-3368 1347+7670 4705+-2232 4891+-4132 8597+-6565 -6369+-1075 7087+-1857 6888+1126 1028+-707 -3893+1421 -6767+-8667 -1417+-9828 5838+-9607 -1078+-960 -57+-4362 -5472+7617 -288+-4245 -1539+5864 -9255+-9577 8286+-9661 9878+-3234 -4889+1187 -5496+-2073 1767+799 8344+150 -3597+5291 -3902+7608 -1779+7125 4465+4549 -1887+9902 -3498+-167 584+-4227 -1759+1158 5760+2390 -4093+-1735 -9214+-560 -2821+-4605 874+-9376 5485+9300 -8658+9219 338+3109 -2725+6858 -7695+-4541 -9442+-887 3772+7655 370+1961 6491+4550 -5150+7448 4808+-1607 6087+6771 2866+-5067 1241+6120 3832+-6406 2525+-5895 2702+4884 3160+-5149 -282+2123 -7881+-5241 -6200+-1097 -9940+3428 1027+4467 -2877+8063 3010+-193 5712+-9114 -4862+8882 -1936+4350 -6977+-7268 6967+-2823 8165+4528 -5435+3510 6848+6045 1045+-3414 2255+-2312 -4677+6181 -742+2351 -8661+969 7343+5861 671+4792 -330+-9126 683+8512 -9412+-3344 4992+-8919 1096+1646 3282+7013 -4085+-1796 4573+2343 5625+-6781 -3414+-6671 -2135+-1930 -6544+8463 3776+9806 1121+4908 7947+5972 -8133+-3006 -7496+-677 -949+8696 -4307+-7072 6623+6206 7594+2022 -6149+6275 -5250+-4878 -3312+-6644 -9182+1114 -3893+-5890 -3801+5466 -3078+6411 3529+4723 -331+9638 2210+-7868 -1348+-3701 -8687+6088 -4362+-2814 1054+4378 6511+-5464 109+7074 -551+-1154 -9931+-6765 9193+-2556 545+7243 -5511+-9311 -1144+-4257 -1475+-7650 1303+6999 -5570+2756 4515+1483 9540+8430 1398+9326 -4650+-7323 2781+9108 9516+3697 -1224+6709 5588+9518 6669+-1267 9404+-414 -6454+-9096 6522+-1668 7897+-480 -9058+9904 -7475+-2194 4836+-4093 -8682+9394 -9947+-1864 -9871+-9372 -280+5355 9572+6637 438+-3330 -6124+-989 5670+-211 4853+-4034 3425+6341 -1468+-2945 -9832+-571 -9422+249 -9103+4134 9709+-4714 -1944+9063 -5884+3311 -1207+2800 2870+4463 -5863+3671 157+9413 -6389+637 -5789+2308 9373+-6724 447+6530 -1514+-3878 -8816+-6174 4687+-3487 6095+-2187 -7294+-4022 -5861+-4334 -9246+7910 8012+-4021 -5043+9827 -3116+2168 -9882+-6597 -3698+-7623 4087+7337 -4441+8745 6018+3917 5361+2306 6967+912 5073+-4272 -7940+-285 7143+-4698 -9301+-5804 -4765+-8333 -118+-2508 4205+-9354 -6821+9172 4089+7824 6288+-9024 -3654+535 -6733+-6725 -7662+3458 -9097+-3624 -8351+-8588 -23+7317 5211+-6599 8415+-7556 4411+5463 -7504+8737 -8494+3853 3498+-7108 6690+4815 7530+9413 20+-6161 8003+33 -9867+-2559 -4810+-9161 7097+5689 6874+5469 4374+5702 8995+1545 1697+-1909 -1200+9091 -1207+4668 -354+343 -7510+8778 8990+772 -7053+6365 -4320+6430 6462+-1478 -3357+-6310 6791+-1240 9520+4737 -9210+-8402 -987+-8434 -6573+-849 -9695+-7492 7560+4562 -7185+-875 -9331+9339 -5615+-5073 711+8081 -8675+-2636 4683+3 -8607+2428 3876+-8053 4500+3966 6888+5092 5274+7335 -5402+-6574 9350+-7796 6963+764 2912+1006 3100+1284 -4241+6731 -7337+-4425 -6982+-1929 -3299+-1817 8316+-4170 -1181+3551 7804+-4147 1002+-2515 -3246+-9500 -3831+-3755 1029+-7059 -6292+-9132 2631+-6923 4402+-7337 -4148+-9384 5437+-8023 5088+7518 9231+-3810 -1586+-399 3676+3294 -5107+-9006 738+4764 7019+-3718 -8570+-1826 -3987+-7698 -7407+-7980 -2024+-1721 2895+-8616 738+-4883 7161+2279 1319+2745 -8248+-448 6356+6636 922+7408 6716+-3848 -5509+-6436 -213+-3323 9516+9788 2031+-2249 4386+-208 2976+7322 -4437+4963 7963+-6433 2853+-9104 -3713+-2795 -3463+-4518 6793+-4484 4201+-1869 973+-5666 1932+2186 -2113+9516 3632+8773 5172+-4215 6538+9784 9986+-2912 1340+-9208 -7342+4293 -5566+-6592 3619+6722 2684+-5981 -7784+-3560 7857+8337 189+-1221 -6206+-7531 869+5697 9106+7818 -3293+-4433 3015+3288 -7909+2592 2715+-3248 3848+3472 6186+9308 -9424+8605 -1227+-3550 -7943+-9059 6893+-3239 3384+7922 6156+-9538 -6623+6275 582+1908 6972+-8912 -3411+1000+-6091 -2869+4051 -4808+-1569 -7917+363 -7176+-1064 -4578+8018 2803+-8591 -2942+-3282 2973+7091 4091+9227 -4719+286 8559+-93 -1564+-4158 4284+-9773 -2857+-6057 5203+-2412 -473+-2582 -1538+5698 6201+-6823 8758+-4704 -7987+217 4254+1196 -9705+3363 -7662+-5223 6972+2040 1142+3499 -30+-4123 9291+4508 9652+3806 576+-8883 -937+3907 2014+-3048 5891+9887 7139+8974 -1801+2391 -4655+6715 828+3062 -4221+7032 6353+-3664 4681+-7699 -9271+3716 -8558+-1648 -8229+2905 9797+295 -2735+8542 6219+3603 8887+-9779 9015+5817 -6771+6072 7522+-4290 7162+2621 1805+7668 -3193+-8305 4370+-4080 -3142+-450 8405+5761 6214+-6672 1178+-3306 -40+3332 2818+6705 1245+-6099 5299+-9366 -1412+-4082 6903+-2065 6114+7945 -2487+2601 9614+1693 -9645+-7619 7847+3527 -9016+-440 -4799+-8513 3759+-6263 -1228+-7804 9066+6817 603+3834 3418+-6053 -3309+7343 2498+-7688 7834+5504 2241+1018 6885+7925 9449+-3465 -2037+8838 1942+4652 -9612+-375 -4246+-426 -3102+8156 -1001+194 -5554+-3022 7663+2219 7329+-2421 2344+182 -9298+-7993 -2921+665 -9225+-6932 -2945+-8616 318+-6788 729+-9142 2737+3621 -3276+1622 5870+-5085 -7144+4828 -7167+8591 -293+-8615 -7238+8471 9789+7913 8005+-5096 -6232+9853 -3446+-8344 3219+2699 5083+-538 -3563+3303 7487+3424 3451+-8676 4402+-8218 -2381+-6378 2101+-1253 -7246+-5128 -8445+5175 -9568+-3488 -353+7395 9814+-3430 1347+5084 -1635+3991 5353+-5694 5234+1650 4344+7112 -8021+-3154 4831+3315 4652+-2413 6275+9165 718+948 7908+-5461 3781+8276 -1947+-9694 -7784+-1367 -2656+-1703 9479+2641 -8598+-4780 -3850+-6189 9348+8227 6188+-4542 -9030+-3083 -1957+5318 2162+-8078 5761+-5337 2170+4885 326+-8412 4015+-2361 -4681+-2197 -132+-7030 -2792+7545 4132+6663 -2828+-5487 -5356+2181 461+4431 9501+-7258 -8185+1568 3508+-2970 -4462+4584 -7778+7606 6609+269 -3038+-5658 3717+649 -166+3258 -1556+-5594 -5368+-2450 -8877+-1868 -2093+-2461 4682+-8400 1946+-9133 -10000+2141 4685+7194 8193+-8806 -9339+-4722 -2665+-2994 -5112+2129 -4620+3089 -7583+9264 8495+-5199 2212+-6006 8686+-4624 -9823+9303 197+512 567+-6901 6861+9973 1428+-2680 -8529+4642 5922+-572 7628+4171 983+219 -2395+6717 3226+9096 -6527+-6543 7421+2847 -9225+4890 8664+39 -9355+-8823 2505+-8354 -27+-339 2613+5367 4521+8533 6620+-60 6220+1613 7477+4083 3159+-2740 5256+5153 -7813+5725 6242+-9566 3449+-7660 6505+3724 -7432+-9768 6481+7784 6134+3151 -4966+4683 2436+-6520 6439+-4249 -7872+-4081 -2700+4081 8999+4145 -3831+7616 -9151+-8506 9920+3389 -6924+1300 -6467+-9041 -6617+-577 -4048+-1061 -5576+-1962 -2758+3315 -5311+5265 -3068+2872 2522+-1909 4561+4751 -8628+6716 -4233+-6021 3566+-3762 -8075+9301 7793+9701 -1340+-2712 1642+6268 -6234+-3676 -4816+5385 -7417+-7746 -4705+6876 -952+-9842 -2870+3177 7939+197 -8475+425 7277+6807 -9994+6754 1035+-8821 -9410+3163 -710+-3005 -5247+1764 444+-4978 -9234+-6993 -5415+-389 -9849+5297 8925+-133 1152+3515 6699+6313 -5551+-8771 -4932+5091 -3152+-9926 8760+408 -7227+-3308 687+7947 -460+9188 8833+-5746 6841+-5694 -9514+6201 -5686+-3233 -8998+-9083 5803+9106 -3090+-3562 -5498+8961 -4054+4587 -4644+-1204 -2147+-8482 -2235+-3067 -4779+-6355 -3638+-1354 2999+-2512 8194+-7962 -7065+2844 -629+-6787 -2350+7491 -3216+686 9646+-4322 -1089+-7347 -5928+-8071 -1908+9622 -4021+8110 -4439+2293 7585+8341 4172+3865 1114+-9636 -7138+-1076 -5155+-6622 -8589+1835 1073+-1282 3749+-2239 9718+7770 -7908+-6297 -2213+9173 3111+8283 2237+-2133 8168+-4531 7351+-7290 -4428+-6263 -796+2844 -9674+-6726 -692+6336 877+6163 3958+-5306 -1479+-5917 -2807+-3279 -8405+6669 -4620+1190 6096+5294 984+9160 7683+-1760 -7270+9575 -7359+-3238 -9021+9127 7204+8198 -9970+-5135 85+8031 363+4652 -9168+-3920 1099+6912 5281+-6800 -8376+-5229 -4481+4659 2880+-8463 -8131+8107 -217+-2050 5758+-3429 7496+7173 -3255+7789 3858+3699 5083+2805 3690+8052 -8540+-9291 -765+-7969 9499+-5437 6051+-2589 9515+7784 5793+5334 -1041+2394 -9711+-6285 -7231+-6277 -2413+-8395 -1571+6924 7517+-8633 -7841+-5502 6027+8116 5412+8692 -6238+8882 3305+3870 3507+-6728 6175+8725 -5910+-3298 7143+-6417 2656+7287 -3397+-7 4678+2740 8199+-8992 -4719+-2654 476+-2828 -3190+1168 -1387+6296 7899+6432 -7269+8939 -1386+-7949 -478+-6938 6955+-719 -7203+-7773 -5130+3216 2061+-6732 -7454+-5722 -3382+-5100 -5247+6371 -4749+9910 -7580+-622 -9006+-7180 -9245+5367 -4076+5940 -7535+-3256 -5845+2611 -8830+1726 -5525+5780 9196+-4232 -7108+-5284 1965+5660 -5460+4341 4276+2216 9797+-4570 -4215+-6432 7393+-3508 -869+-2773 8014+830 8445+3260 7861+5745 -3712+-2416 9067+-5029 -4905+6139 7338+995 8095+7294 -691+-2270 1400+8982 -4946+-2742 3903+6424 -5988+2958 9262+-1434 -2439+-4349 5493+-9965 4040+6466 7675+-6549 9564+4373 8250+7331 5358+-4610 7520+-4037 6880+1595 -8427+-6579 -8960+-9708 5878+3417 -7704+2705 7109+-4134 559+6176 -6733+-4553 -216+6787 -261+8120 -7918+-3487 7179+-6985 3919+-8922 1554+-7203 -7553+-8624 3209+-3946 -6415+9605 -1604+-3725 -364+-1275 -3290+-8585 495+-8549 -5937+1701 -7977+-8553 -3314+8921 -9579+-7563 -6282+1468 2092+-9950 1549+-2398 -1226+2445 9418+3243 6680+-2813 -4793+1407 1550+709 1941+2862 9069+9522 -9666+-7554 1347+3188 -6292+7039 8424+333 -5619+-7292 1749+-4787 2500+1362 -2550+5719 -8743+-8924 -7724+6523 -6501+8320 -6539+-1506 9990+-8606 -9220+-2578 -3691+-1185 -5864+1248 -490+-9890 -3383+47 -7699+312 -2411+7684 -1158+2671 5089+7787 -2191+9700 4959+7805 1373+-5711 -2274+-7327 -8553+-5758 -2357+1250 -4582+-706 8739+-536 9967+6429 -876+-5064 -872+785 7462+-3243 2074+-1182 -823+8367 -5662+9684 5383+2945 8926+4127 4+-9223 -8071+8591 -6969+7239 -5949+46 9126+-1617 6194+-2385 -1205+-2086 -4687+2669 -2477+-8902 -5795+-9190 5097+7767 -9971+3175 -8851+-9930 -2118+1167 -8569+4845 7316+7045 1524+-1603 3293+-5832 -7184+-8714 -8273+-1092 -374+466 6468+-374 8150+-9404 -3246+-4058 -872+2139 -5623+-6313 -8785+-5296 -5260+-1314 -7302+8120 9737+-9052 1051+-3870 1390+9483 6787+5033 -4763+2166 -221+1427 -572+-5902 4710+-403 -9034+-2792 7004+9725 8387+4716 -2180+3345 -6694+3898 561+-5903 8542+9974 1336+5835 -7942+-2817 1068+3148 9516+-9096 8191+-1424 3223+4234 -9421+9272 -9457+-2654 -9840+-8421 1202+2938 489+-9627 -4419+-9086 -9180+169 1332+7119 9405+6088 -7040+-9250 4654+3728 6937+7561 6304+5419 3555+-6865 -2907+-8449 1024+8469 -241+9253 -869+-8530 -1272+4977 -8771+395 2244+-6947 2203+2483 9726+-4996 425+2687 -8699+616 -6332+-9877 -6155+9021 9162+1394 6255+-9185 22+-9975 -739+-2101 -3649+7917 5318+8985 5676+-4188 -5051+3884 -649+-3402 -7555+-344 -6879+-4573 2273+-6285 9966+2965 -3614+6793 -9557+3781 -7410+7207 -4142+-9447 1368+4709 -6758+7850 4640+-797 4306+-8827 9091+-7964 4161+-3243 8163+-1085 9401+-1106 3668+-3310 3529+6786 -9836+1898 -5050+-2810 -4165+9263 -2440+-8415 -9734+5000 7156+5418 -9808+-9898 4589+-6084 -4377+-6578 6199+-5408 -3012+-3804 -534+-3850 1088+4070 5649+8091 9021+-8677 2882+1759 -2557+-2695 -6684+-8040 703+-5039 8159+-3809 9425+-7942 7917+1144 9839+1922 9643+9480 4361+8532 3009+5636 -4857+-6149 -3599+-5530 -6729+-6038 -4145+8940 -4907+480 2188+5969 -3227+3486 4426+4365 1139+-5605 5020+7733 -882+-9505 6290+1157 -7910+6204 -6559+-5480 4844+912 -2437+2202 6730+-8392 -1124+-8299 -5680+-8658 -7257+-6428 -1949+-8678 7442+9859 -8927+-9191 -2290+7132 -6037+5232 403+1123 7260+5984 9255+4638 3348+6644 -7992+9093 -8072+4727 3373+2799 2735+-7786 9269+-6210 -4228+-9667 -6632+-460 8431+1404 -1535+-815 6091+2150 4580+-4525 563+-8597 109+3353 1718+7041 7498+-8758 215+4337 -2516+-3811 -7090+9523 -785+2945 -6556+-3635 -8705+1614 9635+-1027 4641+-5904 7181+9673 6550+-5109 -124+3681 -1041+-3526 -8706+-4001 8760+9402 -6673+4709 -1829+-1674 -3648+1877 4709+-2526 8243+-8148 -6341+6826 -7814+3954 -2803+5165 8653+-9626 196+7553 7359+131 5315+-6427 -3946+-2096 -8425+5507 -1428+-7945 970+3459 7456+-9167 971+-5787 9220+-8599 2730+1866 -8808+-9952 6270+8421 -4842+6562 -5394+-5234 7841+8168 2163+1 -5912+-7227 1184+-3323 -5792+3687 -1902+-8398 9560+-3962 5425+7416 -7757+4013 1670+-45 7518+5274 3464+493 2846+-9566 -9689+2481 7803+2305 9439+4778 8781+-8315 4395+-1810 3991+-3540 -7992+9803 6258+-934 -9538+-6192 3618+-6650 3850+112 -3568+6839 -8128+7571 1732+-1310 -5886+-1150 8027+3425 2637+6336 -7611+-639 -6181+5528 -7293+5641 4504+7896 4088+3739 5085+7938 8160+6203 3996+-5098 -373+-2930 -2298+3476 62+974 5101+9926 5862+1731 -9818+-7702 7933+-6820 4397+2421 4364+5220 -477+-5640 9183+7291 3954+5233 -533+-966 -9697+4265 2224+8676 4184+-6287 3118+8082 791+1583 5212+1322 3113+3171 -3618+-9994 -7503+-1742 -5447+847 -6389+7356 7647+-9296 1690+2301 -6337+600 -5980+6356 -6462+-7209 -6446+-6937 2862+-9685 8632+-1430 -576+-6467 5759+9526 4784+2682 -192+9254 2805+3500 7356+-9048 -1999+-7073 -4201+726 -2711+1372 -7706+-7374 -5774+-3065 8361+7578 1627+7864 8518+3558 8876+7001 9333+5862 -7248+315 -429+-1582 4368+3728 2004+4902 6366+-6695 -3965+-8125 5438+-7824 4901+2827 1328+-5338 8100+9176 1959+5179 -9687+2441 1742+8808 -2793+3569 -7549+-2351 -824+2538 789+586 -159+-9893 5381+-3706 -4022+9194 -7585+-1226 221+7086 48+4031 2831+9201 -7653+-7775 -953+-4969 690+6251 1315+1875 8066+-8768 4099+-142 5710+-2594 8264+-891 8192+3829 -883+-4649 -2170+-9615 5720+-2566 5339+9157 -9404+-8055 -5059+8734 5581+-9431 4139+-6601 -8949+5841 9327+-2049 711+2377 8206+5686 3232+9803 -7824+-4958 -5709+-810 6490+8631 3+6182 -8410+-1093 2909+-8162 3614+-4111 1586+5092 -4187+-1049 9869+7121 -6069+-218 -6746+-9194 -54+1650 8376+-4269 -4818+-9512 4362+-967 4045+-5029 -1962+7628 -848+-2380 -5219+-7088 1817+-2042 9220+7036 9919+-1476 -1323+-9553 8671+-7454 -285+-2888 -2170+-5485 -6052+4236 1975+1641 9299+9822 -3896+-1957 3729+-6628 -7336+5225 -5262+-7056 1443+3479 -9812+974 649+-503 -2886+1172 4804+-7296 5054+-3657 7462+642 -445+9521 -5715+-7943 6801+-4639 3886+-9471 4530+8696 2374+-1550 99+-7568 7866+-9624 9010+7033 9057+7855 -4307+-1191 1229+-3662 9485+501 -4553+9245 -5089+5198 -6795+3564 1195+3895 8951+-5575 2223+5722 -2110+-6526 -610+203 -7181+-8713 4168+8487 6186+-7829 5449+2830 7505+-9765 -7423+5953 3800+1770 5507+-3482 8950+-5940 9438+8144 -8559+-188 7339+-9782 6116+-212 -7005+-771 3569+8180 -4026+3382 9817+7808 1592+-4537 8017+8232 -442+2627 3416+-7369 -2280+-1196 -5417+241 8983+-4682 4317+-553 3258+-3773 6720+-4135 7352+3858 -6884+-6291 2750+1061 -5227+6483 524+-8652 -782+-9278 -3198+-5503 6901+-2665 -2879+-8785 -4073+1983 -9169+2710 2195+5545 -9771+2700 -7970+-3824 5385+6077 9809+-7422 -4595+7677 -5419+-8588 8808+2781 1043+-1857 -9345+-3185 9763+-7197 13+7073 8535+-4285 9943+-5520 6105+9311 1586+7245 1286+-7847 -3858+7750 -1240+-9135 8676+-9993 7430+-3092 -7552+1653 -8580+504 391+-6661 1565+-8990 4733+5328 7927+-6827 6088+-881 6735+-4499 -938+7102 6942+198 3721+6726 5487+-3398 -6387+-264 -5929+6770 1892+-8549 -2573+7305 9188+755 -4452+1389 2375+-5686 8978+3332 -2275+9788 7335+-3324 711+1614 -2474+-659 4067+5775 -7626+9730 -1150+6446 -6185+6328 9948+6309 35+3424 6832+3547 -6858+2319 9925+-8023 5085+9745 1370+-8172 9121+8716 9360+8249 -4444+-1149 7297+1000+-3930 -3740+-8351 -1643+-8320 8309+-8409 -7592+-6059 -1078+-7316 268+-4755 -383+5473 9270+2208 5424+-1820 9106+8553 -5371+-959 9607+-6345 1188+-7385 -7041+-7783 -6453+3975 -3015+826 -9414+-1962 -6783+8530 -1704+-9252 -2019+-9950 -2978+8146 -1016+3301 1657+2207 -1479+5967 6658+-9002 -681+-234 3985+5872 1247+-6314 9946+-3073 -1376+-1669 7815+-1917 7295+-4946 -6202+872 -688+8836 1565+-9336 -2472+7871 8038+6297 1274+-4711 -3898+-1883 -7210+-1057 8795+-5409 5978+-6888 8263+6640 -1633+-6632 -3213+7479 -5382+9862 -2302+9519 1084+5932 -3125+-9282 164+-3019 -6619+-9413 -7593+-5879 -1485+-3190 -1912+5182 -1943+3388 4716+118 5871+-7545 -21+-2232 4195+9917 -6450+6429 -9202+-905 6130+-9851 2868+7659 8041+5284 -4591+3127 4710+-3559 -9236+428 1922+-1523 2077+8321 9352+7484 -996+4837 2567+-1740 -7040+-7240 -1545+-517 -8702+-3014 2091+2151 1373+930 9226+-3285 6469+-5506 -2536+2415 411+1221 -3953+-791 -6537+3581 8104+-1792 -7280+6854 -6561+-6652 -2269+4637 -9694+-4743 -4988+-3325 5298+-2048 -4767+-9775 7652+-1359 8369+8000 -1722+-4095 -9254+4776 -7001+-292 6679+2315 7564+-7822 3598+-2972 -4757+-8838 -8910+-5181 -7771+-5440 -5412+8449 2783+621 1892+-9432 -6500+2012 9221+-2299 4272+4744 -4762+4016 -141+7154 5229+-1559 -6332+-6172 -2504+5959 2825+9020 -6869+-7473 -3274+-5746 -6179+7583 -6335+-6814 3274+8785 9786+5233 -818+9588 -4052+2422 8695+1889 3091+119 2790+3075 8770+-7239 -7747+4292 4774+-8746 3122+-1654 -9553+3478 7586+1695 -2769+-7049 9160+-896 611+-2549 -8636+-2743 -6316+-1901 -7171+-6881 1796+-7685 -8739+8220 -9108+337 593+5891 -1727+-6538 -4143+-7610 -4585+2066 -6276+-7564 -9097+-3975 5481+-4144 -8979+-4671 2835+-9481 -264+-1909 4014+-2930 -4170+1848 -1986+234 2922+-6609 3291+177 5459+6646 -283+-1411 -5163+2230 2040+4186 -6795+-7424 27+6219 -301+3863 2529+3738 -9054+-6339 4604+-6047 -2883+-150 622+8189 -8665+-9630 -3152+7812 -4785+5527 3315+2467 -5375+-8120 6303+4474 -4155+-8029 -3509+-2346 7323+1276 -8318+-7535 5663+749 -1711+385 8494+2141 3226+-8322 -1068+6030 -6327+-3613 -2454+-8188 6071+-7545 -3114+9626 -6900+-7831 -6760+-7000 2250+-3370 844+-799 -6772+-2076 -23+5709 -9160+524 -7490+3802 -2761+-283 -347+4461 -9263+3883 5186+-1754 -7162+-4436 3892+-3603 3626+8435 -4624+-1418 -1531+-6205 -4668+-8445 -2933+-6741 5319+18 3113+-3665 1911+-1750 9927+-9032 -8622+-6830 7279+260 -5861+1801 7305+-6643 409+-7093 -2495+-9898 9323+2226 5912+-2064 1025+-2158 -2144+-2252 -1629+-2082 8065+5943 9383+3608 -9264+-974 2836+-253 -911+4049 -9529+-4788 -571+3788 2728+7744 -6110+4086 854+-2416 -8395+-901 -7626+-7462 4695+-334 2238+-9293 2007+7438 -8555+3567 -3687+-2431 -8534+1332 -8808+2554 -9600+5586 2798+-7646 2181+-7710 2435+-8505 -5041+-8971 9880+-7635 -8307+-6342 3149+-2744 5139+-9797 -634+-9949 5500+3022 -3715+-7574 9932+-8572 4957+312 5254+2163 -4625+2609 3767+8680 -7870+-2214 9996+-8790 -7529+9444 9291+9374 7949+-2745 566+-7300 3972+-8851 4477+-3397 -7587+9113 536+-9850 7776+4847 -6926+-6790 1705+-7927 1882+9818 4368+-1154 -7076+-4996 3216+4394 387+6850 -5865+-780 1581+-1000 -1087+95 9330+4953 -7371+2376 5406+-4276 -6624+-5396 -2150+7100 6245+6160 7709+3277 4842+496 -7414+8116 5850+9923 -9590+1720 -8885+-4062 4517+-7244 -4588+1865 5567+3747 -3306+290 -9079+630 3614+-1345 -4611+-4728 9322+-3898 5415+-7388 3188+7274 2449+-431 -2495+-6148 3991+-645 -1047+-2890 -7204+3361 2446+-883 -7045+5346 -4744+6856 1012+5695 1535+-5172 9796+8637 -8786+771 6338+-4821 -1015+7201 1716+-837 1044+4022 7503+7737 -7096+-3272 -3295+-1535 -1072+-1760 -2237+-3291 -5732+-6433 561+547 3055+7726 -235+1463 2036+-7647 7951+5961 -7438+4857 9922+-5179 -5689+9179 -3850+-9547 -3362+853 5430+-2627 -856+3531 -1583+-5828 2644+-8521 -2362+6362 -1924+-3388 3707+9769 -7474+8561 -6339+-4231 9114+8905 17+3496 -1491+-7361 9568+5691 -3726+-6569 4674+-164 4502+-2298 -2807+-7370 -7349+2583 -7163+-4602 -8403+747 9752+-4862 -8610+7001 2502+-9922 -7009+-5250 -227+-4258 -5970+-4856 4966+-366 5240+-3349 732+-315 -863+-197 -3109+3889 6396+-9355 -1614+-2722 -8464+566 7884+-3641 950+6299 -8051+-5770 -8785+6774 -6350+-7720 9125+8946 9463+7892 1877+1860 -3897+8998 -7462+1435 985+5738 -4755+3091 -7156+-9074 7552+-4555 3243+-3462 4707+-7172 5552+-5775 3299+9642 3715+2850 8167+-5305 1135+431 6791+7625 3806+359 -7882+-4657 166+-2986 -2978+2450 4422+1378 -9121+1461 6991+135 -8102+-5120 -6033+3479 -9984+4186 -6512+902 -5778+-804 1382+3697 -9208+-7203 -4645+3381 103+1621 9970+-3158 -6133+-1708 -7317+-4977 1778+427 4635+-6149 -3290+-2340 2082+-2741 -1897+7293 7077+7411 -5609+-1534 3437+5519 -7603+-8508 -9950+7604 -9928+6223 59+6170 -1851+6432 5565+-9905 828+8341 2482+-2563 -2694+-8141 9639+-296 6919+4957 872+9999 -5123+-5596 6042+-1944 -8014+9654 4515+-3201 4988+-7139 9242+-2833 4098+-9317 -8947+-976 -2767+7332 -2086+9734 -9963+-5108 4237+-642 -7821+-3099 7033+-5012 8687+-1547 -8237+-6654 3190+-2432 -137+-5828 -687+-8683 9516+3130 8297+-1611 -9053+-5503 3914+-8514 -4852+-9625 -4675+3727 2828+2553 9447+-5224 -8745+-6278 -8440+4918 -8976+3258 891+9969 -8203+6450 -5079+3978 3813+5825 6297+-6566 -25+-407 -8010+1660 -5825+1607 4367+5026 5342+-5655 4191+4821 -9707+207 9350+1211 5716+-3711 8107+-3082 9948+-5264 -1377+-6492 -6661+-649 -2541+6950 -7131+2606 -2043+-179 -9608+-7596 3297+-7005 6916+7039 9702+-2492 -1678+-1706 -665+-7210 2557+9176 1812+4634 -6979+-5677 3946+-2082 6949+6276 3625+5649 5097+-6929 1447+-7622 -9115+180 -6337+-3568 5610+4082 8549+8074 -8938+-2426 -225+-812 2644+6473 -9768+-2883 -3271+1852 -2287+7696 -4216+9675 9997+2733 9466+4449 7051+1550 -5694+-6556 -2802+331 -1275+3712 -4536+-84 -867+-7765 8085+-2185 -8186+3058 2491+1142 4174+98 2794+-4562 -5666+1138 -4243+9410 -3738+45 1582+-726 6328+2975 -9295+1914 -2414+-108 7551+3865 -2898+-7146 2839+-8785 1422+8578 -8552+-631 4596+-895 2467+-5979 -1973+6661 -5353+-2692 4128+-1558 -4213+-3728 -9412+3172 7076+-5827 9414+-5222 -1867+5964 -9868+94 -5807+-8142 -4333+2065 7856+-2027 -2401+-4876 -2184+-1270 4000+3802 -8194+8337 3459+-5867 4413+9554 -8065+2291 4218+-4822 -6108+-4405 2576+-513 6812+3926 -2525+3500 3540+-1332 6032+-7474 -7331+-804 1395+-2379 9555+-5757 6587+-1379 532+8654 4742+-8975 6069+-6935 -2939+5225 -3743+6110 200+-8341 2694+-4366 -3656+-6757 -2826+-5732 -5256+1510 -9991+6254 3055+3571 -4287+9478 3060+1669 6426+5801 8434+8860 5735+-4230 190+-7882 -2349+9072 -9615+851 -9963+-5745 -2080+4944 -3322+-2151 -6317+-918 6842+1666 -428+-7781 -9868+7659 -8643+9095 -3647+2263 5826+-3151 427+-9715 9329+-4867 -3764+3229 -6565+938 6474+6569 6440+2167 -8184+4659 -9845+-9462 3097+-4188 7747+3882 1087+-8465 -2879+7902 -6198+-9713 6215+2839 -9538+2606 -8140+-3385 -3795+4534 -5552+569 1264+2826 2469+9488 -9506+7955 3219+-337 1407+-6620 -2448+4919 -7821+-4329 -5511+-9687 -8151+7007 1377+-4278 -5798+-5909 -5768+9893 -3958+-2757 253+-1902 1037+-8424 -5057+-4432 410+-4385 -1446+-1473 1809+-342 -8326+-6724 79+92 -1775+-9212 1848+6758 -8925+-2362 7824+-3190 57+-1923 -693+-8043 9124+3927 8004+9366 6060+6568 933+-2580 878+282 4962+-1362 -7277+-2688 3479+-1832 -8413+-7005 9245+8178 -2872+-818 -7136+487 9282+-9293 -1664+-9383 -6363+-2986 -920+2340 998+-6601 2939+-1807 -7247+751 5861+-6556 1913+-1352 -738+2871 -4702+2823 4213+6581 -3624+-9103 -2997+1453 4960+-7301 -4888+2013 4000+-1538 -3543+-8322 -8586+3294 5397+48 -909+-5350 -4785+-3861 -8016+-6946 -4942+-9356 1562+1923 -5041+-2517 -6840+-3935 8634+-7390 -7968+-401 9983+-3431 -7571+-688 -3617+5750 5953+5849 2801+-902 -7931+4970 -5940+-3103 -2305+761 5048+-2973 -9943+-8640 -2410+-7591 1654+7697 -112+-5519 -5434+-4905 9281+-8685 311+7745 2969+9688 -7573+-8701 2463+-6640 -7267+-6814 5020+-7230 -5717+-346 5113+-575 -3700+3207 2736+-9865 -3387+-1019 5256+6084 -5610+-1445 -3014+-5563 5745+-205 519+-1693 6297+8745 -6944+-1214 8689+-6802 7399+-1826 7071+7231 261+-4679 5665+-8287 3309+-3480 -6109+7287 5533+-8406 -2886+-5903 4322+-2706 6195+-2490 -2365+-1511 4055+-32 -8826+8291 -5793+-5629 -1687+7799 -430+-8996 -4640+9664 -1245+-5830 2811+-7157 -2024+-2033 4074+-2083 7576+2640 -4414+1199 9622+-5165 9721+-6482 375+-1094 -9820+1425 -8576+-9163 -2470+-2612 -3954+7196 -4002+2312 -1630+3642 -5663+6606 4741+3187 -615+-2777 -2956+9835 2133+-4158 -6218+2347 -4425+-4174 8615+8470 -3140+3415 -7682+-5995 -1484+1039 -2402+6069 -7755+4263 -467+7240 -728+7188 243+1709 6013+1637 -5752+813 5429+-7115 5408+-3551 6109+-6782 6605+-6410 -6666+6039 -320+-7051 5155+-3355 -4724+-1728 -4796+2783 6546+3492 5774+1364 -1482+-5642 -248+-1875 6702+-4587 5409+7188 664+388 -9571+-7018 -3784+407 -3523+-5956 2271+-6608 -7725+-320 5479+5064 -5140+-9286 2122+-7312 -6078+-3457 -3719+7186 339+144 3263+962 4498+3669 -3813+-1044 -5558+1201 6407+715 8716+6777 1397+1818 -2423+-5239 1579+5728 -6906+-7509 6713+6235 9619+5135 2117+-900 -1409+-841 5283+2018 -9906+5904 -9449+-6821 4172+-3675 -2311+-3226 889+1856 -7399+-5385 2757+-7909 4697+6741 1785+9994 9607+1569 -9+-7396 8799+-6446 -9188+-829 -9456+9797 -4848+-5854 3879+1117 -8510+-2040 -9181+1873 4151+-3546 -2111+7470 -3662+3003 -2350+4139 -5722+-4780 -1929+-7137 4475+-1797 3999+-8621 96+-315 6846+-429 -1713+-6457 -6005+-8421 977+2508 7148+-3899 -1868+-6747 -3842+-7813 7218+-6313 -7752+-5251 5475+-8122 -4968+-6655 -9521+-4887 -1056+-5149 -3395+2028 -1902+9604 -9173+-1039 7102+8151 -6836+-8981 -4739+-1362 -7873+312 7148+572 7911+-9052 5820+9640 9521+-8439 659+-5675 2102+9336 -57+-1081 -6193+7568 1615+9530 -5308+4318 -6574+-6874 -91+-2578 5661+9481 -3197+9588 5522+-8028 1164+5190 -9222+-3285 4022+6563 9469+8619 -6675+-2079 4525+-2745 -3801+-9047 6880+4389 6326+-6385 -9712+-2392 -4026+585 2640+4947 8495+5694 -9303+730 -6911+5870 -3238+-6809 -5704+7759 4859+5856 4656+9585 3080+1084 -3200+8878 -181+-3905 -8683+458 2017+3071 -8805+-3621 733+-3182 -8751+-9986 -7860+7708 -6570+4410 1601+-3180 4090+-9919 1521+-9947 -5219+7757 -4511+-2242 5225+5488 -1958+2817 -3901+6955 -3450+-6121 -1021+8044 9160+3984 8395+-2953 5238+8985 5584+-424 9346+7067 -3765+4256 -7280+-3236 -8997+7816 -3852+139 -363+-1454 -1898+-7774 -2550+4185 -553+-6594 1432+734 -557+-4707 -5169+-1489 -2353+-5254 -5565+-3254 1291+-2782 -9899+1187 1744+687 588+7390 5575+2593 3137+1886 3729+-3509 92+-7907 4123+-1538 -2447+-3192 -8559+-4904 5842+4108 -702+9165 -3222+9479 1514+-3736 -4566+4415 -9793+869 -4708+44 1076+1881 -6871+1567 -8268+-8815 -9735+1030 -6327+5792 -234+4095 389+5361 4488+-3425 9214+3982 2949+-3665 6212+-8263 -713+7549 2715+2358 -9629+-9454 -9216+1512 -891+5938 7575+7986 7057+-2209 -9954+8881 8281+-6731 -973+-9839 -9253+-427 -7632+-4899 -1541+-128 -7443+-864 -4102+7607 -4929+2919 -2999+1714 -3481+1423 -3364+-384 -2548+5274 -6889+5444 4985+-2764 3520+5381 -7689+3835 717+-9656 3410+2350 260+-2918 -3130+-9990 629+-7126 -2482+-9770 -1626+-4346 7493+-5033 3243+9286 -7438+-8449 6844+-3007 1320+6255 -4067+-7789 8321+7605 -8954+-3491 -6208+1608 -2695+-1904 7693+34 6012+417 -8195+365 -5247+5808 7299+-2558 7523+9065 -4444+9730 7087+-8902 -8840+-504 3551+1000+9897 2654+1797 -8216+6267 6247+-3328 5365+587 8740+1172 -4939+-4049 2976+-5028 9914+4597 6558+3940 -2932+4888 -9436+4718 2186+7880 3796+-3300 639+6450 7706+-4223 -9231+-1715 7556+-8261 6446+-1499 7313+7118 -500+919 -9432+-4374 -2329+-6607 -7768+9965 -7100+869 4603+-7377 4869+8842 -8763+49 9089+-7287 5113+8441 2139+-7035 -5119+9116 -9373+-4702 3361+48 -5021+7523 2352+5076 -4899+-7049 -2075+-4813 -7743+-281 5336+1037 3241+-2109 -4787+-806 -8169+9102 2811+-1125 -5414+8465 -6560+-6188 8461+1975 -5695+-1140 -1503+2617 4644+8937 3620+5681 -1709+2347 -5137+3285 9760+5041 9173+-109 -2928+4600 2883+-3124 -7538+9463 6910+-9932 -1723+7544 1968+-8478 3553+-1352 -1667+4756 -3360+-8846 8055+-7352 8626+-6644 -3139+-7900 8926+-5836 -3275+4698 4711+9573 -8206+-1082 6465+1600 2307+-6196 -6027+-9989 9881+6981 834+-5903 -3792+-8449 3954+4940 -863+8529 602+-916 9546+-2726 999+-982 4992+1559 9683+4443 2649+-3479 4415+3160 9522+-4642 7026+7641 -1479+3340 -3211+-4606 2945+4213 6661+-8158 -6932+2801 786+-7101 929+3518 -735+-4645 2500+-7776 -7503+-5576 8665+1440 2+-9694 4406+8243 -949+2239 4641+9572 6094+-1404 -4525+812 -7210+-5060 -3893+-6334 7102+-4652 1326+-1092 6677+3391 -115+-5669 5719+3465 2781+-4954 3953+4407 462+5340 -4778+2100 -5008+-9447 903+6948 6703+-995 9750+-9951 6400+-2744 -370+6969 4296+9580 -6233+-2700 4013+7047 -110+3482 -5586+4509 7305+2189 5022+-9954 522+9358 -3570+4187 7500+6944 -7536+-100 7957+-1112 -4707+2178 5133+-6521 2991+1850 6129+-1978 -2179+2450 8312+7588 5708+1840 146+1216 -1818+9472 -1104+2935 -167+6916 2542+1942 6757+-475 8427+-4246 238+-8254 -1699+-6463 1243+-8551 7245+516 -2625+-5076 -6695+721 1015+1355 -1116+2182 -8249+-7726 8707+-6061 -2487+-5590 -2060+-1139 4822+1616 -1303+-506 -3938+-1912 119+-6644 -3258+6257 -5544+9693 -6557+-8015 9323+-7417 -2846+-4777 -216+370 -3034+9604 820+5254 5482+-4965 -3330+3324 -9876+8783 3136+-2465 6342+8813 -1310+-8158 -3449+-7954 -6736+-5373 9386+-8171 -4089+4150 5080+-847 -5364+2766 4514+1210 6929+979 9653+5626 3800+-8287 -4779+-189 -5575+-4217 834+1449 4813+-8931 -764+-4269 -2925+8049 -526+5927 -2070+-4283 -8457+673 -6160+3439 8195+-7654 -293+6162 2025+-3850 9780+1173 8444+7472 43+4365 -6402+-1778 -3169+-5895 -4186+-1075 2562+-7499 5994+3326 -7977+6570 -6180+-3135 601+8464 6883+-6399 2797+5795 -8359+-7384 -4403+-5182 5619+481 -9839+-7392 8961+-6845 2163+-874 -5355+-485 368+-6356 3636+3022 -5644+4680 2069+-4326 -1990+9274 -9164+-8572 7658+-493 1529+7867 -9811+9758 -2441+382 -5382+2050 -2038+7527 5473+9758 1995+-9170 6290+-6618 9310+9988 -9170+8322 4183+-3160 -1751+6356 -742+1208 4385+-490 -8177+724 -2528+6721 -7436+-6172 5990+9937 -4193+3226 2668+-158 7502+7770 -6860+9711 -6072+855 8018+8125 8570+617 -2713+953 492+-2258 8567+-8501 8674+-1258 2834+2809 -8103+-1162 9688+8036 4656+3288 384+1656 -4538+5277 5891+-5928 -2059+4345 -3468+2914 797+-7058 9673+9846 6833+-482 7445+5001 -6788+-6841 5249+4307 3784+6706 2142+-3316 6582+-1111 -7366+-8939 4764+4835 -9423+1969 -5508+-7328 9298+-1638 5565+454 -30+-1754 9114+-6067 -6028+7488 9709+3808 4234+6903 7026+1944 -6798+9563 -7130+-4342 8149+-865 -2160+-6251 4545+3843 -1499+264 -1739+-3257 -225+7017 9747+-4254 8229+-1671 -5708+-182 7238+6895 4068+5548 -5567+-1434 -538+-4486 7491+-970 6732+636 3995+-9688 -5371+5133 8761+4070 8842+-5978 1336+3752 -1770+-970 -4609+-5113 -9131+-5915 7753+9796 -6317+-3312 4011+-6716 9169+-4279 -6343+-1316 954+-8971 8318+3701 -6649+-4033 -4086+5946 -4361+-3498 1872+4749 -8937+1529 -1213+1037 7748+-9583 -4797+961 2922+1673 9538+9167 4392+-683 -1402+2650 -1033+-6458 -7850+6823 7611+-4871 7329+-9684 -210+-6528 -8936+6983 9240+-9173 -8774+6883 8508+-9571 8524+2125 -136+9611 -2371+856 -1676+8653 -3707+-8567 -2019+-8634 2393+3458 3868+3135 2143+-2435 5224+-4781 -4976+-7606 -6505+683 -8080+9680 -6187+748 -3738+2586 -5345+-1132 5684+7488 -204+4673 4110+2865 9950+8750 7180+309 -9458+-6039 -7973+8507 7003+9188 -903+5242 1938+-9206 9538+8227 -9502+-7653 5533+6260 5130+-1760 -1057+-6963 9082+2029 9952+7428 7004+7781 8381+-6737 6255+-5544 6560+-1137 -7265+608 -4166+8018 8245+5410 -8241+1632 -3683+5166 7203+-9722 622+-1889 5643+-1288 3084+-681 -3572+5101 -9710+3553 4483+5290 4628+-9035 457+-8363 7588+3446 -2642+-2288 -7798+-6820 9165+-3062 -8743+-1467 5726+7759 4164+1961 1261+4240 -5341+721 7704+-9078 -3261+-569 -2266+1690 6857+8607 -3322+154 -6694+6161 -3109+-7490 -910+-3723 1583+9365 -2434+9284 -9415+-423 -781+10000 -5255+-4628 2764+-2286 -2058+-5112 9730+-819 4377+-1857 -5565+8950 -3631+8610 -757+4099 -684+7562 -8126+-3351 -2677+-8858 5132+3791 6952+-670 2018+1098 6159+-4853 42+3532 -3899+3260 -3700+-4275 -4741+-1741 1385+-2390 -8439+2674 -8535+8456 -8297+-6987 -6480+-1508 -7032+3825 5839+-537 -4190+5707 7063+8781 3974+-3261 -5292+-3197 6994+8704 -525+3181 -8791+2801 -166+-7731 5489+438 8271+-3800 6211+-1223 5196+-1071 7647+-9943 4580+7342 -3961+9981 2833+3269 3389+-5606 5675+-2806 -93+9688 -1409+1462 4651+-7210 -5375+-6752 5699+6288 -1783+3489 9002+7827 3897+-4056 985+7177 27+6731 6608+-7015 -365+-1867 -2178+-7634 -7471+2637 5931+-4441 6387+8016 593+5386 4618+4390 4272+-5283 7105+-414 -7045+-5147 4981+-8795 -8584+-7558 -9435+9062 -8609+-8517 -8013+-9252 8731+6202 -6681+-4340 3123+-1829 6026+-2307 696+-5450 -6795+6550 -5461+734 5060+-840 -5092+7635 -4353+-7626 -4038+-8078 -7122+2566 5501+5278 1597+2209 3629+-2595 549+-6673 -3060+8077 5953+-1087 -2760+954 18+-8753 8966+-1140 7734+-5598 -3617+1968 -4041+1021 8809+-3967 -8049+9513 -5220+4826 -2178+-4784 -4170+-5385 -8980+-9880 -979+-3405 4238+6897 -4621+-9541 3619+3105 -8271+6104 7642+2955 7484+8258 -7238+-7426 -7477+-2019 -6728+-3188 1473+-7559 2445+5721 6205+6908 -6400+-5882 8171+-7759 54+3746 9965+8486 -2163+7053 666+8559 6088+3933 8289+3482 4029+-5733 -9507+-6454 -4560+-111 1738+6400 -1662+-6346 1907+8733 -7879+-6089 -264+-4656 5397+-8910 -4407+6192 4332+2631 -7879+-9604 -443+-7093 -5485+8150 -6378+-2991 6013+-3370 8869+2780 -9749+-5733 -2502+5036 7871+-4494 -4004+-1425 9914+6969 -8730+-9131 -3601+-9202 584+919 1984+-6333 -4130+2057 -1126+5638 -7234+7050 5755+-799 484+-4176 -4243+-9264 -9658+9825 2122+-9065 -6555+-3337 -1852+-4082 -54+-8836 7349+-1286 1024+-6421 -4380+-2291 -8971+6565 -8323+-4140 -476+-9027 -398+-986 -816+-1110 3280+-2782 -6483+-6989 8910+-731 5191+2311 -4180+8223 3042+-6168 8448+9604 -1426+-8502 -1217+903 -5849+3828 5526+-7969 -1064+1282 -764+7703 5921+9946 9122+3699 8405+-3592 -1631+-7332 7642+-2715 -8689+-6244 -1439+2377 -8101+6836 -9587+8976 -6882+9372 5507+-8715 -9924+-4671 3973+9300 7344+-9949 6085+9683 9135+5248 1617+869 -1705+5014 -9630+4518 1271+4083 9796+-2640 8685+7912 -1019+-5428 8507+2538 7586+-3225 5073+6746 7220+6718 6774+1650 -4072+-5416 -2665+6580 -2193+-5850 1177+1593 3082+-2994 8421+1037 1116+411 3242+-8143 -6651+9871 8760+4330 2840+2436 8239+-5779 8713+1798 9833+4766 4330+-2553 -9342+-506 9781+779 9338+8101 4938+-8769 735+-5985 8480+1011 -3607+4617 3901+2570 1880+7915 -6748+527 -7815+-3529 7881+-9420 2689+4216 -571+7310 -5988+-1621 5326+8015 2752+-9736 4297+-598 8543+9860 5109+-9033 -611+-2391 8358+-7083 8076+4551 -2260+-4840 7497+8765 8666+6450 3174+-8617 5028+9176 7866+4659 -530+-4358 6432+-1295 -6914+-8887 8154+8520 -8593+-4140 4281+583 -7279+4230 7283+4627 -8683+-2040 -7544+-7955 -3464+-6009 1466+1871 771+-5527 -7421+1286 -2901+7647 -8453+1901 5439+7408 1380+6930 5947+-7299 -9956+9873 -6009+9463 4011+-6038 -7259+-4093 1189+8438 -7069+-7722 -3004+-959 -1153+-9953 -8988+-9238 -5933+2351 7318+2630 -805+8002 3934+-1971 1723+-9252 7445+5420 -7356+3254 4524+708 -8755+3247 6038+-3639 8057+2219 1973+5886 -628+-4255 3558+-9537 -9926+1974 -3627+867 3382+-6428 2237+1704 -4822+466 3655+8879 -6966+9624 256+-5329 9979+-7045 -3666+-6756 3682+3164 -9284+-2267 -5577+-2676 5545+5872 -619+-3941 -1856+-8121 -3144+-2018 -6129+416 3739+-3880 8259+8760 -5185+-8637 2087+8653 -1265+7288 7135+-6387 -9868+3378 8086+1501 1544+5151 -7058+583 6720+6791 1737+5121 9569+7890 -567+-4738 -9144+1728 -5536+8653 -3367+9453 8572+-6368 -5013+8069 2919+-8440 5458+-5215 -6987+-3629 5353+4375 -2779+7544 -2348+5490 -8437+-2019 -3126+-7154 -7216+2747 9877+-7379 -4317+-9841 -5703+-2486 -229+-8376 918+-6992 -3325+4652 -8704+-1193 1183+6554 8802+4210 -2552+-6779 4538+6761 1924+-2974 5435+-6543 -2308+-4861 -6277+7960 -2237+1235 9876+-3535 -1322+7069 4474+-610 7656+-8146 -9813+-5997 -3147+-145 7094+8966 -5917+5484 159+9608 176+-5147 -7696+4053 3165+153 9592+-3039 -3161+4979 6000+2757 9808+-2220 3529+-2033 -3329+5331 -610+4849 -8824+5605 -8548+-4948 163+-2241 2796+8422 2384+6393 5553+-4281 282+9700 3471+-5248 9516+-8838 5488+-4630 7801+-3687 -5741+-1990 3937+5030 8063+-5236 3119+-9998 -9651+3140 7793+-9944 9842+-133 2638+-9193 -3921+-5102 -5751+3628 5908+2567 -3990+5882 -3173+-1981 5005+2653 -6893+9461 -8695+-8296 8784+-4745 7453+-9330 8446+6984 -2336+2353 7181+3360 7453+-1186 -6585+-512 9549+9260 -613+-3792 366+-1967 -4299+-3164 6631+528 4676+8598 -2990+4112 -4654+-4037 7031+4449 7587+-9154 -3950+-5616 -8761+8972 51+-7493 -3603+-7906 110+-8832 5350+-6178 -2888+1790 7771+-6066 6101+5249 -9887+2517 2240+-1819 -4111+-1126 2131+-2917 -2445+1747 9271+-3622 -4781+6788 -1977+-302 -4363+9698 7911+-2908 9214+6478 -4298+9570 -1380+-7200 8310+-8372 -1828+-236 -6343+-8567 -7642+-6384 4990+-4679 -7727+9355 6613+-3065 -1357+-50 1847+-3428 9914+-9936 1949+-7370 -2042+3042 1035+-9703 2930+3614 1010+-5603 -4385+481 4887+-2252 5500+8471 9794+-110 -8429+8931 -2265+-6755 391+896 3120+1063 -7245+7599 -5104+4516 -1461+3584 -5585+8551 4782+-6179 -8249+-8024 -114+4346 -5429+4253 -574+9218 -7560+6680 -7626+-2118 -1645+9703 546+-608 4759+-2907 -3919+8403 -3336+-4300 -9157+-1619 1704+3912 -2139+5660 -8966+7184 -9509+-5393 3096+6398 7611+2939 -5250+-5334 -4943+-5894 4325+1212 9878+867 1891+338 8315+-9741 1802+-7943 -1416+6648 203+-8860 5484+-1237 -1976+6951 -4467+4851 -3989+7688 -695+442 5217+3627 4376+6613 -1843+-7287 -9224+-2884 -3970+-2349 -1098+-5012 2650+297 -7627+3365 6871+-7453 3134+4093 5317+9377 4774+-5704 6724+7226 4924+1541 547+-5529 -381+7630 757+2968 -2692+-1521 7027+-7576 -1377+7545 -3603+-1829 -5974+-9023 -1450+7450 -5896+6533 8075+5319 -2666+-5509 -5019+8680 1600+-8598 -6996+-2203 9428+-2031 719+-6624 -2073+-7718 2491+3473 -6422+-913 8718+-9997 -2496+-8354 6009+-1630 -7976+2054 8220+-2109 2247+200 9823+-4405 9421+-2851 7918+9036 -4650+-2761 -8510+-6837 6651+4658 9558+2917 9463+-6658 -486+-4092 -325+-3793 8364+2404 -9672+-3185 7839+-9456 -1055+2593 -3201+-8551 7332+-3340 -7142+185 3855+-4290 109+912 3315+621 8221+-2497 7920+-7436 982+853 5225+7370 4367+-7563 -907+-5596 3074+849 3782+-6663 -2226+-1880 8768+-894 8035+7824 -9383+-455 1101+32 4037+-6214 7683+6960 7375+1507 -8628+-5923 2565+3355 9402+7201 -6977+6435 -8833+9314 8983+4456 609+-8036 9327+3105 -5575+-4598 5481+5275 -8821+-811 209+2206 9178+1000+-1605 -1776+361 -7331+6529 -8916+-3046 9221+9809 -1586+-4268 5390+-2466 -8177+5716 5613+1686 -5524+-8814 5507+-5873 -2762+-5713 -1990+-3109 5157+1968 1811+8597 4884+7760 -4459+-9270 1265+-9954 -6703+-890 -8774+4431 5234+-4107 -6802+-1930 -2315+-8729 5522+7931 7141+-366 -5105+-2801 5746+-8277 9553+-4380 -2135+-7178 -8439+-8116 -7540+8421 -9069+-8124 -4629+7184 -4208+-3228 8167+-5068 -3831+3765 1742+2048 3592+-4869 9404+587 6546+4074 730+9306 2463+-5094 883+7643 9427+5728 -2569+-7825 -862+-1557 2508+-4952 -7527+-1102 4090+1271 -7402+-5220 -8445+3210 -3028+5032 5858+4112 9167+854 8408+27 4711+-3668 1181+6923 -4509+4543 -3137+-2637 -4427+9463 3013+1227 7912+-8790 -8307+-3358 4786+5925 -1326+1800 -5466+5677 -5106+-7993 7430+-2371 9009+-2942 8454+-3606 -3919+-4432 -3261+3109 1107+-2341 4386+-3186 25+-5638 -7252+-4636 9295+-838 3834+6077 -7920+7731 3389+9464 2642+1629 -348+-1654 -3831+8802 8287+3074 -5156+6080 111+-9485 -4259+2249 -8089+8871 -7383+4117 5124+-4318 -8918+-7079 8602+-1324 3865+-7088 -3700+-9690 1687+185 3155+-5017 -1189+2172 8475+614 4907+-6736 -4789+-8058 5783+6743 -9080+-8907 -1829+9258 9450+-1087 8459+2694 -1974+-3297 -2460+6163 1341+-7849 5755+-6320 5914+8627 -7764+-6450 1409+621 -820+9576 -9285+2045 -3536+6299 -7179+5394 2785+5435 5372+-2724 -4359+-614 -7368+-1261 1558+3286 1981+6071 -7579+6166 -7213+6626 9648+1869 9843+-4665 9830+-5210 -9630+-5163 -9454+-1529 -7362+9580 6594+7490 245+9221 -7277+-3309 1451+-1124 -6734+9607 6666+-2775 193+7175 -1255+-7043 3989+-5975 5434+5570 1795+-7142 9218+1532 -7006+8989 7275+1694 -7007+7513 -894+-7983 2218+3542 -1755+702 -1086+-9530 7402+9020 9294+-5468 -5171+-368 -4491+5074 -5825+6281 2343+8988 1285+-4866 9213+300 -1862+-9914 -5492+-1178 7807+-9057 -2631+-3341 778+1807 -5574+-8178 -8344+-800 6526+-3519 3582+7677 3257+3373 -5536+-2603 -4330+-5491 3922+-5812 1763+4993 5510+4171 -3448+9494 1377+1040 6046+5359 -3317+-7504 9301+-6674 9293+-8862 3187+7342 7133+8491 5751+8243 5057+-8 -1524+-9462 -90+9070 3327+2759 -1437+9725 -5002+4811 -7930+-2567 -2349+5841 9559+7115 -6381+-3275 -8384+9335 3280+5936 4353+4466 -2491+-2809 -1696+1568 -9914+-4739 -1447+-5595 -8679+3517 -5184+2422 -4241+4752 733+7317 -6644+9104 -2106+-1638 -8672+-1674 7231+7716 3046+3961 -4258+-728 -3381+-6844 5214+-8403 -1790+-8568 669+4781 6600+-653 -6256+-2004 230+-94 6922+7691 -441+-3776 2392+7594 4546+-1542 -192+3275 4601+-9003 3021+-481 -7590+-9728 -9904+-7175 6165+-2125 -80+3210 6704+8367 -9383+-9412 5030+6587 8771+-6383 6611+-2355 9993+6510 1107+5728 1065+6309 -2638+2274 -7632+-2156 -1589+8380 3605+5167 -8332+-2404 5223+1775 6651+7164 9492+5875 -2186+6302 5236+9909 -9731+777 -4786+-426 4878+1669 2348+-5323 -6085+7193 -8629+3111 -1736+6310 7265+-1946 -2595+-9456 1058+7262 8630+-8920 2340+7892 -7194+-9649 1962+-4114 2250+9075 1006+-3058 -3551+-3605 -19+-2898 3109+6372 776+-4974 8813+-4523 -8055+9920 -2972+6643 3464+6231 -7686+1189 3788+5124 -936+-5745 1603+9656 2149+-8698 7660+-1970 4788+1095 -5908+4226 -454+-3456 9152+6546 6475+-4589 -8802+-8266 -2959+7498 6310+1612 9251+2729 6205+669 -8461+8776 -3851+-739 6390+8035 -1909+5545 -5169+-2011 7062+2161 2702+5651 -6860+5 -8239+-600 7328+-5166 5685+-7715 5429+-1027 7269+7050 -379+-526 -2847+-3008 -599+-1880 4131+-947 8280+-3736 5214+9266 -2811+-4009 2635+2006 6783+3989 -4215+4362 9175+-5750 4111+-946 86+-9533 9750+1320 -876+6569 6425+1491 7870+-541 -5323+1588 5818+8857 -2252+3865 7087+-1023 -9793+-2589 -672+-5549 4288+4056 -6440+2440 -7555+-4750 -6857+-4095 -832+6018 -1558+-6492 -3526+-9350 -227+8872 -3870+-3996 5020+9798 -5701+-1360 2727+1860 7251+-5169 -4615+2814 -1761+8298 7754+-2399 228+714 2352+-748 -9371+3931 2786+-1737 -8293+-9559 -2158+-8805 1888+-2427 296+-3415 -6252+-7435 -4675+2885 7565+9493 -824+-5576 -4606+-4514 403+-5840 -9556+1832 3167+5476 -1829+9639 8457+1267 4368+-8740 -5735+-9333 5447+2668 -7810+-4210 3102+2624 -7366+-3584 -7239+3565 4228+-3829 1559+3732 856+5100 -3237+157 -7988+6145 -9949+-332 4214+-5320 -5325+3339 -1142+8758 6595+-5235 3715+-8639 6388+8256 3812+-1488 3067+7689 9744+792 7382+5347 7122+5552 4386+2105 2952+1905 1132+6437 2597+-2861 6764+-1529 -3046+7886 -6533+-1559 -9015+9947 -9883+-3806 -4599+-5086 -2278+-5237 -4312+9342 6010+-2223 -4966+-3076 -9861+-8739 -8406+7972 3981+5120 -9982+-7949 4873+725 3410+-4315 -9087+2144 -1227+5862 6654+1762 -2887+-3131 -1312+-2079 -8804+-4429 213+3834 4391+4966 -1799+5447 -3399+517 8529+-9665 -3973+4553 -2746+7678 5009+6227 -3468+5223 9007+9293 -3770+-8852 -4711+-4996 610+-8297 1020+5151 -9525+-5278 4125+-3828 6309+-7003 -7470+-5681 -6153+6870 9016+7422 9317+3264 3133+3153 7456+-1233 2326+-5359 9416+5397 1001+827 -9294+-6425 -8359+-7954 8692+-9782 5300+-5704 2842+7993 -1789+7490 6765+1381 -6885+2339 -9774+-9811 7011+9957 -6967+-7053 1479+3926 -1880+8471 8986+-5709 -675+3071 8660+9461 5401+8138 3049+1311 5957+-8487 -3280+9038 7310+5314 1873+108 3325+-7484 -9888+732 -4475+-5825 5958+3798 -942+-605 3087+7700 -6491+6688 5661+-9619 -1832+7486 2430+-6840 8516+668 -3936+9255 -9072+-4081 1105+2300 5764+9677 -4130+7217 2102+-137 -9589+7650 -2691+-8244 -6674+-203 -8200+-1746 4020+8085 2005+9934 -3088+-7347 3599+-8497 -3588+-1175 -4481+-3138 -999+859 919+903 -4658+-7872 -2650+4505 -6584+-5039 1887+3236 7771+260 9348+-3287 6353+-8802 -313+9440 8994+-4312 3994+-9510 -1099+-4210 1135+9080 6606+4596 8766+-9539 -6949+-7081 6667+-9727 6032+4830 3103+-2344 -3170+-5929 5648+-5888 -2183+2366 9084+-974 5361+439 -9625+-584 -3228+3279 4653+7786 -2223+1783 2917+-6746 91+-8876 -2429+3981 -9066+4598 4367+7917 -652+4461 1265+7361 -2364+397 7701+-6395 -5200+2020 -9879+9108 6974+9668 -8658+-3839 -375+-2647 4981+-8634 6497+9360 -3200+3561 -6522+6145 -1621+-2994 7155+-7029 -5064+8818 1820+-5339 -1792+-9877 -4922+2836 -2115+-2236 -7502+-4880 -8903+-7573 -1610+-4798 -3497+-2479 5782+-5257 9415+7408 -5091+3067 -6615+3481 -1724+5199 4240+6921 9237+-9018 7876+-9176 3861+-1552 7695+-8742 7486+-2886 3683+-3589 -2231+-9749 -971+768 1714+-1506 3726+-892 9176+-5710 7497+-6076 9169+3303 -4642+-7355 9048+-8257 437+1116 5582+4006 -3720+-8291 -3415+-5330 7936+8754 -9000+-3696 -7638+-1661 8435+-8737 3158+-499 6505+-1139 5681+8329 3033+-2911 -2652+4136 -1817+369 -7771+-2180 -2253+-7231 -9278+2973 -6476+2042 2441+-9365 -9224+9031 9016+2957 -5575+-6381 5778+9880 -5151+5439 -2330+2714 -34+2308 -4073+-5349 -8761+2399 -5338+-5780 2409+377 -7308+-6127 -2538+5910 -7372+5013 5811+5600 -9857+8745 714+4350 -4836+-5972 -1381+9875 -2352+949 3149+7924 2328+-2984 -9148+6528 2392+-1863 -1840+-4828 4732+5379 -3860+-3654 4277+120 -2733+-2913 -1444+-9997 2151+-2549 -6780+8520 4684+517 -9342+2082 4909+1387 -8381+-4985 7173+-6600 -7154+8622 2434+-6312 152+-7491 4952+4508 9454+958 -950+-1923 -5744+-3969 7558+7909 4515+5927 -5062+-7935 -9743+-7964 1131+4851 -3024+-4093 -4221+-2787 7064+8107 3984+-2474 6429+-9517 7974+188 -4007+-3143 5725+8222 9083+-4137 7692+2396 -8620+-5437 8729+3092 -4403+-785 4484+6422 9939+-7273 7236+3466 9967+8671 5266+-3823 9753+-1363 8275+4850 6504+-3202 3355+8342 -7515+2882 9780+9272 9482+-6053 -7995+-7403 8366+2569 -1553+-126 -4192+9660 4122+5580 -7999+1402 -4801+-5108 4102+8917 -9331+2150 4163+-6865 5740+3443 -831+-917 -3747+-8441 -1248+-6447 -1612+-8285 9304+-4175 6853+1681 1320+-4979 6140+9702 -8960+6944 -617+-2328 -2064+5425 -6503+6420 -373+2864 8708+2641 -2042+9849 6736+-1995 8155+-4454 -2360+-6602 -4348+-63 3111+522 9685+5571 2562+-1889 -4562+3507 -331+8532 9156+-6705 7865+-3889 -5208+-1744 3688+-7869 -228+-7756 -7899+8236 9270+-9954 9319+-3406 -5601+-3782 -9794+9137 4465+1487 8488+-2529 -1621+3576 2894+7556 -6747+9033 7262+-110 1777+5899 4213+-7428 -9752+-3784 4792+8138 -6057+8552 7581+345 2184+-4144 1628+-6699 6046+1283 -8618+-1150 8182+-81 -3918+-9218 7484+-4801 9784+-7650 2476+6624 9644+-8869 4736+-8186 -1461+-9179 -3477+-2503 4377+-5194 -3431+-1189 4363+-9353 3151+8045 -9779+-959 5944+4578 6861+-8989 7376+-9329 -7764+-9877 2170+3729 3517+-9494 -3811+6566 8588+-1007 5807+-6912 -9134+843 -7608+-3611 8371+1557 9417+-6599 -9826+-6133 5207+598 6542+4683 -5554+5999 8168+-4759 3077+8876 5918+-2287 -3896+-3255 -6261+-473 4233+-8295 -788+8019 -9283+-6033 2665+6049 -164+9268 -5599+9147 -6092+3494 927+1370 -7342+-3877 1868+397 -1066+-4153 -1063+-2062 -3058+1899 -3494+-6831 -153+955 3423+7937 4166+5899 -4927+8908 979+7008 -4802+-8406 9128+-8741 4670+3700 8857+-228 -167+3041 -5565+-7196 -6274+-4941 -3242+4058 -164+2249 -9054+-9403 4130+-8487 -9157+-6071 9740+3757 7436+-3841 903+9550 -5942+1554 -2506+-4804 7977+-605 -2573+-8446 8124+4820 6932+3639 -3360+-8477 241+-11 -7078+1525 -9168+-8452 9804+3860 3611+-8677 -983+3539 -9260+6576 -6724+-41 6476+-9789 9782+1302 3572+-2962 -7891+3061 -3246+6172 6133+6878 -7699+5333 3941+1172 3199+-9326 -4009+-6978 -921+-4624 4442+3298 2158+9795 5306+-3648 7612+-313 -5024+-4879 -5443+4659 5226+-4015 -612+5494 9785+2346 -2005+-712 -1411+-7935 1372+2710 -7799+-9665 -6411+743 9227+3027 -6116+-8538 5486+8802 3282+-6506 2902+7789 1343+1132 -472+5970 -4054+-2347 -4092+-9868 8145+2904 -5809+-5532 -7928+1426 -2554+7703 -8506+2078 8771+2227 -3815+7958 4620+3890 -9029+8292 -7115+3515 -9076+5676 -351+-8574 -9588+-2541 -513+-4726 5092+1187 6173+-7274 2215+1506 -3841+9117 -2563+-9771 4510+-429 1528+-2385 4686+-6413 -7805+-3206 -8405+7186 -446+6929 -6010+-631 8253+-7714 9320+-1411 -4710+7298 6061+3105 -3667+-171 -2116+-7525 2126+4835 936+3472 -3725+-4332 -9005+-8077 -1218+908 -9161+954 -6212+-3155 -9776+-1092 -272+-6997 -715+3126 -5778+432 1072+-1431 -36+1719 2515+6523 2085+-9994 1337+-2395 4078+7001 -3719+1921 -9453+-1954 -7409+9496 7320+284 -5961+3672 -9696+-8363 -6846+215 6164+-3069 -7757+-6366 -1631+2227 -4397+9944 1989+-7382 -1857+1867 7619+-6804 -1354+2494 -5303+-3918 855+7667 -3120+-5300 2090+38 -1559+449 -3025+3746 -4261+-4391 2062+5517 -9450+-8056 9327+-4571 -7375+7355 3360+-9634 3937+-150 -596+5177 7068+-5557 3130+-5869 9128+289 -785+-4209 139+-8213 7922+-1729 5906+5168 -3667+-249 2752+-7530 -2503+-2930 -2531+-9363 3846+7139 -6842+3317 -6283+4934 -2192+-5391 1551+7363 1028+-5977 5582+723 -4961+4368 -3540+1976 -6711+7788 6093+1805 -452+-9633 6120+5478 5255+-9816 3994+1571 -6155+-7675 349+-4212 -1588+8478 7048+-3177 -2272+-3144 931+5616 -1101+-5735 6522+-8187 35+-5224 -809+-1330 3951+8248 -2865+1816 -7819+6571 -3038+4697 -2437+2825 -3701+4816 7767+-4208 6724+-7841 6849+-131 2137+-1316 6165+-7806 -9958+7412 9558+-7743 -1000+7466 -3763+-3381 7983+-3287 -4264+-5462 -3922+-8514 2322+-3932 -8116+-6230 7166+3878 3465+9868 3478+8786 5391+-4970 -4685+-9679 -5415+1797 -5065+4721 8481+-909 7699+-8153 -6257+-8367 6461+6885 -874+-7548 5240+7798 -9913+4690 8690+453 4864+-2363 -6172+-4754 9739+231 672+-2378 3923+-2660 3405+8365 -3368+-5952 -1978+-1747 8526+4641 5889+8021 3128+-3569 9942+-8519 8793+823 9069+8168 6009+6143 -63+-8849 6783+771 -2884+188 2725+5638 -2387+2274 9513+1000+411 -4238+1677 -806+-6776 -31+-669 -6275+-6779 3754+-1609 -6634+-3699 -2365+-3674 -6633+7173 -6857+-4852 -612+-8409 8869+-135 63+3088 2503+-9383 -4012+-7148 985+-3892 9630+-1719 -5161+3690 4948+1059 989+-5003 6023+-1163 -9693+-4788 -7126+5011 2046+-8755 -2227+-7316 -2629+-6819 -956+-6204 -8953+3226 -4627+3197 -3431+-9891 -1741+-1209 3466+2583 1178+4893 1122+-5659 -9298+-9614 -6575+454 9840+-5142 3940+7102 -6337+-1516 7712+-6143 -7581+6467 -679+-2446 595+-7123 -8383+-1591 9824+-7090 14+6726 -210+-9820 -1197+-6888 3581+-4492 -572+1993 4149+2383 1273+4556 -1522+2294 -5281+-2567 1650+-1482 2591+3474 7792+-5311 1185+8697 4167+9169 839+358 7200+6179 4113+9736 -5752+3071 -1418+4987 -2528+-1 -1916+-9752 4008+5860 8616+750 4243+-7678 -4252+3041 5524+7068 -3948+-8193 4570+-6674 -5155+1942 -7455+4263 4851+8293 7025+8560 -4448+7486 -271+-2326 5257+-4319 -496+4638 -2147+-8050 3577+7294 -7455+4709 3554+-5373 8106+8702 9915+8593 -8716+-7797 6384+8077 5738+903 -6214+-1979 2848+-5161 2818+-4937 -490+2108 3230+9587 5826+-7244 -7738+-2760 6622+-5412 6766+9242 -580+-6745 2287+-759 -48+1420 -8250+6441 4408+-7742 3649+-327 2945+2110 5509+-7189 -4551+-9778 -6579+9230 2169+-3623 8363+-5741 7115+-4442 -1673+-1776 5553+9246 5340+2567 -5849+-4208 -8491+-4080 1766+4136 -7249+9306 -6277+7541 -1530+-7516 -2266+9875 -623+-3 -5626+7513 -2471+2223 -1421+-3941 -5377+4569 3276+2096 -5655+1663 768+-4340 -1367+-3614 -7309+-4162 5127+8165 2027+-9875 4521+-8716 -3241+-1231 6487+2060 -2142+-252 126+9170 73+-6178 9031+8369 1019+-8310 8637+-1751 9958+9967 8279+7319 5043+-5210 -8827+9618 2732+9357 4082+-4626 -3853+9098 9896+-8735 -1514+-2728 2112+-208 -9520+7817 7972+-5313 -2702+2180 2531+-6304 -3616+-1947 4933+-9635 -9307+8517 -6873+5066 4307+6964 8686+9712 3485+1504 -7680+-2303 9478+6658 8477+-9251 -1564+2052 5664+-454 5095+-8903 -188+-2947 1482+-2680 9718+4763 7937+-7966 5125+2707 -6790+7989 3353+5428 -2370+7939 9157+9535 -4902+-4716 -3077+5708 -8871+4840 4741+-5927 8735+-470 9449+-7035 5587+-8390 -9787+9472 -3129+8563 -9775+5667 -3422+-3792 -5497+537 3498+8185 -513+-8554 -9684+-9892 -1341+718 1975+-9868 5289+3332 -9017+-910 6908+5171 -5098+8419 -2296+-8563 -9327+-8032 691+-5622 949+2963 1344+6449 -8503+-6980 -1655+8667 9018+-8051 601+4919 7953+8062 9366+2690 5023+-4369 -1411+7177 3476+4888 -628+-4925 -5217+4593 -4906+9260 2427+4296 -8371+-4231 -1728+-2303 -4899+7489 -4448+-27 7643+-8115 5340+7370 8782+-9014 -691+-6096 -5191+85 -1853+-4009 8054+-9236 -7980+4352 2967+4784 -5919+9515 -345+-6092 -8627+-2857 -4315+-4554 1126+-409 -8801+8397 2999+-4035 7024+-6965 5960+-7658 -1175+550 3181+4499 6465+-5283 -225+8708 3754+-8359 5175+7323 -3798+7473 8533+-4739 -9885+-7936 7605+-6306 4561+-5496 -8566+1808 3577+-8092 -4233+7357 5961+8264 -3587+-7263 2184+-1029 7876+4789 -6643+1883 -2221+-3647 1754+-7295 2715+8717 -4336+9642 3860+-1220 6358+6211 -6470+8379 -2235+-9749 -9691+141 -2709+-2414 -2212+2806 1279+8489 4258+5009 -4036+-6835 -5080+6937 1811+-2677 1896+7680 5993+-6156 4593+-5422 5857+-2128 6359+-9978 436+-1236 7313+-3202 5122+-3079 -8039+3937 -1003+-3431 -8846+3599 429+8635 6233+-4206 -1039+1726 -8615+5441 -8743+6441 2761+3686 3383+8957 2446+7074 -4799+6906 -6252+7344 9406+-2172 5500+-9481 -15+5259 7474+8909 -8042+-4106 -9705+-3158 274+-600 6185+5735 -1013+-3652 251+3924 8439+121 -7433+9519 1292+-5794 1449+-1699 -9229+-1228 -291+9669 -6763+-1855 -4313+1014 -2173+-1999 2232+959 8735+8238 3943+9485 1673+733 331+-809 7268+-8912 -8485+-710 -79+-3772 3575+-1861 -1860+-828 415+-1550 -4059+-6176 -3053+9309 -5371+-9609 -9183+3192 8683+60 -8584+-1148 -9628+4417 -4258+-7127 7615+9571 -1887+5853 -4693+3166 -8888+6094 -7649+-2760 -2831+2980 -3830+7034 3136+-4553 -2803+2911 505+-4815 -9301+-1576 -1236+8682 -405+5740 9196+815 -4301+9694 -4764+-5101 8626+-7933 4763+4482 -5202+-3059 -1356+-9926 3527+-2897 487+-1688 7914+7413 -4612+7451 -413+188 2231+954 1796+3265 336+2476 -2743+-9292 4552+9630 -3876+2586 -4203+-1819 -4606+5979 -7719+762 -535+5288 -6467+5639 -5540+9012 8570+9448 7578+9556 -3168+-5869 534+5775 5202+-8108 3165+5842 -3893+5695 5030+3677 -7675+-5261 3249+-430 -6230+-8212 7392+-6997 -4741+-4728 935+-1958 -7003+2827 4173+9539 -1953+1483 7274+-6459 8402+-6644 -1377+-120 636+-3599 6037+-6186 9561+3198 8092+-5792 -4514+-2724 7765+8241 -5362+5221 7980+-5795 -4899+230 -6956+7086 -2299+-2034 -5351+-349 -1829+-5366 5229+2297 -548+-7698 -1431+6884 -6036+3271 -6817+8843 892+-8793 5859+3447 -9845+1847 -6205+6498 5162+-5186 -4439+-4735 -113+7189 1128+-5850 -4343+4048 -9557+6701 -6907+5902 -2573+6158 121+6288 3177+-1068 -4887+6983 4180+9880 -7723+-311 623+-3263 8970+-5585 -7379+2789 7487+4002 6512+4604 9759+7009 1548+3254 6344+-278 -6669+9713 4364+-3123 7687+-5739 7238+1337 6764+7634 881+8086 -3512+-6807 4790+-1389 -8269+8091 -71+5183 3698+-2965 2757+-4099 -9957+2062 3158+-4098 4177+-3914 9805+-3320 9457+-5862 -1912+-6136 -417+-1225 -6483+-3009 6715+-792 -9280+-3058 -8321+-4808 -6867+3656 5087+-203 -2434+7238 4217+5775 9635+-6406 -8139+-2874 2601+599 -4546+6747 7215+-387 9574+-7229 3682+-4103 4281+2843 1577+-8099 5416+-1756 7506+-6794 8575+6521 -2566+40 -8114+7573 -1040+3329 8985+4423 3282+6086 -2263+9209 -3510+8105 -9860+698 -6414+-9371 -2691+-9859 -187+-423 9915+-5961 8775+-7779 8917+6502 3782+-6227 -9122+-8397 -5814+-8199 9969+-8129 -7152+7563 -5289+-166 -5701+3350 -5047+4703 158+-9744 -294+-2414 -5753+8614 677+-6543 4828+2297 -3148+9436 6590+-8681 -329+-1862 2860+7366 3302+6310 -5793+1203 9353+-3783 -7614+-9433 -3336+9426 -3005+-9456 -6029+2604 3366+-5993 -427+4707 -3132+-4725 5505+-2789 -2193+9725 749+3130 -6421+2694 1298+-7051 5927+864 -1425+-6450 -7972+945 1375+-2423 6863+-9370 2013+-9412 5686+6465 9552+-9097 -6092+-1495 -1516+5001 4217+-2467 9220+7748 -5582+2740 -8493+7312 3754+5933 3478+-2846 1854+6948 4053+-9941 -687+1336 -2327+-485 1923+-5093 -6712+6708 976+2362 4400+-8463 2388+-1891 -5307+-4363 6375+-8828 7562+-8539 3491+1316 6768+-5748 828+3927 362+-9686 -6105+7610 9134+-2610 2583+-4719 -8762+6108 -2619+7393 -9054+4842 2806+-5610 -3366+2579 2275+2242 8036+-7356 -3993+-3123 -151+-8633 8555+4889 4075+4302 -2524+8985 -5877+3495 6633+-7747 8092+570 8376+-9172 -3455+2493 1264+7818 2113+-6943 -1933+-8899 5028+-5607 -9599+6088 -6846+-5779 -9015+-6430 -3345+8390 7352+-2703 6028+2782 3497+6599 9193+999 4738+-5310 1852+5846 -4851+5527 -7494+5268 3998+-2913 6339+-1490 -4554+-7042 -5939+5017 3390+-7020 -3890+-4571 -6600+-3212 4787+86 8251+-6403 2049+-4948 -4663+6697 -6165+-5591 -9604+-3874 -2239+-5390 -3553+-2919 2759+-2246 580+2476 8054+4675 7091+-22 -5936+-3420 5818+9638 -1055+-4363 -8155+-7300 -4771+3474 -5657+881 -4724+8692 5384+4135 8851+6969 2041+-4204 -1075+2713 324+-9979 -1578+-4601 -8848+7020 2542+6266 670+4621 -5759+-8764 -8675+318 -220+-3008 -5822+-5219 5400+6050 -812+6567 -9175+4453 -772+-1274 -8190+-3075 -769+-4567 9563+9802 2740+1523 9216+-3813 -785+-6494 7462+-7118 -8149+5552 -2264+-5374 -5564+-377 -7902+-6367 -7790+889 -1780+6965 6488+-4084 3008+8242 -1939+1694 -8154+-3783 1018+-66 -249+4300 -7710+4819 -4285+-7961 -2529+-248 816+8253 -4956+-4161 -5102+-4569 -7701+6573 -3460+-8960 -922+-1222 5432+1543 -3714+1595 -8143+-6817 -672+-2086 7824+9676 -8380+-2890 -4886+5575 6898+7918 4786+-9120 -2126+-5076 -4279+-3621 -4076+4814 7119+-8343 -1348+-5989 6971+9164 -316+3575 -4447+621 2510+7677 -5061+-2932 -3040+3894 -8821+2601 -4782+-8427 5948+3158 -5277+-4195 -1632+-3183 -6198+-4951 -7358+-6898 -1028+7497 -8556+3203 -4315+-7733 6382+1884 326+-9438 4639+-4695 1612+-2158 -4526+1771 2777+-5787 2183+-4661 2023+6689 3897+-7575 -3409+-4063 -1989+3516 -574+-4074 9360+-8025 -6204+-3828 -6327+-2393 8347+5567 -9946+5950 5344+49 7360+8784 -7201+4207 9394+6258 6685+-2542 -2980+-5137 -4749+6079 4699+4217 -4516+-6013 -9295+8744 -9037+-6815 -242+-890 5375+-7616 -5620+1295 5334+-6479 3665+-6319 -5544+-3595 8052+1803 1595+-6593 -491+1305 6596+3592 5195+9926 -1758+-8383 5330+-4827 -5162+4635 4384+-6586 -1515+6314 -4736+2966 -2229+8847 3256+8747 -1681+5845 1231+3313 7200+-4217 8471+8223 -7864+-4639 -3951+-1985 -8119+-3253 -9003+1380 -8849+4043 2705+-2870 590+3986 45+-7740 -8964+-3609 1725+-4203 -9383+990 -3689+-1041 -589+-295 1719+68 -8613+3476 7416+3266 -1431+-5924 -9653+-5458 -3130+976 -9463+58 2959+-9272 326+-2898 -6753+4949 9257+8194 3150+2906 -5916+1768 -5697+7812 -4315+192 -9864+9606 -9460+775 -696+-3666 -7641+6544 9606+3480 5960+-1072 1098+6944 9938+8248 673+251 -6950+9508 9734+-6222 -1974+-5554 -56+4430 -9284+636 7904+-5287 1578+-159 7066+-5214 3999+4712 8649+1901 -7189+7601 -5700+787 -7147+-2803 9544+-8337 -5603+-8296 7567+-6186 -6296+1787 4330+-4835 -2865+-6297 9312+-4376 -7692+526 -5095+5757 6563+-7406 2629+-260 -5427+-838 -1084+2907 -9047+2170 -3827+-6698 2114+-6558 -1864+-8177 -6497+-1703 345+-9224 -6494+8796 -7851+-7998 -582+5859 3639+-5218 -9691+9987 -3618+7138 -8070+-800 -6228+5731 -8891+-8756 -3705+-7234 1782+7554 236+3478 8612+-1668 5137+8541 -5512+1091 5346+-4592 900+4175 6407+-304 4591+-3394 3590+5694 -1102+-5952 -9210+-8121 -822+5372 1445+4899 -8873+1282 4310+6815 -7045+-6171 887+1687 4430+256 1759+3332 8256+-8132 -4686+3824 6792+6279 -9759+-6187 -12+533 3388+8623 6044+2162 -6158+7213 1054+-8267 -9959+-4295 -2517+-5192 -9968+-2584 -2169+-953 8359+9306 -74+1817 -1196+-2478 -6151+-864 -9538+4339 -2788+-5815 3279+-427 9849+-6003 7715+-6846 9462+1225 2266+-9556 6155+-1802 -8960+-7641 4760+3489 -8362+4168 8507+8963 1065+-8212 -6190+4465 -2464+5122 7999+7869 -1615+4543 168+-9381 -1752+-6964 -4427+-4572 1419+-3367 -6266+6658 -453+-2250 6503+-5721 -1607+-6756 6231+-5761 -4611+-1595 2539+8020 1072+9927 7437+9640 -90+-4110 8054+-917 2771+-7504 -4507+-5138 -6547+-1320 -382+8995 -4205+5858 -7033+-4 -646+1422 9521+-4949 -9574+-6457 -1119+-760 -6315+-7147 -7292+8825 -7000+5720 -2574+-1405 4886+2280 -6083+968 -962+7961 -1775+-4966 6750+4090 -1974+6399 7544+1772 -6933+-8316 8626+-2462 -9289+-434 -4658+-9497 9541+-656 2077+2021 3152+5224 4840+-8635 274+6350 2655+1354 353+-6924 9293+-2102 -3867+7960 3525+4792 9339+5582 -9506+-5270 -4028+8755 219+1972 9375+-136 2167+3662 -3225+9711 9916+4588 852+9670 2222+422 -9036+9599 -6088+859 -1248+-7353 -600+339 -7284+1215 -198+-2993 -5447+-8390 -3522+4970 2671+1905 -4152+8569 -3689+9112 -8517+-766 -913+-9564 8008+8707 9778+-3517 7793+-7207 1002+-4448 4722+-8676 -8610+3856 2766+9110 5376+4495 -1006+-6415 8462+9035 9380+-3382 -4149+7299 -8267+-7773 -3546+7954 8283+6543 4850+-671 2843+2005 824+-7112 3600+-2997 7650+2076 8938+-9827 2298+9252 -6051+-4944 4957+7718 -646+-7365 4033+8871 -6954+-663 258+5308 -2296+-9714 -6622+-4959 -3274+655 -5938+7029 -9291+2316 5292+7054 5030+3316 2631+-6872 6194+-700 5476+-6771 -4472+-7276 -3754+3485 7305+-387 6646+-9245 6055+6973 -7608+5336 5106+7211 -3133+2581 9135+-9375 5327+-7038 1186+-193 9830+-3477 4631+-1937 -9057+2682 5192+8526 1438+6994 8903+8456 9687+1000+5539 8108+-9990 -9947+-7316 5712+-400 -2172+-7535 6997+4232 1944+-2864 -6756+-808 8177+-1046 3585+-105 1011+-4953 -8920+6884 -9285+2208 5678+-4266 3343+-1851 -3379+-2818 6960+-5420 -5886+-4202 9520+4514 -488+-5135 6533+-5691 2608+3602 7349+-3987 -4+-5384 -5462+814 -2602+-7710 -6792+5310 1990+506 -2361+6167 6980+1846 -9028+207 2559+7869 -7050+2808 -1197+-5147 -7713+6873 890+6185 -4826+-4574 -550+-175 -1126+-800 3000+-923 5553+6352 4535+9132 5410+8198 8810+-9235 2636+1248 -1940+1645 2038+6197 9856+6852 -1957+4605 6079+-1255 1540+4474 -4853+1370 -186+7132 1486+828 -7016+8029 -1224+8475 5867+-43 1050+4155 5583+-9540 -5914+-104 4702+8064 5940+1868 986+-8721 -9077+8087 -1155+-8048 2883+449 5480+-9723 8328+-5452 -5076+5569 -2885+-9058 -6528+2172 7934+-5116 7339+-224 9522+9054 -5884+-9274 -1803+-6408 6974+6733 -2058+-2066 4994+9020 2492+-5123 4971+-1769 -9279+9392 -6353+8953 -550+-4066 2173+2281 -2196+4002 -3344+-8897 -1710+-3796 -8276+-2617 2817+-2759 4044+8794 5662+-7796 -4778+4327 -2153+5640 -6123+4873 9505+-7894 -3504+-9897 -7821+-6032 -7863+-5285 7819+8983 6931+-8636 -8910+-6515 -6826+5843 2039+9074 -2511+4683 7732+4531 2786+-9718 1934+-7124 -5345+-8919 -3467+384 310+-8228 1562+-5011 -9900+4312 -5351+8424 -5480+1728 -7519+-4056 7332+-8527 4509+-2433 8809+7724 -8336+4560 2222+8457 1646+8052 912+-2440 -4856+7263 -4259+6231 -3504+2906 -6410+5610 -320+-6048 6307+-6327 7392+4615 -7227+-5413 36+-8995 -8078+5290 7514+-353 7903+7950 -4390+-7335 84+-4454 -1011+3144 4073+9498 -8211+6697 -7886+9214 4316+-7094 -7249+3682 -9384+5973 8633+1895 7537+-8042 4076+-8916 -4517+-2080 3206+-2556 9168+-8325 -9655+8277 1313+-3386 7348+-8823 -8430+-1630 -7144+-5451 6906+1938 -796+-2660 79+-1506 5397+3941 -6685+-1221 -3549+-8934 2639+1563 9979+5160 425+-1792 3086+5535 4402+-1153 4476+-9558 2008+-2871 -1782+-6208 -6778+7146 2535+-9874 -8529+4523 -4056+5603 -6845+4266 -506+3137 -1094+-9019 1192+5100 6265+-8732 3542+-3981 8178+728 -6825+7203 723+-9188 -1198+-6035 2051+-4856 -2134+-4895 -117+2516 9325+-2813 599+7189 -8226+-2906 -318+-1106 1574+9942 160+6205 9660+8823 7654+-8323 2266+-8596 9595+1776 2525+-7610 1654+-5928 8376+-6875 -4892+-6953 6261+-1902 -3087+6095 -9912+6863 -1618+2649 -6929+-8358 478+5536 -4514+2074 1268+7646 8557+6509 2534+-5809 -6304+5126 673+7094 -154+8591 908+1617 3772+7282 -6348+3465 8716+-1213 9353+1960 9258+-1950 2092+-1502 2486+-2288 -4018+-829 -9344+3223 -42+-5458 -6786+-4325 5761+8170 2260+6639 -593+1184 9543+9962 -8654+8506 -2547+-6766 -3820+390 -1794+-7161 -3205+1336 2415+5381 3268+1478 -5250+-8877 -8412+4 4059+-6081 -8913+2165 2147+-1249 6809+1966 9207+-3729 1218+5985 -5952+4620 -8908+-8934 -1193+-3003 -2584+-2655 -7525+-4265 9116+7280 -5623+-7268 -4773+3294 6504+-7271 7224+-757 1023+1286 -2504+4695 -5348+7276 -5157+-1541 102+-8538 5306+3383 1518+-9537 1142+-5800 3524+3045 -4304+-4929 -800+-252 3547+998 2197+-2412 8506+6685 -2151+8848 -6758+-3666 -7119+-5435 3106+2661 -9280+-2621 6839+-1958 -7856+5153 -6512+-6336 977+6259 -5730+-6910 -402+2141 5987+-438 3960+-7431 -9471+9250 9278+-9559 -7023+1725 -1761+-4465 9032+7591 -2320+-8573 -5028+-2390 4815+9219 60+1048 6868+6290 3492+7007 -1461+-4257 -6170+-7041 -636+-862 5448+-8075 9250+6473 -9644+322 2836+5278 7915+7644 -143+-9384 -8276+-5814 -9601+2344 7275+-1157 8217+2090 -9898+3108 -9030+3957 -62+8755 4117+-8307 2557+-2597 8254+1684 139+2848 5950+-9552 6479+8608 -1478+9867 344+9094 8070+-8952 6036+42 3476+-5396 9482+-1918 -3140+9143 578+8392 -4135+-25 4423+1857 4143+2447 -9349+9091 7424+-7627 9769+-8358 8602+7349 -5995+-4044 -542+3106 -8170+2369 9753+1988 -4790+9204 6269+-4678 -4320+-8842 -5634+4762 8907+-8272 2889+2454 2711+-9274 2173+5418 -9111+-3239 -5303+201 2657+-1199 8562+-3280 -6739+-3584 2403+-3891 -5934+9833 -4658+3267 -947+-442 221+-5607 -6059+-7388 9994+2983 -5069+9442 -6996+2356 3324+9 -8298+7206 -7048+-3598 7852+6377 2371+-2316 3441+8230 -3455+-3515 1663+4036 703+-6150 3227+-7070 9367+2972 2950+-3237 9429+-2098 -4549+-7845 -3373+2132 -9828+-872 174+2588 -4565+177 9255+-6000 -3776+-439 1405+-3384 343+8261 -9537+8497 -4454+8486 -7646+8321 -7067+4559 3637+2204 1180+-1164 3033+-3793 9601+-3687 6407+-2065 -7979+6692 7893+-6865 7826+6159 789+-3374 -3887+4531 8670+3649 -7479+9256 3189+3038 7013+8629 -5153+-5537 -3810+-2215 2735+8624 3432+8817 3215+3551 -3535+8560 7574+-8498 -4615+-5829 -4435+3357 5734+-6631 -9961+-2758 3610+-2770 -1320+7734 -3216+6419 -6410+6241 706+-8972 -9985+-4748 8453+-7542 803+4538 2494+7866 -7089+-1129 3580+-9696 -1695+-4847 8365+-2909 9314+618 2654+-4012 1841+-623 5607+6598 7313+7936 -8280+6349 5032+-9214 1028+4737 959+-6164 6262+-5981 2050+-1779 9397+1738 9951+8071 -3458+-8011 -3494+7833 -7972+-1319 9885+3401 -1653+8508 -2707+-8473 -5852+388 -7424+-4367 8948+3112 -8097+8615 1493+-8290 -2635+8181 -7840+-814 8742+-8701 -323+6081 -4695+-4312 9147+5412 -8276+9969 4543+-3296 4136+-2190 2699+-4737 -6171+706 4855+9696 8680+-2335 -3392+2406 -8404+8209 8017+-9815 -4175+6373 2482+-8163 7899+-7976 9344+-4405 -4150+-7786 3543+4631 -2260+5704 5342+-1164 -8873+6840 -3976+-3789 -9433+-1614 328+5058 5861+2282 -283+-7604 -5474+-6383 -9658+299 9198+1629 8476+-4161 -2836+1466 -455+1515 -3253+-4646 -8984+8698 -5272+-9042 -8814+8092 5926+57 7315+4366 -5543+710 2154+5639 8948+-6678 -2570+-2373 -7889+-7919 -922+8819 -9007+6547 -7371+-2672 -9805+9725 -9613+8913 4861+5488 -1608+5343 -4379+-6641 -9732+508 4531+-9488 9206+-628 9120+8758 5406+-6742 -2971+7253 -1842+-8597 -5685+1167 -8934+4148 1915+-2520 -2722+-7554 -5755+890 8378+-6705 -4567+1135 6596+-1005 -8983+26 1705+-5677 3932+-4635 -5124+-5693 2311+5357 8858+-4512 490+9394 4836+-7050 6142+9640 -6392+-4667 -9177+5084 5103+-8340 903+-7788 -3582+9887 4682+1718 2610+6428 -7279+-7623 5740+-9608 5862+-4053 -141+-7908 9470+-7538 -1388+7503 -1899+-6143 2135+-4435 -5213+8770 -4937+3365 -7925+-9168 7400+-6510 -1767+7297 91+-3258 -3046+-1537 3895+-3250 5528+-9158 -1130+1584 4355+-4650 -2163+-2044 -3754+9991 1578+7902 3552+-516 -2601+3493 -92+4364 4540+7031 8060+-5073 -8131+5763 1820+-1685 -6343+-4436 -7186+-5552 -5032+-7964 -7332+-8352 -4457+588 -3966+4496 -6106+4250 -605+-7276 -5411+2728 9317+7341 -8373+1003 3607+-9059 4572+-7750 -7834+6043 2064+-444 -8989+-8940 -5680+-1925 -9991+811 3550+-5003 -5275+-5602 -5688+-9576 6139+-9268 -1767+8548 -7360+533 -5895+-9530 -8159+501 -8677+-6979 1803+8770 9678+-6637 -7477+9217 -4205+4007 -7762+-4768 8966+-5957 -5357+-9492 -3188+8273 3913+9438 2687+-4813 8892+555 -5689+-4183 -2865+6173 -3761+-4457 -649+-3734 -3841+3339 -3800+-6175 -613+-7434 -9933+-7335 -5003+2810 -2849+5777 -1813+-6080 -7267+6740 414+-2830 4684+-7268 1693+-765 7460+-89 -1571+6674 7128+-1600 -4315+-3250 -1364+-8063 7640+8133 -2565+3736 5395+-7235 9430+-1397 -9316+1805 1323+1689 -7862+9930 551+-7528 2110+-9290 -7855+9804 -1955+-5890 8658+-5786 34+1840 3710+-5409 -5219+-7048 6618+7483 -20+2180 8909+4144 9536+3239 -3178+2109 -6305+-3728 -6990+-1405 7386+-877 -4075+5978 -5226+2449 -2861+2079 -6768+7129 -3698+-2342 -7758+-6829 -1068+5858 947+845 7548+-6926 -7762+5712 -1032+-3328 8866+-5440 -6602+7747 8288+-2725 -8764+7510 -2942+2426 -7393+6575 -2800+1379 -5099+8236 6164+-6954 1965+5192 -7234+-9991 -5480+227 2406+-6249 467+-7105 -7948+9009 -1389+-2337 -6762+-3552 7920+4601 8261+7308 7103+1787 -1019+-3067 4513+9122 -455+-2614 -829+-3646 -7733+742 -5677+963 394+9348 7265+-2838 2970+674 -8127+8676 -6454+6903 -6950+4288 9933+2416 5318+-4788 -5165+-1535 1861+-9923 1993+-99 -2086+-6101 175+-8572 -6162+9192 -7471+8932 -6330+9611 2808+6911 2015+8859 4881+2874 5453+8091 2208+-6060 5597+3155 -2235+5421 -7104+-3287 -4132+-3912 5920+-7709 9239+-4114 -4493+-392 6504+4504 -6547+6886 6803+5678 4407+-8724 -7863+-2188 4520+7975 7076+-1784 -2641+8352 7036+-7134 -7290+-8626 -2525+-2610 68+-6260 -9263+8144 8984+-7992 3896+9897 -7297+8968 -8479+6184 -3553+-3919 5468+-1383 -3775+-5986 5677+8606 6752+8732 4632+-1276 -2228+8947 -1928+4730 5324+-9397 -6549+8154 4339+-7113 -737+7190 -9022+5030 -678+-5183 4315+-717 7478+6393 -2047+8286 3412+-3 -7672+-2110 -5022+8643 4648+3049 5523+-1899 -4169+8298 8934+2166 7934+4573 7917+2792 4213+6152 -7723+1998 -5395+1012 6459+-7688 3551+7717 6633+-6975 80+7496 -2186+1475 9306+-1315 -995+428 -165+-7745 5659+-5256 -5963+3795 5242+6115 -9751+9377 9904+-5317 2453+-1388 3847+-4746 3625+4025 -6152+-5543 -3014+-9560 7908+3232 339+149 489+-8658 7456+8412 -9428+-8856 -9197+-942 -6316+-8580 3807+9234 -3132+-4899 -1167+-8867 -9834+-1509 6365+5736 -2668+-4359 -964+-3776 -8683+1914 -6548+-7103 571+7724 7047+-3589 -3707+2093 7879+-7081 -6667+3378 7189+1303 9198+-5070 -5306+-9380 -8366+7428 9404+8839 9617+-8411 6922+256 -5444+-2443 3631+4362 180+3910 -7912+-4153 9441+7158 1531+-4476 -7081+-6426 -7258+8709 1438+-4320 2240+1224 951+-8341 132+618 7027+2752 -9982+-2114 146+-8622 6548+-6078 -431+2616 -5664+-7558 2149+-6815 7794+-2388 -5621+7730 -2849+2048 -6787+3353 -2729+-2891 -3966+8203 -5606+6444 5480+339 9243+4346 -9509+-5669 -5704+-7373 -4333+2357 -8887+5809 4308+2885 -1736+509 -7887+7946 -6534+-3022 4221+-3060 -5387+-2549 818+6683 3201+-5959 -9371+-6223 137+2338 -8404+9668 638+-8915 1250+2074 -3966+4210 -9523+4358 -1237+-9187 6523+-2983 8418+1639 5492+8448 -5486+7677 6415+1694 5804+-6979 -3502+6223 -5718+6015 5470+-3628 -7624+66 883+-9156 -3938+6855 -2052+-5724 105+4908 7455+-6734 -736+1730 -6547+-2133 9173+6157 3007+-7796 -5961+-8737 -6498+-6034 8216+2913 -464+-6020 -2806+6443 5814+1787 4934+1711 9995+-6799 7623+-247 -5746+-9553 -4959+5407 -8101+8732 -9230+2467 -6204+6564 -1909+187 -9045+-495 -7714+1916 1127+7978 2525+4995 1214+1793 -7854+2590 8946+4802 4862+-8304 329+8282 17+-2165 -2217+3788 7827+-9869 2913+4064 3300+6326 471+-5917 -3031+-6839 -7143+1397 -1799+-5347 -7302+8989 -6375+7185 -2421+2368 138+-7099 -961+-2991 270+8219 -3759+178 9865+-6440 7484+1158 5851+4192 -7479+-9209 -5039+6877 6030+2454 -4252+-8811 -5839+-5740 -8415+-9771 9990+5696 -1059+7606 -4165+6948 -7858+-9843 -7708+7597 -8266+4074 -8555+5298 -1671+1605 -9491+-6398 -9048+7175 -9383+3603 -7506+386 6931+-9211 -4530+-4503 9274+4990 8236+-1420 -7638+-7620 -1271+-7856 9821+-3774 -6955+-447 2779+4869 6473+-8937 -8586+6006 6953+-6072 946+-3021 -7603+-2399 5259+-6708 -7399+5152 260+-7459 -4063+8521 8015+3528 7744+5074 9307+5531 -8135+6837 -4855+-4956 -298+5646 2950+5270 8789+6717 -9017+-9405 3544+1496 -873+-4516 2844+3118 8898+-7925 4094+6202 -7472+-3013 7688+-7 5698+1438 -5066+-7041 -5376+-4422 4271+-295 -7143+-9741 3654+4376 -3823+-3994 -399+2168 9084+-1627 1742+-9613 8319+-6115 3258+4313 -6279+5397 1812+8954 -5303+-8609 9716+-1210 5193+-8654 -7520+864 4767+-6437 -9118+4255 -7875+-4069 -5799+-621 -483+-1083 4207+-3699 -3352+-1865 -5680+7306 -5272+-5285 -1510+1164 1078+8238 327+-8029 -6514+2314 -1564+-1962 -6535+8469 -7944+2160 2089+3893 7383+2678 3164+3023 9340+1115 -3713+-3386 -107+-9894 -2328+2790 -9199+-1366 -243+1000+-9560 4040+2517 -2855+1283 1183+8301 9988+-9213 3703+-550 -3399+874 -2612+-1813 8804+9174 3759+5482 2996+3085 3027+553 8871+5606 3008+1184 6904+-9084 -4085+-6990 8920+-5883 178+-831 -1571+6159 -5022+-1319 -410+5954 -9587+6411 -9681+3667 -8212+9939 2004+4387 6356+526 -6850+-1959 -475+-704 9830+4178 -8976+4560 -3846+-349 -8543+-3949 7218+4067 381+5390 -1856+-1878 -1670+-9613 -6571+5102 -9277+7357 -7560+-9258 -1933+9614 -3692+3723 4744+-778 1400+9455 3891+7883 -9755+4462 9694+-7768 -8570+4689 -1530+9291 5419+-1895 -8672+-1664 6455+9515 -3693+-2473 948+-5962 -5095+-4078 2287+-2359 -9869+743 1737+5521 5788+-5861 3292+5032 3395+4619 3795+-8017 -7740+-5808 -9571+827 6649+7973 4105+-7335 1937+-1082 8038+-4023 -100+36 4200+9048 1516+-1190 -1867+-7665 -9718+-889 5267+7778 -8858+4767 -3748+-3824 6782+-9688 7709+-4696 -3357+6600 -3776+3474 1905+2294 5163+-9558 466+864 -7705+-8994 -9192+-2966 -5379+-3432 -6082+851 -1606+966 3229+892 6674+-2673 1548+-6899 8921+4629 2190+4210 443+-983 6306+547 2951+9950 6431+2167 -7601+-6971 8378+-987 9569+3945 2621+587 6233+-6451 -8068+6820 1689+8540 5675+5547 -9937+-8502 -3459+-48 5708+-2932 9058+2120 -9643+-6576 -9401+2614 -9775+3882 -2331+63 -7105+1371 -1440+5193 536+-6202 -4255+-9510 3517+-4806 125+-5795 -9323+7254 -7425+229 4667+2119 3624+3860 196+-3603 -5724+-2952 -4442+-23 -9239+-1284 4202+5346 8220+-456 -2424+-7006 -5256+-4985 3467+-8982 -6379+-6728 3710+-3470 -7083+4755 -6188+4361 5576+1581 5335+8391 5862+3383 9393+-1596 -4647+-8218 -4908+8350 1310+-9548 -8283+606 7925+2129 -846+5399 -9703+7376 2918+-1818 -791+9621 1386+9269 -6769+411 2489+1417 -1776+-179 -8603+2039 -5725+1263 -4916+-8631 -9644+6103 -1710+-7314 -5024+-4754 -7299+-9405 3050+2298 5808+-4940 3917+-1584 -5554+5168 4982+434 -3152+9910 3558+-203 2128+6021 -8630+-1484 -2052+7040 7877+-8087 5119+-2532 7245+9874 7469+2209 -9866+1876 1296+-3093 4923+1768 9410+-6832 -8904+1256 2985+-5519 442+-7296 570+-8301 -330+3042 -2580+7060 7782+-112 534+3036 -8347+2222 3977+5123 -8146+-6965 9351+-4947 -643+-9818 -6832+9527 7087+-6088 7408+1219 2506+-4038 2745+9298 6753+-9580 5332+2425 8634+3553 860+375 -7795+1623 -7216+8729 -1659+-7197 -9545+-5418 -3718+-8095 -4574+2170 9852+-9341 7385+9397 -668+6109 -8081+-4805 6090+-6168 8284+-4984 620+-3580 -8313+2409 -7462+1868 7607+-8355 -5469+-5721 -1376+9318 -3313+8526 -8302+-3580 2419+-8956 2339+489 -9433+-2433 3032+6034 -9012+4936 5721+-8429 -8289+-6660 -928+-9740 -4510+-5588 426+-8445 -8702+328 -5412+4276 -1675+7319 -4555+-189 5483+-4145 -9490+-1755 -3886+-1961 8505+-9969 7307+9157 4187+-8097 4304+-5352 1059+910 1139+-823 4969+7021 9391+-1413 7936+-2760 -2403+-2952 -7046+1631 -9529+-5392 -133+-301 7134+3999 -36+4837 3880+3258 -7152+1448 -7074+-5986 9057+4786 -2888+-5764 -6791+3156 -9058+-8819 5458+1478 8515+-930 7302+-9031 -2756+-967 -626+1560 7800+760 7831+-8103 3649+5152 421+-2888 5237+-7603 -7893+9138 4384+2408 -5678+-345 -4209+-4002 2216+-6410 1187+6166 -9621+-7193 -9293+-2910 3229+-4937 4364+-1525 -5233+5750 8298+3208 -3247+-7029 -5290+998 202+1050 -726+-7328 1905+7881 8764+9880 1376+1294 -9766+337 -4681+-1855 -3251+3859 -2569+4646 -7991+-5852 4613+7394 6754+7652 5356+-8617 1580+6803 4970+-6051 -462+-7488 -3135+-1918 6933+8733 -4165+2112 8079+-4885 -4404+1197 -8208+5305 9442+-9890 -8316+5505 -2602+4041 4964+-1905 5897+-7438 -9821+-9 -9241+8135 -8835+-8461 -8291+-1086 -4825+6934 -9240+-3537 9300+-4210 -714+7711 109+5591 -7504+-5573 -8829+6025 -1947+3253 4121+-5142 -2213+-8777 -7562+848 -8052+-5178 6801+-5973 9983+5556 -6245+5822 -9598+7998 -1516+9499 7149+2181 3908+-992 2687+6002 5198+-5627 713+3388 -6715+4313 5933+8039 -4562+-948 -7199+7123 -143+2932 -7086+1662 7974+-6200 6581+9792 1196+3279 -9110+3528 3436+4805 4939+7259 -8237+9530 -8195+-4443 -2825+8849 5769+-2301 4309+5890 7033+-9873 -3828+-7506 3508+4627 -2194+6741 4071+-5599 6710+-3770 -1994+-3513 -3296+-2118 6504+7232 -283+1658 -9946+-7640 -4576+-7069 1071+5689 -7513+5785 -4841+-4048 648+-8787 3134+3600 6981+5990 -8563+-6010 -4479+5103 1832+-8813 7627+-371 -9414+1191 -9649+-2164 3092+-8485 -4304+-8500 -601+-3791 1781+3263 -2379+2290 -5014+9539 8686+-4540 -5270+4846 1898+5044 64+3230 -8109+4920 -2692+9907 -494+3022 6658+7362 9951+-3083 7341+-7256 -3336+-7160 -2047+1338 884+3414 6668+349 -3259+9875 1039+-4681 -9429+404 -4637+6685 -55+-898 7172+3521 -9561+-3779 4646+4892 -5976+-2788 -411+-4419 -9887+-1078 8342+5370 8225+1339 417+9816 5768+4636 7120+-3397 -9945+-3880 9316+-9035 -2429+4102 1229+3499 19+1809 8002+2909 7647+4021 -2123+7175 7844+9198 3022+374 1154+-3709 -1461+2692 7010+4563 8085+-417 -9953+5693 -8754+5978 -4587+2938 3924+-7508 -1091+-4145 7180+289 502+7961 -7126+-1819 -8598+1049 -7767+-5203 2796+-529 -4010+-4742 8714+-6142 -9876+5309 -7596+7666 -6487+-6885 -2235+579 -5631+5391 -1663+9117 -9720+-7393 -3491+796 5647+-6681 9782+70 -5020+-1106 -9096+960 -2647+-977 -1557+-2000 -5181+-9399 6639+-6395 -9686+752 8223+4638 -7875+5457 -6575+-6297 -2769+4458 7724+9949 5864+-9619 -7712+-2846 3507+-6528 -2346+-3672 2722+4509 3962+686 -5545+6529 2651+1740 4159+-3553 -4866+1861 -8969+2445 -9755+1989 -75+-3080 -5348+-6115 -1888+-6600 -5106+-5440 9961+9101 5091+-8703 9579+-3138 3550+3989 -7028+-4330 1773+-2333 140+-2791 4824+9618 -6840+5569 -250+-4378 1776+-4223 -5715+-1253 -6085+-385 -6511+2666 9604+5859 5596+5324 -4306+-9521 -4296+-6312 -5483+-7692 -8001+-9385 -3855+-3115 -958+9080 -5109+-3442 -980+6625 -6996+-5110 -8121+-2893 -7850+-7295 7942+2536 8145+3255 -4772+4263 -4849+4841 2873+-8426 750+-2057 -2192+1946 -418+-507 9484+-7482 8718+6977 6294+561 -3871+-2914 -1900+-9274 -528+1032 4265+4313 -3599+-7409 8449+-8945 -85+2825 -8318+-1637 7659+3292 4827+-8616 -4092+-5357 670+-5826 1031+5139 -5113+1110 -2613+-5516 8345+-2844 7940+-5977 -929+-8223 -7958+-6782 691+2298 -2541+-2281 709+1003 3222+8871 2401+2258 -7138+5329 3723+-149 2214+6326 4617+-2852 -2480+9782 -3859+-2499 -3597+8212 -8943+-9244 6546+8312 3850+8987 169+3135 -9272+-9738 5858+-3019 8913+-1670 -7593+-3659 -2440+2236 5269+7449 802+-3345 -3531+-3952 834+8933 5395+-4234 335+5744 -4581+-6553 8233+1407 6502+-9868 -6549+-8409 -3112+9035 9975+-1051 6114+1185 -4940+-1082 -4871+2781 -7237+932 1695+-4759 108+-7116 -4283+2963 1180+7612 -9204+-5342 5708+-9445 -1880+3891 9345+-3744 -4581+-1267 -9653+-3537 -7092+6667 452+6201 5480+-9824 -3515+-181 -8550+-8715 8089+-3782 -4029+-471 -8741+5550 -7755+8813 -699+-255 -1695+-5695 -8926+-270 -7999+9972 -8269+1931 -7918+-3246 1253+9793 8155+843 -6205+-9300 -5500+-5709 3928+694 7020+-9223 7538+-621 -6673+-8892 -8628+8005 -5032+6444 3133+5698 -4970+-3094 -5710+6728 -9101+-1505 -9135+-7065 1915+5888 -166+2938 -9485+-5423 -2374+6614 6010+8388 -8764+-2103 169+-7032 3273+-6266 9954+-5789 -3000+4322 1209+3723 -3003+4549 2718+1776 -8418+-3114 3935+-2259 -5986+-5606 -9001+-5178 -2977+5250 -5682+815 -2935+-6992 -4826+7988 -5687+-907 -6408+568 -3820+-3369 2213+-9624 5813+-1119 -1592+-7785 -4364+9575 -5237+-1197 3993+-8812 -9849+4053 5133+-9249 -9806+-4003 -6918+7369 572+5253 -9509+-7295 -2607+-6852 -9245+-8354 -5273+3352 -2042+-8985 2406+4569 -3853+-9030 8565+-2448 2728+-2377 -5595+8504 -2950+-5254 -5186+-3968 1154+-8597 -3019+-1577 -8561+-224 1999+3866 -7604+152 1779+1903 -9581+-8985 -3049+4235 -7711+9244 -7359+-9346 5868+-6659 2591+4814 -316+-8509 3106+-7449 5453+-4447 -5219+302 -6216+-574 -152+4718 -5544+-9873 -7870+9725 8972+1630 9051+4386 1072+-3267 -9725+8759 4734+1405 -3222+4494 4704+8664 3708+1466 -8361+3591 -4703+-2628 -7181+-3136 2362+3560 6167+4859 -8379+-7162 -7938+-5943 1136+-8811 5497+-7559 6984+2069 -6613+3062 8964+2955 6511+8330 3396+-3602 -3392+-6357 8276+-1421 -9664+-8143 1927+1099 1649+-17 8138+-5186 9343+-4767 -1406+3098 6130+6597 7420+7444 -7790+7359 -1479+-9596 2705+7411 6776+3771 -9267+4778 -9188+7906 -834+-7320 -55+2902 3144+-6450 4080+-2171 -4127+-3245 -218+4094 -2964+-9663 -3077+9183 -2795+-5511 5842+5034 7741+2842 -5607+8576 8643+535 3535+3534 -6426+1306 -3057+-6255 2814+7792 2683+7461 7705+8845 4556+-7839 5779+-3552 860+-7650 -9517+6956 9926+-6436 8692+-4118 -8754+3065 9264+-1619 8338+4277 -2061+3874 8813+6169 6900+-3745 -1097+-8482 5960+-774 251+-5801 2402+-660 -5317+-8331 -9724+-4261 -6303+-4101 8182+505 4010+-2838 3224+-1755 -4009+1973 7116+-3151 -4977+-5208 -4720+-7737 1094+-8674 3920+-5886 220+3446 -3012+901 -5126+-5852 8071+-3285 4775+-4563 -3853+8430 -582+5921 1214+7063 8072+2959 -3776+-8084 5732+9216 -9461+-69 -9186+8392 3576+-7726 -5342+-8075 8805+-4733 -65+-880 6294+3259 1525+-3638 -7409+-4244 -5463+-1364 5291+-7466 -7531+-5470 9489+-2580 -5312+940 -6130+-4406 8128+-2213 7261+9931 -5339+-8641 -598+-5793 -6662+-6654 1579+-4778 -1400+4797 2365+-8024 9678+4561 3166+2484 -2615+-6732 9824+-9295 8878+-2483 8340+4099 8299+-2587 9753+-7699 -3483+-4844 60+-4199 -2641+5132 3773+-261 9643+-5787 -1919+-7501 -7366+6868 -9242+-4700 2243+8178 3788+-9755 3392+-8453 8010+5143 -9701+-9966 7004+530 -1341+-803 5935+-1187 -2939+-2723 -6012+8271 -7760+5171 5677+-9586 3880+-3277 -9702+-3811 9768+-2362 -4752+8039 -4478+-2288 -2485+-920 -4181+3126 -4715+7976 -5283+5267 4744+-8592 -4930+-5340 4873+4983 -2755+974 -5735+3252 -8729+-5097 8132+3791 5331+-1127 -646+-6337 -3115+2577 -7794+406 6477+2364 1039+2580 8492+6044 -9109+7655 -3579+-494 661+2150 1288+-5133 -9479+-3403 4180+682 -4476+-4048 9072+1960 4134+-2325 -7008+-2074 -5049+-9317 -3070+9243 -1205+-9181 5477+-5582 -6958+7508 -7526+928 -3703+-6992 8209+-4637 4478+5510 -5885+-4128 396+8280 4539+2433 -9197+-2131 4302+2452 -8693+-9885 -1286+-8596 -7318+9600 2820+-7002 -5570+-2236 5069+-4893 -6226+5343 -9565+4644 4852+6565 -962+-9210 -7526+-3306 7694+2279 -4062+6377 6605+1653 -8770+3653 1070+-6106 3666+8194 -8483+7932 6445+-6678 -7834+6896 -9966+-2583 -741+9554 -6797+-6711 2918+-6600 4850+-224 6903+-1342 3109+4816 -4919+4267 -7806+544 2775+6651 -9191+-617 -2539+-8946 5015+-3237 1573+-3640 1358+3000 5265+-7600 -1728+3892 4151+169 5185+-1286 -7674+9407 5273+-8057 -9515+3500 -4798+-9574 -4944+-2825 -7271+-3898 -9950+-9904 -6718+8543 -7534+9404 -4745+7427 5475+-1209 3376+3153 -6256+-9569 -892+-2482 -7997+2071 -5895+8158 4199+2996 -6086+2001 -8377+-202 -6346+7136 6543+-8621 4699+5216 1970+-4222 -3038+-3941 -9987+656 6894+2143 -2646+-7982 -8862+5314 890+3386 -3940+2752 -4415+3578 -1046+5106 -5337+6056 -9555+-2850 -5974+2489 8707+831 -1880+-2900 587+2535 680+-8443 -8234+-967 -8275+-8965 5059+-513 3449+8121 -2983+-7772 -7662+1346 3938+1027 -4799+5587 4133+5556 -7300+763 796+-1126 8435+7902 -1898+-7824 9333+3044 2474+6640 3860+-6027 -7505+-9027 6038+-1488 8013+4379 7803+2504 1073+4482 5572+-5123 -4695+-8970 -9376+-4467 3450+9050 -1122+-9240 6001+418 8534+2495 8442+4690 8710+-4176 -5733+-793 -4671+-5310 -2364+1023 5941+-7672 -7507+5537 4243+-5930 -3100+-8547 5092+-5424 4834+-4866 8589+5313 -7940+-6922 2940+-1077 -27+555 8076+2585 -8586+3699 -6197+5891 8526+6931 -1416+-1274 -4264+-8859 2558+5849 -2837+1000+9280 -428+4837 -9059+5614 3874+8936 -1625+-7919 -4460+2880 9259+-6092 -1174+-1699 -6235+8329 -7189+-3771 -3789+9992 -6588+6975 -4279+-609 545+4806 9174+44 2375+4591 6831+-4638 -3897+7281 8466+6614 -5789+7150 2281+-7039 -1287+-7962 7423+-9082 -1360+-3297 -8817+6554 -4249+9853 -7320+-9686 -8260+5885 -4194+-3075 6274+7222 -9869+-9013 -7625+5359 -4192+-2665 -3138+4548 499+5484 -3736+-3867 -9967+-8960 -3695+-3678 -6262+-6784 2292+7425 1389+-4058 3323+-9180 1690+622 -5887+-8209 8205+-3166 -3498+7715 -8447+-9127 -2018+-4055 -6707+1897 -9845+-6347 -4155+-1618 -9133+1337 -1117+7284 -3092+-5196 8177+5544 -5186+8154 -2932+7513 271+8856 -2622+-2303 4522+-2187 -2939+-2493 -1446+-3143 -4181+9995 6404+9820 -1892+1086 -1152+-2425 -2382+-4094 3597+-1737 -2977+-9763 51+-5679 7613+3099 3534+4288 -7754+4336 3921+335 626+-9814 6960+-9372 -9167+5305 -5181+6903 -9243+-8514 -9038+-7752 5627+3619 7130+5908 -452+6624 -9622+-6833 -8606+-1575 -4076+-3425 -3043+303 1860+4397 -6337+-7137 8505+9882 8234+5787 6481+5766 5497+9293 -185+-6907 7224+-1980 6861+-3193 162+-6597 -2504+9199 -6937+-3488 -8294+-345 -4451+9690 1577+-86 -3952+-5098 -7169+7606 -4435+7556 -5077+4036 4303+-1758 -191+-2689 -4932+-1510 -2815+-415 3152+4753 -1063+-2448 -617+-6360 1917+2223 7565+1275 7702+-2816 3720+4660 6022+1293 6257+5894 788+-1506 8110+-9025 2148+-8910 -2811+3963 -7101+7014 1253+125 125+4894 -1227+1116 -1660+2923 -8350+3303 -2745+7676 -1216+-9725 7568+-1715 6872+4172 -564+-7059 -7381+-7566 1112+3018 -656+5094 1266+-4924 2105+-5330 -6105+-3402 -5253+8594 5490+809 -7743+-9722 9366+-1232 -1559+8982 -524+-9473 -6120+9033 -1409+4264 5619+-8774 -6576+-7355 888+-2735 -2551+-1552 6888+5452 3686+-3524 -2707+-7653 -8988+-545 2965+2607 -5883+2386 5693+-365 5465+1435 8940+-4202 -8203+1723 4618+2137 -8688+337 -8661+2659 -413+7863 4685+-4332 -8797+-2888 -7364+-7261 -6395+1277 -8785+-1727 -6508+1279 -3530+5358 6560+1292 2948+9774 5722+1472 5112+-5218 -2441+3194 7170+-7267 -212+6305 4500+2164 -8585+1661 6172+6702 -1161+-6217 -5752+-8804 773+5507 6732+8362 1361+6912 -1619+1013 -4157+1875 133+-3293 8671+2598 9566+-387 2901+-8692 1238+-6907 9112+9757 7681+-6673 -1508+8456 -7550+1427 -2906+-3445 7644+-8139 -5952+1564 -1848+1675 -2757+-1095 5812+-2340 6526+822 6439+-4948 -4293+9177 2866+-1094 -6015+9594 6502+-9410 9415+4993 -5356+-6558 -3864+7160 270+4191 -1707+4803 8418+-7262 -6592+2257 -4299+-6071 9503+-236 -5127+-2769 -1470+7904 -6266+-5069 -3204+7007 -1787+5172 -418+-6478 5584+6355 -531+6914 -6572+7191 8002+-7005 -6983+-6280 9809+2591 -2993+548 -3427+5547 -9322+-3861 9561+-8243 9821+6204 3620+6550 -2086+3178 8687+9724 2010+-5297 -257+-8815 -8946+-5173 3473+-7785 2474+-9692 909+-812 1928+-9953 -723+-1856 7544+6480 -7342+3980 -3930+-3106 2459+4141 -1645+5357 -6675+5752 -4562+5158 8351+-3635 6503+9812 -5717+-1862 -1051+-2880 5152+-524 72+-8696 6356+5188 -2825+9601 -9656+8744 -5939+-2930 -274+1441 6227+-1425 -8407+5864 565+-8750 8788+-9914 7907+-5290 -1174+9097 -1816+-9893 -3597+-9390 -4945+7546 2498+6627 730+5669 -9990+1921 2268+1202 -4175+-7155 7753+-7463 -9871+2080 -3696+-4207 7347+-3920 -33+-8517 -617+-5889 -5829+-1323 -7016+2267 -2141+-2419 -6376+-8840 4320+-4788 7668+8625 1875+4527 7647+1601 -4984+-3596 9318+-3200 9137+-221 778+-8837 9438+8393 2147+-7 -857+-6968 -8997+-1694 -8445+9242 8846+-509 -128+-8226 4781+5331 -5599+7708 -3662+4541 7973+-8010 6337+9524 -1103+9162 -3319+9470 2925+5246 3006+2314 8028+-6109 5745+-819 7074+5822 2870+2806 -3741+7584 -9077+-3162 -7459+5256 -1009+1010 5428+-1023 8449+9627 -1551+4075 6400+-4522 -6021+-4748 -8181+8634 -3135+-3138 8255+-5525 1963+6377 -8313+4068 -7579+-2742 -8810+-5477 8296+7157 3502+1011 -2971+4441 -1888+-3875 894+-2258 -5171+1093 4540+9064 6682+2837 -1287+-8007 -1657+-2967 -2376+3828 1331+-7463 3209+9303 -4610+-7409 7415+-2383 4122+-1248 -9367+4775 4532+-8159 -1684+1299 9626+4436 685+-4137 -1844+2896 1531+-2926 -5389+5406 -7803+4391 -6333+-7680 -4805+2956 -9652+3417 -3273+2089 6445+9907 1281+-8255 9478+6049 -2193+1650 3204+8941 7563+8257 -598+6059 4601+-9187 -4072+6950 -9436+-7074 -2223+2310 4595+-3779 -3648+2186 -3511+-6084 6990+4996 2706+-1984 9040+8576 5116+-5847 -2484+2066 -2951+-6431 -4808+9093 -1441+-2796 2264+-4150 7617+520 156+-687 9573+-4255 333+-8200 -4679+-2127 4374+-2204 -9219+-4935 -9884+3085 -8386+1176 206+9392 4002+-4363 8019+2872 547+8367 6473+-3718 821+-8383 9334+324 7619+4316 5234+6457 -5861+-5771 -226+7417 8123+9698 -1154+6901 -7375+-9662 -3706+1666 -6427+-7618 -3890+-7439 2017+-4034 -2318+1282 9063+5730 6791+7126 1919+9071 -9292+-1223 -4876+-5557 8079+-1281 -1219+-7026 1106+-5328 -3307+-6381 -2636+-6061 -8542+2041 -2967+9722 -7786+6850 3363+-3374 -3393+4964 5114+-5470 -2712+3888 6338+-6057 -3351+753 -7372+-9838 -8169+9632 9186+-7801 2973+-8147 -88+-1639 -4002+4986 7893+-6490 -6363+9149 -122+6845 -6479+-7814 5062+1395 5817+-2702 3102+5281 -417+-2257 8986+-3576 -4554+5592 -6739+5576 1769+-9407 -3287+-2591 -5493+7127 -9667+5932 -6180+3023 -7934+9812 7676+6315 -8894+-2004 -6041+-5140 -6801+27 -7722+-3174 7438+-3262 7516+-5462 -2702+6814 -3146+546 -3573+-4769 1860+9104 -5046+-3820 1002+-8506 6607+2443 8337+6230 4899+6785 -7582+-9186 -3570+6244 -7181+5510 -2748+-3299 -1091+4765 -3479+-3541 -3649+-9018 -2504+1689 -9162+-3210 6220+5597 -1898+9402 746+-1240 -2670+-363 5138+5475 -822+2442 3079+-3309 8698+-1641 -6776+-3377 2099+7718 -8868+-6158 1617+-1574 9678+5519 5226+-9820 4790+6105 169+-6311 7167+-2878 2484+-3312 9000+-4836 9612+-1631 5794+8026 -8270+9241 -7758+-9303 -7706+5560 -2364+-6429 -9735+-165 2813+4204 6821+-6087 -8404+-4408 -8659+5176 -3252+4136 7364+6046 -5204+-7841 9910+-3537 6151+-4629 9798+4792 8521+9082 4805+7768 -2148+7271 -4311+-5623 -6835+-4642 -460+3458 1455+-1623 -3631+-2413 7985+-4830 1380+-1267 8284+7430 6094+-2758 -1033+8498 -3813+-2161 -2945+318 -737+-7711 -9140+4272 4876+-9848 7997+-1538 -1539+712 9820+-5114 4783+-3722 3109+-588 1852+-4203 -732+-8296 -9452+8163 3642+2490 -3298+690 595+5779 -4308+-8135 -2278+3821 2811+-6301 7885+-5380 -5426+55 8907+-9215 3508+-9647 -9418+3505 5916+5171 -9826+-9788 -7348+8095 -6574+2388 6529+9150 -9813+5205 2861+-6784 -3842+909 -7634+-9252 9910+-2091 -323+3508 2050+9019 7450+-7297 -7794+2417 9410+-3488 -4906+-6409 6966+-1719 646+-244 3877+-1574 3997+-4981 7637+2093 -3707+9130 -2763+8517 -1746+6668 -1125+7625 -8312+-2571 -1738+-7800 9857+784 8521+-8824 -6028+-5245 5574+-8769 -6409+6548 2104+3075 9293+7910 -9594+9547 -3353+5628 2890+1681 2255+3895 -312+90 -2943+8845 -5735+-3866 -1347+-4713 -3008+-9506 -6120+-541 -1112+2567 1777+-5384 -1643+2563 -7558+711 -5713+-46 7229+9785 9736+-161 1384+-5408 -1213+-1333 -3080+-1755 -7730+3435 -3887+5480 -6906+9254 -6417+-3907 -4963+6989 4439+-1249 1660+-2702 -2614+-2303 -4435+4987 3244+-7948 -7965+-613 -3825+-943 8122+-5606 8093+2461 -1365+2876 -9088+-1751 8609+-7000 -9174+-850 643+7734 -639+5610 -3609+-1314 4898+6550 -4002+2313 8742+2628 5299+-4061 -3917+-6032 3331+-5834 -4243+2353 905+2663 -3704+-4380 4213+-457 -3373+-9286 9942+-7285 -6397+2192 5354+2942 -7471+6974 5899+-9864 2199+-830 4204+-9069 1130+8993 2344+5033 7932+9936 8284+-7320 -9407+1811 -166+-2817 8527+818 -1374+-629 -8562+-3771 -501+-2428 9901+-7329 -8126+-1467 -654+5633 2928+1631 -4132+-4795 -7495+3958 -2278+-4966 2198+-8342 6051+4453 6335+7218 2476+6502 -6828+4508 -8065+-9777 7918+-5443 7063+6805 -201+7018 9018+4515 -1914+-9210 5276+-946 -5509+-9766 1411+3765 -3490+-6387 -4982+9221 -8580+2522 7989+99 -462+8173 480+-9654 -4368+9481 9530+-6338 4537+4679 -2664+-8118 2167+-7145 8431+-7929 3156+1232 2970+3086 -9419+5865 7841+6384 -8795+6089 5053+-5835 -7160+-98 6209+7111 7054+6690 -9011+7007 -5310+8254 -9547+-9073 5500+3028 6251+-1558 8266+-4935 4727+-5056 -9961+-8600 -9620+-6446 466+6127 -5945+732 -6390+8967 -8936+3974 2017+4566 -9070+-2149 4567+-4279 3874+-2945 -6778+-9587 6754+1424 -98+-447 745+9037 -656+6594 7190+-729 -894+897 -2669+-5514 -1391+7062 -3509+-8781 -8350+-5578 -7672+5585 -736+6464 3470+-2123 -5010+4616 -2258+-3469 351+-3584 7556+5909 -8679+-2831 2687+-5883 5752+-998 -9737+-119 2320+5759 6680+3325 -6643+-1248 -6817+-2975 6266+-8924 -1002+2529 1246+5648 -3284+-8116 2073+-376 1973+-2492 -4658+-7034 -7637+-8568 -8810+3775 8120+-3211 -8741+-5685 -9521+728 -5350+8370 -2534+-2715 -4401+7263 247+3919 6244+-7995 -8996+5951 6462+-2274 9597+6094 -84+6873 5787+-8410 2978+-2729 7737+-8820 780+6478 -5180+7679 -9442+5667 8350+-9968 -4845+-5366 5397+4193 9347+2054 4085+5539 -1723+6896 9722+223 77+-6358 -4833+5595 3461+6675 6709+8539 -7186+1199 -8672+-3973 -983+1774 9654+2862 8368+6959 7465+-9402 -4631+-7451 3256+-1039 -4204+8374 -1143+-4348 -8494+2080 -3103+-7567 -1148+-735 -5218+-2928 -1884+-1023 9096+5113 -5453+-1800 5327+7657 -5692+2346 5784+1532 2240+9432 -416+-7016 1714+-3375 -7036+1684 3226+-6132 8775+4831 -4135+8242 -2233+-2055 8023+376 1760+-2767 754+5416 -7894+9428 9255+3460 -2450+-1324 8265+-1011 7704+-7909 7827+6584 8359+5893 995+811 3476+-4110 6470+-9091 4846+-2408 2226+5004 3963+-1117 5639+-5770 -360+8092 -4499+-2875 -2150+283 -1982+9975 6994+8151 4901+-4240 1581+7036 6568+3423 -9252+-7786 9829+-3003 3660+4094 2734+7261 -4766+-2701 -6856+6507 6151+-958 884+-764 -6067+4444 -285+-6213 2712+-1177 -8229+4707 8727+-6392 3846+-966 6322+-7008 7966+7185 4899+5513 -291+8719 -2527+8494 -3156+2787 -5483+-3896 8157+1522 9717+2944 -2497+7684 2784+3782 -4372+2959 -7970+-3163 8875+4436 -1815+7320 -3155+-7689 -1127+-9121 3593+8213 698+-8524 -4014+51 5640+-1638 173+7099 6587+574 -6340+5148 8211+2067 -6126+3432 -1899+-450 6351+5980 4691+4814 218+-3009 501+-4834 3809+-7984 8272+5772 -2914+8403 2079+4571 4305+-3999 -337+2076 -3696+3661 -1369+6223 3480+-340 -3047+284 5530+1951 -4168+3683 8676+-6165 1243+-8001 6278+7900 -8624+-9612 -7059+-5260 6580+-7635 -9198+177 -6199+5246 7593+7690 -6000+105 5247+-2500 4466+-6773 -683+-4273 6355+5889 -9946+-5529 5276+-8697 -6820+-5025 8484+-334 3340+1650 -3302+-2520 8384+-1676 8386+-7381 5753+-7092 9633+8177 -2315+-4916 -220+-6371 8656+7077 3492+-4957 2383+8470 -466+-5727 2911+-377 8762+8031 9323+2430 -4372+-1549 -534+-3009 -445+9253 6544+5214 -2937+7269 -5227+7709 -7977+-742 909+7624 1381+4765 -8173+-9711 -8677+1187 -6510+6368 -679+4619 8554+2824 7741+-7669 8128+-7981 -2002+2921 -6367+5712 6022+9843 3966+6271 7279+-9825 6199+7563 541+-6518 -3507+-2135 -4370+6491 -6186+-7716 -3758+8059 -9731+9524 3243+4301 8161+-791 773+6871 -2273+-903 -806+5468 -7272+6690 -2177+1453 -2524+9308 2961+-5341 -1525+-2840 -6010+6102 8941+5073 5256+6973 2679+-1165 3772+663 3469+5641 -4020+-6016 -8617+5766 -5226+-8489 327+5493 -2124+954 6519+-3213 -8067+-10000 -2753+-8820 8253+3310 1248+-5887 2955+9931 8717+7183 9849+6535 5570+-4186 5928+-3517 -158+3982 9983+-9200 -1668+8782 9834+9287 -3528+-1428 -3944+73 -448+7659 -1854+-218 3125+3624 -5438+-7008 5845+4111 -4821+4556 9071+7635 -493+-5591 4450+-2442 -8049+5483 -2783+1970 -4875+2242 -9263+1000+-9700 4316+3555 -2940+871 9056+4461 -1224+-6915 -8292+8047 3564+1915 5763+7021 246+4883 3706+-5774 3734+6246 -3279+83 -5468+1442 3911+1766 38+6242 -5234+-7214 9803+-100 -3048+9277 4327+5126 5660+4314 -9929+-9236 -1325+6674 -3719+-1628 428+-1880 -713+-4289 2613+-3086 8967+-2311 -502+-4237 -4044+4570 5355+-7198 -8276+4929 2891+2689 -7585+-1944 -2798+1551 -7619+9930 5847+-7443 -8794+9383 -8989+7138 -9345+-8685 7449+8942 -3840+-7345 188+2412 5331+-8580 -7148+1295 -2427+7782 -302+8071 7869+9579 7071+-5023 -1135+3083 -5216+-7335 -7317+-7779 3453+6245 -2467+-2636 -3491+6298 757+8615 4889+-1758 -851+-3668 2184+-5896 -6731+3352 6730+6534 -8182+2646 212+-9297 4012+3532 -4739+4762 -9159+2870 -7885+-8470 4230+-4642 7522+-4916 -4441+-1805 3948+7286 -5392+7278 1046+-2747 -7288+-8776 -2441+6859 4768+-5809 4564+-5954 -443+-6174 -6393+-7184 2105+6074 -1216+2729 6872+-9613 -3926+2111 -819+6820 -4005+-4722 -7153+868 3354+-6296 3497+7161 -1932+3736 -9281+-1344 -8056+3142 -9036+-3804 7377+-6275 1423+-7348 111+-7275 2770+3073 -4524+-3248 1715+-2141 -1255+9394 -7338+7748 3008+7132 -895+6345 7773+-6525 -4205+-1248 3068+5178 7710+-9229 3042+-9865 -1275+436 995+-2746 -1329+9910 6422+2414 -1962+1658 6593+-9597 -7957+-6838 -9319+5653 7738+-3324 -6298+-8585 7929+-1090 691+57 -4237+5160 9741+7342 -3685+7668 6882+-7950 3564+4713 3650+7353 -6346+4952 621+5136 522+-5702 6765+3828 3683+2436 2425+1041 7870+-1300 7816+-3093 1175+-940 2508+-2479 4930+-3293 -1829+-1902 -4626+-5433 710+-1685 -9754+7965 -8835+5585 -8478+-6024 5634+9464 4983+9244 2173+-5395 6698+3839 -8541+6001 1068+8583 -7325+4594 -9433+107 1048+4840 64+9654 -9569+7842 9813+2675 -9053+-5952 -5670+8845 -5129+9418 -7261+-1765 8485+7730 6447+4018 8187+1013 -5349+-4400 1469+7500 -2047+-1767 -8001+-2234 2204+1979 3547+-4269 360+-2601 -1284+-3409 2339+7527 251+4110 9747+1638 5375+-1712 -1407+-6135 -6815+7790 2459+3438 6955+5008 -1853+1832 3258+-1057 -4268+7358 9011+6751 7736+-4448 -165+1581 9518+7342 -9199+-3330 283+-788 6727+-4658 -8793+-5478 8078+-3917 338+-7542 4795+-1206 -7419+-5318 8955+-2368 7929+-4755 6184+5940 1142+8587 -5659+7727 -2913+4670 -6979+8705 -9345+-3982 -9815+5728 -5895+-7564 -1297+-6649 4052+636 -9622+-6816 -949+6268 8943+275 477+-1307 8398+-5549 -5504+-5712 -7540+350 7498+-7194 7984+-9818 -5842+1202 7078+8395 -3063+4310 -957+-7319 6514+6582 -882+4372 -1264+-695 -8110+869 6538+-1302 4126+-466 8821+4539 5149+-4316 -2417+-7902 1608+7319 6849+4280 -543+5109 7485+9316 -8337+-8767 7480+-4919 9515+-8438 4040+7160 7460+-4044 4611+-372 9551+7313 -6531+7114 -1589+6388 1407+-8596 3653+-4230 7131+-5932 8906+-7454 69+4782 -6203+-7610 1573+-9247 8523+-3441 -2486+-106 286+-3953 7600+2582 -5806+-9943 5818+-905 5767+-2052 -5871+-6833 6195+9904 9877+-2452 -1148+-4921 -3340+-8558 721+1458 -2385+2554 9968+813 -7445+-1729 1288+-6908 -1574+8698 3909+-6059 -3419+-8095 -3637+-8924 -2436+9586 2512+-5502 9099+-6513 -2714+2524 -7672+-9040 1322+7763 -2756+-2126 7707+5031 3352+-1395 -7559+3079 2728+8822 -8964+-929 -3269+2602 -8722+-3332 5285+-1403 -4802+-8509 2560+9357 7321+-1649 9136+6199 8494+2554 -425+7831 1068+-2493 6767+7141 8273+-8137 1198+9847 -8617+-8218 9388+9697 1679+-3563 -3388+8922 -7596+8623 -7548+-3827 -4969+8475 -4799+-2535 5919+-2274 7871+-1498 8298+-7991 -4057+-1156 -4420+-9308 -6328+3182 -5655+-9197 -7430+7334 5278+3259 904+6026 -9153+294 -2925+-9791 6588+-4680 3722+-1410 -5540+1276 -6767+4744 -3464+-3541 -1490+-4628 9742+4727 2992+6168 -4924+-3284 7344+-9568 6843+-191 7648+-6223 1245+-5213 4454+-9693 2759+-2544 278+8534 3192+-5238 5642+-8537 1527+-3331 -7175+-6042 974+-1004 3149+2699 4626+-5772 -5306+-4524 -6945+7113 -2048+-6029 -7147+1410 -7116+-5096 8550+4353 -9396+-9583 5664+-3478 2112+182 -8774+-1728 -9096+6729 -5836+7801 -9874+-5797 1226+3874 -6597+-2124 -8841+-5510 -9369+-4469 -2209+4069 8491+-2035 5117+3793 -4276+2036 -9086+4076 -4228+7999 -194+-3503 1258+-7025 -1566+-5992 -340+3806 -9196+868 -669+7144 -4508+-5643 -7500+-6670 -8819+-4786 -2265+-9206 4532+4987 -4230+-8635 7329+-89 -8310+-4520 -9327+-1780 2063+-9812 -5601+1336 -9183+9569 1016+-8010 -7739+7612 -376+6709 -3435+-2854 3112+-4607 -5710+5079 -9647+-6099 52+5519 -4746+-2307 9723+4208 -51+974 -6040+-3056 -692+4463 -6787+454 2115+2353 6475+-8757 5190+2409 -833+-9838 -4730+6831 -76+6891 -2882+-9199 -4305+3879 4022+-8464 1127+-5486 -4536+9985 -8967+6778 4587+2476 -9605+-6182 -4022+8412 8310+-8984 8306+-8214 7099+9391 -3282+1433 6930+7625 -8701+-5623 5967+-2230 -9127+5378 -2930+5373 -536+9221 4174+7139 -4088+2256 -8903+3087 -7790+7906 3227+5545 -3956+-2920 9747+1874 6507+-4533 -3061+-7767 -5312+-7538 5346+2776 -2409+1640 -3990+-3291 578+-8882 8+-1667 -6991+-7281 -3421+8081 562+-5305 875+8324 3720+-3459 6467+6052 -7977+-3256 6009+-2722 -4013+-659 4935+-8847 -5333+-2819 -8647+3349 -1415+4332 512+1315 -8376+-3948 3149+-9848 3491+298 -9322+-4770 -3710+4965 -2344+3225 -1476+-7252 7493+-619 -459+6954 8891+6927 3226+-45 -7548+5854 2955+1541 -7500+96 -3098+3725 7183+9016 -2434+-8706 -1505+8750 -7281+1848 4555+-9734 4740+6419 -4621+8066 7250+4731 3221+-6102 -926+-533 -1556+3844 8574+8277 5687+-4742 -4135+1884 7708+-2390 -5548+1089 -9650+3292 -1489+-8014 -4266+-2963 -1500+1429 -3955+-9802 -1154+6889 -2638+-7881 -8233+8668 -7130+-4814 3726+4362 -2204+-3128 8329+4311 7947+5368 -2633+2482 -4741+-2839 563+474 -4257+2638 9087+4468 9177+-4560 -6831+-2540 894+9734 4924+1959 -7836+4695 -8873+-830 -6120+4815 -322+-9911 3619+-3004 4920+-211 3150+-3585 -4025+6701 785+-1620 1326+-5113 8527+2625 -7449+3072 456+5171 -4988+-682 671+-676 4216+3308 -7253+4840 -256+2541 -3615+7980 -7871+4240 -6178+9151 8849+-9565 -5215+6005 4002+1208 -2188+5872 9625+-1058 6983+6581 4360+8428 9295+6287 -5480+9809 -5146+6933 271+1303 3259+-6857 7100+-8292 -9167+95 8102+-7369 7745+-2528 8568+-12 4948+2432 17+9111 -1648+7745 4620+-5737 -8487+4118 4501+9672 -1220+-8073 4867+2091 1428+8604 -656+-2444 -3455+3147 3585+6013 9967+-3542 -1389+-7101 1249+2186 -4522+7363 -26+2233 5786+-2188 -2019+-7972 -20+-5263 6724+3335 -7700+5843 6193+8312 4835+9879 -1343+-4288 -3540+7477 246+420 3148+-2898 4349+6738 2358+7775 2698+-6823 4457+-8693 -8443+-1202 1715+6335 195+6810 4828+-1298 -7830+456 -7005+176 4396+-6251 9985+-9861 -1153+-7710 1398+69 -9924+8696 -4163+-77 1743+-362 6016+-5865 3093+-4690 -3519+3651 2230+-811 133+2886 8992+1338 5514+2279 -8497+4140 6824+489 -6164+6428 3824+-6479 -5661+-628 6320+-5690 -5335+2048 -5567+9308 2469+714 7533+-8214 2515+4312 -7939+5075 -1765+8788 -9359+-9436 -9192+-8350 -129+-3607 4069+1681 7565+-9401 -6971+9359 3243+2607 -9277+255 4747+-7887 4217+7203 -3160+2652 -3950+3511 -8529+4693 4364+-1155 -2888+2319 6463+6502 -257+3709 7426+-2792 -5491+-2911 5835+3144 4529+-6824 -317+8847 8207+-8049 -9453+9034 1254+-6334 -8911+-2904 -7104+-7091 6763+-4358 -5564+8506 5417+-5791 -5680+-4175 -8902+-3977 -1215+-2308 1001+5128 -8532+6341 7074+-9203 -667+-5865 -2461+5642 73+-6256 3432+3790 4203+7687 -7204+3085 5680+-5354 2888+4599 -9912+9186 -3100+-698 4930+7118 -3073+7461 8089+-5587 5830+3861 170+-1056 2480+1655 6826+-8468 -8447+-2489 -6338+-5485 -4324+434 9629+-7132 2210+-6525 7362+7891 -8794+-580 9529+991 2964+5034 -2362+-1079 -5987+-5761 5670+117 9727+-7114 7690+2272 -1612+-2412 4895+-5301 -8218+-9877 9808+-297 -1482+9551 -3530+9365 -2641+4026 2722+-4914 6228+5840 -4621+3218 5368+-2940 -564+-3719 9604+8938 -5677+4870 -4706+8781 -7096+-5074 1669+-9802 6979+-9352 321+-6036 -2996+7847 3078+-570 5231+-2700 972+9865 8429+8631 -3752+9607 8557+4283 -8607+5432 -5745+-5597 -711+-7542 -2357+-8822 4049+-399 1747+5346 -7136+-394 462+8159 -8452+6488 3134+4458 9304+6696 -2606+1700 87+1020 -5168+-2996 -2891+4374 5584+1182 6313+8912 -9100+8341 3676+5083 8036+8483 -8113+-601 7011+-7532 872+5843 -7441+7623 -6870+-3269 -4686+-5720 -5681+4497 -4122+4225 1562+-1549 7827+-3859 1111+-3151 2552+3989 -5452+-7060 -6259+2384 5147+-4856 4817+-4221 8939+-8154 3908+6932 3867+-9924 -2864+-6164 -7585+-9248 -3503+-5020 5450+-9017 -2296+-8771 6251+6206 -1137+7004 -3817+3333 7250+5946 -6608+-7967 3433+1677 -729+-8066 5150+-7705 -161+6574 1818+-3805 1054+-4647 5363+8007 -5758+3308 -2763+-3232 -686+5064 2311+1018 3221+8881 -4987+8816 -492+7622 -346+5669 6646+9319 -6323+-8060 3831+-2035 8949+7930 -4318+-2618 3954+-2192 -4453+9262 -5576+6144 -3719+-9278 -5822+-9481 4387+-6886 -3890+1043 7779+9058 -3286+-1284 -5246+-9975 3239+953 -6221+8387 -3514+3246 -7287+2258 -4003+-7256 -9244+-8092 -87+-1748 -1018+-3829 -8899+-5907 -6499+139 7437+4471 -4205+6845 -4045+-2585 1834+-4256 3891+-4872 5321+3106 5514+2461 -9437+8996 2676+-3925 3016+8112 -9820+956 -3904+1917 -6281+-5323 9756+4046 -9347+7208 4178+-2151 -3050+1149 -6107+3318 8721+-3465 3129+-8322 8987+-5493 -8674+-3437 -2653+2052 8260+-7084 -2265+1877 9518+9199 -6713+7681 -7331+1196 792+2317 -4836+-1704 4673+-2449 -3624+7582 7133+7698 -6978+5190 -1866+7724 4069+2384 -7420+-3151 2293+-5674 -9430+-753 1174+-1743 9110+9683 -9841+7977 -8355+6469 1744+-8672 -2010+8386 8789+-8550 -9297+3527 -7768+4095 -8474+5718 4508+-9478 469+-1131 -8932+3885 7916+-7767 9109+-9407 -3843+-9686 2359+218 7084+5909 2506+5165 3979+-8212 1179+-2665 4367+561 -5081+-814 5233+4100 6944+-9281 -4298+8668 4107+-3087 -1553+-6222 -7295+-5072 488+-2881 8661+2718 -1269+-8434 -5174+-4822 2240+-7416 3641+7815 911+-7397 4856+2989 657+7599 -513+7022 -7417+9004 8548+-5161 -4071+-6521 -8420+-937 5138+3628 3129+6082 288+6771 857+3695 -6536+3348 -9437+5441 9634+8361 -9653+-5791 6436+9418 -3417+4193 6135+-1940 -4536+3578 -8328+-1333 -8222+-2500 1605+330 -5135+-7111 2842+-722 8608+8628 1441+7721 8043+4062 -1401+1237 -2312+4678 -1768+682 8234+5425 6769+-6896 5756+-7728 8576+-1691 -6365+-6411 2120+2089 7981+-6444 7780+254 -9713+5597 -482+-8607 -7301+9979 -3010+1257 1333+-9702 -563+9390 -1653+4932 7283+-7757 -256+4692 8629+-4677 5913+-6039 -4903+5441 -6592+-2899 -163+-202 4340+-5675 -2505+96 -3975+-829 -5440+-7699 -8183+7136 -4732+-7607 2013+-2407 -5580+-5272 -1663+-4728 -3624+-985 -1707+-196 -6344+-8587 -4768+1963 -4925+7588 -5628+-9929 -1799+-9563 9544+-4016 -9231+9086 5890+7081 -7639+5646 -8831+6259 -6781+-5842 -3051+5984 7029+5529 6610+-8675 -3287+9514 5702+2022 -9844+8719 9252+-6398 5424+-6603 -8576+-3075 3638+7880 4409+3406 -818+-5236 -892+-6137 4931+-4745 -9278+8057 -8546+3615 -9814+-5363 -3130+9580 5218+-6044 7406+9283 9829+-5524 816+-102 3133+-107 6040+-2442 -6677+8410 -1808+-2320 523+6307 107+7442 -8719+868 -4775+-1685 1473+-8823 -7285+6617 9848+-5085 -7434+-3172 -3824+6196 5031+7701 6902+7159 -4577+8035 5122+2895 -2612+-9314 -4950+7856 2372+-8812 -388+7530 -4840+-311 9099+7058 -4849+-1884 9744+3475 -3500+-9249 9790+-2429 -9025+1363 6830+3402 5966+4720 -8746+1267 6993+9494 -6938+8968 -7980+4604 -1269+2425 -1777+-222 -3901+3737 -8866+9143 -6843+-9717 -4832+-130 -1164+6338 -6201+-171 -919+-9540 119+7857 -6146+-8918 -1721+-8039 -9637+8728 -6588+-9169 -2311+1000+587 4284+4982 -428+2071 -2295+5077 -7847+9050 -2777+-1797 -2623+8230 453+-5848 5834+3346 7096+-6793 -9243+9303 -3451+-2004 1110+-514 -3924+-4639 3005+4630 -7280+1408 5079+-3642 3439+8329 -2303+9293 218+-8097 -5876+-884 -3871+6715 2990+-6063 -6887+7841 -5070+6243 5+7083 8166+-3395 9322+-9112 -7773+3749 8574+4167 -8728+-2046 -3332+9549 3959+-3323 -7737+4788 -2465+-4994 -2261+4623 -3002+-5722 -3252+6336 -4667+8095 9356+-4609 -7011+5474 -502+-957 8142+-5765 155+-3984 -4301+5483 -3549+1400 2351+-5032 -3585+-5110 -9653+-2432 6372+9901 5484+-984 2712+7827 -4649+-9520 -2042+3884 4214+-6251 1789+-2865 -2206+-3773 5233+-9618 420+-244 1313+-4215 7592+-4563 4080+-7803 -8528+-4644 -4310+3368 -3131+9691 4876+-8475 -5550+7479 -7453+8068 -1542+-1689 -9574+-4156 9729+7686 -372+7243 3338+3864 6627+1926 -1460+1642 5469+-6442 -6821+4494 787+8672 8076+-9366 -7244+7894 -3283+6097 -2473+-1526 908+-4651 8456+5429 1329+-1352 8832+6348 -7396+9602 3369+-2697 296+6880 4081+-9756 9658+-6807 6192+-8884 -2574+-3003 -6614+-3660 1623+4494 -431+2079 -242+708 1923+9126 6620+4216 -637+-933 -4257+-8887 -2046+1073 -4048+2227 -5650+6943 -5766+5835 8539+-7741 -7719+4476 -7830+-7243 -6381+5121 -1716+-309 9227+542 -3774+2399 -4382+-2705 -6841+1055 7863+-8590 -4365+-4664 -9481+8015 -3891+2639 -7275+246 -6005+9932 -8958+-5452 -9831+3805 -6179+7135 -8822+7270 -3172+4688 -2152+2896 -924+-7063 -8601+-3830 4503+8943 -2155+8045 6425+-451 7416+-3037 -8520+2010 -5733+-3461 -458+-6482 -8759+-4861 -8321+5159 9038+5591 8641+4951 7981+9268 -6753+-3280 -5753+-2620 -8738+6377 -1131+-9939 -3058+3021 8875+3980 -8393+-737 -3068+-9136 -6855+-3743 545+-5073 5119+-9298 -9742+1689 -2357+6435 -3864+-1603 -5341+306 -4992+565 2630+-894 -3391+-6877 1220+-3807 -1836+378 7575+3348 -6733+-3777 7499+-9556 -462+9025 8593+-7609 7634+-1361 -8151+9389 4370+515 8270+-2998 -8970+5149 2339+-3031 9793+2552 -8732+9962 -6995+5415 9914+-6752 -6512+7905 -5315+-6365 1609+1420 5992+3046 -8587+5898 -7997+-1548 -1858+6200 -1730+-7415 -7648+5672 3734+3123 -9419+-7211 -3245+2613 3334+-6822 6924+-8134 -9157+4150 6250+-5688 7712+6595 -2476+-5688 -8860+8537 -817+-8136 -627+-9963 9868+167 -9763+9267 700+-1391 5860+-4916 9845+-6226 -2227+-1758 -4320+-2796 4415+-3384 1220+-8843 -8602+8132 -1693+9492 -916+9183 -2037+-7161 -7484+2719 6018+6906 -4579+-8068 -7612+2212 2241+8775 5745+-1172 -6074+8880 -8993+-5874 -6303+5495 8710+225 -6962+4346 5592+8759 4454+2664 -8028+7998 9257+6169 7755+707 -3753+-2930 8879+-3182 -1701+-4569 4002+-8341 -2779+3199 -3889+2831 -7848+8365 3495+-630 -6891+6654 4243+1033 -8975+9308 -3349+6586 3673+-4915 -2137+-1495 -3152+-8371 -9333+356 -3365+6242 4059+832 -1543+9604 959+-720 5370+5224 9397+4126 6914+-971 -6979+-8370 5638+2308 -2210+-9588 1634+-6872 -4932+-7797 -1638+7975 7317+-905 -9244+2341 4972+-3844 6675+-5649 6540+-2499 -7560+-3831 57+-1166 -8108+-8820 -1242+-1881 -3735+-7265 9030+-3421 -9997+-9852 5706+-3243 2896+2962 -7907+-9844 564+6085 -5896+1944 -7525+8949 8477+8030 -2744+1182 -2228+3220 1826+-9786 -5643+3834 5824+-9297 -2184+-8905 3838+-9099 926+6377 -2456+2063 1780+-1310 8991+4533 -2372+-5529 -978+6432 5383+1751 -7300+4367 -4702+6553 -9926+941 5500+5055 2769+-835 -7113+-9546 9976+3854 -2759+5953 5299+-6964 9686+1213 3693+-6365 8262+-2762 95+-3616 6872+4519 -3081+-8749 1231+7190 6521+6302 -5696+4361 -832+2840 -4288+5320 8334+3024 -8518+6094 -7301+-562 2405+-6681 -3728+-9682 1545+-630 6273+3105 -4432+1806 -6156+-3615 8164+-4872 2625+-420 -9320+-3290 -6506+-7852 7137+5024 3203+9362 9423+-1356 -9623+1875 1135+-6403 -3823+-12 -2048+-1842 -3683+8078 2057+-5102 -4816+-814 -8835+3580 6803+7352 2648+3036 -9653+-3357 -8178+-4031 1703+5402 -5927+4705 -3241+-8629 -3213+-4446 2091+-5760 -678+6763 2100+8078 7737+-6401 5251+-2071 5399+8648 399+9016 9926+-940 3180+-5714 6575+7336 -2468+2031 5869+-3511 1192+-1401 -3155+2617 -6305+-2626 7853+-5104 -9724+2097 -7255+1330 4632+-4473 -4957+9596 -5396+-7217 7480+-6621 9887+5142 -5473+-9093 -6410+-1627 -7577+8683 4754+-1154 9448+621 2288+6494 -4419+2709 1650+2668 4835+8880 1170+5957 6519+-1804 9078+1046 -618+-6106 -5874+8793 3473+-5571 883+8024 -6880+-5967 3810+5461 644+-1358 -4359+-6355 3292+-9431 4520+3322 768+-1927 -8887+4763 -6047+-5501 -1866+7102 -3317+9762 4332+6646 9357+6037 -8711+5736 -1757+6608 8189+-644 5327+-64 6068+-5320 -5920+4049 -2275+3347 -8741+8709 -8213+-1263 -2794+-5738 9884+-9306 -7039+5571 3420+-4070 -7865+7109 1987+-7841 5454+-3273 1142+-957 6392+-5906 5638+5785 -1564+-8778 -1779+-7070 3886+-3590 9569+-8756 -317+5328 5298+2587 -4512+-2737 -5269+2979 -3209+6600 8121+9370 -5859+-1776 -2842+6050 -7859+-2305 -107+5606 8399+3616 4643+-6732 -4060+1462 4849+-4589 9125+5177 -678+8869 -2122+1429 9394+2813 -5665+7430 4613+8556 3520+4189 2442+3793 4354+-4719 -4882+-7554 5207+-8470 -6186+-3045 -1969+-1711 3092+-1342 7633+5096 9930+5497 1796+-6468 8780+196 -3405+-1740 -4267+6781 -3722+-821 -2273+-5948 2813+1117 1173+-9388 -1761+-5739 -679+1686 -8925+-6808 8702+-7169 -9102+2309 6510+-3647 -4926+1911 7621+-9885 3296+-5001 -5973+9416 -9772+-3689 5120+-7204 5600+-7609 6924+-5460 -2592+5954 2129+6775 -4298+-5300 -5039+1394 -1932+-1196 -7935+9987 6021+-1197 3822+7220 3511+-341 -2994+5927 561+5998 6295+8167 1360+-2145 4526+1023 1531+-9316 -7157+6495 7521+5400 7309+3190 5511+-3378 -6625+-9917 -8716+-2626 1790+7353 9907+6858 1441+7242 6873+7404 -8576+-177 -3276+2348 -7959+-2300 3170+-1570 -1673+4014 -2119+7503 -8288+96 -2432+6461 9961+-2710 -3401+-4904 6188+677 1876+984 -1265+-6682 -9362+-1487 -449+-129 5609+-2985 1144+6939 422+9851 -7228+1922 -6385+6757 4748+1181 1247+-2835 92+-1392 -6813+7525 5888+657 -1269+-5175 -1529+-808 -4214+6393 -3649+-8100 -4374+-6471 7904+-621 -6381+9682 -9764+4426 5534+3032 628+7195 -4421+733 -1269+5429 7987+-1428 -8197+-4546 2177+-5319 1409+-1373 2939+8619 9554+1473 -6680+-8224 9919+-1421 -8880+-5700 1511+1164 -6832+-6099 7326+8383 7865+7405 -3126+32 -1116+3005 -9589+1105 -7299+4536 5005+3141 4885+4167 7662+1304 -8690+-7590 -458+3859 -7166+-7933 -7609+5671 -4874+-6354 5787+-5042 -4260+-308 2093+-5745 -5156+-8688 -544+-4350 -8219+-6808 -3615+-7586 -8804+-7400 -2062+8561 -3597+6231 -8937+-2891 996+3146 5412+-3127 -4826+-6561 1488+-9589 9596+4474 -3656+-9960 1751+2852 7296+1274 -1864+-4019 7541+-9436 8268+5144 -1108+640 296+-4423 -3486+1724 -3089+-3056 -8034+-4782 6169+2728 290+8631 -8587+-8742 -8311+-6019 -9639+-5953 1219+879 5720+3558 5403+-3010 3100+-1335 9485+-2634 3859+-5760 -1179+4178 -1224+7713 6509+-491 -5735+4055 -4202+-9128 -6544+9362 -7613+-859 1049+6703 8643+6347 1140+-7741 -2858+-2751 -7034+2352 -7903+3315 -1243+5738 -9715+-8847 -4637+-3371 -5466+1978 9233+-8688 -9704+5367 8764+-7657 -2806+3583 -9797+-3335 7676+-4711 343+-6567 -2585+-901 -1910+-3063 -1845+9821 8871+-5852 5443+-1827 4255+7546 9063+1841 -9905+6877 9520+5297 3524+2996 -1374+261 -8085+-9366 -6270+5399 1074+-7313 4699+9040 5615+-9717 4827+1654 4653+-2769 -1706+-9104 -8541+1147 8941+6541 -1035+-1318 2431+5557 -5815+5374 1458+7653 7946+-8633 790+-664 4647+9260 -8532+-5865 -8512+-8270 7724+-4709 9308+-4605 -5863+1270 -107+-4229 -4177+7980 5943+9239 -9420+893 -4937+5008 9325+-4067 6434+-293 -6441+-588 -5680+8377 -3377+-4696 4932+5954 8605+6379 -6237+2216 -8990+745 -9670+5115 6291+8197 9117+-2478 -3991+-8180 5761+-6486 2586+-6168 -4944+5437 1228+-4298 4578+576 6312+8538 -1406+2520 -9083+7408 498+7418 2301+928 -7797+8457 7381+4004 7393+8312 6561+-5797 7596+-6762 3176+-8847 6116+-541 -1313+5199 3120+302 8879+4456 -6209+5249 -1875+-3926 8864+-1216 -4895+-2134 -3442+9591 5291+3907 -5927+6798 8810+3389 -3259+4074 9740+-2970 9946+-6538 5923+-2556 4692+9592 -6662+-9079 3869+2167 -8222+3348 -7410+-721 2430+-7740 8629+-6863 -8649+3221 -3082+-4804 -4788+9846 -6825+856 -3863+3775 1420+-2730 9186+2307 -5874+-1894 9830+-205 8751+-100 7524+7744 -6438+-9123 2333+9770 9510+3886 -8852+-2457 -6557+8237 -8347+4685 3916+1458 9693+2869 -2176+-2649 -5871+-3478 -1022+6650 2603+1672 -6529+4101 425+3183 -1598+-2019 1590+7901 -3784+-1017 8833+2513 -4309+-436 -7101+5841 -7573+-5789 -3447+6496 3521+-5400 -6871+5772 4550+-2888 1020+5946 804+9612 -8200+5845 -3176+-8154 -683+7578 -8360+-4987 794+-423 -4849+904 9090+-2451 -1422+9219 -414+-2218 -941+-8919 -2207+5819 -4750+5196 -4992+5568 -1945+-4343 -6959+694 7388+8096 -1359+-3221 1847+2776 -66+-6760 -3698+5467 3537+5073 -6104+-179 1948+-7286 -2817+-7411 -1994+3436 1085+-6630 922+1871 9069+-1119 1450+-6655 4675+129 -3726+3571 4421+-4412 -6395+8800 186+-5940 -4128+-8086 -252+7183 -7268+-7207 -6388+2637 8373+6769 3970+9948 -9329+6900 3101+-574 9734+2636 4007+-2577 -1061+4726 6318+1282 -8482+-1648 8926+-1746 4418+-1252 2689+-9569 9909+7291 7188+117 9308+4524 9874+2264 -9280+4157 6656+440 4162+8597 -6300+-1627 5235+6744 -3696+-1008 6843+-8603 4130+-7714 614+-7711 9711+8473 -9938+2613 9116+5192 -9909+-9681 8839+-9450 6350+-5941 -7116+-2569 -3058+7795 1842+4944 785+-6125 -2903+-7157 -513+9811 5988+8983 -9609+-4913 439+-3067 -7207+-3337 -2287+86 6290+1243 -22+-4371 -5853+-2903 1984+-9397 -5642+5732 7724+-2249 -4726+-4137 5345+-4662 5463+-6932 -7897+-4729 -4168+-1310 -530+-9432 5040+-3041 726+9182 -305+-2815 -263+-7350 1614+-2265 -5742+1496 -9339+-6579 -2556+4649 -1951+2138 8050+8689 4457+7473 -2255+6810 -5802+6075 5119+2710 -3723+1903 9171+-7026 9577+4625 -6734+1674 -7739+787 3714+-703 2136+-8884 -4276+7099 9866+6489 -3339+-2285 -6679+6259 5382+5939 -2999+6177 -4924+-6496 -8280+4859 -6197+3519 -7356+-438 -9386+-2203 6267+-5917 -5373+-7713 -2618+-3814 8959+1503 -9921+-162 5237+-7853 5491+-8913 6120+5858 -2510+-3834 -1495+-9080 -4168+2824 -971+-7532 3161+-3875 -8097+9342 -1379+-2560 -4320+4984 8037+-183 4897+1294 -3721+6835 1362+3346 -3417+-2042 -2496+-3522 -8567+9744 -4913+4144 -624+-2995 4065+-1943 -2956+-3613 -4209+3587 -6237+5897 5644+-1814 6866+2455 -2905+4065 6922+2237 -5827+2800 -4519+3302 -8274+-5334 -5624+7921 -4528+-9453 6222+9774 393+-2103 -6277+2132 -2043+-6812 4994+-710 -7337+7780 -49+9241 5947+5816 -6414+3277 3789+-9595 1705+-4797 5672+3661 -4009+-8406 -8694+2716 8429+2564 -8175+-4987 -8196+7815 -7069+6388 -1560+2172 -1141+9480 -5690+-7079 6636+5865 6968+-1355 -1998+-2437 -2099+6687 1684+-8016 -7595+4973 -6092+-9281 8368+4309 1031+-1431 3562+8748 8238+7192 -2206+-9901 -2716+4913 -9768+-7239 6253+7585 459+4759 -6053+787 9338+3084 275+5006 -3853+-9739 -4552+1579 3468+-103 7484+-5775 4360+-2342 5725+-4002 -1817+2817 -5710+4696 -8893+3258 6214+6414 1962+4034 5195+6912 -4816+4580 9642+-5886 -6401+-922 4116+-3470 -893+-6733 5077+-659 -9385+-6302 -9970+6450 -6836+5046 -1962+7583 -3174+7295 -2346+-9585 -3525+3767 -1673+-6209 7978+7101 -8579+8768 2564+8934 4760+1172 -5218+-1213 -2133+-2649 -6768+-1106 -6178+-592 9399+-2902 6335+7694 -5940+8822 8+-4997 4019+319 -7321+-4118 1501+8362 -8821+8468 8087+-3351 -4139+5674 1510+4878 6808+9078 2663+-6583 -6057+-3018 8609+2110 -5239+-1498 -8026+-4487 -9086+-6660 9548+5442 4463+8946 8017+-5861 -6812+1000+-4129 -875+-8875 -1101+4271 8792+-545 517+7158 7296+-1649 5609+-1337 2652+2032 6454+-1580 -7277+4081 1776+3056 290+7803 -8725+8174 -4800+5834 -9997+1426 -375+6995 6630+-8171 4810+-285 -7701+5474 7239+-5001 -3390+-3605 -2403+-507 -6455+4315 4525+-1481 -7565+8746 -1175+8406 -2868+1339 -693+863 -6732+2758 -8459+5097 -4260+7652 4182+7516 -496+-1703 8941+-32 3696+3534 2556+5177 -8669+5945 -3681+-2503 -9323+-4024 8876+2594 -8963+4314 -37+-2550 6150+-7395 -1920+-570 -3701+-9983 -2203+2823 7318+-3410 1292+-7014 5459+-7390 -7719+-1001 2840+-9122 8671+-510 -6030+3649 5214+-9068 -6160+-752 2724+2727 6637+-3774 -5455+-4309 1349+7581 320+-276 -40+9044 1321+-3833 -8126+3569 -9420+3612 3978+-3912 -6300+-4316 -4434+5658 -8728+8704 -7192+-1750 -5751+-3644 -6669+-9582 -7944+6801 5238+4558 449+-7213 -8138+5466 8944+4052 814+-4439 -716+-9670 -3110+-3122 6724+-9721 3016+1257 2804+-3382 4409+9074 5189+5798 -8014+7185 5763+-2289 6792+1248 1748+3322 -3858+-4323 6484+2337 -9701+7170 7741+4562 -4004+8365 -5589+5949 -8259+-8944 -322+-5746 2510+-7344 -2829+-9771 -6016+-3647 3659+-8195 7069+1244 4857+4238 -5590+7525 -962+-6920 -5777+-4380 -9772+4592 4002+-7208 -405+5278 1779+2844 -2234+-2849 -357+3691 -3651+-5085 -8599+-4822 -5199+4610 -5449+1275 6743+-9011 -5961+7023 7491+3473 -9733+1566 -563+4938 3751+-7484 -288+9037 7306+-8837 -1115+9701 8907+9811 7294+5971 -1202+-4550 676+3555 -2149+-4499 8026+2426 -4272+-6824 757+-3788 1889+-6295 -9975+-5392 4160+-5187 -9241+-6736 -4453+8803 5383+-6083 4575+-6231 -1839+3493 6178+8176 -7483+-8018 89+-2927 2376+-6525 -7519+665 -7290+6601 5223+7064 4801+-5232 -1444+-8157 -5628+7288 9890+5996 -9239+9791 2377+2104 774+931 -6264+-1563 2251+-192 6353+-522 9218+8481 -8684+6793 8338+-5744 6453+1834 -6513+-3913 -4594+-7854 9102+-1736 -6486+-7970 -7864+1452 -6496+8950 6977+-7841 8809+9053 504+5543 9017+-9447 -7518+4241 -1791+-9960 2178+-428 5600+3019 4127+-3678 7718+3668 1681+-7126 -5338+-703 -6637+-7872 5379+7836 6702+3328 -1003+-1797 5625+-795 2777+-6674 -3622+-2986 -1186+-8018 7037+6609 3105+-8135 7527+-7696 -6548+-501 -8094+-3293 9277+4698 -576+-3792 -5159+-256 -4785+-85 3206+-6373 -2595+3724 -787+1097 -9650+7575 358+-19 -601+3000 -1557+-6257 4785+556 -462+-7306 -2811+-2522 6743+502 8344+-3926 527+4847 6722+-5300 5986+3529 784+5872 -6236+779 5936+-6136 2005+34 -1998+5059 9967+9206 7561+8484 6101+1621 6445+-6016 -2251+3655 -8213+-4595 -2145+-2737 -2128+-7028 -1234+-1165 -3471+5710 -4956+9296 -4842+-3748 -8545+2660 -6887+-2739 -1445+-4098 3212+5283 6955+8085 5979+-3324 979+-3516 -8201+-3099 -1542+-1848 -2803+709 -2794+1894 6013+-6211 -8604+1178 4469+1762 8550+6108 -7285+9765 2236+-4850 8703+9991 4906+6725 5851+7936 -4506+-9927 1817+770 -6535+6891 3347+-564 -2019+-8512 -5437+3925 -5237+6998 7234+6710 -2745+-3133 1097+3560 -8528+-9967 7342+5842 7504+-8226 4935+-8560 -2851+8382 -3317+-8877 1388+-3185 9058+-9595 -5128+-4896 9626+2884 9571+-6692 -8048+-2015 4126+9356 -9240+-9029 5815+1665 2389+3403 9367+1031 -413+9332 6468+1447 6315+1823 -9164+-3579 4409+6745 -9538+82 -7122+-7223 8394+-6104 -6253+-4245 6779+9445 -8233+6511 -7613+7115 -1185+-7003 4249+6084 -4163+3119 -4575+1818 -1675+1442 6013+7897 442+-1568 -8306+-7140 7059+-1138 -4870+5412 -6503+-7180 -3612+-6222 -9187+-5194 -3516+6876 3593+-7405 -7244+6198 104+-2690 -7350+6910 -2511+-3094 -666+-8912 -2002+-1506 -3628+7191 9806+9113 657+4485 -280+4657 -5664+-9244 -5869+-4299 -9307+6504 4721+-1465 -7120+-9927 801+931 -1994+7835 4096+1925 7980+810 -2551+9280 1642+-6487 5863+-2354 5119+-2285 -5800+9971 6895+7693 2970+-8600 -3800+130 4282+8606 -7723+4890 -3688+6784 -2710+404 5267+2308 8764+7995 -660+-8170 -495+-5050 -2286+-9496 -6221+-927 8144+2926 -9984+2068 -1593+2840 -3198+-5808 4624+-8737 2897+-2296 4439+7075 6316+8090 6498+582 -994+5802 -309+1226 59+-7387 5193+-7512 -8184+-8715 2553+2057 2660+3552 7989+-4959 -4371+8330 5730+6114 8437+3213 -7025+-8897 -5075+-6955 -6097+-371 -8615+-2531 -9186+-4991 -3819+6733 -2976+7551 -7695+-2761 -4214+-4292 7110+-6132 -2291+6885 6913+2085 4614+3319 -6687+-6707 5887+-8258 -3293+3833 -2095+-8386 -2083+4876 4680+-1130 -3443+-4315 2598+9736 -3003+-2632 4343+-8544 -2733+7066 -312+-3034 -6497+-25 -7172+-2475 6229+-6305 1892+4127 -9967+-900 -3002+-9358 9983+3889 5187+8884 -8889+5876 -972+-8157 21+-6437 -5789+6519 4900+-9468 3145+5679 -4925+-6642 -9399+-2277 9466+155 -4082+8933 -9343+3023 6478+-1134 370+5779 -1973+1408 1906+4262 7125+-6774 1727+1134 5915+-6428 -6201+2484 -5299+4327 5581+2838 -7616+1537 4037+-572 270+7079 -8186+2342 1223+-5409 9988+8056 -6136+-7384 6452+3961 9411+5292 -5691+-5251 -3863+2633 7200+-6149 4764+-556 -4623+-1254 2690+9805 -9383+-1672 4116+638 4118+5544 -8230+-8673 3600+-494 1558+5812 9998+3446 8078+-9404 -315+549 -6387+4040 -878+4514 -7340+4998 -9917+-8302 -142+1740 -8149+-8124 9071+9190 9446+-8438 3579+7967 2397+2608 7641+9274 -7856+3894 5256+9933 4874+-2052 7275+-959 -6318+-3531 5918+781 4333+7927 2555+-3794 -7781+3973 -5552+135 4160+7692 -6255+-726 5962+-7660 3705+-7904 -1351+2454 1026+-2306 2109+-5462 3280+922 5207+8675 6164+7300 -964+-764 5973+-6890 5803+-4289 6528+-188 -5707+-3427 814+1989 -4414+-4762 -5272+-6981 -1782+-9109 -8370+7036 2254+-7800 4922+-4508 -9981+9916 8952+-1887 -2796+9080 -2054+-7868 4864+5906 -9957+5073 -2379+1386 -4068+6921 -7181+-9096 -3167+6966 7928+6262 -9562+-3387 1600+-8830 6558+1033 -9779+-6332 -4666+-9771 5231+-3437 7185+5316 -1772+7976 2121+6743 -6590+3475 -1595+6083 4120+-6760 -1813+5541 -3379+7237 -6782+7332 4497+648 -9738+-353 597+-8184 -6173+-7239 -6829+-5165 6748+-2815 5373+-4055 -2007+3991 -402+1945 -8726+2429 -9938+-3761 1788+-1042 -4977+-7491 -1880+-7280 -3763+-7091 -935+-4201 9766+8889 -4266+-539 -336+-7666 7163+4925 4554+-241 8246+5402 7247+2461 6932+-7096 8748+2696 -8020+6037 -3115+-3092 -2222+9223 -8973+6179 -416+-9099 3129+-8664 -7518+2619 -1332+-4145 -476+-226 3567+300 392+6594 -7505+-2305 -1521+7700 -1080+-8668 -5370+1367 7271+4523 8869+-1029 -7979+-3129 9555+-5029 3973+5772 -3812+5249 -7290+-7414 8967+-574 -8350+9141 -7273+-2352 2144+6834 1187+-1073 -7342+3062 -2659+8953 -1701+-7265 9177+-3782 1756+-844 -9061+2516 -4943+2211 -2130+-3254 -6514+-6587 5449+-7059 -1977+575 -2323+1334 -533+8349 -6033+-9236 2501+-2000 -4363+-2682 5736+-7320 2570+-5589 256+-1527 -2710+-7531 9702+-4011 -6376+3366 -4456+3194 -4375+8942 4141+-3108 -9711+1633 2543+9693 2687+8148 -5671+-3759 9697+3500 -6724+7638 453+296 6071+-8967 -2308+-8216 8574+-1522 2041+-8510 2443+-9387 4092+-6425 -9929+5687 6881+-3179 -5192+6709 -3057+-2649 -6236+7525 -5+3565 -3084+1404 7489+-6868 9727+4178 -9907+1406 6551+-7190 -5819+-1855 -4027+5125 -1171+-853 -9+8960 9190+4175 -5508+-9841 8577+6957 -5924+3983 1577+5328 -9962+9235 -5756+4597 -7627+6707 -9136+-1175 9766+8454 -6863+5586 -3185+621 3181+-9686 1141+9895 61+9071 227+-2722 2814+-2824 -8215+-5317 6803+-526 -7034+-6579 -3267+7539 -2480+-9644 -3092+5835 2953+6885 2483+2796 8976+-6888 5657+-2718 479+-3046 2786+-9463 -7752+8658 -9206+3661 6008+9476 -8008+-3596 -3923+-2146 370+-1075 -1289+-3166 -6887+2829 -4342+7336 -3825+-6296 6863+9597 -9536+-6585 -638+2358 283+-7821 530+7722 -84+9194 -7153+-910 3614+5051 -4812+-3051 9947+-7188 -5012+-9145 4391+-9198 991+-8357 -6392+-8633 -6499+-6829 -3868+2816 -9315+-9286 1779+2501 5219+1774 4184+5608 -9247+-4851 -6830+-9550 -9228+5135 972+1997 -1688+-7812 4040+4637 -9462+-726 8825+6977 1915+-8196 -3171+3683 3606+-3271 -2918+-6410 929+9798 -7086+-8359 -2125+21 909+6489 -5576+6895 8476+-6876 2264+2064 3925+5802 -9491+-2666 -9492+-9710 -9651+-3186 -1639+4631 1183+9097 5044+-6842 1382+-1917 -4702+6429 1424+-9266 -7675+-2088 1399+2014 9997+-7295 4076+8563 -1425+7483 -2107+-5756 9999+2823 1660+1813 6793+-5668 2424+-3546 8271+-1070 -6274+-9125 9494+-7036 -3110+-8889 -4538+-5041 9731+3388 8917+-5754 -7139+8996 -3208+1460 -4604+-9561 -50+3132 -9098+-5803 -5367+-4326 4744+-2241 -925+5027 3416+2834 -7095+8634 1063+2529 4063+-5416 -8494+-2699 3853+-9101 -1183+-1190 -5729+-2074 6618+2004 9990+1774 4554+3510 -549+-407 7707+-452 -7229+6707 -7413+5321 6668+-7558 9991+-4263 7189+-3103 4890+-8193 -1182+2895 -4477+-5335 -4701+-9608 -7736+2934 -3866+8074 -6000+2722 7817+-514 9229+-4310 -4444+4732 2342+8955 -9003+-6965 -1807+5358 8649+-941 757+1333 8615+2262 -2348+-9703 3858+-4411 6357+-241 2404+8217 9933+-9030 -7832+-4667 8018+-7799 4720+-1026 7156+8830 8170+-1645 -9448+-453 3074+-2835 -4055+-6133 -2450+-3445 -5818+2933 -1831+-635 8041+-3155 7714+-4698 -455+2024 9418+-9807 -8292+-4098 7505+-6656 -5692+-6561 3280+2578 4183+5947 -2701+-1028 -7545+-9987 -7747+8691 1335+-6558 -7253+1859 -1540+6562 -6856+7371 -7903+5569 -1950+825 364+-9951 3945+8179 7533+8428 -8102+2983 3407+2495 9712+-9142 1358+7982 1740+-5654 -8417+6907 4959+5227 1389+-8843 4439+8686 5352+7200 7772+-2137 -8001+6478 -8587+5342 9936+-6950 -1766+-6896 7323+7932 3055+3655 291+-9293 -2778+-9118 -8564+-643 -4006+3895 7466+4852 -6030+2248 -4868+-4348 -3935+1213 -4955+-9462 9056+-7230 -8583+-3577 8661+6680 464+-898 4319+-5120 -2137+-3379 1446+-6784 -4300+-823 9167+8921 3460+-8907 -274+4945 5174+2118 -7584+6101 5563+-2849 -8251+139 -3650+-2812 -1931+-4134 9726+437 -3040+-5512 -3417+-8906 -2028+-9271 -9314+5892 830+-6957 7340+-2469 1382+-2726 -2563+4753 5831+253 5639+1557 -7679+6206 4711+492 -6891+7308 9979+9893 7990+8820 -191+1612 -8429+-6813 -4769+7366 2921+4290 5873+-6124 7454+-2992 -9161+491 3699+3976 6819+-3888 -1079+7145 9751+-7046 5274+9926 -8033+-1400 8582+-6301 -4710+-2690 -2495+-4237 2240+8614 -264+1098 9748+-829 -3943+-5283 9287+3701 6987+-9731 -8438+9192 5542+2570 6884+468 -2588+606 -2406+-1325 -3342+8651 -4135+-8402 4027+-5258 7502+-2971 3609+-5205 -3835+-519 3690+6233 1195+4112 8464+-5170 4769+-1867 -4014+5882 4213+-1918 6663+-2936 202+7174 6957+851 -1237+-2682 9216+4894 8812+-4625 5378+4779 -9057+-7425 9086+-3551 -9656+-4103 958+5332 7000+-3779 -6598+1656 -8040+-2146 -8384+-8045 -3058+8709 8095+8777 3223+-8936 -7049+-3404 8035+-9048 2950+-1420 -9237+-6998 -1060+-4424 -9728+-4107 8288+-8087 -8658+-5492 -604+567 3124+-8003 -2360+8682 -3026+-6659 3278+-8559 4680+-7037 4894+7293 1529+9405 6287+-8630 -1303+-5683 5665+7173 3313+841 3455+1015 -1535+-9372 -5109+-3636 5998+9322 -3286+-9413 7894+9163 4065+-2699 -7319+9192 -2343+6575 531+1109 8447+7641 8069+772 -2170+3844 3357+-8311 -2853+-8349 -6299+7949 4571+-5556 -9013+3873 7184+-5071 -1415+-8620 -7029+1212 1632+-696 4854+8969 -9414+-699 18+1820 -4921+-1779 8759+2077 -9995+-7624 3577+9912 -3348+1554 -2751+8994 6399+8616 -5047+8457 7600+-7348 -6728+3886 3625+-7694 -5951+-8816 -2585+-4574 8696+-1333 2185+4086 -3492+1692 3401+3503 7298+5407 779+2079 2857+-8970 -4959+4621 406+4279 1847+-9450 8460+-3777 150+4615 -4562+-5587 -3198+-2421 -741+-5163 5862+-8697 9056+-7993 -9083+3756 -541+-2696 -6161+-9883 5293+6333 4444+-2827 5938+-357 3115+-5927 6718+-743 -4956+-4836 -9180+1934 -6530+-7498 5607+-3209 -5163+4445 9102+-9467 5223+1000+1915 7176+-4414 9868+7749 3020+-4408 -2600+-6460 4989+3998 7921+9034 -614+-7976 2331+-9410 18+4727 -9061+-4371 3116+-8548 -950+-3156 5157+4202 -9849+9488 2759+8069 2066+-8710 -2262+-2469 -2303+860 567+-5968 5158+-8344 -8065+-9682 -1678+-1159 577+-4665 1437+4143 275+-2389 6822+-4286 649+-4027 -7132+-6190 2979+-3094 -9971+4360 -6754+-5686 5326+8756 2033+-6509 865+-4261 -6422+-3421 4604+818 -8367+8893 5282+-364 -8052+-1074 1740+-9127 7518+-1148 -1607+6456 3909+-9649 4569+-9976 -5860+7772 8573+-7256 -1779+6214 -9441+-4024 1341+9848 7834+-9372 -7073+-3124 9545+-3436 1944+-5648 -8046+-6905 4255+-4006 835+-1653 519+1628 -8466+-2964 4912+8889 -8535+9527 -8257+809 537+4440 2805+-9994 -80+-7814 -9787+459 -3529+3932 3123+-5512 6740+-3790 9390+9193 8632+5675 -3666+-3058 5073+7893 -145+-7669 7586+7703 -6326+3944 4580+4734 4711+3517 -890+-4514 2050+5177 5853+9320 -6508+4920 5966+6671 4390+-7373 -9587+7822 2744+217 -4721+-5582 7890+-2636 -9288+-493 8457+-9955 -6021+-7850 -7177+-6258 -5006+7349 -94+-3912 -8833+-5512 -8115+1622 8614+1743 -1969+9321 -3229+-6986 -9535+9284 -3432+-3064 9184+6977 -3326+2036 9604+-6046 -7488+-1658 -6981+5912 957+8362 5106+-3548 -7214+-4961 -6490+-6791 -9712+2420 -7486+-1376 -9531+2209 -3082+9247 8213+2368 8324+-8390 -7243+-796 1303+-406 2113+-7472 -158+-1377 -4527+7567 -770+5682 -9179+-9354 -640+-9447 -7648+-780 9255+6430 -39+-626 6825+2270 -6916+9204 9638+2604 5704+-6430 -9467+-6150 9377+1778 -5112+-9146 4944+-1947 -7194+9439 3087+4620 8543+8391 8061+2494 -1704+5027 7728+-6456 -7780+-5551 2472+-4033 -2893+-2574 -5711+7063 -563+-7605 -4661+-3394 4437+3315 -2238+-6047 3119+4847 8224+-6310 -3756+-1161 8058+2165 -7422+-3291 -3744+-5791 4037+-6714 -7834+-1986 -1670+6141 5613+658 2336+-176 -94+9449 4501+9568 -7544+9704 5024+-3561 4228+-8742 5009+6435 4993+3558 9019+1607 -3902+4374 8962+-9592 6309+-7322 -5466+5026 -120+-1951 6882+-5963 2262+-7413 -1068+3966 -8492+-1990 2594+-7398 12+-2064 3165+-2314 -8714+-6154 7577+4971 -4878+8700 -5629+6105 8556+-4178 -4998+9543 2134+-6766 1606+-3201 7845+-4370 2876+23 4329+238 4224+8665 7039+-5524 -513+-7654 4322+-3116 2547+8350 304+-4866 -534+8019 -4202+5124 5353+433 -8449+-588 2105+7125 339+8617 -8698+-4496 4907+-9383 7639+-6879 -2757+-9296 -8455+-3136 -5421+-4385 4543+-6962 1568+-5320 3752+6001 8140+-1299 4550+-3476 -182+-5828 -9733+-150 -923+-7203 -9827+6593 -3457+-4151 4447+4268 3035+-8900 9157+8532 2657+-9943 6746+-4569 694+4981 5480+-182 930+-2617 4257+-7281 -9585+5721 -1451+-3885 2089+7558 -8449+-5006 -7710+-4599 8047+-8266 5731+5065 8326+4736 9334+1804 -4302+3284 -2719+2955 5906+534 2104+2830 126+-7034 -2909+4951 3826+-4448 843+-8552 9340+7990 -6016+1144 1773+9337 -1363+-9160 -7433+-3703 -6823+-9277 8802+-5402 1163+8728 2054+-4785 1342+-7210 -1498+368 -4447+7012 -5605+-9892 -1730+-9219 -7616+-7452 3209+-3331 7837+-4867 5826+8930 -6433+-6926 9504+-6134 -3850+-8811 -9751+8521 1693+-6691 -3541+1547 -3004+5387 -9241+-6766 3194+-2223 -1469+-8970 8632+5078 -2615+8055 9455+296 -292+-2373 -5265+-8462 -3506+483 3320+-3168 -7142+1400 -2675+2227 -5676+2402 1882+-8676 1543+8678 -794+-2437 -2627+-7855 -4715+-9000 -9552+1062 7140+-286 -4619+-4219 7145+-6128 1942+2918 5349+6296 8039+8216 -1263+-2064 2564+2388 -1201+-7698 -3055+9559 4099+-9620 7811+-8227 1974+6056 -3164+1765 7200+1540 6407+-8420 5588+-6641 -967+4022 -481+6214 -2484+5556 5136+-6638 -9368+-4327 1189+3002 -7120+9349 -9151+4193 8232+6457 3303+2509 6114+-2764 -7698+-3765 -300+6118 5018+-6916 7772+360 -3994+-6729 1942+-4211 4023+-3224 -4348+-5774 5242+8200 3539+-7122 -6962+-9373 -1557+1436 4190+4371 6850+-6956 2481+7355 102+5721 -8367+-2206 6285+-2949 1339+8009 8388+712 -9308+-7474 -5888+4139 -6084+4225 2199+-7632 4570+5081 -9928+-4661 -8706+-9214 -3985+2607 -4531+3994 -5149+9181 -8890+-4946 4695+4948 2938+9178 5811+-3903 -1111+9533 2380+5252 -5956+8640 3228+1590 6146+3168 -6508+-9503 -3962+-7458 5048+-9118 -3411+7589 -155+-6845 9456+-7669 5011+-6347 8581+-1092 -9274+8055 7962+4744 -6735+-6522 7757+6174 -234+2927 -2874+-6666 -7990+-6697 1834+-9048 3008+3500 3856+-6789 8876+-9944 333+-104 -6513+-8886 8122+-3822 -1667+7829 -1952+1573 6643+5776 945+-326 4488+297 1358+-3759 -6499+-592 9089+-757 2014+5973 4923+3584 -9398+386 2499+3726 -4044+8093 311+382 -7053+6078 8654+7508 -2695+7871 3069+5369 6082+-4241 -7576+-9714 -4103+4023 3160+-8029 6198+1701 7433+4070 910+1312 -3538+-1006 -6872+-4188 -2847+2673 8125+8245 8699+-339 -9997+-1578 -6134+-1797 5190+5048 -8730+-3112 5152+-9127 1125+-2151 2232+608 -4994+-8959 4609+-2368 -8609+-9966 -3557+-9738 -7853+40 -7045+1496 -2751+-3985 -8019+1773 5103+-2718 221+-3828 -7658+2964 -6785+7540 -991+7086 -4285+544 -5107+3871 286+6365 9271+-9517 -9554+1173 9828+-8775 -4256+6240 2060+-5620 -6237+9769 -8642+-4237 5394+-2243 8363+-691 6260+-4772 -4208+6457 -9901+-3857 -5842+1547 3444+-3341 18+-2724 -7505+3269 -6223+-131 2713+-332 9243+-250 7480+-1716 5000+-1879 8942+8346 5824+-7231 9372+6419 6840+-8169 -7371+9935 -7597+1910 -8338+-5778 3187+-6446 -1051+7910 5340+-9592 -9747+-1513 8259+3547 4084+-3119 -187+-9422 7277+36 -559+-4164 -1664+-6261 -2420+5892 -7858+-3586 6061+-1443 -8118+9102 -2684+2509 -4754+-6914 8609+6045 -4293+3208 9696+-7841 -3313+6680 9011+6416 -4662+-9163 2601+-6306 3236+-6316 4462+8325 9057+-2224 -1287+-5739 1682+5755 -6005+6120 -3723+-7428 -5998+9739 9641+2681 -7889+1478 -9484+95 -8675+6057 -4167+5624 -3873+7072 9334+-8733 -2022+-7866 -639+3692 1550+5435 -3821+2538 -8820+-6859 -8547+-9776 6037+-2163 -295+-2740 894+-3980 2842+-773 9169+-1552 6688+5173 3565+-5281 1033+-9717 -1547+-8519 9690+4825 -4659+-1570 4749+-1438 344+-7217 -488+-5399 8516+1147 4255+-2906 -7750+-9685 -2212+-1825 -1334+4317 -5972+4437 -8202+-6687 -4026+7833 606+9020 1790+95 3166+-8917 5672+-4763 -8594+-252 -1723+2420 -6248+-8629 142+1441 8595+1305 1216+-1944 -2411+1187 6227+-3741 -6980+5800 -5410+401 -914+1584 4315+7569 -8777+-8403 -9784+-6399 6214+-6642 -7834+-5217 9294+6579 -5874+-8459 -667+3577 9705+-387 4831+2427 -9219+-5346 2193+-7524 8413+-942 -2646+3811 1118+3080 -1977+-784 1009+-5549 8810+-1872 -1482+-9832 9378+8695 -8451+-5222 -5648+1207 429+-3999 9213+4560 -2565+-5255 -264+6422 3736+8871 -5025+-3227 8982+-9640 -9344+555 -1912+-2896 7030+-389 -9338+-2467 5581+-1720 -6415+-6744 -6732+6965 285+611 -1423+-656 -2111+9922 -3603+6830 5742+9176 -1762+-5686 4590+-5769 -5861+4543 -9173+7173 -5537+2712 -7554+4945 -192+1132 1877+-7793 8290+7603 -4017+8329 -8244+-5622 7253+6953 7401+4832 -810+-3178 3983+1736 -707+50 2379+-8790 -7143+-4766 4956+-1189 396+-829 -969+3994 5294+6599 -7917+-4054 -3552+-7366 8093+7588 8246+587 -5939+935 6417+3199 -6082+8476 894+3297 -7659+2877 2908+755 -409+-6029 -7219+-9163 -2137+3441 -1856+-1019 -6829+-3708 4451+-2413 -4267+-9006 4152+1179 -7912+3025 -7927+-8691 2377+601 -4855+-8822 3237+5373 -2618+5884 -5706+-6008 8908+-1145 6367+-5016 1355+9183 6190+1100 -1145+-552 8693+-6666 4626+5513 -5895+-4725 -3267+5414 -181+-9605 -5608+-3254 863+-4286 -5921+-5058 2245+4164 9086+-6968 -3337+-2420 -9440+3572 -2033+-4221 1212+1372 -5205+-5702 6730+6762 4745+2450 -960+9634 -9987+-5685 6187+-817 2911+-4925 -6276+-8166 3955+3074 9449+7178 -4318+5905 -7705+-9645 -524+8941 -2554+8578 -7777+4667 3000+-5996 8474+2274 2070+9792 -8488+-2832 7961+2628 -5861+6345 -756+-1758 -4640+-4201 -191+-393 -8647+-6892 8972+382 -5462+-8822 6608+7435 -8481+988 1155+7983 465+-2545 7860+-3054 -5930+9989 9608+-112 -4544+6293 5719+-7851 -5148+-4559 -913+9442 3987+9215 -2746+-157 -4813+-8766 -6520+-5973 -3155+-5857 -6636+-4984 -8996+3140 -338+9202 7456+-7733 -5399+5055 -8331+5300 4252+-1323 -4092+7109 -3519+5927 -1195+7644 6104+886 -4856+7664 -3858+2636 3159+-9526 3582+-380 5623+-912 8122+-6782 -9811+4915 980+-9795 9874+4297 5736+-4377 782+-2219 9266+-4524 -3672+9186 -920+-1952 3099+7127 -2746+271 5948+1268 -2428+-5012 6077+4605 -338+-9565 6869+-393 -8439+960 -2831+4420 -6805+4756 2397+-8311 -2472+-6785 -6939+2654 5553+-2578 -5848+-1914 -1580+8791 -5264+4167 2766+-1574 993+-7056 -5250+6906 7545+-589 970+9040 -8025+-8951 -4371+4339 1031+-6583 -6975+3074 -7955+8672 -8502+4248 -8027+-8939 -3963+1749 644+135 -9937+5047 -6045+-8074 -4673+-2923 -8067+-4932 -7267+-8110 -8206+-731 -1020+-7448 3266+751 -3463+-8096 -4635+-5270 -5826+-519 -9206+8795 6008+-5537 -1058+3810 7582+-4272 -1834+-6501 7070+-9052 -1726+-7024 -3099+-873 -7523+8196 -3206+-8972 7050+-2609 4801+6932 -8848+-7601 409+-7582 1441+6485 1405+2499 7192+-2436 3613+9139 -8249+-5005 7072+-43 6664+-7299 -8475+5050 -117+1642 9164+-7361 -4412+1287 -5959+-2267 5653+8866 8316+-6196 21+-6016 6894+8631 2292+-91 -3543+9480 900+7676 4306+1644 3782+-2593 1943+7787 -2023+-3650 -5807+-5106 -2745+-8640 -1900+-447 2010+9586 -4257+-7842 -5970+-1969 -327+7650 8116+1837 -7712+-7091 2885+-6516 3225+-2776 -3884+-5878 9553+-7507 4414+106 -9147+-4047 2681+-1278 -8704+-7723 -109+-5915 6632+-5295 -5527+-7319 1795+9483 -2011+-7573 2901+-9479 -1946+-4259 -6341+-2919 5698+1785 3484+9289 -4723+4212 -8970+5825 3748+3205 4941+2694 3366+75 -5829+4767 -507+-6609 -7439+6163 -6506+-8202 242+8368 7574+-6209 -1492+-4176 507+4705 9527+8229 9781+-836 7304+7172 4040+1394 -7826+-3104 2678+8235 4874+2667 645+9261 -1924+9981 227+8912 -4402+-9217 -8385+5683 7662+236 7070+-7431 7011+-9754 3607+5830 7942+-9159 4923+1543 -5143+600 1137+-1807 -9705+1541 5509+8516 -9261+6040 1324+8134 9312+7666 9193+6172 -4234+-1718 -4545+-776 -463+-8993 -9315+-4509 -7719+-6912 -3335+-7392 -3730+5562 -9772+-9753 -5067+5034 1026+-8613 -9685+-8066 3774+998 -7015+563 -6087+4346 5206+-3380 6247+8840 -3249+1600 -4230+-3388 1220+3482 -3008+840 -8037+7384 -3992+4934 -548+-1393 -4860+8836 126+6432 -4740+3747 6891+-8043 8223+-2290 5924+-6955 -4960+-7379 -9210+-6682 2395+-1062 -1900+181 -5993+-781 -9693+6042 9015+9538 -9085+9337 9205+-2180 -7175+9398 -9663+1141 -3967+4316 -9484+893 1533+-7379 -4634+2778 -8206+-2230 -4490+8787 -7147+6472 9110+6523 -948+-7350 3013+-8359 9132+811 4903+-4128 5051+8158 -6148+-8968 6085+6250 -9337+6379 -879+2264 839+4753 2102+6183 -1989+2632 9738+-9333 -2729+-8346 -7062+-9450 -9280+-7830 -1098+1651 8482+-7506 1679+5973 -2233+-5978 1807+-3354 -1871+-6818 -8910+-785 -2260+-8450 -5707+5729 -2308+6405 3896+3780 7354+6243 2454+-5614 295+403 2031+-7855 -4347+3870 -4999+-4933 -8915+-369 4929+-6803 7289+-2157 7051+-3124 3970+-3192 -6550+-9538 9415+2884 -3626+-8683 -5450+-4810 -7761+-4151 -5160+5448 5856+-6805 5795+-1109 4178+3419 -2495+5607 5710+4240 5240+-9597 7515+3178 -8146+-2057 -5434+-7267 -8113+-6771 -7659+-2873 -5688+1727 -5345+-7376 -7097+8076 -3104+3916 -9205+-1320 -400+8108 9297+8999 -5807+5149 1752+1330 -8575+-4107 -9509+-8547 -5936+3809 7432+6251 6085+4697 -3635+1204 -3026+-3302 3329+-1563 -8228+-550 -6663+-3709 -7729+5957 772+-7490 -1967+3845 -2430+-3519 -7910+8003 -9676+-3962 -6137+-6049 9100+-635 7861+-8997 833+3119 -7160+9521 -7456+-9790 -8590+-1583 -8538+1358 2735+-4227 -3894+-7889 4329+2215 -8945+-4874 -5866+1000+-7981 -6263+9342 -9586+3522 1324+-3259 8361+9328 -6335+5610 -8450+-92 -264+1564 -866+-6008 8094+-1525 -9099+-3758 299+4136 2544+-7296 437+9962 -562+1526 -4788+2478 -7519+-7883 4893+-4478 9827+-649 2665+6287 -402+-433 2048+-9013 -8190+-4485 1948+311 -6150+-9235 -309+4787 -4238+2831 -2225+8249 -7413+8853 199+6781 -8544+-1695 -4782+6228 3712+9420 -733+-2359 4536+9535 -4022+6684 9337+1053 4146+-8486 -8986+-8081 -9394+-7907 -3242+-3492 8707+-8730 -8078+-2969 -12+9136 -7684+3616 -2227+677 -4755+-5332 743+8683 -1298+-78 4931+2559 -7155+8485 -4633+-5632 1408+-8642 1195+-1716 7996+5709 -4215+5076 2397+-4271 -3057+-1840 -8366+-3936 -3643+-7255 6914+-2554 -367+-8393 -4901+9890 9111+6248 -7602+6530 9175+-8359 -2697+-2347 -515+-833 9845+-7343 -3807+6655 -5292+-3853 6709+-8427 9242+-8706 3861+-6182 9104+6098 -4908+2943 -1474+9754 94+4741 -3452+-7719 -2030+-8246 2722+9148 -2819+-1583 7978+-1505 1162+4949 -5915+5250 -4621+1562 -7096+-3698 -1644+8895 -6103+6903 4521+2789 9283+1378 -9856+7014 -3538+1206 -1774+-6035 5552+1461 -5975+-795 1968+6770 -2705+-64 -6886+2418 8329+137 -4895+-6668 -9262+-5523 36+7940 8943+-1165 -4541+3428 3610+-6049 -7314+47 2846+-3725 9364+-9742 -7758+2258 -7733+-5587 -5935+7187 1478+5915 -9959+5197 1171+-8425 6561+-4886 2721+248 3279+-2846 4098+2459 3341+-560 1755+4443 905+-6571 8486+4078 -7049+-3205 4113+-9075 6406+9792 -1958+-9900 4501+-7103 -4267+2360 -8787+6323 1250+-7666 3363+987 7970+7272 -5361+4234 761+9579 -5464+-6203 4939+-3545 -1182+343 8165+8115 442+6745 303+-6771 5172+8797 5743+-9434 8188+8729 6674+5065 -7151+-7841 -9305+9529 -7896+-2329 8157+7098 7161+-1901 4309+-4559 928+1191 -2419+1380 -4879+3371 2646+-4526 -1325+6475 -360+1198 -3413+5420 135+9038 8750+-2661 -9097+1080 1668+-9439 9238+-3138 5603+-1963 -7715+-102 4502+-8262 -8220+-6494 1758+9564 -9794+-7929 -878+-5931 1820+-2570 4224+-2898 4306+-2311 1389+-6837 -5947+6544 -4822+-1575 6700+6948 6510+-6710 1451+-8943 2748+151 -8079+-7050 -3173+1797 5356+-1045 8815+3706 -6460+4294 -1213+2045 -5690+-3824 7824+7130 3584+7478 4977+-2010 9408+-3026 -5803+-375 -58+-7942 -4495+-4652 -3297+5735 -3907+9472 4379+-6655 7413+1260 5838+-7140 -6061+3379 3756+1926 1026+-3557 4111+275 3690+-3847 10+4331 3317+-5729 5587+9945 3591+-5266 5558+-4094 5741+4217 6204+1771 582+8355 -344+9828 1776+-943 -8476+9406 -2056+2887 8850+-9861 -7285+-4313 2555+-4659 4899+4232 -1260+3061 654+6111 2351+-8071 -9637+9660 -8497+5676 -3829+9043 -9315+-347 -3018+6269 7228+-2749 1375+-3334 -3779+-3079 -6801+9722 8877+9341 -8665+2431 5914+-8321 -3489+4634 -7294+2391 1493+214 7274+6767 -6051+-1427 -8589+6474 3675+-3180 9414+7289 -8858+4871 -8215+-5393 -2627+-7572 1607+-9889 -4270+9238 4805+-99 4740+-5878 -8188+-4606 -574+9227 5836+9500 -5501+7294 4260+-1349 5318+8204 -9990+-2980 9339+2776 3127+-1131 9791+-1141 -288+1275 7791+9899 -5056+-4261 -755+-893 -1677+8075 6339+-4028 -7582+-7656 3029+6036 3665+-8291 -3517+4951 3410+3975 -6349+-5306 8897+-5867 -5207+-9902 781+-8681 -8602+-6382 1212+-823 -2486+3387 4978+-1057 -9310+-1308 6433+-6595 3352+3811 -8613+-5736 -5852+3598 -5565+8741 -5842+-870 1972+-6683 -3639+-4721 -1470+-5159 -7597+8071 2203+1778 5276+585 5143+6895 -6635+1914 -2592+4087 -4670+-2901 -8301+5905 9110+737 8986+9582 -7975+1078 4589+-5093 -7966+-9159 4314+7042 -4517+-5258 4710+9685 -3459+-4463 3288+3929 -5902+-9501 -4899+-7245 9383+-7554 1483+4833 4313+9468 5949+5362 -8961+-531 -8532+-9959 3946+9625 -1350+8258 9728+-8890 5328+5530 -9433+5785 -1731+-3802 -7915+-4934 -9435+5168 3361+-6360 7783+-5316 4591+-5509 6325+-7883 1182+-942 5829+-513 9837+-9478 -636+-5655 3114+-4828 9105+6788 2025+-464 4374+-2421 1460+-1167 1356+5964 -1139+-7525 4372+7018 -166+7266 8384+-9457 -9785+-8564 -8917+306 7309+-7082 9564+-2221 7027+6176 -1829+9089 2430+5623 2234+-4650 -4248+-657 2407+-5739 -423+6366 9185+8063 -9072+9137 6302+7269 8389+7974 513+1616 3737+6673 4388+5190 4093+3291 5214+2100 -5101+1354 -284+-1126 -898+-3914 -5655+8091 -2009+468 -8280+1655 4208+120 219+-8974 -1757+4841 -4230+2802 3306+-1755 -4976+-8469 7237+4091 1137+2747 -3269+5280 -4932+9653 4420+-7776 -9642+4201 -5069+3322 6713+1761 -790+-1633 1286+-720 -1710+-9436 7721+-185 -9984+532 9333+-8291 -4642+38 -6298+-6545 -8685+-1076 -8844+1765 9096+5662 -6820+-6837 -8325+4109 -9098+1209 4344+9063 8233+4910 -3148+-4320 562+-7557 4495+-1830 -3983+-4906 8360+-9456 -9825+-3877 -1975+2639 4533+2386 5337+4193 1293+-7432 -2259+2006 -8237+-2195 -5826+7661 -3739+-3312 -4443+2334 3671+-3335 -4629+8027 -2334+-1065 9309+3676 1844+-2242 414+1294 -3449+8163 4318+7627 -201+-5241 -194+-1222 -3186+-2295 -3896+7896 -9617+5028 6389+6543 -220+-7015 -119+-9579 -8608+-5405 5064+5009 -4522+2293 -7512+5530 4573+-4816 -8242+-646 -5003+-6622 -9823+-4813 -6924+167 5848+-1347 -2063+-1386 -3825+6503 -9870+-1381 -4979+-7639 5548+4047 7245+-2115 4856+-2666 7312+3521 -9426+5606 -6075+4282 1518+-7521 7357+-2717 -2151+8741 2081+4419 -4091+6625 7389+-687 -5984+-7284 996+-1781 -2670+6015 24+7447 6343+-1004 5917+-806 -4849+5808 4516+-8904 -8742+4847 -7044+3202 -9988+-5961 4401+1151 -827+5193 -5986+3319 -6118+2845 7183+-151 -7154+-2153 3378+-37 -700+1044 8467+4178 2963+4752 -8885+-9140 -5787+-1338 -681+2416 3442+-6673 -9977+-7185 -1931+8248 -4336+8449 470+5725 -1613+7312 9991+-1625 -1789+-9374 -6921+-8685 6546+-3077 9139+-5051 -1171+5142 7539+-7906 7116+-5742 -5625+-3485 -8289+-2166 -285+1522 -1306+-6185 -7373+209 3664+4677 -1695+-2294 90+967 8422+8007 4985+6487 -850+-2949 -6393+7789 -2184+952 4108+-6556 -1370+-6489 -4162+9722 -6584+-4326 -4163+1700 2379+2619 3873+571 -6793+-5592 8116+-2907 -6373+-5442 -2464+1976 -6981+1322 3563+-5592 -4515+2798 9290+-1907 -1352+8695 -2226+912 -8071+561 -7667+9192 900+876 -7975+6989 -8603+3757 -5322+3819 -2058+-7491 -1266+-8029 8596+2924 -4452+-4260 2444+1174 -9473+-7316 -1844+199 -8352+-8032 3797+-8385 -1037+-2177 6995+-5211 8965+3853 8857+-9734 1675+1679 -5929+-4151 2674+8121 3195+9234 -5408+-1417 4147+-1162 3544+-7381 4885+-9213 5468+-1611 -8068+-4591 -9920+-5006 1060+9997 -9727+-8157 -9481+6628 -2840+-3939 1156+-4597 603+-7679 910+8050 1095+-2541 4044+-1164 -499+-4798 -966+-6932 -7693+581 -260+9648 -9343+-5288 -4951+8039 9010+-2887 2371+-9140 -9221+3009 -9534+364 7454+-2600 -7767+7124 -8167+1477 -5332+788 6660+-5436 -4340+7964 -1222+-2118 -7923+-3358 -7429+-1924 7853+-8743 -2774+-2934 7251+829 -9072+9685 969+-8395 392+-1503 -5416+-5917 9036+-2536 7396+-8899 -348+862 -8952+8742 -7914+-9428 -8565+-788 4225+-1489 -6689+1893 5245+4966 5889+-1672 9081+-6706 2198+-8091 -5366+7024 598+3075 -7845+-3606 7231+-590 6947+828 -660+-2368 7371+814 8717+795 -9552+-752 -3067+-6284 7700+-3867 -1838+122 -6312+-4728 -4553+1082 -823+8177 -2389+-6149 230+-2576 6654+-4262 9462+4493 2867+7893 9697+6660 -6157+3737 5345+-2170 5443+2379 8031+2989 5837+-598 9126+-2850 -4794+8363 9815+-7140 -3779+7430 -2161+329 7471+-2329 -1636+-5342 -9964+7626 -1674+-6878 1535+5753 -6562+7976 3737+4652 -3359+23 7342+-5586 865+4977 -4412+-5832 -90+1093 -8821+-3858 -1506+4286 3489+3522 -9756+-661 -9365+5124 9061+8824 -159+7985 7618+4830 7303+2130 4436+-5382 -7990+-7620 6983+-8282 -7435+679 8352+3073 846+5161 7451+2046 3793+1553 -3155+7287 -7737+2945 1907+6110 5044+5782 7339+8159 934+6551 -5657+-6869 4897+8275 -5536+-6276 -9661+-7410 3817+7131 -3685+7830 9294+3950 6604+6742 -9329+350 -628+9641 -6143+4450 -5099+6930 -7354+-6219 8998+2267 -9349+-6659 -448+-8123 -1905+7893 1377+4642 7631+-843 4496+5249 2162+-331 -3666+-2687 -6275+4594 -5847+-1314 -1383+4529 -5768+2005 -2577+-5690 3827+500 1506+9912 5083+2725 -4496+6902 -1594+2928 8102+-7668 7941+-4795 -3418+-7013 7583+1842 -7312+1238 -2596+9642 -696+3866 5901+-9636 -1265+-3320 564+-3956 2030+-5715 2095+-6899 5195+-4319 7065+7358 -1008+-4247 9564+4581 -9364+-8661 5174+-4146 9187+-2543 542+3846 3893+-274 676+-953 -818+7127 -3183+-5579 7546+5284 -3164+-9099 5302+7366 -6410+2905 -8314+-4747 -2603+5220 -1431+6875 6757+-7506 1574+5545 -6094+-704 -8900+-4429 8579+-9453 -3368+5043 5370+-2208 6126+-1184 -4034+6496 8868+6598 -1068+-670 -3511+9450 -2532+8187 8663+-9476 4283+3751 4977+8083 -4163+5977 -9779+8762 9203+-1723 672+178 5193+-1588 -133+7997 8484+9860 1126+2714 -8062+-6726 3802+-3923 -4650+2463 -9067+1938 -9576+-5770 3427+-2581 -2418+-4899 -4976+9724 6218+1965 1579+1787 7590+8896 -5417+-3944 1888+-3551 -6531+1051 5971+-5786 -698+8235 -7864+2754 8854+716 -3628+2786 9350+-3891 -4521+7578 2945+-5059 -8530+-2224 -5566+2745 2376+2186 -8785+2901 -8197+-1275 -3045+-6645 -5703+4878 8464+-3831 9690+3042 -6042+-5995 -2704+-2658 1625+2249 -6423+-6053 486+-4469 -8071+-7574 -1255+9959 6527+-304 -6055+-9396 9074+7752 -5697+8002 -505+3293 4944+6294 1921+-5163 -1103+498 547+8348 1140+-3530 -796+5571 -46+-9094 -2896+-439 -4523+6262 5136+4276 -596+-2481 -7046+-7366 -4739+3706 6435+-1013 8235+8981 -4818+-2065 5039+5102 -4872+3495 -2083+615 -8960+-4548 2930+-9926 7551+2099 -2146+7750 9517+-4033 -5317+-3781 9959+-5293 9720+2700 -1197+9114 -2526+4454 -7573+-5696 7765+-2722 5375+-3157 -9350+837 -931+493 1518+9216 9660+1614 -7330+5514 -667+-5731 -1711+8016 6777+-4711 9125+2172 3562+8332 7087+8639 -2914+8932 -2848+-77 -1283+-2359 -5990+5461 -5789+-4662 -7927+7563 4424+8598 -3833+1895 1366+3492 9798+7291 880+-5147 8098+3816 7328+2772 9787+-3473 -5840+-1921 6383+-835 3328+1374 8447+-9201 9528+-1400 -8659+-7896 9057+-6213 -1494+-3540 5897+7052 9131+7118 -9176+5242 -9273+-7743 -5151+3249 -9684+-3506 -6523+5157 5482+-7355 -9710+-2775 -183+7543 6994+-1633 3101+2265 -5516+-6856 8797+1066 -3885+-8109 1713+7795 2447+-7175 852+2698 5144+-9917 7597+8613 -4559+1505 -4274+-3379 -1390+-8945 5878+-5071 -569+-3213 -1160+6786 3066+2959 3161+7163 921+-576 -6947+307 -984+7614 -5636+1283 -5865+-4581 -4581+-9391 6570+-5942 -9438+-7366 -764+4415 7312+2735 -435+6882 -8428+-1099 6855+9777 1854+6851 8632+-1790 211+-358 -4774+8198 4922+-4162 -2853+9012 921+-3915 3586+-3674 -3681+890 614+5551 -8901+-3557 -495+-7408 -1379+3836 9918+9975 -3611+9999 -2151+3022 -4201+-1187 5822+-2145 -9923+9051 2098+-2610 5598+-3371 -3890+8392 7162+-5402 6197+-8774 4420+1036 2666+-4799 7222+-6106 -425+9241 -402+-1966 -6496+-4239 -9718+-3612 -3378+-4983 -9693+2448 -4016+9117 -2363+-5993 5338+-7262 -5323+-4751 -8503+-9331 -3718+9635 6130+-661 -5034+-1650 2705+7821 -5735+3045 -7575+6606 7186+-886 1439+-9189 5449+-2784 5808+-8385 -2658+-1639 1336+-9146 -3271+645 9345+5858 2736+1851 -7234+-1032 -3974+3254 2543+4423 -8656+9431 9040+-8660 7204+-4857 -3713+-3368 -8391+9194 -31+9772 6811+4652 -3260+-4228 -4087+-4861 -7067+-1987 -1108+2712 -4683+7654 -8468+-8191 4223+-7600 -646+-667 -1546+-1763 5707+6133 -644+-6020 -7008+-2729 -1078+9229 -5265+-60 8913+-7236 584+3941 -873+-2010 7802+7708 1717+4253 2349+5062 4247+8060 -8466+7665 -9824+-4845 -3021+6375 4957+-1832 4467+9906 -1461+-5051 -5298+-1284 -4094+7948 5277+4263 7616+-5582 -1777+7603 -5767+6656 -9274+2798 2485+-1920 -6242+9656 -6037+1000+-2084 6213+-4474 4495+-6515 4255+8055 2897+-6829 -2533+-8647 3604+-8714 -2822+-1563 -7169+-3761 165+-8950 -3906+4476 -4586+7058 -936+-1490 -6396+-4383 -9607+-839 -1665+7788 -1191+1818 4697+-1551 3535+-1216 -1608+7196 -810+9956 -6079+2129 9150+-4184 -7042+-6983 6857+7309 -3606+-2066 6575+-314 -4204+1030 -9460+8487 -1798+-5194 -9033+7484 -2477+3419 -4683+7429 6083+667 -7198+-2055 -486+-587 433+6216 -8666+9567 4437+5412 -8398+-5800 8118+-2887 -9773+1998 -9152+-6835 8599+2220 -8923+-3127 -289+1820 -8988+-1696 7927+-7525 8478+-9077 -4804+5659 3133+5814 -7203+6024 2407+3314 -3491+-6023 -5556+-6392 3318+330 709+-799 249+-2884 6058+-7969 -4030+7909 -5110+-6113 -1878+-9658 6791+-3251 6093+8684 5270+-5332 5709+3897 -5889+-1505 -4589+934 -7480+-4877 -8390+-7261 4818+5593 1013+9919 9923+9178 3747+8587 -3590+7208 6777+-9183 -9649+-7905 -4330+9801 6686+5204 6731+-8323 -8034+1533 -211+-9647 4373+3107 904+531 -2279+6288 5695+1816 -9059+6981 -3519+-7404 -8157+-1705 4729+-3172 -2316+3195 1931+-8233 1378+-9199 -1339+3536 -3193+4015 -9705+6351 7105+7252 6729+9383 -3157+2276 -1657+-7311 -6751+463 9091+-3829 -9663+5413 -9997+-8831 3353+479 8247+-3247 -6982+-3116 -8644+931 -3884+-3181 -1298+-1931 8461+8074 753+-8885 61+646 609+5557 8042+4489 -1934+762 1638+4763 -71+-9300 -5932+-2607 4767+-649 -7930+2857 -6772+7001 7737+4520 -3119+-4925 8914+-44 8851+1599 1958+-3732 -7679+-8975 3304+-5283 -6913+-6506 2766+2521 -4207+-8222 -7776+-4514 349+4457 -2986+-8341 8034+5244 9650+-88 5754+-2658 -141+-9200 -1954+5304 7145+-3857 -2704+1591 4027+-5780 1908+-2781 -4966+-4316 7965+4360 8615+-2895 -1622+1334 1588+3312 7643+-5243 -8314+-5669 8600+5197 -8749+3286 -3708+8249 651+893 -4436+3796 8596+-2398 2376+8118 -2861+-881 -2038+7197 -8178+-9769 -8818+-1484 5439+-2195 778+6605 -3129+2441 7192+-5544 8330+6190 -5375+1545 1035+3693 3882+-6216 -5342+5634 -6026+-373 -112+-2319 6100+-8643 -4028+-2355 723+-2681 -5983+-9071 5062+6645 -6329+-9153 2631+-4129 -7555+9065 -561+-9414 -3685+-8669 -5713+-521 544+-6067 -9063+4524 -769+2071 -6548+3752 -2229+-8811 1794+7372 8846+-879 5340+7295 8231+-6097 -6946+-9218 -344+6339 -7403+5579 -5449+5413 -8175+7513 -1535+-4757 1760+-1373 -1730+5343 6195+-4252 9620+4922 -7766+7885 -9284+-9740 3009+2008 -4106+-3221 4197+4069 -3641+947 -9737+7859 -1437+-5000 -7482+-868 -9693+4995 4131+2836 1009+2197 -7800+-9855 -6154+8420 -5506+-3802 -8091+2085 5255+-5298 -6527+-5937 -4729+-324 -4078+6401 -4108+-4458 -19+5189 -221+-9535 -6258+992 -2952+-9489 -7374+9593 -8484+-3576 -738+-6117 7807+-1550 9570+100 2201+-9103 -798+4367 -89+-7118 1114+-6142 2221+-8383 2126+809 -7505+5628 249+3376 -8359+-9826 -1791+4168 787+-5320 4297+3277 -9830+9774 -4250+2987 -6378+3238 6299+7763 5006+-4903 1721+3743 -1248+7363 -4091+-8668 8075+3930 -8977+2672 -6692+-4456 -846+3770 -9273+2399 3273+-6948 -5831+4931 56+-8451 4629+-3637 949+-7960 -5153+9657 7373+2638 -1921+9099 5613+6638 -2936+-2808 6208+5770 9160+2077 6240+5374 6008+-6673 2990+2064 5092+3332 -6696+-3743 5156+5952 -9006+3729 4997+-2161 -9440+1493 6148+-3772 2926+-9863 -9564+-2867 -3831+-8922 3682+5697 -6768+3903 -3550+-3995 -154+2300 5012+5229 -1967+533 6655+2519 -1267+7896 8339+4850 -3900+2536 3024+2891 5844+2533 -7221+-3848 -145+4071 5285+3189 -5445+1142 8616+-5595 -7543+-4938 -421+927 -2989+4911 2329+-2518 -4224+9735 -7388+3850 1800+975 -6325+9473 4496+6922 -329+7420 -4675+-3154 2979+3038 -811+-4212 4209+-7727 -5988+-8288 7708+-2711 3280+3495 1729+9363 4183+2483 -5382+2396 4778+-2830 -102+-3574 -1816+6335 -8504+-9300 6319+4392 -1539+-6727 -2748+-1441 1840+-5055 -6443+-6485 4426+6229 6380+-638 -2357+8721 4165+7614 -1823+6611 4277+4168 -7123+282 -6987+-9965 8319+-6371 8083+-9801 -4168+-5860 -1049+-7003 -2218+1941 -923+9731 151+-5275 2164+5743 3968+2171 6017+-5402 -1741+-9046 6118+-327 -989+-8141 1710+8799 -7555+3902 260+-5175 -9595+-4485 -4512+-9014 -3015+-3904 -5196+1837 -4540+4100 3994+9193 9974+-9669 7516+8394 -5073+-5566 8728+5143 9445+5987 -2650+-957 7211+-4891 -3638+-4176 -335+-430 -7383+-5963 -3620+2001 -4727+-7035 -3394+9820 7869+-3158 -7225+-4070 -5154+-6183 -9192+-8773 1031+-1701 -2511+-7892 5987+7203 9003+-5815 9405+9557 1408+6199 -9782+-8687 6375+7550 -8262+5996 4099+460 -6518+6429 -731+-1132 -1729+6908 -1139+2403 5811+-6213 8315+7012 -3346+-4709 -6172+4529 -2865+-2037 5889+5520 -6695+8551 3957+7331 9556+5573 -4806+7667 -3309+-3358 -3023+-1773 -5992+-3989 -7197+6328 6348+856 -8139+5263 -7365+6653 6254+6515 -9359+-6665 -6198+220 -7870+-6235 9842+-6403 4570+-9849 1131+3590 -4781+-271 -7233+1487 -3823+789 2219+9562 4803+-2866 4743+6659 -740+1889 9626+9227 1432+-7406 -5455+6968 -5335+-9942 2957+7634 7274+-9811 -5239+-9463 8625+6840 -9296+-9303 6940+2824 1073+-7123 8025+2086 -7377+4327 -6422+5830 -5857+9626 -2236+-4443 -756+-4611 4158+1307 47+-3146 1533+-2202 2728+1405 -8034+877 -8337+-873 -4601+-8352 -5982+3070 -9180+9267 1720+4620 7551+-8882 7845+-6785 6654+7742 2935+-7733 1020+2899 5746+-8509 -2394+2966 4289+3087 -6843+4057 -382+7978 -8521+6719 2204+-5768 -8159+-8450 813+-260 3177+10000 3938+8154 4606+3343 -5957+8308 -3182+5766 -4428+-5239 455+4433 5064+8821 -553+-484 -2992+-8251 5082+3742 9859+-7346 -7440+-5395 -6088+1617 5871+3845 5521+-1703 2594+7648 7430+-8322 -8306+-3553 1646+3823 -4603+54 -235+5772 -934+-4195 2406+1621 -1461+8289 9824+-4068 207+-2842 -5913+7482 8964+5407 -2837+-9171 24+6439 -5748+-9160 2742+7066 1501+-1366 -4822+-1168 1673+-8734 -1716+5036 -1566+-1082 9855+-2349 5163+4455 7954+-1060 -9490+-2744 5659+8757 9342+4883 2506+2365 8499+6654 3023+1283 -5155+7556 -1946+-6091 -1508+-8436 6944+4998 3498+3858 5172+-7204 5211+9580 9353+4866 -9369+-5400 -8657+7198 -3130+-1516 -7574+-2230 1570+-6525 -9971+5193 6192+-3394 -3381+-7900 3232+-2284 481+-6893 7504+-9873 7550+-1733 586+-8569 1479+-2296 -649+5566 -1713+-7161 -4815+2449 -6195+-5724 5580+8997 -2158+2899 -7516+-6815 -8343+-4108 -9910+-7346 9618+-3215 7708+3327 -6830+-308 9042+4697 4288+-5375 -3540+7666 4099+1678 -7676+3696 3164+-758 -853+-4638 2165+-6601 5611+225 -3496+-5082 -8924+5422 838+4214 -126+-5905 -7992+-7707 6225+7131 3667+4898 -1195+-8672 -7870+-7336 8747+7884 5103+3579 2676+8448 6946+-5291 -4791+-2961 -988+-7275 1746+9579 5958+1582 8264+4118 -6017+-5599 -8804+-4767 3389+-1934 8247+9190 -3258+1410 647+3916 5953+8087 895+-586 -9282+5270 68+-108 6304+5257 4137+5112 4672+2218 4581+-7147 -5011+6455 -6126+1467 5566+-4872 3772+-3633 -224+7001 1012+3344 -4340+-7135 -9742+-6495 6773+-8960 6009+6688 473+-3859 7513+-40 7520+203 -5341+-5715 9285+-8750 3963+6453 1260+7781 -3331+-3693 -3617+-543 8238+-2538 1198+9087 1052+8064 9301+-6883 7750+-3260 7422+-4277 9560+9629 9918+4400 3943+-4314 -8638+8305 7667+-7557 -5136+7379 -753+7288 7654+-4439 -4947+2246 -7671+-3054 6447+-9882 8508+-5417 73+3596 -1044+-1058 7463+3913 -417+-645 1406+2599 8002+8240 3377+4075 8413+-8464 -3006+3039 -6493+7963 -8096+-1988 -267+-8073 5037+6183 -6565+-5045 5742+-6459 9507+9004 2878+5806 -7143+-7857 -2384+6199 -191+7633 6695+-8940 637+-7237 -6361+4398 -680+6958 7160+-4389 1842+5369 -4774+2513 8374+649 765+1907 9142+-2678 -8483+1527 5237+8618 -3231+6669 -5887+5648 4291+2788 8115+5246 342+-2022 335+-3830 5871+8163 5585+-6152 -6293+-2201 -3898+4816 4442+5151 541+1959 8517+3899 -4553+-9476 -3094+139 -7873+9768 1864+4677 9112+-2593 -6523+-3394 1901+551 -810+5555 1415+-2064 8993+4904 -6650+1878 -2856+-8858 2363+-4513 -9594+9659 -286+5171 -1573+6954 113+1912 -8391+3352 -5453+1464 -8492+-8023 8668+-374 -7255+6667 2443+-3589 -1763+1449 -6435+-8529 1380+-4611 -8+625 3939+-5754 -6954+8094 7654+-6661 -538+8734 3499+8687 6063+1887 9096+9298 -1307+8124 -9080+6613 3775+-7371 3244+-9187 5211+9264 907+6062 -9292+1626 1623+9871 5276+-7115 -6965+-9667 5528+-6032 -4936+104 8699+6267 5451+440 -5487+5415 1174+-6296 4221+4964 689+-2781 5631+-4778 -1841+390 2966+6889 6464+6554 -2595+-9544 -6832+8013 -3211+9494 -1562+2342 -7440+-1356 -8277+2956 -9966+-92 8104+-2489 9918+-5204 9295+5103 4962+9809 5655+8514 4680+2341 -8221+-4764 3135+5859 -1608+-9159 -4521+-8110 3995+-7991 -2739+9462 -4133+7476 -9624+-2634 -3374+5583 -3071+1323 9469+269 8260+-8932 -8033+7979 -5353+-8782 1388+-5346 -6977+-4545 -4447+-2712 8045+-7365 5758+-1538 6998+2072 1417+622 286+4047 9576+997 -667+-9020 -4640+795 -8004+-7794 9450+-3299 -6101+-7839 -4094+-7201 -5458+-8852 -2415+-2528 -7628+14 -761+-6961 -5449+9405 4776+-2158 6983+1871 8845+1383 6030+-3294 3603+-688 -9637+7731 -9147+6364 -5116+4229 -6545+-7818 -3167+-6454 -1258+5111 5591+6960 1231+1096 6952+-162 4294+2109 5112+-4018 310+3109 -9320+8440 7635+-3118 8249+-552 -1598+9747 629+23 273+-594 972+-8184 -2758+-2078 8027+8872 -9548+-4257 -4382+3539 -9373+-5450 3673+-1070 -5742+-8342 3555+356 -7883+-8697 509+2861 -3498+4375 3740+-3858 -1960+4627 6794+1995 9160+9124 7393+1901 -3053+-4598 -8156+-5891 -3484+5317 -5654+-8693 4498+144 159+-5888 3853+6181 -8546+8205 3682+7894 -1629+-5150 -609+-2689 -5538+4291 -541+4101 -2830+-110 3+-4119 9868+-4961 -5166+-1902 -248+-9730 -609+-3756 -7937+-3228 803+-1799 -2638+-1695 -1425+5381 4830+-4595 -2112+634 -6936+9284 -2000+6765 -2472+2659 -2699+-2078 -3987+6630 -174+-6884 9103+7928 7495+277 -8561+3783 -4981+-9277 8147+1596 -901+8006 -8562+-7785 9404+6621 7478+4299 4808+-4089 -3369+-9237 -1972+-8707 -8387+-4788 3614+-5829 -7074+1841 6065+9227 -4343+-2368 -8299+-4783 -8404+7276 3014+2804 9607+1151 -5785+6290 5370+4301 1175+-1456 -8427+-8509 -8604+-3563 1076+8587 -9205+-8073 7338+-3081 -8391+5125 -5393+-159 -9777+3456 3855+3776 2467+-3072 39+3010 -1299+-5376 -3388+-1885 5086+-245 4472+9793 7262+4325 2572+-5809 9642+7121 -4141+1507 397+973 9089+814 -3176+4923 815+2839 6003+2979 -8959+-7058 8542+3312 -3497+-2577 -8503+-734 9320+-2035 -8365+-8121 5440+9219 -7032+-7107 -793+-4217 3729+-6820 -3213+-7025 -3655+1775 859+-5817 1291+-1114 -4186+9194 4651+238 -7973+-5167 3220+-1382 -8012+-8465 -2138+-8008 -8585+-7913 -2531+-8245 2665+3385 8991+2430 3552+3687 8405+-3169 -755+-2731 -7373+-7203 878+-4706 3384+7812 8997+3359 -8789+6091 793+-1665 7746+-3707 -2653+4479 481+5369 -3146+-3821 -2963+-3500 4133+-6729 -6829+5628 8466+5619 4832+-4546 7243+3586 5045+2032 -5807+-6370 -6781+-9703 -6291+6821 1038+5742 9177+-3890 -1414+3126 -9388+-4354 -2626+1789 9177+6888 -3894+-7807 4102+2820 -1898+-9613 4775+7768 -3557+-4947 -2954+-3697 6919+-2164 4443+8209 -1167+-1247 -5898+4240 4639+-4384 438+7370 -1415+3143 -6495+5778 -5007+1771 -3204+9622 -2585+-1694 -8800+-1213 -3964+-510 6918+-1023 9141+1417 1252+8872 -3088+-7135 2251+-5809 6984+-459 1488+-8469 5818+8575 -3621+8859 -9802+348 -6964+2689 7804+6611 5293+4564 1545+2857 222+1373 -2141+-2246 -2390+-1032 -6368+-1312 5318+-8934 -4532+-7687 -2330+5120 4711+1098 -6972+-610 9928+4342 -5833+9802 6026+-4996 -2110+-4343 -4181+-507 -6619+-4390 -5438+-7648 -5401+3803 -7580+7572 -1768+7948 9242+8173 2237+-3549 -9520+9456 3920+1166 -47+6687 -3905+3859 90+7310 3072+1000+6837 -6750+-7213 8741+4356 -78+1628 3515+4064 -9205+9122 -7385+-5795 4903+-1811 -9461+5925 1354+1193 5344+8500 7170+-4922 4687+-1003 -6119+-4857 3842+-751 6859+9229 1862+-2050 -2273+-4114 -1146+1354 -6171+-9887 -4602+3000 1032+-8678 5807+9970 -1094+-4921 6720+-6114 4099+501 -5323+-5516 96+-8331 -605+-9264 -1683+7363 -5845+-4078 6486+-4425 -889+4703 7648+4818 8433+6250 -6128+6157 -7124+8942 -7270+9441 -4799+4338 -4941+7226 -1273+9426 4534+-225 257+-6092 2481+9854 -4507+-3288 5424+9763 -7481+7248 6037+3597 -6018+1188 -4409+7277 -2305+2135 5987+3832 -8607+2018 -6134+2863 3625+-2026 -5925+4682 -8109+5561 -7603+-4247 -3207+9802 -6996+8591 6796+3409 -9954+369 -7449+8643 -497+-121 -4532+-5449 -4701+-9593 8118+9968 -1444+5447 -39+2650 -178+6216 -4196+5891 8752+5331 8661+2898 264+-9250 8339+7539 -5469+-475 -3398+-1952 -9137+-6634 4821+-4550 -4639+-8756 8013+3275 -853+927 7177+-7385 3700+5731 -3275+-4873 -3680+4002 -5192+-5818 -1981+-2807 3678+-531 3549+-5132 -1450+-459 1995+864 -54+1823 -8747+3380 2485+-6036 -1356+-2399 822+2773 -6296+2756 6687+-4892 -7975+4572 5911+-5094 4726+-9670 -7126+-3592 7135+2248 -1638+-8703 -8226+5762 7342+-5509 54+597 -2526+-4301 4272+-3025 -9424+-6147 9227+7635 -5056+9225 3985+7839 1867+3866 6936+-4833 155+-4735 2738+-8400 -763+-5783 6741+8231 9977+-3101 -8217+8316 9919+3750 3794+-26 900+6181 -3209+-7773 -4310+3860 -6559+3822 514+-3534 7963+-9146 -6649+-8608 -9033+-1819 -783+1558 8332+-6980 9582+-7679 -4205+-4902 6825+-2422 151+4615 -1400+3152 -8518+3549 -8242+-1646 8793+2029 -4328+-31 -1596+-7712 2098+7768 -3834+-9596 -6662+-7410 -7347+2072 9991+1907 1945+-6701 -8919+-2543 -1378+9921 1463+-8712 847+6219 -5873+-8134 1927+-747 -4316+7638 3235+8580 -1224+-9680 3767+5714 1425+-7178 2311+3171 4146+7631 -1594+3144 4735+5613 -8672+-9550 -1032+-524 5288+-2156 7578+-2331 8338+-2333 1268+6829 862+8393 3258+-645 -2200+-3580 3264+-3354 -199+-279 9864+-1048 7244+2832 4033+-4908 -664+-2454 -5385+7601 5130+-8740 2974+-9977 5018+5317 4248+-3050 -9610+6882 -6454+4455 -9384+6774 -8949+-5258 4540+2563 -2371+1409 331+-7498 -1016+2309 8106+-6068 5845+-8124 -8866+-4180 5035+8349 7156+4731 -8219+109 6783+-31 2282+1060 4538+6923 4896+2967 3491+6336 -9015+4394 1501+8445 3364+-7981 2657+-520 7875+8257 -9142+-2739 -9183+-6682 -3848+-7624 -7114+-5575 -9962+2798 -2937+3150 -8777+6083 -2450+9063 7454+330 -1813+-528 4098+-6071 788+-9311 -4369+-159 6635+-2618 -906+-6332 3446+-4409 749+-6719 3027+-6161 -6008+1849 9838+1759 7708+3978 664+-239 5424+811 -8116+-2252 -887+-1713 -6935+-4519 -5807+-4309 -7414+-7869 -9688+-1732 -5197+5803 4452+6616 -9622+-851 -3882+3282 4243+396 9752+-229 -3667+-8578 7956+-8075 -6090+7827 8874+777 6727+6395 -200+6067 -8218+-5051 4643+-223 -2178+5042 -8688+-7120 352+9205 -1607+-9179 841+-4838 532+6934 -8967+1152 6823+7162 3328+7816 -5976+-6286 2101+-6622 615+1690 -6026+-1072 -9543+6916 312+-6647 -5979+-1067 2360+-7200 -5686+-1307 -3338+8977 -8573+2656 -9741+-4554 -8864+-8845 7043+7037 -8999+-8472 1308+2673 -8839+7070 -1089+-9082 -2670+3295 2902+-8133 6039+9967 5322+-7537 -4359+-2188 -6350+986 -9805+4170 9100+3494 -9781+8764 4329+1198 9068+2144 9452+-328 -7477+-8785 675+5276 -4615+-2581 7847+5918 8453+-7105 5863+-3984 -6397+2010 -4504+5317 -2854+2808 1275+7555 5194+-8365 -5977+-6991 -375+3990 4692+-7338 8474+-5732 2526+-5247 -4723+8210 9739+1504 -1892+-9308 -7815+8289 -7049+4544 -4287+-140 6724+2613 -4433+3535 2747+6361 1716+-8762 -9342+4352 -9002+-3217 2919+-278 8872+7450 -9335+4146 4836+-495 -1620+8389 213+-9752 -8724+1679 131+-4733 1481+-5499 -1277+5567 6464+-1749 -5621+1880 -2648+588 -4089+9010 9776+-7034 -7861+3086 6146+-4624 -3451+277 -9881+763 -2557+-3562 8678+7083 3460+8211 -9929+-4463 6700+-5505 336+1617 -7440+-8406 -3698+3575 -8767+-6101 -7001+2843 5938+159 -7094+-7665 -7737+6296 8631+-4014 -256+2908 7285+-6114 984+-6708 6468+4171 7951+-5107 -326+-4500 1079+-3932 -3332+708 -7044+-452 6864+-4410 5767+6086 -5558+9266 865+5226 -7005+9485 7988+-3251 673+-6391 1708+6906 -2249+-2026 4317+-1688 5270+-4537 -7426+-2191 -5472+8670 -223+-6444 6665+-9432 5204+-3075 6596+7508 -7716+-3703 -4584+-6290 5980+8389 5628+-5384 5806+-9462 7158+-7412 -6016+-1450 4498+-161 -409+4350 -7807+-4756 -4172+9285 5954+-2856 -1565+8052 -2419+1649 -8067+3345 2293+-7884 -5483+444 5556+-9301 -4357+6341 -3045+-9903 4717+4672 5560+-4543 5886+-2794 -7570+-5840 6732+1265 3872+4418 -2764+-2325 4126+-5257 8832+734 1836+-9243 -7557+5563 6419+-2113 -3267+9866 7691+8724 515+-2645 9841+3432 -7521+-6234 8889+-1663 -8881+-8563 1469+-737 -6183+9677 -9845+564 7027+4157 3340+-2620 9160+-2349 5075+-9441 2609+-7248 2722+6609 -449+-1938 2135+-5093 586+-6940 -2978+5183 2302+-2432 9345+1163 3330+4584 1782+-564 3283+-4790 3077+5124 -24+-6302 3873+-3841 6656+-9791 2722+9720 -7336+6401 5037+-5752 -721+-6544 5257+9643 -6216+9221 -2920+3547 7713+-286 4388+-8633 -9658+-4457 -4993+-5680 -4438+-5758 -8048+-1176 -9245+-4806 1164+-8746 6612+5058 -3632+4871 7320+-8710 -819+-3340 8090+4705 4913+5952 -3530+-2448 4797+-8064 -9858+-9151 6692+6688 2918+6368 100+-2548 -1204+-1918 -628+362 6129+-1755 -6793+5179 -6589+7692 1970+4061 -2222+-9582 3597+-2991 6321+-6875 4033+7489 -6676+886 1004+-960 8787+-9998 -4814+3891 -674+5215 -9582+1816 9545+3012 9008+-5916 4607+-9932 -8671+647 -9669+9241 7919+-130 7314+-7040 -7955+-7996 -5762+-2959 -1370+-4922 3105+-5460 -8405+3186 4997+5272 -6478+-9244 -899+9567 1658+8016 -8330+-8576 5376+2226 2579+1743 -1669+-339 990+-7142 -5156+1898 5757+6089 -4350+-6124 -9310+9791 -7564+-1539 -7113+8892 -9808+5983 -4218+-6454 -254+5786 -5651+-1009 8477+-2340 -2558+3630 -5814+5931 8658+9668 -1494+-1800 -8796+-1185 -5441+-4387 -7709+2798 -9574+5775 -9702+6156 -6082+7694 3131+-6971 728+9435 -6876+1261 -7369+-6240 -6563+8233 5296+-4905 8282+-3520 2765+-9102 1205+6223 7241+3808 -311+7104 -5927+1333 -2469+-7701 -5969+6850 6795+6891 -671+-8283 -5814+-6839 5372+-5377 2097+6140 -6098+8522 -907+-246 -3774+3484 6229+8029 3608+-3704 -985+-3502 724+9580 7661+7883 5849+-3145 -3846+-3556 9089+-700 4391+-6267 2123+-2526 -9759+-4996 6452+9481 -5871+-2288 3884+277 -9340+-8104 -2376+9064 4767+7349 9145+-1883 2770+8967 5860+8602 -1791+-5342 8997+-9632 1386+-1032 9422+9732 1832+-9493 141+4093 6012+-3024 -6498+-840 -7251+2329 8652+8561 9313+3757 6769+1621 4634+9205 7743+2970 -4746+-5311 9355+-1390 2765+168 4035+-2395 1997+6910 4998+-4507 937+9163 6474+2221 7298+1488 -3446+7033 674+-7348 -1258+-6945 9662+-9209 -4536+9793 -5638+5930 3632+-432 5307+-5892 4489+-2981 -1700+3105 4796+-9275 3565+8223 6709+-2446 -380+552 183+6741 -7231+-410 8173+5629 -6534+7436 5770+-4957 4579+2005 -9488+-4388 -2284+1258 5556+2576 -6379+9328 4564+-6239 4554+-2230 -8641+-251 5345+2586 5976+-9802 11+-7342 7082+-3107 -5397+290 -5613+-2813 -4630+2310 8297+9875 -1536+-4330 3538+-8372 3663+-6722 1235+-9509 -6645+-7806 -4429+7089 5997+-272 -1358+-9555 3631+-5377 -686+-4527 -1020+2061 -5220+-2404 624+9764 5366+-5591 6161+1112 -2115+-3655 8003+1855 2295+543 -3361+9105 -1666+7790 2118+4287 6532+-6724 5794+223 -9715+-4403 -4950+6461 4007+-1876 7477+-6394 -4393+-5504 -7120+7208 -9287+9991 41+7637 5067+425 7628+-4098 3803+9848 1271+-5408 -985+9117 -5731+7141 1868+-5120 -4231+-5722 -2953+-4582 -5599+-7592 8304+-3798 1782+-7299 5614+-6912 6069+-922 -4605+6457 -8105+-6616 697+9565 3207+8234 -7824+-2690 5899+-5425 -2955+4226 4686+-155 6531+3474 -7247+-4308 -3707+-9662 -6029+5920 -3733+-4098 7858+1672 2478+-7871 416+4038 -5674+-6894 3144+-4015 6034+-7615 4750+2101 5497+9312 2475+2208 3373+-9998 -1444+3226 6099+4616 9664+3257 -900+-488 1486+7601 4752+4180 -6309+788 -7276+3692 3021+-9733 -9591+9676 2090+7057 3328+8494 6524+4005 7006+-1891 -6660+-921 -5170+-2835 5760+1158 658+6175 -8877+-5374 5374+3706 -5366+5669 -5669+8856 6162+4734 4171+-2881 -1208+1664 3952+-7856 2551+-938 -3601+4448 -9842+-2355 -238+780 -1238+-8907 -9691+6129 267+-4022 4961+-6044 -4455+6999 -8034+-4110 8364+-9521 -9597+9049 -8486+1723 -6193+5662 -1570+-5761 -6138+2557 9870+5493 -9018+-3010 -1090+2780 9625+-540 2309+-7687 -1331+9645 -4453+-7059 5012+-1431 -4532+-8011 8958+-6681 -3286+9890 2471+2101 -1847+-424 -9242+390 -9747+-5308 -4596+-8077 6787+1387 -117+2313 3375+2958 8663+-283 2685+-7216 -9826+-2847 -4028+9155 -7529+-3904 -4304+5399 8779+1780 -4431+2921 6168+7521 -4762+4193 2600+3981 -5295+9042 -5519+-6829 -9393+-7794 -6468+-297 9725+-2739 -4043+-2554 -167+3189 -225+-4067 2448+2079 8969+3017 -2724+3567 2260+8279 909+-3737 -5835+-7003 -8333+5375 151+-7620 1927+4127 5647+3651 3061+-4764 1751+-1994 -3643+-8215 8062+-5603 -5668+-9038 4865+5640 6327+4542 5687+3889 -9951+1605 1433+-9460 2694+-3704 4517+-9208 1246+-3465 1797+7718 6964+-3259 6842+-8318 -6891+3384 -1856+8818 -8476+-8438 -5708+5181 -2862+-213 853+5040 -3349+-4765 -7607+-758 6200+7364 1481+864 -2102+-7287 3221+-7564 867+-2003 9652+2425 -1336+-4530 -7731+-7842 5669+-6546 6935+4428 -1163+-1316 9071+5795 6331+-6731 3159+-286 2137+-7729 -9424+8383 9754+-6796 3796+-29 1511+-1996 2362+4439 -9930+701 -5131+-190 2925+-5330 -9588+4838 7467+-9290 -2606+7283 9779+8432 -741+-7777 -5318+-4511 -1156+-8091 2231+3007 -6737+-4276 -2288+9416 -9134+-3132 -1759+3759 -201+-1070 -1146+-4234 1850+6353 138+-8533 -6677+-6511 4173+2405 -8331+323 4832+-3296 6205+-1678 1576+-4495 83+3141 -7892+-627 973+-7647 -8625+5335 616+4186 -8749+6880 -6691+-5151 9055+-4570 -9864+-2358 -3079+-3069 -695+6228 9969+-9952 9745+7067 -4517+1579 -6264+3579 -546+3278 -4877+-482 3811+-8101 4503+-4518 9341+4187 5861+-7194 -1952+-1285 2346+-9652 1736+9065 4513+-3113 2600+-8475 9828+-8121 -4490+-5799 186+-1151 -4604+-198 7754+-4451 -7429+541 9386+-6356 -6430+8703 -90+-9159 -4351+726 9831+-4931 -1566+909 9908+-6124 7927+8340 8990+-3899 -1646+-3717 1678+-179 -8011+-9125 -2466+-6781 -2872+692 -131+-5767 7927+7186 -3881+-5541 -1710+-7448 -3409+5238 379+-2036 -8774+-2999 -4047+-6593 3641+6769 8745+-8454 7054+-8970 3042+8402 -1595+-1099 -970+5205 9858+-7710 1917+-6489 -8332+4871 -7840+8542 3103+8838 -4750+-4811 3735+-7420 4344+-8886 -2568+2176 9769+5311 5283+3562 5894+-3946 7400+-3849 -5120+5630 -1990+-2628 7258+5931 662+1184 889+-447 -1918+5496 3656+-1411 4923+-4026 1849+3538 204+-305 2738+6862 -1613+-4062 -6706+8607 -9762+-8191 -4178+-7311 9220+-5508 897+-1324 7020+-7705 2820+9999 -736+-8325 553+937 1068+-2636 -3732+4901 -2389+-1123 -580+-386 7922+6979 -4896+-6972 4616+4126 7670+3418 -2709+913 793+-9392 -4425+-844 -4569+-8293 -3994+-5728 165+-5599 5513+-8249 -4620+-3656 3224+-4658 9669+-1211 -9448+942 -3506+-5027 2139+2917 9283+9784 2340+5981 -6650+-694 9063+5892 -6158+-7057 1673+1115 1546+894 5986+-3305 8613+-9597 9462+-7581 -7561+4818 -8551+9595 -3135+61 9501+8525 6295+7815 -6334+783 -8866+-7489 7887+-1399 -5375+-3301 8084+-5542 6354+3793 -3083+-1546 -7383+7270 4414+5488 -1259+9949 -321+-8655 -5334+6946 -9606+-4757 -1275+6082 -5353+-5907 3885+-5103 -4645+340 7828+-734 5404+9034 -5801+1000+9618 1251+7508 5943+-5689 -8928+1952 8747+1660 -4793+-2540 -856+-2792 -3116+1580 -2177+7463 -9558+-7538 7860+4050 -1104+7057 -243+2695 -7096+964 -4958+9404 -9295+8338 2870+669 8460+-2369 -1259+2843 162+5186 4257+-9732 4646+521 1360+3534 -3393+5688 5073+1114 1094+6049 -9956+-2841 6783+4501 7881+-2859 4706+-2458 3067+7257 -587+2768 -4987+2783 -3062+-9997 7195+-4012 5984+-6203 4434+6949 6231+5809 -6291+3368 -3678+-2162 4748+-7693 -5156+2549 -403+1167 -1467+-6369 1163+7879 2162+4303 -9275+-3372 7986+7124 -4631+6104 885+-6117 4092+-3195 -4713+4919 951+2261 6192+-9919 1346+-7759 4534+6750 -2341+9777 6486+-1691 -7044+-6335 -1247+-9872 -9893+3056 -5832+1803 5560+-3276 -3970+-3671 9979+4894 -1508+-2503 4881+-9743 -7061+-4362 3659+-1765 -8169+-45 -1864+-3840 -7647+-553 -8092+7594 -6843+-524 -6122+6867 -3382+-4177 -4056+9172 -954+-4323 5597+9007 -4726+1002 1279+-8449 -8724+9671 -3814+-5201 3461+4738 -2282+-3432 9111+5540 7336+3629 -7819+5155 -259+-799 6216+2027 5788+6011 -2896+-7855 -5355+575 -9368+-7032 -7063+-2553 -8108+1222 -6743+-86 -9024+8180 5886+-7440 -4735+9831 -3439+-7412 -7027+-8443 7720+-9517 -596+1195 3318+8705 41+455 653+2036 -435+-2805 -3728+-7210 -8422+2166 -7902+-5859 -5628+-3097 8434+-6861 6624+3853 -1284+7683 5594+-6067 -1368+1838 -464+135 -6624+5429 6467+-5981 -13+4976 -7728+-4933 -2514+-7422 -4869+-9438 -5149+-5201 -5061+5701 4708+1414 -2897+-989 5868+4477 3594+5699 2682+5932 7911+1263 4220+-5539 8380+-9214 8743+-6646 -8497+2122 -3744+-4189 1895+-9016 1082+-4645 422+737 -2646+3571 -7856+4383 -2230+-7563 1212+-5966 -8577+-9833 114+-3862 -8096+5991 -7412+-1631 1917+3008 -7844+-9782 3185+-7230 -2733+6627 -3325+-802 2790+-1559 4208+5337 -3524+4099 -5321+-2291 6186+6410 -8500+8407 3026+7883 9563+-1746 1994+4208 169+956 -2556+4920 5313+-7852 2592+3212 6315+-5418 7984+-292 3409+5757 -7177+-2772 -4978+3740 7210+333 -473+2218 5671+-762 1711+-5673 3893+164 -2196+-6586 -6723+-4583 3840+9067 -3450+807 621+-7690 -2695+-2850 9053+-7090 -1399+1905 -1550+6706 -5282+2668 -3589+465 6247+9340 9372+-7658 6138+5485 6797+-6816 -3015+7456 -5114+-9713 -6178+8014 -179+-7001 -1599+9554 9523+686 -7030+3329 3899+-6925 7504+-4644 -593+7787 -7971+-5591 2857+8724 8000+-7281 8856+3865 6931+3694 6653+-6824 5041+-8456 -1400+6784 -8059+-7973 4284+3117 -9031+5851 5903+-5618 8589+-8693 -8061+-486 -7629+3012 -711+7860 -1133+-2100 -7038+-174 -4555+-4232 -2340+-4609 804+9693 -1953+1383 -1131+-6024 1876+3418 -4014+3902 5806+-9965 4258+-1763 1764+-8442 -9209+-6816 -6595+-6585 -9498+-7178 -8985+-1456 -7182+9477 -9533+-4596 -9501+7565 -8004+1886 -3670+-1526 -6688+-4180 -6854+5892 8773+1493 -6944+5694 -9803+7172 1930+-6607 1362+6721 -948+-1726 -6142+-2026 -3335+-9704 3836+2048 -9736+-1836 965+-7310 148+5282 -7568+-1806 -7927+-7240 96+3733 -7886+7020 924+2735 6+6890 4528+-8602 6976+7448 -1563+-2718 -9519+2713 6940+-46 5906+-3321 -3145+-3724 4863+-9219 -3687+-9231 2316+-6661 -2675+2828 -2476+-2219 -7113+-1623 975+1928 -5043+3632 6775+-8768 7620+-9375 -5659+5672 -894+-1122 -5334+6395 -2980+8502 4136+-2527 5306+684 9929+-5787 1079+2069 -2174+-2804 -2139+763 7795+-1482 5797+-1429 -5944+-9530 -9865+4907 -6338+-1719 -4349+-8668 6721+959 5085+9016 1267+-2172 -7429+1647 728+-1418 -4451+8186 -590+5579 -6182+-3764 -5241+4429 8361+4258 6215+-8032 263+396 -8026+-897 7114+2442 7861+-9505 8138+-2680 8932+3193 -1557+976 6578+-4607 8337+-3846 222+6840 -6290+-3545 -5719+8010 687+-9514 342+-3367 -5991+-5600 -3087+-1663 7881+-9841 9028+3503 2827+-6079 2750+3042 5511+6277 6384+-1969 472+4059 9996+-6038 -364+-6087 2442+2578 -656+2729 6093+-1363 6482+1058 -2080+4650 -6954+3123 1092+1134 -5075+4307 4458+-8003 -5141+4355 -4298+6310 -4390+1376 -7104+-4560 1218+5473 -3759+-5856 -8063+-2285 -7003+5857 7204+2861 -5980+9048 -9460+-9162 -8058+-8413 3324+2966 -2531+-472 3468+-9260 4150+-9769 3368+3526 -3240+-3388 -8262+8495 -3707+-698 3101+2487 -506+2228 -6692+3618 -9318+-3642 4539+-8470 -5278+-7661 646+1330 -31+-4659 -1455+6830 -4144+5728 9207+776 1260+-8437 9866+3995 9439+-6840 1677+8151 -8980+-4034 -3118+807 6397+-3013 2980+-2579 -5798+-3674 7876+817 5278+-1642 -3196+6101 -2803+-5560 5938+9712 4421+-6590 422+-8791 5180+-4714 -8660+-8519 3832+-6562 1010+7412 2212+-2940 -1022+-4309 -9322+7177 4433+6337 7575+-1676 -4176+6620 5655+6924 2144+-4619 -9360+-7535 -9430+-6683 5798+4291 -5410+932 -4542+9724 3570+-9839 2980+-13 5473+-2678 -4521+942 -3566+3499 -2832+-4154 -5031+-5580 -3622+8509 2417+7056 -3065+5072 1258+-4466 3264+4204 -3028+-4445 9785+6047 -4480+4768 -8876+-390 -1147+8640 7353+3400 -5110+1771 -2572+3550 5922+4439 -7059+-7323 -3018+-4728 8540+-3402 -2714+-8420 8595+-6136 4403+-1003 -2117+-5624 -464+-8895 6892+8375 -3433+7977 8885+-4177 4561+3575 -88+7298 -7889+9461 2838+3624 332+6303 -9249+1451 -6180+-8656 9188+6894 3294+6959 -9281+7829 6786+1941 -9105+2025 -8876+-7455 -8437+6578 3935+6365 -9578+2668 -7660+-4881 -1069+-4426 493+-9916 -3875+-242 -9515+7212 3381+-2974 -5201+5615 1103+8077 -3358+-2174 -4557+5828 3058+5998 1104+-1997 4536+-2627 4980+-2541 8804+-4536 -569+-592 -374+9921 -1918+-8017 -973+-1263 5749+-6589 -3159+-7971 8193+-4113 9763+-3217 3851+2673 9058+4169 -2506+-9981 6783+-9342 -4806+7665 5198+-3451 -7296+3674 -5196+7560 -7626+-6753 -5005+216 -3391+2622 8127+-8726 -6008+-4907 -7503+-7942 8190+-2077 -5156+-3334 -3913+-8975 4914+5300 -4252+-4323 1279+8983 -5676+-266 -8200+5796 4695+-2681 5107+1437 9816+7574 9038+9623 -8237+-3996 -3387+-1183 9556+3499 -6226+-4536 7833+-9796 -824+-3793 7338+9291 -8013+-3362 -8217+3357 -7157+-3605 6977+-5153 -1235+-7757 1974+-6967 -1002+-3578 4660+-6848 -2795+-1028 5222+8029 1322+7403 -9925+1760 -4782+-4798 -9606+3547 -2017+7522 1542+6922 -501+-2731 -2243+-1667 -8546+4501 8418+-870 554+-2810 4773+6309 8675+-5224 -6611+4113 1596+2494 -7530+-236 1379+-3778 -9731+6826 -8949+1479 3617+9046 -4101+-5131 -1884+1110 -9378+-8571 -1017+-9946 2030+1501 7866+4848 -2819+-590 1718+-9907 -8344+8890 -2895+3971 -8470+-5394 6976+-7997 -2122+-2490 4584+3520 -3782+4308 760+-2388 -567+7170 -8812+8425 8866+2536 9858+-666 4667+744 -5655+-8676 -1280+-49 2008+8966 6173+7485 7884+7624 -747+-5769 2755+5162 -1043+7876 696+8757 -3233+-680 2753+-6394 -3367+-4407 -4266+-9138 -7633+-4825 2426+-9889 5635+-5911 -3261+-5503 -8892+5142 -9627+-8946 -4725+2143 -174+2235 8998+1736 1156+-3393 -7327+5604 4012+-4783 -9709+7621 -4351+6897 -9376+-6667 -7978+-8811 -3042+-8928 2618+1882 1981+-2724 7754+2307 -5521+5034 29+6021 -6691+1895 3913+-4598 -2251+-1393 8477+7543 -4469+2573 -5273+-7673 -7549+8703 7439+7520 7347+-6219 -3753+-1554 3171+-2590 7076+-9351 797+7364 9229+-7051 6452+9714 800+5981 3992+8498 -7114+5148 6637+4592 -1982+5406 6447+-2883 2291+7884 400+3938 3291+4738 6155+7507 2739+6998 -1670+-2529 -2068+2592 -1883+1097 9893+-5074 7742+7998 1564+9149 1618+3011 -8802+-8945 8155+415 8196+339 4042+-66 -9206+-400 -3741+-3726 744+-5983 347+-1363 4217+-3748 -9962+1942 267+-2417 -2071+7599 -1399+540 1425+4178 5064+4394 -8277+-5747 389+-2349 -7207+7859 -43+4256 3189+-7646 -9301+7201 8217+-4958 -9649+2017 5177+5919 2319+-5624 3594+5108 -469+-1589 -2216+-9961 -611+2757 -9260+-2035 -8920+4604 -2135+7197 -9274+-1660 -2350+-6265 219+5174 2133+-3050 8191+207 -6981+-3847 1205+-8686 7571+-4090 1488+-7447 4217+8639 6326+-9190 4714+-4306 5919+4821 -1511+-5163 5013+4307 8857+3777 -2222+2280 -4373+9579 3152+7976 -5574+7967 7544+1731 3833+-7962 -6165+6779 -3299+-56 -2704+-8313 5576+3090 -9076+2650 7575+-5853 -8354+-2598 2253+-5621 6172+4378 -8984+2493 1794+4818 4998+131 8347+2510 8876+-8642 -472+1980 3757+7737 817+-7476 4587+1714 -7611+-6907 9638+4573 9913+-7911 -4605+-3709 7299+5059 -1571+-5773 4423+-9617 2892+-6241 -6388+9320 -995+4319 7608+9136 3926+2805 -9956+-9196 -376+252 -2691+1443 7165+-3877 -5856+3213 6705+-6399 2421+5377 -8233+-1579 5115+-3487 4920+-3904 -3442+6442 1059+6474 4544+4843 -3877+3276 8121+5521 -5380+3547 -363+-7311 1030+6543 -5361+394 8116+7276 5566+-3972 -7541+3320 5084+-9681 -5867+-8243 2421+-7414 7756+717 -2520+-7472 -8080+-9118 1873+7612 6986+5362 2518+-4183 -2958+-2217 8097+1919 -4058+-8071 -9465+4068 5272+-3384 -9490+-7998 8924+-3256 -8083+3357 4949+1836 9425+-3327 7613+-9490 -6495+6323 5316+311 3524+-4033 -9128+1897 -9042+6307 -841+-3519 6127+8214 -8719+-687 -2503+-7566 1788+806 -2951+3994 -2968+6020 -5999+982 8717+9348 2903+-4127 -7947+-8729 -1840+3509 3512+6365 2457+975 -8940+1903 -1495+-2303 -7688+5056 9194+-3243 5745+4286 4387+6073 -2094+-1097 -2358+9139 -9672+-1590 -8886+-7460 -6415+-5061 3515+-9508 -6485+9448 8145+-8250 1921+-4077 -7824+-354 -9349+2810 5699+-2232 -7992+8033 -7293+934 7064+4524 3853+8231 -1751+4653 5024+3366 5666+-7274 1458+-9660 -8423+-2523 9909+7121 -8854+4342 1751+2423 4442+7394 -6146+9902 -5156+-1037 -2709+7331 -4546+-9150 -5528+5006 -8099+-459 -4341+-6870 3186+9541 -9594+3095 8817+-5579 8904+3461 8835+1613 -6608+-6970 2398+4072 -3756+826 4303+8358 -5134+-1580 2144+3619 2443+-7656 9198+2906 7776+-5079 9477+3881 -7866+4101 2282+5557 -7340+2092 -8609+-64 -8178+7547 -4309+-9466 -3432+-2999 2636+-2285 5015+753 5688+-2585 -9815+-2840 -6036+-8085 3091+7397 7008+-6336 -1209+-5613 -5176+-7852 4515+-7146 -9167+7327 9236+-7973 8861+8766 -4736+9242 4658+7788 1991+6499 774+3556 9494+-8357 5164+3688 -8170+-3573 -5836+7439 -4871+543 -6789+4861 8515+5068 4069+789 -9044+-1969 -540+2497 -7752+4621 -4346+-7021 5589+-5440 6348+-6638 -6981+8124 7334+-2705 5859+3481 5551+-5085 3937+-3328 8106+5009 2211+-8068 -6294+3938 9463+275 5424+-1686 3650+-6347 -3218+3151 7370+-7303 2582+-5262 3792+-3888 -7461+-1153 542+298 1672+-1432 -2307+3344 8498+-6555 2960+-5051 3720+4935 4149+6446 8294+9427 4958+3439 6485+-5126 -5804+9935 -1716+5840 2017+-3771 -9218+-5223 3618+8205 4613+4089 -7382+880 6557+-4280 8214+3088 6873+-7665 -683+-9828 6360+9026 3317+-8472 -3638+1118 -5919+-1080 5108+-8780 -873+-2779 5567+2420 584+6060 -8490+3226 -4378+-9575 -4990+7859 -56+-4115 -3712+-8682 -2651+-9695 -4034+6526 1829+-1584 -3284+-6104 8613+7745 2085+6564 -4432+8295 6515+-8480 3547+4325 9233+6021 7970+5549 -1762+4927 -1189+-2840 5659+1106 -28+2698 4390+-7037 -4242+3283 -7356+-1346 2586+7629 1376+-6863 4430+1686 7171+4138 -4793+-2893 5417+-1745 -1807+913 8907+-3624 -4261+-2883 2547+7160 4072+-8983 7307+7187 -1329+2398 -8566+8779 5134+1926 -6425+1923 -7481+-364 6920+7437 5672+9591 -7983+-3081 7480+-7866 8312+-1824 4925+-3277 9525+-3201 -6165+-3511 -8781+1679 9322+-254 9184+5191 1853+-294 -6439+-4395 -286+897 7512+-4598 9818+-2654 8924+7984 3668+-1717 -6373+-1558 -9924+7872 -1965+9460 6512+3810 -904+6529 -9062+6411 -8742+-5385 -2379+5218 -4338+-7089 -3540+8847 2894+-5182 -7852+9100 3062+-5607 5617+724 3105+-2739 1942+-135 7260+-8791 -1481+-1229 8975+7032 -1218+1721 7085+-6583 112+-940 6764+9018 -5716+-6790 8559+9853 1944+4543 -3413+4588 -7656+1790 -4384+-3061 287+-8312 -9591+-6279 -8204+7244 -5715+-8293 4501+9486 -4473+6909 9864+-9383 5193+-5639 -129+4756 826+1000+-7807 2452+-6646 1585+-6833 8736+4249 5561+2362 7504+-6981 3358+-9901 -4818+4154 8122+3547 -280+418 8792+-9253 7049+6546 3908+-5159 -6955+-1187 2692+-8013 -5412+-535 1422+-4489 1659+2922 5122+6492 -5407+-8348 -4839+7307 -9149+-8788 -461+-1027 8203+4812 829+8407 -169+-664 -6718+-9251 9227+3821 1336+3847 5111+7401 -5311+6536 9081+2419 -1495+8602 -4721+7858 3397+-5412 -7016+3494 -8237+-5578 8607+-9981 -5349+-6674 301+1969 -1760+-5947 1327+6057 -3298+-502 -8070+-185 -6787+-2090 7382+-5665 -3488+542 3314+839 -5712+2205 3166+-8572 1195+-5198 4665+-4573 5971+7336 -5140+-5682 -6809+8104 5259+9762 7050+9640 -4889+4276 2243+-4882 -1037+320 -480+-3940 895+-3294 289+-4062 7414+4773 -5767+9380 6189+9413 -7467+2210 -7729+-6686 -7950+9204 -1428+-8739 6841+8829 8229+-7992 -5244+-9934 3377+-2108 8105+-2914 5254+3348 2579+1054 862+-1120 3810+-2345 7924+-2677 1647+-931 -3235+-2149 7800+740 5890+-3574 -5738+-1733 6710+-7876 7089+5555 4858+-6471 5954+6560 2050+8569 2405+-3641 5640+5018 -8406+5771 -6016+-7302 6401+9919 -7738+-1881 5297+7244 -7918+1145 9920+6780 5560+-9426 5176+1536 4920+-4105 -3321+4621 3904+7126 -9488+-9736 367+7169 5406+-5459 6599+647 1982+5871 3012+8011 -9283+-7631 4731+869 -696+-7712 -437+-5123 1195+-9316 1935+-2926 -2143+-1904 3098+-7887 -9379+-8050 -7038+-7983 -2058+-342 -8163+-9930 9479+581 4180+-2987 2613+4703 -3552+-9024 2679+-5593 8421+-2665 9139+-9303 2202+-3128 -2809+-1244 8664+6880 -7469+-8243 -9227+390 -1549+6208 5223+-7234 -3549+5741 9181+7608 9562+4031 -93+1164 -126+-3030 7062+2542 -9334+1245 1465+-9537 7107+-386 -235+6381 7782+-1087 -3412+-6841 -8481+4292 -8888+4472 8729+4632 8029+-9463 6367+435 6811+8880 5931+3526 4775+-5246 178+2887 -2507+-9962 4713+1648 51+-4127 8572+3905 -3119+8643 -714+-2264 -8203+2051 -2527+-1123 -1884+7637 4918+-6724 -4374+3670 -2940+9150 5852+-3841 -3803+-8301 -1237+7695 2175+5244 -4052+-7922 -9221+-4081 -8197+-830 -6131+9263 7364+9132 7895+-5634 9119+-2189 -8205+2156 5352+-62 -563+1867 4700+3317 -5430+4240 -817+-475 9173+3874 -6488+2240 -6552+5436 -2881+-8990 2605+-207 7095+-2155 5350+-1564 -7872+8092 8129+-3393 3018+-6355 9616+-2397 -8283+-2060 8291+9088 -7169+2718 -3553+-9138 -9426+3733 6543+-9500 -5024+8770 4236+-1031 -8328+1179 9543+8595 9537+8161 3183+9219 -6330+-6857 4374+6617 -3999+3176 -6736+7241 4515+292 -8982+6348 6902+-6530 1347+7570 7257+1683 -4524+-4281 6246+-9805 -3419+9880 2180+-5140 7347+-4921 -8554+-9699 -2289+-1992 2955+160 1200+3993 -9040+847 -2605+1202 1017+9991 -9009+8222 -6692+5588 5686+-7851 -8502+-3258 -3348+7719 1549+-4496 -3612+-8398 -45+-8844 -5031+6604 -8720+-1742 9342+-1916 -4027+-5152 3799+-7049 5988+-817 2124+-2199 7495+2390 -7669+9790 -3310+-26 9296+-3220 4116+7590 5576+-7124 -8738+-2522 -5549+-4990 3869+9045 -6969+-6340 8853+3126 1845+-6889 1318+4129 -5961+5403 8650+5131 6851+-7154 -1848+-1029 5935+-1635 -2849+6178 -9006+4919 -9812+4964 8450+-9015 -5476+6093 -1852+-8617 4772+5293 3501+-3411 5675+9725 -7521+-8592 -5630+-2578 -2285+-5469 -3459+-7469 -9751+1947 -5642+-5762 -3320+4839 5163+-3109 -7067+-4320 1517+-1791 -5266+-3238 3836+-1765 8061+2855 7948+9987 191+-5447 -8970+2896 -9487+-1546 8019+3744 5118+-1523 5033+9725 9221+-4373 -5822+-1379 1881+-5593 6110+1372 9041+-560 -7742+3993 7991+-7010 -8621+-8493 240+9946 -6850+2140 -2860+8734 -3791+4477 -6847+-5156 -8539+-1067 -6915+6510 4971+2851 -9411+-7811 -4939+5925 2999+-4220 -4203+5138 2694+4857 -3088+-5739 150+3687 -7515+-4685 261+-4271 4554+1197 -3530+2212 350+-3879 8203+-927 -7483+2370 -540+-9503 4010+-9955 -6888+4988 8402+-3080 3741+-8477 5958+-5233 2630+7443 1032+-6366 4846+5012 -5659+-395 -2251+-3339 -4255+-127 -2581+-3421 4249+-873 2627+4022 5564+3442 9715+-9724 1543+8993 -8335+-9511 -4802+9245 8664+-3948 8891+-6585 -8875+-750 -7200+5683 6908+2813 972+7448 8070+-3011 -6586+69 -1839+24 -7642+1495 358+8307 2339+8437 1875+5428 44+8230 -3744+3508 1294+-8842 -4090+8181 7884+8685 8930+-7032 7167+7532 -5701+152 -2336+-4186 -5027+-8661 -8952+-5426 -2013+-2784 4811+7049 -9821+9802 -1199+-3700 -1097+-3400 4401+8170 -551+-1112 -4972+9396 7132+4759 -5010+-6572 5754+-4671 2291+-1721 -8736+-553 -6696+4232 -5953+3189 4394+-7669 -3065+8638 7883+-362 -4287+-6703 -8801+-6886 -3214+-9253 -2205+-8798 7878+-7328 7471+-2467 -6085+-2574 -5948+-6306 -6349+7547 1098+-2082 -7758+4795 -7140+-5988 1280+-702 6703+9981 -2576+-1039 -8597+3368 -6365+-4532 5168+-405 9712+6770 8522+-9671 818+-9891 -4984+-727 -1216+5722 3008+3855 -8748+-4775 -3795+-1993 -3760+-3566 -6108+-5386 660+-163 -3879+-5326 -1718+5002 -3291+4373 -1772+6993 -9636+1810 9522+8679 -7822+-9136 8078+4169 -6457+1385 2033+6141 9922+6773 -7112+1362 4900+9781 -3825+9314 7942+-4930 -5149+-4318 -7642+-2015 -3196+547 293+9971 521+-6476 3196+-1442 7711+-9423 6467+-9979 -6843+1994 -596+5822 -4498+-8843 -6743+-1444 7706+9461 -6392+-6405 -6816+-286 9944+2893 -8775+-2127 -5531+8129 -3699+-757 -5955+-6990 2827+8722 3047+7013 -1346+-1248 8079+5188 7517+1664 8246+-2036 -7000+3414 -278+-8668 8014+-7309 1528+6423 -9215+6128 9410+1227 -9320+4886 4840+-880 -5897+2985 -178+-9291 6935+-5973 7109+-9395 -2436+7275 501+5743 -2809+5721 2798+-1810 3011+-5220 -506+-3556 4336+7200 6572+7026 -1466+-7198 6589+-3624 -2033+5201 -8537+6099 5282+7102 -5166+1944 -6836+-5451 9262+9799 -5121+-6486 3466+2391 -6766+-2239 -9640+-2123 682+8963 3653+-1049 3398+9505 4479+-9087 -8489+5614 -7777+6739 -2481+9507 -8548+3862 -5800+1683 6746+-9144 8619+6007 4565+-9830 5898+-5011 -4733+-4145 -1583+-72 -5774+8879 64+3453 635+5069 9731+-9396 -921+-1110 4515+-6338 6378+3548 -2760+2622 5916+1805 -6008+9585 -7175+4399 -5894+-9477 3843+8912 -3052+-9412 7925+-9960 -1786+8494 -6082+-51 -7282+9040 4981+-3058 6842+1087 8236+692 5332+4280 -2906+-1424 7896+-3729 2470+-9715 -3649+1874 -434+-1541 6180+6688 5861+-1281 -3898+3047 -4549+-1318 3487+6629 -2961+9017 6180+9774 9862+-8503 4644+7208 337+2889 2023+445 8537+1684 5544+7578 -9542+-1226 511+6894 -9704+4907 -8441+6968 -640+6569 6917+3490 -3881+-6439 3587+8301 9493+8392 -6211+-3477 -8685+-3288 5433+7994 9110+4370 1820+-8631 -5288+-5062 -4385+-8968 2286+4500 7930+-9783 4945+-6092 -959+6717 -4942+8858 4094+-1799 4151+2890 -4307+3731 -2622+6620 -901+-827 9948+5693 -7619+4521 883+-1692 -1774+-9376 -6454+-2798 8005+-4933 -92+5889 3054+-9400 8573+5825 789+-9755 -5492+6434 -8379+-6395 3883+-697 9754+-9317 1873+3448 895+-4896 1603+-164 -5659+-9719 6907+-4235 -1144+-5302 -1908+4693 -1792+-8047 -7731+4240 5806+-7032 8932+-4055 7473+5248 1157+8224 9490+5931 -5840+3898 -9602+-5040 -9321+5212 7525+2292 -3443+-526 -8456+-8306 2974+-5748 -5860+-5677 1745+4002 -8667+-6309 -9379+-8087 9720+-3009 -20+5595 -3868+-9969 -5230+3553 -4359+-1640 -3098+-7294 -621+3615 -2073+-821 -493+6841 6779+-9950 4062+1457 665+8711 2340+-2393 5312+-2243 -5424+4092 3141+-586 -5709+-249 -482+7794 -6844+5338 7392+-7415 -2177+-7261 349+-4617 8081+3687 -5754+-7733 -5209+3267 7806+-3245 4285+-2736 6256+742 -7309+7713 7377+-6220 -7752+3952 -1737+7181 1761+-8988 4650+-3445 -6862+8314 9208+-316 7409+4895 -4291+8379 6127+131 -889+-9432 -7669+-8298 -6572+3469 -2796+-1770 4758+714 6857+2949 -2468+-5039 -7031+-4933 2464+-7467 1631+-5905 6188+5581 5786+5527 2386+8619 -3606+7655 7167+-3529 -3529+2089 -3309+9960 -3619+-6891 352+7190 9616+-1624 -6885+-20 8728+108 3629+1442 4110+-3988 8677+3198 5617+-7267 1218+6070 4684+3821 -4887+-2031 -847+-1767 -7332+4088 94+9678 -1920+-8816 -2649+-6992 -3643+4073 5852+959 6143+5762 -7452+9360 2814+-4986 6579+-6693 3285+-5212 -5585+-5181 -3251+-1477 -5621+-2021 -9930+6331 -1400+8420 9966+6341 6645+-3046 7625+-9848 -8253+5672 -8545+-5682 -9108+3381 414+3747 -1339+3223 9092+-1842 -5748+7249 -8089+-3039 -9504+-4816 -1836+-6874 -7285+-6721 -9282+5924 -9050+-2893 -1558+2753 7040+-1603 133+8699 8454+3165 5038+1490 6855+-4289 -7645+-5873 1432+9791 3919+2664 -893+-1312 2541+-8926 6312+9458 -7814+4181 -1248+-6518 -7902+-288 1493+1748 -6785+-4364 6825+-4103 6369+504 -3850+8581 7009+-2855 -8211+343 9516+-5547 -3955+-976 -2500+4575 1713+-1603 -6865+944 2243+-3386 7246+-8924 -6680+610 -5502+-9537 -2020+-4813 -637+-726 6128+138 -9349+6341 1823+7764 1972+-8519 -9941+-4210 -9736+-3754 -4918+8405 4540+-9437 4231+9540 -420+-4298 568+3892 8860+-5561 2131+-2980 -1864+-2678 -1998+-726 -1561+-8203 6125+355 1063+8587 5771+-4320 9733+-1410 -5433+3368 -8839+6262 211+-2920 8509+8361 1539+-8686 4537+-1466 -9281+-1819 6532+-9902 6330+-9181 5988+9445 -8701+-1710 -805+9043 -166+-2914 5621+-8846 3394+1089 -9380+1146 9891+-2441 5366+-8920 -3783+5874 -3469+8151 -5602+4740 1244+4529 8189+6054 -1852+-6396 1608+-3201 -6806+978 -2744+5788 5090+-6125 1645+-4024 -6759+929 8375+-7241 7082+3134 -8707+3016 9093+-8006 -5394+1656 1790+-2256 -8663+1763 3870+7009 -2243+-2058 7177+-4117 5243+9410 650+-7631 -6050+-3377 -434+1066 3504+9299 -9361+-5782 -1303+3533 -3774+-4717 6125+-5375 441+-6535 899+1498 865+6055 -1527+-8325 -5974+-978 7306+6803 -6875+-7973 -9049+-6164 5202+8746 1594+-8409 4586+-2493 1198+-9767 -8789+2470 -4262+-9265 2872+6641 -2654+6148 -4857+846 -6344+-9898 -1623+-649 -8828+-1999 -9724+2066 4940+-6914 -5454+-8741 9706+-2825 7320+-6499 -3346+-2541 3341+-1863 8118+393 -9080+-8451 3877+2536 5693+9346 676+-3012 -3057+-3206 -2069+-3462 -8523+-5724 -7030+-2190 1278+-8898 -703+-4092 7910+-6883 858+9942 4245+-4437 1141+-2197 -5016+-714 5592+8568 34+-3381 5432+-9998 -3455+-6352 7731+4496 -9505+-2107 -6606+-2551 4909+-7967 -7561+-6962 5742+7176 -8678+-1289 2468+4824 -926+805 -6539+-2824 6477+5676 9965+8522 -3423+-7208 -7934+3999 -7302+8599 -5596+-9747 -554+1117 -168+-7460 -9734+-1339 -7976+426 -5273+4226 -2609+2061 4294+-3988 -136+-4298 9686+-5714 -3295+6176 9257+-8930 7972+6783 -7467+-2542 -4255+4917 -742+-3679 -2052+-9443 -399+-9572 1091+-6486 4557+-6292 -730+7383 -6994+-7553 8354+-9819 -3768+8719 -9458+3229 6344+9553 -8491+-3956 -7995+-3337 -6756+-1759 5891+1093 4638+-3170 -9218+-4738 4211+3810 190+-728 -9565+882 -4875+-1846 -8526+-2426 -7733+-249 5478+-4283 9505+-1002 -6515+-6555 -4178+6752 9170+4567 8963+8178 -1484+1362 -7252+-884 6243+9226 -2858+-1187 -2595+651 -6062+-8618 9151+-927 504+6304 -8166+-4088 -9118+-7186 -5695+-2676 4010+1021 -6996+5560 5086+-6358 6132+2730 -3542+-1975 2811+-6471 7084+5826 -1033+-3466 -6502+-4793 -8050+-6451 7158+231 371+5648 -4441+2593 2824+-3532 6434+-7204 2709+-5144 5595+3589 6696+-2031 7959+807 5782+7371 -5252+6175 -5037+7343 -3812+635 -337+7804 -5857+-2623 -9964+111 90+-1874 -2193+7869 1502+-2689 2468+-1489 -5889+5614 9674+-2307 5876+-7923 -6138+-7818 -3573+-7705 153+-9083 9745+2780 7134+159 2847+2307 957+2844 -9848+4727 -5793+-5246 9717+6259 -5046+-8000 6678+2477 325+1208 5641+-3796 -804+-527 5869+-8616 -6233+8405 4121+7111 9630+-3588 6153+-8466 -9864+-1899 907+7480 -3475+-8043 2180+-8929 1848+-1923 -9969+-119 417+-3831 -5777+2 -7979+-5303 7258+9680 -4100+8064 -3740+9052 6167+783 -2170+-8754 -9046+-2100 806+-8179 -7453+7673 7937+3789 142+4187 -4126+5514 7912+-7617 9771+1000+559 -3860+-3889 3166+9402 -4322+2193 -5125+-7002 -8283+8145 7943+2458 -9651+-8599 8384+8913 2588+-1834 726+7904 883+-9500 8243+-299 -4317+-386 -5848+-8782 8236+6064 7655+7057 -2855+813 5042+-3664 -2051+4638 -9381+-5720 3781+-5114 -5730+-4633 8135+-1880 159+-8967 5567+-4406 9241+-2122 299+4833 -9780+5489 579+9756 -2580+6216 -9969+8545 5768+8743 -9408+-4431 1286+-4891 -4627+-9099 6799+7308 5040+-1839 -2448+9812 9268+5501 -2552+-6610 -5742+-3883 439+6359 -6107+233 -167+-714 5029+-8535 -8628+-4350 1368+4287 8982+-4849 3397+-6076 5258+3567 -1441+-4348 9777+-3998 3723+3129 5042+-2032 6770+-5895 9244+9420 5670+2128 -2125+4295 172+-9674 -2826+5246 9616+8682 6785+-8365 2509+6299 -4153+6937 3092+-4535 -4625+-3739 5390+7802 8512+-858 5239+6181 -6086+-1575 -4009+-5144 -19+5674 -8421+-7541 -4260+6692 -3557+4521 -8833+-152 -5105+-5844 2325+-1781 6959+6939 5812+-3701 9875+7699 5167+5617 5556+8348 -2155+-7782 5858+2943 -1204+-7456 579+3541 9401+7308 8468+-220 5748+4050 -4575+-9770 -3279+-4297 -8176+-6512 5152+1490 -8282+-6162 4904+-7759 -628+-3755 2471+-3413 8364+7819 -469+-364 1306+-6976 2963+-70 2074+7495 -8108+-8317 7056+7843 -1554+-1343 -2307+-5014 4815+201 -4802+-4702 2491+5151 3356+-7105 2890+-6846 -4550+8072 -8941+-7885 963+-7923 -6144+5846 4+9648 6296+-6588 9233+-3415 2561+2647 -5674+6904 1784+-8729 -3315+5467 -997+-8007 8911+5685 5088+-9491 -9671+1211 -7920+-6320 -4269+8312 -956+814 -4583+7129 9737+-216 -5070+6475 3634+-3884 -7198+4727 -7412+-3013 -2118+1086 -1869+6837 2070+3523 9829+9090 890+-9114 -3579+-7976 -7822+-2098 4835+-8951 3395+-198 -6453+-296 9453+-8379 6456+-6011 -7491+584 -5579+6389 8574+-4365 8683+2423 -807+6942 -7343+3555 8685+2004 -9002+-37 -2563+4915 -7788+6208 -6663+-6299 -964+-6288 -9008+7434 -1712+7596 -2095+3834 7973+-3189 103+-4028 803+-4648 -6148+-2872 6344+7193 8249+7975 -7459+-4011 1224+-7323 -6172+6097 5568+-4758 -8280+-1163 -1537+111 -1896+-1900 -3679+-8194 9244+9242 -7821+-6920 1503+4365 -2542+-3678 3965+-6296 7422+9216 1810+7398 -6308+6749 8802+-434 -5817+1378 -5771+-5819 -5504+-9219 -7474+7066 -5585+-3094 -1024+7693 7098+2426 9999+2999 1068+-6042 4182+-6841 -8312+-2571 2129+-6363 -337+1150 6871+9778 1867+5065 -2197+5939 -261+617 1572+8691 -3670+6714 2996+-6383 2893+-3141 1285+5485 -981+-845 -9025+-2282 -233+-8877 -6061+-6681 -9783+-2506 3437+3886 -3463+3655 -1901+-7254 7493+-6883 -9855+-898 4888+-8211 6590+6499 741+7513 1462+-5331 -1831+-1753 -6632+2773 4265+-5928 -9635+-7338 -4794+197 5822+-705 367+-9184 -7808+-1590 728+-8807 -4340+4826 2698+-7524 -7947+2726 -826+-5247 -2473+2896 -5798+4208 3319+5965 5186+5482 -9804+-1818 5318+5559 -9476+-2507 -9139+-7972 -7643+-2440 2504+-4015 4980+3372 1611+3417 4708+-6058 7071+-432 1621+-808 9059+-9680 2530+6049 -8933+6731 -7819+280 -8401+1760 754+5643 7480+9387 8932+2932 -1231+462 9351+3843 -5576+4634 -8950+-4882 -5120+-8157 5077+5901 -3069+6673 -90+8631 -7881+9879 -4713+-15 3016+-7978 -5679+-9627 -5193+2121 -1859+1099 5211+813 -7591+1944 4744+4437 -122+-3945 6238+6974 718+-7838 7136+-9768 8835+5172 5605+-5483 -976+8062 -6127+2943 -8783+-8726 -6221+283 5660+4067 7949+-9274 -9207+-9343 -2429+-3738 891+5887 -5606+-2813 -1336+-2909 7577+-9520 -1268+-2162 -7029+-817 -974+6654 2541+-6478 3035+-7216 3321+912 89+-529 5354+6836 -7866+-5860 4145+-8024 -1292+5226 -4182+-5741 882+8425 3214+-2453 -5752+6795 -4674+-1805 -1687+4852 -8529+2833 -2170+79 -7402+-1472 2113+6870 7221+6237 4117+-4887 6086+6191 -823+6358 -8179+-265 4488+6213 9064+8623 -7643+-7541 6289+6813 -907+2409 5257+-9245 -8628+6048 -6662+8094 -7583+-794 -9962+-34 5287+-1647 3919+2980 9159+-5610 -1579+-9601 6729+5167 -7063+5131 -4294+2613 3134+-6524 -8893+9525 8171+6336 2657+-6133 -4780+-3536 -4578+-805 -8367+2113 -3816+8430 -8358+3442 1446+9009 1219+8691 -8770+-9 4492+-1346 -314+3079 -7834+2248 2285+8861 -829+-9411 4338+4228 -2630+6901 3024+3416 -4130+1522 5412+7101 -7793+-7163 6078+8188 5649+-7389 6826+-6008 -8486+1693 -9144+7491 2350+-6272 -518+-5018 5733+9399 -4060+-4780 -8677+5929 775+9696 8090+2907 6505+2879 1206+-6858 -7871+1526 3414+1078 -2188+6691 8175+-5538 -841+-9922 5763+-8684 -3680+-5858 1131+3040 -1650+1280 -789+3491 -6022+3862 -9107+979 -7641+-2542 7179+3034 -1846+8459 -4648+-9288 5969+6007 -8888+2453 -1240+-987 -4364+-2484 4725+-1553 6547+-5592 2262+8801 -7475+6812 6161+-6184 3602+-4104 1432+-3857 5175+5548 -1476+3728 1696+4256 3987+4828 8246+-3052 3429+8184 865+-828 8753+-2339 7929+6785 -3685+7945 2858+-2009 -3150+-7556 -5824+-4206 -5783+-9422 -746+-4645 -2691+-3161 9369+-4607 1000+-6119 2784+-9237 -3915+5412 -5339+1757 -3177+-3616 -2432+-9700 -9704+-5329 9312+5954 -1591+2259 3779+-259 4124+-4127 3427+8085 -6087+9484 -1544+6411 5122+-8847 108+4961 -3167+-4237 7438+4580 -6038+5234 -167+8165 5608+9660 -7590+4194 -826+7840 -5366+4534 -1096+-3996 8090+3047 6268+510 5488+-8239 4155+4077 -5900+-7278 8799+2332 7359+-4817 2565+-5881 -305+-8376 1527+7420 -1604+-5661 -4468+4211 -9056+-8190 5420+-1699 -7917+7171 -7037+-9144 4261+-9153 257+1693 -521+2199 5896+9079 9973+-8302 6469+3454 2393+484 7908+2228 3180+-4456 2839+2649 2498+-1351 8553+-1193 -1610+-7362 3475+7667 -6811+-3044 4802+-9987 -1687+-8482 -1841+434 4452+-2315 217+-599 2563+-8899 -4394+499 -5359+-4881 -3775+4276 -5145+-3723 1578+-8009 6410+-6420 2070+-8846 -5907+3511 -2262+2993 4023+3003 9957+-1495 -2515+-1576 7496+5282 7054+7672 7562+-7269 -5118+5073 -9489+-491 -295+-6052 8866+-2353 -1438+3319 3965+-5329 -5431+5833 -2909+5982 -4227+-8171 -4964+-4196 -9568+-8335 -6421+-3408 -9371+-8943 -3809+9483 2909+3530 -2114+4976 6763+-5694 -1155+7095 493+-4318 7349+-9180 3703+-4122 -5796+-9689 -9045+4730 2152+-6581 -2378+7782 1679+721 -5011+-3887 -9941+9202 4978+-6393 5685+-8514 441+3126 8213+1944 9406+-8301 4151+-3599 -9+-2782 5839+3583 -4996+2406 -3216+-4457 9010+4560 1205+7418 -9030+2199 -1380+-1183 7721+3812 -6174+5145 -2152+7882 943+-8055 7976+737 7067+-7499 3933+-3126 8+-7560 -1639+7829 -9843+-382 3242+3515 -361+2593 4138+-7492 1539+8439 -9643+885 -6123+774 -2046+-4157 -26+9310 2280+4231 -6334+-93 -7940+3295 -3844+540 469+-4822 -5789+6219 61+-1273 -4008+5817 -3533+-1130 9101+-8444 25+-3184 891+-7508 8943+-1888 -5535+5004 -5881+-7132 6067+-3020 3719+9696 -5516+-6657 -1702+-7563 323+7700 -8745+8676 -3254+4024 8117+-3795 6338+-1932 -4901+953 2413+6465 1568+-8364 -7178+-2701 -5663+-1420 9303+6067 1849+723 -7119+9037 500+-8889 886+8572 -7566+9687 498+-7869 3486+3892 3820+-146 784+-3774 9416+-3022 -1154+4182 -3175+8556 -2315+-2622 112+-3143 -7388+-7676 9874+4461 -4289+-5420 5861+8398 525+-1707 9609+7900 -4659+3469 5887+9710 2756+6752 -3984+-4388 -7540+-8584 3738+-5952 -2591+-997 3436+-3285 1340+-918 350+-7175 5331+1485 -1535+7212 7952+-7145 -3472+982 2212+1979 8152+3242 7236+-8368 -4599+-8170 3099+3079 -1592+-7879 5452+288 1619+3140 -5528+3660 -3709+7536 -5234+-2423 5154+-4270 -2776+7172 6336+-7926 -96+-2173 -4189+-4606 -164+-1249 -617+-7751 1014+6933 7513+-9730 -1454+-1078 -6833+-2463 5197+5170 9816+6683 9053+4313 2965+8881 3882+5773 3395+5412 7188+-5457 5291+-9117 1140+-2342 -1137+-2184 -3169+-6823 6014+-322 5087+-5477 4119+5246 -971+7177 -2723+2257 -1830+3889 -4325+417 3896+5868 4653+8351 -6368+4846 223+-4398 839+3608 1528+-8215 5062+3178 -3595+-1469 1747+6010 -5620+9851 6859+-2689 -3915+2501 -4601+4102 -8029+-2093 2357+8310 -2849+5958 -6939+-8071 3447+9083 6477+7845 -4060+-4420 433+554 -743+7957 5229+9708 1711+262 -5399+-177 -2711+-2773 -260+1189 2536+-2027 9160+-966 -8753+-5420 -5775+1691 -1501+2182 -1918+3642 5268+2236 -3848+-2884 -616+440 5404+-8495 3630+-3694 -3640+9381 -8874+-930 3330+-9014 5731+2683 1779+-4608 -3568+6341 -8657+-4876 -7859+-4123 5193+6458 7540+877 -9549+-5678 7351+5851 -3167+-983 4201+-7968 -5460+9074 -5509+7332 -1106+2508 148+5542 9428+-7658 -615+6656 7660+-6170 3113+5111 -9686+-8987 -3931+7358 -3811+-8968 -7328+-2681 944+6126 1053+7004 7548+-7099 6558+-4133 5940+8538 -6086+-7892 3234+4607 4959+-8678 6625+6435 -482+-8883 4946+-8489 -7201+-3419 -3564+3916 -8592+9009 -1018+-9282 4345+-722 9351+-7681 -5684+-1671 -3924+5776 8459+-3620 -3851+-5213 9064+-3949 -9403+-6361 9477+-2789 -5457+2365 2650+-267 -6677+-465 -2720+3718 -7267+8037 -3552+9845 -9850+-3078 -2547+7633 -6057+125 -9296+-4283 -4586+7885 6803+5872 5112+-7839 2186+876 5182+-9631 -2063+4076 5070+5947 -4484+-9502 -4937+8104 -7113+9648 -1077+1259 2292+-3788 8462+9182 2262+9869 -5852+-2091 985+2167 6184+4126 4315+-8249 -5571+-9626 5443+-8615 2768+-148 9999+-9881 4986+9396 2227+571 -6666+3095 7036+-2390 -2102+1736 -3916+1421 -9806+-1330 3499+-5024 6048+-4592 4872+9327 -3291+6466 -1325+3385 9359+8154 7550+-2883 9280+-6080 4702+-939 8898+-8919 9898+3172 -7249+-9397 -5648+-8428 -9460+-291 3927+7072 -3995+5753 6428+1502 3190+9230 8586+-6100 8740+-2738 -5444+140 3227+-1871 4886+-7008 7114+8306 6190+1290 -9505+8578 1301+7670 -8505+2236 -4277+-2273 -4894+-5901 -1221+-3548 1756+-8836 -6192+8737 -3284+1958 7930+1825 -6123+2446 7006+-3887 5354+-9135 5858+-7888 987+8294 8616+8793 2152+1246 -939+2885 -8416+-2569 -8026+3505 2185+2262 8270+7795 7230+-3806 5403+-3946 5254+5405 7959+-4272 9618+373 2707+-5066 1838+6688 3563+-1797 -4182+-3167 -8455+-7396 -9238+-7560 -4863+-6174 -98+835 -5875+9176 1737+8553 -7730+-9160 -1220+-857 -145+2901 3765+-8780 791+-7671 7412+5701 5290+6701 4126+-2185 -8106+1981 8055+-8119 3414+-207 6822+-3920 -9644+-578 4442+4535 8616+9216 -572+5189 9386+-5850 2163+7008 8381+5164 -9531+413 -5271+830 -4004+3760 5911+-5444 -1101+16 7264+6852 8245+104 -7537+5130 6918+8750 -9265+-1855 8070+-9282 -9840+-4268 3923+-1710 -1428+-8576 -7711+3281 6467+5637 -9046+-6694 5825+-1304 -2284+1892 9604+863 -5673+3171 -9953+4723 -4872+3703 8193+-7878 -435+-1610 -218+7736 -7926+3812 7572+1182 844+-8326 -7017+1482 -9374+5173 6404+-9661 -5953+9432 828+-2654 1126+-494 7351+8555 -5240+5404 3990+-4462 -1248+2680 -8123+-508 1559+3920 4474+-234 5974+-7983 6311+-1404 424+6929 2956+8303 891+9107 -854+7463 8462+-1152 -3238+5723 1603+7463 7465+4912 3993+-3477 -2365+-134 -6551+9983 -6248+-8453 -9026+-9660 710+6626 5285+9104 -9908+5793 -7276+-9434 1365+943 6220+-545 -3538+6751 9913+9660 -3905+-762 3873+3081 -7895+-9204 7993+-5126 -231+-2081 524+-1951 3209+-1737 -328+4692 3273+8242 256+-9031 2769+-4436 352+2948 6194+1553 -9678+572 -5455+640 -8440+1659 -2356+-6889 6338+5575 -1870+8377 8732+7402 6810+5254 -9556+3864 -5899+5783 2678+-4122 -6231+4108 -7331+-1324 764+5640 6571+6547 -1994+-8140 5065+173 7221+6349 6313+-9691 -9719+-8926 3546+8993 -8713+8992 -5016+-8960 5658+2984 -6064+2131 430+5126 6071+5458 -4152+-7242 -6537+-5004 -4987+-4023 -693+5820 9384+-3367 -2075+-7517 1198+-56 8971+-7465 -8002+-9313 -7324+-483 -3694+9152 5263+8305 9045+-5168 96+-5750 -4673+6530 7587+1169 1988+-3126 -1907+4966 2889+-9971 -75+511 -4898+7368 -2763+1712 -8365+-4269 3222+-6688 -1932+-6948 9438+7294 3537+5211 2977+-4331 -9472+1000+-9152 -8985+-459 -8844+-480 -4951+1791 438+6109 -3198+-347 8473+-9961 3020+-3731 -2061+-3971 9036+-6576 1399+-6652 9132+-5129 -2228+4343 -2786+-5939 9535+-703 -6650+-9392 -7779+-2704 2541+3227 -6773+1468 -2890+3531 3955+8697 -5471+-5563 -8304+-9303 5005+-3251 5424+-6430 644+1965 -3712+7204 -5209+-6361 -225+-9346 -4747+2823 -8843+-5816 5895+-1379 6491+-2325 -4072+4623 -8337+598 5939+7695 4331+-3664 9370+4733 -1708+6306 -1592+-6752 -4431+-3931 -9497+-7722 4930+3233 -5629+-6074 -5714+3834 -7036+9229 -4182+-8921 -8040+8878 21+-580 -8863+-8893 -9074+-2345 6734+7119 -2324+-651 -7831+-6312 -5310+-7593 -4066+-9488 9489+7467 3687+4818 -7216+-4074 246+-5202 9875+301 5592+3140 4620+4879 -2876+2887 9113+-6221 -7024+-7469 6746+855 -7256+6757 -451+6382 -8117+759 -1874+4324 3110+-9329 -5180+-4716 -3258+-5829 179+4497 5984+8826 -9188+9948 -2589+6007 -5845+292 6385+3679 -4935+-5772 -4201+9313 9209+5650 4408+6414 422+1194 -4220+5788 5112+4775 -1963+-4312 -31+-8544 -4142+-4571 4863+-6108 858+-1754 4029+4478 -3112+-7827 -7903+-7556 -2688+-8740 -6172+9106 9154+2549 8824+-4737 2077+-3137 -8703+-2900 -7390+2440 4111+339 1888+-6160 9128+-7632 6311+-7617 1812+-380 8254+2192 6731+1084 6582+-3314 5038+-112 -3181+-221 -7696+8617 -9695+377 -7755+-8700 -7030+-1927 6163+-3593 -1997+-267 6745+8534 5561+4096 5487+1995 9311+8817 6699+-1558 5281+4038 -6+9160 -7306+5834 9967+-7850 7878+1073 6665+1195 7219+-8473 -129+-7543 7098+-9885 -5082+927 -1430+1040 -9684+5653 -3967+8394 5703+3950 379+8841 -8125+8623 2779+-3022 1057+-1062 5978+692 -7535+-5755 -1271+-26 -8450+-6768 -3812+1200 7022+-6165 -7329+8261 454+8431 -4839+1581 6396+5850 8261+-1162 6240+6548 2884+-3194 -8789+9575 -4606+-9914 5266+-1312 -6643+9922 -7233+2755 7269+-1451 4531+5305 -2723+-8005 -3049+8922 -6854+-7016 7224+6929 616+-104 -3096+-8417 -3077+2374 -5111+-772 798+5253 7160+2752 -6503+-3792 8396+2905 8748+-1643 -9619+-2813 -9386+8363 -681+-5269 9988+-3490 4727+-2118 3861+-8745 4358+-6886 9432+-8653 4100+4248 -4329+-9948 -9029+1079 4889+-3694 -1760+-1089 3448+6215 -8959+6422 -3361+2507 -5185+7869 -4205+8413 -1951+-5950 -7356+6178 7875+-1096 7013+-7291 -6605+-483 394+-1206 -5433+-1447 9222+-6015 -9294+-2249 749+9815 9883+-5587 -5776+-7918 7175+-4027 -2982+-3652 -2600+-4512 4404+6788 542+1429 7263+9377 -977+-1270 -1360+-4912 9688+-3820 6879+-3060 -730+-1011 -8221+-5192 934+-3416 9224+9237 -11+-7298 -6525+6391 886+4092 2432+-9373 -5815+2922 -9302+4173 1120+745 8479+-7101 7987+-2703 -4680+-3247 1593+8948 7222+7539 -3879+6429 -527+7663 -3831+-5248 167+8495 8507+-1558 3384+-1257 8659+4113 -1346+-9143 -4470+7241 5857+1324 -4748+3398 -9808+7644 -2172+5813 3976+-1253 2384+6106 444+484 7879+3255 343+4039 7702+4331 2233+5839 1705+94 -5044+3190 -4214+9017 -765+-6211 -3699+-2388 6477+-2841 8469+-5714 -4784+-9650 9376+4095 9067+-737 8624+2595 -3548+5593 -1061+9839 8537+-6947 -1987+-1228 -3847+-8045 -3630+-3797 -9124+6246 2678+-8662 -55+7108 4898+-3373 7309+7572 3081+-2144 6554+6243 -6957+-4370 8134+-5264 -5093+-1358 4648+653 -9990+9533 2477+2300 5157+889 -1356+-4180 4703+3079 -8630+9547 7754+8673 -7611+2749 -844+-4906 7550+5698 -9300+-4174 -8209+1606 6229+2589 -8097+-7480 -6342+2435 1785+9356 -9724+4429 -676+-5421 2332+-2882 -1817+-9158 -9700+7521 1031+8890 6408+3907 148+-7268 -8354+1154 2137+-7196 -9968+-8934 1096+-8299 -2939+8937 -102+-6694 9220+472 -2518+7988 -5672+-5230 1828+-8431 1392+3838 -351+-6417 586+-5478 3401+3142 -766+-9276 5419+-1439 9938+-548 9747+7598 -4510+-1063 1099+4555 9852+6692 -880+-9466 9560+-3296 -6913+7390 -1169+-7136 -7227+-1665 -7263+-4646 7540+-7204 -9894+6779 -5321+5837 8923+4526 9234+-8895 -5852+6703 -6107+-6733 -1072+4589 -4047+4058 -8046+3200 -1825+-4188 7099+-2462 5129+966 6778+1307 -2585+3793 -6805+9579 -5742+6516 -6714+3464 -1169+-1120 -2823+-8584 -1848+-3153 8463+7907 7332+6078 2343+-305 4497+8362 400+-7886 -6712+-8879 4501+5047 3991+-401 7168+8955 -5229+-9179 -6796+5199 7822+-9131 4892+5938 -4917+-454 -8277+-9869 6052+3999 1494+7436 3060+5037 -6148+4405 9232+5415 5017+-3860 -9244+5250 -9687+59 1714+-8827 -6602+7865 -9553+2855 7841+6774 2308+1023 -369+-5739 -4805+3138 4756+-7110 -3589+-7385 4848+-3242 3346+2217 1617+-3549 -5989+9306 5685+6469 -2081+9687 7574+-2352 9380+3952 3889+4291 6897+4988 -320+-6903 -8231+-1734 2306+-9827 -2792+1294 -505+-5962 -9817+1460 5984+6858 -2049+-8623 4501+-7058 -8284+-4180 -5690+-6238 6572+5590 5709+-9307 8940+1908 5167+-6069 -354+-946 9442+-9577 4503+3478 -8986+8725 -5314+-5713 -504+2341 -2190+5801 -1315+-9637 -8394+4415 9522+-5515 -346+5739 5512+4561 2696+6693 -7209+-177 6000+-2654 1183+8731 -5044+3685 8295+6462 -2140+-7058 -7473+1833 -885+-5975 -4290+-2092 8981+-8681 -8964+9424 8861+3118 7936+-9754 -2637+-1691 580+4451 -376+-5426 -4950+-4534 8204+-1183 -8276+-7614 2554+9483 -6891+5088 4215+2621 -1077+-6842 -7257+-272 4430+7452 -701+-5921 -6356+-5383 355+990 6689+-5830 -2121+303 -8574+1622 5127+4604 560+-945 -2816+5654 -8657+1212 9811+-6598 -6142+3261 5062+6154 2737+8562 -8483+-794 1231+-8271 -9336+3253 -1846+-6875 8471+2346 1488+-1652 -2084+-8205 6941+-4886 -1284+-4319 1389+8274 -3024+-4295 1554+2165 3533+-3207 -3640+-3540 -2120+-4939 6154+-9686 -9066+5689 3099+7130 -9291+-9108 -517+-9717 -1594+4215 3663+6298 -3429+-1216 8329+-9984 -8657+-5188 9288+1500 -1726+6022 4995+9054 1533+-1471 -5925+-39 4858+9930 -5589+477 1146+8372 -3216+8659 -9611+-8401 1593+4584 -5818+-5627 5829+-2167 -3404+-6060 1283+-6445 188+-1694 7986+-4336 3560+8100 -2207+2738 -603+-8337 -241+2496 3492+-1722 -7962+6017 7373+-1949 -5609+1820 1687+7730 3349+-8476 -8075+4057 7877+1820 -6133+-4395 166+4628 -2398+-4055 -921+-3964 -2482+8793 -9281+496 -869+-8744 7783+-9935 5527+-4652 8780+632 6417+-7957 -3365+-1770 4126+-6513 562+-248 5548+-7066 7921+5316 -4730+5420 -1816+-5861 -6612+-6599 4428+-7415 3447+1535 3111+8128 4126+6820 4023+-665 -1539+-7782 2301+6569 2598+-3529 -312+2174 -7150+-2056 2240+578 -8696+1256 5377+-8257 9669+595 1150+-2386 785+9215 6771+-7533 -1821+1844 -7059+-5915 -7715+-8897 5968+-8254 2715+7616 -6858+-6278 -1647+9764 -6498+-7448 -2655+9613 6612+-783 3665+-1623 -2809+-5163 -2951+7249 425+-6703 -8364+9452 5806+-4318 -9965+5623 7552+-8978 -9676+9526 -9014+1804 -6299+-5082 -5889+-5973 -4434+-796 9948+2724 -2275+-9501 -1297+2197 4866+424 1066+5040 4717+5920 7485+-2044 -864+-9444 -9863+-3946 4582+-7494 996+-1393 -4020+4416 -3502+6315 299+2991 -4790+2165 5678+-2122 2441+2439 -9298+2212 5893+-881 -9000+-7157 -7092+2155 -9588+7460 6109+-4899 1994+-2071 -904+-1770 -9820+-2215 -7820+8190 1295+3475 5484+-2619 7693+7194 -5710+-8163 1436+1087 -1373+2704 6239+4652 2447+3401 -4390+5376 -6501+7014 3752+-4607 387+5158 2725+-4057 -3705+-5389 -468+1777 5335+1756 -2238+-8767 -6273+-2395 6425+-131 8614+8175 -2275+-210 -6249+-6716 -5957+8372 7841+4604 -5335+-8813 5612+2535 -858+-9882 3562+-4438 5091+8105 -266+1978 -1585+-8396 -1197+3973 8540+5833 9264+7809 7670+6260 -1475+8874 5517+1031 1710+-2783 4570+-8769 437+4632 7149+-2548 -2644+1135 5208+729 1669+2116 5319+-3432 -6206+-7583 -1384+9285 6257+-960 -6968+602 7769+-1074 9708+1263 2928+-2277 3702+115 -6490+-2107 7102+-1534 5439+-9180 9013+6348 -6207+-4389 5751+-7845 9828+-1940 5226+847 -5925+2343 2694+-9589 2184+9638 -4340+2076 6383+-3189 5459+-9004 432+-9166 976+-9655 6343+1771 -1882+2697 -291+-4278 9915+-2340 6483+-6123 -1912+-8753 -5911+-5183 6453+-8795 8377+-4975 6748+2966 -5573+-8960 -3739+-9370 -8910+484 7060+-4705 844+-7939 -424+5312 570+-4836 -9843+-1060 -4604+-2246 7577+-8343 5196+-2437 7489+-845 -247+-7280 6213+-9331 7870+341 2248+1427 -511+-5939 -1783+-9298 -1423+-7719 4017+-553 -9762+7912 -5385+-7111 5710+5696 9947+-1754 5769+-4694 -1124+587 7386+1381 -4355+9509 -6032+4837 -6079+7623 -7731+463 1586+4659 507+-6827 -4217+6117 8717+5169 8691+9177 -6917+-6344 952+593 -9235+5917 7788+-8053 -3532+1500 6048+1609 -7412+-4300 -6191+-7498 -341+440 1902+-4140 -8737+-615 2250+1153 343+5330 6353+6047 22+5306 -6382+-5336 8398+6109 -7585+1956 -1337+-1546 3133+-3089 -5491+2257 4759+-6695 8259+-5302 6003+5184 604+-6081 -85+-2458 7131+8830 7877+1050 8145+4408 8251+6563 6175+5518 -4178+8399 -6696+-6337 -7054+2520 8761+4838 -6605+4794 4137+7906 9060+-6374 -9083+-5153 1240+5025 608+-6128 -3610+-6095 -5991+6295 319+-5620 -6443+-1453 -417+-5323 -3380+7524 -5362+3800 -8568+-4474 -6729+-3604 -4220+-8876 -350+-2549 2448+-8467 -9349+-1146 6576+1890 5640+5238 5604+-2011 -8657+6382 -9266+1059 -1499+-2710 -9665+-6179 -8753+-739 6885+2351 2383+-9086 2194+8283 -2095+1974 8157+7294 -2427+-3718 9909+-1066 -393+6504 -5298+-5458 3510+5113 362+-5474 -5524+-2798 599+-756 -6087+-624 -8015+-6602 -2546+8642 1748+-6834 2328+-8552 -5791+5852 -2840+8726 8052+7380 7250+-1830 1884+5619 -6935+3396 9984+-2707 -8027+-4213 13+-6183 -9132+6747 -8195+-3416 6830+-3067 2767+9477 -7550+-3306 5929+-2703 -8981+-6693 7762+-7589 -9680+-7400 1691+9287 8945+5027 -188+-9599 -8117+4064 -7889+1526 7308+3194 3688+-2171 -7050+8124 8637+-5133 -1344+7948 -1433+1259 -8830+533 3817+2217 -4323+4300 9940+-8744 -2541+5750 -1535+6555 -9109+5986 -6123+2422 8269+4212 -4651+6610 -1853+3095 -5770+3370 3926+9925 3504+6622 -3854+-9520 846+-2882 8082+-7000 7041+-39 680+-6958 -2126+-6861 6062+3319 1612+-9154 6394+-6782 9097+-5077 2656+245 6921+6007 6895+7379 1147+-7824 6487+-4340 -1469+-5519 686+-3658 8788+2777 5085+-1979 -802+3573 7378+-2851 -8112+604 8372+-9418 7418+3689 -1946+1658 7981+-7965 -8033+-2247 -7027+-2974 -884+3927 7004+-7573 5660+-7497 -4986+-3367 -2335+2454 3403+994 -187+-1862 4217+7909 -6161+-9651 -7019+-6964 -3594+-5048 -5856+-5405 -9063+-1151 -9621+-4212 -4395+-8941 -731+3513 3346+-831 8220+-418 9208+7788 7705+-1317 7547+-447 -8150+3445 1326+8839 -2712+-4686 -8092+8449 6529+-129 49+-4914 -9897+2258 9610+3844 5848+6277 -7988+6089 7602+3794 -4033+-4164 828+-2233 3294+4791 -6829+-7843 2507+7359 5415+140 -4340+-2709 -6253+-4720 9632+-5067 -9892+-8654 4941+3041 1246+-4936 -4418+-3899 8098+-9876 8514+-7079 -2192+-5333 1385+-1860 4196+1567 1733+-9403 4727+-4250 9643+8714 208+-1126 -6150+3376 -3696+-9045 9688+-7257 -5062+-2529 -4193+-5045 4966+-8666 4890+8789 -7318+-5022 434+8452 -9494+-5399 7035+982 7310+3149 3345+-7287 2960+-8382 3058+3263 -2948+-6448 -8787+4175 5613+-8769 -1043+-6686 3352+-9801 9196+37 -5846+204 -8467+5807 7244+-3653 -4398+7312 8304+3350 -9032+-4144 -2242+7488 8790+7399 5701+-7919 4730+-1573 -8723+-2910 9470+7375 -5150+885 6103+7035 -6305+-9049 -7912+5860 4928+9646 1147+-328 -7918+-8931 -4434+3881 8630+-769 9448+3736 -7047+-3656 5409+-1049 -1894+2679 4392+3794 7348+-7808 -9362+-8043 6960+-3566 9674+-3284 9796+-4554 7346+-174 -2290+8382 9698+-1430 -401+-9774 -1545+8573 1807+4184 2590+408 -3962+3956 7892+4282 3468+5497 979+1149 8868+-3187 -6307+3680 -8205+7373 5181+9185 -5509+7252 -1529+2406 -3012+-7114 -9007+-7565 1316+-7407 -2236+-1751 -5359+2911 -1494+-8325 337+-4035 5902+-1550 -3638+-942 4270+9413 5199+1250 -7919+-3469 -9365+1000+903 -2341+2059 7818+-3820 -7804+-6224 8953+-9778 6176+-9388 1921+-5918 -4663+2041 -2463+-4733 3644+7615 -6833+-6736 -88+-4773 -7358+4186 4063+7974 -2654+2389 -4926+601 2824+-3419 3671+8820 -1208+-3546 9781+9229 4353+5446 3148+7086 6644+-9402 -5901+488 -9698+2752 1277+3480 -3983+5761 -201+-7189 -1930+-3196 -4774+-4671 6978+-9795 1590+5132 -3305+-2499 -7499+5045 7258+-5001 -5302+-5017 818+447 -5177+-864 7777+-2540 3712+-6466 8206+4051 -5909+2723 38+509 -5238+-4395 131+3152 6084+8194 9960+1747 -8607+-4887 -1861+-4231 744+-4159 -5660+-1064 6444+7818 8294+6185 1483+-1621 2973+-6245 -2380+-5405 -2599+4830 -5921+-6363 -9809+-7132 -5718+-9114 -6949+-4970 -726+-9604 6348+6390 497+-8435 -2616+3214 5730+7989 -8664+36 2377+6458 -2315+-6809 9752+4325 9104+6957 2733+-5901 -7485+-1287 -321+-2029 196+5571 9350+1224 -3753+7131 -9199+-4382 -3734+5682 8308+-5617 5433+-4690 1037+-6823 -7856+3650 1989+7312 348+637 -6758+5290 -466+-9413 -1112+-9802 -7820+8801 1917+-1321 7400+8652 -7038+-2893 8155+-8713 -4913+2420 -7701+-1758 -847+5626 -7520+2217 9419+-2944 -2724+2148 640+1558 6086+9814 -4390+-8788 -2379+5227 -5906+-4344 -9812+7929 5250+-882 -1542+-9469 -787+8793 -1198+159 -9563+9072 -8880+-473 9398+3788 44+-8599 -193+-506 1438+-1226 3831+-6524 587+5620 909+-2450 5643+1709 -4349+6707 4242+4258 -5670+6793 -9670+1535 -3593+-5740 -674+-7284 -5473+-5827 4217+-7111 -3622+1799 -3346+-9499 2145+4491 6182+-4396 8262+-6477 -5344+3143 9217+-5969 6883+-9281 -1138+-7425 -6030+-9929 9064+-8250 -2296+-8367 4932+9431 -5598+-4272 469+-8385 8147+-1165 -2900+-8766 1753+-4161 8720+-4001 1610+-8193 2226+-3657 -8997+1242 -6160+4999 8909+9984 5361+6416 3502+-4350 7922+-3948 5197+4048 7568+3994 -9833+869 -6493+9973 1183+1923 4593+-7542 -9467+8438 -9639+127 -8891+3534 -4495+8351 -3498+-2434 7487+8285 -5222+-9913 2909+870 -3964+2888 -280+-2253 900+-6441 -7537+-8935 8309+1957 6475+-8931 -1834+9058 -9992+-6402 -457+-5632 8892+6672 4273+-8063 -6415+-3872 4032+6203 -6723+7490 -6552+4412 8938+6144 -3522+7813 2393+-2334 -3062+2077 5382+-5527 -5340+2779 6369+7800 4381+-9110 -8700+-3559 -6482+9026 -4710+-5417 4703+-459 7128+-2424 -5136+-7257 -6315+3276 183+-1400 5685+1463 5383+3126 -550+-8063 -3549+-6801 -1279+-2248 -8887+-8060 -6517+-9123 2878+-4030 -7353+9242 3886+-990 -3957+-8701 -140+-1962 -328+1965 -5270+-8007 -1014+2748 5549+5371 1679+-4518 1515+-4799 -3243+8443 -9221+-470 6470+-5768 4791+-567 634+-7660 -1676+-8486 -376+-5344 2090+-4692 1297+5641 -5696+900 590+87 -3234+-6495 8816+-6946 1311+-1252 9121+2782 -1137+-7748 2597+-38 7005+-5191 -9115+156 -3936+7718 -9250+-3550 -9864+3657 4206+-4580 -5526+-1031 -7581+-4223 -257+-9165 8605+2926 1034+6389 -9350+-8514 3555+1839 3904+9141 -3030+-4103 6942+1333 -7385+-1587 -6336+-7938 4175+7616 -2404+5792 -9352+4333 -9106+-9284 3202+9793 -5181+-797 601+7645 2819+3166 102+5558 6658+-1763 6135+2818 8000+5161 8853+6504 -9439+73 7079+6141 -6048+4272 -3725+-4092 -8396+-8965 -9305+-4699 4776+-7763 -8212+-1549 4238+-9078 7436+807 -2259+9203 4758+8050 691+-5877 6853+2425 1508+7569 8537+9264 6849+840 -1183+-9897 1362+-8919 -3341+7021 -3590+-6617 -193+-4191 4614+9856 244+-9083 9714+9566 2050+4729 6874+-7185 -4600+8184 -2802+-4282 6850+-5985 -6370+-5795 -8022+-9027 -8579+-9884 -7235+-4181 6622+-540 -9238+-9750 1871+-4569 -9913+2519 9112+8205 -5153+1552 2857+-3106 -1343+-8685 1421+-3510 -3418+-354 2183+3645 4760+6917 10000+1273 -9719+5419 -2254+7071 4521+3132 -9989+8790 3887+6889 -7583+-5291 9553+2246 6396+5832 3352+5873 -6496+-8027 6596+8031 2984+-1432 -662+3022 695+421 -2339+-6473 -3767+4772 3797+-4283 -6767+4129 -1902+6556 -210+-5207 -1612+7706 6248+8540 -7814+-6311 -9416+-6136 -5976+-1555 -5665+1668 -288+-4484 -1156+-7577 9245+4337 6433+1625 2139+-5303 -2044+2105 -9059+-2876 -8469+-1896 -5498+-5548 5885+8393 -5489+7542 5985+7591 -5153+6844 4949+-5188 -6142+-6711 -5621+-7123 5560+-2724 9073+-326 -2142+4129 8260+5187 -3441+6996 -1011+3263 5145+-7083 8152+9736 5236+9596 -1288+6411 -5500+-4731 762+-6604 455+147 7667+-355 6752+6606 -3661+204 -7856+3843 -1803+-3289 -7231+-8201 5180+1895 -5487+5270 -3157+7690 1056+-2096 -7380+-9540 4228+6588 -1858+-3368 9093+-7530 -4692+-8161 -4950+338 -9261+-6203 -2191+-7808 8422+-6935 -7475+3050 3341+-178 -523+9923 9486+1791 -402+4986 3535+-4590 9277+9151 -8881+-9127 5404+-2159 4531+-3582 8562+-8562 -8537+2496 -723+9592 -9960+-9393 8996+6861 5093+-5258 1260+9428 -583+-286 -2729+6898 7784+-9121 -3932+-5277 -7033+8928 -7967+1371 1711+-4625 39+4056 -2936+-9202 7692+5303 3722+8315 -9675+-1083 6069+-1999 -3766+8092 9042+4061 -7618+-6764 4925+6850 -3581+5124 8595+-4329 1752+-4098 2491+2315 4167+4907 -7432+-8749 1245+-7911 5555+-4864 -9206+3473 3414+-9302 -6190+2280 2236+-8327 1083+6392 -166+-2276 1549+4811 -5011+-1939 -5903+-6513 7353+-6591 2890+2467 7723+-6013 9077+-9932 5274+-9399 7638+4265 6398+-8493 -9426+5891 -2492+-1752 1081+-5703 -6150+9429 9827+3956 -6023+4188 4277+9837 233+9864 -2339+-7676 -5249+7455 3863+-7779 -259+2577 -3949+7709 -9271+9100 -3703+4432 546+2680 -781+-5195 9313+-8305 -421+-5254 8383+-9756 8185+-5196 -3579+-9649 6111+4849 1843+8036 1426+-2761 3567+-1840 9914+8076 -3454+4031 -5058+-3235 -7804+2306 -9128+-8991 -7895+2774 2358+2419 9321+-7465 6914+5120 -2720+-3786 7299+-1873 -5389+-2270 -9691+-2788 -5620+-9510 -7874+6123 6119+-8379 -8145+8776 -6073+-3435 -820+49 -8237+8310 5403+-6015 2877+3448 -9714+8129 9977+5169 -5269+5587 -8769+1544 -3912+-2939 1523+-3239 -9375+-9621 -5976+-9408 4801+-6928 -1337+6035 1479+3390 5031+9408 6466+-8287 -1939+-5793 6707+-2495 1450+1116 -4083+1051 471+469 5570+7203 -9887+7199 8208+-8334 -6308+-8156 -7605+-151 -7534+345 7550+4161 -6078+2766 2653+-6437 -275+9206 3681+1408 3942+7642 408+-513 -7003+8767 -4955+9562 1279+7489 -9874+-5972 -8171+-5410 3080+-4321 -7982+-551 -4208+6226 -3670+8413 -6386+1189 3443+8685 -3321+2215 -7546+-9371 -3312+9434 9367+5736 1328+3388 6950+4169 -1971+-8175 -8018+1309 -4734+-4047 -4424+-2699 3522+3821 -6273+4160 44+-2911 -3671+8610 -4230+5192 7341+9029 4001+-4848 4772+1125 -6487+-3536 -4901+-3927 -5463+4987 -5693+6281 826+3262 8546+-7055 -8636+3393 -5029+5767 1785+6863 5831+8783 -2085+8390 910+-911 -2379+-8771 -9766+4173 1839+8973 8925+-1234 -9808+9908 3785+58 1006+-7720 -6508+9208 -1282+5610 6592+-3883 -1062+-5301 -6464+7578 7842+-3958 -9421+-2573 -133+-5948 -4333+-9951 3612+3009 8801+-4582 8710+6543 -6274+-2596 -1078+2725 -8601+-867 -8462+-4510 -7738+5737 6908+-4211 -3529+-8835 -3502+-9544 8576+4346 -3549+-629 1136+6499 -7106+2017 -8191+3275 -1970+3871 -9540+-1128 9623+-9477 -9741+-230 4503+5836 4905+-8162 5491+-62 8982+-3522 4448+3639 -7990+4683 -1858+-3165 0+-696 6355+-6031 1194+-11 7878+-5442 3519+2557 2667+5161 6438+-5475 182+1712 4066+9919 -794+7440 4641+7711 -2949+-1972 -2915+-4131 2979+-4749 -6127+-8065 -8656+3764 -5370+-892 -6125+77 -6170+-6566 -2426+-1376 2426+-456 -5524+-7236 3765+-1587 6131+8745 -2662+3917 -9836+458 -7637+-8949 5337+4696 4865+-7390 -4907+624 -6674+9733 1819+-8272 7353+6611 4233+-8368 -7169+6277 -6860+-438 -293+-6050 -4179+9813 7047+5025 -8423+5301 5448+-6050 6568+2539 9475+-5255 -7725+1261 5973+-2913 7148+-3718 -3794+-8221 -4395+9086 -9164+4897 9813+-9809 -7986+-3713 3584+-4974 -179+4790 3626+-3047 -6752+-9272 -3285+-4181 2203+9282 -3889+8980 -2547+-5168 -3597+1385 -6721+4560 1989+2600 -3671+-2795 592+-9204 951+9268 3055+2944 4536+-9107 1635+6130 -4188+-7609 615+-6050 1758+-4683 -6431+6041 -185+5113 -6113+-4542 9776+8558 -3779+7188 -3495+6746 5566+-7061 -2523+2468 -7804+-3491 6831+-1497 -208+-2577 9459+4697 -4030+-6139 889+-8783 -7371+399 4170+6928 4390+2746 6733+-419 -5339+-626 -6476+8564 -2523+9315 -2976+4107 -7735+-120 3465+3079 3314+-8409 -2181+4324 2703+683 8355+8143 -1548+-1856 -4079+-5320 9464+2969 2460+-6215 6154+-1989 -3892+93 -5267+1240 2263+2567 398+9795 3166+-3907 -4950+-46 -8386+-3737 -9975+6747 8132+2700 6500+-4590 -9712+-4621 -8919+-9186 5053+-5321 -8064+-8726 -7025+-5305 -4403+-718 -883+1763 -4420+-1276 -3605+9453 3108+8663 1361+-7527 -8804+-6568 -1101+-9037 4238+-5898 2994+-363 -9142+7753 -93+-3778 -6093+-6673 -9025+-3681 5283+5592 -3346+-664 3755+-7410 -9548+7390 1838+4399 -7595+-4230 31+3325 8347+9123 -9024+4331 1782+-9476 -44+7054 -1102+9200 -1219+-4157 -8782+-8784 667+-190 -132+-530 -468+-4409 1617+5709 -857+4387 2347+6705 21+-174 5827+-7231 2120+-6870 -1013+-1865 -2387+1763 -4249+357 -7721+8006 -7938+6716 9905+-3815 -4394+-1767 1236+6465 -6639+8977 5023+3380 -1074+6954 -2174+-7435 1224+3420 -1073+-7884 -1367+1165 5171+9774 1753+-1107 4780+8142 5311+2890 186+-4539 1720+-7868 587+-4849 -3216+-1275 -6967+3172 -9384+1336 -6149+5059 -1689+-7659 -837+-1332 -7689+-534 -4927+-1165 -3319+-6080 -9630+-1852 -1609+2415 -6367+-8942 -3112+8710 4066+630 -8733+4316 2976+-6092 3053+6727 -2100+9534 -2996+-1355 -1563+560 1467+-9706 9858+-6498 4758+-2823 -2491+-1334 -7213+6409 -5942+2247 8357+-8754 8133+-2023 -4365+1379 7152+-2247 -3749+-9456 2631+9956 -4861+3360 9988+9248 7745+-6982 -4166+-3914 6172+-7385 9747+-7842 -5263+-4613 5366+-1012 -457+8461 -3017+-5457 -3581+-3155 4592+2517 364+-4754 3727+3721 4831+-1034 -5372+-8745 -6130+-9024 1568+8022 -6092+8683 -2868+-1911 9216+-895 -5893+5558 -1471+2071 -3590+-3165 -5431+3959 353+7686 6751+-7880 4544+9486 -948+-2565 -7581+-6400 -5012+2540 7819+6560 999+-5295 8381+697 9596+-5505 -5180+8715 -4998+-6679 -646+-2122 -7560+-678 -5953+-1521 -5654+8548 -3454+6135 -2460+8176 -5944+-1318 -5777+-8319 -1833+-1001 5964+-2341 -3008+-6975 -1917+9103 -6919+2517 -9273+-4808 2456+2732 7957+4786 -8751+7963 4168+8487 -9887+5528 1839+-5744 6322+5823 5956+4516 9942+-9024 3520+9733 9721+5586 460+-2361 4250+5699 6488+-115 -8371+4441 -8656+2893 -5740+-8728 7645+6921 -6291+-5280 -9787+2125 2675+4890 -2778+-1768 8340+3941 4299+-9645 4978+8192 8351+-174 -5696+-4243 3339+-3252 -4726+5398 -7365+6226 7389+-3028 720+-9792 3727+2779 1990+7939 -1234+178 6223+-1186 -2421+-6652 6289+-7585 5544+-3556 4595+1953 2944+-3064 -7855+-8932 -1018+-7483 -289+-1711 -8310+-4596 6933+-6 -1808+5812 -6391+722 4769+-8665 -4789+-2186 2709+-9053 9469+7693 -6170+3831 9892+8892 -6351+-4738 3197+4080 8266+1420 3693+4042 2121+4666 5151+-9036 9692+-7172 7692+-4412 -8055+-1867 -2910+-1225 1821+-1373 -4395+2087 -6865+-973 4343+-2477 5389+-1682 1940+-3981 3338+-6418 2713+-423 -2183+-5922 -3354+6829 -1615+-4882 -3384+5155 -593+-7595 -2693+2099 -8371+-2003 2383+6638 1636+267 2169+-2561 -2123+-8562 -8181+-1851 8691+-2223 -3895+1957 -511+836 -2363+-215 -1422+-4263 -8945+6251 -6777+3211 -6112+-8434 -8118+7334 2677+-4510 -2094+-4034 -2985+-9052 1421+-4460 -9911+-4038 4737+4441 -6036+-9819 -4405+-4421 1709+-4819 -4576+3619 -6246+-6595 3662+4533 -957+3884 -8541+7887 -1930+-7900 -9773+6571 8180+3108 -1924+-6158 3283+-5414 -6927+-7549 -4696+8263 82+-4700 -3690+-8892 -9910+6569 -6480+4747 5539+-2312 -5988+7090 9644+-5332 -1775+7906 6512+7425 3817+-9183 8356+-5954 -6347+-4556 8774+-6347 -3591+5207 -4644+-2031 -8305+-4058 -6693+9280 8465+-9894 -58+1000+7554 -9867+6471 1705+945 -8180+3579 -75+-1061 -1255+8476 1952+-540 -5265+-7904 584+-7750 1122+-3851 -4890+4511 8958+3606 8896+7626 3462+6337 -7132+-5420 -8674+-7293 -1535+6411 -5855+5661 -151+-3849 7093+-460 7241+5979 -8807+3032 -5574+9966 4778+8399 -8142+6951 -8908+-8980 4021+3202 -532+-4382 -9827+-2927 -9035+5106 -9752+7074 -9346+-7888 -7370+-1432 7367+-3385 -1842+5228 -4128+-8326 4464+6620 -5738+6224 -7701+4991 -4183+-7686 2008+-3099 7976+2029 2141+-9378 -2353+-5758 9748+-6260 -3154+-35 8825+-8572 -2867+-2348 -3688+7927 9992+-7946 9099+-7420 6241+-9805 -4157+3944 6290+-4697 6681+-9994 9712+-9890 8492+6409 1616+-3610 3843+-9691 5011+-3034 -6611+7460 -7817+-1271 6224+-9222 -8432+-8703 -401+-8083 -3036+5027 -7839+4295 9131+8538 -6870+-955 5595+-9073 4001+-608 259+-9252 6386+-2217 -4739+-2800 -8271+7206 -627+-780 6601+-4278 4951+6114 2426+7427 -2384+1815 -8160+-8844 -2467+-5497 6883+836 4179+-5396 766+2016 -9518+3478 -5562+4567 2036+2685 -2805+6673 -3773+7466 1868+-2817 -5250+-2626 -1408+-7120 -2961+7363 -2355+8964 -4181+-3960 -5105+2364 6652+-5876 -2101+6904 3184+-3573 -1263+-3013 -2278+6785 4960+8984 777+-8184 -2331+5570 1033+4795 2893+-279 -2034+929 3961+-1696 -3106+-3575 9020+-5293 -9947+3405 -6285+-3438 3438+3533 4783+5523 1919+1256 496+-7901 -6940+-1760 4337+-7163 3829+-3465 -4648+5687 1082+6639 -9896+-8739 1923+1063 -3648+6876 1928+6842 -2537+-3280 9932+979 -3527+-1865 3696+-9967 1729+-2381 -3638+-6911 3429+8850 -6898+3417 -5328+-4913 7779+-1880 -3497+4482 8517+-1576 8313+-3539 -745+-4881 -3588+-5915 -4653+-5724 -6736+-9352 -9698+-8767 7709+-3416 3694+5155 5161+-8166 -4516+6800 -3306+7240 -7461+-3106 -702+311 4186+-8460 -3419+7869 680+-9665 -2045+8364 5146+1084 6040+-4408 -6997+4474 6065+-1961 -7182+-7213 308+-6056 8633+8173 -2439+5003 1556+-1665 -5988+8382 -3655+8639 6995+7749 -6610+2498 2448+-9301 -5721+7400 -1476+-7620 8504+8931 -2737+-556 -2130+-9767 -8747+-7796 7844+-2426 1418+5697 6122+-7495 8243+8419 3084+4918 -891+5211 8836+9166 -2147+-5284 5288+4591 -7548+-5006 -1548+4425 -2412+-4614 6709+-3203 -1900+-2584 8203+8224 -9221+-6890 -90+-3924 9440+-1141 -5701+-4599 6416+-7685 -6502+8067 1882+-8900 -7426+5534 2011+9938 -9763+287 542+-1600 -5211+2820 -4082+8719 5677+-7632 1097+1852 -8199+4779 8495+-9017 7302+4965 3061+-9264 -1252+3830 1993+3090 7866+1877 -8282+-5246 -9570+2790 1160+2752 -5393+-7088 5898+1767 -9028+-6436 -3547+8213 -263+-2972 2893+2142 -6013+-9484 -1102+904 3619+-8021 76+6197 5138+4611 1725+3752 -2096+-317 -9739+-129 4326+8848 6454+6735 7509+-3662 3463+-5501 2783+8954 5500+1269 4218+2147 -6275+1136 8421+-2602 6875+-4581 -6370+-4405 9740+6547 15+2122 -1863+6139 1241+-2931 6846+1862 3374+325 471+6512 6176+9962 7594+-765 -4063+-4693 -8279+1803 -8331+-3769 -6271+-3625 -3207+-1775 -4802+-1089 -2628+5624 5508+-4443 6101+1506 8014+4862 -5416+8430 -5236+-2677 -82+6281 -3713+-7157 -5636+3852 8345+760 -8565+-7174 832+1121 5432+-311 -9621+-6375 9767+-4732 2752+7926 -9949+5058 -3540+3924 6633+-7309 -8552+-6996 8956+-8762 3043+5427 9504+-5340 545+8656 6379+7712 7611+1151 -5754+4872 319+-9587 3362+-2678 1009+386 3938+9050 -851+-1549 -7294+-1952 9156+-7438 8280+4387 -8963+-4296 -6962+1379 8844+-7611 4157+-1827 2344+4025 9609+6999 9377+-3514 5990+-3541 889+-8376 -9031+7912 -9267+-9304 8627+-9584 287+-4757 -4590+-5637 -5597+-6028 -8893+-1278 -1423+4026 -1100+-6521 -7253+1646 -3302+9445 -4612+8657 -432+-5460 1328+428 -5042+-7844 -3100+7910 -9199+3653 9038+8456 -6445+1141 -6735+664 1555+-277 9670+-1444 5256+-4574 217+-2147 9409+-981 -6577+3424 -8295+-275 7675+8044 2460+-8499 7415+-541 -4588+-7641 -6256+1679 -3696+-2236 9925+6479 -8178+1411 -9791+-1982 4143+-8612 5306+-8557 5934+-9779 4442+8853 -3161+5934 -9376+-6343 -2097+-2892 6956+-7526 1545+3487 -5441+-3114 -7786+-9651 4056+7673 7810+-7912 1546+-328 -3524+2877 -3438+-8969 -7557+-7435 -4537+1459 -9119+-2540 2871+-821 -7196+-5144 -2705+8759 -1890+-3382 4557+-7374 -4303+-9395 1553+-7427 1194+6927 -6005+-7526 5659+-1517 -8142+-6549 361+-8463 2280+6015 -7211+5142 -5025+-1525 525+3134 -3275+-2592 2156+-3492 9170+8588 3260+6402 -5772+-859 3953+5468 -1253+-8807 -2977+-5472 2616+-6421 2733+8092 4055+9781 -9635+9474 2535+-1948 -8933+3101 -8957+-7294 4543+7994 5614+2868 -6530+600 -6536+4109 -492+-6014 -1952+-2739 5453+2597 -4436+7250 -702+6747 -4778+5195 3714+6575 9763+1496 -7226+-5173 578+6268 9738+7911 9432+-3749 4952+8650 -9518+-2352 8821+-4966 2502+-4110 1263+3020 1981+-7367 951+-2630 4014+-6879 -305+929 9402+-8115 -168+1369 6943+-5949 -1486+-9788 2686+7726 -1320+4903 2778+3326 -5316+9761 4585+-486 2263+378 2369+-1957 -8171+-2917 2715+7908 -1031+5816 -9608+2779 -3190+-2435 9499+-8145 -3746+1949 -2754+-2311 -5752+6329 -833+3914 1968+1202 5398+-6877 -4773+7990 -547+4869 -164+-9673 1170+2806 -2476+8871 9443+3266 -944+6439 -8056+3040 6917+-8683 -7242+-9318 -8888+-8770 -9538+-6137 -901+-6379 -301+3820 -1222+8600 5336+-7766 -1400+4922 -8045+1891 6124+-8925 5096+1519 998+-6771 8889+-3025 650+5659 4391+4780 5921+-3751 2407+-9794 8266+4950 -3658+-6417 -5496+6339 -6522+-5107 -1298+-562 -9567+-5881 1320+5914 -4925+9731 -5223+-3795 3988+5391 9724+2278 6386+-9808 -7868+9203 -1256+-7710 8396+6441 8256+-5422 9738+6154 -8480+7535 5946+-462 9154+-8837 -4186+3682 9197+-7244 9827+-9326 5131+-8650 8495+6074 -6917+9645 -7415+9362 -4679+-2947 -7811+2818 -8885+-5570 1008+3246 1744+-6233 605+-4016 3816+-9186 1205+2791 -424+308 -5514+3549 9213+8230 -5399+-5531 -9579+-8883 -8034+-7519 4594+8676 8233+-8183 9286+8064 6254+6367 9441+7367 -5069+367 7601+8145 10+2386 2070+-5712 4332+601 -2131+1907 5674+271 7842+-5921 -1757+-1870 9275+123 -7894+9629 -420+2308 -9616+-6814 -7581+-7785 1847+2391 -2442+-9831 -9555+6373 -8824+2988 1749+1775 571+-7600 -56+-5286 -382+-9765 9958+8166 -9343+8339 -5490+4129 7807+-9966 109+-5983 -9617+-5437 -7128+-7281 -3312+3291 6988+4530 -7824+8277 -5212+3763 1276+-5126 -874+4683 -1028+-4157 -3896+4835 -817+8339 -6958+-5455 8698+-2766 -9774+-2932 9698+8033 -4420+-7038 -1708+-2133 -2884+3640 2664+-9928 2337+2172 -8714+9398 -9143+-2660 975+1707 -6240+5305 -1280+5612 -9864+351 5845+-6262 2598+-8564 -3565+-7571 9462+1990 5937+-2761 -8283+-5170 -79+-8356 3908+4570 3227+5455 8949+-5544 7979+6363 -3030+-4709 -4784+-4737 -370+8812 -3453+-3496 536+7156 3836+6246 -8216+1790 -2408+-2445 4567+-9735 8377+5469 2824+5411 9176+-675 -3051+7526 -1261+-4982 2978+-4671 5853+773 3080+-8514 5394+-10 -3811+-398 6737+-5402 3841+-7324 -8620+-1097 9864+88 13+480 -6535+-2737 -6522+-93 -6062+1143 -9156+-4581 -3470+-9608 -1289+4784 -4549+-2475 -7787+5611 1182+7891 -8709+2926 8365+5256 6927+-5961 5346+1407 7491+-8109 2626+2642 6365+-1922 -5411+5026 8978+461 2111+-9071 -4264+-987 6541+-7409 5871+6104 -5769+-9912 -9048+-3910 4045+-9213 -2856+-793 -6967+3022 4128+-5110 -8641+6168 -3881+1381 -7227+8218 53+1188 7564+-9421 -3872+-9484 -5477+4117 93+-5116 3636+-9579 2252+9065 -7195+-6485 -8263+6354 -8191+-5083 -1807+5574 4734+2121 -9974+79 8960+7492 -4525+-2211 4159+6179 1838+-9199 -7567+6526 -2394+-3368 -6247+638 912+3743 8014+9241 -9824+-6578 5523+3394 4524+-6665 4420+-604 -8547+7704 617+2169 4386+-2331 9610+-634 1912+-3220 47+4424 -2204+-95 -4562+1636 5696+1823 -3376+-3832 -1089+6404 -2158+4092 3761+4860 2283+-187 -3157+-4068 5025+-5983 -4353+9500 -5201+-2326 -6252+-5842 8284+-9031 4078+8400 -6510+-9376 -5340+-6836 8262+-448 -1698+299 5621+-795 4881+714 -4203+-6541 8361+7774 6841+-7415 -466+4768 4238+-6821 3224+6247 -7025+357 -2492+3993 -3653+-5611 -4110+-4247 -8334+4583 -9305+2366 2256+8356 -2782+1869 -5089+-62 1590+7800 -3880+-4532 -8256+-5914 4772+-4510 5010+7954 -3437+-1955 -2593+4579 -5368+8275 -4786+-5287 8846+8538 4964+-2477 1124+-6089 4767+-2241 3253+6365 9130+4064 7053+6423 -7011+6852 -8315+3186 -4675+7800 2368+-5746 -5689+-9619 -6578+8387 115+-5986 -7879+-9181 7445+-3622 9124+5350 -198+-255 4771+2169 5421+9502 -8879+6211 9372+2908 546+-5018 9775+-1255 8493+-9257 -2069+7419 -1485+-1993 -3367+4641 -2913+-5321 -3828+-5877 -5581+-3332 4655+-6100 -3569+-9000 5677+6040 5223+-9510 -7566+9539 3401+-9866 1972+-1038 737+-5970 2619+1086 6627+-8863 -902+-2089 9526+-1504 -8064+2937 990+-9798 9788+4134 2780+-1868 -6525+4311 -5691+8282 2821+-5435 -873+6777 7421+-3690 -3908+-7222 -8740+7155 7943+9629 4621+9640 -2427+2069 8451+1480 6702+3923 -8897+83 -994+-2395 3410+3308 -6312+-3096 7710+8945 9613+8179 1856+-9945 8696+7943 8552+5311 -4811+6646 9586+2207 -2834+19 -9112+-9627 -2199+-6439 -9390+-1252 3526+-2641 -5021+-5960 -191+-539 3189+7546 4294+1006 -6309+2684 -9279+-8093 -1360+-4878 -4049+1814 -3547+-1282 9137+-37 5991+5613 1756+-3714 4950+-5476 -5991+-901 6044+6707 1544+9068 -2777+4624 3456+-2709 -8839+1537 -6731+-2497 7001+9906 -6368+-9232 -5606+-2084 -569+7307 -8459+-6283 9494+2173 -8016+-5878 9869+1949 -1004+2864 -3990+3539 -9262+-3992 2382+-2206 2059+-4558 -2800+3235 4227+6814 -9602+5463 8756+-7524 5912+-7840 -3275+365 3803+-4905 -9537+-2722 652+-9311 832+2551 4492+1186 -6763+-6814 8675+-3952 6809+6396 -8940+1854 -2023+6881 -451+-1591 8201+-2168 -2247+6496 3731+-6638 2915+4291 4714+7729 -5269+6667 3592+1423 8540+-3655 -3678+-1147 6447+-6361 2888+6517 3603+-8010 4266+3683 9578+-2622 -8632+374 -3539+3079 -6604+3703 1379+-4712 -8950+-9585 4440+8317 -2113+-1994 2677+-8208 9704+4994 1630+-5043 -4406+8930 3530+1742 -3621+-6630 862+-7550 912+-7123 -5551+-9986 7414+8311 6434+-6164 -2577+4980 1428+-7951 -7509+255 703+3548 1273+-5574 -3656+-1427 8781+8064 -2706+6126 408+-7490 9865+526 -1745+-6275 -6123+-9060 9389+902 -7230+9089 1601+442 2070+3583 6117+-7924 427+-8185 601+-4645 6487+-2966 7+4983 -9606+-7278 9595+-7288 -7154+5874 3149+7815 -8204+-105 5690+8433 1514+4273 6050+-7138 4015+-858 -4346+-9499 -9651+7715 5226+7442 2351+6321 -4922+-3890 -9541+-9178 4036+5112 -6718+6420 -3297+7572 -4023+-6884 -7085+-4954 27+-177 7230+-2740 -2516+7378 8737+-6623 -9330+-8103 -1900+-7652 4668+8031 2199+-8588 9828+9651 -7410+-9385 -499+6560 92+-654 7529+2874 3279+-9349 269+6818 -3410+-7909 -971+2362 -5203+-707 7415+3791 5045+-6079 -5586+-6443 8495+-2619 -5942+4308 -1167+-1024 2384+-1264 2925+-1430 4856+5613 -9828+6258 6156+9966 -7864+-941 -4956+4189 -7863+-399 -5888+6048 6713+-932 -762+-1005 -8340+8367 -1844+4559 -8902+9637 -8297+921 1905+-9084 -1586+8247 3542+1380 -7586+1855 -5600+-4198 4678+-1724 -2149+7746 6196+8050 -2076+8762 9210+8322 2421+-4174 5726+-906 -2032+-3935 339+-6468 7871+-4860 -8728+-3277 2378+6651 -553+6604 -5060+-116 -2944+-7209 -6447+2881 7607+-6569 511+-2110 -805+3601 5902+2044 -4050+2866 3071+-2313 3928+-3890 1497+-5776 -5807+5504 9008+-3120 -2607+-2831 -6431+1576 3806+-1935 -6568+7098 -6102+-3459 6159+5470 -489+-9649 -2713+-1437 8523+-4231 -2884+9432 -4142+3118 9370+4497 -8601+-6260 4838+9401 -2900+-2147 6928+-6925 -322+4647 -641+6153 -4449+2160 -3356+2617 -8944+-2063 -1840+4427 -4809+8981 8653+3619 -1855+-8371 5574+491 3476+-7512 3150+7630 2326+1397 -4236+-484 -4498+3340 -7082+1000+386 -5221+837 -8686+-2202 9656+-4767 3132+-8823 -1720+-5773 1860+-3716 -7107+-4289 6318+-1101 3303+-5001 -8801+-1451 -8085+-2824 6582+8454 -3621+-1769 2740+-3919 6135+8559 1610+4864 -5804+-2884 -5399+9660 1068+-7574 -1137+-7744 -1901+474 288+3787 -9297+9942 -8113+-7802 -3500+2692 2667+-2631 -2714+2258 2956+116 -8965+-6032 137+-5140 -7842+7529 3678+-6317 5754+1990 -4242+1031 -477+9061 -1387+-5088 6416+-2012 7617+9020 450+3315 6467+-979 -8739+-4057 -1787+-3780 -4626+4668 -8431+-1083 3028+8723 9697+6648 2998+-2124 -9857+-1540 -2540+-267 6052+9025 786+7955 -2498+-2699 -6866+-3825 -36+6460 7521+-9278 1109+-3033 27+2935 -519+-366 1098+-4813 -8291+-806 -5143+-3861 -9089+-7111 4528+-2779 -4848+-3856 7818+-272 -9515+-1389 1612+3364 -5552+8400 -5695+5451 8525+-8931 303+7687 9726+2321 4603+4095 9472+-2012 -9822+-3669 -7833+7251 -4545+-875 -8382+927 -8017+1810 7226+7498 -5675+-6287 -2665+2446 -1197+827 -5628+1992 2195+-1831 8202+-4640 -7846+-6260 -8323+9606 44+5926 -5556+899 1699+6941 -4570+-5175 -3044+2866 -4037+5126 -1697+1022 523+-3594 -411+-8595 -9083+8508 6296+-5994 4620+883 4204+-5954 -7437+4535 9248+415 -6474+-5779 8654+2010 8136+-4106 6792+-7849 7377+1414 9462+-2558 -3025+755 6053+-8301 -432+7020 -4003+-7561 -2131+8687 7573+-373 1981+6838 -8844+3707 -4712+2787 2950+6679 -9811+-6382 -4344+-2197 -9182+521 -2791+4322 -7698+-2229 -4915+-9683 -6609+7555 7264+-5883 -9459+6842 -2983+757 9021+-5726 8450+-1971 -8530+-1105 2483+2397 2164+-5161 -416+-7777 -5116+-1353 5280+-4404 7568+-4288 8237+6082 1211+-2724 7824+3363 510+-5899 6277+-6707 -8267+307 2965+-4766 -7190+8004 -8930+1959 1026+-617 9796+8759 -2490+4236 -6117+9958 5582+-139 -1657+6746 -8085+-5591 -3413+7193 1808+8687 -3306+-6026 2710+3389 -5355+1773 973+7006 8396+-7290 3566+4701 7392+2374 7426+218 -2128+-4329 6907+8790 -2516+734 9888+-8470 -2430+-1788 -4279+-5304 8233+-5614 200+3175 3806+7064 -6848+-4641 -4790+4941 4556+-2568 -2493+-6234 -263+-5502 708+-9010 4202+-996 9892+8130 5683+2661 -3628+-1139 -2741+978 -5224+5451 5718+-5432 -116+-6684 -3418+6606 -1703+-210 2605+8465 5341+7624 9438+700 -5675+9241 -4277+7891 -9398+-4042 5999+-875 -4013+-7928 719+3184 4317+-3688 -9648+2850 537+8728 -5989+2152 8636+1852 -7549+406 7587+8464 6057+-8348 1002+-4587 -9173+1188 5494+-8744 732+3982 -5075+-6644 -6156+-1942 5077+-4803 9341+-1169 9099+-268 7775+703 5197+-7158 2829+-1071 4585+4512 1092+-4319 -4276+8405 4737+-895 348+-8840 6568+-9642 2966+-3254 2639+-9134 -7393+-1081 -8472+7182 -5723+-9216 536+-8233 474+-4133 -1764+3604 4385+-6507 -7670+4430 -427+8534 -1415+5787 746+2711 6974+-5300 1301+74 -5739+-8972 -866+1862 -3699+8443 -4267+8699 1808+-2400 -7109+-1273 1507+-122 -7512+-9628 393+5270 -3787+1545 7450+4558 -138+1341 -3665+1273 -9057+1130 -5369+2251 -3114+-4377 3225+-3137 1680+-9300 3067+-8972 -7398+8975 -2862+-4031 -4718+-6179 -4242+4939 -7336+8674 3200+-9214 1220+7095 -9737+-289 -5714+-3003 3117+-7397 1288+-7064 8098+-2263 4176+-5796 -9963+4472 8797+-8853 -5819+6183 3892+974 -8490+6420 1294+7577 -7397+-9264 1728+4389 3454+-1048 -9336+4985 2847+-4199 561+6847 -4458+7692 -6832+-1907 6684+6257 -1674+-5448 7552+4980 4368+-6787 -3377+-447 2650+-7659 6638+-242 -2131+-1501 9166+-1917 -3667+-3614 -1054+3019 -4775+-7534 -2708+-2945 872+4050 5105+461 6384+6793 -7056+4198 1094+8149 -3583+-8318 -1463+1376 -9022+-6809 -9968+-545 -5581+-7718 5338+3335 1536+-2122 1431+-5902 -9903+4148 7517+531 -3024+418 -2914+2912 -6882+743 -3115+-9312 1154+8597 8808+8688 -5706+-2816 -7937+8148 3031+4994 3013+-2695 -5278+-3870 -3483+-6154 5811+-3173 -5264+-4268 7426+1809 -9902+7598 -4232+4928 -324+-2859 -772+-151 1875+1590 -1984+1266 -2751+2962 -6533+-1285 -1091+1707 8670+-3166 -9003+8435 2341+-3489 -8425+-5887 -9275+4684 -3953+2166 2129+-3713 -8401+5032 -4049+-5528 6535+8714 7396+6210 6399+-3647 -1972+-7566 2355+-750 8293+-8559 5000+5485 6151+353 9310+9870 2911+4819 7840+8226 -1938+3504 9477+-4282 -3915+39 -6609+-1266 -7496+1160 -4122+6012 7967+1640 -5255+9259 3187+2933 -587+-7774 9243+-3000 -2485+-2641 6675+4946 -6718+9705 -3117+9142 8787+5179 3307+-9708 -4173+9640 -7828+9579 -7380+8094 5268+2490 8394+4547 3034+3627 -7423+-6269 7298+-2783 3674+4618 -7095+3289 9415+-6404 -426+-677 -6398+-7475 -2175+-3869 9187+-7382 1953+8616 -9163+-9510 -6592+5384 6251+4933 -6463+-5969 9542+7909 -9844+7366 4369+-696 952+-8772 -4502+-2664 6864+-3969 2168+-7442 7531+8013 -8492+-253 7461+2999 -7405+-1299 1678+-4132 4150+1073 -4240+-4009 7404+-2606 1896+7530 -619+1231 -4861+-8072 6739+8254 -6862+-1786 -8636+-4741 -6241+4154 4442+-3267 6338+1920 -4046+6882 8379+4042 8076+6310 -8512+-4577 7926+-6522 -3567+-2727 -1317+-6873 -4493+-1724 -2555+4820 2590+965 -3745+-9786 7216+-2072 2505+1881 2342+-1311 -5779+-9018 -8538+1229 -7351+-6912 -8601+8699 3691+-3233 8607+-3994 1260+-8173 7475+-6085 -7766+7693 4227+-4279 2008+-882 -1101+-1857 7247+-6782 8747+3508 -2616+-8064 -4056+-9711 5987+-8648 -6573+1394 8114+-5040 -5063+850 5349+6096 6754+333 -3914+172 7915+-3629 4169+2947 1965+-6050 -6935+-2866 -5361+-395 -5683+961 4081+-2412 1801+-3720 3780+-4256 -1227+-706 4303+-226 2154+-3168 -9480+-6775 6277+-7893 4423+6693 -3126+3130 566+-4428 -3613+5282 9139+4124 -8239+3312 -3606+7028 8201+6991 4359+1615 3803+4197 -2952+5850 7397+-535 -4919+-5830 8783+7848 -6255+-7939 -7887+-600 1096+5454 4982+-790 -3881+-4049 5336+7017 -5161+-6676 6845+-6760 5939+7236 -8273+-9202 9406+-8601 -6856+8753 8806+-6891 -9570+1660 -9870+-711 -9064+-1937 4467+-138 8235+-2250 -1549+-1194 -1529+9680 -8827+-4762 5673+704 9095+-2515 9766+1133 4378+946 895+2243 -6954+8724 -3400+3410 9318+9173 -4187+-332 8648+-8355 -9715+-2284 -3876+-8753 -1463+-7917 -5188+-2755 7988+7768 -1371+9510 3055+4579 5527+-1431 2039+416 9953+-4195 -2503+-3429 -1021+-7522 -307+3525 -2959+-457 9499+-8575 1646+-8546 4904+-2378 -4995+-2351 4425+3279 -1231+7257 -4975+6517 -2000+-45 8299+4588 5440+-7690 -8334+-1932 -4138+6372 1296+-6463 -1314+5564 -411+4652 3785+-3276 -5453+-2380 3131+5694 7845+4781 -2928+-5343 1161+-8493 -1064+2657 2730+5328 1441+-808 2064+-7236 -8487+-1490 6753+-4816 4314+1708 -6634+874 -1457+4420 -3550+-8730 -1797+-709 -9452+-7145 -4451+4100 1043+3812 -9499+8045 -312+-207 2854+4533 -4861+3159 1258+-2990 1034+5944 -9376+-8262 943+2614 -2077+5848 2880+-1451 3892+6856 2754+5748 -5689+2883 1441+-2347 -8789+4072 5850+848 -9125+3406 5160+2080 9927+5294 -4306+3524 -8953+9672 5293+-3572 -2928+5801 -9155+8626 -2704+2034 2981+8242 -4459+-1931 -9078+3049 -6154+3012 -8353+-9575 -8559+1875 6146+-5412 8854+8622 -8798+-9189 2562+-3589 6022+-9519 3562+-8221 -345+-4068 -3362+-6868 -9987+-5575 2111+711 5102+1866 1137+-2289 1921+3797 4433+3547 -7411+-1042 -788+4298 8471+8720 8827+-40 8967+-8792 650+-7929 6201+4597 -5222+-6143 -3756+-7632 -3818+-7446 -7973+7339 8592+-1621 -6100+8572 5692+4866 8668+-9259 479+3779 -8903+3859 -3418+806 924+-9535 -3423+-4590 -8760+-9934 -462+-8097 4721+5763 9553+4642 -2142+-534 3938+9440 -3420+8636 -6101+4296 6465+-8577 -8602+-7270 -6561+2607 -6457+-5719 5945+6186 -8691+-1817 -8755+2068 -6132+-4802 -7367+-6044 3780+8714 -5269+2177 -7532+7793 -7362+3846 5891+-12 9934+9563 3727+2876 5598+4553 -856+-1877 9835+-7547 1831+-9744 -6841+6781 -2971+5398 -6665+-4711 -1325+-1793 -4105+9149 -5702+3249 8336+3984 -6237+-160 -6142+4721 7984+602 4739+131 6830+-716 -4147+-4937 3455+-7761 3184+-2684 -6320+6405 2960+-1693 -6481+3358 3261+-1672 -1363+-3267 5880+2708 850+-6078 -890+-1304 -4404+9492 -7606+5796 -760+-63 4091+-5536 1647+-1390 -778+-2230 2322+-4659 -9096+8999 8666+-7896 -9732+-118 1669+-6283 7917+97 9332+2698 -2827+6548 4729+-353 3589+-9169 3609+706 -5127+-6302 -7384+-9962 3449+-6222 -3981+2099 -4453+8315 4497+-3447 9410+-8426 -4933+-778 1910+-8948 -9611+5176 4859+-2950 4184+5971 -7278+8515 7930+-6260 8725+-1966 -8526+-2714 -1870+3340 6032+-4305 -6921+-4170 8567+6789 6629+9880 -5968+-2634 -9678+5247 -7740+-2805 -2570+-3328 2808+-6483 1576+-4007 1907+-1034 -4410+6890 -7670+-2336 -5600+5571 -3331+5295 -8075+-4835 -9013+6451 -8189+-8737 2817+-9172 -3924+2438 7651+-90 1593+-6549 -2373+-4468 1091+-1979 -3041+6045 9501+589 -2226+842 -7806+-677 -8282+857 -9128+-1576 -6448+-5187 -2353+4107 6660+-7898 7335+-2872 6133+-1233 2241+2084 5530+-2943 -8907+-2241 8554+4758 -4197+-1633 5020+5283 -878+103 536+-1605 -7494+9978 -3119+7268 -7199+9859 1537+2200 -5604+-2290 6507+8805 2012+376 -1440+-3420 -7270+7405 2735+8755 -9779+-3540 -3330+-5736 6996+4526 -6412+9396 -9885+8987 -6075+-713 -2082+-8770 381+-1266 -4917+3881 8882+8169 4153+-374 9651+8740 6747+-7480 -1030+-578 -5591+5256 -3193+8439 -7702+-3098 2453+4067 145+-7965 7554+5776 7679+2762 -9614+-7549 9073+4859 4596+2688 1064+-6731 5254+2805 6323+6175 7004+4392 6974+1210 -5509+5408 -8287+-3492 -4088+3912 -6817+-4525 -6813+-5838 980+4334 9753+764 -835+-7047 7413+-6697 -6029+-8937 1546+-5501 -809+4837 4951+-8441 8544+9029 3365+3355 -7713+-5890 -1074+6671 1839+-279 -2556+-9731 -9101+775 -4410+4060 -7984+6899 4721+-4447 -1738+8889 2996+-4319 -7539+1064 6591+4232 -7838+-2531 -7354+6012 -2171+6731 -1543+6941 9496+5670 -6193+-3635 9149+6763 -3843+2453 -2434+-591 -902+-9990 -9593+2479 9370+-7950 372+-7433 -1929+-8260 9896+-9005 -7357+409 5549+-7481 -905+9697 -185+-8974 3041+11 9489+-5551 -1853+-5874 7236+5883 8062+2545 6544+-8946 -7365+-4036 8894+928 -3280+8801 -2671+-1810 4998+8461 -4643+1850 -9983+-1342 4816+-7133 5692+1821 9938+9988 -3241+-7309 -7598+-5902 1075+756 -7938+6583 6571+-5143 -3540+-930 -4119+-1054 5821+-1477 3950+8556 -7621+2542 -5959+-6837 1295+5708 -6091+5340 6857+405 4709+5347 -532+-903 5764+5134 1355+-8379 2477+-9121 5028+6342 -7170+7048 -4294+-4 -9874+-4717 4444+-6064 -373+-6429 5713+155 2570+6998 7941+4551 2455+4477 1855+7952 -9622+-8413 6762+11 -1479+-4129 -827+-6798 3870+-4797 -820+7235 1212+-2913 -787+-5243 4225+8957 222+-9494 -13+5254 4110+4598 2710+-9048 -825+-2627 7627+-191 3735+3370 -1474+9432 2215+1078 7533+-9535 -2706+-7635 9646+2764 -713+4749 972+6454 9905+9573 5561+6385 -6177+-8285 7969+3949 -3593+-3046 2202+2641 -9300+5171 2941+-5509 4107+-795 1879+2659 1925+6193 -8507+2399 -8465+-6674 -6101+-6817 975+1540 6250+-253 6796+-1076 3954+-3360 3090+385 1829+7096 -9955+-7542 -6169+-8286 -1815+590 -864+2333 -9907+-3383 9735+-3720 8101+6832 800+7935 -4692+-720 -5117+7853 -3525+-1142 -3717+-6582 -5774+5340 310+7029 1642+-4213 -3118+-649 -4724+-2960 6476+3585 2814+-555 -9396+7503 6520+5290 3918+-1530 -1587+-7857 -3670+4987 -5850+-2150 4847+-1925 8756+-7692 210+2632 -2045+-5299 1772+4852 3454+4702 7756+-9266 4972+-6916 -5657+-5511 -5720+-7413 -4024+-8866 -2408+-4064 7345+-2069 -867+-1828 1866+-137 -1487+4133 8323+-5483 -4814+4256 -2982+-5477 7265+-6654 -5686+4540 7076+-8500 6299+-2936 -1941+5340 719+-2303 -8595+-8420 9160+-5484 -2044+-8516 9344+5596 9408+8995 -5310+-4553 -8660+5261 7029+2314 -4215+-1540 7195+-7961 -8532+-6386 -9467+51 -1918+-5404 9505+3976 -4476+-5553 -2467+-2344 5102+-7068 -7056+-7718 -2984+-2849 5647+1000+2321 -2798+-5065 9581+-3089 4386+-1886 1989+8299 8811+7864 -6072+5507 -1564+-368 -4495+8679 -8318+-7978 3508+7404 -916+7538 -9147+7978 -7540+9585 -6107+-9226 -238+-35 9435+-8311 -1387+3687 4049+5237 -7833+-5982 -4730+-6229 2622+741 -5771+8545 -1654+875 -9146+-2343 -7161+-4863 2741+6113 -7310+1740 -4287+6410 5972+-1327 6673+8398 -6743+-2293 -5985+-9035 4873+-6880 -4091+-6840 356+1668 8451+3530 -5646+-7513 659+5424 -8373+3928 -592+-6616 -4521+1458 -1018+-8836 2799+-3048 -3648+-5765 909+-9219 -7664+-8825 -3011+-6048 1999+-7178 -9851+-5468 6196+7739 7896+-8002 -5400+267 7942+5417 4341+7941 4706+-1932 263+4135 6289+-4114 -7856+8393 1521+-7198 8307+3077 -4898+-2011 5885+9134 -6066+9412 -7885+62 -9534+-3653 5868+-5229 -7923+1572 -880+4520 -4270+-9297 -5006+-8805 -7701+-160 -2676+-1854 -4416+-7083 7066+9285 -2132+9103 9571+7362 5206+-7502 -4250+3079 2275+-9277 -3328+2863 127+-1050 2220+1762 3051+8871 5030+-728 -484+4462 9947+7896 8540+2075 -5941+-4948 5834+2554 606+6200 2193+3404 2654+-4497 -9385+-4411 -8088+-8554 -5241+-7039 4359+-3115 -992+-8612 -9268+937 7874+-3195 4486+-1860 -7015+4344 6258+1902 4535+-1304 505+8883 9910+8121 -7874+-7789 -4678+1213 5225+1557 3200+6601 -6774+-9096 -6741+-5054 8709+-8515 -2573+-1984 6895+-4452 -867+-7560 -7903+-6899 8816+4127 6589+-6589 -236+4204 4562+3707 9050+920 -3077+-6908 4148+7517 7696+564 -5844+5244 -2098+-3332 9793+1069 -8621+-227 7952+-2144 502+7949 2206+7928 8738+1420 -7196+7190 -2534+4644 8797+-1256 -4323+9581 8499+-5459 -6639+-942 8326+5372 -8132+-8167 -2922+-8402 3838+8978 -453+-6091 1873+-2085 781+-5714 9724+4781 -3528+9555 3051+-2288 -3183+8091 -1858+4148 -5604+2006 7304+2722 5735+1010 -5456+3012 -5634+-6095 -7718+-4232 -22+3253 -3082+-2086 -1986+-3733 -7783+5647 -2305+5954 -2929+9543 9864+-4702 1954+-4389 36+4861 -4781+-5436 -4511+549 -9918+-2138 -9790+-9851 -3807+-8151 -3877+5261 -558+7892 -4539+8783 9360+-3771 6267+2928 6141+1020 533+4748 2583+-1675 5581+6107 6605+2975 -7991+5636 -7607+-5756 -2688+2843 944+3158 -9301+-5024 8239+-9221 -2247+4510 -9317+-3561 -7877+-2635 -6811+-3241 -6141+3404 -964+-1616 -6502+-6601 -3608+9084 5452+1529 -946+-1682 557+-9876 6191+-5397 3003+-9675 895+-8672 2981+-8723 -6696+-9380 4780+5014 -5998+292 7293+4904 -3716+6482 -3740+-3407 -8922+-889 -5319+-9369 -9793+-62 -2332+-3981 -9806+9423 7804+8048 -9829+-6439 -38+-5446 2863+-5609 4514+1543 -54+6749 -5767+-9982 1656+-16 261+8503 6278+2800 -8539+-1000 -3604+1229 -1341+-5224 6655+-4323 -9012+-1105 8846+4266 7754+-3743 1859+8044 -8545+-8386 -7313+538 1001+6393 -4443+9169 -2081+5590 -3659+-2416 4433+992 330+-9033 -4582+-6220 1058+3329 -6042+-9961 5541+7105 -4951+4398 3302+-3907 1842+2841 -4654+2882 1068+-8427 2578+-2300 -1589+1261 3809+-473 6390+-3853 2731+25 8740+314 -7253+3251 7161+-722 -1551+-4587 -5843+-201 5330+-6160 9536+-8751 8479+3370 -9465+9250 6673+-1201 -8217+-6866 9290+333 -8493+91 7109+8081 -2097+-8359 -9158+7222 -487+-6670 8902+3697 5958+-5473 -6121+7233 9774+-9285 2603+-5084 6330+-2878 3763+6616 7727+9366 -6944+-8005 -9604+-1349 -5219+-1853 -6263+2196 -7724+-8863 -8782+4615 -1672+-730 6208+-815 -747+-6746 553+6444 -7648+135 9869+3711 -8941+4956 -6002+3301 2185+5644 5809+3684 -1852+-8072 -314+-1514 -1970+-9002 7594+562 4227+-120 -2420+676 -42+3988 7954+-5257 9753+8135 -9040+3509 -9179+9061 3521+9413 6466+-40 9085+-2777 2811+3293 -9657+5533 4038+-6314 -8421+-9311 9672+-4818 6441+-7699 725+-2648 4182+8858 -7023+8335 -7553+-3830 -6002+4767 -5874+-7921 -2175+5989 -393+4360 -82+8168 -5657+-6214 -7565+-1487 -6431+444 -7392+-2723 -7815+9807 7420+-4608 9881+-485 -9447+-6645 6523+-1731 -3365+-1745 973+-9259 -2829+5760 5381+3403 -5308+-9476 9315+604 -1725+-4664 -6552+2956 -7827+8548 -4427+-3981 -36+4416 5789+3672 -4682+5052 2115+1253 9874+-5866 -2430+5752 -7659+6346 -4231+-9148 756+-41 2320+2946 -4950+-5885 -5851+-1130 4341+7061 -4305+7650 1352+-2124 3237+-7098 5642+-394 -1599+9467 8694+-1338 8641+8730 8643+8421 5378+-4092 5839+8122 -1616+-7598 5896+-60 4132+-2552 975+-1241 9256+7579 -1333+-1763 8427+-9655 -4909+9959 -3946+4413 739+-8551 4954+3125 9083+-8569 6082+9600 -3838+3126 -6480+-6760 674+8320 -565+-6439 -9268+-8453 945+4677 2132+4112 -7006+6475 -4205+-1517 -8566+8289 -9079+-9054 -1146+-3859 -4990+-7118 -9275+-7526 -8024+8180 8125+3075 8986+-3452 9494+-20 9597+-8618 3468+-6439 -7804+-24 4804+2270 -6234+-634 -398+-9546 2056+-3432 -6174+-2610 8876+4827 3051+-9587 8829+2550 1401+-2589 -7239+5099 4622+2722 -1479+-2424 5127+2217 6757+2596 5445+-9969 -7989+-6883 -2013+7390 6332+4478 -8456+2351 9622+-5185 -6267+-9370 6543+-6439 -6705+-3245 -5382+-7695 -4217+8624 -8225+-5707 -9112+-9915 -3608+4887 8937+-7789 7462+8207 7260+-5099 6148+-7538 -2587+-9666 -3041+3660 3520+3729 -8336+2 8461+5484 -4146+-5959 2352+414 -4782+2733 -8092+-8124 5735+-3065 7718+2326 -2058+1000 663+4680 6526+-5537 -9331+8432 -4092+-6502 7702+5901 -9116+-4295 -5193+-6381 -1078+-1147 1455+9319 -7966+1733 5157+5522 4868+-6381 -7480+-8365 -1674+-259 5910+-5361 -5726+-7162 -8034+-278 -5425+-30 1708+2378 -5014+-2002 -4184+-6380 6873+-2907 -6474+8097 3320+-4244 7735+-5504 6270+253 -1411+3596 1647+-4018 -515+4432 4900+-6248 3676+1583 -7678+-7598 9281+-554 -1380+-6249 5208+3945 5969+-3561 6026+-8370 -1557+-9594 -594+7523 -339+-3189 1746+-6913 -7377+4581 6043+-4917 718+-1772 9750+-9586 -927+3255 -490+-1833 -3372+-5993 -5806+-2981 5154+-6968 -3056+8693 -9136+8404 -6803+2410 2027+8831 2837+-3667 8186+8153 5892+9484 7750+2527 -8383+1047 -2780+4063 -2025+4161 -1670+6117 8470+-3883 3428+9883 -5189+2779 -5853+4833 -7714+-5151 3443+-854 5989+8442 4398+6615 467+4650 -9049+5342 -5883+-1500 6607+-2693 -2116+-5018 -419+-3635 -8301+-3615 -9003+8133 884+-7153 6644+-1916 1796+6264 -706+755 5147+2779 -3060+-3434 8405+2862 -4723+-9525 -536+-7499 7013+5071 1320+1019 -3693+5900 -7931+1786 -2740+6646 -8751+-534 -8475+-1861 -8758+-1697 -1902+-2378 4358+4591 5093+-8866 247+-748 27+-4591 5473+1034 -3200+-5636 7520+-5085 -4392+-6654 -351+-3619 -384+9588 285+7287 -8582+-7415 4294+-9975 -342+-6540 4319+-7547 6952+-9136 -3349+5125 -4830+4000 2646+-5279 -1252+1868 -9221+-326 1051+-8342 -421+-2620 -4191+-9880 7189+-5631 170+4808 5630+-3200 7661+4020 4511+-8560 180+-1788 -2257+4340 5660+-7819 8351+-4755 -2635+3015 2361+617 -7509+-9883 -2475+3991 -2210+7500 -1290+1531 -8097+5801 -1651+-6888 -1724+-5719 7942+-6892 -1629+-4363 5243+-6094 9674+231 6438+-1447 3789+-2562 9725+-3714 -6695+5610 -6791+-9496 -652+1505 -3710+4789 3299+-8932 5561+1766 -8946+593 -3678+3359 5128+-6246 8007+1205 4460+-7063 646+338 -8346+4165 5777+943 1401+-7851 5304+9545 2104+7673 9203+921 -3309+1016 -421+8454 8891+-3096 6016+6806 5087+9936 4295+-6654 8240+-3053 7324+-4031 3267+-8342 -5071+9038 1244+9553 1795+6201 1467+1900 -9905+8102 -706+-5743 -1924+7720 7230+9591 -866+2027 2362+-8351 6476+2836 2849+-2844 -5034+-9379 -7168+5531 -8698+6781 4673+5685 -5237+2942 -4113+1842 8421+4057 -4104+-934 7077+3021 -2755+1888 -9022+-5123 -1333+-9221 -3820+-9543 -5235+9333 -5945+2063 -7720+251 -8090+3352 -3774+-4917 -7375+-8714 9492+7153 -8934+6567 -9717+-4266 9357+-8358 1605+-5706 704+6037 -3062+5446 1474+7831 9634+881 -9783+9538 -4250+-6826 -9393+-4076 -3338+7343 -4034+-4233 -5622+3458 -7268+9838 7196+-9891 8403+-8155 -2076+1626 5124+-2257 -6649+-7215 9211+894 -6861+-2738 9774+4168 1595+-9677 -638+-1258 6125+-7718 -8411+-462 8298+5450 -3079+4393 -5788+1286 -9427+3894 5153+-2695 813+9111 -3699+-1995 -3465+1682 -6473+-8555 3905+-9464 6068+3065 750+8541 -4297+-8882 -1435+5877 6572+4499 159+-2421 4890+4470 -6039+-4477 -1794+-4246 -352+2804 -7430+-5396 -978+5891 7931+-2298 -488+-6699 -9483+-1347 -1344+1475 7550+-9443 -6336+8615 9373+280 -6674+6865 3001+7852 5480+-231 -467+1160 3726+-2014 -3997+7564 -300+6689 4732+-380 -4214+5960 -2698+-2924 1255+-7367 -7402+2603 -4348+2351 2507+-6786 -8491+-148 4662+2847 6730+2897 6260+5542 -6063+-3387 5184+-7340 -4957+5928 -9595+4342 -1697+-3512 9575+-9050 -155+3012 -3209+-4013 -3386+4440 -8613+-5269 9464+6810 2079+1461 -8687+1040 1106+7327 -2967+678 -1615+-2851 -8662+1554 4218+6440 1980+8120 1182+-9489 -8265+-6757 4031+6646 3935+-403 -9200+-2388 -3930+-6924 9367+4638 -4774+8849 4949+7278 -2360+2825 3126+9411 2023+-1737 8643+6 -833+-2261 -3290+2141 1679+-2716 -7698+-2478 -8014+-1177 6317+4943 8846+-7846 7399+9212 3543+1421 7691+3748 -2698+5398 -6069+974 -174+-2561 -935+3133 -7756+475 -4243+3768 1133+-3498 1847+8331 1802+-2175 3704+-1923 1646+2763 4084+-1934 500+-5306 -5533+293 9417+-9232 9245+4437 9058+9844 -5555+8792 109+2634 2054+-7854 7903+6331 4236+1202 1234+-1768 1696+-8444 -8031+849 3403+-3604 160+-7633 -5525+9686 -2106+-3119 -5975+-2799 5362+2882 9770+8174 -3572+-4972 -3151+9782 2280+-5889 -2158+-685 -4622+-4215 -3298+-1816 -8351+-6691 1300+4740 2442+-2531 6760+-8439 8031+6495 -5245+-1743 7184+4697 -4322+-4073 4463+-7096 4332+-1198 3783+6165 7187+1758 2630+-1868 7802+-4722 1218+7060 6686+4676 7117+-9993 -6262+-7095 -4988+9800 -4170+-1164 6385+-4850 -339+3960 -7890+-6521 -1281+-847 5823+9831 7360+-3503 -3130+-3089 -6230+-360 -9667+-7243 9025+3067 9663+5817 -7874+3797 -6874+7899 -9499+-9434 -5166+-9843 9045+4874 2964+7678 203+8464 -6379+-8723 6262+9383 2475+-2379 -8011+-4091 -7462+-7111 837+8488 -6476+-3328 -8000+1734 -8672+6331 4705+7865 2624+-6745 5449+6345 -2686+-3454 4561+6000 -415+-4938 6102+4323 3911+6309 -6304+-1050 -337+-3494 -2641+2930 -6263+-5505 -1037+-3606 -43+-1073 -6053+-1422 8458+8684 -9777+6436 -2167+9390 6677+7465 6651+18 7210+7797 9266+-2450 815+3356 -1981+-5960 -3490+9223 1836+6130 7828+-8393 4201+-98 6074+1311 9709+6422 6897+8763 -6697+-1640 -7892+-9001 -9647+3365 -8790+2697 -3753+-8719 7960+2322 9206+4085 -1486+-1449 6444+-5153 9315+-723 -478+7895 4702+4445 -2623+8965 -5124+-3428 -2414+-366 -2477+-6542 7029+3530 -3628+-5452 4954+-1107 1323+-3664 220+-3140 4831+-6688 2227+7195 -5599+-5575 -8359+-7546 7939+-8587 1371+6647 1084+-9952 7378+6408 8102+-7955 -8572+-6337 8105+-96 -3737+-5951 9760+-5765 -1487+7138 -3073+-7159 -8950+4877 -2282+-2617 4047+-4517 998+-5102 2158+-4923 9420+1804 -4049+5196 2968+-7420 7750+-803 9754+6018 -5887+-9719 -1393+-1157 2305+-7196 8752+-9226 6333+2670 1564+7539 -1959+8436 9892+-3044 2688+-3156 -7901+2413 -6011+-6090 7782+-9870 -6269+-4921 7817+8577 4120+-5122 -5295+3398 -3572+9232 -9119+4623 -3964+4427 9613+-7439 -1742+-1962 8323+2299 -9854+3670 6086+-2937 -1457+140 -2707+-115 3258+3747 -7327+-7273 2534+8336 4586+-8028 2188+-6569 -816+1016 -9472+8776 -4741+-1641 9140+6904 -5684+1418 -1730+5049 5463+8456 -5902+-1090 -6434+-4270 9186+1505 -9872+-8118 -6694+362 -7854+-6975 -7226+-9488 -4024+6394 -3502+1320 2509+-2912 4293+151 -1790+-386 8817+-1454 9174+2490 2895+-1122 -3334+8668 -6560+-2379 5980+5221 -4886+-4708 8671+4063 6346+1528 3275+-256 5578+-1797 -5016+7542 -9866+7835 1686+-1123 -2376+-420 -7965+-9196 -8266+1113 7815+6323 -5545+9720 -8652+8787 7769+5906 -9157+-7303 -1354+168 2284+-377 7652+-1316 9255+1000+-9217 -6471+-2148 -529+-2678 8598+2586 8153+7639 4341+1518 -2590+-4188 5249+-2901 -3000+8412 2264+-7257 -8480+-4057 8849+-6355 3640+-7362 787+4307 -1580+-4411 -7717+1101 -2025+3337 -587+9784 8510+-6134 3206+4407 -5717+-8499 2701+-181 -780+-8453 651+-1930 1126+7735 -3126+4686 6547+-6293 -6772+3406 5291+6279 1512+3900 1698+-5141 7523+768 -1490+3572 -1461+-3738 -4718+2805 -7210+3209 6454+-5407 6456+1089 -4612+2939 676+-9806 -6197+-7342 -9848+-8052 8319+3474 9396+-5745 5734+3810 -922+-8307 -5173+-2521 6894+-2171 -8066+2298 -7500+4584 -6689+246 5579+-1160 977+3516 -8240+-9628 -1658+9147 141+-2078 -509+-9597 4325+-3445 -2692+-7631 2952+-6188 2971+-2816 -263+2484 -680+2560 4719+-2240 -7284+9417 7638+-8205 1741+-899 6648+-175 -8009+1914 3606+-4812 9368+-6380 -2741+-7721 9997+-1002 -3162+-1811 3640+9592 7029+4101 5989+7753 9950+5708 3929+-4333 -8027+5693 8311+6074 4984+-9633 1930+-5484 -382+3851 3489+-205 7554+-9901 4249+7938 9487+-739 -58+-676 644+9705 8953+-6646 6951+-6114 9488+9575 6984+-3906 6234+1689 -5531+-7874 447+7909 -7974+-5971 8464+7080 8889+7368 971+-2950 -4182+7615 -1458+1865 -3059+-6855 825+1227 -7078+-2935 -5498+4246 337+-9883 300+-8278 -3446+903 4615+-8625 -8613+6320 5728+-8350 -6816+1271 -6153+3701 1252+6373 417+4370 -3717+4549 -5332+5626 -8067+9893 9431+-1805 7450+5440 -6517+9513 -770+6002 -1150+-901 -7401+-4658 -9157+-3365 -7331+-3048 -8077+3844 -5017+-6023 4214+8943 1329+7360 2804+-6182 -7877+-7822 -9027+-946 -7148+-193 2745+-5434 3233+7195 6758+-4486 -8817+9121 -6943+-1543 -4585+-1585 6091+7939 -5096+1352 -596+2883 -3005+-2807 -556+4859 -6321+4216 113+-1302 2218+233 3775+-8992 -4298+1731 -2505+-72 -6322+3492 3712+4031 9497+-8822 2998+7923 -7393+9192 9292+-9401 4689+-2038 1368+-2631 -2237+3561 -8524+-3242 816+-6263 3657+4786 -4803+5683 -3635+-7620 -9142+7844 8635+2800 -8495+-2152 913+2977 4720+9816 -1473+-59 -9891+-3148 8768+6150 -5805+2770 1346+-5837 -782+-3134 -6658+-7856 -4587+2039 -7068+3795 5932+-3717 7341+8708 -3603+-2001 7109+-8752 8559+8923 -2393+2501 -3305+5146 -5039+-1247 -4863+-4385 -4145+-9962 -2373+-5456 -7137+6809 7685+-969 2338+2593 9771+4971 8002+-2153 3177+-3775 7844+3446 -1662+6465 9574+8389 -9705+190 2710+6779 759+-8504 -7408+-6069 2363+2338 -5274+-8320 -3587+6580 -8657+-1958 -89+-7033 6733+8803 -6496+-5307 -5839+-1165 7368+5514 9359+5711 3679+-1934 6747+9648 6762+7439 3125+2434 -3179+-5094 2841+-7645 9072+-1254 3065+8913 4727+-7172 6420+9714 5978+175 -3671+-4209 3760+-1428 5655+6493 7886+-514 846+9648 -1725+8278 9046+8859 8516+6146 5382+1821 9546+-1521 6318+5267 3891+-6375 6330+-4218 -6829+6949 2783+-712 -5887+-881 51+4835 -7333+5822 3887+-7230 6908+-8744 4935+-640 8004+-2285 1485+8834 -7328+-4160 3856+1890 -8006+-1240 -3865+8855 -6177+6074 -1515+1366 7536+9558 -6711+1397 3870+-5059 9186+-8632 -1631+4563 1974+-4615 6230+-9901 8301+-421 -8807+-7637 -3931+3795 -2904+2992 -9017+7609 -3328+237 -4191+-6957 272+-7047 -3664+5762 -3603+-5338 -551+8535 4700+8504 -3489+5407 -5807+8696 2411+5605 4930+-8677 793+7874 -4941+-2946 -9604+5159 -5178+-541 -6639+70 -4642+2939 6724+-8320 4022+3907 8428+4021 8314+7346 6129+-6648 -2262+3540 6126+-989 -5978+-8153 4749+-1606 8698+-8684 -9127+5714 4487+-4119 8684+-9709 8871+5262 1803+6809 -744+3426 -156+3983 9096+9503 -7948+-7174 7796+919 4514+7369 -4463+4620 323+-2804 -848+-6685 -3291+6011 -1042+-1133 -689+-9573 5608+7330 -2732+2110 -7315+-2090 -6857+-6295 -9146+-7154 -8825+-6076 8680+-5329 -9759+6232 -5007+6842 1328+1477 -8413+-5635 -5296+3578 -1168+9567 9879+-1448 5744+9541 3614+-4412 -2167+-4835 8105+-1731 401+250 7455+-8995 4828+-5257 3570+-5490 -4382+9551 6165+-9507 -3790+170 -8625+1473 1839+-8706 -1201+-3763 -2261+-793 -8498+4891 6750+-8475 5330+8591 7209+-7888 -4852+9043 -3585+2691 -1722+3889 -8402+-8250 3704+9790 5560+8915 -944+1985 9778+-528 -8115+6853 -6482+-9666 6629+-5037 625+5209 -6363+9764 9622+8517 4870+-7582 -9276+8033 4471+-3796 -6664+-1183 -2257+2118 9127+8606 -856+-4949 -5908+340 8374+-3280 1395+-3375 9395+9256 7916+-6235 761+255 -2931+-8548 674+2527 -4157+-5440 2000+7818 -9379+-8027 -995+3852 -1702+5943 -6936+5855 8702+9980 3770+6667 -8459+3630 -555+1263 8500+-9520 4091+-6464 -6052+-8803 -7651+8576 8376+7642 -1073+-1473 -3169+3532 111+5191 8624+-9077 8153+6057 6272+2251 4327+-481 -9557+6727 8815+1477 3600+-6959 -6315+-5140 -8999+-6907 3178+5216 7697+4083 -7531+-5355 4680+-291 3209+9010 -4352+3952 -2281+7068 1026+5921 568+-998 3134+4330 -5512+6165 -2400+-2718 -4329+3806 8369+759 -1873+3068 4351+-8000 -2020+-7440 -80+-1361 -8807+2587 8088+5285 4376+1734 -818+-2941 -5855+-769 1757+-8249 -5191+5923 -3672+6365 -9023+-7450 -9415+-3263 1777+-4676 -8153+-976 5661+8034 8917+6995 -9663+-6737 -1770+9308 9550+-7709 -3873+9842 1956+-5830 4787+5628 -8641+-5003 -4504+2892 -8897+-8339 -4556+-4314 -2496+-5349 -3428+-3509 9168+-6966 -5793+8020 -2310+-9922 7970+-6133 7423+-8263 -7089+-5805 -3900+-3566 8768+4535 -601+2298 -1813+9039 -9956+6347 9615+-5084 718+-6471 -8836+6225 6544+-7339 -4777+-3898 -7147+4525 7441+-2696 -2442+-3876 -2376+-8705 9913+5258 -548+-6796 -44+7769 -5958+2215 -3064+5422 5650+-7559 -9902+-8275 -1012+-9736 -9089+6737 -7127+-7417 7691+157 814+-3022 5890+-3678 -7209+-704 1150+4879 -9697+-8919 930+-8971 960+-4164 7906+6635 4952+3244 7497+-1757 -4723+5368 8283+-9055 -9268+485 -8273+5234 -891+5316 5025+624 8019+4412 -5878+-3386 7884+-1675 -5210+-2050 7203+3760 7876+-2691 2480+-7080 -5752+1833 9204+7144 4866+-5576 9597+-4364 8805+-9152 -7768+-8658 1240+-9940 8524+2292 -3538+-2082 3283+-6654 -3326+-8409 4366+5440 2403+-5822 -6177+7010 4804+-5536 -3387+-3366 -7285+4152 -2024+-6546 1978+8315 -2514+8108 2196+145 1992+-782 -8606+-3193 -5507+-9189 7558+1293 9629+-9901 -9727+-4122 -994+-6431 -9587+3447 -1670+4999 9294+5020 3841+3765 5053+4108 -3684+5469 -7014+8823 -2733+7061 -9244+6970 -8360+5792 -8239+5474 3710+6006 8751+4283 -639+-4226 -1070+-1458 1723+-9764 -5469+5673 -2118+-5162 -1101+-4488 8802+-4269 3570+5291 93+8689 -7030+242 -7433+-9759 -3471+-3786 3520+5815 -2522+6395 -9219+2260 3837+-9592 1741+-2015 1065+-9575 -2163+-9013 -9502+-6422 -5715+2320 -3669+9241 -4481+9884 8922+9850 9508+4052 4312+-1062 5735+4012 8002+2260 -9973+1835 -6194+8633 -7316+8325 -8687+-8898 8910+1407 -4681+2493 1259+-7099 6823+-7556 6720+-945 3201+4801 306+8971 4741+-7203 9808+-1173 -4792+7415 -1292+3663 -7544+-8920 691+-848 2561+-8541 -2367+1592 7429+8771 -4928+-8347 -760+9588 -6947+5251 -9534+2804 -7099+-9831 8081+537 -9237+-7252 3443+-9101 -1733+2797 295+-4592 -3920+-3362 -4102+8418 -7181+242 3458+7104 3993+3498 3787+-1949 -7714+5463 9282+-6372 7361+-2870 -1549+-6615 9960+-3087 -722+221 3848+-2136 9723+5386 8099+6357 -7185+2044 59+-354 -1298+8664 -4023+466 -1927+-8623 -7842+5658 9701+-4157 -2715+2710 -9935+-2900 7513+9919 -2683+-6807 -1267+-2975 -9003+6848 -6364+-8949 9929+5578 4400+-1204 4929+-1444 3136+7320 5479+-3254 7578+1000 -8869+-9019 -5255+7982 -70+-1387 -1725+-4658 -3201+-9001 -2530+717 9711+296 -6855+5843 -5076+6893 -7234+227 3006+301 -9552+7746 -8977+2669 -7786+-6139 4956+8960 2742+-7580 2924+-8845 -5765+3718 -2842+6370 -5852+-5545 7637+-192 3106+-3146 -9354+-7321 -2666+-3364 2918+7046 -9599+5896 2449+5783 -6979+-3428 6630+8503 6497+-2954 7623+9625 -1289+-6060 8851+9578 6266+-8694 -5779+-2508 1266+-7973 -5639+-5353 -2249+6147 -2131+-4162 5382+4369 -3215+-9654 -1847+899 -7362+9403 -9521+-8079 -4335+-2182 -2301+-4995 4692+3279 -9353+7104 -4045+8188 -8648+7065 -2445+-1533 7617+-3312 -7997+5815 8674+-796 -5440+9404 358+-5149 -7058+5802 -4150+6446 5619+-6986 3339+-5036 252+9868 7812+-4637 -1427+-9596 5418+4690 -3545+-800 -6022+-8993 -5865+2602 2613+7991 -95+-8358 3706+5887 -5882+-7633 -3891+281 6406+2087 1098+-3793 -3055+9653 3413+-4599 -7734+9981 2817+-6344 3208+-8555 -4077+7530 4742+-2297 2711+-4199 -5515+-438 3205+6734 -3337+3685 -6055+1504 -1488+8824 3101+8946 5346+-393 1565+5766 -6756+3014 1166+9546 -2707+9287 2956+-8240 6703+172 3853+-4995 -6183+2801 7757+-4816 -8675+6559 -3249+-324 9047+347 221+-7782 -4107+773 -5718+6758 2867+6967 5220+1935 -416+5521 -9952+2708 1845+-7589 3766+-5167 -4498+921 8300+5422 -6848+3501 -659+488 4861+-1443 1565+-7102 3445+1620 9882+-9279 -3200+796 2685+-6893 -9606+-4381 2437+5922 940+-6005 6304+73 7185+-7807 6147+3111 8724+-1668 -3472+8980 -1365+8232 -4649+9026 -9182+252 2790+-9161 7655+3251 9772+-7706 -2274+-9866 -6999+8819 -7955+6200 8056+997 7589+-5422 6496+-4951 1745+81 -2486+1530 3681+2277 7316+-8794 4615+55 -9335+7088 7126+6842 2284+7947 3005+915 -8892+-52 -7617+-9496 -391+-1044 5945+8079 8420+7244 785+6502 5367+-8141 9449+-9403 -5963+-6377 -6237+-632 -4492+-1602 4594+-2110 -8493+-1014 9526+5902 -3818+981 8090+-7761 -1070+-3347 -9421+-5448 -321+-8903 8527+3762 -5374+6098 4695+-4233 7645+1956 -7033+-9928 -9226+9696 -6841+-8049 -840+-1673 -3871+8094 -6935+-7660 -2777+4858 1121+779 -1955+-8869 -7032+6282 -8251+-3647 4465+4335 4970+-8441 8862+9638 -9087+8773 -9140+-4793 9694+1232 -8805+3720 6373+4871 -1808+8409 -7606+-3946 4315+-9317 -8851+-1235 -3219+4752 -8121+-1676 9398+-5388 -9034+-6034 -4419+2982 -1371+4609 -7862+-6400 -2896+-2248 8405+754 -2665+-1036 -7362+7688 -1725+-1549 3661+-5324 -3761+-7768 8067+9950 -8334+-4827 1017+-3795 4972+7302 -8222+290 -7586+-8853 4934+-4936 -5189+-4363 -902+-4699 -2634+-5522 7854+902 690+4914 9+332 -140+1812 6294+2525 3705+4948 -9651+-8817 8075+6929 -4548+-2288 -1735+-7580 -3384+3152 764+-3640 -1562+5937 -6052+7615 -150+8726 145+5357 953+-2750 4765+-6664 1162+3147 9097+5238 4777+-2192 -6673+303 632+-2640 -8384+3527 -4900+-2168 1161+-6572 -2073+970 6961+-7919 2458+-7405 -150+-9078 3343+4149 -1258+529 -2796+-755 9777+6853 -3890+4800 -1558+-1140 3742+-73 -4794+-1891 -5343+-2545 -3135+-3938 -2120+-3933 5230+-6738 -736+-2167 -984+4379 -9502+5219 -2387+5447 4581+6157 -2773+-113 -1233+-9839 3314+-770 -1892+2629 6469+-1798 7906+5898 8274+-9064 2497+-1756 2097+-6490 -7178+9407 5207+-584 2687+-1017 4208+8346 7679+9159 -2533+-7170 4578+9694 3366+-4266 -4012+2582 6249+2903 3988+8563 -7984+6658 -5451+-4271 4186+-2020 -771+5540 -2181+900 -2913+1877 1055+8918 -5696+-2849 -6100+-891 1222+-2076 8633+-5070 -6806+4836 -542+4815 5711+-945 -4353+-2845 -2495+-4 -7229+-2012 -7685+6889 8223+8778 -5149+6369 1881+1277 1983+-8870 6099+9440 -8493+2022 4053+-8413 2376+-9606 -7760+5060 5796+9789 433+6345 1974+-8797 -3046+8385 -1104+-218 9291+-7140 4688+5816 8199+3127 -2742+-289 -7256+3315 -7251+3940 -5517+-7869 7241+4031 2111+-4625 -6095+6139 146+-3348 -5366+-1252 -2753+1685 -1355+-5382 9206+5650 -8739+8204 -1867+8328 4481+9432 4876+-7407 -9027+2192 -7017+-3084 -3098+7759 333+6975 -9128+-626 -2169+-4346 -1364+9858 8010+3075 -4989+-9778 -430+-5666 -5506+1772 -5923+2533 -3002+-3086 -8320+3038 -6964+6962 -1365+6378 -9074+3316 -4655+226 2851+-9533 -9309+471 5486+2165 -7081+-6987 3646+2694 5178+-8009 -1308+1290 -1644+8039 8886+9095 -7514+-7940 1285+2946 -3457+-666 -9778+2558 3412+1000+-4315 -4669+-7827 1646+-441 110+-792 2550+-961 -4170+-6521 3246+-5395 -1343+5292 1217+4624 -6598+2446 -9270+-3005 -4551+8959 4673+-6696 -3785+9255 2271+6364 -1363+9570 1851+1171 271+-544 5345+-1426 6888+8888 5717+-1447 -5974+2188 3846+-6043 4561+-4211 9852+324 -8907+-8475 1708+-6052 5872+4813 9848+-3434 -4273+2355 7460+-6733 -1277+2938 8097+9071 -4454+-7663 778+4717 -4361+-4127 -9735+-8963 6252+1751 -9998+9453 4898+-180 -5226+4080 4401+-3822 -5281+-9685 5106+-7234 7299+2750 -7403+-4010 -5684+-6283 -4555+1675 -136+1993 -941+5565 2244+-6482 3897+-5735 -4628+-6161 3248+9253 -3362+9575 2253+1107 -6214+9521 4455+9646 -5515+-8629 -9143+7494 -7414+7179 5522+-8504 3533+-3511 -9696+6817 1057+-5589 7473+-247 -7656+3663 -6269+3729 -8319+-103 9706+-7036 8083+7293 9717+8931 2753+-4819 1151+2154 4921+8354 -8434+-945 -1755+-3210 1860+-9178 5447+-6536 8532+-3823 6968+6875 705+-9682 8446+-1173 8199+5518 5268+6251 -6324+-3942 5130+-3832 6297+4584 2720+-5095 -6946+-5237 -4485+-7057 4138+-5936 -1502+6308 -2072+-9750 5481+-2676 2114+-9783 -5435+8868 -9938+-4650 -2393+3776 8782+-3652 2892+-3231 -5471+-6619 5936+2703 4509+-3331 -2196+-2358 4057+-1708 -462+-5898 6555+3027 -2160+-4796 -3856+5801 484+-3973 2820+2843 9222+-5972 4054+4732 -2425+5183 873+6993 -9173+-4082 1457+-5646 6144+8652 -4461+4922 -2833+3840 -7663+-9423 3522+-9844 2628+2203 38+7901 -8587+-281 6484+-5317 2068+5106 3393+6567 -8510+-9956 -5424+-1503 -1741+6580 -7457+6190 1914+8738 6655+5574 5246+-4495 -4918+3505 1359+7237 8176+956 -4129+-9825 -7540+-4832 -29+-8517 -4211+167 -1140+714 -9165+-2321 -4039+4948 3259+-5984 9332+1629 8769+5018 8374+2968 -4093+6851 4002+640 8735+-1619 4353+-852 -1228+9321 -8677+1624 -4929+1715 45+4237 -7688+8083 737+5994 1834+-4676 -9095+8643 5391+3395 -9570+-4486 -7313+314 6239+-2878 -9036+-3380 3525+2749 -3014+-958 1278+-2304 -8781+9088 -1177+-1062 -5762+7600 -9537+2891 -7997+9015 -7842+-8273 -4833+3417 558+4988 4542+-8585 -6576+-221 -3076+2247 8910+1103 1226+3526 3671+-9036 1610+1257 8097+-4482 -3930+-5157 -706+-5935 9308+539 336+-798 -5712+-2637 2021+4162 -5889+-8009 -7644+-4884 -1719+7278 4158+-7840 -7792+-8194 -4843+1799 9132+3654 -4471+-5735 3263+-6858 8819+4081 3692+-674 -462+759 -4123+8771 -4413+8386 -4944+9698 -4007+4913 9476+-9956 -7594+-62 -2685+-1561 -5700+-4914 9741+1734 -5727+-2410 9603+3210 -8603+-1563 -4140+-9044 3862+5936 1161+-1381 350+-8733 -7890+-8025 -6977+-704 8888+-8098 3142+4408 -2492+-5259 -7132+538 -2282+2529 -1090+1229 -2243+4059 -3346+-8029 7049+1234 -5618+3068 1001+-7116 5531+-2424 -205+-1902 -2117+7196 -9488+6088 1520+5161 5634+9696 -5110+-3165 -7274+-4118 2407+-2526 -7083+21 1855+-5260 6416+-8421 7407+-2518 9332+9027 -7870+2534 7267+80 9428+-9573 -6078+8230 -7298+-5834 5108+-9141 -6927+-6231 5119+-9549 -9016+-247 -1619+8092 6392+6289 -8468+7495 -935+5375 5675+6732 -1996+6206 -7431+7814 -2467+1445 -1889+-389 9680+9638 8676+-5343 6072+2643 -3222+1044 4842+1054 -4066+-9614 1050+901 9382+4740 3794+9328 8770+9322 7275+5314 5899+-4639 3912+5411 3745+494 -6615+8410 665+8869 7318+9720 9292+5563 7829+-8175 -9231+2978 -5673+-7030 8220+-4803 4472+-6075 -4989+-1997 6405+-3016 -7898+-8570 -9054+3441 896+121 9049+-4501 2638+6263 6695+424 108+-7582 -7260+8931 -4733+-7091 5032+-2686 2978+5319 8169+9304 -7226+-4592 8701+-1465 -3328+-2778 5505+-2500 9378+5695 7101+-6436 -9131+-5748 5417+-4514 -9385+7671 8819+-7618 -3890+-2869 -9231+-9322 6671+7981 -9703+6427 5176+7412 5355+6895 -3842+-5943 3396+1849 1829+-8307 7444+-931 5271+2670 -988+1970 5230+-9163 1057+294 -501+-858 -9425+5780 6075+111 2601+7059 2612+1496 261+3260 9259+6473 -1581+-2942 -9186+-1218 7778+3442 4333+237 -6512+792 6735+3350 3509+-3336 1241+-6145 3212+3620 3031+1841 -6664+200 -9497+8989 9113+2231 -6082+7418 2335+-3293 732+9138 -5087+3007 3615+-5570 2136+-1048 -7978+3435 8421+-5281 -1160+-5741 7064+-438 2523+8410 6560+-2171 6156+4351 -4559+-9033 8378+3762 -8699+1303 -7692+-9243 -8111+-7058 -3929+6037 -3944+4261 -3396+2294 8054+9998 6337+6388 2323+6783 8359+-1496 -7258+-1972 -8275+-5532 3965+1679 -8419+-4495 1141+-9252 1268+-1153 6196+5959 -7913+4184 8632+8677 -8304+-2924 2984+-3459 -8742+-9957 2046+-7694 -1525+-4302 -8212+555 -4419+-5981 9446+8042 4864+2190 -5605+8820 -2960+-3835 7582+4359 8217+3455 -2045+2330 8785+7480 8569+8635 -2423+270 7032+-325 7018+-1320 -5163+8926 6236+5741 -7439+-3468 6117+5442 -3013+8255 -4432+-5203 6943+4150 -6884+-3797 -1452+662 -3664+9254 -7558+-6061 1373+6737 -5698+-5746 -1285+-1684 -2616+-580 937+2375 -5531+-755 1388+4731 -8644+3240 -6027+-157 -2242+-8256 -6479+9509 9633+4463 3616+-9010 1200+-6954 2670+-6648 -1700+-8745 7033+6529 -504+-7974 -2864+-1973 -6356+8117 3608+-5870 7168+-2988 2124+2788 8862+-2365 -8828+9438 8009+1454 -7557+3587 8528+7392 9650+-8164 9555+4671 -1753+3471 9841+7694 -4827+6004 8628+7829 -2457+-1713 802+8945 5330+-1967 -5403+4114 -2303+-2157 2372+2636 1862+-7512 5259+956 -2292+175 8308+-4696 -2212+7092 -124+8261 -3927+7097 3659+6562 1460+-6019 798+9127 -6589+1241 5391+-4478 9625+-7977 -471+-2058 -1844+474 -6488+9454 2008+-7865 3032+-2323 6299+-5469 6362+2635 -7316+-1742 -2816+2290 -220+18 -8806+3007 5341+-9698 1948+-6478 1552+4536 5761+688 6720+-1283 -6631+-3399 -1421+-733 -8715+-7688 -6451+1131 -8865+7388 6113+-7350 271+2672 1576+-6882 427+5961 1989+-7619 3297+3896 -8602+-6778 -1082+-5507 -6045+-9059 -9914+2264 -8080+-2931 -5484+-895 -9309+6383 -6935+2049 -1186+5308 2868+-1749 -746+835 6398+-3358 -2740+8323 8066+7351 -772+-4952 5229+3230 5094+-8412 6454+-5053 8782+-9741 6427+-6725 -150+-2781 8343+8348 8958+7062 6947+642 -5626+3882 -5152+4292 -8946+1676 6168+-3908 -5823+4287 -754+-6677 -9603+-1872 -1780+-3332 6379+-4552 965+-2703 -9387+-5047 5135+1676 9729+3059 -4420+2368 9288+-6367 -5964+440 1914+8557 -8042+9477 -8631+481 -4776+-2418 531+9048 -8414+-1450 2160+6773 -5084+-64 -3538+2050 -3407+-3179 6361+-3585 9383+-7085 -7124+-5751 -3784+-5343 1857+-7175 -3399+2745 -5264+7770 -6231+1279 6629+-5321 -2214+-9024 8069+7337 -8554+9601 8619+-2215 -3485+6826 -7661+5301 -9059+-7338 4841+8679 9692+5311 -6007+-3210 8367+-1634 -4347+-7101 -6055+-8531 6230+-3696 -3418+-6870 7449+-190 7269+-6066 8634+642 -6322+-8973 7418+4798 -7181+-7174 4122+-5099 5645+-4728 5091+7579 5208+-8419 -259+-8980 7833+-1221 6641+9367 8271+-1589 -7195+-4263 -5052+1370 -7422+-8524 -3093+-4646 1177+7407 -7576+5122 -8694+7926 2143+-6020 -69+-5455 1359+-5622 6770+-6641 9800+-8675 1346+-4387 9911+4177 -9942+7400 2580+7884 -1450+5508 8942+-9009 7995+2317 -9275+8664 7671+-859 -8049+2101 -2018+-251 3737+5327 8149+2033 8718+6970 6169+1345 -1948+8585 3581+-4137 3200+-1826 -1154+-9822 -899+7547 -1123+3497 -9930+749 9809+7409 5221+-9343 -288+367 1906+-3852 -8015+-1837 795+9127 -3661+2598 1766+6997 4913+4869 6844+4307 -6671+6456 -7840+4696 -1239+2189 4693+2167 2598+8904 -4785+6198 -4413+-2604 -5324+-357 -3309+-8872 110+-7943 8810+-2127 -6392+5285 -9134+-8228 9290+7021 -4302+-1608 9374+634 -949+4677 5419+-3528 5047+-2475 -1989+375 -5946+-3412 -4753+-6225 -6850+-9646 2456+5916 2873+-2539 -3378+7427 -7645+-5197 2239+9890 3119+-3560 2712+-6774 -1332+-4793 -3550+8384 -8752+1030 3362+3489 -8311+9548 -8188+-3780 -5176+-7520 -2487+-9846 -4484+3738 -5669+5692 -4694+-6568 -8353+6596 -1842+4295 4442+-396 9766+275 -3972+-7006 -4516+849 -2054+3320 -9016+7873 3425+6975 5380+-8441 4735+6905 -995+-813 830+9214 -4205+7259 9884+3815 3845+8545 9479+3042 -8525+5874 8210+1485 5708+-5664 -5687+2793 1095+-5344 3956+-841 897+8356 -1528+4035 3886+4177 7357+6316 -1069+8546 4240+9410 8602+-4671 5269+135 -4805+-9671 -2748+-3958 -7192+-8871 5411+5873 -5286+-5569 9092+-3574 -9751+-2646 7048+4031 -8311+4793 -6713+7328 905+8014 8233+9053 1687+6518 1018+-8578 -5872+-2426 -5278+8086 5312+6547 7558+7645 8107+-9222 3435+1069 -6512+-1755 -3880+522 8326+-7515 2293+-8814 -1705+-9301 -5468+986 8342+-9187 -3784+3140 6485+7194 6913+-9553 -2919+3769 -5033+-264 -109+4817 3319+6998 6374+5816 2879+6437 -5097+-1457 -1456+-4988 8961+2022 2705+1247 517+-8840 -1053+2133 -998+1637 1558+-5894 6379+-8379 103+-1944 1793+6567 -4445+-153 7797+312 991+-4321 -8075+6474 1563+207 -1440+7360 -8345+-357 6164+-2274 5367+129 5860+-1522 -2341+7418 5118+4832 -5454+5706 -687+13 5941+4398 -7073+-5282 -4891+-9291 -1275+-9644 -4679+9670 6197+394 5175+-7768 6400+8810 -2010+6795 -6177+-1512 -4209+-21 -3096+4737 327+2054 8263+1454 -8637+-6248 5824+-2391 -5468+-2431 763+-4419 -9529+9302 -7233+7071 -8223+-7871 -2514+7593 5720+-5060 -4949+-8461 2277+6304 7090+9624 -2382+-1875 -8979+-1931 -8384+6366 -311+-7185 -6643+-3747 -2783+-3501 -610+6034 -3438+-7257 9596+7129 6968+-3436 -6560+2858 -4736+-9956 2757+3868 -1593+1487 5343+-6577 9537+-4740 8871+-6949 31+2797 3939+7517 6514+7774 -9594+5963 -9116+-8508 -7258+-1977 -372+4805 8599+-3119 4338+-8756 -800+4305 -160+5408 -4926+-562 748+6008 -6942+-5261 -9708+6654 -3288+6904 6429+-3221 -8206+-3721 -2004+797 1561+-3946 -3958+-3988 -4115+-5778 6649+9057 -8909+1359 -3578+-4763 -9401+8372 -3094+-6793 1789+-7661 -6192+-7437 -7804+-6211 7051+-6031 -9338+-564 -2540+4800 1901+9682 -8621+-449 5797+5332 -3584+8245 234+8056 4190+7186 6967+-8587 -693+6385 5281+3302 9536+4190 -4915+604 3584+3087 -8892+-2953 7366+-479 -8846+-5566 5886+-2227 6689+-883 -2891+1156 -8605+8796 -3507+3405 2848+5902 6233+7317 5395+9911 5954+-8960 2169+-6462 -4966+-4936 -8202+-4274 598+131 2594+-5474 2886+9115 2510+9933 -6996+5341 -5726+-804 -895+-6896 2780+-6845 9542+-4315 -1257+-3793 1932+-3835 -5644+8666 -2744+9738 7854+7417 7274+6724 -7893+-2243 8050+383 3243+-955 2122+1649 7745+5392 -8476+-7838 -3295+2952 5368+6758 -4271+6902 -2534+4894 -8909+8491 3137+6502 -2899+2843 -1375+2721 9948+-5924 -6956+-4610 -2931+-3444 -448+-28 -1730+-5991 7774+-206 6544+-8303 -2906+-6608 578+4704 -8632+-3326 -9516+3300 -1311+-2242 -1779+-8830 1345+-3185 7052+6330 -6018+-7864 469+-6866 -1103+-6907 -6193+151 1145+2591 -5132+2123 5065+2468 -3502+-6656 2081+8425 4267+-836 3899+4773 -4548+130 -2736+-2973 2875+-2874 3080+-6817 -8524+7986 -2232+-3604 -9357+1392 -5571+-2383 -6345+-6806 5314+-7146 9783+1342 -2330+1733 -9291+459 3265+-8498 1169+1546 6789+-6774 8508+-4804 3517+1295 2824+-7263 -8323+-5711 -483+-5779 -923+2797 -3344+-4256 -6690+-1243 5848+-4057 -7171+-2405 394+8139 4701+1072 -1646+-5561 320+3630 9333+-4562 -1300+8025 2754+1715 5433+4871 7295+4619 -1693+830 4406+6623 -2233+6864 -5040+6684 4543+-201 -1383+3691 9118+-9535 1471+-9989 -8109+-5784 4790+-8218 3457+-6757 3516+252 -7734+537 -9753+-8321 2906+-8743 -5888+-3525 3395+-5447 5328+8744 -6742+-6560 5268+8991 -1118+-1608 -5440+-1585 -6985+8725 -9514+1021 -8509+4403 5493+-3093 -4315+9095 -1650+2524 4879+3743 -3689+626 -3939+2713 -1979+-2028 -2953+1777 -1564+-4099 3511+-7037 -1082+1832 -5151+3266 3774+3113 -3850+7663 -5826+-5253 3433+7898 2017+-790 4618+-4799 -7011+8370 -8024+2709 -7150+-3108 2114+-8844 4163+768 -496+-6942 -3483+259 -9148+4067 6908+-8360 -8296+1000+-7249 5824+3627 -297+-5792 -2295+-1962 -3108+-2763 -159+8604 7910+2881 7433+2689 7726+1522 -997+-8485 -6283+6760 5342+9420 -6984+-773 2607+2415 9491+-4124 -1911+-4150 -4489+570 -3657+1537 5524+6409 352+6796 -9653+-7804 -7101+-2091 -5597+6888 4117+-2222 978+-764 -7108+-5925 1655+-5062 -5811+820 -3191+8935 -4531+-5222 9017+8255 -4707+-5263 2077+2742 9715+-8619 -2958+3637 7222+-200 8558+6074 6139+853 -3635+-9148 9746+-7924 5550+2494 4369+-3804 3185+7 -1542+-6831 8955+-3687 -6617+-6789 -2282+-5996 -5617+-3664 5418+2140 6362+8100 4992+1598 -9954+-52 -5524+-1549 -3490+2658 -9655+3879 -6291+-6862 3983+-3594 -9624+-3025 -5839+-8965 -9844+-5687 -4092+791 6110+8966 -5404+-1318 2387+-546 -3234+-7366 5546+-3115 3452+-3172 6155+7209 -5803+1265 -2998+6680 7693+7852 -3207+-6911 5890+-2066 -5229+-7014 7565+-7697 -9759+-647 -8536+2128 -5737+-5464 6448+6174 -7286+5002 -7431+-5289 -7938+-9592 -2745+-9315 727+4134 9175+-1410 9413+3310 -2423+7897 -7064+-1037 2180+7313 8345+-2313 91+6276 8899+-6748 -9688+-6263 -8819+-5405 1242+-2679 -2074+2924 2178+3964 7253+-5640 -1359+-6777 -9446+3862 6902+-4582 -8675+3185 -8872+-4440 -8895+1924 6055+7673 8550+-2185 -9244+-7686 -8243+-6069 618+1927 -805+3076 -6967+-8043 -8279+-1616 9222+1070 -9089+-8755 -808+5991 0+2436 -2614+-463 -7379+5782 9718+9802 -3934+4829 5962+-9018 5699+5454 -1938+-7955 8356+-2797 5921+2813 3061+5046 7921+5034 -760+-1865 1861+9201 517+-4554 23+9911 -2057+-5512 -4119+-7529 -4134+6535 5895+-5920 -5154+8481 4688+-2599 -6290+-4347 -5248+293 1303+7941 -9799+911 2898+-8058 6856+-9268 -1689+3056 8683+-4784 -6894+148 7350+-4928 4538+-3292 9240+2687 -1977+2165 -2028+2522 7227+8354 473+6149 -3118+7414 8220+-90 -4318+-3623 4474+-342 5655+-7149 8363+2383 -8666+-3532 5122+-2432 -410+-1855 -6096+5681 -7284+-3652 -4022+5454 5032+3806 -5862+831 1221+-7242 7425+-4201 -4501+4904 4641+-8598 8329+-9134 -5541+-597 -6326+-2722 9119+4524 3679+-9014 -2350+-2750 4077+-8342 1166+7039 1809+8655 7008+4001 9172+-3991 -9474+6473 -5393+-4791 6320+8972 955+4339 -4749+7768 -1047+1047 8889+912 4824+-7838 1541+1456 3863+7488 9296+-5274 -7707+-3504 -4846+-3182 5254+-8774 -3542+-1446 8643+5455 986+8389 1843+5052 3001+445 -6549+-5342 -2686+731 1185+2056 3240+-3189 -8469+4971 -7930+-5041 -1800+-847 1321+-6549 -7764+3794 -3288+450 -8254+-8870 -4575+-9728 2288+5464 -5980+-6900 58+7333 6161+-5236 7546+3651 9256+738 -765+7041 1082+8339 -1013+-4725 -6176+6136 9999+227 3988+6510 -511+2721 -1708+1014 6028+2564 5689+1679 3760+-2269 3028+8572 -5279+-8942 -7053+-6129 -1919+2935 4357+8448 6903+-9003 -1692+9883 -4043+-8327 -8644+7439 23+-3767 1404+-1162 -8395+-7028 -4085+-6250 1767+5947 3737+-8408 3212+-8592 -2947+-3273 517+-6756 -9158+8397 -4947+-1270 -4502+-2020 8603+-962 4205+5681 3200+-3919 143+-3662 -1997+935 -6137+4726 102+5258 -8892+-5122 -64+777 6636+2786 3602+-3070 -7919+-8526 -2505+-8751 4546+-2111 -9286+9948 -1438+2645 -2482+-6926 -3893+8936 -3104+3288 3425+9030 -6073+-2675 -7600+3694 1797+-332 7495+9362 8278+4358 -3884+5094 4000+-3720 -8472+-8784 -4527+-4729 -1814+-578 -6992+-246 6823+5386 7406+-4470 -6768+7642 8699+-9086 -5730+3309 -2949+3588 -129+9966 5607+-2877 4740+-8227 -5225+1564 -8125+-2216 9567+8844 9181+-4243 7121+-8748 7630+-9146 8920+2479 -9508+6848 -5816+-6782 -1856+-8855 5083+-2201 285+565 -4990+-160 9849+-5472 -375+-1824 -1384+5600 1416+8528 8144+6496 2186+9912 7319+6481 4213+-7383 -1015+-2547 -8918+485 -8592+-2033 9152+3662 -987+3915 -3754+4564 -666+5650 6022+-5563 4062+-6267 -2799+-156 -8413+1736 2826+-6566 617+898 -1543+-3013 -4091+-3920 6631+3706 2799+-977 7586+877 -1966+-3507 824+7789 2290+-6231 9941+5448 -620+5384 -3040+-5420 -5809+-3753 -682+-4009 7815+8517 573+-3933 -1640+4694 3526+-7416 -248+-9072 3290+3982 7376+4678 418+-9694 4564+2422 -6481+-5759 379+-1453 -1051+241 -6316+-7454 -2836+-230 2283+-3716 1900+3850 805+2385 -5394+-378 -1906+6673 -9005+1364 -7019+1794 -2950+4398 394+-5768 2464+7707 -4341+3750 -5687+9421 3212+3997 9356+9405 -2488+6132 -7885+-1204 -6945+-2282 -9933+-917 -336+8462 1429+5124 1416+570 630+3983 6377+5802 4397+-5871 9008+-6320 8764+-3990 -510+-7463 -1828+430 -3845+-5254 -1644+-1858 968+-5299 -976+-5326 5248+-1846 7460+7474 5144+-2462 5795+1061 -9032+-2196 4469+-2113 4639+-7240 -3891+-2505 2591+6454 -5626+-8194 4526+9426 9018+4882 -3211+5847 -6017+481 227+-164 -16+4273 -957+-794 8965+-5409 -1439+-1670 -7511+-3598 -9224+9529 -3767+3823 7100+-2746 8761+-9814 2051+-2925 -3402+5976 2095+-9768 6845+-6953 -3941+2789 -6119+-4503 9335+6250 1579+-4805 161+2281 -3683+-7295 7875+2937 -9713+1527 -6416+1298 9821+141 -115+-322 -5005+-868 -2415+-3241 -9607+5730 1770+5867 -7250+9334 5582+7438 -2798+3398 9043+-5574 4806+2226 -6885+-7456 3110+-7356 8463+-87 -9676+-4886 615+1451 2780+-4841 2243+5817 -6769+-4207 -693+2126 6053+2534 3633+-7835 -6561+-5148 1126+-1206 1043+-7406 1036+7646 5242+4247 247+5401 -5440+-3087 4086+-6509 6827+8980 -8110+5713 -6188+9438 -6677+4198 2733+-7950 763+-4808 -4138+-7925 1963+-5547 9585+6163 4131+9701 3856+7368 -5795+-3600 -6375+-7797 -6297+-940 7916+3645 -2800+-9156 -2908+-9068 7101+8495 -8206+-8286 -8421+9210 -4748+486 4429+-7692 6558+8566 -2087+-7336 355+-2991 -9249+3158 1549+-8422 -4126+3579 -4494+6156 -3154+-9295 -6233+-4134 4071+-9646 7524+5295 272+8805 -4916+-2912 33+8225 -4927+7999 -4026+3350 2281+-960 -7764+-9558 1885+-1821 3761+6334 9865+713 3030+-6125 9967+6702 809+-8856 -3942+7039 -2386+-874 8757+9429 -9818+-1262 -1749+-9474 -9116+-7516 5144+9309 3865+1452 1495+7387 2772+4869 -9183+6721 4806+-2626 1816+8999 30+5103 9552+2243 5941+-2398 -8146+8207 6212+1724 9207+8033 4883+-7085 -1959+8792 -3352+5899 -4872+470 5823+165 -4730+-3072 4471+-3694 -5009+-1343 6662+1523 -9466+6511 1682+3892 1574+-4393 -5639+-2760 7507+-7748 -252+-5932 4859+-363 -9181+-5672 -1861+71 6309+-2353 -4296+-7051 993+-5205 -7638+-6338 4253+4102 3498+-9013 -8522+-9491 -4724+8421 6210+-2558 9352+-1704 -1581+-5 5880+-4908 -359+-6920 -4936+-4819 -1618+1674 9096+7461 -8624+934 -3820+-4462 -7935+-4628 -4752+9859 7970+-3590 -5836+340 7300+2074 4797+-4729 -9746+-5405 9379+6515 -4073+-9282 3668+192 4989+-1822 7547+591 3885+-6764 -7749+-1557 825+-7517 -6446+-2744 9502+-3133 6225+-4340 5263+-7508 -9099+-5736 -7391+5742 -6029+1057 -7358+-9817 -676+-1138 9244+-400 -1530+-1765 -1720+-8660 1764+-69 4333+-4394 6604+-1661 -8586+-9090 -1450+6377 -4938+-1339 5067+9547 -8208+2859 -7079+2113 8151+-2421 -9752+9251 6764+6058 -4662+581 -2126+-3418 -1954+4270 -2892+997 7634+-235 -3156+-6266 9882+-8146 -6765+3791 6430+-9753 6959+-4352 1736+6129 4944+-4028 -5574+-1915 -9254+-3239 -2168+-5431 -9001+-1713 -880+3831 -2990+8303 -4400+4230 2263+1552 3019+5256 9444+-3846 9509+1385 7112+5039 -3373+8268 9419+-3254 -9952+4402 6900+5429 1910+-1081 -4928+2438 9452+9374 -9017+2248 -5624+-8862 7254+-9003 2132+2969 -5882+-1214 8810+-462 1095+-3746 6581+4883 6744+-7888 -688+-5074 6000+8313 -656+4380 -8512+7145 -2897+3182 -6853+1360 -2282+6241 6633+8435 3103+-5900 -4228+3401 -7375+2053 -8878+-1439 -9625+9702 7115+9379 4161+-175 498+-5239 6590+-5349 4380+9662 692+6353 -5656+4013 1932+-2192 9859+3475 -3984+-823 -7444+952 -9875+-2196 4186+-1670 5998+-729 -3605+-2110 6695+-8130 -7741+-405 -3207+-1406 272+8687 -2812+-628 -9098+255 8153+-3521 -9258+-6822 8106+-3785 -8699+5481 -7802+-5124 6385+-2359 3327+-6589 2604+-4442 5676+4841 3883+2434 -6189+1433 8565+-2930 -6789+575 1011+6849 9073+-4969 8000+-4530 -9134+6055 1168+-2421 -9833+-6554 -2151+8235 8153+-9093 -9153+-3706 3357+6840 -3647+9236 -1608+-9630 -2663+-3609 -8914+4223 3450+-8407 -6225+-7608 9510+4219 -6384+-2778 4459+3807 664+-6727 -4189+1728 -6921+58 1135+-1151 -240+-8792 4038+-6895 -7728+269 5393+-4627 -4808+-2042 873+-7877 -6633+613 6256+8801 -5082+-7348 -8930+-3136 3535+8375 -523+8711 7781+9051 9670+9697 -382+869 -3659+-4992 -2524+1390 -4383+1381 -985+-582 8935+3004 2003+-5274 1078+-7639 -4146+-1254 -3150+-2839 3747+8765 -3679+1907 -7751+8846 2936+2732 -8678+2035 -2313+3297 1946+3744 -1278+-5345 1999+334 -8769+-3068 -7405+-1112 -3094+-6969 1132+2292 5632+-2351 -7163+6054 8018+5391 -6977+7304 -9667+9310 -4311+-6069 -3475+-2881 7462+-1476 -6156+4524 -7974+-394 2077+6095 3105+-8634 5584+-5061 5952+4204 -5391+-5458 -7351+-236 -5794+-3231 -5066+356 -2581+9942 2874+-4868 -6550+1523 -881+2630 -2953+-8680 -2658+8071 3111+7750 7813+8703 -8037+-7725 -7189+-2271 122+-1653 -973+7234 2223+-9211 9348+2204 8604+2867 -8648+9563 -1674+-6405 -301+6325 -3290+4036 9170+-8216 -3518+3765 -2511+-781 8811+2245 -5649+7702 -5882+8099 517+8629 -7226+-8250 -598+-7703 3839+7551 9760+-7515 4327+2242 -9935+-2075 -9011+-6450 2392+-1709 -7687+5072 -1733+-8540 2579+1443 1908+-8816 -397+5065 659+-5346 -8105+-2062 -3225+8718 3458+-3725 -5844+9143 -5129+-6737 -3144+-2308 -9597+-4817 -6920+-6530 5340+-9306 -859+4952 -5100+-3338 39+997 3995+-7965 307+-3476 3971+-9347 3070+-6214 -2541+5468 7689+8148 9162+-8344 -4544+8325 9630+-6482 -3438+980 -14+-8998 7200+-8163 -3613+3663 -5197+5750 -2490+1893 -7310+1389 7526+-5885 8888+-8079 2196+-7848 -6339+-3033 -3127+348 855+-6870 3256+-4479 1602+3981 -2272+-488 -2290+-3251 8214+-2236 5699+6360 9509+-4418 -5085+7966 8216+9315 -5823+-2286 -7700+-1868 1480+497 1898+4654 243+-2034 -5004+3896 1699+-7602 -6699+2787 7238+-6560 -4935+-7664 7058+-8557 7850+4666 5328+-4736 -1185+-7397 -3789+-726 308+4082 1911+4187 8068+2136 3552+4873 3854+2541 -3615+-5396 -1015+9557 7152+-673 1069+4875 5726+5080 -5782+1783 2348+-8901 8214+-8698 -5398+2131 -4233+-7312 -1527+4848 3014+5744 3334+-338 9402+7875 -2372+2557 6110+-4131 -219+1504 -4403+5211 -7263+-1998 -4114+8076 3917+419 -4156+8309 4404+9529 8787+2671 -6802+-5624 -2015+2319 -7241+-2365 4393+4240 5607+-6230 -6258+2338 4398+9301 -4012+-8718 -2506+-2820 -7219+6695 871+-4272 -2533+330 -3866+5487 9820+-2551 -5436+4046 3203+4122 2413+1402 792+-8113 -1104+-8690 6951+-7469 8728+-5993 4298+2912 7191+-9251 -8134+9965 6401+-6530 1053+1802 -2706+-4067 -2148+3942 -1883+7062 -7336+9662 2667+-1533 952+-8712 7447+-8136 2206+-723 -9657+-975 7049+7488 5076+3113 -3983+-7162 -6194+-4321 2586+-715 -7402+4024 8376+-7149 -7869+7383 8674+-5990 137+-8036 8094+-9294 -6967+-327 6054+1922 -3434+-3255 -1091+-2169 -7546+-2514 4623+-8502 5136+4235 6558+1227 5801+335 2909+-226 4363+-4645 -1501+9270 9659+-4662 -9480+9407 3410+-248 6289+-6354 -5288+9807 1536+1939 -3933+-124 6451+-5596 5630+2363 735+7763 -3479+-9759 2526+-3884 -183+-1195 7209+-987 951+-7371 2287+5737 4765+-5200 -1467+6566 -1101+-1783 1459+-9009 -2799+8407 -725+-8029 -9722+9986 -9036+-1477 5925+-3091 -6924+-5872 -5700+7241 -7483+5235 9346+6602 -6971+5124 6553+-4610 1275+-1342 1181+-9989 -8800+-4308 1166+8830 -6724+4103 874+1705 6418+-7231 960+-1955 6400+-4315 -9234+843 -6722+-9092 8747+-4164 -3478+-5150 5506+7786 8580+4197 7780+-2672 -3090+3677 4185+-1227 -7158+2743 -4188+871 -2615+8125 -2285+7986 5362+9411 4638+-2973 9318+5021 5787+-3734 -7776+3046 2328+9130 7194+1000+62 5099+-8677 -9673+6966 -6338+8406 8007+1572 3661+8079 9770+1131 -3531+6603 -7285+-9427 -9921+7859 8143+4017 7649+-7381 9750+-3412 2640+-3330 -4217+-654 -4805+-6855 883+4325 4006+7150 4432+8273 -2746+-7922 -7044+-6918 -7626+-4377 -7481+4074 3414+9891 -6070+1987 -1626+5506 -2603+-6819 -5382+6802 -7481+936 -1583+-4061 -4526+479 3809+-5377 -275+-9949 8643+9972 3082+-792 -8011+356 -7259+598 4355+-559 -2411+771 1076+5500 3310+-8512 -50+-9308 -3640+6416 -1689+5268 3818+6759 -5717+9351 9400+-4117 -5722+-425 -5799+-9504 -4559+7637 3059+-592 5056+7457 -7350+1560 5940+3475 -7280+-7066 6055+-4312 -6707+9618 -6764+4140 -8040+-8854 -5647+215 -461+4513 -6425+-31 -4422+6833 5535+1122 -1572+-2985 -960+-8363 1739+-8430 3444+-54 435+-2937 8315+1187 -6086+-7675 -75+-6770 -9320+-5164 8486+-2672 -9533+-3226 -1879+8731 -6989+1494 9988+7825 4799+-6594 3220+3805 6930+-5072 -7747+-4376 -463+-5593 9938+197 -143+1210 335+1294 -6134+6962 -3346+1981 -8515+9446 9268+-31 -7520+-7707 -9333+-7457 3672+6366 7464+1549 7694+-5180 8882+-3250 -565+-2602 983+9882 -387+-5776 -1801+-7932 3762+-3145 8818+7083 5514+4691 5257+1842 4283+-6432 9926+4015 5397+-3956 -8558+-9100 -5300+5214 1404+5426 6550+8046 9416+-5142 -616+-6473 -9197+2423 -6851+-4679 -3050+3379 -2894+-2639 5707+-1057 -7476+-5664 4272+-5510 5145+-2670 6511+1505 -9861+-9967 5375+8176 2524+-3458 88+-1057 5099+6858 -2370+4254 -8134+9235 6782+3331 8009+-2030 -495+-3932 3110+-7698 4069+-9076 -4503+963 9760+-3455 4994+9644 8440+-1691 7435+3811 -8770+9170 518+-3474 -1172+-5522 235+9350 -7659+4249 -1453+-1989 6956+-8120 3573+8286 -9899+7772 -662+-323 -5129+-3960 -4351+7818 9797+1967 -4289+-6991 9359+7995 1783+4753 9384+-2296 6544+-5523 -4392+-8587 -6387+-7516 8837+-8360 -9278+-9970 -8246+444 3032+4756 -9834+-6216 -5876+2569 9884+-2100 -3791+-7851 8640+617 -2346+-101 8869+-9957 -527+4526 9825+1584 -925+-1858 -1733+-6176 -5601+-8989 5692+7308 3846+4302 4727+-8414 167+7978 -4353+3260 -9287+-8656 -9237+-7374 6370+4504 353+7127 -3546+-8036 8055+-4705 1913+6269 6942+4335 8384+-9690 2132+7036 6464+447 3064+-4263 -7548+-6807 -1169+7497 9217+-3056 -7491+1734 -7132+8277 6683+3003 7577+-3636 -4930+2703 8505+41 5967+1959 5160+-441 701+6429 23+5357 -2223+3962 -2706+-4875 1568+3351 -2392+-3830 7989+-5434 -3916+7036 5124+4589 9443+8168 6300+-7445 9190+2220 436+-3701 4012+6855 -5073+-1017 -177+-6366 6534+5831 5663+5519 -2804+1481 -3425+8928 -7929+-6555 2450+-1160 -9103+3346 5548+-8321 4016+5444 6598+-2394 8646+-5741 4646+-5552 4780+-8711 1589+2841 -6602+7304 -1976+-6235 -5822+-5503 6062+-8033 1725+5501 -4186+4510 -7923+-9692 4108+7520 -8180+7423 358+-1601 -7021+4335 -3932+167 5875+2090 6339+8616 -2660+-8473 2920+-5502 9877+-1297 -9582+3493 -5265+-2358 8925+2250 -8214+6388 4873+5094 -7848+-9430 99+5706 1465+6150 1025+-9602 -1303+161 2162+6390 3099+6184 -8084+1291 8459+-9634 6515+7806 -1614+8228 -2746+9618 7272+-3851 -7025+8031 8668+-736 8463+86 -3328+-4428 -2790+7694 -7339+5282 -7782+-1830 -9313+-2378 7837+8496 8479+-8202 -4875+-3974 3623+-5548 2689+-7507 -7682+-3715 1006+1742 -8408+-993 4709+1907 8889+3482 -7352+4954 -2559+277 -8941+2479 2259+7411 5566+-742 -4474+2764 6788+-1306 8166+9632 2204+7029 -5264+6622 -8595+7344 7722+4722 -2402+4687 -341+7554 1980+-6030 302+-3803 7203+-2888 -5703+-7626 6271+3845 -532+-7951 9704+8464 7474+-8806 -3816+7296 -4304+-6339 -3519+-5398 6011+9626 5563+-4190 -612+9358 -5030+-7181 3757+-8871 -3909+-9775 -9451+1042 -1102+-5404 -813+2166 -2684+-9087 -7659+-7087 6492+-7449 -5129+4073 -8317+-864 5714+-8964 -5524+-1686 -6734+-6967 -8563+-4251 -8541+-7537 5168+353 2586+1414 -8610+3161 -7749+-2777 6764+6885 2931+-1807 3252+-607 7606+-9409 -4457+5265 3625+7156 -6719+-3653 -2640+-527 403+-6895 -8819+-6812 -6406+-130 2477+7815 9539+-3217 1197+8153 -9424+570 -9176+2331 -6306+-3245 -3197+-8079 -6535+6919 8394+-3628 -3601+-7702 -9339+3075 4707+8089 4972+-259 2230+4479 7258+1857 -9387+8552 -5928+-6729 3518+8598 5805+-8686 -14+3247 -2754+-7952 6455+6812 -2689+-2425 5907+-7489 -8610+1161 -2126+9783 9597+-8931 -35+7353 5016+-6678 -7740+-2909 -1405+-7086 4884+-3537 9515+-4495 -4330+5566 5144+7963 -4329+-2702 -3551+-5343 -980+7479 5449+8428 -8844+-5983 -2145+235 2734+2339 -934+1459 -1075+-8611 4717+-3373 4369+7963 -2290+-4696 -4131+3820 8367+5486 -9581+-9318 5353+-119 9478+1067 3861+-5861 5155+-6498 -9145+6829 -7193+-6601 -7949+-7169 3568+-3593 360+9224 827+1199 7226+8172 -8190+-3790 4547+9625 -1676+9457 -7166+-2018 9120+6909 4581+4657 4601+-4666 7554+9343 1274+-8793 9511+-2990 -1219+-6308 2750+768 5090+2262 5449+7129 -5792+-7063 -6040+194 -7048+2847 8861+-5685 882+2495 9523+-9672 8335+-9981 -8462+-5227 7445+-8647 781+7804 1384+8329 7040+-8299 -4815+9552 1919+-3780 5288+-6310 973+5378 -2319+1172 7256+8027 9192+6034 7598+-4732 -9538+674 5192+-4432 -4494+7309 -4761+-450 1007+9262 3673+-9263 -1315+-2876 7398+2480 -1593+-881 -9940+5553 4450+8235 -9057+6047 -6667+-5918 7874+8038 -2315+-8499 5647+-5791 -4384+4183 9381+-1194 9123+-2715 7296+-647 6281+-6525 -9536+-9246 -7147+3255 7361+-4108 6418+-8091 -325+-4683 6062+8914 -7254+-2410 8163+-8766 -667+-4485 -26+-2703 -9090+-651 911+-1108 7956+-5822 9636+773 1717+-6379 1690+-3665 -4695+-2052 -6045+-5439 7019+-1814 -4917+-7927 4718+-7839 7210+-7926 -3557+-9652 -6546+1199 8078+-4194 5108+6881 -1696+-8700 -7847+5214 -9423+6664 -7620+-3021 -2315+2608 8564+9888 2241+-5431 3701+-5022 -8203+-7398 3729+158 -1437+4686 -7541+-1937 4403+8737 2917+4355 5439+-3601 -8624+-2019 6868+-8049 -9723+6391 -7767+-4013 -1334+392 1136+5898 -5032+-7690 5927+7170 399+-5399 2104+1806 -836+-1110 -5719+-6018 -5785+7838 -5793+2404 -3346+4605 150+5523 -4911+3893 1932+-4477 -902+-3136 -2523+-6602 -3881+-7886 1989+2856 8219+-9153 -3368+-6296 -8388+6435 8630+9216 -4603+-8373 367+-8726 6870+-1653 4588+2701 -2028+48 -1391+5065 2725+-4365 5339+6337 5201+9215 -5961+7255 -6467+1057 -9555+3638 -1034+5247 5883+-8772 -4299+1195 -3681+-4967 2130+4914 -6468+2371 5382+-6813 3884+8046 -3336+-7663 4585+6600 -6074+222 -9825+3864 -80+-9876 922+-6016 -2288+6061 6251+9337 -3818+-7181 -6370+-6522 6072+8474 -5682+9779 1068+-6972 -9053+8730 8270+-6988 8270+884 -144+-1058 7747+-8902 -9016+4094 788+6423 810+-1854 9227+-7295 9018+9385 -6383+-6167 -451+7397 -7561+9134 -8003+-9430 -4549+-4054 -4149+20 1175+5256 -670+4873 3205+9851 5336+-596 736+7625 3368+9263 -4250+629 -3747+-7150 2171+-2534 -2492+-5475 882+9373 -9015+-2104 -5560+-9 4607+-6859 3175+-8769 -1554+-4495 1081+7045 -5431+7530 6379+4493 7240+-2712 5024+-7021 -2805+8917 -2640+-7539 2254+-3205 2739+6227 -7436+-8356 -4041+5252 -8063+-9475 -1286+378 1700+-3844 -8260+3127 6255+2520 2809+-2625 -6330+-2530 4463+6394 754+-1786 6833+-6563 1261+2062 2225+8765 -9007+74 4947+303 2152+5303 -7355+3292 -732+-9501 890+5785 -3020+1698 4792+-4957 -7421+1414 -5094+-744 -6042+-4569 8977+-7726 8322+-749 -4052+9798 -5829+-1717 3593+7013 -6717+9987 479+-1499 -2512+-8925 -4132+1247 -4282+-9278 5826+1179 9959+6028 9091+3435 -4097+-1168 -9389+7600 -8503+-7378 -8072+-2427 731+-5647 5918+2463 -6034+-9241 -6499+9981 8047+-2658 -6561+8918 4577+-6617 2937+1581 6241+-9054 3346+9541 3671+5561 -7435+2449 3996+6172 4302+8120 6423+-6448 5633+2248 4728+-1226 -7096+-5337 979+-2798 -7916+-8354 4225+-6759 7243+6727 833+-7348 5220+-3370 210+623 4409+5375 -438+6615 -6881+-604 -4916+5125 -503+3580 -8482+-6669 -682+-1328 7563+2146 5590+-1723 -6333+-533 7740+-8021 -3780+2787 1101+-286 -9693+116 -3842+8812 6832+-8430 4628+-3937 -5515+-4628 3869+9429 -6697+-8974 -6107+4371 7482+4877 2469+-4842 4824+-4953 8783+9751 2837+-8979 8496+1867 1800+8088 5580+-7725 -5134+-9166 -4842+4764 -3605+4107 -5724+1160 2762+-8709 -6707+5642 -551+-7460 -3711+4556 -4889+640 9192+4618 5610+8020 -5011+-4130 -5043+-887 9572+1541 -4521+-385 -4772+2132 -4912+-9537 3519+-3800 788+7676 9275+5282 -130+8135 -1363+-7081 -229+-6847 8809+8958 -6492+9915 -2310+-9902 -2219+-1293 6456+-9726 -9615+-2805 7684+8569 4076+4469 -4166+9500 -4288+-1958 -8355+7271 -3334+-2013 -6295+-8256 4871+-7588 -1726+4274 710+-3408 8165+-3787 8648+-8653 -5790+-3435 8456+-8546 -2081+-11 -3671+-3227 -2688+2096 2441+-4995 -9398+-7205 -31+5047 5110+436 -1991+8030 4042+-1642 9520+9615 -884+-9803 -1964+2571 1579+-3690 -2724+1595 6304+-849 7129+-6336 -4130+7234 -9800+-9871 -4863+-87 6134+6659 -5816+6680 -2700+-3946 -4647+9965 5297+-4678 4471+5669 -3362+2993 7652+7724 -1166+8007 -5499+-8364 -6329+-8337 -7490+-9143 -5050+3675 7969+-6658 -7596+311 4269+-4472 809+-7902 7606+-1611 5566+72 7608+2791 4800+-3954 -6254+6057 -4845+3613 296+-9140 -2995+2374 5959+5380 -1018+2377 7132+4276 2546+2070 5713+-560 2722+5325 -2297+825 -2617+9260 4816+-4913 2583+3710 -8089+7677 2210+1997 5344+-4978 4611+-9709 1593+6174 -741+-9856 -7266+-4617 3587+-7971 3047+7960 -4360+8379 -5366+5489 -371+1150 -3220+7926 -8788+3526 -8665+1773 7174+-9069 1939+-2652 -2707+-3578 1923+-6017 -6693+1133 -5435+-59 -2995+-4738 -864+3464 -2034+7613 -7423+-2017 -9711+7996 8135+-1816 -8654+-2135 9448+5185 7613+-1425 9971+-8619 9426+6144 -4427+1343 4293+1143 9640+-5616 7195+7622 5008+-1074 -7099+3337 -6043+-1706 9525+5925 7814+6314 -60+6083 9228+-7083 -9088+4706 2546+8940 -384+-5994 9839+6695 -6831+-6703 3814+1752 8519+5290 5489+-7067 7296+891 -5787+6338 -1546+-3684 172+4396 4069+1596 2328+-4573 6837+4217 -7866+-4809 -5384+8637 -8005+3650 1475+-8589 -7757+961 93+-5462 2612+9776 -6381+-8925 -3387+7849 4487+563 -2664+233 -6635+4114 -8992+6032 1051+5761 -6999+-4918 -982+-9825 -369+5722 -2505+7774 425+-4492 7176+-6465 -7818+-8313 -1505+-2169 -3815+2797 3643+-3307 -8828+-4270 -2204+9662 8734+7366 9284+8386 3694+-411 -5201+-4206 2880+2014 2859+-2254 7130+1856 6740+1472 -1761+6816 -3724+-5287 -8750+5403 -5905+926 8457+6182 4275+4914 7809+543 -1289+951 -7408+-8779 -8336+-4830 5141+2794 756+3801 -6993+-900 2779+-450 -1241+7938 8388+9054 -3478+-856 1212+-4579 -8815+287 3787+-5830 4249+9722 5593+3928 3991+8839 -5727+6182 -4405+5766 3110+-5136 -534+5756 -2051+-1153 8675+-6739 7108+9228 8908+-9100 2293+-8667 511+6025 4477+-7315 -1521+-8330 1933+5297 -2224+-6736 -9517+-5860 -866+8981 -4114+7143 6251+1886 -3531+999 6445+1764 -1553+2782 -1364+8480 3665+4346 6739+-2672 -937+3138 -8446+-5505 -124+-7201 332+2886 3146+9912 1385+-3331 -1469+-9244 2142+6902 -4803+5967 -306+-7513 -1677+4482 3609+6072 3197+-5800 9985+-9791 579+-6422 -7359+-9938 4845+-1077 3932+-488 -8286+6537 9838+2331 609+2383 1296+7583 -4379+-9915 -9745+-7029 2157+6725 2914+-1485 6819+-9202 2973+-5391 -4107+2784 3701+-6909 5361+-8441 -5529+-1536 5569+-1113 -1467+-2164 -4986+6681 5817+8883 -5739+8335 9741+2026 -9800+9747 9404+5963 -4151+3047 4194+-2597 -7270+-7142 7689+-8860 -6284+9669 3241+-8912 -7103+7716 3299+-6637 -1185+2531 4958+7300 669+-9949 884+-9941 9346+-3151 -2648+2650 2177+-9111 -9364+-5938 5836+5731 -3387+-8895 -3746+7782 -3637+7304 1400+-6079 7275+9120 -6337+3546 -2629+2580 7654+6563 -5751+6328 3914+1000+-4643 -3808+-8788 6987+-9480 -6877+8905 -3140+-4121 4459+7222 1185+-7928 -7181+9958 -740+2926 -1722+66 27+8551 -9602+-2413 7703+506 3349+7923 -7966+-1462 -2042+-2993 8806+4028 1674+3600 1357+-9549 -8580+8430 -1918+-1401 -5094+1677 -3224+-9270 -8388+3577 6015+-1966 5336+-5966 5132+-1768 3020+-9746 -3087+3608 8149+569 -9293+5613 -7355+-6233 -6009+-5798 -1031+-4854 -9966+1309 -2802+-2367 -5991+-8386 3097+4934 -9207+-4713 -525+-143 8509+-4716 -9676+2925 978+6887 1199+-8753 4243+5122 -1979+9389 974+-7324 -1910+-4664 1246+-8643 9837+7280 3542+-1970 4858+3775 7057+6360 5035+4267 -4680+4648 6086+-5329 515+-1134 -8704+-8650 -861+-70 6826+-727 3731+7207 -3474+6957 -1347+-5321 3359+-8664 -8669+-4517 -9816+2748 4565+-2735 -5594+513 -5646+-2785 1791+-3764 -3710+-9727 7807+1915 6020+-5889 148+-9514 -1459+-2074 -2778+-2616 -700+2848 7652+1152 639+-1401 -4946+5362 4198+7653 4124+966 -6012+146 -8042+-8591 6614+-2527 5785+-5786 3275+7846 2022+1866 -8051+-5879 -1217+1745 -3541+-3855 4218+7713 785+9022 -2424+5689 -9374+4807 -2408+-6351 3344+-5853 -1047+3207 8690+8047 1859+-2918 -270+2028 1945+9172 4009+780 -5384+-3851 -3233+-3965 3824+-6913 2748+-1175 -9127+-297 -8110+155 7041+-8598 3810+-6284 963+1216 -3458+7617 3962+-7720 4399+363 -3397+6491 -1720+-126 -1573+-5539 -1082+-3856 4747+7518 7054+-1177 8470+-6301 9045+-5399 3606+-1661 7340+3968 3237+6775 -2479+-7925 6535+-6859 2429+-9178 5637+-3984 1699+-4544 -2626+9709 -7765+-1901 8440+-8489 -7289+-9563 7518+-2747 8977+-2432 -3353+-933 -8222+-7931 -9959+-9177 -2912+-8195 -4119+-7016 -9835+-7246 6259+-4137 -4529+8340 -3986+-4735 3962+702 7737+9794 9304+-8847 -6449+8747 -5453+3118 -5020+8863 -3053+-7300 5123+-409 7897+-1709 -1973+-472 -665+2767 8488+-4807 -6239+313 -9+-8364 7869+-6103 6907+-1415 -7243+1734 -8837+-3877 7851+-4015 3456+5984 -7851+-164 -1496+653 3807+6694 288+5018 436+419 -4363+3880 -5906+-1884 3225+9849 4095+9057 -9569+-8628 -9950+222 -7858+3492 -8428+-1700 -9052+-2942 7117+-7612 7626+-6256 8551+1495 4777+9596 -4734+-496 9063+-3996 -2484+-772 -7786+-184 8052+-201 -5139+-9455 -2020+-8010 -4934+-760 -8112+786 -1263+-7685 -6559+-2004 8608+5938 -7210+2992 2651+1609 3468+3325 9412+7336 -8407+-4001 -7589+-8259 -2543+1059 6541+3759 3732+6700 9946+6290 9126+-3029 9368+-4124 -5879+-2389 1561+-218 7430+-2614 1848+2317 -3083+-7858 -8583+2795 2656+9036 4467+2250 3235+-4948 -3564+6118 1462+4894 6676+6208 6322+-7687 6999+9233 -9066+2491 -1650+-7056 -6980+8094 -1207+-5091 -5989+-7597 8249+-2795 5053+6078 783+7673 1231+-886 5068+1651 -8254+840 4279+6613 -946+-8701 9459+4315 7851+7293 9114+6645 -7065+4076 8621+-5182 1939+8958 8517+2440 -3581+-5013 4466+154 -7125+-2133 6124+4794 8131+-3953 9929+9956 224+7761 8279+-3800 -6082+1186 6250+7602 -5449+6239 2724+-9823 4031+-9348 -6787+-3451 9893+3256 7581+-3296 1455+8391 -9977+3748 5503+1457 -5282+8829 -264+6965 -9542+1078 2389+-8143 1153+331 2805+3167 9148+-3705 3783+4715 -1210+3733 -4536+-8703 9616+-3121 2837+3991 6549+4549 5075+-3395 -6538+5577 -3214+-6791 -7747+4855 -6718+295 -6053+9708 -7342+-6614 -3342+9480 9204+-4030 -5430+6949 -3482+9722 7688+-4836 9206+9643 -9079+6185 5963+-9308 -829+1775 -8659+8958 8143+-2346 -5634+39 9104+-482 -8946+3438 -8455+-7381 -8719+1714 -4144+-2962 -8726+-7298 970+9548 3077+-421 5399+5818 6059+8103 -9183+2797 -613+-7276 -2824+-9160 3757+-2219 -7025+3616 9502+62 5933+-901 8897+3339 3962+4602 9713+-8547 4524+248 3404+6360 5214+519 78+-7373 -5257+7701 163+2584 -1567+-4562 -3071+-1222 2781+-1099 -3601+6978 9115+-1107 8579+-4262 -6087+-8331 1442+4065 7096+-8326 -5171+2940 -415+-6895 4405+-3396 3087+9590 2625+1646 -7602+8044 -2903+-6627 -1939+-6643 -9159+266 1878+6422 -4866+-2114 9391+8007 8483+-4028 4154+990 -997+9307 -1203+3344 2627+-3863 8847+5723 -7940+403 5260+-572 1341+-9513 4174+1707 -2444+1492 -1781+-3636 -5863+4633 571+1327 -8332+2363 421+-8353 -3824+229 7440+5915 3036+2128 3462+7130 -3395+-9207 -5024+3729 -1949+-2578 2725+5942 4853+-8050 1315+-8266 9808+3472 -5988+6532 9437+-8643 8791+-9901 926+1945 -6544+-3102 -305+-3604 7893+-3976 -1672+5087 6812+5595 -5589+4989 -2047+1299 7012+1241 2813+7313 -5185+-6453 -7479+2736 7016+4143 -7370+7681 -60+-1559 9770+9614 -2298+9437 -2516+6742 6358+-8468 -1371+-3430 1774+7305 6405+-3097 -6932+-3680 6437+-4911 5255+3368 -462+1440 -8695+-2986 1293+-9602 6581+-1276 2533+-6329 -1158+-4020 -9844+-5335 -314+-1990 -519+-4965 2664+9879 8941+3859 -217+4925 -1875+8430 -4904+-4021 -9737+5084 -5619+4275 7292+-1695 -4465+1578 6223+-4699 8900+-7452 -9730+-8931 7608+-4524 -3294+-4671 -5264+-4745 -8444+-9842 762+7478 6733+-3852 7691+2685 1841+-6693 -1633+3157 -9792+-9479 -9735+1533 9287+1156 9745+3207 -7814+2466 -4260+-5210 1619+-7855 -3317+-9175 -3247+-4079 -514+-7498 -2066+-7926 9822+9800 9683+-5940 8631+-7070 -3305+-8344 4298+-3513 5617+-7387 -303+4075 2980+3290 1176+-2355 -7924+-9449 1575+-3818 -4804+-6241 -8956+-3128 -6760+7445 7186+-1439 7363+-2675 8915+3587 1312+8504 6526+8815 9456+2188 4700+-3164 1419+7715 -5305+6544 6190+4904 -5308+-9006 6652+-5981 -4423+8559 -2599+-6313 -987+270 -6488+3091 3617+2317 4018+-1144 -4421+2023 536+90 -1643+-4834 8560+8040 -7463+-7586 3927+-6023 -7136+4801 -7111+-3146 -8873+7018 -1748+5466 741+-5078 4135+-9424 6024+-5260 -4792+-409 1961+8928 -4824+-8333 -811+-9494 -5202+8854 9579+-1355 8835+2777 5693+-162 -4662+-9782 3283+-4640 -6674+1395 -3225+-9321 -7683+-2208 2153+-8047 1003+2699 102+-8562 2974+-5969 -6343+3242 4394+3851 -823+-9918 4721+7062 3304+-1756 3009+-3631 -5906+-5364 4628+-1458 -528+7590 -785+-6559 8963+4915 8551+-5916 -8950+-6068 2778+-4571 -1370+7532 -3637+-4448 3411+2102 -9513+6651 3233+1841 -9589+-5413 -9250+7174 2121+-9307 -7130+1097 2353+906 -7149+-7442 -2846+6206 6372+-9582 -3553+8024 -9441+-3856 -1990+3227 8079+5671 -1035+-5991 -2477+-4567 5159+-9952 -1277+8046 6008+2364 7854+-5180 5140+-3611 4711+-5198 -4973+6477 6109+-3771 -5658+-1836 448+-5765 6705+4221 6261+-4269 -8514+-7003 8718+-8618 6016+-2732 -2826+3320 -9923+-5432 -8443+-642 -5729+-623 1344+-8384 -2424+548 -6677+-7368 -8810+7332 -5925+-8568 -7139+-5326 -2642+-9539 -5474+4369 -9039+-1344 6761+-5695 -2347+-2693 9042+9751 -2909+5933 -1071+-7848 3590+-6027 3464+1092 -5609+1634 3958+-3740 2316+-2983 2773+-7220 -1961+-946 1100+-9044 1814+-8387 -474+-2608 -3107+1047 -7482+-9923 -8104+9548 -5117+-9084 -5377+5462 2279+-8536 -9444+6406 2709+9406 -1788+6711 -592+6531 -6165+1595 8067+-4702 9593+-1280 -7189+-618 5135+7345 -2279+-8776 4276+-3871 -1667+3788 9521+-1306 -2535+-5393 -3290+-5088 3769+-2081 -4111+1002 3541+6564 9016+714 6153+6315 -2555+-5278 -131+7906 -5881+-4019 -2573+-3874 -8508+2492 7325+-7762 382+8951 1986+-4951 4981+6434 -3205+7720 5572+4153 5813+1737 -1758+5981 9407+507 1486+2910 1899+1393 8298+715 -9634+-3020 -4965+818 -7340+-8102 -7222+-1155 -2633+-2722 8310+2106 6897+2270 3993+-5868 -2045+291 -4500+-3422 7766+-5518 270+-1070 6791+4267 -7765+8087 -9360+141 5137+-1285 6833+6792 1225+5184 -2027+890 4251+-2908 1056+754 7209+577 6721+5866 -6133+-6969 5659+45 -4912+3621 -4866+7415 -1970+-4493 1003+-9479 4234+-9108 1194+5586 -156+8244 -6924+-5415 -6980+1617 1177+2283 5879+-7595 -5523+-9646 7416+-3800 3976+-8954 5635+1472 1426+-2060 2798+4472 -3905+436 -2503+3522 -6494+3987 -4531+-2979 -8921+3040 3949+-4663 -8056+-333 6623+3218 -6395+-5411 -1127+5859 -3848+4796 2213+-7708 -2125+9018 793+-8442 2307+-8563 -2078+-6566 1900+-4863 -477+-8730 6949+3059 4887+7855 841+-6331 266+-3423 -6219+1772 6427+8965 -9729+6352 7604+-2750 7100+-4692 -8019+4111 7784+-8057 5580+5513 -6011+2065 -5793+6468 7748+86 -3022+-601 -6457+-7596 1961+4933 -2865+-5276 -182+8885 -6365+-321 7483+1455 -2548+5843 857+-7358 -8058+4302 7653+2438 7633+-75 9200+-2255 5215+-5381 3135+6833 9699+-8717 -9672+4569 -6334+-9865 -3822+7 8802+4570 9824+198 2672+5961 -2418+9606 -2495+-6752 8017+6001 6776+4750 -8088+-5120 7639+3900 8585+-1371 7379+-5741 -7618+3099 -7801+4586 -3603+-6225 718+-6627 -2852+-6313 -5160+-9777 1885+-4325 -8086+-168 6782+-5546 -9242+-3468 -5398+-3108 -2996+6516 -9585+-9151 -5076+-38 6243+-6053 -7679+1583 9722+6621 -8959+-1602 2796+3767 -1146+5668 -2043+-5369 -1780+-1995 -6018+6381 2734+-2030 -7342+-5623 8065+-2771 3630+-2032 4082+4683 -7002+6076 -3632+-4910 7752+-9083 531+1380 -2056+-6752 7162+3660 -6603+2408 8276+-9441 -5925+5174 -4510+-8791 8545+916 2944+-7329 619+9549 -6821+-2626 -5763+8271 9067+142 -6461+1653 -9488+-1923 -2975+-9808 1035+6550 -6042+-2203 7190+2082 342+-8064 6384+-158 5074+-3951 7784+-6110 -6716+-4039 5043+9994 -7496+2027 -4325+6631 9088+4490 -5916+-8758 7869+4790 4073+-2936 -673+5865 9657+9763 5019+466 -8544+5502 6066+-7434 1125+4266 -1934+-2933 -4265+231 -5635+1819 8003+6122 -7161+-7282 -5572+4973 -5215+7288 8312+6330 8193+-7356 -6146+6936 1069+-4149 -2229+-9562 -1198+3674 447+2492 9117+2536 6515+-8176 4529+6327 3767+3955 9162+4191 9102+-4964 9798+8441 8046+6930 -6594+-3300 -4639+-6989 686+-5813 3748+-4088 -2336+-5290 -9008+-6112 6853+-116 8438+5608 -3445+3672 6678+3465 5508+991 6622+-1474 3344+-4591 7428+5471 8517+874 -141+4209 -6401+-9028 800+-6781 5269+-4014 3179+4029 7770+-4830 5072+-3116 6235+-4948 -846+2281 7186+3886 2641+4510 -3128+-1190 -214+6799 9296+5711 8616+6179 8450+4164 541+-8506 911+-3111 4133+-6692 1511+374 -1578+6048 6946+9992 8212+6675 -6437+4920 6664+-9406 3654+-4715 -1442+2759 -3729+6653 -3485+4952 2862+2115 602+-3438 -5626+-8568 4070+4989 7796+-1837 -4406+-3311 6522+9737 -1700+3408 -4483+-7563 -5069+-2368 1135+4959 696+5489 2085+-3027 8095+3310 -9596+-8704 372+6204 2129+-3946 8003+-7391 4912+-2459 8518+9887 -1942+-2430 7498+-6105 -9193+8367 9067+-8098 -5124+4742 -1989+-2645 2706+-5152 1088+5013 8330+1160 562+-8727 -4518+-3106 -7668+-8856 -8418+-4554 -5249+3604 9934+-7683 -7428+1145 -9540+5156 -9664+689 3814+-3871 7387+-9797 1325+-114 4206+461 1386+8870 1193+-6939 7849+-8222 -2176+2136 -8688+3048 -9445+5836 -1145+7319 -3012+-2828 -9697+-7285 -957+-150 -5153+2248 -3608+1850 -761+-7160 9285+8185 5796+-9130 1555+8284 7852+7554 -6898+-5917 4776+6652 -3391+4464 4856+4031 -3207+9942 -2468+-8027 8979+3478 5406+814 -2040+-8456 2416+-2809 4044+9757 6523+-9707 -3756+7216 -1280+1384 4160+-5593 2809+-4120 8502+-614 -6354+487 -3735+8193 9969+-7809 4436+-2585 -4813+5832 -6042+-9845 1740+3708 2406+7348 3089+-2176 267+-6223 -8440+3639 4975+-5816 9344+533 5521+-8531 3470+3489 5425+-2427 7623+2047 -7006+-1504 3134+5921 -480+4829 6957+2806 209+-4727 5441+-4384 4399+8091 -6696+-9842 -2518+5835 2544+1315 -3561+-2333 3939+8391 1037+-6527 -2598+-6251 -1211+-2061 2732+8245 3130+-8957 3406+-7120 757+-2698 6786+-2776 -5058+-912 988+-8649 -9295+-4141 -2778+-9410 448+-5948 1885+-8097 7614+-5573 6304+4260 2240+5476 6644+-4365 9913+-7068 -6870+-9960 -6921+6179 9222+7174 -1422+-5890 8252+-3990 -6763+6045 -7808+-9157 -8187+3989 1109+1513 -2549+-3067 1512+4151 904+7382 4678+-7703 5859+786 6965+-687 1662+-8771 9285+46 3873+1731 -6027+-413 6188+6144 1904+1000+-3710 510+-5053 -8052+9266 -8715+6705 6164+-1091 9997+6217 7596+5306 1351+-7109 -3812+2777 6060+-5347 1641+5513 3642+332 4300+8730 3931+3324 -250+-3250 5614+-6865 -7434+86 1559+1701 6317+-4389 8077+-429 -3202+-2814 -6888+4240 2391+8118 -2558+-427 4244+-1709 -4032+9546 421+-9959 -7492+-5475 1489+5814 2162+-6568 -6042+5580 6961+-9484 -8633+115 -1152+-9166 -547+7649 -6019+-9968 -9463+-788 6126+-2793 -8434+-1334 -5416+8272 5718+164 9436+7847 9148+125 -8671+1404 -17+-8177 6968+-845 7025+-803 2767+-6782 -5763+-8486 841+-6385 -5653+5309 8766+-874 6384+-6571 -1546+-6460 -3772+7998 -4314+-5032 7408+3128 -9642+-3813 8712+-4602 480+-7629 7141+-6611 9806+-2035 3068+-1292 -1746+2390 -508+-3450 -1324+1673 804+-6435 -1008+7432 -7531+7341 9158+-3452 -787+-8746 -4624+-8417 -8948+-7952 3866+56 7942+-6818 4335+-6740 1801+7403 -9633+-3223 -412+-1295 4097+-6558 -9434+-9102 -8546+-2366 -5950+-3279 -1105+-8514 617+-3106 9907+-5869 1631+-7198 5943+6849 9510+7393 -1795+2571 3537+6929 7532+-3721 -9344+-9525 -5262+16 -976+9720 1165+-1000 3779+-7274 4248+-8913 1521+-3152 8356+-913 2077+866 -192+2214 -1525+-2031 4481+4019 8626+1593 1096+3746 -4985+6169 -4025+4909 -3355+-9568 2124+9611 9291+9674 -5190+3234 -7861+-6792 9608+-7846 -4460+-5482 -9696+5337 2354+-6063 -1627+3869 -1359+-8241 5243+8776 -7183+9216 1573+-8518 3444+-9698 -5112+-880 5799+822 -920+-3140 6176+7113 -2050+-6305 -3840+3711 1883+4734 -4104+-4845 9955+1675 7717+8403 -2941+9062 -5436+-2202 8082+-9340 -1008+-1320 -44+-2389 1179+-5766 -710+5745 -643+2424 -6753+-7711 1391+-8866 8005+7804 7032+1319 -6013+-3661 9271+7364 3575+-8108 -9399+-5275 -5354+1909 -7877+-9152 -1474+9651 -1231+-1548 -1677+401 -5681+9680 -5423+-1988 4744+9651 3169+7614 2130+-4640 1203+-6255 -2651+8858 -8083+5805 -3652+7358 750+-6156 5697+-6916 -8700+-8260 7249+7944 5448+9937 7467+6911 -1722+2456 7492+-7763 4248+-5775 3146+370 3755+-8199 -6124+-2591 4487+-6936 -6042+-6766 -7289+-5441 2969+9871 -6980+3045 -9245+-4939 1374+9124 -4295+6150 9709+3728 7158+-4341 1085+1366 -8575+3820 9136+-9811 7218+1482 -7292+-2157 214+8551 8799+0 -1421+2767 -4244+-1263 -2176+-9366 -8585+-8689 -9164+-6624 -8265+8615 -6940+3040 4323+5324 5587+-6732 -9317+-6747 941+6705 -9528+-4858 2203+-7594 -7524+6056 -4443+2088 413+6237 -9505+8559 -3005+-4980 -1833+2734 -7217+7872 -2029+460 6151+-3224 -9238+-4089 968+-2579 -4466+-4332 3003+3754 1247+-118 4380+8287 5737+-9305 -5562+-8981 5633+3106 -5868+4479 1342+-347 -1511+-4086 -1207+-3824 3771+3786 -728+287 -3148+-8584 6389+103 -3116+7481 -1036+-1299 7279+-9393 -2416+-6992 -9340+-2118 -2276+-7122 986+659 -2451+-4673 -5868+-5821 -4776+-6920 3564+8019 -4142+-5830 -5286+-8155 -8369+9355 3162+9609 -4012+-7380 6043+89 2871+-9643 6882+-3681 -543+1310 -3179+-8551 -353+1664 -2396+-1353 -8199+6245 -9222+8261 5323+-6804 -6575+3486 9537+6084 -9385+-3040 5711+-1893 -4858+-9704 9755+-9606 -5759+662 -5367+643 -2030+-6174 9181+7790 4964+-8796 -9304+-7443 -6139+-2266 3620+-6293 475+7864 6554+645 -2988+9317 2582+-1166 -196+-9935 429+-2041 2014+-3628 7009+-6896 7494+-6605 -9220+1683 8832+-2739 -6508+-5951 3456+216 8363+-8122 -2982+-7938 1601+-800 9881+9561 1443+-9076 6805+-9419 -7448+3306 -7240+-2996 -5263+2249 -8251+1262 -2707+3125 -232+-775 5112+4507 -8836+8328 1379+-6592 -2856+9131 -3058+-9319 -6353+-7247 7569+-2024 -7222+-3005 2710+-3076 3082+-947 2375+-7360 -2018+7511 7274+6377 -6789+-2065 -2135+3047 -3629+6864 7385+1503 -4686+-874 8595+2457 -4755+-8785 2992+3938 6369+428 5362+-4936 4547+-1055 2105+4939 -1997+-9096 1457+-7692 1173+7285 239+8301 2871+-1597 -8937+4769 -5967+-6355 9397+-2160 -9833+3453 -1617+-6526 -6935+-549 -296+1626 -7883+8148 -4066+5326 4969+2653 2745+5348 -4166+7630 -2056+3182 7311+-9909 -4446+784 -9381+9264 8792+4327 -7677+2490 570+-8086 -7981+-7556 8079+1293 7062+1678 3614+8397 -3462+9878 7475+5868 4495+8245 -7313+319 1203+-3986 4854+-961 -3549+1322 -2563+8871 7336+9979 -2294+3059 3268+-6778 -4690+-5109 -648+4422 -5541+7078 -5500+-1773 650+-8659 2306+-7452 2632+-3376 -5169+-5287 -2208+3002 8423+-4218 -6375+7697 988+-2011 5100+4290 -2506+8882 -988+2500 -9642+6170 -5142+8659 -1269+497 9261+-8882 -3378+-5595 -8896+-2090 8198+3668 824+8369 4396+7800 6935+-8719 -147+2710 -9252+-7768 1434+-2634 8277+1933 7890+2277 6111+-549 2827+-5221 -3683+-3774 -9605+-1743 2358+-4131 -4752+6438 3389+-8018 -6968+990 64+8708 -7179+599 6964+-328 7789+8436 -6450+5418 -9196+-6081 6304+6579 232+-1096 -8123+863 -4512+5969 6452+-7085 -3854+5337 -8689+1315 -1797+399 -8201+-8642 6054+-6699 6530+3829 -8041+-3127 -8286+187 -3917+-6424 3027+-4548 2911+-207 7849+-8998 2005+-5917 6672+5280 -4765+-295 6278+-9477 6963+5274 -6825+-1837 33+1228 -4211+4412 -7408+1603 4123+4752 -3754+-7699 -1655+-2788 1193+8459 -5762+-6651 8573+-956 8239+-5203 -4967+1985 2330+-8390 -4178+7897 -9298+-5987 -1739+-2280 -3778+7508 -260+8256 8586+1839 7874+-4452 -9409+5770 2613+-9236 8510+1026 -5070+-3405 6184+-7001 -4502+-6618 -6790+3412 -2616+-1687 -2547+9779 -9606+1974 5821+3696 -7888+27 -4092+8512 -9663+4373 -236+-3978 3322+-5440 -5748+-3440 -1323+9556 -9491+-4948 4549+9100 6868+-9885 4958+5373 8633+6071 7210+7990 -8961+7513 -2141+-7401 1200+1106 4577+-8290 -4028+-6821 2509+3744 -3170+5931 2778+9521 -4325+-228 -7864+-746 2289+4965 7301+-9477 2037+5786 -207+-4167 4302+1935 8734+8843 -3445+7690 -628+9438 8938+9618 -2974+995 -7903+479 6046+7748 8435+9687 -393+3412 -8384+-6198 4641+5436 5199+-551 -280+-3593 -723+313 7086+5065 3961+-187 -1634+4460 -7571+2631 -4519+567 9349+9952 868+7257 -4953+6869 -2552+-621 -60+1857 -7359+-1250 -7506+1460 4638+9206 4793+5479 4220+7383 5715+431 -5572+1046 7969+6600 -1183+9801 -2449+4657 -2795+4985 7849+1996 -7655+-40 -9218+922 -4862+-8859 3379+-8316 -2583+-2405 -2278+3975 -7283+-4677 -9634+-1981 -9191+-3758 -5889+-472 -3958+525 3864+-4019 6968+-9473 -4665+8320 5550+4888 -2999+3187 -3004+-2362 7453+6513 3311+-1727 -825+-9223 -6037+5021 -3587+-907 -9189+9568 7107+-932 -9067+-7896 6922+-2080 2161+9398 -3633+1876 677+2747 -1885+-1177 -5398+-8343 3993+-6957 2130+-6093 8617+3390 -8161+3986 1495+3477 -2606+-2862 -9507+-8441 -8357+-6761 2907+-6630 2543+-4715 -2464+5126 8059+2484 -9848+1642 -4598+3232 557+3579 -7101+-9197 1791+3771 2218+5352 663+-5877 -1698+-5530 -6152+-1330 -1728+-6115 4350+-205 -4550+-3767 9360+3897 7340+-932 -9550+7412 472+-4800 2938+-2544 2947+3991 5860+-4461 -2249+-4444 -222+8802 -7354+-8314 7094+4412 4083+-6003 -4933+2787 -1534+-3239 8701+3058 -8451+-7646 -307+7889 -1560+-1026 5471+-7080 8899+6887 5403+-1278 2526+-2623 9168+-6814 -8368+560 2939+4153 -989+4639 -6730+6507 4067+8654 -8613+-8871 600+-601 -1191+-8328 6658+7184 2745+9876 5+-4912 -6317+-9882 -3914+-1158 -3598+-2494 6991+-1188 6089+-7180 4146+-6009 9265+8522 -6535+-9226 -6346+1300 -4830+7106 4449+8553 1273+9821 551+2233 -9176+6538 5265+-7016 5805+6014 -450+-898 6639+8606 651+-1858 -6292+-1648 -6829+3518 1620+9744 556+-9950 -101+3065 -4316+-6316 5807+-4483 8222+-2308 -8933+-3940 -9210+7721 3041+-2745 -5824+5771 7648+6229 9522+891 -1523+5428 -744+-9062 -3199+7640 -1841+604 1509+5141 -5659+-4264 -1752+5347 2724+6723 -1114+-7295 -5642+-5040 3244+-5582 -2929+472 -1189+-1439 379+4172 8017+-3647 3989+-1557 3194+5162 -4976+-8132 8679+-8889 -223+-1268 -7476+5088 8336+-6729 8462+-4716 905+-7546 1155+-1400 -2416+8338 -2511+5649 6154+-2248 7067+-2481 8661+9489 2258+-8734 9127+2706 -7734+4558 -721+4601 -3388+-2593 5029+5291 -8726+36 -3502+3766 3478+-843 -8976+9901 4934+-9152 -4029+-7924 8597+5767 -6444+7672 -7899+6569 -5270+4539 4381+-3301 -798+4454 3109+2595 2156+1331 2830+-9870 5472+6897 7126+-178 3694+-8818 -6196+7294 -309+4091 -3940+-2052 2911+8358 1752+6899 -455+7800 -737+-8616 -6579+-3336 515+-3604 611+1324 1981+-4255 -3192+-5928 1352+-7203 3130+-696 -3039+4753 -2844+6267 1537+-3604 -6885+-1391 -348+-5775 2843+-3284 1121+-7993 -3309+2857 8513+1470 -3+3293 -4884+-2017 -650+-4183 6201+-5331 -3521+7141 448+-7371 9904+-9545 4001+3780 -719+6736 -8636+896 6935+-7592 2695+3770 4285+-7165 812+1063 -4675+9964 9680+-9481 -7555+5032 6822+8184 1799+2009 9005+1845 -7402+421 4417+5579 3426+8331 7682+5091 -8544+-4134 -1716+-3317 -929+-9274 -5371+-9024 7701+254 -8839+486 -7697+668 2076+-8969 2712+6227 4433+-9530 -8030+-4242 9606+3155 7459+4883 8301+-5244 -9358+5316 2748+-1273 -4407+-2168 9330+-2935 -2593+5818 3473+-3750 -3686+3180 -9580+9895 6472+854 6441+-5116 4488+5344 -2840+-4153 715+-2084 299+-2188 4363+-5104 3947+-4487 6508+-5544 1866+6369 8855+3232 7564+-3718 9779+3918 -3123+2112 3240+-3771 -6034+4919 4929+9023 -9116+7101 9230+-6454 9493+-3554 -4445+-8435 316+5918 7961+3476 8293+-3055 -7377+1969 1095+-6832 -7754+6486 -9329+-3743 5824+-1388 -9966+-9282 -4909+6471 5519+3994 -9355+-9813 -2277+6361 3070+-9893 -5872+8958 -4134+-6331 -6347+1199 1120+-10000 7825+-4684 -4178+8348 8961+1796 3214+5443 -5533+-7802 456+9253 5663+-3838 5024+5677 -7123+5826 2369+7952 8427+6130 -1201+85 -8546+-6611 -432+-7113 4376+-8121 -7288+-5243 -9790+-7271 -1066+-5574 3639+-2153 -3492+-4983 5457+5739 8139+6633 1998+-9395 -9206+-5066 5638+3596 -3260+-4339 17+-2356 1+8227 8560+2309 -3357+1315 7399+979 4536+-9587 -8817+7855 4597+1958 -7503+3940 9079+9999 6015+-6161 -4723+-8645 -401+1478 3017+-1044 2244+1692 -3619+-9211 5969+-2811 878+1338 1010+-9494 -3121+608 -6112+2535 3651+9077 -3222+-7705 -4060+-2835 8867+9465 -7677+6355 8574+-9703 7834+-6571 -6299+-8597 7697+-2001 -9466+-4548 -5311+-8016 652+-4901 7308+-3204 1443+9550 -6924+-6258 6042+1456 -7591+-3860 -820+-8549 -6538+-3739 -6447+-1063 7584+6924 130+9374 -1465+-8299 413+-1906 -9035+1577 141+-5363 -8639+-4872 -1299+9395 5948+-5988 -5196+-6606 6324+-3163 -4712+-8033 -673+269 -4629+701 -3799+-7912 -3004+-2484 -5124+-5242 -1690+-3325 -6065+-9706 314+-8877 -6955+7494 5346+6830 -8290+-5467 8725+9222 -9678+-5725 -6357+-6167 8865+-5091 8449+-2653 -2131+8509 -6007+-4591 -4539+347 -4228+6196 -4491+-7616 -4331+2807 -8410+8229 2220+-1462 -269+1198 -5035+9198 -2452+5014 -704+-1654 3595+-5653 -5076+5787 -672+4978 2914+-7740 -8059+5633 -5631+9420 5280+-9728 -3393+1166 -2026+-7440 -9235+-4324 -7331+4058 1604+2900 -8675+8212 6271+6407 4899+7288 9895+8579 -1081+-4521 1692+-4781 -7388+-9703 -2373+7025 1190+-1239 -7187+843 6988+-5966 -5114+-8434 -3476+903 -218+-7974 -2633+6084 -9583+-858 5047+5766 7440+-5459 4625+-7009 1503+-6298 -6662+-4172 8330+8290 -8486+2501 1869+-6705 -614+9812 7732+5748 477+95 -2672+7285 8203+-6778 1476+5721 -8567+-2230 -8687+-6205 8005+7936 -6441+2221 -423+-6586 2336+-6394 -2188+3991 1528+-5039 6705+7074 -8656+-6923 567+4421 -7412+-4958 -8678+9593 -8181+-4488 -5300+789 -9070+-2741 1552+-9468 -9088+5513 5597+-9302 2094+4894 2969+1933 3943+5778 248+-4011 2311+4687 -6687+7640 -9164+3537 6211+8242 -6061+7139 1234+-2577 -58+-4662 1625+-5565 9947+-9183 -3631+8172 -9485+-8281 -1579+9983 -3430+-9105 5679+-9636 -6361+-936 -6481+-4849 2494+22 8524+9216 -8979+-4286 -4749+4469 -5752+9841 -1633+7377 -3569+-6501 2906+1000+-8968 -286+-5948 3582+-8856 6907+6387 -9709+3685 -5011+3401 -6775+7540 787+2033 3568+-9942 1590+-4686 -9861+952 -9392+8780 9580+-1519 -6592+-5717 -4900+-1129 -8458+-8795 -8033+-4084 -1268+-6565 -5682+-9043 -1309+1031 -2392+5887 7664+-6611 2728+4566 -3304+-2984 -3706+6501 -358+1036 -1321+4280 924+7075 -7469+-486 -7789+5335 -7073+-4409 3685+-8201 2977+-9982 -4440+-1992 -820+-5933 1026+-6333 1300+-183 -3697+977 -7815+-1896 8845+7032 1788+4637 -1234+-9488 1874+2150 9165+-853 9041+6413 1687+6775 1607+4257 -8436+1818 4339+-7445 -8568+123 -1700+8240 7288+-1533 981+-9059 9716+-5165 -6488+7692 -4173+5473 -8836+-7570 -466+7573 4033+3866 -2492+8962 4235+-7709 5744+-2472 -7732+-2324 8039+3224 -1655+-3926 -5469+8225 7736+2480 6346+6138 -2508+-7090 669+-8 8038+6634 -5513+-1537 -392+836 -4557+6654 -5917+-7940 5128+3480 -8013+-6950 -6227+-8230 -1442+8418 6925+7222 -7359+-366 3347+-8926 7822+-415 -2257+3676 -9607+-7606 2411+8718 7756+-705 -8699+-5959 -4785+-5385 -1702+-8437 -8745+9571 7446+9279 -5492+-7044 1328+-295 6034+-5369 -6434+256 2158+8065 -4062+3830 -3301+-3980 -5110+-9593 -5381+2785 6310+-5595 8751+9085 478+-2248 1906+-990 1776+-4439 -841+-3414 -1399+9508 3562+-3630 -5276+-3463 -6648+1194 2190+-6653 -483+-3709 -2902+-9445 -1524+-3170 6086+-7684 2798+4985 -107+9195 7827+3099 -7749+-945 -4142+-6059 -4882+-772 -6176+-3390 2830+3615 -4757+3911 -6750+3848 9864+8 4419+7409 1704+-2749 -2675+8075 -6741+-6576 -7237+-7993 -3188+7956 -8703+7825 -4735+-6529 9724+5601 -9558+-1528 -4087+9519 8890+5386 9123+3980 -9360+-5711 -1988+-8836 -2670+9268 -5622+-5096 -912+-9884 3034+3757 -2449+-2862 -9400+2235 9404+-9165 2565+-7902 -7951+7162 9105+5617 -687+1142 1249+2688 -4195+-8543 9717+-8685 9095+-113 -117+-2232 -4116+4991 5065+-3438 4937+-9746 -9929+-4766 2391+-5047 3873+-4473 9032+3222 -4934+5964 8236+-388 -1325+-8993 -9966+5909 -3203+-2633 -5946+8416 4008+-1175 -4007+8091 344+4894 -2004+-9473 144+1856 -7630+-4919 2096+-812 1907+3538 7541+-5951 -8997+-7798 -9061+9174 -4497+-1178 -3538+-4253 -7035+-2422 9841+2388 -3452+-8429 3486+411 8148+-5159 9722+5211 -3068+4587 -9154+-1672 -5667+-4512 -4473+-1341 6666+4746 2137+5159 -7361+3108 5848+4771 -8645+766 -1425+5745 2328+-6774 7146+6919 -6765+-5277 -9830+4798 3185+-1353 -750+3732 -6956+-4017 6059+7407 2587+-7657 5122+-9071 -7072+3274 -6231+-2093 -5699+4919 -6910+511 9899+-6363 -8331+6467 -3193+2207 -4034+1897 3440+1802 2297+-3357 7742+2185 3872+5981 -1638+-504 -6190+-693 82+5298 6086+8364 4351+5204 -5700+9882 -1153+1540 -1394+4148 5811+-187 2902+-9047 5243+1891 7241+4611 -60+9382 4137+-9603 -1093+-5223 -9475+7853 -2871+-7544 -9375+6677 6682+409 5723+-1246 9959+-1036 3749+-5497 6623+-5188 9997+634 -2901+-8257 -8900+9501 9899+-1618 -9869+-9351 9625+-6364 8071+-1452 7468+7425 -6800+4962 3964+4233 2104+9698 13+-5525 8578+-7281 -7765+-1208 -8065+2143 9892+7769 3629+-8745 7238+-4464 7336+-862 699+6167 3780+654 8051+9836 7323+-3971 4361+6880 5855+7459 6096+-351 -1856+4291 3966+1205 3544+-9858 1621+7431 6352+7268 1668+5147 -5215+-9059 -1398+7145 -8447+6142 -9177+7570 -1539+8774 6655+382 8754+-8700 -2220+5014 -8470+6329 8381+2509 4790+-5400 -8710+1433 -6256+5138 6054+2613 -9647+7128 7434+-4689 -529+6039 -9418+-6372 4014+-7939 2527+3858 -6278+6095 -7358+3742 6839+3635 -5245+-7081 -9877+6842 -7237+-1349 -2622+-2293 6370+-4900 1906+-9687 4088+-7820 -8323+8832 1170+-5013 7488+1299 -2629+-2449 5862+-8932 -2531+3355 2640+6527 3876+-6321 -2982+-2825 -1256+3659 -4509+-9031 -6472+-6595 -3475+-519 -3347+-232 9140+-9839 -2806+-5093 4752+4321 -6540+-7149 4933+-7873 -4094+-5206 -3486+6337 -8156+9538 5345+-2141 -112+-2807 -4524+-720 -8561+-9030 -9063+-3939 -9133+3532 1334+-4071 -7909+-6453 5219+5604 8198+-4224 -8920+3822 -2633+-60 -9241+-9896 -9193+6498 3105+-2542 3766+4561 -1941+-9426 6719+-7822 -4148+7585 -4154+6512 -1875+-1095 1716+7061 -6706+-4644 5916+-2576 771+-7241 1089+-18 -5048+-4928 5100+1330 3749+-3059 -9045+-8122 -6344+-6657 -9888+-9029 1109+4586 3214+-6442 -4208+1313 3124+-705 -9475+-626 -4064+-6010 -2274+-6478 4216+5591 -4160+-13 6540+-1509 7286+-5788 -1153+-9980 -3208+-3808 -3789+4100 6599+2590 -5325+3732 -805+-1945 -3625+3185 -7002+4292 4265+-1873 -3497+5493 -9062+-7071 1880+7035 -7978+5316 6989+-1742 -1026+-2827 -7139+935 8749+1169 -2988+-3686 -9670+2596 -2177+-4030 754+-5630 8178+-3236 -384+-1293 -514+-3804 8774+-1904 6251+9983 817+7186 -4053+-4257 -3930+7616 -7231+-9591 5320+3821 -1985+-6253 8091+3369 -9936+9747 488+7713 7993+-9858 -8566+8095 8325+-1040 966+7100 8079+5318 10+5388 -9748+6447 -2679+2334 3354+-9147 9468+-12 3898+-6993 3719+-7443 -2931+7442 9509+5184 4149+-6666 -4401+-6698 8596+-1432 -9218+8939 -3382+7237 3882+-5783 -5735+-6676 -9648+7111 1626+-9784 -9736+-7952 2686+-2947 -4937+9162 4687+8539 4238+7782 -8242+1241 -8192+-3565 2858+-4912 -2427+-804 -9449+-463 -7155+-6044 6342+9060 -2891+-1638 -2601+1784 6419+8927 7896+-4725 6392+7900 6476+-1368 -8838+6703 4312+-189 -4313+4711 3385+-8676 -6023+7669 -5744+-274 -782+2820 -611+4614 -5833+9727 9800+-119 8324+755 4197+-9678 -3629+-2621 2906+4357 9435+-8717 4459+4680 2658+-2188 -6433+-1346 -5691+6675 9+309 3528+4537 -4439+-4425 6669+-7975 1236+119 7195+-6386 -2562+-2518 3427+8293 -4687+-7480 1075+2416 3878+9628 8301+6837 9795+238 2036+8862 9069+-2031 4954+-7796 -4764+-4835 5108+6603 5441+-1694 917+-6305 1309+-4019 4488+-7373 689+1174 -6281+-2863 -3802+9264 -1719+6208 1114+-6402 8688+-6687 9627+-9483 -379+2613 -4883+-8526 6408+-6778 -5575+5641 8819+5861 -5207+6558 -7547+9389 -5120+-7739 7526+-4743 -7738+-2032 2039+7450 -1388+132 9330+-6461 -8705+1599 165+-4240 2354+-3737 1642+-3551 4556+-5854 -9265+8961 -1219+7485 -4836+7265 -1377+-9929 -8692+-9809 5379+-2119 -894+-8472 -3741+-6458 1408+7102 5993+3535 -5745+7693 -6819+4348 -2269+-2281 295+4419 -9338+5152 3702+-1423 8525+9672 6148+-3179 -3052+7371 -9604+-5754 -8436+2170 -1371+-1597 -2160+-1054 1296+7472 6947+-5438 -4736+4372 9970+4578 4923+-6962 -1048+5382 -5076+-9585 7837+-8623 5793+5454 481+-61 2080+2856 -3862+-7269 7691+-81 -6745+-3050 -362+-8159 -4256+-7993 -9995+-8217 -279+-1350 7057+-2044 8934+9846 -5213+-189 7923+-5518 -3685+5988 8634+2961 -8945+-9534 6118+7518 -3600+-5608 -797+-9894 -9300+-8117 -1531+9836 -1307+3914 3435+-5032 7478+3310 -8174+-9872 9978+6155 5465+9224 -9309+-9051 2999+6680 -455+-3537 5909+-4470 -6504+-9173 2747+2100 -437+-9696 -3903+-2656 589+3935 4418+-4520 -4021+-8817 7221+5785 -9418+3816 3256+6775 9903+1868 -7552+5004 -5614+6919 -3837+-6218 6622+-9063 3449+1119 -2107+5682 4051+925 -8893+-5727 -3477+2233 -4205+-8847 -6644+6460 -4266+5559 -4139+4028 -8909+-9007 -3051+1238 9792+7562 5286+3011 4288+-8976 631+9143 4809+9128 -2361+-4583 1163+3073 -685+598 1172+-7629 -2925+1680 -5634+-4108 -1374+-501 -7128+4031 -5457+-597 -1266+5393 -8177+-4763 -2062+3247 -7742+8773 7483+-4326 -2300+-2892 5692+939 6796+-3584 -8278+-8045 5630+4884 -5197+4203 4214+-4487 3625+-6888 2194+-7121 -2759+2144 -8971+-7693 -7556+2458 5648+-301 -1916+3928 3422+-6372 2442+-1713 8202+-4010 6422+-6547 -1491+-8878 -5194+2681 -6234+3015 7012+-8666 -1992+-6370 -8775+-5238 4925+-5754 5652+8500 4283+-5423 -2273+-6885 -5568+-773 -5531+3134 7134+-1689 3144+-5062 -4901+754 4174+5248 8026+7712 -1649+2734 -3347+8015 -9807+-5185 -3873+-5360 -6685+5017 5179+-1184 -5384+-5654 2925+9799 7139+4296 3963+-3092 -7904+-4191 866+7605 -7175+1199 -8908+-2387 6168+230 7591+4924 -5316+-4856 925+533 8578+1752 7693+-8481 -1656+6911 2680+4966 6185+8766 -8084+-9526 -8838+5351 -8333+-5006 9784+-5207 -3283+-2603 945+-2225 4411+-5997 -1286+-408 -6962+-4155 1798+6699 -9379+-1312 -7542+3310 -9778+-9860 1699+-1464 7150+-4288 3961+7955 3373+6011 -3644+3499 -4798+-1069 3565+579 -5379+-4744 1706+4943 -5934+-4597 5087+-6988 -4205+7678 4009+-32 -8596+4871 -3384+-4911 4457+1596 -6389+-3184 6917+-3103 -7465+8786 -6506+-9630 -7019+-7995 9852+-528 2035+-7860 -8692+4734 6088+1150 -7669+7790 -1109+-8911 4822+3566 895+2535 0+-5200 -355+7175 -1296+-5707 -3336+9813 -3289+-5610 1091+3738 3143+-1492 -1689+8727 -4430+8229 2860+8034 6503+4240 2363+2204 -3373+5187 -2284+-470 3559+5186 8262+-7007 7218+5147 -2414+-7960 1747+-8767 -4212+8760 -6002+-1746 -5786+-6999 8302+-560 267+8227 5372+6172 -8951+-5353 -2329+2807 -1510+4377 9964+3384 9938+4532 -9447+2327 1299+-3118 230+9405 9931+-4264 8856+3482 326+7 9204+4458 1327+-2891 -3127+2806 6955+-4155 -8156+5652 2487+9362 1525+5939 956+7902 4456+8282 7955+-5944 1527+-582 -8302+-2492 8289+5858 3542+-4059 -915+-466 -5250+9345 -2226+-3356 6152+3649 -4349+5390 697+-8560 2652+-1175 1268+9907 -3848+8453 4053+-2819 9902+-2187 -5863+-9365 -7634+-8079 4984+-5619 -5324+5350 -1167+5469 1861+6735 -6589+3010 -1053+8124 9291+-8526 -8467+6555 4047+-613 -9781+-8511 9834+-3805 5812+-2113 3263+1 4179+4396 1400+4913 -9415+2997 -4828+9918 -2193+-6859 -8510+3134 8512+-4147 -1747+-1748 2233+-1937 3828+6255 -5174+-6140 -1745+7158 -6176+-882 -7817+3678 5581+-3569 4886+-3499 3140+-6331 832+-4382 -8510+81 -2522+-9461 -5940+8312 2743+-4774 1665+-6573 -9951+-2541 2486+-7123 -6933+4051 8986+-791 7281+-4014 -8293+-9530 4683+4271 5107+-277 -7620+-3707 -9399+571 571+-617 -1105+-2078 -6184+2464 7302+2261 -2223+-7752 3451+-2509 -3080+-5761 -2979+6081 7479+7402 5210+575 -8155+9868 9938+-812 -7889+6839 -2491+4821 3921+1280 -9671+-1650 -4260+5150 1813+-4081 8269+3685 3039+-9006 2485+-3178 -2525+1360 2074+-9830 1203+-4482 -5194+3794 8405+-3628 -2025+1243 -6506+8097 -1726+-8846 -3183+-4840 -8024+4410 -8738+6313 367+4726 -9963+-3083 -8583+-3959 -4212+8762 -3427+6229 -6283+-9679 9679+-439 -2741+-2671 9467+-6460 -4104+-7900 7899+-6142 2281+233 -5693+-9105 6503+392 -9343+562 1612+-650 5161+-6395 9433+-9712 -8342+2208 952+-5568 -2045+7352 -3518+-4796 9819+-4186 8019+-9654 7871+7255 -3587+2878 -8053+-5792 5507+-375 -8260+2065 2464+-5413 -4240+7431 -1097+-1949 -149+1345 -3632+3949 -7113+-9519 -189+-248 -8414+-4136 8066+2592 380+-6147 -6884+6791 -816+1854 3560+5640 -9363+-9994 3607+-773 -6808+-1986 -6811+-2229 -3925+-3050 -3997+291 8427+-9993 -307+-9198 3557+1497 -6440+6341 8799+-8199 3212+-7972 554+6503 -8624+-550 228+-5744 -4497+1422 7570+2724 1388+-6008 -7536+-8579 -2062+-9008 4104+3137 4844+-8813 -3182+5153 -2555+-3445 -4456+2637 -768+6858 -9055+-687 4180+-3521 -2705+2404 6518+-5239 125+-1732 -4391+1166 1888+8487 9565+-6500 -9556+-6505 1837+-1488 -1694+6246 1532+-7795 -9323+-7801 -5305+-8439 -5585+-9558 -2920+5122 2314+-1472 -14+-3208 5206+-4295 6+-7034 -9828+-1226 8164+3803 -4015+7979 -3725+1132 -6359+-9147 -6698+-1393 505+1620 2737+4594 1013+-8043 -9501+1690 6059+-8883 8810+5054 5125+6950 1411+7357 -7851+8938 6250+7949 -5996+4746 7831+-4105 -8606+8499 7084+-7389 -6996+-4402 8182+-4465 -2629+6168 6327+-2565 7065+5861 -9594+-3419 -4785+-2009 -6862+-8861 -8855+-2111 1944+1865 -2068+-2981 -3787+-4352 128+-9432 -715+1149 -8546+6001 -4245+-8811 7677+5935 2735+8199 -1161+1039 5106+5390 -8020+-386 5987+-6248 8462+-823 9306+-78 5355+-5645 8408+-5974 -5238+1401 1478+9043 2962+-2274 8474+1000+-4690 2600+7662 8497+2763 -2972+8389 8551+9099 -7424+-7974 9064+111 4661+223 1470+7849 4247+-3551 -2957+-1163 -431+-9032 -9295+-381 -775+-8736 -4086+-2123 984+6891 -7517+-1997 -8098+-8551 -4349+4073 8350+4453 541+9356 -6400+8323 -5975+-2000 -7007+-488 9027+-9326 -7053+-2429 1766+-9500 -7851+7604 -2620+-2035 -6116+8193 -764+9857 8726+-3519 9516+5857 -4121+9181 193+-7483 -5290+933 3353+-4 202+-232 3114+2100 8281+6277 -3790+-3942 -9133+896 7654+-6332 7934+-997 5849+480 7522+3545 -3043+4042 -6712+2566 2746+672 -4770+9567 -2793+8703 305+-7396 -3848+2470 -9776+2547 -2939+-2650 -22+3437 6602+3479 -5719+-232 -1542+6305 -4033+3108 -2905+-9470 4397+9382 -4537+956 -4867+-2677 -218+-9172 2027+1429 394+2786 -3979+-3263 -6326+-1931 7469+-8178 7144+7905 8107+-3797 7762+-7572 -7973+6546 -7627+-6139 9836+3689 -1713+8949 -4263+-4396 9828+-9582 2948+-1176 9479+-2796 -9741+-3650 -9526+-3982 8273+9461 -9337+-370 5148+8112 7630+5615 -9783+-4254 -3433+-8581 -9968+-4987 -7712+-3620 -9704+7145 -598+-2238 1495+-7712 2883+-7919 6251+-2935 3930+2458 3029+-8392 -6436+-1784 1770+8501 -4358+7120 5214+7847 9945+455 -5742+-810 -7668+-3696 8885+3278 -5899+-6365 7436+6130 -9570+-1990 -3360+-2510 9258+1228 -8153+9648 7834+-4880 -4360+-9129 -3164+3893 -9720+-9057 -3126+2205 -9856+-5914 -9029+3668 2896+3747 5660+918 2395+-601 -6640+-963 5136+-5409 -2143+886 6692+-7726 4431+-3883 5421+-2917 7599+626 -3608+1302 -9589+1781 -4288+4237 -705+-7684 821+8331 3272+4849 -1287+9311 8784+-2898 -1092+-2764 -9067+7646 9071+6411 -3196+7600 -8470+-8337 611+-2549 -9523+9411 416+-9755 -6850+3939 4243+-7851 -2339+5781 1214+5848 -1908+5297 6431+77 -1406+-9214 8995+8758 -6074+-3365 5456+-6000 -1050+-2319 2356+4537 -385+-993 5861+-3763 8666+-2519 -6386+-2804 -4168+8914 7997+1581 1083+6902 -5344+2911 8766+1113 1862+-6844 965+-4715 -7733+3990 -1624+9525 5616+-3074 6355+-2983 -9811+2757 7969+-6059 3871+-6905 1415+-1556 -6948+-3975 -346+8184 5183+-9469 -1636+3657 -3672+-4826 -5206+-9450 5082+-7919 8475+-6347 6804+-5847 1904+8982 5900+6007 6765+5110 -738+9315 3247+-1204 6789+4865 -3118+-9327 9425+-1383 6816+-69 6710+-546 3916+5978 9726+-6875 -158+119 -4872+5666 -3421+4283 6182+4548 -918+3496 -9040+-4978 -5840+4191 1317+-8277 -2786+2655 9080+1128 -2623+-5072 6570+2041 6255+-3979 5116+8436 -2062+6650 7446+3526 6277+-210 -3768+-8653 6924+-2212 5717+-3293 1963+-6159 -233+-766 1421+6651 -7203+-3990 -3301+1943 6005+7576 -4568+1782 -1814+9531 3442+-1099 4435+3353 2257+-4228 -1075+5593 -315+9608 7784+-4689 -2017+7337 2307+-4700 -1631+3504 7787+-5560 -2628+-1969 -9558+-9525 4066+-9645 4386+-870 -4693+-1764 -7679+1644 -9426+-9976 -7612+-7152 -443+-5128 -9008+3505 5352+-9555 -46+905 -7354+-8150 -8359+7497 -6889+-2190 -1152+-8732 593+-4607 6628+-6001 -310+2353 1897+3239 2121+-8923 1335+4610 -4558+4150 -9553+9172 -3927+5199 144+-9213 148+-8873 25+-6059 3421+5965 9953+-3950 -7597+-3176 -7887+-5888 -8818+-7795 6645+1146 6728+-8138 -7570+-4168 8526+7375 -6994+-4681 -6331+7937 4966+9657 3319+-2828 -9834+-7892 7700+5303 5036+-8100 -7455+4849 3876+5542 -201+-2645 9467+1307 -8270+6535 4405+-4683 -876+-8310 -4594+-787 2022+2578 -7046+8541 -8964+-3498 -2883+9032 1766+5308 5564+5323 5608+-2340 9923+-4919 -9528+-6842 -8826+8022 -3595+-7910 1615+-828 5828+5830 7439+-7855 -82+-2101 -1384+-1997 -7536+-5370 -5106+-4567 -2088+4956 736+-1693 7140+-5745 -3691+-1563 -463+5610 5221+2206 3624+-2834 -8309+-3038 4203+-5853 -1352+4535 -740+7444 -441+4728 2438+-3024 4947+-248 -5875+2461 7955+-4331 -339+-287 -7455+-1793 -8542+-9846 4354+9638 -7439+-4670 5953+-9198 6369+-9193 9416+-6442 7593+2188 -4703+8360 2839+3917 5491+-9686 -2708+3257 -7082+86 5137+8108 -3517+3832 -7396+6818 -233+-8126 4638+-5679 8910+5865 3732+9237 -9024+5347 -4253+-2533 -5089+-10000 -9129+-6196 4051+-9163 2794+2622 340+-9674 924+-428 -6182+-3904 5317+-4364 -2997+1332 -1027+8818 4747+-967 226+3350 7444+-4828 1875+9325 5728+-5708 7442+4757 1887+-9827 -919+9527 -8743+-4047 -181+6647 -3062+-3332 -9346+9143 8978+7004 5936+-4335 -3950+-7003 2085+3742 1620+9997 -3085+2372 -385+5594 7678+-2866 2194+-6810 3555+-4095 661+3192 4690+14 -4783+3192 -3224+-768 8770+-2884 9584+-8566 2831+-536 1621+7546 4634+-6246 -9307+1588 4994+3698 1934+9892 -2609+3970 -9732+8436 4061+4438 7006+-8625 -728+-9958 -4847+-5769 330+-4652 6832+998 -4491+2802 7853+1911 8559+-9449 -1542+-5479 8583+-8914 7406+-4228 9735+6765 6439+4224 -7682+-3365 8389+-8993 -4744+3819 -9019+7548 2241+-5576 -5763+4840 -2383+-3844 -6100+-6139 468+8383 -6518+4884 3825+8713 1778+9231 6802+2832 -4480+2484 -4346+-8334 -431+7334 -9278+-3661 -1431+-8994 -3454+2917 1107+-9304 8704+-4829 -7220+361 -9825+2362 3881+-586 -694+994 9468+513 7274+-8656 114+-9439 -5300+870 7021+-2005 -3837+-8153 -3454+-8082 -4674+2408 -1251+-5032 4972+-2858 -6480+-3846 6720+-684 6473+4931 -8653+-6115 5110+177 -2398+4354 -2555+4135 3225+-4062 6116+-3522 -2627+-8957 -9796+-1860 -5289+-2851 -8189+-889 -1337+-4308 8117+-7351 9834+8443 1498+6013 2633+-1287 8482+-6079 3880+824 6036+-1412 3265+-5224 4481+-5535 7460+6028 -8065+9171 3471+7502 5789+-3677 -9556+-8108 -1366+-3760 2009+-3561 -8824+5813 -5878+4114 1267+-5062 7830+6306 -2938+-9041 1878+4646 -8745+-7581 -8120+-7593 6850+-3673 9689+-5204 56+9090 1916+-5227 4237+-5762 939+1528 -5905+8742 5523+-6940 -3268+-3733 -4179+6813 -8098+9089 4951+634 -59+209 -4151+9317 -3556+-4687 -3645+-9884 4842+-6055 -2392+-2062 -3528+-9282 -4455+-2288 3423+1945 -2382+9000 -4196+4761 775+5707 -6763+-7897 -1329+5926 -2209+4076 -275+8254 -1872+5077 -1264+-9464 1304+-6420 7232+-1522 -5617+2171 -4445+-742 6538+3519 9781+-5767 -119+-806 -1299+-8195 789+9284 -9164+5476 5772+9368 -6540+9863 -4163+-3751 -5036+-9393 7604+2332 427+5174 -3526+789 7361+5395 -3234+-8357 -5124+2031 9962+5396 -673+-3622 -6584+5326 -5509+-2155 6236+-3769 588+2090 -9950+6155 4992+-3412 2822+-4035 -7375+-3469 -4597+-8061 4205+1415 3265+17 -7566+9774 -9349+5369 -4418+-3341 -7210+6614 -391+9942 -6986+5199 4482+714 9361+-2656 5576+-4380 190+4973 -4544+-8383 426+6229 -8585+-2413 4393+-5598 -718+-589 -5033+1906 6004+-6211 4912+-9113 -3718+-1359 9981+8338 -8544+-8593 -8817+-6018 -6420+8586 -8175+663 7411+228 7220+-992 -3673+9389 -1695+-7119 -4898+4893 5387+-107 9657+4869 -512+8774 7592+-7505 9638+6500 -4784+-5292 -3000+4681 4019+-1256 1038+-1408 -2113+-2899 837+-555 325+6749 -7107+-4084 -748+7878 610+3846 2537+73 -1466+-3150 -1466+6089 -9491+-3533 -672+9361 7886+3980 8860+-9530 -9735+-6494 5872+7611 -352+8898 7103+-1816 2271+2281 4967+2841 3610+3981 -3497+4721 776+-5394 9534+7622 6982+6224 -8502+-1080 -2783+-6664 -7745+9627 -5415+-6061 -5199+-1736 1970+-8085 973+7640 -6204+-2913 2648+-9954 5630+338 -821+-8860 -4213+-6721 -7654+-211 -590+-6794 -2416+-3687 4234+-5164 3781+6542 3775+1127 3038+8980 -1668+-8068 -4450+-7572 1769+-1508 -9678+4846 -1204+-9837 -1483+-4947 7352+4537 3079+7436 6761+7158 1662+-4741 2223+7511 568+-2529 7045+9168 -1350+-2872 9057+1282 -5413+8214 8578+9230 -4851+3202 -5424+2316 981+-936 7368+-7564 8590+-6641 23+-1325 89+7044 9844+-6469 -9158+7983 3227+7626 8152+4200 6383+-6024 8477+-9867 -582+-6389 288+570 -4853+-2476 8036+-4561 -974+1767 9301+3916 -8338+3072 9102+-8962 -2459+-2073 -473+-6358 7999+5484 5857+8984 863+1940 4808+4605 6471+-2397 -8160+-7652 -1478+9009 -3754+4212 -1876+-577 8043+-4581 -29+-2398 1193+186 -1029+4584 8516+4727 -1809+623 -5181+-5 6737+-9495 -4381+-3621 -4916+1364 9699+6822 -8785+6458 -2211+-2589 1339+7048 -4580+2831 7179+-817 -8908+329 -8255+-4466 292+-7678 1638+-9645 -9215+-802 -8357+3923 -1370+-394 5565+-739 6477+6643 -746+7795 3655+-325 8094+-8388 -6097+-5487 -9997+-6807 -7266+5115 -8607+-2100 6951+-9243 -440+4496 8284+-5723 3078+-6957 -1990+-3516 7831+-1197 -9951+4173 -6855+-1164 2622+-7510 -2866+6866 2607+676 -6922+-8587 7067+6053 9913+-7938 5530+2082 8501+-39 -4908+8225 5138+9346 -6302+571 -3788+-2049 5277+8532 -1216+8024 7071+-3601 8292+-6367 -1268+5558 965+1866 828+-2198 -1255+6385 6348+2398 7114+-8203 -9789+-4840 9959+-7247 9231+5924 2435+634 -1501+5837 832+1887 3025+4850 5018+-5336 7470+8255 -5030+3651 3668+8613 6021+-1262 -9171+1480 -4514+-9148 -4171+1781 4130+2038 6088+-5309 -5568+1988 -826+-5097 1639+5276 -8027+-3285 3785+3185 -2143+-3425 -458+2582 1218+3625 7250+-9236 4222+-7190 7487+-5548 -3184+-8210 -5363+3803 -9664+-852 -8052+6906 4867+-2747 1435+7991 6711+-809 1769+2165 6907+-8976 -2884+-2093 4920+2078 -7256+4769 -2793+9869 -7277+-9706 5674+3600 2333+-6469 6146+3797 -4955+-6826 5637+5309 -4164+9806 -9913+4228 -9630+2406 9552+-2116 -4210+4493 2804+-5853 2556+7768 -5167+-3884 3777+-6596 8453+-4565 1163+-8806 1099+7968 -5824+7738 -8266+-5368 6251+-7680 7790+-5122 -6790+-932 8571+2781 7270+9731 2006+-1828 6647+-1945 152+1749 -9375+1853 8811+-9169 -3094+4962 3619+1172 7025+7806 4937+1970 5467+-6309 -8872+5950 3777+-4137 -793+-3776 1815+9430 3236+8744 9134+3634 -6561+-7155 -4567+-2909 -9343+6499 1422+6222 -2411+1419 -7346+4052 6842+5316 -8890+-4966 -6953+2677 2903+8243 -521+4962 -8424+69 -6850+-785 -907+5230 -9656+340 -8411+-6019 -1476+4663 5026+6955 -4982+-1592 -8321+-9949 -577+-2336 -2855+-2793 -2767+2081 250+-5029 255+7104 8469+6339 -9017+3078 -2201+-7856 7371+2968 -1822+8811 3672+-3459 -6675+424 9365+5609 -8346+-3776 -3507+1014 1217+-4870 -7903+5021 -3645+2104 1590+-7669 -9436+6159 -5331+-7529 972+-5214 7384+998 -9223+4291 9986+-8716 6941+3407 3568+4234 6001+-2423 9394+8218 -5355+9891 -4372+-3889 -657+3591 -4220+-2952 -4743+7638 -4199+435 -4175+-5803 6613+-3351 -9774+-6899 -5288+-1558 8677+-5806 -6959+-1244 2388+-1164 1322+9233 205+6309 -3998+9298 8744+4543 5454+1675 -4747+-4729 6316+-5178 -8800+5358 6450+3887 6565+3461 8469+5964 -7320+8343 -3564+7845 -6776+7231 3580+-7968 -6406+9507 7634+-3258 559+-5872 5137+-4172 2061+2199 -6911+-8054 3319+8351 -1261+2324 6539+-2049 4226+4760 -5633+-2597 6309+1627 -2806+-3532 -5832+-6965 -1084+4857 8430+-4003 -1541+1023 1304+-9201 -8615+-8264 -2488+-2618 8042+-1812 -2616+8543 -6586+5323 9458+-5947 -7524+-9046 434+-5687 -5084+-5383 6603+7874 -5163+-2744 -2595+1636 6486+-1717 8212+4255 9624+-7568 4754+4481 1773+-3610 -6873+1391 -3965+-8875 -3385+154 6518+1777 -896+3818 -3294+-9943 -91+-1354 -2611+7152 4608+2059 -5991+5973 -2891+7542 6916+-4476 9659+-1577 -4428+-6621 -8433+-5855 50+2193 7737+-9701 1527+-7222 -8890+-4859 -3147+-4870 9297+-8278 9890+8400 477+-6514 -7918+-1000 -8387+3165 1926+-9679 -2286+-156 5520+923 -8792+-3210 -4803+5361 -1716+5080 3023+4558 1336+9607 -2412+5225 5941+-1865 -870+-5299 -5505+-8744 6519+8760 -5432+-4867 -3589+2303 -5828+7465 3193+-47 2861+-5968 -8825+4646 1075+-4480 -8026+1170 4424+5576 -3891+3961 -9146+1958 9459+-8734 8161+-5124 540+1931 924+3295 7648+-6237 9691+8090 -5678+-8579 824+5933 -640+3283 2365+-1321 -5795+-8400 -4156+3056 -2865+-4503 -4800+1142 5317+4570 -2471+3203 -1992+-3277 -7221+1041 2574+856 2093+1896 -6032+-5411 -4517+-91 -265+-6795 3084+-7292 -7471+-3680 6494+1000+759 8526+7683 2686+-1413 426+-9012 9413+-2487 6696+2472 -7654+208 7471+-6681 -2153+-6680 -9799+-9208 -4313+-3187 -4326+8814 -5966+5024 3847+8664 -8110+3672 5780+8533 -4284+-7856 -6802+7626 -2473+4327 4662+-1060 -2535+2456 4172+8399 6956+4017 -4152+9788 4637+8660 -6197+5230 220+-5560 2457+-8185 7036+9019 -8367+-7384 -5072+9636 -7146+8416 3434+8303 6977+846 7781+5746 -9686+4953 -4813+1478 4286+3115 1726+6733 -6008+-9311 498+-5134 -9512+8534 3189+-8494 -844+-4894 -2684+-7294 -7914+-1057 6939+8126 -1731+1629 8840+-5666 -4811+-45 -3649+-3698 4885+1258 -5936+-9641 7929+9450 8511+4457 -8256+-415 9335+-1227 1753+6266 6128+-6494 6546+-1536 6495+5334 8548+1769 2893+9793 4065+-6678 5928+3638 4590+-7681 -5071+1797 -9529+7172 3722+-4357 -2141+-8068 -9513+1194 -2774+6097 -4487+-9126 2771+6497 -1874+7584 -1469+-9321 -3806+6201 -3236+-1951 -5610+-7629 -4868+-2232 -5358+-7381 1074+8862 2526+2232 8646+4338 -4154+3838 3491+8411 2501+-3998 -9321+-1918 -5404+-2875 -2755+5803 -6011+-4593 7646+1088 -6691+-6760 -9587+5104 -8463+3724 8748+798 7104+2740 -2452+510 -7916+5674 8035+-1067 -47+-3568 -8768+-1535 2880+9456 6294+-4340 -3718+-6133 5715+1185 -6816+9215 -5872+680 -4437+-8026 8266+-6149 9118+-2019 -3807+-5068 5918+2196 -3156+9878 -7179+-73 -92+9091 -8233+-8411 4273+-9996 2161+-1585 -4096+-8917 -4249+6403 -5724+6118 5212+-4741 -3088+-4573 -7229+8766 5621+2707 7128+2977 -8461+-2702 96+-9656 -4196+-8273 -4789+2285 -4617+3396 -2550+8554 6242+-4658 5320+1954 2536+-3002 -574+6677 -6157+4398 1438+-3368 4023+-5465 -7501+-8492 -9699+1803 -4210+3964 5040+9399 8841+6717 -7783+-265 6433+-3261 4521+7481 5052+-1787 441+-9113 3801+988 -1670+-2015 7671+-9293 7652+1582 1112+1824 1160+8532 1095+-6400 -3190+-5563 -4685+-5871 7396+1392 -6047+2343 -5231+4508 -4569+-5213 9476+-437 -9993+4101 -1219+-1126 4846+-4926 6176+-7634 -7547+9056 -9781+-3037 -9140+-8818 604+-6807 7782+-2244 -1194+4279 -1201+6952 -805+5302 8819+-284 -9148+5435 -2466+-120 9673+4012 8900+469 635+1839 937+5993 5239+7596 7250+9369 1654+9123 550+-6279 6332+3186 -2741+-8729 -6062+1637 491+6753 3166+-5404 -6157+-612 8568+3758 -2749+-2698 7494+1549 -8544+4590 -7071+7849 379+-3006 -1495+-3028 3497+-2759 225+-5906 -3659+-7973 2019+6323 -7427+3559 -505+-6 -3288+7853 -5215+-4496 -7519+-9386 -6452+-1372 3812+619 -5872+5578 2006+4213 -9485+-3624 546+-6418 -4783+-450 -5963+-6622 1453+-6723 -1349+-766 -6706+5480 -1593+-6478 9147+8789 -4692+4232 -5257+-6659 -7840+-4239 -9708+-5312 1977+-3139 7040+-4548 -1073+-6079 6684+-7348 -6481+-3034 4792+-5054 8829+-9709 8391+3302 -8629+-6365 9563+-3297 314+1721 1498+5963 -6690+-1034 -4268+7973 -3951+3738 7886+-13 -894+-8166 3825+4682 -9836+-4843 6191+-5641 -6015+-9805 -6313+-1881 -8719+5825 2696+9055 9724+6263 -635+957 -5101+-9937 -1460+-7738 8043+-7034 -2833+-9089 -5721+-462 8065+-3124 5484+-1269 3716+-508 9270+-9406 4035+8856 -7411+-4028 4630+9210 5100+3580 1214+8989 -968+-1116 -163+7793 6551+-7962 -81+-7606 -5770+-2694 5279+3347 3594+2683 1928+6892 -8857+5499 -2490+-1594 2905+6882 -1742+7484 2702+-1173 -6794+-8840 -4612+-4996 -6213+-2689 -4335+9849 8598+4775 -6925+-947 586+4534 131+8253 1053+-5705 -6181+-6731 -7232+-9203 -5012+3111 -3128+938 8579+-2063 5364+-6490 -8034+-2014 -3940+-3379 2042+5860 3107+-9410 -720+3684 -5784+7130 -177+6924 -7421+-5642 -2839+-4069 -2569+-4107 -4371+437 -1234+-2555 7778+-6786 6678+-5399 1375+278 -7841+8743 8878+-2672 -328+5056 -2864+-6891 -9705+9919 -1223+1314 9128+2458 7976+9039 -9536+-5489 6061+8267 6273+3577 7655+8764 6907+7715 -6062+7297 3653+4571 3304+-6963 8391+-7289 4090+4238 6453+-1338 2687+3962 1118+9831 1805+7970 8341+-4014 -5737+-6681 -3980+7445 -7450+806 1949+-8946 -3193+-885 9483+8295 -1262+-5218 -3865+7000 7751+7280 989+-9203 -1286+3567 783+-90 4787+-1000 -8977+2069 9050+2391 -7174+-77 -9152+-8457 -7090+-2474 -8489+-2325 3510+-8502 -6769+6742 -2799+-2702 0+-3366 -6999+3106 -4942+-5229 9460+-7798 -5552+8560 -8032+1015 -8549+8268 -6923+9615 -7756+6721 -3657+-5669 -8337+-9273 2202+-4475 2165+3968 -8189+-3107 -2200+-577 4064+7251 397+979 9968+6235 6070+-610 -7634+5196 -4227+-5764 -4979+6005 -5513+8580 -1259+-9044 -1576+-1323 -2794+-4028 -201+8251 -6890+-6537 4246+-4307 -2052+-4430 8195+4163 872+4844 -9553+853 -2210+-7319 -5474+4194 6896+-6670 -8238+-5787 1266+4865 8179+-4585 2141+-5993 1857+7065 7016+4769 7504+9024 -2486+2297 -3138+-9589 2677+9106 -4834+-8130 -2614+1830 -7697+3004 -8726+8986 884+2059 315+-2913 -5721+8471 6201+-2023 -5239+681 -123+2086 -5646+9934 -3426+-2114 -9593+9008 -7797+5039 -1435+2031 -5886+-7526 41+-808 4491+-2676 7452+827 321+-1813 -5412+-9196 3314+-9215 4298+7598 -6304+-169 4415+9581 -5670+8091 678+-6736 2274+-7486 -8788+-365 3161+6293 3137+-5523 -6682+-3976 -4632+2563 -3982+4981 -3576+3671 6666+-2995 -4806+-5917 -7046+4083 -1354+-1513 -9289+-5863 -185+-4813 6209+-8164 -5136+2476 -2997+7723 -9664+-7287 -5279+9037 6978+-8760 -9292+3391 -7030+6487 -8312+5105 9596+6817 8810+3781 -707+2784 7555+-6690 5905+9022 -3924+3335 9894+9022 9804+4912 5205+887 5680+6015 -4522+-5979 3405+-2735 -9886+-3711 -4696+-7614 9291+3430 -2725+-1956 417+-9808 -2890+7639 9593+9906 980+6280 482+-9797 -8812+-1082 -6640+-1119 -7904+4740 -2518+-2094 7908+1702 1515+-1324 -2238+-1562 -114+-4143 -9750+8872 7021+-3509 2449+-6483 -8858+1387 427+4211 -6177+8039 1397+6584 2753+-4452 -381+-2481 -800+204 -4973+936 7123+8713 5047+-833 -4403+1012 1113+-7290 8621+-1495 545+-2187 9167+-2158 -4309+5229 -2870+-235 -5335+-1047 5502+-6029 7089+-2910 7601+3534 4092+4458 -3668+7109 2335+-8924 -1288+1029 6847+938 -5491+7165 -9314+9767 -6218+862 4980+7317 -1991+1168 1106+-8668 -4465+3156 370+-3714 9686+7481 -8396+-6509 4508+8023 -3740+5705 5078+7462 5772+-8871 -8506+-3508 8207+1794 9847+-859 -3762+2515 -1430+-944 -8094+8502 -7982+1096 -2813+-9165 5843+-1580 -7468+7147 -4360+9807 -8265+1359 3063+-6659 816+-6366 1985+-4124 -6820+-3191 8497+5523 -9778+-1581 2016+4300 -6153+-5479 7958+-2131 -4148+-5296 -6751+-5103 2971+7776 8546+-1560 9475+-4093 3127+-6447 -5882+-5456 4360+9141 -7186+4549 -5383+7137 881+1525 3987+-3327 6393+-7465 -9167+-5020 3549+-6123 -2998+5310 -5778+6450 6698+-9968 -7061+608 6813+-6312 -781+5477 5737+8582 8860+-6548 -7888+-5060 -5753+180 -729+-3743 -5710+2581 2609+-3836 -6302+-7885 -6897+5671 -8434+2178 -14+2821 2368+-1564 1999+1683 8069+9112 1613+8449 -647+-7203 -4549+8111 -9278+3409 -5066+-6699 8912+-4165 7588+2922 -1647+-1129 -9689+753 7474+55 -9036+-8358 -7567+-7793 -495+7494 -1816+6251 -1508+-3987 2950+6171 -6655+-6613 -6142+-2811 6470+-3674 -9065+-6269 -876+-6808 -2184+-7655 -6447+-3991 -6095+9805 -957+-1692 -2895+-507 -7564+8775 5174+-5451 6353+-7791 3995+-930 -3271+4595 3235+2542 -3001+7257 -7846+7300 -508+2895 -5439+1894 8151+83 -6038+3790 -5419+-3914 -2715+8091 -2339+2148 344+8660 2977+-9656 -739+2407 -6490+-712 -5381+-8308 9659+3866 -9128+-60 -7366+6910 5176+3715 8928+1430 259+-9740 907+5629 -2926+6925 5255+-6821 -8869+-9083 -5297+6228 4726+-9726 -2348+6459 -5934+4415 -5168+-6260 6547+-601 -6843+-1544 -4774+-6638 -4026+-2090 2582+9090 -5900+3989 -3838+-2148 2836+-6036 -7477+-1962 7741+6579 -5185+6397 2581+5791 3143+-8511 1842+-5690 2195+-5850 2283+-1097 6728+7924 1038+-8536 -7606+4641 8660+-3841 -8287+-1462 7056+4438 580+-5531 -4339+1014 -3230+-8954 -7500+6483 7782+-824 -2961+856 -8107+-4266 -3957+-4675 -2100+4403 5324+-6903 -356+-2331 9848+8967 4726+-9457 9179+5955 -9140+-5733 -7588+8064 8973+-3855 5420+5221 -8702+5626 -1516+-1267 7440+2309 -2693+2090 3411+-5688 6127+2454 6889+-1494 -6684+-9169 -428+7257 7025+-7701 1034+-5974 -4985+2280 -1478+4042 9005+4673 288+5686 -50+-8692 -3885+-5072 349+-1492 3829+-8933 -6589+3656 311+-4738 4495+-7405 -8976+-8480 1262+8573 1511+2203 -9540+200 -6831+1881 -3743+6600 1268+5913 761+5772 -6176+1572 1727+-7742 1199+-7614 4717+1523 -8229+6980 -3674+6077 3609+-1931 -9460+6077 9057+-5531 4710+9518 -9280+4409 3540+9149 1682+1717 -1142+9415 7634+-3581 -5366+7004 -1750+-1054 -2460+7161 -6459+5922 -79+8117 -7439+9024 -6135+-3274 -4738+9346 -1774+1296 -8949+614 -3570+3413 -9588+3653 1023+6646 4635+-7194 3078+-1813 4786+3553 1153+-7053 2325+6870 -843+6113 -6871+5667 3175+-7035 -7397+165 9306+9935 4641+-8918 1113+-2428 8996+6838 -3766+1974 4091+1525 2015+-8474 9048+1536 7168+-2986 -5324+-6050 5199+2440 2732+4995 -499+-4600 -5559+-4936 -1146+-521 -411+-1443 -1444+-1095 3958+-9729 -8611+1031 -7678+-6673 -87+-9250 8144+-1358 8682+-8063 -5184+8034 8583+5975 -7803+-9539 7623+3966 -4854+-6029 -1594+-121 -5615+1164 5182+-747 -6160+6579 3223+-3186 -6545+791 2446+-2958 4917+5706 8782+-7538 9871+8653 -8482+8101 -6908+-8205 118+3104 -6223+7816 7774+-6075 777+1078 1994+1953 3763+914 304+8334 -2781+-970 4143+7814 -5412+-1383 6453+9987 -4376+9728 -4526+5845 -7002+8240 -4560+3864 9486+-3356 8625+3059 9976+2852 -5531+-4665 4036+5997 -9646+-2670 -3207+-7441 2649+-3883 7938+9569 4909+2706 -4201+-7163 4561+5124 -3375+-893 6372+1229 -5263+4615 -3288+5378 -3775+-1978 -3266+-218 9583+-6105 -7194+7253 9769+2866 3662+-5937 4275+-1280 7693+-4543 -2988+-8520 -202+-3349 2203+5838 48+7724 6805+-2734 -7085+313 -909+-964 -5431+-3020 1604+-8770 -3732+150 7397+-2344 9587+-1033 -5517+-1647 3804+-4303 2433+844 -3961+9195 9128+9735 -8671+8407 -2614+8399 5806+3599 -7407+4871 3939+-5027 9008+-6800 4333+7463 6580+-2222 9983+4130 8529+9317 -7232+-7578 1706+7180 -3101+2287 -7314+-259 -2004+-597 6993+8448 4833+-1195 1986+5123 7815+6006 -2998+-6506 -3988+9784 -8587+-3144 -4491+-5654 -6565+-9196 -9427+-9531 5226+2606 5238+7081 651+8887 8999+1677 3194+4224 8642+-406 7109+9630 1126+174 -33+2295 -2465+-604 3425+-8672 545+1514 5085+-3863 -4529+-3466 3931+7359 -2051+-2647 333+5963 -666+-1541 9237+-4491 4958+1465 6905+-8 -2685+-1252 4267+2076 3743+-7683 -4794+4755 -1055+-4180 -181+5284 -6584+-397 112+7736 -8566+8247 5369+-8492 9530+8133 -1384+1033 -187+-9685 -4325+-9558 -2881+9259 8568+3143 3917+5316 -4420+507 -1511+-928 364+1783 -7422+-1870 -9801+-3559 -7723+-9353 -7504+8579 4587+4388 2120+2819 -5473+-9422 9963+-2541 -1399+-849 1911+6057 -3415+-7681 -7265+5048 -5646+-6821 5250+8605 -2638+8868 -3622+4808 -5217+6517 -190+-3702 9146+-4801 -3293+-7802 -7661+1661 8198+-8306 -5495+-3531 -8954+8720 -7062+-6350 7321+2386 -8377+6768 -7043+-5488 -6520+1019 -5937+3639 8576+-9511 911+-273 2054+7923 -9118+-6533 4545+-4533 9173+-4078 -3334+7755 9288+5461 -4452+-4821 -9300+5796 -6514+-7838 -7032+-7339 -7612+628 -583+372 7912+-1730 2974+5217 -8431+-5212 2162+9168 -1613+8373 5138+-1780 -4678+1396 -9717+444 1286+8387 -3309+41 4974+8036 6883+-394 6302+-9539 -2096+-4381 9332+6629 7098+7472 -2562+4861 9607+-9593 4134+-4312 5450+816 6806+-6834 -2730+1361 5400+9334 -3561+6413 -508+4158 5546+-9626 -508+-1822 -7794+-4478 -8340+-8497 1882+-5866 -3671+4543 -5119+5255 2044+8671 -9691+-5931 -6732+-8853 -2994+8039 174+9297 5765+1965 -4273+6994 9423+1794 1834+-3747 -5821+6915 -4236+8304 -9848+-9260 -8518+1966 -7002+-5328 9443+-6533 -9475+5831 -3040+1000+7082 -1504+5483 9441+447 1193+7788 -8192+-29 -4922+-8829 -3955+8247 6494+-5715 6664+-1839 6486+-6082 -5248+-9255 2214+1795 -3751+-6983 8908+-1190 8951+3865 1186+1383 -9604+-9140 3145+4580 88+2847 6905+-353 -2448+5655 -9350+-4309 6075+-4515 -5497+-6323 1535+8471 5311+5846 8365+-7430 -3783+-3082 -7897+4086 2645+-1259 6080+8152 5994+1992 -3501+-4180 1769+-6305 5021+-850 8638+-3817 9740+-4656 -8924+5737 9630+8967 7003+-5851 -4991+-7328 -9869+2872 8264+4716 6211+5529 826+3773 5764+8017 1414+-1181 6907+7640 -1573+2300 7285+-7808 9894+-7593 2042+-8415 -737+-2120 1442+2130 4665+-2293 173+6985 -9648+976 -2231+5168 -1508+9963 -8110+6149 4020+9121 -1598+-4412 -7605+2368 1919+9151 9614+-2467 460+-7494 -2009+-9278 -6672+-396 -2506+4604 -5675+710 7820+-6656 -3666+-3264 -3497+-9700 -9237+-2145 4898+-8593 -8343+6494 7113+-3306 5692+-5440 2147+474 3015+7006 -1051+7015 -3689+1925 -5039+-2824 2854+5228 -9939+1400 3394+5041 7254+6534 8292+5572 9111+-4597 -687+9106 -5844+-2865 2320+6908 2410+213 7025+6889 -5336+6363 -571+-9313 7053+3981 4929+-2911 -5958+3857 -2107+5016 -8298+1717 8141+6026 -8750+-1687 6147+-1949 -6490+1710 1458+5381 6792+-3395 -4859+964 -6732+2281 -1470+-1104 -279+-4950 3780+5991 -6391+8562 -7672+-7635 -1983+7423 -4351+-3276 -3027+-2373 9645+-1350 -7630+9479 16+7787 7467+3122 -314+-1282 -7859+9562 2463+-2471 7182+-7633 -6212+4414 1180+559 -9287+-1531 3104+-9514 -8130+-7012 1645+-9067 -3665+276 6054+2727 -4479+7409 -8899+7379 1403+6693 9506+-3707 -4156+-1953 -3232+-6620 -4129+-6717 3628+-2629 6898+9359 -5983+9528 2416+-1760 856+-6588 -1496+-7174 -4858+-8031 8185+5796 -6475+8126 -5907+-4788 -2102+1434 2228+7828 5390+-947 9065+7993 8289+6266 7888+-7447 -8228+-6192 -5453+-6967 5283+-4352 1359+-5209 -5176+5940 2487+-4821 9500+5696 -2932+2002 680+920 -2302+-9411 -4652+-3354 -4957+7969 -2928+-1142 5046+-337 -2808+-1814 6757+7275 -1874+-3936 -7269+8089 7597+2064 -9490+7932 2687+7063 -6085+-3487 2411+229 -5531+7480 -9100+-1581 2938+-5492 5770+-257 -1163+6554 -5365+-1449 -2338+-1442 5898+103 -2117+1361 68+5315 1993+7001 2368+5432 -8155+2816 -7642+6996 2765+8044 759+3586 -3460+-2456 481+8631 -3603+-6500 -6848+-3604 2231+-9728 4207+848 470+2902 -8500+-7561 4674+-174 5816+9782 -7628+-1870 1401+7560 2127+-3145 -3353+7285 9645+6047 2811+-2000 -124+887 475+-5723 4552+-640 1687+2808 8719+-9054 7601+-1385 -9742+-8900 3592+2567 -7935+5168 9531+4185 -707+8488 -3046+-8820 5203+-8986 -1105+7454 5940+-4796 -1923+-8682 6674+-1629 9272+-2883 -9864+2642 8464+-711 -8823+1731 -7501+8155 -8823+-800 -3857+6538 5605+1952 -5578+3000 -9216+-4125 -967+-9761 8111+5156 4313+-5169 7240+-116 -3245+1027 -1467+-7932 5884+-3257 -6755+-2822 1229+-2491 -9258+7374 2120+3927 -9435+3607 -2496+4513 6713+5264 -9254+-679 976+6959 -4397+-3744 402+2705 -2069+-7098 7166+-7217 3383+-8459 8723+-5486 3495+-1313 7392+6654 -3253+-9614 -4620+-4301 786+-810 -7229+-8792 -2198+-1936 5345+-303 -6511+-3682 5686+843 -8982+3112 -1698+-2395 -1811+-4327 3823+635 7774+-3656 -3257+-4641 3570+-8815 4553+5622 424+-65 6878+-3949 -690+-8628 -4924+-855 2805+9106 1730+6612 9654+2649 -6774+-3362 6314+-4149 -6027+-1257 -3055+8015 -7036+-8658 -7058+-403 6714+-3184 -6511+-3272 9924+-8689 -8370+-8142 4211+2420 -3977+3043 -4772+-6213 1087+-6101 8059+-7777 -4538+9007 1225+-965 -4507+-5746 6670+-3850 -1993+2913 6589+4443 -9683+-197 -8759+-4337 -9490+5344 -2206+-9969 -5362+-2817 -6418+3617 670+7120 -2057+-634 9466+-4493 5082+1653 -741+3426 492+5163 -9231+5249 2550+-1838 5032+4244 -2922+6317 -2735+-2874 2009+7479 -606+-492 9861+2936 3586+-6028 416+2739 3367+4375 -6408+6361 -4563+-1437 8022+-2130 -7150+8593 -1654+-5666 -3193+-5398 8941+9786 -7560+9544 3126+942 9051+3982 -6723+-4471 -6105+-296 5976+-3947 -6616+7269 -2997+-1776 5216+4450 -9671+-4919 614+4736 -3887+-2925 9243+-4404 2306+3198 -8558+5785 2993+9938 416+215 -6302+-8895 -7019+6134 8553+3413 8829+1031 506+-7984 2584+-5322 7774+1881 -30+8889 7492+-1919 7360+-2927 6601+-5723 2537+-5828 3017+-4761 -3140+8872 -1379+-3201 3190+4872 -7494+-8091 4306+9497 -9655+-3911 -8458+-2933 -7514+-9265 -329+-1852 -7678+-2068 -2409+-987 602+7938 815+7848 9969+9138 3175+5551 -4715+-719 -8855+1317 254+-8217 2722+4188 5270+-7101 1755+8999 6259+7376 7340+6291 -9272+9538 -6711+-8154 4292+2772 421+2924 -282+-4661 8601+4806 -5118+3678 -5861+-8170 8336+-7879 -7223+-9048 -1121+-1081 3095+-9186 2853+-7179 1292+2444 1053+-3781 5066+828 8251+3585 4430+182 -8462+-5614 -4562+1409 -8652+1805 5485+6503 -4679+4756 7410+-1583 3915+-9453 -1944+-852 -7792+9233 3941+844 -4024+4953 -3195+622 1895+5670 -104+7076 -3654+-769 -6235+897 -844+-4378 -55+4049 -7563+-3302 -505+7380 -166+5153 -8858+6149 -9744+-2714 -7520+3755 -895+859 498+-2299 331+-8177 3949+9898 9911+-6671 9535+2045 -1593+-394 -3173+9836 -1726+5280 1707+2665 -7751+3998 7349+-686 8454+-5625 -5002+7663 -5013+-1434 8620+-6677 9699+-9767 -6133+-7974 3807+-6225 -9445+-2258 9135+60 -7639+-2721 -550+-4723 -1580+3352 -5653+1342 5005+-2443 430+-4671 -2871+9378 5804+-6436 9936+-8985 7369+-919 -7116+1922 -8671+8186 9714+8495 931+-6517 -4092+-4657 3867+3726 -5010+7788 -567+-8240 -4887+7865 5384+-5165 9240+-7219 -6358+-3133 7405+-6338 -3641+1228 -3759+-3672 281+-8692 4823+-695 3603+96 -2968+-6169 9275+-5410 9568+1802 -2910+699 -1339+8163 -1975+3063 -4884+-3645 -2182+-708 3517+166 -3579+-5408 7888+-3219 -4512+4324 -2335+2805 8084+9347 2693+5261 2688+3360 -2602+8453 5366+-7526 5606+7487 4424+2250 5958+9499 -9048+5762 -4975+-1485 -4750+-1151 -5627+-7364 -5126+-6128 -7262+7870 3938+-5051 -3963+7526 1750+2449 5073+909 -8670+1791 -3306+-8440 -80+5272 2766+5435 -6265+-4507 -8449+383 -2288+-3344 2482+-6075 1451+2394 1460+6466 -7663+-1255 -6760+9068 -2340+-1678 5694+9950 -5396+6621 -5247+3758 -699+7020 929+7436 -9510+9481 3520+2327 -4691+-2915 -5601+333 7315+-5461 -6845+-1260 -9169+5774 -3188+84 1770+-4507 -8221+4781 8286+-7684 1474+2825 -4460+4962 -8941+9533 5273+8975 2868+-7782 173+-6449 316+-192 4455+-3472 -2294+7099 -4655+-6246 -300+-5507 -9808+-4671 -3645+7347 2204+-6632 -2252+3373 -3885+9944 39+-2425 -915+6138 -1135+-2084 8846+3172 8200+-3758 -8547+618 -327+-4460 -1651+-3962 -7825+6706 -5716+-6896 7996+-7762 875+5673 5259+-1083 -9285+-4230 3899+-2490 9747+116 7888+-6341 -2445+7354 1047+6482 5700+4932 -1157+3323 -9888+3526 -9227+1439 -8102+-4529 227+3182 4970+-1317 -4961+2325 56+-623 -5704+-4548 -259+-3511 7380+233 7795+-6671 -139+881 -8464+5973 6892+-6550 -8412+3306 9871+-9407 2042+9390 -6103+2304 3175+-614 -1825+6752 -1247+-5438 1861+-7101 3495+7844 1512+5364 -8360+9283 8270+7615 9117+6346 -656+9913 8728+-1456 -6900+9341 -8889+6940 8017+4773 8956+626 -2022+-8564 -1015+-7710 -1856+-6512 8481+1630 -9022+3509 -8553+6397 -8441+826 8191+-9754 2667+-5321 -3637+-2297 3705+-8496 -5294+-3064 -8580+-9880 2778+6818 8250+6778 7634+-8921 -5656+592 -2979+-5390 2812+1230 2888+3596 4735+-7177 9408+-155 2147+7053 150+-8836 8851+-3158 -7023+9157 8734+7921 7297+-2447 -345+2030 4023+-7132 -5191+1888 5065+1035 -6481+-7189 -8763+-5960 3650+3045 5315+-4637 -6716+7676 3930+-7354 2961+20 7768+9294 5289+6418 9567+4955 8920+-1263 -1329+6674 -1592+-684 6920+-3737 45+-7101 -5680+-6038 -8305+3379 -3546+1541 1410+6461 1628+8251 6831+3711 -252+-7507 277+1158 -2210+1389 -2446+2638 2811+901 3679+-7838 -7002+-4933 -2433+5634 -6173+-3936 -8481+-6520 -8351+-8485 -8567+-5120 -1504+-4868 5486+-8120 -8882+7048 -6268+9411 -6240+-9222 -3769+-7847 1160+-870 3259+4625 1452+-1791 -1890+2240 -67+4713 6118+-3415 -7559+-5745 6422+5802 8079+-8573 2093+-3578 3979+9776 2104+-7929 5546+-5261 -2243+-5463 -5530+3039 1470+-5633 -9120+6600 8854+6217 -1176+5743 -4874+-5788 -9155+7920 1803+-4449 6571+10 -2969+4450 6276+-8720 1406+-5313 5150+8596 -609+-6716 -9780+600 669+7770 -2677+4838 -5801+5344 -5906+3578 7054+-2870 8007+396 6668+7003 -5264+-2650 -130+-4926 -5671+-984 -6732+-4532 -4354+575 -8264+3183 -3129+3401 -8029+-7529 -4796+-4156 -9397+-8516 -4758+-6266 1277+929 4543+8635 -5287+5722 -9857+564 -5300+-1272 776+-8815 2619+6769 4162+-9025 -8802+9321 -7423+-7432 -9170+4542 8055+3732 2459+8824 6839+2172 949+8156 77+5182 -4314+2281 -4606+5325 8647+9508 -2625+-446 2125+-4599 1833+4332 3589+-6899 1895+-5750 -2724+3780 7007+-7922 7733+-9430 6750+-745 -1688+834 9853+1460 -2345+9350 7522+-9304 1491+-5154 -8821+-7995 4111+-1929 6187+-8862 3476+-7876 9075+8149 4997+3102 -570+-4166 2608+3090 483+-5119 484+-2963 -3231+8039 5035+9209 -3135+7954 1005+2705 1906+3267 -1986+-8356 7169+1050 1779+9628 -7333+-485 -9078+-7944 3273+-3811 -5942+-9942 3310+-4970 3753+-6323 9710+-3095 7664+-8277 -6828+-829 -5748+7638 -865+1327 5146+6833 314+2887 -4483+5736 -2486+-3364 4407+6815 1586+-2196 6546+-7775 2798+-4803 873+9016 -5347+6669 -2033+-1087 4338+4946 9391+-8970 9265+3077 -6083+-1612 -1064+-4117 3624+-3545 -6733+-3414 -9038+4925 4020+-2659 -1732+-4928 -9466+6392 -6314+-5812 -9675+9460 9989+-6101 -2418+-3941 9230+963 -4792+-2413 4473+-3428 9101+-9943 -8857+-4734 -2001+2831 -9485+-3958 -9463+3797 -1520+-5212 9748+-1916 -8284+6174 9910+2630 -8209+8523 -5816+692 9954+-3674 4524+-1436 516+9340 2163+-2577 -7663+-4830 121+-1572 -125+-8921 8916+7688 -2902+9345 -3664+3574 -5656+-9237 6849+4688 -9303+-4837 6388+-1217 8440+8520 217+-2119 5191+3521 -4116+-7853 -8780+7111 6011+6033 2524+-2967 660+7038 -2924+1992 4276+3590 3086+3057 -1306+-3260 7641+-6726 -2127+4287 5775+5858 -1772+-4388 -9566+-7516 7344+-4716 -4016+4197 -3132+9610 -2755+3157 3402+-7404 -669+-8592 4655+1603 5860+-3377 794+2744 2928+-1442 -2924+403 -2841+-745 5944+8014 -8030+6936 3039+6380 -6143+-4652 -4569+-3510 9361+-6315 -2311+-5860 -8363+459 9459+-1997 2804+-9109 -5322+-7104 9435+5555 -3010+2070 9658+3871 1512+6554 -3958+-9900 -9383+3586 4008+1209 -3506+-8590 5204+3228 -1214+2188 -55+-1093 -5379+-6179 2568+425 -8323+6712 2235+631 6240+8023 -3370+204 8871+-9040 9669+9411 3390+5430 -3426+-9864 6153+5505 -4674+308 6169+-8409 787+4467 5523+-2665 -3989+-8157 -8338+-3026 -7296+708 -3616+1049 -2507+-2250 -8557+1619 1790+6206 -8893+-9299 1220+3457 263+-8899 -2763+7138 9374+-6635 977+-5244 -6540+-2623 593+-8440 627+2384 -3635+-9355 -903+-2675 1260+-8873 -7030+-5790 -561+-2911 -3962+6988 -2161+-195 -4872+-9170 -6135+-3402 -5604+8265 4799+7898 7237+3939 -8668+4171 7524+-3988 2680+6227 -9871+9706 -1803+-9791 -9059+6002 8735+-5316 2149+8820 9364+-8654 9459+4220 -7395+-4982 5174+-5423 8702+-2617 -174+7087 -1601+9768 -8255+2959 -9432+1199 6350+-3841 3844+7411 -2618+-1986 -3816+8337 -2200+7872 828+-2270 -7863+-6236 1009+-4634 -3284+5378 4531+8838 5316+-5545 -8550+-7695 -3357+-415 8363+7184 -2513+-7623 4108+6001 6370+2587 -4446+-3372 -7572+-4995 -8420+9769 3791+-2995 4248+-6327 -4890+-6436 2514+8236 -7636+-6601 4140+8734 1011+-7277 -5046+-6680 -7300+6468 4750+-1165 -8685+-5549 -8866+1533 -2063+-6096 -8303+-4795 495+-5216 1661+-8901 -6281+-5805 170+3053 7725+7941 8851+3387 4743+-6170 4571+5512 -1362+4413 -3547+978 2362+-9262 -4496+1000+-9989 8965+-9802 3823+4075 8701+-4854 4735+6272 -155+642 2210+8781 8869+-1850 -5024+7492 2627+-2208 2200+-6670 -5373+6920 -4854+-2763 -1065+-6753 -2623+-8419 -1433+-2535 7317+-5594 6527+8980 2222+-7252 -2183+70 -441+221 6180+-4939 4038+4122 7392+-7555 -5038+-1765 1964+-137 -4445+1979 -6119+-5354 -3219+-4216 9168+9505 -4541+-6858 4019+5833 622+-3495 -4516+-4515 637+-3479 214+2129 -8222+7097 5031+8123 -9712+-4355 -3503+2032 2013+1284 -3479+2645 1727+1376 -2578+-7547 -5291+2230 4095+-5749 -8160+6599 2364+20 -348+1678 -8696+1264 6984+-206 2471+-400 -6226+436 -3527+4022 -6802+54 -4577+-8483 -1284+-3872 -9669+9738 5009+-7329 7521+9322 -1902+-7919 3662+-9338 -4789+-8681 -7511+3034 -3424+8983 1801+-9550 -9852+-4978 1675+-7291 -9574+-8833 4210+7197 3420+-6318 2029+7401 9930+6279 -3703+-1004 -5113+8804 -9272+833 7312+-6024 642+-7599 -7415+4803 1646+909 -3142+6124 2115+-4110 -2907+7302 -9761+-2658 -4321+1902 3788+6373 -2309+-3396 1713+2108 253+-5307 8085+-9120 -8046+-8463 -6193+-8894 -4498+283 9918+2664 2861+-6438 -7108+2388 8056+9273 -8137+9451 189+-6606 4273+5045 9626+7227 -6610+-702 8644+-1072 4885+-2006 1641+-2149 7267+-1040 -3207+-590 4706+822 -4190+4160 -5057+-9943 -5193+-8602 8962+2635 6038+2072 1105+-9777 5304+-2976 -4813+-6319 8560+2862 -3949+-9279 -1612+-6121 -7561+-5685 9385+-3439 9050+5886 5219+-7530 -3006+-9243 -4936+-2801 5170+5407 2513+620 -8089+-3588 -9400+4928 -8862+5488 -7780+-805 2065+3162 5726+-1039 -5796+8447 6599+-7044 -5082+-5622 7570+7387 8669+-7143 -6778+-2556 -1831+-9137 8105+-9942 -850+7362 -5958+1746 8927+4519 6469+-1454 -88+6850 -7869+4113 7429+9038 -2932+-8183 8812+1313 2560+4350 -4023+5263 8154+2582 -9080+7116 -9947+-8458 -84+-8921 -3598+8872 9309+3635 9940+-7764 6321+-3733 -3074+-6259 3861+8440 665+9898 -6380+-6992 9029+-7696 3655+7196 7169+2863 -6834+4567 -7867+7081 -1612+-6743 5160+3095 -2224+3078 -2257+-6473 -1189+8891 -4011+1956 6530+-9138 -4241+992 -7388+2007 -5938+1689 9775+5506 5035+1108 -6984+6827 -7157+-1480 6273+-5958 -8653+3557 8197+-6397 -783+9200 -2813+-8266 9565+4220 -5421+-5634 2843+-5658 3702+1736 8488+8601 7833+2698 -1255+-9436 5540+2433 -5953+-7441 8347+1536 8920+-8522 6534+298 7709+1178 451+57 9357+7020 -8136+5569 1084+-6505 -3643+-8391 2039+8041 -6041+-7306 -1165+-4264 8556+4642 -9837+2837 6243+5756 -3980+9172 2944+-5674 -2237+-4381 9376+3062 -5652+-455 4728+-2665 2835+-7398 -5788+4278 6327+7884 -5724+-8023 3497+-7625 -5340+-4043 -2618+-3349 -258+1566 -7888+-8267 -7363+-1667 -474+3755 -6479+4812 -7789+4517 8769+-4440 4005+-4027 2569+-4889 4329+-2642 -5083+-5828 -4885+-2526 -9245+-3209 -2715+-7686 -3608+-83 -2681+-5071 2009+3651 8396+-2388 8210+-5215 -6760+-1612 8226+-490 3396+2400 6692+3943 -5571+-2868 -1092+-1255 4428+5979 6446+-7014 8383+5455 -2423+-4706 -9090+-5255 40+-1017 1965+-1778 -7978+-4961 9186+4869 169+5593 6309+10000 1625+5000 -8433+-6382 4650+5741 -297+6984 -4685+797 -7558+-3069 -7613+-6599 666+-5317 8090+-7813 1983+1780 -1977+-6912 8391+8643 7543+5107 4199+-3326 6596+-2130 6890+-680 3594+5389 1638+-9241 -2489+9304 7553+4915 -7836+-2737 -6585+7375 -148+-5367 -8860+-1226 6377+8302 -2911+5511 5130+4604 -2393+-8472 8754+7987 -2305+-5805 -2408+-3905 5827+7017 7699+-7437 4390+-4712 -5576+6960 -2063+5025 5489+-9415 -2716+5438 7705+-2577 8073+2401 5466+-6983 -6879+9902 6260+-8657 -6150+-9961 -5538+4068 -8300+6847 -4333+-8173 -1681+3379 -3481+118 -6484+3172 -4761+2370 -9268+5349 -8099+-6015 -1544+6511 -5936+5045 -1300+-6779 6686+-1305 -6414+-7193 -9718+3611 -2574+6353 -2175+3440 -8881+-7491 -7137+-9516 279+9299 -6396+633 771+-7524 5638+-9393 9789+2306 -2547+7049 -5167+8473 8040+-4429 -1857+721 -5396+2676 -1680+8476 7528+-6196 7299+5561 8772+-5499 -2395+3139 -7594+-4106 8289+4448 -5349+6305 -7186+6417 4221+8112 2415+-340 9464+-5795 -384+-8099 -566+6151 1460+437 -1481+8330 -1901+-7119 9093+1508 755+8738 -4646+-6471 -3317+6116 4828+-8460 8365+1191 2427+-9801 5243+-8160 -3917+-9853 -4793+1225 3421+8985 -5209+-5480 -9710+-4993 -8185+-6004 9311+3440 -3445+-8041 -6453+-3888 2342+-9870 5565+-1887 -5520+3484 9916+-1222 7291+1841 6291+-9138 8007+-1450 1377+-9208 -3494+-1559 8200+3870 7588+426 -5247+-9768 395+9546 -8239+-1580 239+4481 -1812+2198 -7441+-9469 6140+-2574 -1288+9989 4586+9296 7710+2651 170+5071 -675+2538 -8082+4644 -7755+5993 -2125+2992 -7610+6602 1867+-5195 -3575+7342 -6708+3188 -7325+7583 -7713+5238 9176+-5840 2119+-1961 -9519+-9776 2294+4219 2305+3500 -1987+5376 5378+-4488 1477+-6909 3794+-4556 -5414+6990 1958+6835 9354+600 -7187+-9609 -6055+-5666 4179+6525 -7472+8718 -3767+-4302 4850+-3288 -2210+-6670 -4727+2460 2690+-1077 4491+-1816 -6149+-7126 -4447+8513 -3763+-9122 -7843+5457 -8235+-5944 -1748+-9742 6102+-7168 -4684+8932 2211+7636 5460+7209 -6319+-7818 6843+7035 -8403+-9361 9689+-3820 189+2959 391+543 -6207+-3433 -8986+1931 -6101+-4017 -9093+-7290 3593+6856 -7696+9430 1432+-8971 -4391+4497 365+-1760 -6563+9157 5018+-4744 2309+616 9177+-7849 -635+2365 -277+-2283 3528+-8282 6308+-4471 -5512+6774 -1145+5210 -2688+495 -1750+-7495 -4939+-1168 -8802+-9979 -2913+-1296 -2887+3719 5375+-4527 2808+-8555 7367+-6808 -4568+-2794 -6152+3774 5981+-8003 -7784+499 8562+-5458 870+-8736 -4185+6619 -8731+-3245 -257+5040 3658+4281 7255+-228 -6478+-6724 4504+4447 -3327+8987 3221+-9482 -7206+6289 4188+6485 9832+-6725 -4263+-2868 6770+-5713 2451+-9732 386+6996 5208+-4473 795+-1622 5441+2334 -3096+5 -9765+1897 6327+-6559 6193+2747 4281+-4608 -7162+3826 9717+7615 8780+-6715 2055+-7493 5590+-8445 -9571+-9939 3234+9606 2315+5463 785+-5488 -3983+-8146 -6932+-465 3942+-4405 -7457+-9880 -6252+691 8064+5516 5946+-7554 6140+6444 -5339+-2508 3197+-8723 -4880+7550 -3336+-4037 2952+2068 185+-1609 -3576+-5071 4812+2363 8085+6944 8568+-520 4865+-9542 7091+4442 -18+-7745 -4634+-6621 -9346+9828 -153+9576 -7917+-9472 -3204+7328 9627+6883 2750+8181 9214+-6989 -4748+1038 -5295+6080 -8537+-7094 -9733+2813 -8529+2911 3014+-7875 875+9213 -6892+5614 -6775+-4877 9942+-4493 -6021+314 7245+8556 -6181+7389 5650+-7776 -9257+6684 -8503+-2077 3022+3595 -1606+8758 -5648+-6228 -4681+-8030 6147+7173 -4995+9693 6798+9835 9097+-8090 -2929+5334 -7378+-2525 -8940+2688 6551+-3032 4446+-6372 3138+-5664 -2462+-1980 -9872+-3476 -5951+-6180 7257+-291 -1821+2058 -4775+4897 9356+7502 -9067+3644 3840+-2225 -1894+6224 9019+-5723 -1889+4980 -2580+-2768 -3549+-5813 9745+1066 -4956+3203 5934+4539 8929+3899 3505+3072 1974+8505 1254+-9807 -5139+-9577 -9722+5993 -2225+1305 4301+-8741 5942+486 -3270+7883 -2868+8162 4777+-9277 -8408+7193 9488+-3619 -2029+-5334 -8491+5366 -3133+-4312 -9005+5697 -4181+3319 -2975+6228 7949+1843 -9835+-4150 9955+-3024 -8095+466 -6346+8219 -1588+5710 5664+9916 -6046+-2679 -8528+-4446 -6097+-8134 9139+-6475 -1750+-6775 -8104+-6609 -8849+9378 8668+7401 -3158+222 -148+-6988 -6827+-1458 3638+8091 2188+709 4009+-4772 -3303+2073 4133+1701 -4670+5165 -3490+-9342 4180+-857 -6079+4213 1504+-3662 3749+8183 7681+2247 -5644+8274 -2562+-4249 -7192+2285 -5358+-1223 -4704+8840 -8400+3846 2407+1605 -5101+5797 -8444+4941 9110+7431 4790+3031 -863+5141 8829+9398 9727+-5997 -1120+-4887 -3574+2759 8729+-3705 1232+-6274 6394+1029 6861+8850 -8527+8223 -7630+7640 9581+3293 4652+9021 2508+5065 -1611+-3744 6727+-8383 -4070+-9004 -8587+-9231 3667+-3274 -1362+-7044 9817+3822 -1334+2642 -3737+-135 4004+2029 -8452+-5560 -2212+-4619 -9367+-9370 -1381+2554 1099+1636 8828+743 -3749+-3522 2687+9316 -5352+6225 -2689+2132 -1603+-5098 3358+9157 -7040+-7144 1389+2673 -568+5302 8963+-2123 -5039+-3048 -3791+6449 -2118+-8863 -6566+3007 4439+1477 187+-9928 7519+1351 7803+6129 1733+-5745 -5395+-4805 5213+5086 -3736+-4260 -6914+4795 -9103+6550 -7241+6176 -647+2715 3136+-9799 7065+4093 5182+3749 209+-9422 7137+9031 -1166+-8605 5245+-6578 -3187+9581 2520+2644 8067+8325 -992+9626 -6944+-7788 -2100+120 -3998+-5683 -9043+-3452 -5116+-3156 8859+-4332 -1956+1112 3636+-3573 9780+-1569 -3329+-4560 -7257+-9657 991+-742 1015+5471 7436+-9704 -8490+3741 3973+-3672 -8881+3948 -8276+-8238 5181+-4524 -1870+5029 7615+-2328 -1969+-972 3947+-8352 8533+-3385 -2829+-7969 -2935+9474 5314+-2671 -6645+4557 -1914+-8900 -4442+433 7848+3232 -1055+8311 -537+-2025 -5352+-7535 5795+-6522 -2813+-1802 -7902+2109 5987+-6355 1078+123 8824+-9361 -8529+-9670 -6313+-5280 -1875+-7830 -6768+6316 -4822+-3285 -5156+-1221 -5159+1678 9637+-1336 2244+3240 8468+-868 6280+1693 5647+-9155 -4501+-6357 -4490+-7167 7513+7907 -9966+9162 2168+5650 2760+-8569 -7818+8343 1121+9376 9087+-5252 6131+6936 4777+4902 -8996+-7654 9190+4242 -7280+8178 -1598+-1387 -958+5470 -571+-3575 5311+-8536 -3721+-2429 -6543+6187 -6438+3719 -248+4312 -4391+2967 -1462+8139 3046+3578 3265+-1594 -3141+7377 -9999+5998 3542+4478 8987+-6445 8182+-342 5707+-1966 -9874+1358 8018+7564 -3047+-3975 -3728+-9825 -4018+7733 8734+-8238 -9642+318 871+-7190 -6173+6274 -61+-5338 6034+-3863 1922+5755 6517+-3925 -9442+8257 2175+-2477 1800+-1674 -4115+9301 767+3041 -8907+-5864 -6898+-5420 9367+833 2237+1105 -1367+-3699 2081+-3817 1351+-3623 -2099+3482 -965+6152 -8118+8652 9724+-9205 -1281+-9603 6912+-8128 -3719+-7401 -2111+613 -5507+-4702 -8731+-7955 -1110+-2876 -4282+6689 -1888+7079 6064+1206 9775+-6652 -4704+-3070 -9078+-4608 -4548+3757 -1915+-4106 9013+6058 8816+-7820 -3272+-8982 3255+-4398 988+142 7976+-8228 2833+-8690 5648+-8792 -9393+6864 199+-6360 -1502+-8006 -3606+5411 -9808+-3812 7378+-4786 -5921+-2865 -4124+6245 -7193+2521 -5725+-5193 -1729+6066 -9243+4023 -7564+-9634 -6507+3067 3797+-8361 5904+6948 -528+-8910 -8692+3570 -1403+8601 -1714+6541 3465+2233 -449+6252 -1962+-5638 -6295+3846 7396+3761 -545+-1487 -968+5736 205+1884 9938+-5358 -3499+4715 -8571+-4978 -8470+-9273 8788+8189 1353+839 6564+-7388 -488+-8098 -9264+-2661 -995+6834 9976+7483 9750+-1167 -4724+-761 -8014+-3992 -7732+-1412 -2363+-5927 -913+7205 8029+-1703 -2987+7795 -6908+3778 -3602+4754 7760+-3604 3466+-6413 -8715+-7071 -340+-2348 7064+-5858 5695+-8712 2031+-8356 -8140+-8193 -2153+7340 1879+-3836 -6115+6843 8633+3836 -3212+8518 -7616+2895 -5846+3354 3386+3642 730+9596 -1579+-8216 -2586+-3613 -1800+5859 1952+-4909 -8948+6546 -1635+143 -8931+5067 6826+-2854 -3706+-2631 1163+-7872 -1097+3623 6249+9969 312+8787 -4398+7814 8393+5814 355+9085 8976+4423 -298+-3957 3338+2888 8162+4886 1150+3696 -6535+2632 -4448+-7795 6366+1517 5694+-252 -2765+-1562 -2530+5019 3525+-9986 -5242+-4622 -7655+-9649 -1726+-9045 -5247+2340 -2572+1655 3338+8069 -3285+-5222 5889+-209 2369+2618 8697+9619 -9708+8921 5638+6195 212+4285 9737+1687 3827+2440 2280+-9899 7335+-9332 -4572+-6256 -6382+-5725 6081+4469 -9106+1971 -8446+-9317 -3982+-5301 2996+-3032 5713+-9237 4460+1334 -4441+6510 -7896+-394 -2935+3803 -4154+485 4321+3162 -8755+2054 -6975+8693 1287+-1406 -7520+-5214 -2805+7769 6539+-212 156+5049 4748+-9847 -15+-4039 9313+5222 5194+7779 5038+-3915 7705+920 8949+6003 -1274+-3002 3076+-5535 -4455+8344 -3304+6004 4504+1457 -7192+2349 3454+5348 9932+9597 1855+-6374 3806+-2161 -7830+-4930 4211+-8053 4513+-9922 -4766+3658 -7979+-5614 -8060+-7007 5748+1000+7025 -117+-9194 -4261+6057 9197+-2461 -9593+-9493 1678+2448 1807+-574 -543+1130 -3729+7619 -599+5248 5681+5883 3225+2930 3399+-9852 -7886+9427 9959+1930 -36+-2266 5036+-1376 674+-7610 3169+4776 -8632+-616 -8034+-606 -6611+-8953 7287+2617 -7766+-1185 5451+-435 1939+4211 -3282+-4431 -9269+-5319 3528+9959 6443+-4918 1517+5598 -2162+-6501 1763+7958 -3461+4504 242+-6220 -8829+3255 -2400+-771 6115+7287 -9347+1185 -8957+-2904 -9598+-7982 5081+-382 -6441+-7836 9500+6128 3721+-7258 -1775+8633 4533+6942 7152+7471 -629+5975 463+-1791 -2856+348 -4391+2617 -7426+7283 7341+-1239 9003+-433 -3394+-4826 3156+7235 1008+338 4185+7692 -3422+9429 -2168+-699 1803+-1802 5060+8459 6474+-7087 -460+2959 -5790+-9140 -6735+7077 -4596+2139 -8180+6285 6329+3396 -9173+-4565 -6825+1113 9054+7051 2835+7343 8914+3895 -6950+-2662 -4508+8615 -4817+-4434 -3743+870 9672+-8793 -956+-400 -5098+-6768 -3090+-5941 8754+-1681 1423+-6769 2373+-9478 -1206+5807 9755+8194 -4523+784 -3652+-6049 2603+8694 -8653+5337 -5685+5311 1674+-6057 9026+6010 3432+6578 8284+4885 1578+-5177 1795+-3759 6204+-9598 -8114+2519 -7413+477 -3628+-4592 -2427+5279 -3417+-4177 6564+3217 -3086+4180 -9002+-9615 -7449+-917 -2855+8507 -2289+-9499 -1485+9534 2116+-9713 2249+6336 -3330+7524 -7764+2453 4247+-8681 1808+-363 4557+5373 -5896+9699 1945+-4473 546+-2346 113+-2819 404+2261 9070+-2104 6996+-193 -7214+-8934 9683+-7272 -2199+4673 -7889+4154 -2027+8476 -6902+-6413 5410+5636 5496+4682 -7680+-9100 -5679+5712 3454+-2184 4551+2490 1018+3832 -863+9667 5721+-516 7474+8816 -5689+8332 6775+-7565 -234+-3277 3873+-6361 1921+4601 3363+-727 8024+9759 -942+-449 -5694+-8622 -5306+8019 9445+-4722 -5418+7852 -8121+-8912 1899+9322 -7223+-8677 1717+9367 -7098+-5364 -7561+7194 -7242+-5155 2941+2855 1082+5775 -4211+-3128 -6110+-3440 -1853+7318 2884+8246 6096+-3115 8996+-7471 -4029+-4503 3417+-4800 2398+-1347 -3858+1736 -4256+9796 -8819+-5936 -1022+743 -991+6136 -8690+-2749 -836+6756 2412+-7972 4074+-6327 3131+1813 -3678+-6103 -6263+7178 -5048+-8594 5799+7578 -8010+-8986 -1039+8161 -167+732 -5118+541 5010+-1264 -7526+4254 -4601+-7296 1565+9267 9814+2888 7072+-2728 3869+-8447 8049+-6515 4835+1841 966+-312 -2622+-8835 4717+1005 -9060+7334 -9357+-5795 1596+3049 -5751+-942 784+-4252 -463+-5136 6943+-1664 -9662+4697 -8459+9080 -859+3104 -6669+1927 2285+-2401 968+4209 4457+9176 6846+-7991 8563+-8824 -3608+8194 9831+4650 -9174+-15 8284+2467 305+8336 1063+7507 3172+-8508 -144+-3883 -9241+2678 -8872+773 -4684+7396 -4921+7712 -3709+-9594 7836+5246 8789+-3086 -1696+7313 -9592+9136 -9339+3623 -9911+3549 1363+-349 4266+-1410 6109+-459 -5438+5854 3242+8179 -7118+6497 -7467+-4950 7716+-1051 -9085+8618 4252+459 -3190+-9545 882+7580 733+-299 -5570+9317 7896+1679 6426+-7668 -5220+-7355 -7029+-8372 -6168+7815 8304+-4480 1668+-531 -2746+7175 -5733+-7107 -7973+-9579 -7527+-9621 8008+5768 4470+-659 -7814+-1217 436+4145 5719+-3113 -959+-4330 -6151+-3758 9822+9289 -6044+2630 -2859+-8586 -7293+5242 -7933+-8249 6205+1449 1605+-6021 -7952+4175 -2680+3412 7169+3364 -8429+6108 5686+-1292 9312+-7298 -8593+4033 1811+-4332 7677+-9011 -9111+1877 861+8258 5695+3733 -8692+-501 -7254+-2326 6594+9592 -424+4001 -1431+4300 -6118+-8060 -2780+3750 3335+9471 6459+5553 908+-3740 7062+1784 7449+-6386 -6406+6326 6288+3260 -834+-6418 1704+-5785 160+-9088 9594+-5965 4690+9784 -1358+785 8249+2581 4550+-5073 1841+-7793 -9994+-9396 -2477+6907 7628+-6414 5136+-4714 -4467+-611 -4525+752 4961+2054 9488+2250 -4504+-4276 2113+4899 -1871+-1280 2426+3551 7403+-9444 -7048+-5100 5283+-2966 1697+614 902+-4080 1437+-7425 302+-1553 -2991+3429 1188+9369 1327+-9507 7778+6995 -647+-8695 5805+9055 -6476+-7943 635+9944 -4378+-3545 -9132+8224 2812+-9005 1892+5320 7024+7787 -7112+-6733 -4642+1137 -6565+9292 1744+1571 4591+-9768 7917+2206 7161+-4036 7800+-1583 9073+8626 372+-5177 9053+-5910 -4822+-3972 -7539+5867 -7139+-3501 356+-6851 6836+7177 -3785+9215 5817+1943 -3978+-9151 3863+-5833 -3794+-9034 7064+-3856 -1560+-7601 -9455+-4186 -5282+4611 3306+-1478 -697+-1174 -8548+2540 -7172+1999 7834+2026 4197+5879 -877+-6898 -5612+-3837 6608+-1157 -6764+2030 82+8783 -7045+30 -4620+-2177 -5125+3693 -2566+2582 6100+3887 7953+7729 6165+4855 6216+5004 4251+9200 -4585+-1286 8433+-4713 -1070+6322 -9791+-3903 1620+2861 4664+5201 8555+-8048 -8864+3396 8295+-9046 -4953+6112 3289+9818 4654+7045 7260+-3171 7624+-2291 7094+1060 815+-8339 -7124+-6 8594+8444 5123+3845 5180+3743 -8989+1235 2759+-7048 8324+-1011 949+9927 5162+-3076 5596+-1344 8961+-1195 -380+-3095 -6036+-6934 -28+-4544 -6282+5768 -2395+-6903 -4128+-9134 -3639+-4299 8552+1228 -6497+3476 -5379+-9538 7960+-2474 -7858+-8243 7330+-6688 2491+4185 4255+-6388 6607+6396 -4984+3794 -1364+5730 -2442+-766 -2093+-834 3583+-959 -3673+3292 8739+9624 1169+2671 -6611+4713 -6636+5191 7221+-1273 3324+-414 -9499+7181 8563+-8373 -9504+-2607 -6105+-4503 6262+3854 -825+-4595 -7865+6974 2940+2123 -3000+-5570 2016+-6204 879+-9942 3618+8089 -7456+-7052 9141+1803 7045+2141 4839+-313 -3679+-2230 -1364+9895 2814+-1604 -8025+4840 -3211+-8263 6206+-6063 2507+7412 -9808+7956 -7819+6309 9945+-851 9103+-3900 -3708+194 -7992+-5245 -902+-1956 -1240+1034 2761+9428 8150+8496 5084+-2931 -1248+-6139 -1079+-349 -3309+8333 -326+6413 -1453+6768 -6247+-283 -2586+3446 -6258+-2113 -6217+6122 7758+7640 7397+3166 7691+4468 -2267+-8516 -3772+8473 7495+-99 -9596+8248 5601+-9040 -7933+9166 -4764+7404 2954+-4095 -1008+-8462 -1392+952 -6662+-8162 -3767+-2969 173+-4455 -6400+3414 -3582+-457 5705+9470 -475+-1384 1773+7747 4455+-6474 -2807+-309 -2183+-8 6138+-8671 -3372+37 1626+-5948 -6257+3046 -181+2937 -9968+-3804 -2047+-3860 -5809+-3447 -245+-3380 3707+4981 8760+9661 4205+2199 2322+5960 -6611+3596 -7155+-8805 3623+4936 2583+6948 4500+8943 279+-8571 7485+8516 -8016+9812 2423+1545 -8590+-1082 6214+-5098 -4317+8102 2411+5543 3470+-2799 -8808+-2299 4277+-2176 4906+-7484 -3437+5987 8040+-6067 -3195+-6032 8396+5222 8498+9326 -4788+-4773 -4200+-4235 1750+-6423 -6835+4602 9983+7512 -1149+9318 5580+1692 -6723+-6217 -4922+6670 -2724+-6723 -9725+485 -9698+-6265 1762+7308 -8815+408 -6497+-8901 -4560+-6268 -393+-5756 4693+8052 -9586+-835 7678+303 -272+1038 -9994+-91 -7572+-2323 -9481+8508 7145+9212 -30+4522 9562+-6664 866+5371 4476+-9566 -7566+-8016 1704+-9064 -6413+-2220 9595+3696 4438+-1354 8490+6648 2800+806 -2233+9454 -9500+-7631 -3269+-3211 4433+-957 -5246+-2006 -9451+-8902 -2837+-90 -7000+2082 -5188+-9376 -3365+2129 -5475+-8441 6795+5805 9622+-5866 -8957+8134 1293+2492 6266+-1153 4481+963 3667+-277 -2462+5127 -6925+5990 8258+-6574 -5058+-7694 3593+-3872 -163+-5261 -1597+4478 8227+4543 -679+-5249 -6527+8133 7506+1862 8548+-8060 2173+7419 613+-2014 6036+-4902 3554+-4617 -942+6382 8066+828 -895+-5261 -2114+2572 8542+-5969 9712+-7418 -7194+4991 -1428+3284 -1677+7008 6655+3118 9814+-9567 8331+6807 -5173+-1900 -9399+-6564 -4539+9944 8312+9485 -8341+-7744 1729+5387 5297+6157 -1060+-9021 580+-2843 -6200+-5269 6218+-6901 -8985+-1685 -3046+2956 -5245+9470 -4142+-8304 3518+-1155 -9310+-631 -6104+5806 -9654+-1623 4169+470 9877+-1252 7797+-2129 -6348+-9140 -4422+4183 562+917 732+9653 7860+-5738 4284+-3604 -7449+-3418 -1055+-6076 3804+8174 7310+6629 -491+1564 -1582+1647 2250+-9209 6411+8104 -224+2648 2812+3862 -1990+-1500 -8756+5785 6760+5519 7209+-2238 5761+8217 2959+8655 3078+-7169 5238+442 -8052+-326 9524+3908 -5753+2686 4759+-1855 -8585+-6653 3697+4621 2499+6766 5070+2407 6828+4235 -9554+7326 7324+-2351 -6347+-7855 -2639+-7375 9492+7302 -9144+3490 7297+5502 -7572+1413 -6522+-8329 -9689+-4886 6052+-9139 -8828+-717 -856+7085 4889+-7781 -728+8597 2016+-399 -7735+3949 -8297+-578 3088+8942 5326+-6739 -5520+2187 8368+4767 -8539+114 8392+674 7394+-42 4467+1892 -9150+-8551 -5165+-6006 -8549+2194 2639+7265 -4208+4069 2460+1945 -2535+1578 -9190+2674 -7509+6247 -2031+1268 -2394+8152 -2850+9613 4428+-989 -2753+-4174 -9673+-9456 -377+-8050 5000+-175 -7062+-1374 -2682+5109 -3570+9459 2945+1831 4749+-4659 3769+3436 -8866+-7291 -106+-1283 -9652+-4890 -3191+-391 -7902+3923 6755+7316 -4075+-2269 503+-4796 6736+7120 -4757+717 -9540+1108 2990+-3919 -9581+3874 -1068+7877 -1497+4808 -4026+-1056 1826+598 -5103+3932 2009+7253 1123+2390 8478+-2250 4054+-4816 7848+-7872 8540+-5764 9017+-8614 -7620+9695 -1545+-3431 3885+8777 7650+6842 -3173+-3245 -484+3574 -4865+8724 -6370+610 -3452+3244 5665+7716 -6690+4425 -6481+-6212 9308+-5640 2289+-7835 -3420+-2632 -9449+5604 -8901+2129 3224+-9000 7744+-7525 9754+-4499 9130+513 54+-9782 9117+-5093 4234+-7655 9551+2958 -3938+-5709 -7641+3954 9755+-1537 -9813+-1670 920+-1039 6372+5533 -4499+8814 2651+1193 5626+-2282 -4080+5054 -4854+-2109 4801+-8460 -8402+-1536 8867+3338 -2099+2505 -8627+-4636 8966+4107 1923+4234 5739+3667 -8998+-7511 -2145+-6137 3398+2176 4561+8744 2587+-2897 -1632+3403 -8172+-386 6691+229 -2756+-541 9816+-3099 6834+8162 8147+-9037 -803+-1843 -7050+8296 6872+-7878 -6750+1084 3714+-6653 687+6072 3450+-3585 -8686+-529 -6665+-477 8294+2776 -8698+3186 -7769+-1023 -6463+2107 2089+-1009 -1117+-5278 -7229+-1114 -2353+-8068 -4861+-5258 -4808+-9272 7167+-784 154+6684 2570+5457 3279+652 738+-3206 2600+3065 9240+9019 1312+-7154 -3183+-9257 -8973+5501 -7384+4804 -4042+9727 9031+-2105 -4479+-6286 615+-7198 4205+-9112 1145+8409 -8235+1941 3104+9086 -1453+-5429 -8950+-2774 -8248+3619 5837+-383 9786+-292 -8506+251 5689+3793 -3193+5351 -866+5597 3511+-6373 3804+5198 -2845+-616 7759+-8954 5053+-9598 3629+-7066 4403+-2789 4171+9078 7582+4709 615+3553 855+-780 1579+-5697 -8373+-6425 -1467+8576 3788+-6523 -8427+8566 8506+-3358 -78+8641 9002+-8385 8945+-1465 -5944+490 -9432+5355 6421+-1710 -436+1050 -6905+-9696 -4845+1394 -8460+-3670 8150+2116 4372+-5478 -2596+8085 6323+-7987 4225+9665 9135+-6655 -5852+-2492 2007+-9511 8858+-1456 3116+6646 -5422+1971 7050+9624 -8251+-3621 209+-8433 -5104+5849 -8533+9153 4255+-5640 -3415+3912 -712+-164 -8541+5309 -4637+4208 -969+-738 6347+-7890 -6659+-7278 6735+1571 -2122+8077 -1520+-439 9629+-8818 2922+6341 -9384+-6017 8140+6733 -8515+-4037 -5102+-1722 -4296+-7326 5507+-9405 3197+5092 -8253+6110 5895+-8124 8867+4545 -2242+-3982 -4433+-7111 -3330+-3815 1160+-8521 -9800+4387 -1293+6356 -1888+-3532 -8732+9209 1743+-9149 -1884+7507 -9749+-8362 4867+8266 690+-7888 7957+9169 -1045+-4930 -2685+9950 -4453+-1534 -1330+4233 -1561+-2123 4340+6957 1427+4329 -1067+-2759 6186+407 4072+1271 -6983+-6052 4717+2398 -1948+5262 3955+-8976 6461+-921 -8092+-1865 -6112+-6835 120+606 2548+2538 -621+-8290 2256+-3514 5078+-7886 4401+-6715 -8102+2624 -6301+4750 -4102+8529 5672+7840 -5851+3974 -40+-2225 7215+-2434 -9887+16 -9072+3175 -7808+-374 614+1811 7398+2835 -6336+-1095 8626+-9938 7247+5475 -6078+-7033 5869+1398 3660+-8146 3502+8673 2385+-7999 -116+9929 -6378+5162 -6226+2508 -9992+1636 -206+-6441 -1641+1237 9504+-332 9606+5305 -4656+-3780 8249+-2127 6525+-9522 -3599+5458 -5235+2327 -7124+-94 7023+-3539 9482+-9681 -5514+-7740 -6415+5267 4404+600+-478 -6108+-7931 -8257+5437 2598+-4905 2017+338 -7003+-234 9945+8183 9397+-7404 4325+-8663 -6162+4135 2082+-6283 -1974+-8533 -5937+-7827 4585+2804 1567+1763 3950+9289 7850+738 -9279+-282 4195+-6635 3180+-4088 6818+-6183 2259+8846 9284+-5238 -4172+-7046 -635+-9854 7824+7117 -4078+-6261 3804+5209 -3374+-2633 6502+83 -1861+481 -2806+-6492 -1582+-3939 -598+-4719 7694+-7256 -1906+5724 -7608+492 3501+2172 -4842+-5596 5923+-6670 8847+1334 2929+964 434+2545 8797+-493 -8474+-6451 -3851+-7197 -5872+-1127 -955+-5976 -4496+855 -1744+698 -6904+-1361 8647+8071 -2896+4625 -4277+-9376 -5986+5315 1919+6849 9293+5956 -5109+-4865 4498+-4876 -2200+-1072 465+-8458 -9965+-8030 6232+-3478 4031+3377 6021+-9268 1946+-5102 -8875+-7210 -5683+-7952 -5959+2451 -7738+6768 -7842+2549 -986+-1948 9261+-1132 9690+3361 6702+-4238 -7800+860 2795+-3178 9225+-5152 -98+-8795 -6794+1330 4752+1129 6864+-2076 -4701+-968 -3215+2820 2189+-862 -4744+7394 -7140+-3208 -8094+3394 -522+-7538 -661+-778 1969+-9285 -6436+7864 -328+-4911 708+1006 -8886+3519 -2234+-7187 51+3862 -1494+10000 1022+1462 -6676+640 4344+-8973 -7699+7373 756+275 -8045+1496 -2986+-182 800+-4559 -8929+-2302 -9042+-9214 5073+4862 -1954+-2715 -6307+-1933 1609+-6767 -4673+-9403 9382+7529 -7440+2390 1532+4806 1367+7513 -7139+-8982 6729+-4968 5321+7769 -9037+4511 -1337+9874 1193+9093 -7776+-984 2358+-7826 2866+-2568 8116+-6850 9480+8068 4708+-7877 5946+-4934 1790+9852 1505+-3414 -8687+2986 -4768+4493 -7103+3821 -7398+806 7397+4173 5798+-9667 -6958+-534 -2248+8558 3249+169 3493+560 8554+8255 9438+-2932 7384+5845 -652+-7256 3320+6716 -2728+6154 -8145+6199 -2110+-1645 -2133+2419 -2057+5517 6495+-4177 7845+-1742 -995+6102 -3625+-7143 6140+-6003 8956+3307 9801+2880 -424+5415 381+6305 -2513+5549 6375+-1415 3041+6274 -7598+2279 327+-7958 569+-2868 9121+4369 -7391+-984 2936+-947 793+9590 7076+516 -2638+353 -8318+-8643 2438+9645 8373+9079 222+904 -6136+5795 -7930+-254 -2105+6493 5832+358 -9781+8251 6130+2479 -1900+-6885 6316+2120 1378+2873 -7775+5777 -9640+-6508 -7782+-2647 8405+6046 -2136+-7738 2216+2306 -7663+5273 9942+-6600 6095+3994 6659+-3998 -572+1272 -5218+6782 5380+6314 -9496+-9705 -2579+7328 3392+-3383 -1333+4057 8003+-5840 615+-409 -6616+4377 8588+-6919 -9077+4363 1787+-1168 4546+2960 431+-7698 -2806+8361 -8488+-7166 8413+-2058 -7071+5337 5932+-6070 -5050+5126 -7+5163 -6527+-9111 -4326+-6186 8127+-2854 5134+-902 8722+-1747 -8435+-5882 -6184+-2996 -8167+6718 1481+6184 -7498+-6290 4460+-7224 9151+-5512 207+-3760 -6292+-5662 8848+2410 2572+-5152 1729+9204 -7750+7493 4762+-6758 -9809+45 6791+2478 2880+-644 6677+-4297 7890+2184 4864+-3102 9628+8183 3422+-6977 4232+-9169 -4010+2922 7982+502 -8751+590 -423+-9109 -852+8776 -9319+-7906 -6105+-9823 6058+-3419 -9986+-3674 2085+-3468 6546+-9849 -3152+5393 6095+-854 -9708+-6240 4011+8492 2271+-9727 -5482+-958 6843+-7184 6726+-814 -5116+-3460 -1615+-6465 7737+-4592 -8460+-8317 -9704+3519 -694+954 4042+-4159 704+3596 -5518+-9264 -9559+352 4141+9203 -6052+-2453 -9887+-7399 -3010+6303 4032+6197 -8136+-4693 8902+3032 6692+1984 4201+-9747 -1212+-8348 5995+5337 -355+-6167 -715+3516 -22+7321 -509+9282 -7435+-813 -1528+7692 -3585+5542 5627+-7207 -9419+6657 4945+-3262 -2783+-8507 -3568+-1128 8377+8040 -5729+-5386 -7600+-6993 -3890+7598 -9880+-7638 -9842+5935 5767+7062 -8488+6617 -5988+-7145 9072+-775 -3937+4882 6977+3459 -8779+7448 -3017+-1852 2011+-3848 3532+-2010 1283+4733 5289+1577 -8152+-727 729+-7720 -1644+4876 -6916+2269 -2294+254 536+7235 3235+8193 -1324+6276 1660+3191 -7545+464 -1970+7336 -57+-5314 7320+2017 -2552+847 -7754+-4322 -6452+-358 -7568+-9952 -102+6851 83+2430 3197+823 8093+6531 6897+2654 -2551+9191 7148+7382 8995+-1712 -9315+-3204 -1757+4570 -7711+2640 358+2059 -9791+9267 -3413+-6229 8899+1802 9325+8089 9056+-1937 -5968+2156 4957+-6510 9620+6560 4429+-8967 4206+1198 5778+7167 -6876+-8175 -3371+-7715 -4247+5064 6466+-9609 -7239+7325 7290+-1826 -8682+4124 -9064+551 7763+-5802 5858+-1673 -9313+1719 -8018+8186 -7180+2209 1656+9298 2321+-6676 -2849+5908 -7598+9291 -3086+6934 8047+3137 4040+-2217 -6407+9571 -5156+-8233 4625+-8933 1882+-2376 4937+-3413 9366+5183 9818+-7769 -9400+-3182 8071+-339 8442+4019 -3641+-7008 -3401+7727 -1506+7638 9459+9644 -6672+-9220 1041+-5446 4209+8458 -3638+-329 1235+9697 -523+3530 9887+3479 7962+-6735 5215+6141 3362+-5103 8754+-1347 6036+6372 -9981+9068 -5311+7079 870+9442 2633+8234 3357+3034 9332+-4002 9868+-3616 -3784+-1094 4838+1469 -2095+-8281 -5483+4474 6832+-9693 6608+2411 699+-8260 -2460+2971 -581+-9770 8537+2676 -9303+-6742 5223+4263 -8780+8395 -2030+6858 3196+8243 7010+-1781 7453+4112 1913+-4455 -5601+-7558 3555+-3547 1229+8068 2825+-5561 -4178+-7333 -2993+5523 7924+959 2469+-1430 6371+2287 2717+-4260 6509+4959 9433+-1309 6183+4926 -4570+1538 3321+2473 -8901+-7883 -9704+-6550 6666+6956 -3906+-5721 -4446+8431 2960+-8612 588+-3081 -8031+733 3316+2409 3127+3292 6248+6719 4398+-9281 5831+2219 3396+8544 -2547+-4290 1050+-4343 3287+-2719 -922+5077 -2973+3590 -6296+-4342 6682+3280 4153+3374 1977+515 4964+-3481 6940+-7787 -4118+-4436 6055+6308 7870+-8716 -2716+2293 4462+-9898 -915+-9335 4760+-6698 9963+4880 -851+5407 8443+-7048 1814+-8509 -7560+-5952 -6287+8731 3006+-3656 9897+5837 4415+1705 8668+-3429 -9143+542 -8335+-8825 -9222+7294 3542+-195 5199+-4419 1962+9324 3773+-2501 -2313+906 5714+771 -5770+-7873 -6618+6847 -6702+-1158 -2050+-8459 7361+-2025 6863+4342 -2746+-6599 8429+-2882 3862+3496 -6402+5721 2146+8353 4257+-6196 1732+-9070 -8343+-1725 -217+-498 -8970+7746 3028+6238 3966+7374 1437+822 -5892+2045 8540+-4255 -4342+-3235 -5483+-8385 7558+-5206 8636+6150 8771+-5282 102+1935 7963+594 6489+-377 8264+4231 1472+-2267 -6600+-4305 5609+-5835 -1234+5143 -4933+3105 4962+1953 5289+5549 7216+603 7396+853 -1929+2789 -4763+-2803 -4961+-3306 399+-2690 -7086+4269 9428+7998 6452+4188 -4755+-166 6914+4037 -4138+-128 -338+-8611 -225+-286 -8533+2106 -298+5620 5522+5878 6452+2989 6612+1611 -3493+8830 6299+-6960 3576+2171 -186+5203 -5992+7520 7449+-137 -9811+-5013 -6958+706 -2892+-7076 5+9229 -3184+-8894 -1778+3700 1490+2455 -9649+-3106 4288+-6589 -7235+8146 -959+-4980 -7468+9856 7602+-5219 -5232+503 9574+8054 3033+-8763 -2439+-5010 3286+-2647 5296+-8699 6041+2497 -7621+1073 3090+-6468 2249+-4238 3227+1746 -1638+-7649 7299+-1769 -3523+5442 -2344+1213 -3395+5755 -804+9140 -9754+-2475 -9440+8876 4120+1168 9418+3577 -4734+-973 -2218+4572 960+6884 9314+128 -2371+-5729 7339+750 8322+7688 -2479+-4055 6331+-8805 1104+97 -2003+-399 -4840+179+-8432 -2704+2700 -6982+-5532 -1817+-4219 -955+7647 6747+862 -8977+2838 7423+9555 -2050+5493 -4048+8661 -8443+-517 -9514+-7387 -585+-1161 -9128+-2342 2191+2281 -2904+1398 5125+7567 727+-9186 6685+-2071 4052+7410 -8730+4107 -9253+4737 -2513+-4094 5214+5915 -3335+-8718 -8123+7124 -5956+-4299 9507+7792 -3381+-2005 8046+-8286 4896+4505 2069+1795 -5362+-5216 7203+-3509 -4445+-5087 -4611+-5860 7751+-7174 2125+-2605 -5339+4839 8488+-3371 7435+7760 -7113+-4430 3288+-4438 706+-7699 9687+-3431 7025+-251 -6699+-2395 -9627+4461 3218+-5870 6009+-9158 8175+2498 8913+-2743 -2765+9445 8658+-190 7067+9381 -9189+8281 -9825+-1648 -5990+1725 5862+-7439 1943+-7367 -1997+1404 1089+4243 -3583+-6615 -7547+2169 4913+1482 -201+5872 -3167+1928 8896+-4768 3346+9515 -6423+-1487 8621+2233 4799+-9809 6177+-3798 8365+-3534 -6397+-2328 5765+6657 -7119+4571 -7256+-7753 6124+1394 1858+6589 -8456+7975 -6107+1091 2989+-7815 3951+-9203 7334+8147 -1657+6964 -607+-2930 3675+-2811 895+-723 1353+8438 -5241+5702 9439+-7631 -6847+-1357 -4801+-7894 -7409+7173 6959+4364 -272+-7956 1674+33 1909+5687 -3660+-7120 -5646+6477 8872+8857 4293+-7219 -1738+-5749 3911+7693 2054+5946 -1580+-8872 5182+-4635 7570+-4788 967+3871 -2047+-2925 9699+6831 -662+7497 8043+-3206 8424+-2560 9622+-3626 2404+-5846 3290+-7749 -5437+-342 -1818+7220 5212+-9963 8087+9793 -2262+9792 8792+-2751 -8646+2630 9700+-2506 -509+5448 3533+-3865 9167+-3624 4387+808 -2350+-1212 819+3820 1072+6030 8603+8558 9441+-4891 -3232+-9474 -6203+-4254 195+-1742 2656+7628 897+7640 -5194+-788 1806+-8699 -3446+-4827 -8698+-1453 -583+-6840 -8169+6217 -4591+-9242 -3960+-7426 4473+-1828 5556+-1676 6371+-957 5925+9149 -5764+8110 -8701+3225 -5326+-4198 2784+-9273 4852+6194 -5544+6159 2212+4750 -7176+386 490+198 8283+-2424 -4343+-4356 5166+8952 -6533+8965 8397+-6683 -5180+6540 2807+2852 -1592+7696 8362+-8994 -3456+-9829 4006+-68 7629+-4 4862+-1788 7590+5131 -9615+-7513 1861+-2059 -2519+7198 5174+1444 3139+139+148 -6373+4363 7764+-6007 -5+25 613+6493 -1294+-4164 711+-4719 -8204+-6503 -3807+-2149 5652+-1431 -1202+3274 -6877+6687 -9582+4030 8791+105 -7745+-6827 -5103+-3266 -9926+8669 -6240+-8161 8870+2738 -1856+7958 2311+-8957 3046+9287 -1299+-5274 -2232+-7004 -2722+4481 4134+4797 -2872+2190 -430+6308 -388+7253 8782+-6030 -1833+9031 8390+-6421 -3008+1231 1885+-9369 -9529+-2674 3805+-2351 -2301+-2481 -3633+-2506 2578+-5431 8052+4222 1747+4639 1004+-5603 2011+-9058 9189+-6674 5251+2523 -1165+8227 3244+5427 -7310+-1517 -4045+-7198 1271+8095 -9348+-9886 8042+856 -2680+3466 4493+-8185 1323+371 7011+4918 2936+3491 5716+3039 6575+1421 6699+-5267 -5899+-9012 7766+-4198 1741+8288 4333+4569 8080+-2445 4265+3168 -5127+755 -990+6619 -2072+5980 8829+-4404 -4563+3827 4233+-7661 -9429+322 2767+-2674 -2590+-1714 5274+-8365 -6044+-1386 7545+9878 9241+-2413 -6485+6928 299+-235 2360+-1564 -840+-8431 -9936+-2805 6633+7277 -7498+-3050 5741+819 98+-1949 -9717+-7820 -4955+9409 -8057+6315 2185+8420 -8101+-6148 7084+-1867 4347+-5541 8143+6106 -5830+-3357 9176+-7039 -328+5259 9478+-7574 6971+4841 7156+-4173 -7723+9961 -4922+3024 8748+3129 1344+6351 4189+1772 -6661+5339 -8398+559 -4111+-3144 3514+-9908 686+4764 -3199+-4904 8915+-6578 -7596+-9132 51+3324 1248+-4708 1630+-1505 7459+-7755 -1179+3099 6981+3087 -6820+-1371 422+7775 -8707+5139 -2254+-5059 71+9995 6547+4104 6033+-4553 2621+-4707 -738+-5853 -7318+9983 3973+-5831 -190+3857 -6480+1200 6078+8911 4171+9725 -9194+-4660 781+-2467 8910+5521 -603+892+1235 -3989+8909 7665+-6357 4653+-1756 -510+8152 9191+2758 2834+-1139 -4354+-1350 -8492+-169 -9194+9480 -8016+8897 260+-5232 2026+7809 -4296+-4210 6670+-7692 8880+9108 6885+6931 5033+-9540 -2061+9668 -8494+4135 7628+-3418 790+8394 6474+-5568 7451+-177 5813+-1137 -7959+-973 -3950+2555 -7781+-6211 6465+-2662 2516+-11 -7084+-5548 -3669+1404 -4723+211 9670+-4155 -1122+4272 1966+-3859 3469+2816 -3482+-6231 5953+-6780 -3291+973 -8863+-8900 -4772+-8004 -2751+-9165 6506+-7915 -8516+-3967 -7717+-4887 9161+-103 -1928+8868 -1771+4140 7584+3774 -3372+-8148 9135+9005 -7990+-5192 -7628+4896 9658+4608 -4601+-8386 7746+354 -1379+45 710+4037 -9234+9937 1652+-3217 -2424+7386 5763+7520 -2701+-6073 -4016+-9312 7198+-833 1360+-7992 -1524+7812 -551+8220 6525+-2224 1127+-2934 -3620+2921 -2864+-3366 -9458+-2853 1987+-4666 -721+-6625 1990+1614 -6331+6401 6759+471 3783+-7163 -1129+-3643 -9353+-9146 -3356+-1225 5741+2485 4686+2277 -5608+-3201 1606+-8039 -245+9961 -6396+6049 -8759+-178 -865+-7203 -7671+-6129 -8819+-931 1706+-7274 -4923+4641 1362+9593 -5433+8469 -8295+6549 6811+348 -7679+5332 5893+-1331 6300+-4899 -7488+-8342 9358+6328 -7092+3440 4067+-5112 -5391+-7907 3979+1099 3890+-9557 -4371+8399 5187+-9308 7813+3550 7776+7435 9999+7951 2274+9329 -2441+-9575 4991+-794 -7649+7685 400+9772 -9887+-9574 795+-54 -1532+4530 -156+-4916 6149+-9620 -3013+-4780 6553+-2034 2749+-3188 -3043+7694 -4783+99 269+2814 4883+1929 425+-3878 3655+7378 -5058+3512 4199+5665 -8810+3760 -5971+-905 844+-4083 -3102+-1068 -6316+-5536 5371+9431 1745+732 -2208+-2336 4158+-9785 -3445+4597 -7754+5142 -5702+-6308 -7100+963 -7370+1274 -3616+4010 -845+6629 -1837+8896 5410+3791 -194+7853 -3826+-7276 -9347+6405 2574+4239 5901+-8080 6685+38 -2973+2990 5165+836 1591+759 -7666+1152 6265+-3254 8501+-4647 517+2688 -7988+-9740 8036+-4660 8603+1060 -7583+7497 -7306+5061 165+8274 -9638+5852 9829+-7063 6673+-1670 3876+9730 -9690+412 -1183+1553 7647+7089 7481+-6300 9308+1488 285+-4924 -7113+-4518 1244+-3366 7672+7188 1293+5067 -7775+-3008 568+7995 -9363+7730 3767+551 6674+-9015 -6047+7349 -8251+9438 -4948+1537 -7433+-8894 5959+-4031 -7514+-2532 -6917+-1169 -9097+2163 -1596+4992 -9869+-7910 -6328+101 -4746+3284 7638+-1030 -1845+2649 -7754+2965 3093+4088 -5792+6125 -4159+-8418 9162+-4724 -3425+-3759 652+6887 -3950+-4890 8504+-3451 -7072+-3625 -6598+1154 5020+6298 5207+-9128 6799+-8276 2995+-5862 -2393+-8598 -256+1455 -5565+-5991 -8764+-5347 2637+-9924 8033+-4598 7743+-6405 -2718+-6097 -2499+5730 -9294+2679 -2234+-5052 2219+-8122 1355+-9650 2571+-1997 -7228+-4674 2024+5025 6930+3589 5703+3295 -5959+-7643 5355+2835 2563+-1350 2206+-106 4567+-3945 -1058+8854 9797+9617 9561+9655 -9349+6335 9288+3745 -5928+-6504 -3635+-5540 -2818+-5266 3121+2780 -1045+8892 -4766+-2997 -7961+-4025 2911+2329 5270+826 3862+4556 6569+-6346 2913+3061 -6964+-157 -4647+-9855 3054+-8602 -1534+-7038 3528+7558 6520+9625 -7878+6256 2147+-926 1319+9354 2907+-7153 2786+-1509 -9637+-3339 -1568+5296 -793+-6277 5653+-2382 -2078+-1858 -7519+-5857 -1093+-6523 3034+7887 1801+-5840 3240+-6743 5975+5781 2476+1044 -9330+2913 -2830+2736 -6622+-986 -6344+4970 6465+4582 -1732+-4035 -3127+1628 3357+-5976 -9888+-6379 235+9 1587+2805 6027+-2712 -8455+2682 -7250+3010 7512+7299 5366+-4000 -1170+2716 -7595+-4642 -6219+-6148 -8046+6716 -2351+-5317 4049+-8374 -3598+2607 -981+-9190 3145+-7161 582+6154 1118+8467 -2000+-9438 -5084+-9340 3900+-2601 -9436+-9064 -4124+5489 -8849+9641 -3671+-5640 -4900+-8591 -3769+7133 -2856+-7561 6995+-1886 9024+-209 3381+-780 322+7026 4855+-388 -7939+7427 -343+7390 -6381+-8491 -6068+-7424 -7330+-4025 5295+8545 -6720+-9069 2098+-6638 -2452+1019 9461+-4782 -478+9926 -3258+-2669 -4800+-6425 6857+8687 -5061+-1008 2047+-4866 -4409+9252 984+-7646 8578+3226 3853+-3904 -5945+-191 3462+6504 -973+6464 7785+-2688 8354+6010 -1186+-4780 79+3027 1295+3050 -9493+6074 -3702+-8987 1536+-64 6577+4840 -4076+7128 5323+-8983 -293+7888 -1702+-8615 6810+7247 7619+-2395 -9575+7508 -1887+-9274 -8648+8030 7601+2304 770+-5791 7140+-6455 -5424+-2090 2112+6593 -4981+6438 -7170+2414 1327+-2307 3547+-3402 3189+-6359 -5045+6423 6320+2313 152+-5897 3150+8079 1615+9839 -97+6341 -1944+2269 9766+-6462 -8539+-2482 -4110+7675 -741+-5833 -9279+1812 -4494+-8613 -1704+7589 -3441+6810 7388+-3485 -3567+-3663 4258+-7573 9566+9653 -6977+419 -1856+4354 1300+2095 -594+-8274 4162+732 2661+344 3760+-9997 7702+5297 5984+-4177 5537+2347 -4627+-6878 -2454+-217 7249+-1680 9854+-9219 154+2639 -9304+-7365 5771+-5240 -7116+-4521 -3552+8687 -5432+9360 4976+6548 6006+-7885 -3782+-7286 -3266+794 4067+7844 -3674+4219 -3546+1942 3960+349 -4190+8096 7431+-479 5523+-8175 -9578+-8227 -9099+7202 -131+7587 -5813+8456 7811+-5824 1825+240 -9548+-2235 1704+-9748 -9907+-5001 4145+-4795 -7822+6132 3924+-1943 2716+-5358 585+1908 9015+-4122 -9190+189 -920+5933 6155+-5980 -8252+9745 2375+2651 -5899+5535 -8292+7951 8777+5870 1858+-728 1950+6827 5027+6653 2522+8623 -4891+3438 -3203+2620 1716+1423 -2823+-8474 -4394+2389 185+2604 -9474+-6278 -5724+2249 6913+-6823 8796+-1572 -6678+3976 664+920 -2130+9304 542+-1072 6784+-9660 5371+9043 8280+7741 -1490+6895 -7662+6343 7799+-177 -8519+6067 -8020+-3688 -1769+3356 -8145+8525 7018+-3452 7142+6386 -5906+345 1465+6768 -5225+7366 892+-3663 -332+4450 1668+426 -4215+5292 1903+6508 -9875+1962 -1222+-4327 9434+-6354 -6818+-7894 9751+-476 -1342+-5052 -5972+-8528 -8077+-9533 3250+-3199 900+-3671 -2684+2265 419+-2298 -6514+-6802 3565+-5175 2203+2631 6434+-9089 7492+4242 -1066+-6164 1070+-8818 6938+6239 5153+5233 4122+-7210 -5342+-4233 6836+5985 6689+2364 -8794+-3184 8437+-9952 9423+-4986 -63+-3208 6460+4644 -2203+-4391 5619+1873 9182+-2030 7211+7706 -7641+-7489 -3625+-8944 3656+8418 -7845+5863 7380+7458 8288+-5040 -73+-8928 526+-516 -8028+-366 9012+-7818 -4483+3381 1583+-7457 -6648+-5260 7489+-748 -411+2290 4179+-4534 -4093+-8147 -2195+1533 -3637+9586 -2277+-6706 -7120+-8901 -4019+-1138 -7812+-7901 -3577+504 -1074+3000 4300+1425 -2557+-6131 -7426+-3824 -2637+-7709 -1823+-226 -1632+-1017 7961+-1997 9608+8911 9248+-6409 7824+-3349 7960+-7705 -9500+-6588 9763+-4672 1376+-7573 8255+-5204 -7149+5982 -8625+-1003 872+-9557 -1137+-9555 6319+-9676 -3812+2432 -610+-7669 5686+8516 8373+546 9094+-7608 -325+7552 6720+3201 -9662+-9807 5483+-6158 -736+-9959 -3481+-1425 -9587+-1610 2613+6963 -4756+7267 3696+-7098 -8082+1454 -8962+2616 4413+-3265 -8008+2474 -8231+-8410 -5653+-4039 -484+-1564 6991+7503 9157+672 -1842+4382 4541+2603 6817+-3292 6453+-8822 -3298+-8380 -7759+-1616 4569+3615 2646+-2341 -4053+7577 2686+1359 -7279+2174 -2908+-801 7799+5886 7330+5296 9062+959 -8301+4759 -6168+6359 7987+-6456 7958+-1414 1017+-8058 -242+4641 7892+-13 -5492+9923 -8660+8304 -5398+9886 6562+8664 6669+7312 8595+8578 9587+-1823 5672+2373 1024+-2780 -8469+1315 1389+3120 1926+-4963 4583+-3699 -7480+-3304 3298+-175 -9761+3644 -7615+-5511 2884+5219 1907+6302 9365+-2506 2702+9163 -2874+5559 -4502+5507 2660+6577 329+5058 7211+2832 -7976+1095 -3536+3 4986+6158 -7349+-2895 -5661+-46 -5942+-7107 7601+-8357 -4690+9154 167+-7455 9664+7578 -1485+-7050 4247+-1751 -6945+8044 7263+199 -9675+-7368 -8484+-20 -8266+351 -8620+-2121 -8740+-8563 -6002+6676 -6007+-8273 9574+175 -6926+-4505 8002+-8229 7456+-469 3178+-2882 2240+-7476 2106+-3046 9260+-4861 -997+-1819 3845+1179 5869+-9168 1096+3375 5904+-9838 7511+2721 9576+-6206 8327+625 1994+7875 720+-9218 1433+-8543 2260+-2482 3898+-7593 -6329+-429 -1955+-6327 -7817+5441 3766+-9662 9282+-8490 6139+-2873 -5564+-4191 -4604+-3018 6489+-5698 4013+1346 956+-7986 -8832+3100 -7955+8871 1180+-9867 -9734+6074 2429+-8751 4793+-4025 -2965+3302 6619+105 -8185+2943 127+845 -5423+6711 5544+-386 -3710+-3762 2153+5280 -3332+9740 6648+-9555 -4416+5770 -7880+6479 -777+9899 4312+1073 7941+-3249 -3302+-6852 -2953+-8839 -4808+7421 931+1218 215+-1336 5506+-9972 5933+338 5333+-769 -2035+2847 -2303+3516 4546+-2606 -1050+4717 3290+7884 5472+4286 8581+-7269 5576+-9679 -5275+5191 4006+6519 -4794+-9122 -10+-8094 6837+689 8981+-6414 1826+7994 864+4322 -1975+8944 4479+3065 8058+6210 6255+2515 -4999+-668 -7493+7325 -5855+-8437 -734+-2140 5348+-7153 -5309+2316 1731+8879 -1923+-326 -6142+-143 -2470+1852 3331+7161 -5666+9667 3539+-4420 7590+6533 9715+-9900 8529+-6242 -5330+1163 -2884+-617 8717+2006 -4717+53 -421+3271 -6243+-655 -9932+-1214 -3383+4466 -2464+-6260 -6657+-5252 -8806+-2790 -6776+-5071 -9170+2965 1481+-4509 7607+-5698 -895+2726 4990+5450 -6497+-3948 4820+9068 -4109+-6091 2978+5982 -8229+-6770 -674+3605 -9562+8666 -9297+-948 -3558+-5459 9149+-7546 -504+2026 343+-731 2394+1069 -3086+7529 66+-700 3666+-8781 2654+844 1973+-2526 7607+9965 8929+3225 3221+-2543 3891+194 3168+7507 -4823+9896 6302+-1433 7921+4916 -6946+-5909 -5971+-7532 7947+-5331 -7965+67 3623+-1924 -8848+4364 -3477+6122 9176+971 -4609+8718 -3996+3837 -3080+-865 7253+3592 -354+-5507 667+-5885 -2534+-6994 5170+-9239 9296+-8714 -9289+9869 -9135+-9907 -1985+8069 -2042+-4590 683+-8566 -8908+9636 9834+835 1030+-1364 -9345+-4167 5062+4287 3356+7187 -3689+-8008 5411+9167 5904+-6537 9007+9047 5203+-6718 -6603+6889 -8528+-2444 8143+7581 8067+5688 -1200+-4766 1634+-5741 -2422+-4742 -1572+-7592 2637+-5324 -3826+-8426 9232+-4140 -3805+3168 9401+-7070 4904+2607 -304+4815 2926+-7888 -6362+2750 3572+2508 627+7692 1812+-7761 -5473+-6604 -3532+-6038 7477+3105 -6482+-3089 9881+-5836 8100+-3209 642+-4256 -2169+-6630 317+1871 4637+-4951 -5123+5589 -1507+1525 7161+-5539 5672+3623 5272+-7793 -8215+5502 -6613+2036 -9225+-7120 8550+-9291 6831+1232 -4322+-9135 7840+-9325 9436+-1440 -2571+-3529 -7407+-6090 7765+2420 -7785+6611 -4115+6802 -4253+5755 -2239+-9823 9010+-7136 -5312+-4478 9052+1568 -343+-7054 1249+6207 -1550+-7162 2283+9008 -126+4935 5993+-8056 -3027+-6525 -2498+16+9860 -4911+-5186 699+8339 3491+6887 -6330+-541 7369+-4383 -1636+-1222 -9506+-3675 3742+4800 337+3437 -1504+-6334 -1571+5449 -8346+-5121 2768+-8717 9555+-5957 -3386+-1194 7183+993+6035 -1724+-601 8473+1071 -3061+1998 152+8944 9355+-4119 213+-6412 2389+824 8000+-5199 -4654+-2896 7978+-7780 -8949+6629 2260+-6399 -8143+7125 7466+-1619 -3181+1294 -4522+4846 6631+-1018 -1160+-2934 8044+8223 -6544+7535 -831+-4151 -2218+9994 -4578+-5351 -4317+-6617 9454+-1378 -3880+4925 9453+-8969 8616+6264 9455+5234 724+-171 -2564+2931 5057+3109 -6605+-3581 6169+-4625 -3631+-1967 5441+-3110 1266+4215 5116+-8960 2224+-581 1875+4961 -6503+-8383 6930+-2944 -5067+-218 7031+-3873 6270+4250 -5041+-3127 9931+-6479 6525+8971 988+-9371 311+4596 623+1901 -8109+-1640 -3590+667 501+-1318 -6415+1176 5917+-2087 -4419+2331 1272+-3799 232+8748 -1735+-7109 -6271+2131 -5903+-6857 -8396+6308 2922+2488 -1291+-8578 8458+-1493 -3004+9477 -9564+-3063 -6599+-4684 7228+7449 -9612+1336 690+8912 7716+4431 4015+2733 -4461+7328 -725+9184 4534+-368 -4804+3692 4578+-644 -2509+-7081 -7139+-9766 9204+106 1600+-3908 -9847+-7491 5931+-7104 6942+-9414 4545+-8305 3002+-7439 -1358+9946 8413+6387 4319+2236 -6938+-5455 -7153+6780 6466+3152 5620+4327 -6593+-3908 -1455+1433 -8559+9335 4835+3890 -1405+2587 273+4671 -1177+-3587 -4517+-2718 -9750+-9272 1327+-6236 5356+5675 3284+9391 -9881+-8795 -7949+2543 -3751+-4209 -52+-7604 -7171+4972 -7749+-5006 3107+590 -200+-5516 7848+3203 -3466+-9059 1279+783 -3705+-3267 -44+1176 6624+-2780 -9535+-8744 -343+178 -4327+1880 -5100+-7056 -5109+-7879 -7338+9275 -7697+1201 -1920+1067 3704+5929 2175+-8341 -9732+-7416 1659+4321 -5535+-4582 3768+-9458 -6614+6140 4044+7091 3616+7527 7601+-2591 -6054+-5222 2035+9027 8400+6931 8706+-4177 9061+6999 1646+-8524 -749+9217 -7628+-3067 4585+-2599 2178+-4970 6786+-5267 2640+2570 -875+9470 -7376+4459 -3726+1483 -4955+1361 -1309+-1613 9399+-5058 -9104+-7778 -7088+2964 9693+-7285 9727+-5560 -6087+-3515 2749+8095 2169+4090 1682+4443 -7590+3942 6904+-9844 3024+-9784 6461+6198 9777+9316 4730+-8019 -9399+-7816 -1925+-4586 -5165+2560 -9845+-2702 8368+5375 7283+-7122 -5252+3131 -8318+-299 -5434+-2427 6105+-5204 -1803+2115 -32+-1966 -8800+-7273 -72+-4945 -3967+8429 578+9896 -7688+-9177 9355+8488 5994+-7271 -1607+-3291 7709+-5543 9701+5731 6695+44 8367+-9386 7820+4020 -612+2697 -5284+4831 7126+-9133 8946+-9027 -8204+7778 -2544+8877 3113+-59 -185+2434 -3395+-2166 -1146+3679 9736+3310 -9840+2550 9422+-9550 1834+-3856 -5179+-7763 9968+-3016 654+-1503 1814+8727 9468+3059 -6998+-7626 -7103+-9479 -9090+-1892 8185+3507 -8042+-3880 -8857+9596 8892+-8734 5769+1763 -9761+-8091 8945+9544 -6896+4463 231+-8352 7593+6352 -6650+2818 1274+8243 5033+1475 -9231+-2859 1748+-2150 7267+-3900 -751+-7227 8222+-7645 -6111+-5524 -9561+-5404 3319+-8746 4937+-1667 5415+6115 -5784+9362 -7127+9646 -53+6392 79+6462 8378+-886 2288+8963 -7892+-1189 7037+2348 8195+6329 1239+-7161 6030+4616 8636+-7310 9856+7104 1890+-9778 1643+-5709 -5821+3252 -4495+5702 8753+8858 4310+-5759 -5036+5661 -6648+-5608 9352+6948 5207+-9126 -7630+3362 4805+1743 7078+2885 7884+6385 -6682+7861 -8857+-108 -7954+7467 2995+2885 -2088+7470 -7885+2755 411+-5405 7437+1193 2256+5034 2969+-8140 1765+-3185 8919+4289 -2478+197 -2619+4361 -3154+3259 1711+-6535 1048+5260 -1358+-9883 -2953+-8299 5387+-4878 -6521+5440 -1791+1373 -4495+-7550 -5812+-3940 -8153+8332 -3908+8356 6503+648 69+-807 -5673+7215 -3469+-4802 7943+-9276 -1263+4305 8833+-6488 -1245+5430 7943+-6366 -9747+8345 -7780+9265 8749+-44 -2724+-7007 -5644+-3871 -4428+-4243 2074+525 6372+-9608 6814+-3325 38+-8323 4279+963 -5346+8918 3429+7491 3181+7621 4040+3219 887+-8796 7317+8978 8674+-8710 8173+-1722 8405+1865 -3005+-3986 4292+-2767 7374+-6917 5517+-4602 4592+-282 333+9633 -5393+-8713 -6295+7422 -6192+5167 2904+-9349 -3670+-2398 5612+-6413 -2890+5468 -206+-552 -3457+2499 409+-4801 -8576+4707 5212+-4597 2051+1402 1810+4596 8152+7229 -6268+-5651 -5728+6501 3717+4677 -8615+700 5706+-831 9526+2960 -3625+5517 -5907+-2124 -4454+7054 4046+3616 9481+5679 -8602+-3106 -5974+8449 -1853+9010 -7414+5996 8684+-2233 3102+6513 -7975+-8103 8845+6576 -9626+-9981 8762+8076 9517+-7895 4391+-9840 9190+-4383 9312+8576 2398+-1273 2468+-6599 -7977+9764 2670+2938 -6935+336 -4571+2716 4909+1908 1872+-4636 1195+5031 5817+6847 6063+8450 2577+-1373 1256+-7750 -5421+9949 9261+1286 962+3214 3588+-2824 -1587+-3752 -3289+9322 -5919+2547 4425+-5133 -4106+4783 -5659+946 -9382+-4727 -354+-4928 -3229+1639 -101+-3074 903+4536 -2298+3729 -2116+-7419 2288+-3848 -9682+6484 -588+-3342 -5534+2116 -9485+-2348 -9930+-5314 311+-5972 -3979+-1544 -506+-704 -5492+6384 -3823+-2781 4671+5798 -8306+-4318 9085+-4417 3387+8836 2177+-776 8912+-5798 493+510 -1838+2637 -9433+3648 -595+609 4022+-4770 -1358+-4790 -6156+-7969 9655+-3397 -3407+-8246 732+-4923 -1807+-6737 6147+-4307 -471+8026 -4781+-5536 -9+1165 5624+2842 3590+-7015 4648+6372 -9367+2703 -4563+-2914 -7241+-6934 -7169+5410 1943+5684 1980+-5444 -8961+-3399 9673+-3031 -6850+9415 -5556+-4211 8022+9031 4593+-3287 4590+-3562 -9949+-5294 9677+-9507 -5136+-2464 -5940+-1020 -1820+3646 -3325+7633 2188+-2262 8892+4090 134+-3722 8294+-3098 2833+-5990 2065+-162 -9197+5126 1762+-9462 1211+8051 5908+8251 -8086+-2762 9917+2887 7226+-8078 7043+-4694 984+-3678 -6944+-3136 6020+-4962 -8874+6649 5908+-5930 1857+-6540 7326+-9864 3593+-9807 4086+-4878 3149+7157 -320+7057 6290+3198 -5975+-5022 2616+-8944 6397+-5048 2954+-1818 -5393+6602 -951+3005 -2483+-1277 8254+5729 2572+3168 -2232+2387 -6714+-417 -7688+-84 2083+-4168 -3294+635 4894+-9652 -7477+-4241 -2205+-8501 899+421 -2226+5689 -9353+-2182 9793+-286 3050+-779 2460+1913 -293+4379 2371+9310 7627+-3116 -1270+5862 -4755+4993 -5521+7844 -8627+1643 -3146+-246 9753+3937 4586+-2623 7591+1298 284+1045 -3435+-6294 9722+5806 -3257+-1143 2196+-8630 3639+-8282 8264+-3508 3845+-9714 8704+-2256 -6058+1396 2421+16 3606+3819 -890+-1402 9800+3193 -7757+7407 5459+9522 4322+-7397 -4222+-8028 -6360+-9711 1302+9050 -12+5309 -2102+-6051 -8248+-5636 337+9748 -3439+8161 -3450+1677 2513+-7011 9838+-6614 2422+9102 -2130+-2706 -7625+8342 8940+7289 9043+1112 -9508+1902 109+-6980 9192+155 5821+-4179 6797+-570 -7168+3922 -4144+2780 -4684+-4095 8967+-7062 -8878+-6873 -4463+-1444 -4816+-1201 5530+-6132 5577+-9539 3054+-3935 9098+-3204 -4724+1214 5154+-7794 -3425+721 -1446+7232 4812+-1622 -297+6084 355+8697 -5267+7738 -1018+2617 -9381+1089 -5061+-5187 213+-6152 8536+-9833 390+3841 8466+-6509 8259+-2366 -2129+-7276 8269+-8754 -5765+8796 5785+-8295 -1489+-1782 -169+2425 4203+749 -7518+8088 9881+-8300 43+1545 1233+-589 -5892+-1465 -2611+8622 610+-8419 1288+788 8713+8789 -9078+3886 8945+750 3443+209 -574+6428 9176+-8461 5262+159 5875+-3550 -4614+-80 3252+-6225 -472+1001 -5005+-4456 7389+9728 -1674+-4449 4044+2669 -1501+4259 -8163+-9929 6757+6583 7318+-6059 7196+-9132 249+-3550 199+445 1788+8545 8429+-6795 -4402+-328 8878+-4932 6328+-166 -6363+-968 5318+6616 277+-4786 -7599+-157 -9639+-7060 293+326 6650+3680 -5565+1017 -9421+-1279 -8770+-3838 -6847+-6077 8435+-681 -1676+-7499 -8127+7217 2611+-3534 -4156+7008 -8586+-3882 6583+-4480 7251+-4578 7053+-7741 3289+5388 6252+8476 -2420+-9783 5182+-186 -7184+-9548 7273+2848 -5244+6638 8449+-4835 -1448+-7877 9228+-4458 -3873+-9886 -8210+2777 2017+-7055 -4376+-5749 3076+-5349 -4136+6994 -6929+960 46+-4867 146+-3872 6958+-138 -3011+-1230 -2988+-2463 7594+1268 1002+-9899 -2674+-7581 4324+1800 8125+6973 3306+-4870 9882+-2013 1219+8977 7817+-6426 2174+-7034 -3712+2134 7920+2907 158+-5840 5991+2110 -2971+7873 -9381+6513 -2106+8996 3082+9161 4026+-9554 7389+8176 6346+-4434 -8767+-7693 2600+-2519 -7947+8616 6992+6452 5235+9658 -8762+-7098 -3124+4167 -5851+-6825 1123+3880 -108+2446 -5893+5730 6812+-5601 8230+7673 -5548+-1655 18+-8833 -4479+-4064 -4504+4610 -7912+-866 -6935+-5399 828+6063 -8246+4622 7523+-5033 1603+9008 7180+-5733 4001+-5477 1048+7845 -9093+302 9359+258 3857+1419 -8938+-660 -5748+4916 -6331+-1169 -8989+9613 -6033+-1709 -1632+1516 744+1346 -5789+-5135 1529+-1008 1624+5575 -9427+9526 734+-2173 -4174+3290 1011+7652 2344+6980 1573+1375 -1150+-1231 5559+2093 3538+400 -1567+886 -9351+-5275 6417+144 -6802+-9037 3762+1723 -6864+1506 -4648+8452 -7681+7506 3402+-9970 -4094+6730 -2543+-2011 5808+3093 6521+-221 5956+8196 -9250+206 7936+5836 -7064+5022 -6261+1639 2405+-2534 9487+-7840 -8219+-7155 9+-2783 -4347+8679 3714+7966 -3240+8529 6362+2416 -9345+788 -9978+-9287 55+-6 1241+7796 2371+-6969 2311+9859 2225+9131 6668+-832 -1742+-3756 746+-6200 -228+1088 -3147+2439 2251+8418 6366+6049 7936+-9528 1533+9971 -3015+-9888 3428+6355 -4173+-8888 842+7064 2313+7424 -2072+-5130 -5874+-1532 -3543+-7651 8737+3912 8328+3442 -477+-8014 914+-7495 -9337+9899 -2148+-3132 -4597+8613 -8786+1010 3995+-8713 -6581+4750 9182+2483 7862+-9770 -3296+-6785 9725+-119 1914+7428 -4149+7372 -8119+9365 713+-4107 9821+1360 8755+-9536 -2739+4731 5141+-9973 762+-2250 -1818+8342 -5866+1966 4387+-468 -2538+757 321+353 8868+2088 -1567+-6514 -1985+9518 3351+-7614 1210+971 -1882+-84 -6690+9404 8365+-8558 -7207+-201 -4954+-7922 -4083+-6702 2052+-9124 -2323+-3763 -7746+-7298 -1778+-6645 -3847+1070 -4419+4216 6945+2490 -1987+-6198 -1738+-9554 7880+8744 -6063+5334 -4880+3027 -6479+3390 857+9701 -655+4534 1955+-6142 -4200+-4883 7058+467 -4391+7977 -2793+-5345 5527+-1526 -8622+370 7550+-7957 -538+9520 9288+-3725 -4178+9897 -8048+2415 2893+-4166 -8449+-6094 -8498+6828 7132+7076 3724+-9954 8046+6022 -6995+8778 296+-7749 -8885+-7385 7401+8909 425+9005 3043+-2964 -5078+2461 9063+6638 338+-6724 2279+8480 -5753+5317 9897+-4548 -9569+-7279 4893+8035 -8430+4006 -7830+9607 1796+659 7593+5857 9770+6337 7833+-6977 8340+2328 -1808+7109 -8926+-3590 -7159+-8675 -7836+5727 5716+-3777 4163+8130 7739+-2522 9844+7189 -3223+-5717 3272+-7617 -6734+-6692 -8099+3521 -4697+2299 -8081+5626 1562+8550 3792+-7622 5265+3631 -4485+6459 -756+9985 -7998+-1888 6328+-711 9765+-236 -7286+-3206 -7861+5518 5196+-5346 9832+-1021 -6551+8227 -1405+-2233 272+-546 8500+-2674 -2654+3001 -5860+-6102 1112+-8067 -1889+8766 4898+-3809 8988+3460 5009+-801 -373+-9249 -8166+-8117 7246+1163 2900+-920 3548+3172 -8487+-6843 8740+5060 -1077+-664 -6450+-4762 6487+-3493 -9750+-3424 -759+-4843 -5965+-1537 275+-1855 8110+5024 -3116+9882 -4453+6174 369+7308 -2704+569 -1789+-5514 -2209+4477 -7920+4235 5421+5242 9085+-1970 9282+807 8374+-2509 -8003+-6917 -1363+1927 427+8753 -1334+2447 -3113+6882 -5544+9055 -2956+1571 6589+9410 -1532+-982 5918+-2015 6185+5996 183+-8291 -2737+5966 1410+-1893 -9150+4786 -4081+-7328 -8317+-2492 -8973+-4951 6461+9492 9392+4819 -180+566 1090+-922 -3578+121 -8688+-1415 -4537+367 -6263+-1774 -5835+-7629 2301+-6043 1047+3993 7686+367 -3717+9449 2533+2796 3410+4017 3663+-489 9882+-9760 4457+-5028 8673+-1388 9678+1185 -1168+3979 329+-1510 4728+-2793 5780+-6965 -1494+-2856 2865+-4444 -649+-6393 -1306+-7601 9597+-6629 -7964+-2573 -8188+-2828 -3356+4870 -7534+8511 -4948+8425 9725+-6816 2877+8373 7869+9141 1736+930+-8095 7790+-1254 -9180+-7009 4506+-1188 8518+3270 -6208+-5648 8642+2669 9666+-366 -7279+-8241 8806+-5426 2100+4367 -6728+7383 6773+975 8077+5319 4553+-4318 5177+-3083 8748+14 6268+2874 -3864+7679 -7520+155 2547+-4574 -72+-4780 4300+-1585 -8448+-994 -8604+1221 7584+8812 -6238+8847 -8704+3504 685+-8980 5410+-5171 -729+3306 -8129+7614 24+5886 -2637+4281 -6325+8059 5466+1792 5039+-5520 7921+-1676 2945+-7336 -969+3068 4036+-9215 3197+-5926 -849+-2217 8422+-2166 -5449+6038 4418+7777 2558+-2762 9544+-1473 -3121+-3174 -4594+238 9539+-4254 -264+1754 -4419+-1457 -3681+-4128 4541+-5339 3874+-1989 -8874+7358 3938+4050 -2227+-7165 920+5025 -2963+5356 -2275+-4398 3463+13 2804+-6395 6193+7869 3290+5544 31+-7608 -9078+308 -5874+-9353 -582+-9437 -4584+-9795 5524+-8665 -4976+-3901 -678+7122 -1061+-5775 5866+3336 -3157+1123 -4988+-4611 -6270+7545 8563+-1836 1794+5994 -9672+7119 972+9925 -212+240 5333+9336 1671+9476 -1312+3237 3431+4438 -7746+-690 -9773+36 8230+-4842 -487+7202 -1046+-7576 -3257+-7208 -5000+7870 -5166+-7626 -4035+2008 -9850+990 -4169+8721 -2374+-3732 -1378+9351 4638+-2954 3599+-9705 -4654+2095 -3764+-9015 -4543+2443 -6240+858 -8249+-3360 5603+2149 -3174+-6240 -8190+-347 2599+-1119 -7488+-6849 6133+5764 -7228+-7573 -4306+-6424 5542+8963 -3182+9624 -4011+2438 8071+-3460 -4517+335 -1157+1608 1480+9943 -4785+8676 -4261+1537 6441+-3499 -1150+2969 -7403+3403 -9848+-5887 -2002+-2958 -2923+-1651 6317+-141 3512+5645 44+6749 928+8585 -1700+2562 2736+7010 7355+9825 3915+-2146 4873+-1323 -7916+-9533 3046+1326 -4509+3083 6528+5026 1247+-3920 -3336+-4226 9373+198 -8638+-4135 -6504+8766 -8405+-2806 -5955+-8509 7624+-8688 -9270+3613 -3991+6071 574+6711 9646+-9650 6273+5579 -2338+7403 3288+-8876 4453+-9957 2691+2691 -5735+-6779 5904+-3912 4099+1440 -9754+-1368 -8460+-8490 2868+-5448 -794+-1643 -900+4232 -2247+3597 78+-7711 -4169+-7542 -417+-4771 -2421+-8815 7212+5118 7277+7223 9953+8989 2106+-2045 3459+1321 7313+3424 6240+163 5253+5165 3793+9740 -4322+5440 -4395+-2822 432+-405 -5055+8812 8868+-4660 5092+1516 1073+-3633 -5524+-8995 5694+-2129 1784+-3159 -71+-5928 5678+1373 4503+3774 -5760+2936 9600+-4124 1228+1501 6529+8032 -1502+7516 -6651+-7716 5268+-5301 5746+4316 4583+-5280 -3128+-9208 3262+3268 7062+7052 -9512+9861 -5022+5854 -526+-8051 -5778+-5527 -2899+9632 1485+4455 -1653+-3847 4240+-3587 -7451+-2423 -369+6256 5259+9291 4088+8761 8574+-9680 -8459+-20 6879+-5181 1481+-9102 1777+2879 -9426+-972 -5159+7779 1064+9182 4254+-9647 6559+400 -3194+3714 -3825+-1337 -388+-2307 5216+-1247 5430+6831 -2868+8395 -2668+-1250 -3985+466 3165+8111 -4694+4728 3057+-6496 -9684+9267 -1497+6555 4092+8678 3217+-6038 183+-3673 47+4261 1444+-8803 5636+2132 466+-7398 9929+2013 -211+-7959 1808+5619 -3120+719 -8593+-2260 2584+-1052 -5858+-8751 7296+3096 1367+-9774 -8928+-3710 4981+6929 2266+-5831 -1781+-7455 12+-8387 -33+1649 -7735+-4007 -6563+3884 -8311+6322 -8486+-7756 6153+8082 7133+4917 -4776+7417 809+7840 -5968+6848 9207+5243 -6999+3501 4163+8280 151+6485 -5842+-3381 -7410+-5378 40+9564 -3867+-8626 1072+-6140 9346+4864 6935+-5170 -4583+771 -142+7396 -8776+6222 -8037+-7964 -1733+5643 -1338+2349 -5092+8703 -4203+8570 3958+-914 -5736+-7330 -65+-4831 -2386+3942 -7526+1135 2027+-9454 -8385+8171 -7540+8340 -9076+-5242 -2495+-4290 -7156+-6635 -9005+9059 -6090+3487 -1038+2536 -3134+-1128 8961+-187 -1123+9985 -4371+-7239 -1509+6623 3829+-7863 4373+9410 1334+2625 -1837+9251 -5070+-295 6750+1183 5455+-1748 -8244+-5186 5008+-3216 8876+984 -7588+1338 -9551+2096 -8338+6830 360+3659 -1001+9575 4947+3651 9747+-9137 -9563+-1706 -7656+6763 4203+-7859 -6004+-1685 1639+3456 -2954+7626 -7750+-4677 1426+-9602 -5688+9431 8968+-728 -708+-4779 2166+1231 2800+6502 -3295+5471 5187+820 2988+1926 5749+4674 7919+3584 7196+-7511 -8104+-6153 5374+-3847 5287+-7392 -4821+-5011 2547+-8804 3655+-3787 2948+-3573 -8427+-6258 -3851+-1371 4929+-6251 -8226+1875 -6420+-2399 -2117+8982 5828+8003 6575+4008 -6433+2201 6700+-2554 -3102+-1405 5128+9258 2094+-4776 7101+4388 -8929+-9844 -6621+9745 3721+-9942 -8424+-1946 -3529+547 8482+-2544 -6306+-8032 -3439+7503 -2103+-8471 -3443+-5464 -4586+-1127 -6998+-9473 -3047+7783 -2487+-5585 9456+2249 -4682+4469 4112+-9965 -5222+-4226 -8027+-823 -9212+9400 -3986+7172 4087+3250 4800+9056 6909+2452 9420+9206 9208+2744 -887+-134 -5819+9462 -9635+1797 8546+-6728 3773+-6559 6474+-3330 -6633+4332 5120+-2614 -1076+-8709 -2456+-5973 1884+-4101 8904+-1623 1069+-5131 620+-5176 -3650+-7440 5861+-1261 -6061+9452 4487+-774 5599+-5320 -3015+-7986 -1520+216 -7435+2275 9404+3234 5254+-4508 -7140+-370 -7645+6583 1991+-9175 4213+2333 9968+-375 -4237+6506 -4331+-8497 -2500+-122 -5976+7806 -477+-3989 -1534+4380 -1997+-6240 -7201+3915 6056+-1337 -3372+-2552 -7064+1851 8794+-4829 8340+-550 1239+7577 5352+-3225 -295+810 3021+7343 -7352+-5125 -4739+4357 -232+924 32+-8126 -7605+-6319 1270+-7754 -6963+6778 4687+769 -5766+-3141 9785+-6548 6038+6718 190+-2377 -7733+8634 6856+9457 -9167+3977 -7298+9910 6580+-2822 -1829+7941 3708+-2705 3587+2210 -1590+1355 1718+4912 9332+-2284 -7214+-5923 -2413+4991 3775+22 9776+-2253 6520+8513 -9026+-1989 -7786+-8304 -9414+-3903 -3252+1361 7152+-190 -6904+-2757 -5408+9504 4783+-8405 -4383+-4373 -3927+3673 -4545+-2719 -9238+4702 1231+-1051 -3860+-5541 3970+5124 5202+4599 8980+-8962 -8020+-2105 -9967+-14 1811+5499 9580+-1369 1967+-8714 -8025+9930 -3585+9813 -5363+9482 -4498+7402 -8583+-1542 4119+2135 -3861+795 -8116+-3529 9611+8510 -1264+-8999 -9615+-3905 -4974+-3512 8423+-8075 4689+6896 9845+8088 -4172+2085 5325+7776 5113+-5087 9482+7492 210+-8739 5974+-4797 -4170+-8772 -6007+-4483 1025+6930 -2675+2635 3745+-1953 -2844+-577 -4229+9194 -6441+2735 509+2755 1901+-5240 -4655+-5354 -169+391 -3503+-912 9245+-1226 4368+-7372 -8137+3497 -6600+7109 1369+-7037 -5911+-3542 4732+-6218 9814+6819 8249+4240 6816+-4594 7234+3003 767+-8850 -3347+4394 341+-7290 1166+-9028 -763+-7384 6102+-6998 -8778+-301 -5409+6204 -4173+2719 -6173+2713 5141+5006 -1309+-7799 -8268+2559 -7421+8783 -2203+-6553 3414+-783 291+-7450 8900+-2758 -3973+-2132 1557+-5076 -7419+-8491 -3520+7667 -7687+4765 -5737+2493 -1651+-1599 -3133+-4195 -9077+6761 -3943+2355 6831+-2743 -641+5157 -9160+-5648 -8634+-9803 3865+499 -9236+-2673 4842+2544 -4263+-43 7852+-2285 5577+-4759 6323+235 -5756+-7474 -3760+8369 -3457+-5414 -9424+-1350 5270+6472 3012+5357 -9277+4039 3103+7815 7346+4940 2091+-4493 6336+-2035 6246+-3703 698+8192 2947+-3945 7157+-5901 -5883+-547 -8468+-1403 -5528+-5167 5953+8122 -4514+4440 9174+-7013 4149+-6437 -9571+-4917 -9210+-8246 -4070+8302 -349+9467 -1644+7976 -7706+3827 -9208+7401 9549+2 9263+2941 6992+2784 6635+4931 3817+-1039 -1065+7981 -2940+6573 5836+1389 5466+-5447 -7383+1407 -1558+-6036 8792+7801 2020+5857 1324+6931 6823+5560 -4245+-2996 2552+-2951 123+3773 5850+-1803 7543+-1447 1252+6176 -7124+-254 -7625+9996 -4098+-1024 -8684+-7468 1438+-2273 4044+-7242 -1213+9110 -2620+5328 -2842+4774 -2572+-5442 -3403+6969 3213+-6904 1442+-387 -1578+6249 -893+7385 1163+-1238 -1478+-8220 -4126+-2568 5094+7778 -5251+-8169 2576+3502 -3330+-5678 5119+5401 6910+5333 -6747+1940 -3231+-6087 -2857+-2321 -8833+8862 -664+281 -9015+8548 -7270+-9255 -4668+-4546 -1539+9510 6370+979 -554+7486 -9929+827 -1108+-7491 6268+-2394 -8912+-905 -606+-9209 3820+1231 1334+-7455 4883+6758 33+6717 2794+-827 -6889+8617 -8666+-4688 7028+3164 919+6800 -5224+-849 -813+-2467 -7298+-6456 -8634+-9610 -2490+-403 -1686+9424 -5117+769 5660+-8772 -513+2248 5337+-3269 -7235+-1818 -1786+9000 -3145+7502 -5497+-6337 -8161+9984 8287+2287 -8479+-9956 1980+2031 -5496+-7442 -7756+-3820 -4153+-8834 671+9316 2475+-798 1232+399 -3604+1195 7891+-2825 3490+4583 9802+2520 7424+-572 -2328+-1576 -1474+-336 9268+7854 526+-3686 3655+9087 6379+7919 7311+-9832 -3646+-5304 6909+3042 8475+6877 2103+-8449 -7580+-1117 -4260+422 9770+4562 -1939+9279 5060+2652 2731+3316 998+3167 -3995+-669 8733+8815 -1757+-1300 6523+9924 -7586+2279 2424+-4981 -3545+563 -1071+-1669 -3577+7996 8768+-4451 -7963+2172 7398+9596 -74+7329 7934+-8977 -740+-360 -369+5199 -1347+-6214 -8163+3921 2482+-8267 4111+6613 5176+7673 2417+-3732 3732+4089 2077+3204 8301+-2346 -2679+9714 -477+-6526 9664+1699 6241+-4799 -5595+-1861 -6926+-1174 8329+6309 8855+-5158 -4827+4630 799+-6541 4421+1657 -3967+-8874 7649+-7193 -6622+-2169 -7514+-5565 3811+6668 -6086+-1207 5153+2174 -4007+9072 2740+-8570 -5145+-1492 -8394+-5958 -318+-5956 -3902+-9585 -230+-2184 3436+8780 -8005+2841 -3897+-4468 2391+8583 8595+2535 968+-487 -2894+6883 5516+-8582 7733+4652 4259+-1766 -1502+-4006 -7821+-1439 3043+7593 -6578+-1260 -2999+-5592 1262+3309 5450+9174 8128+-5581 8130+-146 -7444+4288 4705+2734 -4754+-9456 -2556+-5459 -1390+-7970 8225+6888 -4209+-9917 6149+8537 -8678+8918 9884+9756 -9197+3258 1828+-6699 -7094+2452 -974+-5675 3696+-385 -2774+7995 -711+-7560 8564+-1055 9938+5232 -9098+-3506 -5774+-8441 3138+600 5440+-1057 7076+-3846 -6420+6627 -5016+-4486 1876+-5948 -8567+6903 4958+3253 -4298+6035 53+864 -2359+-8209 7591+9242 5487+3263 -2066+-6011 -9908+9369 2263+5189 -7785+896 -9561+-7777 8500+5438 -1211+-3136 -9928+7211 -5577+-5418 2631+7841 877+-7103 3759+6174 -7154+-8982 7623+7573 6256+2089 7150+-9181 2784+-144 6840+-6930 5815+-6706 8371+-7884 -6495+4475 7880+-7148 3717+8251 -2138+4828 7810+-193 841+7715 -9200+2312 3818+3125 7196+7562 -6509+7455 -2455+4071 -1639+656 -1617+-1019 -5545+9899 9920+1921 -6610+4629 -1804+-5238 5751+-6668 8185+-7437 -4096+510 4714+-6337 2907+2267 -4935+-9687 1634+228 -831+7145 -5265+-2289 7424+-2953 -2515+7890 3152+2714 6393+-3217 4390+4189 -5587+6387 -3731+3799 1203+2183 -4494+-7388 -7044+-8111 524+-7937 -5983+7738 7022+-6933 -8905+582 -5179+-9662 -8752+-8554 -8633+8797 -6910+-9165 -1508+7553 3701+-575 154+-3573 -7357+2022 -5559+1451 9674+-885 -1182+9140 5045+2082 1218+-9945 -8014+6631 5507+-5744 8230+940 -2132+-7026 -2414+-6081 -2084+2780 1937+-578 8244+1074 6464+8737 -224+4491 -3782+8554 -8254+1121 8984+8368 -3939+-3442 9129+6249 -5266+-6097 -8194+-5165 -80+8187 -8845+-8689 5675+-8698 7875+3735 -2003+-858 1418+-1553 8818+-1967 155+-2757 -1493+-9945 -2805+358 -4467+5180 -1968+-2257 -1670+7226 1864+-5219 5214+-4709 -7779+637 -1047+167+-5356 -465+-2592 -8882+-3530 -7592+-778 -7329+-5876 -8762+9865 5935+-1361 8309+-4806 1707+-7394 8566+9783 7243+5897 -1048+9101 4403+-3443 2634+-8615 1530+6634 -2556+-9942 -6471+-6702 5920+8193 842+-7253 9079+764 -9323+-7427 6318+-2247 -843+-4037 1894+5351 915+-8559 -9230+-2535 7781+1814 1078+9851 -4083+6104 1806+-773 8687+7194 -6180+-7026 -7129+-8334 3099+8562 -8138+-8824 2354+5213 2271+-4319 1139+-3510 8411+661 4547+3293 1628+6746 5067+-7572 8747+-1361 -899+-2094 6657+-7292 -5460+5392 -8020+4858 911+2874 4839+-7804 3028+7191 -4438+-6244 3167+5759 3958+-2731 -9+5043 -7093+9458 2029+6108 3678+8903 -835+-4262 3692+-8176 7766+969 4763+7181 -192+723 -2027+-4635 -9462+8869 1707+-1712 -4177+5825 818+-8186 -6772+886 4660+-5672 -7930+-6264 -1293+7231 -5579+7281 -8857+1079 -1260+1141 -2447+-5389 8207+1699 -7488+-4691 -144+8091 -4343+9966 -2201+906 -9674+-9118 6519+-5898 5455+-4919 -752+-1885 -7367+1318 -451+3693 -3872+-1338 9699+9803 -6829+367 3123+-6569 2831+5946 1960+-1767 -2758+770 5212+-4460 7103+337 -1240+8796 -7567+7135 6849+-5171 7107+2843 -8868+1078 7723+-8197 -5718+-1827 3117+4307 4811+-2196 -8652+7340 6282+-9235 8694+1443 -8819+-8256 8591+3929 3593+-5052 -8270+5120 -5078+-4876 8287+7677 3254+1056 1544+5931 7395+2482 -5915+1896 5097+-7614 9083+1785 4161+3473 2882+245 5855+-344 -1892+7703 -2893+-2362 5165+7970 -6617+4749 1787+-9527 -4314+9366 -2998+6931 -1257+-6808 5845+1378 -5075+-2477 1745+-9295 5832+-8726 -8023+8140 -1522+3292 6689+8365 -7531+-5688 3867+8094 8972+8785 -309+8227 9900+-7594 -4984+4912 773+-5452 808+5880 2360+1929 -8984+-6609 368+-1317 -2243+-2998 7727+-8553 -6822+5107 -670+1235 2411+6296 3568+2152 -1730+-9478 -9155+7223 -3192+-5620 6572+7720 3383+-8186 7157+4691 9092+-234 -2394+3961 -4656+-4228 -421+-9314 1846+-9817 -5984+4714 6304+7199 -3799+24+1036 -8669+3377 -9341+9794 -8451+1114 9803+6370 -4882+-6499 4193+7875 -2849+8908 8680+9122 -1254+-3169 6729+9648 3691+801 -8065+9377 9846+-7257 3914+-8906 2241+5661 7728+-6820 -4365+564 -158+-7781 8584+504 -3719+-8097 -3340+6382 6824+-1387 7618+9005 -7271+351+-8105 -4925+-4746 -7488+-2288 -8082+4880 3725+8347 1760+1757 7300+4084 -9901+8644 -2873+9393 -3031+-2964 -825+-2163 -750+3637 7206+7479 5375+-7636 -2679+3838 9288+-1715 -3898+-5205 -9530+6783 5369+-9145 117+1084 54+6974 -6178+9830 -8367+245 6203+-4862 3376+-1077 -3676+-8193 -7215+-7763 9394+-2918 6487+-5207 -8337+4318 7895+7779 -4503+1362 -2881+5241 3597+4315 -7366+-688 7831+-4002 -7068+-4427 6478+2917 -580+-1142 -3821+-5364 -4469+-9916 -4681+-1361 -7532+705 188+-625 -2431+6421 -9691+4549 3330+-4868 -8738+-6150 7205+3414 -6895+-392 -4078+6009 -7292+4291 -7600+9582 -707+9466 839+-6354 7513+7458 3870+-1771 -3447+9894 3846+7884 5296+-123 -8202+-5462 -2553+-8151 -2520+6044 -4361+4925 759+732 3260+7459 8117+-5067 -1455+-6712 -7413+5572 5385+5023 6655+-3698 -8086+1592 5909+2109 2468+7993 3046+5402 5391+-5716 5067+4263 7838+-394 1898+-6362 82+-4467 -78+-2511 -5680+-3462 153+-1825 10+-8349 2237+-6603 -371+9663 -7285+4436 7255+-5653 3714+7444 1838+8181 7629+8836 -7746+6380 2237+-3154 -8451+-4022 -7434+-9272 -3932+-5141 9188+191 7774+7364 -480+1335 470+-8530 4928+2867 8499+7236 7842+5447 9243+-5646 -1725+5478 7901+5758 2682+-1480 -8727+6001 7399+-8454 -1305+6442 7618+-5336 5269+-2516 -6035+4702 4297+4150 3780+5360 -7466+-6271 -1051+7875 6271+836 -6591+-9537 -885+4685 5222+-6714 814+5525 -2906+9227 -2879+648 -8355+9694 1780+6430 -2208+-4617 7233+-8750 -8348+2272 6034+-6556 -7784+6288 -899+8410 1634+-7496 -9989+3662 -7738+2319 -5183+5468 -599+-554 9262+2592 6806+-1225 90+-9582 -2443+6435 -250+1807 4126+6872 -7052+-1680 9752+5837 6634+6481 -5635+-6538 -9047+-8554 -6646+1653 7381+-4894 9689+6862 417+-2198 -9345+5961 4218+-8509 9508+1650 -6829+6942 906+1167 7314+-414 -2508+104 -7025+-1405 -6299+-7151 6462+-4264 -5850+3378 2698+2308 -5687+-7128 -799+-6274 -8900+-7257 5163+4764 -1516+-8546 -470+7778 -1766+-1625 -5863+6682 -5204+9683 5826+-5540 -4544+-2162 1620+8955 9322+3513 -7148+171 -1941+-2861 8186+4302 5784+-4340 -6324+3890 4718+-4984 7339+-9642 7284+4991 -2240+3589 7990+-1456 3743+8664 -7541+9092 -7582+2176 -4328+2872 -6872+-2488 -215+7355 5880+3645 -2177+-9814 -1327+6782 9346+-7082 9042+6925 -9497+8859 5429+-9583 8010+-3828 -4335+-1254 -5522+3238 4428+6125 4438+-9095 5908+1437 -8129+5784 -5345+-6140 -791+8235 6289+-9601 3814+9249 3555+7328 -4873+-9342 3241+3609 6466+333 -708+-147 -9927+-6843 -3046+-7692 8995+9723 4706+-1892 -6225+-3645 -2586+8755 7273+8517 3224+169 9947+7743 5342+7575 -9358+6450 -6595+2476 3099+-4716 -3600+-9961 6382+-1829 4410+-4841 3308+572 5764+4524 -5025+-9496 2764+7178 -4047+-660 6977+413 -8340+4138 1453+2044 -8673+9099 -7333+2581 9687+3528 -7460+3317 4245+-8838 3055+4567 4858+-6959 2367+-7132 -3262+315 865+2869 9958+1703 -5932+-6418 6312+9112 2570+7465 6265+-9189 -6714+7055 8682+6109 287+2063 -9285+7115 -6452+-3696 8729+-1329 2396+2514 4453+4421 7076+-7208 -4830+-9077 -2158+-9056 -8598+-7203 -9688+9345 -1313+984 -7910+-5577 -9966+2315 7500+7420 8383+-7006 -8604+-7240 -3782+8260 472+-1599 8759+4256 -189+2718 -2295+-3867 6875+-4639 336+3845 1662+-8451 6249+9520 8171+-8867 -1341+-6708 2416+-6874 5738+7763 -4789+7936 -5506+6704 -4412+-340 1601+-4388 -4086+9285 4657+-6280 -6371+-1349 2120+-9874 -4181+8812 -9213+-9629 3978+3871 4968+3268 7963+4982 4213+9893 1286+-533 6502+5915 6460+-1428 9032+5252 350+6724 8361+7238 928+-5655 8841+3089 -9187+96 9369+6686 1172+-4275 3795+-419 -6180+116 1881+-4129 3465+-789 4056+1103 9935+-895 -5653+-6381 6086+-4464 4338+-3173 -3033+7245 9318+5527 2691+-5148 -7552+9884 -9357+-2259 -4508+1260 -4946+4378 5345+-6995 4673+7189 -6939+1595 8168+-4073 2606+-870 4066+1370 2349+-9084 -7152+-5825 -5642+7151 7657+5678 8878+5707 4860+-7147 9072+6762 -7902+9954 -7863+5445 -1843+-9351 1022+-1892 -6324+5260 1352+-1378 -8585+-8246 -8834+-5928 1612+-2988 6986+4628 5274
+ examples/BAPC2014/testdata.out view
@@ -0,0 +1,78 @@+92210814+88343466+93671289+87057782+96232690+94638324+92852070+92987572+92744228+97779736+800+200052736+199995410+0+1280+4096+2304+1024+371513194+374362054+377188700+376064444+373665909+376562872.5+364442449+365333194.5+382802310.5+371894230+358267136+368224075+368543700+377758295.5+376702807.5+356447037.5+377131502+377490682.5+378118548+372155990.5+383333198.5+352680168+371294967+376500650+376274258+368283202.5+382473268+368020279+363707143.5+373665106.5+369035942+366940652+370708656+371569688+378140728+373974300+359873951.5+360773601.5+369896954+351975481+359847959.5+367623183+359879556+379433260.5+378837725+364060059.5+357774392+370114715+370832552+357111020+347979354.5+323491260+353187255.5+381838262+189877347.5+361709734.5+351329926+318801902.5+264706770+334690037.5
examples/Demo/Delaunay.hs view
@@ -1,9 +1,9 @@ {-# LANGUAGE ScopedTypeVariables #-} module Demo.Delaunay where -import Algorithms.Geometry.EuclideanMST.EuclideanMST import Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror import Algorithms.Geometry.DelaunayTriangulation.Types+import Algorithms.Geometry.EuclideanMST.EuclideanMST import Control.Applicative import Control.Lens import Data.Data@@ -11,6 +11,7 @@ import Data.Geometry import Data.Geometry.Ipe import qualified Data.List.NonEmpty as NonEmpty+import Data.Semigroup import Data.Traversable import Options.Applicative
examples/Demo/DrawGPX.hs view
@@ -12,11 +12,12 @@ import Data.Ext import qualified Data.Foldable as F import Data.Geometry-import Data.Geometry.PolyLine import Data.Geometry.Ipe+import Data.Geometry.PolyLine import Data.Geometry.Vector import Data.List (isSuffixOf) import Data.Maybe+import Data.Semigroup import qualified Data.Sequence as S import qualified Data.Text as T import Data.Time.Calendar
+ examples/Demo/ExpectedPairwiseDistance.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE ScopedTypeVariables #-}+module Demo.ExpectedPairwiseDistance where++import Algorithms.Geometry.Diameter+import Algorithms.Geometry.WellSeparatedPairDecomposition.Types+import Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD+import Control.Lens+import Control.Monad ((<=<))+import Data.BinaryTree+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as C+import Data.Char (isSpace)+import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry+import qualified Data.List.NonEmpty as NonEmpty+import Data.Maybe (mapMaybe)+import Data.Proxy+import Data.Data+import Data.Semigroup+import qualified Data.Set as Set+import GHC.TypeLits (natVal,KnownNat)+import Options.Applicative hiding ((<>))+++import Debug.Trace+--------------------------------------------------------------------------------+++data Options = Options { _inPath :: FilePath }+ deriving Data++options :: ParserInfo Options+options = info (helper <*> parser)+ ( progDesc "Compute expected pairwise distance of the points in the input file."+ <> header "Expected Pairwise Distance"+ )+ where+ parser = Options+ <$> strOption (help "Input file"+ <> short 'i'+ )++--------------------------------------------------------------------------------++-- | Evaluates the formula: $\sum_{p,q \in pts} \|pq\|*Prb[sample has size k+-- and contains p and q]$ which solves to $\frac{{n-2 \choose k-2}}{{n \choose+-- k}} \sum_{p,q} \|pq\|$+--+-- running time: $O(n^2)$, where $n$ is the number of points+expectedPairwiseDistance :: (Floating r, Arity d) => Int -> [Point d r :+ p] -> r+expectedPairwiseDistance k pts = makeExpected k pts pairwiseDist++-- | A $(1+\varepsilon)$-approximation of expectedPairwiseDistance+--+-- running time: $O(n(1/eps)^d + n\log n)$, where $n$ is the number of points+approxExpectedPairwiseDistance :: (Floating r, Ord r+ , AlwaysTrueWSPD d, Index' 0 d+ , Show r, Show p)+ => r -> Int -> [Point d r :+ p] -> r+approxExpectedPairwiseDistance eps k pts =+ makeExpected k pts (approxPairwiseDistance eps)++--------------------------------------------------------------------------------+-- * Computing Distances++-- | Sum of the pairwise distances+pairwiseDist :: (Floating r, Arity d) => [Point d r :+ p] -> r+pairwiseDist pts = sum [ euclideanDist (p^.core) (q^.core) | p <- pts, q <- pts] / 2+++-- | $(1+\eps)$-approximation of the sum of the pairwise distances.+--+-- running time: $O(n(1/eps)^d + n\log n)$, where $n$ is the number of points+approxPairwiseDistance :: (Floating r, Ord r, AlwaysTrueWSPD d, Index' 0 d+ , Show r, Show p)+ => r -> [Point d r :+ p] -> r+approxPairwiseDistance _ [] = 0+approxPairwiseDistance eps pts =+ sum [ (size as)*(size bs)*euclideanDist (repr as) (repr bs) | (as,bs) <- pairs ]+ where+ t = withSizes . fairSplitTree . NonEmpty.fromList $ pts+ pairs = wellSeparatedPairs (4 / eps) t++ size (access' -> (Sized (Size i) _)) = fromIntegral i+ repr (access' -> (Sized _ (First p))) = p^.core+++-- wspPairs = fairSplitTree . NonEmpty.fromList++--------------------------------------------------------------------------------+-- * Helper stuff++-- | Helper to turn the result of 'f k' into 'the expected 'f k', assuming that+-- we select a set of k points.+makeExpected :: (Fractional r, Foldable t) => Int -> t a -> (t a -> r) -> r+makeExpected k pts f = prb * f pts+ where+ n = length pts+ prb = ((n - 2) `choose` (k - 2)) / (n `choose` k)+++choose :: (Integral a, Num b) => a -> a -> b+n `choose` k = fromIntegral $ fac n' `div` (fac (n'-k') * fac k')+ where+ n' :: Integer+ n' = fromIntegral n+ k' :: Integer+ k' = fromIntegral k++ fac z = product [1..z]++-- newtype WSPDMeasured a = WSPDMeasured a++-- instance Measured (Sized (First a)) (WSPDMeasured a) where+-- measure (WSPDMeasured p) = Sized 1 (First p)++-- instance Measured v (WSPDMeasured (Point d r :+ p))+-- => Measured v (SplitTree d p r v) where+-- measure (Leaf p) = measure $ WSPDMeasured p+-- measure (Node _ nd _) = nd^.nodeData++-- | Annotate the split tree with sizes+withSizes :: SplitTree d p r a -> SplitTree d p r (Sized (First (Point d r :+ p)))+withSizes = foldUp f Leaf+ where+ f l (NodeData j b _) r = let nd = (access' l) <> (access' r)+ in Node l (NodeData j b nd) r++-- | Get the measurement for a given splittree+access' :: BinLeafTree (NodeData d r (Sized (First a))) a -> Sized (First a)+access' (Leaf x) = Sized 1 (First x)+access' (Node _ nd _) = nd^.nodeData+++--+-- | CVS file, in which every line consists of a name, followed by exactly d coordinates+parseInput :: forall d r. (Arity d, KnownNat d, Read r)+ => B.ByteString -> [Point d r :+ B.ByteString]+parseInput = mapMaybe toPoint . drop 1 . C.lines+ where+ trim = fst . C.spanEnd isSpace . C.dropWhile isSpace+ fromList' = vectorFromList . take (fromInteger . natVal $ (Proxy :: Proxy d))++ toPoint bs = let (n:rs) = map trim . C.split ',' $ bs+ p = fmap Point . fromList' . map (read . C.unpack) $ rs+ in (:+ n) <$> p+++readInput :: (Arity d, KnownNat d, Read r) => FilePath -> IO [Point d r :+ C.ByteString]+readInput = fmap parseInput . B.readFile++test :: FilePath -> IO [Point 2 Double :+ C.ByteString]+test = readInput++testTree = fmap f .test+ where+ f pts = uncovered pts (4 / 0.05) (fairSplitTree $ NonEmpty.fromList pts)++-- compareBoth :: r -> FilePath -> IO (r, r, Bool)+compareBoth eps = fmap f . test+ where+ f pts = let exact = pairwiseDist pts+ approx = approxPairwiseDistance eps pts+ in (exact, approx, (1-eps)*exact <= approx && approx <= (1+eps)*exact)+++compareBoth1 eps pts = let exact = pairwiseDist pts+ approx = approxPairwiseDistance eps pts+ in (exact, approx, (1-eps)*exact <= approx && approx <= (1+eps)*exact)+++mainWith (Options f) = compareBoth 0.05 f >>= print+++--------------------------------------------------------------------------------+-- testing stuff+++-- | Computes all pairs of points that are uncovered by the WSPD with separation s+uncovered :: (Floating r, Ord r, AlwaysTrueWSPD d, Ord p)+ => [Point d r :+ p] -> r -> SplitTree d p r a -> [(Point d r :+ p, Point d r :+ p)]+uncovered pts s t = Set.toList $ allPairs `Set.difference` covered+ where+ allPairs = Set.fromList [ (p,q) | p <- pts, q <- pts, p < q ]+ covered = Set.unions [ mkSet as bs | (as,bs) <- wellSeparatedPairs s t]++mkSet as bs = Set.fromList [ (min a b,max a b) | a <- F.toList as, b <- F.toList bs]++-- | Naively check if a WSP pair is actually well separated with respect to+-- separation s. i.e. computes the maximum diameter of as and bs, and then+-- tests by brute force if all pairs (a,b) from different sets are at distance+-- at least s times the maximum diameter.+isWellSeparated :: (Floating r, Ord r, Arity d) => r -> WSP d p r a -> Bool+isWellSeparated s (as,bs) =+ and [ euclideanDist (a^.core) (b^.core) >= s*d | a <- F.toList as, b <- F.toList bs ]+ where+ d = (/2) . maximum . map (diameterNaive . F.toList) $ [as,bs]+++nonWellSeparated s = map (\(a,b,c) -> (a,b))+ . filter (\(a,b,c) -> not c)+ . map (\p@(a,b) -> (a,b,isWellSeparated s p))+ . wellSeparatedPairs s . fairSplitTree . NonEmpty.fromList+++points1 :: [Point 2 Double :+ ()]+points1 = ext <$> [point2 0 0, point2 1 1, point2 2 10, point2 3 11, point2 5 5, point2 10 0]
examples/Demo/GPXParser.hs view
@@ -6,19 +6,17 @@ module Demo.GPXParser where -import qualified Data.ByteString.Lazy as B- import Control.Applicative+import Control.Lens import Control.Monad+import qualified Data.ByteString.Lazy as B+import Data.Ext+import Data.Geometry.Point import Data.Maybe+import Data.Semigroup import Data.Time.Clock import Data.Time.Format import Text.XML.Expat.Tree--import Control.Lens--import Data.Geometry.Point-import Data.Ext import Debug.Trace
examples/Demo/MinDisk.hs view
@@ -3,29 +3,25 @@ import Algorithms.Geometry.SmallestEnclosingBall.RandomizedIncrementalConstruction import Algorithms.Geometry.SmallestEnclosingBall.Types- import Control.Applicative import Control.Lens import Data.Data import Data.Ext import qualified Data.Foldable as F-import qualified Data.Traversable as Tr import Data.Geometry import Data.Geometry.Ball-import Data.Geometry.Line-import Data.Geometry.PolyLine-import Data.Monoid----import Data.Geometry.Ipe- import Data.Geometry.Ipe import Data.Geometry.Ipe.Types+import Data.Geometry.Line+import Data.Geometry.PolyLine import Data.Maybe+import Data.Semigroup import Data.Seq2+import qualified Data.Traversable as Tr import Data.Vinyl-import System.Environment(getArgs)-import System.Random import Options.Applicative+import System.Environment (getArgs)+import System.Random --------------------------------------------------------------------------------
examples/Main.hs view
@@ -11,36 +11,39 @@ import qualified Demo.WriteEnsemble as EnsembleWriter import qualified Demo.MinDisk as MinDisk import qualified Demo.Delaunay as Delaunay+import qualified Demo.ExpectedPairwiseDistance as ExpPWD -------------------------------------------------------------------------------- -data Options = BAPC BAPCOptions- | DrawGPX DrawGPX.Options- | EnsembleWriter EnsembleWriter.Options- | MinDisk MinDisk.Options- | Delaunay Delaunay.Options+data Options = BAPC BAPCOptions+ | DrawGPX DrawGPX.Options+ | EnsembleWriter EnsembleWriter.Options+ | MinDisk MinDisk.Options+ | Delaunay Delaunay.Options+ | ExpectedPairwiseDistance ExpPWD.Options deriving Data parser :: Parser Options parser = subparser (- command' DrawGPX DrawGPX.options- <> command' EnsembleWriter EnsembleWriter.options- <> command' MinDisk MinDisk.options- <> command' Delaunay Delaunay.options+ command' DrawGPX DrawGPX.options+ <> command' EnsembleWriter EnsembleWriter.options+ <> command' MinDisk MinDisk.options+ <> command' Delaunay Delaunay.options+ <> command' ExpectedPairwiseDistance ExpPWD.options ) mainWith :: Options -> IO () mainWith opts' = case opts' of- BAPC _ -> putStrLn "not yet"- DrawGPX opts -> DrawGPX.mainWith opts- EnsembleWriter opts -> EnsembleWriter.mainWith opts- MinDisk opts -> MinDisk.mainWith opts- Delaunay opts -> Delaunay.mainWith opts-+ BAPC _ -> putStrLn "not yet"+ DrawGPX opts -> DrawGPX.mainWith opts+ EnsembleWriter opts -> EnsembleWriter.mainWith opts+ MinDisk opts -> MinDisk.mainWith opts+ Delaunay opts -> Delaunay.mainWith opts+ ExpectedPairwiseDistance opts -> ExpPWD.mainWith opts --------------------------------------------------------------------------------
hgeometry.cabal view
@@ -2,13 +2,13 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: hgeometry-version: 0.5.0.0+version: 0.6.0.0 synopsis: Geometric Algorithms, Data structures, and Data types. description: HGeometry provides some basic geometry types, and geometric algorithms and data structures for them. The main two focusses are: (1) Strong type safety, and (2) implementations of geometric algorithms and data structures with good- asymptotic running time guarantees.+ asymptotic running time guarantees. Note that HGeometry is still highly experimental, don't be surprised to find bugs. homepage: https://fstaals.net/software/hgeometry license: BSD3@@ -17,7 +17,7 @@ maintainer: frank@fstaals.net -- copyright: -tested-with: GHC >= 7.8.4+tested-with: GHC >= 7.10.2 category: Geometry build-type: Simple@@ -27,7 +27,17 @@ test/Data/Geometry/pointInPolygon.ipe test/Data/Geometry/Polygon/Convex/convexTests.ipe test/Algorithms/Geometry/SmallestEnclosingDisk/manual.ipe+ test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe+ examples/BAPC2014/sample.in+ examples/BAPC2014/sample.out+ examples/BAPC2014/testdata.in+ examples/BAPC2014/testdata.out+ examples/BAPC2012/G.in+ examples/BAPC2012/G.out+ examples/BAPC2012/sampleG.in+ examples/BAPC2012/sampleG.out + cabal-version: >=1.10 source-repository head type: git@@ -40,17 +50,22 @@ manual: True library- ghc-options: -Wall -fno-warn-unticked-promoted-constructors+ ghc-options: -Wall -fno-warn-unticked-promoted-constructors -fno-warn-type-defaults - exposed-modules: Data.Geometry+ exposed-modules:+ -- * Generic Geometry+ Data.Geometry Data.Geometry.Properties- Data.Geometry.Vector- -- Data.Geometry.Vector.Vinyl Data.Geometry.Transformation- Data.Geometry.Vector.VectorFixed- Data.Geometry.Interval Data.Geometry.Boundary+ Data.Geometry.Duality + -- * Basic Geometry Types+ Data.Geometry.Vector+ Data.Geometry.Vector.VectorFixed+ -- Data.Geometry.Vector.Vinyl+ Data.Geometry.Interval+ Data.Geometry.Interval.Util Data.Geometry.Point Data.Geometry.Line Data.Geometry.Line.Internal@@ -58,10 +73,7 @@ Data.Geometry.SubLine Data.Geometry.HalfLine Data.Geometry.PolyLine- Data.Geometry.Triangle-- -- Data.Geometry.Plane Data.Geometry.Slab Data.Geometry.Box@@ -70,12 +82,19 @@ Data.Geometry.Polygon Data.Geometry.Polygon.Convex - Data.Geometry.Duality+ -- * Geometric Data Structures+ Data.Geometry.IntervalTree+ Data.Geometry.SegmentTree+ Data.Geometry.SegmentTree.Generic + Data.Geometry.KDTree+ Data.Geometry.PlanarSubdivision++ -- * Algorithms Algorithms.Util + -- * Geometric Algorithms Algorithms.Geometry.ConvexHull.GrahamScan- Algorithms.Geometry.ConvexHull.Types Algorithms.Geometry.ConvexHull.DivideAndConqueror Algorithms.Geometry.SmallestEnclosingBall.Types@@ -90,15 +109,20 @@ Algorithms.Geometry.EuclideanMST.EuclideanMST -- Algorithms.Graph.DFS- Algorithms.Graph.MST+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types + Algorithms.Geometry.Diameter - Data.UnBounded- Data.Range+ Algorithms.Geometry.LineSegmentIntersection.Naive+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann+ Algorithms.Geometry.LineSegmentIntersection.Types + -- * Graph Algorithms+ Algorithms.Graph.DFS+ Algorithms.Graph.MST + -- * Ipe Types Data.Geometry.Ipe Data.Geometry.Ipe.Literal Data.Geometry.Ipe.Attributes@@ -109,24 +133,32 @@ Data.Geometry.Ipe.IpeOut Data.Geometry.Ipe.FromIpe --+ -- * General Data Types+ Data.UnBounded+ Data.Range Data.Ext Data.Seq2+ Data.Seq Data.CircularSeq Data.Sequence.Util Data.BinaryTree+ Data.BinaryTree.Zipper+ Data.CircularList.Util+ Data.BalBST+ Data.Util + -- * Planar Graphs Data.Permutation Data.PlanarGraph Data.PlaneGraph -+ -- * Other System.Random.Shuffle Control.Monad.State.Persistent + other-modules: Data.Geometry.Ipe.ParserPrimitives @@ -134,27 +166,29 @@ -- other-extensions:- build-depends: base >= 4.7 && < 5- , containers >= 0.5.5- , vinyl >= 0.5 && < 0.6- , linear >= 1.10- , lens >= 4.2- , singletons >= 1.0 && < 2.0- , bifunctors >= 5- , semigroupoids >= 5- , Frames >= 0.1.0.0+ build-depends: - , text >= 1.1.1.0- , bytestring >= 0.10+ Frames >= 0.1.3.0+ , base >= 4.8 && < 5+ , bifunctors >= 4.1+ , bytestring >= 0.10+ , containers >= 0.5.5+ , contravariant >= 1.4+ , lens >= 4.2+ , linear >= 1.10+ , semigroupoids >= 5+ , semigroups >= 0.18+ , singletons >= 2.0+ , text >= 1.1.1.0+ , vinyl >= 0.5 && < 0.6+ , deepseq >= 1.1 - , semigroups >= 0.15- , bifunctors >= 4.1 -- , validation >= 0.4 , parsec >= 3 -- , tranformers > 0.3 - , vector >= 0.10+ , vector >= 0.11 , fixed-vector >= 0.6.4.0 , data-clist >= 0.0.7.2 @@ -193,9 +227,10 @@ , DeriveFunctor , DeriveFoldable , DeriveTraversable-+ , DeriveGeneric , AutoDeriveTypeable + , FlexibleInstances , FlexibleContexts , MultiParamTypeClasses@@ -213,7 +248,7 @@ , vinyl , Frames , semigroups- , optparse-applicative+ , optparse-applicative >= 0.13.0.0 , text , hexpat , bytestring@@ -228,6 +263,7 @@ Demo.WriteEnsemble Demo.MinDisk Demo.Delaunay+ Demo.ExpectedPairwiseDistance Demo.GPXParser @@ -273,21 +309,32 @@ default-language: Haskell2010 hs-source-dirs: test main-is: Spec.hs+ ghc-options: -O2 -fno-warn-unticked-promoted-constructors other-modules: Data.RangeSpec+ Data.EdgeOracleSpec+ Data.PlanarGraphSpec Data.Geometry.Ipe.ReaderSpec Data.Geometry.PolygonSpec Data.Geometry.PointSpec Data.Geometry.Polygon.Convex.ConvexSpec+ Data.Geometry.KDTreeSpec+ Data.Geometry.IntervalSpec+ Data.Geometry.BoxSpec + Algorithms.Geometry.SmallestEnclosingDisk.RISpec Algorithms.Geometry.DelaunayTriangulation.DTSpec+ Algorithms.Geometry.WellSeparatedPairDecomposition.WSPDSpec+ Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannSpec + QuickCheck.Instances Util build-depends: base- , hspec >= 2.1+ , hspec >= 2.1+ , QuickCheck >= 2.5 , hgeometry , Frames , lens@@ -312,6 +359,7 @@ , PatternSynonyms , ViewPatterns , LambdaCase+ , TupleSections , StandaloneDeriving@@ -329,7 +377,7 @@ test-suite bapc_examples type: exitcode-stdio-1.0- ghc-options: -O2+ ghc-options: -O2 -fno-warn-unticked-promoted-constructors main-is: bapc_examples.hs hs-source-dirs: examples build-depends: base@@ -354,3 +402,55 @@ , PolyKinds , PatternSynonyms , ViewPatterns++benchmark benchmarks++ hs-source-dirs: benchmark test++ main-is: Benchmarks.hs+ type: exitcode-stdio-1.0++ other-modules:++ build-depends:+ base+ , criterion >= 1.1.4.0 && < 1.2+ , semigroups+ , deepseq+ , deepseq-generics+ , hgeometry+ , Frames+ , lens+ , QuickCheck++ ghc-options: -Wall -O2 -rtsopts -fno-warn-unticked-promoted-constructors++ default-language: Haskell2010++ default-extensions: TypeFamilies+ , GADTs+ , KindSignatures+ , DataKinds+ , TypeOperators+ , ConstraintKinds+ , PolyKinds+ , RankNTypes++ , PatternSynonyms+ , ViewPatterns+ , LambdaCase+ , TupleSections+++ , StandaloneDeriving+ , GeneralizedNewtypeDeriving+ , DeriveFunctor+ , DeriveFoldable+ , DeriveTraversable++ , AutoDeriveTypeable++ , FlexibleInstances+ , FlexibleContexts+ , MultiParamTypeClasses+ , OverloadedStrings
src/Algorithms/Geometry/ConvexHull/DivideAndConqueror.hs view
@@ -1,30 +1,26 @@ module Algorithms.Geometry.ConvexHull.DivideAndConqueror( convexHull- , module Types ) where -import Data.Semigroup.Foldable-import Data.Semigroup-import Algorithms.Geometry.ConvexHull.Types as Types-import Control.Lens((^.))+import Control.Lens ((^.)) import Data.BinaryTree import Data.Ext-import Data.Function(on)+import Data.Function (on) import Data.Geometry.Point import Data.Geometry.Polygon-import qualified Data.Geometry.Polygon.Convex as Convex+import Data.Geometry.Polygon.Convex import qualified Data.List.NonEmpty as NonEmpty+import Data.Semigroup+import Data.Semigroup.Foldable --- | O(n log n) time ConvexHull using divide and conqueror.+-- | \(O(n \log n)\) time ConvexHull using divide and conqueror. convexHull :: (Ord r, Num r)- => NonEmpty.NonEmpty (Point 2 r :+ p) -> ConvexHull p r+ => NonEmpty.NonEmpty (Point 2 r :+ p) -> ConvexPolygon p r convexHull = unMerge- . foldMap1 (Merge . ConvexHull . fromPoints . (:[]) . _unElem)+ . foldMap1 (Merge . ConvexPolygon . fromPoints . (:[]) . _unElem) . asBalancedBinLeafTree . NonEmpty.sortBy (compare `on` (^.core)) -newtype Merge r p = Merge { unMerge :: ConvexHull p r }+newtype Merge r p = Merge { unMerge :: ConvexPolygon p r } instance (Num r, Ord r) => Semigroup (Merge r p) where- (Merge lp) <> (Merge rp) = Merge . ConvexHull $ ch- where- (ch,_,_) = Convex.merge (lp^.extractHull) (rp^.extractHull)+ (Merge lp) <> (Merge rp) = let (ch,_,_) = merge lp rp in Merge ch
src/Algorithms/Geometry/ConvexHull/GrahamScan.hs view
@@ -1,28 +1,27 @@ module Algorithms.Geometry.ConvexHull.GrahamScan( convexHull , upperHull , lowerHull- , module Types ) where -import Algorithms.Geometry.ConvexHull.Types as Types-import Control.Lens((^.))+import Control.Lens ((^.)) import Data.Ext import Data.Geometry.Point import Data.Geometry.Polygon+import Data.Geometry.Polygon.Convex (ConvexPolygon(..)) import qualified Data.List.NonEmpty as NonEmpty+import Data.List.NonEmpty (NonEmpty(..)) import Data.Monoid-import Data.List.NonEmpty(NonEmpty(..)) --- | O(n log n) time ConvexHull using Graham-Scan. The resulting polygon is+-- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is -- given in clockwise order. convexHull :: (Ord r, Num r)- => NonEmpty (Point 2 r :+ p) -> ConvexHull p r-convexHull (p :| []) = ConvexHull . fromPoints $ [p]+ => NonEmpty (Point 2 r :+ p) -> ConvexPolygon p r+convexHull (p :| []) = ConvexPolygon . fromPoints $ [p] convexHull ps = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps uh = NonEmpty.tail . hull' $ ps' lh = NonEmpty.tail . hull' $ reverse ps'- in ConvexHull . fromPoints . reverse $ lh ++ uh+ in ConvexPolygon . fromPoints . reverse $ lh ++ uh upperHull :: (Ord r, Num r) => NonEmpty (Point 2 r :+ p) -> NonEmpty (Point 2 r :+ p) upperHull = hull id@@ -37,7 +36,7 @@ hull :: (Ord r, Num r) => ([Point 2 r :+ p] -> [Point 2 r :+ p]) -> NonEmpty (Point 2 r :+ p) -> NonEmpty (Point 2 r :+ p)-hull f h@(_ :| []) = h+hull _ h@(_ :| []) = h hull f pts = hull' . f . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts @@ -53,11 +52,11 @@ hull'' h [] = h hull'' h (p:ps) = hull'' (cleanMiddle (p:h)) ps - cleanMiddle [b,a] = [b,a]- cleanMiddle h@(c:b:a:rest)- | rightTurn (a^.core) (b^.core) (c^.core) = h- | otherwise = cleanMiddle (c:a:rest)-+ cleanMiddle h@[_,_] = h+ cleanMiddle h@(z:y:x:rest)+ | rightTurn (x^.core) (y^.core) (z^.core) = h+ | otherwise = cleanMiddle (z:x:rest)+ cleanMiddle _ = error "cleanMiddle: too few points" rightTurn :: (Ord r, Num r) => Point 2 r -> Point 2 r -> Point 2 r -> Bool rightTurn a b c = ccw a b c == CW
− src/Algorithms/Geometry/ConvexHull/Types.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Algorithms.Geometry.ConvexHull.Types where--import Control.Lens-import Data.Ext-import Data.Geometry.Point-import Data.Geometry.Polygon------ | Two dimensional convex hulls-newtype ConvexHull p r = ConvexHull { _extractHull :: (SimplePolygon p r) }- deriving (Show,Eq)-makeLenses ''ConvexHull
src/Algorithms/Geometry/DelaunayTriangulation/DivideAndConqueror.hs view
@@ -3,7 +3,6 @@ import Algorithms.Geometry.ConvexHull.GrahamScan as GS import Algorithms.Geometry.DelaunayTriangulation.Types-import Control.Applicative import Control.Lens import Control.Monad.Reader import Control.Monad.State@@ -16,10 +15,9 @@ import Data.Function (on) import Data.Geometry import Data.Geometry.Ball (disk, insideBall)-import Data.Geometry.Interval import Data.Geometry.Polygon import qualified Data.Geometry.Polygon.Convex as Convex-import Data.Geometry.Polygon.Convex (ConvexPolygon)+import Data.Geometry.Polygon.Convex (ConvexPolygon(..), simplePolygon) import qualified Data.IntMap.Strict as IM import qualified Data.List as L import qualified Data.List.NonEmpty as NonEmpty@@ -46,8 +44,8 @@ -- | Computes the delaunay triangulation of a set of points. ----- Running time: $O(n \log n)$--- (note: We use an IntMap in the implementation. So maybe actually $O(n \log^2 n)$)+-- Running time: \(O(n \log n)\)+-- (note: We use an IntMap in the implementation. So maybe actually \(O(n \log^2 n)\)) -- -- pre: the input is a *SET*, i.e. contains no duplicate points. (If the -- input does contain duplicate points, the implementation throws them away)@@ -74,11 +72,11 @@ delaunayTriangulation' pts mapping'@(vtxMap,_) | size' pts == 1 = let (Leaf p) = pts i = lookup' vtxMap (p^.core)- in (IM.singleton i CL.empty, fromPoints [withID p i])- | size' pts <= 3 = let pts' = NonEmpty.fromList- . map (\p -> withID p (lookup' vtxMap (p^.core)))- . F.toList $ pts- (ConvexHull ch) = GS.convexHull pts'+ in (IM.singleton i CL.empty, ConvexPolygon $ fromPoints [withID p i])+ | size' pts <= 3 = let pts' = NonEmpty.fromList+ . map (\p -> withID p (lookup' vtxMap (p^.core)))+ . F.toList $ pts+ ch = GS.convexHull pts' in (fromHull mapping' ch, ch) | otherwise = let (Node lt _ rt) = pts (ld,lch) = delaunayTriangulation' lt mapping'@@ -91,16 +89,17 @@ -- | Mapping that says for each vtx in the convex hull what the first entry in -- the adj. list should be. The input polygon is given in Clockwise order-firsts :: SimplePolygon (p :+ VertexID) r -> IM.IntMap VertexID+firsts :: ConvexPolygon (p :+ VertexID) r -> IM.IntMap VertexID firsts = IM.fromList . map (\s -> (s^.end.extra.extra, s^.start.extra.extra))- . F.toList . outerBoundaryEdges+ . F.toList . outerBoundaryEdges . _simplePolygon -- | Given a polygon; construct the adjacency list representation -- pre: at least two elements-fromHull :: Ord r => Mapping p r -> SimplePolygon (p :+ q) r -> Adj+fromHull :: Ord r => Mapping p r -> ConvexPolygon (p :+ q) r -> Adj fromHull (vtxMap,_) p = let vs@(u:v:vs') = map (lookup' vtxMap . (^.core))- . F.toList . CS.rightElements $ p^.outerBoundary+ . F.toList . CS.rightElements+ $ p^.simplePolygon.outerBoundary es = zipWith3 f vs (tail vs ++ [u]) (vs' ++ [u,v]) f prv c nxt = (c,CL.fromList . L.nub $ [prv, nxt]) in IM.fromList es@@ -108,7 +107,7 @@ -- | Merge the two delaunay triangulations. ----- running time: $O(n)$ (although we cheat a bit by using a IntMap)+-- running time: \(O(n)\) (although we cheat a bit by using a IntMap) merge :: (Ord r, Fractional r) => Adj -> Adj
src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs view
@@ -1,22 +1,21 @@ module Algorithms.Geometry.DelaunayTriangulation.Naive where -import Algorithms.Geometry.DelaunayTriangulation.Types--import Control.Applicative-import Control.Monad(forM_)-import Control.Lens-import Data.Function(on)+import Algorithms.Geometry.DelaunayTriangulation.Types+import Control.Lens+import Control.Monad (forM_)+import qualified Data.CircularList as C+import Data.Ext import qualified Data.Foldable as F-import qualified Data.Vector as V-import qualified Data.Vector.Mutable as MV+import Data.Function (on)+import Data.Geometry+import Data.Geometry.Ball (disk, insideBall)+import qualified Data.List as L import qualified Data.List.NonEmpty as NonEmpty import qualified Data.Map as M-import qualified Data.CircularList as C-import Data.Ext-import Data.Geometry-import Data.Geometry.Ball(disk, insideBall)-import qualified Data.List as L+import qualified Data.Vector as V+import qualified Data.Vector.Mutable as MV +-------------------------------------------------------------------------------- -- | Naive O(n^4) time implementation of the delaunay triangulation. Simply -- tries each triple (p,q,r) and tests if it is delaunay, i.e. if there are no@@ -24,7 +23,7 @@ -- -- pre: the input is a *SET*, i.e. contains no duplicate points. (If the -- input does contain duplicate points, the implementation throws them away)-delaunayTriangulation :: (Ord r, Fractional r, Show r, Show p)+delaunayTriangulation :: (Ord r, Fractional r) => NonEmpty.NonEmpty (Point 2 r :+ p) -> Triangulation p r delaunayTriangulation pts = Triangulation ptIds ptsV adjV where
src/Algorithms/Geometry/DelaunayTriangulation/Types.hs view
@@ -7,16 +7,13 @@ import Data.Ext import Data.Geometry import Data.Geometry.Ipe+import Data.Geometry.PlanarSubdivision import qualified Data.IntMap.Strict as IM import qualified Data.Map as M import qualified Data.Map.Strict as SM-import Data.Monoid (mempty)-import qualified Data.Permutation as P import Data.PlaneGraph import qualified Data.Vector as V -import Debug.Trace- -------------------------------------------------------------------------------- -- We store all adjacency lists in clockwise order@@ -80,30 +77,50 @@ -- - x: the data value we are interested in computing type ST' a = ST (SM.Map (VertexID,VertexID) ArcID) ArcID a ++-- | convert the triangulation into a planarsubdivision+--+-- running time: \(O(n\log n)\).+toPlanarSubdivision :: proxy s -> Triangulation p r -> PlanarSubdivision s p () () r+toPlanarSubdivision px tr = PlanarSubdivision g+ where+ g = toPlaneGraph px tr & vertexData.traverse %~ (\(v :+ e) -> VertexData v e)+ & dartData.traverse._2 %~ EdgeData Visible+ & faceData.traverse %~ FaceData []++-- | convert the triangulation into a plane graph+--+-- running time: \(O(n\log n)\). toPlaneGraph :: forall proxy s p r. proxy s -> Triangulation p r -> PlaneGraph s Primal_ p () () r-toPlaneGraph _ tr = (planarGraph . P.toCycleRep n $ perm)&vertexData .~ tr^.positions+toPlaneGraph _ tr = g & vertexData .~ tr^.positions where- neighs = C.rightElements <$> tr^.neighbours- n = sum . fmap length $ neighs+ g = fromAdjacencyLists . V.toList . V.imap f $ tr^.neighbours+ f i adj = (VertexId i, VertexId <$> adj) - vtxIDs = [0..]- perm = trd' . foldr toOrbit (ST mempty 0 mempty) $ zip vtxIDs (V.toList neighs) - -- | Given a vertex with its adjacent vertices (u,vs) (in CCW order) convert this- -- vertex with its adjacent vertices into an Orbit- toOrbit :: (VertexID,[VertexID]) -> ST' [[Dart s]]- -> ST' [[Dart s]]- toOrbit (u,vs) (ST m a dss) =- let (ST m' a' ds') = foldr (toDart . (u,)) (ST m a mempty) vs- in ST m' a' (ds':dss)+ -- (planarGraph' . P.toCycleRep n $ perm)&vertexData .~ tr^.positions+ -- where+ -- neighs = C.rightElements <$> tr^.neighbours+ -- n = sum . fmap length $ neighs + -- vtxIDs = [0..]+ -- perm = trd' . foldr toOrbit (ST mempty 0 mempty) $ zip vtxIDs (V.toList neighs) - -- | Given an edge (u,v) and a triplet (m,a,ds) we construct a new dart- -- representing this edge.- toDart :: (VertexID,VertexID) -> ST' [Dart s] -> ST' [Dart s]- toDart (u,v) (ST m a ds) = let dir = if u < v then Positive else Negative- t' = (min u v, max u v)- in case M.lookup t' m of- Just a' -> ST m a (Dart (Arc a') dir : ds)- Nothing -> ST (SM.insert t' a m) (a+1) (Dart (Arc a) dir : ds)+ -- -- | Given a vertex with its adjacent vertices (u,vs) (in CCW order) convert this+ -- -- vertex with its adjacent vertices into an Orbit+ -- toOrbit :: (VertexID,[VertexID]) -> ST' [[Dart s]]+ -- -> ST' [[Dart s]]+ -- toOrbit (u,vs) (ST m a dss) =+ -- let (ST m' a' ds') = foldr (toDart . (u,)) (ST m a mempty) vs+ -- in ST m' a' (ds':dss)+++ -- -- | Given an edge (u,v) and a triplet (m,a,ds) we construct a new dart+ -- -- representing this edge.+ -- toDart :: (VertexID,VertexID) -> ST' [Dart s] -> ST' [Dart s]+ -- toDart (u,v) (ST m a ds) = let dir = if u < v then Positive else Negative+ -- t' = (min u v, max u v)+ -- in case M.lookup t' m of+ -- Just a' -> ST m a (Dart (Arc a') dir : ds)+ -- Nothing -> ST (SM.insert t' a m) (a+1) (Dart (Arc a) dir : ds)
+ src/Algorithms/Geometry/Diameter.hs view
@@ -0,0 +1,35 @@+module Algorithms.Geometry.Diameter where++import Control.Lens+import Data.Ext+import Data.Geometry+import Data.List(maximumBy)++--------------------------------------------------------------------------------+++diameterNaive :: (Ord r, Floating r, Arity d) => [Point d r :+ p] -> r+diameterNaive = maybe 0 (\(p,q) -> euclideanDist (p^.core) (q^.core))+ . diametralPairNaive++-- | Computes the Euclidean diametral pair by naively trying all pairs.+--+-- running time: \(O(n^2)\)+diametralPairNaive :: (Ord r, Num r, Arity d)+ => [Point d r :+ p] -> Maybe (Point d r :+ p, Point d r :+ p)+diametralPairNaive = diametralPairWithNaive squaredEuclideanDist+++-- | Given a distance function and a list of points pts, computes the diametral+-- pair by naively trying all pairs.+--+-- running time: \(O(n^2)\)+diametralPairWithNaive :: Ord r+ => (Point d r -> Point d r -> r)+ -> [Point d r :+ p]+ -> Maybe (Point d r :+ p, Point d r :+ p)+diametralPairWithNaive f pts@(_:_:_) = Just $ maximumBy cmp [ (p,q) | p <- pts, q <- pts ]+ where+ f' (p,q) = f (p^.core) (q^.core)+ tp `cmp` tq = f' tp `compare` f' tq+diametralPairWithNaive _ _ = Nothing
src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs view
@@ -22,7 +22,7 @@ -- pre: the input is a *SET*, i.e. contains no duplicate points. (If the input -- does contain duplicate points, the implementation throws them away) ----- running time: $O(n \log n)$+-- running time: \(O(n \log n)\) euclideanMST :: (Ord r, Fractional r) => NonEmpty.NonEmpty (Point 2 r :+ p) -> Tree (Point 2 r :+ p) euclideanMST pts = (\v -> g^.vDataOf v) <$> t
+ src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs view
@@ -0,0 +1,213 @@+module Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann where++import Algorithms.Geometry.LineSegmentIntersection.Types+import Control.Lens hiding (contains)+import qualified Data.BalBST as SS -- status struct+import Data.Ext+import Data.Function (on)+import Data.Geometry.Interval+import Data.Geometry.Line+import Data.Geometry.LineSegment+import Data.Geometry.Point+import Data.Geometry.Properties+import qualified Data.List as L+import Data.List.NonEmpty (NonEmpty(..))+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.Map as M+import Data.Maybe+import Data.Ord (Down(..), comparing)+import Data.Semigroup+import qualified Data.Set as EQ -- event queue+import Data.Vinyl+import Frames.CoRec++import Debug.Trace++--------------------------------------------------------------------------------++-- | Compute all intersections+--+-- \(O((n+k)\log n)\), where \(k\) is the number of intersections.+intersections :: (Ord r, Fractional r)+ => [LineSegment 2 p r] -> Intersections p r+intersections ss = merge $ sweep pts (SS.empty $ ordAtNav undefined)+ where+ pts = EQ.fromAscList . groupStarts . L.sort . concatMap f $ ss+ f s = let [p,q] = L.sortBy ordPoints [s^.start.core,s^.end.core]+ in [Event p (Start $ s :| []), Event q (End s)]++-- | Group the segments with the intersection points+merge :: Ord r => [IntersectionPoint p r] -> Intersections p r+merge = foldr (\(IntersectionPoint p a) -> M.insertWith (<>) p a) M.empty++-- | Group the startpoints such that segments with the same start point+-- correspond to one event.+groupStarts :: Eq r => [Event p r] -> [Event p r]+groupStarts [] = []+groupStarts (Event p (Start s) : es) = Event p (Start ss) : groupStarts rest+ where+ (ss',rest) = L.span sameStart es++ -- sort the segs on lower endpoint+ ss = let (x:|xs) = s in x :| (xs ++ concatMap startSegs ss')++ sameStart (Event q (Start _)) = p == q+ sameStart _ = False+groupStarts (e : es) = e : groupStarts es+++--------------------------------------------------------------------------------+-- * Data type for Events++-- | Type of segment+data EventType s = Start !(NonEmpty s)| Intersection | End !s deriving (Show)++instance Eq (EventType s) where+ a == b = a `compare` b == EQ++instance Ord (EventType s) where+ (Start _) `compare` (Start _) = EQ+ (Start _) `compare` _ = LT+ Intersection `compare` (Start _) = GT+ Intersection `compare` Intersection = EQ+ Intersection `compare` (End _) = LT+ (End _) `compare` (End _) = EQ+ (End _) `compare` _ = GT++-- | The actual event consists of a point and its type+data Event p r = Event { eventPoint :: !(Point 2 r)+ , eventType :: !(EventType (LineSegment 2 p r))+ } deriving (Show,Eq)++instance Ord r => Ord (Event p r) where+ -- decreasing on the y-coord, then increasing on x-coord, and increasing on event-type+ (Event p s) `compare` (Event q t) = case ordPoints p q of+ EQ -> s `compare` t+ x -> x++-- | An ordering that is decreasing on y, increasing on x+ordPoints :: Ord r => Point 2 r -> Point 2 r -> Ordering+ordPoints a b = let f p = (Down $ p^.yCoord, p^.xCoord) in comparing f a b+++-- | Get the segments that start at the given event point+startSegs :: Event p r -> [LineSegment 2 p r]+startSegs e = case eventType e of+ Start ss -> NonEmpty.toList ss+ _ -> []++--------------------------------------------------------------------------------++-- | The navigator that we use that orders the segments that intersect at a+-- horizontal line (from left to right)+ordAtNav :: (Ord r, Fractional r) => r -> SS.TreeNavigator r (LineSegment 2 p r)+ordAtNav y = SS.Nav (\s x -> h s <= x) (min `on` h)+ where+ h s = match (s `intersect` horizontalLine y) $+ (H $ \NoIntersection -> error "ordAtNav: No intersection")+ :& (H $ \p -> p^.xCoord)+ :& (H $ \_ -> rightEndpoint s) -- the intersection is s itself+ :& RNil+++--------------------------------------------------------------------------------+-- * The Main Sweep++type EventQueue p r = EQ.Set (Event p r)++type StatusStructure p r = SS.BalBST r (LineSegment 2 p r)++-- | Run the sweep handling all events+sweep :: (Ord r, Fractional r)+ => EventQueue p r -> StatusStructure p r -> [IntersectionPoint p r]+sweep eq ss = case EQ.minView eq of+ Nothing -> []+ Just (e,eq') -> handle e eq' ss++-- | Handle an event point+handle :: (Ord r, Fractional r)+ => Event p r -> EventQueue p r -> StatusStructure p r+ -> [IntersectionPoint p r]+handle e@(eventPoint -> p) eq ss = toReport <> sweep eq' ss'+ where+ starts = startSegs e+ (before,contains',after) = extractContains p ss+ (ends,contains) = L.partition (endsAt p) contains'+++ toReport = case starts ++ contains' of+ (_:_:_) -> [IntersectionPoint p $ associated (starts <> ends) contains]+ _ -> []++ -- new status structure+ ss' = before `SS.join` newSegs `SS.join` after++ newSegs = toStatusStruct p $ starts ++ contains++ -- the new eeventqueue+ eq' = foldr EQ.insert eq es++ -- the new events:+ es | SS.null newSegs = maybeToList $ app (findNewEvent p) sl sr+ | otherwise = let s' = fst <$> SS.minView newSegs+ s'' = fst <$> SS.maxView newSegs+ in catMaybes [ app (findNewEvent p) sl s'+ , app (findNewEvent p) s'' sr+ ]+ sl = fst <$> SS.maxView before+ sr = fst <$> SS.minView after++ app f x y = do { x' <- x ; y' <- y ; f x' y'}++-- | split the status structure, extracting the segments that contain p.+-- the result is (before,contains,after)+extractContains :: (Fractional r, Ord r)+ => Point 2 r -> StatusStructure p r+ -> (StatusStructure p r, [LineSegment 2 p r], StatusStructure p r)+extractContains p ss = (before, mid1 ++ mid2, after)+ where+ n = ordAtNav (p^.yCoord)+ SS.Split before (mid1,mid2) after = SS.splitExtract pred' sel $ ss { SS.nav = n}++ pred' s = not $ SS.goLeft n s (p^.xCoord)+ sel s = p `onSegment` s+++-- | Given a point and the linesegements that contain it. Create a piece of+-- status structure for it.+toStatusStruct :: (Fractional r, Ord r)+ => Point 2 r -> [LineSegment 2 p r] -> StatusStructure p r+toStatusStruct p xs = ss { SS.nav = ordAtNav $ p^.yCoord } `SS.join` hors+ where+ (hors',rest) = L.partition isHorizontal xs+ ss = SS.fromList (ordAtNav $ maxY xs) rest+ hors = SS.fromList (SS.ordNavBy rightEndpoint) hors'++ isHorizontal s = s^.start.core.yCoord == s^.end.core.yCoord++ -- find the y coord of the first interesting thing below the sweep at y+ maxY = maximum . filter (< p^.yCoord)+ . concatMap (\s -> [s^.start.core.yCoord,s^.end.core.yCoord])++-- | Get the right endpoint of a segment+rightEndpoint :: Ord r => LineSegment 2 p r -> r+rightEndpoint s = (s^.start.core.xCoord) `max` (s^.end.core.xCoord)++-- | Test if a segment ends at p+endsAt :: Ord r => Point 2 r -> LineSegment 2 p r -> Bool+endsAt p (LineSegment' a b) = all (\q -> ordPoints (q^.core) p /= GT) [a,b]++--------------------------------------------------------------------------------+-- * Finding New events++-- | Find all events+findNewEvent :: (Ord r, Fractional r)+ => Point 2 r -> LineSegment 2 p r -> LineSegment 2 p r+ -> Maybe (Event p r)+findNewEvent p l r = match (l `intersect` r) $+ (H $ \NoIntersection -> Nothing)+ :& (H $ \q -> if ordPoints q p == GT then Just (Event q Intersection)+ else Nothing)+ :& (H $ \_ -> Nothing) -- full segment intersectsions are handled+ -- at insertion time+ :& RNil
+ src/Algorithms/Geometry/LineSegmentIntersection/Naive.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE ScopedTypeVariables #-}+module Algorithms.Geometry.LineSegmentIntersection.Naive where++import Algorithms.Geometry.LineSegmentIntersection.Types+import Control.Lens+import Data.Ext+import Data.Geometry.Interval+import Data.Geometry.LineSegment+import Data.Geometry.Point+import Data.Geometry.Properties+import qualified Data.Map as M+import Data.Semigroup+import Data.Vinyl+import Frames.CoRec+++-- | Compute all intersections (naively)+--+-- \(O(n^2)\)+intersections :: forall r p. (Ord r, Fractional r)+ => [LineSegment 2 p r] -> Intersections p r+intersections = foldr collect mempty . pairs++-- | Test if the two segments intersect, and if so add the segment to the map+collect :: (Ord r, Fractional r)+ => (LineSegment 2 p r, LineSegment 2 p r)+ -> Intersections p r -> Intersections p r+collect (s,s') m = match (s `intersect` s') $+ (H $ \NoIntersection -> m)+ :& (H $ \p -> handlePoint s s' p $ m)+ :& (H $ \s'' -> foldr (handlePoint s s') m [s''^.start.core, s''^.end.core])+ :& RNil++-- | Add s and s' to the map with key p+handlePoint :: Ord r+ => LineSegment 2 p r -> LineSegment 2 p r -> Point 2 r+ -> Intersections p r -> Intersections p r+handlePoint s s' p = addTo p s . addTo p s'++-- | figure out which map to add the point to+addTo :: Ord r => Point 2 r -> LineSegment 2 p r+ -> Intersections p r -> Intersections p r+addTo p s+ | p `isEndPointOf` s = M.insertWith (<>) p (associated [s] [])+ | otherwise = M.insertWith (<>) p (associated [] [s])++isEndPointOf :: Eq r => Point 2 r -> LineSegment 2 p r -> Bool+p `isEndPointOf` s = p == s^.start.core || p == s^.end.core+++pairs :: [a] -> [(a, a)]+pairs [] = []+pairs (x:xs) = map (x,) xs ++ pairs xs
+ src/Algorithms/Geometry/LineSegmentIntersection/Types.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE TemplateHaskell #-}+module Algorithms.Geometry.LineSegmentIntersection.Types where++import Control.Lens+import Data.Ext+import Data.Geometry.Interval+import Data.Geometry.LineSegment+import Data.Geometry.Point+import Data.Geometry.Properties+import Data.List.NonEmpty (NonEmpty(..))+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.List as L+import qualified Data.Map as Map+import Data.Semigroup+++-- get the endpoints of a line segment+endPoints' :: (HasEnd s, HasStart s) => s -> (StartCore s, EndCore s)+endPoints' s = (s^.start.core,s^.end.core)+++type Set' l =+ Map.Map (Point (Dimension l) (NumType l), Point (Dimension l) (NumType l)) (NonEmpty l)++data Associated p r = Associated { _endPointOf :: Set' (LineSegment 2 p r)+ , _interiorTo :: Set' (LineSegment 2 p r)+ } deriving (Show)++instance (Eq p, Eq r) => Eq (Associated p r) where+ (Associated es is) == (Associated es' is') = f es es' && f is is'+ where+ f xs ys = and $ zipWith (\(p,pa) (q,qa) -> p == q && pa `sameElements` qa)+ (Map.toAscList xs) (Map.toAscList ys)++ g = L.nub . NonEmpty.toList+ sameElements (g -> xs) (g -> ys) = L.null $ (xs L.\\ ys) ++ (ys L.\\ xs)+++associated :: Ord r+ => [LineSegment 2 p r] -> [LineSegment 2 p r] -> Associated p r+associated es is = Associated (f es) (f is)+ where+ f = foldr (\s -> Map.insertWith (<>) (endPoints' s) (s :| [])) mempty+++endPointOf :: Associated p r -> [LineSegment 2 p r]+endPointOf = concatMap NonEmpty.toList . Map.elems . _endPointOf++interiorTo :: Associated p r -> [LineSegment 2 p r]+interiorTo = concatMap NonEmpty.toList . Map.elems . _interiorTo+++instance Ord r => Semigroup (Associated p r) where+ (Associated es is) <> (Associated es' is') = Associated (es <> es') (is <> is')++instance Ord r => Monoid (Associated p r) where+ mempty = Associated mempty mempty+ mappend = (<>)++type Intersections p r = Map.Map (Point 2 r) (Associated p r)++data IntersectionPoint p r =+ IntersectionPoint { _intersectionPoint :: !(Point 2 r)+ , _associatedSegs :: !(Associated p r)+ } deriving (Show,Eq)+makeLenses ''IntersectionPoint++++-- newtype E a b = E (a -> b)
src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs view
@@ -3,19 +3,15 @@ module Algorithms.Geometry.SmallestEnclosingBall.RandomizedIncrementalConstruction where import Algorithms.Geometry.SmallestEnclosingBall.Types- import Control.Lens import Data.Ext-import qualified Data.Foldable as F import Data.Geometry import Data.Geometry.Ball import qualified Data.List as L import Data.List.NonEmpty-import Data.Maybe(fromMaybe)-import Data.Monoid-+import Data.Maybe (fromMaybe) import System.Random-import System.Random.Shuffle(shuffle)+import System.Random.Shuffle (shuffle) @@ -29,7 +25,7 @@ smallestEnclosingDisk g pts@(_:_:_) = let (p:q:pts') = shuffle g pts in smallestEnclosingDisk' p q pts'-smallestEnclosingDisk g _ = error "smallestEnclosingDisk: Too few points"+smallestEnclosingDisk _ _ = error "smallestEnclosingDisk: Too few points" -- | Smallest enclosing disk. smallestEnclosingDisk' :: (Ord r, Fractional r)@@ -50,10 +46,10 @@ -> DiskResult p r smallestEnclosingDiskWithPoint p (a :| pts) = foldr addPoint (initial p a) $ L.tails pts where- addPoint [] br = br- addPoint (q:pts) br@(DiskResult d _)+ addPoint [] br = br+ addPoint (q:pts') br@(DiskResult d _) | (q^.core) `inClosedBall` d = br- | otherwise = smallestEnclosingDiskWithPoints p q (a:pts)+ | otherwise = smallestEnclosingDiskWithPoints p q (a:pts')
+ src/Algorithms/Geometry/WellSeparatedPairDecomposition/Types.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE TemplateHaskell #-}+module Algorithms.Geometry.WellSeparatedPairDecomposition.Types where++import Control.Lens hiding (Level)+import Data.BinaryTree+import Data.Ext+import Data.Geometry.Box+import Data.Geometry.Point+import Data.Geometry.Vector+import Data.Semigroup+import qualified Data.Seq2 as S2+import qualified Data.Sequence as S+import qualified Data.Traversable as Tr++--------------------------------------------------------------------------------++type SplitTree d p r a = BinLeafTree (NodeData d r a) (Point d r :+ p)++type PointSet d p r a = SplitTree d p r a++type WSP d p r a = (PointSet d p r a, PointSet d p r a)++-- | Data that we store in the split tree+data NodeData d r a = NodeData { _splitDim :: !Int+ , _bBox :: !(Box d () r)+ , _nodeData :: !a+ }+deriving instance (Arity d, Show r, Show a) => Show (NodeData d r a)+deriving instance (Arity d, Eq r, Eq a) => Eq (NodeData d r a)++makeLenses ''NodeData++instance Semigroup v => Measured v (NodeData d r v) where+ measure = _nodeData++instance Functor (NodeData d r) where+ fmap = Tr.fmapDefault++instance Foldable (NodeData d r) where+ foldMap = Tr.foldMapDefault++instance Traversable (NodeData d r) where+ traverse f (NodeData d b x) = NodeData d b <$> f x++--------------------------------------------------------------------------------+-- * Implementation types++type PointSeq d p r = S2.ViewL1 (Point d r :+ p)+++data Level = Level { _unLevel :: Int+ , _widestDim :: Maybe Int+ } deriving (Show,Eq,Ord)+makeLenses ''Level++nextLevel :: Level -> Level+nextLevel (Level i _) = Level (i+1) Nothing++++type Idx = Int+++data ShortSide = L | R deriving (Show,Eq)++data FindAndCompact d r p = FAC { _leftPart :: !(S.Seq (Point d r :+ p))+ , _rightPart :: !(S.Seq (Point d r :+ p))+ , _shortSide :: !ShortSide+ }+deriving instance (Arity d, Show r, Show p) => Show (FindAndCompact d r p)+deriving instance (Arity d, Eq r, Eq p) => Eq (FindAndCompact d r p)++makeLenses ''FindAndCompact
+ src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs view
@@ -0,0 +1,463 @@+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE LambdaCase #-}+module Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD where++import Algorithms.Geometry.WellSeparatedPairDecomposition.Types+import Control.Lens hiding (Level, levels)+import Control.Monad.Reader+import Control.Monad.ST (ST,runST)+import Data.BinaryTree+import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry.Box+import Data.Geometry.Transformation+import Data.Geometry.Properties+import Data.Geometry.Point+import Data.Geometry.Vector+import qualified Data.Geometry.Vector as GV+import qualified Data.List as L+import qualified Data.List.NonEmpty as NonEmpty+import Data.Maybe+import Data.Ord (comparing)+import Data.Range+import qualified Data.Range as Range+import Data.Semigroup+import qualified Data.Seq2 as S2+import qualified Data.Sequence as S+import qualified Data.Vector as V+import qualified Data.Vector.Mutable as MV+import GHC.TypeLits+import qualified Data.IntMap.Strict as IntMap++import Debug.Trace++--------------------------------------------------------------------------------++-- | Construct a split tree+--+-- running time: \(O(n \log n)\)+fairSplitTree :: (Fractional r, Ord r, Arity d, Index' 0 d,+ KnownNat d+ , Show r, Show p++ )+ => NonEmpty.NonEmpty (Point d r :+ p) -> SplitTree d p r ()+fairSplitTree pts = foldUp node' Leaf $ fairSplitTree' n pts'+ where+ pts' = GV.imap sortOn . pure . g $ pts+ n = length $ pts'^.GV.element (C :: C 0)++ sortOn' i = NonEmpty.sortWith (^.core.unsafeCoord i)+ sortOn i = S2.viewL1FromNonEmpty . sortOn' (i + 1)+ -- sorts the points on the first coordinate, and then associates each point+ -- with an index,; its rank in terms of this first coordinate.+ g = NonEmpty.zipWith (\i (p :+ e) -> p :+ (i :+ e)) (NonEmpty.fromList [0..])+ . sortOn' 1++ -- node' :: b -> a -> b -> b+ -- node' :: SplitTree d p r () -> Int -> SplitTree d p r () -> SplitTree d p r ()+ node' l j r = Node l (NodeData j (bbOf l <> bbOf r) ()) r+++-- | Given a split tree, generate the Well separated pairs+--+-- running time: \(O(s^d n)\)+wellSeparatedPairs :: (Floating r, Ord r, AlwaysTrueWSPD d)+ => r -> SplitTree d p r a -> [WSP d p r a]+wellSeparatedPairs s = f+ where+ f (Leaf _) = []+ f (Node l _ r) = findPairs s l r ++ f l ++ f r++++-- -- | Given a split tree, generate the well separated pairs such that one set is+-- -- a singleton.+-- -- running time: \(O(s^d n\log n)\)+-- wellSeparatedPairSingletons :: (Fractional r, Ord r, AlwaysTrueWSPD d)+-- => r -> SplitTree d p r a -> [(Point d r :+ p, PointSet d p r (Sized a))]+-- wellSeparatedPairSingletons s t = concatMap split $ wellSeparatedPairs s t'+-- where+-- split (l,r) = undefined+-- -- | measure l <= measure r = map (,r) $ F.toList l+-- -- | otherwise = map (,l) $ F.toList r+-- t' = foldUpData (\l nd r -> )++-- t+++--------------------------------------------------------------------------------+-- * Building the split tree++-- | Given the points, sorted in every dimension, recursively build a split tree+--+-- The algorithm works in rounds. Each round takes O(n) time, and halves the+-- number of points. Thus, the total running time is O(n log n).+--+-- The algorithm essentially builds a path in the split tree; at every node on+-- the path that we construct, we split the point set into two sets (L,R)+-- according to the longest side of the bounding box.+--+-- The smaller set is "assigned" to the current node and set asside. We+-- continue to build the path with the larger set until the total number of+-- items remaining is less than n/2.+--+-- To start the next round, each node on the path needs to have the points+-- assigned to that node, sorted in each dimension (i.e. the Vector+-- (PointSeq))'s. Since we have the level assignment, we can compute these+-- lists by traversing each original input list (i.e. one for every dimension)+-- once, and partition the points based on their level assignment.+fairSplitTree' :: (Fractional r, Ord r, Arity d, Index' 0 d, KnownNat d+ , Show r, Show p+ )+ => Int -> GV.Vector d (PointSeq d (Idx :+ p) r)+ -> BinLeafTree Int (Point d r :+ p)+fairSplitTree' n pts+ | n <= 1 = let (p S2.:< _) = pts^.GV.element (C :: C 0) in Leaf (dropIdx p)+ | otherwise = foldr node' (V.last path) $ V.zip nodeLevels (V.init path)+ where+ -- note that points may also be assigned level 'Nothing'.+ (levels, nodeLevels'@(maxLvl NonEmpty.:| _)) = runST $ do+ lvls <- MV.replicate n Nothing+ ls <- runReaderT (assignLevels (n `div` 2) 0 pts (Level 0 Nothing) []) lvls+ lvls' <- V.unsafeFreeze lvls+ pure (lvls',ls)++ -- TODO: We also need to report the levels in the order in which they are+ -- assigned to nodes++ nodeLevels = V.fromList . L.reverse . NonEmpty.toList $ nodeLevels'++ -- levels = traceShow ("Levels",levels',maxLvl) levels'++ -- path = traceShow ("path", path',nodeLevels) path'+ distrPts = distributePoints (1 + maxLvl^.unLevel) levels pts++ path = recurse <$> distrPts -- (traceShow ("distributed pts",distrPts) distrPts)++ -- node' (lvl,lc) rc | traceShow ("node' ",lvl,lc,rc) False = undefined+ node' (lvl,lc) rc = case lvl^?widestDim._Just of+ Nothing -> error "Unknown widest dimension"+ Just j -> Node lc j rc+ recurse pts' = fairSplitTree' (length $ pts'^.GV.element (C :: C 0))+ (reIndexPoints pts')++-- | Assign the points to their the correct class. The 'Nothing' class is+-- considered the last class+distributePoints :: (Arity d , Show r, Show p)+ => Int -> V.Vector (Maybe Level)+ -> GV.Vector d (PointSeq d (Idx :+ p) r)+ -> V.Vector (GV.Vector d (PointSeq d (Idx :+ p) r))+distributePoints k levels = transpose . fmap (distributePoints' k levels)++transpose :: Arity d => GV.Vector d (V.Vector a) -> V.Vector (GV.Vector d a)+transpose = V.fromList . map GV.vectorFromListUnsafe . L.transpose+ . map V.toList . F.toList++-- | Assign the points to their the correct class. The 'Nothing' class is+-- considered the last class+distributePoints' :: Int -- ^ number of classes+ -> V.Vector (Maybe Level) -- ^ level assignment+ -> PointSeq d (Idx :+ p) r -- ^ input points+ -> V.Vector (PointSeq d (Idx :+ p) r)+distributePoints' k levels pts+ | otherwise+ = fmap fromSeqUnsafe $ V.create $ do+ v <- MV.replicate k mempty+ forM_ pts $ \p ->+ append v (level p) p+ pure v+ where+ level p = maybe (k-1) _unLevel $ levels V.! (p^.extra.core)+ append v i p = MV.read v i >>= MV.write v i . (S.|> p)++++-- | Given a sequence of points, whose index is increasing in the first+-- dimension, i.e. if idx p < idx q, then p[0] < q[0].+-- Reindex the points so that they again have an index+-- in the range [0,..,n'], where n' is the new number of points.+--+-- running time: O(n' * d) (more or less; we are actually using an intmap for+-- the lookups)+--+-- alternatively: I can unsafe freeze and thaw an existing vector to pass it+-- along to use as mapping. Except then I would have to force the evaluation+-- order, i.e. we cannot be in 'reIndexPoints' for two of the nodes at the same+-- time.+--+-- so, basically, run reIndex points in ST as well.+reIndexPoints :: (Arity d, Index' 0 d)+ => GV.Vector d (PointSeq d (Idx :+ p) r)+ -> GV.Vector d (PointSeq d (Idx :+ p) r)+reIndexPoints ptsV = fmap reIndex ptsV+ where+ pts = ptsV^.GV.element (C :: C 0)++ reIndex = fmap (\p -> p&extra.core %~ fromJust . flip IntMap.lookup mapping')+ mapping' = IntMap.fromAscList $ zip (map (^.extra.core) . F.toList $ pts) [0..]++-- | ST monad with access to the vector storign the level of the points.+type RST s = ReaderT (MV.MVector s (Maybe Level)) (ST s)++-- | Assigns the points to a level. Returns the list of levels used. The first+-- level in the list is the level assigned to the rest of the nodes. Their+-- level is actually still set to Nothing in the underlying array.+assignLevels :: (Fractional r, Ord r, Arity d, KnownNat d+ , Show r, Show p+ )+ => Int -- ^ Number of items we need to collect+ -> Int -- ^ Number of items we collected so far+ -> GV.Vector d (PointSeq d (Idx :+ p) r)+ -> Level -- ^ next level to use+ -> [Level] -- ^ Levels used so far+ -> RST s (NonEmpty.NonEmpty Level)+assignLevels h m pts l prevLvls+ | m >= h = pure (l NonEmpty.:| prevLvls)+ | otherwise = do+ pts' <- compactEnds pts+ -- find the widest dimension j = i+1+ let j = widestDimension pts'+ i = j - 1 -- traceShow ("i",j,pts') j - 1+ extJ = (extends pts')^.ix' i+ mid = midPoint extJ++ -- find the set of points that we have to delete, by looking at the sorted+ -- list L_j. As a side effect, this will remove previously assigned points+ -- from L_j.+ (lvlJPts,deletePts) <- findAndCompact j (pts'^.ix' i) mid+ let pts'' = pts'&ix' i .~ lvlJPts+ l' = l&widestDim .~ Just j+ forM_ deletePts $ \p ->+ assignLevel p l'+ assignLevels h (m + length deletePts) pts'' (nextLevel l) (l' : prevLvls)++-- | Remove already assigned pts from the ends of all vectors.+compactEnds :: Arity d+ => GV.Vector d (PointSeq d (Idx :+ p) r)+ -> RST s (GV.Vector d (PointSeq d (Idx :+ p) r))+compactEnds = traverse compactEnds'++-- | Assign level l to point p+assignLevel :: (c :+ (Idx :+ p)) -> Level -> RST s ()+assignLevel p l = ask >>= \levels -> lift $ MV.write levels (p^.extra.core) (Just l)++-- | Get the level of a point+levelOf :: (c :+ (Idx :+ p)) -> RST s (Maybe Level)+levelOf p = ask >>= \levels -> lift $ MV.read levels (p^.extra.core)++-- | Test if the point already has a level assigned to it.+hasLevel :: c :+ (Idx :+ p) -> RST s Bool+hasLevel = fmap isJust . levelOf++-- | Remove allready assigned points from the sequence+--+-- pre: there are points remaining+compactEnds' :: PointSeq d (Idx :+ p) r+ -> RST s (PointSeq d (Idx :+ p) r)+compactEnds' (l0 S2.:< s0) = fmap fromSeqUnsafe . goL $ l0 S.<| s0+ where+ goL s@(S.viewl -> l S.:< s') = hasLevel l >>= \case+ False -> goR s+ True -> goL s'+ goR s@(S.viewr -> s' S.:> r) = hasLevel r >>= \case+ False -> pure s+ True -> goR s'+++-- | Given the points, ordered by their j^th coordinate, split the point set+-- into a "left" and a "right" half, i.e. the points whose j^th coordinate is+-- at most the given mid point m, and the points whose j^th coordinate is+-- larger than m.+--+-- We return a pair (Largest set, Smallest set)+--+--+--fi ndAndCompact works by simultaneously traversing the points from left to+-- right, and from right to left. As soon as we find a point crossing the mid+-- point we stop and return. Thus, in principle this takes only O(|Smallest+-- set|) time.+--+-- running time: O(|Smallest set|) + R, where R is the number of *old* points+-- (i.e. points that should have been removed) in the list.+findAndCompact :: (Ord r, Arity d+ , Show r, Show p+ )+ => Int+ -- ^ the dimension we are in, i.e. so that we know+ -- which coordinate of the point to compare+ -> PointSeq d (Idx :+ p) r+ -> r -- ^ the mid point+ -> RST s ( PointSeq d (Idx :+ p) r+ , PointSeq d (Idx :+ p) r+ )+findAndCompact j (l0 S2.:< s0) m = fmap select . stepL $ l0 S.<| s0+ where+ -- stepL and stepR together build a data structure (FAC l r S) that+ -- contains the left part of the list, i.e. the points before midpoint, and+ -- the right part of the list., and a value S that indicates which part is+ -- the short side.++ -- stepL takes a step on the left side of the list; if the left point l+ -- already has been assigned, we continue waling along (and "ignore" the+ -- point). If it has not been assigned, and is before the mid point, we+ -- take a step from the right, and add l onto the left part. If it is+ -- larger than the mid point, we have found our split.+ -- stepL :: S.Seq (Point d r :+ (Idx :+ p)) -> ST s (FindAndCompact d r (Idx :+ p))+ stepL s = case S.viewl s of+ S.EmptyL -> pure $ FAC mempty mempty L+ l S.:< s' -> hasLevel l >>= \case+ False -> if l^.core.unsafeCoord j <= m+ then addL l <$> stepR s'+ else pure $ FAC mempty s L+ True -> stepL s' -- delete, continue left++ -- stepR :: S.Seq (Point d r :+ (Idx :+ p)) -> ST s (FindAndCompact d r (Idx :+ p))+ stepR s = case S.viewr s of+ S.EmptyR -> pure $ FAC mempty mempty R+ s' S.:> r -> hasLevel r >>= \case+ False -> if r^.core.unsafeCoord j >= m+ then addR r <$> stepL s'+ else pure $ FAC s mempty R+ True -> stepR s'+++ addL l x = x&leftPart %~ (l S.<|)+ addR r x = x&rightPart %~ (S.|> r)++ select = over both fromSeqUnsafe . select'++ -- select' f | traceShow ("select'", f) False = undefined+ select' (FAC l r L) = (r, l)+ select' (FAC l r R) = (l, r)+++-- | Find the widest dimension of the point set+--+-- pre: points are sorted according to their dimension+widestDimension :: (Num r, Ord r, Arity d) => GV.Vector d (PointSeq d p r) -> Int+widestDimension = fst . L.maximumBy (comparing snd) . zip [1..] . F.toList . widths++widths :: (Num r, Arity d) => GV.Vector d (PointSeq d p r) -> GV.Vector d r+widths = fmap Range.width . extends++++-- | get the extends of the set of points in every dimension, i.e. the left and+-- right boundaries.+--+-- pre: points are sorted according to their dimension+extends :: Arity d => GV.Vector d (PointSeq d p r) -> GV.Vector d (Range r)+extends = GV.imap (\i pts@(l S2.:< _) ->+ let (_ S2.:> r) = S2.viewL1toR1 pts+ in ClosedRange (l^.core.unsafeCoord (i + 1))+ (r^.core.unsafeCoord (i + 1)))+++--------------------------------------------------------------------------------+-- * Finding Well Separated Pairs++type AlwaysTrueWSPD d = ( Arity d, KnownNat d+ , AlwaysTruePFT d, AlwaysTrueTransformation d)++findPairs :: (Floating r, Ord r, AlwaysTrueWSPD d)+ => r -> SplitTree d p r a -> SplitTree d p r a+ -> [WSP d p r a]+findPairs s l r+ | areWellSeparated' s l r = [(l,r)]+ | maxWidth l <= maxWidth r = concatMap (findPairs s l) $ children' r+ | otherwise = concatMap (findPairs s r) $ children' l+++-- | Test if the two sets are well separated with param s+areWellSeparated :: ( AlwaysTrueWSPD d, Fractional r, Ord r)+ => r -- ^ separation factor+ -> SplitTree d p r a+ -> SplitTree d p r a -> Bool+areWellSeparated _ (Leaf _) (Leaf _) = True+areWellSeparated s l r = boxBox s (bbOf l) (bbOf r)+++-- areWellSeparated s (Leaf p) (Node _ nd _) = pointBox s (p^.core) (nd^.bBox)+-- areWellSeparated s (Node _ nd _) (Leaf p) = pointBox s (p^.core) (nd^.bBox)+-- areWellSeparated s (Node _ ld _) (Node _ rd _) = boxBox s (ld^.bBox) (rd^.bBox)+++-- -- | Test if the point and the box are far enough appart+-- pointBox :: (Fractional r, Ord r, AlwaysTruePFT d, AlwaysTrueTransformation d)+-- => r -> Point d r -> Box d p r -> Bool+-- pointBox s p b = not $ p `inBox` b'+-- where+-- v = (centerPoint b)^.vector+-- b' = translateBy v . scaleUniformlyBy s . translateBy ((-1) *^ v) $ b++-- | Test if the two boxes are sufficiently far appart+boxBox :: (Fractional r, Ord r, AlwaysTruePFT d, AlwaysTrueTransformation d)+ => r -> Box d p r -> Box d p r -> Bool+boxBox s lb rb = boxBox' lb rb && boxBox' rb lb+ where+ boxBox' b' b = not $ b' `intersects` bOut+ where+ v = (centerPoint b)^.vector+ bOut = translateBy v . scaleUniformlyBy s . translateBy ((-1) *^ v) $ b++--------------------------------------------------------------------------------+-- * Alternative def if wellSeparated that uses fractional+++areWellSeparated' :: (Floating r, Ord r, Arity d)+ => r+ -> SplitTree d p r a+ -> SplitTree d p r a+ -> Bool+areWellSeparated' _ (Leaf _) (Leaf _) = True+areWellSeparated' s l r = boxBox1 s (bbOf l) (bbOf r)++-- (Leaf p) (Node _ nd _) = pointBox' s (p^.core) (nd^.bBox)+-- areWellSeparated' s (Node _ nd _) (Leaf p) = pointBox' s (p^.core) (nd^.bBox)+-- areWellSeparated' s (Node _ ld _) (Node _ rd _) = boxBox' s (ld^.bBox) (rd^.bBox)++boxBox1 :: (Floating r, Ord r, Arity d) => r -> Box d p r -> Box d p r -> Bool+boxBox1 s lb rb = euclideanDist (centerPoint lb) (centerPoint rb) >= (s+1)*d+ where+ diam b = euclideanDist (b^.minP.core.cwMin) (b^.maxP.core.cwMax)+ d = max (diam lb) (diam rb)+++++--------------------------------------------------------------------------------+-- * Helper stuff+++-- | Computes the maximum width of a splitTree+maxWidth :: (Arity d, KnownNat d, Num r)+ => SplitTree d p r a -> r+maxWidth (Leaf _) = 0+maxWidth (Node _ (NodeData i b _) _) = fromJust $ widthIn' i b++-- | 'Computes' the bounding box of a split tree+bbOf :: Ord r => SplitTree d p r a -> Box d () r+bbOf (Leaf p) = boundingBox $ p^.core+bbOf (Node _ (NodeData _ b _) _) = b+++children' :: BinLeafTree v a -> [BinLeafTree v a]+children' (Leaf _) = []+children' (Node l _ r) = [l,r]+++fromSeqUnsafe :: S.Seq a -> S2.ViewL1 a+fromSeqUnsafe (S.viewl -> (l S.:< s)) = l S2.:< s+fromSeqUnsafe _ = error "fromSeqUnsafe: Empty seq"+++-- | Turn a traversal into lens+ix' :: (Arity d, KnownNat d) => Int -> Lens' (GV.Vector d a) a+ix' i = singular (GV.element' i)+++dropIdx :: core :+ (t :+ extra) -> core :+ extra+dropIdx (p :+ (_ :+ e)) = p :+ e++--------------------------------------------------------------------------------
src/Algorithms/Graph/DFS.hs view
@@ -12,7 +12,7 @@ -- | DFS on a planar graph. ----- Running time: $O(n)$+-- Running time: \(O(n)\) -- -- Note that since our planar graphs are always connected there is no need need -- for dfs to take a list of start vertices.@@ -30,7 +30,7 @@ -- | DFS, from a given vertex, on a graph in AdjacencyLists representation. ----- Running time: $O(n)$+-- Running time: \(O(n)\) dfs' :: forall s w. AdjacencyLists s w -> VertexId s w -> Tree (VertexId s w) dfs' g start = runST $ do bv <- UMV.replicate n False -- bit vector of marks
src/Algorithms/Graph/MST.hs view
@@ -23,14 +23,14 @@ -- -- The algorithm used is Kruskal's. ----- running time: $O(n \log n)$+-- running time: \(O(n \log n)\) mst :: Ord e => PlanarGraph s w v e f -> Tree (VertexId s w) mst g = makeTree g $ mstEdges g -- TODO: Add edges/darts to the output somehow. -- | Computes the set of edges in the Minimum spanning tree ----- running time: $O(n \log n)$+-- running time: \(O(n \log n)\) mstEdges :: Ord e => PlanarGraph s w v e f -> [Dart s] mstEdges g = runST $ do uf <- new (numVertices g)@@ -67,7 +67,7 @@ -- | Union find DS newtype UF s a = UF { _unUF :: UMV.MVector s (Int,Int) } -new :: Enum a => Int -> ST s (UF s a)+new :: Int -> ST s (UF s a) new n = do v <- UMV.new n forM_ [0..n-1] $ \i ->
src/Control/Monad/State/Persistent.hs view
@@ -5,13 +5,9 @@ , runPersistentState ) where --import Control.Applicative import Control.Monad.State import Control.Monad.Identity(Identity(..))- import Data.List.NonEmpty(NonEmpty(..),(<|),toList)- --------------------------------------------------------------------------------
+ src/Data/BalBST.hs view
@@ -0,0 +1,355 @@+{-# LANGUAGE RecordWildCards #-}+module Data.BalBST where++import Data.Bifunctor+import Data.Function (on)+import Data.Functor.Contravariant+import qualified Data.List as L+import Data.Maybe+import qualified Data.Tree as T+import Prelude hiding (lookup,null)++--------------------------------------------------------------------------------++-- | Describes how to search in a tree+data TreeNavigator k a = Nav { goLeft :: a -> k -> Bool+ , extractKey :: a -> a -> k+ }++instance Contravariant (TreeNavigator k) where+ contramap f (Nav gL eK) = Nav (\a k -> gL (f a) k) (\x y -> eK (f x) (f y))+++ordNav :: Ord a => TreeNavigator a a+ordNav = Nav (<=) min+++ordNavBy :: Ord b => (a -> b) -> TreeNavigator b a+ordNavBy f = Nav (\x k -> f x <= k) (min `on` f)+++-- instance Functor (TreeNavigator k) where+-- fmap f Nav{..} = Nav (\b k -> )++++-- | A balanced binary search tree+data BalBST k a = BalBST { nav :: !(TreeNavigator k a)+ , toTree :: !(Tree k a)+ }++instance (Show k, Show a) => Show (BalBST k a) where+ show (BalBST _ t) = "BalBST (" ++ show t ++ ")"+++data Color = Red | Black deriving (Show,Read,Eq,Ord)++type Height = Int++-- Red-Black tree with values in the leaves+data Tree k a = Empty+ | Leaf !a+ | Node !Color !Height (Tree k a) !k (Tree k a) deriving (Show,Eq)++--------------------------------------------------------------------------------++-- | Creates an empty BST+empty :: TreeNavigator k a -> BalBST k a+empty n = BalBST n Empty+++-- | \(O(n\log n)\)+fromList :: TreeNavigator k a -> [a] -> BalBST k a+fromList n = foldr insert (empty n)++fromList' :: Ord a => [a] -> BalBST a a+fromList' = fromList ordNav+++-- -- | \(O(n)\)+-- fromAscList :: TreeNavigator k a -> [a] -> BalBST k a+-- fromAscList = undefined+++--------------------------------------------------------------------------------++-- | Check if the tree is empty+null :: BalBST k a -> Bool+null (BalBST _ Empty) = True+null _ = False++-- | Test if an element occurs in the BST.+-- \(O(\log n)\)+lookup :: Eq a => a -> BalBST k a -> Maybe a+lookup x (BalBST Nav{..} t) = lookup' t+ where+ lookup' Empty = Nothing+ lookup' (Leaf y) = if x == y then Just y else Nothing+ lookup' (Node _ _ l k r)+ | goLeft x k = lookup' l+ | otherwise = lookup' r++-- | \(O(\log n)\)+member :: Eq a => a -> BalBST k a -> Bool+member x = isJust . lookup x++++++-- | Insert an element in the BST.+--+-- \(O(\log n)\)+insert :: a -> BalBST k a -> BalBST k a+insert x (BalBST n@Nav{..} t) = BalBST n (blacken $ insert' t)+ where+ insert' Empty = Leaf x+ insert' (Leaf y) = let k = extractKey x y+ (l,r) = if goLeft x k then (x,y) else (y,x)+ in red 2 (Leaf l) k (Leaf r)+ insert' (Node c h l k r)+ | goLeft x k = balance c h (insert' l) k r+ | otherwise = balance c h l k (insert' r)++++-- delete = undefined++-- delete :: Eq a => a -> BalBST k a -> BalBST k a+-- delete x (BalBST n@Nav{..} t) = delete' t+-- where+-- delete' Empty = Empty+-- delete' l@(Leaf y) = if x == y then Empty else l+-- delete' (Node c h l k r)+-- | goLeft x k =+++--------------------------------------------------------------------------------+++-- | Extract the minimum from the tree+-- \(O(\log n)\)+minView :: BalBST k a -> Maybe (a, Tree k a)+minView (BalBST n t) = minView' t+ where+ minView' Empty = Nothing+ minView' (Leaf x) = Just (x,Empty)+ minView' (Node _ _ l _ r) = fmap (flip (joinWith n) r) <$> minView' l++-- | Extract the maximum from the tree+-- \(O(\log n)\)+maxView :: BalBST k a -> Maybe (a, Tree k a)+maxView (BalBST n t) = maxView' t+ where+ maxView' Empty = Nothing+ maxView' (Leaf x) = Just (x,Empty)+ maxView' (Node _ _ l _ r) = fmap (joinWith n l) <$> maxView' r++-- | Joins two BSTs. Assumes that the ranges are disjoint. It takes the left Tree nav+--+-- \(O(\log n)\)+join :: BalBST k a -> BalBST k a -> BalBST k a+join (BalBST n l) (BalBST _ r) = BalBST n $ joinWith n l r++-- | Joins two BSTs' with a specific Tree Navigator+--+-- \(O(\log n)\)+joinWith :: TreeNavigator k a -> Tree k a -> Tree k a -> Tree k a+joinWith Nav{..} tl tr+ | lh >= rh = blacken $ joinL tl tr+ | otherwise = blacken $ joinR tl tr+ where+ rh = height tr+ lh = height tl++ joinL Empty _ = Empty+ joinL l Empty = l+ joinL l@(Leaf x) r@(Leaf y) = red 2 l (extractKey x y) r+ joinL l@(Node c h ll k lr) r+ | h == rh = let lm = unsafeMax lr+ rm = unsafeMin r+ in balance Red (h+1) l (extractKey lm rm) r+ | otherwise = balance c h ll k (joinL lr r)+ -- lh >= rh+ joinL _ _ = error "joinL. absurd"+++ joinR _ Empty = Empty+ joinR Empty r = r++ joinR l@(Leaf x) r@(Leaf y) = red 2 l (extractKey x y) r+ joinR l r@(Node c h rl k rr)+ | h == lh = let lm = unsafeMax l+ rm = unsafeMin rl+ in balance Red (h+1) l (extractKey lm rm) r+ | otherwise = balance c h (joinR l rl) k rr+ -- lh >= rh+ joinR _ _ = error "joinR absurd"+++--------------------------------------------------------------------------------+-- | Splitting and extracting++-- | A pair that is strict in its first argument and lazy in the second.+data Pair a b = Pair { fst' :: !a+ , snd' :: b+ } deriving (Show,Eq,Functor,Foldable,Traversable)+++collect :: b -> [Pair a b] -> Pair [a] b+collect def [] = Pair [] def+collect _ xs = Pair (map fst' xs) (snd' $ last xs)+++-- | Extract a prefix from the tree, i.e. a repeated 'minView'+--+-- \(O(\log n +k)\), where \(k\) is the size of the extracted part+extractPrefix :: BalBST k a -> [Pair a (Tree k a)]+extractPrefix (BalBST n@Nav{..} t) = extractPrefix' t+ where+ extractPrefix' Empty = []+ extractPrefix' (Leaf x) = [Pair x Empty]+ extractPrefix' (Node _ _ l _ r) = ls ++ extractPrefix' r+ where+ ls = map (fmap $ flip (joinWith n) r) $ extractPrefix' l++-- | Extract a suffix from the tree, i.e. a repeated 'minView'+--+-- \(O(\log n +k)\), where \(k\) is the size of the extracted part+extractSuffix :: BalBST k a -> [Pair a (Tree k a)]+extractSuffix (BalBST n@Nav{..} t) = extract t+ where+ extract Empty = []+ extract (Leaf x) = [Pair x Empty]+ extract (Node _ _ l _ r) = rs ++ extract l+ where+ rs = map (fmap $ joinWith n l) $ extract r++-- | Result of splititng a tree+data Split a b = Split a !b a deriving (Show,Eq)++-- | Splits the tree at x. Note that if x occurs more often, no guarantees are+-- given which one is found.+--+-- \(O(\log n)\)+split :: Eq a => a -> BalBST k a -> Split (Tree k a) (Maybe a)+split x (BalBST n@Nav{..} t) = split' t+ where+ split' Empty = Split Empty Nothing Empty+ split' l@(Leaf y)+ | x == y = Split Empty (Just y) Empty+ | goLeft x (extractKey x y) = Split l Nothing Empty+ | otherwise = Split Empty Nothing l+ split' (Node _ _ l k r)+ | goLeft x k = let Split l' mx r' = split' l+ in Split l' mx (joinWith n r' r)+ | otherwise = let Split l' mx r' = split' r+ in Split (joinWith n l l') mx r'++-- | split based on a monotonic predicate+--+-- \(O(\log n)\)+splitMonotone :: (a -> Bool) -> BalBST k a+ -> (BalBST k a, BalBST k a)+splitMonotone p (BalBST n@Nav{..} t) = bimap (BalBST n) (BalBST n) $ split' t+ where+ split' Empty = (Empty,Empty)+ split' l@(Leaf y)+ | p y = (Empty,l)+ | otherwise = (l,Empty)+ split' (Node _ _ l _ r)+ | p (unsafeMin r) = let (l',m) = split' l in (l',joinWith n m r)+ | otherwise = let (m,r') = split' r in (joinWith n l m, r')+++-- | Splits at a given monotone predicate p, and then selects everything that+-- satisfies the predicate sel.+splitExtract :: (a -> Bool) -> (a -> Bool) -> BalBST k a+ -> Split (BalBST k a) ([a],[a])+splitExtract p sel bst = Split (BalBST n before) (reverse mid1,mid2) (BalBST n after)+ where+ n = nav bst+ (before',after') = splitMonotone p bst++ extract def = collect def . L.takeWhile (sel . fst')++ Pair mid1 before = extract (toTree before') $ extractSuffix before'+ Pair mid2 after = extract (toTree after') $ extractPrefix after'+++--------------------------------------------------------------------------------+++data T k a = Internal !Color !Height !k | Val !a deriving (Show,Eq,Ord)++toRoseTree :: Tree k a -> Maybe (T.Tree (T k a))+toRoseTree Empty = Nothing+toRoseTree (Leaf x) = Just $ T.Node (Val x) []+toRoseTree (Node c h l k r) = Just $ T.Node (Internal c h k) (mapMaybe toRoseTree [l,r])+++showTree :: (Show k, Show a) => BalBST k a -> String+showTree = maybe "Empty" T.drawTree . fmap (fmap show) . toRoseTree . toTree++-- | Get the minimum in the tree. Errors when the tree is empty+--+-- \(O(\log n)\)+unsafeMin :: Tree k a -> a+unsafeMin (Leaf x) = x+unsafeMin (Node _ _ l _ _) = unsafeMin l+unsafeMin _ = error "unsafeMin: Empty"++-- | Get the maximum in the tree. Errors when the tree is empty+--+-- \(O(\log n)\)+unsafeMax :: Tree k a -> a+unsafeMax (Leaf x) = x+unsafeMax (Node _ _ _ _ r) = unsafeMax r+unsafeMax _ = error "unsafeMax: Empty"++-- | Extract all elements in the tree+--+-- \(O(n)\)+toList :: BalBST k a -> [a]+toList = toList' . toTree++-- | Extract all elements in the tree+--+-- \(O(n)\)+toList' :: Tree k a -> [a]+toList' Empty = []+toList' (Leaf x) = [x]+toList' (Node _ _ l _ r) = toList' l ++ toList' r+++--------------------------------------------------------------------------------+-- * Helper stuff++black :: Height -> Tree k a -> k -> Tree k a -> Tree k a+black = Node Black++red :: Height -> Tree k a -> k -> Tree k a -> Tree k a+red = Node Red+++blacken :: Tree k a -> Tree k a+blacken (Node Red h l k r) = Node Black h l k r+blacken t = t++-- | rebalance the tree+balance :: Color -> Height -> Tree k a -> k -> Tree k a -> Tree k a+balance Black h (Node Red _ (Node Red _ a x b) y c) z d = mkNode h a x b y c z d+balance Black h (Node Red _ a x (Node Red _ b y c)) z d = mkNode h a x b y c z d+balance Black h a x (Node Red _ (Node Red _ b y c) z d) = mkNode h a x b y c z d+balance Black h a x (Node Red _ b y (Node Red _ c z d)) = mkNode h a x b y c z d+balance co h a x b = Node co h a x b++mkNode :: Height+ -> Tree k a -> k -> Tree k a -> k -> Tree k a -> k -> Tree k a+ -> Tree k a+mkNode h a x b y c z d = red h (black h a x b) y (black h c z d)++height :: Tree k a -> Height+height Empty = 0+height (Leaf _) = 1+height (Node _ h _ _ _) = h
src/Data/BinaryTree.hs view
@@ -1,19 +1,25 @@-{-# Language DeriveFunctor #-}+{-# Language DeriveFunctor#-} {-# Language FunctionalDependencies #-} module Data.BinaryTree where -import Control.Applicative-import Data.Foldable-import Data.List.NonEmpty(NonEmpty)-import Data.Semigroup-import Data.Traversable-import Data.Semigroup.Foldable+import Control.DeepSeq+import Data.List.NonEmpty (NonEmpty(..),(<|))+import qualified Data.List.NonEmpty as NonEmpty+import Data.Maybe (mapMaybe)+import Data.Semigroup+import Data.Semigroup.Foldable+import qualified Data.Tree as Tree+import qualified Data.Vector as V+import GHC.Generics (Generic) -data BinLeafTree v a = Leaf a- | Node (BinLeafTree v a) v (BinLeafTree v a)- deriving (Show,Read,Eq,Ord,Functor)+-------------------------------------------------------------------------------- +data BinLeafTree v a = Leaf !a+ | Node (BinLeafTree v a) !v (BinLeafTree v a)+ deriving (Show,Read,Eq,Ord,Functor,Generic) +instance (NFData v, NFData a) => NFData (BinLeafTree v a)+ class Semigroup v => Measured v a | a -> v where measure :: a -> v @@ -40,24 +46,143 @@ instance Measured v a => Semigroup (BinLeafTree v a) where l <> r = node l r +-- | Create a balanced tree, i.e. a tree of height \(O(\log n)\) with the+-- elements in the leaves.+--+-- \(O(n)\) time.+asBalancedBinLeafTree :: NonEmpty a -> BinLeafTree Size (Elem a)+asBalancedBinLeafTree = repeatedly merge . fmap (Leaf . Elem)+ where+ repeatedly _ (t :| []) = t+ repeatedly f ts = repeatedly f $ f ts -asBalancedBinLeafTree :: NonEmpty a -> BinLeafTree Size (Elem a)-asBalancedBinLeafTree ys = asBLT (length ys') ys'+ merge ts@(_ :| []) = ts+ merge (l :| r : []) = node l r :| []+ merge (l :| r : ts) = node l r <| (merge $ NonEmpty.fromList ts)+-- -- the implementation below produces slightly less high trees, but runs in+-- -- \(O(n \log n)\) time, as on every level it traverses the list passed down.+-- asBalancedBinLeafTree ys = asBLT (length ys') ys' where ys' = toList ys++-- asBLT _ [x] = Leaf (Elem x)+-- asBLT n xs = let h = n `div` 2+-- (ls,rs) = splitAt h xs+-- in node (asBLT h ls) (asBLT (n-h) rs)++-- | Given a function to combine internal nodes into b's and leafs into b's,+-- traverse the tree bottom up, and combine everything into one b.+foldUp :: (b -> v -> b -> b) -> (a -> b) -> BinLeafTree v a -> b+foldUp _ g (Leaf x) = g x+foldUp f g (Node l x r) = f (foldUp f g l) x (foldUp f g r)+++-- | Traverses the tree bottom up, recomputing the assocated values.+foldUpData :: (w -> v -> w -> w) -> (a -> w) -> BinLeafTree v a -> BinLeafTree w a+foldUpData f g = foldUp f' Leaf where- ys' = toList ys+ f' l v r = Node l (f (access' l) v (access' r)) r - asBLT _ [x] = Leaf (Elem x)- asBLT n xs = let h = n `div` 2- (ls,rs) = splitAt h xs- in node (asBLT h ls) (asBLT (n-h) rs)+ access' (Leaf x) = g x+ access' (Node _ v _) = v -newtype Size = Size Int deriving (Show,Read,Eq,Num,Integral,Enum,Real,Ord)+-- | Takes two trees, that have the same structure, and uses the provided+-- functions to "zip" them together+zipExactWith :: (u -> v -> w)+ -> (a -> b -> c)+ -> BinLeafTree u a+ -> BinLeafTree v b+ -> BinLeafTree w c+zipExactWith _ g (Leaf x) (Leaf y) = Leaf (x `g` y)+zipExactWith f g (Node l m r) (Node l' m' r') = Node (zipExactWith f g l l')+ (m `f` m')+ (zipExactWith f g r r')+zipExactWith _ _ _ _ =+ error "zipExactWith: tree structures not the same " +newtype Size = Size Int deriving (Show,Read,Eq,Num,Integral,Enum,Real,Ord,Generic,NFData)+ instance Semigroup Size where x <> y = x + y +instance Monoid Size where+ mempty = Size 0+ mappend = (<>)+ newtype Elem a = Elem { _unElem :: a } deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable) instance Measured Size (Elem a) where measure _ = 1+++data Sized a = Sized !Size a+ deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic)+instance NFData a => NFData (Sized a)++instance Semigroup a => Semigroup (Sized a) where+ (Sized i a) <> (Sized j b) = Sized (i <> j) (a <> b)++instance Monoid a => Monoid (Sized a) where+ mempty = Sized mempty mempty+ (Sized i a) `mappend` (Sized j b) = Sized (i <> j) (a `mappend` b)++-- instance Semigroup a => Measured Size (Sized a) where+-- measure (Sized i _) = i+++--------------------------------------------------------------------------------+-- * Converting into a Data.Tree++data RoseElem v a = InternalNode v | LeafNode a deriving (Show,Eq,Functor)++toRoseTree :: BinLeafTree v a -> Tree.Tree (RoseElem v a)+toRoseTree (Leaf x) = Tree.Node (LeafNode x) []+toRoseTree (Node l v r) = Tree.Node (InternalNode v) (map toRoseTree [l,r])+++drawTree :: (Show v, Show a) => BinLeafTree v a -> String+drawTree = Tree.drawTree . fmap show . toRoseTree+++--------------------------------------------------------------------------------+-- * Internal Node Tree+++data BinaryTree a = Nil+ | Internal (BinaryTree a) !a (BinaryTree a)+ deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable,Generic)+instance NFData a => NFData (BinaryTree a)++-- | Get the element stored at the root, if it exists+access :: BinaryTree a -> Maybe a+access Nil = Nothing+access (Internal _ x _) = Just x++-- | Create a balanced binary tree+--+-- \(O(n)\)+asBalancedBinTree :: [a] -> BinaryTree a+asBalancedBinTree = mkTree . V.fromList+ where+ mkTree v = let n = V.length v+ h = n `div` 2+ x = v V.! h+ in if n == 0 then Nil+ else Internal (mkTree $ V.slice 0 h v) x+ (mkTree $ V.slice (h+1) (n - h -1) v)+++foldBinaryUp :: b -> (a -> b -> b -> b)+ -> BinaryTree a -> BinaryTree (a,b)+foldBinaryUp _ _ Nil = Nil+foldBinaryUp e f (Internal l x r) = let l' = foldBinaryUp e f l+ r' = foldBinaryUp e f r+ g = maybe e snd . access+ b = f x (g l') (g r')+ in Internal l' (x,b) r'++toRoseTree' :: BinaryTree a -> Maybe (Tree.Tree a)+toRoseTree' Nil = Nothing+toRoseTree' (Internal l v r) = Just $ Tree.Node v $ mapMaybe toRoseTree' [l,r]++drawTree' :: Show a => BinaryTree a -> String+drawTree' = maybe "Nil" (Tree.drawTree . fmap show) . toRoseTree'
+ src/Data/BinaryTree/Zipper.hs view
@@ -0,0 +1,65 @@+module Data.BinaryTree.Zipper where++import Data.BinaryTree+import Data.Semigroup++--------------------------------------------------------------------------------++data Ctx a = Top | L (Ctx a) a (BinaryTree a) | R (BinaryTree a) a (Ctx a)+ deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)++data BinaryTreeZipper a = Loc (BinaryTree a) (Ctx a)+ deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)++-- | Focus on the root+top :: BinaryTree a -> BinaryTreeZipper a+top t = Loc t Top++-- | Go to the left child+left :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)+left (Loc (Internal l x r) ctx) = Just $ Loc l (L ctx x r)+left (Loc Nil _) = Nothing++-- | Go to the right child+right :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)+right (Loc (Internal l x r) ctx) = Just $ Loc r (R l x ctx)+right (Loc Nil _) = Nothing++-- | Move to the parent+up :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)+up (Loc _ Top) = Nothing+up (Loc l (L ctx x r)) = Just $ Loc (Internal l x r) ctx+up (Loc r (R l x ctx)) = Just $ Loc (Internal l x r) ctx++-- | Navigate to the root+toRoot :: BinaryTreeZipper a -> BinaryTreeZipper a+toRoot z = toRoot' z (Just z)+ where+ toRoot' z' Nothing = z'+ toRoot' _ (Just z') = toRoot' z' (up z')+++-- | Returns a list of zippers; one focussed on each node in the tree+visitAll :: BinaryTree a -> [BinaryTreeZipper a]+visitAll t = visitAll' (top t)+ where+ f = maybe [] visitAll'+ visitAll' z = z : f (left z) <> f (right z)++-- | Get the value stored at the current node+accessZ :: BinaryTreeZipper a -> Maybe a+accessZ (Loc t _) = access t+++-- | Returns all subtrees; i.e. every node with all its decendents+subTrees :: BinaryTree a -> [BinaryTree a]+subTrees t = Nil : subTrees' t+ where+ subTrees' Nil = []+ subTrees' tt@(Internal l _ r) = tt : subTrees' l <> subTrees' r+++-- | Splits the tree here, returns a pair (innerTree,outerTree)+splitTree :: BinaryTreeZipper a -> (BinaryTree a, BinaryTree a)+splitTree (Loc t ctx) = let (Loc r _) = toRoot $ Loc Nil ctx+ in (t, r)
src/Data/CircularList/Util.hs view
@@ -1,14 +1,13 @@-{-# LANGUAGE CPP #-} module Data.CircularList.Util where import Control.Lens import Data.Tuple import qualified Data.CircularList as C import qualified Data.List as L-import qualified Data.Traversable as T -import Debug.Trace +--------------------------------------------------------------------------------+ -- $setup -- >>> let ordList = C.fromList [5,6,10,20,30,1,2,3] @@ -66,17 +65,3 @@ xs `isShiftOf` ys = let rest = tail . C.leftElements in maybe False (\xs' -> rest xs' == rest ys) $ C.focus ys >>= flip C.rotateTo xs----- minimumBy :: (a -> a -> Ordering) -> C.CList a -> a--- minimumBy cmp = L.minimumBy cmp . C.rightElements--#if !MIN_VERSION_data_clist(0,1,0)--instance Foldable C.CList where- foldMap = T.foldMapDefault--instance T.Traversable C.CList where- traverse f = fmap C.fromList . T.traverse f . C.rightElements--#endif
src/Data/CircularSeq.hs view
@@ -4,6 +4,8 @@ , fromNonEmpty , fromList + , toNonEmpty+ , focus , index, adjust , item@@ -21,11 +23,18 @@ , findRotateTo , rotateTo++ , zipLWith, zipL+ , zip3LWith+++ , insertOrd, insertOrdBy+ , isShiftOf ) where -import Control.Applicative-import Control.Lens(lens, Lens')+import Control.Lens (lens, Lens', bimap) import qualified Data.Foldable as F+import qualified Data.List as L import qualified Data.List.NonEmpty as NonEmpty import Data.Maybe (listToMaybe) import Data.Semigroup@@ -37,11 +46,17 @@ -------------------------------------------------------------------------------- +-- $setup+-- >>> let ordList = fromList [5,6,10,20,30,1,2,3]++ -- | Nonempty circular sequence data CSeq a = CSeq !(Seq a) !a !(Seq a)- deriving (Eq) -- we keep the seq balanced, i.e. size left >= size right +instance Eq a => Eq (CSeq a) where+ a == b = asSeq a == asSeq b+ instance Show a => Show (CSeq a) where showsPrec d s = showParen (d > app_prec) $ showString (("CSeq " <>) . show . F.toList . rightElements $ s)@@ -79,7 +94,7 @@ -- | Access the i^th item (w.r.t the focus) in the CSeq (indices modulo n). ----- running time: $O(\log (i \mod n))$+-- running time: \(O(\log (i \mod n))\) -- -- >>> index (fromList [0..5]) 1 -- 1@@ -104,7 +119,7 @@ -- | Adjusts the i^th element w.r.t the focus in the CSeq ----- running time: $O(\log (i \mod n))$+-- running time: \(O(\log (i \mod n))\) -- -- >>> adjust (const 1000) 2 (fromList [0..5]) -- CSeq [0,1,1000,3,4,5]@@ -201,11 +216,14 @@ fromList (x:xs) = withFocus x $ S.fromList xs fromList [] = error "fromList: Empty list" +toNonEmpty :: CSeq a -> NonEmpty.NonEmpty a+toNonEmpty = NonEmpty.fromList . F.toList+ -- | Rotates i elements to the right. -- -- pre: 0 <= i < n ----- running time: $O(\log i)$ amortized+-- running time: \(O(\log i)\) amortized -- -- >>> rotateNR 0 $ fromList [1..5] -- CSeq [1,2,3,4,5]@@ -223,7 +241,7 @@ -- -- pre: 0 <= i < n ----- running time: $O(\log i)$ amoritzed+-- running time: \(O(\log i)\) amoritzed -- -- >>> rotateNL 0 $ fromList [1..5] -- CSeq [1,2,3,4,5]@@ -244,7 +262,7 @@ -- | Reversres the direction of the CSeq ----- running time: $O(n)$+-- running time: \(O(n)\) -- -- >>> reverseDirection $ fromList [1..5] -- CSeq [1,5,4,3,2]@@ -279,3 +297,76 @@ allRotations' :: CSeq a -> [CSeq a] allRotations' s = take (length s) . iterate rotateR $ s++-- | "Left zip": zip the two CLists, pairing up every element in the *left*+-- list with its corresponding element in the right list. If there are more+-- items in the right clist they are discarded.+zipLWith :: (a -> b -> c) -> CSeq a -> CSeq b -> CSeq c+zipLWith f as bs = fromList $ zipWith f (F.toList as) (F.toList bs)++-- | see 'zipLWith+zipL :: CSeq a -> CSeq b -> CSeq (a, b)+zipL = zipLWith (,)+++-- | same as zipLWith but with three items+zip3LWith :: (a -> b -> c -> d) -> CSeq a -> CSeq b -> CSeq c -> CSeq d+zip3LWith f as bs cs = fromList $ zipWith3 f (F.toList as) (F.toList bs) (F.toList cs)+++++-- | Given a circular seq, whose elements are in increasing order, insert the+-- new element into the Circular seq in its sorted order.+--+-- >>> insertOrd 1 $ fromList [2]+-- CSeq [2,1]+-- >>> insertOrd 2 $ fromList [1,3]+-- CSeq [1,2,3]+-- >>> insertOrd 31 ordList+-- CSeq [5,6,10,20,30,31,1,2,3]+-- >>> insertOrd 1 ordList+-- CSeq [5,6,10,20,30,1,1,2,3]+-- >>> insertOrd 4 ordList+-- CSeq [5,6,10,20,30,1,2,3,4]+-- >>> insertOrd 11 ordList+-- CSeq [5,6,10,11,20,30,1,2,3]+--+-- running time: \(O(n)\)+insertOrd :: Ord a => a -> CSeq a -> CSeq a+insertOrd = insertOrdBy compare++-- | Insert an element into an increasingly ordered circular list, with+-- specified compare operator.+--+-- running time: \(O(n)\)+insertOrdBy :: (a -> a -> Ordering) -> a -> CSeq a -> CSeq a+insertOrdBy cmp x = fromList . insertOrdBy' cmp x . F.toList . rightElements++-- | List version of insertOrdBy; i.e. the list contains the elements in+-- cirulcar order. Again produces a list that has the items in circular order.+insertOrdBy' :: (a -> a -> Ordering) -> a -> [a] -> [a]+insertOrdBy' cmp x xs = case (rest, x `cmp` head rest) of+ ([], _) -> L.insertBy cmp x pref+ (z:zs, GT) -> (z : L.insertBy cmp x zs) ++ pref+ (_:_, EQ) -> (x : xs) -- == x : rest ++ pref+ (_:_, LT) -> rest ++ L.insertBy cmp x pref+ where+ -- split the list at its maximum.+ (pref,rest) = splitIncr cmp xs++-- given a list of elements that is supposedly a a cyclic-shift of a list of+-- increasing items, find the splitting point. I.e. returns a pair of lists+-- (ys,zs) such that xs = zs ++ ys, and ys ++ zs is (supposedly) in sorted+-- order.+splitIncr :: (a -> a -> Ordering) -> [a] -> ([a],[a])+splitIncr _ [] = ([],[])+splitIncr cmp xs@(x:_) = swap . bimap (map snd) (map snd)+ . L.break (\(a,b) -> (a `cmp` b) == GT) $ zip (x:xs) xs++-- | Test if the circular list is a cyclic shift of the second list.+-- Running time: O(n), where n is the size of the smallest list+isShiftOf :: Eq a => CSeq a -> CSeq a -> Bool+xs `isShiftOf` ys = let rest = tail . F.toList . leftElements+ in maybe False (\xs' -> rest xs' == rest ys) $+ rotateTo (focus ys) xs
src/Data/Ext.hs view
@@ -1,19 +1,21 @@+{-# LANGUAGE DeriveAnyClass #-} module Data.Ext where -import Control.Applicative import Control.Lens-import Data.Semigroup import Data.Biapplicative-import Data.Bifunctor.Apply import Data.Bifoldable+import Data.Bifunctor.Apply import Data.Bitraversable+import Data.Functor.Apply (liftF2)+import Data.Semigroup import Data.Semigroup.Bifoldable import Data.Semigroup.Bitraversable-import Data.Functor.Apply(liftF2)+import GHC.Generics (Generic)+import Control.DeepSeq -------------------------------------------------------------------------------- -data core :+ extra = core :+ extra deriving (Show,Read,Eq,Ord,Bounded)+data core :+ extra = core :+ extra deriving (Show,Read,Eq,Ord,Bounded,Generic,NFData) infixr 1 :+
src/Data/Geometry.hs view
@@ -25,5 +25,5 @@ import Data.Geometry.Properties import Data.Geometry.Transformation import Data.Geometry.Vector-import Linear.Affine hiding (Point, origin)+import Linear.Affine hiding (Point, Vector, origin) import Linear.Vector
src/Data/Geometry/Ball.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Ball where +import Control.DeepSeq import Control.Lens import Data.Bifunctor import Data.Ext@@ -16,22 +17,28 @@ import qualified Data.Traversable as T import Data.Vinyl import Frames.CoRec-import GHC.TypeLits-import Linear.Affine(qdA, (.-.), (.+^))-import Linear.Vector((^/),(*^),(^+^))+import GHC.Generics (Generic)+import Linear.Matrix+import Linear.V3 (V3(..)) -------------------------------------------------------------------------------- -- * A d-dimensional ball -- | A d-dimensional ball.-data Ball d p r = Ball { _center :: Point d r :+ p- , _squaredRadius :: r- }+data Ball d p r = Ball { _center :: !(Point d r :+ p)+ , _squaredRadius :: !r+ } deriving Generic makeLenses ''Ball -deriving instance (Show r, Show p, Arity d) => Show (Ball d p r)-deriving instance (Eq r, Eq p, Arity d) => Eq (Ball d p r)+-- | A lens to get/set the radius of a Ball+radius :: Floating r => Lens' (Ball d p r) r+radius = lens (sqrt . _squaredRadius) (\(Ball c _) r -> Ball c (r^2)) ++deriving instance (Show r, Show p, Arity d) => Show (Ball d p r)+-- deriving instance (NFData p, NFData r, Arity d) => NFData (Ball d p r)+deriving instance (Eq r, Eq p, Arity d) => Eq (Ball d p r)+ type instance NumType (Ball d p r) = r type instance Dimension (Ball d p r) = d @@ -67,7 +74,7 @@ -- | Test if a point lies strictly inside a ball ----- >>> (point2 0.5 0) `insideBall` unitBall+-- >>> (point2 0.5 0.0) `insideBall` unitBall -- True -- >>> (point2 1 0) `insideBall` unitBall -- False@@ -101,6 +108,8 @@ type Sphere d p r = Boundary (Ball d p r) ++pattern Sphere :: Point d r :+ p -> r -> Sphere d p r pattern Sphere c r = Boundary (Ball c r) @@ -111,11 +120,13 @@ type Disk p r = Ball 2 p r +pattern Disk :: Point 2 r :+ p -> r -> Disk p r pattern Disk c r = Ball c r type Circle p r = Sphere 2 p r +pattern Circle :: Point 2 r :+ p -> r -> Circle p r pattern Circle c r = Sphere c r -- | Given three points, get the disk through the three points. If the three@@ -125,7 +136,7 @@ -- Just (Ball {_center = Point2 [0.0,0.0] :+ (), _squaredRadius = 100.0}) disk :: (Eq r, Fractional r) => Point 2 r -> Point 2 r -> Point 2 r -> Maybe (Disk () r)-disk p q r = match ((f p) `intersect` (f q)) $+disk p q r = match (f p `intersect` f q) $ (H $ \NoIntersection -> Nothing) :& (H $ \c@(Point _) -> Just $ Ball (ext c) (qdA c p)) :& (H $ \_ -> Nothing)@@ -139,7 +150,24 @@ midPoint = p' .+^ (v ^/ 2) in perpendicularTo (Line midPoint v) +-- | Creates a circle from three points on the boundary+from3Points :: Fractional r+ => Point 2 r :+ p -> Point 2 r :+ q -> Point 2 r :+ s -> Circle () r+from3Points (p@(Point2 px py) :+ _) (Point2 qx qy :+ _) (Point2 sx sy :+ _) =+ Circle (ext c) (squaredEuclideanDist c p)+ where+ f x y = x^2 + y^2+ fx x y = V3 (f x y) y 1+ fy x y = V3 x (f x y) 1 + xnom = det33 $ V3 (fx px py) (fx qx qy) (fx sx sy)+ ynom = det33 $ V3 (fy px py) (fy qx qy) (fy sx sy)++ denom = (2 *) . det33 $ V3 (V3 px py 1) (V3 qx qy 1) (V3 sx sy 1)+ c = point2 (xnom / denom) (ynom / denom)+++ newtype Touching p = Touching p deriving (Show,Eq,Ord,Functor,F.Foldable,T.Traversable) -- | No intersection, one touching point, or two points@@ -154,10 +182,10 @@ nonEmptyIntersection = defaultNonEmptyIntersection (Line p' v) `intersect` (Circle (c :+ _) r) = case discr `compare` 0 of- LT -> coRec $ NoIntersection+ LT -> coRec NoIntersection EQ -> coRec . Touching $ q' (lambda (+)) GT -> let [l1,l2] = L.sort [lambda (-), lambda (+)]- in coRec $ (q' l1, q' l2)+ in coRec (q' l1, q' l2) where (Vector2 vx vy) = v -- (px, py) is the vector/point after translating the circle s.t. it is centered at the
src/Data/Geometry/Boundary.hs view
@@ -1,9 +1,6 @@ module Data.Geometry.Boundary where --import Data.Geometry.Properties-import qualified Data.Foldable as F-import qualified Data.Traversable as T+import Data.Geometry.Properties import Data.Geometry.Transformation --------------------------------------------------------------------------------
src/Data/Geometry/Box.hs view
@@ -1,19 +1,21 @@ {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveAnyClass #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.Geometry.Box( module Data.Geometry.Box.Internal , topSide, leftSide, bottomSide, rightSide , sides, sides' ) where --import Control.Applicative-import qualified Data.Traversable as Tr-import Data.Geometry.Box.Internal-import Data.Geometry.LineSegment+import Control.DeepSeq+import Data.Geometry.Box.Internal+import Data.Geometry.LineSegment+import Data.Geometry.Vector --------------------------------------------------------------------------------++deriving instance (NFData p, NFData r, Arity d) => NFData (Box d p r)+ topSide :: Num r => Rectangle p r -> LineSegment 2 p r topSide = (\(l,r,_,_) -> ClosedLineSegment l r) . corners
src/Data/Geometry/Box/Internal.hs view
@@ -1,41 +1,73 @@ {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE DeriveFunctor #-} module Data.Geometry.Box.Internal where -import Control.Applicative+import Control.DeepSeq import Control.Lens import Data.Bifunctor import Data.Ext-import qualified Data.Semigroup.Foldable as F-import qualified Data.Range as R+import Frames.CoRec (asA) import Data.Geometry.Point import Data.Geometry.Properties import Data.Geometry.Transformation+import Data.Geometry.Vector (Vector, Arity, Index',C(..)) import qualified Data.Geometry.Vector as V import qualified Data.List.NonEmpty as NE-import Data.Geometry.Vector(Vector, Arity, Index',C(..))+import Data.Proxy+import qualified Data.Range as R import Data.Semigroup+import qualified Data.Semigroup.Foldable as F+import qualified Data.Vector.Fixed as FV+import GHC.TypeLits+import GHC.Generics (Generic) -import qualified Data.Vector.Fixed as FV -import GHC.TypeLits+-------------------------------------------------------------------------------- +-- | Coordinate wize minimum+newtype CWMin a = CWMin { _cwMin :: a }+ deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic,NFData)+makeLenses ''CWMin++instance (Arity d, Ord r) => Semigroup (CWMin (Point d r)) where+ (CWMin p) <> (CWMin q) = CWMin . Point $ FV.zipWith min (p^.vector) (q^.vector)++-- | Coordinate wize maximum+newtype CWMax a = CWMax { _cwMax :: a }+ deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic,NFData)+makeLenses ''CWMax++instance (Arity d, Ord r) => Semigroup (CWMax (Point d r)) where+ (CWMax p) <> (CWMax q) = CWMax . Point $ FV.zipWith max (p^.vector) (q^.vector)++ -------------------------------------------------------------------------------- -- * d-dimensional boxes -data Box d p r = Box { _minP :: Min (Point d r) :+ p- , _maxP :: Max (Point d r) :+ p- }++data Box d p r = Box { _minP :: !(CWMin (Point d r) :+ p)+ , _maxP :: !(CWMax (Point d r) :+ p)+ } deriving Generic makeLenses ''Box -- | Given the point with the lowest coordinates and the point with highest -- coordinates, create a box.-fromCornerPoints :: Point d r :+ p -> Point d r :+ p -> Box d p r-fromCornerPoints low high = Box (low&core %~ Min) (high&core %~ Max)+box :: Point d r :+ p -> Point d r :+ p -> Box d p r+box low high = Box (low&core %~ CWMin) (high&core %~ CWMax) +-- | Build a d dimensional Box given d ranges.+fromExtent :: Arity d => Vector d (R.Range r) -> Box d () r+fromExtent rs = Box (CWMin (Point $ fmap (^.R.lower.R.unEndPoint) rs) :+ mempty)+ (CWMax (Point $ fmap (^.R.upper.R.unEndPoint) rs) :+ mempty) ++-- | Center of the box+centerPoint :: (Arity d, Fractional r) => Box d p r -> Point d r+centerPoint b = Point $ w V.^/ 2+ where w = b^.minP.core.cwMin.vector V.^+^ b^.maxP.core.cwMax.vector+++ deriving instance (Show r, Show p, Arity d) => Show (Box d p r) deriving instance (Eq r, Eq p, Arity d) => Eq (Box d p r) deriving instance (Ord r, Ord p, Arity d) => Ord (Box d p r)@@ -45,25 +77,44 @@ type instance IntersectionOf (Box d p r) (Box d q r) = '[ NoIntersection, Box d () r] --- In principle this should also just work for Boxes in higher dimensions. It is just--- that we need a better way to compute their corners-instance (Num r, Ord r) => (Rectangle p r) `IsIntersectableWith` (Rectangle p r) where-+instance (Ord r, Arity d) => (Box d p r) `IsIntersectableWith` (Box d q r) where nonEmptyIntersection = defaultNonEmptyIntersection - box@(Box a b) `intersect` box'@(Box c d)- | box `containsACornerOf` box'- || box' `containsACornerOf` box = coRec $ Box (mi :+ ()) (ma :+ ())- | otherwise = coRec NoIntersection+ bx `intersect` bx' = f . sequence $ FV.zipWith intersect' (extent bx) (extent bx') where+ f = maybe (coRec NoIntersection) (coRec . fromExtent)+ r `intersect'` s = asA (Proxy :: Proxy (R.Range r)) $ r `intersect` s - mi = (a^.core) `max` (c^.core)- ma = (b^.core) `min` (d^.core) - bx `containsACornerOf` bx' = let (a',b',c',d') = corners bx'- in any (\(p :+ _) -> p `inBox` bx) [a',b',c',d'] +-- -- In principle this should also just work for Boxes in higher dimensions. It is just+-- -- that we need a better way to compute their corners+-- instance (Num r, Ord r) => (Rectangle p r) `IsIntersectableWith` (Rectangle p r) where +-- nonEmptyIntersection = defaultNonEmptyIntersection++-- box@(Box a b) `intersect` box'@(Box c d)+-- | box `containsACornerOf` box'+-- || box' `containsACornerOf` box = coRec $ Box (mi :+ ()) (ma :+ ())+-- | otherwise = coRec NoIntersection+-- where++-- mi = (a^.core) `max` (c^.core)+-- ma = (b^.core) `min` (d^.core)++-- bx `containsACornerOf` bx' = let (a',b',c',d') = corners bx'+-- in any (\(p :+ _) -> p `inBox` bx) [a',b',c',d']+++type instance IntersectionOf (Point d r) (Box d p r) = '[ NoIntersection, Point d r]++instance (Arity d, Ord r) => (Point d r) `IsIntersectableWith` (Box d p r) where+ nonEmptyIntersection = defaultNonEmptyIntersection+ p `intersect` b+ | not $ p `inBox` b = coRec NoIntersection+ | otherwise = coRec p++ instance PointFunctor (Box d p) where pmap f (Box mi ma) = Box (first (fmap f) mi) (first (fmap f) ma) @@ -82,10 +133,10 @@ -- * Functions on d-dimensonal boxes minPoint :: Box d p r -> Point d r :+ p-minPoint b = let (Min p :+ e) = b^.minP in p :+ e+minPoint b = let (CWMin p :+ e) = b^.minP in p :+ e maxPoint :: Box d p r -> Point d r :+ p-maxPoint b = let (Max p :+ e) = b^.maxP in p :+ e+maxPoint b = let (CWMax p :+ e) = b^.maxP in p :+ e -- | Check if a point lies a box --@@ -101,10 +152,10 @@ -- starting at zero. -- -- >>> extent (boundingBoxList' [point3 1 2 3, point3 10 20 30] :: Box 3 () Int)--- Vector3 [Range {_lower = Closed 1, _upper = Closed 10},Range {_lower = Closed 2, _upper = Closed 20},Range {_lower = Closed 3, _upper = Closed 30}]-extent :: (Arity d)+-- Vector3 [Range (Closed 1) (Closed 10),Range (Closed 2) (Closed 20),Range (Closed 3) (Closed 30)]+extent :: Arity d => Box d p r -> Vector d (R.Range r)-extent (Box (Min a :+ _) (Max b :+ _)) = FV.zipWith R.ClosedRange (toVec a) (toVec b)+extent (Box (CWMin a :+ _) (CWMax b :+ _)) = FV.zipWith R.ClosedRange (toVec a) (toVec b) -- | Get the size of the box (in all dimensions). Note that the resulting vector is 0 indexed -- whereas one would normally count dimensions starting at zero.@@ -166,8 +217,8 @@ , Point 2 r :+ p ) corners r = let w = width r- p = (_maxP r)&core %~ getMax- q = (_minP r)&core %~ getMin+ p = (_maxP r)&core %~ _cwMax+ q = (_minP r)&core %~ _cwMin in ( p&core.xCoord %~ (subtract w) , p , q&core.xCoord %~ (+ w)@@ -178,26 +229,23 @@ -- * Constructing bounding boxes class IsBoxable g where- boundingBox :: (Monoid p, Semigroup p, Ord (NumType g))- => g -> Box (Dimension g) p (NumType g)--type IsAlwaysTrueBoundingBox g p = (Semigroup p, Arity (Dimension g))-+ boundingBox :: Ord (NumType g) => g -> Box (Dimension g) () (NumType g) -boundingBoxList :: (IsBoxable g, Monoid p, F.Foldable1 c, Ord (NumType g)- , IsAlwaysTrueBoundingBox g p- ) => c g -> Box (Dimension g) p (NumType g)+boundingBoxList :: (IsBoxable g, F.Foldable1 c, Ord (NumType g), Arity (Dimension g))+ => c g -> Box (Dimension g) () (NumType g) boundingBoxList = F.foldMap1 boundingBox -- | Unsafe version of boundingBoxList, that does not check if the list is non-empty-boundingBoxList' :: (IsBoxable g, Monoid p, Ord (NumType g)- , IsAlwaysTrueBoundingBox g p- ) => [g] -> Box (Dimension g) p (NumType g)+boundingBoxList' :: (IsBoxable g, Ord (NumType g), Arity (Dimension g))+ => [g] -> Box (Dimension g) () (NumType g) boundingBoxList' = boundingBoxList . NE.fromList ---------------------------------------- instance IsBoxable (Point d r) where- boundingBox p = Box (Min p :+ mempty) (Max p :+ mempty)+ boundingBox p = Box (ext $ CWMin p) (ext $ CWMax p)++instance IsBoxable (Box d p r) where+ boundingBox (Box m m') = Box (m&extra .~ ()) (m'&extra .~ ())
src/Data/Geometry/Duality.hs view
@@ -1,6 +1,5 @@ module Data.Geometry.Duality where -import Control.Applicative import Data.Geometry.Line import Data.Geometry.Point import Data.Maybe(fromJust)
src/Data/Geometry/HalfLine.hs view
@@ -1,8 +1,9 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE DeriveAnyClass #-} module Data.Geometry.HalfLine where -import Control.Applicative+ import Control.Lens import Data.Ext import qualified Data.Foldable as F@@ -14,13 +15,10 @@ import Data.Geometry.SubLine import Data.Geometry.Transformation import Data.Geometry.Vector-import Data.Range import qualified Data.Traversable as T import Data.UnBounded-import Frames.CoRec-import Linear.Affine(Affine(..),distanceA)-import Linear.Vector((*^))-+import GHC.Generics (Generic)+import Control.DeepSeq -------------------------------------------------------------------------------- -- * d-dimensional Half-Lines@@ -28,11 +26,13 @@ -- | d-dimensional Half-Lines data HalfLine d r = HalfLine { _startPoint :: Point d r , _halfLineDirection :: Vector d r- }+ } deriving Generic makeLenses ''HalfLine -deriving instance (Show r, Arity d) => Show (HalfLine d r)-deriving instance (Eq r, Arity d) => Eq (HalfLine d r)+deriving instance (Show r, Arity d) => Show (HalfLine d r)+deriving instance (Eq r, Arity d) => Eq (HalfLine d r)+deriving instance (NFData r, Arity d) => NFData (HalfLine d r)+ deriving instance Arity d => Functor (HalfLine d) deriving instance Arity d => F.Foldable (HalfLine d) deriving instance Arity d => T.Traversable (HalfLine d)
src/Data/Geometry/Interval.hs view
@@ -1,21 +1,24 @@ {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE DeriveFunctor #-}-module Data.Geometry.Interval-- (- -- -- * 1 dimensional Intervals- -- Interval(..)- -- , Intersection(..)+module Data.Geometry.Interval(+ -- * 1 dimensional Intervals+ Interval(..)+ , pattern OpenInterval+ , pattern ClosedInterval+ , pattern Interval - -- -- * querying the start and end of intervals- -- , HasStart(..), HasEnd(..)- -- -- * Working with intervals- -- , width- -- , inInterval- -- )+ -- * querying the start and end of intervals+ , HasStart(..), HasEnd(..)+ -- * Working with intervals+ , inInterval+ , shiftLeft'++ , module Data.Range+ ) where -import Control.Applicative-import Control.Lens(makeLenses, (^.),(%~),(&), Lens')+import Control.DeepSeq+import Control.Lens (makeLenses, (^.),(%~),(&), Lens')+import Data.Bifunctor import Data.Bitraversable import Data.Ext import qualified Data.Foldable as F@@ -25,14 +28,16 @@ import qualified Data.Traversable as T import Data.Vinyl import Frames.CoRec-import Data.Bifunctor+import GHC.Generics (Generic) -------------------------------------------------------------------------------- -- | An Interval is essentially a 'Data.Range' but with possible payload newtype Interval a r = GInterval { _unInterval :: Range (r :+ a) }- deriving (Eq)+ deriving (Eq,Generic) makeLenses ''Interval++deriving instance (NFData a, NFData r) => NFData (Interval a r) instance (Show a, Show r) => Show (Interval a r) where show ~(Interval l u) = concat [ "Interval (", show l, ") (", show u,")"]
+ src/Data/Geometry/Interval/Util.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE TemplateHaskell #-}+module Data.Geometry.Interval.Util where++import Control.DeepSeq+import Control.Lens+import Data.Range+import GHC.Generics (Generic)+++-- | Open on left endpoint; so Closed before open+newtype L r = L { _unL :: EndPoint r } deriving (Show,Eq,Generic,NFData)+makeLenses ''L+instance Ord r => Ord (L r) where+ a `compare` b = f ( _unL a) `compare` f (_unL b)+ where+ f (Open x) = (x,True)+ f (Closed x) = (x,False)++-- | Order on right endpoint; so Open before Closed+newtype R r = R { _unR :: EndPoint r } deriving (Show,Eq,Ord,Generic,NFData)+makeLenses ''R
+ src/Data/Geometry/IntervalTree.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE DeriveAnyClass #-}+module Data.Geometry.IntervalTree( NodeData(..)+ , splitPoint, intervalsLeft, intervalsRight+ , IntervalTree(..), unIntervalTree+ , IntervalLike(..)+ , createTree, fromIntervals+ , insert, delete+ , stab, search+ , toList+ ) where+++import Control.DeepSeq+import Control.Lens+import Data.BinaryTree+import Data.Ext+import Data.Geometry.Interval+import Data.Geometry.Interval.Util+import Data.Geometry.Properties+import qualified Data.List as List+import qualified Data.Map as M+import GHC.Generics (Generic)++--------------------------------------------------------------------------------++-- | Information stored in a node of the Interval Tree+data NodeData i r = NodeData { _splitPoint :: !r+ , _intervalsLeft :: !(M.Map (L r) [i])+ , _intervalsRight :: !(M.Map (R r) [i])+ } deriving (Show,Eq,Ord,Generic,NFData)+makeLenses ''NodeData++++-- | IntervalTree type, storing intervals of type i+newtype IntervalTree i r =+ IntervalTree { _unIntervalTree :: BinaryTree (NodeData i r) }+ deriving (Show,Eq,Generic,NFData)+makeLenses ''IntervalTree++-- | Given an ordered list of points, create an interval tree+--+-- \(O(n)\)+createTree :: Ord r => [r] -> IntervalTree i r+createTree pts = IntervalTree . asBalancedBinTree+ . map (\m -> NodeData m mempty mempty) $ pts+++-- | Build an interval tree+--+-- \(O(n \log n)\)+fromIntervals :: (Ord r, IntervalLike i, NumType i ~ r)+ => [i] -> IntervalTree i r+fromIntervals is = foldr insert (createTree pts) is+ where+ endPoints (toRange -> Range' a b) = [a,b]+ pts = List.sort . concatMap endPoints $ is++-- | Lists the intervals. We don't guarantee anything about the order+--+-- running time: \(O(n)\).+toList :: IntervalTree i r -> [i]+toList = toList' . _unIntervalTree+ where+ toList' Nil = []+ toList' (Internal l v r) =+ concat [concat $ v^..intervalsLeft.traverse, toList' l, toList' r]++--------------------------------------------------------------------------------++-- | Find all intervals that stab x+--+-- \(O(\log n + k)\), where k is the output size+search :: Ord r => r -> IntervalTree i r -> [i]+search = stab++-- | Find all intervals that stab x+--+-- \(O(\log n + k)\), where k is the output size+stab :: Ord r => r -> IntervalTree i r -> [i]+stab x (IntervalTree t) = stab' t+ where+ stab' Nil = []+ stab' (Internal l (NodeData m ll rr) r)+ | x <= m = let is = f (<= L (Closed x)) . M.toAscList $ ll+ in is ++ stab' l+ | otherwise = let is = f (>= R (Closed x)) . M.toDescList $ rr+ in is ++ stab' r+ f p = concatMap snd . List.takeWhile (p . fst)++--------------------------------------------------------------------------------++-- | Insert :+-- pre: the interval intersects some midpoint in the tree+--+-- \(O(\log n)\)+insert :: (Ord r, IntervalLike i, NumType i ~ r)+ => i -> IntervalTree i r -> IntervalTree i r+insert i (IntervalTree t) = IntervalTree $ insert' t+ where+ ri@(Range a b) = toRange i++ insert' Nil = Nil+ insert' (Internal l nd@(_splitPoint -> m) r)+ | m `inRange` ri = Internal l (insert'' nd) r+ | b <= Closed m = Internal (insert' l) nd r+ | otherwise = Internal l nd (insert' r)++ insert'' (NodeData m l r) = NodeData m (M.insertWith (++) (L a) [i] l)+ (M.insertWith (++) (R b) [i] r)+++-- | Delete an interval from the Tree+--+-- \(O(\log n)\) (under some general position assumption)+delete :: (Ord r, IntervalLike i, NumType i ~ r, Eq i)+ => i -> IntervalTree i r -> IntervalTree i r+delete i (IntervalTree t) = IntervalTree $ delete' t+ where+ ri@(Range a b) = toRange i++ delete' Nil = Nil+ delete' (Internal l nd@(_splitPoint -> m) r)+ | m `inRange` ri = Internal l (delete'' nd) r+ | b <= Closed m = Internal (delete' l) nd r+ | otherwise = Internal l nd (delete' r)++ delete'' (NodeData m l r) = NodeData m (M.update f (L a) l) (M.update f (R b) r)+ f is = let is' = List.delete i is in if null is' then Nothing else Just is'++++--------------------------------------------------------------------------------+++-- | Anything that looks like an interval+class IntervalLike i where+ toRange :: i -> Range (NumType i)++instance IntervalLike (Range r) where+ toRange = id++instance IntervalLike (Interval p r) where+ toRange = fmap (^.core) . _unInterval++++--------------------------------------------------------------------------------++test'' = fromIntervals test+test = [Interval (Open (97 :+ ())) (Closed (228 :+ ())) ,Interval (Open (18 :+ ())) (Open (79 :+ ())),Interval (Closed (126 :+ ())) (Open (167 :+ ())),Interval (Closed (105 :+ ())) (Closed (158 :+ ())),Interval (Closed (126 :+ ())) (Closed (211 :+ ())),Interval (Closed (111 :+ ())) (Open (194 :+ ())),Interval (Closed (120 :+ ())) (Open (302 :+ ())),Interval (Closed (92 :+ ())) (Closed (140 :+ ()))]++-- test = fromIntervals [ closedInterval 0 10+-- , closedInterval 5 15+-- , closedInterval 1 4+-- , closedInterval 3 9+-- ]++-- closedInterval a b = ClosedInterval (ext a) (ext b)
src/Data/Geometry/Ipe/Attributes.hs view
@@ -5,15 +5,11 @@ {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Ipe.Attributes where -import Control.Applicative hiding (Const) import Control.Lens hiding (rmap, Const)-import qualified Data.Foldable as F-import qualified Data.Geometry.Transformation as Transf import Data.Semigroup import Data.Singletons import Data.Singletons.TH import Data.Text(Text)-import qualified Data.Traversable as T import Data.Vinyl import Data.Vinyl.Functor import Data.Vinyl.TypeLevel@@ -64,8 +60,12 @@ newtype Attr (f :: TyFun u * -> *) -- Symbol repr. the Type family mapping -- Labels in universe u to concrete types (label :: u) = GAttr { _getAttr :: Maybe (Apply f label) }- deriving (Show,Read,Eq,Ord) +deriving instance Show (Apply f label) => Show (Attr f label)+deriving instance Read (Apply f label) => Read (Attr f label)+deriving instance Eq (Apply f label) => Eq (Attr f label)+deriving instance Ord (Apply f label) => Ord (Attr f label)+ makeLenses ''Attr pattern Attr x = GAttr (Just x)@@ -74,7 +74,7 @@ -- | Give pref. to the *RIGHT* instance Monoid (Attr f l) where mempty = NoAttr- _ `mappend` b@(Attr x) = b+ _ `mappend` b@(Attr _) = b a `mappend` _ = a @@ -106,7 +106,7 @@ zipRecsWith :: (forall a. f a -> g a -> h a) -> Rec f as -> Rec g as -> Rec h as-zipRecsWith f RNil _ = RNil+zipRecsWith _ RNil _ = RNil zipRecsWith f (r :& rs) (s :& ss) = f r s :& zipRecsWith f rs ss attrLens :: (at ∈ ats) => proxy at -> Lens' (Attributes f ats) (Maybe (Apply f at))@@ -117,7 +117,7 @@ setAttr :: forall proxy at ats f. (at ∈ ats) => proxy at -> Apply f at -> Attributes f ats -> Attributes f ats-setAttr p a (Attrs r) = Attrs $ rput (Attr a :: Attr f at) r+setAttr _ a (Attrs r) = Attrs $ rput (Attr a :: Attr f at) r -- | gets and removes the attribute from Attributes@@ -242,6 +242,8 @@ } deriving (Show,Eq) makeLenses ''IpeArrow +normalArrow :: IpeArrow r+normalArrow = IpeArrow "normal" (IpeSize $ Named "normal/normal") -- -- | and their types -- type family PathAttrElf (r :: *) (s :: PathAttributeUniverse) :: * where
src/Data/Geometry/Ipe/FromIpe.hs view
@@ -1,15 +1,14 @@ module Data.Geometry.Ipe.FromIpe where -import Control.Applicative-import qualified Data.Traversable as Tr-import Data.Ext-import Data.Geometry.Ipe.Types-import Data.Geometry.Line-import Data.Geometry.LineSegment+import Control.Lens+import Data.Ext+import Data.Geometry.Ipe.Types+import Data.Geometry.Line+import Data.Geometry.LineSegment import qualified Data.Geometry.PolyLine as PolyLine-import Data.Geometry.Polygon-import Control.Lens+import Data.Geometry.Polygon import qualified Data.Seq2 as S2+import qualified Data.Traversable as Tr -- | Try to convert a path into a line segment, fails if the path is not a line
src/Data/Geometry/Ipe/IpeOut.hs view
@@ -1,29 +1,24 @@ {-# LANGUAGE OverloadedStrings #-} module Data.Geometry.Ipe.IpeOut where -import Control.Applicative import Control.Lens import Data.Bifunctor import Data.Ext-import qualified Data.Foldable as F import Data.Geometry.Ball import Data.Geometry.Boundary+import Data.Geometry.Box import Data.Geometry.Ipe.Attributes import Data.Geometry.Ipe.Types import Data.Geometry.LineSegment import Data.Geometry.Point-import Data.Geometry.Box-import Data.Geometry.Polygon import Data.Geometry.PolyLine+import Data.Geometry.Polygon+import Data.Geometry.Polygon.Convex import Data.Geometry.Properties import Data.Geometry.Transformation-import qualified Data.List.NonEmpty as NE import Data.Semigroup-import Data.Proxy import qualified Data.Seq2 as S2-import Data.Text(Text)-import qualified Data.Traversable as Tr-import Data.Vinyl+import Data.Text (Text) -------------------------------------------------------------------------------- @@ -31,6 +26,7 @@ -- 'g' into an ipe object of type 'i'. newtype IpeOut g i = IpeOut { asIpe :: g -> i } deriving (Functor) + -- | Given an geometry object, and a record with its attributes, construct an ipe -- Object representing it using the default conversion. asIpeObject :: (HasDefaultIpeOut g, DefaultIpeOut g ~ i, NumType g ~ r)@@ -107,6 +103,10 @@ type DefaultIpeOut (SimplePolygon p r) = Path defaultIpeOut = flip addAttributes ipeSimplePolygon $ mempty <> attr SFill (IpeColor "red")++instance HasDefaultIpeOut (ConvexPolygon p r) where+ type DefaultIpeOut (ConvexPolygon p r) = Path+ defaultIpeOut = IpeOut $ asIpe defaultIpeOut . view simplePolygon -------------------------------------------------------------------------------- -- * Point Converters
src/Data/Geometry/Ipe/ParserPrimitives.hs view
@@ -10,12 +10,11 @@ , pNotFollowedBy ) where -import Control.Applicative hiding (many,(<|>))+ import Text.Parsec(try) import Text.Parsec(ParsecT, Stream) import Text.Parsec.Text import Text.ParserCombinators.Parsec hiding (Parser,try)- import qualified Data.Text as T @@ -127,10 +126,10 @@ return $ f x -- | the variants with missing brackets-(***>) :: (Functor m, Monad m) => m a -> m b -> m b+(***>) :: Monad m => m a -> m b -> m b p ***> q = (\_ s -> s) <$> p <***> q -(<***) :: (Functor m, Monad m) => m b -> m t -> m b+(<***) :: Monad m => m b -> m t -> m b p <*** q = (\s _ -> s) <$> p <***> q class Reversable s where
src/Data/Geometry/Ipe/PathParser.hs view
@@ -1,32 +1,21 @@-{-# Language FlexibleInstances #-} {-# Language OverloadedStrings #-} module Data.Geometry.Ipe.PathParser where -import Numeric--import Data.Ext(ext)-import Control.Applicative-import Control.Monad- import Data.Bifunctor-import Data.Monoid(mconcat)-import Data.Semigroup--- import Data.Validation(AccValidation(..))--import Data.Char(isSpace)-import Data.Ratio--import Text.Parsec.Error(messageString, errorMessages)-import Data.Geometry.Point+import Data.Char (isSpace)+import Data.Ext (ext) import Data.Geometry.Box-import Data.Geometry.Vector-import Data.Geometry.Transformation import Data.Geometry.Ipe.ParserPrimitives-import Data.Geometry.Ipe.Types(Operation(..))-import Data.Text(Text)+import Data.Geometry.Ipe.Types (Operation(..))+import Data.Geometry.Point+import Data.Geometry.Transformation+import Data.Geometry.Vector+import Data.Ratio+import Data.Semigroup+import Data.Text (Text) import qualified Data.Text as T---- type Matrix d m r = ()+import Numeric+import Text.Parsec.Error (messageString, errorMessages) -----------------------------------------------------------------------@@ -144,9 +133,9 @@ pDecimal = pMaybe (pChar '.' *> pInteger) pRectangle :: Coordinate r => Parser (Rectangle () r)-pRectangle = (\p q -> fromCornerPoints (ext p) (ext q)) <$> pPoint- <* pWhiteSpace- <*> pPoint+pRectangle = (\p q -> box (ext p) (ext q)) <$> pPoint+ <* pWhiteSpace+ <*> pPoint pMatrix :: Coordinate r => Parser (Matrix 3 3 r) pMatrix = (\a b -> mkMatrix (a:b)) <$> pCoordinate
src/Data/Geometry/Ipe/Reader.hs view
@@ -1,8 +1,6 @@ {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE PolyKinds #-} module Data.Geometry.Ipe.Reader( -- * Reading ipe Files readRawIpeFile , readIpeFile@@ -26,45 +24,34 @@ , ipeReadRec ) where -import Data.Proxy-import Data.Either(rights)-import Control.Applicative hiding (Const) import Control.Lens hiding (Const, rmap)-+import qualified Data.ByteString as B+import Data.Either (rights) import Data.Ext-import qualified Data.Foldable as F-import qualified Data.Traversable as Tr-import Data.Maybe(fromMaybe, isJust, mapMaybe)-import qualified Data.List as L-import Data.Vinyl-import Data.Vinyl.Functor-import Data.Vinyl.TypeLevel--import qualified Data.List.NonEmpty as NE--- import Data.Validation-import qualified Data.Seq2 as S2--import Data.Geometry.Point import Data.Geometry.Box-import qualified Data.Geometry.Polygon as Polygon-import Data.Geometry.PolyLine-import qualified Data.Geometry.Transformation as Trans-import Data.Geometry.Ipe.Types import Data.Geometry.Ipe.Attributes-import qualified Data.Geometry.Ipe.Attributes as IA+import Data.Geometry.Ipe.ParserPrimitives (pInteger) import Data.Geometry.Ipe.PathParser-import Data.Geometry.Ipe.ParserPrimitives(pInteger)--import qualified Data.ByteString as B+import Data.Geometry.Ipe.Types+import Data.Geometry.Point+import Data.Geometry.PolyLine+import qualified Data.Geometry.Polygon as Polygon+import qualified Data.Geometry.Transformation as Trans+import qualified Data.List as L+import qualified Data.List.NonEmpty as NE+import Data.Maybe (fromMaybe, mapMaybe) import Data.Monoid+import Data.Proxy+import qualified Data.Seq2 as S2 import Data.Singletons-import Data.Text(Text)--+import qualified Data.Text as T+import Data.Text (Text)+import qualified Data.Traversable as Tr+import Data.Vinyl+import Data.Vinyl.Functor+import Data.Vinyl.TypeLevel import Text.XML.Expat.Tree -import qualified Data.Text as T--- import qualified Data.Map as M -------------------------------------------------------------------------------- @@ -92,8 +79,7 @@ -- | Given a Bytestring, try to parse the bytestring into anything that is -- IpeReadable, i.e. any of the Ipe elements.-fromIpeXML :: (Coordinate r, IpeRead (t r))- => B.ByteString -> Either ConversionError (t r)+fromIpeXML :: IpeRead (t r) => B.ByteString -> Either ConversionError (t r) fromIpeXML b = readXML b >>= ipeRead -- | Reads the data from a Bytestring into a proper Node@@ -436,16 +422,16 @@ validateAll' :: err -> Prism' (Operation r) (Point 2 r) -> [Operation r] -> Either [err] [Point 2 r]-validateAll' err field = toEither . foldr (\op res -> f op <> res) (Right' [])+validateAll' err field = toEither . foldr (\op' res -> f op' <> res) (Right' []) where- f op = maybe (Left' [err]) (\p -> Right' [p]) $ op ^? field+ f op' = maybe (Left' [err]) (\p -> Right' [p]) $ op' ^? field toEither = either' Left Right -- This is a bit of a hack instance Coordinate r => IpeRead (PolyLine 2 () r) where- ipeRead (Element "path" ats ts) = ipeReadText . T.unlines . map unText $ ts+ ipeRead (Element "path" _ ts) = ipeReadText . T.unlines . map unText $ ts -- apparently hexpat already splits the text into lines- ipeRead _ = Left "iperead: no polyline."+ ipeRead _ = Left "iperead: no polyline." unText :: Node t t1 -> t1 unText (Text t) = t@@ -457,30 +443,5 @@ testP :: B.ByteString testP = "<path stroke=\"black\">\n128 656 m\n224 768 l\n304 624 l\n432 752 l\n</path>" ---- testPoly :: Either Text (Path Double)--- testPoly = fromIpeXML testP---- ipeRead' :: [Element Text Text]--- ipeRead' = map ipeRead---- instance IpeRead (IpePage gs) where--- ipeRead (Element "page" ats chs) = Right . IpePage [] [] . fromList' . rights $ map ipeRead chs--- where--- fromList' = Group' . foldr (\x r -> (IpeObject x :& RNil) :& r) RNil--- ipeRead _ = Left "ipeRead: Not a page"--readPolyLines :: Coordinate r => Node Text Text -> [PolyLine 2 () r]-readPolyLines (Element "ipe" _ chs) = concatMap readPolyLines' chs---readPolyLines' :: Coordinate r => Node Text Text -> [PolyLine 2 () r]-readPolyLines' (Element "page" _ chs) = rights $ map ipeRead chs-readPolyLines' _ = []--polylinesFromIpeFile :: (Coordinate r) => FilePath -> IO [PolyLine 2 () r]-polylinesFromIpeFile = fmap readPolies . B.readFile- where- readPolies = either (const []) readPolyLines . parse' defaultParseOptions --------------------------------------------------------------------------------
src/Data/Geometry/Ipe/Types.hs view
@@ -5,9 +5,8 @@ {-# LANGUAGE OverloadedStrings #-} module Data.Geometry.Ipe.Types where -import Control.Applicative+ import Control.Lens-import Data.Monoid import Data.Proxy import Data.Vinyl
src/Data/Geometry/Ipe/Writer.hs view
@@ -1,51 +1,42 @@ {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TupleSections #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Ipe.Writer where -import Control.Applicative hiding (Const(..))-import Control.Lens((^.),(^..),(.~),(&), to)+import Control.Lens ((^.),(^..),(.~),(&), to)+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as C import Data.Ext import Data.Fixed import qualified Data.Foldable as F+import Data.Geometry.Box+import Data.Geometry.Ipe.Attributes+import qualified Data.Geometry.Ipe.Attributes as IA import Data.Geometry.Ipe.Types import qualified Data.Geometry.Ipe.Types as IT import Data.Geometry.LineSegment+import Data.Geometry.Point import Data.Geometry.PolyLine-import Data.Geometry.Polygon(SimplePolygon, outerBoundary)+import Data.Geometry.Polygon (SimplePolygon, outerBoundary) import qualified Data.Geometry.Transformation as GT-import Data.Geometry.Point-import Data.Geometry.Box import Data.Geometry.Vector-import Data.Maybe(catMaybes, mapMaybe, fromMaybe)+import Data.Maybe (catMaybes, mapMaybe, fromMaybe)+import Data.Proxy import Data.Ratio import Data.Semigroup-import Data.Proxy+import qualified Data.Seq2 as S2+import Data.Singletons+import qualified Data.Text as T+import qualified Data.Text as Text+import Data.Text (Text) import qualified Data.Traversable as Tr import Data.Vinyl import Data.Vinyl.Functor import Data.Vinyl.TypeLevel-import Data.Singletons-import qualified Data.Geometry.Ipe.Attributes as IA-import Data.Geometry.Ipe.Attributes--import qualified Data.ByteString as B-import qualified Data.ByteString.Char8 as C-import Data.List(nub)-import qualified Data.Seq2 as S2-import Data.Text(Text)-import qualified Data.Text as Text-+import System.IO (hPutStrLn,stderr)+import Text.XML.Expat.Format (format') import Text.XML.Expat.Tree-import Text.XML.Expat.Format(format') -import System.IO(hPutStrLn,stderr)--import qualified Data.Text as T- -------------------------------------------------------------------------------- -- | Given a prism to convert something of type g into an ipe file, a file path,@@ -140,6 +131,9 @@ instance IpeWriteText Int where ipeWriteText = writeByShow +instance IpeWriteText Integer where+ ipeWriteText = writeByShow+ instance HasResolution p => IpeWriteText (Fixed p) where ipeWriteText = writeByShow @@ -293,8 +287,8 @@ Element "image" [("rect", p <> " " <> q)] [Text dt] ) <$> ipeWriteText d- <*> ipeWriteText (a^.core.(to getMin))- <*> ipeWriteText (b^.core.(to getMax))+ <*> ipeWriteText (a^.core.cwMin)+ <*> ipeWriteText (b^.core.cwMax) -- TODO: Replace this one with s.t. that writes the actual image payload instance IpeWriteText () where
+ src/Data/Geometry/KDTree.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE ScopedTypeVariables #-}+module Data.Geometry.KDTree where++import Control.Lens hiding (imap, element, Empty, (:<))+import Data.BinaryTree+import Data.Coerce+import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry.Box+import Data.Geometry.Point+import Data.Geometry.Properties+import Data.Geometry.Vector+import qualified Data.List.NonEmpty as NonEmpty+import Data.Maybe (fromJust)+import Data.Proxy+import Data.Seq (LSeq(..), ViewL(..))+import qualified Data.Seq as Seq+import Data.Util+import qualified Data.Vector.Fixed as FV+import GHC.TypeLits+import Prelude hiding (replicate)++--------------------------------------------------------------------------------++newtype Coord (d :: Nat) = Coord { unCoord :: Int}++instance KnownNat d => Eq (Coord d) where+ (Coord i) == (Coord j) = (i `mod` d) == (j `mod` d)+ where+ d = fromInteger . natVal $ (Proxy :: Proxy d)++instance KnownNat d => Show (Coord d) where+ show (Coord i) = show $ 1 + (i `mod` d)+ where+ d = fromInteger . natVal $ (Proxy :: Proxy d)++instance KnownNat d => Enum (Coord d) where+ toEnum i = Coord $ 1 + (i `mod` d)+ where+ d = fromInteger . natVal $ (Proxy :: Proxy d)+ fromEnum = subtract 1 . unCoord+++data Split d r = Split !(Coord d) !r !(Box d () r)++deriving instance (Show r, Arity d, KnownNat d) => Show (Split d r)+deriving instance (Eq r, Arity d, KnownNat d) => Eq (Split d r)+++type Split' d r = SP (Coord d) r++newtype KDTree' d p r = KDT { unKDT :: BinLeafTree (Split d r) (Point d r :+ p) }++deriving instance (Show p, Show r, Arity d, KnownNat d) => Show (KDTree' d p r)+deriving instance (Eq p, Eq r, Arity d, KnownNat d) => Eq (KDTree' d p r)+++data KDTree d p r = Empty+ | Tree (KDTree' d p r)++deriving instance (Show p, Show r, Arity d, KnownNat d) => Show (KDTree d p r)+deriving instance (Eq p, Eq r, Arity d, KnownNat d) => Eq (KDTree d p r)+++toMaybe :: KDTree d p r -> Maybe (KDTree' d p r)+toMaybe Empty = Nothing+toMaybe (Tree t) = Just t+++-- | Expects the input to be a set, i.e. no duplicates+--+-- running time: \(O(n \log n)\)+buildKDTree :: (Arity d, KnownNat d, Index' 0 d, Ord r)+ => [Point d r :+ p] -> KDTree d p r+buildKDTree = maybe Empty (Tree . buildKDTree') . NonEmpty.nonEmpty++buildKDTree' :: (Arity d, KnownNat d, Index' 0 d, Ord r)+ => NonEmpty.NonEmpty (Point d r :+ p) -> KDTree' d p r+buildKDTree' = KDT . addBoxes . build (Coord 1) . toPointSet . Seq.fromNonEmpty+ where -- compute one tree with bounding boxes, then merge them together+ addBoxes t = let bbt = foldUpData (\l _ r -> boundingBoxList' [l,r])+ (boundingBox . (^.core)) t+ in zipExactWith (\(SP c m) b -> Split c m b) const t bbt+++-- | Nub by sorting first+ordNub :: Ord a => NonEmpty.NonEmpty a -> NonEmpty.NonEmpty a+ordNub = fmap NonEmpty.head . NonEmpty.group1 . NonEmpty.sort++++toPointSet :: (Arity d, Ord r)+ => LSeq n (Point d r :+ p) -> PointSet (LSeq n) d p r+toPointSet = FV.imap sort . FV.replicate+ where+ sort i = Seq.unstableSortBy (compareOn $ 1 + i)+++compareOn :: (Ord r, Arity d)+ => Int -> Point d r :+ e -> Point d r :+ e -> Ordering+compareOn i p q = let f = (^.core.unsafeCoord i)+ in (f p, p^.core) `compare` (f q, q^.core)+++build :: (Index' 0 d, Arity d, KnownNat d, Ord r)+ => Coord d+ -> PointSet (LSeq 1) d p r+ -> BinLeafTree (Split' d r) (Point d r :+ p)+build i ps = case asSingleton ps of+ Left p -> Leaf p+ Right ps' -> let (l,m,r) = splitOn i ps'+ j = succ i+ -- the pattern match proves tha tthe seq has >= 2 elements+ in Node (build j l) m (build j r)+++--------------------------------------------------------------------------------++reportSubTree :: KDTree' d p r -> NonEmpty.NonEmpty (Point d r :+ p)+reportSubTree = NonEmpty.fromList . F.toList . unKDT++-- | Searches in a KDTree+--+-- running time: \(O(n^{(d-1)/d} + k)\)+searchKDTree :: (Arity d, Ord r)+ => Box d q r -> KDTree d p r -> [Point d r :+ p]+searchKDTree qr = maybe [] (searchKDTree' qr) . toMaybe++searchKDTree' :: (Arity d, Ord r)+ => Box d q r -> KDTree' d p r -> [Point d r :+ p]+searchKDTree' qr = search . unKDT+ where+ search (Leaf p)+ | (p^.core) `intersects` qr = [p]+ | otherwise = []+ search t@(Node l (Split _ _ b) r)+ | b `containedIn` qr = F.toList t+ | otherwise = l' ++ r'+ where+ l' = if qr `intersects` boxOf l then search l else []+ r' = if qr `intersects` boxOf r then search r else []+++boxOf :: (Arity d, Ord r) => BinLeafTree (Split d r) (Point d r :+ p) -> Box d () r+boxOf (Leaf p) = boundingBox (p^.core)+boxOf (Node _ (Split _ _ b) _) = b++containedIn :: (Arity d, Ord r) => Box d q r -> Box d p r -> Bool+(Box (CWMin p :+ _) (CWMax q :+ _)) `containedIn` b = all (`intersects` b) [p,q]++--------------------------------------------------------------------------------+++type PointSet seq d p r = Vector d (seq (Point d r :+ p))++-- | running time: \(O(n)\)+splitOn :: (Arity d, KnownNat d, Ord r)+ => Coord d+ -> PointSet (LSeq 2) d p r+ -> ( PointSet (LSeq 1) d p r+ , Split' d r+ , PointSet (LSeq 1) d p r)+splitOn c@(Coord i) pts = (l, SP c (m^.core.unsafeCoord i), r)+ where+ -- i = traceShow (c,j) j++ m = let xs = fromJust $ pts^?element' (i-1)+ in xs `Seq.index` (F.length xs `div` 2)++ -- Since the input seq has >= 2 elems, F.length xs / 2 >= 1. It follows+ -- that the both sets thus have at least one elemnt.+ -- f :: LSeq 2 _ -> (LSeq 1 _, LSeq 1 _)+ f = bimap Seq.promise Seq.promise+ . Seq.partition (\p -> compareOn i p m == LT)++ (l,r) = unzip' . fmap f $ pts++ -- unzip' :: Vector d (a,b) -> (Vector d a, Vector d b)+ unzip' = bimap vectorFromListUnsafe vectorFromListUnsafe . unzip . F.toList+++asSingleton :: (Index' 0 d, Arity d) => PointSet (LSeq 1) d p r+ -> Either (Point d r :+ p) (PointSet (LSeq 2) d p r)+asSingleton v = case Seq.viewl $ v^.element (C :: C 0) of+ _ :< _ Seq.:<< _ -> Right $ coerce v+ p :< _ -> Left p -- only one element
src/Data/Geometry/Line/Internal.hs view
@@ -1,34 +1,39 @@ {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Line.Internal where +import Control.DeepSeq import Control.Lens import qualified Data.Foldable as F import Data.Geometry.Point import Data.Geometry.Properties import Data.Geometry.Vector-import Data.Ord(comparing)+import Data.Ord (comparing) import qualified Data.Traversable as T import Data.Vinyl import Frames.CoRec+import GHC.Generics (Generic) + -------------------------------------------------------------------------------- -- * d-dimensional Lines -- | A line is given by an anchor point and a vector indicating the -- direction.-data Line d r = Line { _anchorPoint :: Point d r- , _direction :: Vector d r- }+data Line d r = Line { _anchorPoint :: !(Point d r)+ , _direction :: !(Vector d r)+ } deriving Generic makeLenses ''Line instance (Show r, Arity d) => Show (Line d r) where show (Line p v) = concat [ "Line (", show p, ") (", show v, ")" ]-deriving instance (Eq r, Arity d) => Eq (Line d r)-deriving instance Arity d => Functor (Line d)-deriving instance Arity d => F.Foldable (Line d)-deriving instance Arity d => T.Traversable (Line d)+deriving instance (Eq r, Arity d) => Eq (Line d r)+deriving instance (NFData r, Arity d) => NFData (Line d r)+deriving instance Arity d => Functor (Line d)+deriving instance Arity d => F.Foldable (Line d)+deriving instance Arity d => T.Traversable (Line d) type instance Dimension (Line d r) = d@@ -82,7 +87,6 @@ -- False onLine :: (Eq r, Fractional r, Arity d) => Point d r -> Line d r -> Bool p `onLine` (Line q v) = p == q || (p .-. q) `isScalarMultipleOf` v- -- TODO: Maybe use a specialize pragma for 2D with an implementation using ccw -- | The intersection of two lines is either: NoIntersection, a point or a line.
src/Data/Geometry/LineSegment.hs view
@@ -6,6 +6,7 @@ , pattern ClosedLineSegment , _SubLine+ , module Data.Geometry.Interval , toLineSegment@@ -18,7 +19,6 @@ import Data.Ord(comparing) import Control.Arrow((&&&))-import Control.Applicative import Control.Lens import Data.Bifunctor import Data.Semigroup@@ -31,7 +31,6 @@ import Data.Geometry.SubLine import Data.Geometry.Transformation import Data.Geometry.Vector-import Data.Range import Data.Vinyl import Data.UnBounded import Frames.CoRec@@ -83,6 +82,7 @@ type EndCore (LineSegment d p r) = Point d r type EndExtra (LineSegment d p r) = p end = unLineSeg.end+ _SubLine :: (Fractional r, Eq r, Arity d) => Iso' (LineSegment d p r) (SubLine d p r) _SubLine = iso segment2SubLine subLineToSegment
+ src/Data/Geometry/PlanarSubdivision.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE TemplateHaskell #-}+module Data.Geometry.PlanarSubdivision where++import Control.Lens+import qualified Data.BalBST as SS+import Data.Bifunctor.Apply+import qualified Data.CircularSeq as C+import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry.Interval+import Data.Geometry.LineSegment+import Data.Geometry.Point+import Data.Geometry.Polygon+import Data.Geometry.Properties+import qualified Data.Map as M+import Data.PlanarGraph+import Data.PlaneGraph+import Data.Semigroup+import Data.Util+import qualified Data.Vector as V+++-- | Note that the functor instance is in v+data VertexData r v = VertexData { _location :: !(Point 2 r)+ , _vData :: !v+ } deriving (Show,Eq,Ord,Functor,Foldable,Traversable)+makeLenses ''VertexData++instance Bifunctor VertexData where+ bimap f g (VertexData p v) = VertexData (fmap f p) (g v)+++data EdgeType = Visible | Invisible deriving (Show,Read,Eq,Ord)++data EdgeData e = EdgeData { _edgeType :: !EdgeType+ , _eData :: !e+ } deriving (Show,Eq,Ord,Functor,Foldable,Traversable)+makeLenses ''EdgeData+++-- | The Face data consists of the data itself and a list of holes+data FaceData h f = FaceData { _holes :: [h]+ , _fData :: !f+ } deriving (Show,Eq,Ord,Functor,Foldable,Traversable)+makeLenses ''FaceData+++newtype PlanarSubdivision s v e f r = PlanarSubdivision { _graph ::+ PlanarGraph s Primal_ (VertexData r v) (EdgeData e) (FaceData (Dart s) f) }+ deriving (Show,Eq)+makeLenses ''PlanarSubdivision++instance Functor (PlanarSubdivision s v e f) where+ fmap f s = s&graph.vertexData.traverse.location %~ fmap f+++--------------------------------------------------------------------------------++-- | Construct a planar subdivision from a polygon+--+-- running time: \(O(n)\).+fromPolygon :: proxy s+ -> SimplePolygon p r+ -> f -- ^ data inside+ -> f -- ^ data outside the polygon+ -> PlanarSubdivision s p () f r+fromPolygon p (SimplePolygon vs) iD oD = PlanarSubdivision g'+ where+ g = fromVertices p vs+ fData' = V.fromList [FaceData [] iD, FaceData [] oD]++ g' = g & faceData .~ fData'+ & dartData.traverse._2 .~ EdgeData Visible ()+-- The following does not really work anymore+-- frompolygon p (MultiPolygon vs hs) iD oD = PlanarSubdivision g'+-- where+-- g = fromVertices p vs+-- hs' = map (\h -> fromPolygon p h oD iD) hs+-- -- note that oD and iD are exchanged+-- fData' = V.fromList [FaceData iD hs', FaceData oD []]+++fromVertices :: proxy s+ -> C.CSeq (Point 2 r :+ p)+ -> PlanarGraph s Primal_ (VertexData r p) () ()+fromVertices _ vs = g&vertexData .~ vData'+ where+ n = length vs+ g = planarGraph [ [ (Dart (Arc i) Positive, ())+ , (Dart (Arc $ (i+1) `mod` n) Negative, ())+ ]+ | i <- [0..(n-1)]]+ vData' = V.fromList . map (\(p :+ e) -> VertexData p e) . F.toList $ vs+++-- | Constructs a connected planar subdivision.+--+-- pre: the segments form a single connected component+-- running time: \(O(n\log n)\)+fromConnectedSegments :: (Foldable f, Ord r, Num r)+ => proxy s+ -> f (LineSegment 2 p r :+ EdgeData e)+ -> PlanarSubdivision s [p] e () r+fromConnectedSegments px ss = PlanarSubdivision $+ fromConnectedSegments' px ss & faceData.traverse %~ FaceData []++-- | Constructs a planar graph+--+-- pre: The segments form a single connected component+--+-- running time: \(O(n\log n)\)+fromConnectedSegments' :: (Foldable f, Ord r, Num r)+ => proxy s+ -> f (LineSegment 2 p r :+ e)+ -> PlanarGraph s Primal_ (VertexData r [p]) e ()+fromConnectedSegments' _ ss = planarGraph dts & vertexData .~ vxData+ where+ pts = M.fromListWith (<>) . concatMap f . zipWith g [0..] . F.toList $ ss+ f (s :+ e) = [ ( s^.start.core+ , SP [s^.start.extra] [(s^.end.core) :+ h Positive e])+ , ( s^.end.core+ , SP [s^.end.extra] [(s^.start.core) :+ h Negative e])+ ]+ g i (s :+ e) = s :+ (Arc i :+ e)+ h d (a :+ e) = (Dart a d, e)++ vts = map (\(p,sp) -> (p,map (^.extra) . sortArround (ext p) <$> sp))+ . M.assocs $ pts+ -- vertex Data+ vxData = V.fromList . map (\(p,sp) -> VertexData p (sp^._1)) $ vts+ -- The darts+ dts = map (^._2._2) vts
src/Data/Geometry/Point.hs view
@@ -2,25 +2,21 @@ {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Point where -import Control.Applicative-import Data.Monoid(mconcat)+import Control.DeepSeq import Control.Lens-import Data.Proxy--import qualified Data.Traversable as T-import qualified Data.Foldable as F-import qualified Data.Vector.Fixed as FV-import qualified Data.List as L-+import qualified Data.CircularList as C+import qualified Data.CircularList.Util as CU import Data.Ext+import qualified Data.Foldable as F import Data.Geometry.Properties import Data.Geometry.Vector-import GHC.TypeLits- import qualified Data.Geometry.Vector as Vec-import qualified Data.CircularList as C-import qualified Data.CircularList.Util as CU-+import qualified Data.List as L+import Data.Proxy+import qualified Data.Traversable as T+import qualified Data.Vector.Fixed as FV+import GHC.Generics (Generic)+import GHC.TypeLits -------------------------------------------------------------------------------- --------------------------------------------------------------------------------@@ -36,7 +32,7 @@ -- * A d-dimensional Point -- | A d-dimensional point.-newtype Point d r = Point { toVec :: Vector d r }+newtype Point d r = Point { toVec :: Vector d r } deriving (Generic) instance (Show r, Arity d) => Show (Point d r) where show (Point (Vector v)) = mconcat [ "Point", show $ FV.length v , " "@@ -45,11 +41,12 @@ -deriving instance (Eq r, Arity d) => Eq (Point d r)-deriving instance (Ord r, Arity d) => Ord (Point d r)-deriving instance Arity d => Functor (Point d)-deriving instance Arity d => F.Foldable (Point d)-deriving instance Arity d => T.Traversable (Point d)+deriving instance (Eq r, Arity d) => Eq (Point d r)+deriving instance (Ord r, Arity d) => Ord (Point d r)+deriving instance Arity d => Functor (Point d)+deriving instance Arity d => F.Foldable (Point d)+deriving instance Arity d => T.Traversable (Point d)+deriving instance (Arity d, NFData r) => NFData (Point d r) type instance NumType (Point d r) = r@@ -103,7 +100,12 @@ coord :: forall proxy i d r. (Index' (i-1) d, Arity d) => proxy i -> Lens' (Point d r) r coord _ = vector . Vec.element (Proxy :: Proxy (i-1)) -+-- | Constructs a point from a list of coordinates+--+-- >>> pointFromList [1,2,3] :: Maybe (Point 3 Int)+-- Just Point3 [1,2,3]+pointFromList :: Arity d => [r] -> Maybe (Point d r)+pointFromList = fmap Point . Vec.vectorFromList --------------------------------------------------------------------------------@@ -124,6 +126,8 @@ -- if we want. pattern Point2 :: r -> r -> Point 2 r pattern Point2 x y <- (_point2 -> (x,y))+ where+ Point2 x y = point2 x y -- | Similarly, we can write: --@@ -136,6 +140,8 @@ -- 3 pattern Point3 :: r -> r -> r -> Point 3 r pattern Point3 x y z <- (_point3 -> (x,y,z))+ where+ Point3 x y z = point3 x y z -- | Construct a 2 dimensional point --@@ -234,21 +240,10 @@ -- and r are colinear with p, the closest one to p is reported first. -- running time: O(n log n) sortArround :: (Ord r, Num r)- => Point 2 r :+ p -> [Point 2 r :+ p] -> [Point 2 r :+ p]+ => Point 2 r :+ q -> [Point 2 r :+ p] -> [Point 2 r :+ p] sortArround c = L.sortBy (ccwCmpAround c) --- sortArround :: (Ord r, Num r)--- => Point 2 r :+ p -> [Point 2 r :+ p] -> [Point 2 r :+ p]--- sortArround p pts = concatMap sortArround' [ topR, topL, bottomL, bottomR ]--- where--- (topL, topR, bottomL, bottomR) = partitionIntoQuadrants p pts--- sortArround' = L.sortBy cmp --- cmp q r = case ccw (p^.core) (q^.core) (r^.core) of--- CCW -> LT--- CW -> GT--- CoLinear -> qdA (p^.core) (q^.core) `compare` qdA (p^.core) (r^.core)- -- | Quadrants of two dimensional points. in CCW order data Quadrant = TopRight | TopLeft | BottomLeft | BottomRight deriving (Show,Read,Eq,Ord,Enum,Bounded)@@ -256,7 +251,7 @@ -- | Quadrants around point c; quadrants are closed on their "previous" -- boundary (i..e the boundary with the previous quadrant in the CCW order), -- open on next boundary. The origin itself is assigned the topRight quadrant-quadrantWith :: (Arity d, Ord r, 1 <=. d, 2 <=. d)+quadrantWith :: (Ord r, 1 <=. d, 2 <=. d) => Point d r :+ q -> Point d r :+ p -> Quadrant quadrantWith (c :+ _) (p :+ _) = case ( (c^.xCoord) `compare` (p^.xCoord) , (c^.yCoord) `compare` (p^.yCoord) ) of@@ -271,7 +266,7 @@ (LT, GT) -> BottomRight -- | Quadrants with respect to the origin-quadrant :: (Arity d, Ord r, Num r, 1 <=. d, 2 <=. d) => Point d r :+ p -> Quadrant+quadrant :: (Ord r, Num r, 1 <=. d, 2 <=. d) => Point d r :+ p -> Quadrant quadrant = quadrantWith (ext origin) -- | Given a center point c, and a set of points, partition the points into@@ -279,7 +274,7 @@ -- reported in the order topLeft, topRight, bottomLeft, bottomRight. The points -- are in the same order as they were in the original input lists. -- Points with the same x-or y coordinate as p, are "rounded" to above.-partitionIntoQuadrants :: (Ord r, Arity d, 1 <=. d, 2 <=. d)+partitionIntoQuadrants :: (Ord r, 1 <=. d, 2 <=. d) => Point d r :+ q -> [Point d r :+ p] -> ( [Point d r :+ p], [Point d r :+ p]
src/Data/Geometry/PolyLine.hs view
@@ -3,21 +3,19 @@ {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.PolyLine where -import Control.Applicative import Control.Lens import Data.Bifunctor import Data.Ext-import qualified Data.Foldable as F import Data.Geometry.Box import Data.Geometry.LineSegment import Data.Geometry.Point import Data.Geometry.Properties import Data.Geometry.Transformation import Data.Geometry.Vector+import qualified Data.List.NonEmpty as NE+import Data.Semigroup import qualified Data.Seq2 as S2 import qualified Data.Sequence as Seq-import Data.Semigroup-import qualified Data.List.NonEmpty as NE -------------------------------------------------------------------------------- -- * d-dimensional Polygonal Lines (PolyLines)
src/Data/Geometry/Polygon.hs view
@@ -1,29 +1,27 @@ {-# LANGUAGE ScopedTypeVariables #-} module Data.Geometry.Polygon where --import Control.Applicative import Control.Lens hiding (Simple) import Data.Bifunctor+import qualified Data.CircularSeq as C import Data.Ext-import Data.Semigroup+import qualified Data.List.NonEmpty as NonEmpty import qualified Data.Foldable as F-import Data.Geometry.Box-import Data.Geometry.Vector import Data.Geometry.Boundary+import Data.Geometry.Box+import Data.Geometry.Line import Data.Geometry.LineSegment import Data.Geometry.Point-import Data.Geometry.Line import Data.Geometry.Properties import Data.Geometry.Transformation-import Data.Maybe(mapMaybe)+import Data.Geometry.Vector+import Data.Maybe (mapMaybe) import Data.Proxy-import Data.Range-import Frames.CoRec(asA)-import qualified Data.CircularSeq as C--- import qualified Data.CircularList as C-import Linear.Vector(Additive(..), (^*), (^/))+import Data.Semigroup+import Data.Util+import Frames.CoRec (asA) + -------------------------------------------------------------------------------- -- * Polygons @@ -61,7 +59,6 @@ instance (Eq p, Eq r) => Eq (Polygon t p r) where (SimplePolygon vs) == (SimplePolygon vs') = vs == vs' (MultiPolygon vs hs) == (MultiPolygon vs' hs') = vs == vs' && hs == hs'- _ == _ = False instance PointFunctor (Polygon t p) where pmap f (SimplePolygon vs) = SimplePolygon (fmap (first f) vs)@@ -70,6 +67,8 @@ instance Num r => IsTransformable (Polygon t p r) where transformBy = transformPointFunctor +instance IsBoxable (Polygon t p r) where+ boundingBox = boundingBoxList' . toListOf (outerBoundary.traverse.core) -- * Functions on Polygons @@ -99,7 +98,7 @@ outerVertex :: Int -> Lens' (Polygon t p r) (Point 2 r :+ p) outerVertex i = outerBoundary.C.item i --- running time: $O(\log i)$+-- running time: \(O(\log i)\) outerBoundaryEdge :: Int -> Polygon t p r -> LineSegment 2 p r outerBoundaryEdge i p = let u = p^.outerVertex i v = p^.outerVertex (i+1)@@ -114,9 +113,11 @@ -- | The vertices in the polygon. No guarantees are given on the order in which -- they appear!-vertices :: Polygon t p r -> [Point 2 r :+ p]-vertices (SimplePolygon vs) = F.toList vs-vertices (MultiPolygon vs hs) = F.toList vs ++ concatMap vertices hs+polygonVertices :: Polygon t p r+ -> NonEmpty.NonEmpty (Point 2 r :+ p)+polygonVertices (SimplePolygon vs) = C.toNonEmpty vs+polygonVertices (MultiPolygon vs hs) =+ sconcat $ C.toNonEmpty vs NonEmpty.:| map polygonVertices hs @@ -127,16 +128,18 @@ outerBoundaryEdges :: Polygon t p r -> C.CSeq (LineSegment 2 p r) outerBoundaryEdges = toEdges . (^.outerBoundary) --- | Gets the i^th edge on the outer boundary of the polygon, that is the edge--- with vertices i and i+1 with respect to the current focus. All indices--- modulo n.--- +-- -- | Gets the i^th edge on the outer boundary of the polygon, that is the edge+---- with vertices i and i+1 with respect to the current focus. All indices+-- -- modulo n.+-- --+ -- | Given the vertices of the polygon. Produce a list of edges. The edges are -- half-open. toEdges :: C.CSeq (Point 2 r :+ p) -> C.CSeq (LineSegment 2 p r)-toEdges vs = let vs' = F.toList vs in- C.fromList $ zipWith (\p q -> LineSegment (Closed p) (Open q)) vs' (tail vs' ++ vs')+toEdges vs = C.zipLWith (\p q -> LineSegment (Closed p) (Open q)) vs (C.rotateR vs)+ -- let vs' = F.toList vs in+ -- C.fromList $ zipWith (\p q -> LineSegment (Closed p) (Open q)) vs' (tail vs' ++ vs') -- | Test if q lies on the boundary of the polygon. Running time: O(n)@@ -231,11 +234,6 @@ GT -> SP lts (gts + 1)) (SP 0 0) ---data SP a b = SP !a !b-- -- | Test if a point lies strictly inside the polgyon. insidePolygon :: (Fractional r, Ord r) => Point 2 r -> Polygon t p r -> Bool q `insidePolygon` pg = q `inPolygon` pg == Inside@@ -286,7 +284,7 @@ -- | Test if the outer boundary of the polygon is in clockwise or counter -- clockwise order. ----- running time: $O(1)$+-- running time: \(O(1)\) -- isCounterClockwise :: (Eq r, Fractional r) => Polygon t p r -> Bool isCounterClockwise = (\x -> x == abs x) . signedArea@@ -294,11 +292,17 @@ -- | Orient the outer boundary to clockwise order-toClockwiseOrder :: (Eq r, Fractional r) => Polygon t p r -> Polygon t p r+toClockwiseOrder :: (Eq r, Fractional r) => Polygon t p r -> Polygon t p r toClockwiseOrder p | isCounterClockwise p = p&outerBoundary %~ C.reverseDirection | otherwise = p +-- | Orient the outer boundary to counter clockwise order+toCounterClockWiseOrder :: (Eq r, Fractional r) => Polygon t p r -> Polygon t p r+toCounterClockWiseOrder p+ | not $ isCounterClockwise p = p&outerBoundary %~ C.reverseDirection+ | otherwise = p+ -- | Convert a Polygon to a simple polygon by forgetting about any holes. asSimplePolygon :: Polygon t p r -> SimplePolygon p r asSimplePolygon poly@(SimplePolygon _) = poly@@ -314,7 +318,7 @@ -- | Finds the extreme points, minimum and maximum, in a given direction ----- running time: $O(n)$+-- running time: \(O(n)\) extremesLinear :: (Ord r, Num r) => Vector 2 r -> Polygon t p r -> (Point 2 r :+ p, Point 2 r :+ p) extremesLinear u p = let vs = p^.outerBoundary
src/Data/Geometry/Polygon/Convex.hs view
@@ -1,61 +1,90 @@ {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-} {-| Module : Data.Geometry.Polygon.Convex Description: Convex Polygons Copyright : (c) Frank Staals License : See LICENCE file -}-module Data.Geometry.Polygon.Convex( ConvexPolygon+module Data.Geometry.Polygon.Convex( ConvexPolygon(..), simplePolygon , merge , lowerTangent, upperTangent , isLeftOf, isRightOf , extremes , maxInDirection++ , leftTangent, rightTangent++ , minkowskiSum+ , bottomMost ) where import Control.Lens hiding ((:<), (:>))-import qualified Data.CircularSeq as C import Data.CircularSeq (focus,CSeq)+import qualified Data.CircularSeq as C import Data.Ext import qualified Data.Foldable as F import Data.Function (on, ) import Data.Geometry+import Data.Geometry.Box (IsBoxable(..)) import Data.Geometry.Polygon (fromPoints, cmpExtreme)+import Data.Geometry.Properties import Data.Maybe (fromJust) import Data.Ord (comparing)-import qualified Data.Sequence as S import Data.Sequence (viewl,viewr, ViewL(..), ViewR(..))+import qualified Data.Sequence as S -import Data.Geometry.Ipe-import Debug.Trace+-- import Data.Geometry.Ipe+import Debug.Trace -------------------------------------------------------------------------------- -type ConvexPolygon = SimplePolygon+newtype ConvexPolygon p r = ConvexPolygon {_simplePolygon :: SimplePolygon p r }+ deriving (Show,Eq,PointFunctor)+makeLenses ''ConvexPolygon +-- | Polygons are per definition 2 dimensional+type instance Dimension (ConvexPolygon p r) = 2+type instance NumType (ConvexPolygon p r) = r -mainWith inFile outFile = do- ePage <- readSinglePageFile inFile- case ePage of- Left err -> error "" -- err- Right (page :: IpePage Rational) -> case page^..content.traverse._withAttrs _IpePath _asSimplePolygon.core of- [] -> error "No points found"- polies@(_:_) -> do- -- let out = [asIpe drawTriangulation dt, asIpe drawTree' emst]- -- print $ length $ edges' dt- -- print $ toPlaneGraph (Proxy :: Proxy DT) dt- -- writeIpeFile outFile . singlePageFromContent $ out- -- mapM_ (print . extremesNaive (v2 1 0)) polies- pure $ map (maxInDirection (v2 (-1) 0)) polies +instance Num r => IsTransformable (ConvexPolygon p r) where+ transformBy = transformPointFunctor +instance IsBoxable (ConvexPolygon p r) where+ boundingBox = boundingBox . _simplePolygon +-- convexPolygon :: SimplePolygon p r -> Maybe (ConvexPolygon p r)+-- convexPolygon p = if isConvex p then Just p else Nothing++-- isConvex :: SimplePolygon p r -> Bool+-- isConvex p = let ch = convexHull $ p^.vertices+-- in p^.vertices.size == ch^.simplePolygon.vertices.size+++-- mainWith inFile outFile = do+-- ePage <- readSinglePageFile inFile+-- case ePage of+-- Left err -> error "" -- err+-- Right (page :: IpePage Rational) -> case page^..content.traverse._withAttrs _IpePath _asSimplePolygon.core of+-- [] -> error "No points found"+-- polies@(_:_) -> do+-- -- let out = [asIpe drawTriangulation dt, asIpe drawTree' emst]+-- -- print $ length $ edges' dt+-- -- print $ toPlaneGraph (Proxy :: Proxy DT) dt+-- -- writeIpeFile outFile . singlePageFromContent $ out+-- -- mapM_ (print . extremesNaive (v2 1 0)) polies+-- pure $ map (flip rightTangent (point2 80 528)) polies++++ -- | Finds the extreme points, minimum and maximum, in a given direction -- -- pre: The input polygon is strictly convex. ----- running time: $O(\log n)$+-- running time: \(O(\log n)\) -- -- extremes :: (Num r, Ord r) => Vector 2 r -> ConvexPolygon p r@@ -68,10 +97,16 @@ -- -- pre: The input polygon is strictly convex. ----- running time: $O(\log^2 n)$-maxInDirection :: (Num r, Ord r) => Vector 2 r -> ConvexPolygon p r -> Point 2 r :+ p-maxInDirection u p = findMaxStart . C.rightElements $ p^.outerBoundary+-- running time: \(O(\log^2 n)\)+maxInDirection :: (Num r, Ord r) => Vector 2 r -> ConvexPolygon p r -> Point 2 r :+ p+maxInDirection u = findMaxWith (cmpExtreme u)++findMaxWith :: (Point 2 r :+ p -> Point 2 r :+ p -> Ordering)+ -> ConvexPolygon p r -> Point 2 r :+ p+findMaxWith cmp p = findMaxStart . C.rightElements . getVertices $ p where+ p' >=. q = (p' `cmp` q) /= LT+ findMaxStart s@(viewl -> (a:<r)) | isLocalMax r a r = a | otherwise = findMax s@@ -91,7 +126,6 @@ (True,False,_) -> findMax (ac |> c) (True,True,True) -> findMax (ac |> c) (True,True,False) -> findMax (c <| cb)- (False,True,_) -> findMax (c <| cb) (False,False,False) -> findMax (ac |> c) (False,False,True) -> findMax (c <| cb)@@ -103,22 +137,33 @@ isLocalMax _ _ _ = True -- the Edge from a to b is upwards w.r.t b if a is not larger than b- isUpwards a (viewl -> b :< _) = cmpExtreme u a b /= GT+ isUpwards a (viewl -> b :< _) = (a `cmp` b) /= GT isUpwards _ _ = error "isUpwards: no edge endpoint" - p' >=. q = cmpExtreme u p' q /= LT +tangentCmp :: (Num r, Ord r)+ => Point 2 r -> Point 2 r :+ p -> Point 2 r :+ q -> Ordering+tangentCmp o p q = case ccw o (p^.core) (q^.core) of+ CCW -> LT -- q is left of the line from o to p+ CoLinear -> EQ -- q is *on* the line from o to p+ CW -> GT -- q is right of the line from o to p + -- | Given a convex polygon poly, and a point outside the polygon, find the--- right tangent of q and the polygon, i.e. the vertex v of the convex polygon+-- left tangent of q and the polygon, i.e. the vertex v of the convex polygon -- s.t. the polygon lies completely to the right of the line from q to v. ----- running time: $O(\log^2 n)$.--- rightTangent :: ConvexPolygon p r -> Point 2 r -> Point 2 r :+ p--- rightTangent poly q = undefined--- TODO: same as maxInDirection, but with a slightly different ordering-+-- running time: \(O(\log^2 n)\).+leftTangent :: (Ord r, Num r) => ConvexPolygon p r -> Point 2 r -> Point 2 r :+ p+leftTangent poly q = findMaxWith (tangentCmp q) poly +-- | Given a convex polygon poly, and a point outside the polygon, find the+-- right tangent of q and the polygon, i.e. the vertex v of the convex polygon+-- s.t. the polygon lies completely to the left of the line from q to v.+--+-- running time: \(O(\log^2 n)\).+rightTangent :: (Ord r, Num r) => ConvexPolygon p r -> Point 2 r -> Point 2 r :+ p+rightTangent poly q = findMaxWith (flip $ tangentCmp q) poly @@ -146,17 +191,17 @@ -- Running time: O(n+m), where n and m are the sizes of the two polygons respectively merge :: (Num r, Ord r) => ConvexPolygon p r -> ConvexPolygon p r -> (ConvexPolygon p r, LineSegment 2 p r, LineSegment 2 p r)-merge lp rp = (fromPoints $ r' ++ l', lt, ut)+merge lp rp = (ConvexPolygon . fromPoints $ r' ++ l', lt, ut) where lt@(ClosedLineSegment a b) = lowerTangent lp rp ut@(ClosedLineSegment c d) = upperTangent lp rp - takeUntil p xs = let (xs',x:_) = break p xs in xs' ++ [x] rightElems = F.toList . C.rightElements+ takeAndRotate x y = takeUntil (coreEq x) . rightElems . rotateTo' y . getVertices - r' = takeUntil (coreEq b) . rightElems . rotateTo' d $ rp^.outerBoundary- l' = takeUntil (coreEq c) . rightElems . rotateTo' a $ lp^.outerBoundary+ r' = takeAndRotate b d rp+ l' = takeAndRotate c a lp rotateTo' :: Eq a => (a :+ b) -> CSeq (a :+ b) -> CSeq (a :+ b)@@ -166,6 +211,8 @@ coreEq :: Eq a => (a :+ b) -> (a :+ b) -> Bool coreEq = (==) `on` (^.core) ++ -- | Compute the lower tangent of the two polgyons -- -- pre: - polygons lp and rp have at least 1 vertex@@ -174,11 +221,11 @@ -- - The vertices of the polygons are given in clockwise order -- -- Running time: O(n+m), where n and m are the sizes of the two polygons respectively-lowerTangent :: (Num r, Ord r)- => ConvexPolygon p r- -> ConvexPolygon p r- -> LineSegment 2 p r-lowerTangent (SimplePolygon l) (SimplePolygon r) = rotate xx yy zz zz''+lowerTangent :: (Num r, Ord r)+ => ConvexPolygon p r+ -> ConvexPolygon p r+ -> LineSegment 2 p r+lowerTangent (getVertices -> l) (getVertices -> r) = rotate xx yy zz zz'' where xx = rightMost l yy = leftMost r@@ -186,6 +233,7 @@ zz = pred' yy zz'' = succ' xx + rotate x y z z'' | focus z `isRightOf` (focus x, focus y) = rotate x z (pred' z) z'' -- rotate the right polygon CCW@@ -208,11 +256,11 @@ -- - The vertices of the polygons are given in clockwise order -- -- Running time: O(n+m), where n and m are the sizes of the two polygons respectively-upperTangent :: (Num r, Ord r)- => ConvexPolygon p r- -> ConvexPolygon p r- -> LineSegment 2 p r-upperTangent (SimplePolygon l) (SimplePolygon r) = rotate xx yy zz zz'+upperTangent :: (Num r, Ord r)+ => ConvexPolygon p r+ -> ConvexPolygon p r+ -> LineSegment 2 p r+upperTangent (getVertices -> l) (getVertices -> r) = rotate xx yy zz zz' where xx = rightMost l yy = leftMost r@@ -236,18 +284,60 @@ => Point 2 r :+ p -> (Point 2 r :+ p', Point 2 r :+ p'') -> Bool a `isLeftOf` (b,c) = ccw (b^.core) (c^.core) (a^.core) == CCW +-------------------------------------------------------------------------------- +-- | Computes the Minkowski sum of the two input polygons with $n$ and $m$+-- vertices respectively.+--+-- pre: input polygons are in CCW order.+--+-- running time: \(O(n+m)\).+minkowskiSum :: (Ord r, Num r)+ => ConvexPolygon p r -> ConvexPolygon q r -> ConvexPolygon (p,q) r+minkowskiSum p q = ConvexPolygon . fromPoints $ merge' (f p) (f q)+ where+ f p' = let xs@(S.viewl -> (v :< _)) = C.asSeq . bottomMost . getVertices $ p'+ in F.toList $ xs |> v+ (v :+ ve) .+. (w :+ we) = v .+^ (toVec w) :+ (ve,we)++ cmpAngle v v' w w' =+ ccwCmpAround (ext $ origin) (ext . Point $ v' .-. v) (ext . Point $ w' .-. w)++ merge' [_] [_] = []+ merge' vs@[v] (w:ws) = v .+. w : merge' vs ws+ merge' (v:vs) ws@[w] = v .+. w : merge' vs ws+ merge' (v:v':vs) (w:w':ws) = v .+. w :+ case cmpAngle (v^.core) (v'^.core) (w^.core) (w'^.core) of+ LT -> merge' (v':vs) (w:w':ws)+ GT -> merge' (v:v':vs) (w':ws)+ EQ -> merge' (v':vs) (w':ws)+ merge' _ _ = error $ "minkowskiSum: Should not happen"++++ -------------------------------------------------------------------------------- --- | Rotate to the rightmost point+-- | Rotate to the rightmost point (rightmost and topmost in case of ties) rightMost :: Ord r => CSeq (Point 2 r :+ p) -> CSeq (Point 2 r :+ p)-rightMost xs = let m = F.maximumBy (comparing (^.core.xCoord)) xs in rotateTo' m xs+rightMost xs = let m = F.maximumBy (comparing (^.core)) xs in rotateTo' m xs --- | Rotate to the leftmost point+-- | Rotate to the leftmost point (and bottommost in case of ties) leftMost :: Ord r => CSeq (Point 2 r :+ p) -> CSeq (Point 2 r :+ p)-leftMost xs = let m = F.minimumBy (comparing (^.core.xCoord)) xs in rotateTo' m xs+leftMost xs = let m = F.minimumBy (comparing (^.core)) xs in rotateTo' m xs +-- | Rotate to the bottommost point (and leftmost in case of ties)+bottomMost :: Ord r => CSeq (Point 2 r :+ p) -> CSeq (Point 2 r :+ p)+bottomMost xs = let f p = (p^.core.yCoord,p^.core.xCoord)+ m = F.minimumBy (comparing f) xs+ in rotateTo' m xs +++-- | Helper to get the vertices of a convex polygon+getVertices :: ConvexPolygon p r -> CSeq (Point 2 r :+ p)+getVertices = view (simplePolygon.outerBoundary)+ -- -- | rotate right while p 'current' 'rightNeibhour' is true -- rotateRWhile :: (a -> a -> Bool) -> C.CList a -> C.CList a -- rotateRWhile p lst@@ -258,3 +348,15 @@ -- xs' = C.rotR xs -- nxt = focus' xs' -- in if p cur nxt then go xs' else xs++test1 :: Num r => ConvexPolygon () r+test1 = ConvexPolygon . fromPoints . map ext . reverse $ [origin, point2 1 4, point2 5 6, point2 10 3]++test2 :: Num r => ConvexPolygon () r+test2 = ConvexPolygon . fromPoints . map ext . reverse $ [point2 11 6, point2 10 10, point2 15 18, point2 12 5]++testA :: Num r => ConvexPolygon () r+testA = ConvexPolygon . fromPoints . map ext $ [origin, point2 5 1, point2 2 2]++testB :: Num r => ConvexPolygon () r+testB = ConvexPolygon . fromPoints . map ext $ [origin, point2 5 3, point2 (-2) 2, point2 (-2) 1]
src/Data/Geometry/Properties.hs view
@@ -4,8 +4,7 @@ {-# LANGUAGE DefaultSignatures #-} module Data.Geometry.Properties where -import Control.Applicative-import Data.Maybe(isJust)+import Data.Maybe(isNothing) import Data.Proxy import Data.Vinyl.Core import Data.Vinyl.Functor@@ -66,13 +65,13 @@ type AlwaysTrueIntersection g h = RecApplicative (IntersectionOf g h) --- | Returns True iff the resultt is a NoIntersection+-- | Returns True iff the result is *not* a NoIntersection defaultNonEmptyIntersection :: forall g h proxy. ( NoIntersection ∈ IntersectionOf g h , RecApplicative (IntersectionOf g h) ) => proxy g -> proxy h -> Intersection g h -> Bool-defaultNonEmptyIntersection _ _ = isJust . asA (Proxy :: Proxy NoIntersection)+defaultNonEmptyIntersection _ _ = isNothing . asA (Proxy :: Proxy NoIntersection) -- type IsAlwaysTrueFromEither a b = (VTL.RIndex b [a,b] ~ ((VTL.S VTL.Z)))
+ src/Data/Geometry/SegmentTree.hs view
@@ -0,0 +1,18 @@+{-# LANGUAGE TemplateHaskell #-}+module Data.Geometry.SegmentTree( module Data.Geometry.SegmentTree.Generic+ ) where+++import Data.Ext+import Data.Semigroup+import Control.Lens+import Data.List.NonEmpty (NonEmpty)+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.List as List+import Data.BinaryTree+import Data.Range+import Data.Geometry.Interval+import Data.Geometry.SegmentTree.Generic+import Data.Geometry.Interval.Util+import Data.Geometry.Properties+import Data.Geometry.IntervalTree (IntervalLike(..))
+ src/Data/Geometry/SegmentTree/Generic.hs view
@@ -0,0 +1,307 @@+{-# LANGUAGE TemplateHaskell #-}+module Data.Geometry.SegmentTree.Generic( NodeData(..), splitPoint, range, assoc+ , LeafData(..), atomicRange, leafAssoc++ , SegmentTree(..), unSegmentTree+ , Assoc(..)++ , createTree, fromIntervals+ , insert, delete++ , search, stab++ , I(..), fromIntervals'++ , Count(..)+ ) where+++import Control.DeepSeq+import Control.Lens+import Data.BinaryTree+import Data.Ext+import Data.Geometry.Interval+import Data.Geometry.Interval.Util+import Data.Geometry.IntervalTree (IntervalLike(..))+import Data.Geometry.Properties+import qualified Data.List as List+import Data.List.NonEmpty (NonEmpty)+import qualified Data.List.NonEmpty as NonEmpty+import Data.Range+import Data.Semigroup+import GHC.Generics (Generic)++--------------------------------------------------------------------------------++-- | Internal nodes store a split point, the range, and an associated data structure+data NodeData v r = NodeData { _splitPoint :: !(EndPoint r)+ , _range :: !(Range r)+ , _assoc :: !v+ } deriving (Show,Eq,Functor,Generic)+makeLenses ''NodeData+instance (NFData v, NFData r) => NFData (NodeData v r)++-- | We store atomic ranges a bit more efficiently.+data AtomicRange r = Singleton !r | AtomicRange deriving (Show,Eq,Functor,Generic)+instance NFData r => NFData (AtomicRange r)++-- | Leaf nodes store an atomic range, and an associated data structure.+data LeafData v r = LeafData { _atomicRange :: !(AtomicRange r)+ , _leafAssoc :: !v+ } deriving (Show,Eq,Functor,Generic)+makeLenses ''LeafData+instance (NFData v, NFData r) => NFData (LeafData v r)++--------------------------------------------------------------------------------++-- | Segment tree on a Fixed set of endpoints+newtype SegmentTree v r =+ SegmentTree { _unSegmentTree :: BinLeafTree (NodeData v r) (LeafData v r) }+ deriving (Show,Eq,Generic,NFData)+makeLenses ''SegmentTree+++-- rangeOf :: BinLeafTree (NodeData v r) (LeafData v r) -> Range (UnBounded r)+-- rangeOf (Node _ x _) = Val <$> x^.range+-- rangeOf (Leaf x) = case x^.atomicRange of+-- Singleton r -> ClsoedRange (Val r) (Val r)+-- AtomicRange -> OpenRange MinInfinity MaxInfinity+++data BuildLeaf a = LeafSingleton a | LeafRange a a deriving (Show,Eq)++-- | Given a sorted list of endpoints, without duplicates, construct a segment tree+--+--+-- \(O(n)\) time+createTree :: NonEmpty r -> v -> SegmentTree v r+-- createTree (r NonEmpty.:| []) v = SegmentTree . Leaf $ LeafData (Singleton r) v+createTree pts v = SegmentTree . fmap h . foldUpData f g . fmap _unElem+ . asBalancedBinLeafTree $ ranges+ where+ h (LeafSingleton r) = LeafData (Singleton r) v+ h (LeafRange _ _) = LeafData AtomicRange v++ f l _ r = let m = l^.range.upper+ ll = l^.range.lower+ rr = r^.range.upper+ in NodeData m (Range ll rr) v+ -- | Singletons map to closed singleton ranges, Ranges map to open ranges+ g (LeafSingleton r) = NodeData (Closed r) (ClosedRange r r) v+ g (LeafRange s r) = NodeData (Open r) (OpenRange s r) v+++ ranges = interleave (fmap LeafSingleton pts) ranges'+ ranges' = zipWith LeafRange (NonEmpty.toList pts) (NonEmpty.tail pts)+++++-- | Interleaves the two lists+--+-- >>> interleave (NonEmpty.fromList ["0","1","2"]) ["01","12"]+-- "0" :| ["01","1","12","2"]+interleave :: NonEmpty a -> [a] -> NonEmpty a+interleave (x NonEmpty.:| xs) ys = x NonEmpty.:| concat (zipWith (\a b -> [a,b]) ys xs)+++-- | Build a SegmentTree+--+-- \(O(n \log n)\)+fromIntervals :: (Ord r, Eq p, Assoc v i, IntervalLike i, Monoid v, NumType i ~ r)+ => (Interval p r -> i)+ -> NonEmpty (Interval p r) -> SegmentTree v r+fromIntervals f is = foldr (insert . f) (createTree pts mempty) is+ where+ endPoints (toRange -> Range' a b) = [a,b]+ pts = nub' . NonEmpty.sort . NonEmpty.fromList . concatMap endPoints $ is+ nub' = fmap NonEmpty.head . NonEmpty.group1++-- | lists all intervals+toList :: SegmentTree v r -> [i]+toList = undefined++--------------------------------------------------------------------------------+-- * Searching++-- | Search for all intervals intersecting x+--+-- \(O(\log n + k)\) where \(k\) is the output size+search :: (Ord r, Monoid v) => r -> SegmentTree v r -> v+search x = mconcat . stab x++++inAtomicRange :: Eq r => r -> AtomicRange r -> Bool+x `inAtomicRange` (Singleton r) = x == r+_ `inAtomicRange` AtomicRange = True+++-- | Returns the associated values of the nodes on the search path to x+--+-- \(O(\log n)\)+stab :: Ord r => r -> SegmentTree v r -> [v]+stab x (SegmentTree t) = stabRoot t+ where+ stabRoot (Leaf (LeafData rr v))+ | x `inAtomicRange` rr = [v]+ | otherwise = []+ stabRoot (Node l (NodeData m rr v) r) = case (x `inRange` rr, Closed x <= m) of+ (False,_) -> []+ (True,True) -> v : stab' l+ _ -> v : stab' r++ stab' (Leaf (LeafData rr v)) | x `inAtomicRange` rr = [v]+ | otherwise = []+ stab' (Node l (NodeData m _ v) r) | Closed x <= m = v : stab' l+ | otherwise = v : stab' r+++--------------------------------------------------------------------------------+-- * Inserting intervals++-- | Class for associcated data structures+class Measured v i => Assoc v i where+ insertAssoc :: i -> v -> v+ deleteAssoc :: i -> v -> v++-- | Gets the range associated with this node+getRange :: BinLeafTree (NodeData v r) (LeafData t r) -> Maybe (Range r)+getRange (Leaf (LeafData (Singleton r) _)) = Just $ Range (Closed r) (Closed r)+getRange (Leaf _) = Nothing+getRange (Node _ nd _) = Just $ nd^.range++coversAtomic :: Ord r+ => Range r -> Range r -> AtomicRange r -> Bool+coversAtomic ri _ (Singleton r) = r `inRange` ri+coversAtomic ri inR AtomicRange = ri `covers` inR++-- | Pre: the interval should have one of the endpoints on which the tree is built.+insert :: (Assoc v i, NumType i ~ r, Ord r, IntervalLike i)+ => i -> SegmentTree v r -> SegmentTree v r+insert i (SegmentTree t) = SegmentTree $ insertRoot t+ where+ ri@(Range a b) = toRange i+ insertRoot t' = maybe t' (flip insert' t') $ getRange t'++ insert' inR lf@(Leaf nd@(LeafData rr _))+ | coversAtomic ri inR rr = Leaf $ nd&leafAssoc %~ insertAssoc i+ | otherwise = lf+ insert' (Range c d) (Node l nd@(NodeData m rr _) r)+ | ri `covers` rr = Node l (nd&assoc %~ insertAssoc i) r+ | otherwise = Node l' nd r'+ where+ -- check if the range intersects the range of the left subtree+ l' = if a <= m then insert' (Range c m) l else l+ r' = if m < b then insert' (Range (toOpen m) d) r else r++ toOpen = Open . view unEndPoint++-- | Delete an interval from the tree+--+-- pre: The segment is in the tree!+delete :: (Assoc v i, NumType i ~ r, Ord r, IntervalLike i)+ => i -> SegmentTree v r -> SegmentTree v r+delete i (SegmentTree t) = SegmentTree $ delete' t+ where+ (Range a b) = toRange i++ delete' (Leaf ld) = Leaf $ ld&leafAssoc %~ deleteAssoc i+ delete' (Node l nd@(_splitPoint -> m) r)+ | b <= m = Node (delete' l) (nd&assoc %~ deleteAssoc i) r+ | otherwise = Node l (nd&assoc %~ deleteAssoc i) (delete' r)++ -- delete'' (Leaf ld) = Leaf $ ld&leafAssoc %~ deleteAssoc i+ -- delete'' (Node l nd r) = Node l (nd&assoc %~ deleteAssoc i) r++ -- deleteL (Leaf ld) = Leaf $ ld&leafAssoc %~ deleteAssoc i+ -- deleteL (Node l nd@(_splitPoint -> m) r)+ -- | a <= m = Node (deleteL l) (nd&assoc %~ deleteAssoc i) (delete'' r)+ -- | otherwise = Node l nd (deleteL r)++ -- deleteR (Leaf ld) = Leaf $ ld&leafAssoc %~ deleteAssoc i+ -- deleteR (Node l nd@(_splitPoint -> m) r)+ -- | m <= b = Node (delete'' l) (nd&assoc %~ deleteAssoc i) (deleteR r)+ -- | otherwise = Node (deleteR l) nd r+++--------------------------------------------------------------------------------+-- * Listing the intervals stabbed++-- | Interval+newtype I a = I { _unI :: a} deriving (Show,Read,Eq,Ord,Generic,NFData)++type instance NumType (I a) = NumType a++instance Measured [I a] (I a) where+ measure = (:[])++instance Eq a => Assoc [I a] (I a) where+ insertAssoc = (:)+ deleteAssoc = List.delete++-- instance Measured [Interval p r] (Interval p r) where+-- measure = (:[])++-- instance (Eq p, Eq r) => Assoc [Interval p r] (Interval p r) where+-- insertAssoc = (:)+-- deleteAssoc = List.delete+++instance IntervalLike a => IntervalLike (I a) where+ toRange = toRange . _unI+++fromIntervals' :: (Eq p, Ord r)+ => NonEmpty (Interval p r) -> SegmentTree [I (Interval p r)] r+fromIntervals' = fromIntervals I+++--------------------------------------------------------------------------------+-- * Counting the number of segments intersected++newtype Count = Count { getCount :: Int}+ deriving (Show,Eq,Ord,Num,Integral,Enum,Real,Generic,NFData)++newtype C a = C { _unC :: a} deriving (Show,Read,Eq,Ord,Generic,NFData)++instance Semigroup Count where+ a <> b = Count $ getCount a + getCount b++instance Measured Count (C i) where+ measure _ = 1++instance Assoc Count (C i) where+ insertAssoc _ v = v + 1+ deleteAssoc _ v = v - 1+++--------------------------------------------------------------------------------+-- * Testing stuff++test'' = fromIntervals' . NonEmpty.fromList $ test+test = [Interval (Closed (238 :+ ())) (Open (309 :+ ())), Interval (Closed (175 :+ ())) (Closed (269 :+ ())),Interval (Closed (255 :+ ())) (Open (867 :+ ())),Interval (Open (236 :+ ())) (Closed (863 :+ ())),Interval (Open (150 :+ ())) (Closed (161 :+ ())),Interval (Closed (35 :+ ())) (Closed (77 :+ ()))]+++-- q = [78]++-- test = fromIntervals' . NonEmpty.fromList $ [ closedInterval 0 10+-- , closedInterval 5 15+-- , closedInterval 1 4+-- , closedInterval 3 9+-- ]+tst = fromIntervals' . NonEmpty.fromList $ [ closedInterval 1 6+ , closedInterval 2 6+ -- , Interval (Closed $ ext 0) (Open $ ext 1)+ ]++++closedInterval a b = ClosedInterval (ext a) (ext b)++showT :: (Show r, Show v) => SegmentTree v r -> String+showT = drawTree . _unSegmentTree+++test' :: (Show r, Num r, Ord r, Enum r) => SegmentTree [I (Interval () r)] r+test' = insert (I $ closedInterval 6 14) $ createTree (NonEmpty.fromList [2,4..20]) []
src/Data/Geometry/Slab.hs view
@@ -2,25 +2,20 @@ {-# Language TemplateHaskell #-} module Data.Geometry.Slab where --import Control.Applicative-import Control.Lens(makeLenses, (^.),(%~),(.~),(&), Lens', both)-import Data.Bitraversable+import Control.Lens (makeLenses, (^.),(%~),(.~),(&), both)+import Data.Bifunctor import Data.Ext import qualified Data.Foldable as F-import Data.Geometry.Properties-import Data.Geometry.Interval-import Data.Geometry.Point import Data.Geometry.Box.Internal-import Data.Geometry.LineSegment+import Data.Geometry.Interval import Data.Geometry.Line+import Data.Geometry.LineSegment+import Data.Geometry.Point+import Data.Geometry.Properties import Data.Geometry.SubLine-import Data.Range-import Data.Semigroup import qualified Data.Traversable as T import Data.Vinyl import Frames.CoRec-import Data.Bifunctor -------------------------------------------------------------------------------- @@ -72,7 +67,7 @@ instance (Slab Horizontal a r) `IsIntersectableWith` (Slab Vertical a r) where nonEmptyIntersection _ _ _ = True - (Slab h) `intersect` (Slab v) = coRec $ fromCornerPoints low high+ (Slab h) `intersect` (Slab v) = coRec $ box low high where low = point2 (v^.start.core) (h^.start.core) :+ (v^.start.extra, h^.start.extra) high = point2 (v^.end.core) (h^.end.core) :+ (v^.end.extra, h^.end.extra)@@ -127,11 +122,26 @@ type instance IntersectionOf (SubLine 2 p r) (Slab o a r) =- [NoIntersection, SubLine 2 a r, LineSegment 2 a r]+ [NoIntersection, SubLine 2 () r] instance (Fractional r, Ord r, HasBoundingLines o) => SubLine 2 a r `IsIntersectableWith` (Slab o a r) where nonEmptyIntersection = defaultNonEmptyIntersection - (SubLine l r) `intersect` (Slab i) = undefined+ sl@(SubLine l _) `intersect` s = match (l `intersect` s) $+ (H $ \NoIntersection -> coRec NoIntersection)+ :& (H $ \(Line _ _) -> coRec $ dropExtra sl)+ :& (H $ \seg -> match (sl `intersect` (seg^._SubLine)) $+ (H $ \NoIntersection -> coRec NoIntersection)+ :& (H $ \p@(Point2 _ _) -> coRec $ singleton p)+ :& (H $ \ss -> coRec $ dropExtra ss)+ :& RNil)+ :& RNil+ where+ dropExtra sub = sub&subRange %~ bimap (const ()) id+ singleton p = let x = ext $ toOffset p l in SubLine l (ClosedInterval x x)+++test :: SubLine 2 () Double+test = (ClosedLineSegment (ext origin) (ext origin))^._SubLine
src/Data/Geometry/SubLine.hs view
@@ -1,20 +1,18 @@ {-# LANGUAGE TemplateHaskell #-} module Data.Geometry.SubLine where -import Control.Applicative+import Control.Lens+import Data.Ext import qualified Data.Foldable as F+import Data.Geometry.Interval+import Data.Geometry.Line.Internal+import Data.Geometry.Point+import Data.Geometry.Properties+import Data.Geometry.Vector import qualified Data.Traversable as T-import Control.Lens-import Data.Ext-import Data.Geometry.Interval-import Data.Geometry.Line.Internal-import Data.Geometry.Point-import Data.Geometry.Properties-import Data.Geometry.Vector-import Data.Range-import Data.UnBounded+import Data.UnBounded+import Data.Vinyl import Frames.CoRec-import Data.Vinyl --------------------------------------------------------------------------------
src/Data/Geometry/Transformation.hs view
@@ -7,19 +7,15 @@ {-# LANGUAGE DeriveFunctor #-} module Data.Geometry.Transformation where --import Control.Applicative-import Control.Lens(lens,Lens',set)+import Control.Lens (lens,Lens',set) import Data.Geometry.Point import Data.Geometry.Properties import Data.Geometry.Vector+import qualified Data.Geometry.Vector as V import Data.Proxy--import GHC.TypeLits-import Linear.Matrix((!*),(!*!))- import qualified Data.Vector.Fixed as FV-import qualified Data.Geometry.Vector as V+import GHC.TypeLits+import Linear.Matrix ((!*),(!*!)) -------------------------------------------------------------------------------- -- * Matrices
src/Data/Geometry/Vector.hs view
@@ -7,15 +7,16 @@ , scalarMultiple ) where -import Data.Monoid-import qualified Data.Foldable as F+import qualified Data.Foldable as F import Data.Geometry.Vector.VectorFixed import Data.Geometry.Vector.VectorFixed as GV import Data.Maybe-import qualified Data.Vector.Fixed as FV-import Linear.Affine(Affine(..), qdA, distanceA)-import Linear.Metric(dot,norm)+import qualified Data.Vector.Fixed as FV+import Linear.Affine (Affine(..), qdA, distanceA)+import Linear.Metric (dot,norm) import Linear.Vector as LV++-------------------------------------------------------------------------------- -- | Test if v is a scalar multiple of u.
src/Data/Geometry/Vector/VectorFixed.hs view
@@ -1,27 +1,19 @@-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} module Data.Geometry.Vector.VectorFixed where -import Data.Monoid-import Control.Applicative+import Control.DeepSeq import Control.Lens-import Data.Foldable-import Data.Traversable-+import qualified Data.Foldable as F+import qualified Data.Vector.Fixed as V import Data.Vector.Fixed.Boxed-import Data.Vector.Fixed.Cont(Z, S, ToPeano)-+import Data.Vector.Fixed.Cont (Z, S, ToPeano)+import GHC.Generics (Generic) import GHC.TypeLits--import Linear.Affine+import Linear.Affine (Affine(..)) import Linear.Metric-import Linear.Vector--import qualified Data.Vector.Fixed as V- import qualified Linear.V3 as L3-+import Linear.Vector -------------------------------------------------------------------------------- @@ -34,7 +26,7 @@ -- | Datatype representing d dimensional vectors. Our implementation wraps the -- implementation provided by fixed-vector. newtype Vector (d :: Nat) (r :: *) = Vector { _unV :: Vec (ToPeano d) r }-+ deriving (Generic) unV :: Lens' (Vector d r) (Vec (ToPeano d) r) unV = lens _unV (const Vector)@@ -59,9 +51,16 @@ | otherwise = pure v +vectorFromList :: Arity d => [a] -> Maybe (Vector d a)+vectorFromList = fmap Vector . V.fromListM++vectorFromListUnsafe :: Arity d => [a] -> Vector d a+vectorFromListUnsafe = Vector . V.fromList++ instance (Show r, Arity d) => Show (Vector d r) where show (Vector v) = mconcat [ "Vector", show $ V.length v , " "- , show $ toList v+ , show $ F.toList v ] deriving instance (Eq r, Arity d) => Eq (Vector d r)@@ -74,7 +73,9 @@ instance Arity d => Traversable (Vector d) where traverse f (Vector v) = Vector <$> traverse f v +deriving instance (Arity d, NFData r) => NFData (Vector d r) + instance Arity d => Additive (Vector d) where zero = pure 0 (Vector u) ^+^ (Vector v) = Vector $ V.zipWith (+) u v@@ -144,7 +145,7 @@ instance Prefix Z d where prefix' _ = V.vector V.empty -instance (V.Arity i, V.Arity d, V.Index i d, Prefix i d) => Prefix (S i) (S d) where+instance (V.Arity i, V.Arity d, Prefix i d) => Prefix (S i) (S d) where prefix' v = V.vector $ V.head v `V.cons` (prefix' $ V.tail v)
src/Data/Permutation.hs view
@@ -54,6 +54,8 @@ -- | Lookup the indices of an element, i.e. in which orbit the item is, and the -- index within the orbit.+--+-- runnign time: \(O(1)\) lookupIdx :: Enum a => Permutation a -> a -> (Int,Int) lookupIdx perm x = perm^.indexes.ix' (fromEnum x)
src/Data/PlanarGraph.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE ScopedTypeVariables #-} module Data.PlanarGraph( Arc(..) , Direction(..), rev @@ -15,7 +16,7 @@ , embedding, vertexData, dartData, faceData , edgeData - , planarGraph, planarGraph'+ , planarGraph, planarGraph', fromAdjacencyLists , numVertices, numDarts, numEdges, numFaces , darts', darts, edges', edges, vertices', vertices, faces', faces@@ -29,16 +30,38 @@ , dual , FaceId(..)- , leftFace, rightFace, boundary+ , leftFace, rightFace, boundary, boundaryVertices++++ , EdgeOracle+ , edgeOracle, buildEdgeOracle+ , findEdge+ , hasEdge ) where +import Control.Applicative (Alternative(..)) import Control.Lens import Control.Monad (forM_)+import Control.Monad.ST (ST)+import Control.Monad.State.Strict+import Data.Bifunctor+import Data.Bitraversable+import Data.Ext+import qualified Data.Foldable as F+import Data.Maybe (catMaybes, isJust) import Data.Permutation+import Data.Semigroup (Semigroup(..))+import Data.Traversable (fmapDefault,foldMapDefault)+import Data.Util import qualified Data.Vector as V-import qualified Data.Foldable as F+import qualified Data.Vector.Generic as GV import qualified Data.Vector.Mutable as MV+import qualified Data.Vector.Unboxed as UV+import qualified Data.Vector.Unboxed.Mutable as UMV ++import Debug.Trace -------------------------------------------------------------------------------- --------------------------------------------------------------------------------@@ -47,23 +70,23 @@ -- let dart i s = Dart (Arc i) (read s) -- (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..] -- myGraph :: PlanarGraph Test Primal_ () String ()--- myGraph = planarGraph' [ [ (Dart aA Negative, "a-")--- , (Dart aC Positive, "c+")--- , (Dart aB Positive, "b+")--- , (Dart aA Positive, "a+")--- ]--- , [ (Dart aE Negative, "e-")--- , (Dart aB Negative, "b-")--- , (Dart aD Negative, "d-")--- , (Dart aG Positive, "g+")--- ]--- , [ (Dart aE Positive, "e+")--- , (Dart aD Positive, "d+")--- , (Dart aC Negative, "c-")--- ]--- , [ (Dart aG Negative, "g-")--- ]--- ]+-- myGraph = planarGraph [ [ (Dart aA Negative, "a-")+-- , (Dart aC Positive, "c+")+-- , (Dart aB Positive, "b+")+-- , (Dart aA Positive, "a+")+-- ]+-- , [ (Dart aE Negative, "e-")+-- , (Dart aB Negative, "b-")+-- , (Dart aD Negative, "d-")+-- , (Dart aG Positive, "g+")+-- ]+-- , [ (Dart aE Positive, "e+")+-- , (Dart aD Positive, "d+")+-- , (Dart aC Negative, "c-")+-- ]+-- , [ (Dart aG Negative, "g-")+-- ]+-- ] -- :} -- TODO: Add a fig. of the Graph@@ -145,6 +168,7 @@ -- by the phantom type s, and to a particular world w. newtype VertexId s (w :: World) = VertexId { _unVertexId :: Int } deriving (Eq,Ord,Enum) -- VertexId's are in the range 0...|orbits|-1+makeLenses ''VertexId instance Show (VertexId s w) where show (VertexId i) = "VertexId " ++ show i@@ -191,8 +215,8 @@ -- | Construct a planar graph-planarGraph :: Permutation (Dart s) -> PlanarGraph s Primal_ () () ()-planarGraph perm = PlanarGraph perm vData eData fData+planarGraph' :: Permutation (Dart s) -> PlanarGraph s w () () ()+planarGraph' perm = PlanarGraph perm vData eData fData where d = size perm e = d `div` 2@@ -205,16 +229,127 @@ --- | Construct a planar graph.+-- | Construct a planar graph, given the darts in cyclic order around each+-- vertex. ---planarGraph' :: [[(Dart s,e)]] -> PlanarGraph s Primal_ () e ()-planarGraph' ds = (planarGraph perm)&dartData .~ (V.fromList . concat $ ds)+-- running time: \(O(n)\).+planarGraph :: [[(Dart s,e)]] -> PlanarGraph s Primal_ () e ()+planarGraph ds = (planarGraph' perm)&dartData .~ (V.fromList . concat $ ds) where n = sum . map length $ ds perm = toCycleRep n $ map (map fst) ds +-- | Construct a planar graph from a adjacency matrix. For every vertex, all+-- vertices should be given in counter clockwise order.+--+-- running time: \(O(n)\).+fromAdjacencyLists :: forall s w f. (Foldable f, Functor f)+ => [(VertexId s w, f (VertexId s w))]+ -> PlanarGraph s w () () ()+fromAdjacencyLists adjM = planarGraph' . toCycleRep n $ perm+ where+ n = sum . fmap length $ perm+ perm = map toOrbit $ adjM'++ adjM' = fmap (second F.toList) adjM++ -- -- | Assign Arcs+ -- adjM' = (^._1) . foldr assignArcs (SP [] 0) $ adjM++ -- Build an edgeOracle, so that we can query the arcId assigned to+ -- an edge in O(1) time.+ oracle :: EdgeOracle s w Int+ oracle = fmap (^.core) . assignArcs . buildEdgeOracle+ . map (second $ map ext) $ adjM'++ toOrbit (u,adjU) = concatMap (toDart u) adjU++ -- if u = v we have a self-loop, so we add both a positive and a negative dart+ toDart u v = let Just a = findEdge u v oracle+ in case u `compare` v of+ LT -> [Dart (Arc a) Positive]+ EQ -> [Dart (Arc a) Positive, Dart (Arc a) Negative]+ GT -> [Dart (Arc a) Negative]+++assignArcs :: EdgeOracle s w e -> EdgeOracle s w (Int :+ e)+assignArcs o = evalState (traverse f o) 0+ where+ f :: e -> State Int (Int :+ e)+ f e = do i <- get ; put (i+1) ; pure (i :+ e)+++++-- -- Go through all of the edges we find an edge (u,v), with u <= v,+-- -- assign an ArcId to this edge (and increment the next available arcId).+-- -- if u > v. Don't assign anything.+-- assignArcs :: (Ord v, Foldable f)+-- => (v, f v)+-- -> SP [(v, [v :+ Maybe Int])] Int+-- -> SP [(v, [v :+ Maybe Int])] Int+-- assignArcs (u,adjU) (SP acc i) = first (\adjU' -> (u,adjU'):acc)+-- . foldr (assignArcs' u) (SP [] i)+-- . F.toList $ adjU++-- -- Go through all edges that have u as one endpoint.+-- assignArcs' :: Ord v => v -> v -> SP [v :+ Maybe Int] Int+-- -> SP [v :+ Maybe Int] Int+-- assignArcs' u v (SP acc i)+-- | u <= v = SP ((v :+ Just i) : acc) (i+1)+-- | otherwise = SP ((v :+ Nothing) : acc) i++++++++-- -- - m: a Map, mapping edges, represented by a pair of vertexId's (u,v) with+-- -- u < v, to arcId's.+-- -- - a: the next available unused arcID+-- -- - x: the data value we are interested in computing+-- type STR' s b = STR (SM.Map (VertexId s Primal_,VertexId s Primal_) Int) Int b++-- -- | Construct a planar graph from a adjacency matrix. For every vertex, all+-- -- vertices should be given in counter clockwise order.+-- --+-- -- running time: \(O(n \log n)\).+-- fromAdjacencyLists :: forall s.+-- [(VertexId s Primal_, C.CList (VertexId s Primal_))]+-- -> PlanarGraph s Primal_ () () ()+-- fromAdjacencyLists adjM = planarGraph' . toCycleRep n $ perm+-- where+-- n = sum . fmap length $ adjM+-- perm = trd' . foldr toOrbit (STR mempty 0 mempty) $ adjM+++-- -- | Given a vertex with its adjacent vertices (u,vs) (in CCW order) convert this+-- -- vertex with its adjacent vertices into an Orbit+-- toOrbit :: (VertexId s Primal_, C.CList (VertexId s Primal_))+-- -> STR' s [[Dart s]]+-- -> STR' s [[Dart s]]+-- toOrbit (u,vs) (STR m a dss) =+-- let (STR m' a' ds') = foldr (toDart . (u,)) (STR m a mempty) . C.toList $ vs+-- in STR m' a' (ds':dss)+++-- -- | Given an edge (u,v) and a triplet (m,a,ds) we construct a new dart+-- -- representing this edge.+-- toDart :: (VertexId s Primal_,VertexId s Primal_)+-- -> STR' s [Dart s]+-- -> STR' s [Dart s]+-- toDart (u,v) (STR m a ds) = let dir = if u < v then Positive else Negative+-- t' = (min u v, max u v)+-- in case SM.lookup t' m of+-- Just a' -> STR m a (Dart (Arc a') dir : ds)+-- Nothing -> STR (SM.insert t' a m) (a+1) (Dart (Arc a) dir : ds)+++--------------------------------------------------------------------------------+ -- | Get the number of vertices -- -- >>> numVertices myGraph@@ -305,19 +440,26 @@ -- | The tail of a dart, i.e. the vertex this dart is leaving from --+-- running time: \(O(1)\) tailOf :: Dart s -> PlanarGraph s w v e f -> VertexId s w tailOf d g = VertexId . fst $ lookupIdx (g^.embedding) d -- | The vertex this dart is heading in to+--+-- running time: \(O(1)\) headOf :: Dart s -> PlanarGraph s w v e f -> VertexId s w headOf d = tailOf (twin d) -- | endPoints d g = (tailOf d g, headOf d g)+--+-- running time: \(O(1)\) endPoints :: Dart s -> PlanarGraph s w v e f -> (VertexId s w, VertexId s w) endPoints d g = (tailOf d g, headOf d g) -- | All edges incident to vertex v, in counterclockwise order around v.+--+-- running time: \(O(k)\), where \(k\) is the output size incidentEdges :: VertexId s w -> PlanarGraph s w v e f -> V.Vector (Dart s) incidentEdges (VertexId v) g = g^.embedding.orbits.ix' v@@ -333,6 +475,8 @@ -- | Gets the neighbours of a particular vertex, in counterclockwise order -- around the vertex.+--+-- running time: \(O(k)\), where \(k\) is the output size neighboursOf :: VertexId s w -> PlanarGraph s w v e f -> V.Vector (VertexId s w) neighboursOf v g = otherVtx <$> incidentEdges v g where@@ -350,14 +494,20 @@ -- | Get the vertex data associated with a node. Note that updating this data may be -- expensive!!+--+-- running time: \(O(1)\) vDataOf :: VertexId s w -> Lens' (PlanarGraph s w v e f) v vDataOf (VertexId i) = vertexData.ix' i -- | Edge data of a given dart+--+-- running time: \(O(1)\) eDataOf :: Dart s -> Lens' (PlanarGraph s w v e f) e eDataOf d = rawDartData.ix' (fromEnum d) -- | Data of a face of a given face+--+-- running time: \(O(1)\) fDataOf :: FaceId s w -> Lens' (PlanarGraph s w v e f) f fDataOf (FaceId (VertexId i)) = faceData.ix' i @@ -368,6 +518,8 @@ -- | Data corresponding to the endpoints of the dart+--+-- running time: \(O(1)\) endPointData :: Dart s -> PlanarGraph s w v e f -> (v,v) endPointData d g = let (u,v) = endPoints d g in (g^.vDataOf u, g^.vDataOf v) @@ -386,6 +538,8 @@ -- in (dual myGraph)^.embedding.orbits == answer -- :} -- True+--+-- running time: \(O(n)\). dual :: PlanarGraph s w v e f -> PlanarGraph s (Dual w) f e v dual g = let perm = g^.embedding in PlanarGraph (cycleRep (elems perm) (apply perm . twin))@@ -417,6 +571,8 @@ -- FaceId 2 -- >>> leftFace (dart 0 "+1") myGraph -- FaceId 0+--+-- running time: \(O(1)\). leftFace :: Dart s -> PlanarGraph s w v e f -> FaceId s w leftFace d g = FaceId . headOf d $ dual g @@ -431,6 +587,8 @@ -- FaceId 1 -- >>> rightFace (dart 0 "+1") myGraph -- FaceId 1+--+-- running time: \(O(1)\). rightFace :: Dart s -> PlanarGraph s w v e f -> FaceId s w rightFace d g = FaceId . tailOf d $ dual g @@ -439,54 +597,203 @@ -- the outer face in counter clockwise order. -- ---boundary :: FaceId s w -> PlanarGraph s w v e f -> V.Vector (Dart s)+-- running time: \(O(k)\), where \(k\) is the output size.+boundary :: FaceId s w -> PlanarGraph s w v e f -> V.Vector (Dart s) boundary (FaceId v) g = incidentEdges v $ dual g -+-- | The vertices bounding this face, for internal faces in clockwise order, for+-- the outer face in counter clockwise order.+--+--+-- running time: \(O(k)\), where \(k\) is the output size.+boundaryVertices :: FaceId s w -> PlanarGraph s w v e f -> V.Vector (VertexId s w)+boundaryVertices f g = fmap (flip tailOf g) $ boundary f g -------------------------------------------------------------------------------- -- Testing stuff -testPerm :: Permutation (Dart s)-testPerm = let (a:b:c:d:e:g:_) = take 6 [Arc 0..]- in toCycleRep 12 [ [ Dart a Negative- , Dart c Positive- , Dart b Positive- , Dart a Positive- ]- , [ Dart e Negative- , Dart b Negative- , Dart d Negative- , Dart g Positive- ]- , [ Dart e Positive- , Dart d Positive- , Dart c Negative- ]- , [ Dart g Negative- ]- ]+-- testPerm :: Permutation (Dart s)+-- testPerm = let (a:b:c:d:e:g:_) = take 6 [Arc 0..]+-- in toCycleRep 12 [ [ Dart a Negative+-- , Dart c Positive+-- , Dart b Positive+-- , Dart a Positive+-- ]+-- , [ Dart e Negative+-- , Dart b Negative+-- , Dart d Negative+-- , Dart g Positive+-- ]+-- , [ Dart e Positive+-- , Dart d Positive+-- , Dart c Negative+-- ]+-- , [ Dart g Negative+-- ]+-- ] data Test -testG :: PlanarGraph Test Primal_ () String ()-testG = planarGraph' [ [ (Dart aA Negative, "a-")- , (Dart aC Positive, "c+")- , (Dart aB Positive, "b+")- , (Dart aA Positive, "a+")- ]- , [ (Dart aE Negative, "e-")- , (Dart aB Negative, "b-")- , (Dart aD Negative, "d-")- , (Dart aG Positive, "g+")- ]- , [ (Dart aE Positive, "e+")- , (Dart aD Positive, "d+")- , (Dart aC Negative, "c-")- ]- , [ (Dart aG Negative, "g-")- ]- ]+-- testG :: PlanarGraph Test Primal_ () String ()+-- testG = planarGraph' [ [ (Dart aA Negative, "a-")+-- , (Dart aC Positive, "c+")+-- , (Dart aB Positive, "b+")+-- , (Dart aA Positive, "a+")+-- ]+-- , [ (Dart aE Negative, "e-")+-- , (Dart aB Negative, "b-")+-- , (Dart aD Negative, "d-")+-- , (Dart aG Positive, "g+")+-- ]+-- , [ (Dart aE Positive, "e+")+-- , (Dart aD Positive, "d+")+-- , (Dart aC Negative, "c-")+-- ]+-- , [ (Dart aG Negative, "g-")+-- ]+-- ]+-- where+-- (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]+++--------------------------------------------------------------------------------++++-- type ArcID = Int++-- -- | ST' is a strict triple (m,a,x) containing:+-- --+-- -- - m: a Map, mapping edges, represented by a pair of vertexId's (u,v) with+-- -- u < v, to arcId's.+-- -- - a: the next available unused arcID+-- -- - x: the data value we are interested in computing+-- type ST' a = ST (SM.Map (VertexID,VertexID) ArcID) ArcID a+++--------------------------------------------------------------------------------+-- * Testing Connectivity+++-- | Edge Oracle:+--+-- main idea: store adjacency lists in such a way that we store an edge (u,v)+-- either in u's adjacency list or in v's. This can be done s.t. all adjacency+-- lists have length at most 6.+--+-- note: Every edge is stored exactly once (i.e. either at u or at v, but not both)+newtype EdgeOracle s w a =+ EdgeOracle { _unEdgeOracle :: V.Vector (V.Vector (VertexId s w :+ a)) }+ deriving (Show,Eq)++instance Functor (EdgeOracle s w) where+ fmap = fmapDefault++instance Foldable (EdgeOracle s w) where+ foldMap = foldMapDefault++instance Traversable (EdgeOracle s w) where+ traverse f (EdgeOracle v) = EdgeOracle <$> traverse g v+ where+ -- g :: V.Vector (VertexId :+ a) -> f (V.Vector (VertexId :+ b))+ g = traverse (bitraverse pure f)+++edgeOracle :: PlanarGraph s w v e f -> EdgeOracle s w ()+edgeOracle g = buildEdgeOracle [ (v, ext <$> neighboursOf v g)+ | v <- F.toList $ vertices' g+ ]++-- | Builds an edge oracle that can be used to efficiently test if two vertices+-- are connected by an edge.+--+-- running time: \(O(n)\)+buildEdgeOracle :: forall f s w e. (Foldable f)+ => [(VertexId s w, f (VertexId s w :+ e))] -> EdgeOracle s w e+buildEdgeOracle inAdj' = EdgeOracle $ V.create $ do+ counts <- UV.thaw initCounts+ marks <- UMV.replicate (UMV.length counts) False+ outV <- MV.new (UMV.length counts)+ build counts marks outV initQ+ pure outV+ -- main idea: maintain a vector with counts; i.e. how many unprocessed+ -- vertices are adjacent to u, and a bit vector with marks to keep track if+ -- a vertex has been processed yet. When we process a vertex, we keep only+ -- the adjacencies of unprocessed verticese. where- (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]+ -- Convert to a vector representation+ inAdj = V.create $ do+ mv <- MV.new (length inAdj')+ forM_ inAdj' $ \(VertexId i,adjI) ->+ MV.write mv i (V.fromList . F.toList $ adjI)+ pure mv++ initCounts = V.convert . fmap GV.length $ inAdj+ -- initial vertices available for processing+ initQ = GV.ifoldr (\i k q -> if k <= 6 then i : q else q) [] initCounts++ -- | Construct the adjacencylist for vertex i. I.e. by retaining only adjacent+ -- vertices that have not been processed yet.+ extractAdj :: UMV.MVector s' Bool -> Int+ -> ST s' (V.Vector (VertexId s w :+ e))+ extractAdj marks i = let p = fmap not . UMV.read marks . (^.core.unVertexId)+ in GV.filterM p $ inAdj V.! i++ -- | Decreases the number of adjacencies that vertex j has+ -- if it has <= 6 adjacencies left it has become available for processing+ decrease :: UMV.MVector s' Int -> (VertexId s w :+ e')+ -> ST s' (Maybe Int)+ decrease counts (VertexId j :+ _) = do k <- UMV.read counts j+ let k' = k - 1+ UMV.write counts j k'+ pure $ if k' <= 6 then Just j else Nothing++ -- The actual algorithm that builds the items+ build :: UMV.MVector s' Int -> UMV.MVector s' Bool+ -> MV.MVector s' (V.Vector (VertexId s w :+ e)) -> [Int] -> ST s' ()+ build _ _ _ [] = pure ()+ build counts marks outV (i:q) = do+ b <- UMV.read marks i+ nq <- if b then pure []+ else do+ adjI <- extractAdj marks i+ MV.write outV i adjI+ UMV.write marks i True+ V.toList <$> mapM (decrease counts) adjI+ build counts marks outV (catMaybes nq <> q)++++-- | Test if u and v are connected by an edge.+--+-- running time: \(O(1)\)+hasEdge :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Bool+hasEdge u v = isJust . findEdge u v+++-- | Find the edge data corresponding to edge (u,v) if such an edge exists+--+-- running time: \(O(1)\)+findEdge :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Maybe a+findEdge (VertexId u) (VertexId v) (EdgeOracle os) = find' u v <|> find' v u+ where+ find' j i = fmap (^.extra) . F.find (\(VertexId k :+ _) -> j == k) $ os V.! i++++--------------------------------------------------------------------------------++data TestG++type Vertex = VertexId TestG Primal_++testEdges :: [(Vertex,[Vertex])]+testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))+ [ (0, [1])+ , (1, [0,1,2,4])+ , (2, [1,3,4])+ , (3, [2,5])+ , (4, [1,2,5])+ , (5, [3,4])+ ]
src/Data/PlaneGraph.hs view
@@ -2,19 +2,25 @@ , PlaneGraph , withEdgeDistances+ , faceToSimplePolygon ) where import Data.Ext import Control.Lens import Data.PlanarGraph import Data.Geometry.Point+import Data.Geometry.Polygon(fromPoints, SimplePolygon)+import Data.Geometry.Properties+import qualified Data.Vector as V -------------------------------------------------------------------------------- type PlaneGraph s w v e f r = PlanarGraph s w (Point 2 r :+ v) e f +type instance NumType (PlaneGraph s w v e f r) = r + -- | Labels the edges of a plane graph with their distances, as specified by -- the distance function. withEdgeDistances :: (Point 2 r -> Point 2 r -> a)@@ -22,3 +28,10 @@ withEdgeDistances f g = g&dartData %~ fmap (\(d,x) -> (d,len d :+ x)) where len d = uncurry f . over both (^.core) $ endPointData d g+++faceToSimplePolygon :: FaceId s w -> PlaneGraph s w p e f r+ -> SimplePolygon p r :+ f+faceToSimplePolygon i gr = poly (boundaryVertices i gr) :+ gr^.fDataOf i+ where+ poly = fromPoints . V.toList . fmap (\j -> gr^.vDataOf j)
src/Data/Range.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE DeriveAnyClass #-} module Data.Range( EndPoint(..) , isOpen, isClosed , unEndPoint@@ -7,25 +8,32 @@ , lower, upper , pattern OpenRange, pattern ClosedRange, pattern Range' , inRange, width, clipLower, clipUpper, midPoint- , isValid+ , isValid, covers , shiftLeft, shiftRight ) where -import Control.Applicative-import Control.Arrow((&&&))-import Control.Lens-import qualified Data.Foldable as F-import Data.Geometry.Properties-import qualified Data.Traversable as T+import Control.Lens+import Data.Geometry.Properties+import Frames.CoRec+import Text.Printf(printf)+import GHC.Generics (Generic)+import Control.DeepSeq -------------------------------------------------------------------------------- -data EndPoint a = Open a- | Closed a- deriving (Show,Read,Eq,Functor,F.Foldable,T.Traversable)+data EndPoint a = Open !a+ | Closed !a+ deriving (Show,Read,Eq,Functor,Foldable,Traversable,Generic,NFData) +instance Ord a => Ord (EndPoint a) where+ -- | order on the actual value, and Open before Closed+ a `compare` b = f a `compare` f b+ where+ f (Open x) = (x,False)+ f (Closed x) = (x,True)+ _unEndPoint :: EndPoint a -> a _unEndPoint (Open a) = a _unEndPoint (Closed a) = a@@ -47,19 +55,26 @@ -------------------------------------------------------------------------------- -data Range a = Range { _lower :: EndPoint a- , _upper :: EndPoint a+data Range a = Range { _lower :: !(EndPoint a)+ , _upper :: !(EndPoint a) }- deriving (Show,Read,Eq,Functor,F.Foldable,T.Traversable)-+ deriving (Eq,Functor,Foldable,Traversable,Generic,NFData) makeLenses ''Range +instance Show a => Show (Range a) where+ show (Range l u) = printf "Range (%s) (%s)" (show l) (show u)++type instance NumType (Range a) = a++pattern OpenRange :: a -> a -> Range a pattern OpenRange l u = Range (Open l) (Open u)++pattern ClosedRange :: a -> a -> Range a pattern ClosedRange l u = Range (Closed l) (Closed u) -- | A range from l to u, ignoring/forgetting the type of the enpoints-pattern Range' l u <- (_lower &&& _upper -> (l,u))-+pattern Range' :: a -> a -> Range a+pattern Range' l u <- ((\r -> (r^.lower.unEndPoint,r^.upper.unEndPoint) -> (l,u))) prettyShow :: Show a => Range a -> String@@ -133,6 +148,10 @@ -- either open, ), or closed, ], clipUpper :: Ord a => EndPoint a -> Range a -> Maybe (Range a) clipUpper u r = let r' = clipUpper' u r in if isValid r' then Just r' else Nothing++-- | Wether or not the first range completely covers the second one+covers :: (Ord a) => Range a -> Range a -> Bool+a `covers` b = maybe False (== b) . asA (Identity a) $ a `intersect` b -- | Check if the range is valid and nonEmpty, i.e. if the lower endpoint is
+ src/Data/Seq.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE ScopedTypeVariables #-}+module Data.Seq( LSeq+ , toSeq+ , empty+ , fromList+ , fromNonEmpty+ , fromSeq+ , toNonEmpty++ , (<|), (|>)+ , (><)+ , eval++ , index+ , adjust+ , partition+ , mapWithIndex+ , take+ , drop+ , unstableSortBy++ , ViewL(..)+ , viewl+ , pattern (:<|)++ , pattern (:<<)+ , pattern EmptyL++ , ViewR(..)+ , viewr+ , pattern (:|>)+++ , promise+ ) where++import Control.Lens ((%~), (&), (<&>), (^?), Lens', bimap)+import Control.Lens.At (Ixed(..), Index, IxValue)+import qualified Data.Foldable as F+import qualified Data.List.NonEmpty as NonEmpty+import Data.Maybe (fromJust)+import Data.Proxy+import Data.Semigroup+import qualified Data.Sequence as S+import qualified Data.Traversable as Tr+import GHC.TypeLits+import Prelude hiding (drop,take)+++-- | LSeq n a certifies that the sequence has *at least* n items+newtype LSeq (n :: Nat) a = LSeq { toSeq :: S.Seq a}+ deriving (Show,Read,Eq,Ord,Foldable,Functor,Traversable)++instance Semigroup (LSeq n a) where+ (LSeq s) <> (LSeq s') = LSeq (s <> s')++instance Monoid (LSeq 0 a) where+ mempty = empty+ mappend = (<>)++type instance Index (LSeq n a) = Int+type instance IxValue (LSeq n a) = a+instance Ixed (LSeq n a) where+ ix i f s@(LSeq xs)+ | 0 <= i && i < S.length xs = f (S.index xs i) <&> \x -> LSeq $ S.update i x xs+ | otherwise = pure s++empty :: LSeq 0 a+empty = LSeq S.empty++(<|) :: a -> LSeq n a -> LSeq (1 + n) a+x <| xs = LSeq (x S.<| toSeq xs)++(|>) :: LSeq n a -> a -> LSeq (1 + n) a+xs |> x = LSeq (toSeq xs S.|> x)++infixr 5 <|+infixl 5 |>++(><) :: LSeq n a -> LSeq m a -> LSeq (n + m) a+xs >< ys = LSeq (toSeq xs <> toSeq ys)++infix 5 ><+++eval :: forall proxy n m a. KnownNat n => proxy n -> LSeq m a -> Maybe (LSeq n a)+eval n (LSeq xs)+ | toInteger (S.length xs) >= natVal n = Just $ LSeq xs+ | otherwise = Nothing++++++-- | Promises that the length of this LSeq is actually n. This is not+-- checked.+--+-- This function should be a noop+promise :: LSeq m a -> LSeq n a+promise = LSeq . toSeq++toNonEmpty :: LSeq (1 + n) a -> NonEmpty.NonEmpty a+toNonEmpty = NonEmpty.fromList . F.toList+++--------------------------------------------------------------------------------++-- | get the element with index i, counting from the left and starting at 0.+-- O(log(min(i,n-i)))+index :: LSeq n a -> Int -> a+index s i = fromJust $ s^?ix i++adjust :: (a -> a) -> Int -> LSeq n a -> LSeq n a+adjust f i s = s&ix i %~ f+++partition :: (a -> Bool) -> LSeq n a -> (LSeq 0 a, LSeq 0 a)+partition p = bimap LSeq LSeq . S.partition p . toSeq++mapWithIndex :: (Int -> a -> b) -> LSeq n a -> LSeq n b+mapWithIndex f = wrapUnsafe (S.mapWithIndex f)++take :: Int -> LSeq n a -> LSeq 0 a+take i = wrapUnsafe (S.take i)++drop :: Int -> LSeq n a -> LSeq 0 a+drop i = wrapUnsafe (S.drop i)+++unstableSortBy :: (a -> a -> Ordering) -> LSeq n a -> LSeq n a+unstableSortBy f = wrapUnsafe (S.unstableSortBy f)+++wrapUnsafe :: (S.Seq a -> S.Seq b) -> LSeq n a -> LSeq m b+wrapUnsafe f = LSeq . f . toSeq++--------------------------------------------------------------------------------++fromSeq :: S.Seq a -> LSeq 0 a+fromSeq = LSeq++fromList :: Foldable f => f a -> LSeq 0 a+fromList = LSeq . S.fromList . F.toList++fromNonEmpty :: NonEmpty.NonEmpty a -> LSeq 1 a+fromNonEmpty = LSeq . S.fromList . F.toList+++--------------------------------------------------------------------------------++data ViewL n a where+ (:<) :: a -> LSeq n a -> ViewL (1 + n) a++infixr 5 :<++instance Semigroup (ViewL n a) where+ (x :< xs) <> (y :< ys) = x :< LSeq (toSeq xs <> (y S.<| toSeq ys))++deriving instance Show a => Show (ViewL n a)+instance Functor (ViewL n) where+ fmap = Tr.fmapDefault+instance Foldable (ViewL n) where+ foldMap = Tr.foldMapDefault+instance Traversable (ViewL n) where+ traverse f (x :< xs) = (:<) <$> f x <*> traverse f xs+instance Eq a => Eq (ViewL n a) where+ s == s' = F.toList s == F.toList s'+instance Ord a => Ord (ViewL n a) where+ s `compare` s' = F.toList s `compare` F.toList s'+++viewl :: LSeq (1 + n) a -> ViewL (1 + n) a+viewl xs = let ~(x S.:< ys) = S.viewl $ toSeq xs in x :< LSeq ys++infixr 5 :<|++-- pattern (:<|) :: a -> LSeq n a -> LSeq (1 + n) a+pattern x :<| xs <- (viewl -> x :< xs)+ where+ x :<| xs = x <| xs++infixr 5 :<<++pattern x :<< xs <- (viewLSeq -> Just (x,xs))++pattern EmptyL <- (viewLSeq -> Nothing)++viewLSeq :: LSeq n a -> Maybe (a,LSeq 0 a)+viewLSeq (LSeq s) = case S.viewl s of+ S.EmptyL -> Nothing+ (x S.:< xs) -> Just (x,LSeq xs)+++--------------------------------------------------------------------------------++data ViewR n a where+ (:>) :: LSeq n a -> a -> ViewR (1 + n) a++infixl 5 :>++instance Semigroup (ViewR n a) where+ (xs :> x) <> (ys :> y) = LSeq ((toSeq xs S.|> x) <> toSeq ys) :> y++deriving instance Show a => Show (ViewR n a)+instance Functor (ViewR n) where+ fmap = Tr.fmapDefault+instance Foldable (ViewR n) where+ foldMap = Tr.foldMapDefault+instance Traversable (ViewR n) where+ traverse f (xs :> x) = (:>) <$> traverse f xs <*> f x+instance Eq a => Eq (ViewR n a) where+ s == s' = F.toList s == F.toList s'+instance Ord a => Ord (ViewR n a) where+ s `compare` s' = F.toList s `compare` F.toList s'++viewr :: LSeq (1 + n) a -> ViewR (1 + n) a+viewr xs = let ~(ys S.:> x) = S.viewr $ toSeq xs in LSeq ys :> x+++infixl 5 :|>++-- pattern (:|>) :: LSeq n a -> a -> LSeq (1 + n) a+pattern xs :|> x <- (viewr -> xs :> x)+ where+ xs :|> x = xs |> x++--------------------------------------------------------------------------------++testL = (eval (Proxy :: Proxy 2) $ fromList [1..5])++testL' :: LSeq 2 Integer+testL' = fromJust testL++test :: Show a => LSeq (1 + n) a -> String+test (x :<| xs) = show x ++ show xs
src/Data/Seq2.hs view
@@ -1,24 +1,21 @@ module Data.Seq2 where -import Control.Applicative import Control.Lens ((%~), (&), (<&>), (^?), Lens', lens) import Control.Lens.At (Ixed(..), Index, IxValue)+import qualified Data.Foldable as F import qualified Data.List.NonEmpty as NonEmpty import Data.Maybe (fromJust) import Data.Semigroup-import Prelude hiding (foldr,foldl,head,tail,last,length)---import qualified Data.Traversable as T-import qualified Data.Foldable as F import qualified Data.Sequence as S+import qualified Data.Traversable as T+import Prelude hiding (foldr,foldl,head,tail,last,length) -------------------------------------------------------------------------------- -- | Basically Data.Sequence but with the guarantee that the list contains at -- least two elements. data Seq2 a = Seq2 a (S.Seq a) a- deriving (Eq,Ord,Show,Read)+ deriving (Eq,Ord,Show) instance T.Traversable Seq2 where@@ -57,7 +54,12 @@ adjust :: (a -> a) -> Int -> Seq2 a -> Seq2 a adjust f i s = s&ix i %~ f -+partition :: (a -> Bool) -> Seq2 a -> (S.Seq a, S.Seq a)+partition p (Seq2 x s y) = let (l,r) = S.partition p s in case (p x, p y) of+ (False,False) -> ((x S.<| l) S.|> y, r)+ (False,_) -> (x S.<| l, r S.|> y)+ (True, False) -> (l S.|> y, x S.<| r)+ _ -> (l, (x S.<| r) S.|> y) (<|) :: a -> Seq2 a -> Seq2 a@@ -111,7 +113,7 @@ -------------------------------------------------------------------------------- -- | Left views -data ViewL2 a = a :<< ViewR1 a deriving (Show,Read,Eq,Ord)+data ViewL2 a = a :<< ViewR1 a deriving (Show,Eq,Ord) -- | At least two elements instance T.Traversable ViewL2 where@@ -129,8 +131,11 @@ -- | At least one element-data ViewL1 a = a :< S.Seq a deriving (Show,Read,Eq,Ord)+data ViewL1 a = a :< S.Seq a deriving (Eq,Ord) +instance Show a => Show (ViewL1 a) where+ show (x :< xs) = concat [ show x, " :< ", show $ F.toList xs]+ instance T.Traversable ViewL1 where traverse f ~(a :< s) = (:<) <$> f a <*> T.traverse f s @@ -157,7 +162,13 @@ viewL1FromNonEmpty :: NonEmpty.NonEmpty a -> ViewL1 a viewL1FromNonEmpty ~(x NonEmpty.:| xs) = x :< S.fromList xs +viewL1FromSeq :: S.Seq a -> ViewL1 a+viewL1FromSeq s = case S.viewl s of+ S.EmptyL -> error "viewL1FromSeq: Empty seq"+ (x S.:< xs) -> x :< xs ++ -- | O(1) get a left view viewl :: Seq2 a -> ViewL2 a viewl ~(Seq2 l s r) = l :<< (s :> r)@@ -175,7 +186,7 @@ -- | A view of the right end of the seq, with the guarantee that it -- has at least two elements-data ViewR2 a = ViewL1 a :>> a deriving (Show,Read,Eq,Ord)+data ViewR2 a = ViewL1 a :>> a deriving (Show,Eq,Ord) instance T.Traversable ViewR2 where traverse f ~(s :>> a) = (:>>) <$> T.traverse f s <*> f a
src/Data/Sequence/Util.hs view
@@ -10,7 +10,7 @@ -- -- returns Nothing if no element satisfies p ----- running time: $O(\log^2 n + T*\log n)$, where $T$ is the time to execute the+-- running time: \(O(\log^2 n + T*\log n)\), where \(T\) is the time to execute the -- predicate. binarySearchSeq :: (a -> Bool) -> Seq a -> Maybe Int binarySearchSeq p s = case S.viewr s of@@ -31,7 +31,7 @@ -- -- all elements in s occur in either xs or ys. ----- running time: $O(\log^2 n + T*\log n)$, where $T$ is the time to execute the+-- running time: \(O(\log^2 n + T*\log n)\), where \(T\) is the time to execute the -- predicate. splitMonotone :: (a -> Bool) -> Seq a -> (Seq a, Seq a) splitMonotone p s = case binarySearchSeq p s of@@ -47,7 +47,7 @@ -- Get the index h such that everything strictly smaller than h has: p i = -- False, and all i >= h, we have p h = True ----- running time: $O(\log(u - l))$+-- running time: \(O(\log(u - l))\) {-# SPECIALIZE binarySearch :: (Int -> Bool) -> Int -> Int -> Int #-} binarySearch :: Integral a => (a -> Bool) -> a -> a -> a binarySearch p l u = let d = u - l
src/Data/UnBounded.hs view
@@ -10,7 +10,6 @@ , unBoundedToMaybe ) where -import Control.Applicative import Control.Lens import qualified Data.Foldable as F import qualified Data.Traversable as T@@ -26,7 +25,10 @@ newtype Top a = GTop { topToMaybe :: Maybe a } deriving (Eq,Functor,F.Foldable,T.Traversable,Applicative,Monad) +pattern ValT :: a -> Top a pattern ValT x = GTop (Just x)++pattern Top :: Top a pattern Top = GTop Nothing instance Ord a => Ord (Top a) where@@ -45,11 +47,14 @@ -- i.e. an element that is smaller than any other element. We can think of -- `Bottom a` being defined as: ----- >>> data Bottom a = ValB+-- >>> data Bottom a = Bottom | ValB a newtype Bottom a = GBottom { bottomToMaybe :: Maybe a } deriving (Eq,Ord,Functor,F.Foldable,T.Traversable,Applicative,Monad) +pattern Bottom :: Bottom a pattern Bottom = GBottom Nothing++pattern ValB :: a -> Bottom a pattern ValB x = GBottom (Just x) instance Show a => Show (Bottom a) where
+ src/Data/Util.hs view
@@ -0,0 +1,41 @@+module Data.Util where++import Control.Lens+import Data.Bifunctor+import Data.Semigroup++-- | strict triple+data STR a b c = STR { fst' :: !a, snd' :: !b , trd' :: !c}+ deriving (Show,Eq,Ord,Functor)+++instance Field1 (STR a b c) (STR d b c) a d where+ _1 = lens fst' (\(STR _ b c) d -> STR d b c)++instance Field2 (STR a b c) (STR a d c) b d where+ _2 = lens snd' (\(STR a _ c) d -> STR a d c)++instance Field3 (STR a b c) (STR a b d) c d where+ _3 = lens trd' (\(STR a b _) d -> STR a b d)++++++-- | Strict pair+data SP a b = SP !a !b deriving (Show,Eq,Ord,Functor)++instance (Semigroup a, Semigroup b) => Semigroup (SP a b) where+ (SP a b) <> (SP c d) = SP (a <> c) (b <> d)++instance Field1 (SP a b) (SP c b) a c where+ _1 = lens (\(SP a _) -> a) (\(SP _ b) c -> SP c b)++instance Field2 (SP a b) (SP a c) b c where+ _2 = lens (\(SP _ b) -> b) (\(SP a _) c -> SP a c)++instance Bifunctor SP where+ bimap f g (SP a b) = SP (f a) (g b)++-- | Strict pair with both items the same+type Two a = SP a a
test/Algorithms/Geometry/DelaunayTriangulation/DTSpec.hs view
@@ -1,22 +1,20 @@ {-# LANGUAGE LambdaCase #-} module Algorithms.Geometry.DelaunayTriangulation.DTSpec where -import Util--import Test.Hspec-import Control.Lens-import Data.Geometry-import Data.Maybe(mapMaybe, fromJust)-import Algorithms.Geometry.DelaunayTriangulation.Types import qualified Algorithms.Geometry.DelaunayTriangulation.DivideAndConqueror as DC-import qualified Algorithms.Geometry.DelaunayTriangulation.Naive as Naive-import qualified Data.List.NonEmpty as NonEmpty-import Data.Geometry.Ipe-import Data.Ext-import Data.Traversable(traverse)+import qualified Algorithms.Geometry.DelaunayTriangulation.Naive as Naive+import Algorithms.Geometry.DelaunayTriangulation.Types+import Control.Lens import qualified Data.CircularList.Util as CU+import Data.Ext+import Data.Geometry+import Data.Geometry.Ipe+import qualified Data.List.NonEmpty as NonEmpty import qualified Data.Map as M+import Data.Maybe (mapMaybe, fromJust) import qualified Data.Vector as V+import Test.Hspec+import Util dtEdges :: (Fractional r, Ord r)
+ test/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmannSpec.hs view
@@ -0,0 +1,65 @@+module Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannSpec where++import qualified Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann as Sweep+import qualified Algorithms.Geometry.LineSegmentIntersection.Naive as Naive+import Algorithms.Geometry.LineSegmentIntersection.Types+import Control.Lens+import Data.Ext+import Data.Geometry.Interval+import Data.Geometry.Ipe+import Data.Geometry.LineSegment+import Data.Geometry.Point+import qualified Data.List as L+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.Map as Map+import qualified Data.Set as Set+import Test.Hspec+import Test.QuickCheck+import Util++spec :: Spec+spec = do+ describe "Testing Bentley Ottmann LineSegment Intersection" $ do+ -- toSpec (TestCase "myPoints" myPoints)+ -- toSpec (TestCase "myPoints'" myPoints')+ ipeSpec++ipeSpec :: Spec+ipeSpec = testCases "test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe"++testCases :: FilePath -> Spec+testCases fp = (runIO $ readInput fp) >>= \case+ Left e -> it "reading LineSegment Intersection file" $+ expectationFailure $ "Failed to read ipe file " ++ show e+ Right tcs -> mapM_ toSpec tcs+++-- | Point sets per color, Crosses form the solution+readInput :: FilePath -> IO (Either ConversionError [TestCase Rational])+readInput fp = fmap f <$> readSinglePageFile fp+ where+ f page = [TestCase segs]+ where+ segs = page^..content.traverse._IpePath.core._asLineSegment++++data TestCase r = TestCase { _segments :: [LineSegment 2 () r]+ } deriving (Show,Eq)+++toSpec :: (Fractional r, Ord r, Show r) => TestCase r -> Spec+toSpec (TestCase segs) = describe ("testing segments ") $ do+ samePointsAsNaive segs+ sameAsNaive segs++-- | Test if we have the same intersection points+samePointsAsNaive segs = it "Same points as Naive" $ do+ (Map.keys $ Sweep.intersections segs) `shouldBe` (Map.keys $ Naive.intersections segs)++-- | Test if they every intersection point has the right segments+sameAsNaive :: (Fractional r, Ord r, Eq p+ , Show p, Show r+ ) => [LineSegment 2 p r] -> Spec+sameAsNaive segs = it "Same as Naive " $ do+ (Sweep.intersections segs) `shouldBe` (Naive.intersections segs)
+ test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe view
@@ -0,0 +1,324 @@+<?xml version="1.0"?>+<!DOCTYPE ipe SYSTEM "ipe.dtd">+<ipe version="70107" creator="Ipe 7.2.2">+<info created="D:20160903131616" modified="D:20161022125153"/>+<ipestyle name="basic">+<symbol name="arrow/arc(spx)">+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">+0 0 m+-1 0.333 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/farc(spx)">+<path stroke="sym-stroke" fill="white" pen="sym-pen">+0 0 m+-1 0.333 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/ptarc(spx)">+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">+0 0 m+-1 0.333 l+-0.8 0 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/fptarc(spx)">+<path stroke="sym-stroke" fill="white" pen="sym-pen">+0 0 m+-1 0.333 l+-0.8 0 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="mark/circle(sx)" transformations="translations">+<path fill="sym-stroke">+0.6 0 0 0.6 0 0 e+0.4 0 0 0.4 0 0 e+</path>+</symbol>+<symbol name="mark/disk(sx)" transformations="translations">+<path fill="sym-stroke">+0.6 0 0 0.6 0 0 e+</path>+</symbol>+<symbol name="mark/fdisk(sfx)" transformations="translations">+<group>+<path fill="sym-fill">+0.5 0 0 0.5 0 0 e+</path>+<path fill="sym-stroke" fillrule="eofill">+0.6 0 0 0.6 0 0 e+0.4 0 0 0.4 0 0 e+</path>+</group>+</symbol>+<symbol name="mark/box(sx)" transformations="translations">+<path fill="sym-stroke" fillrule="eofill">+-0.6 -0.6 m+0.6 -0.6 l+0.6 0.6 l+-0.6 0.6 l+h+-0.4 -0.4 m+0.4 -0.4 l+0.4 0.4 l+-0.4 0.4 l+h+</path>+</symbol>+<symbol name="mark/square(sx)" transformations="translations">+<path fill="sym-stroke">+-0.6 -0.6 m+0.6 -0.6 l+0.6 0.6 l+-0.6 0.6 l+h+</path>+</symbol>+<symbol name="mark/fsquare(sfx)" transformations="translations">+<group>+<path fill="sym-fill">+-0.5 -0.5 m+0.5 -0.5 l+0.5 0.5 l+-0.5 0.5 l+h+</path>+<path fill="sym-stroke" fillrule="eofill">+-0.6 -0.6 m+0.6 -0.6 l+0.6 0.6 l+-0.6 0.6 l+h+-0.4 -0.4 m+0.4 -0.4 l+0.4 0.4 l+-0.4 0.4 l+h+</path>+</group>+</symbol>+<symbol name="mark/cross(sx)" transformations="translations">+<group>+<path fill="sym-stroke">+-0.43 -0.57 m+0.57 0.43 l+0.43 0.57 l+-0.57 -0.43 l+h+</path>+<path fill="sym-stroke">+-0.43 0.57 m+0.57 -0.43 l+0.43 -0.57 l+-0.57 0.43 l+h+</path>+</group>+</symbol>+<symbol name="arrow/fnormal(spx)">+<path stroke="sym-stroke" fill="white" pen="sym-pen">+0 0 m+-1 0.333 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/pointed(spx)">+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">+0 0 m+-1 0.333 l+-0.8 0 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/fpointed(spx)">+<path stroke="sym-stroke" fill="white" pen="sym-pen">+0 0 m+-1 0.333 l+-0.8 0 l+-1 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/linear(spx)">+<path stroke="sym-stroke" pen="sym-pen">+-1 0.333 m+0 0 l+-1 -0.333 l+</path>+</symbol>+<symbol name="arrow/fdouble(spx)">+<path stroke="sym-stroke" fill="white" pen="sym-pen">+0 0 m+-1 0.333 l+-1 -0.333 l+h+-1 0 m+-2 0.333 l+-2 -0.333 l+h+</path>+</symbol>+<symbol name="arrow/double(spx)">+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">+0 0 m+-1 0.333 l+-1 -0.333 l+h+-1 0 m+-2 0.333 l+-2 -0.333 l+h+</path>+</symbol>+<pen name="heavier" value="0.8"/>+<pen name="fat" value="1.2"/>+<pen name="ultrafat" value="2"/>+<symbolsize name="large" value="5"/>+<symbolsize name="small" value="2"/>+<symbolsize name="tiny" value="1.1"/>+<arrowsize name="large" value="10"/>+<arrowsize name="small" value="5"/>+<arrowsize name="tiny" value="3"/>+<color name="red" value="1 0 0"/>+<color name="green" value="0 1 0"/>+<color name="blue" value="0 0 1"/>+<color name="yellow" value="1 1 0"/>+<color name="orange" value="1 0.647 0"/>+<color name="gold" value="1 0.843 0"/>+<color name="purple" value="0.627 0.125 0.941"/>+<color name="gray" value="0.745"/>+<color name="brown" value="0.647 0.165 0.165"/>+<color name="navy" value="0 0 0.502"/>+<color name="pink" value="1 0.753 0.796"/>+<color name="seagreen" value="0.18 0.545 0.341"/>+<color name="turquoise" value="0.251 0.878 0.816"/>+<color name="violet" value="0.933 0.51 0.933"/>+<color name="darkblue" value="0 0 0.545"/>+<color name="darkcyan" value="0 0.545 0.545"/>+<color name="darkgray" value="0.663"/>+<color name="darkgreen" value="0 0.392 0"/>+<color name="darkmagenta" value="0.545 0 0.545"/>+<color name="darkorange" value="1 0.549 0"/>+<color name="darkred" value="0.545 0 0"/>+<color name="lightblue" value="0.678 0.847 0.902"/>+<color name="lightcyan" value="0.878 1 1"/>+<color name="lightgray" value="0.827"/>+<color name="lightgreen" value="0.565 0.933 0.565"/>+<color name="lightyellow" value="1 1 0.878"/>+<dashstyle name="dashed" value="[4] 0"/>+<dashstyle name="dotted" value="[1 3] 0"/>+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>+<textsize name="large" value="\large"/>+<textsize name="Large" value="\Large"/>+<textsize name="LARGE" value="\LARGE"/>+<textsize name="huge" value="\huge"/>+<textsize name="Huge" value="\Huge"/>+<textsize name="small" value="\small"/>+<textsize name="footnote" value="\footnotesize"/>+<textsize name="tiny" value="\tiny"/>+<textstyle name="center" begin="\begin{center}" end="\end{center}"/>+<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>+<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>+<gridsize name="4 pts" value="4"/>+<gridsize name="8 pts (~3 mm)" value="8"/>+<gridsize name="16 pts (~6 mm)" value="16"/>+<gridsize name="32 pts (~12 mm)" value="32"/>+<gridsize name="10 pts (~3.5 mm)" value="10"/>+<gridsize name="20 pts (~7 mm)" value="20"/>+<gridsize name="14 pts (~5 mm)" value="14"/>+<gridsize name="28 pts (~10 mm)" value="28"/>+<gridsize name="56 pts (~20 mm)" value="56"/>+<anglesize name="90 deg" value="90"/>+<anglesize name="60 deg" value="60"/>+<anglesize name="45 deg" value="45"/>+<anglesize name="30 deg" value="30"/>+<anglesize name="22.5 deg" value="22.5"/>+<opacity name="10%" value="0.1"/>+<opacity name="30%" value="0.3"/>+<opacity name="50%" value="0.5"/>+<opacity name="75%" value="0.75"/>+<tiling name="falling" angle="-60" step="4" width="1"/>+<tiling name="rising" angle="30" step="4" width="1"/>+</ipestyle>+<ipestyle name="frank">+<arrowsize name="normal" value="5"/>+<arrowsize name="large" value="8"/>+<arrowsize name="huge" value="10"/>+<arrowsize name="small" value="3"/>+<arrowsize name="tiny" value="1"/>+<dashstyle name="dashed" value="[2 2] 0"/>+<dashstyle name="dotted" value="[0.5 1] 0"/>+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>+<gridsize name="1 pts" value="1"/>+<gridsize name="2 pts" value="2"/>+<opacity name="10%" value="0.1"/>+<opacity name="30%" value="0.3"/>+<opacity name="50%" value="0.5"/>+<opacity name="20%" value="0.2"/>+<opacity name="40%" value="0.4"/>+<opacity name="60%" value="0.6"/>+<opacity name="70%" value="0.7"/>+<opacity name="80%" value="0.8"/>+<opacity name="90%" value="0.9"/>+</ipestyle>+<page>+<layer name="alpha"/>+<view layers="alpha" active="alpha"/>+<path layer="alpha" stroke="black">+16 16 m+144 80 l+</path>+<path stroke="black">+128 32 m+256 112 l+</path>+<path stroke="black">+144 80 m+225.708 52.1085 l+</path>+<path matrix="2.39165 0 0 2.39165 -206.711 -120.784" stroke="black">+144 80 m+148.537 86.7918 l+</path>+<path stroke="black">+144 80 m+140.284 85.5945 l+</path>+<path stroke="black">+137.686 70.5482 m+173.031 38.3458 l+</path>+<path stroke="black">+89.5694 78.2992 m+186.333 44.2802 l+</path>+<path stroke="black">+75.255 80.7127 m+75.255 24.0132 l+</path>+<path stroke="black">+35.9103 40.8867 m+180.812 40.8867 l+</path>+<path stroke="black">+82.6725 35.3346 m+57.1425 25.6907 l+</path>+<path stroke="black">+40.6648 34.541 m+144.411 12.4306 l+</path>+</page>+</ipe>
+ test/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPDSpec.hs view
@@ -0,0 +1,92 @@+module Algorithms.Geometry.WellSeparatedPairDecomposition.WSPDSpec where++import Algorithms.Geometry.Diameter+import Algorithms.Geometry.WellSeparatedPairDecomposition.Types+import Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD+import Control.Lens+import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.Seq2 as S2+import qualified Data.Set as Set+import qualified Data.Vector as V+import Test.Hspec+import Util++--------------------------------------------------------------------------------++spec :: Spec+spec = do+ reIndexTest+ distributePointsTest++reIndexTest :: Spec+reIndexTest = describe "ReIndex tests" $ do+ it "simple input reordering " $ do+ reIndexPoints input `shouldBe` output+ where+ input = v2 (ptSeq [ origin :+ 1, point2 1 1 :+ 100, point2 5 5 :+ 101 ])+ (ptSeq [ point2 1 1 :+ 100, point2 5 5 :+ 101, origin :+ 1 ])+ output = v2 (ptSeq [ origin :+ 0, point2 1 1 :+ 1, point2 5 5 :+ 2 ])+ (ptSeq [ point2 1 1 :+ 1, point2 5 5 :+ 2, origin :+ 0 ])+++++++distributePointsTest :: Spec+distributePointsTest = describe "DistributePoints tests" $ do+ it "distributePoints' on a single list " $ do+ distributePoints' 3 levels input `shouldBe` output+ it "distributePoints on multiple lists" $ do+ distributePoints 3 levels (v2 input input) `shouldBe` output'++ where+ levels = V.fromList [Just $ Level 0 (Just 2),Just $ Level 1 (Just 1), Nothing]+ input = ptSeq [ origin :+ 0, point2 1 1 :+ 1, point2 2 2 :+ 2]+ output = V.fromList [ ptSeq [origin :+ 0]+ , ptSeq [point2 1 1 :+ 1]+ , ptSeq [point2 2 2 :+ 2]+ ]+ output' = fmap (\pts -> v2 pts pts) output++ -- input = v2 (f [ origin :+ 1, point2 1 1 :+ 100, point2 5 5 :+ 101 ])+-- (f [ point2 1 1 :+ 100, point2 5 5 :+ 101, origin :+ 1 ])+-- output = v2 (f [ origin :+ 0, point2 1 1 :+ 1, point2 5 5 :+ 2 ])+-- (f [ point2 1 1 :+ 1, point2 5 5 :+ 2, origin :+ 0 ])++-- f = S2.viewL1FromNonEmpty . NonEmpty.fromList . map (&extra %~ ext)++ptSeq = S2.viewL1FromNonEmpty . NonEmpty.fromList . map (&extra %~ ext)++-- coversAll++points1 :: NonEmpty.NonEmpty (Point 2 Double :+ ())+points1 = ext <$> NonEmpty.fromList [point2 0 0, point2 1 1, point2 2 100, point2 3 101]+++-- | Computes all pairs of points that are uncovered by the WSPD with separation s+uncovered :: (Floating r, Ord r, AlwaysTrueWSPD d, Ord p)+ => [Point d r :+ p] -> r -> SplitTree d p r a -> [(Point d r :+ p, Point d r :+ p)]+uncovered pts s t = Set.toList $ allPairs `Set.difference` covered+ where+ allPairs = Set.fromList [ (p,q) | p <- pts, q <- pts, p < q ]+ covered = Set.unions [ mkSet as bs | (as,bs) <- wellSeparatedPairs s t]++ mkSet as bs = Set.fromList [ (min a b,max a b) | a <- F.toList as, b <- F.toList bs]++-- | Naively check if a WSP pair is actually well separated with respect to+-- separation s. i.e. computes the maximum diameter of as and bs, and then+-- tests by brute force if all pairs (a,b) from different sets are at distance+-- at least s times the maximum diameter.+isWellSeparated :: (Floating r, Ord r, Arity d) => r -> WSP d p r a -> Bool+isWellSeparated s (as,bs) =+ and [ euclideanDist (a^.core) (b^.core) >= s*r | a <- F.toList as, b <- F.toList bs ]+ where+ r = (/2) . maximum . map (diameterNaive . F.toList) $ [as,bs]++++allCoveredTest = describe
+ test/Data/EdgeOracleSpec.hs view
@@ -0,0 +1,63 @@+module Data.EdgeOracleSpec where++import Control.Arrow+import Data.Ext+import Data.PlanarGraph+import Data.Semigroup+import qualified Data.Set as S+import Test.Hspec++--------------------------------------------------------------------------------++data TestG++type Vertex = VertexId TestG Primal_+++testEdges :: [(Vertex,[Vertex])]+testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))+ [ (0, [1])+ , (1, [0,1,2,4])+ , (2, [1,3,4])+ , (3, [2,5])+ , (4, [1,2,5])+ , (5, [3,4])+ ]++buildEdgeOracle' :: [(Vertex,[Vertex])] -> EdgeOracle TestG Primal_ ()+buildEdgeOracle' = buildEdgeOracle . map (second $ fmap ext)++-- | Flattens an adjacencylist representation into a set of edges+flattenEdges :: [(t, [a])] -> [(t, a)]+flattenEdges = concatMap (\(i,vs) -> map (i,) vs)++-- | Given a set of edges, generates all non-edges, i.e. all pairs of vertices+-- that do not form an edge+nonEdges :: [(VertexId s w, [VertexId s w])] -> [(VertexId s w, VertexId s w)]+nonEdges es = flattenEdges . map (second $ f . S.fromList) $ es+ where+ f vs = filter (`S.notMember` vs) allVs+ allVs = map fst es++-- | Retains only the edges in the graph+hasEdges :: EdgeOracle s w a -> [(VertexId s w, VertexId s w)]+ -> [(VertexId s w, VertexId s w)]+oracle `hasEdges` es = filter (\(u,v) -> hasEdge u v oracle) es+++-- | Tests all edges es+edgeOracleSpec :: String -> [(Vertex, [Vertex])] -> Spec+edgeOracleSpec s es = do+ let oracle = buildEdgeOracle' es+ describe ("EdgeOracle on " <> s) $ do+ it "test postitive edges" $+ (oracle `hasEdges` flattenEdges es) `shouldBe` flattenEdges es+ it "test negative edges " $+ (oracle `hasEdges` nonEdges es) `shouldBe` []++ -- it "test maximum adjacency-list lengths" $+ -- (filter (\v -> length v > 6) . _unEdgeOracle $ oracle) `shouldBe` []++spec :: Spec+spec = do+ edgeOracleSpec "testEdges" testEdges
+ test/Data/Geometry/BoxSpec.hs view
@@ -0,0 +1,16 @@+module Data.Geometry.BoxSpec where++import Data.Geometry+import Data.Geometry.Box+import Data.Geometry.Properties+import Test.Hspec+++spec :: Spec+spec = do+ describe "Box" $ do+ it "intersect tests" $+ ((boundingBoxList' $ [point2 (-4) (-3), point2 (-4) (10 :: Int)])+ `intersects`+ (boundingBoxList' $ [point2 (-5) 1, point2 (-4) (0 :: Int)]))+ `shouldBe` True
+ test/Data/Geometry/IntervalSpec.hs view
@@ -0,0 +1,64 @@+{-# LANGUAGE ScopedTypeVariables #-}+module Data.Geometry.IntervalSpec where++import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry+import Data.Geometry.Box+import qualified Data.Geometry.IntervalTree as IntTree+import Data.Geometry.IntervalTree (IntervalTree)+import qualified Data.Geometry.SegmentTree as SegTree+import Data.Geometry.SegmentTree (SegmentTree, I(..))+import qualified Data.List.NonEmpty as NonEmpty+import qualified Data.Seq as Seq+import qualified Data.Set as Set+import GHC.TypeLits+import QuickCheck.Instances ()+import Test.Hspec+import Test.QuickCheck+import Util+++naive :: (Ord r, Foldable f) => r -> f (Interval p r) -> [Interval p r]+naive q = filter (q `inInterval`) . F.toList++sameAsNaive :: (Ord r, Ord p, Foldable f)+ => f (Interval p r)+ -> (r -> t -> [Interval p r], t)+ -> r+ -> Bool+sameAsNaive is (search,t) q = search q t `sameElems` naive q is+++sameElems :: Eq a => [a] -> [a] -> Bool+sameElems xs = null . difference xs+++allSameAsNaive :: (Ord r, Ord p)+ => NonEmpty.NonEmpty (Interval p r) -> [r] -> Bool+allSameAsNaive is = all (sameAsNaive is (\q t -> _unI <$> SegTree.search q t+ , SegTree.fromIntervals' is))+++allSameAsNaiveIT :: (Ord r, Ord p)+ => NonEmpty.NonEmpty (Interval p r) -> [r] -> Bool+allSameAsNaiveIT is = all (sameAsNaive is (\q t -> IntTree.search q t+ , IntTree.fromIntervals $ F.toList is))++spec :: Spec+spec = do+ describe "Same as Naive" $ do+ it "quickcheck segmentTree" $+ property $ \(is :: NonEmpty.NonEmpty (Interval () Word)) -> allSameAsNaive is+ it "quickcheck IntervalTree" $+ property $ \(Intervals is :: Intervals Word) -> allSameAsNaiveIT is+++newtype Intervals r = Intervals (NonEmpty.NonEmpty (Interval () r)) deriving (Show,Eq)++-- don't generate double open intervals+instance (Arbitrary r, Ord r) => Arbitrary (Intervals r) where+ arbitrary = Intervals . NonEmpty.fromList <$> listOf1 (suchThat arbitrary p)+ where+ p (OpenInterval _ _) = False+ p _ = True
+ test/Data/Geometry/KDTreeSpec.hs view
@@ -0,0 +1,65 @@+{-# LANGUAGE ScopedTypeVariables #-}+module Data.Geometry.KDTreeSpec where++import Data.Ext+import qualified Data.Foldable as F+import Data.Geometry+import Data.Geometry.Box+import Data.Geometry.KDTree+import qualified Data.Seq as Seq+import qualified Data.Set as Set+import GHC.TypeLits+import QuickCheck.Instances()+import Test.Hspec+import Test.QuickCheck++--------------------------------------------------------------------------------++naive :: (Arity d, Ord r) => Box d q r -> [Point d r :+ p] -> [Point d r :+ p]+naive qr = filter (\(p :+ _) -> p `intersects` qr)++sameAsNaive :: (Ord r, Ord p, Arity d)+ => [Point d r :+ p] -> KDTree d p r -> Box d q r -> Bool+sameAsNaive pts t q = Set.fromList (searchKDTree q t) == Set.fromList (naive q pts)++allSameAsNaive :: (Ord r, Ord p, Arity d, KnownNat d, Index' 0 d, Foldable f)+ => f (Point d r :+ p) -> [Box d () r] -> Bool+allSameAsNaive pts = let pts' = F.toList pts+ in all (sameAsNaive pts' $ buildKDTree pts')++allSame :: (Arity d, Eq a) => Vector d a -> Bool+allSame v = case F.toList v of+ [] -> True+ (x:xs) -> all (== x) xs++-- newtype Pts n d r = Pts (PointSet (Seq.LSeq n) d () r)+-- deriving instance (Arity d, Show r) => Show (Pts n d r)++-- instance (KnownNat n, Arity d, KnownNat d, Arbitrary r, Ord r) => Arbitrary (Pts n d r) where+-- arbitrary = Pts . toPointSet . Seq.toNonEmpty <$> arbitrary+++spec :: Spec+spec = do+ describe "splitOn" $ do+ it "quickheck: left set same points" $+ property $ \c (pts :: Seq.LSeq 2 (Point 2 Int :+ ())) ->+ let (l,_,_) = splitOn (toEnum c) (toPointSet pts)+ in allSame . fmap (Set.fromList . F.toList) $ l+ it "quickheck: right set same points" $+ property $ \c (pts :: Seq.LSeq 2 (Point 2 Int :+ ())) ->+ let (_,_,r) = splitOn (toEnum c) (toPointSet pts)+ in allSame . fmap (Set.fromList . F.toList) $ r+ describe "Same as Naive" $ do+ it "quickcheck 1d" $+ property $ \(pts :: Set.Set (Point 1 Int :+ ())) -> allSameAsNaive pts+ it "quickcheck 2d" $+ property $ \(pts :: Set.Set (Point 2 Int :+ ())) -> allSameAsNaive pts+ it "quickcheck 3d" $+ property $ \(pts :: Set.Set (Point 3 Int :+ ())) -> allSameAsNaive pts+ it "quickcheck 8d" $+ property $ \(pts :: Set.Set (Point 8 Int :+ ())) -> allSameAsNaive pts+++-- pts = map ext [point2 (-2) 2, point2 5 (-1)]+-- boxx = box (ext $ point2 3 (-4)) (ext $ point2 5 4)
test/Data/Geometry/Polygon/Convex/ConvexSpec.hs view
@@ -1,5 +1,7 @@+{-# LANGUAGE ScopedTypeVariables #-} module Data.Geometry.Polygon.Convex.ConvexSpec where +import Algorithms.Geometry.ConvexHull.GrahamScan (convexHull) import Control.Applicative import Control.Arrow ((&&&)) import Control.Lens@@ -9,8 +11,11 @@ import Data.Geometry.Ipe import Data.Geometry.Polygon (extremesLinear) import Data.Geometry.Polygon.Convex+import qualified Data.List.NonEmpty as NonEmpty import Data.Traversable (traverse)+import QuickCheck.Instances import Test.Hspec+import Test.QuickCheck @@ -22,8 +27,8 @@ Left e -> it "reading ConvexTests file" $ expectationFailure . unwords $ [ "Failed to read ipe file", show fp, ":", show e]- Right tcs -> mapM_ toSpec tcs-+ Right tcs -> do mapM_ toSpec tcs+ minkowskiTests $ map _polygon tcs data TestCase r = TestCase { _polygon :: ConvexPolygon () r }@@ -33,7 +38,8 @@ => ConvexPolygon q r -> Vector 2 r -> SpecWith () toSingleSpec poly u = it msg $ -- test that the reported extremes are equally far in direction u- F.all allEq (unzip [extremes u poly, extremesLinear u poly]) `shouldBe` True+ F.all allEq (unzip [extremes u poly, extremesLinear u (poly^.simplePolygon)])+ `shouldBe` True where allEq (p:ps) = all (\q -> cmpExtreme u p q == EQ) ps msg = "Extremes test with direction " ++ show u@@ -54,6 +60,55 @@ readInputFromFile :: FilePath -> IO (Either ConversionError [TestCase Rational]) readInputFromFile fp = fmap f <$> readSinglePageFile fp where- f page = [ TestCase poly | (poly :+ _) <- polies ]+ f page = [ TestCase (ConvexPolygon poly) | (poly :+ _) <- polies ] where polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon+++--------------------------------------------------------------------------------++minkowskiTests :: (Fractional r, Ord r, Show r) => [ConvexPolygon () r] -> Spec+minkowskiTests pgs = do+ minkowskiTests' "polygons in ipe file" pgs+ it "quickcheck minkowskisum same as naive" $+ property $ \(CP p :: CP Double) (CP q) ->+ minkowskiSum p q == naiveMinkowski p q++++minkowskiTests' :: (Fractional r, Ord r, Show r)+ => String -> [ConvexPolygon () r] -> Spec+minkowskiTests' s (map toCCW -> pgs) = describe ("Minkowskisums on " ++ s) $+ mapM_ (uncurry minkowskiTest) [ (p,q) | p <- pgs, q <- pgs ]+++minkowskiTest :: (Fractional r, Ord r, Eq p, Show r, Show p)+ => ConvexPolygon p r -> ConvexPolygon p r -> Spec+minkowskiTest p q = it "minkowskisum" $+ F (p,q) (minkowskiSum p q) `shouldBe` F (p,q) (naiveMinkowski p q)++naiveMinkowski :: (Fractional r, Ord r)+ => ConvexPolygon p r -> ConvexPolygon q r -> ConvexPolygon (p, q) r+naiveMinkowski p q = over (simplePolygon.outerBoundary) bottomMost+ . toCCW . convexHull . NonEmpty.fromList+ $ [ v .+. w | v <- p^..simplePolygon.outerBoundary.traverse+ , w <- q^..simplePolygon.outerBoundary.traverse+ ]+ where+ (v :+ ve) .+. (w :+ we) = v .+^ (toVec w) :+ (ve,we)+++toCCW :: (Fractional r, Eq r) => ConvexPolygon p r -> ConvexPolygon p r+toCCW = over simplePolygon toCounterClockWiseOrder++data F a b = F a b deriving (Show)++instance Eq b => Eq (F a b) where+ (F _ b1) == (F _ b2) = b1 == b2+++newtype CP r = CP (ConvexPolygon () r) deriving (Eq,Show)++instance (Arbitrary r, Fractional r, Ord r) => Arbitrary (CP r) where+ arbitrary = CP . toCCW <$> suchThat (convexHull <$> arbitrary)+ (\p -> p^.simplePolygon.outerBoundary.to length > 2)
+ test/Data/PlanarGraphSpec.hs view
@@ -0,0 +1,97 @@+module Data.PlanarGraphSpec where+++import Data.Util+import Data.PlanarGraph+import Data.Permutation(toCycleRep)+import Test.Hspec+import qualified Data.Foldable as F+import qualified Data.Set as S+import qualified Data.Vector as V+import qualified Data.Map.Strict as SM+import Data.Semigroup++++data TestG++type Vertex = VertexId TestG Primal_++-- | Report all adjacnecies from g missing in h+missingAdjacencies :: PlanarGraph s w v e f -> PlanarGraph s w v e f+ -> [(VertexId s w, VertexId s w)]+missingAdjacencies g h = concatMap f . vertices' $ g+ where+ f u = let adjUh = S.fromList . F.toList $ neighboursOf u h+ in F.toList . fmap (u,) . V.filter (`S.notMember` adjUh) $ neighboursOf u g+++sameGraphs s g h = do+ describe ("Same Adjacencies " <> s) $ do+ it "Missing edges from g in h" $+ (missingAdjacencies g h) `shouldBe` []+ it "Missing edges from h in g" $+ (missingAdjacencies h g) `shouldBe` []+++++spec :: Spec+spec = sameGraphs "testEdges" (fromAdjacencyLists testEdges) (fromAdjacencyListsOld testEdges)+++++testEdges :: [(Vertex,[Vertex])]+testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))+ [ (0, [1])+ , (1, [0,2,4])+ , (2, [1,3,4])+ , (3, [2,5])+ , (4, [1,2,5])+ , (5, [3,4])+ ]++--------------------------------------------------------------------------------+++-- - m: a Map, mapping edges, represented by a pair of vertexId's (u,v) with+-- u < v, to arcId's.+-- - a: the next available unused arcID+-- - x: the data value we are interested in computing+type STR' s b = STR (SM.Map (VertexId s Primal_,VertexId s Primal_) Int) Int b++-- | Construct a planar graph from a adjacency matrix. For every vertex, all+-- vertices should be given in counter clockwise order.+--+-- running time: $O(n \log n)$.+fromAdjacencyListsOld :: forall s f.(Foldable f, Functor f)+ => [(VertexId s Primal_, f (VertexId s Primal_))]+ -> PlanarGraph s Primal_ () () ()+fromAdjacencyListsOld adjM = planarGraph' . toCycleRep n $ perm+ where+ n = sum . fmap length $ perm+ perm = trd' . foldr toOrbit (STR mempty 0 mempty) $ adjM+++ -- | Given a vertex with its adjacent vertices (u,vs) (in CCW order) convert this+ -- vertex with its adjacent vertices into an Orbit+ toOrbit :: Foldable f+ => (VertexId s Primal_, f (VertexId s Primal_))+ -> STR' s [[Dart s]]+ -> STR' s [[Dart s]]+ toOrbit (u,vs) (STR m a dss) =+ let (STR m' a' ds') = foldr (toDart . (u,)) (STR m a mempty) . F.toList $ vs+ in STR m' a' (ds':dss)+++ -- | Given an edge (u,v) and a triplet (m,a,ds) we construct a new dart+ -- representing this edge.+ toDart :: (VertexId s Primal_,VertexId s Primal_)+ -> STR' s [Dart s]+ -> STR' s [Dart s]+ toDart (u,v) (STR m a ds) = let dir = if u < v then Positive else Negative+ t' = (min u v, max u v)+ in case SM.lookup t' m of+ Just a' -> STR m a (Dart (Arc a') dir : ds)+ Nothing -> STR (SM.insert t' a m) (a+1) (Dart (Arc a) dir : ds)
+ test/QuickCheck/Instances.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module QuickCheck.Instances where++import Control.Lens+import Data.BinaryTree+import Data.Ext+import Data.Geometry hiding (vector)+import Data.Geometry.Box+import Data.Geometry.Interval+import Data.Geometry.SubLine+import Data.Geometry.Vector+import qualified Data.List.NonEmpty as NonEmpty+import Data.Proxy+import Data.Range+import Data.Semigroup+import qualified Data.Seq as Seq+import qualified Data.Seq2 as S2+import GHC.TypeLits+import Test.QuickCheck++--------------------------------------------------------------------------------++-- instance Arbitrary a => Arbitrary (NonEmpty.NonEmpty a) where+-- arbitrary = NonEmpty.fromList <$> listOf1 arbitrary++instance Arbitrary a => Arbitrary (S2.Seq2 a) where+ arbitrary = S2.Seq2 <$> arbitrary <*> arbitrary <*> arbitrary++instance Arbitrary a => Arbitrary (BinaryTree a) where+ arbitrary = sized f+ where f n | n <= 0 = pure Nil+ | otherwise = do+ l <- choose (0,n-1)+ Internal <$> f l <*> arbitrary <*> f (n-l-1)++instance (Arbitrary a, Arbitrary v) => Arbitrary (BinLeafTree v a) where+ arbitrary = sized f+ where f n | n <= 0 = Leaf <$> arbitrary+ | otherwise = do+ l <- choose (0,n-1)+ Node <$> f l <*> arbitrary <*> f (n-l-1)+++instance (KnownNat n, Arbitrary a) => Arbitrary (Seq.LSeq n a) where+ arbitrary = (\s s' -> Seq.promise . Seq.fromList $ s <> s')+ <$> vector (fromInteger . natVal $ (Proxy :: Proxy n))+ <*> arbitrary++instance (Arbitrary r, Arity d) => Arbitrary (Vector d r) where+ arbitrary = vectorFromListUnsafe <$> infiniteList++instance (Arbitrary r, Arity d) => Arbitrary (Point d r) where+ arbitrary = Point <$> arbitrary++instance (Arbitrary r, Arity d, Num r) => Arbitrary (Line d r) where+ arbitrary = lineThrough <$> arbitrary <*> arbitrary++instance (Arbitrary r, Arity d, Ord r) => Arbitrary (Box d () r) where+ arbitrary = (\p (q :: Point d r) -> boundingBoxList' [p,q]) <$> arbitrary <*> arbitrary+++instance Arbitrary r => Arbitrary (EndPoint r) where+ arbitrary = frequency [ (1, Open <$> arbitrary)+ , (9, Closed <$> arbitrary)+ ]++instance (Arbitrary r, Ord r) => Arbitrary (Range r) where+ arbitrary = do+ l <- arbitrary+ r <- suchThat arbitrary (p l)+ return $ Range l r+ where+ p (Open l) r = l < r^.unEndPoint+ p (Closed l) r = l <= r^.unEndPoint+++instance (Arbitrary c, Arbitrary e) => Arbitrary (c :+ e) where+ arbitrary = (:+) <$> arbitrary <*> arbitrary++instance (Arbitrary r, Arbitrary p, Ord r, Ord p) => Arbitrary (Interval p r) where+ arbitrary = GInterval <$> arbitrary+++instance (Arbitrary r, Arbitrary p, Arity d, Ord r, Ord p, Num r)+ => Arbitrary (SubLine d p r) where+ arbitrary = SubLine <$> arbitrary <*> arbitrary+++instance (Arbitrary r, Arbitrary p, Arity d) => Arbitrary (LineSegment d p r) where+ arbitrary = LineSegment <$> arbitrary <*> arbitrary
test/Util.hs view
@@ -12,3 +12,13 @@ . map (\x -> (x,lookup' x)) where lookup' (_ :+ ats) = lookupAttr (Proxy :: Proxy Stroke) ats++-- | Computes all elements on which the two lists differ+difference :: Eq a => [a] -> [a] -> [a]+difference xs ys = (xs L.\\ ys) ++ (ys L.\\ xs)++-- differenceBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]+++diffBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]+diffBy p xs ys = foldr (L.deleteBy p) ys xs