/*********************************************** * Copyright (C) 2011 Sebastian Jambor * * sebastian@momo.math.rwth-aachen.de * ***********************************************/ #include #include //#include #include "minpoly.h" // TODO: avoid code copying, use subclassing instead! LinearDependencyMatrix::LinearDependencyMatrix (unsigned n, unsigned long p) { this->n = n; this->p = p; matrix = new unsigned long *[n]; for(unsigned i = 0; i < n; i++) { matrix[i] = new unsigned long[2 * n + 1]; } pivots = new unsigned[n]; tmprow = new unsigned long[2 * n + 1]; rows = 0; } LinearDependencyMatrix::~LinearDependencyMatrix () { delete[]tmprow; delete[]pivots; for(unsigned i = 0; i < n; i++) { delete[](matrix[i]); } delete[]matrix; } void LinearDependencyMatrix::resetMatrix () { rows = 0; } int LinearDependencyMatrix::firstNonzeroEntry (unsigned long *row) { for(unsigned i = 0; i < n; i++) if(row[i] != 0) return i; return -1; } void LinearDependencyMatrix::reduceTmpRow () { for(unsigned i = 0; i < rows; i++) { unsigned piv = pivots[i]; unsigned long x = tmprow[piv] % p; // if the corresponding entry in the row is zero, there is nothing to do if(x != 0) { // subtract tmprow[i] times the i-th row for(unsigned j = piv; j < n + rows + 1; j++) { unsigned long tmp = matrix[i][j] * x % p; tmp = p - tmp; tmprow[j] += tmp; // We don't normalize here, so remember to do it after all reductions. // tmprow[j] %= p; } } } // normalize the entries of tmprow. for(unsigned i = 0; i < n + rows + 1; i++) { tmprow[i] %= p; } } void LinearDependencyMatrix::normalizeTmp (unsigned i) { unsigned long inv = modularInverse (tmprow[i], p); tmprow[i] = 1; for(unsigned j = i + 1; j < 2 * n + 1; j++) tmprow[j] = (tmprow[j] * inv) % p; } bool LinearDependencyMatrix::findLinearDependency (unsigned long *newRow, unsigned long *dep) { // Copy newRow to tmprow (we need to add RHS) for(unsigned i = 0; i < n; i++) { tmprow[i] = newRow[i]; tmprow[n + i] = 0; } tmprow[2 * n] = 0; tmprow[n + rows] = 1; reduceTmpRow (); // Is tmprow reduced to zero? Then we have found a linear dependence. // Otherwise, we just add tmprow to the matrix. int newpivot = firstNonzeroEntry (tmprow); if(newpivot == -1) { for(unsigned i = 0; i <= n; i++) { dep[i] = tmprow[n + i]; } return true; } else { normalizeTmp (newpivot); for(unsigned i = 0; i < 2 * n + 1; i++) { matrix[rows][i] = tmprow[i]; } pivots[rows] = newpivot; rows++; return false; } } #if 0 std::ostream & operator<< (std::ostream & out, const LinearDependencyMatrix & mat) { int width = ((int) log10 (mat.p)) + 1; for(int i = 0; i < mat.rows; i++) { for(int j = 0; j < mat.n; j++) { out << std::setw (width) << mat.matrix[i][j] << " "; } out << "| "; for(int j = mat.n; j <= 2 * mat.n; j++) { out << std::setw (width) << mat.matrix[i][j] << " "; } out << std::endl; } out << "-----" << std::endl; for(int j = 0; j < mat.n; j++) { out << std::setw (width) << mat.tmprow[j] << " "; } out << "| "; for(int j = mat.n; j <= 2 * mat.n; j++) { out << std::setw (width) << mat.tmprow[j] << " "; } out << std::endl; return out; } #endif NewVectorMatrix::NewVectorMatrix (unsigned n, unsigned long p) { this->n = n; this->p = p; matrix = new unsigned long *[n]; for(unsigned i = 0; i < n; i++) { matrix[i] = new unsigned long[n]; } pivots = new unsigned[n]; rows = 0; } NewVectorMatrix::~NewVectorMatrix () { delete pivots; for(unsigned i = 0; i < n; i++) { delete[]matrix[i]; } delete matrix; } int NewVectorMatrix::firstNonzeroEntry (unsigned long *row) { for(unsigned i = 0; i < n; i++) if(row[i] != 0) return i; return -1; } //void NewVectorMatrix::subtractIthRow(unsigned long* row, unsigned i) { // unsigned piv = pivots[i]; // unsigned long x = row[piv]; // for (int j = piv; j < n; j++) { // unsigned tmp = matrix[i][j]*x % p; // tmp = p - tmp; // row[j] += tmp; // row[j] %= p; // } //} // void NewVectorMatrix::normalizeRow (unsigned long *row, unsigned i) { unsigned long inv = modularInverse (row[i], p); row[i] = 1; for(unsigned j = i + 1; j < n; j++) { row[j] = (row[j] * inv) % p; } } void NewVectorMatrix::insertRow (unsigned long *row) { unsigned i; for(i = 0; i < rows; i++) { unsigned piv = pivots[i]; unsigned long x = row[piv] % p; // if the corresponding entry in the row is zero, there is nothing to do if(x != 0) { // subtract row[i] times the i-th row for(int j = piv; j < (int)n; j++) { unsigned long tmp = matrix[i][j] * x % p; tmp = p - tmp; row[j] += tmp; // We don't normalize here, so remember to do it after all reductions. // row[j] %= p; } } } // normalize the entries of row. for(i = 0; i < n + rows + 1; i++) { row[i] %= p; } int piv = firstNonzeroEntry (row); if(piv != -1) { // normalize and insert row into the matrix normalizeRow (row, piv); for(i = 0; i < n; i++) { matrix[rows][i] = row[i]; } pivots[rows] = piv; rows++; } } void NewVectorMatrix::insertMatrix (LinearDependencyMatrix & mat) { // The matrix in LinearDependencyMatrix is already in reduced form. // Thus, if the current matrix is empty, we can simply copy the other matrix. if(rows == 0) { for(unsigned i = 0; i < mat.rows; i++) { for(unsigned j = 0; j < n; j++) { matrix[i][j] = mat.matrix[i][j]; rows = mat.rows; for(unsigned ii = 0; ii < rows; ii++) { pivots[ii] = mat.pivots[ii]; } } } } else { for(unsigned i = 0; i < mat.rows; i++) { insertRow (mat.matrix[i]); } } } int NewVectorMatrix::findSmallestNonpivot () { // This method isn't very efficient, but it is called at most a few times, so efficiency is not important. if(rows == n) return -1; for(unsigned i = 0; i < n; i++) { bool isPivot = false; for(unsigned j = 0; j < rows; j++) { if(pivots[j] == i) { isPivot = true; break; } } if(!isPivot) { return i; } } assume(0); return -1; // to make the compiler happy } void vectorMatrixMult (unsigned long *vec, unsigned long **mat, unsigned long *result, unsigned n, unsigned long p) { unsigned long tmp; for(unsigned i = 0; i < n; i++) { result[i] = 0; for(unsigned j = 0; j < n; j++) { tmp = vec[j] * mat[j][i] % p; result[i] += tmp; } // We can afford to reduce mod p only after all additions, since p < 2^31, but an unsigned long can store 2^64. // Thus the only possibility for an overflow would occurr for matrices with about 2^31 rows. result[i] %= p; } } #if 0 void printVec (unsigned long *vec, int n) { for(int i = 0; i < n; i++) { std::cout << vec[i] << ", "; } std::cout << std::endl; } #endif unsigned long *computeMinimalPolynomial (unsigned long **matrix, unsigned n, unsigned long p) { LinearDependencyMatrix lindepmat (n, p); NewVectorMatrix newvectormat (n, p); unsigned long *result = new unsigned long[n + 1]; unsigned long *mpvec = new unsigned long[n + 1]; unsigned long *tmp = new unsigned long[n + 1]; // initialize result = 1 for(unsigned i = 0; i <= n; i++) { result[i] = 0; } result[0] = 1; int degresult = 0; int i = 0; unsigned long *vec = new unsigned long[n]; unsigned long *vecnew = new unsigned long[n]; while(i != -1) { for(unsigned j = 0; j < n; j++) { vec[j] = 0; } vec[i] = 1; lindepmat.resetMatrix (); while(true) { bool ld = lindepmat.findLinearDependency (vec, mpvec); if(ld) { break; } vectorMatrixMult (vec, matrix, vecnew, n, p); unsigned long *swap = vec; vec = vecnew; vecnew = swap; } unsigned degmpvec = n; while(mpvec[degmpvec] == 0) { degmpvec--; } // if the dimension is already maximal, i.e., the minimal polynomial of vec has the highest possible degree, // then we are done. if(degmpvec == n) { unsigned long *swap = result; result = mpvec; mpvec = swap; i = -1; } else { // otherwise, we have to compute the lcm of mpvec and prior result // tmp = zeropol for(unsigned j = 0; j <= n; j++) { tmp[j] = 0; } degresult = lcm (tmp, result, mpvec, p, degresult, degmpvec); unsigned long *swap = result; result = tmp; tmp = swap; if(degresult == n) { // minimal polynomial has highest possible degree, so we are done. i = -1; } else { newvectormat.insertMatrix (lindepmat); i = newvectormat.findSmallestNonpivot (); } } } // TODO: take lcms of the different monomials! delete[]vecnew; delete[]vec; delete[]tmp; delete[]mpvec; return result; } void rem (unsigned long *a, unsigned long *q, unsigned long p, int °a, int degq) { while(degq <= dega) { unsigned d = dega - degq; long factor = a[dega] * modularInverse (q[degq], p) % p; for(int i = degq; i >= 0; i--) { long tmp = p - (factor * q[i] % p); a[d + i] += tmp; a[d + i] %= p; } while(a[dega] == 0 && dega >= 0) { dega--; } } } void quo (unsigned long *a, unsigned long *q, unsigned long p, int °a, int degq) { unsigned degres = dega - degq; unsigned long *result = new unsigned long[degres + 1]; unsigned i; while(degq <= dega) { unsigned d = dega - degq; long inv = modularInverse (q[degq], p); result[d] = a[dega] * inv % p; for(i = degq; i >= 0; i--) { long tmp = p - (result[d] * q[i] % p); a[d + i] += tmp; a[d + i] %= p; } while(a[dega] == 0 && dega >= 0) { dega--; } } // copy result into a for(i = 0; i <= degres; i++) { a[i] = result[i]; } // set all following entries of a to zero for(i = degres + 1; i <= degq + degres; i++) { a[i] = 0; } dega = degres; delete[]result; } void mult (unsigned long *result, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb) { // NOTE: we assume that every entry in result is preinitialized to zero! for(int i = 0; i <= dega; i++) { for(int j = 0; j <= degb; j++) { result[i + j] += (a[i] * b[j] % p); result[i + j] %= p; } } } int gcd (unsigned long *g, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb) { unsigned long *tmp1 = new unsigned long[dega + 1]; unsigned long *tmp2 = new unsigned long[degb + 1]; for(int i = 0; i <= dega; i++) { tmp1[i] = a[i]; } for(int i = 0; i <= degb; i++) { tmp2[i] = b[i]; } int degtmp1 = dega; int degtmp2 = degb; unsigned long *swappol; int swapdeg; while(degtmp2 >= 0) { rem (tmp1, tmp2, p, degtmp1, degtmp2); swappol = tmp1; tmp1 = tmp2; tmp2 = swappol; swapdeg = degtmp1; degtmp1 = degtmp2; degtmp2 = swapdeg; } for(int i = 0; i <= degtmp1; i++) { g[i] = tmp1[i]; } delete[]tmp1; delete[]tmp2; return degtmp1; } int lcm (unsigned long *l, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb) { unsigned long *g = new unsigned long[dega + 1]; // initialize entries of g to zero for(int i = 0; i <= dega; i++) { g[i] = 0; } int degg = gcd (g, a, b, p, dega, degb); if(degg > 0) { // non-trivial gcd, so compute a = (a/g) quo (a, g, p, dega, degg); } mult (l, a, b, p, dega, degb); // normalize if(l[dega + degb + 1] != 1) { unsigned long inv = modularInverse (l[dega + degb], p); for(int i = 0; i <= dega + degb; i++) { l[i] *= inv; l[i] %= p; } } return dega + degb; } // compute x^(-1) mod p long modularInverse (long x, long p) { long u1 = 1; long u2 = 0; long u3 = x; long v1 = 0; long v2 = 1; long v3 = p; long q, t1, t2, t3; while(v3 != 0) { q = u3 / v3; t1 = u1 - q * v1; t2 = u2 - q * v2; t3 = u3 - q * v3; u1 = v1; u2 = v2; u3 = v3; v1 = t1; v2 = t2; v3 = t3; } if(u1 < 0) { u1 += p; } return u1; } /* int main() { // unsigned long p = 5; // unsigned n = 5; // // unsigned long tmp[5][5] = { // {4, 2, 2, 0, 0}, // {1, 0, 4, 0, 0}, // {1, 4, 0, 0, 0}, // {0, 0, 0, 0, 2}, // {0, 0, 0, 1, 2} // }; // // unsigned long** mat = new unsigned long*[n]; // // for (int i = 0; i < n; i++) { // mat[i] = new unsigned long[n]; // for (int j = 0; j < n; j++) { // mat[i][j] = tmp[i][j]; // } // } unsigned long p = 2147483647; unsigned n = 144; unsigned long tmp[144][144] = { { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 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, }, { 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, }, { 0, 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 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, }, { 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, } }; unsigned long** mat = new unsigned long*[n]; for (int i = 0; i < n; i++) { mat[i] = new unsigned long[n]; for (int j = 0; j < n; j++) { mat[i][j] = tmp[i][j]; } } // now mat is a 144 \times 144 matrix // compute the minimal polynomial 99 times without printing for (int i = 0; i < 99; i++) { delete[] computeMinimalPolynomial(mat, n, p); } // do it one last time with printing unsigned long* res = computeMinimalPolynomial(mat, n, p); for (int i = 0; i <= n; i++) { if (res[i] != 0) { std::cout << " + " << res[i] << "*t^" << i; } } std::cout << std::endl; delete[] res; return 0; } */