source: git/Singular/minpoly.cc @ db83bf

spielwiese
Last change on this file since db83bf was ec9db9, checked in by Hans Schoenemann <hannes@…>, 13 years ago
attempt to fix some issues with minpoly.cc git-svn-id: file:///usr/local/Singular/svn/trunk@14240 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 181.0 KB
Line 
1/***********************************************
2 * Copyright (C) 2011 Sebastian Jambor         *
3 * sebastian@momo.math.rwth-aachen.de          *
4 ***********************************************/
5
6
7#include<cmath>
8//#include<iomanip>
9
10#include "minpoly.h"
11
12// TODO: avoid code copying, use subclassing instead!
13
14LinearDependencyMatrix::LinearDependencyMatrix(unsigned n, unsigned long p) {
15    this->n = n;
16    this->p = p;
17
18    matrix = new unsigned long*[n];
19    for (int i = 0; i < n; i++) {
20        matrix[i] = new unsigned long[2*n + 1];
21    }
22    pivots = new unsigned[n];
23    tmprow = new unsigned long[2*n + 1];
24    rows = 0;
25}
26
27LinearDependencyMatrix::~LinearDependencyMatrix() {
28    delete[] tmprow;
29    delete[] pivots;
30
31    for (int i = 0; i < n; i++) {
32        delete[] (matrix[i]);
33    }
34    delete[] matrix;
35}
36
37void LinearDependencyMatrix::resetMatrix() {
38    rows = 0;
39}
40
41int LinearDependencyMatrix::firstNonzeroEntry(unsigned long *row) {
42    for (int i = 0; i < n; i++)
43        if (row[i] != 0)
44            return i;
45
46    return -1;
47}
48
49void LinearDependencyMatrix::reduceTmpRow() {
50    for (int i = 0; i < rows; i++) {
51        unsigned piv = pivots[i];
52        unsigned long x = tmprow[piv] % p;
53        // if the corresponding entry in the row is zero, there is nothing to do
54        if (x != 0) {
55            // subtract tmprow[i] times the i-th row
56            for (int j = piv; j < n + rows + 1; j++) {
57                unsigned long tmp = matrix[i][j]*x % p;
58                tmp = p - tmp;
59                tmprow[j] += tmp;
60                // We don't normalize here, so remember to do it after all reductions.
61                // tmprow[j] %= p;
62            }
63        }
64    }
65
66    // normalize the entries of tmprow.
67    for (int i = 0; i < n + rows + 1; i++) {
68        tmprow[i] %= p;
69    }
70}
71
72
73void LinearDependencyMatrix::normalizeTmp(unsigned i) {
74    unsigned long inv = modularInverse(tmprow[i], p);
75    tmprow[i] = 1;
76    for (int j = i+1; j < 2*n + 1; j++)
77        tmprow[j] = (tmprow[j] * inv) % p;
78}
79
80bool LinearDependencyMatrix::findLinearDependency(unsigned long* newRow, unsigned long* dep) {
81    // Copy newRow to tmprow (we need to add RHS)
82    for (int i = 0; i < n; i++) {
83        tmprow[i] = newRow[i];
84        tmprow[n + i] = 0;
85    }
86    tmprow[2*n] = 0;
87    tmprow[n + rows] = 1;
88
89    reduceTmpRow();
90
91    // Is tmprow reduced to zero? Then we have found a linear dependence.
92    // Otherwise, we just add tmprow to the matrix.
93    unsigned newpivot = firstNonzeroEntry(tmprow);
94    if (newpivot == -1) {
95        for (int i = 0; i <=n; i++) {
96            dep[i] = tmprow[n+i];
97        }
98
99        return true;
100    } else {
101        normalizeTmp(newpivot);
102
103        for (int i = 0; i < 2*n + 1; i++) {
104            matrix[rows][i] = tmprow[i];
105        }
106
107        pivots[rows] = newpivot;
108        rows++;
109
110        return false;
111    }
112}
113
114#if 0
115std::ostream& operator<<(std::ostream& out, const LinearDependencyMatrix& mat) {
116    int width = ((int)log10(mat.p)) + 1;
117
118    for (int i = 0; i < mat.rows; i++) {
119        for (int j = 0; j < mat.n; j++) {
120            out << std::setw(width) << mat.matrix[i][j] << " ";
121        }
122        out << "| ";
123        for (int j = mat.n; j <= 2*mat.n; j++) {
124            out << std::setw(width) << mat.matrix[i][j] << " ";
125        }
126        out << std::endl;
127    }
128    out << "-----" << std::endl;
129    for (int j = 0; j < mat.n; j++) {
130        out << std::setw(width) << mat.tmprow[j] << " ";
131    }
132    out << "| ";
133    for (int j = mat.n; j <= 2*mat.n; j++) {
134        out << std::setw(width) << mat.tmprow[j] << " ";
135    }
136    out << std::endl;
137
138    return out;
139}
140#endif
141
142
143NewVectorMatrix::NewVectorMatrix(unsigned n, unsigned long p) {
144    this->n = n;
145    this->p = p;
146
147    matrix = new unsigned long*[n];
148    for (int i = 0; i < n; i++) {
149        matrix[i] = new unsigned long[n];
150    }
151
152    pivots = new unsigned[n];
153    rows = 0;
154}
155
156NewVectorMatrix::~NewVectorMatrix() {
157    delete pivots;
158
159    for (int i = 0; i < n; i++) {
160        delete[] matrix[i];
161    }
162    delete matrix;
163}
164
165int NewVectorMatrix::firstNonzeroEntry(unsigned long *row) {
166    for (int i = 0; i < n; i++)
167        if (row[i] != 0)
168            return i;
169
170    return -1;
171}
172
173//void NewVectorMatrix::subtractIthRow(unsigned long* row, unsigned i) {
174//    unsigned piv = pivots[i];
175//    unsigned long x = row[piv];
176//    for (int j = piv; j < n; j++) {
177//        unsigned tmp = matrix[i][j]*x % p;
178//        tmp = p - tmp;
179//        row[j] += tmp;
180//        row[j] %= p;
181//    }
182//}
183//
184void NewVectorMatrix::normalizeRow(unsigned long *row, unsigned i) {
185    unsigned long inv = modularInverse(row[i], p);
186    row[i] = 1;
187
188    for (int j = i+1; j < n; j++) {
189        row[j] = (row[j] * inv) % p;
190    }
191}
192
193void NewVectorMatrix::insertRow(unsigned long* row) {
194    for (int i = 0; i < rows; i++) {
195        unsigned piv = pivots[i];
196        unsigned long x = row[piv] % p;
197        // if the corresponding entry in the row is zero, there is nothing to do
198        if (x != 0) {
199            // subtract row[i] times the i-th row
200            for (int j = piv; j < n; j++) {
201                unsigned long tmp = matrix[i][j]*x % p;
202                tmp = p - tmp;
203                row[j] += tmp;
204                // We don't normalize here, so remember to do it after all reductions.
205                // row[j] %= p;
206            }
207        }
208    }
209
210    // normalize the entries of row.
211    for (int i = 0; i < n + rows + 1; i++) {
212        row[i] %= p;
213    }
214
215    unsigned piv = firstNonzeroEntry(row);
216
217    if (piv != -1) {
218        // normalize and insert row into the matrix
219        normalizeRow(row, piv);
220        for (int i = 0; i < n; i++) {
221            matrix[rows][i] = row[i];
222        }
223
224        pivots[rows] = piv;
225        rows++;
226    }
227}
228
229
230void NewVectorMatrix::insertMatrix(LinearDependencyMatrix& mat) {
231    // The matrix in LinearDependencyMatrix is already in reduced form.
232    // Thus, if the current matrix is empty, we can simply copy the other matrix.
233    if (rows == 0) {
234        for (int i = 0; i < mat.rows; i++) {
235            for (int j = 0; j < n; j++) {
236                matrix[i][j] = mat.matrix[i][j];
237
238                rows = mat.rows;
239                for (int i = 0; i < rows; i++) {
240                    pivots[i] = mat.pivots[i];
241                }
242            }
243        }
244    } else {
245        for (int i = 0; i < mat.rows; i++) {
246            insertRow(mat.matrix[i]);
247        }
248    }
249}
250
251int NewVectorMatrix::findSmallestNonpivot() {
252    // This method isn't very efficient, but it is called at most a few times, so efficiency is not important.
253    if (rows == n)
254        return -1;
255
256    for (int i = 0; i < n; i++) {
257        bool isPivot = false;
258        for (int j = 0; j < rows; j++) {
259            if (pivots[j] == i) {
260                isPivot = true;
261                break;
262            }
263        }
264
265        if (!isPivot) {
266            return i;
267        }
268    }
269}
270
271
272void vectorMatrixMult(unsigned long* vec, unsigned long **mat, unsigned long* result, unsigned n, unsigned long p) {
273    unsigned long tmp;
274    for (int i = 0; i < n; i++) {
275        result[i] = 0;
276        for (int j = 0; j < n; j++) {
277            tmp = vec[j]*mat[j][i] % p;
278            result[i] += tmp;
279        }
280        // We can afford to reduce mod p only after all additions, since p < 2^31, but an unsigned long can store 2^64.
281        // Thus the only possibility for an overflow would occurr for matrices with about 2^31 rows.
282        result[i] %= p;
283    }
284}
285
286#if 0
287void printVec(unsigned long* vec, int n) {
288    for (int i = 0; i < n; i++) {
289        std::cout << vec[i] << ", ";
290    }
291
292    std::cout << std::endl;
293}
294#endif
295
296
297unsigned long* computeMinimalPolynomial(unsigned long** matrix, unsigned n, unsigned long p) {
298    LinearDependencyMatrix lindepmat(n, p);
299    NewVectorMatrix newvectormat(n, p);
300
301    unsigned long* result = new unsigned long[n+1];
302    unsigned long* mpvec = new unsigned long[n+1];
303    unsigned long* tmp = new unsigned long[n+1];
304
305    // initialize result = 1
306    for (int i = 0; i <= n; i++) {
307        result[i] = 0;
308    }
309    result[0] = 1;
310
311    int degresult = 0;
312
313
314    int i = 0;
315
316    unsigned long* vec = new unsigned long[n];
317    unsigned long* vecnew = new unsigned long[n];
318
319    while (i != -1) {
320        for (int j = 0; j < n; j++) {
321            vec[j] = 0;
322        }
323        vec[i] = 1;
324
325        lindepmat.resetMatrix();
326
327        while (true) {
328            bool ld = lindepmat.findLinearDependency(vec, mpvec);
329
330            if (ld) {
331                break;
332            }
333
334            vectorMatrixMult(vec, matrix, vecnew, n, p);
335            unsigned long* swap = vec;
336            vec = vecnew;
337            vecnew = swap;
338        }
339
340
341        unsigned degmpvec = n;
342        while (mpvec[degmpvec] == 0) {
343            degmpvec--;
344        }
345
346        // if the dimension is already maximal, i.e., the minimal polynomial of vec has the highest possible degree,
347        // then we are done.
348        if (degmpvec == n) {
349            unsigned long* swap = result;
350            result = mpvec;
351            mpvec = swap;
352            i = -1;
353        } else {
354            // otherwise, we have to compute the lcm of mpvec and prior result
355
356            // tmp = zeropol
357            for (int j = 0; j <= n; j++) {
358                tmp[j] = 0;
359            }
360            degresult  = lcm(tmp, result, mpvec, p, degresult, degmpvec);
361            unsigned long* swap = result;
362            result = tmp;
363            tmp = swap;
364
365            if (degresult == n) {
366                // minimal polynomial has highest possible degree, so we are done.
367                i = -1;
368            } else {
369                newvectormat.insertMatrix(lindepmat);
370                i = newvectormat.findSmallestNonpivot();
371            }
372        }
373    }
374
375    // TODO: take lcms of the different monomials!
376
377    delete[] vecnew;
378    delete[] vec;
379    delete[] tmp;
380    delete[] mpvec;
381
382    return result;
383}
384
385
386void rem(unsigned long* a, unsigned long* q, unsigned long p, int & dega, int degq) {
387    while (degq <= dega) {
388        unsigned d = dega - degq;
389        long factor = a[dega]*modularInverse(q[degq], p) % p;
390        for (int i = degq; i >= 0; i--) {
391            long tmp = p - (factor*q[i] % p);
392            a[d + i] += tmp;
393            a[d + i] %= p;
394        }
395
396        while (a[dega] == 0 && dega >= 0) {
397            dega--;
398        }
399    }
400}
401
402
403void quo(unsigned long* a, unsigned long* q, unsigned long p, int & dega, int degq) {
404    unsigned degres = dega - degq;
405    unsigned long* result = new unsigned long[degres + 1];
406
407    while (degq <= dega) {
408        unsigned d = dega - degq;
409        long inv = modularInverse(q[degq], p);
410        result[d] = a[dega]*inv % p;
411        for (int i = degq; i >= 0; i--) {
412            long tmp = p - (result[d]*q[i] % p);
413            a[d + i] += tmp;
414            a[d + i] %= p;
415        }
416
417        while (a[dega] == 0 && dega >= 0) {
418            dega--;
419        }
420    }
421
422    // copy result into a
423    for (int i = 0; i <= degres; i++) {
424        a[i] = result[i];
425    }
426    // set all following entries of a to zero
427    for (int i = degres + 1; i <= degq + degres; i++) {
428        a[i] = 0;
429    }
430
431    dega = degres;
432
433    delete[] result;
434}
435
436
437void mult(unsigned long* result, unsigned long* a, unsigned long* b, unsigned long p, int dega, int degb) {
438    // NOTE: we assume that every entry in result is preinitialized to zero!
439
440    for (int i = 0; i <= dega; i++) {
441        for (int j = 0; j <= degb; j++) {
442            result[i + j] += (a[i]*b[j] % p);
443            result[i + j] %= p;
444        }
445    }
446}
447
448
449int gcd(unsigned long* g, unsigned long* a, unsigned long* b, unsigned long p, int dega, int degb) {
450    unsigned long* tmp1 = new unsigned long[dega + 1];
451    unsigned long* tmp2 = new unsigned long[degb + 1];
452    for (int i = 0; i <= dega; i++) {
453        tmp1[i] = a[i];
454    }
455    for (int i = 0; i <= degb; i++) {
456        tmp2[i] = b[i];
457    }
458    int degtmp1 = dega;
459    int degtmp2 = degb;
460
461    unsigned long* swappol;
462    int swapdeg;
463
464    while (degtmp2 >= 0) {
465        rem(tmp1, tmp2, p, degtmp1, degtmp2);
466        swappol = tmp1;
467        tmp1 = tmp2;
468        tmp2 = swappol;
469
470        swapdeg = degtmp1;
471        degtmp1 = degtmp2;
472        degtmp2 = swapdeg;
473    }
474
475    for (int i = 0; i <= degtmp1; i++) {
476        g[i] = tmp1[i];
477    }
478
479    delete[] tmp1;
480    delete[] tmp2;
481
482    return degtmp1;
483}
484
485
486int lcm(unsigned long* l, unsigned long* a, unsigned long* b, unsigned long p, int dega, int degb) {
487    unsigned long* g = new unsigned long[dega + 1];
488    // initialize entries of g to zero
489    for (int i = 0; i <= dega; i++) {
490        g[i] = 0;
491    }
492
493    int degg = gcd(g, a, b, p, dega, degb);
494
495    if (degg > 0) {
496        // non-trivial gcd, so compute a = (a/g)
497        quo(a, g, p, dega, degg);
498    }
499    mult(l, a, b, p, dega, degb);
500
501    // normalize
502    if (l[dega + degb + 1] != 1) {
503        unsigned long inv = modularInverse(l[dega + degb], p);
504        for (int i = 0; i <= dega + degb; i++) {
505            l[i] *= inv;
506            l[i] %= p;
507        }
508    }
509
510    return dega + degb;
511}
512
513
514// compute x^(-1) mod p
515long modularInverse(long x, long p) {
516    long u1 = 1;
517    long u2 = 0;
518    long u3 = x;
519    long v1 = 0;
520    long v2 = 1;
521    long v3 = p;
522
523    long q, t1, t2, t3;
524    while (v3 != 0) {
525        q = u3 / v3;
526        t1 = u1 - q * v1;
527        t2 = u2 - q * v2;
528        t3 = u3 - q * v3;
529        u1 = v1;
530        u2 = v2;
531        u3 = v3;
532        v1 = t1;
533        v2 = t2;
534        v3 = t3;
535    }
536
537    if (u1 < 0) {
538        u1 += p;
539    }
540
541    return u1;
542}
543/*
544int main() {
545//    unsigned long p = 5;
546//    unsigned n = 5;
547//
548//    unsigned long tmp[5][5] = {
549//        {4, 2, 2, 0, 0},
550//        {1, 0, 4, 0, 0},
551//        {1, 4, 0, 0, 0},
552//        {0, 0, 0, 0, 2},
553//        {0, 0, 0, 1, 2}
554//    };
555//
556//    unsigned long** mat = new unsigned long*[n];
557//
558//    for (int i = 0; i < n; i++) {
559//        mat[i] = new unsigned long[n];
560//        for (int j = 0; j < n; j++) {
561//            mat[i][j] = tmp[i][j];
562//        }
563//    }
564
565    unsigned long p = 2147483647;
566    unsigned n = 144;
567
568    unsigned long tmp[144][144] = {
569        { 675404679,  229969202,  2043258051,  216211357,  1477018606,  262035292,  1238185201,  435546435,  1676840408,  569764551,  2054060931,  1532785340,  1457180050,  1796715512,  174490674,  353680680,  611990038,  1518663662,  1121048639,  1606061363,  241589639,  974320457,  498680823,  1941401535,  1220735521,  1184097691,  432129432,  1840441318,  2128392102,  1641711326,  564594829,  1054998227,  1766260889,  2032769309,  1784198938,  1565682907,  919118918,  2013474666,  1381346629,  721427183,  632729103,  198283955,  1465572480,  1835621413,  1806225960,  654832333,  1419918559,  1104401876,  1817114492,  1265761615,  206058687,  39984355,  1721271367,  1593702828,  450778316,  1516483668,  1517771444,  933944570,  204699028,  1008598420,  1607178098,  2010187045,  48940036,  1830218438,  918121738,  1065078103,  1745505967,  487449558,  397953698,  668658033,  405082609,  1338582332,  98120140,  502769790,  1910313730,  149887431,  51797432,  1121994256,  849712142,  1767705575,  1068487735,  308103054,  577736468,  272560152,  1529134312,  2116085457,  1742262556,  520841687,  2044222268,  70020898,  1597466390,  1115776764,  1361778128,  1006313653,  2005848800,  1479207546,  742754273,  1266820293,  1263819461,  998016414,  744269980,  692793104,  1482930079,  162917395,  583832157,  584134967,  20241179,  1779562579,  1760041266,  324634378,  1247577427,  72614237,  835460172,  1755609857,  1144805770,  54391225,  1466477071,  758359386,  128420243,  1374058397,  2002875633,  1914039055,  982546257,  1663813011,  259779940,  1615396466,  1421924476,  644551086,  172497626,  1215179715,  1795454028,  1058716673,  837131709,  1558144290,  1673115315,  310533731,  1425175896,  851106753,  365425953,  420700709,  807284530,  1561393777,  609416170,  2041479232,  },
570        { 2147483618,  1827466477,  0,  2064973327,  0,  1628672626,  0,  1604687238,  0,  254232675,  0,  1181104006,  1181104006,  1868520143,  0,  0,  1661351642,  1821728550,  1661351642,  1917872191,  0,  315214157,  0,  652436287,  652436287,  1101913935,  0,  0,  1753185044,  1444268085,  1753185044,  1899287381,  0,  1575595366,  0,  0,  1159194675,  8419620,  0,  0,  0,  218344633,  1603406478,  1326943524,  1603406478,  442213257,  0,  0,  0,  0,  454936148,  416500243,  1122666501,  290235132,  416500243,  404102727,  0,  1693361962,  0,  0,  872526512,  393094985,  0,  0,  0,  535424895,  1187702107,  19581534,  1187702107,  1118123480,  0,  0,  0,  0,  1468252514,  149438259,  1886530627,  183889637,  607282968,  1441664732,  0,  203857013,  0,  1952207022,  0,  0,  1704691900,  1365939444,  1704691900,  501733147,  0,  0,  0,  1436331593,  619982899,  874696550,  2000042029,  1935710241,  0,  0,  0,  767424517,  235204465,  715890653,  402321082,  490060792,  103256040,  1427676023,  0,  1339886610,  0,  762487544,  0,  0,  1316277539,  663318570,  1316277539,  400540838,  0,  0,  1744337171,  554783794,  1744337171,  269345751,  0,  767424517,  0,  1364449372,  937027807,  373892932,  1091817711,  57674092,  0,  1689638938,  767424517,  457844709,  612634613,  1992693743,  1434089624,  56122088,  1438989326,  901305276,  133517040,  111592807,  },
571        { 2147483642,  0,  1684320,  310809372,  0,  0,  633381781,  513429651,  0,  0,  0,  449283845,  0,  1579081232,  2043452782,  449283845,  329708615,  1579081232,  1813601471,  2055664422,  0,  0,  0,  1010341062,  0,  535416359,  1529688022,  1010341062,  1466922633,  333063959,  834518801,  1282882153,  0,  0,  0,  0,  0,  935657634,  0,  1676034621,  1029145320,  0,  1503982862,  1181884489,  1945131247,  1529752174,  1007678320,  1676034621,  1156734421,  1706335262,  60600122,  1720137189,  923843177,  1553381088,  2023785574,  448608025,  0,  303528600,  0,  961793901,  143280115,  1529185068,  0,  1679684376,  1858867057,  202352400,  1755936766,  1719249599,  0,  286870749,  1143957842,  1679684376,  278989,  1532040921,  2023101815,  1685814826,  435789940,  276765307,  708234156,  1559511599,  0,  1161702659,  960810926,  383732660,  961793901,  1633481436,  390940443,  67691316,  59824778,  1455788474,  0,  1335895260,  1864628511,  0,  875522084,  383546187,  57084934,  1904340533,  2069017729,  1111999415,  1053033632,  1187613189,  879152007,  1784264551,  619893265,  887967162,  1233120927,  179277672,  0,  1799600564,  86559928,  214664489,  446808715,  1253866217,  334218998,  219666964,  1791850121,  47994169,  1069013721,  117204978,  533117457,  871000646,  1657594919,  1485785687,  0,  1438695711,  31242930,  774131456,  1914778695,  1115202361,  1650612361,  628821354,  423342613,  1377779395,  622182004,  893002703,  1905364038,  1746165011,  1978126477,  1393954004,  1249034215,  273936542,  1130321112,  66539092,  },
572        { 0,  2147483642,  2147483618,  1153746118,  0,  0,  0,  785035801,  0,  0,  0,  0,  0,  1174159759,  0,  0,  1170495857,  1174159759,  1170495857,  1362126083,  0,  0,  0,  0,  0,  1192129897,  0,  0,  1683443486,  1192129897,  1683443486,  911727698,  0,  0,  0,  0,  0,  2123971400,  0,  0,  0,  0,  0,  1997674472,  0,  1642657664,  0,  0,  0,  0,  1992159971,  2113537806,  2123971400,  1642657664,  2113537806,  1505049236,  0,  0,  0,  0,  0,  137621979,  0,  0,  0,  0,  0,  759500440,  0,  1580435672,  0,  0,  0,  0,  296208206,  1075489426,  128699348,  1598280934,  2109666331,  1429081320,  0,  0,  0,  1186498428,  0,  0,  8922631,  2102870492,  8922631,  1412157149,  0,  0,  0,  0,  1922803004,  2008135685,  2129638385,  2083924927,  0,  0,  0,  1940648266,  1907882932,  217711578,  361356070,  1213345118,  1951524463,  1591686152,  0,  0,  0,  1414459071,  0,  0,  1141885273,  2011196748,  1141885273,  1365451364,  0,  0,  1077568972,  1651343758,  1077568972,  156302771,  0,  1940648266,  0,  0,  1482163321,  164134492,  861657178,  767583472,  0,  1113306742,  1940648266,  1034176905,  413670762,  620506143,  111944877,  1824615570,  691757608,  1198412061,  440620675,  1380064791,  },
573        { 1061109425,  1523203518,  132661705,  1803087630,  127569380,  259285919,  931786681,  976955058,  602673502,  823289302,  799211731,  451778556,  999364641,  816777747,  175377407,  103647663,  772935629,  649128863,  992049194,  678100288,  1666214419,  846177378,  228233695,  1566714618,  1413175203,  1163537466,  1022844059,  1336313305,  2058769659,  206615560,  1444352033,  817841433,  394126424,  773952693,  1353508556,  1737307169,  257354058,  520411638,  1971419500,  779165511,  662978822,  1334301483,  852554267,  128196811,  809835315,  1553852639,  1298288724,  1587836181,  1570113305,  578094283,  43258179,  1966466054,  25370083,  1356093779,  1497322066,  1202895106,  1097661048,  598636352,  276226170,  943811326,  1178708657,  816665613,  200248701,  547314950,  1095711583,  690019183,  1709714563,  364851955,  2139682618,  2021240352,  46164116,  1403187515,  664965647,  1846672087,  547109149,  607991305,  577015247,  1457280196,  882365202,  175087333,  1038102427,  1790442368,  1304149784,  2001199446,  43809067,  1300885,  1603947917,  873715704,  1761330568,  413249443,  1816338062,  1289622513,  1610974686,  1729239280,  1933304174,  1830866028,  484337355,  1550017976,  1028604173,  1837851621,  805066086,  420359666,  52071360,  737947517,  285714282,  10330671,  1655085033,  1612657259,  1870605193,  1444677704,  177278613,  575362190,  1881949103,  1579108114,  1064340449,  1918206572,  1714055115,  1686800040,  345118598,  365392023,  1976761850,  467184349,  1627041949,  2064963109,  2050079339,  86396587,  1758729446,  1217453281,  1666279956,  1201679273,  566821260,  372215629,  1748725500,  121817818,  905461323,  1021823767,  313360486,  1698613085,  677505093,  2075244308,  1820235691,  910493216,  342520554,  1902713859,  },
574        { 0,  2096954554,  0,  1918357518,  2147483618,  1577511850,  0,  1975844318,  0,  94014630,  0,  1530920160,  1530920160,  1615853972,  0,  0,  658170354,  301814848,  658170354,  943922562,  0,  2025218759,  0,  726385756,  726385756,  1119762665,  0,  0,  153208851,  62848968,  153208851,  1743641734,  0,  1354943537,  0,  0,  2082714612,  628033286,  0,  0,  0,  371654479,  153610106,  1853893117,  153610106,  172569710,  0,  0,  0,  0,  1489163152,  444805430,  1423183957,  1275748108,  444805430,  1853297432,  0,  1306268770,  0,  0,  1405433785,  1337113297,  0,  0,  0,  1971853667,  120361894,  1857242988,  120361894,  1731482814,  0,  0,  0,  0,  206316466,  282617490,  1744807983,  129502686,  1271117849,  57101308,  0,  380647621,  0,  758616955,  0,  0,  1124258392,  216339515,  1124258392,  1487979193,  0,  0,  0,  2015947768,  269706370,  2121707391,  1755896630,  518091680,  0,  0,  0,  661293387,  1564807910,  1346976924,  368892725,  384880172,  522080051,  789436934,  0,  1653536625,  0,  1568586066,  0,  0,  674686080,  1329319360,  674686080,  1316457181,  0,  0,  965455683,  693767250,  965455683,  1074492093,  0,  661293387,  0,  108673344,  1929342351,  1346421592,  1765738865,  515880040,  0,  1158983288,  661293387,  988500359,  824896873,  163603486,  1459278007,  1447815434,  584697037,  1533025909,  1366013691,  1510898483,  },
575        { 0,  0,  2071689950,  619961459,  2147483642,  0,  1365968022,  171610997,  0,  0,  0,  1130165923,  0,  1969249834,  1770200265,  1130165923,  2040326915,  1969249834,  485436355,  475013181,  0,  0,  0,  2036712864,  0,  858066925,  408302596,  2036712864,  1443366674,  458299457,  752747137,  372813268,  0,  0,  0,  0,  0,  667883141,  0,  222299621,  1792096173,  0,  1442633134,  1769104847,  1747716179,  281348074,  1887960931,  222299621,  1834680903,  1842400602,  1316881611,  1504691621,  1219759043,  1325079917,  1415816693,  1204148180,  0,  599651202,  0,  672036067,  1011663331,  1802546089,  0,  1926531456,  2000949429,  399767468,  1328767402,  1872522519,  0,  1021094056,  126462941,  1926531456,  437441002,  525355889,  134412288,  112396396,  1209780524,  2101964584,  578352799,  1820308195,  0,  1182940680,  676527574,  971576460,  672036067,  934786959,  1215996952,  817307422,  1263424094,  833541716,  0,  1393739343,  1523450197,  0,  718527206,  1104867357,  392127697,  468096731,  1153395223,  590327830,  590737649,  1983218218,  849923819,  229154085,  1341926936,  1635610778,  1784948920,  1737085831,  0,  846962765,  1614121724,  1890174352,  1611314533,  1072338228,  1436654438,  1421390959,  180376540,  1938070186,  1968681059,  352229444,  1178716588,  275267118,  1852900117,  1198754087,  0,  1931058247,  1529485573,  539867460,  364336414,  1851555992,  2127066820,  1443318532,  145018304,  1940126384,  2112429376,  689137498,  1325172374,  1367809500,  278984061,  391565171,  1303199696,  2107771603,  769785839,  423288751,  },
576        { 0,  0,  0,  960051432,  0,  2147483642,  2147483618,  668426845,  0,  0,  0,  0,  0,  621507051,  0,  0,  354425047,  621507051,  354425047,  1456138354,  0,  0,  0,  0,  0,  1379442492,  0,  0,  906454657,  1379442492,  906454657,  349913497,  0,  0,  0,  0,  0,  90952278,  0,  0,  0,  0,  0,  540660604,  0,  567368754,  0,  0,  0,  0,  288195910,  926305326,  90952278,  567368754,  926305326,  1166769366,  0,  0,  0,  0,  0,  1014189749,  0,  0,  0,  0,  0,  1467507289,  0,  1503779919,  0,  0,  0,  0,  1506306390,  274300435,  159527347,  1065621076,  742596237,  1968556769,  0,  0,  0,  350093988,  0,  0,  854662402,  21655284,  854662402,  189754501,  0,  0,  0,  0,  773996412,  252735374,  438158843,  1975233823,  0,  0,  0,  335837569,  1353004929,  138323217,  498071808,  304708094,  809998355,  449392529,  0,  0,  0,  1858746360,  0,  0,  371749272,  1403985103,  371749272,  2027928348,  0,  0,  108186252,  1151791130,  108186252,  1399383371,  0,  335837569,  0,  0,  1955834267,  351266970,  815863327,  1143670382,  0,  1679187845,  335837569,  468295802,  1475808509,  1139970940,  1074192975,  1084434125,  970518250,  477860222,  514448655,  2127497612,  },
577        { 682142204,  1350698173,  1076635400,  1160317970,  107773318,  1582957992,  307879824,  1115255858,  1802354924,  1735920072,  2047562919,  1516433515,  1585768105,  107012382,  903530794,  339444041,  501301671,  342271302,  502560643,  1851758482,  1488976288,  1080227451,  823216794,  899351518,  2003220090,  1249936025,  1582602837,  837581849,  1712473,  29851258,  1258357150,  1313417407,  335175995,  249878600,  557481524,  1784452830,  983596271,  1000199315,  605012295,  60480020,  1249191279,  440481219,  926892877,  2085927832,  1190110046,  17762731,  1505024599,  2062326257,  1651245153,  250749416,  1909807039,  941227581,  1762472434,  2044542891,  1511539613,  1319788320,  691296237,  383101303,  880370555,  1314196945,  398409612,  138607971,  613968146,  1844613283,  961625358,  1426268025,  1406893020,  2122403749,  836321832,  724553613,  774332765,  1458199117,  646971261,  97182044,  336565990,  1377724434,  1303377146,  1958249375,  1452647339,  519566249,  1247371537,  1911269534,  1678126841,  1462404505,  1146717245,  890342572,  649413861,  162296572,  1243889125,  309900336,  1601038289,  1187840094,  1422260677,  1921008649,  463693035,  1954316511,  317216177,  1118437332,  1556587101,  1945753365,  178940237,  654406842,  1058685125,  803762347,  745498906,  850197655,  1451154214,  1516705427,  1650185242,  870102855,  1519267234,  158860216,  1334289962,  1267498131,  2106954993,  1749293920,  503261261,  1234678654,  1241460144,  889108492,  485856891,  821852727,  1630532585,  1824760202,  486130562,  1131180534,  1977758924,  96311849,  1852384266,  1938916362,  1230629756,  339773272,  1500387425,  1875794467,  1369184166,  1968494804,  1052687935,  1324641801,  1569963126,  629864659,  648760003,  2138133532,  786410720,  800016275,  },
578        { 0,  2021161237,  0,  616913194,  0,  2077945,  0,  1712932479,  2147483618,  2057143755,  0,  1921524758,  1921524758,  1259200606,  0,  0,  622264155,  1072150376,  622264155,  96531799,  0,  1679133128,  0,  1282192409,  1282192409,  1052182295,  0,  0,  1709940165,  2143646242,  1709940165,  421580698,  0,  621659739,  0,  0,  1887948737,  1041054455,  0,  0,  0,  734685195,  974018962,  1292284029,  974018962,  1807181387,  0,  0,  0,  0,  760812018,  2008743206,  1882975237,  684959799,  2008743206,  1365946978,  0,  2125029235,  0,  0,  1767674494,  794621706,  0,  0,  0,  390191885,  1752315331,  1917853454,  1752315331,  166012253,  0,  0,  0,  0,  1032336898,  1050860096,  1380955363,  567466317,  1416942624,  1126196014,  0,  1662798784,  0,  764710827,  0,  0,  1374295585,  1766886062,  1374295585,  1462305542,  0,  0,  0,  1439425605,  639029967,  1880363018,  1141743202,  950764874,  0,  0,  0,  1644770412,  1294375675,  1703674818,  1301058271,  540615164,  698248348,  415453147,  0,  3222526,  0,  815678944,  0,  0,  302782941,  1480281826,  302782941,  1950664211,  0,  0,  2092515230,  1989048126,  2092515230,  1401339012,  0,  1644770412,  0,  335430553,  22275577,  2066528406,  661619519,  1024332970,  0,  1781401119,  1644770412,  366082528,  1005426470,  1508139705,  1044837483,  1584165521,  1835337973,  1497558628,  1903837492,  713247704,  },
579        { 1389548017,  675020022,  689032274,  1718382957,  2100454411,  384992679,  29332329,  281854038,  1592429976,  729910265,  592786472,  457214773,  2103619697,  2001362813,  738243658,  941475767,  444832489,  1881680771,  1368106720,  1484533242,  1377207798,  1676779802,  669983508,  932950729,  586102258,  294481861,  780835035,  224234099,  1163452697,  1756118880,  643174013,  578896747,  1242171937,  288078195,  328347473,  2069767163,  35030904,  575840205,  797673180,  92286495,  622542910,  1528474976,  1950605132,  662656060,  1373828153,  1690953642,  1642555725,  2135818933,  357663818,  570634531,  1386954192,  659978983,  820983367,  180398399,  1143270729,  1898176373,  796488270,  1416133925,  2052584515,  1719750577,  262918113,  1934300330,  1085978311,  1582401573,  803091526,  920518134,  1817991773,  2087862232,  548425090,  2070690966,  552425173,  361105589,  449679904,  1481815899,  660516945,  1695197746,  2072453858,  120927040,  7915895,  794885664,  1814123184,  1946023902,  1316156127,  440230609,  222500821,  187617891,  1077557297,  1415530059,  514705410,  1262105855,  549402908,  2018482170,  108130602,  872659529,  2035164112,  1484702849,  721032505,  2090985332,  1926911279,  585379557,  1507952616,  2058644620,  994733003,  1850846042,  345751019,  1147231931,  447242424,  1752370011,  589075624,  1550079009,  933608341,  1288813076,  349234804,  2000278814,  464968299,  792587524,  1569334772,  1562428910,  1524812056,  1703786816,  1139880632,  1518297882,  791798724,  237220922,  1908197300,  916136190,  531329954,  315536248,  1187481853,  114452169,  2075119435,  2031238756,  683810313,  355874784,  426542544,  430631771,  477269795,  1344612333,  1218307228,  739086410,  2140134980,  849179694,  1085959406,  134731288,  },
580        { 0,  1869574010,  858993538,  833584484,  1,  781756239,  662652043,  1961420971,  28,  803411529,  2147483624,  1065440552,  1752635390,  1159354156,  1705715534,  1460288809,  1468073745,  906348113,  1629646352,  465776062,  0,  1940314626,  0,  1376759628,  1431776075,  132208008,  1304852034,  2092467200,  878835960,  1114872670,  627682634,  1152456475,  0,  222327700,  0,  0,  1576505661,  934056843,  0,  95307421,  257698112,  329521445,  858519658,  1178789934,  1682130776,  1141624144,  218838847,  95307421,  597818495,  1323872529,  539644287,  358769691,  362426863,  1019312417,  1954247773,  467721331,  0,  830848487,  0,  288376366,  1362231592,  1868419966,  0,  302897402,  392682716,  3373202,  111252921,  403774142,  1071034907,  2106802886,  91012363,  302897402,  5010819,  1764454393,  1577208759,  1851534268,  1349686035,  836485806,  1645611740,  183790922,  0,  273313910,  1206681237,  419397148,  288376366,  705601817,  690323007,  693295008,  1984539779,  247634830,  0,  1939934473,  1770140035,  614469061,  168660412,  649715242,  1497738182,  503774823,  1605499679,  369203558,  130301141,  1113736031,  724332157,  52351332,  864324015,  1231225887,  1337896132,  2096247740,  0,  2112938278,  971480682,  1185962699,  1912283054,  470401186,  171408606,  2100877212,  1110165701,  248643272,  1718395973,  1644358874,  1603646249,  626186594,  2118735562,  536131153,  0,  1987373259,  1043574811,  455836357,  1723638689,  335366509,  1112668943,  312905810,  173639393,  133705705,  423596132,  1111323507,  291383130,  319116486,  884532281,  1919607399,  1297495448,  1745962536,  621192546,  322274072,  },
581        { 0,  1945367327,  1288490109,  137216033,  2147483646,  246892217,  1484831604,  97340079,  2147483619,  727464911,  2147483641,  831388549,  144193711,  545843835,  441768113,  687194838,  475969178,  509188149,  314396571,  943257532,  0,  1082508030,  0,  1741327900,  1686311453,  625283878,  842631613,  55016447,  1376342421,  1798721027,  1627495747,  2077350247,  0,  890536061,  0,  0,  1478433171,  1357043175,  0,  2052176226,  1889785535,  1999317975,  2092367806,  1037599763,  1268756688,  177852579,  1928644800,  2052176226,  1549665152,  823611118,  461331488,  1231245084,  180036094,  1801874059,  1783250649,  1296361455,  0,  1804672440,  0,  1859107281,  1295392634,  853739095,  0,  1844586245,  1754800931,  442030001,  1851436231,  1335850480,  891654245,  2111526733,  2056471284,  1844586245,  2142472828,  383029254,  133422007,  94430864,  1892758329,  351259195,  1129183962,  1506656764,  0,  1396716261,  940802410,  168828414,  1859107281,  1441881830,  1169867545,  1030592721,  2023134420,  1692010084,  0,  207549174,  377343612,  49075310,  794425476,  710295634,  1778597467,  1189446449,  541983968,  1778280089,  2017182506,  867981502,  1805973024,  1421379282,  768109869,  2131892190,  1951785901,  1934428346,  0,  217713074,  1176002965,  1456585925,  235200593,  1677082461,  1731247173,  52236173,  792490078,  66398698,  429087674,  503124773,  1869553257,  1905071663,  1354463944,  1504773324,  0,  2141827921,  1103908836,  180331749,  74472666,  1349018212,  188144070,  396490317,  1973844254,  1184947372,  1558121401,  1864990710,  40149098,  178181856,  719709047,  1735526310,  1751340196,  766804355,  637808345,  970714943,  },
582        { 0,  0,  0,  858993538,  0,  1,  0,  662652043,  0,  28,  0,  2147483624,  6,  1460288809,  0,  0,  1705715534,  1460288809,  1705715534,  1767072193,  0,  0,  0,  0,  0,  1997159779,  0,  0,  1304852034,  1997159779,  1304852034,  350755805,  0,  0,  0,  0,  0,  1889785389,  0,  0,  0,  0,  0,  257698112,  0,  1306897390,  0,  0,  0,  0,  218838847,  788433337,  1889785389,  1306897390,  788433337,  1711339810,  0,  0,  0,  0,  0,  1012385366,  0,  0,  0,  0,  0,  392682716,  0,  1082433909,  0,  0,  0,  0,  91012363,  437166230,  724009000,  1659186641,  1513464583,  769003695,  0,  0,  0,  1206681237,  0,  0,  288376366,  705601817,  288376366,  568060651,  0,  0,  0,  0,  925974515,  1770140035,  1570730915,  1031303412,  0,  0,  0,  1502727247,  1605499679,  10737410,  1733326143,  1584536126,  868708257,  359703529,  0,  0,  0,  971480682,  0,  0,  1912283054,  470401186,  1912283054,  1853482952,  0,  0,  1847347253,  999602474,  1847347253,  208612612,  0,  1502727247,  0,  0,  1092660120,  1043574811,  1305874567,  1204763922,  0,  1071185294,  1502727247,  1076298353,  1289512800,  1934269200,  1245029212,  1589904874,  1110555765,  783959382,  622770274,  1350869470,  },
583        { 0,  0,  1768515688,  2044931826,  0,  0,  601207866,  1193340038,  0,  0,  2147483642,  2006614886,  0,  1036050021,  1311567357,  2006614886,  20403323,  1036050021,  897861834,  1435914101,  0,  0,  0,  1754613345,  0,  1649338279,  526963754,  1754613345,  738311466,  568121166,  1586068938,  259592707,  0,  0,  0,  0,  0,  767509262,  0,  947105655,  728460166,  0,  1503180310,  1802844481,  1066266534,  1617036706,  1264337538,  947105655,  656602152,  436913776,  1423781939,  2050506745,  951952143,  1248150944,  88871371,  1872993217,  0,  548083846,  0,  278401855,  2003431518,  1791520539,  0,  443410544,  1052250438,  1081217113,  1558964524,  1585087496,  0,  347627873,  1577455415,  443410544,  1855863475,  2115768234,  2075997229,  293435780,  562589487,  1545571118,  1955610940,  2112905316,  0,  1909475923,  1796040992,  161825218,  278401855,  755474372,  1987880491,  579662466,  896938550,  1731366710,  0,  952783099,  289311677,  0,  341743319,  509859685,  1832875562,  2106100283,  1706357216,  1509586809,  1239915755,  1147372418,  378408091,  473403766,  425902816,  2012883670,  1690619478,  525998,  0,  677587439,  2020158585,  1718800693,  404031717,  1339420213,  315545351,  1275487271,  1953582835,  1962991609,  1926147506,  425942333,  1998092823,  1806004410,  164848780,  1658738508,  0,  1809742604,  1119371924,  462602677,  1949591774,  1656949731,  1783798443,  279914158,  372290651,  1480631338,  431681826,  459573002,  1818135385,  854823720,  331011348,  2032365002,  1717460223,  1144176259,  704059319,  1903982514,  },
584        { 0,  277909637,  833729215,  1459624797,  2147483646,  1365727408,  2074271234,  1680373974,  2147483614,  1344072118,  23,  1837069097,  394848257,  945550410,  862886962,  1442220840,  584806770,  1198556453,  2044818822,  1058035783,  0,  207169021,  0,  1376336954,  715707572,  1586080835,  2087935307,  660629382,  955484891,  142032391,  1943317894,  2022065862,  0,  1925155947,  0,  0,  570977986,  1999626112,  0,  1978365346,  1618613205,  1817962202,  421703476,  1813629462,  3969089,  1684913212,  1168525749,  1978365346,  632026910,  417734387,  1514858400,  229025612,  1557404382,  1687444712,  1310708381,  579390805,  0,  2008710833,  0,  1593567354,  472344581,  901989125,  0,  1520133208,  925796870,  458010580,  1811868754,  1633977310,  1076448740,  355845271,  1042567584,  1520133208,  1310212633,  1775071075,  1036914604,  11718871,  1741905294,  212488145,  1419931242,  4883617,  0,  283026678,  2139754621,  501451963,  1593567354,  622097818,  679186019,  452355643,  2025039258,  2003121615,  0,  385196878,  76088656,  1533014586,  177620209,  677556603,  818212099,  2006424375,  755729775,  1424847939,  953167500,  36193837,  787159791,  2111909805,  123302733,  551394593,  1238463633,  1344526197,  0,  2128835971,  924360313,  1308288629,  614368792,  918746063,  250721471,  28054425,  2093838658,  1095895295,  1287365176,  10811,  1825046289,  150167238,  1548573846,  1314055713,  0,  376032891,  294945934,  523023583,  1462940377,  1783456862,  865791810,  751171781,  1221070032,  1584345836,  498902325,  858090992,  1112035287,  535713850,  1461986943,  43851923,  1744281972,  560122361,  719604302,  1099778935,  },
585        { 0,  0,  0,  1869574010,  0,  0,  1,  781756239,  0,  0,  0,  28,  0,  803411529,  2147483624,  33,  1752635390,  803411529,  1752635390,  253006043,  0,  0,  0,  0,  0,  1940314626,  0,  0,  1431776075,  1940314626,  1431776075,  20211615,  0,  0,  0,  0,  0,  222327700,  0,  0,  0,  0,  0,  1798833361,  0,  1489162624,  0,  0,  0,  0,  329521445,  679254499,  222327700,  1489162624,  679254499,  1105141998,  0,  0,  0,  0,  0,  1183822927,  0,  0,  0,  0,  0,  280797025,  0,  701812092,  0,  0,  0,  0,  1006249479,  1071034907,  355868729,  210236841,  400622995,  1428888697,  0,  0,  0,  3609209,  0,  0,  827954198,  155196304,  827954198,  1869934937,  0,  0,  0,  0,  196160904,  1444408323,  491575251,  814600092,  0,  0,  0,  1852069300,  614469061,  159166431,  348289376,  2031627802,  1715821384,  1337124380,  0,  0,  0,  794027565,  0,  0,  158805513,  1829872621,  158805513,  1335410004,  0,  0,  1858024508,  335657104,  1858024508,  642620940,  0,  1852069300,  0,  0,  988744780,  1506306388,  102501739,  1082764867,  0,  670411912,  1852069300,  1477071735,  590828694,  886243041,  1032235838,  626920857,  1980376932,  60273913,  1257541160,  764973376,  },
586        { 0,  0,  0,  25264601,  0,  2147483646,  0,  1968575861,  0,  2147483614,  0,  2147483641,  2147483641,  1697009671,  0,  2147483618,  736848801,  1697009671,  736848801,  719787002,  0,  0,  0,  0,  0,  1577386047,  0,  0,  399427275,  1577386047,  399427275,  1665174004,  0,  0,  0,  0,  0,  188029029,  0,  0,  0,  0,  0,  1645562039,  0,  1611427726,  0,  0,  0,  0,  1298198649,  617356485,  188029029,  1611427726,  617356485,  563919865,  0,  0,  0,  0,  0,  663986607,  0,  0,  0,  0,  0,  1979720715,  0,  342609313,  0,  0,  0,  0,  208643650,  587085425,  259557534,  1151467459,  1169021413,  32169438,  0,  0,  0,  149964707,  0,  0,  404429073,  125338282,  404429073,  1326582098,  0,  0,  0,  0,  792741574,  1070723153,  1338625501,  1203124889,  0,  0,  0,  1601599720,  594117091,  1601023695,  1768365618,  1020128534,  509255841,  599151783,  0,  0,  0,  1376514945,  0,  0,  275302989,  1596877669,  275302989,  663763157,  0,  0,  771503699,  657811523,  771503699,  2097895124,  0,  1601599720,  0,  0,  1416219063,  479961063,  1926050929,  1271730375,  0,  1565547659,  1601599720,  581935988,  1091767854,  1637651781,  924510761,  1699342050,  612954224,  1161014016,  1954257983,  1353668436,  },
587        { 0,  0,  0,  176851351,  0,  0,  2147483646,  895129319,  0,  0,  0,  2147483614,  2147483642,  1141649821,  2147483641,  2147483614,  862974596,  1141649821,  862974596,  1280413508,  0,  0,  0,  0,  0,  841155395,  0,  0,  1543291699,  841155395,  1543291699,  1276712671,  0,  0,  0,  0,  0,  1316204866,  0,  0,  0,  0,  0,  1855257461,  0,  1616316041,  0,  0,  0,  0,  318498686,  384441591,  1316204866,  1616316041,  384441591,  457779114,  0,  0,  0,  0,  0,  1426679070,  0,  0,  0,  0,  0,  973143002,  0,  1324524125,  0,  0,  0,  0,  1460505862,  83066790,  1816900929,  544080407,  130086856,  2104234139,  0,  0,  0,  1765581368,  0,  0,  1757261788,  1951109295,  1757261788,  1054053013,  0,  0,  0,  0,  2059529893,  247305299,  780443718,  2068902252,  0,  0,  0,  1279086175,  1206029618,  2080360481,  1641140482,  1503755420,  343565537,  1554446967,  0,  0,  0,  1403584139,  0,  0,  1569207016,  1156553262,  1569207016,  1783030128,  0,  0,  389730601,  2099283412,  389730601,  1531929337,  0,  1279086175,  0,  0,  1413077460,  1033286655,  955368691,  424025844,  0,  2100463581,  1279086175,  47020066,  1736794944,  457708769,  29124356,  1068497481,  2143196509,  1975452013,  1913384920,  1735790122,  },
588        { 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  28,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
589        { 0,  927240516,  1674347949,  1192250500,  1059796720,  125715125,  1430166590,  2132828472,  1171354535,  591112137,  725124428,  1837792521,  1953209844,  78740963,  1469105400,  1530057198,  1139395940,  1322431382,  208927210,  1377010920,  1734720728,  634930872,  725124504,  1011932510,  377044690,  302590319,  1458482321,  1870255205,  1776271049,  2083282262,  1167510559,  1493655143,  122,  542771457,  1149043246,  1467566713,  2075813345,  1128018903,  669345522,  837710448,  1550830212,  156995737,  1978014311,  1825945695,  846945136,  1255913896,  1813495816,  1422059883,  491108546,  1267966121,  2126901287,  1062755869,  1448253600,  571507213,  1499075561,  65297083,  2077760117,  1973558740,  2021370326,  1185618612,  273164936,  2065246085,  396560612,  830250057,  1143246077,  46345099,  950812813,  650508331,  149888120,  621281966,  839820953,  429280183,  1651721626,  1521607407,  1811017702,  640232003,  864220174,  1451020165,  752932030,  535769124,  630300386,  1154449566,  1361770156,  1873479208,  1887395484,  1380124748,  19218446,  592982495,  49207207,  1085412582,  920350183,  581580919,  993418281,  1294075837,  1261593311,  1914701918,  345732550,  1480789149,  1423726440,  2042547903,  546520215,  1564978964,  241417066,  193476885,  1777612452,  1886893900,  1525313099,  1453695611,  1490090647,  836074133,  724171162,  1444036395,  454964319,  711640558,  1451959044,  169164317,  57945484,  1841852238,  27026366,  491204460,  350326538,  1978437689,  542646637,  1521122197,  574720832,  762860693,  1241917461,  770303186,  579121568,  1783724293,  200566536,  1557047718,  1061929799,  485671725,  1898928175,  1654636462,  1988801876,  152714235,  667263652,  1665228240,  1261423440,  706013234,  771865780,  392167294,  },
590        { 0,  0,  0,  1458451207,  0,  2008036469,  0,  1214465047,  0,  976128799,  0,  808792526,  808792526,  110324324,  0,  0,  1240864814,  1783688166,  1240864814,  877603558,  2147483618,  1561806394,  0,  808792660,  808792660,  66286997,  0,  0,  1868263328,  736827613,  1868263328,  1824344304,  0,  780902944,  0,  0,  1366580825,  1687458475,  0,  0,  0,  251004597,  1920915511,  1542714183,  1920915511,  260566176,  0,  0,  0,  0,  2006600003,  304075857,  1062636143,  1389356533,  304075857,  1532504290,  0,  1528638112,  0,  0,  2069094192,  1893068332,  0,  0,  0,  2002193123,  771606561,  1888506176,  771606561,  1985221181,  0,  0,  0,  0,  553767183,  1479682805,  1265229456,  661943368,  542148568,  2118159501,  0,  1578539932,  0,  915585594,  0,  0,  591881666,  1748919637,  591881666,  1090498584,  0,  0,  0,  2045222535,  1368913878,  509814236,  1610903760,  1302068470,  0,  0,  0,  1905493765,  1291339235,  1579649785,  990732849,  1431272720,  1095670021,  927046020,  0,  1325742442,  0,  2010586555,  0,  0,  1270035373,  1634374481,  1270035373,  530101273,  0,  0,  2026411905,  1796705264,  2026411905,  950326282,  0,  1905493765,  0,  519108027,  338311445,  1620997863,  1759825446,  2125055738,  0,  937534237,  1905493765,  1209949410,  483979764,  725969646,  205009988,  1630644328,  169088794,  62354749,  1267659505,  1692536799,  },
591        { 0,  71527960,  2009677375,  329916230,  1812811181,  304930545,  1529325858,  1839735168,  195225847,  535583784,  223115048,  584814489,  1566869369,  1775149987,  1567783255,  2002110589,  1558504632,  1431445992,  650644078,  1272555753,  1690097509,  1668247568,  223115120,  1345222478,  1430555115,  1464275830,  925001753,  971277285,  568414223,  2136412652,  682909757,  1012880476,  0,  1922682201,  518742827,  1984689134,  531059836,  230066794,  1031907787,  1559401462,  223233307,  1594994267,  107617312,  1388604407,  1591511488,  1608350213,  42671990,  1318357344,  985354798,  468151351,  71137657,  33576328,  1235848318,  1829010187,  505305424,  2094059079,  474119767,  1703005890,  933856626,  1242235422,  1756639767,  1421624328,  1050235074,  1199173748,  456007012,  561990411,  36846931,  1918794549,  423583328,  1943966651,  1816224880,  1286613622,  717499302,  2005799174,  1163729702,  166710228,  743143141,  326321999,  2064478632,  1401473884,  524320711,  711284707,  1268459998,  834853233,  1267017203,  1457344636,  611390546,  866808939,  1359787497,  979893152,  2045222470,  514588273,  477385105,  541446896,  470309576,  1513076224,  931385286,  1617570237,  74171268,  91848453,  1159739018,  146437813,  480336234,  1661464491,  1816182828,  53267279,  1684553735,  1884950003,  942263282,  2135282515,  52464105,  1685214311,  1526560521,  1351411837,  1164062082,  1874095575,  1269399904,  1518852522,  1649519058,  475526348,  881726956,  2031405333,  589272844,  1347428282,  1777617080,  1993925069,  66790922,  1150710686,  1505742730,  511014808,  467943940,  1311516185,  661567710,  1772124177,  1715825881,  251521856,  2018288127,  577126727,  1732825836,  831427087,  1539349020,  1438802518,  1619120946,  306718625,  },
592        { 0,  0,  0,  837338146,  0,  920350119,  613566653,  88486711,  0,  0,  0,  1533916833,  1533916901,  1600982695,  306783370,  2147483578,  1661401967,  1294199322,  127485054,  86450094,  28,  0,  2147483624,  1227133588,  1533916895,  82240116,  306783436,  1840700340,  628091939,  1854279336,  321308522,  534076558,  0,  0,  0,  0,  0,  1834384861,  0,  1840700292,  66,  920350131,  867028266,  776445525,  1465255844,  37138278,  613566764,  1840700292,  1303829323,  1549256069,  409049998,  1596115707,  1539288466,  1854464572,  399660527,  413177864,  0,  1713604305,  0,  1380525201,  894054411,  1744892109,  0,  1089080957,  920350113,  989011179,  82831511,  621502348,  920350128,  984379675,  230087510,  1089080957,  1932735286,  1923531785,  1247266985,  1578309051,  168452094,  154188852,  1380300551,  1125639571,  0,  1748665261,  613566757,  1947359631,  1380525201,  1687308583,  1694770748,  291385616,  406280561,  1706008141,  0,  1509374222,  306783355,  1533916895,  1424042953,  1682226383,  2086054842,  388889260,  306783386,  2122940977,  1774741844,  687834981,  286567468,  145005598,  612458200,  1753203723,  354898722,  1368459992,  0,  1928352677,  766958465,  671056418,  153391693,  1840700261,  1011611742,  1891916749,  1165003431,  1849170605,  1135098496,  1840700257,  1273710758,  466442371,  422386889,  1758080789,  0,  2025410509,  1648960674,  1240524848,  1492536006,  1350783156,  1663187498,  2063130749,  1349846861,  1552457100,  460815286,  1323637075,  1287209766,  1685387943,  183912482,  891640943,  1486232992,  1837478367,  1824455758,  1211769138,  },
593        { 0,  0,  0,  1523745606,  0,  1561806542,  1533916994,  1756474647,  0,  1952257906,  0,  390451513,  390451445,  1146839737,  1840700277,  69,  30630386,  1732517030,  1564547299,  1078019200,  2147483619,  976128917,  2147483641,  697234830,  390451523,  81927109,  1840700211,  306783307,  1148547506,  615145953,  1455330923,  575495535,  0,  1561806240,  0,  0,  585677407,  603567934,  0,  306783355,  2147483581,  195225841,  1229059274,  1727821919,  630831696,  1924747611,  1533916883,  306783355,  843654324,  598227578,  1048176381,  1561522121,  1703373146,  506040493,  610493654,  1827790803,  0,  1469671462,  0,  766958446,  817259175,  542321471,  0,  1058402690,  1227133534,  1028587581,  284379013,  761026377,  1594344043,  1204071782,  1917396137,  1058402690,  214748361,  223951862,  1397617807,  1058817456,  1480658696,  1047824421,  666397033,  1493801760,  0,  2021981376,  1533916890,  705467255,  766958446,  460175064,  684726048,  1467971059,  1973216235,  1840207868,  0,  638109425,  1840700292,  715827834,  1090622138,  43674991,  2028511382,  1393377823,  1840700261,  24542670,  372741803,  2007231180,  632519757,  1460152909,  1321635284,  1437784507,  197941166,  1538538780,  0,  1194263893,  1380525182,  606681900,  1994091954,  306783386,  304848643,  657610342,  151456954,  1033175776,  1012385151,  306783390,  1057061491,  80816952,  1908385360,  407761962,  0,  669655652,  498522973,  548214793,  555588444,  2020243649,  2027684494,  249509820,  797636786,  1185455470,  86767228,  233417649,  1912592500,  966831809,  718314139,  987434254,  1715950559,  1431557249,  875993210,  1913316578,  },
594        { 0,  0,  0,  0,  0,  0,  0,  613566653,  0,  0,  0,  0,  0,  2147483579,  0,  0,  306783370,  2147483578,  306783370,  920350149,  0,  28,  0,  2147483624,  6,  48,  0,  0,  306783436,  48,  306783436,  1610612844,  0,  0,  0,  0,  0,  2147483539,  0,  0,  0,  0,  0,  66,  0,  1687308694,  0,  0,  0,  0,  613566764,  690262613,  2147483539,  1687308694,  690262613,  1687308491,  0,  0,  0,  0,  0,  460175220,  0,  0,  0,  0,  0,  920350113,  0,  766958345,  0,  0,  0,  0,  230087510,  613566692,  1227133666,  1380525100,  460174999,  997046016,  0,  0,  0,  613566757,  0,  0,  1380525201,  1687308583,  1380525201,  1994091966,  0,  0,  0,  0,  1994091960,  306783355,  1533916892,  613566744,  0,  0,  0,  460175068,  306783386,  805306368,  1227133522,  920350128,  1725656504,  536870927,  0,  0,  0,  766958465,  0,  0,  153391693,  1840700261,  153391693,  1533916890,  0,  0,  613566753,  153391678,  613566753,  2032439818,  0,  460175068,  0,  0,  1227133505,  1648960674,  460175062,  1265481458,  0,  153391693,  460175068,  1994091954,  1227133511,  766958443,  728610528,  1457221061,  1764004367,  1495568989,  16,  901176169,  },
595        { 0,  0,  0,  765481789,  0,  0,  1087686870,  623623896,  0,  0,  0,  976129000,  0,  1192103189,  1422359146,  976129000,  245393545,  1192103189,  747402575,  350112641,  0,  0,  2147483642,  1271756539,  0,  178862456,  1422359228,  1271756539,  823918890,  424333422,  1666178886,  1425926240,  0,  0,  0,  0,  0,  1398067770,  0,  1857433935,  0,  0,  1591134292,  281400085,  245470966,  747678298,  1478138163,  1857433935,  1730537186,  1345663326,  117387050,  141866041,  856105928,  1831601982,  1336462099,  1562207641,  0,  1779277198,  0,  1129520611,  1339687118,  223528544,  0,  363956709,  69723495,  1902012681,  313011959,  834334539,  0,  412502085,  676317936,  363956709,  442511829,  424569534,  1653217507,  1586671418,  1657105882,  720477869,  2054202117,  2130868693,  0,  2096353010,  176632783,  413228980,  1129520611,  794847886,  1098713649,  602921720,  278765286,  631425456,  0,  1823222928,  2008036657,  0,  1103128841,  1219374633,  1403267502,  385526060,  1942961338,  1934780503,  584608274,  1311868539,  2005908503,  269330467,  222000403,  1714396828,  2030355419,  60854233,  0,  1205220280,  562436051,  1695909776,  971480669,  204522309,  941778952,  73791109,  1783109060,  1713847077,  2061026549,  74371748,  795838363,  979541575,  1495165019,  76844878,  0,  173841593,  1820945243,  1781896447,  337855571,  310125892,  1209159946,  105252830,  245426723,  969609969,  767885757,  781611779,  590330196,  979157190,  170787830,  8355572,  571742010,  1782436546,  732314474,  80416883,  },
596        { 0,  0,  0,  1568040471,  0,  1227133528,  1450248388,  853482088,  0,  0,  0,  1199243988,  613566746,  884580172,  1896479156,  585677243,  1365223768,  1191363545,  2034569382,  1406603795,  2147483614,  0,  23,  1020752042,  613566752,  2137419110,  1896479166,  407185290,  1477973334,  1636560939,  24005905,  757045096,  0,  0,  0,  0,  0,  578642862,  0,  1188088355,  56,  1227133516,  1743308821,  1811593757,  1953408852,  588406890,  1255022871,  1188088355,  589395887,  1937383616,  2134269651,  584589435,  486718526,  1692605705,  1986496389,  950829047,  0,  1748333239,  0,  1506027496,  194628179,  1792421148,  0,  342109870,  808792529,  2034775066,  795033821,  350960620,  1227133519,  980742008,  901757155,  342109870,  1783062159,  432471647,  306692429,  2031129678,  819139465,  1311192269,  1429901348,  1973046278,  0,  1063515770,  1189947686,  1325208795,  1506027496,  1059797108,  1946289640,  1116863394,  1712018730,  51267021,  0,  1152018062,  529898533,  613566752,  709473226,  1249777230,  355068197,  1528691154,  204522294,  2016589407,  1786408905,  69933182,  258556327,  1909611618,  347542049,  435224148,  1233248315,  928292020,  0,  504001367,  511305735,  1881987556,  102261147,  1942961353,  536296692,  328738062,  2135288878,  181861908,  457386104,  1292208745,  166779701,  1234638897,  311804579,  346437206,  0,  728680798,  399748079,  992766635,  1239667455,  1837046862,  74333812,  1730590527,  1472560200,  1415040959,  1950236447,  323398210,  1177256896,  1628297642,  296086157,  74244894,  340472520,  1454857573,  1880304960,  1881750656,  },
597        { 0,  0,  0,  0,  0,  0,  0,  920350119,  0,  0,  0,  0,  0,  0,  0,  0,  1533916902,  0,  1533916901,  306783373,  0,  0,  0,  28,  0,  0,  2147483624,  33,  1533916895,  0,  1533916895,  1073741828,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  920350137,  0,  0,  0,  0,  920350131,  766958443,  0,  920350137,  766958443,  920350140,  0,  0,  0,  0,  0,  1227133519,  0,  0,  0,  0,  0,  306783376,  0,  613566755,  0,  0,  0,  0,  1687308580,  920350128,  1840700274,  1533916892,  1227133504,  1764004424,  0,  0,  0,  920350143,  0,  0,  1533916892,  920350128,  1533916892,  306783376,  0,  0,  0,  0,  306783376,  1533916895,  1227133510,  1457221042,  0,  0,  0,  1227133513,  1533916895,  1610612733,  1840700274,  843654284,  1917396112,  6,  0,  0,  0,  613566767,  0,  0,  1840700271,  613566752,  1840700271,  1227133504,  0,  0,  920350131,  1840700271,  920350131,  230087523,  0,  1227133513,  0,  0,  1840700268,  2070787803,  1227133513,  153391694,  0,  1840700271,  1227133513,  306783376,  1840700268,  613566755,  1764004427,  1380525204,  1840700256,  1840700274,  3,  76695844,  },
598        { 0,  0,  0,  0,  0,  0,  0,  251004490,  0,  0,  0,  0,  0,  390451506,  0,  0,  1980147254,  390451507,  1980147254,  864571363,  0,  2147483614,  0,  2147483641,  2147483641,  195225847,  0,  2147483618,  1980147322,  195225847,  1980147322,  1415387037,  0,  0,  0,  0,  0,  1171354626,  0,  0,  0,  0,  0,  56,  0,  934294932,  0,  0,  0,  0,  836681946,  1201568240,  1171354626,  934294932,  1201568240,  869219496,  0,  0,  0,  0,  0,  1896479199,  0,  0,  0,  0,  0,  181281069,  0,  687938397,  0,  0,  0,  0,  183605183,  1617585028,  892460871,  548491406,  952887705,  765796419,  0,  0,  0,  1389821669,  0,  0,  1004018328,  1422359301,  1004018328,  2068463693,  0,  0,  0,  0,  701883185,  1784921453,  139446991,  1918558160,  0,  0,  0,  562436194,  1329394646,  1293370833,  306783387,  1718684146,  270759574,  1594343934,  0,  0,  0,  1176002968,  0,  0,  664697323,  818089001,  664697323,  757661978,  0,  0,  478767996,  1543213347,  478767996,  2112621843,  0,  562436194,  0,  0,  1803514398,  475281839,  1343339333,  1766328562,  0,  664697323,  562436194,  1482786324,  1022611259,  460175065,  294000742,  1189947662,  135960763,  1364256405,  2033601953,  1428169586,  },
599        { 0,  0,  0,  0,  0,  0,  0,  836682231,  0,  0,  0,  0,  0,  585677412,  0,  0,  1589695542,  585677412,  1589695543,  1450248770,  0,  0,  0,  2147483614,  2147483642,  1366580486,  2147483641,  2147483614,  1589695631,  1366580486,  1589695631,  780903014,  0,  0,  0,  0,  0,  1757032017,  0,  0,  0,  0,  0,  0,  0,  1324746308,  0,  0,  0,  0,  641456217,  306783461,  1757032017,  1324746308,  306783461,  1227133495,  0,  0,  0,  0,  0,  237059621,  0,  0,  0,  0,  0,  2035926058,  0,  264949401,  0,  0,  0,  0,  850626668,  739069189,  111557339,  515953965,  432285838,  285866306,  0,  0,  0,  934294761,  0,  0,  125502282,  1519972237,  125502282,  1645474481,  0,  0,  0,  0,  669345565,  223115178,  1896479083,  1861617398,  0,  0,  0,  920350129,  613566702,  1805838539,  306783313,  1791893903,  1499055150,  1854644875,  0,  0,  0,  1533916755,  0,  0,  306783351,  1533916945,  306783351,  1213188886,  0,  0,  1715198014,  13944708,  1715198014,  1941799574,  0,  920350129,  0,  0,  1478138120,  1882534335,  2091704860,  578704909,  0,  306783351,  920350129,  1840700296,  306783389,  1533916907,  1994091924,  1401442195,  184767506,  1624557339,  1708225565,  1241078228,  },
600        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  28,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
601        { 0,  1631365445,  1566400216,  2071570486,  2096353845,  905599083,  1522181479,  1363659078,  357914157,  713935641,  1585047276,  1337995857,  142171620,  1537953226,  637096608,  70951858,  368089927,  1949247524,  1987255882,  812210997,  2065674368,  1044245479,  153391477,  1424118338,  83307183,  1869418020,  329837192,  194999662,  1844279407,  1157352913,  765780766,  1323848729,  357913814,  1497689363,  276105143,  2078043540,  1899244838,  538771130,  306783615,  78948402,  784976637,  1193692558,  763329866,  1966785518,  1004755177,  1623159186,  722819657,  1301212404,  1769752228,  1588221431,  1339500407,  1838681444,  935608787,  943775931,  869431648,  361185343,  1176003269,  1962107661,  408082737,  2122521198,  116864388,  1552228433,  1070576624,  18621369,  2025984362,  394442483,  1922551281,  1211758353,  1841713411,  432950788,  1761760900,  706960393,  986620269,  1892400890,  513783411,  2063650239,  446517406,  377008306,  1977062683,  1449133352,  521532122,  1870091237,  374101129,  1762265398,  1676443822,  1705719089,  1942785390,  2127247083,  425292127,  1893603514,  93739256,  523538585,  597913264,  1567518634,  997814379,  166572860,  1460069783,  1002270385,  1958818665,  519309132,  2128131802,  1123406205,  1983263156,  1315236671,  1009671539,  248634874,  1332044506,  1430637487,  235565933,  2072850215,  1083113880,  237769552,  1210601015,  1364285948,  1727711590,  603318605,  102558986,  1809110688,  1691612461,  706602831,  781341286,  142982072,  1352396693,  1249336320,  1031437279,  2137083038,  1288624037,  887469860,  1744538072,  684392687,  499032430,  984565835,  270734871,  1858464530,  67153336,  885190331,  725847651,  416213647,  516690455,  481940971,  1949773680,  1412880715,  1453026839,  2034416257,  },
602        { 0,  0,  0,  877367862,  0,  1905775834,  0,  875717157,  0,  1691956928,  0,  1831403758,  1831403758,  2051105644,  0,  0,  942692206,  2088291631,  942692206,  485739508,  0,  845978187,  0,  1115575822,  1115575822,  1029502142,  0,  0,  784305993,  2071104700,  784305993,  309435393,  2147483618,  1496730848,  0,  0,  1366580646,  439766758,  0,  0,  0,  864571428,  417190043,  259179526,  417190043,  932308369,  0,  0,  0,  0,  1648275816,  365338059,  1698010058,  1141235489,  365338059,  308488281,  0,  307347971,  0,  0,  1347423115,  1654358286,  0,  0,  0,  727824768,  2101001342,  1935980405,  2101001342,  1790579200,  0,  0,  0,  0,  1933815950,  1641348872,  984775787,  1784739470,  802822346,  439219342,  0,  1762610098,  0,  19014124,  0,  0,  1887054443,  1686289290,  1887054443,  978621241,  0,  0,  0,  801045444,  2025522793,  283601946,  998824029,  979262364,  0,  0,  0,  1026698764,  1270025150,  1493077851,  246010630,  2116683569,  1398991732,  2086180584,  0,  1720178269,  0,  916430448,  0,  0,  719878152,  1332250772,  719878152,  218523390,  0,  0,  1367075126,  1362922700,  1367075126,  41239002,  0,  1026698764,  0,  907456782,  868524631,  960266049,  1801137276,  192243774,  0,  838526526,  1026698764,  1308957121,  94086119,  1214871002,  773444758,  579309583,  930550687,  2073495523,  2119357729,  866799738,  },
603        { 0,  2090392870,  1325238103,  1334012105,  283541168,  1988270609,  1564616996,  840652913,  162687935,  1520893134,  1361932560,  326769759,  359152319,  1509712324,  1881329713,  153546814,  743510810,  562868437,  811494591,  1363486666,  1664067899,  1723387015,  2077760407,  1389818676,  568338318,  1521533188,  1406683366,  2095937187,  58295917,  119712180,  891814350,  944636682,  357914148,  694983976,  1045852272,  557619640,  1876926960,  414926275,  1422358936,  1179229885,  1546878973,  659895392,  1991330382,  805775473,  298374224,  1533284556,  1251806480,  474601934,  974260567,  1783259663,  721979448,  1570345660,  685295726,  568306187,  355050862,  1609694257,  1775624577,  1997286535,  1058251090,  1134517049,  1177282845,  1937787782,  1359962287,  572487673,  1336248698,  520319961,  317786262,  1251438060,  1899431020,  44953697,  549372127,  404383364,  435036195,  1163137893,  1088616237,  924691917,  1726576555,  247389252,  1272054370,  1559305294,  1285700701,  1004774883,  637660915,  1849960486,  767963682,  1114478888,  96421133,  1231182713,  1897302237,  2099964423,  553914580,  2114311516,  1406465619,  1003664818,  1531288460,  1683206669,  1538457862,  2110597807,  622875182,  706150432,  249818593,  1558612791,  684992345,  1222148474,  1033818707,  1786147494,  746118100,  1827856194,  980610964,  882106192,  995358778,  1385320134,  2082163802,  1505686416,  948608653,  1410991756,  90883823,  2145685758,  1698701581,  1387316853,  1789032577,  2006368489,  1567604464,  1801698305,  480953889,  203993854,  456486500,  587028700,  1452513489,  643611714,  1767199203,  1933957987,  1737179011,  1215612884,  1825384212,  1978914542,  1428714878,  259925337,  369468928,  640936692,  790815581,  629793513,  1983550357,  1046188217,  },
604        { 0,  0,  0,  1923843451,  0,  1600851542,  674923561,  325776025,  0,  1249445039,  0,  937083777,  1796077189,  164594532,  981706790,  1288490235,  1580314904,  281729985,  1396244891,  1827699901,  429496737,  1054219230,  0,  213074902,  507587026,  89188522,  1840700229,  564481348,  339225669,  178593975,  1590901887,  206969748,  61,  1600851407,  429496713,  858993439,  546632240,  1578687436,  0,  1423474889,  858993439,  898038629,  1458774882,  22267951,  1397418217,  1424457054,  1963413661,  134984714,  1509374202,  1779343576,  1441384052,  555752900,  1164191217,  476894871,  678466281,  1640938373,  0,  1823030326,  0,  122713333,  1732867919,  884189694,  0,  1079877481,  1871378668,  652452581,  1283804826,  2090498761,  390451606,  1594496952,  2024770293,  1079877481,  1932735315,  1138779886,  917818037,  698291009,  869787445,  1956649476,  1677133861,  1398927985,  0,  1073184034,  1533916790,  979812289,  122713333,  1533916982,  1904925004,  1985130721,  1561327545,  879276070,  0,  2046858723,  122713288,  2147483641,  690603332,  547755980,  1818134382,  1539598726,  1840700250,  144801742,  1098591290,  786797261,  2114139387,  1494107005,  789897584,  698825866,  818979310,  813945017,  0,  120522023,  306783331,  851010998,  920350125,  306783397,  1057308239,  942260908,  259671390,  2002543200,  711737458,  736280070,  466919301,  2113779011,  1221606438,  300574394,  0,  679729819,  981706820,  709818366,  1469075452,  524273710,  1951339301,  1482114859,  1484831557,  1214351518,  569287816,  472957050,  1613271271,  646698976,  779632482,  1626809763,  1942604964,  1919651942,  1605641915,  408264850,  },
605        { 0,  0,  0,  432056144,  0,  1835122465,  513164810,  1667473238,  0,  1327535390,  0,  1483715938,  1639896608,  2128895387,  373717951,  1991302977,  1583050266,  1582263241,  1159131404,  245605830,  858993453,  1522761054,  0,  2054890884,  1210399841,  1963564401,  2091704886,  414994302,  1467846342,  636480597,  1539243170,  841379407,  2147483618,  1835122343,  858993453,  1717986935,  312361296,  1922754994,  0,  1352078003,  1717986935,  819948333,  2146075937,  1496178274,  1158791238,  1226835045,  1137887403,  922581262,  1406741252,  128291246,  134894536,  1341457500,  2134103464,  1578533636,  778091634,  553010445,  0,  731419419,  0,  1193666251,  314433064,  160099410,  0,  938199358,  633089281,  1802133194,  2143318809,  745781494,  325376309,  1434497171,  2125172131,  938199358,  2010825568,  2057791355,  1074533525,  1077972754,  1826462257,  170839486,  723815469,  1993453302,  0,  2129634496,  1059797213,  297075510,  1193666251,  474119686,  834359903,  16390867,  810932875,  395311585,  0,  1129632156,  22311574,  1431655751,  1899107703,  1462918143,  111416057,  1332833491,  920350151,  1369481011,  2028033344,  1667209419,  1051111367,  1843252109,  1642658490,  1678114338,  581219309,  903445883,  0,  1402438343,  1227133554,  226409913,  1533916899,  1227133496,  179597274,  136174162,  1791604537,  152996086,  1456942134,  1305223860,  1515502843,  773534178,  1437970293,  104225910,  0,  1240696893,  1154621069,  67222304,  1407348391,  327119230,  1161474936,  1059814426,  1558459555,  964739876,  166397270,  415785336,  762979907,  1856765090,  996460364,  843893956,  1158743573,  1285532034,  561011517,  533655687,  },
606        { 0,  0,  0,  0,  0,  0,  0,  753013629,  0,  0,  0,  0,  0,  1171354674,  0,  0,  1645474501,  1171354674,  1645474501,  446230418,  0,  2147483642,  0,  0,  0,  585677457,  0,  0,  1645474519,  585677445,  1645474519,  1561806268,  0,  2147483645,  0,  2147483618,  63,  1366580609,  0,  0,  0,  0,  12,  18,  12,  1729142602,  0,  0,  0,  0,  362562137,  920350101,  1366580591,  1729142608,  920350101,  1533916934,  0,  0,  0,  0,  0,  1394469874,  0,  0,  0,  0,  0,  1617585029,  0,  2063815450,  0,  0,  0,  0,  1087686525,  557787955,  529898519,  1645474513,  1784921459,  955211893,  0,  0,  0,  948239624,  0,  0,  864571355,  2119594166,  864571355,  836681838,  0,  0,  0,  0,  1031907695,  1059797182,  418340937,  1192271796,  0,  0,  0,  613566758,  1840700286,  2001064315,  920350101,  1666391533,  1080714184,  1561806292,  0,  0,  0,  306783421,  0,  0,  920350143,  306783361,  920350143,  1199244053,  0,  0,  362562155,  334672812,  362562155,  1506027501,  0,  613566758,  0,  0,  1115575928,  83668185,  808792555,  1540889239,  0,  920350143,  613566758,  1227133504,  920350131,  306783373,  613566767,  348617473,  139446973,  871543693,  1268967610,  526412392,  },
607        { 0,  1533588459,  234271100,  1750149235,  701883684,  287724869,  324954867,  1443325874,  1529268723,  1109340777,  1083038137,  493712939,  680228216,  425550847,  449093446,  27303324,  260188531,  129673112,  1982218687,  1364597111,  1162058138,  490389974,  1798866048,  145206978,  2037874788,  759509430,  478509244,  2131019968,  1763448763,  967064678,  777230412,  529536466,  357913914,  1459995550,  934294888,  801183,  1031003475,  1885881494,  669345675,  35658541,  1066819319,  210606994,  435791395,  1762526682,  1494997364,  1392895646,  1160420804,  13258452,  1501345981,  260170839,  644270424,  2101100300,  1158829189,  2078674509,  2077135537,  2103994702,  646104493,  50736894,  353917615,  638097513,  264282485,  1863236066,  517569699,  1509039345,  281674915,  1051578274,  384145232,  2035318715,  1613383373,  66952929,  947789323,  99604317,  522748804,  313585867,  1514986667,  725290680,  1889290035,  574525253,  1245711722,  1387459023,  845048919,  1567830686,  229932496,  953376996,  107116665,  1082278247,  207639065,  1401171616,  1905588579,  1916276215,  1218611703,  287120148,  175221029,  984297324,  127235732,  1499658741,  750886563,  1840272347,  1576784010,  457513480,  1167082712,  602698966,  2006718051,  1680244478,  866005904,  1009650155,  1185587988,  1048975116,  991567811,  324804252,  519281193,  109920271,  1530677824,  1436307666,  246206436,  1878082077,  1847431131,  1336469232,  1551920090,  128280051,  1078725971,  418983276,  1120987607,  1420907084,  99632651,  347703657,  17565976,  733448638,  38377777,  1132191476,  2021260,  478745774,  1469643401,  602694516,  179528025,  295884605,  705384476,  1559387886,  465551023,  1661698501,  426963685,  2121221235,  291037733,  1114507726,  },
608        { 0,  0,  0,  340513241,  0,  1639896582,  959394949,  1500797890,  0,  546632198,  0,  2069393252,  1054219251,  948190693,  792058981,  1015173995,  1526466494,  596784286,  2134455345,  1817452001,  858993460,  1132309559,  1,  74743790,  624722524,  1873264034,  362562254,  1168008186,  1763701167,  2108783457,  440628054,  1060700461,  0,  1639896594,  858993488,  1717986914,  507587053,  981501172,  2147483630,  1519414317,  1717987019,  1600851443,  416800543,  1877755253,  1680190256,  2025655559,  1193666086,  1089917590,  1915722836,  25100477,  995258150,  64827727,  1410785458,  1128041803,  75983383,  104215141,  0,  1023062652,  0,  1904845948,  1500927896,  1687585279,  0,  451529424,  1790499162,  1833873889,  1851130808,  1641374092,  976128919,  882410970,  1755637638,  451529424,  566154663,  389726491,  23019575,  203502518,  1092490261,  248541269,  108942604,  2067839068,  0,  369813488,  1701253626,  1986579099,  1904845948,  1213188495,  1284600251,  183597192,  1222128259,  1171643698,  0,  1376174371,  2002459019,  3,  295198827,  928607207,  1978360056,  651655635,  1533916948,  890898973,  1458252908,  1676953329,  1338978328,  546841162,  1481280587,  847204486,  1511742178,  864712864,  0,  87652523,  1687308723,  220001434,  766958474,  613566699,  1283293291,  502574490,  1542664920,  260796385,  1482042542,  105979854,  910210373,  1553991808,  716239512,  429490600,  0,  514021360,  816462076,  277720932,  1872973605,  1283612956,  1423734548,  733167416,  2110669621,  1510588335,  1484014572,  521851581,  1130038981,  2111726098,  839071471,  1011394539,  438749050,  350680156,  162122177,  593759381,  },
609        { 0,  0,  0,  128619220,  0,  1338691097,  1366580923,  108596639,  0,  1366580502,  0,  278894113,  1255022914,  153676954,  1952257778,  1171354846,  1357981777,  1269252876,  1162756028,  758291203,  2147483646,  1757032076,  0,  903616261,  1255022912,  254156562,  1952257750,  1796076994,  136411268,  1094114269,  1646157444,  1092935569,  2147483642,  1952257864,  2147483646,  3,  195225783,  1300362858,  0,  1210399969,  2147483550,  167336388,  1168122924,  2099383333,  361189708,  1471092967,  976129093,  1210399967,  442511696,  806933217,  854349910,  223963558,  203390865,  601851402,  471249669,  805930879,  0,  1413959474,  0,  1171354646,  626614780,  1016141563,  0,  2095423373,  390451792,  703255646,  232411739,  1834577495,  1468841626,  225973817,  1496730999,  2095423373,  1275475264,  1106279405,  2031461826,  27628322,  2104811203,  398974996,  1623373819,  227271635,  0,  1911353322,  130150138,  1039100894,  1171354646,  585677711,  277878087,  1003455216,  2099985135,  574547213,  0,  950098919,  1366580243,  1124872387,  1685273838,  892348130,  781008027,  622339914,  1431655698,  1145324564,  2036855752,  969341198,  1390675651,  323517250,  661845469,  1893739326,  1611446813,  1186658045,  0,  909393426,  1431655598,  380837258,  715827849,  715827949,  982759137,  1639408645,  397081526,  776411638,  1691956890,  1561806136,  2035090761,  1946792347,  668510365,  1725178812,  0,  1119014135,  1822107387,  1464617555,  563239482,  1278882949,  1154583385,  1682925317,  24,  258899459,  207960521,  1172756264,  1210960524,  2011666551,  2139122842,  402694469,  498422353,  2049799627,  1446731985,  789661607,  },
610        { 0,  0,  0,  1617519523,  0,  1584118090,  373718009,  1585770225,  0,  937083802,  0,  479697531,  1807232878,  1231143153,  1182510464,  819948329,  603423652,  1549082221,  1601864109,  447146040,  858993453,  1327535315,  0,  242079871,  1377736192,  1870671256,  753013723,  582330585,  1999254129,  1645130282,  806331630,  247291144,  0,  663767625,  858993453,  1717986935,  1483716022,  492212422,  2147483618,  2105091784,  1717986906,  2130750077,  1597960770,  2139315772,  359206671,  313440546,  1388892045,  1675595043,  1639152877,  1453502455,  1494249204,  595996047,  2117974057,  1341080748,  1902149539,  471691206,  0,  1547316885,  0,  635878264,  1055693610,  309083093,  0,  806189526,  1009596244,  1574458369,  717055144,  213282561,  497361046,  1443303926,  14874344,  806189526,  91105386,  1491450626,  1992047059,  57096834,  1669929775,  1025569085,  1779093170,  615056348,  0,  2103604377,  9296407,  439720488,  635878264,  1115575974,  1358940624,  497843363,  2090386525,  1712777112,  0,  1394395543,  1416781382,  1176002926,  1294078259,  717840039,  778732915,  471355467,  102261115,  518668424,  1511289300,  1311494711,  1170046213,  1847302117,  827010868,  1039423753,  1092141690,  803272077,  0,  1906439615,  1329394611,  1314689786,  1124872381,  2045222532,  469022025,  1792239421,  826006281,  1407172590,  1176188891,  1277334407,  1450648743,  1373564807,  70681345,  214976757,  0,  1595836395,  2093564150,  1086587178,  676272011,  366301699,  234983913,  1449759940,  392682728,  1450088015,  880380379,  492873373,  1803690238,  799016106,  1340299829,  1137997956,  18435416,  771415399,  308156499,  1405143612,  },
611        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
612        { 0,  0,  0,  0,  0,  0,  0,  948239685,  0,  0,  0,  0,  0,  1952257921,  0,  0,  83668174,  1952257921,  83668174,  641456094,  0,  0,  0,  0,  0,  976128822,  0,  0,  83668143,  976128822,  83668143,  1708225635,  0,  0,  0,  0,  2147483642,  1561806205,  0,  0,  2147483618,  0,  0,  2147483634,  0,  1680336292,  0,  0,  0,  0,  1729142719,  741393200,  1561806205,  1680336292,  741393200,  1176002913,  0,  0,  0,  0,  0,  125502299,  0,  0,  0,  0,  0,  1519972260,  0,  729772600,  0,  0,  0,  0,  1787245590,  264949297,  1701253306,  1873237880,  1134168879,  1630367707,  0,  0,  0,  1989443618,  0,  0,  571732640,  1436304094,  571732640,  1650122834,  0,  0,  0,  0,  1259671180,  1255022847,  1004018367,  1053986799,  0,  0,  0,  255652813,  409044483,  829709582,  920350172,  617052930,  1341015208,  1350311681,  0,  0,  0,  2096353031,  0,  0,  1278264065,  1738439164,  1278264065,  158039994,  0,  0,  297486935,  302135105,  297486935,  1091172697,  0,  255652813,  0,  0,  1245726437,  1507189559,  2012684876,  190577551,  0,  1278264065,  255652813,  869219582,  1636178021,  1380525208,  2134700993,  1552509823,  1945285540,  1196919989,  862247219,  225439296,  },
613        { 0,  0,  0,  0,  0,  0,  0,  1115575085,  0,  0,  0,  0,  0,  780902867,  0,  0,  2119594403,  780902873,  2119594403,  502009548,  0,  2147483619,  0,  0,  1,  390452274,  0,  0,  2119594481,  390452218,  2119594481,  146419118,  0,  2147483513,  0,  2147483619,  134,  195226526,  0,  2147483641,  2147483614,  2147483624,  56,  177,  56,  1945284888,  0,  0,  0,  0,  139446685,  230087307,  195226442,  1945284913,  230087307,  920350543,  0,  0,  0,  0,  0,  2105649184,  0,  0,  0,  0,  0,  1282911884,  0,  711179726,  0,  0,  0,  0,  2028953749,  1701253301,  864570839,  1045852769,  934294791,  202198187,  0,  0,  0,  529899294,  0,  0,  1241078345,  237059216,  1241078345,  404395444,  0,  0,  0,  0,  1966202306,  1729143160,  1812810604,  334673036,  0,  0,  0,  153391702,  1533917020,  170822623,  1840699992,  1673363901,  477606027,  1220161174,  0,  0,  0,  1687308903,  0,  0,  766958510,  613566627,  766958510,  1617584593,  0,  0,  139446840,  376507171,  139446840,  1425845602,  0,  153391702,  0,  0,  1255022978,  1167868453,  1715198084,  324214219,  0,  766958510,  153391702,  1380525137,  1840700243,  1687308541,  2032439961,  1331718723,  1499055064,  1181813261,  1561806276,  1162639320,  },
614        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
615        { 0,  0,  0,  1394141423,  0,  0,  1626882123,  1961945985,  0,  0,  0,  1496731101,  0,  495351451,  1301505064,  1496731101,  1968766797,  495351451,  1838616139,  291298595,  0,  0,  0,  624722392,  0,  2044048449,  585677217,  624722392,  866869093,  1594719183,  1085956101,  1391493750,  0,  0,  0,  0,  0,  1283540867,  2147483642,  950098896,  715827851,  0,  160208877,  967772966,  1698154381,  2005122586,  1366580645,  950098896,  8676744,  609538143,  1792301094,  2033707565,  343048339,  1738623995,  1983816712,  968993188,  0,  673993899,  0,  1854644917,  41833920,  1776370786,  0,  1182200640,  260301170,  449329266,  1609528185,  1468799043,  0,  940621646,  1355734633,  1182200640,  206071657,  1023850725,  686983485,  1262038369,  545482950,  967497968,  1637893671,  1351790553,  0,  1431655600,  1399117816,  698708097,  1854644917,  1464193650,  635914316,  413514015,  1612042987,  333942563,  0,  1349227145,  1626881401,  0,  526605460,  574355378,  1491029979,  644645253,  238609238,  763549685,  284162021,  2061575240,  1291907928,  2038285575,  1871487806,  17553829,  1432633506,  1772987202,  0,  1227133214,  1431655448,  1981970085,  715827819,  715828009,  1144759834,  1286521753,  1112221922,  1923560658,  292838786,  2114945925,  1908761962,  449353131,  1713536259,  1556263163,  0,  968310717,  2049870734,  1648056814,  1457908317,  1907358737,  132948500,  1105257587,  2147483591,  1254280020,  1553988099,  58071089,  1376793979,  1032121126,  612037019,  633749690,  1524755592,  17291525,  902659576,  199261030,  },
616        { 0,  0,  0,  721253027,  0,  507587065,  193365761,  1632054862,  0,  1600851449,  0,  598692267,  1093264396,  2067300725,  1541354288,  1652911524,  1099914290,  271223485,  473332569,  500980057,  1288490187,  1015174088,  2147483646,  1548419621,  1522761123,  235253415,  1255023094,  455155225,  996374934,  1294156477,  101001015,  1461472353,  0,  507587053,  1288490154,  429496733,  1639896594,  482366003,  17,  1990931051,  1145324718,  546632204,  294888613,  1898536593,  1761715876,  1272734989,  1455826359,  272944131,  28478192,  1539649841,  3250045,  908178931,  751423543,  773665093,  1390975166,  628587145,  0,  256529091,  0,  200803756,  696358749,  1612079889,  0,  1885292333,  1467911739,  1166670920,  898515755,  1294621323,  1171354728,  1820899473,  1301350318,  1885292333,  986974716,  128768539,  383936414,  302187074,  714896093,  336341359,  765512051,  1102336646,  0,  1368625921,  1566455047,  53627912,  200803756,  1143464867,  385638561,  174001387,  1671526149,  522803992,  0,  1090859613,  70653449,  2147483644,  1865754641,  2034943981,  1475940476,  1395521698,  2079309656,  1492467125,  1268741325,  509366570,  206039913,  11374676,  383140386,  513513824,  1966386189,  2137751498,  0,  1577743441,  664697688,  1011158216,  562436267,  1022611113,  1528204714,  301826958,  548357599,  277441375,  1464007327,  1627811378,  1923959364,  908813064,  372053670,  207561515,  0,  191325388,  1777251866,  790413652,  960177247,  686175812,  1272225333,  136471835,  1141234192,  1386076792,  511681549,  1882018399,  161905292,  601515657,  89932940,  654058272,  1260814899,  2082576450,  151474061,  1786967120,  },
617        { 0,  0,  0,  0,  0,  0,  0,  1639896582,  0,  0,  0,  0,  0,  546632198,  0,  0,  1054219257,  546632198,  1054219251,  351406407,  0,  0,  0,  858993460,  0,  1132309559,  1,  858993460,  1054219251,  1132309559,  624722524,  1229922471,  0,  0,  0,  0,  0,  1639896594,  0,  858993488,  0,  0,  1717986914,  0,  0,  234270960,  2147483630,  858993493,  429496727,  1717986914,  1600851443,  1073741819,  1639896594,  234270960,  214748362,  1717986908,  0,  0,  0,  0,  0,  1366580528,  0,  0,  0,  0,  0,  1757032074,  0,  1249445015,  0,  0,  0,  0,  1151832136,  976128919,  2108438514,  1913212690,  976128922,  1805838530,  0,  0,  0,  585677367,  0,  0,  1405625661,  1561806283,  1405625661,  2108438475,  0,  0,  0,  0,  1054219242,  780903146,  1483715972,  1844883681,  0,  0,  0,  1717986917,  3,  1434909531,  1288490181,  1922973995,  575916071,  156180631,  0,  0,  0,  15,  0,  0,  3,  2147483641,  3,  1561806280,  0,  0,  741857983,  585677358,  741857983,  1883928826,  0,  1717986917,  0,  0,  1952257862,  1220161166,  663767672,  253793525,  0,  2147483644,  1717986917,  3,  858993460,  1288490190,  1610612736,  19522580,  351406404,  585677361,  1522761132,  1122548272,  },
618        { 0,  0,  0,  0,  0,  0,  0,  1662208117,  0,  0,  0,  0,  0,  1678941760,  0,  0,  323517019,  1678941760,  323517019,  619144635,  0,  0,  0,  1717986911,  0,  1483715975,  0,  1717986912,  323517031,  1483715975,  1612007206,  1630135316,  0,  0,  0,  2147483614,  0,  741857989,  0,  1717986911,  28,  2147483641,  1288490208,  0,  0,  1486504915,  0,  1717986888,  858993472,  1288490208,  1388892033,  230087525,  741857989,  1486504915,  659584261,  61356674,  0,  0,  0,  0,  0,  55778800,  0,  0,  0,  0,  0,  794847843,  0,  769747382,  0,  0,  0,  0,  1697069869,  1310801705,  1567384172,  2041503932,  543843261,  1788407650,  0,  0,  0,  1798866174,  0,  0,  635878275,  1115575919,  635878275,  1107209096,  0,  0,  0,  0,  170125327,  557787961,  875727097,  1754940372,  0,  0,  0,  1441881877,  1533916891,  649125740,  122713348,  614263993,  1385405847,  19522578,  0,  0,  0,  1687308583,  0,  0,  766958446,  613566755,  766958446,  348617473,  0,  0,  744646926,  1645474483,  744646926,  1606429326,  0,  1441881877,  0,  0,  474119767,  679804077,  504798104,  1929946342,  0,  766958444,  1441881877,  1380525203,  1411203540,  2116805310,  2032439880,  443441428,  1347755159,  34861747,  1532522420,  686776427,  },
619        { 0,  0,  0,  0,  0,  0,  0,  1333113546,  0,  0,  0,  0,  0,  546632233,  0,  0,  1974569220,  546632233,  1974569249,  964973248,  0,  0,  0,  858993453,  0,  1132309523,  0,  858993453,  1974569314,  1132309523,  1545072573,  1766793180,  0,  0,  0,  0,  0,  1639896540,  0,  858993453,  0,  2147483642,  1717986935,  0,  0,  1001229277,  2147483618,  858993453,  429496741,  1717986935,  1294068147,  997046104,  1639896540,  1001229277,  1211794460,  337461840,  0,  0,  0,  0,  0,  1673363574,  0,  0,  0,  0,  0,  1296857030,  0,  329095125,  0,  0,  0,  0,  1842094751,  1743087504,  1494871447,  686079379,  1282912353,  233573547,  0,  0,  0,  1352635657,  0,  0,  178492127,  1255023012,  178492127,  1648263750,  0,  0,  0,  0,  594044235,  1701253234,  1790499393,  732793815,  0,  0,  0,  951028489,  1994091932,  1166473993,  674923633,  657492456,  921047324,  156180654,  0,  0,  0,  153391463,  0,  0,  460175022,  1227133603,  460175022,  794847990,  0,  0,  1508816498,  2119594238,  1508816498,  1807233003,  0,  951028489,  0,  0,  1338691059,  798333984,  2044292879,  1634318739,  0,  460175151,  951028489,  1687308496,  245426669,  1441881827,  575218842,  1706831175,  543146065,  1582723355,  2059632085,  1544375358,  },
620        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
621        { 0,  0,  0,  0,  0,  0,  0,  911983628,  0,  0,  0,  0,  0,  917561295,  0,  0,  465752882,  917561295,  465752882,  206381445,  0,  5,  0,  1288490194,  0,  136657837,  0,  1288490194,  465752843,  136657849,  895249584,  1527641802,  0,  2147483644,  0,  29,  2147483589,  1678941544,  0,  1288490194,  0,  0,  429496700,  1073741784,  2147483635,  1121851186,  0,  1288490194,  1717986906,  429496712,  462964091,  2134701114,  1678941562,  1121851180,  846210920,  20452144,  0,  0,  0,  0,  0,  913377794,  0,  0,  0,  0,  0,  264949407,  0,  77625534,  0,  0,  0,  0,  1192039350,  257976964,  164547497,  1575286128,  1612936890,  1848834627,  0,  0,  0,  599621833,  0,  0,  748830297,  550815809,  748830297,  905940888,  0,  0,  0,  0,  1667321256,  543843128,  649823053,  137587611,  0,  0,  0,  1017498203,  1048176500,  395332188,  398818496,  1904845865,  282844947,  185464493,  0,  0,  0,  1457220916,  0,  0,  1150437642,  1994092010,  1150437642,  1189947807,  0,  0,  606129636,  1801190208,  606129636,  132823243,  0,  1017498203,  0,  0,  873867781,  629254557,  1778878743,  1403882577,  0,  792523721,  1017498203,  1354959926,  112487241,  1242472685,  1259090092,  1221555640,  896644191,  1219580125,  1674061121,  1638211600,  },
622        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  2147483642,  0,  12,  0,  0,  0,  0,  0,  2147483617,  0,  0,  0,  0,  2147483641,  28,  2147483641,  18,  0,  0,  0,  2147483618,  0,  12,  3,  18,  12,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
623        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  2147483614,  0,  0,  0,  2147483614,  1,  66,  0,  0,  0,  0,  0,  2147483488,  0,  0,  0,  0,  2147483614,  0,  2147483642,  99,  0,  0,  2147483641,  2147483614,  2147483624,  66,  2147483488,  99,  66,  2147483617,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
624        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  0,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
625        { 0,  0,  0,  1644096858,  0,  766028909,  1247584897,  1253822915,  0,  221255901,  0,  396029077,  1398188440,  1665619948,  838541546,  1145324544,  329221848,  89682738,  1719973352,  280917409,  501079317,  24728739,  130,  1206755825,  1426821479,  408620781,  1697534855,  1068424308,  658189385,  2047769412,  1567222186,  714559766,  357913859,  1050314792,  1932735424,  2018634863,  1455082830,  1529651160,  1431655847,  1927417453,  1918418737,  1856690299,  701569074,  1476946764,  926543310,  1213055885,  617656945,  1354755343,  1723168103,  650721896,  1693122326,  367217200,  1620026337,  1808344070,  2138720464,  1789626058,  1073742073,  1027637834,  1159640996,  466708314,  799892398,  817153732,  2004317983,  1897352898,  930064917,  78249704,  358465521,  346767985,  2053434544,  243627853,  1113282831,  876105087,  1613953124,  419563816,  2122808551,  1198622054,  1073885798,  1098463996,  2054375502,  1064057411,  1288490443,  1708194720,  1947506264,  1942645651,  1100216075,  1597545837,  1200743462,  122945930,  205424607,  775458132,  1372003461,  1971808127,  2048290411,  671514597,  1386704712,  2012795098,  1878296193,  750113776,  564140656,  414143950,  2113054547,  1224929721,  1186141578,  1190667543,  104238071,  162105401,  487793932,  1674864558,  0,  1515656363,  330644445,  34886237,  323826949,  1499829736,  1952215965,  1246850192,  675769949,  977729385,  1683195389,  1689126596,  1271559140,  147523207,  1039358226,  802978205,  59652308,  1820065763,  1950460591,  1169767793,  76164317,  1277470777,  1287326457,  1829152109,  1364572419,  1699514661,  1937535401,  381499314,  1210693257,  1964750273,  669489438,  355029783,  797915667,  68061319,  20282760,  2083255251,  },
626        { 0,  0,  0,  0,  0,  0,  0,  167335253,  0,  0,  0,  0,  0,  260300610,  0,  0,  1320098428,  976128622,  1320098428,  433215346,  0,  1431655635,  0,  43,  43,  1848137970,  0,  0,  747436281,  1132309854,  747436281,  442512299,  0,  1431655501,  0,  0,  1431655980,  2069393625,  0,  0,  0,  715827926,  715827908,  143165591,  715827908,  264949479,  0,  0,  0,  0,  414622142,  1564595039,  2069393305,  622863589,  1564595039,  2034996395,  2147483618,  1431656113,  0,  0,  715827682,  691657371,  0,  0,  0,  1431655739,  1312351027,  1123013046,  1312351027,  2009585772,  0,  0,  0,  0,  1744946583,  1197694352,  22311997,  604270023,  277344137,  1966047730,  0,  104,  0,  1403766600,  0,  0,  1743087412,  590325325,  1743087412,  2118664478,  0,  0,  0,  596523235,  1350776440,  1619444459,  1166706397,  1726431071,  0,  0,  0,  184070043,  1244177195,  289584886,  1779343717,  161525910,  657724972,  1361157783,  0,  0,  0,  1380525581,  0,  0,  1994092055,  306783229,  1994092055,  27889081,  0,  0,  557787833,  1863941503,  557787833,  280985133,  0,  184070043,  0,  1550960397,  880220361,  143862877,  1432430490,  1117900258,  0,  920350215,  184070043,  1227133432,  1779343561,  1595273518,  1568004033,  2093719215,  1379130103,  1863941665,  1296082456,  1948306840,  },
627        { 0,  0,  0,  354949391,  0,  264019554,  1721706729,  1313456811,  0,  1587836389,  0,  1706831696,  1732861305,  1564665957,  1954116686,  2121453624,  945496237,  830245835,  506702787,  1459611091,  501079821,  436003824,  2147483440,  1298902109,  1589695953,  237231757,  1954116945,  1427193371,  1963485570,  849722240,  880509909,  1106722474,  357914026,  1828614376,  1932735082,  1503238270,  2108438892,  1692742416,  1431655680,  724380979,  2004318057,  68793708,  1001981696,  1973476872,  1652455851,  2110731847,  107839356,  1010711878,  1983803942,  626085628,  1347409906,  2068680942,  1996446108,  1357523432,  261231450,  1807026712,  1073741569,  2038702394,  1932735546,  669061565,  960182859,  1945100827,  715827997,  1564502315,  895482125,  876957688,  882588489,  653732463,  1156634961,  333993294,  2089225729,  1373614934,  690665646,  1243033512,  1410182406,  2036004435,  1351250330,  1194560069,  2116369850,  1448521430,  2147483297,  1543647384,  1415128940,  114490855,  830122819,  442615302,  154455486,  1398512769,  1848653866,  2036793471,  1014089449,  790817273,  1859757993,  852176270,  259707799,  859401808,  900801003,  1143252798,  1985570056,  482536135,  873910750,  415124684,  1820176738,  885174911,  1223144160,  859494498,  1230850913,  158619233,  0,  650088319,  1772526241,  1228486422,  784001981,  579479845,  498552811,  1831897306,  778583153,  941758087,  2048868705,  1865077606,  991116821,  181755719,  1219360426,  724403839,  1849222027,  1959083153,  1589153340,  649213664,  1149969988,  744243328,  346972727,  1660077168,  1926599684,  682459662,  251371350,  58933435,  561320297,  1455526579,  351800701,  938755788,  1410261123,  1336470348,  1305608926,  1945298530,  },
628        { 0,  0,  0,  0,  0,  0,  0,  1993534087,  0,  0,  0,  0,  0,  1850740377,  0,  0,  102632938,  562250214,  532129707,  1588580170,  0,  1717986905,  0,  1803886257,  858993484,  2085011475,  1288490208,  944892773,  1820619954,  367024531,  1992418622,  1136214141,  0,  858993421,  0,  429496737,  1288490226,  1343153393,  0,  515396103,  858993439,  1288490163,  944892818,  1460288894,  1288490187,  99844085,  1288490208,  515396103,  257698002,  515396103,  174029868,  1987956279,  54663179,  1173585916,  871264772,  693330358,  61,  1717986932,  429496713,  2147483614,  429496715,  325748273,  0,  773094072,  1717986977,  858993472,  2061584319,  218095063,  1073741813,  947681662,  858993439,  1632087544,  386547069,  987842473,  135542472,  1298530350,  1456942256,  1047525714,  1801655078,  2047639646,  0,  0,  2147483581,  541054327,  1288490175,  66,  586792976,  931505861,  1875283118,  1432399455,  0,  1803886278,  429496670,  21,  1783805891,  1625394133,  544401048,  1055474285,  0,  85899334,  1116691507,  809908140,  797636768,  1894666258,  98170634,  123410604,  1581747226,  1973732689,  0,  0,  0,  920350071,  0,  0,  1472560221,  1349846858,  1472560188,  1176932650,  429496736,  2147483614,  1806117433,  847837727,  947123994,  830267351,  0,  1926599614,  1288490208,  2147483646,  1222671193,  684405822,  1204264198,  84644332,  0,  1472560218,  638109439,  674923429,  2106067885,  1736393906,  2109135717,  1713524626,  174308732,  1438395706,  201082569,  1106302689,  },
629        { 0,  0,  0,  0,  0,  0,  0,  1499333562,  0,  0,  0,  0,  0,  929274597,  0,  0,  1147927784,  499777904,  2006921208,  1585233423,  0,  1288490146,  0,  171798724,  1717986922,  1881976825,  429496712,  601295449,  1663323826,  1022983303,  1577424501,  458780661,  0,  1717986839,  0,  858993453,  429496787,  726240218,  0,  1889785585,  1717986935,  429496757,  1030792159,  858993479,  858993480,  913656576,  429496712,  1889785585,  944892836,  1889785585,  1561806132,  21474723,  726240117,  1128404989,  1653562304,  1717987069,  2147483618,  1717987014,  858993453,  29,  429496699,  218652797,  0,  687194803,  1288490136,  1288490167,  400863560,  1698464280,  357913912,  549235213,  1717986935,  257698062,  1417339196,  42949677,  1099121164,  1215605810,  191321227,  1534474721,  1945750220,  747064013,  0,  1717986956,  58,  1639896761,  429496741,  2147483589,  1101073421,  78090148,  1530570191,  1952257748,  0,  171798679,  858993511,  1431655755,  704114286,  468541975,  1949654789,  927973209,  0,  1030792161,  515396066,  42949662,  1574821427,  553139719,  1202590874,  1991302944,  2142277622,  788061506,  0,  0,  0,  429496888,  0,  0,  1717986928,  858993396,  1717986957,  1366580339,  858993453,  29,  616913440,  2069393394,  1046410152,  35140481,  0,  558345757,  429496712,  1431655769,  1958765390,  732096705,  1701067370,  216700688,  0,  1503238591,  128849016,  644245056,  869730866,  1546188214,  1360073025,  963764659,  1349009969,  888277402,  2123405843,  2015706245,  },
630        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  54,  0,  0,  0,  0,  0,  54,  0,  0,  2147483629,  54,  2147483629,  2147483557,  0,  0,  0,  0,  0,  103,  0,  0,  0,  0,  0,  18,  0,  2147483533,  0,  0,  0,  0,  2147483629,  2147483629,  108,  2147483521,  2147483629,  57,  0,  2147483645,  0,  2147483618,  63,  2147483569,  0,  0,  0,  0,  12,  2147483593,  12,  39,  0,  0,  0,  0,  18,  39,  2147483539,  69,  39,  2147483644,  0,  0,  0,  60,  0,  0,  12,  2147483587,  12,  2147483551,  0,  0,  0,  0,  2147483623,  54,  2147483623,  48,  0,  0,  0,  0,  0,  12,  2147483593,  24,  12,  2147483626,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483617,  0,  0,  2147483641,  30,  2147483641,  72,  0,  0,  0,  0,  12,  2147483629,  12,  2147483620,  0,  0,  0,  0,  0,  0,  0,  1610612718,  54,  2147483626,  1610612718,  1073741831,  },
631        { 0,  0,  0,  1293740293,  0,  2026629729,  957535688,  1526127571,  0,  845978431,  0,  1729142501,  1989443696,  1288974582,  1747735781,  1887182648,  369692128,  276775203,  481249786,  1694013203,  1789569596,  1654213243,  118,  365090842,  1674479426,  63384612,  316079828,  1267591753,  1265239224,  1624494620,  263179257,  1696483818,  357913914,  1578725896,  1073741869,  128849114,  210843837,  1204719743,  1431655719,  395583092,  2090217369,  1534660640,  1581345300,  1436261416,  1470810121,  832356684,  767516046,  1970404434,  1416310517,  785799367,  956255385,  139429941,  1712563021,  597170809,  2069593046,  431626121,  1073741905,  653005600,  1417339174,  117781073,  1324817264,  2135746995,  1574821307,  1024340454,  1111903841,  1607094817,  1685928881,  606168338,  1539649775,  1876925498,  1849191110,  1950144568,  1622890039,  1706122767,  970732513,  1623975415,  1763644213,  2046719889,  466691792,  448943514,  858993524,  973339464,  421026435,  2013756816,  1309634446,  1266281864,  1027122816,  1913848807,  874658451,  1125472348,  2087831385,  1426058473,  811302655,  1629360562,  1386957750,  1097744140,  1810212065,  822533305,  1429951471,  1718886818,  610018644,  1237537732,  1144082793,  1365445018,  44087221,  1736555897,  219673124,  2069960540,  0,  1950264979,  61356057,  1387166126,  613566557,  920350191,  839794625,  1267863794,  980625225,  1750476272,  1683344453,  89700662,  2047127694,  1512873023,  861788219,  1951004151,  59652376,  1436592761,  869544862,  1715169167,  1330921022,  2038803635,  269983840,  886503543,  623383705,  1177726514,  1081402257,  1283357959,  938421251,  1761981587,  1421834826,  210190804,  1829147858,  304398442,  418438266,  74895459,  },
632        { 0,  0,  0,  0,  0,  0,  0,  562250307,  0,  0,  0,  0,  0,  616913522,  0,  0,  1772650294,  187416783,  484159969,  1163545603,  0,  1288490193,  0,  601295527,  1717986908,  1983493999,  429496661,  1030792260,  484159927,  695003908,  1257254122,  1989350419,  0,  1717986932,  0,  858993460,  429496715,  734049344,  0,  171798597,  1717986953,  429496733,  1889785633,  1202590889,  429496817,  611056343,  429496661,  171798596,  85899469,  1030792089,  1101073203,  279172784,  304552671,  611056247,  193273486,  343597815,  0,  1288490037,  858993488,  42,  858993610,  1714081996,  2147483630,  1116691624,  1288490082,  1717986830,  794568850,  1350962290,  9,  2085011723,  1717986986,  687194897,  1632087517,  794568934,  704765160,  831661932,  710621333,  226462317,  1776554719,  1590113875,  0,  0,  228,  78090465,  429496775,  2147483419,  144466927,  566154610,  573963816,  753571578,  0,  601295371,  858993664,  2147483644,  1729700447,  132753661,  999555980,  374833413,  0,  1460288921,  1803886227,  2018634564,  1288490288,  738929550,  257698143,  1444670734,  910728216,  1516904464,  0,  0,  0,  1073741980,  0,  0,  644244961,  858993287,  644245075,  1210399872,  858993436,  114,  499778095,  1151832197,  929274756,  984913906,  0,  1675037258,  429496661,  73,  632531481,  1877095958,  503682468,  524181331,  0,  644245138,  1245540483,  1503238509,  1052266986,  1417339224,  268435485,  1169402471,  1571567450,  131777462,  1319726352,  1028351811,  },
633        { 0,  0,  0,  0,  0,  0,  0,  1243867248,  0,  0,  0,  0,  0,  312361265,  0,  0,  602410789,  312361263,  602410941,  753013770,  0,  1,  0,  1717986794,  2147483645,  1587836275,  76,  1717986796,  1175073306,  156180409,  316079756,  94359539,  0,  3,  0,  2147483646,  2147483644,  364420906,  0,  1717987024,  2147483595,  2,  2004318046,  1288490123,  715827779,  895715002,  76,  1717987024,  858993322,  1288490265,  137587991,  720941081,  1796076621,  1253629046,  1150437760,  1666855807,  2147483642,  154,  2147483646,  1431655717,  2147483493,  1261530951,  0,  2147483513,  159,  1431655868,  1360073087,  1280123575,  357913942,  1746805577,  2147483571,  2147483511,  58,  1717986927,  1880210166,  1263389633,  1941102759,  1461403965,  1580399158,  553837132,  0,  0,  715827629,  1152761572,  1431655714,  1431656018,  1467912146,  1250374930,  36256204,  1501379254,  0,  1002159091,  2147483419,  1431655763,  1505717648,  16733451,  166096930,  1689090492,  0,  1717986872,  143165617,  623792937,  1942961270,  1297166946,  1902056852,  165709606,  397269059,  70498080,  0,  0,  0,  1278263959,  0,  0,  971480864,  920350318,  255652855,  1710549739,  1431655790,  1431655638,  1855574505,  1817458990,  1855574581,  1396096984,  0,  51130545,  76,  238609208,  2049560944,  776487317,  55468970,  1980611980,  0,  1687308515,  766958478,  460175132,  971480705,  562436184,  1333655478,  1526324768,  584283035,  99472123,  1245106638,  1927389829,  },
634        { 0,  0,  0,  0,  0,  0,  0,  171797930,  0,  0,  0,  0,  0,  1202590522,  0,  0,  601295549,  773093883,  1460289031,  773094505,  0,  1288490143,  0,  601295464,  1717987008,  1918419355,  429496741,  1030792132,  28633307,  2061584893,  801727406,  801726987,  0,  1717986782,  0,  858993453,  429496865,  1775253870,  0,  171798708,  1717986906,  429496663,  1173957801,  1202590951,  1861152546,  1603453870,  429496741,  171798708,  85899325,  1030792161,  1231223693,  458129633,  2061584947,  171798099,  372230279,  2133167603,  0,  1288490213,  858993453,  715827892,  858993434,  1746619608,  2147483618,  1116691486,  1288490223,  286331157,  78741037,  1546187916,  1789569649,  816044007,  1717986906,  687194745,  1632087581,  794568952,  1632087615,  343597436,  515395564,  486763326,  930576117,  1045108612,  0,  0,  1431655726,  143165870,  1145324604,  715827921,  372230565,  1574820903,  85899385,  1632087480,  0,  1317123312,  858993424,  1789569762,  1035564241,  1889785936,  1379161592,  1486535874,  0,  1460288873,  372230505,  1660720735,  2004318177,  546415207,  257698033,  1753778154,  2386095,  209976293,  0,  0,  0,  2147483282,  0,  0,  1002158910,  1574821332,  1717986773,  429496851,  1574821345,  715827863,  2061584443,  858993771,  343597537,  1725144996,  0,  601295456,  429496741,  1550960455,  133621125,  1982843110,  1078514040,  987842571,  0,  286331331,  1603454499,  1861152316,  1052266913,  1775253034,  417566340,  1326667714,  1717986721,  286331252,  1298034650,  153902956,  },
635        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
636        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483584,  0,  0,  0,  0,  0,  2147483584,  0,  0,  21,  2147483584,  21,  105,  0,  0,  0,  0,  0,  2147483521,  0,  0,  0,  0,  0,  2147483621,  0,  147,  0,  0,  0,  0,  21,  21,  2147483521,  147,  21,  1073741756,  0,  0,  0,  0,  2147483642,  115,  0,  0,  2147483618,  0,  0,  81,  0,  536870858,  0,  0,  0,  0,  2147483626,  1073741777,  129,  536870830,  1073741777,  4,  0,  0,  0,  2147483577,  0,  0,  2147483633,  70,  2147483633,  112,  0,  0,  0,  0,  28,  2147483584,  28,  2147483591,  0,  0,  0,  0,  0,  2147483633,  63,  2147483619,  2147483633,  1073741848,  0,  0,  0,  0,  0,  0,  0,  0,  0,  35,  0,  0,  7,  2147483612,  7,  2147483563,  0,  0,  0,  0,  2147483633,  21,  2147483633,  1073741855,  0,  0,  0,  0,  0,  0,  0,  268435476,  2147483584,  1073741848,  268435476,  536870903,  },
637        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  432,  0,  0,  0,  0,  0,  426,  0,  0,  2147483503,  432,  2147483503,  2147482927,  0,  0,  0,  0,  0,  836,  0,  0,  0,  0,  0,  111,  1,  2147482695,  0,  0,  0,  0,  2147483503,  2147483503,  864,  2147482639,  2147483503,  509,  0,  2147483513,  0,  2147483619,  134,  2147482804,  0,  2147483641,  2147483614,  2147483624,  56,  2147483314,  56,  536871313,  0,  0,  0,  0,  144,  365,  2147482624,  536871530,  365,  1073741773,  0,  0,  0,  480,  0,  0,  96,  2147483167,  96,  2147482879,  0,  0,  0,  0,  2147483455,  432,  2147483455,  384,  0,  0,  0,  0,  0,  96,  2147483215,  192,  96,  2147483479,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483407,  0,  0,  2147483599,  240,  2147483599,  576,  0,  0,  0,  0,  96,  2147483503,  96,  2147483431,  0,  0,  0,  0,  0,  0,  0,  2147483509,  432,  2147483479,  2147483509,  60,  },
638        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
639        { 0,  0,  0,  0,  0,  0,  0,  736280315,  0,  0,  0,  0,  0,  858993491,  0,  0,  1656629962,  858993491,  1656630188,  1820248149,  0,  0,  0,  429496609,  0,  1049880885,  133,  429496609,  559027459,  572662255,  1418020909,  293489358,  0,  0,  0,  0,  0,  1383933675,  0,  1145324670,  715827851,  0,  1956596237,  1002159029,  1670265017,  2082036595,  715827830,  1145324670,  2004318070,  286331220,  68174224,  81468217,  1145324360,  411771578,  773434985,  49085088,  0,  715827945,  0,  1908874332,  1431655702,  1105783857,  2147483642,  858993411,  94,  477218630,  1684581736,  317009516,  0,  1187592419,  2147483597,  858993411,  1670264920,  1207363106,  1237700498,  2067719986,  355868990,  301329285,  2055448669,  2137768985,  0,  0,  954437072,  1499829748,  1908874332,  1193046575,  34087110,  545392771,  368140043,  617657156,  0,  1040336512,  2147483553,  0,  1961822884,  654471175,  1967958598,  1919384618,  954437247,  563117882,  1975684968,  280195492,  1465742731,  1102772645,  269969268,  490001339,  732587390,  34995930,  0,  0,  0,  1206681220,  0,  0,  1090785423,  204522304,  2045222519,  790819408,  1097602769,  954437096,  736280072,  1663447623,  1881604732,  1596637177,  0,  1683218164,  1431655796,  1033973573,  282695214,  46017493,  1395296263,  1211964705,  1717986816,  1353255578,  1730940055,  1748665316,  1990342409,  2084763476,  562152094,  724236003,  1894898795,  1535791612,  1364049758,  1395779172,  },
640        { 0,  0,  0,  0,  0,  0,  0,  1044178797,  0,  0,  0,  0,  0,  1452479793,  0,  0,  1451364642,  1881976532,  592370896,  790571326,  0,  858993454,  0,  1116691681,  429496739,  1890653348,  1717986774,  687194948,  1928582924,  1986097164,  296495415,  884372668,  0,  429496715,  0,  1288490187,  1717986932,  129283355,  0,  114532336,  1145324662,  1717986914,  1498466379,  229064966,  524940555,  92778425,  286331140,  114532337,  1488922102,  1403022551,  435941963,  1832178267,  1035998714,  1285824796,  462561105,  809908659,  0,  1574821199,  1288490154,  477218644,  572662448,  1170114744,  17,  1460289036,  858993308,  1622543092,  1498466175,  2028302813,  2147483638,  8057266,  429496839,  1889785763,  1970912817,  305419816,  1682443475,  186487117,  1736951132,  1069589821,  1315449909,  905800934,  0,  0,  238609555,  1491463231,  47721911,  1908874092,  1723812526,  1545692189,  912541113,  258255938,  0,  295875493,  1288490423,  3,  1734741209,  1698650389,  640547100,  643568333,  954437122,  391319315,  458129806,  807862843,  586297279,  1668059659,  73628212,  1674835635,  849970620,  1336935299,  0,  0,  0,  1871378771,  0,  0,  1366890209,  1083967748,  889671773,  942351758,  954437146,  1670265211,  1776926617,  683600217,  345270761,  651929833,  0,  1409158308,  1002158957,  1511192286,  1893710708,  556254079,  1969383957,  2026939639,  1717986996,  1987274592,  1170548953,  1114646177,  1894216898,  1117373252,  1414328250,  399107657,  1814716360,  1611790415,  1200494058,  659568735,  },
641        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496739,  0,  0,  0,  0,  0,  1288490193,  0,  0,  1717986914,  1288490193,  1717986908,  2147483641,  0,  0,  0,  0,  0,  1717986932,  0,  0,  0,  0,  858993460,  0,  0,  858993448,  0,  0,  1,  858993460,  429496733,  2147483641,  1717986932,  858993448,  1717986914,  1288490187,  0,  0,  0,  0,  0,  429496715,  0,  858993488,  0,  0,  1717986914,  0,  0,  1717986920,  2147483630,  858993493,  429496727,  1717986914,  429496733,  858993466,  429496715,  1717986920,  15,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496715,  0,  0,  0,  0,  1288490187,  0,  0,  1288490199,  0,  0,  0,  1288490187,  2147483644,  1717986923,  429496715,  1288490199,  3,  858993451,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986932,  0,  1288490187,  0,  0,  429496733,  0,  0,  1288490181,  0,  2147483641,  1288490187,  6,  1717986920,  429496733,  2147483644,  1288490184,  1717986932,  1288490181,  2147483641,  429496733,  },
642        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993460,  0,  0,  0,  0,  0,  429496730,  0,  0,  1288490187,  429496730,  1288490187,  0,  0,  0,  0,  0,  0,  1288490190,  0,  0,  0,  0,  1717986911,  0,  0,  1717986917,  0,  0,  0,  1717986912,  858993460,  12,  1288490190,  1717986917,  1288490187,  1503238550,  0,  0,  0,  2147483614,  0,  858993460,  0,  1717986911,  28,  2147483641,  1288490208,  0,  0,  1288490186,  0,  1717986888,  858993472,  1288490208,  858993472,  644245088,  858993460,  1288490186,  1073741826,  1073741826,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993454,  0,  0,  0,  0,  429496729,  0,  0,  429496733,  0,  0,  0,  429496729,  2147483646,  1288490190,  858993454,  429496733,  1,  1717986915,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490193,  0,  429496729,  0,  0,  858993460,  0,  0,  429496727,  0,  2147483645,  429496729,  2,  1288490189,  858993460,  2147483646,  429496728,  1288490193,  429496727,  2147483645,  858993460,  },
643        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496629,  0,  0,  0,  0,  0,  1288490138,  0,  0,  1717986989,  1288490138,  1717987018,  23,  0,  0,  0,  0,  0,  1717986767,  0,  0,  0,  0,  858993453,  0,  0,  858993532,  0,  0,  0,  858993453,  429496653,  89,  1717986767,  858993532,  1717986995,  214748523,  0,  0,  0,  0,  0,  429496721,  0,  858993453,  0,  2147483642,  1717986935,  0,  0,  1717987025,  2147483618,  858993453,  429496741,  1717986935,  429496718,  1932735230,  429496721,  1717987025,  2147483457,  2147483503,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429497039,  0,  0,  0,  0,  1288490214,  0,  0,  1288489956,  0,  0,  0,  1288490214,  1073741888,  644244978,  429497039,  1288489956,  1073741759,  1932735450,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986608,  0,  1288490214,  0,  0,  429496652,  0,  0,  1288490343,  0,  129,  1288490214,  2147483518,  1717986866,  429496652,  1073741888,  214748455,  1717986608,  1288490343,  129,  429496652,  },
644        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
645        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986787,  0,  0,  0,  0,  0,  858993334,  0,  0,  429496781,  858993334,  429496781,  198,  0,  0,  0,  0,  0,  429496473,  0,  0,  0,  0,  1288490194,  1073741784,  0,  214748636,  0,  0,  0,  1288490194,  1717986945,  40,  429496468,  214748648,  429496781,  501079427,  0,  2147483644,  0,  29,  2147483589,  286331350,  0,  1288490194,  0,  0,  429496700,  1073741942,  2147483635,  1234803033,  0,  1288490194,  1717986906,  429496712,  1717986866,  1646404050,  1717987159,  518975092,  715827777,  1968526655,  0,  0,  0,  1431655633,  0,  0,  715827856,  715828014,  715827856,  286331412,  0,  0,  0,  0,  1932735339,  1073741705,  715827935,  501079376,  0,  0,  0,  1216907404,  894784863,  1682195479,  644245261,  1216907311,  1968526640,  214748437,  0,  0,  0,  0,  0,  0,  0,  0,  0,  357914007,  0,  0,  1789569719,  1789569640,  1789569719,  429496523,  0,  1216907404,  0,  0,  1360072938,  1073741863,  715827856,  1395864454,  0,  1789569726,  1216907404,  357913921,  1861152486,  644245082,  894784863,  1082689724,  1503238386,  1753778382,  760567183,  1091637492,  },
646        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  2147483642,  0,  12,  0,  0,  0,  0,  0,  2147483617,  0,  0,  0,  0,  2147483641,  28,  2147483641,  18,  0,  0,  0,  2147483618,  0,  12,  3,  18,  12,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
647        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483614,  0,  0,  0,  0,  0,  0,  0,  2147483614,  1,  66,  0,  0,  0,  0,  0,  2147483488,  0,  0,  0,  0,  2147483614,  0,  2147483642,  99,  0,  0,  2147483641,  2147483614,  2147483624,  66,  2147483488,  99,  66,  2147483617,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
648        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  0,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
649        { 0,  0,  0,  132053010,  0,  330644001,  1930876654,  2117058672,  0,  1121463618,  0,  237989963,  1489603772,  2139125557,  263709461,  2088915907,  829498676,  556123343,  1130703898,  1547994716,  1097602941,  1837973424,  1670264858,  992664212,  1058743584,  2070776767,  209170351,  1910969246,  201365294,  2005892051,  383644695,  427610883,  1670265091,  97489243,  23860808,  568571686,  642199571,  1663857140,  715827862,  765954566,  978979875,  280877059,  1269044055,  154448956,  74076735,  1456767758,  1462272298,  922754814,  1275500074,  5670573,  1288021139,  1471529173,  24636944,  393200739,  1600967226,  926742667,  1431655668,  1697798711,  1587774563,  946431869,  957581832,  2055178475,  109078632,  742223773,  394293996,  1897290567,  723850855,  1080992593,  937961782,  985975911,  1145138649,  398285516,  693708603,  758970905,  1218652244,  501028307,  1252899399,  1256760510,  1985367617,  1020076803,  858993439,  1850585400,  686879846,  1572707979,  361498287,  864080668,  171576490,  1510538320,  2035984243,  569625071,  1431655698,  785550519,  867701300,  893648745,  1161140695,  57145869,  658899334,  1428307574,  1404386056,  1156314283,  1453726215,  1881963141,  1903289729,  582873164,  1750571625,  755070664,  411874244,  653642651,  306783546,  286696222,  513009900,  311285552,  1849222004,  818089058,  1838778088,  351033978,  1724877596,  2019383854,  1943641680,  1402972805,  956027606,  380438635,  2147280229,  1091289798,  96579957,  1558077098,  2056122542,  804104401,  61122698,  89559844,  352788180,  1933469409,  525213207,  1993749437,  729986387,  1964324225,  1405454721,  2072158690,  1323234819,  1486998918,  1516868354,  648877945,  310728697,  2058167865,  },
650        { 0,  0,  0,  0,  0,  0,  0,  966833669,  0,  0,  0,  0,  0,  151842775,  0,  0,  1741537698,  390451905,  1741537698,  819235614,  0,  715828013,  0,  1908874281,  1908874281,  277375080,  0,  0,  460887322,  1296577857,  460887322,  2145530720,  0,  238609557,  0,  0,  2028178758,  1647550552,  0,  0,  0,  715827862,  1735030398,  1921827430,  1735030398,  441736687,  0,  0,  0,  0,  1773053226,  1609249444,  1226575877,  2118819017,  1609249444,  1431400183,  0,  1811725975,  0,  0,  2125327315,  1323986712,  0,  0,  0,  412453249,  715828004,  828423584,  715828004,  750999863,  0,  0,  0,  0,  1446189340,  1202575771,  1016196049,  1491850746,  870653303,  973897677,  2147483618,  429496698,  0,  205296779,  0,  0,  49581156,  58877831,  49581156,  1057101057,  0,  0,  0,  1729917368,  721966151,  2122042311,  226084928,  2098509604,  0,  0,  0,  495881223,  812975776,  1498347652,  1330417009,  231211112,  342626451,  1804049959,  0,  153391743,  0,  652766479,  0,  0,  144869849,  1610612898,  144869849,  818592791,  0,  0,  1416161737,  1205325509,  1416161737,  913014421,  0,  495881223,  0,  525508567,  451508774,  1759766692,  1939152443,  409450923,  0,  331922468,  495881223,  1815561179,  1155721201,  659839978,  236336723,  571892587,  7112562,  1129268551,  241972598,  1738020854,  },
651        { 0,  0,  0,  0,  0,  0,  0,  1586572970,  0,  0,  0,  0,  0,  181169973,  0,  0,  1920129147,  1985056036,  1061135609,  587685457,  0,  171798792,  0,  996432335,  1803886150,  75040784,  1717986878,  51539649,  1575713429,  1457611391,  132604435,  1430119293,  0,  944893001,  0,  687194766,  987842290,  1340736429,  0,  1769526496,  1889785619,  1202590874,  1468469729,  1158414056,  1038973023,  97523116,  1975684943,  1340029764,  841813620,  1803886238,  73256250,  1642436520,  1559575468,  189558037,  182147682,  1159150553,  24,  1276218577,  1116691498,  1145324587,  1515510115,  1810494188,  1717986915,  755914276,  773094084,  1108510624,  674882625,  1504828173,  1932735405,  1270798180,  773094146,  841813625,  962072676,  102220206,  103068132,  1922963206,  373728304,  2125695062,  1321995121,  1500913067,  1717987045,  858993399,  1002158978,  1933912832,  1059425238,  1145324577,  833936423,  1181642846,  582442205,  778042151,  0,  1246113188,  1911260497,  250539704,  1884296955,  494423333,  1689905399,  481030358,  1717986910,  1575394025,  843531557,  1413207811,  1420406959,  2095331769,  397345643,  1840294516,  565696153,  2075762433,  0,  1533916919,  429496630,  1029292119,  2147483624,  33,  972844155,  999432162,  1612317030,  1215661754,  2033905649,  639472944,  186084308,  1985111595,  2100208061,  1189538027,  1789569708,  904779147,  1868310741,  73287168,  1766790048,  1500839975,  655027472,  219446530,  1099511630,  948574121,  2109278851,  1127326728,  41572603,  616886907,  35211854,  506585012,  686592999,  359370755,  807669023,  1953986762,  },
652        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986923,  0,  0,  0,  0,  0,  858993448,  0,  0,  429496715,  858993439,  429496715,  1717986950,  0,  0,  0,  0,  0,  1717986887,  0,  0,  0,  0,  2147483638,  429496715,  2147483638,  36,  0,  0,  0,  0,  1717986941,  858993466,  1717986878,  54,  858993466,  2040109427,  0,  31,  0,  0,  2147483611,  429496748,  0,  0,  0,  9,  0,  858993502,  0,  1073741792,  0,  0,  0,  0,  1288490181,  2147483641,  429496769,  2147483605,  536870911,  1503238570,  0,  52,  2147483618,  2147483614,  0,  0,  6,  57,  6,  429496709,  0,  0,  0,  0,  1395864368,  1288490160,  1073741822,  536870935,  0,  0,  0,  322122546,  1073741813,  1503238567,  429496706,  536870929,  12,  268435439,  0,  0,  0,  2147483623,  0,  0,  6,  33,  6,  3,  0,  0,  2147483641,  2147483626,  2147483641,  1717986950,  0,  322122546,  0,  1073741816,  1181116018,  1717986917,  9,  1073741807,  0,  1610612730,  322122546,  536870917,  1503238555,  1181116009,  2147483644,  590557997,  1717986941,  1073741813,  1073741816,  214748368,  },
653        { 0,  0,  0,  0,  0,  0,  0,  1125614031,  0,  0,  0,  0,  0,  538822149,  0,  0,  394914208,  109325928,  824411117,  135728188,  0,  1288489934,  0,  1030792357,  1717987161,  838665893,  1288490278,  1460288779,  1277087431,  320542445,  2050181550,  1728226855,  0,  1717986473,  0,  858993488,  1503238971,  1533978843,  0,  1030792198,  429496725,  429496687,  426769859,  449948934,  1199863978,  498576678,  1717986954,  1030792230,  85899291,  944892845,  1987708005,  340052042,  2062327444,  372454807,  1657175213,  1000318042,  2147483586,  1206681949,  858993451,  70,  582887962,  1071329009,  32,  1460288811,  858993472,  947619657,  356482025,  1325443724,  2147483356,  2146184523,  2147483543,  1030792064,  1775253142,  2146052092,  528423388,  474193313,  329858807,  1815695014,  988430138,  746044683,  2147483472,  1002159362,  715828182,  691502016,  429496818,  9,  1572341995,  815144877,  1968433675,  1289476145,  2147483613,  1838245934,  1825361088,  178957103,  214411716,  473190046,  1156304734,  727372907,  357913973,  191841849,  1477468798,  55493792,  1320873134,  1321262088,  1558051089,  727765520,  1889186465,  1207830565,  0,  920350369,  1431656201,  1563232130,  715828008,  715827791,  420974769,  61356236,  432905526,  217940014,  1429269501,  11930380,  170869032,  1483003285,  700581576,  871591390,  1431655738,  1244245332,  465288205,  1940120772,  935014469,  1374017903,  1276515711,  1343067427,  472446397,  198727713,  523645246,  875014152,  1974696285,  18798793,  1767015632,  358165960,  1419308275,  390412005,  999275087,  86295028,  },
654        { 0,  0,  0,  0,  0,  0,  0,  1740745424,  0,  0,  0,  0,  0,  1112006484,  0,  0,  70727603,  424811540,  1359217516,  1452777379,  0,  343597472,  0,  103079244,  1460288761,  1587067638,  1717986780,  360777371,  124993671,  70876188,  331152177,  2049227955,  0,  601295617,  0,  515396086,  687194577,  1176808916,  0,  790273885,  773094138,  257698069,  974889302,  2042768266,  2091580900,  1490608381,  515396065,  2078764088,  2027224647,  2061584221,  814866245,  377111791,  1334973000,  2090540236,  233946358,  1042286669,  24,  2102488484,  1374389530,  1574821304,  1190319731,  2072340121,  1288490203,  738734482,  1975684880,  55902747,  174375696,  964805782,  1717987045,  1498024355,  257698118,  1340029895,  1938461918,  460706751,  1269850232,  1348597794,  1660481732,  1553418952,  624084667,  1347941552,  1288490277,  143165508,  1288490132,  1185640295,  973525915,  1574821302,  1870101922,  917530252,  1405291011,  1792549370,  0,  2111405931,  708669687,  143165522,  939683469,  710975190,  1353718311,  519256938,  1646404094,  1195146267,  515968711,  1231414765,  362686088,  1418304457,  2113450958,  590761183,  81996863,  89405320,  0,  613566744,  143165356,  574434619,  715827856,  715828009,  883876942,  1037609698,  385183533,  50901334,  1130530848,  1648790317,  1463201883,  658109218,  237704465,  1753147551,  715827870,  401149929,  121690645,  1481650157,  288105777,  1781565360,  2098219643,  1280601496,  953482752,  142688248,  1946383639,  787887976,  867010809,  1926984934,  1013384975,  1042341420,  1210051075,  247510038,  1814194765,  739715411,  },
655        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993484,  0,  0,  0,  0,  0,  429496757,  0,  0,  1288490187,  429496769,  1288490187,  858993400,  0,  0,  0,  0,  0,  858993532,  0,  0,  0,  0,  12,  1288490199,  12,  2147483569,  0,  0,  0,  0,  858993436,  429496709,  858993538,  2147483557,  429496709,  1288490235,  0,  2147483629,  0,  1,  18,  1288490127,  0,  0,  0,  2147483635,  0,  429496697,  0,  36,  0,  0,  0,  0,  1717986938,  27,  1288490109,  51,  24,  1288490181,  0,  0,  28,  12,  2147483624,  33,  0,  2147483611,  0,  1288490175,  0,  0,  0,  12,  429496725,  1717986950,  2147483642,  10,  0,  0,  0,  429496730,  0,  1288490186,  1288490163,  9,  2147483646,  536870907,  0,  0,  0,  2147483599,  0,  0,  2147483623,  2147483635,  2147483623,  42,  0,  0,  30,  30,  30,  858993466,  0,  429496730,  0,  10,  858993449,  858993448,  2147483639,  2147483644,  0,  3,  429496730,  2147483644,  1288490187,  858993457,  2147483643,  2040109459,  858993484,  2147483638,  536870907,  644245095,  },
656        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  171798743,  0,  0,  0,  0,  0,  1803886298,  0,  0,  687194740,  944892836,  687194740,  171798643,  0,  0,  0,  0,  0,  601295487,  0,  0,  0,  0,  1288490185,  257698038,  1288490185,  429496660,  0,  0,  0,  0,  601295424,  85899332,  1889785672,  2147483584,  85899332,  1224065696,  0,  1288490201,  0,  0,  858993441,  1975684889,  0,  0,  0,  858993462,  0,  1374389533,  0,  858993476,  0,  0,  0,  0,  2061584315,  1717986952,  257697975,  429496751,  751619315,  1116691507,  0,  858993478,  0,  2147483636,  0,  2147483618,  6,  22,  6,  1975684885,  0,  0,  0,  0,  1195432554,  1846835953,  1431655756,  250539811,  0,  0,  0,  1911260445,  1932735274,  1403022668,  472446334,  966367678,  930576264,  232644030,  0,  0,  0,  1288490134,  0,  0,  2147483640,  30,  2147483640,  858993469,  0,  0,  7,  1288490199,  7,  1352914779,  0,  1911260445,  0,  1431655762,  2140325383,  279172857,  1431655777,  1395864335,  0,  966367637,  1911260445,  1181116010,  472446404,  708669606,  501079512,  640665935,  1675037316,  1181115977,  286331132,  343597392,  },
657        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288489833,  0,  0,  0,  0,  0,  1717986616,  0,  0,  858993582,  1717986572,  858993582,  1288490717,  0,  0,  0,  0,  0,  1288489511,  0,  0,  0,  0,  2147483603,  858993394,  2147483603,  716,  0,  0,  0,  0,  1288490297,  1717987080,  1288489497,  756,  1717987080,  858993132,  0,  28,  0,  2147483646,  2147483558,  858994153,  0,  0,  0,  44,  2,  1717987112,  2,  1073741498,  0,  0,  0,  0,  429496567,  2147483354,  858994150,  2147483275,  2147483352,  1932735329,  0,  2147483501,  2147483619,  116,  2147483641,  2147483614,  63,  207,  63,  1395864509,  0,  0,  0,  2147483601,  2075900871,  966367448,  357913953,  1968526487,  0,  0,  0,  1717986918,  27,  501079499,  858993733,  536870771,  1789569688,  984263472,  0,  0,  0,  436,  0,  0,  140,  2147483587,  140,  2147483431,  0,  0,  2147483483,  2147483443,  2147483483,  1288489788,  0,  1717986918,  0,  1431655728,  572662286,  1288490318,  1431655746,  171,  0,  2,  1717986918,  2147483645,  858993458,  1288490187,  715827923,  286331268,  1288489755,  169,  715827998,  429496687,  },
658        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
659        { 0,  0,  0,  0,  0,  0,  0,  204671142,  0,  0,  0,  0,  0,  1711219297,  0,  0,  83073329,  1195822995,  369404283,  1524998662,  0,  257698151,  0,  1609181024,  1632087542,  1272584911,  143165477,  1265583801,  440327926,  954666630,  365881915,  1762761213,  0,  1202590946,  0,  171798633,  730144356,  503796173,  0,  120259089,  544029154,  1803886244,  626974341,  1586956342,  1314169064,  1836099716,  2032951154,  549755733,  818907198,  1803886190,  1335912493,  1682186403,  2010330026,  369220615,  575039360,  955695078,  0,  1851266923,  1889785619,  1002159083,  463242928,  252824861,  429496662,  217611761,  515396086,  833314583,  1195814430,  1362759619,  1288490253,  549775661,  229064983,  1849699352,  1361981731,  1052648709,  22289673,  943804011,  1725164638,  1697642498,  745061892,  766293538,  429496762,  477217957,  668105749,  1187841095,  1517555066,  1002159067,  74700588,  780686314,  970439508,  1059176614,  56,  538684389,  916259715,  107374156,  1927724782,  1521112561,  1652936818,  655941698,  1264629245,  352569106,  1575966615,  2062448908,  1022497621,  1556750601,  532889279,  755046803,  1632687328,  2004683720,  0,  1891829838,  1479376820,  363163719,  1670264816,  954437320,  1880241862,  1733780844,  1181115951,  315608366,  1294694385,  732530582,  1369204151,  1842385559,  1208858963,  458424540,  57,  1912315876,  1543802037,  428549962,  1270023023,  1571866518,  653401923,  284445892,  1692217019,  1683655526,  922564620,  535410904,  1995526013,  467251651,  1548793883,  1121627779,  1548294256,  1548414561,  649810300,  1479620502,  },
660        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986806,  0,  0,  0,  0,  0,  858993448,  0,  0,  429496835,  858993484,  429496835,  2147483605,  0,  0,  0,  0,  0,  1717986950,  0,  0,  0,  0,  42,  429496754,  36,  1288490154,  0,  0,  0,  0,  1717986818,  429496721,  1717986968,  1288490118,  429496721,  1073741921,  0,  2147483593,  0,  24,  54,  18,  0,  1,  2147483614,  2147483605,  858993445,  858993385,  0,  107374226,  0,  0,  0,  858993493,  1717986926,  429496682,  2147483611,  107374271,  1073741765,  1073741789,  0,  0,  114,  96,  52,  2147483533,  2147483575,  2147483539,  0,  1288490229,  2147483630,  858993445,  99,  0,  1181115990,  1288490262,  2147483637,  2147483544,  0,  858993493,  429496718,  1181115979,  57,  1932735241,  1288490271,  2147483575,  2147483609,  161061373,  0,  0,  0,  192,  0,  0,  2147483635,  2147483461,  2147483635,  2147483617,  0,  0,  12,  66,  12,  1288489929,  0,  1073741828,  0,  35,  1073741752,  1717986950,  2147483589,  1288490310,  0,  1073741846,  1073741828,  1073741801,  2147483638,  1073741810,  19,  536870966,  1288489983,  1288490274,  61,  1717986893,  },
661        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496758,  0,  0,  0,  0,  0,  2004318019,  0,  0,  286331077,  1288490084,  286331077,  2004318237,  0,  0,  0,  0,  0,  1861152312,  0,  0,  0,  0,  1431655712,  1717986876,  1431655712,  1861152692,  0,  0,  0,  0,  1145324735,  1861152536,  429496521,  429496980,  1861152536,  1932735094,  0,  79,  0,  715827856,  2147483568,  858993590,  0,  0,  24,  715827935,  286331176,  1288490313,  0,  1825360976,  0,  0,  0,  1717986888,  286331111,  501079496,  858993669,  1467446969,  1789569704,  858993513,  0,  0,  1431655633,  1431655654,  715827856,  715828009,  79,  158,  0,  2004318063,  0,  286331176,  2147483578,  0,  1694126005,  858993334,  119304669,  1193046536,  0,  1717986888,  1574821351,  858993480,  715827833,  2099761829,  1288490156,  1073741874,  238609328,  1276559649,  0,  0,  0,  715827803,  0,  0,  1431655812,  715828051,  1431655812,  1431655735,  0,  0,  715827828,  715827770,  715827828,  644245279,  0,  286331147,  0,  1908874309,  334053084,  1503238551,  1193046525,  1145324521,  0,  1431655735,  286331147,  715827912,  1574821353,  1288490206,  954437164,  1330246782,  1717987038,  1145324557,  686001679,  465288143,  },
662        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717987360,  0,  0,  0,  0,  0,  143165901,  0,  0,  1861152329,  858993866,  1861152329,  1431655080,  0,  0,  0,  0,  0,  286331926,  0,  0,  0,  0,  715827936,  429496815,  715827965,  2004317203,  0,  0,  0,  0,  1002158923,  1145324482,  1717987732,  1288489238,  1145324482,  591,  0,  2147483523,  0,  1431655755,  124,  2147482806,  0,  0,  0,  1431655706,  143165590,  858993202,  0,  1717987412,  0,  0,  0,  858993453,  1002159165,  1861152850,  2147482682,  1002159633,  1431655997,  1073741636,  0,  0,  715827863,  715827922,  1431655755,  1431655784,  29,  2147483399,  0,  572662297,  2147483618,  143165590,  0,  56,  1777639222,  1288490445,  1312351064,  238609371,  0,  858993453,  1861152496,  107374212,  1431655755,  2052039887,  1288490047,  2,  1550960419,  1264629212,  0,  0,  0,  1431655081,  0,  0,  715827674,  1431655883,  715827674,  715828271,  0,  0,  1431656021,  1431656001,  1431656021,  1825361289,  0,  1431655789,  0,  596523285,  238609234,  1181115842,  238609307,  1109533150,  0,  715828004,  1431655789,  1431655643,  1431655716,  2147483574,  1908874353,  1908874296,  214748631,  35791323,  835132509,  1360072952,  },
663        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
664        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483640,  0,  0,  0,  0,  0,  2147483642,  0,  14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483646,  0,  0,  0,  2147483612,  0,  0,  2147483640,  30,  2147483640,  24,  0,  0,  2147483618,  0,  14,  18,  14,  1610612727,  0,  0,  0,  0,  0,  2147483646,  3,  1610612734,  2147483646,  1073741824,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
665        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  20,  0,  0,  0,  0,  0,  2147483614,  1,  2147483607,  0,  0,  0,  0,  0,  0,  0,  0,  0,  53,  0,  0,  0,  106,  0,  0,  20,  2147483541,  48,  2147483428,  0,  2147483641,  2147483614,  2147483624,  2147483607,  99,  2147483607,  536871001,  0,  0,  0,  0,  0,  53,  2147483488,  536870978,  53,  1073741797,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
666        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
667        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490379,  0,  0,  0,  0,  0,  1956596281,  0,  0,  1097602579,  1717986966,  381774860,  1212135052,  0,  0,  0,  0,  0,  47721817,  0,  0,  0,  0,  763549650,  1717986921,  1908874332,  534484738,  0,  0,  715827984,  1002158965,  1527099493,  1508010843,  1002158983,  773094053,  1364845126,  899556975,  0,  1431655796,  0,  954437166,  715827851,  1078514045,  0,  1717986932,  0,  238609315,  1469833350,  1288490178,  0,  672878213,  1431655681,  1717986932,  429496599,  1231224035,  782638521,  1593910151,  458129906,  720600057,  393705378,  338825276,  0,  0,  477218536,  954437151,  954437166,  1670265111,  1336212084,  1193046505,  0,  2090217362,  2147483642,  181343050,  0,  0,  567094746,  858993469,  1352119342,  171003387,  66,  2090217382,  2023406818,  217134461,  1431655740,  742870263,  372230439,  1777639299,  1916828016,  599704637,  0,  0,  0,  1717986905,  0,  0,  1670265096,  30,  9,  620384154,  2052039935,  477218560,  286331127,  1527099466,  2147483638,  971139919,  0,  1548574355,  0,  1590728610,  1359277621,  966367625,  1352119345,  1405408690,  1717986816,  1634473699,  1357686931,  1467447195,  1722759127,  102601988,  580615931,  166628804,  959209441,  713441745,  365867554,  460515956,  },
668        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490065,  0,  0,  0,  0,  0,  1240768345,  0,  0,  381775056,  1717986995,  1813430690,  496307282,  0,  0,  0,  0,  0,  763549969,  0,  0,  0,  0,  1479377735,  1717986954,  477218650,  1250312544,  0,  0,  715827817,  1002159091,  811271483,  76354848,  1002159294,  773093894,  2080673018,  1436428163,  0,  1431655672,  0,  238609319,  715827975,  1078513833,  0,  1717986902,  2147483619,  1670265003,  754005289,  1288490079,  0,  1746620145,  1431655830,  1717986903,  429496839,  1231223927,  66810617,  878082188,  458129580,  1078514190,  214748362,  338825101,  0,  0,  1193046601,  1670265183,  238609286,  954437046,  1336211968,  1193046307,  0,  1374389522,  17,  1612998846,  84,  0,  1342574936,  858993568,  159072832,  588569533,  2147483613,  2090217484,  233837080,  754005338,  1789569772,  1220088843,  372230527,  1240768271,  604476852,  1792751244,  0,  0,  0,  1002159121,  0,  0,  238609233,  1431655608,  715827843,  1336212048,  2052039925,  477218610,  1717986970,  811271717,  1431655804,  434268748,  0,  295875501,  0,  1829337968,  703102000,  1503238557,  159072820,  1226451865,  1717986996,  1813430630,  104988057,  1288490139,  2080673018,  639472902,  699920620,  1091239868,  2032951064,  1608226706,  1558914099,  1713214708,  },
669        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496739,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490193,  0,  0,  0,  0,  0,  1717986914,  0,  1288490193,  1717986908,  1717986902,  0,  0,  0,  0,  0,  1717986932,  0,  0,  0,  0,  858993460,  0,  0,  1717986902,  0,  0,  1,  858993460,  429496733,  429496727,  1717986932,  1717986902,  6,  1717986932,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993430,  0,  858993488,  0,  0,  858993454,  0,  0,  18,  2147483630,  858993493,  429496727,  858993454,  0,  429496739,  858993430,  18,  9,  429496718,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986932,  0,  1288490187,  0,  0,  429496733,  0,  0,  1288490181,  0,  2147483641,  1288490187,  6,  1717986920,  429496733,  2147483644,  1288490184,  1717986932,  1288490181,  2147483641,  429496733,  },
670        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993460,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496730,  0,  0,  0,  0,  0,  1288490187,  0,  429496730,  1288490187,  1288490185,  0,  0,  0,  0,  0,  1288490190,  0,  0,  0,  0,  1717986911,  0,  0,  1288490186,  0,  0,  0,  1717986912,  858993460,  858993472,  1288490190,  1288490186,  2,  214748367,  0,  0,  0,  0,  0,  0,  2147483614,  0,  0,  1717986914,  0,  1717986911,  28,  2147483641,  1717986937,  0,  0,  3,  0,  1717986888,  858993472,  1717986937,  12,  1932735277,  1717986914,  3,  1073741824,  1932735280,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490193,  0,  429496729,  0,  0,  858993460,  0,  0,  429496727,  0,  2147483645,  429496729,  2,  1288490189,  858993460,  2147483646,  429496728,  1288490193,  429496727,  2147483645,  858993460,  },
671        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496629,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1288490138,  0,  0,  0,  0,  0,  1717986989,  0,  1288490138,  1717987018,  1717987147,  0,  0,  0,  0,  0,  1717986767,  0,  0,  0,  0,  858993453,  0,  0,  1717987094,  0,  0,  0,  858993453,  429496653,  429496741,  1717986767,  1717987094,  2147483518,  644244917,  0,  0,  0,  0,  0,  0,  0,  0,  0,  858993760,  0,  858993453,  0,  2147483642,  858993502,  0,  0,  2147483419,  2147483618,  858993453,  429496741,  858993502,  66,  1503238449,  858993760,  2147483419,  2147483586,  429496895,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1717986608,  0,  1288490214,  0,  0,  429496652,  0,  0,  1288490343,  0,  129,  1288490214,  2147483518,  1717986866,  429496652,  1073741888,  214748455,  1717986608,  1288490343,  129,  429496652,  },
672        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
673        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  644245082,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1932735276,  0,  0,  0,  0,  0,  1503238565,  0,  1932735276,  1503238565,  71582821,  0,  0,  0,  0,  0,  787410638,  0,  0,  0,  0,  1288490194,  0,  0,  1145324649,  0,  0,  0,  1288490194,  644245082,  1717986906,  429496705,  1861152517,  357913921,  608453682,  0,  0,  0,  1789569637,  0,  0,  357913957,  357913949,  357913928,  214748439,  0,  1288490194,  0,  0,  930576248,  0,  1431655779,  268435425,  0,  1288490194,  1717986906,  1646404116,  0,  1181116004,  1288490241,  2058005138,  178956971,  1717986938,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  429496681,  0,  1216907404,  0,  0,  644245082,  0,  0,  858993483,  0,  1789569726,  1216907404,  357913921,  1861152486,  644245082,  894784863,  2111692267,  429496681,  858993483,  1789569726,  644245082,  },
674        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  2147483642,  0,  12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483617,  0,  0,  0,  0,  2147483641,  28,  2147483641,  18,  0,  0,  0,  2147483618,  0,  12,  3,  18,  12,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
675        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483614,  0,  0,  0,  0,  0,  0,  0,  2147483614,  1,  66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483488,  0,  0,  0,  0,  2147483614,  0,  2147483642,  99,  0,  0,  2147483641,  2147483614,  2147483624,  66,  2147483488,  99,  66,  2147483617,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
676        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  2147483624,  0,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
677        { 0,  0,  0,  637994425,  0,  723905598,  1873403097,  944039393,  0,  1274896722,  0,  1476258011,  1527016873,  1238396766,  423980892,  1985373983,  1172148798,  619706613,  1797697814,  1640622012,  1535848444,  1372364938,  2091808246,  1264798547,  1667000948,  1961384794,  474884172,  283401626,  1675376251,  1984757221,  115547524,  1254980586,  1077718643,  1277933499,  1488126646,  1077718695,  1102591893,  2065554638,  1447563008,  1952799156,  279172842,  1848839881,  1490331828,  31932688,  582038305,  1665424564,  1055190199,  753389761,  962334260,  715417548,  803074983,  1354747759,  681089496,  1272199914,  1189250297,  1448785024,  1061811365,  798855151,  1159641136,  1667105153,  1133212197,  1203887907,  119304607,  1055003853,  6174525,  902839686,  790911354,  2109733957,  89349375,  1582521317,  413345000,  1525064190,  25405843,  236581957,  159092545,  2078170763,  81823342,  569097184,  117224774,  1154260526,  1717986908,  219955183,  183940813,  807178910,  1116514135,  678934815,  1438904169,  1431851050,  1139519735,  71893552,  1381945542,  1532639150,  581788188,  108605072,  2140351280,  1142997783,  1044597005,  642851760,  53497728,  670374690,  320014757,  269318885,  1466698889,  1777561175,  1890307798,  1178763996,  1045647166,  276023347,  1789569646,  1289626611,  979813119,  1637017592,  1208859094,  803507382,  1889087621,  1872167867,  315999262,  1283330816,  2139723122,  473270354,  1019927989,  853833889,  1221975973,  1038810530,  619721355,  1643393888,  574343894,  501820412,  1748575006,  1849388377,  1052842103,  859796299,  395920969,  845781625,  1232060742,  1885347929,  1204328072,  480602032,  1167279901,  874630103,  11329397,  1990704372,  68553797,  2053306228,  },
678        { 0,  0,  0,  0,  0,  0,  0,  970860509,  0,  0,  0,  0,  0,  1889351580,  0,  0,  171984717,  2080239095,  171984717,  2094028937,  0,  739688768,  0,  1463470382,  1463470382,  41369422,  0,  0,  1371280554,  1680956075,  1371280554,  53506586,  0,  2075900771,  0,  0,  1654357856,  77212342,  0,  0,  0,  1558914045,  160209117,  1450971753,  160209117,  1193769701,  0,  0,  0,  0,  1740350000,  9657921,  1079939399,  886418239,  9657921,  144443807,  0,  1239064077,  0,  0,  455061924,  367907853,  0,  0,  0,  1987274530,  775480155,  1724262043,  775480155,  234890572,  0,  0,  0,  0,  1768032864,  1477750583,  1034232099,  1604492416,  163268985,  681585937,  0,  2,  0,  67425275,  0,  0,  1270671957,  688170846,  1270671957,  712677472,  0,  0,  0,  1093625947,  431566912,  1563975449,  1886657510,  244397958,  0,  0,  0,  692393049,  849335526,  1539387139,  66469826,  624993567,  776689590,  2071009567,  2147483618,  1585047416,  0,  1165208866,  0,  0,  361890802,  997614057,  361890802,  1885052102,  0,  0,  1369937545,  1802313617,  1369937545,  1069803427,  0,  692393049,  0,  1466689673,  1666253759,  1189805660,  1595949259,  1376219259,  0,  1314481598,  692393049,  833002049,  762697549,  70304500,  1065693522,  112689601,  729694817,  1526421728,  77537351,  2069896861,  },
679        { 0,  0,  0,  0,  0,  0,  0,  2032128026,  0,  0,  0,  0,  0,  1558769490,  0,  0,  796140392,  2063257754,  305287072,  1310992051,  0,  2014544212,  0,  257698057,  1697534741,  410952363,  1902056987,  1730258229,  671527920,  498117858,  1146019540,  911264319,  0,  269287685,  0,  1083967935,  947619714,  1550477832,  0,  2118850546,  1942961391,  279513695,  438943734,  482380340,  353044365,  2028837701,  1840700256,  1607544913,  1734348696,  106351592,  21846758,  1270833121,  66961124,  624208023,  1872128490,  1408337828,  0,  428279278,  265878928,  170435211,  1443099325,  211784826,  1636178014,  143165557,  613566768,  1794439282,  2112237655,  2113394405,  877741312,  2070314503,  1493012419,  674923413,  1619816237,  365276764,  1966603693,  2031902540,  1857935863,  1683080507,  437074488,  942653029,  24,  1902056939,  545392662,  1164445027,  1274855369,  681740844,  904898778,  977276306,  1409614274,  1027143865,  0,  1203817969,  1533916879,  1201568268,  1212584330,  1492870753,  108807757,  1477022870,  1329394654,  1929871958,  704510991,  1832784803,  2075657328,  476438038,  1630831256,  1284597075,  1209726642,  1960526452,  306783546,  1336699009,  1840700315,  236044603,  1227133506,  511305577,  1591783689,  423572149,  800396233,  941237290,  865583590,  1100443310,  1395375901,  162330646,  157334547,  1901784988,  852176055,  2117797901,  204522291,  369682042,  1644894240,  789940618,  4876606,  1451724761,  1067606163,  1183465619,  1820786166,  1441236627,  1666405065,  2044176318,  911479385,  403466156,  1071574395,  1060930483,  912056587,  2131389719,  },
680        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  107374163,  0,  0,  0,  0,  0,  15339167,  0,  0,  46017525,  1702647753,  46017525,  1181115997,  0,  0,  0,  0,  0,  414157566,  0,  0,  0,  0,  1687308586,  1196455179,  1687308586,  1380525195,  0,  0,  0,  0,  1948074434,  1856039438,  1257811859,  1840700256,  1856039438,  218583168,  0,  1764004415,  0,  0,  383479232,  1273151020,  0,  0,  0,  460175061,  0,  705601757,  0,  498522998,  0,  0,  0,  0,  291444209,  38347916,  889671788,  1533916907,  824480326,  812975947,  0,  2147483642,  0,  1380525222,  0,  0,  0,  1380525183,  0,  506192589,  0,  0,  0,  0,  187904821,  1441881890,  345131303,  939524070,  0,  0,  0,  1990257165,  306783388,  1810021920,  2040109484,  1936570064,  1495568956,  1370938241,  0,  153391743,  2147483618,  920350164,  0,  0,  613566758,  1687308559,  613566758,  1898222154,  0,  0,  997045984,  747784491,  997045984,  644245035,  0,  1990257165,  0,  1380525212,  1430377483,  682593029,  958698037,  1121676753,  0,  1361351237,  1990257165,  786132410,  314452964,  471679446,  1073741823,  1338342498,  1717986878,  680675635,  1102502775,  1480229797,  },
681        { 0,  0,  0,  0,  0,  0,  0,  382311169,  0,  0,  0,  0,  0,  647021000,  0,  0,  915674117,  844044103,  547533838,  622616962,  0,  1929667226,  0,  277741172,  435632302,  1801340754,  889671684,  107987796,  118368791,  1112197731,  571590083,  776687037,  0,  1684922051,  0,  1235314403,  247813228,  1672575993,  0,  1866879103,  1428587932,  1739121072,  927605778,  1896417947,  1893973466,  1235317294,  1122827218,  1733939640,  945710864,  1504261118,  1078327660,  1106904889,  1752728734,  1212552453,  1600826280,  687432095,  5,  954291750,  13293946,  1905465667,  1326131531,  1148400045,  2014544184,  561209096,  9203498,  253510181,  218521623,  1838152157,  1633621422,  1559723694,  2028860797,  587796988,  1143995210,  1225793818,  1157864205,  74885446,  608099681,  1688274232,  530827919,  1292334329,  429496615,  388592614,  1315759934,  2031393290,  1316441582,  320418228,  1125599660,  1900343637,  1635331620,  670170090,  0,  948819622,  2138280128,  1560334261,  273858761,  1005424418,  547694212,  711497175,  173843868,  662999811,  1192862412,  726357822,  748624816,  1468623554,  312171298,  713442906,  546591578,  498850952,  766958076,  504001617,  1308942475,  1808803203,  1636178108,  1278264267,  1118476888,  1074723195,  834929562,  1370350676,  1921014996,  777411808,  191306276,  1673622419,  18092887,  656119847,  2011135427,  306005582,  808374164,  1484369074,  1264280677,  1396348993,  1315996390,  1951644614,  1687615331,  1115347477,  360112996,  1342328241,  1404118214,  1974122666,  934728904,  952294108,  1113064314,  387437729,  1015605873,  1773196249,  },
682        { 0,  0,  0,  0,  0,  0,  0,  424710669,  0,  0,  0,  0,  0,  1143242259,  0,  0,  1752537697,  1427528231,  1875251248,  1303250321,  0,  1647426773,  0,  919122991,  1715941756,  21972278,  1135098599,  1023429305,  32963406,  761855931,  1953018297,  534581753,  0,  790478557,  0,  1783434033,  1643336241,  1593418622,  0,  675741549,  1504261157,  820134177,  1847371641,  1132205974,  1739997401,  110047704,  1343711152,  1913101161,  1479104936,  1526758659,  398787492,  438178761,  231057004,  856188631,  1919942354,  1536161279,  0,  451701953,  1594250954,  876036989,  1245832741,  456129133,  1237359612,  1654994032,  1929667470,  407486246,  1251679630,  324764088,  1483638468,  892726442,  1137143683,  548528646,  413237208,  1452793189,  397007017,  1542487260,  1279169535,  500537417,  1156947647,  2042007346,  1288490217,  634018988,  1629360601,  829034057,  1931371794,  927167546,  942717015,  1647835965,  576218859,  1250476250,  0,  1696634787,  217816189,  871776138,  1128789010,  2140652022,  1320090197,  1113591296,  777184598,  1779977588,  257282174,  822913332,  1158253275,  898538738,  1743528866,  59326894,  1819850998,  1241674087,  460175229,  701219180,  756732426,  884813539,  409044500,  766958364,  1098787667,  2038835392,  339612505,  1385127759,  1298097019,  1094307652,  132498530,  1390409477,  636833374,  1840835029,  85217631,  440529409,  1269571909,  2039013738,  518814273,  1529269860,  1931819744,  1958309131,  718793475,  1297886091,  740109099,  1541564523,  1666930466,  825001985,  1816562995,  1254004446,  462821603,  178626064,  483872807,  1932142055,  },
683        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  515396073,  0,  0,  0,  0,  0,  196341365,  0,  0,  1448017547,  1607544902,  1448017547,  515396071,  0,  0,  0,  0,  0,  576752752,  0,  0,  0,  0,  1411203537,  2000227627,  1411203537,  61356673,  0,  0,  0,  0,  883536127,  564481419,  1067606157,  1227133510,  564481419,  757754944,  0,  1104420165,  0,  0,  1043063488,  404954052,  0,  0,  0,  736280110,  0,  441768060,  0,  582888421,  0,  0,  0,  0,  1583002228,  705601769,  1079877490,  1595273570,  567549252,  1816157599,  0,  429496745,  1,  920350101,  0,  0,  2147483641,  920350125,  2147483641,  251562405,  0,  0,  0,  0,  1796727996,  631973765,  51130575,  35791376,  0,  0,  0,  1745597421,  1349846865,  1550278665,  343597384,  1058402655,  746506213,  1030280851,  0,  1533916919,  28,  184069977,  2147483624,  33,  1840700244,  1840700240,  1840700244,  352800944,  0,  0,  306783411,  1948074465,  306783411,  300647669,  0,  1745597421,  0,  204522264,  950005845,  147256026,  1891830814,  237757131,  0,  138052517,  1745597421,  2009431130,  803772452,  1205658678,  1145324607,  451994181,  1803886254,  1894387363,  1996648489,  1337575528,  },
684        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1181115966,  0,  0,  0,  0,  0,  680036474,  0,  0,  1324281611,  322122538,  1324281611,  1539029957,  0,  0,  0,  0,  0,  1896943867,  0,  0,  0,  0,  1789569711,  1503238556,  1789569711,  1789569727,  0,  0,  0,  0,  465288106,  2111692261,  644245076,  15,  2111692261,  1637456281,  0,  1610612725,  0,  0,  536870922,  2040109492,  0,  0,  0,  357913936,  0,  1932735273,  0,  268435456,  0,  0,  0,  0,  35791386,  1342177259,  1503238571,  357913947,  223696198,  2040109458,  0,  2147483641,  0,  1073741852,  0,  0,  0,  1073741806,  0,  1682195548,  0,  0,  0,  0,  396687953,  1288490195,  1461481929,  74565367,  0,  0,  0,  1082689671,  357913954,  310192069,  966367684,  134217706,  328087764,  2050548651,  0,  1073741861,  0,  59,  0,  2147483618,  11,  1789569688,  11,  760567099,  0,  0,  178956959,  1297438032,  178956959,  107374103,  0,  1082689671,  0,  477218596,  718810483,  1449551483,  1819395849,  1588243150,  0,  1118481061,  1082689671,  1029002586,  2129587952,  1046898281,  2028179005,  426514129,  1717986850,  469762073,  976806812,  483183818,  },
685        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  137,  0,  0,  0,  0,  0,  1431655804,  0,  0,  1431655672,  43,  1431655672,  1431655728,  0,  0,  0,  0,  0,  715827968,  0,  0,  0,  0,  715827886,  2147483645,  715827886,  715827799,  0,  0,  0,  0,  1431655813,  715827833,  86,  2147483563,  715827833,  536870949,  0,  2147483619,  0,  0,  2147483645,  2147483586,  0,  0,  0,  1431655761,  0,  6,  0,  1073741842,  0,  0,  0,  0,  1431655814,  75,  2147483561,  1431655766,  894784885,  1073741822,  0,  2147483517,  2147483646,  152,  0,  0,  24,  43,  24,  715827726,  0,  0,  0,  0,  1372003405,  1073741795,  1550960367,  1372003548,  0,  0,  0,  1968526685,  357913902,  596523279,  2147483537,  536870958,  238609355,  686001665,  0,  2147483297,  2147483619,  146,  2147483641,  2147483614,  123,  715828095,  123,  894784754,  0,  0,  1789569650,  894784811,  1789569650,  1610612912,  0,  1968526685,  0,  835132469,  1372003483,  1610612701,  835132597,  984263272,  0,  1252698837,  1968526685,  894784810,  357913924,  536870886,  1670265057,  686001711,  101,  1073741798,  417566268,  536870889,  },
686        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
687        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1059425205,  0,  0,  0,  0,  0,  96807125,  0,  0,  624474622,  867174272,  624474622,  1536643985,  0,  0,  0,  0,  0,  1850244508,  0,  0,  0,  0,  770367147,  106351561,  770367147,  74991626,  0,  0,  0,  0,  1986592845,  1023974765,  1734348544,  306783542,  1023974765,  1093171392,  0,  2065674832,  0,  23,  797636762,  65447158,  0,  0,  0,  1377116500,  2147483601,  1828428964,  2147483635,  593114528,  0,  0,  0,  0,  1123508882,  1697534658,  413135103,  160209045,  2006022351,  239290990,  0,  1002159187,  715827980,  409044323,  18,  2147483614,  2147483525,  1124872380,  2147483635,  1786842903,  0,  2147483613,  0,  0,  1774457841,  1034882598,  2050903711,  958413864,  0,  0,  17,  797295951,  1888422121,  1266447203,  229065038,  2009431028,  355641474,  553346406,  0,  920350369,  1431656026,  224974445,  715828008,  715827791,  102260976,  340870286,  1533916897,  431201068,  2147483537,  1431655727,  494262096,  1187933440,  1568003892,  1632087303,  2147483613,  1871037777,  1431655843,  2119077745,  1312237436,  251562390,  840813684,  2109988027,  0,  1838995954,  797295951,  308487710,  910805729,  1545165564,  1916828023,  1791217331,  1918418464,  2106579315,  1823940891,  48062687,  },
688        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  544029171,  0,  0,  0,  0,  0,  1741166117,  0,  0,  403590605,  1713896495,  403590605,  1021247739,  0,  0,  0,  0,  0,  1580275318,  0,  0,  0,  0,  2120214025,  2094307855,  2120214025,  320418146,  0,  0,  0,  0,  796273266,  1993410212,  1280309343,  920350096,  1993410212,  1869333388,  0,  40904462,  0,  0,  674923423,  1398932141,  0,  0,  0,  27269622,  0,  159527376,  0,  1135098519,  0,  0,  0,  0,  154073435,  1298716302,  867174304,  1172594241,  518123071,  1848881191,  0,  572662307,  715827856,  1227133454,  0,  24,  1431655762,  1942961428,  2147483641,  359277447,  0,  0,  0,  0,  1409385585,  1630042316,  1539598072,  922622644,  0,  0,  0,  585615346,  1919100483,  380865886,  959209323,  2127031478,  836268745,  1453244185,  0,  613566744,  1431655633,  245426607,  715827856,  715828009,  306783341,  545392708,  1022611243,  1842404720,  1431655768,  715827912,  1005567832,  390296601,  1005567772,  78741160,  0,  2017271160,  1431655703,  1147597125,  1282581775,  947960650,  176116370,  645097216,  0,  780593231,  585615346,  1366890416,  1692080788,  1822293312,  771503364,  1236961897,  1188274410,  1541586412,  1399557083,  1139188975,  },
689        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483623,  0,  0,  2147483642,  0,  2147483641,  36,  0,  0,  0,  0,  12,  0,  12,  2147483632,  0,  0,  0,  0,  0,  2147483641,  0,  0,  2147483641,  3,  0,  0,  0,  2147483599,  0,  0,  4,  2147483635,  2147483623,  60,  2147483624,  33,  36,  12,  36,  2147483617,  0,  0,  0,  12,  2147483632,  0,  2147483632,  9,  0,  0,  0,  0,  0,  0,  2147483641,  3,  0,  0,  3,  1610612733,  },
690        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483640,  0,  0,  0,  2147483642,  0,  13,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483646,  0,  0,  0,  2147483612,  0,  0,  2147483640,  30,  2147483640,  19,  0,  2147483618,  13,  20,  13,  1610612733,  0,  0,  0,  0,  1,  1610612734,  1,  536870910,  0,  0,  0,  0,  0,  0,  0,  2147483646,  3,  1610612734,  2147483646,  1073741824,  },
691        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  112,  0,  0,  23,  2147483614,  24,  2147483522,  0,  0,  0,  0,  2147483601,  0,  2147483601,  1073741828,  0,  0,  0,  0,  0,  23,  0,  0,  23,  1073741865,  0,  0,  0,  290,  0,  0,  112,  2147483587,  140,  2147483463,  2147483641,  2147483614,  2147483522,  2147483594,  2147483522,  536870798,  0,  0,  0,  2147483601,  1073741828,  536870978,  1073741828,  536870970,  0,  0,  0,  0,  0,  0,  23,  1073741865,  2147483488,  536870978,  1073741865,  268435438,  },
692        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
693        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  288717414,  0,  0,  0,  0,  0,  1822861487,  0,  0,  1714464480,  1762641003,  1714464480,  633905175,  0,  0,  0,  0,  0,  429610470,  0,  0,  0,  0,  2087263186,  258379720,  2087263180,  1462788510,  0,  0,  0,  0,  577320920,  1853766929,  1377798359,  1713896379,  1853766929,  318117270,  0,  1164072344,  0,  1431655709,  506192472,  1877173595,  0,  17,  0,  60220461,  658561747,  1372344388,  0,  891887317,  0,  0,  1717986816,  1374389518,  293716718,  1148222082,  82490526,  112714489,  1672111591,  186456282,  0,  906714719,  238608930,  1039655390,  1431655709,  1431655886,  1097603216,  562436261,  0,  488580607,  1,  658561747,  2147483548,  0,  1435566181,  476877716,  193633385,  173323367,  0,  1374389518,  830360320,  573826936,  77263917,  1587925974,  513009718,  900324194,  373347790,  1616232161,  0,  1891829838,  1908873582,  1663448057,  1670264816,  954437320,  1602091701,  2039541562,  170435158,  73429198,  1097603133,  2147483597,  1149869485,  606891467,  1042495617,  1534258211,  56,  1070134151,  1372003444,  1967579874,  1369096656,  845188100,  1477578565,  808530203,  1717986816,  793233823,  759942213,  1354249829,  1844506757,  583485000,  42419319,  618291460,  997387385,  306740512,  1024481174,  74139380,  },
694        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  24,  0,  0,  0,  0,  0,  2147483614,  2147483641,  2147483632,  0,  0,  0,  0,  0,  0,  0,  33,  6,  2147483638,  0,  0,  0,  102,  0,  0,  24,  2147483533,  0,  2147483587,  0,  1,  2147483614,  0,  2147483632,  99,  0,  536870872,  0,  0,  0,  33,  0,  2147483638,  0,  536870884,  0,  1073741864,  0,  0,  0,  192,  0,  0,  102,  2147483461,  2147483635,  2147483557,  52,  2147483533,  2147483587,  126,  12,  2147483515,  2147483630,  2147483632,  99,  0,  536870872,  2147483638,  2147483614,  1073741891,  0,  2147483641,  33,  6,  2147483638,  536870884,  0,  1073741864,  2147483539,  1073741870,  33,  268435442,  },
695        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483645,  0,  0,  0,  0,  0,  715827863,  0,  0,  0,  0,  0,  29,  0,  715827891,  0,  0,  0,  0,  0,  0,  0,  2147483617,  2,  715827894,  0,  0,  0,  715827833,  0,  0,  715827863,  715827979,  7,  715827876,  0,  0,  24,  0,  715827891,  2147483560,  2147483633,  1610612792,  0,  0,  0,  2147483617,  0,  715827900,  2147483644,  1968526706,  7,  1789569666,  0,  0,  0,  715827803,  0,  0,  715827798,  715828051,  1431655812,  2147483635,  715827856,  715828009,  715827900,  2147483517,  715827821,  1789569858,  0,  715827905,  2147483578,  0,  1073741872,  1073741838,  1073741870,  1073741752,  0,  2147483645,  2147483617,  2,  715827893,  1431655793,  6,  715827843,  93,  1431655723,  2147483612,  178956988,  },
696        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483624,  0,  0,  0,  0,  0,  0,  0,  0,  0,  129,  0,  0,  0,  0,  0,  1431655735,  0,  0,  0,  0,  2147483641,  33,  23,  1431655844,  0,  0,  0,  0,  0,  0,  0,  20,  2147483518,  1431655662,  0,  0,  0,  1431655431,  0,  0,  1431655707,  1431655890,  2147483599,  1431656317,  0,  0,  0,  1,  1431655900,  2147483548,  96,  1073741580,  0,  0,  0,  20,  0,  1431655667,  159,  715827744,  2147483599,  1431655875,  0,  0,  0,  1431655081,  0,  0,  1431655537,  1431655883,  715827674,  638,  1431655755,  1431655784,  1431656098,  2147483634,  1431656069,  1968526266,  2147483618,  1431655804,  0,  56,  1610612581,  1610612723,  2147483560,  536871071,  0,  129,  20,  2147483518,  1431655715,  1252698722,  5,  357914025,  1073741639,  178957076,  1073741947,  357913854,  },
697        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
698        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483640,  0,  0,  0,  0,  0,  2147483642,  0,  14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483646,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483612,  0,  0,  2147483640,  30,  2147483640,  24,  0,  0,  2147483618,  0,  14,  18,  14,  1610612727,  0,  0,  0,  0,  0,  0,  0,  2147483646,  3,  1610612734,  2147483646,  1073741824,  },
699        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  20,  0,  0,  0,  0,  0,  2147483614,  1,  2147483607,  0,  0,  0,  0,  0,  0,  0,  0,  0,  53,  0,  0,  0,  0,  0,  0,  0,  0,  0,  106,  0,  0,  20,  2147483541,  48,  2147483428,  0,  2147483641,  2147483614,  2147483624,  2147483607,  99,  2147483607,  536871001,  0,  0,  0,  0,  0,  0,  0,  53,  2147483488,  536870978,  53,  1073741797,  },
700        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  },
701        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1192251112,  0,  0,  0,  0,  0,  1121728733,  0,  0,  162519419,  1437223229,  2071393795,  1500322327,  0,  0,  0,  0,  0,  704427523,  0,  0,  0,  0,  1222209813,  1515964391,  315494501,  674999302,  0,  0,  2028179022,  906715312,  868802984,  1972238405,  58856831,  1966140686,  1638185382,  1778235738,  0,  600500062,  0,  1073741832,  751619333,  331667000,  0,  310192050,  0,  1831989146,  229064921,  1894557768,  0,  605272242,  119304641,  310192045,  1097602783,  229064938,  509298265,  1154471281,  256107438,  621842344,  1562559398,  836723172,  0,  1368026781,  278377619,  1193046387,  1073741832,  1073741776,  938529789,  2067947130,  0,  2088361638,  0,  801727210,  0,  0,  1213482935,  1247131311,  1251594115,  712403252,  0,  801727227,  46926509,  526597518,  976972488,  1434748816,  468469705,  1349136587,  284784629,  1819870996,  0,  1312351416,  318146059,  190887488,  1352119395,  1590728484,  1312351007,  251865187,  874900761,  71251280,  2012271638,  1948642510,  478544099,  449049472,  311517610,  55675192,  0,  845936256,  198841190,  433031627,  122243008,  382967930,  323669081,  1652800347,  1717986939,  527260306,  1410644965,  1242425305,  384028333,  1126832309,  249656066,  1272560922,  516986469,  1684283520,  1750077768,  660748842,  },
702        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1975684880,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1202590811,  0,  0,  0,  0,  0,  1889785606,  0,  1202590811,  1889785600,  601295461,  0,  0,  0,  0,  0,  171798692,  0,  0,  0,  0,  1374389518,  0,  0,  1889785663,  0,  0,  1717986833,  1374389518,  257698041,  1546188258,  1460288885,  1460288924,  1288490211,  171798722,  0,  0,  0,  2147483632,  0,  0,  858993454,  24,  0,  944892800,  0,  1374389518,  0,  0,  1374389542,  0,  0,  12,  1,  1374389518,  1546188258,  944892803,  0,  1116691495,  1374389524,  1288490202,  644245092,  472446376,  0,  0,  0,  1717986905,  0,  0,  2147483632,  30,  9,  858993469,  858993454,  24,  1717986923,  1288490151,  2147483638,  923418004,  2147483642,  1202590901,  0,  0,  687194774,  536870899,  3,  1095216627,  1717986816,  858993502,  773094162,  1288490211,  1460288906,  1975684964,  1932735276,  128848995,  2104534007,  880468265,  1717986902,  1277752783,  },
703        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1975685029,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1202590863,  0,  0,  0,  0,  0,  1889785614,  0,  1202590869,  1889785614,  601295397,  0,  0,  0,  0,  0,  1603454467,  0,  0,  0,  0,  1374389548,  2147483619,  6,  1173957678,  0,  0,  1717986996,  1374389548,  257698033,  1546188198,  1460288870,  1460288872,  1288490159,  529712588,  0,  0,  0,  1431655834,  0,  0,  143165597,  1431655656,  0,  229064914,  0,  1374389542,  2147483619,  0,  658561641,  84,  0,  2147483597,  0,  1374389543,  1546188210,  944892835,  0,  400863602,  1374389548,  2004318024,  644245097,  1904102222,  0,  0,  0,  1002159121,  0,  0,  1431655834,  1431655608,  715827843,  858993422,  143165564,  1431655656,  1002159013,  1288490343,  1431655804,  1818202691,  17,  486762922,  84,  0,  687194724,  1073741808,  2147483620,  558345832,  1717986996,  858993442,  773094116,  1288490171,  1818202776,  544029151,  1932735291,  1560504835,  1030792047,  2133167153,  1717986962,  830360315,  },
704        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2061584204,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  601295451,  0,  0,  0,  0,  0,  944892802,  0,  601295456,  944892824,  1374389481,  0,  0,  0,  0,  0,  801727397,  0,  0,  0,  0,  687194784,  0,  5,  1660720623,  0,  0,  858993375,  687194784,  1202590845,  773094079,  1803886428,  1803886208,  1717986901,  801727296,  0,  0,  0,  715827950,  0,  0,  1145324616,  715827856,  0,  114532396,  0,  687194751,  0,  0,  1403022639,  0,  0,  1073741773,  1,  687194751,  773094145,  1546188224,  0,  200431815,  687194756,  2075900866,  858993459,  1488922064,  0,  0,  0,  1574821629,  0,  0,  715827950,  715827732,  1431655806,  429496676,  1145324616,  715827856,  1574821287,  1717986847,  715827841,  1445972022,  2147483642,  1317123344,  0,  0,  1417339151,  1073741909,  1073741759,  1889785726,  858993352,  429496746,  1460288929,  1717986967,  372230532,  272014597,  429496725,  1317123375,  515395827,  529712715,  1932735338,  1757357441,  },
705        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  0,  0,  0,  },
706        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483645,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483646,  0,  0,  0,  0,  0,  0,  0,  2147483646,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483644,  0,  0,  0,  0,  2147483640,  0,  0,  3,  0,  0,  0,  2147483641,  0,  14,  2147483644,  3,  0,  1073741821,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483614,  0,  0,  6,  0,  2147483640,  28,  2147483641,  21,  0,  0,  2147483644,  0,  2147483645,  2147483617,  2,  14,  21,  12,  1073741815,  6,  2147483644,  1073741821,  1073741825,  },
707        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  106,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  53,  0,  0,  0,  0,  0,  2147483641,  0,  53,  2147483541,  2147483541,  0,  0,  0,  0,  0,  0,  0,  0,  0,  159,  0,  0,  0,  0,  20,  0,  0,  2147483488,  0,  0,  0,  20,  1,  2147483607,  159,  2147483488,  0,  1073741956,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483329,  0,  20,  0,  2147483642,  2147483587,  0,  0,  159,  0,  100,  20,  2147483518,  2147483607,  2147483587,  66,  1073741926,  2147483329,  159,  1073741956,  1073741744,  },
708        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  0,  0,  2147483624,  33,  6,  0,  0,  0,  0,  0,  },
709        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1789569726,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  357913951,  0,  0,  0,  0,  0,  0,  0,  357913951,  357913921,  1431655745,  0,  0,  0,  0,  0,  0,  0,  0,  0,  357913957,  0,  0,  0,  0,  357913951,  0,  0,  357913926,  0,  0,  0,  357913951,  0,  1431655745,  24,  1073741794,  0,  178957001,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1789569637,  0,  0,  357913957,  357913949,  357913928,  1073741801,  0,  357913951,  0,  0,  357913926,  0,  1431655779,  1342177309,  0,  1789569726,  357913951,  357913921,  1431655745,  1073741794,  0,  178957001,  2147483603,  984263375,  715827913,  894784835,  },
710        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  2147483642,  0,  12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483617,  0,  0,  0,  0,  2147483641,  28,  2147483641,  18,  0,  0,  0,  0,  0,  2147483618,  0,  12,  3,  18,  12,  2147483641,  },
711        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483641,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483614,  0,  0,  0,  0,  0,  0,  0,  2147483614,  1,  66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2147483488,  0,  0,  0,  0,  2147483614,  0,  2147483642,  99,  0,  0,  0,  0,  2147483641,  2147483614,  2147483624,  66,  2147483488,  99,  66,  2147483617,  },
712        { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  28,  0,  0,  0,  0,  0,  0,  0,  2147483624,  0,  33,  6,  0,  }
713    };
714
715    unsigned long** mat = new unsigned long*[n];
716
717    for (int i = 0; i < n; i++) {
718        mat[i] = new unsigned long[n];
719        for (int j = 0; j < n; j++) {
720            mat[i][j] = tmp[i][j];
721        }
722    }
723
724
725    // now mat is a 144 \times 144 matrix
726
727    // compute the minimal polynomial 99 times without printing
728    for (int i = 0; i < 99; i++) {
729        delete[] computeMinimalPolynomial(mat, n, p);
730    }
731
732    // do it one last time with printing
733    unsigned long* res = computeMinimalPolynomial(mat, n, p);
734    for (int i = 0; i <= n; i++) {
735        if (res[i] != 0) {
736            std::cout << " + " << res[i] << "*t^" << i;
737        }
738    }
739    std::cout << std::endl;
740
741    delete[] res;
742
743    return 0;
744}
745*/
746
Note: See TracBrowser for help on using the repository browser.