├── kmeansPlusPlus.h ├── main.cpp ├── kmeans.h ├── README.md ├── kmeansPlusPlus.cpp ├── kmeans.cpp ├── simple_svg.hpp └── S1.txt /kmeansPlusPlus.h: -------------------------------------------------------------------------------- 1 | #ifndef KMEANS_PLUS_PLUS_H 2 | #define KMEANS_PLUS_PLUS_H 3 | #include "kmeans.h" 4 | class KmeansPlusPlus: public Kmeans 5 | { 6 | public: 7 | KmeansPlusPlus(int k, int pointnumber); 8 | KmeansPlusPlus(int k);; 9 | 10 | void InitCenters(); 11 | int NearestCenter(Point &p,int alreadyInitCenterNumber, float &minDistance); 12 | private: 13 | 14 | }; 15 | 16 | 17 | 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include"kmeans.h" 5 | #include "kmeansPlusPlus.h" 6 | int main() 7 | { 8 | std::clock_t start; 9 | double duration; 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Kmeans kmeans(15); 18 | kmeans.InitPoints("S1.txt"); 19 | start = std::clock(); 20 | kmeans.InitCenters(); 21 | //kmeans.InitSpecifiedCenters(); 22 | kmeans.RunKmean(); 23 | duration = (std::clock() - start) / (double)CLOCKS_PER_SEC; 24 | std::cout << "calculate time " << duration << std::endl; 25 | kmeans.SaveEPS("S1.eps"); 26 | 27 | std::cout << "----------------- kmeans Plus Plus -----------------" << std::endl; 28 | KmeansPlusPlus kmeansPlusPlus(15); 29 | kmeansPlusPlus.InitPoints("S1.txt"); 30 | start = std::clock(); 31 | kmeansPlusPlus.InitCenters(); 32 | //kmeans.InitSpecifiedCenters(); 33 | kmeansPlusPlus.RunKmean(); 34 | duration = (std::clock() - start) / (double)CLOCKS_PER_SEC; 35 | std::cout << "calculate time " << duration << std::endl; 36 | kmeansPlusPlus.SaveEPS("S1_++.eps"); 37 | kmeansPlusPlus.SaveSVG("S1_++.svg"); 38 | system("pause"); 39 | return 1; 40 | } 41 | -------------------------------------------------------------------------------- /kmeans.h: -------------------------------------------------------------------------------- 1 | #ifndef _KMEANS_H 2 | #define _KMEANS_H 3 | 4 | //#define USING_OMP 5 | 6 | #include 7 | #include 8 | typedef struct Point 9 | { 10 | Point(float x, float y, int g = 0) 11 | { 12 | _x = x; 13 | _y = y; 14 | _group = g; 15 | } 16 | float _x; 17 | float _y; 18 | int _group; 19 | }; 20 | inline float Distance(Point &p1, Point &p2) 21 | { 22 | return std::sqrtf((p1._x - p2._x)*(p1._x - p2._x) + (p1._y - p2._y)*(p1._y - p2._y)); 23 | } 24 | class Kmeans 25 | { 26 | public: 27 | Kmeans(int k, int pointnumber); 28 | Kmeans(int k); 29 | void InitPoints(); 30 | void InitPoints(std::list & pointlist); 31 | void InitPoints(std::string fileName); 32 | void InitCenters(); 33 | void InitSpecifiedCenters(); 34 | int NearestCenter(Point &p); 35 | void RunKmean(); 36 | void Cluster(); 37 | void Center(); 38 | void SaveEPS(std::string fileName); 39 | void SaveSVG(std::string fileName); 40 | void PrintPointLis(std::list & pointList); 41 | public: 42 | std::list _Points; 43 | std::list _Centers; 44 | int _MaxIteration; 45 | int _K; 46 | int _PointNumber; 47 | 48 | } ; 49 | #endif 50 | 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KmeansPlusPlus 2 | k-means++: a C++ version implement 3 | k-means++ clustering a classification of data, so that points assigned to the same cluster are similar. 4 | It is identical to the K-means algorithm, except for the selection of initial conditions. 5 | I implement k-means++ clustering algorithm by using C++. The implemented open source code can be used freely. 6 | If you have any questions , please conected y.j.zhou.g@gmail.com. The implemented code including the following features. 7 | 8 | Features 9 | 10 | Standard k-means clustering methed 11 | Standard k-means clustering methed with parallel acceleratation 12 | k-means++ clustering methed 13 | k-means++ clustering methed with parallel acceleratation 14 | Export the result as SVG format 15 | Export the result as EPS format 16 | 17 | 18 | Clustering benchmark datasets: https://cs.joensuu.fi/sipu/datasets/ 19 | 20 | References 21 | ARTHUR, David; VASSILVITSKII, Sergei. k-means++: The advantages of careful seeding. In: Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms. Society for Industrial and Applied Mathematics, 2007. p. 1027-1035. 22 | FRÄNTI, Pasi; VIRMAJOKI, Olli. Iterative shrinking method for clustering problems. Pattern Recognition, 2006, 39.5: 761-775. 23 | -------------------------------------------------------------------------------- /kmeansPlusPlus.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "kmeansPlusPlus.h" 4 | 5 | KmeansPlusPlus::KmeansPlusPlus(int k, int pointnumber) :Kmeans(k, pointnumber) 6 | { 7 | 8 | } 9 | KmeansPlusPlus::KmeansPlusPlus(int k) : Kmeans(k) 10 | { 11 | 12 | } 13 | int KmeansPlusPlus::NearestCenter(Point &p, int alreadyInitCenterNumber, float &minDistance) 14 | { 15 | minDistance = std::numeric_limits::max(); 16 | int k_id = -1; 17 | float dis; 18 | std::list::iterator centersIter = _Centers.begin(); 19 | #ifdef USING_OMP 20 | #pragma ompparallel for 21 | #endif 22 | for (int k = 0; k <= alreadyInitCenterNumber; centersIter++, k++) 23 | { 24 | dis = Distance(p, *centersIter); 25 | if (dis < minDistance) 26 | { 27 | minDistance = dis; 28 | k_id = k; 29 | } 30 | } 31 | return k_id; 32 | } 33 | void KmeansPlusPlus::InitCenters() 34 | { 35 | std::random_device rd; //Will be used to obtain a seed for the random number engine 36 | std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd() 37 | std::uniform_int_distribution distribution(0, _PointNumber - 1); 38 | int id = distribution(gen); 39 | std::list::iterator it = _Points.begin(); 40 | std::advance(it, id); 41 | #ifdef USING_OMP 42 | #pragma ompparallel for 43 | #endif 44 | for (int i = 0; i < _K; i++) 45 | { 46 | _Centers.push_back(*it); 47 | } 48 | 49 | float sum,min_distance; 50 | std::list::iterator centersIter = _Centers.begin(); 51 | std::list::iterator pointIter = _Points.begin(); 52 | std::list nearestDis(_PointNumber,0); 53 | std::list::iterator floatIt = nearestDis.begin(); 54 | 55 | for (int k = 1; k < _K; centersIter++, k++) 56 | { 57 | sum = 0; 58 | pointIter = _Points.begin(); 59 | floatIt = nearestDis.begin(); 60 | #ifdef USING_OMP 61 | #pragma ompparallel for 62 | #endif 63 | for (int p = 0; p < _PointNumber; pointIter++, p++) 64 | { 65 | NearestCenter(*pointIter,k, min_distance); 66 | *floatIt = min_distance; 67 | sum += min_distance; 68 | floatIt++; 69 | } 70 | std::random_device rd; //Will be used to obtain a seed for the random number engine 71 | std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd() 72 | std::uniform_real_distribution distribution(0.0, 1.0); 73 | float probability = distribution(gen); 74 | //std::cout << "orignional sum " << sum << std::endl; 75 | sum = sum*probability; 76 | //std::cout << "orignional sum " << sum << std::endl; 77 | pointIter = _Points.begin(); 78 | floatIt = nearestDis.begin(); 79 | #ifdef USING_OMP 80 | #pragma ompparallel for 81 | #endif 82 | for (int p = 0; p < _PointNumber; pointIter++, floatIt++, p++) 83 | { 84 | sum =sum- *floatIt; 85 | //std::cout <<"p " << p<< " sum "<0) 87 | continue; 88 | centersIter->_x = pointIter->_x; 89 | centersIter->_y = pointIter->_y; 90 | break; 91 | } 92 | 93 | } 94 | /*float *d = malloc(sizeof(double)* len); 95 | 96 | point p, c; 97 | cent[0] = pts[rand() % len]; 98 | for (n_cluster = 1; n_cluster < n_cent; n_cluster++) { 99 | sum = 0; 100 | for (j = 0, p = pts; j < len; j++, p++) 101 | { 102 | nearest(p, cent, n_cluster, d + j); 103 | sum += d[j]; 104 | } 105 | sum = randf(sum); 106 | for (j = 0, p = pts; j < len; j++, p++) 107 | { 108 | if ((sum -= d[j]) > 0) continue; 109 | cent[n_cluster] = pts[j]; 110 | break; 111 | } 112 | } 113 | for (j = 0, p = pts; j < len; j++, p++) 114 | p->group = nearest(p, cent, n_cluster, 0);*/ 115 | 116 | } -------------------------------------------------------------------------------- /kmeans.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include"kmeans.h" 8 | #include "simple_svg.hpp" 9 | #include 10 | 11 | 12 | #ifdef USING_OMP 13 | #include 14 | #endif 15 | 16 | Kmeans::Kmeans(int k) 17 | { 18 | _K = k; 19 | 20 | } 21 | Kmeans::Kmeans(int k,int pointnumber) 22 | { 23 | _K=k; 24 | _PointNumber = pointnumber; 25 | } 26 | void Kmeans::InitPoints() 27 | { 28 | 29 | std::random_device rd; //Will be used to obtain a seed for the random number engine 30 | std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd() 31 | std::uniform_real_distribution distribution(0.0, 100.0); 32 | for (int i = 0; i < _PointNumber; i++) 33 | { 34 | 35 | Point p(distribution(gen), distribution(gen)); 36 | // std::cout << p._x<<"\t" << p._y << std::endl; 37 | _Points.push_back(p); 38 | } 39 | } 40 | // this function is used for compareing calculation time (Using omp) 41 | void Kmeans::InitSpecifiedCenters() 42 | { 43 | #ifdef USING_OMP 44 | #pragma ompparallel for 45 | #endif 46 | for (int i = 0; i < _K; i++) 47 | { 48 | 49 | 50 | std::list::iterator it = _Points.begin(); 51 | std::advance(it, i); 52 | _Centers.push_back(*it); 53 | } 54 | 55 | } 56 | void Kmeans::InitCenters() 57 | { 58 | std::random_device rd; //Will be used to obtain a seed for the random number engine 59 | std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd() 60 | std::uniform_int_distribution distribution(0, _PointNumber - 1); 61 | #ifdef USING_OMP 62 | #pragma ompparallel for 63 | #endif 64 | std::map uniqueMap; 65 | while (uniqueMap.size() < _K) 66 | { 67 | int id = distribution(gen); 68 | uniqueMap.insert(std::pair(id, id)); 69 | } 70 | std::map::iterator itMap = uniqueMap.begin(); 71 | for (int i = 0; i < _K; i++) 72 | { 73 | 74 | int id = itMap->first; 75 | std::list::iterator it = _Points.begin(); 76 | //std::advance(it, id); 77 | 78 | int count = 0; 79 | while (count != id) 80 | { 81 | it++; 82 | count++; 83 | } 84 | _Centers.push_back(*it); 85 | 86 | itMap++; 87 | } 88 | } 89 | void Kmeans::InitPoints(std::list & pointlist) 90 | { 91 | _Points.assign(pointlist.begin(), pointlist.end()); 92 | _PointNumber = pointlist.size(); 93 | } 94 | int Kmeans::NearestCenter(Point &p) 95 | { 96 | 97 | float minDistance = std::numeric_limits::max(); 98 | int k_id = -1; 99 | float dis; 100 | std::list::iterator centersIter = _Centers.begin(); 101 | #ifdef USING_OMP 102 | #pragma ompparallel for 103 | #endif 104 | for (int k = 0; k < _K; centersIter++, k++) 105 | { 106 | dis = Distance(p, *centersIter); 107 | if (dis < minDistance) 108 | { 109 | minDistance = dis; 110 | k_id = k; 111 | } 112 | } 113 | return k_id; 114 | } 115 | void Kmeans::Cluster() 116 | { 117 | 118 | std::list::iterator pointsIter = _Points.begin(); 119 | 120 | #ifdef USING_OMP 121 | #pragma ompparallel for 122 | #endif 123 | float minDistance; 124 | for (int p = 0; p < _PointNumber; p++, pointsIter++) 125 | { 126 | pointsIter->_group = NearestCenter(*pointsIter); 127 | 128 | } 129 | } 130 | void Kmeans::Center() 131 | { 132 | Point zeroPoint(0,0); 133 | std::vector center(_K, zeroPoint); 134 | std::vector count(_K, 0); 135 | std::list::iterator pointsIter = _Points.begin(); 136 | std::list::iterator centerIter = _Centers.begin(); 137 | #ifdef USING_OMP 138 | #pragma ompparallel for 139 | #endif 140 | for (int p = 0; p < _PointNumber; p++, pointsIter++) 141 | { 142 | center[pointsIter->_group]._x += pointsIter->_x; 143 | center[pointsIter->_group]._y += pointsIter->_y; 144 | count[pointsIter->_group]++; 145 | } 146 | 147 | for (int i = 0; i < center.size();i++) 148 | { 149 | center[i]._x = center[i]._x / (1.0*count[i]); 150 | center[i]._y = center[i]._y / (1.0*count[i]); 151 | centerIter->_x = center[i]._x; 152 | centerIter->_y = center[i]._y; 153 | centerIter++; 154 | } 155 | 156 | 157 | } 158 | void Kmeans::RunKmean() 159 | { 160 | std::list oldCenter; 161 | _MaxIteration = 100; 162 | for (int iteration = 0; iteration < _MaxIteration; iteration++) 163 | { 164 | oldCenter = _Centers; 165 | //PrintPointLis(oldCenter); 166 | Cluster(); 167 | Center(); 168 | //std::cout << "-------------------------\n"; 169 | //PrintPointLis(_Centers); 170 | float sum = 0; 171 | std::list::iterator currentIter = _Centers.begin(); 172 | std::list::iterator oldIter = oldCenter.begin(); 173 | for (int k = 0; k < _K;k++) 174 | { 175 | sum += Distance(*oldIter, *currentIter); 176 | oldIter++; 177 | currentIter++; 178 | } 179 | std::cout << "iteration "<< iteration<<" sum " << sum << std::endl; 180 | if (sum < 0.0001) 181 | { 182 | 183 | break; 184 | } 185 | } 186 | } 187 | 188 | void Kmeans::SaveEPS(std::string fileName) 189 | { 190 | std::ofstream fs; 191 | fs.open(fileName.c_str(), std::ofstream::out); 192 | if (fs.is_open()) 193 | { 194 | fs << std::fixed << std::setprecision(2); 195 | int W = 1000; 196 | int H = 1000; 197 | float min_x, max_x, min_y, max_y, scale, cx, cy; 198 | float *colors = new float [_K* 3]; 199 | 200 | for (int i = 0; i < _K; i++) 201 | { 202 | colors[3 * i + 0] = (3 * (i + 1) % 11) / 11.; 203 | colors[3 * i + 1] = (7 * i % 11) / 11.; 204 | colors[3 * i + 2] = (9 * i % 11) / 11.; 205 | } 206 | 207 | max_x = max_y = -(min_x = min_y = HUGE_VAL); 208 | std::list::iterator pointsIter = _Points.begin(); 209 | for (int j = 0; j < _PointNumber; j++, pointsIter++) 210 | { 211 | if (max_x < pointsIter->_x) max_x = pointsIter->_x; 212 | if (min_x > pointsIter->_x) min_x = pointsIter->_x; 213 | if (max_y < pointsIter->_y) max_y = pointsIter->_y; 214 | if (min_y > pointsIter->_y) min_y = pointsIter->_y; 215 | } 216 | scale = W / (max_x - min_x); 217 | if (scale > H / (max_y - min_y)) 218 | scale = H / (max_y - min_y); 219 | cx = (max_x + min_x) / 2.0; 220 | cy = (max_y + min_y) / 2.0; 221 | 222 | fs << "%%!PS-Adobe-3.0\n%%%%BoundingBox: -5 -5 " << W + 10 <<" "<< H + 10 << std::endl; 223 | 224 | fs << "/l {rlineto} def /m {rmoveto} def\n"; 225 | fs << "/c { .25 sub exch .25 sub exch .5 0 360 arc fill } def\n"; 226 | fs << "/s { moveto -2 0 m 2 2 l 2 -2 l -2 -2 l closepath "; 227 | fs << " gsave 1 setgray fill grestore gsave 3 setlinewidth"; 228 | fs << " 1 setgray stroke grestore 0 setgray stroke } def\n"; 229 | std::list::iterator centersIter = _Centers.begin(); 230 | for (int k = 0; k < _K; k++, centersIter++) 231 | { 232 | fs << colors[3 * k] << " " << colors[3 * k + 1] << " " << colors[3 * k + 2] << " setrgbcolor\n"; 233 | pointsIter = _Points.begin(); 234 | for (int j = 0; j < _PointNumber; j++, pointsIter++) 235 | { 236 | if (pointsIter->_group != k) 237 | continue; 238 | fs << (pointsIter->_x - cx) * scale + W / 2 << " " << (pointsIter->_y - cy) * scale + H / 2 << " c\n"; 239 | 240 | } 241 | fs << "\n0 setgray " << (centersIter->_x - cx) * scale + W / 2 << " " << (centersIter->_y - cy) * scale + H / 2 << " s\n"; 242 | } 243 | fs<<"\n%%%%EOF"; 244 | delete colors; 245 | 246 | std::cout << "Operation successfully performed\n"; 247 | fs.close(); 248 | } 249 | else 250 | { 251 | std::cout <::iterator pointsIter = _Points.begin(); 274 | for (int j = 0; j < _PointNumber; j++, pointsIter++) 275 | { 276 | if (max_x < pointsIter->_x) max_x = pointsIter->_x; 277 | if (min_x > pointsIter->_x) min_x = pointsIter->_x; 278 | if (max_y < pointsIter->_y) max_y = pointsIter->_y; 279 | if (min_y > pointsIter->_y) min_y = pointsIter->_y; 280 | } 281 | scale = W / (max_x - min_x); 282 | if (scale > H / (max_y - min_y)) 283 | scale = H / (max_y - min_y); 284 | cx = (max_x + min_x) / 2.0; 285 | cy = (max_y + min_y) / 2.0; 286 | 287 | 288 | std::list::iterator centerIter = _Centers.begin(); 289 | for (int k = 0; k < _K; k++, centerIter++) 290 | { 291 | int r = colors[3 * k]*255; 292 | int g = colors[3 * k + 1] * 255; 293 | int b = colors[3 * k + 2] * 255; 294 | svg::Color c(r, g, b); 295 | 296 | pointsIter = _Points.begin(); 297 | for (int j = 0; j < _PointNumber; j++, pointsIter++) 298 | { 299 | if (pointsIter->_group != k) 300 | continue; 301 | doc << svg::Circle(svg::Point((pointsIter->_x - cx) * scale + W / 2, (pointsIter->_y - cy) * scale + H / 2), 1, svg::Fill(svg::Color::White), svg::Stroke(1, c)); 302 | 303 | } 304 | doc << svg::Rectangle(svg::Point((centerIter->_x - cx) * scale + W / 2, (centerIter->_y - cy) * scale + H / 2), 5,5, svg::Fill(svg::Color::White), svg::Stroke(2, c)); 305 | } 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | delete colors; 314 | 315 | doc.save(); 316 | } 317 | void Kmeans::PrintPointLis(std::list & pointList) 318 | { 319 | std::list::iterator pointsIter = pointList.begin(); 320 | for (; pointsIter != pointList.end();pointsIter++) 321 | { 322 | std::cout << pointsIter->_x << "\t" << pointsIter->_y << std::endl; 323 | } 324 | } 325 | void Kmeans::InitPoints(std::string fileName) 326 | { 327 | std::ifstream fs; 328 | fs.open(fileName.c_str(), std::ofstream::in); 329 | if (fs.is_open()) 330 | { 331 | float x, y; 332 | while (!fs.eof()) 333 | { 334 | fs >> x >> y; 335 | _Points.push_back(Point(x, y)); 336 | } 337 | _PointNumber = _Points.size(); 338 | fs.close(); 339 | } 340 | else 341 | { 342 | std::cout << fileName.c_str() << " error opening file\n"; 343 | } 344 | } -------------------------------------------------------------------------------- /simple_svg.hpp: -------------------------------------------------------------------------------- 1 | 2 | /******************************************************************************* 3 | * The "New BSD License" : http://www.opensource.org/licenses/bsd-license.php * 4 | ******************************************************************************** 5 | 6 | Copyright (c) 2010, Mark Turney 7 | All rights reserved. 8 | 9 | Redistribution and use in source and binary forms, with or without 10 | modification, are permitted provided that the following conditions are met: 11 | * Redistributions of source code must retain the above copyright 12 | notice, this list of conditions and the following disclaimer. 13 | * Redistributions in binary form must reproduce the above copyright 14 | notice, this list of conditions and the following disclaimer in the 15 | documentation and/or other materials provided with the distribution. 16 | * Neither the name of the nor the 17 | names of its contributors may be used to endorse or promote products 18 | derived from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY 24 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 25 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 27 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | ******************************************************************************/ 32 | #pragma once 33 | #ifndef SIMPLE_SVG_HPP 34 | #define SIMPLE_SVG_HPP 35 | 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | #include 42 | 43 | namespace svg 44 | { 45 | // Utility XML/String Functions. 46 | template 47 | inline std::string attribute(std::string const & attribute_name, 48 | T const & value, std::string const & unit = "") 49 | { 50 | std::stringstream ss; 51 | ss << attribute_name << "=\"" << value << unit << "\" "; 52 | return ss.str(); 53 | } 54 | inline std::string elemStart(std::string const & element_name) 55 | { 56 | return "\t<" + element_name + " "; 57 | } 58 | inline std::string elemEnd(std::string const & element_name) 59 | { 60 | return "\n"; 61 | } 62 | inline std::string emptyElemEnd() 63 | { 64 | return "/>\n"; 65 | } 66 | 67 | // Quick optional return type. This allows functions to return an invalid 68 | // value if no good return is possible. The user checks for validity 69 | // before using the returned value. 70 | template 71 | class optional 72 | { 73 | public: 74 | optional(T const & type) 75 | : valid(true), type(type) { } 76 | optional() : valid(false), type(T()) { } 77 | T * operator->() 78 | { 79 | // If we try to access an invalid value, an exception is thrown. 80 | if (!valid) 81 | throw std::exception(); 82 | 83 | return &type; 84 | } 85 | // Test for validity. 86 | bool operator!() const { return !valid; } 87 | private: 88 | bool valid; 89 | T type; 90 | }; 91 | 92 | struct Dimensions 93 | { 94 | Dimensions(double width, double height) : width(width), height(height) { } 95 | Dimensions(double combined = 0) : width(combined), height(combined) { } 96 | double width; 97 | double height; 98 | }; 99 | 100 | struct Point 101 | { 102 | Point(double x = 0, double y = 0) : x(x), y(y) { } 103 | double x; 104 | double y; 105 | }; 106 | inline optional getMinPoint(std::vector const & points) 107 | { 108 | if (points.empty()) 109 | return optional(); 110 | 111 | Point min = points[0]; 112 | for (unsigned i = 0; i < points.size(); ++i) { 113 | if (points[i].x < min.x) 114 | min.x = points[i].x; 115 | if (points[i].y < min.y) 116 | min.y = points[i].y; 117 | } 118 | return optional(min); 119 | } 120 | inline optional getMaxPoint(std::vector const & points) 121 | { 122 | if (points.empty()) 123 | return optional(); 124 | 125 | Point max = points[0]; 126 | for (unsigned i = 0; i < points.size(); ++i) { 127 | if (points[i].x > max.x) 128 | max.x = points[i].x; 129 | if (points[i].y > max.y) 130 | max.y = points[i].y; 131 | } 132 | return optional(max); 133 | } 134 | 135 | // Defines the dimensions, scale, origin, and origin offset of the document. 136 | struct Layout 137 | { 138 | enum Origin { TopLeft, BottomLeft, TopRight, BottomRight }; 139 | 140 | Layout(Dimensions const & dimensions = Dimensions(400, 300), Origin origin = BottomLeft, 141 | double scale = 1, Point const & origin_offset = Point(0, 0)) 142 | : dimensions(dimensions), scale(scale), origin(origin), origin_offset(origin_offset) { } 143 | Dimensions dimensions; 144 | double scale; 145 | Origin origin; 146 | Point origin_offset; 147 | }; 148 | 149 | // Convert coordinates in user space to SVG native space. 150 | inline double translateX(double x, Layout const & layout) 151 | { 152 | if (layout.origin == Layout::BottomRight || layout.origin == Layout::TopRight) 153 | return layout.dimensions.width - ((x + layout.origin_offset.x) * layout.scale); 154 | else 155 | return (layout.origin_offset.x + x) * layout.scale; 156 | } 157 | 158 | inline double translateY(double y, Layout const & layout) 159 | { 160 | if (layout.origin == Layout::BottomLeft || layout.origin == Layout::BottomRight) 161 | return layout.dimensions.height - ((y + layout.origin_offset.y) * layout.scale); 162 | else 163 | return (layout.origin_offset.y + y) * layout.scale; 164 | } 165 | inline double translateScale(double dimension, Layout const & layout) 166 | { 167 | return dimension * layout.scale; 168 | } 169 | 170 | class Serializeable 171 | { 172 | public: 173 | Serializeable() { } 174 | virtual ~Serializeable() { }; 175 | virtual std::string toString(Layout const & layout) const = 0; 176 | }; 177 | 178 | class Color : public Serializeable 179 | { 180 | public: 181 | enum Defaults { Transparent = -1, Aqua, Black, Blue, Brown, Cyan, Fuchsia, 182 | Green, Lime, Magenta, Orange, Purple, Red, Silver, White, Yellow }; 183 | 184 | Color(int r, int g, int b) : transparent(false), red(r), green(g), blue(b) { } 185 | Color(Defaults color) 186 | : transparent(false), red(0), green(0), blue(0) 187 | { 188 | switch (color) 189 | { 190 | case Aqua: assign(0, 255, 255); break; 191 | case Black: assign(0, 0, 0); break; 192 | case Blue: assign(0, 0, 255); break; 193 | case Brown: assign(165, 42, 42); break; 194 | case Cyan: assign(0, 255, 255); break; 195 | case Fuchsia: assign(255, 0, 255); break; 196 | case Green: assign(0, 128, 0); break; 197 | case Lime: assign(0, 255, 0); break; 198 | case Magenta: assign(255, 0, 255); break; 199 | case Orange: assign(255, 165, 0); break; 200 | case Purple: assign(128, 0, 128); break; 201 | case Red: assign(255, 0, 0); break; 202 | case Silver: assign(192, 192, 192); break; 203 | case White: assign(255, 255, 255); break; 204 | case Yellow: assign(255, 255, 0); break; 205 | default: transparent = true; break; 206 | } 207 | } 208 | virtual ~Color() { } 209 | std::string toString(Layout const &) const 210 | { 211 | std::stringstream ss; 212 | if (transparent) 213 | ss << "transparent"; 214 | else 215 | ss << "rgb(" << red << "," << green << "," << blue << ")"; 216 | return ss.str(); 217 | } 218 | private: 219 | bool transparent; 220 | int red; 221 | int green; 222 | int blue; 223 | 224 | void assign(int r, int g, int b) 225 | { 226 | red = r; 227 | green = g; 228 | blue = b; 229 | } 230 | }; 231 | 232 | class Fill : public Serializeable 233 | { 234 | public: 235 | Fill(Color::Defaults color) : color(color) { } 236 | Fill(Color color = Color::Transparent) 237 | : color(color) { } 238 | std::string toString(Layout const & layout) const 239 | { 240 | std::stringstream ss; 241 | ss << attribute("fill", color.toString(layout)); 242 | return ss.str(); 243 | } 244 | private: 245 | Color color; 246 | }; 247 | 248 | class Stroke : public Serializeable 249 | { 250 | public: 251 | Stroke(double width = -1, Color color = Color::Transparent) 252 | : width(width), color(color) { } 253 | std::string toString(Layout const & layout) const 254 | { 255 | // If stroke width is invalid. 256 | if (width < 0) 257 | return std::string(); 258 | 259 | std::stringstream ss; 260 | ss << attribute("stroke-width", translateScale(width, layout)) << attribute("stroke", color.toString(layout)); 261 | return ss.str(); 262 | } 263 | private: 264 | double width; 265 | Color color; 266 | }; 267 | 268 | class Font : public Serializeable 269 | { 270 | public: 271 | Font(double size = 12, std::string const & family = "Verdana") : size(size), family(family) { } 272 | std::string toString(Layout const & layout) const 273 | { 274 | std::stringstream ss; 275 | ss << attribute("font-size", translateScale(size, layout)) << attribute("font-family", family); 276 | return ss.str(); 277 | } 278 | private: 279 | double size; 280 | std::string family; 281 | }; 282 | 283 | class Shape : public Serializeable 284 | { 285 | public: 286 | Shape(Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 287 | : fill(fill), stroke(stroke) { } 288 | virtual ~Shape() { } 289 | virtual std::string toString(Layout const & layout) const = 0; 290 | virtual void offset(Point const & offset) = 0; 291 | protected: 292 | Fill fill; 293 | Stroke stroke; 294 | }; 295 | template 296 | inline std::string vectorToString(std::vector collection, Layout const & layout) 297 | { 298 | std::string combination_str; 299 | for (unsigned i = 0; i < collection.size(); ++i) 300 | combination_str += collection[i].toString(layout); 301 | 302 | return combination_str; 303 | } 304 | 305 | class Circle : public Shape 306 | { 307 | public: 308 | Circle(Point const & center, double diameter, Fill const & fill, 309 | Stroke const & stroke = Stroke()) 310 | : Shape(fill, stroke), center(center), radius(diameter / 2) { } 311 | std::string toString(Layout const & layout) const 312 | { 313 | std::stringstream ss; 314 | ss << elemStart("circle") << attribute("cx", translateX(center.x, layout)) 315 | << attribute("cy", translateY(center.y, layout)) 316 | << attribute("r", translateScale(radius, layout)) << fill.toString(layout) 317 | << stroke.toString(layout) << emptyElemEnd(); 318 | return ss.str(); 319 | } 320 | void offset(Point const & offset) 321 | { 322 | center.x += offset.x; 323 | center.y += offset.y; 324 | } 325 | private: 326 | Point center; 327 | double radius; 328 | }; 329 | 330 | class Elipse : public Shape 331 | { 332 | public: 333 | Elipse(Point const & center, double width, double height, 334 | Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 335 | : Shape(fill, stroke), center(center), radius_width(width / 2), 336 | radius_height(height / 2) { } 337 | std::string toString(Layout const & layout) const 338 | { 339 | std::stringstream ss; 340 | ss << elemStart("ellipse") << attribute("cx", translateX(center.x, layout)) 341 | << attribute("cy", translateY(center.y, layout)) 342 | << attribute("rx", translateScale(radius_width, layout)) 343 | << attribute("ry", translateScale(radius_height, layout)) 344 | << fill.toString(layout) << stroke.toString(layout) << emptyElemEnd(); 345 | return ss.str(); 346 | } 347 | void offset(Point const & offset) 348 | { 349 | center.x += offset.x; 350 | center.y += offset.y; 351 | } 352 | private: 353 | Point center; 354 | double radius_width; 355 | double radius_height; 356 | }; 357 | 358 | class Rectangle : public Shape 359 | { 360 | public: 361 | Rectangle(Point const & edge, double width, double height, 362 | Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 363 | : Shape(fill, stroke), edge(edge), width(width), 364 | height(height) { } 365 | std::string toString(Layout const & layout) const 366 | { 367 | std::stringstream ss; 368 | ss << elemStart("rect") << attribute("x", translateX(edge.x, layout)) 369 | << attribute("y", translateY(edge.y, layout)) 370 | << attribute("width", translateScale(width, layout)) 371 | << attribute("height", translateScale(height, layout)) 372 | << fill.toString(layout) << stroke.toString(layout) << emptyElemEnd(); 373 | return ss.str(); 374 | } 375 | void offset(Point const & offset) 376 | { 377 | edge.x += offset.x; 378 | edge.y += offset.y; 379 | } 380 | private: 381 | Point edge; 382 | double width; 383 | double height; 384 | }; 385 | 386 | class Line : public Shape 387 | { 388 | public: 389 | Line(Point const & start_point, Point const & end_point, 390 | Stroke const & stroke = Stroke()) 391 | : Shape(Fill(), stroke), start_point(start_point), 392 | end_point(end_point) { } 393 | std::string toString(Layout const & layout) const 394 | { 395 | std::stringstream ss; 396 | ss << elemStart("line") << attribute("x1", translateX(start_point.x, layout)) 397 | << attribute("y1", translateY(start_point.y, layout)) 398 | << attribute("x2", translateX(end_point.x, layout)) 399 | << attribute("y2", translateY(end_point.y, layout)) 400 | << stroke.toString(layout) << emptyElemEnd(); 401 | return ss.str(); 402 | } 403 | void offset(Point const & offset) 404 | { 405 | start_point.x += offset.x; 406 | start_point.y += offset.y; 407 | 408 | end_point.x += offset.x; 409 | end_point.y += offset.y; 410 | } 411 | private: 412 | Point start_point; 413 | Point end_point; 414 | }; 415 | 416 | class Polygon : public Shape 417 | { 418 | public: 419 | Polygon(Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 420 | : Shape(fill, stroke) { } 421 | Polygon(Stroke const & stroke = Stroke()) : Shape(Color::Transparent, stroke) { } 422 | Polygon & operator<<(Point const & point) 423 | { 424 | points.push_back(point); 425 | return *this; 426 | } 427 | std::string toString(Layout const & layout) const 428 | { 429 | std::stringstream ss; 430 | ss << elemStart("polygon"); 431 | 432 | ss << "points=\""; 433 | for (unsigned i = 0; i < points.size(); ++i) 434 | ss << translateX(points[i].x, layout) << "," << translateY(points[i].y, layout) << " "; 435 | ss << "\" "; 436 | 437 | ss << fill.toString(layout) << stroke.toString(layout) << emptyElemEnd(); 438 | return ss.str(); 439 | } 440 | void offset(Point const & offset) 441 | { 442 | for (unsigned i = 0; i < points.size(); ++i) { 443 | points[i].x += offset.x; 444 | points[i].y += offset.y; 445 | } 446 | } 447 | private: 448 | std::vector points; 449 | }; 450 | 451 | class Polyline : public Shape 452 | { 453 | public: 454 | Polyline(Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 455 | : Shape(fill, stroke) { } 456 | Polyline(Stroke const & stroke = Stroke()) : Shape(Color::Transparent, stroke) { } 457 | Polyline(std::vector const & points, 458 | Fill const & fill = Fill(), Stroke const & stroke = Stroke()) 459 | : Shape(fill, stroke), points(points) { } 460 | Polyline & operator<<(Point const & point) 461 | { 462 | points.push_back(point); 463 | return *this; 464 | } 465 | std::string toString(Layout const & layout) const 466 | { 467 | std::stringstream ss; 468 | ss << elemStart("polyline"); 469 | 470 | ss << "points=\""; 471 | for (unsigned i = 0; i < points.size(); ++i) 472 | ss << translateX(points[i].x, layout) << "," << translateY(points[i].y, layout) << " "; 473 | ss << "\" "; 474 | 475 | ss << fill.toString(layout) << stroke.toString(layout) << emptyElemEnd(); 476 | return ss.str(); 477 | } 478 | void offset(Point const & offset) 479 | { 480 | for (unsigned i = 0; i < points.size(); ++i) { 481 | points[i].x += offset.x; 482 | points[i].y += offset.y; 483 | } 484 | } 485 | std::vector points; 486 | }; 487 | 488 | class Text : public Shape 489 | { 490 | public: 491 | Text(Point const & origin, std::string const & content, Fill const & fill = Fill(), 492 | Font const & font = Font(), Stroke const & stroke = Stroke()) 493 | : Shape(fill, stroke), origin(origin), content(content), font(font) { } 494 | std::string toString(Layout const & layout) const 495 | { 496 | std::stringstream ss; 497 | ss << elemStart("text") << attribute("x", translateX(origin.x, layout)) 498 | << attribute("y", translateY(origin.y, layout)) 499 | << fill.toString(layout) << stroke.toString(layout) << font.toString(layout) 500 | << ">" << content << elemEnd("text"); 501 | return ss.str(); 502 | } 503 | void offset(Point const & offset) 504 | { 505 | origin.x += offset.x; 506 | origin.y += offset.y; 507 | } 508 | private: 509 | Point origin; 510 | std::string content; 511 | Font font; 512 | }; 513 | 514 | // Sample charting class. 515 | class LineChart : public Shape 516 | { 517 | public: 518 | LineChart(Dimensions margin = Dimensions(), double scale = 1, 519 | Stroke const & axis_stroke = Stroke(.5, Color::Purple)) 520 | : axis_stroke(axis_stroke), margin(margin), scale(scale) { } 521 | LineChart & operator<<(Polyline const & polyline) 522 | { 523 | if (polyline.points.empty()) 524 | return *this; 525 | 526 | polylines.push_back(polyline); 527 | return *this; 528 | } 529 | std::string toString(Layout const & layout) const 530 | { 531 | if (polylines.empty()) 532 | return ""; 533 | 534 | std::string ret; 535 | for (unsigned i = 0; i < polylines.size(); ++i) 536 | ret += polylineToString(polylines[i], layout); 537 | 538 | return ret + axisString(layout); 539 | } 540 | void offset(Point const & offset) 541 | { 542 | for (unsigned i = 0; i < polylines.size(); ++i) 543 | polylines[i].offset(offset); 544 | } 545 | private: 546 | Stroke axis_stroke; 547 | Dimensions margin; 548 | double scale; 549 | std::vector polylines; 550 | 551 | optional getDimensions() const 552 | { 553 | if (polylines.empty()) 554 | return optional(); 555 | 556 | optional min = getMinPoint(polylines[0].points); 557 | optional max = getMaxPoint(polylines[0].points); 558 | for (unsigned i = 0; i < polylines.size(); ++i) { 559 | if (getMinPoint(polylines[i].points)->x < min->x) 560 | min->x = getMinPoint(polylines[i].points)->x; 561 | if (getMinPoint(polylines[i].points)->y < min->y) 562 | min->y = getMinPoint(polylines[i].points)->y; 563 | if (getMaxPoint(polylines[i].points)->x > max->x) 564 | max->x = getMaxPoint(polylines[i].points)->x; 565 | if (getMaxPoint(polylines[i].points)->y > max->y) 566 | max->y = getMaxPoint(polylines[i].points)->y; 567 | } 568 | 569 | return optional(Dimensions(max->x - min->x, max->y - min->y)); 570 | } 571 | std::string axisString(Layout const & layout) const 572 | { 573 | optional dimensions = getDimensions(); 574 | if (!dimensions) 575 | return ""; 576 | 577 | // Make the axis 10% wider and higher than the data points. 578 | double width = dimensions->width * 1.1; 579 | double height = dimensions->height * 1.1; 580 | 581 | // Draw the axis. 582 | Polyline axis(Color::Transparent, axis_stroke); 583 | axis << Point(margin.width, margin.height + height) << Point(margin.width, margin.height) 584 | << Point(margin.width + width, margin.height); 585 | 586 | return axis.toString(layout); 587 | } 588 | std::string polylineToString(Polyline const & polyline, Layout const & layout) const 589 | { 590 | Polyline shifted_polyline = polyline; 591 | shifted_polyline.offset(Point(margin.width, margin.height)); 592 | 593 | std::vector vertices; 594 | for (unsigned i = 0; i < shifted_polyline.points.size(); ++i) 595 | vertices.push_back(Circle(shifted_polyline.points[i], getDimensions()->height / 30.0, Color::Black)); 596 | 597 | return shifted_polyline.toString(layout) + vectorToString(vertices, layout); 598 | } 599 | }; 600 | 601 | class Document 602 | { 603 | public: 604 | Document(std::string const & file_name, Layout layout = Layout()) 605 | : file_name(file_name), layout(layout) { } 606 | 607 | Document & operator<<(Shape const & shape) 608 | { 609 | body_nodes_str += shape.toString(layout); 610 | return *this; 611 | } 612 | std::string toString() const 613 | { 614 | std::stringstream ss; 615 | ss << "\n\n\n" << body_nodes_str << elemEnd("svg"); 622 | return ss.str(); 623 | } 624 | bool save() const 625 | { 626 | std::ofstream ofs(file_name.c_str()); 627 | if (!ofs.good()) 628 | return false; 629 | 630 | ofs << toString(); 631 | ofs.close(); 632 | return true; 633 | } 634 | private: 635 | std::string file_name; 636 | Layout layout; 637 | 638 | std::string body_nodes_str; 639 | }; 640 | } 641 | 642 | #endif 643 | -------------------------------------------------------------------------------- /S1.txt: -------------------------------------------------------------------------------- 1 | 664159 550946 2 | 665845 557965 3 | 597173 575538 4 | 618600 551446 5 | 635690 608046 6 | 588100 557588 7 | 582015 546191 8 | 604678 574577 9 | 572029 518313 10 | 604737 574591 11 | 577728 587566 12 | 602013 574722 13 | 627968 574625 14 | 607269 536961 15 | 603145 574795 16 | 671919 571761 17 | 612184 570393 18 | 600032 575310 19 | 627912 593892 20 | 601967 604428 21 | 591851 569051 22 | 601444 572693 23 | 629718 558104 24 | 661430 603567 25 | 597551 556737 26 | 601182 582584 27 | 562704 570596 28 | 605107 563429 29 | 607214 575069 30 | 568824 570203 31 | 612485 518009 32 | 589244 573777 33 | 625579 551084 34 | 560237 500154 35 | 626224 569687 36 | 610666 551701 37 | 597428 569940 38 | 600582 599535 39 | 604168 555003 40 | 613871 550423 41 | 617310 551945 42 | 625728 579460 43 | 606300 566708 44 | 638559 558807 45 | 582176 630383 46 | 544056 577786 47 | 631297 578351 48 | 561574 621747 49 | 604973 574773 50 | 605284 556134 51 | 617910 592293 52 | 555904 640401 53 | 526559 509417 54 | 603849 572396 55 | 598634 619900 56 | 603359 589262 57 | 657455 567754 58 | 614279 599251 59 | 578496 631434 60 | 645171 595209 61 | 688015 533535 62 | 656477 573007 63 | 540029 563888 64 | 597418 538362 65 | 613545 574733 66 | 628696 542447 67 | 604157 574191 68 | 603126 497987 69 | 605850 533310 70 | 596179 529556 71 | 610330 552628 72 | 598184 531473 73 | 620438 511694 74 | 600202 622079 75 | 603021 577991 76 | 515612 540643 77 | 606548 574376 78 | 593490 623110 79 | 607084 595500 80 | 583728 563146 81 | 616044 533807 82 | 624452 584622 83 | 604438 574666 84 | 625709 660145 85 | 601376 579831 86 | 565148 557305 87 | 639418 537903 88 | 612799 537497 89 | 583653 652182 90 | 599808 596484 91 | 605250 573272 92 | 606738 601356 93 | 611044 571814 94 | 575440 568511 95 | 616329 529516 96 | 605927 572533 97 | 609286 586782 98 | 647354 579190 99 | 606929 571420 100 | 562920 559223 101 | 680357 620811 102 | 707100 601463 103 | 604294 574368 104 | 614917 600946 105 | 611508 503220 106 | 603789 574474 107 | 551740 588768 108 | 546031 570429 109 | 569197 559307 110 | 688712 568754 111 | 604067 574091 112 | 606809 572101 113 | 588597 622592 114 | 613840 534167 115 | 576263 547239 116 | 597077 568196 117 | 601339 571609 118 | 606011 569426 119 | 593398 559764 120 | 593166 622725 121 | 609796 532982 122 | 712648 607541 123 | 585048 505097 124 | 525967 565687 125 | 660327 585901 126 | 607604 573951 127 | 604001 573587 128 | 591484 571087 129 | 613868 585089 130 | 645464 660478 131 | 538571 654649 132 | 555429 604551 133 | 597620 586226 134 | 586097 567445 135 | 545235 539822 136 | 649088 575733 137 | 599123 616977 138 | 563763 559454 139 | 617717 613939 140 | 618869 577243 141 | 567188 560044 142 | 636628 533309 143 | 560362 567914 144 | 595014 632844 145 | 605876 550640 146 | 604352 573425 147 | 600679 599545 148 | 596891 579476 149 | 614943 540976 150 | 604415 571400 151 | 603698 573585 152 | 658199 568743 153 | 598759 582942 154 | 671269 590258 155 | 593317 534085 156 | 657985 453405 157 | 608557 590278 158 | 623004 508050 159 | 601900 569391 160 | 641031 593074 161 | 589658 640498 162 | 567565 573952 163 | 559078 570088 164 | 639431 588155 165 | 566609 537592 166 | 568570 579335 167 | 660650 615038 168 | 667639 571164 169 | 596796 529933 170 | 606111 617846 171 | 616060 590779 172 | 602873 527864 173 | 571334 594145 174 | 602167 543919 175 | 605100 573307 176 | 546640 560043 177 | 585195 555011 178 | 651740 589474 179 | 589112 536573 180 | 582057 543124 181 | 690968 555952 182 | 609030 552436 183 | 632125 541413 184 | 603445 630598 185 | 628264 616214 186 | 577242 574073 187 | 604090 574392 188 | 607911 576556 189 | 600665 638890 190 | 600117 539079 191 | 631182 565466 192 | 695646 652231 193 | 619445 567491 194 | 613191 571942 195 | 567428 580005 196 | 590583 623314 197 | 606289 670243 198 | 585175 574133 199 | 634967 579020 200 | 614615 574437 201 | 593061 579188 202 | 606933 576409 203 | 606587 573873 204 | 594084 629464 205 | 683697 581516 206 | 601530 577183 207 | 603055 589818 208 | 616561 619007 209 | 607463 477085 210 | 611581 572630 211 | 579712 568354 212 | 602887 595245 213 | 600039 557139 214 | 605913 579526 215 | 579773 568698 216 | 606324 544357 217 | 605958 573728 218 | 606144 575076 219 | 667472 570571 220 | 580048 565009 221 | 597802 576113 222 | 610263 574422 223 | 603855 575180 224 | 624369 532153 225 | 599870 591110 226 | 577167 617095 227 | 658403 611332 228 | 563460 480559 229 | 610980 522819 230 | 569422 567790 231 | 627727 578737 232 | 592804 584539 233 | 540783 626497 234 | 591823 639096 235 | 637323 549567 236 | 638078 629421 237 | 611315 560757 238 | 647103 573853 239 | 522993 595581 240 | 601187 531825 241 | 533799 564377 242 | 649034 528813 243 | 620975 564344 244 | 622407 583192 245 | 597026 642918 246 | 551291 576721 247 | 608768 610525 248 | 697959 614701 249 | 658281 582264 250 | 546632 599204 251 | 672565 564468 252 | 636500 587401 253 | 696144 548705 254 | 533551 582247 255 | 526802 551524 256 | 553038 606418 257 | 696601 603624 258 | 588964 597435 259 | 716139 621721 260 | 608529 586311 261 | 557378 567033 262 | 589994 610890 263 | 589344 563119 264 | 624415 515911 265 | 565483 551512 266 | 584895 574666 267 | 582777 542670 268 | 639394 576728 269 | 608298 573748 270 | 663578 586265 271 | 628080 562986 272 | 597421 554767 273 | 595193 576508 274 | 658103 572250 275 | 659529 498474 276 | 606415 581386 277 | 641976 577433 278 | 587466 564953 279 | 589180 595099 280 | 601885 573083 281 | 580561 528916 282 | 621726 578003 283 | 558817 576255 284 | 620213 574468 285 | 594010 570095 286 | 541976 512639 287 | 593840 578685 288 | 602667 575857 289 | 631446 561156 290 | 596481 567449 291 | 611318 581584 292 | 568546 564911 293 | 593865 572987 294 | 597017 575588 295 | 578804 573582 296 | 673750 594081 297 | 592714 553958 298 | 594029 586701 299 | 668502 563937 300 | 629533 537542 301 | 801539 318482 302 | 801667 318542 303 | 814045 332998 304 | 800479 321640 305 | 757470 224976 306 | 844536 424646 307 | 797105 316002 308 | 779956 271501 309 | 797205 313318 310 | 801323 316240 311 | 783666 262902 312 | 806131 312752 313 | 830658 368694 314 | 802482 335269 315 | 801910 325434 316 | 808062 337340 317 | 789833 304422 318 | 803603 327255 319 | 800865 312968 320 | 802237 318526 321 | 803959 315173 322 | 800123 312312 323 | 780927 285057 324 | 797242 324588 325 | 801551 320544 326 | 809182 319115 327 | 801931 317202 328 | 870801 476330 329 | 820327 352701 330 | 801093 317509 331 | 798523 324500 332 | 805237 318655 333 | 803375 311620 334 | 801441 323812 335 | 797313 317527 336 | 788220 301915 337 | 790395 300024 338 | 817135 349925 339 | 797787 301470 340 | 804630 332333 341 | 808710 330379 342 | 802111 320817 343 | 796375 309563 344 | 819768 346596 345 | 814605 354382 346 | 800565 319364 347 | 802089 313456 348 | 814401 341234 349 | 796609 319691 350 | 776131 248465 351 | 803464 329093 352 | 802646 317894 353 | 809550 327365 354 | 795322 311178 355 | 830450 393096 356 | 778414 260729 357 | 800041 318331 358 | 802814 320130 359 | 802738 312234 360 | 823913 369439 361 | 803386 318982 362 | 812869 346251 363 | 798904 324420 364 | 800447 331643 365 | 807446 342555 366 | 804251 329956 367 | 797594 302109 368 | 803448 314797 369 | 765502 240340 370 | 795527 315510 371 | 794640 313497 372 | 808717 335740 373 | 790932 305223 374 | 816852 352965 375 | 826228 376658 376 | 795299 312036 377 | 808686 332209 378 | 809594 344872 379 | 799275 324108 380 | 878184 487392 381 | 798472 322218 382 | 824822 367091 383 | 746769 205186 384 | 756701 207223 385 | 795489 287279 386 | 800483 320713 387 | 783491 288029 388 | 797162 306135 389 | 800272 316170 390 | 806827 324616 391 | 802853 314938 392 | 800804 316615 393 | 813173 354777 394 | 801588 319814 395 | 797400 315778 396 | 823840 368410 397 | 811391 343836 398 | 801055 321833 399 | 804038 306622 400 | 803780 334441 401 | 834173 386159 402 | 802784 313853 403 | 807293 347456 404 | 817119 336333 405 | 786635 269352 406 | 824624 381716 407 | 797415 319840 408 | 800772 325023 409 | 806626 318966 410 | 800845 311838 411 | 769386 259892 412 | 797272 324228 413 | 807409 325526 414 | 795836 291870 415 | 798321 319665 416 | 805372 313397 417 | 790738 308028 418 | 800667 315995 419 | 795205 316433 420 | 809054 345541 421 | 808452 320117 422 | 779897 279572 423 | 782642 275308 424 | 797569 321799 425 | 801751 318110 426 | 787644 297715 427 | 807401 314610 428 | 800677 310656 429 | 800394 301473 430 | 795571 310093 431 | 814158 335578 432 | 811913 325091 433 | 806982 316680 434 | 775604 274485 435 | 800133 327081 436 | 806511 313841 437 | 803796 314893 438 | 802012 318315 439 | 826789 377676 440 | 814108 344096 441 | 804354 309671 442 | 807017 330432 443 | 803774 334756 444 | 817410 346944 445 | 841928 398948 446 | 816145 349032 447 | 818622 370753 448 | 786245 292352 449 | 784164 285702 450 | 805390 319676 451 | 790774 303642 452 | 803277 319525 453 | 833182 379714 454 | 773023 251826 455 | 801609 320399 456 | 778965 282290 457 | 814317 333112 458 | 805080 323708 459 | 801080 318049 460 | 799724 318884 461 | 798059 316113 462 | 806176 320301 463 | 769876 257669 464 | 825716 373098 465 | 791983 298565 466 | 801386 313545 467 | 804871 317801 468 | 810903 332925 469 | 838276 395673 470 | 810543 341180 471 | 777978 252419 472 | 820258 351165 473 | 801997 319385 474 | 779437 281959 475 | 810253 323873 476 | 794826 309589 477 | 814280 344223 478 | 832651 373469 479 | 794142 306704 480 | 802041 319504 481 | 804190 320706 482 | 798983 325682 483 | 840462 402858 484 | 799912 323363 485 | 804119 328544 486 | 804358 320802 487 | 803057 331037 488 | 803031 325811 489 | 784151 283760 490 | 800444 311497 491 | 802004 317772 492 | 803470 319069 493 | 811277 335577 494 | 803332 315488 495 | 800037 317963 496 | 813436 360446 497 | 800694 316789 498 | 838129 404012 499 | 764997 249477 500 | 800316 311699 501 | 806848 320541 502 | 805462 317833 503 | 798308 312788 504 | 802655 316263 505 | 801456 320080 506 | 801309 318213 507 | 840886 397888 508 | 829529 375007 509 | 830805 370801 510 | 804979 334141 511 | 804013 316083 512 | 808489 317021 513 | 770113 241615 514 | 804332 319006 515 | 833661 389733 516 | 797834 297329 517 | 794956 309980 518 | 801232 307078 519 | 809552 342258 520 | 794615 305632 521 | 809259 345634 522 | 811502 355939 523 | 801301 316893 524 | 803370 318247 525 | 804702 315881 526 | 797009 293194 527 | 813791 334609 528 | 812965 330224 529 | 826048 374236 530 | 800959 322309 531 | 803405 317316 532 | 802254 320673 533 | 783116 265635 534 | 798633 317300 535 | 801482 327644 536 | 798612 326404 537 | 799001 302014 538 | 802537 312497 539 | 799794 315080 540 | 793892 313943 541 | 804691 332987 542 | 793855 298525 543 | 796952 318633 544 | 800655 320227 545 | 801780 318992 546 | 805977 320805 547 | 796916 323332 548 | 820904 351763 549 | 808405 318841 550 | 765283 249459 551 | 824212 363776 552 | 798981 311092 553 | 797178 310439 554 | 800582 316980 555 | 803839 310353 556 | 796283 315582 557 | 801145 317601 558 | 801662 318423 559 | 801782 318281 560 | 803377 319212 561 | 803932 318781 562 | 806192 337849 563 | 789583 287700 564 | 801586 318947 565 | 804251 331304 566 | 799667 316830 567 | 759789 229116 568 | 799021 326404 569 | 793684 312065 570 | 806320 315242 571 | 786234 267976 572 | 821151 366545 573 | 801903 312794 574 | 782506 279930 575 | 803627 319323 576 | 794991 291216 577 | 794667 315069 578 | 799291 317500 579 | 798243 324160 580 | 804408 337683 581 | 818119 348676 582 | 810502 336169 583 | 793560 285392 584 | 801326 315779 585 | 808644 326320 586 | 813645 328765 587 | 800966 317165 588 | 797111 302781 589 | 802431 322048 590 | 811061 333595 591 | 786719 283364 592 | 773955 239849 593 | 803701 321815 594 | 783110 289805 595 | 800235 316652 596 | 807421 317527 597 | 797947 319734 598 | 805035 317469 599 | 801166 322298 600 | 846693 429031 601 | 801493 322249 602 | 806087 326636 603 | 810657 329468 604 | 801313 300606 605 | 800390 309948 606 | 801634 318965 607 | 799197 314215 608 | 795254 296488 609 | 807696 320548 610 | 800461 326821 611 | 801174 320442 612 | 809781 326904 613 | 826585 366934 614 | 804429 312164 615 | 788005 292268 616 | 801183 316191 617 | 378274 816341 618 | 406233 813072 619 | 401478 785370 620 | 448651 847994 621 | 434440 822866 622 | 369199 734895 623 | 413241 771595 624 | 369418 733394 625 | 378563 789670 626 | 424190 780052 627 | 415993 776671 628 | 421352 799127 629 | 432656 783776 630 | 383032 788008 631 | 414377 771258 632 | 425260 773661 633 | 469139 810971 634 | 442979 803024 635 | 347079 803582 636 | 412797 803180 637 | 352874 807952 638 | 442286 755194 639 | 416433 786159 640 | 419700 793447 641 | 422961 821595 642 | 400008 789447 643 | 429586 775621 644 | 457561 788245 645 | 415417 785827 646 | 389552 750700 647 | 415598 786499 648 | 443447 783977 649 | 404792 749210 650 | 389392 730768 651 | 473485 847098 652 | 491614 778997 653 | 437483 785130 654 | 452570 848127 655 | 417197 778243 656 | 405986 787439 657 | 437568 794323 658 | 420319 794333 659 | 418963 746595 660 | 469422 822619 661 | 397688 762902 662 | 418149 790096 663 | 407289 798870 664 | 360319 778673 665 | 473799 795167 666 | 445199 763833 667 | 446537 828924 668 | 410019 732704 669 | 396540 815936 670 | 407694 718592 671 | 417091 792545 672 | 442260 754050 673 | 411526 784658 674 | 407814 765816 675 | 394022 803914 676 | 481133 781413 677 | 396118 794614 678 | 458538 786673 679 | 419721 789724 680 | 424476 781552 681 | 377720 727349 682 | 448336 789445 683 | 412227 787450 684 | 408745 824896 685 | 417016 774869 686 | 395274 786698 687 | 412541 806622 688 | 412109 735920 689 | 407023 787385 690 | 376660 815936 691 | 396548 784388 692 | 508535 830710 693 | 414014 816460 694 | 440782 782395 695 | 436951 814456 696 | 393758 750953 697 | 418410 795929 698 | 425991 787029 699 | 414562 787355 700 | 408712 803987 701 | 377858 811790 702 | 417169 792321 703 | 460371 780609 704 | 388873 746909 705 | 395641 808571 706 | 386436 791388 707 | 440667 768761 708 | 438437 730300 709 | 370839 727884 710 | 422917 781112 711 | 391555 789079 712 | 402666 814060 713 | 474368 812039 714 | 406176 760860 715 | 463768 793154 716 | 446307 796523 717 | 402309 786873 718 | 413946 786971 719 | 425053 790566 720 | 416926 785113 721 | 424023 737453 722 | 417447 782955 723 | 415672 787824 724 | 416019 787562 725 | 417515 787648 726 | 459230 803720 727 | 447833 819282 728 | 418199 851439 729 | 417393 771537 730 | 441415 780207 731 | 399634 751940 732 | 373360 784232 733 | 419227 779215 734 | 434717 808225 735 | 397669 792218 736 | 412028 773494 737 | 407504 803363 738 | 365147 790525 739 | 459328 805961 740 | 429472 860855 741 | 480128 785580 742 | 344915 702496 743 | 410969 770451 744 | 407460 791404 745 | 420476 750495 746 | 397747 792207 747 | 408428 771823 748 | 397806 749559 749 | 426040 825049 750 | 407565 766203 751 | 414317 828815 752 | 410610 765111 753 | 412388 784064 754 | 406337 750353 755 | 422419 754048 756 | 416039 730594 757 | 414512 793966 758 | 398478 822297 759 | 424375 721868 760 | 403890 792420 761 | 400902 772920 762 | 402367 782997 763 | 472917 830363 764 | 418621 840463 765 | 329002 727685 766 | 418618 811618 767 | 425356 745471 768 | 470922 770669 769 | 400598 790903 770 | 412851 774986 771 | 492415 829655 772 | 400079 749617 773 | 417673 785965 774 | 424720 768456 775 | 386415 801444 776 | 426689 788562 777 | 430747 776261 778 | 405714 781619 779 | 429220 787348 780 | 427850 762201 781 | 434080 785264 782 | 473514 788780 783 | 412386 777312 784 | 430686 844506 785 | 409142 811927 786 | 422198 724557 787 | 392185 713763 788 | 412677 786951 789 | 399149 784376 790 | 382693 749680 791 | 527515 831478 792 | 448519 805219 793 | 430779 770145 794 | 413556 758080 795 | 392140 769924 796 | 416855 794023 797 | 389713 772742 798 | 398498 776720 799 | 473727 807244 800 | 389410 788256 801 | 377230 790154 802 | 415564 784464 803 | 456799 844976 804 | 444336 820061 805 | 404359 783919 806 | 453154 776082 807 | 425019 759577 808 | 415895 775793 809 | 420083 787815 810 | 506612 858859 811 | 436648 859634 812 | 403522 785432 813 | 401407 759648 814 | 403852 792473 815 | 367398 701756 816 | 412453 784453 817 | 382124 786262 818 | 416884 786845 819 | 448865 836781 820 | 383821 808301 821 | 414249 796590 822 | 457338 789952 823 | 396276 785999 824 | 390282 789593 825 | 409417 758123 826 | 397561 815245 827 | 397137 742547 828 | 402891 801910 829 | 385257 791581 830 | 409628 833942 831 | 369249 797068 832 | 460942 779073 833 | 423146 737571 834 | 420509 788730 835 | 422736 790806 836 | 401492 790336 837 | 394018 799506 838 | 385140 796221 839 | 430243 781020 840 | 416775 806826 841 | 425796 795608 842 | 411488 837715 843 | 433989 765343 844 | 415806 783594 845 | 417023 771194 846 | 415270 775605 847 | 391163 811977 848 | 405350 762342 849 | 414860 773921 850 | 371779 814715 851 | 415631 805010 852 | 387951 813315 853 | 472691 802678 854 | 471930 844046 855 | 432892 815223 856 | 366654 802105 857 | 411721 717873 858 | 426115 814461 859 | 375997 806621 860 | 385561 718324 861 | 375573 809249 862 | 437958 784801 863 | 363857 784086 864 | 430138 818594 865 | 435085 791564 866 | 414036 742189 867 | 425611 793420 868 | 439793 740773 869 | 467107 817914 870 | 387631 749416 871 | 430001 765803 872 | 384225 784381 873 | 417146 822655 874 | 427371 819417 875 | 399587 792459 876 | 474648 778810 877 | 345692 788190 878 | 409515 756149 879 | 469782 780552 880 | 468229 827985 881 | 414951 852935 882 | 409701 750741 883 | 442826 795974 884 | 459556 818479 885 | 423311 813081 886 | 476144 772131 887 | 391976 789416 888 | 448649 813885 889 | 496658 816784 890 | 410336 767856 891 | 430167 811490 892 | 357467 797530 893 | 404220 785798 894 | 446368 763341 895 | 439514 758221 896 | 424145 743433 897 | 470062 771204 898 | 421187 779726 899 | 396617 801039 900 | 394708 739061 901 | 394912 755947 902 | 425950 788228 903 | 408283 806161 904 | 419520 778231 905 | 441950 785934 906 | 409814 836083 907 | 395817 788858 908 | 422776 808328 909 | 363959 810632 910 | 422943 804253 911 | 407626 771304 912 | 347933 797148 913 | 457554 795861 914 | 394274 837428 915 | 445674 768552 916 | 416359 786189 917 | 419485 804779 918 | 376176 795539 919 | 349378 805118 920 | 456566 743012 921 | 484407 809641 922 | 403329 717870 923 | 392795 817694 924 | 372621 772258 925 | 461751 817277 926 | 489182 773934 927 | 427388 815258 928 | 418155 819422 929 | 437035 755506 930 | 416444 783624 931 | 777811 751059 932 | 823974 725025 933 | 749723 781756 934 | 875160 698897 935 | 828194 742074 936 | 800913 749332 937 | 831165 783383 938 | 793019 764859 939 | 810467 706465 940 | 803540 754792 941 | 844662 654835 942 | 803962 731228 943 | 823065 733789 944 | 822156 732296 945 | 811389 723618 946 | 779936 774397 947 | 854769 713941 948 | 803457 735855 949 | 790712 745884 950 | 815652 733433 951 | 841289 701474 952 | 832054 751330 953 | 786032 701427 954 | 824835 704997 955 | 832886 781206 956 | 818063 797960 957 | 857620 709386 958 | 828589 652430 959 | 836727 737798 960 | 776000 780347 961 | 824098 714042 962 | 830583 710990 963 | 862189 735684 964 | 815131 704478 965 | 828478 655405 966 | 784838 771499 967 | 880362 706363 968 | 767482 727417 969 | 825070 734215 970 | 813781 738344 971 | 840863 737972 972 | 840943 739611 973 | 828276 762021 974 | 822883 728314 975 | 854886 769396 976 | 829623 732301 977 | 835428 731189 978 | 818338 800932 979 | 823417 701523 980 | 812152 689907 981 | 829969 699565 982 | 861563 661642 983 | 816955 747629 984 | 774526 757135 985 | 803577 712231 986 | 798056 714380 987 | 881789 727577 988 | 858867 700187 989 | 834996 728517 990 | 839121 736259 991 | 841045 738224 992 | 840100 728839 993 | 874544 686096 994 | 862334 747768 995 | 820253 714625 996 | 817862 732248 997 | 844729 682981 998 | 846484 719360 999 | 793669 724513 1000 | 821906 732848 1001 | 826465 646980 1002 | 820350 748217 1003 | 814540 707227 1004 | 838223 766380 1005 | 869471 745767 1006 | 816054 733183 1007 | 801177 737548 1008 | 848783 748980 1009 | 814105 723255 1010 | 838036 749612 1011 | 840270 725456 1012 | 789601 714058 1013 | 827169 708345 1014 | 789448 738035 1015 | 835030 668528 1016 | 848151 741869 1017 | 816091 747764 1018 | 801511 761094 1019 | 822670 689090 1020 | 873672 734440 1021 | 808153 737136 1022 | 755829 751858 1023 | 814697 729209 1024 | 832758 707452 1025 | 848264 762550 1026 | 799903 784535 1027 | 802674 727804 1028 | 828147 808738 1029 | 820707 705318 1030 | 824594 741664 1031 | 804474 747122 1032 | 823108 733302 1033 | 839514 728923 1034 | 827711 732798 1035 | 851644 721350 1036 | 816390 711340 1037 | 798007 723995 1038 | 790612 738038 1039 | 821909 728448 1040 | 865754 723314 1041 | 735295 814058 1042 | 877711 703850 1043 | 792990 685472 1044 | 809917 762429 1045 | 789388 712210 1046 | 879221 655497 1047 | 876935 684572 1048 | 819439 735945 1049 | 807929 730950 1050 | 850451 764015 1051 | 811748 766105 1052 | 824765 761114 1053 | 848586 789052 1054 | 812231 739235 1055 | 873532 712802 1056 | 842590 716861 1057 | 832798 734777 1058 | 817640 730018 1059 | 824322 744720 1060 | 777697 798253 1061 | 868493 677155 1062 | 805658 698630 1063 | 840349 790707 1064 | 796953 726378 1065 | 832589 782799 1066 | 817441 709397 1067 | 856029 730586 1068 | 805089 762512 1069 | 854628 773470 1070 | 846090 651306 1071 | 796943 674692 1072 | 827192 785316 1073 | 818209 719382 1074 | 795200 786424 1075 | 817777 724927 1076 | 846512 683647 1077 | 825080 746712 1078 | 824674 806300 1079 | 822616 735941 1080 | 805391 732659 1081 | 823250 732088 1082 | 850376 739749 1083 | 821337 733356 1084 | 796786 724615 1085 | 862425 741010 1086 | 825690 703854 1087 | 800872 672603 1088 | 825395 715780 1089 | 843911 730036 1090 | 820238 732928 1091 | 848570 703697 1092 | 825515 738284 1093 | 820367 732364 1094 | 822025 749214 1095 | 837718 761480 1096 | 871723 685520 1097 | 850904 720163 1098 | 816775 739989 1099 | 822103 732911 1100 | 815455 755486 1101 | 835648 756631 1102 | 868626 737331 1103 | 825997 730652 1104 | 817252 730254 1105 | 877906 722361 1106 | 808440 729985 1107 | 791470 751113 1108 | 841654 764836 1109 | 825429 732758 1110 | 751215 828365 1111 | 804706 788001 1112 | 820194 734233 1113 | 869991 705259 1114 | 809779 663654 1115 | 822078 711840 1116 | 866139 717138 1117 | 829379 718721 1118 | 837582 763266 1119 | 783999 732487 1120 | 800231 732106 1121 | 862569 719773 1122 | 838764 652792 1123 | 849343 713993 1124 | 828297 715480 1125 | 821259 750089 1126 | 874643 729921 1127 | 819058 729125 1128 | 817018 729596 1129 | 797804 715342 1130 | 838515 768484 1131 | 829398 724900 1132 | 754841 796342 1133 | 878690 739021 1134 | 821908 732077 1135 | 786495 759000 1136 | 823987 687499 1137 | 787988 741203 1138 | 839339 726322 1139 | 822425 727248 1140 | 854412 725575 1141 | 788351 737539 1142 | 838587 700545 1143 | 840425 762290 1144 | 817395 734126 1145 | 807913 737341 1146 | 872285 750708 1147 | 788166 702817 1148 | 836225 709204 1149 | 822293 786837 1150 | 888892 702505 1151 | 822623 745025 1152 | 795124 696429 1153 | 832238 725434 1154 | 815593 689874 1155 | 843572 784897 1156 | 833716 758772 1157 | 822474 780882 1158 | 801102 759330 1159 | 841752 731595 1160 | 808779 732990 1161 | 822533 758955 1162 | 817807 715863 1163 | 837977 728814 1164 | 801204 755177 1165 | 819628 810748 1166 | 814732 734183 1167 | 832086 716249 1168 | 876503 659112 1169 | 823856 749355 1170 | 819737 737829 1171 | 818756 743887 1172 | 811971 664520 1173 | 801526 705057 1174 | 827031 734324 1175 | 843891 721571 1176 | 810460 735109 1177 | 782368 759352 1178 | 801172 715857 1179 | 866928 716961 1180 | 829673 730398 1181 | 850888 736810 1182 | 786935 732999 1183 | 769656 721159 1184 | 804925 735492 1185 | 870054 738900 1186 | 818932 728481 1187 | 853692 746285 1188 | 807072 687932 1189 | 750459 800215 1190 | 823959 737866 1191 | 835804 710711 1192 | 790206 747165 1193 | 813092 739043 1194 | 801810 728106 1195 | 825404 733788 1196 | 820947 730529 1197 | 827081 694553 1198 | 822664 720677 1199 | 768565 762193 1200 | 823113 733720 1201 | 821079 800206 1202 | 828531 731300 1203 | 820757 738235 1204 | 781260 737962 1205 | 819438 662327 1206 | 833504 744564 1207 | 789552 731946 1208 | 822843 763117 1209 | 775555 719683 1210 | 865084 713697 1211 | 820455 729132 1212 | 849547 738979 1213 | 762269 792243 1214 | 821464 700760 1215 | 824013 753991 1216 | 803369 698753 1217 | 823589 728083 1218 | 796353 710294 1219 | 820083 728310 1220 | 829133 735488 1221 | 823455 747394 1222 | 818542 740451 1223 | 809623 734937 1224 | 841762 777572 1225 | 802184 751958 1226 | 803874 675499 1227 | 830065 739162 1228 | 824140 729074 1229 | 852730 769968 1230 | 866760 753547 1231 | 811031 703822 1232 | 825414 734466 1233 | 816615 770855 1234 | 786227 765634 1235 | 817269 733788 1236 | 809453 736879 1237 | 757421 774445 1238 | 818251 731938 1239 | 788020 765562 1240 | 823618 734216 1241 | 812295 728049 1242 | 837545 696979 1243 | 797918 694723 1244 | 822224 742716 1245 | 821895 732158 1246 | 797233 713358 1247 | 800258 733812 1248 | 813319 737376 1249 | 860951 162251 1250 | 860387 157731 1251 | 857363 154639 1252 | 863391 126214 1253 | 839094 159543 1254 | 849248 164090 1255 | 875990 133950 1256 | 905936 150106 1257 | 895835 123485 1258 | 818079 108536 1259 | 898976 198452 1260 | 869087 153957 1261 | 849653 143827 1262 | 834293 161575 1263 | 844234 153197 1264 | 835128 212354 1265 | 828179 155649 1266 | 875410 128878 1267 | 850965 156224 1268 | 800816 176612 1269 | 832621 150748 1270 | 876863 176593 1271 | 826192 172906 1272 | 862679 188399 1273 | 839974 154358 1274 | 854338 135067 1275 | 855233 141357 1276 | 850538 160159 1277 | 868442 160118 1278 | 888714 205560 1279 | 864185 161232 1280 | 851280 156049 1281 | 875825 204959 1282 | 840375 155757 1283 | 892340 149050 1284 | 873527 126426 1285 | 836433 200181 1286 | 826499 142732 1287 | 854922 159650 1288 | 883537 210648 1289 | 807420 168787 1290 | 840299 118907 1291 | 834602 213597 1292 | 864053 139325 1293 | 856454 117143 1294 | 857972 160214 1295 | 850046 108829 1296 | 804936 148980 1297 | 864374 150149 1298 | 858587 150101 1299 | 870247 121460 1300 | 855656 162100 1301 | 850176 127908 1302 | 850057 157848 1303 | 828005 145089 1304 | 861994 160156 1305 | 849537 157510 1306 | 867125 168762 1307 | 838142 156770 1308 | 847644 164348 1309 | 856349 158150 1310 | 860606 152843 1311 | 869288 168662 1312 | 838328 185708 1313 | 860986 140320 1314 | 829229 143653 1315 | 866051 172932 1316 | 871556 194747 1317 | 865489 161762 1318 | 851840 110475 1319 | 846256 154064 1320 | 836081 178429 1321 | 859707 202806 1322 | 849938 156042 1323 | 894124 202052 1324 | 864325 170593 1325 | 848108 161786 1326 | 817619 181929 1327 | 858058 196183 1328 | 861242 161722 1329 | 885793 172115 1330 | 850577 157049 1331 | 877125 161227 1332 | 883864 111281 1333 | 891699 170415 1334 | 802394 87835 1335 | 862759 157988 1336 | 824185 167369 1337 | 813124 157130 1338 | 840335 164912 1339 | 858042 178196 1340 | 846257 145306 1341 | 858516 151301 1342 | 851282 153750 1343 | 905005 164126 1344 | 857309 139276 1345 | 845589 192916 1346 | 895245 150977 1347 | 863995 150435 1348 | 862642 159379 1349 | 861631 169376 1350 | 858934 162874 1351 | 912023 160368 1352 | 842824 177832 1353 | 824560 133679 1354 | 842281 175525 1355 | 860845 155375 1356 | 841096 188742 1357 | 821428 153468 1358 | 840357 169437 1359 | 827802 189078 1360 | 844734 164570 1361 | 847812 114745 1362 | 887269 166179 1363 | 830159 134329 1364 | 850925 157811 1365 | 847276 121785 1366 | 870599 149782 1367 | 780153 136449 1368 | 814379 132655 1369 | 834483 173379 1370 | 852423 159874 1371 | 854012 157449 1372 | 883375 158482 1373 | 850219 110573 1374 | 836450 151205 1375 | 881217 172320 1376 | 813239 139752 1377 | 871255 140340 1378 | 789356 159383 1379 | 873690 156226 1380 | 858834 149259 1381 | 778867 140736 1382 | 872057 122354 1383 | 882097 161493 1384 | 787336 144875 1385 | 849751 167033 1386 | 843833 170416 1387 | 850663 157840 1388 | 812240 177846 1389 | 838609 140215 1390 | 850959 157920 1391 | 859703 156782 1392 | 854753 190254 1393 | 895723 126593 1394 | 857833 170565 1395 | 850200 164752 1396 | 845303 150476 1397 | 877422 134877 1398 | 850153 155701 1399 | 819256 201704 1400 | 871689 155981 1401 | 818014 140185 1402 | 815298 167390 1403 | 864088 171351 1404 | 902529 162041 1405 | 908069 146564 1406 | 799326 106384 1407 | 854996 81095 1408 | 843813 182032 1409 | 888504 147016 1410 | 877964 242679 1411 | 851866 156896 1412 | 821361 175823 1413 | 810775 160434 1414 | 843150 156573 1415 | 844088 150085 1416 | 830620 117906 1417 | 835790 127898 1418 | 819541 117296 1419 | 858703 157931 1420 | 857846 153281 1421 | 876408 183646 1422 | 842576 153072 1423 | 848974 199427 1424 | 862925 243856 1425 | 856561 128799 1426 | 834171 189042 1427 | 872516 217570 1428 | 869167 105039 1429 | 819670 183364 1430 | 846575 159002 1431 | 895127 152283 1432 | 830445 186055 1433 | 792179 148539 1434 | 852410 187705 1435 | 853554 158012 1436 | 927170 250593 1437 | 825605 167750 1438 | 846731 162515 1439 | 878170 123364 1440 | 884966 133900 1441 | 866987 154415 1442 | 846284 113820 1443 | 873474 159567 1444 | 878258 158631 1445 | 882306 173836 1446 | 856924 169071 1447 | 794260 129843 1448 | 851568 114049 1449 | 868736 179354 1450 | 925732 210388 1451 | 868375 161990 1452 | 855593 161003 1453 | 849599 157084 1454 | 868317 177001 1455 | 800304 163436 1456 | 823740 169808 1457 | 856202 158811 1458 | 883929 121705 1459 | 851010 157593 1460 | 872506 157517 1461 | 850533 160136 1462 | 816393 185056 1463 | 850911 157772 1464 | 812942 85345 1465 | 835581 147664 1466 | 913298 162009 1467 | 858172 137586 1468 | 872781 154295 1469 | 871597 185239 1470 | 923120 170161 1471 | 837019 215527 1472 | 835702 176502 1473 | 837017 154170 1474 | 859177 143273 1475 | 866851 129505 1476 | 855852 134834 1477 | 924289 171369 1478 | 860154 113364 1479 | 836739 162321 1480 | 850775 162968 1481 | 884750 154317 1482 | 849681 125345 1483 | 854463 159977 1484 | 883567 161769 1485 | 848137 87922 1486 | 823676 152154 1487 | 848135 130674 1488 | 844400 150812 1489 | 864494 136669 1490 | 878157 210496 1491 | 851088 157432 1492 | 786528 104976 1493 | 860106 157080 1494 | 861412 205239 1495 | 820675 168154 1496 | 834036 144156 1497 | 842907 133992 1498 | 846720 162060 1499 | 871544 144135 1500 | 849003 115373 1501 | 856753 145184 1502 | 839757 190518 1503 | 865113 161302 1504 | 846936 161313 1505 | 845802 172285 1506 | 844357 163402 1507 | 881106 105566 1508 | 877835 151890 1509 | 839445 149778 1510 | 866560 165110 1511 | 845798 213118 1512 | 818668 120458 1513 | 831446 182864 1514 | 900955 185733 1515 | 836647 167267 1516 | 874672 104851 1517 | 849126 121710 1518 | 889142 154467 1519 | 855993 225023 1520 | 854095 158510 1521 | 850787 125678 1522 | 859298 139834 1523 | 829216 121494 1524 | 837676 148639 1525 | 851919 127963 1526 | 841353 125628 1527 | 848563 117708 1528 | 893106 176595 1529 | 852503 146551 1530 | 848290 143184 1531 | 825541 151495 1532 | 883231 232031 1533 | 864667 143614 1534 | 805089 96540 1535 | 854909 149938 1536 | 847097 176660 1537 | 910435 171155 1538 | 878749 188759 1539 | 871780 158486 1540 | 841292 155620 1541 | 846011 160034 1542 | 855969 193497 1543 | 860927 110775 1544 | 808069 134402 1545 | 848413 183717 1546 | 791722 162000 1547 | 852104 134678 1548 | 806567 140259 1549 | 847423 161535 1550 | 867993 162841 1551 | 828038 149181 1552 | 849404 170474 1553 | 841967 150890 1554 | 850945 161669 1555 | 888697 143969 1556 | 813868 188928 1557 | 864991 159874 1558 | 881109 152198 1559 | 811694 188374 1560 | 900360 153622 1561 | 885764 151791 1562 | 814553 164190 1563 | 895623 178393 1564 | 829790 205695 1565 | 865170 173755 1566 | 850453 155432 1567 | 864211 216526 1568 | 848770 111076 1569 | 791199 164843 1570 | 834165 140684 1571 | 843905 219401 1572 | 857328 143692 1573 | 838146 159541 1574 | 340693 569371 1575 | 315965 587160 1576 | 405652 622938 1577 | 359831 554975 1578 | 349296 557688 1579 | 289423 559134 1580 | 408689 562521 1581 | 321312 574721 1582 | 286568 547471 1583 | 370259 585265 1584 | 339967 562602 1585 | 410917 614521 1586 | 283570 563726 1587 | 347197 591316 1588 | 342064 570045 1589 | 317331 556086 1590 | 335792 541310 1591 | 330455 568758 1592 | 366794 582584 1593 | 378697 591764 1594 | 339981 565418 1595 | 338342 566864 1596 | 338474 563350 1597 | 432052 613723 1598 | 340064 550509 1599 | 334354 578047 1600 | 296775 572432 1601 | 353335 592567 1602 | 334016 562797 1603 | 328438 532686 1604 | 365927 571713 1605 | 343247 564376 1606 | 325057 581121 1607 | 330881 579058 1608 | 378648 579579 1609 | 339115 566863 1610 | 333299 597586 1611 | 367048 553451 1612 | 345840 561591 1613 | 366934 581294 1614 | 358793 547046 1615 | 393570 579641 1616 | 304399 545221 1617 | 353979 578923 1618 | 337002 589527 1619 | 327738 559624 1620 | 334549 579199 1621 | 297110 556485 1622 | 327403 548875 1623 | 413894 564459 1624 | 326043 553772 1625 | 337811 558454 1626 | 333901 532836 1627 | 340545 568654 1628 | 358483 554925 1629 | 318065 581616 1630 | 367751 578289 1631 | 331667 570387 1632 | 321519 561045 1633 | 299578 572052 1634 | 339632 536577 1635 | 339993 544064 1636 | 268672 508874 1637 | 332960 569308 1638 | 345042 566973 1639 | 352220 602793 1640 | 333934 537464 1641 | 312386 555195 1642 | 334182 558498 1643 | 335328 562880 1644 | 303637 570253 1645 | 353145 580916 1646 | 325118 556212 1647 | 294310 563522 1648 | 371563 547746 1649 | 373894 555347 1650 | 407040 577739 1651 | 337298 565486 1652 | 357813 572855 1653 | 304157 566007 1654 | 335918 566525 1655 | 330127 570072 1656 | 339212 538693 1657 | 357275 551101 1658 | 334785 565575 1659 | 326152 563230 1660 | 345903 561314 1661 | 238748 551038 1662 | 331175 551842 1663 | 352520 566829 1664 | 341675 560197 1665 | 354746 552404 1666 | 412500 594675 1667 | 277027 536847 1668 | 322209 547247 1669 | 375619 553791 1670 | 288068 561932 1671 | 344770 570309 1672 | 284031 566654 1673 | 324442 567881 1674 | 356246 549756 1675 | 404420 577532 1676 | 336829 562228 1677 | 293591 522132 1678 | 342963 582232 1679 | 338860 561151 1680 | 324055 590810 1681 | 328331 541094 1682 | 357737 597104 1683 | 392534 593343 1684 | 298665 568245 1685 | 343376 575709 1686 | 338863 563107 1687 | 361370 552483 1688 | 338935 567577 1689 | 350117 535859 1690 | 371000 555062 1691 | 368617 554066 1692 | 331795 529654 1693 | 344237 573700 1694 | 280110 522025 1695 | 328657 564864 1696 | 452457 597461 1697 | 333669 542228 1698 | 320628 564596 1699 | 316642 553340 1700 | 340712 563178 1701 | 349955 535578 1702 | 261538 525920 1703 | 411008 607342 1704 | 317136 563479 1705 | 297022 574097 1706 | 319927 524637 1707 | 359772 568428 1708 | 344791 578536 1709 | 324093 580491 1710 | 373907 558472 1711 | 321905 573147 1712 | 341721 576427 1713 | 386373 606623 1714 | 338588 543875 1715 | 341578 558672 1716 | 371616 570648 1717 | 331987 568997 1718 | 341329 565571 1719 | 334350 556417 1720 | 330482 571217 1721 | 338950 572545 1722 | 289087 565427 1723 | 343997 585193 1724 | 225786 529417 1725 | 365567 547606 1726 | 320827 519618 1727 | 286990 529505 1728 | 321517 569562 1729 | 388806 569524 1730 | 411796 581307 1731 | 331440 551885 1732 | 325958 573367 1733 | 348171 569251 1734 | 344239 530765 1735 | 419151 577335 1736 | 321309 569996 1737 | 386377 574187 1738 | 342099 561508 1739 | 366688 562413 1740 | 321657 538660 1741 | 403004 613466 1742 | 363304 553764 1743 | 384922 582877 1744 | 304556 568584 1745 | 336787 538925 1746 | 327998 571265 1747 | 303269 531608 1748 | 313649 523765 1749 | 337889 558031 1750 | 360165 553303 1751 | 340032 561740 1752 | 338634 564414 1753 | 351459 565704 1754 | 412767 593558 1755 | 283474 532727 1756 | 336928 557412 1757 | 366478 594677 1758 | 343450 570659 1759 | 331616 565089 1760 | 354529 573677 1761 | 276703 559740 1762 | 282066 560178 1763 | 331366 567311 1764 | 321910 573825 1765 | 290107 571927 1766 | 281979 518199 1767 | 374695 563163 1768 | 340191 567638 1769 | 338583 563529 1770 | 358312 559466 1771 | 338474 564151 1772 | 338205 566246 1773 | 342901 582886 1774 | 265815 540385 1775 | 304086 576100 1776 | 347966 563506 1777 | 346144 560472 1778 | 352381 592377 1779 | 318681 528806 1780 | 369366 561201 1781 | 310041 533285 1782 | 344314 595915 1783 | 363956 609339 1784 | 328586 551385 1785 | 330767 552963 1786 | 312558 520650 1787 | 315850 573154 1788 | 379388 567285 1789 | 329905 579935 1790 | 352209 548608 1791 | 357679 548036 1792 | 339288 588052 1793 | 330335 568221 1794 | 341559 562163 1795 | 341925 569393 1796 | 327695 543105 1797 | 335999 549795 1798 | 302359 534317 1799 | 332586 566187 1800 | 330750 561657 1801 | 400380 588221 1802 | 337910 562252 1803 | 336549 565597 1804 | 343717 559909 1805 | 332116 594868 1806 | 358384 556361 1807 | 415881 584352 1808 | 345164 579614 1809 | 316395 537403 1810 | 340970 564831 1811 | 340383 600071 1812 | 326627 534442 1813 | 356865 545785 1814 | 306298 551902 1815 | 347575 565576 1816 | 302583 571881 1817 | 352424 557574 1818 | 279008 521035 1819 | 335029 553213 1820 | 338753 563384 1821 | 324032 577807 1822 | 327973 534972 1823 | 321924 527106 1824 | 345495 579864 1825 | 385091 599401 1826 | 361138 551307 1827 | 332884 533990 1828 | 269126 508814 1829 | 350056 566657 1830 | 374117 546122 1831 | 350283 559840 1832 | 335525 567445 1833 | 350798 535657 1834 | 289002 520678 1835 | 324516 522674 1836 | 364844 571623 1837 | 351815 574947 1838 | 275524 559548 1839 | 348773 583528 1840 | 308966 523409 1841 | 316313 570785 1842 | 341966 561987 1843 | 341446 538787 1844 | 318823 565345 1845 | 347522 587567 1846 | 293746 544468 1847 | 334983 572690 1848 | 325125 564342 1849 | 330145 546705 1850 | 336336 563145 1851 | 302353 545544 1852 | 321216 569834 1853 | 285152 520229 1854 | 335027 565050 1855 | 332270 556288 1856 | 341016 545280 1857 | 339640 561426 1858 | 338633 563504 1859 | 324952 565867 1860 | 353583 554147 1861 | 385183 556284 1862 | 292636 520371 1863 | 289176 571435 1864 | 310944 559497 1865 | 336974 563207 1866 | 337173 557853 1867 | 396903 591235 1868 | 324440 567074 1869 | 333378 557892 1870 | 300366 565761 1871 | 344437 529492 1872 | 325871 558965 1873 | 367641 556309 1874 | 344552 554676 1875 | 297212 546223 1876 | 355924 577596 1877 | 331340 524203 1878 | 292932 558293 1879 | 306346 523584 1880 | 341966 586266 1881 | 282430 560217 1882 | 326251 549298 1883 | 335201 585318 1884 | 351564 573155 1885 | 322365 530808 1886 | 405542 600089 1887 | 296763 528676 1888 | 221233 538472 1889 | 338084 560295 1890 | 345674 579033 1891 | 325883 560492 1892 | 345123 577788 1893 | 329859 564384 1894 | 353939 570931 1895 | 409616 575024 1896 | 365058 545456 1897 | 404782 557913 1898 | 368724 598412 1899 | 344096 575522 1900 | 182618 346663 1901 | 171461 348130 1902 | 186536 330019 1903 | 177241 292639 1904 | 248683 383412 1905 | 174057 358906 1906 | 215243 289985 1907 | 170688 343596 1908 | 144502 345417 1909 | 165689 356983 1910 | 168443 367928 1911 | 165158 343946 1912 | 159711 352701 1913 | 175781 341039 1914 | 233480 289069 1915 | 189029 366740 1916 | 168573 350387 1917 | 170271 306395 1918 | 192775 350028 1919 | 152054 345632 1920 | 139299 314046 1921 | 202053 322650 1922 | 134695 350397 1923 | 159654 381778 1924 | 188093 324040 1925 | 183236 338163 1926 | 156984 430950 1927 | 182751 435819 1928 | 198908 372797 1929 | 198517 325721 1930 | 161345 350804 1931 | 210497 359835 1932 | 141993 331189 1933 | 170788 373545 1934 | 166449 363036 1935 | 155479 345893 1936 | 186380 363938 1937 | 129332 360811 1938 | 224225 376975 1939 | 165945 345849 1940 | 223550 323197 1941 | 122755 434879 1942 | 166584 349245 1943 | 179472 342273 1944 | 148749 359845 1945 | 177505 332053 1946 | 160222 380591 1947 | 178869 370161 1948 | 170002 370000 1949 | 164354 347671 1950 | 169966 368623 1951 | 145867 363616 1952 | 181561 358111 1953 | 164915 350360 1954 | 166973 341636 1955 | 153181 277968 1956 | 155505 355581 1957 | 160835 347784 1958 | 211265 396792 1959 | 203254 362605 1960 | 137967 354539 1961 | 174064 357989 1962 | 179609 408365 1963 | 176506 351827 1964 | 172879 347028 1965 | 180506 330980 1966 | 185966 359964 1967 | 146070 316860 1968 | 152957 321354 1969 | 163190 331719 1970 | 186914 361706 1971 | 159191 309314 1972 | 170425 316185 1973 | 162040 316797 1974 | 195000 354829 1975 | 126702 351222 1976 | 213064 290947 1977 | 140612 350010 1978 | 172885 352621 1979 | 170155 343568 1980 | 186806 334070 1981 | 146072 288800 1982 | 169293 348686 1983 | 169502 411323 1984 | 152861 407965 1985 | 156041 295117 1986 | 117585 391892 1987 | 163981 344090 1988 | 158664 310765 1989 | 141113 351050 1990 | 163796 345091 1991 | 160369 353500 1992 | 235671 300234 1993 | 140876 334435 1994 | 108232 373112 1995 | 192460 388323 1996 | 133744 308918 1997 | 216209 437830 1998 | 156945 339397 1999 | 199859 316334 2000 | 159496 331641 2001 | 167845 341409 2002 | 182435 365508 2003 | 133795 360518 2004 | 169628 365003 2005 | 167262 399527 2006 | 177728 352687 2007 | 130683 363204 2008 | 198197 344933 2009 | 197735 355477 2010 | 172020 342883 2011 | 185561 342784 2012 | 202011 337353 2013 | 157394 346500 2014 | 182050 424341 2015 | 129664 341196 2016 | 173188 355248 2017 | 182499 310438 2018 | 170384 339979 2019 | 182093 321311 2020 | 185696 338006 2021 | 102221 374657 2022 | 165881 364469 2023 | 164875 349007 2024 | 159120 340829 2025 | 168274 374689 2026 | 178495 373915 2027 | 179811 342089 2028 | 162606 363185 2029 | 173908 362098 2030 | 133580 348602 2031 | 190634 357254 2032 | 186503 369651 2033 | 127134 379827 2034 | 169145 355279 2035 | 140121 346875 2036 | 141860 324304 2037 | 200251 306215 2038 | 174373 363552 2039 | 170022 347877 2040 | 165657 338722 2041 | 186361 351075 2042 | 213022 338238 2043 | 155228 357729 2044 | 171614 435530 2045 | 175586 365049 2046 | 187858 381077 2047 | 171074 293610 2048 | 153738 360530 2049 | 199043 270173 2050 | 165886 348709 2051 | 159428 300364 2052 | 197463 378513 2053 | 161273 347538 2054 | 186082 330058 2055 | 143732 279724 2056 | 142899 329415 2057 | 156977 424622 2058 | 174878 362329 2059 | 148915 338914 2060 | 187324 377187 2061 | 175766 380534 2062 | 185071 362905 2063 | 158550 354818 2064 | 174672 345849 2065 | 169880 343122 2066 | 109090 326101 2067 | 187854 354777 2068 | 153903 353738 2069 | 190241 329582 2070 | 102983 382712 2071 | 143117 345163 2072 | 188985 367645 2073 | 174834 411644 2074 | 144228 344974 2075 | 146821 297434 2076 | 171848 343242 2077 | 94382 320888 2078 | 154412 310120 2079 | 176490 344679 2080 | 170616 352610 2081 | 81648 360080 2082 | 153607 379395 2083 | 183970 355973 2084 | 105444 361358 2085 | 158571 361986 2086 | 177579 319865 2087 | 198892 322470 2088 | 216975 296647 2089 | 166654 350678 2090 | 189102 333074 2091 | 198712 303299 2092 | 137098 384889 2093 | 144306 328086 2094 | 142455 343512 2095 | 178319 318244 2096 | 168886 353913 2097 | 174656 393278 2098 | 130805 354417 2099 | 176433 350561 2100 | 142252 329183 2101 | 165476 377389 2102 | 210102 333312 2103 | 129453 321221 2104 | 144705 375936 2105 | 206687 342276 2106 | 153583 352282 2107 | 189499 356601 2108 | 159392 351000 2109 | 181463 326571 2110 | 162975 335389 2111 | 157691 334886 2112 | 154167 353183 2113 | 165607 362883 2114 | 182239 333302 2115 | 176982 354631 2116 | 183516 374212 2117 | 191099 341570 2118 | 184570 360446 2119 | 207804 354938 2120 | 198493 326704 2121 | 149269 341445 2122 | 184798 392233 2123 | 174438 319075 2124 | 107124 325984 2125 | 76052 360840 2126 | 159302 337993 2127 | 140101 341028 2128 | 168149 345638 2129 | 150009 371014 2130 | 157193 350343 2131 | 111476 358647 2132 | 151164 332239 2133 | 171318 373473 2134 | 175169 349454 2135 | 162600 392531 2136 | 168067 340249 2137 | 170102 323164 2138 | 124132 340448 2139 | 149863 284721 2140 | 168079 347343 2141 | 128953 304971 2142 | 169228 364545 2143 | 198415 321418 2144 | 183610 321788 2145 | 220869 407358 2146 | 159472 372246 2147 | 170837 353968 2148 | 165653 317602 2149 | 135537 356169 2150 | 166973 334724 2151 | 158750 312102 2152 | 161448 373412 2153 | 158713 379013 2154 | 180493 319750 2155 | 125715 302114 2156 | 194033 340466 2157 | 158871 312380 2158 | 161387 343617 2159 | 169121 347594 2160 | 167653 352074 2161 | 125902 318850 2162 | 217686 296514 2163 | 171986 429306 2164 | 211360 279794 2165 | 157181 346842 2166 | 188909 341194 2167 | 140128 325904 2168 | 117874 389929 2169 | 162921 317643 2170 | 173978 346514 2171 | 98533 355691 2172 | 194956 372256 2173 | 164847 287064 2174 | 174410 372064 2175 | 149092 352682 2176 | 166323 352927 2177 | 178515 370287 2178 | 169337 348605 2179 | 122986 334382 2180 | 145282 391482 2181 | 185919 363092 2182 | 180519 368284 2183 | 181227 347052 2184 | 168284 309036 2185 | 198251 335402 2186 | 160922 347681 2187 | 141861 328909 2188 | 147911 328024 2189 | 178264 330827 2190 | 178235 346006 2191 | 195151 317753 2192 | 122360 357480 2193 | 167330 332452 2194 | 115363 305575 2195 | 185661 404482 2196 | 177858 352255 2197 | 113068 317574 2198 | 125675 360158 2199 | 172842 351663 2200 | 124724 459999 2201 | 169069 348929 2202 | 185253 344152 2203 | 155625 262321 2204 | 158201 315944 2205 | 171277 361020 2206 | 209553 326461 2207 | 160165 362858 2208 | 190725 336160 2209 | 169994 409806 2210 | 179463 361279 2211 | 172662 388185 2212 | 165284 425978 2213 | 160206 303063 2214 | 155690 368375 2215 | 124516 325289 2216 | 179326 321160 2217 | 165573 305517 2218 | 155508 372355 2219 | 166799 318482 2220 | 161780 324523 2221 | 168805 351913 2222 | 206519 355629 2223 | 163091 350167 2224 | 176144 353300 2225 | 179483 359645 2226 | 213951 352868 2227 | 164046 346109 2228 | 169569 346955 2229 | 225356 318394 2230 | 214966 358837 2231 | 159253 343477 2232 | 219779 330969 2233 | 169876 340860 2234 | 669118 354195 2235 | 613682 399434 2236 | 617399 392653 2237 | 629247 364078 2238 | 641070 424917 2239 | 609532 388425 2240 | 629369 398359 2241 | 605911 379990 2242 | 622550 391601 2243 | 607905 403460 2244 | 679465 399014 2245 | 608711 373665 2246 | 623498 399288 2247 | 601212 370698 2248 | 574989 407228 2249 | 563517 391159 2250 | 687717 379483 2251 | 616040 330855 2252 | 653024 367312 2253 | 607440 403119 2254 | 620240 397022 2255 | 599215 391457 2256 | 587478 424878 2257 | 613921 394043 2258 | 624328 392133 2259 | 635887 384511 2260 | 559877 401053 2261 | 617755 401065 2262 | 693265 388552 2263 | 559933 403956 2264 | 655859 416496 2265 | 625919 402984 2266 | 595215 391491 2267 | 617493 379303 2268 | 598657 442558 2269 | 601644 436831 2270 | 617118 374098 2271 | 591051 389443 2272 | 617296 386864 2273 | 616468 394118 2274 | 630384 376295 2275 | 558770 390646 2276 | 637332 414017 2277 | 556780 409205 2278 | 577473 384210 2279 | 650054 432740 2280 | 595063 328609 2281 | 714443 433876 2282 | 603566 410391 2283 | 562356 383175 2284 | 546166 423311 2285 | 626539 394908 2286 | 663820 416308 2287 | 710910 464586 2288 | 624310 398408 2289 | 632546 389750 2290 | 667249 417107 2291 | 608309 377530 2292 | 611357 393577 2293 | 658219 436184 2294 | 615032 402225 2295 | 628131 406850 2296 | 632390 363198 2297 | 575116 345564 2298 | 625784 441883 2299 | 618893 419740 2300 | 579564 428498 2301 | 686324 364237 2302 | 586242 396484 2303 | 623248 399928 2304 | 609219 362804 2305 | 537211 376777 2306 | 605310 394011 2307 | 634973 450542 2308 | 595411 413706 2309 | 613037 419086 2310 | 617444 397675 2311 | 633304 366062 2312 | 592620 446156 2313 | 631633 337973 2314 | 619637 395224 2315 | 620330 398630 2316 | 621964 409409 2317 | 618446 372298 2318 | 629789 426313 2319 | 608687 374928 2320 | 680646 375662 2321 | 591831 438997 2322 | 550086 442382 2323 | 620330 396776 2324 | 551236 401856 2325 | 617178 414525 2326 | 584938 344365 2327 | 622636 456843 2328 | 649987 408293 2329 | 613719 382828 2330 | 576987 392508 2331 | 599766 409755 2332 | 584077 398498 2333 | 695514 321521 2334 | 561388 355834 2335 | 691600 397893 2336 | 610676 449688 2337 | 600114 413216 2338 | 626811 372435 2339 | 636291 360636 2340 | 570384 393553 2341 | 626700 401688 2342 | 624106 398619 2343 | 523329 404632 2344 | 611954 360938 2345 | 613536 395801 2346 | 576488 397913 2347 | 652745 406585 2348 | 603193 371867 2349 | 610026 444858 2350 | 629725 405117 2351 | 648429 422590 2352 | 562772 382904 2353 | 638823 411764 2354 | 617764 397102 2355 | 579922 379009 2356 | 610698 396326 2357 | 642607 374702 2358 | 621629 397208 2359 | 659321 404555 2360 | 576235 462612 2361 | 598628 425191 2362 | 623502 420376 2363 | 665965 449273 2364 | 608923 385575 2365 | 611579 407670 2366 | 617573 386848 2367 | 589862 418742 2368 | 653325 396810 2369 | 605073 372055 2370 | 623137 408209 2371 | 499262 398424 2372 | 619339 401624 2373 | 619295 397643 2374 | 578878 420108 2375 | 533577 355107 2376 | 615934 426539 2377 | 690195 475150 2378 | 673514 390760 2379 | 657120 386782 2380 | 549945 372313 2381 | 675858 410545 2382 | 626586 415166 2383 | 618449 404599 2384 | 638783 399478 2385 | 578113 395458 2386 | 622557 361134 2387 | 635324 420555 2388 | 666135 430421 2389 | 689725 465685 2390 | 593601 445149 2391 | 615094 383077 2392 | 624599 417673 2393 | 573969 434110 2394 | 642881 403147 2395 | 634383 422065 2396 | 582389 428200 2397 | 617330 369828 2398 | 621989 394856 2399 | 651828 468138 2400 | 612936 398723 2401 | 613351 407952 2402 | 562777 437516 2403 | 533212 366954 2404 | 618113 400002 2405 | 609344 448128 2406 | 615342 413931 2407 | 623989 368662 2408 | 620187 400168 2409 | 687638 439257 2410 | 573925 449341 2411 | 547270 403384 2412 | 619318 361696 2413 | 588432 446279 2414 | 592924 393730 2415 | 615325 383841 2416 | 611875 422910 2417 | 681941 370225 2418 | 620818 396967 2419 | 662154 385013 2420 | 554938 347875 2421 | 628655 321099 2422 | 619628 399433 2423 | 660333 393215 2424 | 618391 348381 2425 | 565829 395454 2426 | 617689 397001 2427 | 604554 393193 2428 | 572417 403906 2429 | 659193 384523 2430 | 632060 367800 2431 | 633894 404424 2432 | 620610 395343 2433 | 615175 397627 2434 | 624293 333944 2435 | 593689 316888 2436 | 617319 374666 2437 | 572244 349463 2438 | 619239 400025 2439 | 621622 390298 2440 | 622101 371771 2441 | 630205 338054 2442 | 654147 407182 2443 | 637594 420311 2444 | 629004 392271 2445 | 585207 336451 2446 | 618349 397614 2447 | 650157 402991 2448 | 638966 486628 2449 | 655201 411873 2450 | 602335 433298 2451 | 630706 388370 2452 | 617428 397343 2453 | 621537 390372 2454 | 631365 450732 2455 | 618406 404239 2456 | 601390 453925 2457 | 603945 361794 2458 | 619427 396945 2459 | 660103 414557 2460 | 700340 335010 2461 | 608182 416637 2462 | 661166 404325 2463 | 620939 385731 2464 | 626371 349696 2465 | 614683 367259 2466 | 619332 401992 2467 | 587453 401098 2468 | 652349 321291 2469 | 617954 395504 2470 | 636807 424537 2471 | 533889 333741 2472 | 623386 387031 2473 | 632952 385722 2474 | 695010 449565 2475 | 626843 367696 2476 | 488205 420586 2477 | 611547 411952 2478 | 621241 368090 2479 | 581240 362971 2480 | 608747 363132 2481 | 662177 420431 2482 | 615665 405490 2483 | 617447 366176 2484 | 560393 389490 2485 | 685785 409913 2486 | 623433 400160 2487 | 609091 437020 2488 | 624343 403629 2489 | 668879 388617 2490 | 567105 437623 2491 | 657450 365008 2492 | 591955 378142 2493 | 588952 437524 2494 | 607665 447516 2495 | 608601 418450 2496 | 662830 420955 2497 | 605891 428146 2498 | 615239 317684 2499 | 588933 366439 2500 | 618053 357534 2501 | 577773 434308 2502 | 606558 458285 2503 | 620955 389692 2504 | 738190 371970 2505 | 634661 446187 2506 | 571692 449353 2507 | 605650 447537 2508 | 639502 371440 2509 | 684568 380640 2510 | 658735 399039 2511 | 618157 384990 2512 | 618869 398187 2513 | 603388 403039 2514 | 585255 415823 2515 | 639507 438534 2516 | 594112 399331 2517 | 619475 400592 2518 | 571570 375257 2519 | 659297 373975 2520 | 603285 449307 2521 | 610199 394579 2522 | 590500 418472 2523 | 630904 404643 2524 | 591725 406549 2525 | 621560 397789 2526 | 563182 367521 2527 | 593879 444161 2528 | 616054 371666 2529 | 627679 395601 2530 | 608195 447380 2531 | 616737 397973 2532 | 650120 324477 2533 | 616926 398697 2534 | 650859 460072 2535 | 642157 345545 2536 | 601369 411415 2537 | 604703 392288 2538 | 721905 378957 2539 | 619415 397644 2540 | 571043 347389 2541 | 659191 459637 2542 | 629978 400626 2543 | 688487 383589 2544 | 598053 438963 2545 | 635242 356290 2546 | 605899 412428 2547 | 656642 407213 2548 | 619924 406713 2549 | 630067 372798 2550 | 600007 377908 2551 | 589164 386733 2552 | 630491 379017 2553 | 618676 377015 2554 | 639613 388524 2555 | 669409 415893 2556 | 681608 436537 2557 | 649968 371445 2558 | 629000 417990 2559 | 658884 390135 2560 | 605407 427914 2561 | 629891 414975 2562 | 621778 364695 2563 | 610722 418243 2564 | 601599 388540 2565 | 615649 429323 2566 | 627206 402647 2567 | 643965 366316 2568 | 614877 402442 2569 | 606486 420054 2570 | 668482 358452 2571 | 628715 434772 2572 | 196462 887983 2573 | 335970 846828 2574 | 272394 837600 2575 | 211165 825505 2576 | 226433 837646 2577 | 219686 859997 2578 | 242087 844255 2579 | 213558 873714 2580 | 245144 845719 2581 | 247997 878582 2582 | 283576 809069 2583 | 224676 859348 2584 | 298214 820903 2585 | 245468 859425 2586 | 222704 824909 2587 | 250921 819639 2588 | 249209 801933 2589 | 230591 874855 2590 | 234091 876039 2591 | 286769 862152 2592 | 224789 866804 2593 | 245023 849247 2594 | 263626 851699 2595 | 250198 825417 2596 | 231263 863308 2597 | 307605 840195 2598 | 276635 875623 2599 | 230399 842538 2600 | 274070 798617 2601 | 247939 831010 2602 | 209922 850026 2603 | 300726 862728 2604 | 222727 770963 2605 | 239505 885057 2606 | 291561 845450 2607 | 221122 832810 2608 | 194258 914691 2609 | 228928 855040 2610 | 264627 808661 2611 | 225916 843329 2612 | 240221 843932 2613 | 276600 823311 2614 | 204854 810013 2615 | 278326 829095 2616 | 246047 846189 2617 | 251032 876118 2618 | 285258 848668 2619 | 260943 889692 2620 | 245928 867228 2621 | 221002 870506 2622 | 292872 896822 2623 | 261896 897475 2624 | 269723 849664 2625 | 243941 843256 2626 | 249370 872804 2627 | 237120 856814 2628 | 257472 849587 2629 | 253703 834676 2630 | 238080 830689 2631 | 225991 869734 2632 | 231781 799444 2633 | 296892 901182 2634 | 234604 822462 2635 | 241473 860854 2636 | 219864 842635 2637 | 235901 856563 2638 | 207217 878249 2639 | 256949 820470 2640 | 204597 863162 2641 | 325275 866433 2642 | 239344 814789 2643 | 187894 871219 2644 | 259973 862559 2645 | 189752 865463 2646 | 245707 844466 2647 | 188480 870646 2648 | 305915 854818 2649 | 242443 851797 2650 | 227138 824372 2651 | 229970 878786 2652 | 281971 825246 2653 | 241166 845204 2654 | 225846 874086 2655 | 284077 905181 2656 | 258975 837353 2657 | 241972 840749 2658 | 245602 857160 2659 | 227363 836593 2660 | 257926 936947 2661 | 237689 839510 2662 | 267799 847911 2663 | 207552 772091 2664 | 201567 881003 2665 | 265125 820661 2666 | 273165 852766 2667 | 290210 818593 2668 | 256487 868899 2669 | 271395 862063 2670 | 251958 886571 2671 | 249253 856047 2672 | 268289 878265 2673 | 295375 861990 2674 | 256316 818886 2675 | 246470 842932 2676 | 314666 849163 2677 | 298979 774144 2678 | 192885 887667 2679 | 227819 900986 2680 | 250003 859517 2681 | 249857 844975 2682 | 218369 851387 2683 | 252586 806474 2684 | 283017 850861 2685 | 228095 843338 2686 | 266980 825990 2687 | 241381 844402 2688 | 294053 878220 2689 | 253339 750941 2690 | 241413 845029 2691 | 294326 807584 2692 | 257856 846423 2693 | 248210 886338 2694 | 216846 737568 2695 | 244743 830888 2696 | 277055 860813 2697 | 279923 805957 2698 | 235041 823732 2699 | 238524 842928 2700 | 246453 883061 2701 | 260590 827955 2702 | 274554 845338 2703 | 245254 907991 2704 | 299821 866288 2705 | 261120 804153 2706 | 246729 879602 2707 | 240308 844341 2708 | 220620 819091 2709 | 268926 813783 2710 | 234219 845270 2711 | 188424 849785 2712 | 240171 843940 2713 | 163766 859386 2714 | 191257 802651 2715 | 224852 934148 2716 | 261093 844962 2717 | 228711 848090 2718 | 183478 851724 2719 | 201080 823689 2720 | 118590 857150 2721 | 264798 767716 2722 | 313609 860065 2723 | 232246 844226 2724 | 237757 834092 2725 | 222682 806314 2726 | 243331 844022 2727 | 197362 870337 2728 | 229857 843917 2729 | 244257 776516 2730 | 224083 852922 2731 | 309399 838744 2732 | 271205 817620 2733 | 242247 864253 2734 | 235337 831592 2735 | 232357 810798 2736 | 252199 828023 2737 | 267049 950249 2738 | 245678 821691 2739 | 241138 844374 2740 | 246182 840370 2741 | 264175 824349 2742 | 266977 887963 2743 | 274685 883097 2744 | 244260 847060 2745 | 256073 917590 2746 | 258416 835432 2747 | 241687 844256 2748 | 282603 846165 2749 | 228032 893055 2750 | 226949 889283 2751 | 264274 813041 2752 | 139601 914203 2753 | 229131 842806 2754 | 236274 861302 2755 | 261819 863523 2756 | 200005 825237 2757 | 310591 841778 2758 | 244049 817710 2759 | 235022 911236 2760 | 256512 837094 2761 | 236495 861569 2762 | 256889 880721 2763 | 258528 856273 2764 | 233284 860085 2765 | 257480 849037 2766 | 269354 811847 2767 | 222445 891438 2768 | 222356 840843 2769 | 236207 886769 2770 | 174371 864697 2771 | 159683 838958 2772 | 237750 837381 2773 | 241545 838673 2774 | 256082 831969 2775 | 246468 838071 2776 | 205919 844377 2777 | 266111 813259 2778 | 244246 847589 2779 | 244899 812192 2780 | 219316 898830 2781 | 251866 864044 2782 | 238308 790723 2783 | 209264 836661 2784 | 242519 845811 2785 | 351883 890475 2786 | 278929 842054 2787 | 244027 850132 2788 | 248570 843156 2789 | 224681 858432 2790 | 210276 824826 2791 | 220884 916718 2792 | 240846 841609 2793 | 257093 801567 2794 | 236749 813868 2795 | 332237 911313 2796 | 288954 846991 2797 | 238084 844799 2798 | 236431 844100 2799 | 299772 828655 2800 | 241633 846949 2801 | 230107 858332 2802 | 256216 903741 2803 | 258135 880184 2804 | 232331 872896 2805 | 183583 787453 2806 | 264293 890923 2807 | 213208 833959 2808 | 224288 931476 2809 | 261622 869706 2810 | 297183 841456 2811 | 241849 815141 2812 | 308616 811021 2813 | 220931 876605 2814 | 289719 866638 2815 | 233931 838374 2816 | 224694 848663 2817 | 240645 855514 2818 | 229567 855332 2819 | 247613 815836 2820 | 239387 847822 2821 | 257788 880587 2822 | 245532 846331 2823 | 224241 828996 2824 | 227582 856861 2825 | 244618 845420 2826 | 213775 841758 2827 | 243511 830743 2828 | 244799 841688 2829 | 216061 848623 2830 | 294492 832336 2831 | 248931 844960 2832 | 267478 894783 2833 | 228715 837572 2834 | 269483 848608 2835 | 248276 844455 2836 | 236987 881080 2837 | 223732 826580 2838 | 230149 886583 2839 | 265299 859533 2840 | 181803 799487 2841 | 247210 859012 2842 | 261633 773355 2843 | 262370 891499 2844 | 250394 847577 2845 | 222019 839774 2846 | 238328 770068 2847 | 208941 860169 2848 | 238714 858826 2849 | 241005 825301 2850 | 270742 847836 2851 | 238492 833394 2852 | 312726 853829 2853 | 286663 846902 2854 | 261796 819395 2855 | 253890 807676 2856 | 242415 844335 2857 | 134134 842630 2858 | 163956 833732 2859 | 250359 849451 2860 | 295357 842293 2861 | 218942 848326 2862 | 205466 778884 2863 | 253899 862843 2864 | 244966 841126 2865 | 208494 850615 2866 | 221126 837878 2867 | 271093 861412 2868 | 216543 842952 2869 | 255185 825960 2870 | 251070 877802 2871 | 264565 859237 2872 | 228611 836717 2873 | 228517 837056 2874 | 198583 860431 2875 | 215976 836025 2876 | 254411 848090 2877 | 168036 807011 2878 | 292194 906490 2879 | 243951 865415 2880 | 260922 785987 2881 | 245740 814541 2882 | 317675 838127 2883 | 274505 864723 2884 | 230049 865536 2885 | 235084 818866 2886 | 172690 847721 2887 | 221706 875060 2888 | 236740 853169 2889 | 298800 824277 2890 | 265246 889333 2891 | 219498 851932 2892 | 247484 846372 2893 | 288675 919879 2894 | 229280 813483 2895 | 282622 879222 2896 | 307300 836132 2897 | 238260 882489 2898 | 219049 825171 2899 | 219321 848396 2900 | 240028 849354 2901 | 212009 864463 2902 | 246857 852483 2903 | 245118 811283 2904 | 247855 794626 2905 | 253655 821946 2906 | 241475 850889 2907 | 210162 860529 2908 | 204922 854068 2909 | 225567 853078 2910 | 245258 799882 2911 | 257134 845851 2912 | 187314 815820 2913 | 294275 174786 2914 | 329428 66056 2915 | 325938 164475 2916 | 253129 154296 2917 | 319838 170383 2918 | 240213 118409 2919 | 283784 178305 2920 | 376613 159699 2921 | 338717 181582 2922 | 304283 183656 2923 | 314519 146787 2924 | 270899 175377 2925 | 291228 101272 2926 | 291170 110147 2927 | 321522 163852 2928 | 202627 179376 2929 | 307913 91419 2930 | 311093 169734 2931 | 321775 164846 2932 | 294832 124284 2933 | 295537 91032 2934 | 383044 180418 2935 | 338570 192256 2936 | 337894 175289 2937 | 359796 165920 2938 | 316263 163806 2939 | 320972 170417 2940 | 277860 111893 2941 | 367806 123963 2942 | 359352 162962 2943 | 350964 149159 2944 | 332201 181702 2945 | 287966 150135 2946 | 346942 152780 2947 | 232784 169847 2948 | 292492 99170 2949 | 334529 166765 2950 | 363208 238649 2951 | 196795 190277 2952 | 353333 113156 2953 | 373191 88470 2954 | 333789 151168 2955 | 339732 163158 2956 | 321822 187102 2957 | 276792 141848 2958 | 308044 164482 2959 | 311328 159477 2960 | 383052 89061 2961 | 316820 150304 2962 | 314479 178821 2963 | 310824 144943 2964 | 333143 200298 2965 | 300672 175844 2966 | 339482 151261 2967 | 319208 164182 2968 | 321645 164662 2969 | 308763 166511 2970 | 308066 145825 2971 | 360143 155270 2972 | 348893 195430 2973 | 319283 158983 2974 | 332284 194186 2975 | 292402 184441 2976 | 361227 221878 2977 | 313573 109221 2978 | 310693 154278 2979 | 344482 215846 2980 | 358652 186358 2981 | 330533 214555 2982 | 320400 160020 2983 | 267662 127175 2984 | 396583 82842 2985 | 292193 125417 2986 | 324121 96346 2987 | 321344 166633 2988 | 234837 151054 2989 | 368060 76739 2990 | 347050 150472 2991 | 245783 109229 2992 | 400550 144359 2993 | 343217 153037 2994 | 315488 160339 2995 | 347406 155708 2996 | 336845 172750 2997 | 357014 148222 2998 | 331862 169092 2999 | 322140 165212 3000 | 363075 162238 3001 | 318738 182134 3002 | 346717 178180 3003 | 311819 140674 3004 | 332032 157725 3005 | 301983 173386 3006 | 321556 163352 3007 | 315830 102777 3008 | 312275 145173 3009 | 325861 203058 3010 | 360703 150999 3011 | 345976 148333 3012 | 320210 191459 3013 | 318665 158107 3014 | 425563 163524 3015 | 264427 188193 3016 | 348177 179526 3017 | 265430 151883 3018 | 320718 158610 3019 | 380609 185976 3020 | 345234 188822 3021 | 362027 150348 3022 | 300294 178772 3023 | 315963 174031 3024 | 333787 189423 3025 | 337343 156614 3026 | 334812 137431 3027 | 347492 153416 3028 | 324518 167369 3029 | 353991 193997 3030 | 274321 219665 3031 | 335476 183897 3032 | 300021 159185 3033 | 384591 137729 3034 | 320000 162605 3035 | 268938 211870 3036 | 366146 196571 3037 | 356280 185198 3038 | 325767 164095 3039 | 350480 214608 3040 | 314791 163370 3041 | 302582 134124 3042 | 328851 147002 3043 | 347039 195468 3044 | 289531 145743 3045 | 343018 239960 3046 | 271123 163465 3047 | 326959 154655 3048 | 332307 189590 3049 | 310529 141617 3050 | 380281 205779 3051 | 411606 137378 3052 | 348191 165419 3053 | 305292 175260 3054 | 256120 141529 3055 | 390934 170420 3056 | 358562 112650 3057 | 355499 224982 3058 | 363437 77975 3059 | 232043 177614 3060 | 246753 175170 3061 | 327204 152871 3062 | 371685 151612 3063 | 291723 177824 3064 | 324488 180658 3065 | 340048 131847 3066 | 295311 115000 3067 | 239495 163949 3068 | 267521 119941 3069 | 401396 125431 3070 | 260930 184935 3071 | 336085 170252 3072 | 291782 159562 3073 | 307616 207295 3074 | 352910 145624 3075 | 294653 104623 3076 | 372883 222824 3077 | 318707 160697 3078 | 281548 175184 3079 | 307747 128551 3080 | 336991 217448 3081 | 270233 195701 3082 | 433100 134861 3083 | 311433 134432 3084 | 375353 117180 3085 | 315146 160782 3086 | 311163 166821 3087 | 305333 171939 3088 | 332470 161202 3089 | 302266 185591 3090 | 370775 144355 3091 | 314552 151035 3092 | 343145 172236 3093 | 331212 162496 3094 | 299460 144708 3095 | 383894 179880 3096 | 345703 149860 3097 | 331381 162660 3098 | 344364 213940 3099 | 378347 144880 3100 | 322789 137560 3101 | 328425 159826 3102 | 341137 78287 3103 | 317771 154916 3104 | 336266 148507 3105 | 342066 119083 3106 | 297177 88467 3107 | 280519 165350 3108 | 305901 166656 3109 | 284757 175853 3110 | 281732 221764 3111 | 321262 178491 3112 | 344710 213543 3113 | 311408 168232 3114 | 356500 188114 3115 | 304376 222294 3116 | 278116 185472 3117 | 247892 115217 3118 | 306326 164202 3119 | 311516 94189 3120 | 323747 163351 3121 | 321778 158339 3122 | 309501 166931 3123 | 333942 143344 3124 | 339393 209145 3125 | 340996 170964 3126 | 315333 144566 3127 | 332853 168141 3128 | 290958 168323 3129 | 297731 175876 3130 | 280274 182662 3131 | 306540 193434 3132 | 319155 159850 3133 | 355168 114823 3134 | 270201 236813 3135 | 347630 120931 3136 | 446538 180119 3137 | 371052 147369 3138 | 403365 215735 3139 | 258201 153095 3140 | 335121 214149 3141 | 283786 133973 3142 | 353951 133923 3143 | 345069 165968 3144 | 367079 183232 3145 | 363932 228249 3146 | 354132 161850 3147 | 390538 157197 3148 | 333805 148479 3149 | 325344 159885 3150 | 323905 168029 3151 | 274495 182470 3152 | 309684 150076 3153 | 381617 157000 3154 | 322841 169735 3155 | 359520 132845 3156 | 249616 144446 3157 | 321620 169950 3158 | 415495 116126 3159 | 335742 196692 3160 | 271424 251323 3161 | 340066 152500 3162 | 327734 163585 3163 | 346079 220993 3164 | 276741 143844 3165 | 377042 182019 3166 | 400055 131725 3167 | 332246 172932 3168 | 310386 171068 3169 | 327569 158418 3170 | 324444 166910 3171 | 317217 163896 3172 | 270404 183080 3173 | 277512 151920 3174 | 324966 170021 3175 | 306421 145493 3176 | 382419 110392 3177 | 318266 171979 3178 | 321245 141627 3179 | 318192 170844 3180 | 320821 165455 3181 | 329029 204399 3182 | 311065 219934 3183 | 287127 192494 3184 | 283571 109326 3185 | 308748 199866 3186 | 369490 164369 3187 | 270729 67329 3188 | 279010 181792 3189 | 282957 179982 3190 | 308489 145929 3191 | 327927 168535 3192 | 327022 161396 3193 | 376557 109320 3194 | 248427 146381 3195 | 321182 150806 3196 | 312337 154488 3197 | 268518 181514 3198 | 285865 167818 3199 | 279251 184486 3200 | 306042 66361 3201 | 318215 180010 3202 | 293978 197091 3203 | 338044 233264 3204 | 293864 241877 3205 | 344380 183817 3206 | 316257 171544 3207 | 248779 111087 3208 | 313783 177198 3209 | 415534 110526 3210 | 296164 96874 3211 | 315670 160928 3212 | 339137 160334 3213 | 290700 196285 3214 | 307107 174760 3215 | 325279 168587 3216 | 328423 161604 3217 | 333883 276840 3218 | 308555 134011 3219 | 322101 164171 3220 | 306357 123397 3221 | 292931 125341 3222 | 284378 223470 3223 | 335003 151395 3224 | 267212 158699 3225 | 343851 193618 3226 | 296627 93375 3227 | 334980 143900 3228 | 335235 180161 3229 | 360945 167952 3230 | 257841 193878 3231 | 275288 212315 3232 | 331798 143962 3233 | 333937 51121 3234 | 328775 156501 3235 | 319829 168353 3236 | 293201 192871 3237 | 327608 177638 3238 | 332562 174699 3239 | 348815 150017 3240 | 312227 159417 3241 | 324337 162686 3242 | 323329 93955 3243 | 291973 127483 3244 | 258779 106777 3245 | 325360 134919 3246 | 267264 153034 3247 | 312421 170617 3248 | 293350 175997 3249 | 275459 190178 3250 | 244344 185382 3251 | 252845 181181 3252 | 357923 192120 3253 | 382720 263255 3254 | 326040 156509 3255 | 165104 543395 3256 | 139903 592241 3257 | 132705 557674 3258 | 114311 601605 3259 | 102460 533057 3260 | 185935 554627 3261 | 123441 594415 3262 | 97216 564094 3263 | 110948 539533 3264 | 101553 517715 3265 | 133023 574572 3266 | 144570 573936 3267 | 136531 557658 3268 | 173576 507309 3269 | 179189 536028 3270 | 141238 557986 3271 | 156430 615117 3272 | 69169 631490 3273 | 31842 565765 3274 | 144620 575370 3275 | 155899 561715 3276 | 137451 555339 3277 | 68388 574380 3278 | 166290 521714 3279 | 210499 526471 3280 | 148319 584541 3281 | 135336 552552 3282 | 136606 562296 3283 | 136301 569544 3284 | 119386 620549 3285 | 139212 557713 3286 | 84501 604671 3287 | 176602 574552 3288 | 105945 528795 3289 | 140989 537156 3290 | 138449 555969 3291 | 128669 574591 3292 | 95749 602775 3293 | 139460 557260 3294 | 130440 562623 3295 | 147885 527813 3296 | 58190 608304 3297 | 151701 574146 3298 | 148385 538149 3299 | 142668 544976 3300 | 145251 553486 3301 | 142265 546135 3302 | 202913 525966 3303 | 192564 547558 3304 | 179240 577011 3305 | 182840 584262 3306 | 144242 557674 3307 | 135849 550612 3308 | 101427 615890 3309 | 143265 548387 3310 | 112379 547679 3311 | 137347 622867 3312 | 139146 569516 3313 | 125756 579609 3314 | 77109 512651 3315 | 138073 556272 3316 | 202547 601240 3317 | 19835 570290 3318 | 118137 579149 3319 | 201324 574588 3320 | 113259 568684 3321 | 139052 610320 3322 | 177246 571940 3323 | 107972 601191 3324 | 138199 541774 3325 | 220156 589643 3326 | 137787 566189 3327 | 138122 557230 3328 | 93136 613387 3329 | 154620 576738 3330 | 131523 568207 3331 | 136967 565662 3332 | 142886 556511 3333 | 125005 540340 3334 | 138965 558201 3335 | 139474 569485 3336 | 171471 576787 3337 | 157138 565993 3338 | 198294 552987 3339 | 136078 547418 3340 | 140164 531093 3341 | 156003 502860 3342 | 67867 545392 3343 | 133780 533275 3344 | 116142 550919 3345 | 148510 579793 3346 | 179224 584189 3347 | 149906 546909 3348 | 29760 557873 3349 | 115287 602637 3350 | 206561 574789 3351 | 108651 521409 3352 | 115905 560139 3353 | 127373 549518 3354 | 141699 530028 3355 | 141641 557376 3356 | 111855 531542 3357 | 136580 553967 3358 | 137516 556818 3359 | 179793 483378 3360 | 105568 584102 3361 | 125840 520239 3362 | 117212 565692 3363 | 140717 554093 3364 | 139033 593287 3365 | 172882 571145 3366 | 104862 608089 3367 | 158366 537970 3368 | 138525 534268 3369 | 69565 599820 3370 | 94571 528963 3371 | 153185 562792 3372 | 147599 513563 3373 | 223226 546198 3374 | 143879 536650 3375 | 151099 518008 3376 | 109317 531425 3377 | 127202 525948 3378 | 137740 618961 3379 | 138734 557713 3380 | 109912 565003 3381 | 158060 525533 3382 | 260096 530550 3383 | 134449 557556 3384 | 121650 599844 3385 | 188992 563992 3386 | 207218 589497 3387 | 179830 547383 3388 | 152331 529689 3389 | 112184 530469 3390 | 166904 503121 3391 | 183026 545377 3392 | 152658 569277 3393 | 172116 513383 3394 | 95899 530846 3395 | 144325 538991 3396 | 166597 572855 3397 | 105193 596017 3398 | 166840 562425 3399 | 117089 561455 3400 | 141718 549576 3401 | 117959 536156 3402 | 125351 529954 3403 | 140706 547367 3404 | 138012 558263 3405 | 135284 555664 3406 | 142663 556520 3407 | 112673 516997 3408 | 137657 611252 3409 | 119237 591137 3410 | 186380 487625 3411 | 113099 546732 3412 | 176278 550602 3413 | 158773 588778 3414 | 140962 518168 3415 | 144856 551807 3416 | 155943 576199 3417 | 152584 564548 3418 | 165356 570715 3419 | 127858 609681 3420 | 257984 555707 3421 | 149758 564768 3422 | 129550 560106 3423 | 159271 568953 3424 | 151374 538387 3425 | 129030 588495 3426 | 155430 549012 3427 | 172756 612694 3428 | 93459 514032 3429 | 99569 523174 3430 | 148080 544056 3431 | 169322 577938 3432 | 173847 514665 3433 | 136418 562926 3434 | 140047 540043 3435 | 74519 527539 3436 | 146681 562995 3437 | 110877 562558 3438 | 95071 503965 3439 | 136232 576477 3440 | 146120 576624 3441 | 259173 548593 3442 | 107965 535173 3443 | 103153 601002 3444 | 158283 570550 3445 | 206219 604081 3446 | 116492 509399 3447 | 97430 598804 3448 | 193275 538687 3449 | 116860 550810 3450 | 179834 541387 3451 | 143226 522375 3452 | 111174 539350 3453 | 94933 588147 3454 | 139434 557410 3455 | 131532 536658 3456 | 38179 532155 3457 | 113321 606322 3458 | 123905 508486 3459 | 201753 569116 3460 | 206660 575002 3461 | 138884 529162 3462 | 139636 565984 3463 | 110479 594587 3464 | 76253 529394 3465 | 160280 493497 3466 | 161475 587507 3467 | 149054 556986 3468 | 223408 520131 3469 | 158596 562634 3470 | 141991 539522 3471 | 137172 523482 3472 | 161154 538355 3473 | 130157 581286 3474 | 142000 554964 3475 | 86243 559135 3476 | 130883 557824 3477 | 127964 538935 3478 | 122130 568886 3479 | 210597 589836 3480 | 139847 552015 3481 | 147664 559632 3482 | 167716 562762 3483 | 130657 555545 3484 | 165382 518876 3485 | 221994 575146 3486 | 87236 607429 3487 | 154268 542573 3488 | 197367 535989 3489 | 133094 557996 3490 | 155274 552551 3491 | 139911 561185 3492 | 146924 565933 3493 | 146183 622188 3494 | 176092 531921 3495 | 184402 546549 3496 | 139641 557503 3497 | 170816 547069 3498 | 156474 570384 3499 | 146678 558942 3500 | 136569 532130 3501 | 162124 500069 3502 | 127503 623654 3503 | 182854 534283 3504 | 141222 572556 3505 | 177665 557923 3506 | 201907 516078 3507 | 130249 579307 3508 | 166560 559687 3509 | 138220 560056 3510 | 134725 537440 3511 | 127940 590467 3512 | 143592 606949 3513 | 64979 538104 3514 | 94061 576129 3515 | 79285 554817 3516 | 103192 550021 3517 | 198823 538624 3518 | 145758 562414 3519 | 211584 591058 3520 | 139451 549580 3521 | 220224 592068 3522 | 150404 539885 3523 | 142767 538646 3524 | 143912 595772 3525 | 184412 537050 3526 | 55359 623076 3527 | 137197 556522 3528 | 138461 558771 3529 | 80673 566893 3530 | 203667 577260 3531 | 94249 600812 3532 | 145244 561042 3533 | 94458 533883 3534 | 130201 562734 3535 | 98675 580608 3536 | 134422 544300 3537 | 141771 551655 3538 | 141924 558399 3539 | 137316 562151 3540 | 143363 551365 3541 | 197849 575524 3542 | 134261 519275 3543 | 129997 568115 3544 | 170494 560892 3545 | 164453 544085 3546 | 128788 546091 3547 | 88703 577217 3548 | 131109 568012 3549 | 95074 570002 3550 | 232047 522748 3551 | 125548 552424 3552 | 142563 560090 3553 | 118391 553625 3554 | 132497 593125 3555 | 162713 586568 3556 | 122296 566921 3557 | 56907 586609 3558 | 48143 523870 3559 | 104489 542515 3560 | 130582 565948 3561 | 180633 570302 3562 | 241485 523039 3563 | 178005 594957 3564 | 211266 534538 3565 | 137680 555667 3566 | 144401 565666 3567 | 101722 535117 3568 | 115781 594942 3569 | 107160 530936 3570 | 139978 587153 3571 | 179931 536588 3572 | 105353 589239 3573 | 119496 543146 3574 | 142575 517378 3575 | 76661 531044 3576 | 137699 556769 3577 | 154964 554923 3578 | 142516 559062 3579 | 98525 579761 3580 | 163925 576666 3581 | 153326 558408 3582 | 262846 559590 3583 | 102898 592834 3584 | 138349 554238 3585 | 193502 557364 3586 | 202175 495076 3587 | 154162 536416 3588 | 77875 516899 3589 | 163477 561507 3590 | 131874 552586 3591 | 120357 560737 3592 | 119535 551857 3593 | 114108 540537 3594 | 136059 558213 3595 | 121786 564225 3596 | 233105 591646 3597 | 149760 577278 3598 | 139237 548782 3599 | 34795 606311 3600 | 147663 555514 3601 | 108512 525986 3602 | 509279 180548 3603 | 495165 163113 3604 | 474652 193224 3605 | 507786 199578 3606 | 566666 195255 3607 | 506012 178372 3608 | 541435 206637 3609 | 507311 177795 3610 | 461701 188438 3611 | 506069 169723 3612 | 477155 161019 3613 | 505044 180646 3614 | 467697 168082 3615 | 511868 170991 3616 | 500225 177559 3617 | 460616 174810 3618 | 573755 218049 3619 | 543616 144788 3620 | 509804 175714 3621 | 542311 161882 3622 | 475944 189337 3623 | 517750 199025 3624 | 520952 169184 3625 | 559076 190770 3626 | 416763 96639 3627 | 549384 208450 3628 | 549147 171454 3629 | 520880 200955 3630 | 484348 202813 3631 | 487472 166999 3632 | 504728 174541 3633 | 465734 114090 3634 | 570266 188032 3635 | 505584 176135 3636 | 514739 189624 3637 | 500589 181466 3638 | 504096 192493 3639 | 553118 165472 3640 | 502511 205121 3641 | 551798 221411 3642 | 502737 174437 3643 | 513181 177419 3644 | 513010 141058 3645 | 535564 177248 3646 | 514551 176526 3647 | 450030 169537 3648 | 521152 152439 3649 | 505512 203857 3650 | 509928 184873 3651 | 490271 216725 3652 | 529931 180136 3653 | 508228 220433 3654 | 534461 178056 3655 | 508551 174306 3656 | 545365 210090 3657 | 510414 142485 3658 | 507895 177445 3659 | 506288 177990 3660 | 512560 224816 3661 | 454160 102568 3662 | 437116 148591 3663 | 519003 160741 3664 | 509173 178051 3665 | 507674 147431 3666 | 513562 229098 3667 | 473361 185066 3668 | 517580 170329 3669 | 509285 174620 3670 | 510496 174308 3671 | 438860 114065 3672 | 534702 244239 3673 | 504755 150226 3674 | 474135 199330 3675 | 508907 173787 3676 | 509651 149290 3677 | 490956 124550 3678 | 499637 194036 3679 | 515856 148316 3680 | 482568 159010 3681 | 522728 184704 3682 | 493070 189771 3683 | 483807 198925 3684 | 469656 153741 3685 | 470041 102049 3686 | 576965 187481 3687 | 515230 149567 3688 | 469470 189347 3689 | 484678 123623 3690 | 509554 186931 3691 | 480787 147737 3692 | 523036 123677 3693 | 508144 167733 3694 | 515450 173220 3695 | 489378 172861 3696 | 497406 125809 3697 | 514173 139330 3698 | 520809 176718 3699 | 499009 205823 3700 | 509773 148899 3701 | 505117 141877 3702 | 494698 176711 3703 | 501334 163002 3704 | 502500 176532 3705 | 546565 151576 3706 | 520878 209094 3707 | 486891 175164 3708 | 512241 169240 3709 | 569692 182365 3710 | 491382 122267 3711 | 457033 127590 3712 | 535453 200970 3713 | 436641 55171 3714 | 520845 176291 3715 | 496130 178113 3716 | 507473 227670 3717 | 507092 175151 3718 | 493714 173387 3719 | 528826 154067 3720 | 509951 176794 3721 | 505400 160422 3722 | 473316 162622 3723 | 489504 146224 3724 | 516888 152451 3725 | 505128 175022 3726 | 520819 181586 3727 | 506812 167031 3728 | 495032 203929 3729 | 508789 174256 3730 | 502302 210265 3731 | 511106 122518 3732 | 486997 164803 3733 | 535787 199735 3734 | 540364 163758 3735 | 496006 191010 3736 | 497454 172375 3737 | 488330 173837 3738 | 547076 156969 3739 | 509956 141698 3740 | 516084 178725 3741 | 535034 172649 3742 | 529858 213114 3743 | 496384 166644 3744 | 519201 139101 3745 | 575022 213534 3746 | 469404 181944 3747 | 464672 193513 3748 | 491609 180519 3749 | 470314 178936 3750 | 481067 172555 3751 | 508797 176269 3752 | 491145 206344 3753 | 485361 169229 3754 | 474527 107596 3755 | 499643 171625 3756 | 514722 190943 3757 | 474641 81263 3758 | 495995 160032 3759 | 516963 174184 3760 | 521006 163218 3761 | 434581 123267 3762 | 514876 182995 3763 | 501416 172980 3764 | 513991 165072 3765 | 512900 219252 3766 | 510739 121103 3767 | 509522 174376 3768 | 507862 172954 3769 | 512716 181316 3770 | 483423 111797 3771 | 505603 147517 3772 | 482628 171320 3773 | 541790 172616 3774 | 473649 178184 3775 | 520763 250478 3776 | 494000 189403 3777 | 533931 173291 3778 | 485110 150541 3779 | 528679 199079 3780 | 545699 174099 3781 | 517495 186329 3782 | 520461 173217 3783 | 456821 105575 3784 | 495388 156422 3785 | 514934 219169 3786 | 508989 168995 3787 | 500474 169746 3788 | 504511 149234 3789 | 467144 147308 3790 | 512733 174091 3791 | 452791 156805 3792 | 488800 197919 3793 | 593887 210595 3794 | 561725 168220 3795 | 528011 201615 3796 | 514428 222503 3797 | 512051 145220 3798 | 472054 129986 3799 | 507959 166780 3800 | 518068 137556 3801 | 561110 219865 3802 | 563315 215613 3803 | 523779 163905 3804 | 490037 164357 3805 | 519421 154681 3806 | 504373 165819 3807 | 513957 139202 3808 | 486422 178919 3809 | 533351 147778 3810 | 511030 221292 3811 | 496069 102201 3812 | 496491 171534 3813 | 497254 171940 3814 | 518892 165875 3815 | 481083 151953 3816 | 507741 178883 3817 | 486224 196184 3818 | 509039 173839 3819 | 462658 75167 3820 | 519680 208378 3821 | 499676 196897 3822 | 480876 160465 3823 | 521032 177084 3824 | 486034 196122 3825 | 505225 158750 3826 | 485968 123023 3827 | 478442 125560 3828 | 502355 164119 3829 | 502915 183059 3830 | 497211 174121 3831 | 537174 194410 3832 | 505293 194591 3833 | 491442 116195 3834 | 473202 140745 3835 | 505079 219082 3836 | 541455 223176 3837 | 528938 174372 3838 | 528094 178343 3839 | 520759 184923 3840 | 538994 179328 3841 | 507832 181513 3842 | 493897 189627 3843 | 514408 173338 3844 | 514391 156592 3845 | 513362 223841 3846 | 443618 157237 3847 | 477746 163845 3848 | 480571 204150 3849 | 486326 174643 3850 | 505384 174535 3851 | 541220 177840 3852 | 522869 176818 3853 | 497255 188783 3854 | 545240 221008 3855 | 512291 169608 3856 | 576158 210283 3857 | 508099 175066 3858 | 545455 182232 3859 | 537836 177165 3860 | 508597 173640 3861 | 507445 193647 3862 | 524397 239456 3863 | 527753 213985 3864 | 528766 239937 3865 | 481356 162127 3866 | 541498 192746 3867 | 506142 170513 3868 | 494574 198972 3869 | 477901 173288 3870 | 509223 177592 3871 | 532010 176195 3872 | 541006 175198 3873 | 490355 153464 3874 | 566524 179796 3875 | 550216 184337 3876 | 516085 195504 3877 | 523796 219588 3878 | 511118 175212 3879 | 445043 152257 3880 | 497582 190801 3881 | 514622 206979 3882 | 479631 178459 3883 | 496476 140337 3884 | 498389 178069 3885 | 506361 225237 3886 | 519396 177174 3887 | 529409 157228 3888 | 501111 157402 3889 | 514219 167014 3890 | 558307 203307 3891 | 545957 196749 3892 | 508080 175697 3893 | 589900 217899 3894 | 509383 167302 3895 | 474516 189144 3896 | 498730 183037 3897 | 473093 188791 3898 | 471328 176297 3899 | 510901 175806 3900 | 559809 162597 3901 | 499272 168413 3902 | 514981 172608 3903 | 511289 183247 3904 | 455460 153040 3905 | 519962 175210 3906 | 532549 172894 3907 | 516128 178722 3908 | 519113 194925 3909 | 502877 192740 3910 | 520782 134308 3911 | 574369 207483 3912 | 515494 188459 3913 | 486870 146947 3914 | 484395 107291 3915 | 504243 237336 3916 | 483776 213021 3917 | 536623 213083 3918 | 544539 180391 3919 | 502002 166223 3920 | 500801 185558 3921 | 525670 184762 3922 | 481841 209337 3923 | 494317 170837 3924 | 521153 242968 3925 | 473933 191767 3926 | 524502 248106 3927 | 487952 168607 3928 | 460133 173081 3929 | 453261 148432 3930 | 491792 214464 3931 | 497815 165151 3932 | 515348 184750 3933 | 598908 254032 3934 | 558478 213316 3935 | 538228 168834 3936 | 464634 173867 3937 | 518675 175686 3938 | 533566 214619 3939 | 540196 180312 3940 | 500360 213540 3941 | 517882 175467 3942 | 549642 157506 3943 | 511368 173673 3944 | 506815 173387 3945 | 500192 192292 3946 | 533775 163036 3947 | 511484 160453 3948 | 489062 200329 3949 | 537514 179689 3950 | 551867 170425 3951 | 406184 394506 3952 | 417996 408162 3953 | 428667 451233 3954 | 425386 379634 3955 | 388202 405780 3956 | 370955 325071 3957 | 353749 391896 3958 | 398629 401626 3959 | 393402 401018 3960 | 465599 383470 3961 | 400257 404936 3962 | 444610 400247 3963 | 392046 391220 3964 | 410506 395586 3965 | 508805 429073 3966 | 424782 449687 3967 | 384467 407359 3968 | 397399 403186 3969 | 449683 388863 3970 | 387756 435588 3971 | 451753 383440 3972 | 414448 429790 3973 | 394599 409068 3974 | 387330 409037 3975 | 402109 430185 3976 | 393825 453067 3977 | 412111 418466 3978 | 397213 377839 3979 | 361159 436327 3980 | 383075 447616 3981 | 383832 340506 3982 | 402227 414685 3983 | 411957 397796 3984 | 377408 395123 3985 | 417231 381303 3986 | 442915 420573 3987 | 415394 396940 3988 | 420792 430901 3989 | 397791 444527 3990 | 385804 393101 3991 | 384572 388523 3992 | 402069 434868 3993 | 414997 432597 3994 | 392919 405103 3995 | 396150 430329 3996 | 439145 407748 3997 | 401240 354085 3998 | 424228 442208 3999 | 336023 416862 4000 | 351352 362910 4001 | 413549 408517 4002 | 341775 425156 4003 | 424811 413300 4004 | 402677 412615 4005 | 419118 421655 4006 | 354601 358760 4007 | 410682 349328 4008 | 399020 404042 4009 | 392258 405478 4010 | 353941 399967 4011 | 411471 446824 4012 | 397158 370362 4013 | 431117 394746 4014 | 395246 392783 4015 | 400468 405703 4016 | 354094 424230 4017 | 352429 359750 4018 | 358830 431609 4019 | 387039 365758 4020 | 395013 387179 4021 | 400545 404212 4022 | 435067 403802 4023 | 394436 450912 4024 | 376444 371957 4025 | 433463 410297 4026 | 426625 475977 4027 | 424241 452915 4028 | 396520 405610 4029 | 347638 429109 4030 | 374797 407601 4031 | 451670 388347 4032 | 373684 418326 4033 | 412615 403902 4034 | 392428 402295 4035 | 389868 410718 4036 | 383022 409854 4037 | 468350 395883 4038 | 373339 398565 4039 | 383878 376230 4040 | 434815 388041 4041 | 368864 411216 4042 | 321050 422497 4043 | 276794 384458 4044 | 383197 409869 4045 | 381340 409680 4046 | 415521 368125 4047 | 404288 349685 4048 | 367922 415238 4049 | 422056 382193 4050 | 407334 445969 4051 | 373917 427628 4052 | 422261 374345 4053 | 392728 411341 4054 | 336585 420977 4055 | 401730 354294 4056 | 401854 402867 4057 | 401330 395538 4058 | 393903 387227 4059 | 399188 402459 4060 | 389510 370897 4061 | 399858 403574 4062 | 343651 438750 4063 | 388743 388465 4064 | 398246 406245 4065 | 400727 396769 4066 | 399077 403968 4067 | 402071 427626 4068 | 405902 394724 4069 | 383992 398245 4070 | 372230 412488 4071 | 418086 394699 4072 | 400305 466024 4073 | 380458 329635 4074 | 338347 337961 4075 | 411171 426853 4076 | 392447 408539 4077 | 375233 399429 4078 | 385338 440797 4079 | 397764 406712 4080 | 414290 393146 4081 | 394846 407130 4082 | 402252 414628 4083 | 332913 385678 4084 | 396517 394572 4085 | 388479 343648 4086 | 405569 411933 4087 | 444816 409502 4088 | 393659 439272 4089 | 415222 434798 4090 | 396621 381952 4091 | 416893 347737 4092 | 398980 407667 4093 | 404273 429948 4094 | 397851 400846 4095 | 447192 359893 4096 | 350428 392503 4097 | 451853 420873 4098 | 402566 415798 4099 | 362753 369848 4100 | 407188 396576 4101 | 380139 434251 4102 | 409167 449719 4103 | 405470 392374 4104 | 359036 365793 4105 | 398617 402424 4106 | 408714 391412 4107 | 382222 441817 4108 | 403751 385539 4109 | 400548 402390 4110 | 393828 404314 4111 | 373943 376926 4112 | 390182 360941 4113 | 391776 409868 4114 | 342501 336320 4115 | 401923 417123 4116 | 342400 426090 4117 | 405325 407466 4118 | 369480 377148 4119 | 416110 374296 4120 | 401162 412142 4121 | 442931 430123 4122 | 478361 409520 4123 | 401313 405195 4124 | 357466 354094 4125 | 417617 414816 4126 | 417281 410881 4127 | 470047 410943 4128 | 378824 430343 4129 | 369227 397853 4130 | 397918 462032 4131 | 397331 407010 4132 | 427810 400178 4133 | 401708 409924 4134 | 426172 363147 4135 | 401411 414503 4136 | 409823 412908 4137 | 386068 422517 4138 | 398255 405428 4139 | 346358 384801 4140 | 397735 448097 4141 | 348847 425164 4142 | 394761 461494 4143 | 357253 388075 4144 | 402267 410395 4145 | 415233 441297 4146 | 404445 402466 4147 | 408224 399767 4148 | 369044 371649 4149 | 343119 382074 4150 | 416750 435776 4151 | 387103 401925 4152 | 368200 364844 4153 | 393758 439738 4154 | 418623 404382 4155 | 402660 406054 4156 | 427749 457110 4157 | 405356 391545 4158 | 432184 395118 4159 | 322936 368566 4160 | 402710 424367 4161 | 456025 389630 4162 | 395450 407822 4163 | 377941 403683 4164 | 407576 434017 4165 | 348263 386451 4166 | 391966 387214 4167 | 392576 406460 4168 | 380236 460907 4169 | 398153 407081 4170 | 399942 385908 4171 | 398795 472619 4172 | 467535 416014 4173 | 377758 413906 4174 | 398724 404179 4175 | 396710 378698 4176 | 377588 402670 4177 | 408992 462226 4178 | 423371 373970 4179 | 412861 434751 4180 | 403160 392159 4181 | 395168 404189 4182 | 399346 423786 4183 | 409244 460295 4184 | 429515 393708 4185 | 370602 353215 4186 | 356739 417826 4187 | 408147 436628 4188 | 436362 379677 4189 | 399291 386712 4190 | 396081 396707 4191 | 419200 403389 4192 | 383855 390984 4193 | 370252 347498 4194 | 460198 402706 4195 | 418046 358461 4196 | 408500 393942 4197 | 397618 404912 4198 | 392660 395873 4199 | 406739 400918 4200 | 439048 403700 4201 | 392424 375266 4202 | 379128 418858 4203 | 391970 419802 4204 | 389279 424006 4205 | 468907 448885 4206 | 410601 410653 4207 | 396556 406492 4208 | 417795 405673 4209 | 375971 427549 4210 | 414374 439977 4211 | 368363 409733 4212 | 402081 407514 4213 | 399753 404222 4214 | 424840 479570 4215 | 381863 416651 4216 | 394606 401451 4217 | 389520 406500 4218 | 418140 415328 4219 | 387461 394402 4220 | 391384 413273 4221 | 391439 399819 4222 | 365223 422531 4223 | 407189 437102 4224 | 415933 422485 4225 | 402031 426039 4226 | 428513 456990 4227 | 382396 405483 4228 | 368166 429422 4229 | 418636 440000 4230 | 411674 402377 4231 | 424365 371987 4232 | 394159 411676 4233 | 371548 414612 4234 | 460628 434107 4235 | 399717 403257 4236 | 361875 448199 4237 | 393424 399084 4238 | 333682 401078 4239 | 377870 377550 4240 | 405117 364266 4241 | 452398 378671 4242 | 397889 398501 4243 | 424089 352640 4244 | 417494 392231 4245 | 402851 395579 4246 | 376493 366302 4247 | 460684 371809 4248 | 449571 387141 4249 | 405322 414743 4250 | 420489 448078 4251 | 377975 461076 4252 | 492551 434649 4253 | 477323 384551 4254 | 359740 379592 4255 | 429653 438596 4256 | 361814 411086 4257 | 400660 404811 4258 | 410418 409414 4259 | 392162 355397 4260 | 376145 414107 4261 | 371464 328177 4262 | 379593 380662 4263 | 448231 384406 4264 | 404157 406324 4265 | 420616 401526 4266 | 398985 413427 4267 | 400538 407020 4268 | 391530 398743 4269 | 408182 408351 4270 | 435926 408504 4271 | 411090 435389 4272 | 398311 383357 4273 | 409291 431539 4274 | 399460 399410 4275 | 400473 408327 4276 | 399693 395271 4277 | 431437 436764 4278 | 312123 419763 4279 | 411053 432808 4280 | 401616 404245 4281 | 364455 436191 4282 | 407833 402474 4283 | 367864 442851 4284 | 437870 375761 4285 | 308726 371721 4286 | 418996 389541 4287 | 371498 393120 4288 | 407429 399155 4289 | 380749 403860 4290 | 399997 411205 4291 | 377215 418429 4292 | 380202 396671 4293 | 436034 385951 4294 | 395210 357805 4295 | 415136 446807 4296 | 315013 318367 4297 | 372424 413163 4298 | 340966 420480 4299 | 354767 417464 4300 | 387165 404027 4301 | 854654 549222 4302 | 889260 541423 4303 | 870826 524625 4304 | 868025 569296 4305 | 861364 598127 4306 | 825141 535997 4307 | 906640 587296 4308 | 906396 535803 4309 | 887896 558572 4310 | 817776 525600 4311 | 844066 546029 4312 | 848976 558706 4313 | 897131 604582 4314 | 845120 549830 4315 | 872241 556733 4316 | 857818 534525 4317 | 794265 594573 4318 | 857126 548151 4319 | 842786 614034 4320 | 889975 589361 4321 | 841130 529745 4322 | 813561 583156 4323 | 855603 542414 4324 | 887556 531797 4325 | 837032 509264 4326 | 852037 649724 4327 | 793791 581315 4328 | 904450 533427 4329 | 879722 550246 4330 | 839088 528460 4331 | 869369 536868 4332 | 871873 509094 4333 | 900991 497149 4334 | 919544 541255 4335 | 860520 544023 4336 | 863042 557890 4337 | 889805 522039 4338 | 879031 489881 4339 | 852918 552112 4340 | 903840 586229 4341 | 932662 537069 4342 | 908506 549611 4343 | 867533 542290 4344 | 844617 499013 4345 | 862002 534006 4346 | 883981 607581 4347 | 864265 549505 4348 | 883062 547498 4349 | 860870 546516 4350 | 895565 501871 4351 | 843344 604964 4352 | 864059 545894 4353 | 830888 544022 4354 | 858819 544904 4355 | 853562 531620 4356 | 873791 606643 4357 | 859213 538040 4358 | 841843 503359 4359 | 842719 506205 4360 | 847904 574114 4361 | 863859 546898 4362 | 888919 535805 4363 | 855045 547633 4364 | 863102 545783 4365 | 829747 530312 4366 | 850607 565348 4367 | 810277 520837 4368 | 879104 595389 4369 | 840406 538772 4370 | 838367 536676 4371 | 837457 518745 4372 | 861519 531277 4373 | 816056 542574 4374 | 862534 547936 4375 | 808555 600511 4376 | 862571 550965 4377 | 832010 554080 4378 | 882403 534710 4379 | 840020 568424 4380 | 865030 541150 4381 | 846594 522941 4382 | 890223 556874 4383 | 873136 513309 4384 | 846622 553552 4385 | 905770 531812 4386 | 803216 577565 4387 | 914183 620056 4388 | 877510 555087 4389 | 861193 573954 4390 | 840994 578455 4391 | 875640 561262 4392 | 876782 536438 4393 | 849501 552769 4394 | 866973 550375 4395 | 906382 534459 4396 | 822722 553764 4397 | 861656 545794 4398 | 856991 546255 4399 | 865081 551012 4400 | 895680 609341 4401 | 867801 548156 4402 | 846324 557586 4403 | 840059 534876 4404 | 860473 545982 4405 | 937823 540173 4406 | 886532 500026 4407 | 904133 534915 4408 | 880545 506175 4409 | 833499 504718 4410 | 854979 539793 4411 | 818739 545052 4412 | 825596 639465 4413 | 838036 542999 4414 | 846216 528037 4415 | 850790 525740 4416 | 864040 538985 4417 | 869818 543227 4418 | 879309 561548 4419 | 860563 534839 4420 | 846082 541026 4421 | 860151 543055 4422 | 847292 559228 4423 | 838239 576018 4424 | 837307 548214 4425 | 853093 586321 4426 | 884326 479802 4427 | 838978 622330 4428 | 842903 567914 4429 | 832490 450680 4430 | 844948 563321 4431 | 859577 544625 4432 | 908409 591215 4433 | 819843 570485 4434 | 875625 599766 4435 | 887780 536497 4436 | 884613 507507 4437 | 849858 524682 4438 | 846741 539481 4439 | 870630 516603 4440 | 843111 581603 4441 | 869718 536928 4442 | 857648 511640 4443 | 881571 532467 4444 | 860230 528054 4445 | 861966 562885 4446 | 898736 548642 4447 | 961951 577029 4448 | 866878 501919 4449 | 874791 559085 4450 | 874239 594786 4451 | 915504 527751 4452 | 758172 608152 4453 | 859515 505303 4454 | 861033 507671 4455 | 837880 444574 4456 | 827672 545966 4457 | 869960 562146 4458 | 858151 548242 4459 | 877440 529137 4460 | 821835 564313 4461 | 846371 578530 4462 | 829482 475863 4463 | 860507 526669 4464 | 878696 530134 4465 | 837312 572687 4466 | 886773 509047 4467 | 879805 547494 4468 | 859679 541785 4469 | 910683 612854 4470 | 860863 546060 4471 | 874110 541972 4472 | 790149 565157 4473 | 873984 580836 4474 | 873742 448214 4475 | 894785 440382 4476 | 874312 574582 4477 | 879902 518647 4478 | 851462 526597 4479 | 839012 550376 4480 | 808097 502521 4481 | 879500 590791 4482 | 864721 548447 4483 | 866044 584750 4484 | 876151 582116 4485 | 819250 517655 4486 | 807278 566392 4487 | 872033 558924 4488 | 894268 532597 4489 | 846752 613846 4490 | 850478 566230 4491 | 849777 531138 4492 | 823584 568458 4493 | 823202 619103 4494 | 843715 568319 4495 | 861023 545953 4496 | 889743 560547 4497 | 862785 579661 4498 | 880833 537039 4499 | 854374 550707 4500 | 842616 515205 4501 | 860721 547751 4502 | 831024 505776 4503 | 829240 591428 4504 | 860384 555572 4505 | 853348 525893 4506 | 849118 571562 4507 | 856167 542249 4508 | 853874 560250 4509 | 838808 524944 4510 | 814561 575281 4511 | 773292 531652 4512 | 891515 520429 4513 | 805884 549492 4514 | 833437 556713 4515 | 843432 490725 4516 | 791355 529644 4517 | 865157 562132 4518 | 920249 551171 4519 | 808777 512952 4520 | 898916 630099 4521 | 863706 491401 4522 | 857231 551055 4523 | 877413 541536 4524 | 838821 563842 4525 | 854037 528890 4526 | 824475 518063 4527 | 857360 562228 4528 | 856437 532452 4529 | 862117 600081 4530 | 839280 539324 4531 | 885379 603686 4532 | 859185 553000 4533 | 865020 550686 4534 | 882007 593653 4535 | 861027 546004 4536 | 846772 509036 4537 | 844627 556401 4538 | 861069 548327 4539 | 854342 541611 4540 | 844086 531300 4541 | 923996 594948 4542 | 832154 559403 4543 | 803202 549001 4544 | 856619 544008 4545 | 897286 558004 4546 | 851216 516166 4547 | 858537 548576 4548 | 828001 524067 4549 | 849327 548496 4550 | 858278 544519 4551 | 793875 473793 4552 | 766617 548142 4553 | 847728 576707 4554 | 858418 546935 4555 | 816840 539239 4556 | 852687 540692 4557 | 861927 562723 4558 | 892382 513991 4559 | 811745 461099 4560 | 800152 576217 4561 | 870139 566584 4562 | 859492 572224 4563 | 830226 483466 4564 | 850674 533083 4565 | 834632 541216 4566 | 899052 526048 4567 | 925485 596955 4568 | 893145 551400 4569 | 839493 521150 4570 | 883434 581923 4571 | 873380 495161 4572 | 765011 607246 4573 | 898578 612291 4574 | 906772 510158 4575 | 858325 586062 4576 | 795909 462864 4577 | 812634 554848 4578 | 846841 533595 4579 | 810817 509540 4580 | 826192 577784 4581 | 856552 545271 4582 | 848628 503773 4583 | 784291 581417 4584 | 890613 567037 4585 | 870936 575427 4586 | 851166 532382 4587 | 871544 592403 4588 | 870337 534303 4589 | 819580 545900 4590 | 912649 498734 4591 | 870214 556246 4592 | 853279 560714 4593 | 857319 543529 4594 | 878519 606677 4595 | 858057 542933 4596 | 860375 544804 4597 | 888111 525539 4598 | 892877 544283 4599 | 788776 582930 4600 | 875311 542259 4601 | 875248 462524 4602 | 835831 555864 4603 | 885828 586348 4604 | 916704 609548 4605 | 893991 544467 4606 | 866352 535933 4607 | 872247 494281 4608 | 832372 600070 4609 | 902302 514170 4610 | 877298 565604 4611 | 873636 510687 4612 | 854818 554389 4613 | 915666 506439 4614 | 905849 524809 4615 | 862062 545736 4616 | 871981 649086 4617 | 900829 590250 4618 | 859419 546754 4619 | 855983 534803 4620 | 916082 517633 4621 | 874877 535143 4622 | 885963 528959 4623 | 853439 518568 4624 | 855177 626376 4625 | 814249 488483 4626 | 857283 548467 4627 | 865489 548920 4628 | 913686 576892 4629 | 880275 564545 4630 | 861381 546835 4631 | 880958 588608 4632 | 868979 528502 4633 | 872237 555834 4634 | 861868 549168 4635 | 836951 546244 4636 | 836874 555991 4637 | 769546 554722 4638 | 855074 542557 4639 | 868128 568529 4640 | 878859 540155 4641 | 852267 498220 4642 | 874125 543036 4643 | 846646 548548 4644 | 851517 541076 4645 | 806888 492319 4646 | 831779 577161 4647 | 860259 545444 4648 | 892423 530999 4649 | 838442 506780 4650 | 853291 557685 4651 | 730887 825972 4652 | 645233 927201 4653 | 645563 819480 4654 | 573324 878802 4655 | 693699 822637 4656 | 649412 856993 4657 | 684558 878573 4658 | 656658 854609 4659 | 651506 856097 4660 | 618405 842859 4661 | 667280 765619 4662 | 600996 890782 4663 | 674463 862486 4664 | 676694 851597 4665 | 620685 880813 4666 | 716590 874975 4667 | 721401 951880 4668 | 657094 857640 4669 | 644693 867371 4670 | 633601 861482 4671 | 673646 857346 4672 | 657184 855509 4673 | 708244 871834 4674 | 659081 860560 4675 | 657811 885904 4676 | 642843 909185 4677 | 709303 897538 4678 | 610505 851476 4679 | 612648 772280 4680 | 673196 812941 4681 | 673267 883727 4682 | 694451 863981 4683 | 678869 902492 4684 | 690018 819280 4685 | 677983 890077 4686 | 639997 865965 4687 | 709254 847444 4688 | 679799 858680 4689 | 664355 831472 4690 | 659166 861665 4691 | 692386 863386 4692 | 688076 833905 4693 | 680506 840053 4694 | 641840 886745 4695 | 673292 857105 4696 | 622212 860015 4697 | 736557 897961 4698 | 668234 886696 4699 | 675013 876331 4700 | 675902 853961 4701 | 695092 820091 4702 | 730287 897070 4703 | 691716 873426 4704 | 722404 952207 4705 | 678606 878004 4706 | 664156 846474 4707 | 688118 911574 4708 | 674492 861230 4709 | 675382 836312 4710 | 664639 925795 4711 | 626334 852383 4712 | 669690 842110 4713 | 653177 819935 4714 | 674265 861435 4715 | 677404 883871 4716 | 672212 860894 4717 | 715956 900724 4718 | 674236 877152 4719 | 679818 860064 4720 | 578509 923881 4721 | 680381 823757 4722 | 720629 816515 4723 | 640210 902029 4724 | 671772 860357 4725 | 618009 867493 4726 | 672628 882986 4727 | 680261 863401 4728 | 682100 853708 4729 | 681049 846975 4730 | 668567 856554 4731 | 656957 871011 4732 | 662293 872590 4733 | 673953 835926 4734 | 718544 888401 4735 | 648590 917839 4736 | 699124 824089 4737 | 668367 855686 4738 | 675866 868784 4739 | 700098 894685 4740 | 683156 877209 4741 | 661357 801817 4742 | 789095 895634 4743 | 673332 857517 4744 | 627452 835854 4745 | 672059 860501 4746 | 665048 854911 4747 | 683580 872374 4748 | 668839 882598 4749 | 682510 905902 4750 | 671235 856653 4751 | 680228 843225 4752 | 662249 918050 4753 | 674961 865594 4754 | 679211 886670 4755 | 676220 858214 4756 | 567861 856582 4757 | 668228 858122 4758 | 682241 850176 4759 | 712262 856869 4760 | 671325 856592 4761 | 680592 858526 4762 | 683098 847245 4763 | 646816 829778 4764 | 675633 863416 4765 | 677551 860007 4766 | 683656 842406 4767 | 678195 860537 4768 | 700747 821557 4769 | 679054 898217 4770 | 676360 866112 4771 | 665308 868551 4772 | 665775 845662 4773 | 660459 860658 4774 | 670119 859029 4775 | 672068 874862 4776 | 644301 925034 4777 | 704574 866263 4778 | 665660 828338 4779 | 680579 836946 4780 | 682053 853410 4781 | 672544 859978 4782 | 713088 880834 4783 | 680969 838864 4784 | 674151 853540 4785 | 664903 839150 4786 | 641902 755287 4787 | 683610 910782 4788 | 676962 897430 4789 | 594720 848457 4790 | 658748 777680 4791 | 700341 869730 4792 | 640432 837036 4793 | 668519 860048 4794 | 672668 861428 4795 | 638004 837697 4796 | 673071 856021 4797 | 668772 858570 4798 | 636871 929410 4799 | 599612 859210 4800 | 739318 810528 4801 | 654937 781879 4802 | 663095 949045 4803 | 658734 883214 4804 | 647968 877873 4805 | 682699 851115 4806 | 684739 884934 4807 | 667620 855461 4808 | 616281 845406 4809 | 697161 840318 4810 | 679237 862389 4811 | 664260 859029 4812 | 674121 858589 4813 | 700962 927047 4814 | 723397 859761 4815 | 648230 857418 4816 | 677896 867053 4817 | 680828 839011 4818 | 680757 826912 4819 | 673826 880137 4820 | 694897 834591 4821 | 683585 905984 4822 | 671609 815681 4823 | 669748 863109 4824 | 674659 860894 4825 | 659734 844127 4826 | 656156 868643 4827 | 653258 860766 4828 | 684131 898331 4829 | 666516 859837 4830 | 655237 871554 4831 | 653592 959882 4832 | 659280 845579 4833 | 646422 900526 4834 | 627580 840406 4835 | 604546 847329 4836 | 631316 837043 4837 | 705518 925936 4838 | 662898 884734 4839 | 718088 852181 4840 | 666315 872311 4841 | 710082 881600 4842 | 674433 860605 4843 | 685821 816579 4844 | 678856 850293 4845 | 669427 846395 4846 | 687043 806921 4847 | 657981 866945 4848 | 676480 860779 4849 | 704065 832648 4850 | 669178 866011 4851 | 693783 860206 4852 | 683027 876064 4853 | 670957 810768 4854 | 674134 908464 4855 | 637665 858741 4856 | 664325 877878 4857 | 664025 801796 4858 | 672800 874378 4859 | 685124 873363 4860 | 674496 870664 4861 | 684602 823981 4862 | 677769 841641 4863 | 651576 865180 4864 | 650720 817440 4865 | 674472 860330 4866 | 673028 860593 4867 | 683413 861559 4868 | 669638 842011 4869 | 674365 860819 4870 | 687360 862438 4871 | 662684 813662 4872 | 673242 886958 4873 | 674311 859933 4874 | 595580 798572 4875 | 636769 854047 4876 | 685551 798742 4877 | 663945 828490 4878 | 717187 883275 4879 | 706906 885612 4880 | 675988 841317 4881 | 671976 864630 4882 | 669366 869654 4883 | 651216 815098 4884 | 676767 832479 4885 | 657879 857942 4886 | 665828 868934 4887 | 674905 876286 4888 | 640000 863831 4889 | 672818 881943 4890 | 634800 823669 4891 | 658590 886551 4892 | 639463 847461 4893 | 625416 868848 4894 | 672266 862875 4895 | 723173 872525 4896 | 688098 908495 4897 | 673410 863889 4898 | 679788 889464 4899 | 615826 863168 4900 | 598671 854219 4901 | 753254 840123 4902 | 669430 905798 4903 | 726847 875488 4904 | 648443 845340 4905 | 674114 970756 4906 | 675551 956849 4907 | 677459 896720 4908 | 634004 895206 4909 | 653745 809028 4910 | 682420 846881 4911 | 666636 858686 4912 | 682481 879399 4913 | 656834 885944 4914 | 718257 857481 4915 | 672598 856928 4916 | 693997 774817 4917 | 612392 916853 4918 | 671444 860206 4919 | 671404 857240 4920 | 689628 868984 4921 | 704570 845515 4922 | 652233 886054 4923 | 705929 851313 4924 | 682315 843851 4925 | 667131 849230 4926 | 707894 904500 4927 | 649345 864613 4928 | 629998 877765 4929 | 659542 840985 4930 | 621278 888326 4931 | 682304 876841 4932 | 679747 860939 4933 | 663049 843538 4934 | 672876 844123 4935 | 689948 850548 4936 | 696257 894819 4937 | 629377 853726 4938 | 658034 897179 4939 | 696808 866039 4940 | 699668 863774 4941 | 669697 859388 4942 | 606506 766728 4943 | 672474 868765 4944 | 697011 856357 4945 | 708262 945359 4946 | 653181 886417 4947 | 674521 861127 4948 | 729194 856897 4949 | 663168 859429 4950 | 644843 838626 4951 | 672797 843231 4952 | 680677 868629 4953 | 614497 830844 4954 | 646671 857872 4955 | 679242 853941 4956 | 665697 929571 4957 | 749941 916922 4958 | 602365 916673 4959 | 684537 843821 4960 | 694308 904062 4961 | 731712 878998 4962 | 667713 847241 4963 | 730383 879136 4964 | 689363 817577 4965 | 728743 850843 4966 | 683941 915579 4967 | 722463 882675 4968 | 670519 870010 4969 | 683252 858182 4970 | 669288 860515 4971 | 675357 870850 4972 | 673449 860643 4973 | 687325 883004 4974 | 603472 894573 4975 | 669713 851017 4976 | 693362 837786 4977 | 605535 925341 4978 | 687078 791051 4979 | 672387 800443 4980 | 683048 937776 4981 | 713579 879202 4982 | 571669 873544 4983 | 695260 824882 4984 | 702654 841548 4985 | 601619 825604 4986 | 564416 878492 4987 | 703773 870419 4988 | 674931 870112 4989 | 673140 864863 4990 | 681053 892766 4991 | 683321 873932 4992 | 701017 931252 4993 | 645677 814395 4994 | 677362 853471 4995 | 659046 930099 4996 | 665426 853940 4997 | 691827 863963 4998 | 650661 861267 4999 | 599647 858702 5000 | 684091 842566 --------------------------------------------------------------------------------