#!/bin/sh # This is a shar archive. # The rest of this file is a shell script which will extract: # # 4_6.cmp 4_6a.c 4_6b.c 4_6c.c 4_6test.c makefile prsedgewick.c randint.c randints.c randints.h timen.c timen.h # # To extract the files from this shell archive file simply # create a directory for this file, move the archive file # to it and enter the command # # sh filename # # The files will be extracted automatically. # Note: Do not use csh. # # Archive created: Mon Jul 30 23:01:51 EDT 1990 # echo x - 4_6.cmp sed 's/^X//' > 4_6.cmp << '!EOF!' SUCCEEDED n = 10 SUCCEEDED n = 10 SUCCEEDED n = 10 SUCCEEDED n = 10 SUCCEEDED n = 100 SUCCEEDED n = 100 SUCCEEDED n = 100 SUCCEEDED n = 100 SUCCEEDED n = 1000 SUCCEEDED n = 1000 SUCCEEDED n = 1000 SUCCEEDED n = 1000 SUCCEEDED n = 10000 SUCCEEDED n = 10000 SUCCEEDED n = 10000 SUCCEEDED n = 10000 !EOF! ls -l 4_6.cmp echo x - 4_6a.c sed 's/^X//' > 4_6a.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // quick sort // Version 1 // Based on "Algorithms" by Robert Sedgewick // Chapter 9, pp 103-113 #include // Global variables static int *x; // partition the array into two halves // after the partition, // K[left] < ... < K[i] < ... < K[right] // iqsort will then recursively sort // K[left] through K[i-1] and // K[i+1] through K[right] static int partition(int left, int right) { int i = left - 1; int j = right; int v = x[j]; do { do { i++; } while (x[i] < v); do { j--; } while (j > left && x[j] > v); swap(x[i], x[j]); } while (i < j); swap(x[j], x[i]); swap(x[i], x[right]); return i; } // the secondary routine which will // do the actual sorting static void iqsort(int left, int right) { if (right > left) { int i = partition(left, right); iqsort(left, i-1); iqsort(i+1, right); } } // external entry point void qsort1(void *array, unsigned nel, unsigned, int (*)(const void*,const void*)) { x = (int*)array; // save global pointer iqsort(0, nel-1); } !EOF! ls -l 4_6a.c echo x - 4_6b.c sed 's/^X//' > 4_6b.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // quick sort // Version 2 // Based on "Algorithms" by Robert Sedgewick // Chapter 9, pp 103-113 #include // Global variables static int *a; const int cutoff = 16; // insertion sort to finish the job off static void inssort(int left, int right) { for (int i = left + 1; i <= right; i++) { int v = a[i]; for (int j = i, k = j-1; j > 0 && a[k] > v; j--, k--) a[j] = a[k]; a[j] = v; } } // partition the array into two halves // after the partition, // K[left] < ... < K[i] < ... < K[right] // iqsort will then recursively sort // K[left] through K[i-1] and // K[i+1] through K[right] static int partition(int left, int right) { // sort-three: sort left, middle and right elements // to find the partitioning element int mid = (left + right) / 2; if (a[left] > a[mid]) swap(a[left], a[mid]); if (a[left] > a[right]) swap(a[left], a[right]); if (a[mid] > a[right]) swap(a[mid], a[right]); // move the partitioning element // to the right end int j = right - 1; swap(a[mid], a[j]); int i = left; int v = a[j]; do { do { i++; } while (a[i] < v); do { j--; } while (a[j] > v); swap(a[i], a[j]); } while (i < j); swap(a[j], a[i]); swap(a[i], a[right-1]); return i; } // the secondary routine which will // do the actual sorting static void iqsort(int left, int right) { while (right - left > cutoff) { int i = partition(left, right); if (i - left > right - i) { iqsort(i+1, right); right = i - 1; } else { iqsort(left, i-1); left = i + 1; } } } void qsort2(void *array, unsigned nel, unsigned, int (*)(const void*,const void*)) { a = (int*)array; // set global pointer iqsort(0, nel-1); inssort(0, nel-1); } !EOF! ls -l 4_6b.c echo x - 4_6c.c sed 's/^X//' > 4_6c.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // quick sort // Version 3 // Based on "Algorithms" by Robert Sedgewick // Chapter 9, pp 103-113 #include // Global variables static char *a; static int size; static int (*cmpfn)(const void*,const void*); const int unitcutoff = 16; static int cutoff; // internal function to swap two // elements of the array inline void swapelem(char *ax, char *ay) { for (int i = size; i-- > 0; ) swap(*ax++, *ay++); } #include // insertion sort to finish the job off static void inssort(int left, int right) { char *savearea = new char[size]; for (int i = left + size; i <= right; i += size) { memcpy(savearea, &a[i], size); for (int j = i, k = j - size; j > 0 && (*cmpfn)(&a[k], savearea) > 0; j -= size, k -= size) memcpy(&a[j], &a[k], size); memcpy(&a[j], savearea, size); } delete savearea; } // partition the array into two halves // after the partition, // K[left] < ... < K[i] < ... < K[right] // iqsort will then recursively sort // K[left] through K[i-1] and // K[i+1] through K[right] static int partition(int left, int right) { // sort-three: sort left, middle and right elements // to find partitioning element int mid = (left + right) / size / 2 * size; if ((*cmpfn)(&a[left], &a[mid]) > 0) swapelem(&a[left], &a[mid]); if ((*cmpfn)(&a[left], &a[right]) > 0) swapelem(&a[left], &a[right]); if ((*cmpfn)(&a[mid], &a[right]) > 0) swapelem(&a[mid], &a[right]); int j = right - size; swapelem(&a[mid], &a[j]); int i = left; char* v = &a[j]; do { do { i += size; } while ((*cmpfn)(&a[i], v) < 0); do { j -= size; } while ((*cmpfn)(&a[j], v) > 0); swapelem(&a[i], &a[j]); } while (i < j); swapelem(&a[j], &a[i]); swapelem(&a[i], &a[right - size]); return i; } // the secondary routine which will // do the actual sorting static void iqsort(int left, int right) { while (right - left > cutoff) { int i = partition(left, right); if (i - left > right - i) { iqsort(i + size, right); right = i - size; } else { iqsort(left, i - size); left = i + size; } } } void qsort3(void *array, unsigned nel, unsigned sz, int (*cmpfunc)(const void*,const void*)) { a = (char*)array; // set global variables size = sz; cmpfn = cmpfunc; cutoff = sz * unitcutoff; int endindex = (nel - 1) * size; iqsort(0, endindex); inssort(0, endindex); } !EOF! ls -l 4_6c.c echo x - 4_6test.c sed 's/^X//' > 4_6test.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ extern int randints[]; #include #include #include "timen.h" int compar(const void *va, const void *vb) { const int *a = (int*)va, *b = (int*)vb; if (*a == *b) return 0; else if (*a < *b) return -1; else return 1; } #ifdef __cplusplus extern "C" #endif void qsort (void *, unsigned, unsigned, int (*)(const void*,const void*)); void qsort1(void *, unsigned, unsigned, int (*)(const void*,const void*)); void qsort2(void *, unsigned, unsigned, int (*)(const void*,const void*)); void qsort3(void *, unsigned, unsigned, int (*)(const void*,const void*)); int printing = 0; void prarray(register int *nr, register long n) { if (printing & 1) for (register long i = 0; i < n; i++) cout << "nr[" << i << "] = " << nr[i] << "\n"; } void verify(register int *nr, register long n) { prarray(nr, n); n--; for (register long i = 0, j = 1; i < n; i++, j++) if (nr[i] > nr[j]) { cout << "FAILED n = " << ++n << "\n"; return; } cout << "SUCCEEDED n = " << ++n << "\n"; } main(int argc, char **argv) { if (argc > 1) printing = atoi(argv[1]); int nrandints[10000]; // for (long i = 100; i <= 10000; i *= 10) for (long i = 10; i <= 10000; i *= 10) { memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int)); prarray(nrandints, i); time0(); qsort1(nrandints, (int)i, sizeof(int), compar); time1("qsort1"); verify(nrandints, i); memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int)); prarray(nrandints, i); time0(); qsort2(nrandints, (int)i, sizeof(int), compar); time1("qsort2"); verify(nrandints, i); memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int)); prarray(nrandints, i); time0(); qsort3(nrandints, (int)i, sizeof(int), compar); time1("qsort3"); verify(nrandints, i); memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int)); prarray(nrandints, i); time0(); qsort(nrandints, (int)i, sizeof(int), compar); time1("qsortS"); verify(nrandints, i); } return 0; } !EOF! ls -l 4_6test.c echo x - makefile sed 's/^X//' > makefile << '!EOF!' CC= CC -I. -I../../CC CFLAGS= -I. -g +i all: 4_6test OBJ= 4_6a.o 4_6b.o 4_6c.o 4_6test.o randints.o timen.o randints.o: randints.c cc -c randints.c 4_6test: $(OBJ) $(CC) $(OBJ) -o 4_6test CMP= 4_6.cmp OUT= 4_6.out 4_6.out: 4_6test ; 4_6test > 4_6.out test: all $(OUT) $(CMP) cmp 4_6.out 4_6.cmp echo tests done !EOF! ls -l makefile echo x - prsedgewick.c sed 's/^X//' > prsedgewick.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include void prsedgewick(int *a, int left, int right, int i) { for (int j = 0; j < left; j++) cout << " "; for ( ; j <= right; j++) if (j == i) cout << "[" << chr(a[j]) << "] "; else cout << " " << chr(a[j]) << " "; cout << "\n"; } !EOF! ls -l prsedgewick.c echo x - randint.c sed 's/^X//' > randint.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ void srand48(long); long mrand48(); #include main() { cout << "int randints[] =\n{\n"; srand48(31415926); for (int i = 0; i < 10000 - 1; i++) cout << " " << mrand48() << ",\n"; cout << " " << mrand48() << "\n"; cout << "};\n"; return 0; } !EOF! ls -l randint.c echo x - randints.c sed 's/^X//' > randints.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ extern int randints[10000]; int randints[10000] = { 259825434, -1568150041, 1049096579, -117317896, -1784534081, -1682833749, -970871519, 1223421587, 1996583795, -939815282, 859419070, -1394679027, 302338037, 1604326974, -548653598, 214408386, -1158348603, 1819843304, 1915544191, 2101769600, -769279422, 34705849, -1552856543, 1024244145, -2066902541, -1925384287, 1034887011, -969535553, -1960289244, -2058903207, -1279074652, 1673949619, 1486114485, -1780152409, 443211515, 47947039, 1985314093, -1605037088, -1664221593, -1498735298, -1257471467, 1484501166, -129737398, -598453415, -1528960637, 1876566803, 1445715224, 1243619691, 1309487348, 550924205, 284776011, 1665014536, 2091348063, -256028613, -548226662, -274112390, 1996947590, -626033313, 1141739625, 1709017132, -1715817842, 24334501, 1873842306, -1683604917, -655332142, -30407997, 1590572805, -1965399383, 1764507891, -425194974, -1954963811, 1753095397, -65908941, -86221411, 242615540, 383041225, -744813821, 1482334088, 1372894056, -1348557582, 57586905, 622097651, 834420478, 156542390, 916331847, -323056338, -2075176042, 1525501505, 884737353, -1097196144, -564625824, -1948889599, -1111773218, 1316214132, 449031054, 59683908, -1926334247, -1899000188, -1236972725, -2081102818, -456948488, 199769401, -1306897941, 2099602064, -1333141707, -1549802079, 399214435, 2012603109, -1901684900, -168585117, -946742790, 1860842847, -181029411, 1078180864, 1252042816, -617153517, -1524229917, -201251237, 2104899135, -1505736175, 760057508, -1286354309, 195150320, 1178636487, -1493974790, -329777522, -1720587536, -525959258, 300402226, -908354000, -1074437773, 343849477, -484611292, -548107027, -2015162248, -450328762, -485717373, -648127228, 664680254, 1608704310, 1641940342, -1666900371, 1927161334, -407796551, -468242073, -419456483, -1631022663, 1492117670, -1540501734, -1982104184, -423054404, 1524776687, -646193408, 1178745447, -597907519, -2014125051, 1957422796, -907698501, 297123280, -2025004934, -1842643898, 638544145, -1549815002, -1704304409, -38065824, -1254138618, 1710098030, 2033731599, -737149562, -419980275, 233691950, -35766460, 971792442, -84982161, 1263411331, 407693577, -1201997601, -1042306925, -388567279, -1347806728, -1659912236, -224364417, -1771810252, -2033370138, -1583313724, 982247326, 606597242, 1467760452, -2054703557, -1603564349, -1351071915, 943439560, 2063111805, 364604013, 1923837452, -125093557, -1632171629, -1423927988, -1360620557, -1987017228, -593479515, 247807748, 262843867, 1136912022, -559659377, 237250864, 930744011, 123755606, 131445165, 1424606377, 309962735, -613277039, 841776889, -1607368441, -2102604848, -124292100, 1760068184, -322301849, -661139259, -1490682356, 1012881456, -1600937106, -436511063, 917087895, 1941431357, 1857511822, -701516851, -1395161158, -958502491, 1554489735, 330517808, -698726915, 1008308297, 1053599281, -1946198547, -1031068491, -1571165347, -1480989833, 2095565300, -1501725527, 551736634, 1208225702, 2029230076, -772245256, -1081822094, 1334871271, -2055860552, 341130809, 1032715813, 2008725258, -1660948152, 1442176996, 974752146, -264978044, -1371304206, -1754544145, 464914672, -1286319686, -1979868655, 799700156, -389301378, -1983024768, 1965029965, 1628287281, 1256369368, -974064165, 245042699, -272061656, -969075316, 60593678, 1827999527, -1379562486, 442413293, -798560556, 1051102944, 911439798, 810753062, 1467086313, -64078573, -1048898138, -1374514543, 435331535, -79860052, -642774956, -1937401015, 2032454094, 1115821913, 1226307290, 211647485, -1135705541, 615131775, 470158552, 1493206279, 770078973, -494430351, -1764485991, -1842967876, -1977280948, 1325094111, 1412468600, 330506245, -276798020, -826200180, -259297152, 1755342382, -1156641926, 698175555, 364993874, -1448704514, -1479620140, -989352693, -239101621, 1132013063, 1552898814, -914302567, 299433701, 1379234366, -1995791598, -696325371, -718886051, -1578071859, 1136623192, -1399299392, -1596637034, -755015641, -2018201657, 897471686, 1407836477, 1217296989, 1067299788, -1665778417, 588794669, 716241328, 53705545, -2045298614, -1426738157, 2004085350, -1741729057, -1894411315, 761941077, -1979984416, -92898704, 421718214, 1090358319, -1602227476, 2062102751, 1024997046, -1011372257, 1398245208, -1037027303, -855461600, 1511326083, 92491463, -787475111, 2047030397, -1154620289, -1822033209, -1837526617, -897870222, 1073785892, -1275322335, 553860769, 952386884, -1158104114, 85271923, 1777337213, -145233269, 1218479309, -921434372, -2019363251, -871758555, 958548806, 1037566903, -1264515707, -1011306899, 773182811, -975534166, -1958398534, 708378285, 1062693001, 261154687, -581666900, -364854064, 1049016658, 16105811, -2048238970, -435714725, -1181568741, -2029578547, 1879580259, -695995234, 60894806, -264014734, -1465652460, 466247718, -1896865053, 788642360, -1129435360, -1469858955, 608154803, 438589784, 643787531, -893631500, -886356818, 1768037224, -108991269, 910422056, 1825669079, -76822872, -393789481, -255189468, -1383473492, -1059638373, -1132637039, 54605118, 493369042, 338536409, 1277928743, 1185820421, -2009775375, 251955747, 1138153925, -640468110, -695384867, -1696283720, -895110803, -1453067172, -112974347, 875979494, 1836462842, -1635462095, -1069499952, 179000035, 484862561, 356443106, 754386709, -419611427, 1842689594, -106179553, -792479063, -562043314, 1558440318, -1775372860, -2031539952, -750083947, 1321846162, -1437940334, 1796243980, 1355849154, -455700348, -1208615134, 1178081930, -639025487, -15610989, -1350145259, -417206082, -473518503, 808996340, -798172016, 1994641036, -1033216411, 1135757267, -111603225, -127095255, -871614204, -826805865, -184587113, -924236542, 451058685, 746285930, -59919238, 1361828060, 352743685, -1919774472, -1945347531, -1277574340, 1376778068, -985414282, 1481436404, 1399015176, 2059276917, 1476721637, 836613977, -1544512403, 1371746909, -1649639529, -1169836111, 448354051, -2098190145, -205045518, 407594856, -873887185, 10911646, 1770039923, 1253836222, -1400221751, 1409361187, -1429978635, 525359547, -1659267842, 465273008, 1812044339, 1036459872, -1512615562, 634144052, 662657163, -1541630946, -712209224, -919956287, -1733143804, -1823877492, 1358091725, -309769893, 1171917458, 1802374483, -1977020125, 524121873, 1416889752, -1376876180, -1492336460, 323124049, 1579929261, 456808333, -1860359577, -1684066952, -1979343966, 733017312, 1677721782, -1802173271, -1663180604, 1861425910, 924152208, 809191135, 1429754974, 1440732922, -50086016, -172649148, 1291658881, -1326489559, 939575565, 475425218, -529829626, -1849663103, -48094620, -957130278, -1737219117, 180595384, -1973246668, 1102721717, 807465310, 1983741039, 76978905, 1379091064, 618594159, -309140569, -1435114308, 118383324, -2135072727, -1907566477, 1786103544, 958241020, 539727690, 715265007, -1197328063, 565796465, -1966821455, 1525928304, 1245766145, 1777854363, -998791904, 1404628732, -318365757, -756942015, 2049320515, -619306756, -1723415340, -698011812, 383709937, -1575408336, -1743296217, 1013751599, -1519822160, -1166515998, -1175161223, -997822821, -1456758914, -233392546, 647778997, 1947053744, 432947406, 1285578144, -445166440, 1748334471, 1922724560, 1486527567, 1702833816, -473216178, -508410379, -1552074518, -1370317823, -1353443677, 1747272370, 1998251328, -1874944927, 1485333030, -2100527741, 1694587941, -792004314, -781612727, 1493526322, -103733662, -1963175547, -663549335, -1844257448, 2115517165, -2142697316, 1074283554, -1201651932, -1690702247, 124547546, -59755554, 1666878043, 1956767119, 1662377886, 179702191, 1766835359, -1624834114, 975665182, 283026782, -888851213, -446796913, 2014508170, -1504685884, 1454977405, -152151139, 874557040, -1286911145, -1605532274, -1376580060, 877633377, 1294400263, -1666993185, 662707192, -364693803, -68102582, 788830493, 1584612023, 1084107339, -632857739, 1291924136, -1720902079, 1937220532, -2095273650, 265457046, -786987672, 1636463121, 397511902, 1713054205, 841514468, 194256986, -1143793526, -297001359, 839646089, 1045698210, -193849244, 1695901643, -183640389, -134665865, 776796094, -1670426324, 1417733665, -305251442, -52827136, -80129983, -235501672, -2133011040, 371751099, 1935225287, -312023958, 1783027854, -1135697667, -788884911, -161002305, -796480053, -915973658, 1766235977, 796984915, 1339529722, 1701646971, -303537100, 1302415976, -1342302763, 378823866, 1966221369, 1337372414, -1832758959, 980960237, 1358733283, 1528786753, -957528833, 2041199683, -794757339, -1412479165, 767227317, -1253140581, -2131036258, 38459115, 985321069, -1600816221, 1752223519, -1459503060, 574698604, 1532974369, 1624390249, -1653607303, 1192999334, 963388560, 1438193722, -486414985, -2022993568, 2136637422, 1613867146, -1119974156, -1331680489, 1840537044, -2012152815, -277512169, -842655840, -275448378, 885282829, 157188569, -1073963888, -1084980788, -489909695, -855947085, -785999395, -1252324031, -1530615488, 1642294168, -888035899, 889617642, -285008661, 271428134, -879197458, -1767175094, -1881552073, -794229737, 787764430, -446137293, -328182477, 72045565, -1094568372, 17993376, 1332826185, -253599442, 75044519, -117118014, 2072168387, 1081056508, 1936064663, 1638384728, -1140403567, 845545257, -956092495, 753648963, 1395212616, -1518029415, -1059022833, -1286000551, -1593071506, -981427383, -1684356049, -1195954567, 1966164724, 1415162495, 1757883675, 973975262, 761309443, 190373443, -460623670, 1008035768, 474527483, -293193971, 1963395782, -162608136, -90963784, 506320575, 1410167566, 20056683, 787758358, 1611032533, -1322727619, 1517775370, -1722477129, 1677345754, -1095015958, 1922602895, 1527588611, -2101867235, -1986460590, 799062091, 768638063, 625389477, -2066319820, 476730934, 496504066, 673447265, 1444462588, 1707571527, -1964639211, -785098333, -2019859677, -234782202, -486104486, 2034051023, -692636459, -1075603105, 1735041822, -284495537, 1177140947, -631518792, 473338322, 654276297, 1962363546, -370404028, -1125585977, -1127014252, -339739963, -1226433127, -1665177032, -1709669785, -1392339281, -1946079104, 462483597, 566748755, -816976804, 830721547, -681469218, 721687282, -586421096, 1530330093, -1018515275, -358039328, 580904288, -1611990523, -1784119273, 1866888042, -1690075519, -38130629, -1642306363, 1026992261, 1436834943, 867192207, -1743683649, -743533566, -1661039176, -716619665, -866721015, -815408642, 9315783, 2140934216, 608843184, 248118430, 737454893, 1748760670, 1329206287, -1240567556, -36357330, 337806304, -413683634, 1911852892, 548702200, 781392694, -2096924885, -1910123870, -1151855350, -1776708962, -1179075332, -1028777208, 1538414035, -37057034, -2053589260, 1523247115, -1340108135, 1007013338, -1009433435, 287292838, -1064192100, 728218097, 1530940869, -1313920830, 1384608379, 261667972, 961329204, -201648404, -913489451, -1015135408, -1625671107, -1230604984, -523412685, -1439008356, 1643482395, -1390589243, -484603100, -576385140, -783629377, -160972399, -867667031, 1689821879, -274740784, -39857201, -499004205, 806722552, -519483661, 1741197191, -1647604822, 460625537, -1343446452, -616487458, 302781265, 2112857141, 1694843459, -1174587002, -1208757145, -1179974859, -2117262198, -867229577, -2024603985, 1658525883, 282262111, -1649931042, 1919297778, -1213283033, 377091342, 1786597718, -1549069533, 1266836823, 1515376314, -440322987, -1489180988, -1724836549, 1844845403, 1884358376, -217474680, 530515879, -297523702, 882995874, -232237510, 1106315114, 795795068, -1072876847, -642576419, 1066562976, -2022270261, 1756998899, -1895587053, -1469294268, -167071364, 105389160, -631821886, -54176759, -129290307, 599868776, -69180172, 124489833, 1794715630, -174791882, -1770233602, -1589183235, -1166568350, -1771747947, 1087027172, 813918479, -1915344282, -1679109765, 228398587, 1885820525, 624785793, 834820356, 96986320, 182817920, -592329987, -38502743, 160972872, -951781220, 2122839462, -13396047, 1842453000, -1692743784, 625973713, -172965401, 425176854, -1450597215, 2007038367, 641736844, 63943616, 696260939, -1452340862, 1410299023, -187835972, -1815147800, 1248908544, -1749974021, -455961456, 1050784029, -399608905, 1517552816, -1481818060, 1650844081, -1736848736, -333644203, -1190130187, 902612392, -824468073, -37234804, 1786469275, 2021215120, 1627501850, 1130988136, -77276979, 393407258, 1271077968, -905544677, -1545527628, 415796715, -535053491, 1511822323, -2057527841, 1178120628, 1037095316, -546460281, 643499622, 242292607, -326888227, 410513965, 1409453649, 1254724684, -2079098857, 1136338350, 1621801530, 1501746908, 1988091567, -1766714820, -226256, -1278527797, -2139799534, -1386070109, -508805922, -1873223452, 506658673, -254580289, 1907548908, -1870007120, -1187284029, 31681070, 1114680484, 200304464, 1948130320, 1275234629, -259616808, -2043101300, 1696553963, -72390073, 1136694275, -1028128981, 1521916991, 508102356, -900195666, -522302076, -1777222578, -817861218, -1368929771, -359581867, 743096055, 555432035, 1994456586, 1246336978, 1727791159, 844295446, 1340924696, 402554625, -1130119439, 1445772895, 1218551786, 44542276, 152043249, -613916858, 1066807534, -1783145417, 169346862, 760995370, 1936054836, -1886077764, -847708081, 1795013367, 1910395804, 488436307, 1979676528, 700296343, 1856115504, -675107922, 1350551845, -1289762391, -2101716530, -313993084, -1464092482, 1528105072, -2144672246, -1970361179, -1150044212, 2101824013, -1991020206, 2075148366, -641293852, -1606523664, -1979098286, -2078252610, -1427443550, 1101456012, -1172953192, -1634374648, 276343792, -296065975, 208515451, -1746127061, -1490314616, -1101732929, -1774634439, 515994975, 377058998, -943635936, -1425885857, -860679759, 1154493282, -337164, 1780348781, 322986961, 1091329357, -1526133236, 1797499577, -1638314710, -201800549, 955577520, -433312109, 1192858419, -357885296, 1370011162, 1320600745, 1261374212, 1016831902, -1224003800, -1341411155, 775842348, 1923120543, 620880204, -441569740, -1954295615, -1496937890, 1663982790, -463642399, -1675009865, -594203045, -1881433579, -294542654, 1402959477, -706513969, 2044917418, -1554656007, -2081991003, -1237286419, -1382561569, 598906526, 1769629003, 1850869866, -1773945050, -321157660, -2038089191, -1112580289, 1739423365, -462622854, -1462819328, 887643821, -1127861183, 1124765747, -98828790, -556584063, 1093799641, 2031504616, -916504730, 2016195481, -836054475, -1002437476, 1626661060, -2092239194, 259717919, 1463673058, 1552245987, 995768114, -1371331086, -1341208453, -41942425, -610779164, -1138578288, -350300094, -2140211985, -880613117, 1970778009, -1799354804, 1293372263, -1120769480, -1409679655, 484922187, 2023147418, 1600160919, 926389505, -1254019534, -1194876150, -316028704, -1917805927, -38408674, -195343101, 581336577, 1119626293, -1851685260, -1197836819, 860679135, 574496742, -963651258, 1305082850, -1780019627, 1187653107, -561951750, -82211712, 1577186428, 139862217, -1714322899, 1945767935, 2086490156, 1817903151, -1575722284, -536399483, 1933965763, -1284445251, 1172032420, -2054121288, -1456575452, 1331144846, -1617258829, -1165711211, -1484489470, 2117281332, -1644177825, 1497880447, -571222690, -1211144468, -1267766418, -601820005, 1463348813, 926824210, -588555913, 1402203738, -1801415169, 424962006, 1276345727, 1602874966, 747389180, -1632403152, -367555866, -239149470, -15488081, 694689553, -1697549692, 114928348, -832532440, 167013850, 1241290766, 1679152708, -1091996643, 1361148433, -522159682, 1186607634, -226700495, -899070127, -150229453, 1778503875, -664917640, 1500963458, -1842979691, -992377548, 1892327994, 56157002, 1605473020, 1680180020, 726888183, 1960186051, -520413422, 627570003, 30935723, 1377508718, 1273220342, 970628096, 1305144659, -1275875738, -728747933, 10144210, -1492159569, 187703768, 2063227921, 1084772645, -77070520, 117229746, -975361190, 1047344873, 1465356980, -704215142, 1624769057, -846381386, 1841983000, 664015649, -667670801, -468081630, 1863151597, 544881464, -2019353762, 2033620311, -640401913, 725940706, -991979846, -1811594529, -1903527213, 978729259, -1047460124, 1769904321, -30635296, 156664920, 460045177, -1642597166, 111718048, -396158881, -2071584972, 600600132, 663843950, 304613273, -360864880, -2084928894, -1359558958, -439589707, 2139898545, -2060502208, 1338710788, 830580975, -1621509244, 1073029581, 93225902, 434555266, -1201542108, 2119078827, 72461302, -662523813, -864293249, 2036878432, -994115909, 1067518990, 1168366393, 445266062, -1845985763, -1760056563, 1910724304, 18474561, -1359147197, 1529468438, 139676928, 719529608, -1959772584, -1071489555, 1408466536, -1504660410, 768327381, -1584115637, -1648704404, -1501039543, 514993157, -289568746, -401789091, 1962418843, -2071015994, 1703251153, 552821463, 1948156184, -593074804, -431590059, 1614861418, -381265088, -998684757, 859095489, 965529724, -668667058, 2023179476, 303456430, 1773955437, -2137084791, 1661609952, -2058857561, 1662629116, 906233561, -826029108, -585783593, 1138162665, 1424637852, 1355353604, 1666822148, 1336066010, 715959226, -207413020, 882034876, -270812286, 484515574, -1305148805, -903219251, -985513729, 1222308999, 1554717585, -855163399, 1542888067, 16616679, -384349461, -187598358, 1567248694, -396864278, 1101783244, 716445539, -1780187557, 840149521, 1890340543, 2104753592, 446139057, -1965608929, 777162644, 54555008, 1145634843, 331836397, 726961063, -750527096, -546156158, 1380038522, 1537539431, 1220785929, -540295942, 442164038, 616536598, -1294077667, 1889578019, -443148065, -779582771, 300266351, 1734293201, 814666427, 2009285059, 625494066, -792024081, -357958328, -2136614962, -1644268204, -1789705056, -1752197823, -78602712, 152941810, 1955816870, -328247485, 2101084278, -413138674, -317385977, -1205316448, -1774628090, 1353721470, 42498541, 513048945, 1135888728, -1858874585, 1405007053, 1236701169, -1648963361, -282340501, 290074060, -258364151, 2013877256, -2120863009, 1205355357, -2003307994, 1860544891, -435866559, -1670507730, -877289390, -514640992, 601445544, 921472836, -217286526, -2019101596, 54251005, -1226948252, -1474050772, 2064292156, 572148905, -506240843, 684124445, -1080442007, -1472476017, 1471618466, 1605732232, 1440026750, 1620169021, 986925061, 379951457, -434198753, 1617456477, -52055167, -993983509, -1444131830, 675990897, -1426260433, -1924299632, -157858981, 630798783, 1158192508, -1916336656, -311262709, -1171733623, 912414032, -1096699333, 1213461433, -267120255, -1873445517, 392844995, -112863059, -160956549, -1995785940, -481235764, -1679720424, -1764883100, 780469546, -678274138, 1193599648, 1610717554, -1865990232, 1995687933, -1414995684, 335348124, -1643671861, 500368495, 473312156, -2036512692, -364361394, 242546527, -233630549, -112965549, -419150496, 1718880776, 54842583, -855964643, 303477196, -910297899, -1415380367, 1040563237, 719641946, 380730606, 1380204944, -1795262294, -61697931, -958269674, -1212714916, -1717437790, 393207053, -233856077, -1762864248, 365316079, 1884915902, -901695442, -555284704, 1253131984, 179533105, -103011971, -1367099516, -2089214822, 1203153602, -2074178563, 841508531, -2088811610, 1531111779, -1321821052, -48250420, -1145926515, 2046682047, 2069972662, -1439151406, -1286373742, 1720223906, -247841641, -1325573457, 1555680095, -1317732713, -1552059550, -353386629, -1957639692, -1121045038, -1843193448, 1051949821, 149695708, -22268848, 515660379, 310142321, -319461471, 64913468, 797475324, 1264302219, -1694140543, 594037908, 1910462417, -928201028, -410647711, -455062516, 923189580, 167731891, 993003265, -679457230, -1185480120, 1455602470, -1997701776, -1118893358, 1106390694, -1445220655, -1744388414, 1552990107, 243835160, 1820187838, -1914993407, -2030992382, 1944947516, -749800249, 32689249, -1348044955, 1524364012, 1531972697, -332660042, -571396748, 964538580, 1501625210, -896583126, -1438450484, 1263223876, -51509748, -907979990, -403434524, 1257541702, 924341586, 352080288, 1851553836, -193997325, 783156659, -1304735385, 1348162419, 1229815810, -1534145346, 927780347, -1959054456, -62614623, -949585042, -1045089936, -2086133724, -1546331513, -1762205522, -394862939, 1666624262, -870770103, 834588702, 284437177, -766943648, -1229656851, 1044664599, -1183647300, 2106862961, 1651445436, 1629764077, -571411799, 693357426, 1002583388, 711572339, -1015906668, -1769403210, -642005987, -1412128573, -773454049, -1645824500, 941683090, -1763883202, 139995186, 2023906919, -1639435676, 816943825, 1238157546, 507463361, -1969357470, -61447558, -1109635119, -598455237, -1700184869, -741521142, -1233951152, 968644744, 534053167, 1893109292, -1626931359, -743246708, 1468680355, -1998341211, 7705992, 391438655, -1703022475, -1907410212, 1793709059, -1894327593, 683942704, -1758345571, 1537351488, 1614998054, -277096383, -1871268583, -356274034, -1699813312, 117061833, -1101242831, 479672599, 451221600, 243727796, 446570995, 888684558, 253885451, -1573381367, -1470508188, -224415708, 806929782, 831278211, -1634038913, 1703233599, -1851651036, -1891018911, -527488898, 1595597677, -1685149741, -702802566, -1374487209, -1344287722, 1779619224, 784702867, -1668057719, 1660522097, 366742344, -1249764108, -1748651753, -2124218823, 1747328282, 302724664, -11838252, 572089247, 1565170058, 1231092069, -1835644191, 1723532162, -896565377, 799131964, 592351092, -1417054500, 547926703, -1947549231, 1618421210, -1980398209, -575548862, 767521885, 633954750, 755070978, -174303819, -1408168878, -1015041877, -366865163, -1855450111, 1726624175, -1622380593, -1760182949, -1304782597, 1598438549, 1472322049, -525575079, -674501378, 300912154, 1950110212, 519183914, -135941434, 1403658845, 1689292045, 601498197, 958119838, 598519770, -1428987518, 430284066, -1145859650, 112977919, 19480068, 957815881, -1423816467, 375434495, 15174831, 1682498285, 517932398, -303345435, 1970439840, 888705224, 1690423577, -1081921045, 1340488631, -343308122, -133859641, 1872971788, 516018845, -1172125161, 411364339, -1034324009, 1773683976, -328977825, 70463645, -1532510587, 941235261, 1668962481, -1151940239, -87848115, -41946666, 924285340, -721405911, 987814391, -728385339, 692790725, -1094379986, 1895555759, 1063457432, 345614294, 926922117, 468546331, 124597501, -598780490, 1886219241, 71517359, -2100092023, 1847279866, -66851789, -1424563137, -1370668620, -2067793254, 41439746, -5046571, -1291484888, 2103467495, -1007107177, -2021644348, -1832013766, 1322882748, -1690055168, 967797757, -1718768456, -1678059788, -1420370056, -1062582624, -1608810779, -1317114085, -1398832115, 867486422, 793485505, -1095811481, 2062633091, 1420302045, -1171786356, -1495224856, -1120114824, -310877084, -937413235, -913396994, 1361028296, -1600435688, 1542377999, 576607500, -1053689038, -1013448066, -971401813, 814699114, -1954086853, 626314243, -2103081779, 1777926303, 414917202, -1085163952, -1526087056, 1202582480, 419636532, -1556975389, -1813676757, -1659668110, 1317830801, 838725339, -1682364303, 1021448774, 1093829871, 429126674, -584874476, 2103383943, -1184470321, 1413865328, -1004059637, -177275044, 1567010829, -1484700034, 50737780, -2111638381, 918841228, -430950855, -1198828069, -279202416, -184852718, -1537463000, 929913276, 1497820803, 1322008431, 2069766832, -687397050, -686062888, 760613605, -2001260633, 1430037601, 1020033523, 870227395, 814918694, -365043982, -1196326115, -2079320750, 1756092066, 289089629, -291552072, 980107509, 199120957, -918493877, -1831277894, 1477280139, -766887334, 1201280429, -1075337128, -1746224361, 625549678, -1652238081, -1711529727, -595444573, -604249827, 234123985, -1001853811, 1914684000, 169131397, -506424446, -1476089162, -1356335598, 267644372, -1713772209, 884300230, -1979575894, 2121348128, -648528501, 760079506, 1898350644, -1425629578, 1010213423, 281156518, 401922291, -541211341, 846623637, 1984204225, 1886449865, 1451367058, -1440075136, 1084552067, -1054163492, -292544634, -994739617, 1081942628, -1516709513, 501387722, -1944086574, -716850456, -396792787, -1258559691, -568687763, 1766524432, 140161091, -495211950, -734509893, -2029144557, -31541681, -1831564240, 1608843652, -148734386, -2090577892, -126795915, -1386463917, 1063171704, -541506096, 920875193, -13365966, -565215975, -1642579632, -375820272, -327072841, 1272712508, -990454813, 1900830696, 1514395972, -1463075997, 1229937173, -1809711851, -839183223, -705737286, -1199955491, 1486509098, 926234445, -1740987504, 442197762, -65865718, 1894167406, 1546838018, 398068153, 808357310, 764488742, -262173704, -1513372781, 805880200, -217921649, 917267285, 576503445, -603195081, 804951144, -679034518, -1716061528, -1832953924, 1200031769, -1577000789, 852501811, 1933108733, -406857484, -1581456988, -1383414010, -1270287128, -473122627, 1762446637, -733877127, -1355739957, -1740721300, 1792280028, 2074389460, -1492517405, 618280496, 126475450, -1940312591, -1943935438, 1280049847, -1702609606, -550167264, 1708408981, -517762388, 195863654, -648831414, 1793806613, 1678880641, 1295046491, 2133801048, 1908114045, -233684371, -1880879881, -1754772011, 1797163307, 907321528, -1558413616, -985199407, 1199398699, -1591355338, -517696153, -1164838647, -2139787903, 1515503632, -1491721315, -1639943100, -1382648123, -859844151, -915839643, 203614463, -58976523, 1656295040, -722946630, 118520652, 626977926, 1223455858, -2125123629, 1707369462, -496582980, 943311043, 1192734613, -1735173655, -87542469, 2025503101, -14883511, -1245467184, 1615721692, 276470744, 984772750, -103220225, -2020198972, 1559579323, 874919569, -221341548, 910894771, -205067901, -414685318, 1598691800, 1076736409, 1565429506, -838605015, 125936874, -1456507538, 396500169, -1605890783, 52945054, 156371266, -514734422, 985264068, -1469467998, -607200109, -430043528, -732778816, -769119518, 661407966, 1722497040, 57897161, -111460051, 253339768, 1751742877, -967899000, 1563445528, -785021283, 580480022, 202667218, -515817438, 1451113673, -397901813, -884690915, 2138069528, 283021638, 1687780001, -380533969, -305827909, -1018352890, 375996123, 1867140887, 241251231, 672067250, -526358758, 1245119073, -1300999851, -417752830, -1505332506, 588295556, 1466358476, 475343439, -1082946322, 1699375775, -1589729292, -766511259, 1519005005, -86733724, 622431395, 1793225630, -739107826, 1957644372, 1954187452, 1635584043, -1172137998, -1765715924, -2072553843, 598445236, -1671322256, -1879437665, 1690696569, -1057016540, 880462332, -2079425724, -2004861226, -716633923, -955271284, -1650804271, -1888670952, -1944308110, 1330228311, 1164048521, -654377682, -1003431307, -908424481, -1459011085, 607528492, -776664819, -1800868303, -1203685940, -276806871, -517786963, -1133330837, -1507992259, 733228906, -1777191614, 1550190975, -1130688944, -2084924225, -739987764, 224928821, -1925246304, -108749267, 511862064, 935286646, -625703600, -823611188, 949999435, -632054330, -951083971, -1474867470, 1891978058, -1157679854, 587354231, -69695087, -544739784, -1414526805, 327555564, 1306829789, -176367400, -1666762862, -1430703514, 1336986929, 2006388148, 355744501, 1821938614, -164424397, 438223989, -1508019975, -685824719, 1437531701, -1904109963, 1136660410, -169489317, -909225506, 606101650, -1106393969, 552031458, -1637868535, 960032325, -768703598, -1534696499, 1045557228, 609665522, 1760643935, 404941301, 1897257853, 160927360, 1453252890, 728746419, -1796625136, 516240940, 2020460727, 949003226, 614100804, 789602970, -100205195, -1391263769, 1806253856, 139725357, 1182740138, -1923792009, -1302011784, -1048873321, 337675462, -668914439, -1495419755, 824811699, -979553647, 979813795, 2110781204, 1046082961, 906188471, 1616903849, -2114296562, 262133970, -481365626, -1053528660, 924168825, 841709622, 1174336245, 934796400, 704868813, 621790323, 920560871, 1029021650, 940659178, -525425848, 1334113713, -2031752712, -577251784, -487739696, -1172347175, -448164919, -1224086257, -2144922085, 1916183584, 679205280, 821889113, 200241914, 1450641091, -762206405, -1308124042, 1157802266, -345536260, 1410830073, -1093785249, 171385427, 1688071630, 1940977732, -2089471475, 209189954, -1918426878, 989630795, 1076938267, 414972692, -641264788, 299511796, -1492090454, -302492252, 438540146, -1837543919, -1045354620, -345264440, -1054735922, -2091477807, 1416313219, 1552863208, -671640942, 1807887224, 1814573875, -1229063985, -857150868, 2062531922, 981355190, -897132347, 1974800427, 1143761637, 592239592, 347374813, 1047317122, -471459227, -703471166, -218890358, -1178643958, -336405652, 231940611, 1249977720, 550608781, 1631474154, -1828983028, 99947417, -968500607, -1125229479, -180706293, -548644227, -697521199, 1450142005, 645349212, -171142426, -1108182813, -1645465685, 1303297835, 1238771611, 1157024470, -692338800, 1461003357, 203974780, 1721525771, 2056002708, -1600503888, -1209320746, -2130389529, 2008996022, -1257525984, -1070400776, -7180074, 718299642, 114336140, -1746377978, -1250420590, 1257895770, -1679659367, 2135395084, -514966876, 1086945529, 1500438742, -1715055019, 668521770, 828999582, 884988961, -1151081987, -1532853285, -704141473, -1026172344, 1382533317, -1496524472, 1399675292, 383332338, 464605222, 2142668900, 1035756079, 1667251136, -1994141016, 1679565382, -963793951, -1849236562, 482278259, 1063283756, 1941274655, -810154817, 2093393702, 938840515, 1374094829, -1547716391, -951616025, -1011828828, 1000094745, 1222612717, 444766906, -1889160670, -783883596, 469520730, 1704711190, 784393282, 656541630, -1334159725, 915110325, -734950646, -297587936, 1875204094, 1225628587, 85391614, 621096414, 1706089247, 1398156986, -259553817, -975798132, 1458452725, -1041063452, 1462777558, -837335807, 1775808420, 1773582656, -1388813720, -1739892918, 1522428499, 1713095185, -1408969398, 1622110689, 1708630871, 1901491220, 225065727, -796925665, 545997968, -1562831848, -862531872, 1043495406, 1806871059, 507292628, 1995938148, -2033399870, 1602513673, 1625647860, -1059209823, -912611895, -1712829226, 1701021044, 1793891090, 588822368, 527746173, 835920689, 1185007514, -1188465719, 410561090, -544000835, -841734711, -387794661, 343540624, 399786354, -887645347, 1219304057, 1102907165, 251495113, 1137126410, 122510726, -1443578037, 2046288108, 2018475133, 1023662871, 728821457, -514612087, -261095010, 1047836458, -1791812710, 1077342696, 935944213, 1422337047, 781116396, -2058329793, -9191408, 1251550469, -1768422963, 1676298309, -1547691710, -1790409825, 2128781473, -806319868, -1242318034, 216591622, 1715530007, 2055469555, -1057122908, -565548536, 1567811398, -86787261, 1914242444, -655186286, -1486082286, -509211271, 55192033, 1377746019, -215686444, 2055175484, -371456768, 1695184130, 606208058, 1022392431, -1899434461, 1796552434, 1799034730, 142516354, 779753255, -1691610589, -2132684691, -417305083, -523031915, 174301098, 2006049483, -1030293123, 1984644575, -282875724, 240542577, -782566021, 186962921, 1743898808, 45845723, 1838114281, 1927941067, -301498645, 1565681006, 213713063, 1953241045, -1917623559, 1985865765, 2134909782, 98511058, 1917612273, -1080585360, -477472142, -1584531055, -193355648, -1502379432, -1863879258, 2051245728, 1191132001, -299207706, -124353189, -483262886, -345594092, 609379525, 1073520017, 101330212, 200054221, -1540055258, 1556115954, -479794701, -1368599889, 1989829859, 1358634788, 971261712, -608035527, 465016807, -342117026, -143488225, 1938016256, 1970078924, 484464701, 854668893, -1938682210, -7195707, -1985935400, -903964632, 1098733290, -728702019, -279615727, -710100796, 1633931624, -1801808960, 260051758, 1796512603, 379858179, -1218265446, 12542119, 365763653, -1371844103, -1848726339, -949186239, 270200714, -1064413162, 79036519, 615503707, 1392739236, 943795236, 1574789124, 1652603527, -582693752, -909272927, 319218384, 443527516, 516963047, 464889266, 780805056, 898565257, -647535695, 224887896, 799022754, -1432465619, 1406999514, -1718060832, -726844542, 1576874086, -865727393, -750815072, 1972776016, 1646199335, 1133511307, 2041540319, -707624769, 679651663, 623345782, -740532972, 1673139311, -942746890, -490253874, -1680487853, -759645363, -1260113143, 759572697, 624178692, -1561997254, 1606195224, 1257408441, -354516523, 540248554, 1527179374, -1060275726, -580417807, 2017737230, -1411556254, -1728519639, 580078193, -432940363, -957052436, 2023120942, 731284755, 1903594991, -1619585670, 799019836, -1046842839, 250278835, 447421444, -1240155009, -1036379693, -222725630, -1480873379, -1486551595, 256739952, -831255733, -1512974900, 1202188504, -1314212527, 1902886673, -2125575717, 1106817564, 1422582447, -1858047798, -324182162, 1824554165, 1019146463, 1335386378, -1884483306, -1949105669, 1204540099, -1370602272, -923967321, -647190128, -995360381, 2137417600, 1354301959, -225589854, 755619197, 1342292514, 1747803976, -115456147, -1533937031, 1334849064, -740931079, 2063185923, 1732014881, -1527704186, -851251783, 414939471, -1201807441, 71583070, -782313460, 1847563094, -17171481, -1876769047, 1119037809, 1347195328, 1441499208, 705815198, 476136371, -929090153, 788861566, -1098862196, -571897473, -52887731, -1299099366, -490544885, -1377434826, 1948177667, 668010116, 1031900307, -871760636, 1531267336, 176135983, -968535573, 1983181361, -692304737, 205979407, 1833632645, -1569171017, 1564744453, 1654534728, 1409719592, 1976903699, 280119473, -1592396505, 1859018447, 1450121823, 564945629, 1758545749, 1533161937, 1564548768, 1420032837, 1192721993, -56509375, -801149603, -1849263058, -909079810, 872793751, 394864752, 591413417, -1600952602, -208152689, 1209307935, -2057147112, 1324997661, 426584656, 828258158, -684766223, -1335091999, -1369939247, -1152086866, 2009674433, 969530946, 2128061560, 54457177, -629394572, 1501424149, -1116016893, -755492319, 1205542354, -1645978578, -1151801941, -490659770, 317494604, -474284339, 1944478854, -2072770265, -1242743047, -304711080, -1603540, 1680954652, -1896330278, -1815196598, 896994205, -1878142078, 1379394405, -1979926165, 596320354, -486342122, 1095971393, 1901014849, 1949115633, -1061843578, 1458053453, -466171706, 1946934613, 483051333, -1522861850, 248506970, -832171506, 2059347102, 2032563305, -1236064006, 1673902389, -1480778996, 2046495222, -2041515854, -824046108, -1206587960, 346319479, -597909936, -1618921004, 1928020130, 1616412128, -471662502, 1704490310, 163415060, 897802168, -1624018111, -780943065, 1270386323, 148381655, -410907435, 1318887278, -1748043992, -324646032, -1625519364, 415854024, -1723726529, -837778863, 1584593310, 1117079159, 1646873023, 180395113, 422593507, 123374455, 464663898, 175776650, 1403921568, -91717662, 898777125, -692837008, -170710514, -915500140, -2101643669, 896508418, -31407940, -956414702, -502497603, -1810884137, -375227962, -173097561, 464678221, -682622725, -1563492281, -1195668529, 1082390652, -1228727822, -176262645, 1705648089, -1392319824, -1326121732, -1742663799, 530050759, 2133437803, 1901219738, -1113819377, 1636654968, -772216424, 116355153, 920969023, 1915741704, -48711384, -483943763, -2100624199, 1542451575, -820488739, -583284856, -858865895, -2022338680, -1222725275, -1932997237, 72446243, 1960372971, -461602134, 341870069, -1820145603, 1768032157, -389983128, -670434917, 873824029, -44211825, -1728419585, -987178449, 1181816770, -297184891, 232490890, 1921829828, 1911603367, 1064983617, 1442776623, -328383855, 823056694, -1265446944, -496261704, -249628428, -161494662, -536063101, -245099934, 1956397498, 1983258905, 316165425, 1466768885, -1295402339, 804598144, 1258701307, 1874134804, -285924595, -524904609, 212702304, -1260953130, 1118067507, 440035160, -1135983373, 1587443092, -626602190, -1000279566, 1653774650, 1243358212, -2017733969, -1551661, -1580872487, -1535005306, 742699155, 1444364078, 1641165040, 532604606, -358518001, -1381906566, 1169382848, -2023312542, -465328160, 1756102756, 793729684, 366991956, 947037395, -711342331, -366747682, -87652621, -412020597, -1415965609, -427616353, -1126954067, 1936438146, 1204786149, -1053720564, -119031336, -124398259, 1608479169, 204264558, -31137086, -245913053, -1379232837, 2004754505, -909683194, -1497918305, -159075889, -2106105664, 1569780001, 544161732, -1409285666, 1491032119, -1631054780, 1068094786, 865823393, 1653897274, 854069354, 192467959, -1504939558, 1901725084, -677256531, 1524714168, 1069373899, -569320733, -1092824875, 1044085584, -399826452, 1859087587, -1706312910, 1555769800, -1990828329, -1872562776, 1713715115, -73983000, -1667949177, 1912465817, 618252822, 1722453246, 1984120257, 2004228825, -1350251063, -824993315, -726519855, 1874276080, 1703535728, -2063734488, -1383112327, 540297898, -627442144, 1643713488, -674912730, 1030625343, -226996564, -1892773414, 811267685, 1917881267, 109626423, 725823333, 436265620, -427947649, 1874252554, 468471275, -1875610404, -321662095, -388191577, -201230906, -2094678434, 1909317584, -809490402, 509017078, 1349419948, 321814211, 104602014, 1937162273, 555924602, -776965646, -1618892978, 1041778394, -415442284, 1087396461, 935785821, 948548645, -32306157, 1378132172, -1133161641, -1068537286, -492704565, 394869656, 154832058, -447197047, -1806935289, 2077685737, 1753624265, -478083330, 1819763576, 1127491664, 624220063, 1342212486, 1180989545, 210165238, -1397169530, -453179440, -937727945, 1534005253, -1775172215, 1949300056, 1415104256, 1471239494, 1624421447, -2106813024, 1804386202, 1113658378, 471292937, 1095534784, 37846983, 480463950, -75969257, -1367729119, 83866534, 2110873625, 930768199, 961045381, 138069099, -1588232663, -2088644650, 1539661385, 355847762, -1374645554, -723816838, -2072859410, -294813232, -1414274284, -1737244745, -1248486699, -970824693, 1953936935, -1282386319, -1764261815, -1419631988, -986533645, -1922550078, -637812541, 1285942835, -780679158, -1121670131, -1006573208, -1241050773, 248703947, -19862445, 760656853, 1936340381, 1083232959, -2091901756, 640348447, -1072362519, -839350714, 550931353, -1419009771, -467055341, -1634757262, 64762656, 238860743, 2025538747, -994831822, 1095490072, 780428108, 1676237777, 888585395, -1559009986, -904352834, 180180550, 1516372226, -1653658073, -2126121079, 2113353735, 461417205, 110326608, -283790875, -2073230042, -1816038325, -1191955085, 875626912, 145346906, 2130891026, 463279643, 2125694496, -81145175, -605774264, -653259910, -1677827928, -2043122845, 1127454405, 490405242, 735841754, 122707794, -1449348521, 595697681, 306828156, -1557288914, -485174482, -539353383, -1086077314, 683908438, 524510586, 651193823, -1908626117, -79600963, 1778701650, 19747770, 431702527, -1082535134, -586940713, 1044087007, -282420791, -593274493, -575144807, -596228044, -1685867695, -2034799149, 1611003961, 1494404322, -548244916, -117397270, 2006769998, 1284356463, -940012819, -320756804, 1931161228, 712299531, 154476975, -758245939, -1704129245, 1447363625, -719314095, 890431204, 1741922916, -1414881967, 1983158562, 1017194494, -2031336534, -822410444, 1995799934, 182134661, 152619127, 681310976, 1366086808, 1872893121, 1897421533, -193053195, -1635971720, 332785294, 2058512926, -1021959880, -168235193, 358644047, -1119116394, -1265211673, 351704778, 369104930, -2091444775, 1994296429, 605440044, 546628949, -619453928, 332343830, -742516481, 2096616983, 287973320, 768358373, 1960294020, 2006529394, 1774179972, -1134670939, -1179792342, 1670374008, 583610930, 1616979005, -1470443948, 1117896124, 283465061, 1061099080, -955044513, -899614204, -1588892158, 345910757, 917583075, 654394428, -1117655003, -86173238, 1502157624, 1329788588, 567548741, -905235553, -1611659973, -670971027, -1046991467, -337102455, -112655791, -1932017127, -140842579, 120425732, 1410811051, 756821185, -1377086871, -433321227, 700783051, 1150425123, 2039202065, -907620097, -1346148537, 1553498908, -1799636550, -729512940, 1469951949, -1730012837, -522182165, 292940879, 1994056806, 283206999, -748307070, -1471546879, 1849918974, -395203198, -1336666664, 370444297, 1789516579, -837553986, 1745170211, -1848742039, -673628659, 1318762000, 634957852, -2023047147, 354272990, -2070502509, 1375690721, -188337396, -1440360918, 1753288878, -756670949, 1481845164, -1491909704, 1019283337, 2039855459, 1286983234, -1951779446, -1048942148, 433014753, 866724320, -739777766, 2128489545, 553838134, -557890701, 1814808806, 883809996, -122093413, -1290036204, -389935058, 2048127472, -270235062, -1486316386, -2075775236, -1525321435, 1024902940, -700594048, -96402332, -201776241, 1072925555, 1815464403, 802551053, -1471461311, -187754919, 89172654, -410596369, -1176215126, 1884088809, 976211897, 525230941, 600622159, -1268169235, 545163264, 500062790, -1539449670, -1429395256, -474790391, 206330295, 1738367153, 333904534, -1182607833, 2080353955, 996007851, -1254078831, 1092625936, -1778893850, 74671743, -1775556938, -1694994003, 1911818375, -1262343586, 510150055, 289728817, 705228349, 1993895683, 152083155, 768091245, 2069638196, 1319377960, 1427915987, 1470035809, -411442672, -1008224709, 1318200855, 577862677, 1652209458, 121220689, -33413183, -3512918, 944124473, 1335115099, 1772504784, 19394731, 1260684491, 1277902487, 715444097, 1589314728, 2008731540, -2019508920, -1682937103, -385983739, 1656300174, -2046285400, -353836282, -476528881, 1529986435, 2041800989, 1504297104, -744834225, 906319055, 1388590507, 270673834, -346470365, -79143318, 237994154, -496789914, 673992585, 440511269, -645411656, -548705880, 863050302, 1273155636, 1824436976, 1233472594, 1167981063, -895539988, -513996965, -568134495, -650787507, -1987159860, 45371558, -584592426, -247531537, 1477699009, 998475541, -584213480, 751537491, -1558912347, -1095479625, -433012584, 1146873790, -849741303, -1586159397, -555592714, -541566747, -296515277, 1481119938, -439424797, -930996284, 1968319337, 1575311253, -2105517818, 1081470893, -2019150480, -448056423, -1665493469, -278440797, -2042829489, -146430304, 659679610, 1167952104, -1820702120, -1839616062, 1528513901, -122712108, 276506984, -1718051763, 324898148, 612805095, 970613101, 246049785, 1379203060, -1525975518, 1942590504, 748536928, -2033717442, 275993746, -1677387981, 520038316, -482405483, -882319828, 1244098885, -627023215, -882359197, -2002549280, 878766005, -694917763, 822530892, 36681447, -1411653572, 1265827086, -28228205, 1290404960, 157227774, 674962884, -1942009923, 331693594, -330626869, -27150601, -2024753293, -1449361741, -601898591, -586792693, -1398741076, -489715999, 1938644853, -47875359, -257457397, 1291385359, 65585458, -2127164784, 188395653, -1208790997, 620427778, -1725827756, 394026566, 1096454334, -138284853, -2092227898, 479647445, -1341772996, -685968389, 58220365, 2076902517, -120094563, -1614264952, -1804889644, -1684732210, 653193772, -1112087758, 1471748285, -858652979, -1876784738, 1745489675, 1417904660, -1877199673, -2001826203, 1255824440, 540939015, -1388249884, -1882612666, -1224850439, 2009846421, 1057357242, -414511320, -130644250, 1920469894, 279559480, 2083248175, -639050118, -559908454, -1159358523, 295112713, -1642741035, -2135386619, -2114615896, 1975573127, -1312929603, -1949255911, 1603031721, -1408274577, 2042321893, -431818939, 417410040, 76242064, 1800919410, 13834045, 476948558, -95857387, -921481542, 28168058, -490623406, -355392994, 1443586126, 1250378981, 340057405, -1666545524, -303686342, 1759483086, 152263616, -2072889316, 2079834762, -194008029, -1029820124, -2090461257, 1594012432, -516956707, 244681907, -914783481, -140990619, 730655933, -1977245866, -1124643507, 1242585644, 1299676216, 301263743, -2084528783, 577975453, -1790632785, 1222455112, -1818953894, -1392853183, -1290180894, 591809756, -1463744897, -1595024646, -1040131418, 1369232662, -1571357250, -634780090, -833719082, 1607735399, 300720236, -5950780, -1368903545, -193076740, 671631532, -822546698, -1388451970, -1241497313, -14188796, 248506439, 2036942310, -1844181796, -488704211, -2145711792, 1890370877, -381891096, -398653911, 1753462870, 1349706383, 261479102, 764732827, 1139079703, -1605499929, -1403194869, 594171986, -1762820922, -1769160447, 1683427148, -342195162, -827797678, 2013102916, 1858123188, -799533817, 533612782, 1983361262, -482996910, 257817938, -912759603, 846190481, -954388877, 1209886566, 1389336109, 1631553981, -723566780, 719367287, -387983209, -1658788866, 1021527996, 203842721, 411074660, 2095639816, -234365000, -2011896768, -1981149309, 814433584, -1886971033, -820528514, 672010872, -1675306722, 1325554151, -1145174740, 1325484455, 2129824705, -2127963600, -1140216362, -100097326, 884214658, 1414412849, -2100501487, -507656481, 189417147, -1737997256, -1850447594, -2033696802, -1352387734, 1912974998, -9273196, 32799563, -2130452959, 1129296258, -2140693823, 1598172303, -1898908607, 1447728957, 409144241, 1259852748, -724746905, 1136372343, -85498901, -144610087, 726841381, -1860884751, -771539399, -1505981813, 227167732, 1402867810, -746023233, 154427958, 772100713, -1174006882, -159776945, 859081587, 1410548135, 2113132021, 270943483, -796821470, -2012188139, 1595823833, 1189108459, -1888360270, 1870769487, -1083684925, -657809809, 2123686047, 1587274849, 1031700054, -1123432361, -979116228, 51802930, 535356611, -970645630, -1369874254, 1192863550, -2020635537, 446611636, -583013560, -1174241913, -1666464045, -1641541715, -787600156, 986696653, 1178036388, 528721270, -177673007, 211568892, -395666637, 1046958077, -2077502015, -607377179, 888856597, 1187378916, 317086742, 1909210928, 1037314822, 219314581, -2125839268, 11263377, -751880694, -695608679, 1293782554, -1631985350, 1047950293, -895202262, 1629079242, -2055280, -962771860, 1689383430, -767620828, -301743584, 514019339, 128019589, -1161745246, -564268588, 372780105, -1355054867, 1327098176, 655118689, 756133753, -754945275, 1093858180, 1490546435, 902403667, -863443993, -1555606339, -1524271764, 457007060, 1863666202, 1615561615, -1174522887, 1437959010, 1158960864, 1855979694, 1302656551, 1237804338, -65413941, -2083882008, -1822663100, -331895570, -1656419434, -248658583, -617891991, -1034362223, 279844145, -1569124550, -1177914713, -138644075, 861966365, -351583478, -1012284545, 1992987216, 703146746, -535859151, 1503072151, 204958107, 450004317, -1511811599, 1709778347, -745353548, -1244249625, 413879806, -1848283199, -677818523, -884693614, 369367872, 984192160, -1313068443, 1014388814, -253140778, -914801534, 1808254973, 255924940, 221398366, 2090265864, 988190958, -727612008, -1779169677, -601214867, 1186496401, -1688656531, -843612042, 430210046, 1611999040, -1553889084, -1323766127, 1341753801, -1013846540, 470422189, -397072647, -946398828, 441074735, -1650481438, 850909042, 6507793, 1509140252, 1440383769, 873629208, -993520818, -902522636, 624941466, -2137236901, 239425394, -758629470, 678035728, -619253174, 627762854, -1301384791, 1677938083, 1142212629, 1874215248, 1682090309, -496179387, -335418420, -1931490426, -1240353328, 2009870667, -1940384403, 770052289, 2028559207, 1506711360, -1686940900, -639824176, 1000501453, -1659055370, 973920180, 980597776, -1076839538, -1468792867, 1706405246, -1686553382, 1385294439, -2048127081, -1325182657, -925205445, 107434469, 1129870283, -1933805193, 476060650, -2338997, -198635208, -1653305880, 1140191094, 1182102968, 1593757709, 48796500, 1891399359, -461182583, -2138546824, 844664715, 1252264870, 1160941051, 963703421, -1354454620, 983611144, 1189406997, 796144648, -1499100534, -1710104345, 445768132, -280526780, 472629690, -940027926, -432489401, 389692717, -544591286, 1867000839, -97978163, -160170908, 227265580, -1001654146, -441976741, -472872895, 636818868, -1259816696, -1588491277, 919023150, 808864087, -136137136, -1966091790, 1976293938, 2113604532, 1162188194, -529988167, -43132980, 267451864, 1963571169, -2119686768, 862014466, -1225871427, -1539566658, -816868666, -1243759432, -969361644, 596442918, -703393764, -477284027, -1824854460, -679633924, 1602798178, 1743583299, 1609047985, -777331704, -644409502, 347700902, 2001903937, 1865437230, 681555709, 2014159887, -868965349, -787728670, -1174019436, 561842274, -414761807, 1678867931, 2108745385, 199741077, 1135830784, -1383355642, -1542356283, -548491061, -1160213738, 730063037, 356215707, -1026834015, 2052605396, -1160416968, -351122579, -465211706, 1477409269, 1161016643, -828644178, 649500880, -1683952306, 220863025, -713082136, 440390734, 1958082135, -1858430192, 1792206303, 1474504729, 73268713, -254928611, 1541075703, 118283503, -683812535, -252885126, 1618540754, -98487743, -372490140, 451943966, 1578582333, -898626485, 1340662876, 264046604, 1291988300, 1483534181, -1578112445, -1643102009, -1850656830, 1411046553, -1421619675, -1260972796, -407684681, 142664564, 224653899, 590477985, -1324886668, -1124762335, -1354342722, -1452559403, -991286367, 358352051, -1223723767, 140702121, 1118781089, 5300417, 1286249539, 315042215, -1432573891, -587845065, -1703728820, -866086192, -1513978497, -1965286293, 239929174, 447118802, -1322402592, 1520237166, 629204135, -1637450630, -294255963, 913773988, 2024269724, -479064985, -302170235, -1934446185, -147902480, 7321856, -2073281137, 1396474119, 2075895870, 289925287, -279789750, 30005317, 272296900, 695519534, 1653564701, 1331507392, 1375093865, -1543499895, -477756175, 1582748128, -1479998208, 1014005445, 1316050964, 1755755282, 652985294, 2039769656, -544791712, -646845661, -1713751735, 2016782074, 1534344604, -1815133999, -1460549854, -1818845037, 1529354273, 1147383967, 1908599686, 996115701, -1807897152, 1860238313, 955262111, 631094188, -1547043870, 771069239, 1729693792, 384244819, -1288279567, -1520534059, -1007119230, -2049599414, -1202732297, 398518434, 1070201545, 824658853, 1763222915, -1510296024, 1920429451, 1411000678, -1149727277, -2131354131, -297095054, -363219217, -825303505, -352446200, 1091531136, -1891071311, -335312494, -1084857866, -283922861, 181830185, 1176847504, 1605574062, 1198696874, -609230067, -599826317, 1012498930, -589613785, -1029645374, 990885030, -1636561689, -372616362, -255060208, 1961310806, -1313201689, 1866429933, 1762285336, -309969322, -600563818, 1904204885, -4961404, 695160130, 1843544883, 466802280, 980883200, -1439023641, 1469967664, -1837568132, -421054486, -1507656222, 2113018627, -574863968, 1233963077, -1633287034, 186722878, 840470821, 861882610, 716607490, -665110307, 1012768863, 2018929697, -1019670333, 847886046, 1570196396, 1108906756, -1238472937, 1212808471, -2051922507, -1792609595, 748869394, -302383805, -1115395084, 1349686458, 591255221, -413704355, 1431763829, -1505450537, 1937644107, -312303567, -58569248, -317208221, 1451197206, 1748829487, -311442762, 111633135, -941698005, -1731102335, -2020624167, 106236802, -1440132710, 1384491104, -1697039278, 894674457, -1266373167, -1691227997, -965718962, -972372146, -719460031, -1804350056, 1515978090, 538731606, -1951135679, 240677143, 1795554352, -2036204240, -1518484685, 2107165395, 953234400, 1104524826, -168323868, -931944205, -1095918222, 1873744967, 152685368, 1238769120, 1953200859, 591548879, 558661126, 1950119776, -453999985, -1272152857, 141135937, -507309340, 966115143, -1387932079, -1652875433, 780116765, -484628477, -8969451, -1964571427, 1521531604, -233163694, 1109779825, 144592491, 1557836027, -593956655, 1500950797, -168702012, 231092734, -2122098704, -1025241486, 1293628218, 1388712542, 1543303932, -1382309443, -107205552, -756074879, 1978206040, 2096793743, 1485549728, 591832003, -1320168434, 731718471, 688085759, 160894672, 681288582, 2080750963, -513975074, -1361020108, 1710142868, -333395581, 1310040563, -1637236685, 106907063, -500915265, 119998999, -1767569707, -2030620257, -1632235398, -1024991887, 714446149, -1154939921, -1189484153, 1475796692, 1047952219, 256141124, -1982877972, 2096930918, -1639517065, -913291914, 628616917, 186318465, 1910149776, 173086493, -794511157, -518069027, -1520925044, 711337814, 73502757, 270975470, -1879664175, 563138503, -970747458, -390968182, 443657499, -316346145, -1012285208, -415858738, 1552863376, 638724706, 257994655, -1684344510, 1779255569, 1982437412, -1285818879, 364111163, -1255991598, -797173996, 2066427133, 1679738240, -1138568916, -471247236, 653746250, 1897717296, 1921182641, 1639463302, -1078908005, 1281524962, 409712768, 1486179585, 2078734096, 1737428494, -1334658085, 115103077, -1034025233, -949734230, 2122261750, 1641953556, -2113908077, -468068328, -1908637679, -484128030, -1453566300, 1100297279, 406713800, 2093627607, -770484600, 1796798454, 1011198889, 1796350771, -1184513768, 1467342249, 1112087047, -1076977743, 1440001174, -1860589002, -737907955, 1274785040, -305488417, 987018776, 595343125, 161471182, -1548939556, -49519418, 149828154, 1940465974, 1272670270, -2121060771, -240738517, -1352047203, -667458966, -1127932036, 976853826, -339376409, 773718448, 1393685358, -822306860, -1990209968, 1182245315, -787731314, -829582134, 624734313, 653837413, -1415131417, 1627058288, 1759431263, -1357605023, 2093064474, 200794252, -2726013, -1514314306, 935204740, -558438222, 2005228293, -1373738959, 282414495, -809180713, 1386230275, 1010673875, 445231529, 1507092259, -1157496382, -1238634989, -1525332350, -1559053302, -101165510, 1045684461, -832593958, 1922858909, -41876265, 1054401115, 1813314699, -1439055588, 2018240381, 2013873164, 791290690, 2095991248, -1494301747, -1007757229, 380560741, -698077161, 114942630, -498856607, -1450480592, 1493436352, -1484776466, -775747657, 165852193, -1846590568, -1945281902, -1859686443, 2073483926, -398025659, 1882381514, -1567430857, 1188275, -646999983, 1296086177, -1836099455, -297677175, 329863561, 439897268, -1075210504, 215893364, 1416803208, 1509684537, 374473012, 1894648004, -834146418, 1249623363, -1302848749, -517505634, -1973923435, -1627382717, 87118577, -1968202972, 1547772582, 313995218, 151676437, -1695422509, -1059298200, 1202819500, 514201709, -1489999571, 1795633657, 231213567, -368888962, 1664117143, 1798101504, -1800166938, -789643115, -548194173, 899745282, 959830575, -351751614, -1715975983, 1369735925, -1765340572, 1108177158, -503438, 76906258, -1709364215, 713817931, 1440699470, -1014673169, 1295881761, 1805265044, 998616936, -696575028, -1880068873, 2132111348, -1870226370, 894166316, 2140457498, -1097092668, 622117237, -479858777, -742334296, 452963471, 1653848757, -1485410562, 1242145231, 2143855953, -832062766, -89265808, -2029935215, 831232737, 1629137963, 316201547, -1120445498, -270549846, 604533591, 1875339717, 1626786151, 26679457, 1186609149, -522695157, 554915336, 1593816178, -315435006, 1747462554, -29200986, 696288764, -940775190, 656931534, 1675098787, 2099838719, 661449591, -512593736, -1841169395, 1325473812, -1504668266, -136234700, -38749146, -1789704483, -806463877, -1268736967, -1104319712, -184013956, -718898934, -1743718286, 439951912, -473906872, -1892054920, 774567182, 506106533, -790565186, -947004622, -669745965, 690021825, -478588747, 629696509, -1755195783, 818319399, 254639317, -818198178, 442461749, 260513294, 1108834121, -387017925, 611722387, -1719190666, -1065332813, -928096574, -830130552, 333348018, 609294688, 542322825, 1500123847, 1669770021, 345944764, 807935221, 1201647699, 1181522512, -1998188536, -2002497824, -547079595, -716519157, 582352201, 551801974, -563272401, -1732881646, -488731773, -605694369, 673120464, -1689585981, -1139958489, -1370186462, 1086299209, 241906469, 2000897481, -1006761784, 7229088, -1965702612, 771748117, 2104057535, -1458079516, 1923216186, -1514568445, 1029804545, 1616221569, 55093737, -414977207, -2112263819, 2055432405, -998767353, 111996433, 268511381, 1550329602, -3411487, -1412320276, 1270586960, 1713349381, 510013380, 888219397, -1357201871, 426629895, 1074038720, 1642832793, 1491740607, -791775757, 870071471, 738544038, -2100281305, 143001160, -1972504715, -1978225182, -2114665960, -1459345872, -1594510456, 1600333294, 1487267822, 2135081168, -280072270, 587932619, -1490840558, 1036000480, 811181845, 310662285, 2051677087, -193561474, 527881840, 300447309, 1984730953, -250780097, -342388321, 75962723, -1270292870, -944903289, 1581313384, 641056981, 1232965821, -777748454, 1116946804, 899487241, 1754059103, 2123380466, 1383958170, 2021204930, -692283053, 1082685522, -690891421, 1739443273, -1563442346, -794852069, -29046582, 829419242, -1490995629, -927376547, 2142882115, -19468126, 123523591, -1357656016, 1910146046, -1087267819, 298320360, 945156805, -317189524, 297045189, 1590041155, -1278604105, 1645778433, 482843009, -983374941, -607726682, -444838852, -862260710, 1936717945, 125935622, -1492033820, 402908252, -1050158855, 1959574836, 2117989523, -970163140, -267134655, -589158710, -874756745, 1889563469, -31437376, 680281907, -750995369, -2030754951, -258172459, 318999425, 1153321940, 1123119340, -384105290, 686874749, -1263677455, 1358290771, 16677011, 1869769983, -1793018923, 1874085446, 1237487610, 1325473152, 2038983630, 659151105, 1475122556, 619369709, -1425558631, -1715112614, 404380049, 889083581, -1520226080, 827289071, 898499256, 155401797, -100976125, -507034722, 1306803170, -1603692726, 1490339099, -671153607, 1888773392, -230560808, 1804845883, -1090308998, -1062163910, 893901649, -1817613320, 1733927732, 1716921459, 777424584, 270351659, 873485259, -1583650487, 2101321359, 679457525, -1860601370, -1261556623, -210617074, -1778254846, 621301858, 1438046116, 1181334230, -509727214, -384954999, 1604533443, -344475659, -219169099, -1001036157, -127416767, 1055889035, -1089190827, 1456363020, 1134086593, -1157758307, 1441317753, -496821657, -13377283, 2077270824, 1719143495, -2085970287, 101412074, 2086619257, 1840442443, 1807467194, 616867609, 1248406459, -724354954, 2131245040, 5956960, -1370614831, 1263989608, -2007178467, -148835399, 1167356774, 596710385, 781253427, 23308393, 40555585, -1398689835, -1639164251, 593434212, 679748573, -1182822705, -1562338280, 560595439, -845957832, 1188653528, -256357798, -548308089, 1118243819, -1858774360, 345623443, 1327023361, -1729575814, -1105641604, -1272182855, -1611668238, -1053217299, 1450120986, 554510921, -1368028080, 2008967327, 1376033042, 933465907, -1585499559, 1012342357, -63599035, -656667883, 1559005875, 1408771986, -322654805, 830997164, -1531332140, 380547624, 366936400, 1447101830, -1344935005, 1468382482, 763500446, 1457446908, -1434832801, 1210514817, -1388477214, -605530017, -1927887936, -151224012, 1003256072, 573967217, 1705714267, 488219148, -2004062807, -259908585, 264212810, -427352353, -1381879737, 387361355, -1854079989, 1291283851, -756101930, -2038938281, 1154108584, 1873123918, -1911939970, -569848513, 1478795800, -1938667435, -493814625, 41056126, 1851394277, 863479698, -1636732395, 1282534133, 2091162126, 1753641938, 1740586172, -560879840, -434232274, 1653297422, 1094688566, -891802998, 140690141, -922937088, -1467785493, -1148351357, 1773865045, -664146439, 408043601, -1823179249, -745759400, -230545679, -1935965331, -333584864, 1448770385, 1448962271, 1179853976, -247624440, 1569465529, 1067942219, 635168134, -363230424, 449150908, 1311233568, 1847222916, 39153389, 286209819, 409960134, 290306048, -1309323779, -240532141, 1252481648, -7439282, 2030319020, 1029934591, -751257678, -2053303895, -1383289164, -940791430, 161505621, 498373751, -2039920603, -987150648, 1420108910, 598206928, -1067557478, 221104054, -953670739, 1843573313, 1649249453, -1063388353, 928418802, -1505745716, -114913876, 249240112, 275349029, 1816532531, -566205556, 402811407, 882524742, 1584574581, -1509877987, 1752738361, -1329719358, 1982832280, 275345791, 1759293257, 1449015049, 31830185, -729978412, 100520128, -246032292, -1764213759, 1775843894, 1595477218, 877220843, -1323320375, -1001500693, 795477726, 1894166302, 1200584127, 2070055639, 155927345, 521218866, 1137321785, 1983873073, 385041995, 1310632200, -1064960406, 1128707193, -1785562767, -1503201735, -650091549, 1281032361, 1836055013, 1020417901, 732321884, 490641066, 1390523973, 1461052397, 1677617845, -1553442551, -1830912464, 1663141493, 120425015, 1437235690, -928061393, -399722674, 1723873566, 1764726076, 321663441, -1995684964, 1240851291, -269305298, 894074391, 1330427380, 1650744725, -165013536, 1100879378, 976368689, 1738920049, 1734558045, -916353078, 1568138888, -2082237422, -594854711, -277020830, -155829288, 657768419, 285987286, -2056481159, -1762091194, -101748077, -238367876, 1827100114, 1971352329, 1517819489, 1282351337, -1274235594, -230923134, -99998311, -1826932299, 1021994392, 1196977551, -374721699, -536166055, -1701211782, 180098847, -450282328, 141934049, 675626896, -544091895, 1377666448, -1241391647, 526498722, 508261145, 741705418, -182046299, -1535694410, 608516972, -1416777869, -1401633877, -748705939, -597041667, -1929773299, -134167467, -688152659, 760183167, -2084521017, 1414479066, 56964224, -1469151892, 5490944, -122978947, -690625733, -963572387, 1684693517, 1217903362, 855623394, 1890176412, 984956218, 581275484, 818814154, -1624767241, -1551672561, 1065963946, -1449726080, -1512697898, -263322157, 972454244, 486673385, -862052208, 847693141, 369262801, -2004376406, 795977977, 644500201, -928056644, 1185630153, 1850034495, 2101844401, -585969818, 926812820, 1927043062, -1143279843, -1616522050, -2126704703, -902015120, 223358900, 1622226383, -795882538, -1538134958, -92742637, 1209687417, 1211870155, 852896099, -1828859338, -1243260829, -1562836499, -1575205721, 1947557622, 1327948336, 1903123716, 1616710060, 701129682, 502108656, -1029853768, -1953063646, -1519807247, -953361960, 190111280, -1335073359, 695604071, -215232970, 632406011, 517746183, -640227401, -156964962, -68324301, -379923409, -1711071080, 1675834473, -1154895393, -1455678935, -1828021764, -285430433, -1773105511, -1251054666, 1823846477, 1980801459, 2056629616, -3363470, 1205232633, -1318293969, 127989775, 114649384, -259411664, 786953135, 1934181918, -2034767007, -1513086996, -1695645485, 776443623, -90364354, -1798254543, -1077927185, 2058469692, -954503801, -1584757099, 197300806, 680902040, -1641979901, -253068029, 1232612728, 922545796, 1955959305, -1988559941, -1574520776, -1439626436, 799919447, 877133468, 513724737, -376270702, 215611937, -3118427, -349154422, -236266479, 273417581, -1775331399, 1810306744, -1960684188, 1827100829, 938947234, 535741139, 199576057, -1577601459, 417971031, -709645508, -2125963551, -793210786, 341189505, 1614931166, -433603335, -1162663085, -127971013, -389870684, 1946835790, -1282727205, -912487911, -535925974, -1610282051, 708191150, 1748503148, 860257974, -1884344870, -267063652, 2093567171, -1497760663, 1727343635, 221313250, -636631629, 2062409649, -843897068, 1363361215, -376760357, -736549119, 633631595, 1314788678, -531495902, -877512508, -1243951761, 2103256181, 2127141442, -650566770, 1161455454, -1025787257, -421630582, 174665108, 1722168773, -962383994, -2023108129, -1230018722, -1080418780, -997713885, 1717658883, 1298871738, -1700336687, -171547959, -442537959, 492373747, -761385188, 173650415, -333927064, 2094442307, -830838093, -1815050323, -1621287329, 1102309509, -1378733240, -1007806830, 1267473880, -1556508370, -1586813584, -1839739980, -88716640, 1295763069, -1788095026, -1429674489, -1808112073, -424909327, 150609776, 1914154738, 826500051, -1670053381, 335901816, -788715489, -244718678, 1504146933, -170715906, 826884754, -774136207, 1670333778, -2338763, 1916465917, 1854899487, -1306707435, -1762839604, 1549055825, -1070229258, -422971769, 1249136022, -243572328, -1224884285, 2091085347, 2111464300, -1799996415, 1648433251, 788822485, -876395182, 2059721276, 1271763849, -1867187357, -2054742568, -1020253176, -213134145, 103040043, 2084955330, 1975624969, 1463001002, 1649849102, -2098407446, -207319586, 625169809, 305839532, -610263451, 321049203, 951273247, 1286133969, 1970862565, -1976573550, 816176744, 429192238, -1817499043, -1006014016, 568452393, 405765451, 589981674, 442449734, 871656275, -719381060, -1038936335, 1475352461, -1616113206, -824465262, -894985596, -1432631889, 1270332777, 969272084, -1260001015, -758205367, -1202784695, 1730106543, -607172835, -1759160170, 476739395, -859854294, 1354124469, -898450759, 1517793714, -292145123, 1971689606, -1724469415, -1613084291, 1776760995, -919349849, 1061525107, 909823316, -1542627250, -1111492749, -1339247766, -405655751, -560806309, -816132173, 1912304226, -1126842047, -537682906, 118579965, -875876657, 807385755, -560961568, -627204266, 753160008, -261322543, -1048791426, 490297630, 536398497, 172323150, 607287540, -1129729491, 1423534647, -516602081, 1442939042, 7819064, -74687091, -1519634179, -6959346, 1101660025, 1526788887, 834927498, 1466346708, -844842353, -721057194, 895865819, 881572826, 958994594, 1440879396, -1066908106, -1382778681, -1890080566, 21671504, 1137863964, -908992587, -436942415, 495141741, -1613808503, -1773590492, 982509686, 835067879, 1186674041, 1468124210, 2107984340, -1014172842, -581218898, -1244639480, 665895299, 1753005334, 808718256, 1977775767, 313129949, 631930647, 803485461, 1516825732, -288801339, -1980249615, -891925246, 688224864, -33702204, 631469626, -1915680527, -345746148, -1402142348, 370941723, -1624868428, -1998967877, -1612394975, 1206333985, -708953415, -733483703, 1520415660, -632772528, -835241586, 1889565195, 425079474, 377797757, 690081703, 997962743, 395638510, -1604963619, -971295649, -1276796314, 1911735003, -1412889128, 1419742012, 2068815111, -364449379, -145585117, -185068938, 846508567, 2024518433, 889023501, -1510001222, -1553876018, -752523646, 873525272, -1479767765, 669309212, -1887783250, 318804170, -604573528, 1068449173, -1117823671, -1326856251, 305887060, 1051692200, 2093854673, 2075361301, 1882954578, 1104819223, 864639746, 625194953, 351146448, 1106803106, 1334308987, 611657412, 1485391687, 812527621, -1868420448, -1497366828, -1201725440, -999209179, 1555761858, -1960437501, 2140519641, -1355961467, -994560643, -2027674579, 2049001544, -1241306882, 1618555233, -395401006, -1558245472, 179455151, -1431213100, -883231187, 2062707859, -1389870543, -714921930, -1287566203, -125287689, -1326856177, 1526185286, 1764153538, 1412306637, -1675700363, -1462516540, -489466558, -172622210, 1731857190, -586407594, -765500435, -613354138, -983543373, -1949630801, -913967738, -534949226, -1638557975, 406990829, -1781247420, 1669294037, 101060747, 1123717186, 2021234593, 1345752296, 2064327232, -366589482, 120569712, 432085779, -133821234, -2104088852, 415597621, -1413079841, 177855624, -682602173, -260983120, -136071652, 24201989, 348726206, -1936860997, -1246918615, -1605072878, -509283770, 1222578517, 1635161714, 555621865, 1140059119, -143536643, -1237946566, -1986173790, -1387824295, -830626492, -309224294, 745027817, -1005401768, -2096345443, 1795793352, 478472688, 1136543191, 678937463, 215550108, 1022399143, -1594860807, -780083827, -498842800, -1533717974, 1930145408, -369031556, 879781511, 1082595195, 151360882, 357485717, -1604518000, -661326736, -54682119, 1721135348, -156333333, -123196434, 657019787, -1293630767, -188002549, 1397321559, -2026528438, -910959595, -89874595, 976748352, -1619954004, -1515285712, 765643656, 8758119, -1985244578, 1297659433, 332021494, -379212316, -1377331355, -1617468682, 1855231123, -1895006819, 967626886, -1141501683, -748641580, 14693375, 1475560936, -12967878, 1275642875, -1089302038, -686159625, -1549795149, -849420648, -288935956, -1684284790, 1178224745, -280890798, -731347535, -1847226553, -1046722144, 1928932583, -1258195782, 168023622, -1367408959, 1958529904, -1969730995, -1424734732, 917004143, -720024599, -2048693076, -994061511, -632655145, 1782428401, -1468061815, 1623398109, 93369164, -650253875, 156191672, 1743455527, 1617401618, -834766670, -1204906458, -1422722106, 921916025, 1810309443, 297341449, 85674485, 585639725, -1230103208, 1998449240, -820144423, -1102588724, 51774976, 1270374014, -174667219, -198377799, -785078583, 1240911433, 1339317024, -444163281, 1421689150, 1578242344, -194172547, 187875224, 1131218096, 1585876117, -638827252, -1777770977, 2086714937, 56868304, -1554626760, 761055364, 231146749, 765340365, 1433936625, 1316949038, -338532685, -505745810, 1467518675, 1094220678, -133998493, -1108651020, 1829989767, -150144894, 1796861808, 1218590131, -847718295, 854774911, 981182169, 1611928325, 2101325931, 234314067, 467252411, -2047995520, 779475256, -1334161502, -1951878118, -1684054677, 232161948, -664070544, -322787616, 1003724141, -1580129246, 1216815096, -174549979, -1418433145, -1382936834, 1547888571, 703153840, -179104445, -2115519955, -452741669, -616108099, 939191597, 1173236954, -387857496, -552750592, 1077946242, 740043523, 1854903675, -502703895, -198840281, -1008465828, -562258494, -1859600343, -1141762084, 1322534259, -1542029988, 125939573, 1643364017, 1078090516, 879588647, 1825582730, -538594888, -1974708242, -692724522, 147363184, 1244426235, -1465633674, -127290617, 1732500738, -1195701584, 862060810, 1198168724, 1673655212, 1651070123, 1212699226, -1581917912, -130672010, 2100892947, 163090435, 1497443093, -1479700926, 867119448, 1984629116, -1666154395, 44106065, -1472134556, -1126632139, -1476266194, 2135271691, -1826273008, 486850045, -464607446, 993715199, 937129433, 774849187, 1486099078, -679625689, -441239598, -997266464, -664580102, -614741647, -859207972, 2013772916, -1517272551, -785172358, -158360299, 1219608462, -1060343830, -1218053732, -1455189106, -470976144, -1078046026, -1348314070, 1611241024, 1757167186, -1763758813, -536634887, -120593601, 621581191, -1753825407, -793700573, 1696008495, -301400354, -1079153309, -842311161, 1583028471, 1568270410, 153266289, -723386477, -1586381131, 1009873349, 1526641789, -1222758459, -2130938383, -1350407824, 877926611, -2113841554, 625822996, -1137591810, -1407823148, 407905336, 856681498, 1583611219, 2050006469, -1749148693, 1760547462, -1174465177, -358554652, -1502728213, -628096874, -871239824, -1121440580, -1046399996, 62357432, -95234752, 2070092986, -583850134, -187072964, -202968853, 20077055, 236231418, 961999434, -2069109076, 696511094, 419280838, -347932651, 1550231816, 2030821161, -697521712, 1062362960, -607589580, 2055987408, -1244040428, -248374303, -596585037, 1647210923, -802854197, -1811444268, 622649667, -1603012463, -51581714, 1335415953, -91751431, -830674617, 331742712, -540368559, -1912578902, -564290027, -1042356496, 1426341070, 520988813, -1612859754, 1109134758, -1612598215, -1818144994, 1842221008, 1912900924, 480731505, 1284915268, -2026002045, -1799269657, 1248412273, -1326227275, 327617733, -9780489, -2113154039, -1816764263, -843774002, -1826805228, -1318362160, 1545787501, -1672031472, -2113110327, -497939112, 32231466, 197718923, 1498691398, 716428963, 726406309, 1803120222, -1580714143, -1087660074, 1568931641, -1207754336, -623371554, 1764416044, 1853461410, 493180528, -605659153, -218547667, -1700653013, -1554390966, 1317615101, 62970142, -1960145908, 52256156, 2135094440, -390694469, -1748590579, 253914520, -23298292, 1563747363, -337373842, -480121012, -898885818, 899517715, 1517987594, 92773871, 179791414, -12583850, 1687085241, 6004348, -280511611, 95200892, -1224701706, 46060164, 1190382057, -2098254391, -2103213887, -644283328, -535665753, 125255280, 137117126, -898285595, 1186855769, -818513407, 1583825599, -2089161156, -1312232207, -420665826, 1589983766, 2049934449, -826354947, -838430091, 683382477, -1235100374, 273640492, -234788375, 1511251874, -2037018917, 1564726544, -1217436910, -549320595, -380906664, -1192814043, 895157224, -1384350259, 1457837227, 886531601, -1181127494, 1188480771, -459705561, 801460269, 981032548, 826925597, -1627203395, 1492848451, 329248704, -1968980394, 993488269, -304245607, -1812552100, 1057585340, 1844052416, 959828782, -1332353427, -1538375917, 24199316, 338736963, -1882067452, 68877561, 594198711, 1525191196, -281030785, 79690, -368163367, 1244855815, -1158996159, 1733671365, 628819836, 781876893, -1974712155, -1521091857, -1416490739, -853843641, 1545256495, 417684023, 982388536, 1638900228, -2078967548, -1940022182, 817503864, -567420824, -1332773988, 1707100680, -475107604, 1773891815, -1875555403, -1404250937, -1600990863, -1370311085, 2119931786, 1918477848, -296451604, -1159630942, -1267303868, -1081312041, -1145191705, -1651698187, -2057563216, -1838105369, -1154277793, 385214165, -1041471693, -1355770610, 1707302875, 623007423, 1910748666, -1910497508, 1685363648, -1487886366, -700725131, 370662995, 1921636323, 193243430, 936631045, -963756030, 52570464, 528736624, 1281237491, 1379271282, -112501847, -1856853212, 671946916, 1457628678, -793807647, -77003797, 1667895306, 684346525, 2141563754, 519967925, -1520324514, -2141541574, -958095172, 120960513, 1764385291, 411365863, 1218246008, -1695845285, 427020781, -357249579, -1381987652, -997533402, 1703806138, 316467656, -190053191, -132318309, -1389777472, -2077126479, 992830081, -340812271, 456834256, 2081969820, 1765523237, -1111860354, 1403082618, 384756684, 153194495, 1013623101, -1328762503, -3572188, -1491340213, 1074245905, -372344720, -76854073, -1526273540, 237717353, 2106377943, -37596669, -791184435, 60654053, -2010394065, -1436997782, -247317355, -1821068776, 1135069309, 297830465, 587047903, 1274267791, -1490382603, 1378096670, 1609899961, -1866636270, -1724881932, 2119451596, 163246028, 647106857, 1648979507, -20346255, 1322524076, 1530166753, 1618342713, 298011891, -799332751, 1551279567, -117595375, 1424428438, -265606778, 1344223829, -142993603, 1911216617, -1601261376, -1819882716, -1479038230, 1528828130, -1165335118, -1715440895, 898572900, -1704859832, -1467135937, -1843786550, 395171275, 1329417809, 1305819760, 50083003, 1701401351, -1101127541, 1215296902, 116562413, -355030280, 245872894, 430816339, -819370976, 690806258, -1373808494, 408706757, 1882501561, 1732057960, 740359598, -696884541, 130249229, -1656567578, 1440059938, 1918592571, -1137762337, -799505340, 1725666118, 258215547, 1978540071, 503223576, -361916317, -336258880, 117885205, -804093588, -648783024, -1856348148, -1979886252, -882984528, -562026656, -722736068, 1754744723, 837062642, -527445381, -1886626215, -948764096, 1165094475, -932469622, 1639009837, 505059222, 1245151388, 1855770904, -1273271015, -400222759, 590038394, -126851275, -1586658778, 2070533088, -1639007642, 897506206, 539923289, -847412780, 1420760897, -1675652838, -1061892022, -135724490, -999731970, -639499482, -1808002569, -2096738522, -110969959, -224626988, 1665401813, 1534062561, -16592057, 658134511, -1770042840, 162775691, 826873070, 1131583587, 274610579, -2017321426, -916576810, 288415707, 1926558706, 1604227330, 410380961, 141740, -962199961, -1687699730, 1724112248, 679492337, 1551344819, 1008739406, 1789006727, -1245369610, -846479930, 855228662, -1994480214, 195211225, -816405096, 1149431671, 1143631976, 1039077742, -1012170695, 1580395680, 1323261727, 1173612131, -1946084825, 297325383, 352564865, -450297948, -1162610209, 1985482825, 726864446, 36185600, 778008246, 1003066062, 560794114, 476876300, -357504792, 1674132689, -942362206, -281336249, 1823819505, -1007986721, -613717871, -1572920450, 668124187, 147722782, -1887130472, -1187483790, -2119875496, -1569241200, -145235002, -103817801, -821184175, 2012158873, 1651528100, -2122364194, 556907710, -231987522, 1560980397, 1941572054, 1328151543, 1416510639, -531431172, -731626609, -1645000501, 779161223, -26416825, 40774879, -853580912, 1001401681, -698667253, -1269680471, -1862282629, 1049243853, 729508104, -1836868549, -1546233295, 1588135540, -1633863952, 1959588856, 1815866269, -1812878150, 855905626, -1519081930, -1465378044, -2103583086, -1424098052, 1240952425, -602901418, 1984328503, -22527719, 2072464000, 792215749, 2026731048, 161440056, -1551926129, -1027698277, -1283245197, -538066410, 803504813, -1065245624, -1127091146, 1754825181, -1542379233, -456395846, 1332709218, -211231851, -937420107, 1513130737, 1372435138, 151244249, 1219728244, 323054802, 2038216763, 1447622862, 1588795764, -727440070, 649403221, 334292817, 498163723, -1112156331, 75576057, -372099217, 1042987307, -1087283919, 1111987068, -35105255, -1326532344, 1532972173, -670853924, -2020752872, -116527107, -1686047497, -1215727288, -35714498, 1271848624, 128232213, 1460140005, 1480260317, 1220249715, -501025470, -338612273, 534228605, -519354387, 65629532, -2070853795, 1993045448, -1010644487, -1548653605, 129579944, 665307849, -2061610291, -1920085978, -1035426738, 670286677, 1249423711, -350455263, -2071367821, 1253488329, 975406339, -1671608054, 1643960840, -1239741707, 1590409560, 1056551813, -1477892017, -1019454377, 1380932709, -1427813132, -420748642, 1890809227, 2056794878, -1057960948, 1743559266, 1655032322, 778088300, -1620154715, -1073185946, 1699047410, -570479028, 1939838672, -1580257963, -1811311219, -1481794121, 1234279726, 2024655229, 666340724, 1031926435, 546264191, -974329643, -1294594450, 128848008, -1381750151, -646771135, 1721610836, 769918790, 823480794, 466415891, 891502672, 153471813, -2072804928, 923888597, 395865670, 706071517, -1908877768, -1991306427, -330119791, 22023160, -351558124, 965589408, -1089495310, -1784045322, 1157128704, 1481531939, -1981322812, -105989168, 998363351, -1172805426, -1244548492, 748003455, 1032338738, -833953173, -1447125967, 895430558, 1828546626, -229279538, 1449247199, -414980530, -849062433, -1981003939, -569003440, 1461090393, 645481952, 469662674, -1426162763, 2016635033, 1297051309, -2106605761, -1660618158, 522666906, -453554927, -871322798, -1934893456, 782983294, 630824276, 894619610, 2052758936, -2093790175, 857756040, -923202423, 583647997, 943932028, -196601565, 114115323, -872459463, -1284875698, -175485490, -680483594, 1510029116, -247380232, -1980212869, 434905843, -1303453055, 2071516328, 1008658877, -33898787, 949135489, 840008378, 2073592915, -312490216, -2129758868, 1334304858, -564375291, 188169668, -313598442, 1314361197, -263246669, -632360894, -1326793937, 1072763313, 1701468586, -1082457354, 365216695, -933444574, 606888249, 717288782, -727197008, 8891551, 1816001155, -698326525, -9567212, -1847788083, -780268905, -579797089, -2006108919, 714700091, -1421536835, 1363256638, -1763413166, 292812743, 1407293970, 1427920792, -187238391, -485945281, 1515486039, -808476098, 1332365707, 170734666, -512948219, 563986723, 1253540018, 405009289, 1892841380, 2016829021, -1940968119, -252152583, -1484184996, -915937235, -1884123716, -1659509094, -1856544308, -327040196, -50590193, 839172949, -229168358, -97460953, 790381073, -2095312102, 457094730, 255091517, -340799792, 1715734856, -960772397, -807362169, 96859983, 853124434, -236820113, -448639480, -1237925770, 2140748190, -2140587214, -250297275, 178446409, -227541840, 108695006, -1209928441, -2027492260, -2139944825, 377683316, 415960670, 1231977350, -1220776889, -1764013298, -1260052503, -311742763, 1775580183, -1565224724, 1157971797, -1614883391, 1549634380, 1619731403, -1333006046, 522658211, -1458414393, -1479166595, 712497581, -1876124569, -1721625190, -1125413706, 1476655722, -1942104448, 1958243825, 1584784931, -1114243216, -1971650532, 1589861423, -1200762176, 403005754, -469409384, 913413719, -18274454, -1718853973, 988374838, -1878178387, -1139912269, 926946130, -655281139, 1440469148, -1716509195, -839045649, -837226432, 1842732762, 1301281449, 680201014, -1136834958, 1989737417, -1873435399, 613365970, -1708145543, 1676049184, -1070454125, -452483924, -2098982063, -2112257078, 706428095, 1067580524, 1227110994, 1513645326, 1826279603, 850067775, -462855771, -1545365009, 286222629, 196662235, 1935263732, 430382804, 770630946, 400522431, 188997472, -1252459156, -1117329378, -579914561, -1795570248, -814075189, 1750282059, 1630548415, -1108374553, 1950176216, -164403155, 1040710590, 1806827692, 1026069483, -531669906, 170954262, -17632623, 1165955506, -1747876114, -655767295, 365108501, -1409839532, -162699746, -1894647969, -513723093, 872739543, -1045946482, 882535605, -1098331929, 1314342854, -1397798717, -1466335368, -1230838154, 1367474957, 1712515406, -502570100, 1072021071, 1394528296, 87362073, -1201166073, -913328984, -1651362180, -124623357, -1790352583, -482503126, -1861631484, -642969681, 935607280, -1843207193, 497127984, -1617223527, 719386359, 1474718347, 1528394505, 1357432169, -815781408, -1403741999, -564140904, -526500981, -175494141, 138168633, -1061440376, 1982829567, 1522500294, -471731465, 767757834, 908414829, -806531555, 834696750, 920200184, 1185556348, -29525676, 1443755869, 2061097277, 1629198691, 1452454924, -2014413287, 1764559731, -1115683393, -1562609790, 27609852, -286170163, -1885439577, 1582275607, -1263462179, -1115106762, 77690109, -1621867764, 483310913, 30348986, -1527823865, 868358284, -1130308592, -454755035, -176704963, 303051247, 796041867, 16854761, 123753572, 1890454588, 678870397, -1335771324, -2114619429, 1947168496, 1078132400, -1064839774, 1515688244, 1011693309, -665033310, 1117329983, 1942082565, 953765397, 1504608121, 1901644048, 1941968384, -1679535577, -1861987789, -1612411165, 746016577, -470306519, 1263028001, -394292028, -1383773209, 288308504, -1514944363, -1837605469, -1221500187, -659981252, -747731238, 2010929715, 1827751449, 611727792, -1649895324, -780773612, -1998438498, 1287592481, 1278863688, -675075789, 1527279710, -1604437803, 1451535853, 1549417585, -1037376534, 869470447, -1912615677, -2030180222, 1379700109, 902182641, -257329996, 107065367, -1565556067, -1404000639, -118403302, 1962069567, 1997604373, -163338129, -978515472, 1070708234, 589445472, 1945801974, 2124490123, -1074698129, 1250592375, -1810893247, -1001177334, 1161544815, 1484658477, 769904433, 326781388, -806865543, -964432439, -1636234659, -793482206, -14392304, 1479307989, -804498087, 661746501, 470076586, -1119712203, 36105275, 846992010, 112025819, -770797190, 1662261595, -1535417901, 2013304499, -958156424, -322409127, -1368830135, 1982171747, 2057674005, 1521873763, 2022832199, -602139098, 8227683, -738662985, -1552212583, 1721762909, -1395463439, 838641255, -531487003, 957005820, -1039313827, -948895653, 1735551337, 1039476517, 1609208366, -1570507620, 2122098150, 256992273, 965530080, 1725208527, 697561563, 986640439, -1408085441, -1051212802, -874283018, 802760102, -1966529800, -877682018, -707527737, -22871370, -1675179668, -1950133555, -1836159818, 1102644191, -1395335481, 2020880346, -841624521, 800864232, -106890415, -341672950, -165676229, 1735914051, -1087405309, -443845735, -798416151, -1347043401, 339093341, 264702975, 46501005, -1538686657, -100912522, -1781800077, 326044880, 1292489010, 1143730004, 38020276, -616817111, 1879512739, -1377713283, -1276747002, 1733371539, 1217784586, 194694606, -969821574, 1706288256, 1055372835, 23993994, 446464115, 913585933, -2110348267, 1209588917, -373690268, -962808458, -1606919721, 991358115, 1372700894, 1448135115, -1579349041, -611914805, 1705180361, 262488803, -40445253, 1882297824, 2060057841, -350514799, 482319060, -1879447774, -674857532, 1215767829, -227448528, 1652330480, 1579601241, 304585429, -2004307097, -1074098782, -1574349388, 1576645965, -1446210183, 789838997, -831125688, -1569960382, 1218753007, 2039838598, 1017472956, -1809467331, -1366169537, 854300707, 1516456178, 366560055, 1142001012, 1744137439, 324496452, -843851632, 552143630, 841480197, -639724016, -1721638330, -61732826, -863892464, -1606232714, 1546645858, 1365082326, 1626413369, -1177942944, 1424676789, 275148759, 901562448, 182305730, 305866948, 1490218602, 1704476367, 167802914, 931354112, -252907908, 1867909163, 2088176218, 17226298, 1653207812, -852811667, 969371804, -141285291, 1288399535, 1546980353, -2069347401, -1588440772, 62361791, -1261541170, 519955608, -2115070698, -2012940240, 141264006, 1564866066, 662000568, 712058140, -1686535106, 1553608417, -974843813, 1620891743, 1179644224, -1719678996, 1765899406, -470879874, 1760411424, 2101938889, -1479033235, -1079440700, -1757929715, -803027834, 197420563, 2020029358, -1207782296, 524263590, -421607860, -1762235000, -175243622, 489664617, -1506499441, 553897559, 1537346594, 1586668113, -310610901, -1780453895, 1396230892, -348688928, 647205055, -357269110, -418608663, 1134852005, -662623250, 1916684554, 1150582747, 1362063737, 198042195, 786412348, -1153275024, 1534884614, 2055941043, 2089278416, 1567727762, 1974486664, -127591823, 1765001156, -1129769219, -937867817, -976478650, 949224454, 987188753, -724556892, -1209287120, 404425309, 1565006313, 118492418, -788628053, -1097690998, 293711275, -99905752, 283009310, -1013701206, 423065377, 1695223157, -1615542888, -1172061730, -564748408, 1005458355, -1549566021, 1014049837, -602323544, -1795618657, -244550152, -139502936, 55231780, 1265435817, -1497617924, -1539362610, 129539859, 704631031, -1643190935, -1839382478, 812701646, -182037841, -2022736439, -732401830, -47718901, -1014765963, 1909056447, -11425046, -164802774, 1190490162, 1434120574, 1222837506, 452472015, -1831394537, 225062015, 1695475427, 1120425904, 1754285537, 1737584238, -893503272, 476341167, -2107607202, 195144036, -400645037, 1524111658, -635554001, -709674149, -1314892715, -1500956782, -1370573106, -1897691938, -664479725, -1858253510, 2012952274, 1034467072, -1108931626, -1710966671, 254309490, 1723862158, -188863454, 548152786, -1759974585, -987110777, 937195290, 1888952281, 785051477, 787112908, 1288437794, 234587066, -911219893, 1954331667, 947034566, -2019627155, -2136338678, 626132513, -1559234087, -407601907, 1613945443, -745248456, -1112048671, -1182113950, 2120445988, -134604339, -1816582734, -1935920196, -2034889387, 721105278, 1938018904, 295181570, -101285697, 1987613250, 784639802, -533595127, -214131027, -384743199, -416925829, -1233037015, 791915766, -431545689, 643037603, 2036060942, 1973291833, 1936353876, 856486782, 1642538699, -30106774, -1269825450, 744144964, -457497292, 1576382094, 458506809, 229659897, -610457236, 1626307010, 1633711454, -1660541162, 157541564, -1697753215, 63940842, -1925211799, -114584666, -1640539867, -764722431, 494916409, -1678774215, -1535382354, -2037994188, -539859539, -1826458201, -189031743, -1597713353, 1760453485, 1361627412, -950722316, 210333399, -1373581687, -1156031568, 2027449416, -1581039574, 534085786, -1363043833, 582957046, 1591462151, -586944218, 1047411863, -1471523730, -1603527496, 272072264, -304378461, -1086465380, 706596078, -398386288, 724744262, -954806420, 790241524, 387615527, 1615754442, 1912142736, -807859161, 526484791, -1648449990, 1899756416, -1975216218, 1850962313, 787463477, -529871934, -1489194171, -1550280850, -1763380220, -319203989, -1059937850, -206051357, 340899823, -618152220, 2119332938, 603637231, -70265909, -1312586511, -1180415740, -1189449392, -323670057, 1928503279, -2081013456, -75040938, 702888649, 1211447645, 960193091, -156119539, -1859694557, -1618037347, -1038428572, -2101051999, -1169379382, 529470970, -1112653798, 1271790590, 2030426840, 201455340, -148564667, 485990071, 703621552, 899198619, -498191022, 335333160, 174305107, -1606856799, -328716630, -953242403, 471055857, 1978962964, -5511317, 2030037557, 1460117699, -1405029182, 1594662233, -1247170750, -690430185, -2043055938, -404524778, -734609677, 1090493612, 763545883, 803991697, -631334283, 1783622463, 1281504503, -228961092, -463634731, -1493032603, -2101554757, -701798783, 94116073, -1410774373, -580430944, 89734902, 1455690608, 1175979163, 128039540, -6334770, -1341332616, -781885968, -1441591651, -282355438, 626947839, 1934133708, 2102749790, -515805935, 1671277021, -6587111, -1335700648, 732883861, 1431348448, -1388197683, -650663852, -113003689, 654805816, -1833810558, 805807935, 645664948, -1277683179, 1261921349, 263114613, -343249761, 1174478478, 1050884269, -522738622, 622081753, 1236592068, 997298223, -1260088412, -1332297888, 1314392903, 1747167920, -230521515, 1203483428, 1601456568, -649697188, -643377655, -2043924480, 544551342, 1062011061, 723206900, 2062328807, 389999325, 1601672942, 1591642510, -264574115, -2146606219, 916340602, 1497939866, -963943639, -754150969, 1630423775, 374253411, -1613176504, -1476350930, 1781590479, -516979639, 591841572, -664831188, 17792632, 1804415867, 1163112198, 44706259, 1815818010, -1528394491, -506577208, -454477723, 1394773466, -60272371, 698702286, 1310881086, -1254528554, -1417075368, -1161322442, -1313136654, 1938038136, 2083088147, -355083955, 574003890, -1487344113, -382217008, -777064635, -1260106253, 1629442203, 2036880590, -569150940, 68526672, -1375852569, 1218075517, 1342821888, -878758737, -1729671203, 576763456, 1770774633, -235493213, -2088760811, -1628127628, -1046939355, -646922991, -1018486866, -268748624, 525357602, -1757837547, 275958881, -2078186418, 91298472, -757401818, -2099394861, 872218410, -2117193267, 667159671, -1457784279, 537018793, 2066091054, 478501536, -1737702175, -485550339, 564576475, 933086589, -1494626080, -549775962, 242315667, -1577281706, 503240902, -1752171461, 871334448, -1039379136, 2097671817, -1454983575, -419474588, -1989413438, -1888151743, -1235145156, -685411163, -105751110, 1886081088, -1573294691, -850755227, -202225791, -1261940379, -752692197, -61006457, 1769142349, 217030833, -1161665299, -927808243, -864786473, 1193069338, -309366473, 1366909717, 1679539773, 1247794847, 1363026572, 372696069, 1091521576, 1462124956, -437671500, -1737279739, -1088986831, 360981343, -286517842, 1518105261, 629908608, 278282746, -1834084616, -1896083201, 1521144758, -1701891750, -1130810611, -586189161, 661982220, 1938739096, 905653294, -385533664, 142541244, 1065661071, -1571708571, -1375479542, 1857472927, 39017134, -1386140986, -403316103, -143058665, -1233961202, 636188151, -765286016, -2088914, 783419078, -1693702413, -946203250, -366779905, -258243714, 75268362, -150130648, -143511724, -2015411902, -210101205, -1860932904, 589866896, 81706904, 856500837, -1258303387, 2144953295, 1186834387, -818998869, -480471741, 564408395, 1292801193, 1796890071, 622771021, 905213953, -607371517, 471420657, -401294159, -45594989, 385360916, -1481078864, 1559654954, -1974795152, -1892353876, -828923840, -88102796, 1889358129, 1195670990, 6922565, 1897535741, -1890213818, 414550655, 2119412511, 2141305304, 1708882897, 898129632, 519589231, -989226762, -1887858223, 1381799039, -278768934, 114734743, 690024323, -635617303, 636093708, -1010199811, -1214640380, -833284221, -463721216, 526803811, 956734266, 530428825, 1029329789, -1751702995, 492899829, 624573367, -1168112157, 761392735, 215321680, -887155401, 609297191, 442592851, 1788978525, 1202546459, -1137609445, 760490406, 232707840, -142440676, 350624242, 66260595, -2122973925, -81222653, -840596989, -1903258173, 1874333419, -1854455498, 29558221, 1307917123, 2130366129, -280537195, 248469563, 891108407, -1990307948, -1693962362, -1277732568, -516501073, -1664453179, -2046867378, 1402932260, 1131108855, -813574940, 1053745314, -1756448904, -488561325, -1818652510, 2122577021, -421236889, -2099062293, -1770249306, -467286988, 387748278, 1669636868, 1268199604, 802044103, -764938898, 571514736, 1353892364, -2030847623, 1051644640, -987282616, -646800624, -452835679, 269199338, 102211799, 342392872, -1897206334, -107373449, -390148904, 19437801, 992864985, 1697000267, 477942244, -767602572, 1129646838, -1320283392, 381740837, -1174775780, 353969166, 1468650315, -241836465, -873680821, -1043941873, 959330947, -1582105391, 2033179557, -685569741, -1616263324, 1327805511, -1998413715, 257187224, -242228465, 1961094705, 1535638568, 577044496, -1215350955, -840311062, -1125175937, 1965185078, -897538764, 481924050, -1619527575, 865485761, -1433362527, 339194061, 1393854601, -630566116, 1465708167, 1497108721, 1151112660, 1600764725, 368909839, -221233542, 354135926, 927994005, 1955339810, -154601983, 251580662, -480239696, 1596839467, -1332205331, 916694423, -1927317890, 418623777, 2081960745, -1626464767, 1732801353, 2142201284, -1662502889, 1622096929, 164490440, -856457434, 939317956, -915261108, 417908589, 1819634028, 1871168860, -1192006998, 500763643, -386070827, 1552659423, -602503215, 1082741594, 155848955, 345634324, -966248528, 1423743918, 773311065, 546413758, 135333806, -1973691739, -840186868, 1107805709, 48115986, -1300635376, -2098938915, 1401142615, -1169764188, 100230069, -1098197377, -1691295225, 1603957909, 778714466, -1611482604, 1800636885, 1190143131, 175128133, 496585973, 921522743, 20662368, -1411965829, 1047927986, -690973418, -295825380, -1029940762, 1226748247, 321516741, -43564160, 1901146947, -323661583, 1250046766, -341599531, 583265402, -1979582640, 1621739597, -217512347, -1207890376, 62686733, -786240542, -268138471, 1840408762, 939225294, -1732901278, -333872285, 1642786796, 1512729032, -1540899538, 676046686, 1019987122, 2032194181, -37286393, 372954930, 1214250884, 942142695, 872230336, -1419070275, 869404736, 272451692, 2138054196, -2052738705, -587806917, -1059240014, 1390686074, -66729611, 643259288, 560437821, -115875753, 1680559385, 145031901, 2113246840, 681103859, 416046183, 2048257474, -1870110727, 1783087824, -1538393836, 1305787980, -100391415, 1881982199, 1908527771, -22492390, -1581103518, 379331443, -1900924759, 864994303, 1591498810, -2067813629, -86532165, 1214155728, -806460544, 1923041802, 1181369348, -384541826, -584136603, -318817334, 2121987731, -652180890, 1637784349, 1645818577, -1361145675, -494774297, 989689830, 1754871474, 1157106071, 128463413, 559420233, -1818351368, -195802576, -396921236, 1186531999, -32955048, 534043485, -1568860696, -1040729898, -1268371163, 1448399437, -1258812205, 353964917, 711716360, -360341730, -1049315842, -462236708, -826850321, -1183342136, -997652492, -536776496, 541275717, -1675843270, 363794252, 1751493687, 1684822116, -196034366, 1824275007, 352762143, -179137209, 400027569, 1296648569, -1390264828, -1100792188, -1048195266, -1419249101, -1570523310, -1157589384, 78518954, -851395199, -1389298136, 2027637187, -1085563483, 1543770344, -646842530, -1075475466, 373105904, 423644211, 1786097353, -1945187445, -355576510, -1385826170, 1308058301, -1536020203, 1539083375, -1101921101, -177585198, -275685960, -1807339321, -1034523956, -237310741, 2144869594, 1540690620, 2058296056, 1981929332, 2117926170, -558185273, 1624915850, 1293045738, 228459648, -25162357, -1440207281, 33926816, -273157130, 2092357689, 1967692583, 433772735, -1081487881, -2008004810, -1277173802, -1250013811, -1814195067, -2123444997, -142054117, -1114684430, -1698008480, 885419837, 1397864706, 2096798776, -74202252, -870606771, 1913601654, 246196754, -91508590, 1335040704, 467624474, 889658079, -505982365, -913552558, 58413144, -1730642897, -1386377319, 115889415, -2090981191, 1298605701, 1997089382, 103820179, 887294583, 402231390, 1712959793, -1824735237, 358536784, -412988046, -1480178041, 1360747387, 1748220316, 867581497, 607155279, -1155382102, 774493857, 2075636656, 399801921, -20442405, -214327770, -1662416036, 176678809, 739398598, -1045844411, 1894352783, 1357783047, 815163240, 892029573, -1897830423, 391547880, -1689143769, 1069400359, -1361934815, 343301051, -464739016, 366105024, 1584921349, 1386473165, 609086789, -1666225913, 683118527, -698319561, -182831287, 1722500592, 827981657, 1415111946, -468311106, -507290631, -1958261630, 651425480, 635379706, -1885927741, 806104977, 1980370197, 1674685910, 1864458979, -1204166454, 928463789, -1027997296, -906534918, -2055093536, -1612349032, -27911694, 1166827522, 2105717179, -1215599972, 1713288883, -296683542, 1196816763, 1668207603, 255775004, 1134863717, 38156731, -54343618, -201884946, -2117300737, -235226855, 32679609, 1680361346, 1068407665, -1207571210, -956560977, -342711502, 1110542645, 2087598458, 266084399, 451984631, 1276622683, 984886746, -49516801, -950081965, -399255907, 659144925, -1588187952, -769618575, 1110688177, 1856131483, 1761783219, 1069036938, 959387614, 322662536, 1340248523, -757329527, -471044910, 1467659440, -720590012, -330881807, -894885455, 1530732867, -204419197, -1509880066, -2107819151, -1749491884, -395704418, -306912246, 188074596, -417706019, -1614883826, 1481750834, 479573782, 1146206726, -885688413, -4864455, 1033242712, 1796676006, 1200455095, -1949351509, 1459353244, -1132604919, -418451546, -1850975419, 338452612, 298469619, 2138238333, 1453717652, -2130086732, -2116571675, 300981744, 1248270299, -2078235409, 494694814, -350967407, -632488647, 475805281, -1589628444, 263763263, -1447391733, 952959801, 1721638275, 1205047260, 1874558607, -44678789, 423302294, -1640888510, 1358575049, -917609709, -47773436, 2025035894, 1070959529, 717579052, -826973363, 782593822, -644758163, 1934759106, 1525706630, -1651939280, 561148996, 390940277, 224925346, 121506796, 121707059, -1485123680, -2057541646, 173519627, -1600210628, -1399989590, 1162393326, -976598216, -1849904964, 620167323, 886853941, -419008833, 620465428, -448787982, -1296428846, 614712196, -1212895860, -1155372875, -1725411648, 1524487477, 1197335667, 1623375816, -479266384, 1908924099, 1266972042, 156044162, -1724263160, 1785673485, -1995499870, 1876049789, -1775164369, 1600869598, -267594110, -1107202643, 2119910919, 433430041, -917434865, -1755067725, 1207829690, -1265469901, -897925210, -396090509, -773939783, -126337056, 134744268, 1809815523, -584333822, -344439280, 66882057, -410603738, -716362079, -155664356, 1051453712, -197977896, 965234040, -87136964, 346542371, 1690808235, 1696755265, 1228358460, 1524831669, 2037748018, 1185173460, 1579142255, -149824688, -1885708548, 1180946853, 680939747, -1335301448, -988218139, -608406127, -253733162, 308056657, -2108727128, -676873767, 1877509735, -1977501251, 1424049847, 921866094, 1458773136, -558232631, 1354293326, -564301714, 1999771987, -595699063, -115618107, 1003018990, 2092014899, 111714752, -1027342299, -1318571014, 178792933, 2106674054, -1496235778, 1997625049, 800963143, 225024804, 643929975, 1381979284, 177726865, -1317576126, 82557862, -54319175, -249003575, 1366582340, -178765534, 520446044, 320829820, 1274416112, 1619740117, -1872229282, -390608726, -1746380973, 1155119638, -1530372111, -2044537599, 577838565, 1107465718, 756277850, 1347720526, 742331627, 368414681, -933420295, 1965440048, 194655772, -784979896, -300402042, -974366194, 96562311, -1488773370, -473457507, 871934538, 880520115, -1789418144, -1914307205, -1320222794, 1384174855, -648224311, -1251848183, -799538106, 616632172, -516450139, 751771674, 1389608967, 1037530416, -1861808539, -88683279, 1173953360, 1717517357, 1789359827, -711301115, 516870198, -961496022, -1021606482, 1513700359, 161316676, 1727920000, 547746937, 1109082147, -1054745749, 1870336, 2140475791, -818349178, 1897996599, -742055404, 1364175995, -1237344992, -2089726652, 619636771, -497814650, 597183402, -1851144721, 1651472442, -1781655920, 1682305514, -674730929, 2104381928, 1232454435, 589105973, 1751271526, -1262165400, -943796795, -1324534731, 2025211027, 877825285, -1839555443, 476873708, -2056541109, -975284806, 2026710776, -609160968, -416456184, -560590312, 1739693820, -201046248, -68288384, 450184300, 41424733, -1871634, 229661466, -1478752992, -601441472, -2050876922, 225644957, -1027563935, 1228827389, 649587991, 2006264618, -882065918, -1500786119, 1372385927, -504042388, 203514271, -1146401998, 500093748, -630629107, 1074454789, 1435968348, 2045838193, -1588973461, -1205814575, -352512723, 420878926, -1497299573, 1126369110, -1164899531, -457123556, 1843016269, 1581364675, 1482719344, -1215322321, -184906271, -1105725563, -1685384737, -200440347, 331542137, -1519878678, -1225124524, -540032793, 1774276160, 1454206470, 1996114318, -1668817234, -1160066167, -245813542, -264768635, 220566857, -1655113653, 1507030449, -1009844987, -727922852, -1925698355, 638596301, -1390024575, 312462699, 670814621, -1772859325, -1570525664, 1088327512, 254334150, 748043555, 79549980, 224342570, -1261060543, -1423511845, 1675453516, -1131586033, -658303061, -147736868, 879651070, 1005150371, 1684413240, 1130887805, -1495839990, -586109070, 2088426983, -585637088, -179167453, -1267888453, 1448241399, 943418515, 158572656, -680271753, -1453033832, 1207924151, 365993562, -2144510055, 1777583590, -1759987866, -1708395609, 1060621206, 51329554, -667499118, 2091145927, 1987823654, 606681314, 423853737, 1106948974, -301238964, -1138623397, 1444908352, -1619096222, 1308885908, 809028539, -1351426065, 1538788501, 71157915, -1138536532, 36846457, -993822090, -1085630508, 550073783, 1659456304, -1916528509, 1509581704, -65562890, 384488343, 488179746, 1067084318, -314583539, -209786040, -1000842319, -375164004, -790697894, -1706992104, -557734693, -808459411, 654818923, 1214291576, -602237907, -1277517212, 226279344, -292558562, 301825512, -1766578944, 160730481, -8028445, 634050584, 1577783793, 1119060225, -318236433, -1427372571, -2099622693, 1461868852, 639433490, 1831273512, 1418094937, -459420915, -1239791499, -492319935, -63911356, 1803676092, 1786216049, -1772258777, -1987645132, -902850106, -831505986, 2123800256, -1044856250, 226067333, -433346096, 917057394, 44613663, 1305032915, -1856153987, -634910215, 1813349425, 1317306882, -176546846, -974058630, 1185675068, 1363543566, 2078703751, 343676376, -1310323176, 939246101, 1865533889, 679777862, 1704070833, -1959721977, 1438872151, -1196662498, 1998233937, 468769945, -157882520, 1498412784, -983027164, -838255490, -939806836, -1800304932, -457677063, 524693721, 252600376, -299810268, 374385990, 1841296108, -2097085082, 941544700, 1119691886, -103956715, 261087092, 148445348, -794990523, -2099599621, -1335256244, -1053928776, 303366099, -126299388, 304113860, 161519046, 1745712215, -1914509558, 246125384, 869734177, -254520177, 81952333, -2116583242, -8483340, -276846538, -384961878, -1082377591, -1813516391, 656906190, -725687539, -131013320, 1709579563, 1085033631, -1991889629, -2085303840, 1616926297, 1470844158, 1794723412, -1330850272, 924353917, -608708398, -889167888, -639715772, -612255508, -1306654124, -1014291801, -134156892, -1133224561, -1699692779, 1787219262, 919179598, -1068298574, 866028869, -631926144, -1571059486, -821293285, 88754481, 1386484337, 1506572733, -1550794914, -202907891, 1015556809, -1032077222, 1813882223, -1989769997, -1613243744, -1869276172, 1128454521, 993888555, -77714075, -1851789202, -1706693651, 490815660, 293560596, -1733934473, 1970510044, 553245155, 641514408, -1232285207, -1651975031, -665970766, 630965197, -1360529806, 1002454330, -1091553093, -377761575, -533781899, 1636392526, -535064867, 1193289213, 1206595634, -1094831980, -1709864194, 241437879, -157688541, -762686503, -1630715637, -906911094, -574416983, -1720812094, -1121933252, -534032911, -77397273, -1760364068, -1728111716, -352121200, 982897902, -365324559, 638901960, 1761221805, 278983450, 1028691357, 1629727478, -1372156963, -1454968645, 338521120, -1813477320, -1857821438, 67785718, 2022667124, 380598018, 1055845236, 2145207533, -126365278, 1975102953, -352583299, 704285470, 2087007568, -1750896723, 1803214859, -1987674872, -1252575586, -1186808455, -646867552, 1247594003, -597266125, 189294952, -289144692, -262527311, -1527010414, 2055294283, 1440495710, -541093185, -1736335439, -1255298647, 2129369752, 1765691953, 1813133516, 583069958, -941396319, -283965458, 660167286, 264012648, 46093567, -1903181063, 1693746416, 1501306390, 1219163589, 1288928720, 1631054525, 99812259, -483417527, -2005946344, -1716073611, 1170546730, 774757914, 983750265, 662054873, -1005081126, 691143472, 1540953287, -863100121, 53026228, -336431771, -426617246, -2056280656, -8894317, -71755484, 2078249182, -1018620761, -650171284, 761332063, 2074021093, -782355654, -981091881, 481069254, -2101749412, 668238054, -1185581618, -1924707787, 555928772, 79079687, -622922829, 923446381, 1249491170, -720971858, -1041339497, 1968370950, 2101064866, 484509622, 1931276472, 731780772, -141320136, 1412144665, 201329740, 2139926120, 208422792, -697964929, -1838038916, 217113769, -375929144, -1526119145, -769181774, 723395812, -420080286, 2112565674, -1167285225, 644342000, -255927522, 660295661, 373363543, -722676875, 1521546112, -476432106, -1686816089, 1034909087, -1725152402, -1577399631, 1176272648, -1412195315, 375440662, -1228337485, 1691336140, 954494735, -687346162, -248573745, 70621529, -947572207, -2117348420, -1325320952, -180597204, 1998753361, -523128329, -622795897, 632116257, -1604234024, 1142142958, 12426670, -1635561488, 1952639911, -1886372024, -458633108, 720312570, -439952849, -401419892, 1434056658, 1719719750, -992728826, 784179139, -856037402, -189366843, 397183192, 79712348, -940749129, -1333713699, 253129883, 1075005262, 1976419249, 996608292, 1468711686, 1306315907, -1702234062, 33567340, 1879399235, 1503114356, -1532043940, 1525155583, -1679818526, 2003398416, 2006766380, 639520555, -1644598511, -292577054, -117951285, 1500933376, -791012598, -458511759, 1671812644, 1264307287, 883664332, -2043362838, -560380234, -1407267050, 2012112141, -1312849156, 331607466, -680674893, -836451474, -1655432957, 282153768, 533816310, 124426224, -990222488, -1186059547, -1791118846, -261995354, 842388550, 1973220352, 2051152277, -1572303700, 1000380753, -1661713906, -1855539314, 1654347095, -999244045, -1211104397, -637093457, -1076967763, -1280367177, 352344307, 1908482212, 810516247, 1686847978, 185979528, -1717232060, 29871700, -1430491777, 2073306485, 1422890006, 2072587185, 1233908787, -229527654, 2105767445, -950379658, 1748057585, -889496566, 1310660023, 1123940259, 1155251062, -1239827238, 1089247531, 30167004, -1352894152, 1869442619, 1693197026, 1811338400, 1461419140, 1984304843, 714763601, 1874493889, -1004319003, -1361536729, -1835081996, -1289094128, -1697686580, 1724795588, 762862229, -1433446825, 592446573, -1064287233, -1628418099, -1561284213, -1274966554, -714138254, 1049612235, 1631726658, -1379840602, 1341697672, -540366252, 1350751586, -163661812, 181576019, -179251446, -1297508837, -335792818, -1366691940, -751390992, 1830962966, 2089672860, -147546821, 1068022317, -655727378, 2112001412, 1791247273, 1105729039, 727717855, -2126123112, -541244717, -275204269, 1053655740, -1064296371, 1525656368, 423300258, -1813672666, 1575141157, -284412651, 742311263, -1492738822, 849344528, 1807800647, 1941225631, 678097675, -1120158705, -1599217966, 1552050296, 1152753424, 626841626, -1405259240, 1465449854, 516308704, -1262610876, 2088048940, -170420598, -2085815076, -677524196, 561617248, -1989748547, 289112491, -1416855211, 2079531548, -1245074492, -968438484, 760315304, -435629839, 2001628765, -1132909912, 816219384, -1048059155, 826306328, -1915571129, -721812809, -96721104, -1661883038, 1189747141, 595156360, -37452097, 1353787071, 1508286053, -761573339, -209209961, 8533078, -1740144091, -595825533, -48602875, 1152236722, 169626162, 366882099, 1789488948, 1418608070, 2073336990, 1438333195, 1561338887, -1165757646, -1257921713, -144065275, -1586806999, 286170308, -1595004358, -1385234330, 1433888609, -1663129280, -1235096367, 934647586, 1511683882, 1552402787, 400017082, -1089874306, -681804158, 2023436069, 769506240, 1607888887, 1141804546, -292553409, -2047800562, -111847838, 11181870, -1304122644, 1189593497, 856117588, -1311166962, 759980018, 826048478, 176612035, 146692093, 350719203, 1768187597, 905011949, -2030464064, -1481161824, -261988348, 1969976952, 1465931481, -416345058, -498453184, 787759834, 1814903837, -1228836500, 916007696, -1525873414, 1826783108, -1610685708, -1435430197, -386863593, 1656218432, 2141226496, -1138882621, -1636603159, -1621536240, -2013617280, -1323414598, 1884895493, -1069755691, -908304886, -1217988972, 40038021, 1982570853, 296598561, 1998024014, 2022037479, 1979941022, 468554425, 913888302, -1422241739, -1703765570, 1984238586, -700059588, -1785399450, 1203862770, 1501496900, -351589392, -716018940, -404482260, 822929267, -1992969428, 2102617358, 1061400889, -1364950941, -1486628245, 1786864927, 658590738, 1210363062, 1693992251, -1879947313, 999353969, -342336812, -585859096, -1146916776, 1619244967, -316995533, 1060569209, 2139842684, -211825748, -1798160937, -1442594080, -1387586906, -2143130505, -463220452, 696120428, 196479567, 603575440, -746001229, 1668047489, 519777955, 1091151586, 1322919401, 34185355, 1823363939, -286914603, 586228271, 431757616, 512500748, -425806948, -457142058, 1503755972, 936461625, -1712020022, 248216857, 1132220162, 1268719685, 1584014891, 1844526176, 1430871543, 1030702388, -24752431, -1743553341, -1733387199, -1455388973, -981311636, 1194342348, -2116842375, 506934557, -165121569, -589197951, 726080493, -31712801, 705717263, 282184608, -2036477294, 482089887, -69137667, 1892820268, -189886920, -840652102, -1693908202, 925294120, 1141062911, -36217652, 180597193, 1803808674, 1668696841, -388933037, 1047809114, -513710094, 827111280, -1595309418, 2074736630, -1828779197, -274201478, -2007864893, 868046598, -136120238, -1121290485, 1463522647, 1160320967, 806835573, 1599822170, -228615486, 2093242394, 1596410335, 184562920, -402455479, -1977683304, 186369826, 813381548, -1493032914, 95226089, 951903988, -1500628846, -1664475633, -730833067, -949690059, -1880813786, 771497611, 681794971, -134357456, -1363070324, -1472259797, -1294808831, 1418996001, 1632359347, -1263551362, -1206875220, 1551533814, -2018318646, -1213485947, -1313137359, 1956033881, 512282610, -827866287, -1359323029, -263694866, 1529194292, -2053687318, -791934322, 1706871257, -1069267020, -714879117, 612820860, 2091303298, -1912299993, -766149493, -1487040681, -1736932196, 1965025922, -1773530891, 81682775, 61617762, -659363597, 1032054138, 1677187036, -124413405, -1479731692, 937466893, 1592101318, 837622785, -550272418, 431448112, -1277465340, -1174658571, -1212618533, -2119153257, -880136597, -414258923, -42730209, 2044511498, 1760604872, -917474535, -751295368, -59562097, -1868819144, 1786333211, 2068057700, 1712181191, 1706604214, -117305187, -1789075390, -1301251688, -1502858508, 379014096, -2101090228, 1541187596, -266776977, -1013209581, 1692404677, -1305982600, -1263783491, -681921607, 55796846, -61343264, 220104233, 73798671, 348700990, -676296807, 1883785089, -1821163364, 575405649, 273260080, -250912979, 1471188138, -222599136, -882525302, -2127209341, -1175709435, -99639823, -646851764, -531374502, -330317822, 1109043089, -1764670340, 1013809629, -2094973502, 792080961, -37681816, 391801504, 1881544887, 509880557, -1427691066, 194295800, 440340071, 1390680995, 936519452, 1879735174, 1774651504, -495769022, -1258456222, 1358955797, -797057589, 546530929, 1579653605, -2052417627, -1048091564, 2106777811, 706691693, -199697465, -1349806455, 1691997560, 1089250978, 142582571, 1955385746, -1836405866, 43844011, -2024353417, 1020620672, -1040860040, 1413318167, -870613415, 1823359449, -670165578, -1174616576, 642360543, 61059156, -1775523163, 456653165, -596577275, 1077379040, -180705007, 1235994360, -1083337585, -2009496085, -12655319, -833195344, -1895368679, 752995295, 889018, 2131990336, 2059666796, -1704270096, 1435414944, -975712944, 384120338, -107771884, -688190600, -1074469590, 1399486764, -1705342893, -2136837990, -952789343, -1693192318, -1967590080, -904810938, 170511149, -945171237, 642900422, 909019164, 1927997018, 818489998, -582484185, 1800632017, -1104039837, -1204291752, -723172798, -1948508641, -1240611046, 1671245936, -859760364, -382816771, -1909933814, 749051864, 316011648, 1130210064, 1367158494, 660626422, -2134955438, 155228768, -1123236092, -1204640669, -127634559, -543544241, 1051035533, 678180865, -1628927308, -1261698362, -1267594666, -1484621742, -301682937, -520511824, -132266132, 1888087560, 1716719374, 193822891, -653712980, -185924905, 1151754265, 2115741948, 1923029418, 1070072978, -1448270407, 483893956, 1889061588, 1045939573, 2047044995, -847016335, -518449450, -908497473, 901645075, -1172250762, 1582113599, -1661250940, -1113169837, -1677541058, 887393635, 1104668096, -1844519427, 1366120285, 1954445443, 1279857583, 1872423005, 451693832, -1453925845, 1065591131, 835664987, 1631479751, 491890907, -2098110347, -1107660616, 677056872, -1875390231, 307907688, 457592728, -487453385, 634655653, -1109793621, 986104896, 857001067, 47985853, 136271958, -1000120033, -71559710, -1988814365, 38557432, 1069859346, -1563167472, 300335276, 95394470, 1665093347, 1604527157, 905916091, 1238728535, 977871378, 1023567310, -1947090914, 305806191, 966858712, 355172685, -495814665, 1603177881, -2060891800, 892262155, 2040739678, -1640434727, 1926723703, -1281769603, 1029897862, -204816416, 1262628606, 2009541030, -68314082, 1623301282, 58300222, -923325236, -373526791, -1872537306, 155668484, 1155629422, 1333730800, -1626665828, -1696546514, -800975500, -83006969, 1696327604, -1446267795, 1612591016, 1453424334, -1824569556, 510473803, 57923172, -457415415, -1730618453, -491322513, -236163699, 822901650, 1895103181, 1458046496, 1615249343, 432544382, -375231106, 1872275463, -1245976887, 393004159, 921325451, 1888746552, 1776666459, -319452536, -357706634, 9110899, 937759742, -425622090, 383452553, -1363174234, -1930425533, -1685222546, 484887853, 966310838, -1252891329, -2064482366, -1114905733, 1005203582, -1904597962, -821302760, 1941139475, -355075049, -1506526059, -1849642995, 778401069, 1338892889, 435636261, 1281497750, -1796450323, -1113592414, 474593405, -1636595352, 926423546, -52368683, 1429486777, -105940838, 1212356688, -273407579, -460829080, -2052801401, -1174183083, -685781741, 1557010890, -577693703, 395379754, 1494358069, -886295238, 1405915267, 735757124, 1311941432, -1362174999, 1030432045, 382223418, -438774617, 2021367756, -1695495338, -1321104673, 88046316, -732313897, -1974610474, 662781331, -510492137, 466012011, -115856798, 832059606, -1426341410, 244422668, 1582819636, -782350307, -308271132, -2123446698, 260336363, -1804265495, -724647363, 1713539377, 1723381935, -171985644, 1085763121, 1073562179, 653583000, 486681965, 672608064, 1075454630, -1196173232, 981607815, -643534234, 1603725018, 1131653110, -2135263282, -1394228832, -2047418883, -1169668283, 79769818, -1547588690, 1045606457, 2020559605, -400524025, 2109662233, -2112251779, 2036150369, 1104698180, 668458871, 2067793262, -467460759, -2125977301, 674590701, -855452256, 110508697, 169630802, 1213736436, 1629856512, -678425718, -1387397920, -93292192, 184930709, 724658568, 1577497954, -1272840546, -1589422745, 1451754612, 454396895, 703474749, -983866434, -1685025300, -607283159, 793212079, 765494159, 1234039464, 1391020918, 940947535, 1556001075, -1706015194, 1352801582, -1920904282, -1447982758, 1905017993, 1339404549, 963268073, -285364418, -636580162, 1980680780, 1044736966, 928899611, 1805911264, -992370556, -1401869729, 203912669, 1313006301, 19949876, -1766791530, 1571889947, -644447399, -1790563588, 1570550923, 1128424004, -2050364206, 1724067305, -1715950750, 1707132439, 294358276, -655909623, 1842260297, -508294824, 470206094, 1547578690, -615394376, -779041856, -1909050156, 2110905695, -247244806, -1144718796, -943994329, 729228139, 1065627629, -2147418566, -1231410141, 988420930, -990384379, 2011844776, -1862471080, 1669892708, -1030169706, -1475511395, 2062789420, 260558092, 685627474, -1581312075, -1042429184, 1324613761, 735502863, 350974071, -1299977840, -37290325, 1701651917, -1126728686, 935129503, -600113432, -2004880649, -204662199, 474228434, 107343904, 1130892777, -1428697430, -716233252, 1399316502, -1862326606, 324430341, 1656832731, -1371012095, 1692497946, -75933924, -137631231, 1212233306, -1501834522, -1408467305, -1985878410, 2130181623, -1629972134, 677836346, -69356675, -1239322023, -347967746, -1471549607, -1181140011, 79925569, 1258004645, 1377540234, 288861025, 397203848, 347441322, -377362788, 1976055562, -968212688, 694383484, -835946296, -705495324, -1713386315, -105330595, 937167910, -472945009, -1835432535, -765822362, -1163316638, 1964359647, 1060068991, -1933048370, 1618165679, -166493249, 1278238118, -394232469, -713317382, 1306875218, -457819687, -450073481, -2050940061, -168420518, 142870965, 870158487, 166830568, 2078702557, -1599612789, 922857497, -855607709, 570779141, -186633097, -1900670851, -2116388682, -240331192, -561772111, 503140662, 1653620547, -765183800, -222535902, 355577521, -1964884062, 987500027, -221984710, 1797910934, 1185007246, -605244018, 1189126144, 1495764557, 1276443423, 1677493126, -1660919446, -1173833533, 1924882750, -1194359896, 133411054, 1939959917, 447975252, -117076197, 347728728, 1842006156, -1344664764, 1404147787, 843861470, -1377308493, 952402587, -2051059441, -900068495, 1536475526, -465841658, 814386957, 1746920277, 606720451, -351629309, -2057432483, -83227405, 1392400262, -1222832421, 348492396, 1852345581, 873486792, 525011407, 955856162, -1821685901, -364906968, 670200209, 1046926407, 1746691028, -1043153170, 1326320629, 1858057506, -1570450088, 1874883916, 501865192, -1338534301, -1433395892, 1587192806, -431849824, -569624510, -897476003, -1493901933, 62654229, 389726951, -954271447, 592159845, 946858159, 1589292812, -1248290285, 46415078, 991496256, 1407980768, 259129430, -1560284764, -94367180, -329153234, -1950769572, 1675725552, -1841721082, -1072967490, 1795199824, -1328808223, 1231714037, 407921147, -745001487, -36856417, -312537353, -537326379, -844871511, -728023587, -2067035922, 1198946536, -269561122, -378327641, 88904985, 1289521629, 5905286, 859302749, -1598962996, -611161584, -1567313663, 412019454, 1929549411, 1260788595, -1232410078, 1573907370, 636127860, 827175601, -1690342258, -782917279, 1078423619, -1356947306, 460670025, -175589616, -1000807558, 790998445, 489382029, -1777701682, -607730407, 1737526314, 479365598, 1341412962, 966783402, -79420406, 874784090, 1618411016, -1630427463, 1154022776, -1223599787, 1366912884, 1353403267, 1353280882, -962107611, 1702358807, 168399085, 1483958444, 2009026105, -2097127008, -369156937, -699785036, 270273648, 688859077, 2105553905, -1726886058, 771493799, 7828034, 1341790381, -855485375, -1286099820, -2018618847, 2014711541, 1242794218, -1953517870, 1040189756, -1787609857, 1669361328, -1561569732, 2108382976, 1495390879, 130849600, 209606013, -908657293, 1616733180, 25790266, -1845975577, -502195593, 917160838, 1020240660, 187909252, 558494031, 1297786663, -432449986, 2104765546, -29503390, -1715505992, 879512711, 1453138515, 1733017407, 208245174, -2027964994, 590488940, -402521887, -642518475, -195798116, -116024979, 1266284083, 1914053396, 945664481, -384533015, -936303402, 1582318449, -2052504388, 539903718, -1197119968, -69688993, -937154193, -869717328, -1009352088, 1211755990, 1542739250, 1052571882, -231752576, -1316209686, -499777960, 1823198949, 310382978, -568180928, 382430128, -1816052428, -1613745969, -517505603, 1112528429, 824554111, -397316012, -1534891905, -249282359, 972898199, -409911025, -316633072, -157848923, -937031477, 1053878225, 888563672, -812105868, -983828359, 504987205, 1227312340, 896821786, 88901351, 866156592, -1049902203, 85650831, 1014934355, -980326150, -870375126, -1804277751, 866142792, -1466620564, -1362029520, -1813715878, -301222606, -1950851654, -1316831255, -1071686250, 2087522101, 215866308, -638754948, -426419976, 983083833, -1208315496, -6577124, 785660421, -283068599, -1154677701, -394378628, -1144245006, -313931491, 43654825, -1959304318, -1423899838, 199434229, 622178585, 2145381434, 1153351347, 645967783, 507322500, 2093273357, -64551334, 1877100795, 403638888, 1506404402, 1166594572, 758412086, 1433592008, 235073379, 1693947904, 1737280244, -993017224, -152389420, 1547479218, -1261635014, 2114065302, 850113376, 772269321, -1204511285, -705455525, 510411269, 1911763643, 1184607162, 739386387, 29660818, -300002576, -405524672, -820185495, 1890255774, -1084293339, -2025099825, 2139197672, 8321468, -765759405, -1494234777, 570720958, 313140204, -1130122160, 31585319, 503011522, -489531565, -1220512396, -976402138, -483858505, -552711634, -898361218, -80978301, -325224750, -247839228, 2127910073, 1266427066, -871330183, -1733736165, 1622714970, -1850661063, -465408179, 105007916, -1303356628 }; !EOF! ls -l randints.c echo x - randints.h sed 's/^X//' > randints.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ extern int randints[10000]; !EOF! ls -l randints.h echo x - timen.c sed 's/^X//' > timen.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include #include #include struct tms sv_time0, sv_time1; void time0() { (void) times(&sv_time0); } extern int printing; void time1(char *place) { (void) times(&sv_time1); if (printing & 2) cout << place << " at: usr=" << sv_time1.tms_utime - sv_time0.tms_utime << ",\tsys=" << sv_time1.tms_stime - sv_time0.tms_stime << "\ttot=" << sv_time1.tms_stime - sv_time0.tms_stime + sv_time1.tms_utime - sv_time0.tms_utime << "\n"; } !EOF! ls -l timen.c echo x - timen.h sed 's/^X//' > timen.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ void time0(); void time1(char*); !EOF! ls -l timen.h # The following exit is to ensure that extra garbage # after the end of the shar file will be ignored. exit 0