Repository: DGtal-team/DGtal (language: python)

Issue:
Problem in DistanceTransformation when lowerBound has negative coord.
there is a strange propagation effect when the lowerBound is < (0,0,0..).



Discussion / hints:

Fix patch:
diff --git a/ChangeLog.md b/ChangeLog.md
index 12985a07a0..774a46aa3a 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -106,7 +106,7 @@
 
 - *Topology package*
   - Fix KhalimskySpaceND to get it work with BigInteger (Tristan Roussillon,
-    [#1681](https://github.com/DGtal-team/DGtal/pull/1681)
+    [#1681](https://github.com/DGtal-team/DGtal/pull/1681))
 
 - *Geometry package*
   - Fix Issue #1676 in testStabbingCircleComputer (Tristan Roussillon,
@@ -114,7 +114,12 @@
   - Fix BoundedLatticePolytopeCounter::countInterior method (Jacques-Olivier Lachaud,
     [#1717](https://github.com/DGtal-team/DGtal/pull/1717))
   - Fix const attribute that shouldn't be in FreemanChain (Colin Weill--Duflos,
-    [#1723](https://github.com/DGtal-team/DGtal/pull/1723))
+	  [#1723](https://github.com/DGtal-team/DGtal/pull/1723))
+  - Fix seg fault due to recent compilers in FrechetShortcut (Bertrand Kerautret, 
+     Isabelle Sivignon [#1726](https://github.com/DGtal-team/DGtal/pull/1726))
+  - Fix FrechetShortcut to enable the parameter error to be equal to 0 and add new 
+    tests in testFrechetShortcut (Isabelle Sivignon, [#1726](https://github.com/DGtal-team/DGtal/pull/1726))
+
 
 - *IO*
   - Fix of the `getHSV` method in the `Color` class. (David Coeurjolly,
diff --git a/src/DGtal/geometry/curves/FrechetShortcut.h b/src/DGtal/geometry/curves/FrechetShortcut.h
index e891e63271..a126464700 100644
--- a/src/DGtal/geometry/curves/FrechetShortcut.h
+++ b/src/DGtal/geometry/curves/FrechetShortcut.h
@@ -52,6 +52,9 @@
 
 #include "DGtal/geometry/curves/SegmentComputerUtils.h"
 
+
+#define PRECISION 0.00000001
+
 namespace DGtal
 {
   
@@ -399,6 +402,24 @@ namespace DGtal
 					     double *xi, double *yi,
 					     double *xi_prime, double *yi_prime)
       {
+	// I. Sivignon 05/2024: fix to handle the case where r0=0 or
+	// r1=0. Enables the case where error=0. 
+	// Other special cases where circles are tangent are treated
+	// below. 
+	if(r0==0)
+	  {
+	    *xi = x0; *yi = y0;
+	    *xi_prime = x0 ; *yi_prime = y0;
+	    return 1;
+	  }
+	else
+	  if(r1==0)
+	    {
+	      *xi = x1; *yi = y1;
+	      *xi_prime = x1 ; *yi_prime = y1;
+	      return 1;
+	    }
+	
 	double a, dx, dy, d, h, rx, ry;
 	double x2, y2;
 	
@@ -407,10 +428,21 @@ namespace DGtal
 	 */
 	dx = x1 - x0;
 	dy = y1 - y0;
-	
+
 	/* Determine the straight-line distance between the centers. */
 	//d = sqrt((dy*dy) + (dx*dx));
 	d = hypot(dx,dy); // Suggested by Keith Briggs
+
+	if((r0+r1)*(r0+r1)-((dy*dy)+(dx*dx)) < PRECISION)   
+	  {  // I. Sivignon 05/2024: fix to handle the case where
+	     // circles are tangent but radii are non zero.
+	    
+	    double alpha= r0/d;
+	    *xi = x0 + dx*alpha;
+	    *yi = y0 + dy*alpha;
+	    *xi_prime = *xi; *yi_prime = *yi; 
+	    return 1;
+	  }
 	
 	/* Check for solvability. */
 	if (d > (r0 + r1))
@@ -424,7 +456,8 @@ namespace DGtal
 	    /* no solution. one circle is contained in the other */
 	    return 0;
 	  }
-	
+
+	//   }
 	/* 'point 2' is the point where the line through the circle
 	 * intersection points crosses the line between the circle
 	 * centers.  
@@ -432,16 +465,17 @@ namespace DGtal
 	
 	/* Determine the distance from point 0 to point 2. */
 	a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ;
-	
+
 	/* Determine the coordinates of point 2. */
 	x2 = x0 + (dx * a/d);
 	y2 = y0 + (dy * a/d);
-	
+
+
 	/* Determine the distance from point 2 to either of the
        * intersection points.
        */
 	h = sqrt((r0*r0) - (a*a));
-	
+
 	/* Now determine the offsets of the intersection points from
 	 * point 2.
 	 */
@@ -487,6 +521,7 @@ namespace DGtal
 	
 	int res =
 	  circle_circle_intersection(x0,y0,r0,x1,y1,r1,xi,yi,xi_prime,yi_prime);
+
 	
 	return res;
 	
@@ -522,10 +557,13 @@ namespace DGtal
 	  }
 	else
 	  {
-	    if(y>0)
-	      return M_PI_2;
-	    else
-	      return 3*M_PI_2;
+	    if(y==0)
+	      return 0;
+	    else 
+	      if(y>0)
+		return M_PI_2;
+	      else
+		return 3*M_PI_2;
 	  }
 	return -1;
       }      
@@ -797,8 +835,6 @@ namespace DGtal
   ConstIterator end() const;
   
 
-  
-
   public:  
   
   /**
diff --git a/src/DGtal/geometry/curves/FrechetShortcut.ih b/src/DGtal/geometry/curves/FrechetShortcut.ih
index b8b53fe616..af20530c12 100644
--- a/src/DGtal/geometry/curves/FrechetShortcut.ih
+++ b/src/DGtal/geometry/curves/FrechetShortcut.ih
@@ -39,7 +39,7 @@
 // Class backpath
 ////////////////////////////////////////////////////////////////
 
-#define PRECISION 0.00001
+//#define PRECISION 0.00001
 
 
 //creation of a backPath
@@ -146,6 +146,7 @@ void DGtal::FrechetShortcut<TIterator,TInteger>::Backpath::updateOcculters()
   double angle_min=0;
   double angle_max=M_PI_4;
   bool occ = false;
+  bool ok = true;
   
   IntegerComputer<TInteger> ic;
 
@@ -157,16 +158,14 @@ void DGtal::FrechetShortcut<TIterator,TInteger>::Backpath::updateOcculters()
     }
   else
     {
-      typename occulter_list::iterator iter, next;
-      bool ok = true;
+      typename occulter_list::iterator iter=myOcculters.begin();
+    
       iter = myOcculters.begin();
-      while(iter!=myOcculters.end() && ok)
+      for(typename occulter_list::size_type  i=0; i < myOcculters.size() && ok ; ++i)
       	{
 	  pi = Point(*(iter->first));
 	  v = p-pi;
 	  
-	  next = iter;
-	  next++;
 	  // pi is after p for all directions -> p is not an occulter
 	  if(ic.dotProduct(v,u1) < 0 && ic.dotProduct(v,u2) <0)
 	  {
@@ -178,7 +177,7 @@ void DGtal::FrechetShortcut<TIterator,TInteger>::Backpath::updateOcculters()
 	    // anymore, p is a new occulter.
 	    if(ic.dotProduct(v,u1) > 0 && ic.dotProduct(v,u2) > 0)
 	      {
-		myOcculters.erase(iter);
+		iter = myOcculters.erase(iter);
 		occ = true;
 		angle_min = 0;
 		angle_max = M_PI_4;
@@ -198,12 +197,13 @@ void DGtal::FrechetShortcut<TIterator,TInteger>::Backpath::updateOcculters()
 		      angle_max = alpha;
 		      // pi's angle_min is updated
 		      iter->second.angle_min = alpha;
+		      iter++;
 		    }
 		  else
 		    if(alpha > iter->second.angle_max)
 		      {
 			//pi is not an occulter anymore 
-			myOcculters.erase(iter);
+			iter = myOcculters.erase(iter);
 			occ=true;
 			angle_min = 0;
 			angle_max = M_PI_4;
@@ -225,21 +225,23 @@ void DGtal::FrechetShortcut<TIterator,TInteger>::Backpath::updateOcculters()
 		      angle_max = M_PI_4;
 		      // pi's angle_max is updated
 		      iter->second.angle_max = alpha;
+		      iter++;
 		    }
 		  else
 		    if(alpha < iter->second.angle_min)
 		      {
 			//pi is not an occulter anymore 
-			myOcculters.erase(iter);
+			iter = myOcculters.erase(iter);
 			occ=true;
 			angle_min = 0;
 			angle_max = M_PI_4;
 		      }
+		    else
+		      iter++;
 		  // if(alpha > iter->second.angle_max), pi does not
 		  // change, p may be an occulter -> do nothing
 		  
 		}
-	  iter = next;
 	}
     }
   
@@ -369,7 +371,7 @@ DGtal::FrechetShortcut<TIterator,TInteger>::Cone::Cone()
 {
   myInf = true;
   myMin = 0;
-  myMax = 0;
+  myMax = 2*M_PI;
 }
 
 
@@ -441,7 +443,8 @@ bool DGtal::FrechetShortcut<TIterator,TInteger>::Cone::isEmpty() const
   if(myInf)
     return false;
   else
-    if(myMin==myMax)
+    // Fix 05/2024 to enable error = 0: a cone may be defined by two values myMin=myMax --> check for empty cone by setting myMin=myMax= -1 instead
+    if(myMin==-1) // and then myMax = -1 too: way to represent the empty intersection of two cones.
       return true;
     else
       return false;
@@ -509,7 +512,7 @@ typename DGtal::FrechetShortcut<TIterator,TInteger>::Cone DGtal::FrechetShortcut
 	// first possibility: the cones are disjoint
 	if(!Tools::isBetween(myMin, c.myMin, c.myMax, 2*M_PI) && !Tools::isBetween(myMax, c.myMin,
 							       c.myMax, 2*M_PI))
-	  res = Cone(0,0);
+	  res = Cone(-1,-1); // empty cone: both angles are set to -1
 	else
 	  // or the new cone includes the old one, nothing changes, the cone remains the same.
 	  res = *this;
@@ -523,6 +526,7 @@ typename DGtal::FrechetShortcut<TIterator,TInteger>::Cone DGtal::FrechetShortcut
 	  res = Cone(c.myMin, myMax);
       else
 	res = Cone(myMin,c.myMax);
+
   
   return res;
 }
@@ -568,6 +572,7 @@ template <typename TIterator, typename TInteger>
 inline
 DGtal::FrechetShortcut<TIterator,TInteger>::FrechetShortcut(double error)
 {
+
   myError = error;
   myCone = Cone();
   
@@ -688,14 +693,18 @@ DGtal::FrechetShortcut<TIterator,TInteger>::computeNewCone()
   Point firstP = Point(*myBegin);
   Point newP = Point(*(myEnd+1));
 
-  
   Cone newCone=myCone;
+
+  if(firstP == newP)
+    return newCone;
   
   // compute the tangent points defined by the first point and the
   // circle C(newP,error)
+
+  
   bool intersect = Tools::circleTangentPoints(firstP[0],firstP[1], newP[0], newP[1], myError/(sqrt(2.0F)), &x0, &y0,
                                               &x1, &y1);
-  
+
   if(intersect)
     {
       // define a cone according to the new tangent points
@@ -704,20 +713,16 @@ DGtal::FrechetShortcut<TIterator,TInteger>::computeNewCone()
       if(fabs(x0-x1) < PRECISION && fabs(y0-y1) < PRECISION)
 	{
 	  double angle = Tools::computeAngle(firstP[0],firstP[1],newP[0],newP[1]);
-	  assert(angle != -1);
-	  double angle0 = angle - M_PI_2;
-	  if(angle0<0)
-	    angle0 = angle0+2*M_PI;
-	  double angle1 = angle + M_PI_2;
-	  if(angle1>2*M_PI)
-	    angle1 = angle1-2*M_PI;
-	  c = Cone(angle0,angle1);
+	  
+	  // the cone is reduced to a line
+	  c = Cone(angle,angle);
 	}
       else
 	c = Cone(firstP[0],firstP[1],x0,y0,x1,y1);
-      
+
       newCone.intersectCones(c); 
     }
+
   
   return newCone;
 
@@ -873,7 +878,7 @@ inline
 void DGtal::FrechetShortcut<TIterator,TInteger>::resetCone()
 {
   myCone.myMin = 0;
-  myCone.myMax = 0;
+  myCone.myMax = 2*M_PI; // default cone is the whole space
   myCone.myInf = true;  
 }
 


Test patch:
diff --git a/tests/geometry/curves/testFrechetShortcut.cpp b/tests/geometry/curves/testFrechetShortcut.cpp
index 612ea10f69..53c42efd31 100644
--- a/tests/geometry/curves/testFrechetShortcut.cpp
+++ b/tests/geometry/curves/testFrechetShortcut.cpp
@@ -49,6 +49,7 @@
 
 #include "DGtal/geometry/curves/GreedySegmentation.h"
 
+#include "ConfigTest.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -127,13 +128,8 @@ void testFrechetShortcutConceptChecking()
 
 bool testSegmentation()
 {
-  unsigned int nbok = 0;
-  unsigned int nb = 0;
-
   typedef PointVector<2,int> Point;
-  //typedef std::vector<Point>::iterator Iterator;
-  //typedef FrechetShortcut<Iterator,int> SegmentComputer;
-
+  
   std::vector<Point> contour;
   contour.push_back(Point(0,0));
   contour.push_back(Point(1,0));
@@ -173,30 +169,53 @@ bool testSegmentation()
   board << r;
   board << aCurve.getArrowsRange();
 
+  // Test when error = 3
+  
 
-  double anerror = 3;
-  nbok =3;
-
+  int nbok = 3;
+  int nb=0;
   trace.beginBlock ( "Greedy segmentation" );
   {
     typedef GreedySegmentation<SegmentComputer> Segmentation;
-    Segmentation theSegmentation( r.begin(), r.end(), SegmentComputer(anerror) );
+    Segmentation theSegmentation( r.begin(), r.end(), SegmentComputer(3) );
 
     Segmentation::SegmentComputerIterator it = theSegmentation.begin();
     Segmentation::SegmentComputerIterator itEnd = theSegmentation.end();
-
+    
     for ( ; it != itEnd; ++it) {
       SegmentComputer s(*it);
       trace.info() << s << std::endl;
       board << (*it);
       nb++;
     }
+    trace.info() << theSegmentation << std::endl;
+    board.saveEPS("FrechetShortcutGreedySegmentationTest.eps", Board2D::BoundingBox, 5000 );
+  }
 
-    //board << aCurve;
+  // test when error = 0
+  
+
+  int nbok2 = 5;
+  int nb2=0;
+  trace.beginBlock ( "Greedy segmentation" );
+  {
+    typedef GreedySegmentation<SegmentComputer> Segmentation;
+    Segmentation theSegmentation( r.begin(), r.end(), SegmentComputer(0) );
+
+    Segmentation::SegmentComputerIterator it = theSegmentation.begin();
+    Segmentation::SegmentComputerIterator itEnd = theSegmentation.end();
+
+    for ( ; it != itEnd; ++it) {
+      SegmentComputer s(*it);
+      trace.info() << s << std::endl;
+      board << (*it);
+      nb2++;
+    }
     trace.info() << theSegmentation << std::endl;
     board.saveEPS("FrechetShortcutGreedySegmentationTest.eps", Board2D::BoundingBox, 5000 );
   }
 
+  
   /* Saturated segmentation does not work for FrechetShortcut
      computer. Indeed, given two maximal Frechet shortcuts s1(begin, end) et
      s2(begin, end),  we can have s1.begin < s2.begin < s2.end <
@@ -205,11 +224,82 @@ bool testSegmentation()
 
   trace.endBlock();
 
-  return nbok == nb;
+  return (nbok == nb) && (nbok2==nb2);
 }
 
 
 
+bool testSegmentationLarger(const string& filename, int min, int max, double delta)
+{
+  // Build output filename
+
+  std::size_t pos1 = filename.find("samples/");  
+  std::size_t init = pos1+8;
+  std::size_t pos2 = filename.find(".dat"); 
+  std::size_t end = pos2-init;
+  std::string output = filename.substr(init,end); 
+  
+  trace.beginBlock ( "Testing block ..." );
+
+  trace.beginBlock ( "Greedy segmentation on larger contours" );
+
+  trace.info() << "Reading input curve" << filename << std::endl; 
+
+  typedef Curve::PointsRange::ConstIterator Iterator;
+  
+  Curve aCurve; //grid curve
+  
+  ifstream instream; // input stream
+  instream.open (filename.c_str(), ifstream::in);
+
+  aCurve.initFromVectorStream(instream);
+  
+  
+  typedef Curve::PointsRange Range; //range
+  Range r = aCurve.getPointsRange(); //range
+
+  Board2D board;
+  board << r;
+  board << aCurve.getArrowsRange();
+   
+  trace.info() << "Size of input curve = " << aCurve.size() << std::endl;
+  
+  typedef Curve::PointsRange::ConstIterator Iterator;
+  typedef FrechetShortcut<Iterator,int> SegmentComputer;
+  typedef GreedySegmentation<SegmentComputer> Segmentation;
+  
+  for(double error = min; error <= max; error+=delta)
+    {
+      trace.info() << "error = " << error << "\t";  
+      Segmentation theSegmentation( r.begin(), r.end(), SegmentComputer(error) );
+      
+      Segmentation::SegmentComputerIterator it = theSegmentation.begin();
+      Segmentation::SegmentComputerIterator itEnd = theSegmentation.end();
+
+      int size = 0;
+      for ( ; it != itEnd; ++it) 
+	size++;
+      
+      trace.info() << "size of simplified curve = " << size << std::endl;
+
+      it = theSegmentation.begin();
+      for ( ; it != itEnd; ++it)
+	{
+	  SegmentComputer s(*it);
+	  board << (*it);
+	}
+      // save simplified curves in eps file
+      string outputFilename = "FrechetShortcut-"+output+".eps";
+      board.saveEPS(outputFilename.c_str(), Board2D::BoundingBox, 5000 );
+    }
+  
+  trace.endBlock();
+  trace.endBlock();
+
+  return 1;
+}
+
+  
 
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -225,7 +315,12 @@ int main( int argc, char** argv )
 
   testFrechetShortcutConceptChecking();
 
-  bool res = testFrechetShortcut() && testSegmentation(); // && ... other tests
+
+  std::string Plant054 = testPath + "samples/Plant054.dat";
+  std::string beetle = testPath + "samples/beetle-1.dat";
+   
+  
+  bool res = testFrechetShortcut() && testSegmentation() && testSegmentationLarger(Plant054,0,20,0.5) && testSegmentationLarger(beetle,0,30,5); // && ... other tests
   trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
   trace.endBlock();
   return res ? 0 : 1;
diff --git a/tests/samples/Plant054.dat b/tests/samples/Plant054.dat
new file mode 100644
index 0000000000..dfbf1833db
--- /dev/null
+++ b/tests/samples/Plant054.dat
@@ -0,0 +1,1966 @@
+75 10
+74 10
+74 9
+74 8
+75 8
+75 9
+76 9
+76 8
+76 7
+76 6
+77 6
+77 7
+77 8
+77 9
+77 10
+78 10
+79 10
+79 9
+79 8
+79 7
+80 7
+80 6
+80 5
+81 5
+81 6
+82 6
+83 6
+83 5
+84 5
+84 4
+84 3
+85 3
+85 4
+85 5
+85 6
+85 7
+85 8
+86 8
+86 9
+86 10
+85 10
+85 11
+85 12
+85 13
+86 13
+86 12
+87 12
+87 11
+87 10
+88 10
+88 9
+88 8
+89 8
+89 7
+89 6
+90 6
+90 7
+91 7
+91 8
+91 9
+91 10
+90 10
+90 11
+90 12
+90 13
+89 13
+89 14
+90 14
+90 13
+91 13
+91 14
+91 15
+90 15
+90 16
+90 17
+89 17
+89 18
+88 18
+88 19
+87 19
+87 20
+87 21
+88 21
+88 22
+87 22
+87 23
+86 23
+86 24
+86 25
+87 25
+87 24
+88 24
+88 23
+89 23
+89 22
+90 22
+91 22
+92 22
+92 23
+92 24
+91 24
+91 25
+90 25
+89 25
+89 26
+88 26
+88 27
+89 27
+90 27
+90 26
+91 26
+91 27
+92 27
+92 26
+93 26
+93 27
+93 28
+92 28
+92 29
+91 29
+91 30
+92 30
+93 30
+93 31
+92 31
+92 32
+91 32
+91 33
+90 33
+90 34
+89 34
+89 35
+88 35
+88 36
+87 36
+87 37
+88 37
+89 37
+89 36
+90 36
+90 35
+91 35
+92 35
+92 34
+93 34
+93 33
+94 33
+94 32
+95 32
+95 31
+96 31
+96 30
+97 30
+97 29
+98 29
+98 30
+99 30
+99 31
+98 31
+98 32
+97 32
+97 33
+97 34
+96 34
+96 35
+95 35
+94 35
+94 36
+94 37
+95 37
+95 38
+94 38
+94 39
+93 39
+93 40
+92 40
+91 40
+90 40
+90 41
+90 42
+91 42
+91 41
+92 41
+93 41
+93 40
+94 40
+95 40
+96 40
+96 41
+95 41
+94 41
+94 42
+93 42
+92 42
+92 43
+91 43
+90 43
+89 43
+88 43
+87 43
+87 44
+86 44
+85 44
+85 45
+86 45
+87 45
+88 45
+89 45
+90 45
+90 44
+91 44
+92 44
+92 45
+93 45
+93 46
+92 46
+92 47
+91 47
+90 47
+89 47
+88 47
+87 47
+87 46
+86 46
+85 46
+84 46
+84 47
+84 48
+85 48
+86 48
+87 48
+88 48
+89 48
+90 48
+90 49
+91 49
+91 50
+90 50
+89 50
+88 50
+88 51
+87 51
+87 52
+87 53
+86 53
+86 54
+85 54
+85 55
+85 56
+84 56
+84 57
+84 58
+83 58
+83 59
+83 60
+82 60
+82 61
+82 62
+82 63
+81 63
+81 64
+81 65
+80 65
+80 66
+80 67
+80 68
+79 68
+79 69
+79 70
+79 71
+80 71
+80 70
+80 69
+80 68
+81 68
+81 67
+82 67
+82 66
+82 65
+83 65
+83 64
+83 63
+84 63
+84 62
+85 62
+85 61
+86 61
+86 60
+87 60
+87 61
+87 62
+86 62
+86 63
+85 63
+85 64
+85 65
+84 65
+84 66
+83 66
+83 67
+83 68
+84 68
+84 67
+85 67
+85 66
+85 65
+86 65
+86 64
+87 64
+87 63
+88 63
+88 62
+88 61
+89 61
+90 61
+90 60
+90 59
+91 59
+92 59
+92 60
+91 60
+91 61
+91 62
+92 62
+92 61
+93 61
+93 60
+94 60
+94 59
+95 59
+95 58
+96 58
+97 58
+97 59
+96 59
+96 60
+95 60
+95 61
+94 61
+94 62
+93 62
+93 63
+92 63
+92 64
+91 64
+91 65
+90 65
+90 66
+90 67
+90 68
+91 68
+91 67
+92 67
+93 67
+93 66
+94 66
+95 66
+95 67
+94 67
+94 68
+95 68
+96 68
+96 67
+97 67
+98 67
+98 66
+99 66
+100 66
+101 66
+101 67
+100 67
+99 67
+99 68
+98 68
+97 68
+97 69
+96 69
+95 69
+95 70
+94 70
+94 71
+93 71
+92 71
+92 72
+93 72
+94 72
+94 71
+95 71
+96 71
+97 71
+98 71
+98 70
+99 70
+99 69
+100 69
+100 70
+100 71
+100 72
+99 72
+98 72
+97 72
+97 73
+96 73
+96 74
+95 74
+94 74
+94 75
+93 75
+93 76
+92 76
+91 76
+90 76
+90 77
+89 77
+88 77
+88 78
+87 78
+86 78
+86 79
+85 79
+85 80
+86 80
+86 79
+87 79
+88 79
+89 79
+89 78
+90 78
+91 78
+92 78
+92 77
+93 77
+94 77
+94 76
+95 76
+96 76
+97 76
+97 77
+97 78
+98 78
+99 78
+100 78
+101 78
+102 78
+102 79
+101 79
+100 79
+100 80
+99 80
+98 80
+98 81
+99 81
+100 81
+100 82
+99 82
+98 82
+97 82
+96 82
+95 82
+94 82
+93 82
+92 82
+92 83
+91 83
+90 83
+89 83
+88 83
+87 83
+87 84
+88 84
+89 84
+90 84
+91 84
+92 84
+92 83
+93 83
+94 83
+95 83
+96 83
+97 83
+97 84
+98 84
+99 84
+100 84
+101 84
+102 84
+102 85
+103 85
+104 85
+105 85
+105 86
+104 86
+103 86
+102 86
+101 86
+100 86
+100 85
+99 85
+98 85
+97 85
+96 85
+95 85
+94 85
+93 85
+92 85
+91 85
+90 85
+90 86
+89 86
+88 86
+87 86
+86 86
+85 86
+84 86
+83 86
+83 87
+84 87
+85 87
+86 87
+86 88
+87 88
+88 88
+89 88
+89 89
+90 89
+91 89
+92 89
+93 89
+94 89
+95 89
+96 89
+97 89
+98 89
+99 89
+99 90
+98 90
+97 90
+96 90
+95 90
+94 90
+93 90
+93 91
+94 91
+94 92
+95 92
+96 92
+96 93
+97 93
+98 93
+98 94
+99 94
+99 95
+98 95
+97 95
+97 94
+96 94
+95 94
+95 93
+94 93
+93 93
+93 92
+92 92
+91 92
+90 92
+89 92
+89 91
+88 91
+87 91
+86 91
+85 91
+85 90
+84 90
+84 91
+84 92
+83 92
+82 92
+82 91
+81 91
+81 92
+82 92
+82 93
+83 93
+83 94
+84 94
+84 95
+85 95
+85 96
+86 96
+86 97
+87 97
+88 97
+88 98
+89 98
+89 99
+90 99
+91 99
+92 99
+92 100
+93 100
+94 100
+94 101
+93 101
+92 101
+91 101
+91 100
+90 100
+89 100
+88 100
+87 100
+87 99
+86 99
+85 99
+85 100
+86 100
+86 101
+87 101
+87 102
+88 102
+88 103
+89 103
+90 103
+90 104
+91 104
+91 105
+90 105
+89 105
+88 105
+88 104
+87 104
+87 103
+86 103
+86 102
+85 102
+85 101
+84 101
+84 100
+83 100
+83 99
+82 99
+82 98
+82 97
+81 97
+81 96
+80 96
+80 95
+80 94
+79 94
+79 93
+78 93
+78 92
+77 92
+77 91
+76 91
+76 90
+75 90
+75 89
+74 89
+74 88
+73 88
+72 88
+71 88
+71 89
+70 89
+70 90
+69 90
+68 90
+68 91
+68 92
+67 92
+67 93
+67 94
+67 95
+68 95
+68 96
+69 96
+70 96
+71 96
+71 95
+72 95
+72 96
+73 96
+74 96
+75 96
+76 96
+77 96
+77 97
+77 98
+78 98
+78 99
+78 100
+78 101
+79 101
+80 101
+80 102
+81 102
+81 103
+81 104
+81 105
+81 106
+80 106
+80 107
+81 107
+82 107
+83 107
+84 107
+85 107
+86 107
+86 108
+85 108
+84 108
+83 108
+82 108
+82 109
+81 109
+81 110
+82 110
+82 111
+83 111
+84 111
+85 111
+85 112
+84 112
+83 112
+82 112
+81 112
+80 112
+79 112
+78 112
+78 113
+78 114
+79 114
+80 114
+81 114
+82 114
+82 115
+81 115
+80 115
+79 115
+78 115
+77 115
+76 115
+75 115
+75 116
+76 116
+76 117
+77 117
+78 117
+79 117
+80 117
+81 117
+81 118
+82 118
+83 118
+84 118
+85 118
+85 119
+86 119
+87 119
+88 119
+89 119
+90 119
+91 119
+91 120
+90 120
+89 120
+88 120
+87 120
+86 120
+85 120
+85 121
+86 121
+86 122
+87 122
+87 123
+86 123
+85 123
+85 122
+84 122
+83 122
+82 122
+82 121
+81 121
+80 121
+80 120
+79 120
+78 120
+77 120
+77 119
+76 119
+75 119
+74 119
+73 119
+73 120
+74 120
+74 121
+75 121
+76 121
+76 122
+77 122
+77 123
+78 123
+79 123
+80 123
+80 124
+81 124
+81 125
+82 125
+83 125
+84 125
+84 126
+85 126
+86 126
+86 127
+87 127
+88 127
+89 127
+89 128
+90 128
+91 128
+92 128
+92 129
+93 129
+94 129
+95 129
+95 130
+94 130
+93 130
+92 130
+91 130
+91 129
+90 129
+89 129
+88 129
+88 128
+87 128
+86 128
+85 128
+85 129
+86 129
+87 129
+87 130
+86 130
+85 130
+84 130
+83 130
+83 129
+82 129
+81 129
+81 128
+80 128
+79 128
+79 127
+78 127
+77 127
+77 126
+76 126
+76 125
+75 125
+74 125
+74 124
+73 124
+73 123
+72 123
+71 123
+71 124
+72 124
+72 125
+71 125
+70 125
+70 124
+69 124
+69 123
+68 123
+68 122
+67 122
+67 121
+66 121
+65 121
+65 122
+64 122
+64 121
+63 121
+63 120
+62 120
+62 121
+62 122
+63 122
+63 123
+64 123
+64 124
+64 125
+65 125
+65 126
+66 126
+66 127
+67 127
+67 128
+67 129
+68 129
+68 130
+68 131
+69 131
+69 132
+69 133
+70 133
+70 134
+71 134
+71 135
+72 135
+72 136
+71 136
+70 136
+69 136
+69 135
+69 134
+68 134
+68 133
+67 133
+67 132
+66 132
+65 132
+65 131
+65 130
+64 130
+64 129
+63 129
+63 128
+63 127
+63 126
+62 126
+62 125
+62 124
+62 123
+61 123
+61 122
+61 121
+60 121
+60 120
+60 119
+59 119
+59 118
+59 117
+58 117
+58 118
+58 119
+58 120
+59 120
+59 121
+59 122
+59 123
+58 123
+58 122
+58 121
+57 121
+57 120
+57 119
+57 118
+56 118
+56 117
+56 116
+56 115
+55 115
+54 115
+53 115
+53 116
+53 117
+52 117
+52 118
+51 118
+51 119
+51 120
+50 120
+50 121
+49 121
+49 122
+49 123
+48 123
+48 124
+47 124
+47 125
+47 126
+46 126
+46 127
+45 127
+45 128
+44 128
+44 129
+44 130
+43 130
+43 131
+42 131
+42 130
+41 130
+40 130
+40 129
+41 129
+41 128
+41 127
+42 127
+42 126
+42 125
+42 124
+42 123
+43 123
+43 122
+43 121
+44 121
+44 120
+44 119
+44 118
+44 117
+45 117
+45 116
+45 115
+46 115
+46 114
+46 113
+46 112
+47 112
+47 111
+47 110
+46 110
+45 110
+44 110
+43 110
+43 111
+42 111
+41 111
+40 111
+39 111
+39 112
+38 112
+37 112
+36 112
+36 113
+35 113
+34 113
+33 113
+33 114
+32 114
+31 114
+31 115
+30 115
+29 115
+28 115
+28 116
+27 116
+26 116
+26 115
+27 115
+27 114
+28 114
+29 114
+29 113
+30 113
+31 113
+31 112
+32 112
+33 112
+34 112
+34 111
+35 111
+36 111
+37 111
+38 111
+38 110
+39 110
+40 110
+41 110
+42 110
+42 109
+43 109
+43 108
+42 108
+41 108
+40 108
+39 108
+38 108
+37 108
+37 109
+36 109
+35 109
+34 109
+33 109
+33 110
+32 110
+31 110
+30 110
+29 110
+29 111
+28 111
+27 111
+26 111
+25 111
+24 111
+23 111
+23 110
+22 110
+21 110
+20 110
+19 110
+18 110
+17 110
+16 110
+16 109
+16 108
+15 108
+14 108
+14 107
+15 107
+16 107
+17 107
+18 107
+19 107
+19 108
+20 108
+21 108
+22 108
+22 107
+23 107
+24 107
+25 107
+26 107
+27 107
+28 107
+29 107
+30 107
+31 107
+32 107
+33 107
+34 107
+35 107
+36 107
+37 107
+38 107
+39 107
+39 106
+39 105
+38 105
+37 105
+36 105
+35 105
+34 105
+33 105
+32 105
+32 104
+31 104
+30 104
+29 104
+28 104
+27 104
+26 104
+25 104
+24 104
+23 104
+22 104
+21 104
+21 103
+20 103
+19 103
+18 103
+17 103
+17 102
+16 102
+15 102
+14 102
+14 101
+13 101
+12 101
+12 100
+11 100
+10 100
+10 99
+9 99
+8 99
+7 99
+7 98
+6 98
+6 97
+7 97
+8 97
+9 97
+9 98
+10 98
+11 98
+11 99
+12 99
+13 99
+14 99
+15 99
+15 100
+16 100
+17 100
+18 100
+18 101
+19 101
+20 101
+21 101
+22 101
+23 101
+23 102
+24 102
+25 102
+26 102
+27 102
+28 102
+29 102
+30 102
+31 102
+31 103
+32 103
+33 103
+34 103
+35 103
+35 104
+36 104
+37 104
+38 104
+39 104
+39 103
+38 103
+37 103
+37 102
+36 102
+35 102
+34 102
+33 102
+33 101
+32 101
+31 101
+30 101
+29 101
+29 100
+28 100
+27 100
+26 100
+25 100
+25 99
+24 99
+23 99
+22 99
+22 98
+21 98
+20 98
+20 97
+19 97
+18 97
+18 96
+17 96
+17 95
+16 95
+15 95
+15 94
+14 94
+14 93
+15 93
+16 93
+16 94
+17 94
+18 94
+18 95
+19 95
+20 95
+20 96
+21 96
+22 96
+22 97
+23 97
+24 97
+25 97
+25 98
+26 98
+27 98
+28 98
+29 98
+29 97
+28 97
+27 97
+27 96
+26 96
+25 96
+24 96
+24 95
+23 95
+22 95
+22 94
+21 94
+20 94
+20 93
+19 93
+19 92
+18 92
+17 92
+17 91
+16 91
+16 90
+15 90
+14 90
+14 89
+13 89
+13 88
+12 88
+12 87
+11 87
+11 86
+12 86
+13 86
+13 87
+14 87
+14 88
+15 88
+15 89
+16 89
+17 89
+17 90
+18 90
+18 91
+19 91
+20 91
+20 90
+19 90
+19 89
+18 89
+17 89
+17 88
+16 88
+16 87
+15 87
+15 86
+14 86
+14 85
+13 85
+13 84
+12 84
+12 83
+11 83
+11 82
+10 82
+10 81
+11 81
+12 81
+12 82
+13 82
+13 83
+14 83
+14 84
+15 84
+16 84
+16 85
+17 85
+17 86
+18 86
+19 86
+19 87
+20 87
+20 88
+21 88
+22 88
+23 88
+24 88
+24 87
+24 86
+24 85
+23 85
+23 84
+22 84
+22 83
+21 83
+20 83
+20 82
+19 82
+19 81
+20 81
+21 81
+21 82
+22 82
+23 82
+23 83
+24 83
+25 83
+25 82
+24 82
+24 81
+23 81
+23 80
+23 79
+22 79
+22 78
+21 78
+21 77
+21 76
+20 76
+20 75
+19 75
+19 74
+19 73
+20 73
+20 74
+21 74
+21 75
+22 75
+22 76
+22 77
+23 77
+23 78
+24 78
+24 79
+25 79
+25 80
+26 80
+26 81
+27 81
+27 82
+27 83
+28 83
+28 84
+29 84
+29 85
+30 85
+30 84
+30 83
+29 83
+29 82
+29 81
+28 81
+28 80
+28 79
+27 79
+27 78
+27 77
+26 77
+26 76
+25 76
+24 76
+24 75
+24 74
+25 74
+25 75
+26 75
+26 74
+26 73
+27 73
+27 74
+27 75
+28 75
+28 76
+28 77
+29 77
+29 78
+30 78
+30 79
+31 79
+31 80
+32 80
+32 81
+33 81
+33 82
+34 82
+34 83
+34 84
+35 84
+35 85
+36 85
+36 86
+37 86
+37 87
+37 88
+38 88
+38 89
+39 89
+39 90
+39 91
+40 91
+40 92
+40 93
+41 93
+41 94
+42 94
+42 93
+42 92
+41 92
+41 91
+41 90
+40 90
+40 89
+39 89
+39 88
+39 87
+39 86
+38 86
+38 85
+37 85
+37 84
+37 83
+37 82
+36 82
+36 81
+35 81
+35 80
+35 79
+34 79
+34 78
+33 78
+33 77
+32 77
+32 76
+32 75
+33 75
+33 76
+34 76
+34 77
+35 77
+35 76
+35 75
+35 74
+35 73
+35 72
+35 71
+35 70
+36 70
+36 71
+37 71
+37 72
+37 73
+38 73
+38 74
+39 74
+39 73
+39 72
+39 71
+39 70
+39 69
+39 68
+39 67
+40 67
+40 68
+40 69
+40 70
+40 71
+41 71
+41 72
+41 73
+41 74
+41 75
+41 76
+42 76
+42 77
+42 78
+42 79
+42 80
+42 81
+43 81
+43 82
+43 83
+43 84
+44 84
+44 85
+44 86
+45 86
+45 87
+45 88
+46 88
+46 89
+46 90
+47 90
+47 89
+47 88
+47 87
+46 87
+46 86
+46 85
+45 85
+45 84
+45 83
+44 83
+44 82
+44 81
+44 80
+43 80
+43 79
+43 78
+43 77
+43 76
+42 76
+42 75
+42 74
+42 73
+42 72
+42 71
+42 70
+42 69
+42 68
+43 68
+43 67
+43 66
+43 65
+43 64
+43 63
+43 62
+43 61
+44 61
+44 62
+44 63
+44 64
+44 65
+44 66
+44 67
+44 68
+44 69
+44 70
+44 71
+44 72
+44 73
+45 73
+45 74
+45 75
+45 76
+45 77
+45 78
+46 78
+46 79
+46 80
+46 81
+47 81
+47 82
+47 83
+47 84
+47 85
+47 86
+48 86
+48 87
+48 88
+48 89
+49 89
+49 90
+49 91
+49 92
+49 93
+50 93
+50 92
+50 91
+51 91
+51 90
+51 89
+51 88
+51 87
+51 86
+51 85
+51 84
+51 83
+51 82
+51 81
+51 80
+51 79
+50 79
+50 78
+50 77
+50 76
+50 75
+50 74
+50 73
+49 73
+49 72
+49 71
+49 70
+50 70
+50 71
+50 72
+51 72
+51 73
+51 74
+52 74
+52 73
+52 72
+53 72
+53 71
+52 71
+52 70
+52 69
+52 68
+53 68
+53 67
+52 67
+52 66
+52 65
+52 64
+53 64
+54 64
+54 63
+55 63
+56 63
+56 62
+55 62
+55 61
+56 61
+57 61
+58 61
+58 60
+59 60
+59 59
+58 59
+57 59
+56 59
+55 59
+55 58
+54 58
+53 58
+53 57
+54 57
+55 57
+56 57
+56 58
+57 58
+58 58
+59 58
+60 58
+61 58
+62 58
+62 57
+61 57
+60 57
+60 56
+59 56
+58 56
+57 56
+56 56
+55 56
+55 55
+54 55
+53 55
+52 55
+51 55
+51 54
+52 54
+53 54
+54 54
+55 54
+56 54
+56 53
+55 53
+55 52
+54 52
+54 51
+55 51
+56 51
+56 52
+57 52
+57 53
+58 53
+59 53
+59 54
+60 54
+61 54
+61 55
+62 55
+63 55
+64 55
+64 56
+65 56
+65 55
+65 54
+64 54
+64 53
+63 53
+62 53
+62 52
+61 52
+61 51
+60 51
+60 50
+59 50
+58 50
+58 49
+57 49
+56 49
+56 48
+55 48
+54 48
+54 47
+53 47
+52 47
+52 46
+53 46
+54 46
+55 46
+55 47
+56 47
+57 47
+57 48
+58 48
+58 47
+57 47
+57 46
+56 46
+56 45
+57 45
+57 44
+57 43
+58 43
+59 43
+59 44
+60 44
+60 43
+60 42
+60 41
+60 40
+59 40
+59 39
+59 38
+59 37
+60 37
+60 38
+61 38
+61 37
+62 37
+62 38
+62 39
+62 40
+63 40
+63 41
+64 41
+65 41
+65 40
+64 40
+64 39
+64 38
+63 38
+63 37
+63 36
+64 36
+64 37
+65 37
+65 38
+65 39
+66 39
+66 38
+66 37
+66 36
+67 36
+67 37
+67 38
+67 39
+67 40
+68 40
+69 40
+69 39
+69 38
+69 37
+69 36
+69 35
+68 35
+68 34
+68 33
+68 32
+67 32
+67 31
+67 30
+67 29
+66 29
+66 28
+66 27
+66 26
+65 26
+65 25
+64 25
+64 24
+63 24
+63 23
+64 23
+65 23
+65 24
+66 24
+66 23
+65 23
+65 22
+65 21
+64 21
+64 20
+64 19
+65 19
+65 20
+66 20
+66 21
+66 22
+67 22
+67 23
+68 23
+69 23
+69 24
+70 24
+70 23
+69 23
+69 22
+68 22
+68 21
+67 21
+67 20
+67 19
+67 18
+68 18
+68 19
+68 20
+69 20
+69 21
+70 21
+70 22
+71 22
+71 23
+71 24
+72 24
+72 23
+72 22
+71 22
+71 21
+71 20
+70 20
+70 19
+70 18
+69 18
+69 17
+69 16
+70 16
+70 15
+70 14
+70 13
+70 12
+71 12
+71 13
+71 14
+71 15
+71 16
+71 17
+72 17
+72 18
+72 19
+73 19
+73 20
+73 21
+74 21
+74 22
+75 22
+75 21
+75 20
+75 19
+74 19
+74 18
+74 17
+74 16
+74 15
+73 15
+73 14
+73 13
+73 12
+73 11
+72 11
+72 10
+72 9
+72 8
+73 8
+73 9
+73 10
+74 10
+74 11
+74 12
+75 12
+75 11
diff --git a/tests/samples/beetle-1.dat b/tests/samples/beetle-1.dat
new file mode 100755
index 0000000000..eee731ddac
--- /dev/null
+++ b/tests/samples/beetle-1.dat
@@ -0,0 +1,5222 @@
+244 14
+243 14
+243 15
+242 15
+242 16
+242 17
+242 18
+241 18
+241 19
+240 19
+239 19
+239 20
+239 21
+239 22
+239 23
+240 23
+241 23
+241 24
+241 25
+241 26
+242 26
+242 27
+243 27
+243 28
+244 28
+245 28
+245 29
+245 30
+246 30
+246 31
+246 32
+246 33
+246 34
+247 34
+247 35
+248 35
+249 35
+249 36
+250 36
+251 36
+252 36
+253 36
+254 36
+255 36
+255 37
+255 38
+256 38
+257 38
+257 39
+258 39
+258 40
+258 41
+258 42
+258 43
+259 43
+259 44
+260 44
+261 44
+261 45
+261 46
+261 47
+262 47
+262 48
+263 48
+263 49
+263 50
+263 51
+264 51
+265 51
+266 51
+266 52
+267 52
+267 53
+267 54
+268 54
+269 54
+270 54
+270 55
+271 55
+271 56
+271 57
+271 58
+270 58
+270 59
+270 60
+270 61
+270 62
+270 63
+271 63
+271 64
+271 65
+271 66
+271 67
+271 68
+272 68
+273 68
+273 69
+273 70
+274 70
+274 71
+275 71
+275 72
+275 73
+275 74
+276 74
+276 75
+276 76
+276 77
+276 78
+276 79
+276 80
+276 81
+276 82
+277 82
+278 82
+278 83
+278 84
+278 85
+278 86
+278 87
+278 88
+279 88
+280 88
+280 89
+280 90
+280 91
+280 92
+281 92
+282 92
+282 93
+282 94
+282 95
+282 96
+283 96
+283 97
+283 98
+283 99
+284 99
+284 100
+284 101
+285 101
+286 101
+286 102
+286 103
+285 103
+284 103
+284 104
+284 105
+284 106
+284 107
+283 107
+283 108
+283 109
+284 109
+284 110
+284 111
+284 112
+284 113
+284 114
+284 115
+284 116
+284 117
+284 118
+284 119
+284 120
+284 121
+284 122
+284 123
+285 123
+286 123
+286 124
+287 124
+287 125
+288 125
+288 126
+288 127
+288 128
+287 128
+287 129
+287 130
+287 131
+286 131
+286 132
+286 133
+286 134
+286 135
+286 136
+286 137
+286 138
+286 139
+287 139
+287 140
+288 140
+288 141
+288 142
+288 143
+289 143
+290 143
+290 144
+291 144
+291 145
+291 146
+291 147
+291 148
+291 149
+291 150
+291 151
+290 151
+290 152
+289 152
+288 152
+288 153
+288 154
+288 155
+288 156
+288 157
+289 157
+290 157
+290 158
+290 159
+290 160
+291 160
+291 161
+291 162
+291 163
+291 164
+291 165
+291 166
+291 167
+291 168
+292 168
+292 169
+292 170
+292 171
+292 172
+292 173
+291 173
+291 174
+291 175
+291 176
+291 177
+291 178
+291 179
+291 180
+291 181
+291 182
+292 182
+292 183
+292 184
+292 185
+292 186
+293 186
+294 186
+295 186
+295 187
+295 188
+296 188
+296 189
+296 190
+296 191
+296 192
+296 193
+296 194
+295 194
+295 195
+295 196
+295 197
+296 197
+296 198
+296 199
+296 200
+295 200
+295 201
+295 202
+296 202
+296 203
+296 204
+296 205
+296 206
+296 207
+296 208
+297 208
+298 208
+298 209
+298 210
+298 211
+298 212
+298 213
+299 213
+299 214
+300 214
+300 215
+300 216
+300 217
+300 218
+301 218
+302 218
+302 219
+302 220
+302 221
+302 222
+302 223
+302 224
+302 225
+301 225
+300 225
+300 226
+301 226
+302 226
+302 227
+302 228
+303 228
+303 229
+303 230
+303 231
+303 232
+303 233
+302 233
+302 234
+303 234
+303 235
+303 236
+303 237
+303 238
+304 238
+304 239
+304 240
+304 241
+305 241
+306 241
+306 242
+307 242
+307 243
+307 244
+307 245
+308 245
+309 245
+310 245
+310 246
+310 247
+310 248
+309 248
+308 248
+307 248
+306 248
+305 248
+304 248
+304 249
+303 249
+303 250
+303 251
+302 251
+302 252
+302 253
+301 253
+300 253
+300 254
+299 254
+299 255
+298 255
+298 256
+298 257
+297 257
+296 257
+296 258
+296 259
+296 260
+296 261
+295 261
+295 262
+295 263
+295 264
+295 265
+295 266
+294 266
+293 266
+292 266
+292 267
+292 268
+292 269
+291 269
+291 270
+290 270
+289 270
+288 270
+287 270
+287 269
+286 269
+286 268
+286 267
+285 267
+284 267
+283 267
+282 267
+281 267
+280 267
+279 267
+278 267
+278 266
+277 266
+276 266
+276 265
+276 264
+276 263
+276 262
+276 261
+276 260
+276 259
+275 259
+275 258
+275 257
+274 257
+274 256
+274 255
+274 254
+273 254
+273 253
+273 252
+273 251
+273 250
+273 249
+272 249
+271 249
+271 248
+271 247
+271 246
+270 246
+270 245
+269 245
+269 244
+268 244
+267 244
+267 243
+267 242
+267 241
+266 241
+266 240
+265 240
+264 240
+263 240
+263 239
+263 238
+262 238
+262 237
+263 237
+263 236
+263 235
+263 234
+263 233
+263 232
+263 231
+263 230
+264 230
+265 230
+266 230
+266 229
+266 228
+267 228
+267 227
+267 226
+267 225
+267 224
+267 223
+267 222
+267 221
+267 220
+268 220
+269 220
+269 219
+269 218
+269 217
+269 216
+269 215
+269 214
+270 214
+270 213
+270 212
+270 211
+270 210
+271 210
+271 209
+271 208
+272 208
+273 208
+273 207
+273 206
+273 205
+273 204
+273 203
+273 202
+273 201
+273 200
+274 200
+274 199
+274 198
+274 197
+273 197
+273 196
+274 196
+274 195
+274 194
+274 193
+275 193
+275 192
+275 191
+275 190
+275 189
+275 188
+274 188
+274 187
+274 186
+274 185
+275 185
+275 184
+275 183
+275 182
+275 181
+275 180
+274 180
+274 179
+274 178
+273 178
+272 178
+271 178
+270 178
+270 177
+270 176
+269 176
+269 175
+269 174
+269 173
+269 172
+268 172
+267 172
+267 171
+267 170
+268 170
+269 170
+269 169
+269 168
+268 168
+267 168
+267 167
+267 166
+267 165
+266 165
+266 164
+266 163
+266 162
+266 161
+266 160
+266 159
+266 158
+266 157
+265 157
+264 157
+263 157
+263 156
+262 156
+262 155
+262 154
+262 153
+262 152
+262 151
+262 150
+262 149
+261 149
+260 149
+259 149
+259 148
+259 147
+258 147
+258 146
+258 145
+257 145
+256 145
+255 145
+255 144
+254 144
+253 144
+252 144
+251 144
+251 143
+250 143
+249 143
+249 142
+249 141
+249 140
+248 140
+247 140
+247 139
+247 138
+247 137
+248 137
+249 137
+249 136
+249 135
+249 134
+249 133
+249 132
+248 132
+247 132
+247 131
+246 131
+246 130
+246 129
+245 129
+244 129
+243 129
+242 129
+242 130
+242 131
+241 131
+240 131
+239 131
+239 132
+239 133
+239 134
+239 135
+238 135
+237 135
+237 136
+236 136
+235 136
+234 136
+234 137
+233 137
+233 138
+233 139
+232 139
+231 139
+231 140
+230 140
+230 141
+229 141
+229 142
+229 143
+229 144
+230 144
+230 145
+230 146
+230 147
+230 148
+230 149
+231 149
+231 150
+231 151
+232 151
+233 151
+234 151
+235 151
+236 151
+237 151
+238 151
+239 151
+240 151
+241 151
+241 152
+241 153
+241 154
+241 155
+241 156
+241 157
+241 158
+241 159
+241 160
+242 160
+242 161
+242 162
+242 163
+242 164
+243 164
+244 164
+245 164
+245 165
+245 166
+246 166
+246 167
+246 168
+247 168
+247 169
+248 169
+249 169
+249 170
+249 171
+249 172
+249 173
+249 174
+249 175
+249 176
+249 177
+249 178
+250 178
+251 178
+251 179
+251 180
+251 181
+251 182
+252 182
+253 182
+253 183
+253 184
+253 185
+252 185
+251 185
+251 186
+252 186
+253 186
+253 187
+253 188
+254 188
+254 189
+255 189
+255 190
+255 191
+255 192
+255 193
+255 194
+254 194
+254 195
+254 196
+254 197
+254 198
+255 198
+255 199
+255 200
+255 201
+255 202
+254 202
+254 203
+254 204
+254 205
+254 206
+254 207
+254 208
+254 209
+254 210
+253 210
+253 211
+253 212
+253 213
+253 214
+252 214
+251 214
+251 215
+251 216
+251 217
+251 218
+251 219
+251 220
+251 221
+251 222
+251 223
+251 224
+250 224
+249 224
+249 225
+249 226
+250 226
+251 226
+251 227
+251 228
+251 229
+250 229
+249 229
+249 230
+249 231
+249 232
+248 232
+247 232
+247 233
+247 234
+248 234
+249 234
+249 235
+249 236
+249 237
+249 238
+249 239
+249 240
+249 241
+249 242
+249 243
+249 244
+249 245
+249 246
+249 247
+249 248
+249 249
+249 250
+249 251
+249 252
+249 253
+249 254
+250 254
+251 254
+251 255
+251 256
+251 257
+251 258
+251 259
+251 260
+251 261
+252 261
+253 261
+253 262
+253 263
+253 264
+253 265
+253 266
+253 267
+253 268
+253 269
+254 269
+254 270
+254 271
+254 272
+254 273
+254 274
+255 274
+255 275
+256 275
+257 275
+257 276
+257 277
+257 278
+257 279
+257 280
+257 281
+257 282
+258 282
+258 283
+258 284
+258 285
+259 285
+259 286
+259 287
+260 287
+261 287
+261 288
+261 289
+261 290
+261 291
+260 291
+259 291
+259 292
+259 293
+258 293
+258 292
+258 291
+257 291
+257 292
+257 293
+256 293
+255 293
+254 293
+253 293
+252 293
+251 293
+250 293
+249 293
+249 294
+249 295
+249 296
+249 297
+248 297
+247 297
+246 297
+245 297
+245 298
+244 298
+243 298
+242 298
+242 299
+241 299
+241 298
+240 298
+239 298
+239 297
+238 297
+238 296
+238 295
+237 295
+237 294
+237 293
+236 293
+235 293
+234 293
+233 293
+232 293
+231 293
+230 293
+229 293
+229 292
+229 291
+228 291
+227 291
+226 291
+225 291
+224 291
+223 291
+223 290
+222 290
+221 290
+220 290
+219 290
+218 290
+217 290
+216 290
+215 290
+215 289
+214 289
+214 290
+213 290
+212 290
+211 290
+210 290
+209 290
+208 290
+207 290
+207 291
+206 291
+205 291
+204 291
+203 291
+202 291
+201 291
+200 291
+200 292
+200 293
+199 293
+198 293
+198 294
+198 295
+197 295
+196 295
+196 296
+196 297
+195 297
+194 297
+193 297
+193 298
+192 298
+191 298
+190 298
+189 298
+189 299
+188 299
+188 300
+188 301
+187 301
+186 301
+185 301
+184 301
+184 302
+183 302
+182 302
+182 303
+182 304
+182 305
+181 305
+181 306
+180 306
+179 306
+178 306
+178 307
+177 307
+176 307
+175 307
+174 307
+174 308
+174 309
+174 310
+173 310
+172 310
+172 311
+171 311
+170 311
+170 312
+170 313
+170 314
+169 314
+169 315
+168 315
+168 316
+168 317
+167 317
+166 317
+165 317
+164 317
+164 318
+163 318
+162 318
+161 318
+161 319
+160 319
+160 320
+160 321
+159 321
+158 321
+158 322
+157 322
+156 322
+156 323
+156 324
+156 325
+155 325
+154 325
+154 326
+153 326
+152 326
+151 326
+150 326
+149 326
+148 326
+147 326
+146 326
+146 327
+145 327
+145 328
+145 329
+144 329
+143 329
+142 329
+142 330
+141 330
+141 331
+140 331
+140 332
+140 333
+140 334
+140 335
+140 336
+141 336
+141 337
+141 338
+140 338
+139 338
+138 338
+137 338
+136 338
+135 338
+135 339
+135 340
+135 341
+135 342
+134 342
+133 342
+132 342
+131 342
+131 343
+130 343
+129 343
+128 343
+128 344
+127 344
+127 345
+127 346
+126 346
+125 346
+125 347
+124 347
+124 348
+123 348
+122 348
+121 348
+120 348
+119 348
+118 348
+117 348
+116 348
+116 349
+116 350
+115 350
+115 351
+114 351
+113 351
+113 352
+112 352
+112 353
+112 354
+112 355
+111 355
+111 356
+111 357
+111 358
+110 358
+109 358
+109 359
+108 359
+108 360
+107 360
+106 360
+105 360
+104 360
+103 360
+103 361
+103 362
+102 362
+101 362
+101 363
+100 363
+100 364
+100 365
+100 366
+99 366
+99 367
+98 367
+97 367
+96 367
+95 367
+95 368
+95 369
+95 370
+94 370
+93 370
+93 371
+93 372
+93 373
+93 374
+93 375
+94 375
+95 375
+95 376
+96 376
+97 376
+97 377
+97 378
+98 378
+99 378
+99 379
+100 379
+100 380
+101 380
+101 381
+101 382
+101 383
+101 384
+102 384
+103 384
+103 385
+103 386
+104 386
+105 386
+106 386
+107 386
+108 386
+108 385
+108 384
+109 384
+109 383
+109 382
+109 381
+109 380
+110 380
+111 380
+111 379
+111 378
+110 378
+109 378
+109 377
+109 376
+109 375
+109 374
+109 373
+109 372
+110 372
+111 372
+111 371
+112 371
+112 370
+113 370
+113 369
+113 368
+113 367
+114 367
+115 367
+116 367
+117 367
+118 367
+119 367
+120 367
+120 368
+120 369
+120 370
+121 370
+121 371
+122 371
+123 371
+124 371
+124 370
+125 370
+125 369
+125 368
+125 367
+126 367
+127 367
+127 366
+128 366
+128 365
+128 364
+128 363
+129 363
+129 362
+130 362
+131 362
+132 362
+133 362
+134 362
+135 362
+135 361
+135 360
+136 360
+136 359
+137 359
+137 358
+138 358
+138 357
+138 356
+139 356
+140 356
+140 357
+140 358
+141 358
+142 358
+142 357
+142 356
+142 355
+143 355
+144 355
+144 354
+144 353
+144 352
+144 351
+145 351
+146 351
+147 351
+148 351
+149 351
+150 351
+150 352
+151 352
+152 352
+153 352
+154 352
+154 351
+155 351
+156 351
+156 350
+157 350
+157 349
+157 348
+158 348
+158 347
+159 347
+160 347
+160 346
+160 345
+160 344
+160 343
+161 343
+161 342
+162 342
+163 342
+164 342
+164 341
+164 340
+165 340
+166 340
+166 339
+166 338
+167 338
+168 338
+168 337
+168 336
+169 336
+169 335
+169 334
+170 334
+170 333
+170 332
+171 332
+172 332
+172 331
+173 331
+174 331
+174 330
+175 330
+176 330
+176 329
+177 329
+178 329
+178 328
+178 327
+179 327
+180 327
+180 326
+181 326
+182 326
+183 326
+184 326
+184 325
+185 325
+185 324
+185 323
+185 322
+185 321
+186 321
+186 320
+186 319
+186 318
+187 318
+188 318
+188 317
+189 317
+189 316
+189 315
+190 315
+191 315
+192 315
+193 315
+194 315
+195 315
+196 315
+196 314
+197 314
+197 313
+198 313
+198 312
+198 311
+198 310
+199 310
+200 310
+200 309
+200 308
+200 307
+201 307
+202 307
+203 307
+204 307
+204 306
+205 306
+206 306
+207 306
+208 306
+209 306
+209 307
+210 307
+210 308
+210 309
+210 310
+211 310
+212 310
+213 310
+213 311
+214 311
+215 311
+215 312
+215 313
+216 313
+217 313
+217 314
+218 314
+219 314
+219 315
+220 315
+221 315
+222 315
+223 315
+223 316
+223 317
+224 317
+225 317
+225 318
+224 318
+223 318
+223 319
+223 320
+223 321
+222 321
+222 322
+222 323
+222 324
+222 325
+221 325
+220 325
+219 325
+219 326
+218 326
+218 327
+217 327
+216 327
+215 327
+215 328
+215 329
+215 330
+214 330
+214 331
+214 332
+213 332
+213 333
+213 334
+212 334
+211 334
+210 334
+210 335
+209 335
+209 336
+208 336
+207 336
+207 337
+207 338
+206 338
+205 338
+205 339
+205 340
+204 340
+204 341
+204 342
+203 342
+202 342
+202 343
+201 343
+201 344
+200 344
+200 345
+200 346
+199 346
+198 346
+198 347
+197 347
+197 348
+197 349
+197 350
+196 350
+196 351
+195 351
+194 351
+194 352
+193 352
+193 353
+193 354
+193 355
+192 355
+191 355
+190 355
+190 356
+190 357
+190 358
+189 358
+189 359
+188 359
+188 360
+187 360
+186 360
+186 361
+186 362
+185 362
+185 363
+184 363
+184 364
+183 364
+182 364
+182 365
+182 366
+181 366
+181 367
+181 368
+181 369
+181 370
+180 370
+180 371
+179 371
+178 371
+178 372
+177 372
+176 372
+176 373
+176 374
+175 374
+174 374
+174 375
+174 376
+173 376
+172 376
+172 377
+172 378
+172 379
+171 379
+170 379
+169 379
+169 380
+168 380
+167 380
+166 380
+166 381
+166 382
+165 382
+164 382
+163 382
+162 382
+161 382
+160 382
+159 382
+158 382
+158 383
+158 384
+157 384
+156 384
+155 384
+154 384
+153 384
+153 385
+153 386
+152 386
+151 386
+150 386
+149 386
+148 386
+147 386
+146 386
+146 387
+145 387
+144 387
+143 387
+142 387
+142 388
+141 388
+140 388
+140 389
+140 390
+139 390
+138 390
+137 390
+136 390
+136 391
+135 391
+135 392
+134 392
+133 392
+132 392
+132 393
+132 394
+131 394
+131 395
+130 395
+129 395
+128 395
+128 396
+128 397
+128 398
+128 399
+127 399
+127 400
+127 401
+127 402
+126 402
+125 402
+125 403
+124 403
+123 403
+122 403
+121 403
+121 404
+120 404
+120 405
+120 406
+119 406
+118 406
+117 406
+117 407
+116 407
+116 408
+116 409
+116 410
+115 410
+115 411
+114 411
+113 411
+112 411
+112 412
+112 413
+111 413
+111 414
+111 415
+110 415
+109 415
+109 416
+108 416
+108 417
+107 417
+107 418
+107 419
+107 420
+106 420
+105 420
+105 421
+104 421
+103 421
+103 422
+103 423
+102 423
+101 423
+100 423
+100 424
+100 425
+99 425
+99 426
+99 427
+99 428
+99 429
+98 429
+97 429
+97 430
+97 431
+96 431
+95 431
+95 432
+94 432
+93 432
+93 433
+93 434
+93 435
+92 435
+92 436
+92 437
+91 437
+91 438
+91 439
+90 439
+89 439
+88 439
+88 440
+87 440
+87 441
+87 442
+87 443
+86 443
+85 443
+85 444
+84 444
+84 445
+83 445
+83 446
+83 447
+82 447
+81 447
+81 448
+80 448
+80 449
+79 449
+79 450
+79 451
+78 451
+77 451
+77 452
+77 453
+76 453
+76 454
+76 455
+76 456
+76 457
+75 457
+74 457
+73 457
+73 458
+73 459
+72 459
+72 460
+71 460
+71 461
+70 461
+69 461
+69 462
+69 463
+68 463
+67 463
+67 464
+66 464
+65 464
+64 464
+64 465
+63 465
+62 465
+62 466
+62 467
+61 467
+60 467
+59 467
+59 468
+58 468
+58 469
+57 469
+56 469
+55 469
+54 469
+54 468
+53 468
+52 468
+52 469
+51 469
+51 470
+51 471
+51 472
+50 472
+49 472
+48 472
+48 473
+47 473
+47 472
+46 472
+45 472
+44 472
+43 472
+42 472
+42 473
+41 473
+40 473
+39 473
+38 473
+38 474
+38 475
+37 475
+36 475
+36 476
+35 476
+35 477
+34 477
+34 478
+34 479
+33 479
+32 479
+31 479
+30 479
+30 480
+29 480
+28 480
+27 480
+27 481
+26 481
+25 481
+24 481
+23 481
+23 482
+23 483
+22 483
+22 484
+21 484
+20 484
+19 484
+18 484
+17 484
+16 484
+15 484
+14 484
+13 484
+12 484
+11 484
+11 485
+11 486
+11 487
+10 487
+10 488
+9 488
+8 488
+8 489
+8 490
+8 491
+8 492
+8 493
+8 494
+8 495
+9 495
+10 495
+10 496
+11 496
+11 497
+12 497
+12 498
+13 498
+14 498
+14 499
+14 500
+14 501
+15 501
+16 501
+17 501
+18 501
+18 502
+19 502
+20 502
+20 503
+20 504
+21 504
+22 504
+22 503
+22 502
+23 502
+24 502
+24 501
+25 501
+26 501
+26 500
+26 499
+26 498
+27 498
+27 497
+27 496
+28 496
+28 495
+29 495
+30 495
+30 494
+30 493
+31 493
+32 493
+33 493
+34 493
+34 492
+35 492
+36 492
+37 492
+38 492
+39 492
+39 493
+40 493
+41 493
+42 493
+42 494
+42 495
+43 495
+44 495
+44 494
+44 493
+45 493
+46 493
+47 493
+48 493
+48 492
+49 492
+50 492
+51 492
+51 491
+52 491
+53 491
+54 491
+54 490
+54 489
+55 489
+56 489
+56 488
+57 488
+58 488
+58 487
+59 487
+59 486
+59 485
+59 484
+60 484
+61 484
+62 484
+63 484
+63 483
+64 483
+65 483
+66 483
+67 483
+68 483
+68 482
+68 481
+69 481
+70 481
+71 481
+71 480
+72 480
+72 479
+73 479
+73 478
+73 477
+73 476
+74 476
+75 476
+76 476
+76 477
+77 477
+77 478
+77 479
+78 479
+79 479
+79 480
+80 480
+80 481
+81 481
+81 482
+81 483
+82 483
+83 483
+84 483
+84 482
+84 481
+85 481
+85 480
+85 479
+85 478
+85 477
+86 477
+87 477
+87 476
+87 475
+88 475
+88 474
+88 473
+88 472
+88 471
+88 470
+88 469
+88 468
+89 468
+90 468
+91 468
+91 467
+91 466
+91 465
+92 465
+92 464
+92 463
+93 463
+93 462
+93 461
+93 460
+93 459
+94 459
+95 459
+95 458
+95 457
+95 456
+95 455
+96 455
+97 455
+97 454
+97 453
+98 453
+99 453
+99 452
+99 451
+100 451
+100 450
+100 449
+100 448
+100 447
+101 447
+101 446
+101 445
+101 444
+102 444
+103 444
+103 443
+104 443
+105 443
+105 442
+105 441
+105 440
+106 440
+107 440
+107 439
+108 439
+108 438
+108 437
+109 437
+109 436
+110 436
+111 436
+111 435
+111 434
+111 433
+112 433
+112 432
+113 432
+113 431
+114 431
+115 431
+115 430
+115 429
+116 429
+116 428
+116 427
+116 426
+116 425
+117 425
+117 424
+118 424
+119 424
+120 424
+121 424
+122 424
+123 424
+123 423
+124 423
+124 422
+124 421
+125 421
+125 420
+126 420
+127 420
+127 419
+127 418
+127 417
+128 417
+128 416
+128 415
+129 415
+130 415
+131 415
+131 414
+131 413
+132 413
+132 412
+132 411
+133 411
+134 411
+135 411
+135 410
+136 410
+136 409
+136 408
+137 408
+138 408
+139 408
+140 408
+141 408
+142 408
+143 408
+144 408
+145 408
+145 409
+145 410
+145 411
+145 412
+145 413
+144 413
+144 414
+144 415
+143 415
+142 415
+142 416
+142 417
+141 417
+140 417
+140 418
+140 419
+140 420
+139 420
+138 420
+138 421
+137 421
+137 422
+137 423
+136 423
+136 424
+135 424
+135 425
+135 426
+135 427
+135 428
+134 428
+133 428
+132 428
+132 429
+131 429
+131 430
+131 431
+130 431
+129 431
+129 432
+128 432
+128 433
+127 433
+127 434
+127 435
+127 436
+126 436
+125 436
+125 437
+124 437
+124 438
+124 439
+124 440
+123 440
+123 441
+123 442
+123 443
+123 444
+122 444
+121 444
+121 445
+120 445
+120 446
+120 447
+120 448
+119 448
+118 448
+117 448
+117 449
+116 449
+116 450
+116 451
+116 452
+116 453
+115 453
+115 454
+115 455
+114 455
+113 455
+113 456
+113 457
+112 457
+112 458
+112 459
+112 460
+111 460
+111 461
+111 462
+111 463
+110 463
+109 463
+109 464
+109 465
+108 465
+108 466
+108 467
+107 467
+107 468
+107 469
+107 470
+107 471
+107 472
+106 472
+105 472
+105 473
+104 473
+103 473
+103 474
+103 475
+103 476
+102 476
+101 476
+101 477
+101 478
+101 479
+101 480
+101 481
+101 482
+101 483
+101 484
+101 485
+101 486
+101 487
+101 488
+101 489
+101 490
+101 491
+101 492
+102 492
+103 492
+103 493
+103 494
+103 495
+103 496
+103 497
+103 498
+104 498
+105 498
+105 499
+105 500
+105 501
+106 501
+107 501
+108 501
+108 502
+109 502
+109 503
+109 504
+109 505
+109 506
+110 506
+111 506
+111 507
+111 508
+112 508
+112 509
+113 509
+113 510
+114 510
+115 510
+115 511
+115 512
+116 512
+116 513
+116 514
+116 515
+116 516
+116 517
+116 518
+117 518
+117 519
+117 520
+117 521
+118 521
+119 521
+120 521
+120 522
+121 522
+121 523
+121 524
+122 524
+123 524
+124 524
+124 525
+125 525
+126 525
+127 525
+128 525
+129 525
+130 525
+131 525
+131 526
+132 526
+133 526
+134 526
+135 526
+135 527
+135 528
+136 528
+137 528
+137 529
+137 530
+138 530
+139 530
+140 530
+141 530
+141 531
+141 532
+142 532
+142 533
+143 533
+144 533
+145 533
+145 534
+146 534
+147 534
+148 534
+149 534
+150 534
+151 534
+152 534
+153 534
+154 534
+155 534
+156 534
+157 534
+157 535
+157 536
+158 536
+159 536
+160 536
+161 536
+162 536
+163 536
+164 536
+165 536
+166 536
+166 535
+166 534
+167 534
+168 534
+169 534
+169 533
+170 533
+171 533
+172 533
+172 532
+172 531
+172 530
+173 530
+174 530
+174 529
+174 528
+175 528
+176 528
+177 528
+178 528
+178 527
+178 526
+179 526
+180 526
+181 526
+182 526
+183 526
+184 526
+184 525
+185 525
+185 524
+185 523
+185 522
+186 522
+186 521
+186 520
+187 520
+188 520
+188 519
+188 518
+189 518
+189 517
+190 517
+190 516
+191 516
+192 516
+193 516
+193 515
+193 514
+193 513
+194 513
+195 513
+196 513
+196 512
+197 512
+197 511
+197 510
+198 510
+198 509
+199 509
+200 509
+200 508
+201 508
+201 507
+201 506
+202 506
+202 505
+203 505
+204 505
+204 504
+205 504
+205 503
+205 502
+206 502
+207 502
+207 501
+208 501
+209 501
+209 500
+209 499
+209 498
+210 498
+211 498
+211 497
+212 497
+213 497
+213 496
+213 495
+214 495
+214 494
+214 493
+215 493
+215 492
+215 491
+216 491
+217 491
+217 490
+217 489
+218 489
+218 488
+219 488
+219 487
+220 487
+221 487
+222 487
+222 486
+222 485
+222 484
+223 484
+223 483
+224 483
+225 483
+225 482
+225 481
+225 480
+226 480
+226 479
+227 479
+227 478
+227 477
+228 477
+229 477
+229 478
+229 479
+230 479
+230 480
+230 481
+231 481
+231 482
+231 483
+231 484
+231 485
+231 486
+231 487
+231 488
+231 489
+231 490
+231 491
+231 492
+231 493
+230 493
+230 494
+230 495
+230 496
+230 497
+229 497
+229 498
+228 498
+227 498
+227 499
+227 500
+227 501
+226 501
+226 502
+225 502
+225 503
+225 504
+224 504
+223 504
+223 505
+223 506
+222 506
+222 507
+222 508
+221 508
+220 508
+219 508
+218 508
+217 508
+217 509
+216 509
+215 509
+215 510
+214 510
+214 511
+214 512
+214 513
+213 513
+213 514
+213 515
+213 516
+213 517
+212 517
+211 517
+211 518
+210 518
+210 519
+210 520
+209 520
+208 520
+207 520
+207 521
+207 522
+206 522
+205 522
+205 523
+205 524
+204 524
+204 525
+204 526
+203 526
+202 526
+202 527
+202 528
+201 528
+201 529
+201 530
+200 530
+200 531
+200 532
+199 532
+198 532
+198 533
+197 533
+197 534
+196 534
+196 535
+196 536
+195 536
+194 536
+193 536
+192 536
+191 536
+190 536
+190 537
+189 537
+189 538
+189 539
+189 540
+189 541
+188 541
+187 541
+186 541
+186 542
+185 542
+184 542
+184 543
+184 544
+184 545
+183 545
+182 545
+182 546
+181 546
+180 546
+180 547
+180 548
+179 548
+178 548
+178 549
+177 549
+176 549
+175 549
+174 549
+174 550
+173 550
+172 550
+172 551
+172 552
+171 552
+170 552
+169 552
+169 553
+168 553
+167 553
+166 553
+166 554
+165 554
+165 555
+165 556
+164 556
+164 557
+164 558
+164 559
+164 560
+165 560
+165 561
+166 561
+167 561
+168 561
+169 561
+170 561
+171 561
+172 561
+172 560
+173 560
+174 560
+175 560
+176 560
+177 560
+178 560
+178 561
+178 562
+178 563
+178 564
+177 564
+176 564
+176 565
+175 565
+174 565
+174 566
+173 566
+173 567
+173 568
+173 569
+172 569
+172 570
+172 571
+172 572
+171 572
+170 572
+170 573
+170 574
+170 575
+170 576
+170 577
+170 578
+170 579
+170 580
+170 581
+169 581
+169 582
+169 583
+169 584
+169 585
+169 586
+169 587
+169 588
+169 589
+169 590
+168 590
+168 591
+167 591
+166 591
+166 592
+166 593
+165 593
+165 594
+165 595
+165 596
+165 597
+165 598
+166 598
+166 599
+167 599
+168 599
+168 600
+168 601
+169 601
+169 602
+169 603
+169 604
+169 605
+169 606
+169 607
+169 608
+169 609
+168 609
+168 610
+168 611
+167 611
+166 611
+166 612
+166 613
+165 613
+164 613
+163 613
+162 613
+161 613
+161 612
+161 611
+160 611
+159 611
+158 611
+158 612
+158 613
+157 613
+157 614
+157 615
+157 616
+157 617
+157 618
+157 619
+157 620
+157 621
+158 621
+158 622
+159 622
+160 622
+161 622
+162 622
+163 622
+164 622
+164 623
+165 623
+166 623
+166 624
+166 625
+167 625
+168 625
+168 626
+169 626
+169 627
+169 628
+169 629
+170 629
+170 630
+171 630
+172 630
+172 631
+172 632
+172 633
+173 633
+174 633
+175 633
+176 633
+176 632
+176 631
+176 630
+177 630
+178 630
+179 630
+180 630
+180 629
+180 628
+180 627
+181 627
+181 626
+180 626
+180 625
+179 625
+178 625
+178 624
+178 623
+178 622
+179 622
+180 622
+180 621
+180 620
+180 619
+181 619
+181 618
+181 617
+181 616
+181 615
+181 614
+181 613
+181 612
+181 611
+181 610
+181 609
+181 608
+181 607
+181 606
+181 605
+182 605
+182 604
+182 603
+183 603
+184 603
+184 602
+184 601
+185 601
+185 600
+185 599
+185 598
+186 598
+186 597
+186 596
+186 595
+186 594
+186 593
+185 593
+185 592
+185 591
+185 590
+185 589
+185 588
+185 587
+185 586
+185 585
+186 585
+186 584
+186 583
+186 582
+186 581
+186 580
+186 579
+186 578
+187 578
+188 578
+188 577
+188 576
+188 575
+188 574
+189 574
+189 573
+189 572
+189 571
+189 570
+189 569
+189 568
+190 568
+190 567
+190 566
+191 566
+192 566
+193 566
+193 565
+194 565
+194 564
+195 564
+196 564
+196 563
+196 562
+196 561
+197 561
+197 560
+197 559
+197 558
+197 557
+197 556
+198 556
+198 555
+198 554
+199 554
+200 554
+200 553
+201 553
+202 553
+202 552
+203 552
+204 552
+204 551
+204 550
+205 550
+205 549
+205 548
+206 548
+207 548
+207 547
+207 546
+207 545
+208 545
+209 545
+210 545
+210 544
+210 543
+210 542
+211 542
+211 541
+212 541
+213 541
+213 540
+213 539
+213 538
+214 538
+214 537
+214 536
+215 536
+215 535
+215 534
+216 534
+217 534
+217 533
+218 533
+219 533
+219 532
+220 532
+221 532
+222 532
+222 531
+222 530
+222 529
+222 528
+223 528
+223 527
+223 526
+223 525
+224 525
+225 525
+225 524
+226 524
+226 523
+226 522
+227 522
+227 521
+228 521
+229 521
+229 520
+230 520
+230 519
+230 518
+231 518
+231 517
+231 516
+232 516
+233 516
+233 515
+233 514
+233 513
+233 512
+234 512
+234 511
+234 510
+234 509
+235 509
+236 509
+237 509
+237 508
+238 508
+238 507
+238 506
+239 506
+239 505
+239 504
+240 504
+241 504
+241 503
+241 502
+242 502
+242 501
+242 500
+242 499
+242 498
+243 498
+243 497
+243 496
+244 496
+245 496
+245 495
+246 495
+246 494
+246 493
+246 492
+247 492
+247 491
+247 490
+247 489
+248 489
+249 489
+249 488
+249 487
+250 487
+251 487
+251 486
+251 485
+251 484
+251 483
+252 483
+253 483
+253 482
+253 481
+253 480
+252 480
+251 480
+251 479
+251 478
+251 477
+252 477
+253 477
+253 476
+253 475
+253 474
+253 473
+253 472
+253 471
+253 470
+253 469
+253 468
+253 467
+252 467
+251 467
+251 466
+251 465
+251 464
+251 463
+252 463
+253 463
+253 462
+253 461
+253 460
+253 459
+253 458
+253 457
+253 456
+253 455
+253 454
+253 453
+254 453
+254 452
+255 452
+255 451
+255 450
+255 449
+256 449
+257 449
+257 448
+257 447
+258 447
+258 446
+258 445
+258 444
+259 444
+260 444
+261 444
+262 444
+262 443
+263 443
+263 442
+263 441
+263 440
+263 439
+264 439
+265 439
+266 439
+266 438
+266 437
+266 436
+267 436
+267 435
+268 435
+269 435
+269 434
+269 433
+270 433
+270 432
+270 431
+271 431
+271 430
+271 429
+272 429
+273 429
+273 428
+274 428
+274 427
+274 426
+274 425
+275 425
+275 424
+276 424
+276 423
+277 423
+278 423
+278 422
+278 421
+278 420
+279 420
+280 420
+280 419
+280 418
+280 417
+281 417
+282 417
+282 416
+283 416
+283 415
+284 415
+284 414
+284 413
+285 413
+286 413
+286 412
+286 411
+286 410
+287 410
+287 409
+287 408
+288 408
+288 407
+289 407
+290 407
+290 406
+291 406
+291 405
+291 404
+291 403
+292 403
+292 402
+292 401
+292 400
+292 399
+293 399
+294 399
+295 399
+295 398
+295 397
+295 396
+296 396
+296 395
+297 395
+298 395
+298 394
+299 394
+300 394
+300 393
+300 392
+300 391
+301 391
+302 391
+302 390
+302 389
+302 388
+303 388
+303 387
+303 386
+304 386
+305 386
+306 386
+306 387
+307 387
+307 388
+308 388
+309 388
+310 388
+310 389
+310 390
+311 390
+311 391
+311 392
+312 392
+312 393
+312 394
+313 394
+314 394
+314 395
+315 395
+315 396
+316 396
+317 396
+318 396
+318 397
+318 398
+318 399
+318 400
+319 400
+319 401
+319 402
+319 403
+319 404
+319 405
+319 406
+319 407
+318 407
+318 408
+318 409
+318 410
+318 411
+318 412
+318 413
+317 413
+316 413
+316 414
+316 415
+315 415
+315 416
+314 416
+314 417
+313 417
+312 417
+312 418
+312 419
+312 420
+311 420
+311 421
+311 422
+311 423
+310 423
+310 424
+309 424
+308 424
+307 424
+307 425
+307 426
+307 427
+307 428
+307 429
+306 429
+306 430
+306 431
+305 431
+304 431
+304 432
+303 432
+303 433
+303 434
+303 435
+303 436
+302 436
+302 437
+302 438
+302 439
+301 439
+300 439
+300 440
+300 441
+300 442
+300 443
+299 443
+299 444
+298 444
+298 445
+297 445
+296 445
+296 446
+296 447
+295 447
+295 448
+295 449
+294 449
+293 449
+292 449
+292 450
+292 451
+291 451
+291 452
+290 452
+290 453
+289 453
+288 453
+288 454
+288 455
+287 455
+287 456
+287 457
+287 458
+287 459
+288 459
+288 460
+289 460
+290 460
+291 460
+291 461
+291 462
+291 463
+291 464
+291 465
+290 465
+290 466
+290 467
+289 467
+288 467
+288 468
+287 468
+287 469
+286 469
+286 470
+286 471
+286 472
+286 473
+285 473
+284 473
+284 474
+284 475
+284 476
+284 477
+284 478
+284 479
+284 480
+283 480
+283 481
+282 481
+282 482
+282 483
+282 484
+281 484
+280 484
+280 485
+280 486
+280 487
+280 488
+279 488
+278 488
+278 489
+277 489
+276 489
+276 490
+276 491
+275 491
+275 492
+275 493
+275 494
+275 495
+275 496
+275 497
+276 497
+276 498
+276 499
+276 500
+276 501
+277 501
+278 501
+278 502
+277 502
+276 502
+276 503
+276 504
+276 505
+276 506
+275 506
+275 507
+275 508
+275 509
+274 509
+274 510
+273 510
+272 510
+271 510
+270 510
+270 509
+269 509
+269 510
+268 510
+267 510
+266 510
+266 511
+266 512
+266 513
+265 513
+264 513
+263 513
+263 514
+263 515
+263 516
+263 517
+264 517
+265 517
+266 517
+266 518
+267 518
+267 519
+267 520
+268 520
+269 520
+269 521
+270 521
+270 522
+271 522
+272 522
+273 522
+274 522
+274 523
+274 524
+275 524
+275 525
+276 525
+277 525
+278 525
+278 526
+279 526
+280 526
+281 526
+282 526
+283 526
+283 525
+284 525
+284 524
+285 524
+286 524
+286 523
+286 522
+286 521
+286 520
+285 520
+284 520
+284 519
+284 518
+285 518
+286 518
+286 517
+287 517
+287 516
+288 516
+288 515
+288 514
+288 513
+289 513
+290 513
+290 512
+291 512
+291 511
+291 510
+291 509
+291 508
+292 508
+292 507
+292 506
+293 506
+294 506
+295 506
+295 505
+296 505
+296 504
+297 504
+298 504
+298 503
+298 502
+299 502
+299 501
+299 500
+299 499
+299 498
+299 497
+300 497
+300 496
+299 496
+299 495
+298 495
+298 494
+298 493
+297 493
+296 493
+296 492
+297 492
+298 492
+298 491
+299 491
+299 490
+299 489
+300 489
+300 488
+300 487
+299 487
+299 486
+299 485
+299 484
+299 483
+300 483
+300 482
+300 481
+300 480
+301 480
+302 480
+302 479
+302 478
+302 477
+303 477
+303 476
+303 475
+303 474
+303 473
+304 473
+304 472
+304 471
+304 470
+304 469
+305 469
+306 469
+306 468
+307 468
+307 467
+308 467
+309 467
+310 467
+310 466
+310 465
+310 464
+310 463
+311 463
+311 462
+311 461
+311 460
+311 459
+312 459
+312 458
+312 457
+312 456
+312 455
+313 455
+314 455
+314 454
+314 453
+314 452
+314 451
+315 451
+315 450
+315 449
+315 448
+316 448
+316 447
+316 446
+316 445
+317 445
+318 445
+318 444
+318 443
+319 443
+319 442
+319 441
+319 440
+320 440
+320 439
+320 438
+320 437
+320 436
+321 436
+322 436
+322 435
+322 434
+322 433
+322 432
+323 432
+324 432
+324 431
+325 431
+326 431
+326 430
+326 429
+327 429
+327 428
+327 427
+327 426
+327 425
+327 424
+327 423
+328 423
+328 422
+328 421
+328 420
+329 420
+330 420
+330 419
+330 418
+330 417
+330 416
+331 416
+331 415
+331 414
+331 413
+332 413
+332 412
+332 411
+333 411
+334 411
+334 410
+335 410
+335 409
+335 408
+335 407
+335 406
+334 406
+334 405
+334 404
+335 404
+335 403
+335 402
+335 401
+335 400
+335 399
+335 398
+335 397
+335 396
+335 395
+335 394
+335 393
+335 392
+335 391
+335 390
+334 390
+334 389
+334 388
+334 387
+333 387
+332 387
+332 386
+332 385
+332 384
+331 384
+331 383
+331 382
+331 381
+331 380
+330 380
+330 379
+330 378
+329 378
+328 378
+328 377
+328 376
+328 375
+327 375
+327 374
+326 374
+326 373
+326 372
+326 371
+325 371
+324 371
+323 371
+322 371
+322 370
+322 369
+322 368
+322 367
+321 367
+320 367
+320 366
+320 365
+320 364
+320 363
+320 362
+320 361
+320 360
+321 360
+322 360
+322 359
+322 358
+322 357
+322 356
+322 355
+322 354
+322 353
+322 352
+322 351
+322 350
+322 349
+322 348
+322 347
+322 346
+323 346
+324 346
+324 345
+324 344
+325 344
+326 344
+326 343
+327 343
+328 343
+328 344
+329 344
+330 344
+331 344
+332 344
+333 344
+334 344
+335 344
+336 344
+336 345
+336 346
+337 346
+338 346
+339 346
+340 346
+341 346
+342 346
+343 346
+344 346
+344 347
+345 347
+345 348
+346 348
+347 348
+347 349
+347 350
+348 350
+349 350
+350 350
+351 350
+352 350
+353 350
+354 350
+355 350
+356 350
+357 350
+358 350
+359 350
+360 350
+361 350
+362 350
+363 350
+364 350
+365 350
+366 350
+367 350
+368 350
+369 350
+370 350
+371 350
+372 350
+373 350
+374 350
+375 350
+375 349
+375 348
+376 348
+377 348
+378 348
+379 348
+380 348
+380 347
+381 347
+382 347
+383 347
+383 346
+384 346
+384 345
+384 344
+385 344
+386 344
+387 344
+388 344
+389 344
+390 344
+391 344
+391 343
+392 343
+393 343
+394 343
+395 343
+396 343
+397 343
+397 342
+398 342
+399 342
+400 342
+401 342
+402 342
+403 342
+404 342
+404 341
+404 340
+405 340
+405 339
+405 338
+406 338
+407 338
+408 338
+409 338
+410 338
+411 338
+412 338
+412 337
+412 336
+413 336
+413 335
+414 335
+415 335
+416 335
+416 334
+417 334
+418 334
+419 334
+420 334
+421 334
+422 334
+423 334
+424 334
+424 333
+424 332
+425 332
+426 332
+427 332
+428 332
+429 332
+430 332
+431 332
+432 332
+432 333
+432 334
+433 334
+433 333
+433 332
+434 332
+435 332
+436 332
+437 332
+438 332
+439 332
+440 332
+441 332
+441 333
+441 334
+442 334
+443 334
+444 334
+444 335
+445 335
+445 334
+446 334
+447 334
+448 334
+448 335
+449 335
+450 335
+451 335
+452 335
+452 336
+453 336
+454 336
+455 336
+456 336
+456 337
+456 338
+457 338
+457 339
+457 340
+458 340
+458 341
+458 342
+459 342
+460 342
+461 342
+461 341
+461 340
+462 340
+463 340
+464 340
+464 339
+464 338
+465 338
+465 339
+465 340
+466 340
+466 341
+466 342
+467 342
+468 342
+468 343
+468 344
+468 345
+468 346
+467 346
+466 346
+466 347
+466 348
+467 348
+468 348
+468 349
+468 350
+469 350
+470 350
+470 351
+471 351
+472 351
+472 352
+473 352
+474 352
+474 351
+475 351
+476 351
+476 350
+477 350
+478 350
+478 349
+478 348
+479 348
+480 348
+481 348
+481 347
+482 347
+482 346
+483 346
+484 346
+485 346
+485 345
+485 344
+486 344
+486 343
+487 343
+487 342
+488 342
+489 342
+489 341
+489 340
+489 339
+489 338
+489 337
+489 336
+488 336
+487 336
+487 335
+486 335
+486 334
+485 334
+484 334
+483 334
+482 334
+482 335
+481 335
+480 335
+479 335
+479 334
+478 334
+478 333
+478 332
+477 332
+477 331
+476 331
+476 330
+475 330
+474 330
+474 329
+473 329
+473 328
+473 327
+472 327
+472 326
+471 326
+470 326
+470 325
+470 324
+470 323
+470 322
+469 322
+468 322
+468 321
+467 321
+466 321
+466 320
+466 319
+465 319
+465 318
+464 318
+463 318
+462 318
+461 318
+460 318
+459 318
+458 318
+458 317
+457 317
+456 317
+455 317
+454 317
+453 317
+452 317
+451 317
+450 317
+450 316
+450 315
+449 315
+448 315
+448 314
+447 314
+446 314
+445 314
+445 315
+444 315
+443 315
+442 315
+441 315
+440 315
+439 315
+438 315
+437 315
+436 315
+435 315
+434 315
+433 315
+433 314
+432 314
+431 314
+430 314
+430 313
+429 313
+429 312
+429 311
+428 311
+427 311
+426 311
+425 311
+424 311
+423 311
+422 311
+422 312
+422 313
+422 314
+421 314
+421 315
+420 315
+419 315
+418 315
+417 315
+417 316
+417 317
+416 317
+415 317
+414 317
+414 318
+413 318
+412 318
+412 319
+412 320
+412 321
+411 321
+410 321
+409 321
+408 321
+407 321
+406 321
+405 321
+405 322
+404 322
+403 322
+402 322
+401 322
+401 323
+401 324
+401 325
+400 325
+400 326
+399 326
+398 326
+397 326
+396 326
+395 326
+394 326
+393 326
+392 326
+392 327
+391 327
+391 328
+391 329
+390 329
+389 329
+388 329
+388 330
+387 330
+386 330
+385 330
+385 331
+384 331
+384 332
+383 332
+382 332
+381 332
+380 332
+379 332
+378 332
+377 332
+377 333
+377 334
+376 334
+375 334
+375 333
+375 332
+374 332
+373 332
+373 331
+372 331
+371 331
+371 330
+370 330
+369 330
+368 330
+368 329
+367 329
+366 329
+365 329
+365 328
+365 327
+364 327
+363 327
+362 327
+361 327
+360 327
+359 327
+358 327
+357 327
+357 326
+356 326
+355 326
+355 325
+354 325
+353 325
+352 325
+351 325
+350 325
+349 325
+348 325
+347 325
+347 324
+347 323
+347 322
+346 322
+345 322
+345 321
+345 320
+345 319
+345 318
+345 317
+345 316
+345 315
+344 315
+344 314
+343 314
+343 313
+343 312
+343 311
+343 310
+344 310
+345 310
+346 310
+347 310
+347 309
+347 308
+347 307
+348 307
+349 307
+350 307
+351 307
+351 306
+352 306
+353 306
+353 305
+353 304
+353 303
+353 302
+354 302
+355 302
+355 301
+356 301
+356 300
+356 299
+357 299
+357 298
+358 298
+359 298
+359 297
+359 296
+359 295
+360 295
+360 294
+360 293
+359 293
+359 292
+359 291
+359 290
+359 289
+360 289
+361 289
+361 288
+361 287
+362 287
+363 287
+363 288
+363 289
+364 289
+365 289
+365 290
+366 290
+367 290
+368 290
+369 290
+369 291
+370 291
+371 291
+372 291
+373 291
+374 291
+375 291
+375 292
+375 293
+376 293
+377 293
+378 293
+379 293
+380 293
+380 294
+380 295
+381 295
+382 295
+383 295
+384 295
+385 295
+385 294
+385 293
+386 293
+387 293
+388 293
+388 292
+388 291
+389 291
+390 291
+391 291
+392 291
+392 292
+392 293
+393 293
+394 293
+395 293
+396 293
+397 293
+398 293
+399 293
+400 293
+401 293
+402 293
+403 293
+404 293
+405 293
+406 293
+407 293
+407 294
+407 295
+408 295
+409 295
+410 295
+411 295
+412 295
+412 294
+412 293
+413 293
+414 293
+415 293
+416 293
+417 293
+418 293
+419 293
+420 293
+421 293
+422 293
+423 293
+424 293
+424 294
+424 295
+425 295
+426 295
+427 295
+428 295
+428 294
+428 293
+429 293
+430 293
+431 293
+432 293
+433 293
+434 293
+434 294
+434 295
+435 295
+436 295
+437 295
+437 296
+437 297
+438 297
+438 296
+438 295
+439 295
+440 295
+441 295
+441 294
+441 293
+442 293
+443 293
+444 293
+445 293
+446 293
+447 293
+448 293
+448 294
+448 295
+449 295
+450 295
+451 295
+452 295
+452 294
+452 293
+453 293
+454 293
+455 293
+456 293
+457 293
+458 293
+458 292
+458 291
+459 291
+460 291
+461 291
+462 291
+463 291
+464 291
+465 291
+466 291
+467 291
+468 291
+469 291
+470 291
+471 291
+472 291
+473 291
+474 291
+475 291
+476 291
+477 291
+478 291
+479 291
+480 291
+481 291
+482 291
+483 291
+484 291
+485 291
+485 290
+486 290
+487 290
+488 290
+489 290
+490 290
+491 290
+491 291
+492 291
+493 291
+494 291
+495 291
+495 292
+495 293
+496 293
+497 293
+498 293
+499 293
+500 293
+501 293
+501 292
+501 291
+502 291
+503 291
+504 291
+505 291
+506 291
+507 291
+508 291
+509 291
+510 291
+511 291
+512 291
+513 291
+514 291
+515 291
+515 292
+515 293
+516 293
+517 293
+518 293
+519 293
+520 293
+521 293
+522 293
+522 294
+522 295
+523 295
+524 295
+525 295
+525 294
+525 293
+526 293
+527 293
+528 293
+529 293
+530 293
+531 293
+532 293
+533 293
+534 293
+535 293
+535 294
+535 295
+536 295
+537 295
+538 295
+538 296
+538 297
+539 297
+540 297
+541 297
+542 297
+543 297
+544 297
+545 297
+546 297
+546 298
+547 298
+548 298
+549 298
+550 298
+551 298
+552 298
+552 299
+553 299
+554 299
+555 299
+556 299
+557 299
+558 299
+559 299
+559 300
+559 301
+560 301
+561 301
+562 301
+562 300
+562 299
+563 299
+564 299
+564 300
+564 301
+565 301
+566 301
+566 302
+567 302
+567 303
+568 303
+568 304
+568 305
+569 305
+570 305
+571 305
+572 305
+572 306
+573 306
+574 306
+574 307
+575 307
+576 307
+577 307
+578 307
+578 308
+578 309
+578 310
+579 310
+580 310
+580 311
+580 312
+580 313
+581 313
+582 313
+582 314
+583 314
+583 315
+584 315
+584 316
+584 317
+585 317
+586 317
+587 317
+588 317
+588 318
+589 318
+590 318
+591 318
+592 318
+592 319
+593 319
+594 319
+594 320
+594 321
+595 321
+596 321
+597 321
+598 321
+598 320
+598 319
+599 319
+600 319
+601 319
+602 319
+602 318
+603 318
+603 317
+603 316
+603 315
+603 314
+602 314
+602 313
+602 312
+602 311
+602 310
+602 309
+602 308
+602 307
+601 307
+600 307
+599 307
+599 306
+598 306
+598 305
+598 304
+598 303
+597 303
+596 303
+595 303
+595 302
+594 302
+594 301
+593 301
+592 301
+591 301
+591 300
+591 299
+590 299
+589 299
+588 299
+588 298
+587 298
+586 298
+585 298
+584 298
+583 298
+583 297
+583 296
+583 295
+582 295
+582 294
+582 293
+581 293
+580 293
+580 292
+580 291
+579 291
+579 290
+578 290
+577 290
+576 290
+575 290
+574 290
+573 290
+572 290
+572 289
+571 289
+570 289
+569 289
+568 289
+568 288
+568 287
+567 287
+567 286
+566 286
+566 285
+565 285
+564 285
+563 285
+563 284
+563 283
+562 283
+561 283
+560 283
+559 283
+558 283
+558 284
+558 285
+557 285
+556 285
+555 285
+555 284
+555 283
+554 283
+553 283
+552 283
+551 283
+550 283
+549 283
+548 283
+548 282
+547 282
+546 282
+545 282
+544 282
+543 282
+542 282
+541 282
+541 281
+540 281
+539 281
+538 281
+537 281
+536 281
+535 281
+535 280
+535 279
+535 278
+534 278
+533 278
+533 277
+532 277
+531 277
+530 277
+529 277
+528 277
+527 277
+526 277
+525 277
+524 277
+523 277
+522 277
+521 277
+520 277
+519 277
+518 277
+518 278
+517 278
+517 277
+516 277
+515 277
+514 277
+514 276
+514 275
+513 275
+512 275
+511 275
+510 275
+510 274
+509 274
+508 274
+507 274
+506 274
+506 275
+505 275
+504 275
+503 275
+502 275
+502 274
+501 274
+500 274
+499 274
+498 274
+497 274
+496 274
+495 274
+495 275
+494 275
+493 275
+493 274
+492 274
+491 274
+490 274
+489 274
+489 273
+488 273
+487 273
+486 273
+485 273
+485 274
+484 274
+483 274
+482 274
+481 274
+480 274
+479 274
+478 274
+477 274
+476 274
+475 274
+474 274
+473 274
+472 274
+471 274
+470 274
+469 274
+468 274
+467 274
+466 274
+465 274
+464 274
+463 274
+462 274
+462 273
+461 273
+460 273
+460 274
+459 274
+458 274
+457 274
+457 275
+456 275
+455 275
+454 275
+453 275
+452 275
+451 275
+450 275
+449 275
+448 275
+447 275
+446 275
+445 275
+445 276
+445 277
+444 277
+443 277
+442 277
+442 276
+442 275
+441 275
+441 274
+440 274
+439 274
+438 274
+438 273
+437 273
+437 274
+436 274
+435 274
+434 274
+434 275
+433 275
+432 275
+431 275
+430 275
+429 275
+428 275
+428 276
+428 277
+427 277
+426 277
+425 277
+424 277
+423 277
+422 277
+421 277
+420 277
+419 277
+418 277
+418 276
+418 275
+417 275
+417 274
+416 274
+415 274
+414 274
+413 274
+413 275
+412 275
+411 275
+410 275
+409 275
+409 274
+408 274
+407 274
+406 274
+405 274
+404 274
+404 275
+403 275
+402 275
+401 275
+401 274
+400 274
+399 274
+398 274
+397 274
+396 274
+395 274
+394 274
+393 274
+392 274
+391 274
+390 274
+389 274
+389 273
+388 273
+387 273
+386 273
+385 273
+384 273
+384 272
+384 271
+383 271
+382 271
+381 271
+380 271
+380 270
+379 270
+378 270
+377 270
+377 269
+376 269
+376 268
+376 267
+375 267
+374 267
+373 267
+372 267
+371 267
+371 266
+371 265
+371 264
+371 263
+372 263
+373 263
+373 262
+374 262
+375 262
+375 261
+376 261
+376 260
+376 259
+377 259
+377 258
+377 257
+378 257
+379 257
+379 256
+379 255
+379 254
+379 253
+379 252
+379 251
+378 251
+377 251
+377 250
+377 249
+376 249
+376 248
+375 248
+374 248
+373 248
+373 247
+373 246
+372 246
+371 246
+371 247
+371 248
+370 248
+369 248
+368 248
+368 249
+367 249
+366 249
+365 249
+365 250
+365 251
+364 251
+364 252
+364 253
+364 254
+363 254
+362 254
+361 254
+361 255
+360 255
+360 256
+360 257
+359 257
+358 257
+357 257
+357 256
+357 255
+356 255
+356 254
+356 253
+356 252
+356 251
+357 251
+357 250
+357 249
+356 249
+356 248
+355 248
+355 247
+355 246
+354 246
+353 246
+353 245
+352 245
+351 245
+351 244
+350 244
+349 244
+348 244
+347 244
+347 243
+347 242
+346 242
+345 242
+345 241
+345 240
+345 239
+345 238
+345 237
+346 237
+347 237
+347 236
+347 235
+347 234
+347 233
+348 233
+348 232
+349 232
+349 231
+349 230
+350 230
+351 230
+351 229
+350 229
+349 229
+349 228
+348 228
+348 227
+348 226
+347 226
+347 225
+347 224
+347 223
+347 222
+346 222
+345 222
+345 221
+345 220
+344 220
+343 220
+342 220
+341 220
+340 220
+340 221
+340 222
+339 222
+339 223
+339 224
+338 224
+337 224
+336 224
+336 225
+336 226
+336 227
+336 228
+335 228
+335 229
+335 230
+334 230
+334 231
+334 232
+333 232
+332 232
+332 233
+331 233
+330 233
+329 233
+328 233
+328 232
+328 231
+328 230
+328 229
+328 228
+327 228
+327 227
+327 226
+326 226
+326 225
+326 224
+325 224
+324 224
+324 223
+324 222
+323 222
+322 222
+322 221
+322 220
+321 220
+320 220
+320 219
+320 218
+319 218
+319 217
+318 217
+318 216
+318 215
+318 214
+318 213
+318 212
+319 212
+319 211
+319 210
+319 209
+318 209
+318 208
+318 207
+318 206
+318 205
+318 204
+318 203
+318 202
+318 201
+318 200
+318 199
+318 198
+318 197
+318 196
+318 195
+318 194
+317 194
+316 194
+316 193
+316 192
+316 191
+316 190
+316 189
+315 189
+315 188
+314 188
+314 187
+314 186
+313 186
+312 186
+312 185
+312 184
+312 183
+312 182
+312 181
+312 180
+312 179
+312 178
+312 177
+312 176
+312 175
+312 174
+312 173
+311 173
+311 172
+311 171
+311 170
+311 169
+312 169
+312 168
+312 167
+312 166
+311 166
+311 165
+311 164
+310 164
+310 163
+310 162
+310 161
+310 160
+310 159
+310 158
+310 157
+310 156
+310 155
+310 154
+310 153
+310 152
+310 151
+310 150
+310 149
+310 148
+310 147
+310 146
+310 145
+310 144
+309 144
+308 144
+307 144
+307 143
+306 143
+306 142
+306 141
+305 141
+304 141
+304 140
+304 139
+303 139
+303 138
+303 137
+303 136
+304 136
+304 135
+304 134
+304 133
+304 132
+304 131
+304 130
+304 129
+303 129
+303 128
+303 127
+304 127
+304 126
+304 125
+304 124
+303 124
+303 123
+303 122
+303 121
+302 121
+302 120
+302 119
+302 118
+302 117
+302 116
+301 116
+300 116
+300 115
+301 115
+302 115
+302 114
+302 113
+301 113
+300 113
+300 112
+300 111
+300 110
+300 109
+300 108
+300 107
+300 106
+300 105
+300 104
+300 103
+300 102
+300 101
+300 100
+299 100
+299 99
+298 99
+298 98
+298 97
+297 97
+296 97
+296 96
+297 96
+298 96
+298 95
+298 94
+298 93
+298 92
+297 92
+296 92
+296 91
+296 90
+296 89
+296 88
+295 88
+295 87
+295 86
+295 85
+295 84
+295 83
+295 82
+294 82
+293 82
+292 82
+292 81
+292 80
+292 79
+293 79
+294 79
+295 79
+295 78
+295 77
+295 76
+295 75
+295 74
+294 74
+293 74
+292 74
+292 73
+292 72
+291 72
+291 71
+290 71
+290 70
+290 69
+290 68
+290 67
+289 67
+288 67
+288 66
+288 65
+288 64
+287 64
+287 63
+286 63
+286 62
+286 61
+286 60
+286 59
+286 58
+286 57
+286 56
+286 55
+285 55
+284 55
+284 54
+284 53
+284 52
+283 52
+283 51
+282 51
+282 50
+281 50
+280 50
+280 49
+280 48
+279 48
+278 48
+278 47
+277 47
+276 47
+276 46
+276 45
+276 44
+276 43
+275 43
+275 42
+274 42
+274 41
+274 40
+274 39
+274 38
+273 38
+273 37
+273 36
+273 35
+272 35
+271 35
+271 34
+270 34
+270 33
+270 32
+269 32
+269 31
+269 30
+268 30
+267 30
+267 29
+267 28
+266 28
+266 27
+265 27
+264 27
+263 27
+263 26
+262 26
+261 26
+261 25
+261 24
+260 24
+259 24
+259 23
+258 23
+258 22
+257 22
+257 21
+257 20
+256 20
+255 20
+255 19
+254 19
+253 19
+253 18
+252 18
+251 18
+251 17
+251 16
+251 15
+250 15
+249 15
+249 14
+248 14
+247 14
+246 14
+245 14