1/*
2 * diehard_operm5 test header.
3 */
4
5/*
6 * function prototype
7 */
8int diehard_operm5(Test **test, int irun);
9
10static Dtest diehard_operm5_dtest = {
11  "Diehard OPERM5 Test",
12  "diehard_operm5",
13"\n\
14#==================================================================\n\
15#          Diehard Overlapping 5-Permutations Test.\n\
16# This is the OPERM5 test.  It looks at a sequence of one mill- \n\
17# ion 32-bit random integers.  Each set of five consecutive     \n\
18# integers can be in one of 120 states, for the 5! possible or- \n\
19# derings of five numbers.  Thus the 5th, 6th, 7th,...numbers   \n\
20# each provide a state. As many thousands of state transitions  \n\
21# are observed,  cumulative counts are made of the number of    \n\
22# occurences of each state.  Then the quadratic form in the     \n\
23# weak inverse of the 120x120 covariance matrix yields a test   \n\
24# equivalent to the likelihood ratio test that the 120 cell     \n\
25# counts came from the specified (asymptotically) normal dis-   \n\
26# tribution with the specified 120x120 covariance matrix (with  \n\
27# rank 99).  This version uses 1,000,000 integers, twice.       \n\
28#\n\
29# Note that Dieharder runs the test 100 times, not twice, by\n\
30# default.\n\
31#\n\
32# WARNING! This test currently fails ALL RNGs including ones that\n\
33# are strongly believed to be \"good\" ones (that pass the other \n\
34# dieharder tests).  DO NOT USE THIS TEST TO ASSESS RNGs!  It very\n\
35# likely contains either implementation bugs or incorrect data used\n\
36# to compute the test statistic.  rgb\n\
37#==================================================================\n",
38  100,
39  1000000,
40  1,
41  diehard_operm5,
42  0
43};
44
45static int r[60][60] = {
46{  5817257,  -6873271,  -5128747,  -5402629,    777663,    980677,
47   2407731,   2347927,   2954082,   2749952,   2512448,   3103860,
48   2631372,   1019585,   5833700,  -1609797,   -136098,     14746,
49   4199803,  15820046,  15661640,   5888319,  -3837421,  -1317810,
50   -375269,   -496546,    149397,     21483,   -341148,    314595,
51   2772502,    843578,   8843654,  -1211426,   2341534,   3013752,
52   1250340,   -699051,   -654566,    961558,  -2338987,  -2621631,
53   2873613,   1261792,   8000951,  -1746067,      6638,    -47636,
54  -5088578,  -5013620,  -3253847,  -3180615,   2711412,   3844202,
55    880534,  -1042552,   6946781,  -3015244,    406795,   1147260 },
56{ -6873271,   5940872,  -5186478,  -5307926,    773214,    938192,
57   2462991,   2185748,   2756969,   2860993,   2501911,   3080424,
58   2695718,   1101077,   7899915,  -3833937,   -175045,    -54950,
59   6072206,  13434946,  15661640,   5768163,  -3875391,  -1169953,
60   -292941,   -536013,    124632,     45505,   -337415,    265604,
61   2721922,    823928,   8523149,  -1017852,   2281795,   2999166,
62   1218871,   -700064,   -634661,    957048,  -2629675,  -2235002,
63   2733295,   1136430,   7885100,  -1626583,    -58766,    124832,
64  -4795309,  -5249849,  -3154841,  -3094350,   2642865,   3795316,
65    872576,  -1015702,   6779035,  -2926770,    386412,   1127795 },
66{ -5128747,  -5186478,  12208259,   1266547,  -1384963,  -1449671,
67  -3169754,  -1595651,  -1946939,  -1940155,  -3378061,  -3782485,
68  -1922633,  -1103400,  -4529238,   1922627,     67943,   -594084,
69  -4436559, -10716612, -12948181,  -3099354,   3086687,    741196,
70    127286,    909813,    551771,    418521,   -174949,   -545067,
71  -1869313,   -876135,  -7345496,    178672,  -2378999,  -2769171,
72  -1090475,    331067,    236296,   -551403,   2892697,   2810799,
73  -2367546,  -1617469,  -4838379,   1451362,   -568191,    978772,
74    574172,   2759542,    386836,   3123220,  -1235398,  -2188412,
75   -119033,    987303,  -5601207,   1946655,   -583034,  -1102184 },
76{ -5402629,  -5307926,   1266547,  12576469,  -1912105,  -1491496,
77  -1977361,  -3787433,  -3866431,  -3931068,  -2169174,  -2042830,
78  -2367628,  -1217010,  -5574861,   2386416,   -567819,    399012,
79  -5292193, -13303845, -13360923,  -5639180,   3651213,   1466137,
80    880935,   -148585,   -363477,   -353888,    618037,    631948,
81  -2599440,  -1019748,  -8865897,    687501,  -2968293,  -3124000,
82  -1089813,    119334,    419444,   -786927,   3367082,   3316348,
83  -2961598,  -1738843,  -6050705,   1707414,    789397,   -308316,
84   1178460,   3734616,   3617835,   1360963,  -2307922,  -2689133,
85   -407480,   1067944,  -6848988,   2699162,   -925197,  -1068995 },
86{   777663,    773214,  -1384963,  -1912105,  11788007,   1145706,
87   1193936,    968826,   3495027,   3575638,   1116536,   3617330,
88   3145167,    110228,   7883910,  -2325769,    103020,   -580856,
89   7068780,  17106824,  17369039,   5744570,  -6152687,   -983990,
90   -364426,   -482051,    205432,    171091,   -512242,    192023,
91   3244057,   1864653,  11153794,   -125218,   2622003,   3388711,
92   1601939,   -856517,   -817212,    825017,  -3038222,  -2961270,
93   3416768,   2474327,   8116870,  -1917663,    572557,   -258900,
94  -3200854,  -5353978,  -3054952,  -4014445,    410478,   3983005,
95   1088413,  -1375640,   8044077,  -3289536,    441887,   1325474 },
96{   980677,    938192,  -1449671,  -1491496,   1145706,  12630118,
97   3156565,   3488013,   1910767,   1992878,   2735849,   1745194,
98   2635085,   1072076,   9179053,  -2371600,   -331321,   -726418,
99   7681229,  19285416,  19432752,   6482845,  -4523253,  -3272693,
100   -597204,   -336131,    -60141,    313513,   -626813,    170991,
101   4236377,   1050429,  11461421,  -1234081,   3788310,   4585317,
102   1236864,   -894703,  -1197329,   1736061,  -3427987,  -3398261,
103   5012230,   1426003,   9463295,  -1841304,    154862,   -198796,
104  -3804025,  -5955104,  -4195634,  -4485277,   2898985,   1978361,
105   1142239,   -988737,   9409193,  -3205744,    894517,   1606478 },
106{  2407731,   2462991,  -3169754,  -1977361,   1193936,   3156565,
107   7707161,  -3210627,  -1751105,  -1898045,  -4862023,  -3470391,
108  -2214791,   -164614,  -5625407,   1704720,   -162789,   1058901,
109  -4040265, -11094051, -11240782,  -4277352,   3075254,   1065447,
110    234919,   -912108,    650889,    150505,     89522,   -509848,
111  -1766909,    277069,  -7775749,   1180521,  -1906123,  -2596068,
112   -578000,    357487,    367605,   -646039,   2484350,   2560723,
113  -2311007,   -195134,  -5880504,   1481832,   -645252,    765355,
114   2637470,   2458334,    907216,   2880116,  -2988096,  -1995274,
115   -783123,    393286,  -5564831,   1655303,   -297358,  -1033184 },
116{  2347927,   2185748,  -1595651,  -3787433,    968826,   3488013,
117  -3210627,   7473799,  -3528010,  -3376497,  -3304459,  -1503292,
118  -2411204,     89031,  -5943125,   1917870,   1311823,   -122953,
119  -4332928, -11706073, -11653524,  -3963993,   3185910,   1308114,
120  -1090325,    -48253,   -510843,   -290876,   1024800,    623728,
121  -1974078,    169173,  -6030119,   -477907,  -2291701,  -2499215,
122   -533396,    449148,    352872,   -885457,   2684378,   2523291,
123  -2661828,   -154622,  -6156614,   1638839,    973738,   -705099,
124   2787313,   2932584,   3357426,   1068284,  -3746916,  -2087932,
125   -673963,    -44993,  -5854907,   2108010,   -584389,   -737864 },
126{  2954082,   2756969,  -1946939,  -3866431,   3495027,   1910767,
127  -1751105,  -3528010,   7674168,  -5061376,  -1170678,  -3391201,
128  -1173129,   -624707,  -4576847,   1695880,    476307,   -158287,
129  -3332444,  -9534973,  -9589812,  -3359207,   2586819,    946168,
130    852391,   -121459,   -417820,   -187145,   -994183,    727155,
131  -1116115,   -339665,  -5873899,    366444,   -529818,  -3127321,
132   -861888,    762433,    675088,   -804551,   2122875,   2007541,
133  -1390150,   -899468,  -4708544,   1257097,    336976,   -271853,
134   2382850,   2263714,   2150539,    755793,   -943518,  -3487005,
135   -942169,    853872,  -5023503,   1542516,   -396522,   -857101 },
136{  2749952,   2860993,  -1940155,  -3931068,   3575638,   1992878,
137  -1898045,  -3376497,  -5061376,   7676071,  -1157770,  -3401474,
138  -1256009,   -647207,  -4486485,   1690858,    608305,   -257057,
139  -3350870,  -9555891,  -9589812,  -3250732,   2572294,    948690,
140    646779,     76395,   -432195,   -170690,   1147802,  -1408811,
141  -1083128,   -383340,  -5876692,    381082,  -2650521,   -978117,
142   -962546,    746717,    749606,   -760829,   2024721,   2095214,
143  -1355683,   -815464,  -5012953,   1493020,    421631,   -389564,
144   2325617,   2413194,   2271141,    678383,  -1024047,  -3555556,
145   -851184,    779183,  -4684921,   1214615,   -415255,   -854396 },
146{  2512448,   2501911,  -3378061,  -2169174,   1116536,   2735849,
147  -4862023,  -3304459,  -1170678,  -1157770,   8064414,  -3701394,
148  -2310077,    287117,  -5317816,   1555682,    130010,    978906,
149  -4169702, -11195194, -11240782,  -4157808,   3204649,   1299856,
150    130348,   1033123,  -1142203,    701920,    -27570,   -660547,
151  -1635451,  -1672910,  -5915594,   1031074,  -1979946,  -2368771,
152   -664404,    614133,    645425,  -1082134,   2441715,   2443669,
153  -2964969,   -100626,  -5598599,   1199646,   -218183,    621491,
154   2897493,   2894383,   1396294,   3009586,  -3031303,  -2134450,
155   -403409,    839727,  -5502336,   1239352,  -1319653,  -1327582 },
156{  3103860,   3080424,  -3782485,  -2042830,   3617330,   1745194,
157  -3470391,  -1503292,  -3391201,  -3401474,  -3701394,   7209204,
158   -664777,   -850019,  -3914508,   1380687,   -396598,    882119,
159  -3458436,  -9122862,  -9177070,  -3454519,   2713532,   1139070,
160     -9605,   1098575,    766756,  -1302001,   -282375,   -582102,
161  -2863014,   -392040,  -5742588,     66937,   -664050,  -1225271,
162  -1034744,    544433,    606184,   -476333,   2033048,   2032012,
163  -1039768,  -1543121,  -4192878,   1227365,   -664222,    753326,
164   2349673,   2331917,    192786,   2496085,   -814587,  -3847450,
165   -315744,   1314137,  -4125681,   1287673,   -515796,  -1501943 },
166{  2631372,   2695718,  -1922633,  -2367628,   3145167,   2635085,
167  -2214791,  -2411204,  -1173129,  -1256009,  -2310077,   -664777,
168   9788325,    207618,    816655,   -768078,  -1874570,  -1613116,
169    235288,   1694932,   1621948,    377883,   -507902,   -243766,
170    773939,    679052,    391398,     78143,     70943,    516176,
171  -2961954,    104444,    936801,    186178,   -971859,  -1257559,
172    238423,    462669,    670075,    314213,   -672481,   -566615,
173  -1309880,  -1073728,   1594210,    361560,    472243,    414552,
174   -597724,   -260047,   -772016,   -887315,    216603,   1073384,
175  -1323896,   -231085,    509060,   -359227,    499417,    197952 },
176{  1019585,   1101077,  -1103400,  -1217010,    110228,   1072076,
177   -164614,     89031,   -624707,   -647207,    287117,   -850019,
178    207618,   9689335,    704290,  -2495107,   -343154,   -545326,
179   1594815,   4764261,   4694945,   1741823,   -997869,   -298676,
180   -333203,   -157564,    218154,    283497,    127218,   -147690,
181    764431,  -2838739,   1284848,  -1411175,    796176,   1142228,
182    598938,   -102712,     48775,   1098536,  -1137672,  -1030484,
183   -190599,  -1133802,   2347281,   -484327,    960682,    908055,
184  -1281146,   -997818,  -1308632,  -1286716,   1401975,    747166,
185    -70699,  -1684165,   2374406,   -334264,   -130586,    172260 },
186{  5833700,   7899915,  -4529238,  -5574861,   7883910,   9179053,
187  -5625407,  -5943125,  -4576847,  -4486485,  -5317816,  -3914508,
188    816655,    704290,  12856576,  -3650442,   -153223,   -509349,
189   2984690,   6258554,   6402344,    758796,  -1671327,   -526914,
190       472,   -173308,    381688,   -160284,     71948,    598991,
191   1047898,  -1081349,   5230227,    283473,    949081,   1517248,
192   1102581,   -184126,   -184437,   1235250,  -2015041,  -1859118,
193   2256388,    834088,   2086134,   -801538,   -649920,   1155134,
194   -692225,  -1974792,  -1934348,  -2169637,    884616,   1606568,
195     60140,  -2105033,   4180691,   -919229,    -60329,    382106 },
196{ -1609797,  -3833937,   1922627,   2386416,  -2325769,  -2371600,
197   1704720,   1917870,   1695880,   1690858,   1555682,   1380687,
198   -768078,  -2495107,  -3650442,  16061715,    284740,    738712,
199 -15990290, -39765302, -39992484, -13609368,   9753282,   2972046,
200    156313,    398252,   -793746,    -90924,    240150,   -692225,
201  -6722501,  -3772274, -23064086,   2458558,  -6920292,  -7778422,
202  -2161491,   1501233,   1325224,  -2446757,   7918006,   7606452,
203  -6908594,  -2985205, -19436137,   4164401,    147843,  -1345055,
204   8477804,   9636350,   9222882,   9766063,  -6790882,  -8657391,
205  -2361496,    460093, -18777173,   6979470,  -2385573,  -3107404 },
206{  -136098,   -175045,     67943,   -567819,    103020,   -331321,
207   -162789,   1311823,    476307,    608305,    130010,   -396598,
208  -1874570,   -343154,   -153223,    284740,   8943975,  -1726046,
209  -4422865, -11965780, -11979204,  -4298851,   3162346,   1105638,
210  -1701684,    969212,   -119091,     -9373,  -1028843,  -1922549,
211  -3197247,   -773590,  -6887291,    370210,   -890213,  -1733307,
212   -744361,    921020,    773952,   -860450,   2177367,   2171512,
213  -1578001,     82087,  -6649715,   2701955,  -2078191,   -154198,
214   2614010,   2515825,   2606238,   3755822,  -2042299,  -3216470,
215  -2271286,    202674,  -5822175,   1364777,     91778,   -759997 },
216{    14746,    -54950,   -594084,    399012,   -580856,   -726418,
217   1058901,   -122953,   -158287,   -257057,    978906,    882119,
218  -1613116,   -545326,   -509349,    738712,  -1726046,   9279076,
219  -4122768, -12397404, -12391946,  -4508748,   3316732,   1261182,
220    601366,  -1733920,  -1652447,  -1685738,    458865,    205135,
221  -3458419,   -842673,  -6972261,    527616,  -1230943,  -1544141,
222   -784368,    985452,    885839,  -1107901,   2315732,   2157857,
223  -1772253,     29449,  -5009984,    946688,   -309783,  -1779855,
224   2773685,   2303574,   3556282,   2884208,  -2088659,  -2834284,
225  -2541311,    179041,  -5926123,   1727548,   -243610,   -508396 },
226{  4199803,   6072206,  -4436559,  -5292193,   7068780,   7681229,
227  -4040265,  -4332928,  -3332444,  -3350870,  -4169702,  -3458436,
228    235288,   1594815,   2984690, -15990290,  -4422865,  -4122768,
229   -169515, -28616431, -28456656,  -8272206,   5944023,   1391497,
230    485357,    302324,   -110825,   -524670,   -196731,   -977499,
231  -4449426,  -1278290, -17503766,   1839778,  -4409581,  -5168434,
232  -1911570,   1277831,   1087315,  -2245147,   5878400,   5664632,
233  -5254766,  -2052598, -12525819,   2249452,   -760678,   -200644,
234   5096033,   7585065,   6981948,   5551021,  -4598968,  -6184469,
235  -1312378,   1910194, -14358844,   4952535,  -1312334,  -2111121 },
236{ 15820046,  13434946, -10716612, -13303845,  17106824,  19285416,
237 -11094051, -11706073,  -9534973,  -9555891, -11195194,  -9122862,
238   1694932,   4764261,   6258554, -39765302, -11965780, -12397404,
239 -28616431,  30614535,  17938173,   6069703,  -5141440,  -2452230,
240   -103399,   -496191,    122684,    393306,     -3324,    566726,
241   3441613,   1599877,  10965699,   -524256,   3387788,   3919040,
242   1422213,   -446145,   -526119,   1510412,  -3928170,  -3932323,
243   3871650,   1934802,   8916034,  -2690702,    481386,    192736,
244  -4163786,  -3890368,  -6141496,  -4425174,   3039163,   4071256,
245   1008284,   -859215,   8542837,  -2865634,   1060847,   1616493 },
246{ 15661640,  15661640, -12948181, -13360923,  17369039,  19432752,
247 -11240782, -11653524,  -9589812,  -9589812, -11240782,  -9177070,
248   1621948,   4694945,   6402344, -39992484, -11979204, -12391946,
249 -28456656,  17938173,  17938173,    996719,  -2434152,    932374,
250    -96427,   -220179,    -58991,    238588,    118573,    324122,
251   1231670,    777902,   3346342,   -205884,   1209513,   1379528,
252    452829,   -128851,     99329,    589815,  -1361698,  -1180023,
253   1389694,    949257,   2644065,  -1080600,    338992,   -127446,
254  -1231583,  -2950726,   -956807,  -1519733,    628094,   1443407,
255    427124,    -92232,   2537576,   -990861,    413479,    652123 },
256{  5888319,   5768163,  -3099354,  -5639180,   5744570,   6482845,
257  -4277352,  -3963993,  -3359207,  -3250732,  -4157808,  -3454519,
258    377883,   1741823,    758796, -13609368,  -4298851,  -4508748,
259  -8272206,   6069703,    996719,   -471422,   6195991,   1113967,
260    149453,    586130,   -240462,   -399150,   -155398,   -961888,
261  -4449688,  -1287357, -15294819,   -325756,  -4396733,  -5152212,
262  -2127711,   1175047,   1191243,  -2026174,   5763885,   5756828,
263  -5394757,  -2209287, -15074258,   4780945,   -306775,   -304869,
264   6116930,   5044574,   5755905,   5855058,  -3347241,  -5023645,
265  -1292896,   1911983, -12155731,   2753977,  -1306931,  -2119034 },
266{ -3837421,  -3875391,   3086687,   3651213,  -6152687,  -4523253,
267   3075254,   3185910,   2586819,   2572294,   3204649,   2713532,
268   -507902,   -997869,  -1671327,   9753282,   3162346,   3316732,
269   5944023,  -5141440,  -2434152,   6195991,  30596457,   5128965,
270    754357,    967489,   -977486,  -1008316,    643303,  -1400440,
271 -12958386,  -4650101, -44458241,   1661554, -12902311, -14956077,
272  -5499032,   2838837,   2653009,  -5547818,  15749833,  15441678,
273 -14780057,  -6668242, -36591537,   9732117,  -1394283,   -684778,
274  17053686,  16846975,  16925457,  17740069, -10816408, -17150081,
275  -3704620,   4622406, -35229968,  10987703,  -3590848,  -5669752 },
276{ -1317810,  -1169953,    741196,   1466137,   -983990,  -3272693,
277   1065447,   1308114,    946168,    948690,   1299856,   1139070,
278   -243766,   -298676,   -526914,   2972046,   1105638,   1261182,
279   1391497,  -2452230,    932374,   1113967,   5128965,  17938173,
280    654583,   1067326,   -996386,   -996386,    654583,  -1409128,
281 -13004611,  -4694945, -44687429,   1707399, -12946569, -15010281,
282  -5549450,   2760215,   2760215,  -5549450,  15661640,  15661640,
283 -14868401,  -6558735, -36722790,   9672038,  -1267248,   -854505,
284  17073993,  17073993,  17227159,  17639902, -13090061, -15153773,
285  -3685660,   4624005, -35368479,  11026349,  -3627619,  -5691331 },
286{  -375269,   -292941,    127286,    880935,   -364426,   -597204,
287    234919,  -1090325,    852391,    646779,    130348,     -9605,
288    773939,   -333203,       472,    156313,  -1701684,    601366,
289    485357,   -103399,    -96427,    149453,    754357,    654583,
290   9631898,  -1482633,     54818,    -22922,  -3162578,  -1646591,
291  -1985126,  -1181733,  -7097260,    453277,  -3345419,  -1996393,
292   -812280,    784881,    857171,   -502614,   2435906,   2422919,
293  -1673523,  -1532476,  -5928779,   1352122,  -1765015,    288456,
294   2407858,   2242905,   2337000,   3499857,  -1642341,  -2653975,
295   -104749,   1590181,  -6486955,   2704544,  -2191444,   -860476 },
296{  -496546,   -536013,    909813,   -148585,   -482051,   -336131,
297   -912108,    -48253,   -121459,     76395,   1033123,   1098575,
298    679052,   -157564,   -173308,    398252,    969212,  -1733920,
299    302324,   -496191,   -220179,    586130,    967489,   1067326,
300  -1482633,   9131652,  -1750631,  -1402232,  -1529487,    433940,
301  -1873892,  -1577241,  -7430724,    775874,  -3809289,  -1785056,
302   -851404,    930039,    885092,   -756411,   2516119,   2516287,
303  -1981708,  -1520743,  -6312272,   1579176,    443212,  -1765501,
304   2589914,   2723308,   3868037,   2631217,  -2338451,  -2857429,
305   -336626,   1456269,  -4733684,   1188362,  -2559537,   -533359 },
306{   149397,    124632,    551771,   -363477,    205432,    -60141,
307    650889,   -510843,   -417820,   -432195,  -1142203,    766756,
308    391398,    218154,    381688,   -793746,   -119091,  -1652447,
309   -110825,    122684,    -58991,   -240462,   -977486,   -996386,
310     54818,  -1750631,   9635236,  -3480355,    234715,  -1713339,
311  -1786009,   -942300,  -6582053,    567358,  -1268897,  -3199024,
312     94337,    278625,    223866,     -1227,   1998075,   1954983,
313  -1882173,   -989347,  -4837419,   1501913,   -378133,  -1579650,
314   2169282,   1939921,   2835185,   2284326,  -1471866,  -2331364,
315    603310,    774412,  -4564306,   1649815,    546095,  -3560514 },
316{    21483,     45505,    418521,   -353888,    171091,    313513,
317    150505,   -290876,   -187145,   -170690,    701920,  -1302001,
318     78143,    283497,   -160284,    -90924,     -9373,  -1685738,
319   -524670,    393306,    238588,   -399150,  -1008316,   -996386,
320    -22922,  -1402232,  -3480355,   9133055,    576931,  -1838090,
321  -1575644,   -546667,  -5974924,    102294,  -1609096,  -3954897,
322    245672,     84620,    174242,     69164,   2035174,   2040868,
323  -2039600,   -666835,  -5288842,   1679362,    -63614,  -1983947,
324   2125508,   2331261,   3175056,   2199594,  -1918560,  -2327297,
325    474751,    231166,  -5196035,   1875155,   -931648,  -1133053 },
326{  -341148,   -337415,   -174949,    618037,   -512242,   -626813,
327     89522,   1024800,   -994183,   1147802,    -27570,   -282375,
328     70943,    127218,     71948,    240150,  -1028843,    458865,
329   -196731,     -3324,    118573,   -155398,    643303,    654583,
330  -3162578,  -1529487,    234715,    576931,   9773489,  -1862392,
331  -1398658,   -521372,  -7079075,    102521,  -4088987,  -2503670,
332   -646979,    958975,    915398,   -912326,   2433740,   2400479,
333  -2163102,  -1113484,  -6239150,   1369007,  -1551509,    -55720,
334   2828224,   2821130,   3000805,   3768919,  -2097824,  -2821885,
335   -223074,   -602973,  -4947020,   2564102,  -2223357,   -901689 },
336{   314595,    265604,   -545067,    631948,    192023,    170991,
337   -509848,    623728,    727155,  -1408811,   -660547,   -582102,
338    516176,   -147690,    598991,   -692225,  -1922549,    205135,
339   -977499,    566726,    324122,   -961888,  -1400440,  -1409128,
340  -1646591,    433940,  -1713339,  -1838090,  -1862392,   8706420,
341  -1366175,   -519201,  -5818939,    115095,  -1601087,  -4568129,
342    257121,    -40389,   -142522,    367959,   2032813,   1977819,
343  -1731039,  -1039554,  -4723662,   1379294,  -2100472,     68686,
344   2239639,   2209012,   1929147,   3196402,  -1858975,  -2543681,
345   -956770,    713196,  -4624084,   1609316,   1105386,  -1561099 },
346{  2772502,   2721922,  -1869313,  -2599440,   3244057,   4236377,
347  -1766909,  -1974078,  -1116115,  -1083128,  -1635451,  -2863014,
348  -2961954,    764431,   1047898,  -6722501,  -3197247,  -3458419,
349  -4449426,   3441613,   1231670,  -4449688, -12958386, -13004611,
350  -1985126,  -1873892,  -1786009,  -1575644,  -1398658,  -1366175,
351   9977044,    -10005,    738692,   -243966,  -1685611,  -1277420,
352    613866,    998578,  -1141612,    274748,   -398265,   -403453,
353  -1280821,   1087012,   1393099,    592586,    376394,     72343,
354   -801939,   -841500,   -544546,   -895294,   -133277,    916054,
355  -1535713,   -471115,    418431,   -500743,     23010,    169846 },
356{   843578,    823928,   -876135,  -1019748,   1864653,   1050429,
357    277069,    169173,   -339665,   -383340,  -1672910,   -392040,
358    104444,  -2838739,  -1081349,  -3772274,   -773590,   -842673,
359  -1278290,   1599877,    777902,  -1287357,  -4650101,  -4694945,
360  -1181733,  -1577241,   -942300,   -546667,   -521372,   -519201,
361    -10005,  10057852,   1115332,  -1483870,    684017,    102058,
362   1144549,    128732,    125507,   -700360,   -851573,   -849399,
363   1747805,  -1125075,   2181772,   -307616,    882249,    761661,
364  -1217332,  -1182985,  -1419944,  -1535269,   1248311,    347458,
365   -226997,  -1943992,   1859797,   -501906,     59397,   -138990 },
366{  8843654,   8523149,  -7345496,  -8865897,  11153794,  11461421,
367  -7775749,  -6030119,  -5873899,  -5876692,  -5915594,  -5742588,
368    936801,   1284848,   5230227, -23064086,  -6887291,  -6972261,
369 -17503766,  10965699,   3346342, -15294819, -44458241, -44687429,
370  -7097260,  -7430724,  -6582053,  -5974924,  -7079075,  -5818939,
371    738692,   1115332,  19603777,  -3093355,   2705916,   3198213,
372   1279848,    -89116,   -147602,   1323054,  -2640907,  -4821370,
373   3326828,     26654,   9292167,  -2513710,    -56919,   -250815,
374  -4451120,  -3165932,  -3434306,  -3564544,   3493641,   3467468,
375    724596,   -622178,   6745180,  -2739488,    752126,   1361112 },
376{ -1211426,  -1017852,    178672,    687501,   -125218,  -1234081,
377   1180521,   -477907,    366444,    381082,   1031074,     66937,
378    186178,  -1411175,    283473,   2458558,    370210,    527616,
379   1839778,   -524256,   -205884,   -325756,   1661554,   1707399,
380    453277,    775874,    567358,    102294,    102521,    115095,
381   -243966,  -1483870,  -3093355,  10734403,  -5132425,  -6004834,
382  -2452839,   1523012,   1570478,  -2067370,   5007404,   7163899,
383  -6403237,  -4721012, -15151743,   5283223,   -625742,   -179878,
384   7573329,   6289278,   6598196,   7073180,  -3058860,  -5889436,
385  -1742525,   2385418, -14706099,   3413449,  -1547209,  -2557578 },
386{  2341534,   2281795,  -2378999,  -2968293,   2622003,   3788310,
387  -1906123,  -2291701,   -529818,  -2650521,  -1979946,   -664050,
388   -971859,    796176,    949081,  -6920292,   -890213,  -1230943,
389  -4409581,   3387788,   1209513,  -4396733, -12902311, -12946569,
390  -3345419,  -3809289,  -1268897,  -1609096,  -4088987,  -1601087,
391  -1685611,    684017,   2705916,  -5132425,   9429030,  -1579437,
392    323947,  -1105324,   1021651,    613824,   -400720,   -407706,
393  -1344265,   -157865,    297588,   -536963,    876120,    576127,
394   -238217,   -239680,   -462730,   -697919,    368196,   1243333,
395    216098,    769755,   1283325,    568448,  -1851094,   -247410 },
396{  3013752,   2999166,  -2769171,  -3124000,   3388711,   4585317,
397  -2596068,  -2499215,  -3127321,   -978117,  -2368771,  -1225271,
398  -1257559,   1142228,   1517248,  -7778422,  -1733307,  -1544141,
399  -5168434,   3919040,   1379528,  -5152212, -14956077, -15010281,
400  -1996393,  -1785056,  -3199024,  -3954897,  -2503670,  -4568129,
401  -1277420,    102058,   3198213,  -6004834,  -1579437,   9563652,
402   -146178,   -106418,    -81968,   1318504,   -838181,   -809205,
403  -1197217,    321988,   1677085,   -495026,    393228,    642730,
404   -913139,   -910948,  -1384543,  -1249486,    527322,   1555940,
405   1777437,   -318896,   1831454,   -476864,   1224177,   -662168 },
406{  1250340,   1218871,  -1090475,  -1089813,   1601939,   1236864,
407   -578000,   -533396,   -861888,   -962546,   -664404,  -1034744,
408    238423,    598938,   1102581,  -2161491,   -744361,   -784368,
409  -1911570,   1422213,    452829,  -2127711,  -5499032,  -5549450,
410   -812280,   -851404,     94337,    245672,   -646979,    257121,
411    613866,   1144549,   1279848,  -2452839,    323947,   -146178,
412   8838223,    129822,    106460,  -3781000,    978397,    950268,
413  -2389032,   -686959,  -3009043,    548512,  -1637754,  -1939260,
414   1143706,   1010841,   1661983,   1453029,  -1245950,  -1105731,
415  -1908689,   -872500,  -2607359,    887605,  -2120318,   -762565 },
416{  -699051,   -700064,    331067,    119334,   -856517,   -894703,
417    357487,    449148,    762433,    746717,    614133,    544433,
418    462669,   -102712,   -184126,   1501233,    921020,    985452,
419   1277831,   -446145,   -128851,   1175047,   2838837,   2760215,
420    784881,    930039,    278625,     84620,    958975,    -40389,
421    998578,    128732,    -89116,   1523012,  -1105324,   -106418,
422    129822,   9407258,  -3329207,   -543404,    495433,    481935,
423   -639390,  -1645077,  -2949971,  -1125543,   -437749,   -331550,
424    723091,    653061,    720077,    769009,   -491982,   -982378,
425  -1366743,  -1520225,  -2789582,  -1051088,    760491,   -358717 },
426{  -654566,   -634661,    236296,    419444,   -817212,  -1197329,
427    367605,    352872,    675088,    749606,    645425,    606184,
428    670075,     48775,   -184437,   1325224,    773952,    885839,
429   1087315,   -526119,     99329,   1191243,   2653009,   2760215,
430    857171,    885092,    223866,    174242,    915398,   -142522,
431  -1141612,    125507,   -147602,   1570478,   1021651,    -81968,
432    106460,  -3329207,   9412838,   -543963,    529994,    533542,
433   -878505,  -1815960,  -2987879,  -1027427,   -342803,   -215904,
434    671108,    727978,    768631,    578377,   -543201,   -699854,
435    759555,  -1492685,  -2966777,   -947133,  -1393669,   -375174 },
436{   961558,    957048,   -551403,   -786927,    825017,   1736061,
437   -646039,   -885457,   -804551,   -760829,  -1082134,   -476333,
438    314213,   1098536,   1235250,  -2446757,   -860450,  -1107901,
439  -2245147,   1510412,    589815,  -2026174,  -5547818,  -5549450,
440   -502614,   -756411,     -1227,     69164,   -912326,    367959,
441    274748,   -700360,   1323054,  -2067370,    613824,   1318504,
442  -3781000,   -543404,   -543963,   9322729,    990421,    993122,
443  -2766044,   -920818,  -3085722,    719448,  -1609236,  -1539816,
444   1326448,   1448740,    981107,   1344461,   -797117,  -1314329,
445  -1795929,   1202468,  -3038978,    843359,  -1429736,  -3222343 },
446{ -2338987,  -2629675,   2892697,   3367082,  -3038222,  -3427987,
447   2484350,   2684378,   2122875,   2024721,   2441715,   2033048,
448   -672481,  -1137672,  -2015041,   7918006,   2177367,   2315732,
449   5878400,  -3928170,  -1361698,   5763885,  15749833,  15661640,
450   2435906,   2516119,   1998075,   2035174,   2433740,   2032813,
451   -398265,   -851573,  -2640907,   5007404,   -400720,   -838181,
452    978397,    495433,    529994,    990421,   5600698,  -7094995,
453   3505347,   1677739,   8777107,  -3043075,    174980,     -6288,
454  -5704747,  -5414472,  -5816802,  -5963228,   1298304,   2336971,
455    941672,   -922438,   7623462,  -1994802,    918570,   1451741 },
456{ -2621631,  -2235002,   2810799,   3316348,  -2961270,  -3398261,
457   2560723,   2523291,   2007541,   2095214,   2443669,   2032012,
458   -566615,  -1030484,  -1859118,   7606452,   2171512,   2157857,
459   5664632,  -3932323,  -1180023,   5756828,  15441678,  15661640,
460   2422919,   2516287,   1954983,   2040868,   2400479,   1977819,
461   -403453,   -849399,  -4821370,   7163899,   -407706,   -809205,
462    950268,    481935,    533542,    993122,  -7094995,   5669038,
463   3381247,   1560351,   8618204,  -2849997,    119959,    158191,
464  -5430756,  -5669979,  -5805779,  -5828349,   1234328,   2315406,
465    937305,   -900239,   9610408,  -4033535,    902614,   1438372 },
466{  2873613,   2733295,  -2367546,  -2961598,   3416768,   5012230,
467  -2311007,  -2661828,  -1390150,  -1355683,  -2964969,  -1039768,
468  -1309880,   -190599,   2256388,  -6908594,  -1578001,  -1772253,
469  -5254766,   3871650,   1389694,  -5394757, -14780057, -14868401,
470  -1673523,  -1981708,  -1882173,  -2039600,  -2163102,  -1731039,
471  -1280821,   1747805,   3326828,  -6403237,  -1344265,  -1197217,
472  -2389032,   -639390,   -878505,  -2766044,   3505347,   3381247,
473   9684432,    119461,   1491972,   -864527,  -1862235,  -1619349,
474   -650694,   -930447,  -1076932,  -1168424,    832989,    -74466,
475    856824,    741985,   1744852,   -825050,    859086,    695081 },
476{  1261792,   1136430,  -1617469,  -1738843,   2474327,   1426003,
477   -195134,   -154622,   -899468,   -815464,   -100626,  -1543121,
478  -1073728,  -1133802,    834088,  -2985205,     82087,     29449,
479  -2052598,   1934802,    949257,  -2209287,  -6668242,  -6558735,
480  -1532476,  -1520743,   -989347,   -666835,  -1113484,  -1039554,
481   1087012,  -1125075,     26654,  -4721012,   -157865,    321988,
482   -686959,  -1645077,  -1815960,   -920818,   1677739,   1560351,
483    119461,   9760389,   1434945,  -2639535,   -197156,   -543339,
484  -1300570,  -1619230,  -1579874,  -1620101,     27263,   1559717,
485   1159568,    218374,   3651176,   -685618,    106377,    630957 },
486{  8000951,   7885100,  -4838379,  -6050705,   8116870,   9463295,
487  -5880504,  -6156614,  -4708544,  -5012953,  -5598599,  -4192878,
488   1594210,   2347281,   2086134, -19436137,  -6649715,  -5009984,
489 -12525819,   8916034,   2644065, -15074258, -36591537, -36722790,
490  -5928779,  -6312272,  -4837419,  -5288842,  -6239150,  -4723662,
491   1393099,   2181772,   9292167, -15151743,    297588,   1677085,
492  -3009043,  -2949971,  -2987879,  -3085722,   8777107,   8618204,
493   1491972,   1434945,  13873087,  -3395506,    344530,    -88120,
494  -2871807,  -2466149,  -2305917,  -2707507,   1670567,   2475144,
495   1381304,    -88777,   5538967,  -1315201,    127143,    743682 },
496{ -1746067,  -1626583,   1451362,   1707414,  -1917663,  -1841304,
497   1481832,   1638839,   1257097,   1493020,   1199646,   1227365,
498    361560,   -484327,   -801538,   4164401,   2701955,    946688,
499   2249452,  -2690702,  -1080600,   4780945,   9732117,   9672038,
500   1352122,   1579176,   1501913,   1679362,   1369007,   1379294,
501    592586,   -307616,  -2513710,   5283223,   -536963,   -495026,
502    548512,  -1125543,  -1027427,    719448,  -3043075,  -2849997,
503   -864527,  -2639535,  -3395506,  14738568,   -577570,   -177486,
504   8031699,   7662445,   9117774,   9535613,  -6246703,  -8146638,
505  -1076730,   2607313, -18135663,   7145410,  -2145377,  -2919021 },
506{     6638,    -58766,   -568191,    789397,    572557,    154862,
507   -645252,    973738,    336976,    421631,   -218183,   -664222,
508    472243,    960682,   -649920,    147843,  -2078191,   -309783,
509   -760678,    481386,    338992,   -306775,  -1394283,  -1267248,
510  -1765015,    443212,   -378133,    -63614,  -1551509,  -2100472,
511    376394,    882249,    -56919,   -625742,    876120,    393228,
512  -1637754,   -437749,   -342803,  -1609236,    174980,    119959,
513  -1862235,   -197156,    344530,   -577570,   8948369,  -1764389,
514   2088085,   2503927,   2545236,   1574731,  -1638344,  -2525936,
515    -59661,   1356156,  -5360968,   1502987,    392027,   -368960 },
516{   -47636,    124832,    978772,   -308316,   -258900,   -198796,
517    765355,   -705099,   -271853,   -389564,    621491,    753326,
518    414552,    908055,   1155134,  -1345055,   -154198,  -1779855,
519   -200644,    192736,   -127446,   -304869,   -684778,   -854505,
520    288456,  -1765501,  -1579650,  -1983947,    -55720,     68686,
521     72343,    761661,   -250815,   -179878,    576127,    642730,
522  -1939260,   -331550,   -215904,  -1539816,     -6288,    158191,
523  -1619349,   -543339,    -88120,   -177486,  -1764389,   9130925,
524   2218720,   2309016,   1411297,   2630133,  -1528201,  -2222238,
525   -340818,   1438399,  -5296828,   1729061,    115197,   -229295 },
526{ -5088578,  -4795309,    574172,   1178460,  -3200854,  -3804025,
527   2637470,   2787313,   2382850,   2325617,   2897493,   2349673,
528   -597724,  -1281146,   -692225,   8477804,   2614010,   2773685,
529   5096033,  -4163786,  -1231583,   6116930,  17053686,  17073993,
530   2407858,   2589914,   2169282,   2125508,   2828224,   2239639,
531   -801939,  -1217332,  -4451120,   7573329,   -238217,   -913139,
532   1143706,    723091,    671108,   1326448,  -5704747,  -5430756,
533   -650694,  -1300570,  -2871807,   8031699,   2088085,   2218720,
534   5288782,  -2468150,  -3178646,  -3176211,   1064242,   1810760,
535    357359,  -1230268,   7368719,  -2040753,    949232,   1171497 },
536{ -5013620,  -5249849,   2759542,   3734616,  -5353978,  -5955104,
537   2458334,   2932584,   2263714,   2413194,   2894383,   2331917,
538   -260047,   -997818,  -1974792,   9636350,   2515825,   2303574,
539   7585065,  -3890368,  -2950726,   5044574,  16846975,  17073993,
540   2242905,   2723308,   1939921,   2331261,   2821130,   2209012,
541   -841500,  -1182985,  -3165932,   6289278,   -239680,   -910948,
542   1010841,    653061,    727978,   1448740,  -5414472,  -5669979,
543   -930447,  -1619230,  -2466149,   7662445,   2503927,   2309016,
544  -2468150,   5337396,  -5819478,  -6125576,   3533536,   4354519,
545    428621,  -1309456,   9322395,  -3447675,   1028222,   1316063 },
546{ -3253847,  -3154841,    386836,   3617835,  -3054952,  -4195634,
547    907216,   3357426,   2150539,   2271141,   1396294,    192786,
548   -772016,  -1308632,  -1934348,   9222882,   2606238,   3556282,
549   6981948,  -6141496,   -956807,   5755905,  16925457,  17227159,
550   2337000,   3868037,   2835185,   3175056,   3000805,   1929147,
551   -544546,  -1419944,  -3434306,   6598196,   -462730,  -1384543,
552   1661983,    720077,    768631,    981107,  -5816802,  -5805779,
553  -1076932,  -1579874,  -2305917,   9117774,   2545236,   1411297,
554  -3178646,  -5819478,  11962726,   1120471,  -1276353,  -2407025,
555   -519383,    544834,  -4922921,   2040958,   -357661,   -999724 },
556{ -3180615,  -3094350,   3123220,   1360963,  -4014445,  -4485277,
557   2880116,   1068284,    755793,    678383,   3009586,   2496085,
558   -887315,  -1286716,  -2169637,   9766063,   3755822,   2884208,
559   5551021,  -4425174,  -1519733,   5855058,  17740069,  17639902,
560   3499857,   2631217,   2284326,   2199594,   3768919,   3196402,
561   -895294,  -1535269,  -3564544,   7073180,   -697919,  -1249486,
562   1453029,    769009,    578377,   1344461,  -5963228,  -5828349,
563  -1168424,  -1620101,  -2707507,   9535613,   1574731,   2630133,
564  -3176211,  -6125576,   1120471,  11932308,  -1257381,  -1942319,
565   -740746,    603229,  -4828882,   2181421,   -504243,   -933866 },
566{  2711412,   2642865,  -1235398,  -2307922,    410478,   2898985,
567  -2988096,  -3746916,   -943518,  -1024047,  -3031303,   -814587,
568    216603,   1401975,    884616,  -6790882,  -2042299,  -2088659,
569  -4598968,   3039163,    628094,  -3347241, -10816408, -13090061,
570  -1642341,  -2338451,  -1471866,  -1918560,  -2097824,  -1858975,
571   -133277,   1248311,   3493641,  -3058860,    368196,    527322,
572  -1245950,   -491982,   -543201,   -797117,   1298304,   1234328,
573    832989,     27263,   1670567,  -6246703,  -1638344,  -1528201,
574   1064242,   3533536,  -1276353,  -1257381,  12468168,   2467027,
575    616024,  -1458923,   8802460,  -2560956,    999619,   1240917 },
576{  3844202,   3795316,  -2188412,  -2689133,   3983005,   1978361,
577  -1995274,  -2087932,  -3487005,  -3555556,  -2134450,  -3847450,
578   1073384,    747166,   1606568,  -8657391,  -3216470,  -2834284,
579  -6184469,   4071256,   1443407,  -5023645, -17150081, -15153773,
580  -2653975,  -2857429,  -2331364,  -2327297,  -2821885,  -2543681,
581    916054,    347458,   3467468,  -5889436,   1243333,   1555940,
582  -1105731,   -982378,   -699854,  -1314329,   2336971,   2315406,
583    -74466,   1559717,   2475144,  -8146638,  -2525936,  -2222238,
584   1810760,   4354519,  -2407025,  -1942319,   2467027,  13625898,
585    957609,  -1467811,  10212037,  -2432498,   1187653,   1760262 },
586{   880534,    872576,   -119033,   -407480,   1088413,   1142239,
587   -783123,   -673963,   -942169,   -851184,   -403409,   -315744,
588  -1323896,    -70699,     60140,  -2361496,  -2271286,  -2541311,
589  -1312378,   1008284,    427124,  -1292896,  -3704620,  -3685660,
590   -104749,   -336626,    603310,    474751,   -223074,   -956770,
591  -1535713,   -226997,    724596,  -1742525,    216098,   1777437,
592  -1908689,  -1366743,    759555,  -1795929,    941672,    937305,
593    856824,   1159568,   1381304,  -1076730,    -59661,   -340818,
594    357359,    428621,   -519383,   -740746,    616024,    957609,
595   8529162,     44483,  -3881070,    914013,  -2915631,  -1377678 },
596{ -1042552,  -1015702,    987303,   1067944,  -1375640,   -988737,
597    393286,    -44993,    853872,    779183,    839727,   1314137,
598   -231085,  -1684165,  -2105033,    460093,    202674,    179041,
599   1910194,   -859215,    -92232,   1911983,   4622406,   4624005,
600   1590181,   1456269,    774412,    231166,   -602973,    713196,
601   -471115,  -1943992,   -622178,   2385418,    769755,   -318896,
602   -872500,  -1520225,  -1492685,   1202468,   -922438,   -900239,
603    741985,    218374,    -88777,   2607313,   1356156,   1438399,
604  -1230268,  -1309456,    544834,    603229,  -1458923,  -1467811,
605     44483,   9139606,  -4197005,  -1086105,    333347,  -1196056 },
606{  6946781,   6779035,  -5601207,  -6848988,   8044077,   9409193,
607  -5564831,  -5854907,  -5023503,  -4684921,  -5502336,  -4125681,
608    509060,   2374406,   4180691, -18777173,  -5822175,  -5926123,
609 -14358844,   8542837,   2537576, -12155731, -35229968, -35368479,
610  -6486955,  -4733684,  -4564306,  -5196035,  -4947020,  -4624084,
611    418431,   1859797,   6745180, -14706099,   1283325,   1831454,
612  -2607359,  -2789582,  -2966777,  -3038978,   7623462,   9610408,
613   1744852,   3651176,   5538967, -18135663,  -5360968,  -5296828,
614   7368719,   9322395,  -4922921,  -4828882,   8802460,  10212037,
615  -3881070,  -4197005,  13337711,  -3610183,   1073383,    753978 },
616{ -3015244,  -2926770,   1946655,   2699162,  -3289536,  -3205744,
617   1655303,   2108010,   1542516,   1214615,   1239352,   1287673,
618   -359227,   -334264,   -919229,   6979470,   1364777,   1727548,
619   4952535,  -2865634,   -990861,   2753977,  10987703,  11026349,
620   2704544,   1188362,   1649815,   1875155,   2564102,   1609316,
621   -500743,   -501906,  -2739488,   3413449,    568448,   -476864,
622    887605,  -1051088,   -947133,    843359,  -1994802,  -4033535,
623   -825050,   -685618,  -1315201,   7145410,   1502987,   1729061,
624  -2040753,  -3447675,   2040958,   2181421,  -2560956,  -2432498,
625    914013,  -1086105,  -3610183,  15732413,  -1189288,  -2921216 },
626{   406795,    386412,   -583034,   -925197,    441887,    894517,
627   -297358,   -584389,   -396522,   -415255,  -1319653,   -515796,
628    499417,   -130586,    -60329,  -2385573,     91778,   -243610,
629  -1312334,   1060847,    413479,  -1306931,  -3590848,  -3627619,
630  -2191444,  -2559537,    546095,   -931648,  -2223357,   1105386,
631     23010,     59397,    752126,  -1547209,  -1851094,   1224177,
632  -2120318,    760491,  -1393669,  -1429736,    918570,    902614,
633    859086,    106377,    127143,  -2145377,    392027,    115197,
634    949232,   1028222,   -357661,   -504243,    999619,   1187653,
635  -2915631,    333347,   1073383,  -1189288,   8409697,  -1554249 },
636{  1147260,   1127795,  -1102184,  -1068995,   1325474,   1606478,
637  -1033184,   -737864,   -857101,   -854396,  -1327582,  -1501943,
638    197952,    172260,    382106,  -3107404,   -759997,   -508396,
639  -2111121,   1616493,    652123,  -2119034,  -5669752,  -5691331,
640   -860476,   -533359,  -3560514,  -1133053,   -901689,  -1561099,
641    169846,   -138990,   1361112,  -2557578,   -247410,   -662168,
642   -762565,   -358717,   -375174,  -3222343,   1451741,   1438372,
643    695081,    630957,    743682,  -2919021,   -368960,   -229295,
644   1171497,   1316063,   -999724,   -933866,   1240917,   1760262,
645  -1377678,  -1196056,    753978,  -2921216,  -1554249,  10842338 }
646};
647static int s[60][60] = {
648{ 10073848,   3548639,   1815793,   2027614,   -685064,   -713206,
649    384210,    194997,    191338,    774290,   1003453,   1017050,
650    428633,    322923,  -1075530,  -1055311,   -226724,   -360063,
651    650127,    627888,    752097,   1429091,   -891206,   -370811,
652    166955,      8517,     33001,    539591,    829982,    893382,
653    591068,    749604,    412098,    710846,    531854,    617418,
654    569381,    421819,    209795,   -187607,     38855,   -246742,
655    -70665,    323680,   -306626,   1313064,    252035,    359595,
656   -641626,   2146670,    450372,    544572,    974197,    970167,
657    685179,    842290,    413805,    710415,    641225,    672422 },
658{  3548639,  10109758,   -781009,  -1010509,   1890047,   1859624,
659   -299404,    -48150,    110393,   -321309,    127888,    150481,
660    109738,     99866,   -792513,   -769672,   -356709,    265956,
661   1027277,   1009222,   -627888,   -966020,   1015023,    752628,
662    -50284,     88982,    246951,    -55014,    416996,    477553,
663    506287,    854074,    533805,    582544,    518398,    603574,
664    429213,    350288,    319924,   -131064,   -573935,    203417,
665   -175601,    277745,   1142629,   -511495,    690957,    138430,
666   2249771,   -274693,   1168420,    548042,    122162,    114411,
667    353241,    701754,    276705,    324816,    359546,    404334 },
668{  1815793,   -781009,   9318628,  -1465214,   -379577,   -296717,
669   1548855,   -163448,     87398,   -322720,   1992691,   2059199,
670    238076,    323387,  -1182750,   -150896,   -217083,   -646361,
671    -70697,   -792513,   1075530,   -745609,    237041,   -138673,
672   -107528,   1139783,    952412,    617749,    381368,    -50541,
673    582857,    529005,    542286,    938840,    513432,    132373,
674     88577,    360837,   -140940,     31598,    -46372,    703250,
675    141432,   -364301,   1327432,    507491,    749677,   -736067,
676   2283835,   1289791,   -918231,    322981,   -300697,   -201852,
677   1011354,    579317,    689558,    740063,    583661,    198558 },
678{  2027614,  -1010509,  -1465214,   9525899,    183886,   -140179,
679    -84488,   1425603,   1019961,   2102675,    728989,    322404,
680    533201,    303846,  -1327432,   -749565,   -841902,   -383446,
681   -258563,  -1142629,   -306626,   1424693,   -669550,    410595,
682    845735,   -615335,   -616139,    407036,   1719820,   1739733,
683   1324835,    657335,    948123,    847509,    823198,    760491,
684    497749,    181639,   -417041,    -56122,    392609,    386226,
685   -168048,   -173909,   1374468,    970448,   -591665,    869959,
686   2296097,    844298,    354274,   -922605,    676732,    304912,
687    939640,    672190,   1029280,   1270876,    797609,    837817 },
688{  -685064,   1890047,   -379577,    183886,  10101791,   -599126,
689  -1495326,  -2131242,   -279534,   1027681,   -154979,   1905806,
690    544527,   -956896,   -542286,  -1603695,       137,   -554735,
691  -1478096,   -533805,    412098,    412702,    253606,   -248690,
692    -94879,   -219182,   -368662,   1098949,   1375467,   1374865,
693    929543,   2028437,   2357544,   2194488,   1035746,   1188443,
694    626950,    511997,    248938,   -647454,    338658,   -504181,
695    -14801,   -645026,    948123,   1809872,    271102,    733117,
696   1180007,   2040804,   -141671,    817507,    -51641,   1658234,
697    930437,    789454,   1116057,   1017334,   1088753,   1137943 },
698{  -713206,   1859624,   -296717,   -140179,   -599126,   9965406,
699    294915,    161409,  -1978734,   -677810,   1716065,   -476988,
700   -829956,    301167,   -689558,  -1725934,    169475,   -703750,
701  -1423594,   -276705,    413805,    609164,  -1355668,   1616180,
702    136776,   -415582,   -548725,    522508,   1238487,   1090973,
703   2236917,    723124,   1116057,   1080690,   2301594,   1985767,
704    456349,    211711,   -643329,    -61929,    883541,     40312,
705   -831300,     92752,   1029280,   1870930,      5936,    922600,
706   1163360,   2033501,   -237440,    274819,   1555024,   -306251,
707   1265237,    970157,   1398089,   1304994,   1267008,   1050572 },
708{   384210,   -299404,   1548855,    -84488,  -1495326,    294915,
709   9455411,  -1510944,    187219,    422146,  -3251745,  -1430459,
710    -48777,    567080,   -323387,   -105601,    194867,   -838816,
711    227594,    -99866,    322923,   -173581,   -332767,    187293,
712   -246330,   1006617,   -787936,   -338903,    -72859,    314167,
713     30318,    903463,   -956896,    566500,   -207989,    255058,
714   -218289,    138051,     62055,    235340,    358754,   -456209,
715    142003,   -705946,    303846,      8141,   -458522,    938283,
716    202993,   -548420,   1327027,   -168721,  -1411301,    412784,
717    192453,     33840,    301167,   -228004,   -296438,    171784 },
718{   194997,    -48150,   -163448,   1425603,  -2131242,    161409,
719  -1510944,   9555644,   -634455,  -2024743,  -2028703,    201659,
720   -374435,    705946,   -364301,    460877,  -1033368,    880317,
721    388391,    277745,   -323680,   -314696,    420677,   -209682,
722    907772,    598427,    822447,   -259416,  -1374481,  -1367602,
723   -539048,    619100,    645026,  -1382240,   -441739,   -433341,
724   -341831,    -34570,    219882,    375144,     33921,   -120954,
725    556038,   -912101,    173909,   -589699,   1282467,   -938397,
726    120165,    -76721,   -194366,   1320694,  -2384819,    -48471,
727     -6903,    195461,    -92752,   -672308,   -514031,   -479562 },
728{   191338,    110393,     87398,   1019961,   -279534,  -1978734,
729    187219,   -634455,  10364621,  -3811053,   -288635,  -2003496,
730    427109,    -62055,   -140940,    914305,  -1178850,    477785,
731    383068,    319924,   -209795,   -363388,    750164,   -808159,
732  -1001478,    740730,   1013772,   -491691,    599275,  -1262478,
733    387159,   -248832,   -248938,   -398738,    595298,  -1301930,
734   -327223,   -150855,     79658,    459105,    225110,      9644,
735   -566398,    219882,    417041,   -959827,    990976,   -468241,
736    215172,     21883,     16527,   1064643,   -163042,  -1897300,
737   -205594,    280188,    643329,   -809582,  -1050403,   -802084 },
738{   774290,   -321309,   -322720,   2102675,   1027681,   -677810,
739    422146,  -2024743,  -3811053,  10304892,   1097416,   -584577,
740    903583,    138051,   -360837,   -655599,   -766294,   -565518,
741   -389124,   -350288,    421819,    492429,   -369929,    474565,
742   -358107,   -184581,   -741037,    377647,    -13578,   1592741,
743   1253222,    354489,    511997,    582183,    -68465,   1508451,
744    444122,   -114401,    150855,   -330718,    628580,   -369675,
745   -928995,     34570,    181639,    801390,    786908,    478109,
746    705838,   -296006,   -333894,   2034273,   1029649,   -705664,
747    457864,     85076,    211711,    848831,   1505096,    928627 },
748{  1003453,    127888,   1992691,    728989,   -154979,   1716065,
749  -3251745,  -2028703,   -288635,   1097416,  10807115,     23060,
750    345938,    903463,   -529005,   -777043,    -16402,  -1329038,
751   -525818,   -854074,    749604,    471151,   -805745,    813652,
752    -73160,  -1480632,    658381,     31428,   1379093,   1573128,
753   1038572,    -88151,   2028437,   1701283,   1063674,   1204145,
754    500478,    354489,    248832,   -298841,    268741,   -568994,
755   -504155,   -619100,    657335,    958289,    184137,   1419884,
756   1026456,    183407,   2045993,    729610,   -207553,   1608578,
757    851797,    791284,    723124,   1084875,   1815967,   1553990 },
758{  1017050,    150481,   2059199,    322404,   1905806,   -476988,
759  -1430459,    201659,  -2003496,   -584577,     23060,  10318773,
760   1130957,     33840,   -579317,  -1014476,    199622,  -1538324,
761   -372173,   -701754,    842290,    570996,   -259915,    534694,
762    138873,  -1626163,  -1655486,   1580957,   1336998,   1170942,
763    259178,    791284,    789454,    579841,   2181651,   2056497,
764    318584,     85076,   -280188,    -56984,    787054,    -37089,
765   -974697,   -195461,    672190,   1067415,    -77371,   1592128,
766    975058,    116100,   2021029,    214989,   1689816,   -650727,
767   1127444,    933159,    970157,   1412675,   1649898,   1903783 },
768{   428633,    109738,    238076,    533201,    544527,   -829956,
769    -48777,   -374435,    427109,    903583,    345938,   1130957,
770   9639653,   -246330,    107528,    310149,  -1153983,  -1478699,
771    217415,     50284,    166955,    161601,   -116650,    520787,
772   -140804,   -170314,    -59720,    531510,    681783,    463749,
773  -3190405,    -73160,    -94879,    106964,  -1379009,  -1337772,
774    612300,   -358107,   1001478,   -305639,    -40156,     36680,
775   1280885,   -907772,    845735,    977959,    -88136,    -37750,
776     93016,    -12792,     50568,    361937,    133113,    819885,
777  -1541056,    138873,    136776,    296474,    220882,    225128 },
778{   322923,     99866,    323387,    303846,   -956896,    301167,
779    567080,    705946,    -62055,    138051,    903463,     33840,
780   -246330,   9455411,  -1548855,  -1327027,    194867,    458522,
781    548420,    299404,    384210,    202993,    456209,    358754,
782    -48777,   -142003,   -235340,   -218289,     30318,    192453,
783    -72859,  -3251745,  -1495326,  -1411301,   -207989,   -296438,
784   -338903,    422146,   -187219,    787936,    187293,    332767,
785  -1006617,   1510944,    -84488,   -168721,    838816,    938283,
786   -173581,   -227594,    105601,      8141,    566500,   -228004,
787    314167,  -1430459,    294915,    412784,    255058,    171784 },
788{ -1075530,   -792513,  -1182750,  -1327432,   -542286,   -689558,
789   -323387,   -364301,   -140940,   -360837,   -529005,   -579317,
790    107528,  -1548855,   9318628,   -918231,    217083,    749677,
791   1289791,   -781009,  -1815793,  -2283835,    703250,     46372,
792   -238076,    141432,     31598,    -88577,   -582857,  -1011354,
793   -381368,  -1992691,    379577,    300697,   -513432,   -583661,
794   -617749,    322720,     87398,    952412,    138673,    237041,
795   1139783,   -163448,   1465214,   -322981,   -646361,    736067,
796    745609,    -70697,   -150896,   -507491,   -938840,   -740063,
797     50541,  -2059199,    296717,    201852,   -132373,   -198558 },
798{ -1055311,   -769672,   -150896,   -749565,  -1603695,  -1725934,
799   -105601,    460877,    914305,   -655599,   -777043,  -1014476,
800    310149,  -1327027,   -918231,   9366725,    239427,    274854,
801   -875466,   1168420,   -450372,    -36916,   -901303,  -1778168,
802    -50568,    202880,    654659,   -886936,   -380586,   -931771,
803   -382382,  -2045993,    141671,    150298,   -714527,   -912445,
804   -724395,    333894,     16527,   1131648,     71139,    419516,
805   1400473,   -194366,   -354274,   1370158,    983080,  -1185154,
806   -497648,    826358,   -315612,   -637431,   -861221,   -617974,
807     62102,  -2021029,    237440,    240868,   -282551,   -466279 },
808{  -226724,   -356709,   -217083,   -841902,       137,    169475,
809    194867,  -1033368,  -1178850,   -766294,    -16402,    199622,
810  -1153983,    194867,    217083,    239427,   9107636,  -1618486,
811     49667,    356709,   -226724,     91780,    -38746,    332565,
812  -1153983,    264787,     47924,    381604,  -1683014,  -1583360,
813  -1683014,    -16402,       137,    109289,    605001,    376413,
814    381604,   -766294,   1178850,    -47924,    332565,     38746,
815   -264787,   1033368,   -841902,    932180,   1618486,    -89570,
816     91780,    -49667,   -239427,    932180,    109289,    -14748,
817  -1583360,    199622,    169475,    -14748,    376413,    121534 },
818{  -360063,    265956,   -646361,   -383446,   -554735,   -703750,
819   -838816,    880317,    477785,   -565518,  -1329038,  -1538324,
820  -1478699,    458522,    749677,    274854,  -1618486,   9430347,
821    575005,    690957,   -252035,   -349451,    564728,   -556792,
822     88136,  -1011186,   -991207,  -2015366,   -457171,    113147,
823  -1662370,   -184137,   -271102,   -615937,    -88030,     90307,
824     46323,   -786908,    990976,    377848,    176847,    324349,
825   -180275,   1282467,    591665,  -1186711,   -144650,   1369689,
826   -156305,    160001,    983080,   -553694,    -52848,   -628708,
827  -2205485,     77371,     -5936,    -27911,   -266108,    -47895 },
828{   650127,   1027277,    -70697,   -258563,  -1478096,  -1423594,
829    227594,    388391,    383068,   -389124,   -525818,   -372173,
830    217415,    548420,   1289791,   -875466,     49667,    575005,
831   9892701,   -274693,  -2146670,    -40627,   -464886,  -2184399,
832     12792,    555681,    549076,   -548474,  -1037168,   -881541,
833   -487307,   -183407,  -2040804,   -174626,   -837310,   -684086,
834    -12117,    296006,     21883,    446862,   -822442,   1193708,
835    339025,    -76721,   -844298,   1159232,    160001,   -294770,
836   -280012,   1929874,    826358,  -1375351,   -385767,   -328489,
837   -390691,   -116100,  -2033501,   -145880,   -715354,   -596881 },
838{   627888,   1009222,   -792513,  -1142629,   -533805,   -276705,
839    -99866,    277745,    319924,   -350288,   -854074,   -701754,
840     50284,    299404,   -781009,   1168420,    356709,    690957,
841   -274693,  10109758,  -3548639,  -2249771,    203417,    573935,
842   -109738,   -175601,   -131064,   -429213,   -506287,   -353241,
843   -416996,   -127888,  -1890047,   -122162,   -518398,   -359546,
844     55014,    321309,    110393,    246951,   -752628,   1015023,
845     88982,    -48150,   1010509,   -548042,    265956,   -138430,
846    966020,   1027277,   -769672,    511495,   -582544,   -324816,
847   -477553,   -150481,  -1859624,   -114411,   -603574,   -404334 },
848{   752097,   -627888,   1075530,   -306626,    412098,    413805,
849    322923,   -323680,   -209795,    421819,    749604,    842290,
850    166955,    384210,  -1815793,   -450372,   -226724,   -252035,
851  -2146670,  -3548639,  10073848,   -641626,    246742,     38855,
852    428633,     70665,    187607,    569381,    591068,    685179,
853    829982,   1003453,   -685064,    974197,    531854,    641225,
854    539591,    774290,   -191338,    -33001,   -370811,    891206,
855     -8517,   -194997,   2027614,    544572,    360063,    359595,
856   1429091,   -650127,   1055311,   1313064,    710846,    710415,
857    893382,   1017050,   -713206,    970167,    617418,    672422 },
858{  1429091,   -966020,   -745609,   1424693,    412702,    609164,
859   -173581,   -314696,   -363388,    492429,    471151,    570996,
860    161601,    202993,  -2283835,    -36916,     91780,   -349451,
861    -40627,  -2249771,   -641626,   9650591,  -2226103,   -437370,
862     93016,   -398116,   -448790,    703575,   1063106,   1164234,
863    928398,   1026456,   1180007,   -673360,    858688,    947959,
864    687597,    705838,   -215172,   -133451,   1224544,   -787254,
865    -75243,   -120165,   2296097,    395949,    156305,    623743,
866    463232,    280012,    497648,    645482,   1460686,   1662689,
867    818541,    975058,   1163360,   -715348,    727388,    876663 },
868{  -891206,   1015023,    237041,   -669550,    253606,  -1355668,
869   -332767,    420677,    750164,   -369929,   -805745,   -259915,
870   -116650,    456209,    703250,   -901303,    -38746,    564728,
871   -464886,    203417,    246742,  -2226103,  10356582,  -3801323,
872    -36680,    862962,    779507,   -497956,   -681434,   -550179,
873    -54047,    568994,    504181,  -1874509,  -1011857,   -881387,
874     20373,    369675,      9644,    365017,    742391,   -260763,
875    540989,   -120954,   -386226,    987068,    324349,   -345743,
876    787254,   1193708,    419516,   -160927,    240058,  -1369583,
877   -235428,     37089,    -40312,  -1793762,   -569944,   -464691 },
878{  -370811,    752628,   -138673,    410595,   -248690,   1616180,
879    187293,   -209682,   -808159,    474565,    813652,    534694,
880    520787,    358754,     46372,  -1778168,    332565,   -556792,
881  -2184399,    573935,     38855,   -437370,  -3801323,  10332390,
882    -40156,   -460565,   -648252,    698431,    635757,    765957,
883    506720,    268741,    338658,   -690022,   1030479,   1154656,
884    555644,    628580,   -225110,   -132479,   1275419,   -742391,
885   -230549,    -33921,    392609,   1990107,   -176847,    778274,
886   1224544,    822442,    -71139,    917099,   -232520,   1625911,
887    691823,    787054,    883541,   -767926,    590846,    728966 },
888{   166955,    -50284,   -107528,    845735,    -94879,    136776,
889   -246330,    907772,  -1001478,   -358107,    -73160,    138873,
890   -140804,    -48777,   -238076,    -50568,  -1153983,     88136,
891     12792,   -109738,    428633,     93016,    -36680,    -40156,
892   9639653,  -1280885,    305639,    612300,  -3190405,  -1541056,
893    681783,    345938,    544527,    133113,  -1379009,    220882,
894    531510,    903583,   -427109,     59720,    520787,    116650,
895    170314,    374435,    533201,    361937,   1478699,    -37750,
896    161601,   -217415,   -310149,    977959,    106964,    296474,
897    463749,   1130957,   -829956,    819885,  -1337772,    225128 },
898{     8517,     88982,   1139783,   -615335,   -219182,   -415582,
899   1006617,    598427,    740730,   -184581,  -1480632,  -1626163,
900   -170314,   -142003,    141432,    202880,    264787,  -1011186,
901    555681,   -175601,     70665,   -398116,    862962,   -460565,
902  -1280885,   9542197,   -732676,  -1843811,  -1881039,    193856,
903    383027,    504155,     14801,   -361836,  -2081210,    -34398,
904    148093,    928995,   -566398,    434800,    230549,    540989,
905    260646,    556038,    168048,    106704,   -180275,   1314085,
906     75243,    339025,   1400473,   -753093,   -446150,   -677944,
907   -130918,    974697,    831300,  -1001736,  -1999405,     53151 },
908{    33001,    246951,    952412,   -616139,   -368662,   -548725,
909   -787936,    822447,   1013772,   -741037,    658381,  -1655486,
910    -59720,   -235340,     31598,    654659,     47924,   -991207,
911    549076,   -131064,    187607,   -448790,    779507,   -648252,
912    305639,   -732676,  10596548,  -3717806,   -213986,  -1969096,
913    390699,    298841,    647454,   -316040,   -278950,  -2001203,
914    942609,    330718,    459105,   -349051,    132479,    365017,
915    434800,    375144,     56122,   -243208,    377848,   1285755,
916    133451,    446862,   1131648,   -496044,   -304459,   -452499,
917    928749,     56984,     61929,   -222468,    688033,  -3160187 },
918{   539591,    -55014,    617749,    407036,   1098949,    522508,
919   -338903,   -259416,   -491691,    377647,     31428,   1580957,
920    531510,   -218289,    -88577,   -886936,    381604,  -2015366,
921   -548474,   -429213,    569381,    703575,   -497956,    698431,
922    612300,  -1843811,  -3717806,  10038127,   1202708,   -947943,
923   1054012,    500478,    626950,   1084874,   1475487,   -643142,
924   1630193,    444122,    327223,   -942609,    555644,    -20373,
925   -148093,    341831,    497749,    969010,    -46323,   2392480,
926    687597,     12117,    724395,    514498,   1120123,    576540,
927   1739931,    318584,    456349,    971353,    416500,    431676 },
928{   829982,    416996,    381368,   1719820,   1375467,   1238487,
929    -72859,  -1374481,    599275,    -13578,   1379093,   1336998,
930    681783,     30318,   -582857,   -380586,  -1683014,   -457171,
931  -1037168,   -506287,    591068,   1063106,   -681434,    635757,
932  -3190405,  -1881039,   -213986,   1202708,  10884697,    -43244,
933   1220232,   1038572,    929543,   1420834,    491978,   1803583,
934   1054012,   1253222,   -387159,   -390699,    506720,     54047,
935   -383027,    539048,   1324835,   1076200,   1662370,    529993,
936    928398,    487307,    382382,   1797057,   1573000,   1419422,
937   1537872,    259178,   2236917,   1935230,   -233522,   1382550 },
938{   893382,    477553,    -50541,   1739733,   1374865,   1090973,
939    314167,  -1367602,  -1262478,   1592741,   1573128,   1170942,
940    463749,    192453,  -1011354,   -931771,  -1583360,    113147,
941   -881541,   -353241,    685179,   1164234,   -550179,    765957,
942  -1541056,    193856,  -1969096,   -947943,    -43244,   9924096,
943   1537872,    851797,    930437,   1377257,   2088435,   -171109,
944   1739931,    457864,    205594,   -928749,    691823,    235428,
945    130918,      6903,    939640,    893440,   2205485,    560846,
946    818541,    390691,    -62102,   1773876,   1450482,   1195850,
947   1056306,   1127444,   1265237,   1164000,   3110960,    570357 },
948{   591068,    506287,    582857,   1324835,    929543,   2236917,
949     30318,   -539048,    387159,   1253222,   1038572,    259178,
950  -3190405,    -72859,   -381368,   -382382,  -1683014,  -1662370,
951   -487307,   -416996,    829982,    928398,    -54047,    506720,
952    681783,    383027,    390699,   1054012,   1220232,   1537872,
953  10884697,   1379093,   1375467,   1573000,    491978,   -233522,
954   1202708,    -13578,   -599275,    213986,    635757,    681434,
955   1881039,   1374481,   1719820,   1797057,    457171,    529993,
956   1063106,   1037168,    380586,   1076200,   1420834,   1935230,
957    -43244,   1336998,   1238487,   1419422,   1803583,   1382550 },
958{   749604,    854074,    529005,    657335,   2028437,    723124,
959    903463,    619100,   -248832,    354489,    -88151,    791284,
960    -73160,  -3251745,  -1992691,  -2045993,    -16402,   -184137,
961   -183407,   -127888,   1003453,   1026456,    568994,    268741,
962    345938,    504155,    298841,    500478,   1038572,    851797,
963   1379093,  10807115,   -154979,   -207553,   1063674,   1815967,
964     31428,   1097416,    288635,   -658381,    813652,    805745,
965   1480632,   2028703,    728989,    729610,   1329038,   1419884,
966    471151,    525818,    777043,    958289,   1701283,   1084875,
967   1573128,     23060,   1716065,   1608578,   1204145,   1553990 },
968{   412098,    533805,    542286,    948123,   2357544,   1116057,
969   -956896,    645026,   -248938,    511997,   2028437,    789454,
970    -94879,  -1495326,    379577,    141671,       137,   -271102,
971  -2040804,  -1890047,   -685064,   1180007,    504181,    338658,
972    544527,     14801,    647454,    626950,    929543,    930437,
973   1375467,   -154979,  10101791,    -51641,   1035746,   1088753,
974   1098949,   1027681,    279534,    368662,   -248690,   -253606,
975    219182,   2131242,    183886,    817507,    554735,    733117,
976    412702,   1478096,   1603695,   1809872,   2194488,   1017334,
977   1374865,   1905806,   -599126,   1658234,   1188443,   1137943 },
978{   710846,    582544,    938840,    847509,   2194488,   1080690,
979    566500,  -1382240,   -398738,    582183,   1701283,    579841,
980    106964,  -1411301,    300697,    150298,    109289,   -615937,
981   -174626,   -122162,    974197,   -673360,  -1874509,   -690022,
982    133113,   -361836,   -316040,   1084874,   1420834,   1377257,
983   1573000,   -207553,    -51641,  10316742,   1354558,   1382532,
984   1120123,   1029649,    163042,    304459,   -232520,   -240058,
985    446150,   2384819,    676732,    428854,     52848,    838622,
986   1460686,    385767,    861221,    941340,   3181394,   2126928,
987   1450482,   1689816,   1555024,   -302301,   1262477,   1399098 },
988{   531854,    518398,    513432,    823198,   1035746,   2301594,
989   -207989,   -441739,    595298,    -68465,   1063674,   2181651,
990  -1379009,   -207989,   -513432,   -714527,    605001,    -88030,
991   -837310,   -518398,    531854,    858688,  -1011857,   1030479,
992  -1379009,  -2081210,   -278950,   1475487,    491978,   2088435,
993    491978,   1063674,   1035746,   1354558,  10629882,   -201757,
994   1475487,    -68465,   -595298,    278950,   1030479,   1011857,
995   2081210,    441739,    823198,    980270,     88030,    836672,
996    858688,    837310,    714527,    980270,   1354558,   2449803,
997   2088435,   2181651,   2301594,   2449803,   -201757,   1772669 },
998{   617418,    603574,    132373,    760491,   1188443,   1985767,
999    255058,   -433341,  -1301930,   1508451,   1204145,   2056497,
1000  -1337772,   -296438,   -583661,   -912445,    376413,     90307,
1001   -684086,   -359546,    641225,    947959,   -881387,   1154656,
1002    220882,    -34398,  -2001203,   -643142,   1803583,   -171109,
1003   -233522,   1815967,   1088753,   1382532,   -201757,  10232054,
1004    416500,   1505096,   1050403,   -688033,    590846,    569944,
1005   1999405,    514031,    797609,   1149437,    266108,    512340,
1006    727388,    715354,    282551,    976350,   1262477,   2210810,
1007   3110960,   1649898,   1267008,   1617815,   3201103,    921690 },
1008{   569381,    429213,     88577,    497749,    626950,    456349,
1009   -218289,   -341831,   -327223,    444122,    500478,    318584,
1010    612300,   -338903,   -617749,   -724395,    381604,     46323,
1011    -12117,     55014,    539591,    687597,     20373,    555644,
1012    531510,    148093,    942609,   1630193,   1054012,   1739931,
1013   1202708,     31428,   1098949,   1120123,   1475487,    416500,
1014  10038127,    377647,    491691,   3717806,    698431,    497956,
1015   1843811,    259416,    407036,    514498,   2015366,   2392480,
1016    703575,    548474,    886936,    969010,   1084874,    971353,
1017   -947943,   1580957,    522508,    576540,   -643142,    431676 },
1018{   421819,    350288,    360837,    181639,    511997,    211711,
1019    138051,    -34570,   -150855,   -114401,    354489,     85076,
1020   -358107,    422146,    322720,    333894,   -766294,   -786908,
1021    296006,    321309,    774290,    705838,    369675,    628580,
1022    903583,    928995,    330718,    444122,   1253222,    457864,
1023    -13578,   1097416,   1027681,   1029649,    -68465,   1505096,
1024    377647,  10304892,   3811053,    741037,    474565,    369929,
1025    184581,   2024743,   2102675,   2034273,    565518,    478109,
1026    492429,    389124,    655599,    801390,    582183,    848831,
1027   1592741,   -584577,   -677810,   -705664,   1508451,    928627 },
1028{   209795,    319924,   -140940,   -417041,    248938,   -643329,
1029     62055,    219882,     79658,    150855,    248832,   -280188,
1030   1001478,   -187219,     87398,     16527,   1178850,    990976,
1031     21883,    110393,   -191338,   -215172,      9644,   -225110,
1032   -427109,   -566398,    459105,    327223,   -387159,    205594,
1033   -599275,    288635,    279534,    163042,   -595298,   1050403,
1034    491691,   3811053,  10364621,   1013772,    808159,    750164,
1035    740730,   -634455,  -1019961,  -1064643,    477785,    468241,
1036    363388,    383068,    914305,    959827,    398738,    809582,
1037   1262478,   2003496,   1978734,   1897300,   1301930,    802084 },
1038{  -187607,   -131064,     31598,    -56122,   -647454,    -61929,
1039    235340,    375144,    459105,   -330718,   -298841,    -56984,
1040   -305639,    787936,    952412,   1131648,    -47924,    377848,
1041    446862,    246951,    -33001,   -133451,    365017,   -132479,
1042     59720,    434800,   -349051,   -942609,   -390699,   -928749,
1043    213986,   -658381,    368662,    304459,    278950,   -688033,
1044   3717806,    741037,   1013772,  10596548,    648252,    779507,
1045   -732676,    822447,    616139,    496044,   -991207,  -1285755,
1046    448790,    549076,    654659,    243208,    316040,    222468,
1047   1969096,   1655486,    548725,    452499,   2001203,   3160187 },
1048{    38855,   -573935,    -46372,    392609,    338658,    883541,
1049    358754,     33921,    225110,    628580,    268741,    787054,
1050    -40156,    187293,    138673,     71139,    332565,    176847,
1051   -822442,   -752628,   -370811,   1224544,    742391,   1275419,
1052    520787,    230549,    132479,    555644,    506720,    691823,
1053    635757,    813652,   -248690,   -232520,   1030479,    590846,
1054    698431,    474565,    808159,    648252,  10332390,   3801323,
1055    460565,    209682,    410595,    917099,    556792,    778274,
1056   -437370,   2184399,   1778168,   1990107,   -690022,   -767926,
1057    765957,    534694,   1616180,   1625911,   1154656,    728966 },
1058{  -246742,    203417,    703250,    386226,   -504181,     40312,
1059   -456209,   -120954,      9644,   -369675,   -568994,    -37089,
1060     36680,    332767,    237041,    419516,     38746,    324349,
1061   1193708,   1015023,    891206,   -787254,   -260763,   -742391,
1062    116650,    540989,    365017,    -20373,     54047,    235428,
1063    681434,    805745,   -253606,   -240058,   1011857,    569944,
1064    497956,    369929,    750164,    779507,   3801323,  10356582,
1065    862962,    420677,    669550,    160927,    564728,    345743,
1066   2226103,   -464886,   -901303,   -987068,   1874509,   1793762,
1067    550179,    259915,   1355668,   1369583,    881387,    464691 },
1068{   -70665,   -175601,    141432,   -168048,    -14801,   -831300,
1069    142003,    556038,   -566398,   -928995,   -504155,   -974697,
1070   1280885,  -1006617,   1139783,   1400473,   -264787,   -180275,
1071    339025,     88982,     -8517,    -75243,    540989,   -230549,
1072    170314,    260646,    434800,   -148093,   -383027,    130918,
1073   1881039,   1480632,    219182,    446150,   2081210,   1999405,
1074   1843811,    184581,    740730,   -732676,    460565,    862962,
1075   9542197,    598427,    615335,    753093,  -1011186,  -1314085,
1076    398116,    555681,    202880,   -106704,    361836,   1001736,
1077   -193856,   1626163,    415582,    677944,     34398,    -53151 },
1078{   323680,    277745,   -364301,   -173909,   -645026,     92752,
1079   -705946,   -912101,    219882,     34570,   -619100,   -195461,
1080   -907772,   1510944,   -163448,   -194366,   1033368,   1282467,
1081    -76721,    -48150,   -194997,   -120165,   -120954,    -33921,
1082    374435,    556038,    375144,    341831,    539048,      6903,
1083   1374481,   2028703,   2131242,   2384819,    441739,    514031,
1084    259416,   2024743,   -634455,    822447,    209682,    420677,
1085    598427,   9555644,  -1425603,  -1320694,    880317,    938397,
1086    314696,    388391,    460877,    589699,   1382240,    672308,
1087   1367602,   -201659,   -161409,     48471,    433341,    479562 },
1088{  -306626,   1142629,   1327432,   1374468,    948123,   1029280,
1089    303846,    173909,    417041,    181639,    657335,    672190,
1090    845735,    -84488,   1465214,   -354274,   -841902,    591665,
1091   -844298,   1010509,   2027614,   2296097,   -386226,    392609,
1092    533201,    168048,     56122,    497749,   1324835,    939640,
1093   1719820,    728989,    183886,    676732,    823198,    797609,
1094    407036,   2102675,  -1019961,    616139,    410595,    669550,
1095    615335,  -1425603,   9525899,   -922605,    383446,    869959,
1096   1424693,    258563,    749565,    970448,    847509,   1270876,
1097   1739733,    322404,   -140179,    304912,    760491,    837817 },
1098{  1313064,   -511495,    507491,    970448,   1809872,   1870930,
1099      8141,   -589699,   -959827,    801390,    958289,   1067415,
1100    977959,   -168721,   -322981,   1370158,    932180,  -1186711,
1101   1159232,   -548042,    544572,    395949,    987068,   1990107,
1102    361937,    106704,   -243208,    969010,   1076200,    893440,
1103   1797057,    729610,    817507,    428854,    980270,   1149437,
1104    514498,   2034273,  -1064643,    496044,    917099,    160927,
1105    753093,  -1320694,   -922605,   9636580,    553694,    534719,
1106    645482,   1375351,    637431,    991478,    941340,   1371723,
1107   1773876,    214989,    274819,    -87262,    976350,   1060836 },
1108{   252035,    690957,    749677,   -591665,    271102,      5936,
1109   -458522,   1282467,    990976,    786908,    184137,    -77371,
1110    -88136,    838816,   -646361,    983080,   1618486,   -144650,
1111    160001,    265956,    360063,    156305,    324349,   -176847,
1112   1478699,   -180275,    377848,    -46323,   1662370,   2205485,
1113    457171,   1329038,    554735,     52848,     88030,    266108,
1114   2015366,    565518,    477785,   -991207,    556792,    564728,
1115  -1011186,    880317,    383446,    553694,   9430347,  -1369689,
1116    349451,    575005,    274854,   1186711,    615937,     27911,
1117   -113147,   1538324,    703750,    628708,    -90307,     47895 },
1118{   359595,    138430,   -736067,    869959,    733117,    922600,
1119    938283,   -938397,   -468241,    478109,   1419884,   1592128,
1120    -37750,    938283,    736067,  -1185154,    -89570,   1369689,
1121   -294770,   -138430,    359595,    623743,   -345743,    778274,
1122    -37750,   1314085,   1285755,   2392480,    529993,    560846,
1123    529993,   1419884,    733117,    838622,    836672,    512340,
1124   2392480,    478109,    468241,  -1285755,    778274,    345743,
1125  -1314085,    938397,    869959,    534719,  -1369689,   9863218,
1126    623743,    294770,   1185154,    534719,    838622,    630744,
1127    560846,   1592128,    922600,    630744,    512340,    241465 },
1128{  -641626,   2249771,   2283835,   2296097,   1180007,   1163360,
1129    202993,    120165,    215172,    705838,   1026456,    975058,
1130     93016,   -173581,    745609,   -497648,     91780,   -156305,
1131   -280012,    966020,   1429091,    463232,    787254,   1224544,
1132    161601,     75243,    133451,    687597,    928398,    818541,
1133   1063106,    471151,    412702,   1460686,    858688,    727388,
1134    703575,    492429,    363388,    448790,   -437370,   2226103,
1135    398116,    314696,   1424693,    645482,    349451,    623743,
1136   9650591,     40627,     36916,    395949,   -673360,   -715348,
1137   1164234,    570996,    609164,   1662689,    947959,    876663 },
1138{  2146670,   -274693,   1289791,    844298,   2040804,   2033501,
1139   -548420,    -76721,     21883,   -296006,    183407,    116100,
1140    -12792,   -227594,    -70697,    826358,    -49667,    160001,
1141   1929874,   1027277,   -650127,    280012,   1193708,    822442,
1142   -217415,    339025,    446862,     12117,    487307,    390691,
1143   1037168,    525818,   1478096,    385767,    837310,    715354,
1144    548474,    389124,    383068,    549076,   2184399,   -464886,
1145    555681,    388391,    258563,   1375351,    575005,    294770,
1146     40627,   9892701,   -875466,  -1159232,    174626,    145880,
1147    881541,    372173,   1423594,    328489,    684086,    596881 },
1148{   450372,   1168420,   -918231,    354274,   -141671,   -237440,
1149   1327027,   -194366,     16527,   -333894,   2045993,   2021029,
1150     50568,    105601,   -150896,   -315612,   -239427,    983080,
1151    826358,   -769672,   1055311,    497648,    419516,    -71139,
1152   -310149,   1400473,   1131648,    724395,    382382,    -62102,
1153    380586,    777043,   1603695,    861221,    714527,    282551,
1154    886936,    655599,    914305,    654659,   1778168,   -901303,
1155    202880,    460877,    749565,    637431,    274854,   1185154,
1156     36916,   -875466,   9366725,  -1370158,   -150298,   -240868,
1157    931771,   1014476,   1725934,    617974,    912445,    466279 },
1158{   544572,    548042,    322981,   -922605,    817507,    274819,
1159   -168721,   1320694,   1064643,   2034273,    729610,    214989,
1160    361937,      8141,   -507491,   -637431,    932180,   -553694,
1161  -1375351,    511495,   1313064,    645482,   -160927,    917099,
1162    977959,   -753093,   -496044,    514498,   1797057,   1773876,
1163   1076200,    958289,   1809872,    941340,    980270,    976350,
1164    969010,    801390,    959827,    243208,   1990107,   -987068,
1165   -106704,    589699,    970448,    991478,   1186711,    534719,
1166    395949,  -1159232,  -1370158,   9636580,    428854,    -87262,
1167    893440,   1067415,   1870930,   1371723,   1149437,   1060836 },
1168{   974197,    122162,   -300697,    676732,    -51641,   1555024,
1169  -1411301,  -2384819,   -163042,   1029649,   -207553,   1689816,
1170    133113,    566500,   -938840,   -861221,    109289,    -52848,
1171   -385767,   -582544,    710846,   1460686,    240058,   -232520,
1172    106964,   -446150,   -304459,   1120123,   1573000,   1450482,
1173   1420834,   1701283,   2194488,   3181394,   1354558,   1262477,
1174   1084874,    582183,    398738,    316040,   -690022,   1874509,
1175    361836,   1382240,    847509,    941340,    615937,    838622,
1176   -673360,    174626,   -150298,    428854,  10316742,   -302301,
1177   1377257,    579841,   1080690,   2126928,   1382532,   1399098 },
1178{   970167,    114411,   -201852,    304912,   1658234,   -306251,
1179    412784,    -48471,  -1897300,   -705664,   1608578,   -650727,
1180    819885,   -228004,   -740063,   -617974,    -14748,   -628708,
1181   -328489,   -324816,    710415,   1662689,  -1369583,   1625911,
1182    296474,   -677944,   -452499,    576540,   1419422,   1195850,
1183   1935230,   1084875,   1017334,   2126928,   2449803,   2210810,
1184    971353,    848831,    809582,    222468,   -767926,   1793762,
1185   1001736,    672308,   1270876,   1371723,     27911,    630744,
1186   -715348,    145880,   -240868,    -87262,   -302301,   9973937,
1187   1164000,   1412675,   1304994,   2348652,   1617815,   1274290 },
1188{   685179,    353241,   1011354,    939640,    930437,   1265237,
1189    192453,     -6903,   -205594,    457864,    851797,   1127444,
1190  -1541056,    314167,     50541,     62102,  -1583360,  -2205485,
1191   -390691,   -477553,    893382,    818541,   -235428,    691823,
1192    463749,   -130918,    928749,   1739931,   1537872,   1056306,
1193    -43244,   1573128,   1374865,   1450482,   2088435,   3110960,
1194   -947943,   1592741,   1262478,   1969096,    765957,    550179,
1195   -193856,   1367602,   1739733,   1773876,   -113147,    560846,
1196   1164234,    881541,    931771,    893440,   1377257,   1164000,
1197   9924096,   1170942,   1090973,   1195850,   -171109,    570357 },
1198{   842290,    701754,    579317,    672190,    789454,    970157,
1199     33840,    195461,    280188,     85076,    791284,    933159,
1200    138873,  -1430459,  -2059199,  -2021029,    199622,     77371,
1201   -116100,   -150481,   1017050,    975058,     37089,    787054,
1202   1130957,    974697,     56984,    318584,    259178,   1127444,
1203   1336998,     23060,   1905806,   1689816,   2181651,   1649898,
1204   1580957,   -584577,   2003496,   1655486,    534694,    259915,
1205   1626163,   -201659,    322404,    214989,   1538324,   1592128,
1206    570996,    372173,   1014476,   1067415,    579841,   1412675,
1207   1170942,  10318773,   -476988,   -650727,   2056497,   1903783 },
1208{   413805,    276705,    689558,   1029280,   1116057,   1398089,
1209    301167,    -92752,    643329,    211711,    723124,    970157,
1210    136776,    294915,    296717,    237440,    169475,     -5936,
1211  -2033501,  -1859624,   -713206,   1163360,    -40312,    883541,
1212   -829956,    831300,     61929,    456349,   2236917,   1265237,
1213   1238487,   1716065,   -599126,   1555024,   2301594,   1267008,
1214    522508,   -677810,   1978734,    548725,   1616180,   1355668,
1215    415582,   -161409,   -140179,    274819,    703750,    922600,
1216    609164,   1423594,   1725934,   1870930,   1080690,   1304994,
1217   1090973,   -476988,   9965406,   -306251,   1985767,   1050572 },
1218{   710415,    324816,    740063,   1270876,   1017334,   1304994,
1219   -228004,   -672308,   -809582,    848831,   1084875,   1412675,
1220    296474,    412784,    201852,    240868,    -14748,    -27911,
1221   -145880,   -114411,    970167,   -715348,  -1793762,   -767926,
1222    819885,  -1001736,   -222468,    971353,   1935230,   1164000,
1223   1419422,   1608578,   1658234,   -302301,   2449803,   1617815,
1224    576540,   -705664,   1897300,    452499,   1625911,   1369583,
1225    677944,     48471,    304912,    -87262,    628708,    630744,
1226   1662689,    328489,    617974,   1371723,   2126928,   2348652,
1227   1195850,   -650727,   -306251,   9973937,   2210810,   1274290 },
1228{   641225,    359546,    583661,    797609,   1088753,   1267008,
1229   -296438,   -514031,  -1050403,   1505096,   1815967,   1649898,
1230    220882,    255058,   -132373,   -282551,    376413,   -266108,
1231   -715354,   -603574,    617418,    727388,   -569944,    590846,
1232  -1337772,  -1999405,    688033,    416500,   -233522,   3110960,
1233   1803583,   1204145,   1188443,   1262477,   -201757,   3201103,
1234   -643142,   1508451,   1301930,   2001203,   1154656,    881387,
1235     34398,    433341,    760491,    976350,    -90307,    512340,
1236    947959,    684086,    912445,   1149437,   1382532,   1617815,
1237   -171109,   2056497,   1985767,   2210810,  10232054,    921690 },
1238{   672422,    404334,    198558,    837817,   1137943,   1050572,
1239    171784,   -479562,   -802084,    928627,   1553990,   1903783,
1240    225128,    171784,   -198558,   -466279,    121534,    -47895,
1241   -596881,   -404334,    672422,    876663,   -464691,    728966,
1242    225128,     53151,  -3160187,    431676,   1382550,    570357,
1243   1382550,   1553990,   1137943,   1399098,   1772669,    921690,
1244    431676,    928627,    802084,   3160187,    728966,    464691,
1245    -53151,    479562,    837817,   1060836,     47895,    241465,
1246    876663,    596881,    466279,   1060836,   1399098,   1274290,
1247    570357,   1903783,   1050572,   1274290,    921690,  12691094 }
1248};
1249
1250static int map[60] = {
1251 39, 38, 37, 36, 41, 40, 54, 55, 56, 57,
1252 58, 59, 49, 48, 52, 53, 50, 51, 42, 43,
1253 44, 45, 46, 47, 33, 32, 31, 30, 35, 34,
1254 12, 13, 14, 15, 16, 17, 29, 28, 24, 25,
1255 27, 26, 21, 20, 19, 18, 23, 22,  2,  3,
1256  5,  4,  1,  0, 10, 11,  9,  8,  6,  7};
1257
1258