-
Notifications
You must be signed in to change notification settings - Fork 1
/
TSP_tb.cc
32 lines (25 loc) · 90.4 KB
/
TSP_tb.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cstdlib>
#include <ctime>
#include "genetic_block.h"
CCS_MAIN(int argc, char* argv[]) {
srand(time(0));
genetic_block GHLS;
//North American cities dataset, SGB128 Standford dataset
ac_int<11, false> distance_matrix[numberOfNodes][numberOfNodes]= {{0, 966, 1513, 2964, 1149, 927, 1611, 1510, 390, 466, 1820, 1718, 504, 1179, 308, 1017, 1167, 3250, 622, 2947, 1240, 244, 601, 1366, 1008, 1190, 315, 326, 2452, 1958, 892, 1031, 530, 2675, 1518, 1648, 1157, 417, 1222, 1583, 1998, 126, 535, 1065, 707, 1807, 844, 435, 1051, 775, 957, 671, 1003, 245, 3014, 2802, 952, 187, 666, 2909, 2174, 675, 1308, 1525, 401, 607, 1336, 1053, 1853, 1881, 640, 88, 859, 216, 1218, 1113, 745, 710, 2038, 2816, 1666, 1742, 996, 1268, 1589, 3010, 1254, 953, 128, 395, 47, 2493, 2355, 130, 1330, 218, 1133, 2269, 3104, 1715, 527, 1328, 1807, 567, 309, 562, 910, 1487, 1540, 1178, 2390, 3005, 2114, 1786, 2072, 1192, 694, 961, 1018, 168, 565, 1700, 1636, 2019, 1458, 1564, 2871, 348}, {966, 0, 2410, 1520, 1817, 729, 686, 290, 1823, 168, 2027, 172, 1610, 1500, 1002, 1247, 1550, 2390, 3229, 2890, 2198, 1000, 393, 776, 373, 278, 962, 428, 2645, 1452, 2120, 223, 556, 2505, 1327, 3126, 1461, 862, 1566, 2101, 524, 1872, 661, 1520, 561, 2407, 1439, 460, 870, 287, 534, 291, 981, 796, 3259, 1195, 2986, 805, 829, 2793, 998, 2567, 933, 266, 1132, 996, 735, 335, 2701, 257, 1278, 589, 947, 709, 1425, 127, 1747, 393, 2739, 1078, 1343, 191, 1726, 899, 404, 2547, 1810, 396, 850, 294, 434, 2519, 524, 2297, 1319, 1168, 1351, 1832, 846, 1407, 1293, 1752, 1002, 2152, 436, 361, 1442, 584, 1359, 766, 2836, 737, 1313, 697, 825, 963, 1855, 267, 548, 1127, 432, 2265, 558, 571, 943, 198, 1917, 2541}, {1513, 2410, 0, 604, 481, 2742, 1833, 826, 214, 1618, 1712, 567, 544, 1313, 1270, 269, 1432, 1783, 2678, 360, 1725, 2260, 1549, 1016, 253, 1548, 434, 769, 2873, 1484, 572, 2104, 419, 2422, 1461, 542, 2941, 1221, 827, 2351, 820, 486, 1415, 1565, 1085, 1353, 2039, 1620, 1238, 290, 1244, 487, 1146, 736, 2295, 1312, 250, 2969, 182, 2678, 1096, 356, 1299, 914, 189, 726, 516, 323, 1830, 824, 580, 1361, 915, 797, 693, 312, 656, 1046, 2093, 1054, 702, 2894, 847, 1293, 1397, 2885, 1695, 2709, 489, 1160, 341, 2341, 485, 450, 1412, 1157, 681, 1773, 1542, 977, 1918, 722, 591, 966, 1852, 509, 1189, 490, 1081, 779, 1906, 1273, 1566, 2936, 2141, 1277, 606, 1066, 752, 486, 590, 2132, 1095, 2154, 1211, 2217, 2673, 1570}, {2964, 1520, 604, 0, 595, 1289, 1446, 466, 1139, 430, 428, 201, 452, 1574, 1068, 255, 965, 1948, 1842, 820, 1600, 1933, 1824, 1128, 305, 958, 1320, 291, 1707, 1799, 692, 1593, 2274, 2359, 943, 975, 1358, 2701, 1229, 2355, 1162, 813, 343, 1049, 1170, 1060, 1021, 2220, 586, 554, 1111, 578, 1354, 939, 2302, 709, 369, 410, 2871, 2838, 1134, 614, 1650, 2790, 532, 796, 1803, 716, 2080, 591, 1460, 492, 2106, 967, 635, 582, 442, 477, 999, 1419, 1403, 1187, 3034, 874, 1952, 3023, 1685, 2612, 2606, 102, 1199, 2444, 90, 411, 1780, 1418, 811, 2787, 1704, 629, 489, 3042, 2112, 441, 691, 2308, 1412, 639, 1253, 187, 3108, 1384, 1567, 808, 864, 980, 1828, 1229, 1861, 861, 499, 1408, 986, 2719, 1437, 769, 1038, 2343}, {1149, 1817, 481, 595, 0, 494, 550, 2641, 765, 934, 1813, 1516, 378, 1363, 1344, 1513, 1249, 2487, 1850, 1192, 708, 1360, 1351, 2999, 1178, 1198, 730, 1127, 2691, 921, 934, 1578, 1110, 409, 1238, 712, 1839, 1014, 2402, 1105, 387, 1157, 1047, 1064, 882, 997, 881, 1180, 1186, 1344, 1383, 443, 1414, 1109, 2352, 1379, 714, 507, 1072, 818, 929, 740, 1633, 324, 2397, 695, 551, 809, 2462, 211, 561, 1407, 678, 1898, 1275, 670, 1087, 549, 2152, 1915, 769, 1220, 1024, 2142, 1251, 1325, 2063, 2584, 2518, 2916, 55, 1545, 213, 54, 1741, 1618, 1731, 2845, 374, 734, 712, 839, 1258, 2134, 196, 1245, 3213, 75, 944, 749, 2203, 103, 1217, 576, 1526, 2056, 291, 1205, 216, 1994, 324, 2187, 260, 2586, 1974, 2352, 2243, 691}, {927, 729, 2742, 1289, 494, 0, 1279, 1197, 2956, 299, 888, 491, 1408, 1432, 1360, 327, 2375, 2595, 2717, 1097, 841, 468, 1909, 2698, 2007, 1034, 970, 537, 1344, 1703, 463, 1893, 1067, 2705, 1265, 961, 808, 1497, 285, 819, 1356, 483, 1362, 2101, 701, 2384, 952, 1006, 232, 1944, 740, 751, 1400, 1226, 1919, 453, 819, 715, 1172, 2595, 1900, 392, 1573, 367, 542, 1942, 1151, 512, 1171, 593, 839, 473, 1619, 711, 704, 883, 1174, 386, 2360, 1503, 344, 1528, 413, 903, 3288, 2947, 590, 2962, 2481, 2564, 2955, 2502, 877, 152, 1374, 1579, 762, 565, 448, 1398, 916, 1972, 1266, 973, 1911, 757, 2133, 1766, 1468, 548, 1747, 836, 2217, 1367, 2127, 367, 2719, 1246, 1647, 120, 1429, 1526, 928, 1791, 1865, 2917, 543, 1943}, {1611, 686, 1833, 1446, 550, 1279, 0, 250, 1500, 2749, 2035, 832, 240, 1252, 1220, 589, 1160, 1009, 2898, 605, 1138, 757, 1058, 1473, 1714, 3164, 719, 777, 1926, 1043, 811, 1144, 1382, 2898, 1225, 2773, 1700, 493, 326, 1856, 2772, 1230, 1018, 2416, 1501, 1519, 1935, 1053, 647, 893, 1135, 1056, 1130, 1193, 2620, 1196, 821, 929, 744, 2840, 1223, 2548, 1579, 505, 624, 1149, 3062, 375, 2223, 983, 1221, 788, 434, 1712, 1180, 1814, 760, 474, 1656, 1417, 885, 1993, 1111, 1147, 1259, 876, 1954, 1365, 2859, 2791, 2538, 1198, 579, 806, 1477, 1212, 788, 3031, 2577, 1456, 976, 2190, 1200, 1379, 1227, 2381, 1623, 1010, 3096, 696, 2047, 1339, 1379, 783, 1042, 1148, 446, 1930, 668, 1815, 646, 342, 273, 2580, 861, 2784, 249, 246}, {1510, 290, 826, 466, 2641, 1197, 250, 0, 637, 1305, 1061, 369, 724, 1246, 944, 203, 718, 2697, 1473, 904, 805, 1023, 572, 471, 1538, 2880, 2936, 976, 1718, 1096, 836, 1842, 890, 3126, 1418, 1039, 2688, 1356, 758, 1686, 239, 2646, 891, 1879, 1816, 315, 1247, 2116, 773, 719, 314, 1656, 1715, 1033, 2282, 249, 1091, 732, 1388, 2222, 1430, 944, 1441, 447, 694, 972, 208, 2088, 1575, 346, 522, 1170, 922, 376, 2095, 627, 2444, 513, 1573, 1229, 1081, 1612, 2070, 1258, 557, 1983, 1549, 2853, 1271, 3040, 2830, 466, 2554, 505, 728, 1315, 735, 3057, 105, 917, 1047, 995, 1249, 935, 1079, 789, 3286, 599, 1821, 2495, 1934, 1086, 836, 837, 2244, 418, 1170, 633, 2725, 577, 1336, 2337, 1294, 1917, 1807, 1989, 345, 413}, {390, 1823, 214, 1139, 765, 2956, 1500, 637, 0, 345, 663, 2647, 843, 1044, 1192, 1311, 1048, 2904, 2981, 2015, 913, 565, 880, 1404, 700, 1366, 2652, 2760, 2796, 1226, 278, 1266, 1361, 1960, 1646, 782, 282, 2448, 134, 1702, 750, 230, 2219, 1664, 1516, 247, 561, 1380, 1239, 766, 385, 602, 2078, 1470, 2903, 684, 1054, 1151, 525, 1865, 432, 1102, 1591, 2787, 514, 880, 821, 865, 914, 333, 982, 464, 1103, 983, 1133, 1628, 649, 1743, 2176, 1280, 483, 1553, 1069, 1355, 1283, 2472, 885, 1199, 2750, 1342, 3014, 840, 2537, 2562, 1835, 510, 829, 2831, 58, 1739, 1427, 1069, 1929, 952, 798, 1535, 547, 2084, 1382, 1432, 560, 1309, 1028, 1204, 1339, 1083, 1098, 1388, 629, 2858, 785, 827, 1197, 725, 1127, 2778, 1071, 405}, {466, 168, 1618, 430, 934, 299, 2749, 1305, 345, 0, 1481, 1203, 2539, 1848, 748, 416, 2175, 2589, 3128, 828, 848, 673, 1155, 1634, 537, 512, 1051, 2459, 500, 1005, 518, 1257, 1138, 2944, 500, 1097, 389, 189, 2001, 1540, 483, 744, 522, 1841, 1003, 951, 731, 373, 575, 1848, 431, 438, 1242, 1833, 1562, 251, 1075, 907, 1231, 2386, 997, 391, 1836, 748, 2405, 1114, 988, 842, 2546, 2242, 441, 931, 976, 1224, 1474, 292, 1237, 257, 295, 642, 529, 1307, 855, 1357, 2296, 1805, 1272, 1784, 1220, 2964, 1316, 521, 2429, 2464, 1272, 1673, 623, 2934, 358, 1752, 1234, 2504, 2025, 1817, 840, 1294, 2440, 1333, 2775, 944, 1140, 3110, 1209, 899, 883, 180, 394, 152, 624, 688, 2293, 2471, 1433, 2797, 973, 2115, 281, 723}, {1820, 2027, 1712, 428, 1813, 888, 2035, 1061, 663, 1481, 0, 239, 1071, 1887, 1618, 627, 760, 1394, 2880, 386, 1015, 1056, 1263, 738, 833, 1527, 268, 1321, 238, 2026, 722, 1349, 800, 1597, 1464, 1168, 201, 207, 1318, 418, 658, 380, 603, 1337, 1701, 1511, 1167, 296, 932, 1093, 1622, 541, 707, 997, 1666, 1765, 791, 1017, 391, 1777, 479, 1032, 952, 867, 812, 2149, 228, 821, 2644, 667, 1745, 475, 1086, 768, 1856, 899, 614, 1289, 2148, 2521, 1024, 1358, 1395, 1310, 1194, 1354, 605, 2171, 1681, 905, 2938, 1221, 2873, 2437, 1659, 1425, 771, 2035, 236, 1442, 1252, 629, 703, 1875, 1594, 1313, 2124, 1238, 837, 2568, 1645, 2030, 1658, 1292, 1183, 456, 550, 1349, 1156, 696, 293, 701, 1214, 1225, 2076, 923, 804, 272}, {1718, 172, 567, 201, 1516, 491, 832, 369, 2647, 1203, 239, 0, 353, 724, 1774, 605, 1515, 2690, 1858, 703, 1222, 775, 534, 234, 795, 1757, 1285, 198, 3156, 2152, 2347, 1038, 1000, 2179, 195, 1191, 1005, 458, 1350, 2115, 2416, 620, 585, 1009, 974, 2991, 852, 1200, 1247, 271, 136, 1684, 589, 462, 2095, 2365, 1552, 624, 815, 2654, 646, 206, 927, 595, 1019, 865, 3026, 829, 2661, 803, 1305, 1699, 1053, 1172, 470, 1218, 682, 115, 2996, 843, 1048, 720, 1483, 810, 980, 1822, 827, 1504, 2068, 1991, 870, 456, 1347, 2815, 1222, 1666, 2414, 3040, 1123, 1545, 1020, 664, 2028, 483, 1652, 2137, 2121, 1208, 2310, 749, 185, 1520, 423, 3041, 1070, 296, 1053, 446, 771, 1265, 898, 1860, 2158, 2866, 1433, 2995, 1948, 457}, {504, 1610, 544, 452, 378, 1408, 240, 724, 843, 2539, 1071, 353, 0, 1284, 416, 2442, 1459, 1765, 2935, 1815, 907, 982, 1365, 1795, 905, 750, 1489, 1165, 2383, 1330, 2176, 2114, 586, 1971, 699, 1539, 83, 765, 1665, 2291, 943, 2290, 380, 1642, 857, 1236, 2370, 1228, 1130, 504, 1086, 807, 2579, 344, 2552, 1311, 1916, 1654, 69, 2473, 747, 878, 1127, 1064, 202, 1110, 1230, 2178, 2477, 831, 1399, 1254, 1913, 1030, 1617, 678, 721, 558, 2125, 229, 869, 2599, 898, 779, 1636, 2030, 622, 1394, 1401, 2378, 1974, 2373, 2764, 1217, 1933, 1308, 1801, 1045, 160, 646, 1123, 979, 2054, 2141, 736, 2195, 3003, 1313, 1327, 1722, 2937, 3183, 640, 1865, 969, 343, 800, 402, 626, 663, 728, 2318, 504, 139, 2093, 1423, 369, 1618}, {1179, 1500, 1313, 1574, 1363, 1432, 1252, 1246, 1044, 1848, 1887, 724, 1284, 0, 1054, 998, 3280, 2912, 2213, 413, 646, 667, 1572, 358, 857, 285, 435, 1395, 1650, 1287, 1082, 2334, 2361, 3136, 491, 990, 1363, 444, 884, 2521, 828, 909, 1833, 962, 1046, 1747, 1057, 2708, 659, 913, 1430, 445, 1026, 2334, 2678, 1106, 1002, 2064, 1800, 2922, 462, 348, 488, 454, 868, 405, 1327, 885, 325, 598, 1393, 1326, 1427, 1705, 1028, 1088, 1340, 951, 2375, 1127, 1844, 951, 2739, 400, 1724, 1762, 830, 1521, 1300, 1711, 2417, 669, 1310, 2706, 1073, 1936, 2236, 1021, 2879, 1748, 227, 958, 1983, 2167, 1841, 230, 3061, 1901, 1174, 1481, 668, 458, 1252, 1340, 402, 2146, 1023, 487, 994, 721, 888, 1384, 1400, 2251, 1597, 3064, 1879, 533}, {308, 1002, 1270, 1068, 1344, 1360, 1220, 944, 1192, 748, 1618, 1774, 416, 1054, 0, 85, 1794, 117, 3213, 1155, 1008, 854, 1257, 791, 1007, 2003, 210, 465, 1763, 471, 424, 1330, 2457, 710, 1658, 1230, 773, 1123, 1569, 1367, 1143, 891, 1126, 1457, 667, 799, 1524, 1182, 2032, 960, 782, 760, 1056, 781, 680, 1125, 479, 1104, 2400, 1329, 1030, 496, 1395, 1082, 127, 374, 937, 1106, 2695, 2206, 1236, 1305, 918, 1525, 1291, 931, 836, 639, 2757, 520, 789, 106, 911, 1847, 1198, 1808, 896, 1732, 1418, 1371, 1750, 809, 1695, 1236, 1795, 869, 2252, 641, 2622, 1516, 1243, 1462, 2077, 1861, 1867, 2297, 709, 2031, 2458, 1485, 1603, 2337, 2001, 2932, 783, 1098, 2824, 80, 726, 1127, 211, 2574, 262, 2748, 1391, 131, 328, 1581}, {1017, 1247, 269, 255, 1513, 327, 589, 203, 1311, 416, 627, 605, 2442, 998, 85, 0, 1252, 1461, 505, 1127, 111, 768, 394, 425, 1214, 206, 1775, 172, 2480, 204, 627, 1428, 921, 246, 1745, 63, 1013, 533, 1040, 2354, 861, 1206, 1246, 2180, 1300, 1653, 501, 1657, 701, 2440, 1180, 770, 1349, 919, 2263, 2300, 388, 590, 1346, 848, 1166, 365, 1214, 549, 689, 696, 1580, 143, 2940, 938, 1603, 1185, 765, 1089, 1940, 1688, 1002, 747, 1451, 333, 1179, 1236, 976, 646, 2993, 2305, 979, 1802, 1626, 1728, 1345, 1010, 2016, 1637, 2277, 1818, 554, 377, 2754, 1084, 1925, 635, 1171, 1964, 1638, 2323, 3202, 778, 2450, 2324, 1765, 2021, 819, 261, 1042, 652, 1744, 1883, 1081, 859, 562, 1673, 1283, 1767, 2249, 2449, 2812, 558}, {1167, 1550, 1432, 965, 1249, 2375, 1160, 718, 1048, 2175, 760, 1515, 1459, 3280, 1794, 1252, 0, 2358, 1752, 2920, 1230, 170, 1358, 1574, 899, 672, 109, 1582, 2588, 1174, 854, 694, 945, 3496, 1272, 2903, 1094, 773, 980, 1184, 1194, 735, 1488, 2300, 1580, 2738, 1363, 626, 835, 895, 2441, 904, 233, 1232, 2613, 1515, 2316, 499, 1065, 1745, 1824, 1447, 1663, 744, 414, 244, 677, 622, 1970, 1145, 1426, 1686, 1431, 979, 2019, 1441, 2355, 593, 2518, 1625, 1572, 636, 970, 1000, 1159, 945, 1383, 1848, 1708, 1936, 1767, 1472, 1415, 2024, 821, 2059, 2176, 1759, 3098, 1298, 1526, 3235, 2037, 1065, 1741, 2181, 3228, 2000, 1035, 2382, 435, 2018, 320, 2268, 2073, 2234, 1234, 998, 2830, 1190, 308, 1138, 414, 2969, 709, 2946, 624, 2482}, {3250, 2390, 1783, 1948, 2487, 2595, 1009, 2697, 2904, 2589, 1394, 2690, 1765, 2912, 117, 1461, 2358, 0, 2659, 1434, 1777, 990, 433, 715, 658, 373, 357, 305, 1002, 1540, 375, 411, 705, 2636, 2018, 2880, 2996, 799, 1166, 1620, 1207, 1160, 564, 2542, 1700, 354, 2117, 1514, 477, 1370, 240, 2383, 1881, 82, 2853, 373, 864, 2376, 1002, 2224, 836, 2047, 278, 319, 412, 983, 1420, 394, 2058, 188, 1671, 1338, 2350, 1490, 1980, 1123, 1045, 1920, 1870, 331, 126, 499, 754, 981, 1380, 2151, 1370, 2282, 1754, 1779, 1975, 1094, 1376, 1357, 832, 801, 926, 250, 1400, 1435, 1771, 2279, 1629, 2150, 842, 2284, 3047, 2026, 2851, 194, 509, 2900, 538, 1575, 196, 929, 2897, 587, 1685, 2963, 653, 1438, 653, 2064, 2170, 1965, 945, 280}, {622, 3229, 2678, 1842, 1850, 2717, 2898, 1473, 2981, 3128, 2880, 1858, 2935, 2213, 3213, 505, 1752, 2659, 0, 899, 509, 1985, 1580, 935, 1000, 1801, 73, 663, 2690, 1507, 677, 1288, 511, 2029, 1156, 386, 2695, 2746, 871, 1558, 750, 1081, 1365, 1552, 1942, 169, 558, 2455, 612, 339, 418, 614, 3353, 1674, 3035, 51, 694, 1017, 2371, 2295, 791, 993, 977, 1651, 549, 824, 475, 381, 2027, 859, 715, 1583, 682, 2142, 1871, 1021, 476, 1100, 848, 973, 1349, 1701, 516, 539, 1163, 3125, 1126, 1265, 2179, 1825, 1753, 1035, 1398, 1246, 471, 895, 1212, 2928, 3022, 481, 1945, 3009, 535, 1105, 1850, 1385, 3150, 1955, 2812, 2484, 2399, 2958, 902, 1512, 1097, 1388, 441, 2108, 1167, 1818, 2398, 1412, 569, 1608, 1293, 3166, 1208, 1012}, {2947, 2890, 360, 820, 1192, 1097, 605, 904, 2015, 828, 386, 703, 1815, 413, 1155, 1127, 2920, 1434, 899, 0, 676, 551, 1403, 302, 212, 636, 1573, 273, 2897, 1593, 1300, 1681, 800, 2164, 767, 883, 1439, 2455, 2088, 2378, 950, 624, 702, 2419, 901, 146, 751, 195, 1657, 1227, 622, 1084, 741, 3108, 1430, 1120, 989, 557, 1524, 637, 917, 759, 675, 2197, 1258, 1156, 910, 670, 1619, 148, 874, 627, 927, 896, 1029, 1406, 323, 999, 2841, 2884, 958, 485, 1663, 866, 1072, 2050, 2165, 2025, 1286, 2322, 1799, 786, 1574, 1374, 1397, 414, 1876, 1159, 963, 1326, 367, 3025, 1366, 748, 1390, 2306, 2251, 2049, 2502, 2510, 94, 606, 892, 2615, 1301, 1217, 2051, 1195, 2793, 1300, 1253, 1003, 227, 1908, 1095, 2262, 431, 861}, {1240, 2198, 1725, 1600, 708, 841, 1138, 805, 913, 848, 1015, 1222, 907, 646, 1008, 111, 1230, 1777, 509, 676, 0, 436, 156, 2750, 1222, 1117, 321, 1380, 2582, 1308, 751, 1707, 1198, 2733, 1075, 1164, 462, 1146, 2186, 645, 415, 824, 754, 1521, 1819, 1055, 932, 509, 1011, 2187, 270, 58, 1144, 496, 175, 1410, 168, 842, 316, 1826, 1575, 793, 1129, 1193, 1858, 727, 197, 489, 2295, 638, 786, 786, 727, 1141, 1998, 2083, 1168, 934, 2939, 42, 1262, 1051, 751, 1265, 920, 2460, 841, 3064, 1922, 971, 2296, 837, 1750, 1582, 344, 1193, 1167, 950, 1954, 1824, 1837, 1327, 1224, 857, 888, 1242, 3211, 1179, 2605, 2368, 127, 3099, 1511, 2673, 859, 1237, 1735, 1262, 434, 2961, 742, 497, 2028, 1795, 1344, 1806, 657, 661}, {244, 1000, 2260, 1933, 1360, 468, 757, 1023, 565, 673, 1056, 775, 982, 667, 854, 768, 170, 990, 1985, 551, 436, 0, 1026, 1306, 1766, 98, 889, 563, 1387, 1427, 827, 1687, 1663, 2841, 1253, 1053, 1401, 69, 1206, 648, 2557, 511, 869, 1772, 860, 322, 591, 497, 1131, 268, 2040, 941, 945, 899, 2536, 2890, 1596, 328, 178, 2639, 1133, 2029, 1255, 741, 804, 1262, 1989, 872, 1957, 414, 353, 735, 73, 781, 2243, 985, 2763, 1065, 2956, 691, 1691, 2960, 1191, 618, 1889, 2853, 1434, 1758, 2961, 2168, 936, 201, 1830, 1654, 390, 326, 583, 1500, 2341, 274, 1415, 2949, 758, 1001, 1166, 387, 1467, 2009, 1706, 2471, 419, 3125, 1328, 624, 989, 2035, 1732, 1180, 2057, 306, 2439, 1023, 1226, 537, 784, 2106, 1105, 322}, {601, 393, 1549, 1824, 1351, 1909, 1058, 572, 880, 1155, 1263, 534, 1365, 1572, 1257, 394, 1358, 433, 1580, 1403, 156, 1026, 0, 386, 298, 2932, 408, 696, 2683, 1415, 620, 1366, 1176, 1255, 1361, 655, 1631, 1086, 1153, 2738, 2526, 2486, 1046, 1822, 1146, 1413, 673, 772, 1373, 461, 1182, 2102, 1144, 738, 2366, 1307, 3074, 1577, 993, 2889, 740, 1168, 761, 678, 600, 199, 2589, 950, 2578, 260, 1054, 265, 1013, 160, 1320, 1230, 259, 2062, 2772, 838, 1696, 175, 2768, 379, 1155, 1362, 1805, 2333, 1655, 3142, 2142, 2078, 2193, 1700, 1030, 453, 1226, 2027, 1674, 967, 799, 241, 1146, 869, 1254, 932, 1019, 1701, 2906, 1572, 413, 2944, 1289, 3008, 1535, 2093, 2614, 1215, 1437, 2190, 665, 808, 815, 1010, 1260, 1993, 851, 807}, {1366, 776, 1016, 1128, 2999, 2698, 1473, 471, 1404, 1634, 738, 234, 1795, 358, 791, 425, 1574, 715, 935, 302, 2750, 1306, 386, 0, 668, 1488, 2704, 490, 1758, 1227, 1101, 1521, 889, 2943, 357, 967, 711, 1316, 469, 2033, 773, 2400, 2003, 1923, 1161, 823, 828, 238, 374, 686, 1214, 524, 2997, 899, 2334, 1788, 579, 3057, 1479, 2641, 980, 72, 889, 2252, 639, 403, 1535, 1550, 1335, 700, 862, 1003, 607, 1072, 1362, 697, 504, 961, 30, 140, 1636, 841, 821, 2484, 1483, 2630, 471, 2704, 2230, 1965, 3116, 433, 1376, 2135, 1118, 925, 1434, 1537, 1429, 303, 1387, 1985, 1670, 892, 569, 751, 1163, 568, 236, 2493, 1184, 3047, 946, 2969, 958, 374, 2672, 1925, 1412, 1605, 1625, 2365, 2336, 1506, 1053, 429, 1133, 554}, {1008, 373, 253, 305, 1178, 2007, 1714, 1538, 700, 537, 833, 795, 905, 857, 1007, 1214, 899, 658, 1000, 212, 1222, 1766, 298, 668, 0, 522, 1260, 2511, 2905, 1132, 615, 1638, 1010, 3150, 1463, 2005, 207, 294, 238, 1232, 778, 869, 1973, 1131, 1560, 1063, 359, 1130, 1250, 504, 1529, 644, 1231, 2752, 2220, 757, 1090, 732, 2959, 1742, 1197, 443, 1375, 1200, 1859, 529, 1257, 532, 1563, 1207, 1337, 822, 1300, 449, 1421, 249, 596, 1206, 2990, 2846, 1620, 1004, 156, 916, 2893, 2237, 1623, 1371, 2601, 2477, 2004, 627, 1936, 1257, 1291, 1013, 991, 1383, 1691, 825, 678, 2686, 486, 2194, 1146, 1025, 193, 1439, 1428, 1339, 103, 2148, 1049, 2659, 984, 2150, 323, 2021, 2476, 1580, 1243, 164, 1163, 324, 1109, 1208, 2917, 786}, {1190, 278, 1548, 958, 1198, 1034, 3164, 2880, 1366, 512, 1527, 1757, 750, 285, 2003, 206, 672, 373, 1801, 636, 1117, 98, 2932, 1488, 522, 0, 300, 1067, 132, 1892, 433, 1319, 1494, 2835, 1670, 891, 1818, 210, 1040, 1345, 807, 744, 1404, 1687, 1470, 888, 435, 540, 470, 507, 802, 886, 961, 1108, 270, 1649, 656, 1243, 1241, 993, 508, 908, 1630, 210, 1004, 1469, 1194, 438, 1806, 1807, 786, 1286, 1167, 1359, 915, 988, 496, 356, 3235, 1081, 1373, 126, 94, 1144, 1225, 126, 1359, 2522, 1277, 2870, 2451, 718, 2975, 1878, 2077, 1291, 1037, 1341, 1899, 430, 604, 2006, 1137, 192, 1898, 675, 1930, 1299, 196, 272, 2940, 3108, 196, 2762, 913, 2176, 2813, 640, 2534, 2644, 1236, 1141, 1490, 2798, 1775, 1704, 1796, 2587}, {315, 962, 434, 1320, 730, 970, 719, 2936, 2652, 1051, 268, 1285, 1489, 435, 210, 1775, 109, 357, 73, 1573, 321, 889, 408, 2704, 1260, 300, 0, 118, 1454, 2082, 1025, 1351, 808, 1640, 1355, 449, 283, 1578, 1406, 2074, 707, 681, 978, 2258, 1502, 3029, 1177, 780, 603, 862, 1433, 429, 1276, 864, 2617, 2637, 998, 674, 1752, 2099, 1988, 1156, 1612, 484, 243, 471, 2524, 564, 2233, 788, 1447, 703, 1422, 1200, 1689, 327, 809, 489, 2265, 1198, 1654, 2924, 961, 1211, 560, 2972, 1137, 2277, 2419, 1379, 2844, 128, 1651, 2917, 1054, 1873, 1534, 1392, 1837, 615, 737, 1136, 806, 575, 142, 2179, 380, 730, 1192, 1006, 2444, 1478, 1383, 1863, 1007, 2079, 2839, 2024, 463, 2702, 2122, 1359, 1424, 529, 2042, 293, 1285, 1498}, {326, 428, 769, 291, 1127, 537, 777, 976, 2760, 2459, 1321, 198, 1165, 1395, 465, 172, 1582, 305, 663, 273, 1380, 563, 696, 490, 2511, 1067, 118, 0, 2351, 887, 2228, 1986, 908, 2936, 278, 766, 746, 267, 1537, 2253, 561, 662, 190, 2032, 1895, 2745, 2580, 1159, 679, 272, 991, 763, 1401, 1179, 2810, 231, 2734, 1151, 792, 1831, 967, 2636, 727, 673, 565, 850, 1716, 1550, 2359, 626, 585, 1364, 788, 1532, 1446, 1275, 858, 647, 2312, 722, 1899, 1247, 3064, 774, 422, 2910, 1976, 366, 2183, 2647, 1353, 410, 2244, 1611, 2009, 1035, 747, 755, 1883, 316, 945, 2065, 828, 527, 841, 516, 3082, 1221, 1813, 659, 2815, 977, 1671, 3039, 629, 2182, 2658, 2050, 2819, 504, 2180, 534, 1366, 1545, 1047, 2996, 2982, 987}, {2452, 2645, 2873, 1707, 2691, 1344, 1926, 1718, 2796, 500, 238, 3156, 2383, 1650, 1763, 2480, 2588, 1002, 2690, 2897, 2582, 1387, 2683, 1758, 2905, 132, 1454, 2351, 0, 1338, 727, 2228, 1475, 2011, 1456, 1805, 391, 524, 1459, 888, 972, 624, 269, 1015, 1432, 1220, 2124, 2761, 1153, 512, 844, 797, 1383, 1184, 3038, 363, 871, 2794, 1658, 2240, 1382, 960, 1580, 1395, 786, 1165, 509, 758, 538, 705, 964, 497, 1151, 580, 1972, 1116, 1096, 157, 2322, 1363, 1004, 1347, 254, 2172, 1365, 2795, 1710, 2875, 372, 2254, 2621, 1180, 2615, 2186, 720, 2035, 1380, 2633, 2380, 404, 727, 2273, 905, 1213, 397, 786, 1375, 1629, 1043, 1212, 2920, 1077, 1721, 784, 967, 1267, 2761, 1979, 2830, 2952, 191, 664, 2153, 1763, 1593, 727, 160, 2660}, {1958, 1452, 1484, 1799, 921, 1703, 1043, 1096, 1226, 1005, 2026, 2152, 1330, 1287, 471, 204, 1174, 1540, 1507, 1593, 1308, 1427, 1415, 1227, 1132, 1892, 2082, 887, 1338, 0, 461, 1110, 2398, 3158, 531, 476, 1616, 134, 1174, 2336, 1713, 997, 960, 858, 449, 375, 1537, 2462, 1884, 923, 1030, 225, 1772, 1266, 1872, 248, 622, 724, 2706, 1764, 485, 1443, 1149, 2875, 1013, 886, 181, 566, 2019, 1704, 1090, 876, 386, 975, 661, 1448, 1007, 927, 1914, 500, 1018, 831, 351, 1329, 3312, 2901, 1595, 2609, 2772, 80, 2228, 162, 1318, 2557, 1300, 700, 2354, 924, 1029, 755, 793, 1734, 1022, 611, 911, 886, 1404, 555, 3133, 634, 1222, 90, 1546, 1080, 2266, 2159, 1862, 2073, 2520, 2978, 2387, 1869, 2249, 470, 1797, 1734, 2144, 473}, {892, 2120, 572, 692, 934, 463, 811, 836, 278, 518, 722, 2347, 2176, 1082, 424, 627, 854, 375, 677, 1300, 751, 827, 620, 1101, 615, 433, 1025, 2228, 727, 461, 0, 1479, 1000, 277, 1678, 1145, 681, 1376, 1293, 2483, 937, 1587, 1231, 2017, 463, 1392, 496, 1504, 1786, 2493, 826, 465, 1223, 1543, 2856, 954, 937, 455, 290, 783, 1193, 439, 1045, 917, 2493, 867, 1148, 880, 2288, 995, 1182, 1002, 387, 217, 1238, 549, 1040, 746, 2590, 1209, 1168, 1501, 808, 1536, 298, 846, 1941, 2494, 2506, 2989, 84, 530, 2433, 1223, 1493, 1307, 1296, 360, 2195, 1529, 1242, 1710, 275, 576, 496, 1278, 1716, 1209, 1111, 2366, 2844, 1827, 2029, 380, 1605, 1306, 2822, 1167, 2623, 2688, 2413, 795, 608, 600, 1728, 1896, 1776, 1814}, {1031, 223, 2104, 1593, 1578, 1893, 1144, 1842, 1266, 1257, 1349, 1038, 2114, 2334, 1330, 1428, 694, 411, 1288, 1681, 1707, 1687, 1366, 1521, 1638, 1319, 1351, 1986, 2228, 1110, 1479, 0, 996, 1707, 1324, 1190, 932, 386, 1396, 2235, 656, 1000, 1227, 2285, 1421, 1622, 1024, 373, 1513, 2194, 2127, 780, 1463, 1016, 1509, 71, 1116, 770, 211, 2653, 1735, 1302, 959, 1428, 796, 2243, 1634, 873, 2528, 411, 923, 1136, 425, 545, 1102, 1008, 1230, 1107, 2252, 349, 571, 575, 909, 583, 53, 2712, 1539, 2840, 2391, 2816, 2963, 2439, 2210, 2375, 947, 1519, 1689, 1208, 3200, 498, 1178, 2307, 244, 538, 613, 970, 2181, 865, 445, 703, 801, 277, 727, 616, 2040, 473, 1375, 2033, 1724, 2791, 2166, 813, 2252, 2260, 1858, 566, 1750, 1488}, {530, 556, 419, 2274, 1110, 1067, 1382, 890, 1361, 1138, 800, 1000, 586, 2361, 2457, 921, 945, 705, 511, 800, 1198, 1663, 1176, 889, 1010, 1494, 808, 908, 1475, 2398, 1000, 996, 0, 2604, 351, 2897, 225, 692, 1093, 1316, 771, 747, 1305, 1571, 1685, 604, 1290, 1205, 863, 1283, 2225, 2329, 264, 1256, 2091, 1312, 1023, 1117, 167, 2829, 744, 2383, 855, 608, 1279, 460, 3114, 793, 2713, 649, 1047, 835, 1670, 591, 1536, 95, 1593, 726, 2873, 784, 1436, 1318, 866, 1254, 1056, 2957, 1512, 1169, 2737, 2701, 2855, 481, 462, 2129, 1464, 743, 2082, 601, 1928, 1537, 995, 432, 506, 626, 246, 937, 1800, 787, 1179, 926, 1880, 2979, 1920, 1758, 2056, 1034, 686, 1549, 2828, 1892, 2269, 588, 2278, 233, 1487, 640, 2665, 1470}, {2675, 2505, 2422, 2359, 409, 2705, 2898, 3126, 1960, 2944, 1597, 2179, 1971, 3136, 710, 246, 3496, 2636, 2029, 2164, 2733, 2841, 1255, 2943, 3150, 2835, 1640, 2936, 2011, 3158, 277, 1707, 2604, 0, 1124, 1424, 2747, 551, 1074, 2290, 1515, 834, 1261, 2359, 922, 182, 643, 1449, 171, 206, 1161, 2137, 3012, 145, 1883, 722, 1487, 876, 1023, 3057, 937, 173, 1179, 1334, 250, 762, 1433, 2266, 1105, 912, 1287, 996, 99, 1462, 1662, 554, 746, 1309, 1572, 111, 1255, 374, 1181, 412, 1034, 2285, 1757, 2411, 1190, 2918, 2740, 706, 2786, 388, 1340, 1487, 591, 346, 2503, 353, 2047, 2152, 1375, 358, 334, 592, 1741, 974, 2157, 1073, 2402, 1272, 1745, 478, 358, 895, 974, 553, 832, 2961, 1370, 682, 2207, 266, 1691, 2458, 2723, 2367}, {1518, 1327, 1461, 943, 1238, 1265, 1225, 1418, 1646, 500, 1464, 195, 699, 491, 1658, 1745, 1272, 2018, 1156, 767, 1075, 1253, 1361, 357, 1463, 1670, 1355, 278, 1456, 531, 1678, 1324, 351, 1124, 0, 962, 1303, 2507, 1758, 1573, 569, 1389, 1181, 2221, 1759, 1868, 697, 640, 479, 929, 1017, 1140, 3107, 2857, 3048, 962, 927, 1479, 253, 1923, 1165, 272, 1394, 2622, 1138, 388, 1944, 614, 413, 814, 1445, 1236, 1140, 135, 660, 679, 211, 298, 1696, 1778, 1704, 809, 1063, 973, 1199, 1982, 1232, 2656, 2308, 875, 2892, 815, 2487, 2728, 1718, 1339, 1859, 1718, 2874, 806, 807, 3127, 488, 1899, 559, 643, 1495, 1091, 1090, 1465, 1735, 1301, 879, 2962, 1980, 878, 213, 1298, 901, 904, 2396, 631, 2301, 517, 1717, 200, 440, 2425}, {1648, 3126, 542, 975, 712, 961, 2773, 1039, 782, 1097, 1168, 1191, 1539, 990, 1230, 63, 2903, 2880, 386, 883, 1164, 1053, 655, 967, 2005, 891, 449, 766, 1805, 476, 1145, 1190, 2897, 1424, 962, 0, 383, 1063, 2125, 2568, 858, 663, 1058, 2235, 1809, 60, 1170, 306, 852, 1162, 465, 376, 217, 2862, 535, 1057, 1167, 889, 1381, 2892, 272, 500, 1570, 366, 2240, 539, 979, 1035, 2290, 2294, 312, 1357, 1482, 1226, 1339, 1403, 85, 499, 2101, 2378, 404, 217, 1132, 525, 1407, 2449, 782, 2131, 2553, 2618, 840, 399, 2339, 2462, 1817, 1556, 1466, 420, 1437, 1199, 1317, 2072, 1326, 102, 1603, 44, 1546, 283, 876, 1157, 1251, 1613, 1133, 1089, 1056, 817, 1541, 1161, 428, 960, 1059, 804, 1395, 541, 1782, 235, 2906, 93}, {1157, 1461, 2941, 1358, 1839, 808, 1700, 2688, 282, 389, 201, 1005, 83, 1363, 773, 1013, 1094, 2996, 2695, 1439, 462, 1401, 1631, 711, 207, 1818, 283, 746, 391, 1616, 681, 932, 225, 2747, 1303, 383, 0, 116, 885, 542, 1236, 732, 1106, 1915, 1635, 526, 796, 1557, 1116, 358, 277, 641, 1077, 431, 183, 2945, 105, 1129, 791, 1777, 983, 700, 1798, 150, 325, 1887, 1850, 168, 2175, 802, 1691, 394, 728, 1541, 1682, 253, 2083, 625, 2528, 1324, 1073, 1887, 779, 170, 1467, 1840, 1520, 1681, 2028, 2863, 2657, 2403, 2751, 2347, 1308, 1843, 708, 1085, 2692, 398, 1710, 2462, 601, 1103, 304, 1884, 906, 223, 1482, 1109, 1752, 2078, 539, 689, 1016, 2013, 205, 754, 587, 500, 536, 2422, 2261, 1096, 1871, 550, 2932, 2576}, {417, 862, 1221, 2701, 1014, 1497, 493, 1356, 2448, 189, 207, 458, 765, 444, 1123, 533, 773, 799, 2746, 2455, 1146, 69, 1086, 1316, 294, 210, 1578, 267, 524, 134, 1376, 386, 692, 551, 2507, 1063, 116, 0, 1204, 1112, 2540, 1299, 775, 2104, 1254, 228, 1053, 478, 995, 407, 904, 871, 1388, 919, 3408, 2644, 2940, 265, 1031, 2168, 410, 446, 664, 465, 442, 929, 2861, 874, 2009, 1272, 1021, 1774, 1253, 942, 1922, 1142, 541, 1382, 2654, 1074, 758, 2487, 1642, 966, 1453, 2717, 762, 2419, 1578, 2302, 2902, 938, 1280, 2693, 1155, 1371, 2201, 2977, 2312, 995, 271, 2855, 705, 235, 1356, 259, 2787, 581, 1570, 779, 1960, 1697, 984, 1276, 1717, 439, 2693, 1083, 1547, 496, 775, 1947, 1561, 242, 1276, 529, 2709, 2602}, {1222, 1566, 827, 1229, 2402, 285, 326, 758, 134, 2001, 1318, 1350, 1665, 884, 1569, 1040, 980, 1166, 871, 2088, 2186, 1206, 1153, 469, 238, 1040, 1406, 1537, 1459, 1174, 1293, 1396, 1093, 1074, 1758, 2125, 885, 1204, 0, 2014, 1069, 2414, 1579, 1763, 1641, 1666, 695, 846, 1190, 1317, 1270, 415, 1252, 1143, 2548, 1402, 2828, 3021, 930, 2157, 211, 1058, 1633, 939, 684, 1049, 450, 1967, 1985, 246, 1165, 933, 2489, 1103, 2019, 1457, 863, 586, 690, 1011, 1192, 1433, 2006, 1502, 1183, 2536, 1796, 1661, 2316, 1888, 2276, 1145, 2256, 1206, 1811, 1218, 2206, 208, 138, 757, 1506, 1364, 1087, 372, 227, 853, 1139, 1334, 1037, 830, 1659, 1638, 506, 2059, 1038, 821, 986, 1746, 421, 1680, 700, 2268, 319, 2852, 1700, 1294, 2812, 2411}, {1583, 2101, 2351, 2355, 1105, 819, 1856, 1686, 1702, 1540, 418, 2115, 2291, 2521, 1367, 2354, 1184, 1620, 1558, 2378, 645, 648, 2738, 2033, 1232, 1345, 2074, 2253, 888, 2336, 2483, 2235, 1316, 2290, 1573, 2568, 542, 1112, 2014, 0, 829, 943, 1957, 2633, 1113, 490, 949, 456, 1258, 506, 1516, 629, 869, 1007, 1912, 417, 465, 2811, 3016, 2685, 33, 468, 596, 518, 557, 1291, 366, 644, 160, 1129, 748, 1077, 186, 2281, 676, 1031, 1205, 801, 2273, 2346, 1318, 1228, 1092, 2151, 1768, 2985, 1615, 2695, 1558, 2466, 1927, 313, 2501, 2264, 2267, 1814, 2146, 486, 3045, 1685, 1197, 2632, 739, 761, 626, 594, 190, 560, 2838, 205, 1705, 1392, 691, 1282, 387, 809, 1081, 452, 2751, 358, 1115, 2388, 1269, 2305, 2410, 209, 1913, 2514}, {1998, 524, 820, 1162, 387, 1356, 2772, 239, 750, 483, 658, 2416, 943, 828, 1143, 861, 1194, 1207, 750, 950, 415, 2557, 2526, 773, 778, 807, 707, 561, 972, 1713, 937, 656, 771, 1515, 569, 858, 1236, 2540, 1069, 829, 0, 795, 564, 1581, 2033, 982, 841, 1336, 1066, 768, 1323, 1261, 1159, 688, 2025, 1350, 715, 597, 2713, 283, 1207, 708, 909, 1297, 568, 454, 56, 765, 2292, 2041, 942, 660, 357, 400, 1117, 976, 302, 1116, 2583, 1499, 724, 1177, 569, 1163, 2131, 1400, 1983, 2514, 2592, 1857, 2440, 980, 2042, 2509, 974, 2049, 2130, 661, 2779, 1348, 1172, 2007, 848, 806, 1019, 245, 1424, 1401, 998, 2071, 2202, 1443, 934, 1122, 1122, 1098, 1327, 1057, 918, 2860, 584, 700, 1129, 2727, 1179, 3050, 2915, 1615}, {126, 1872, 486, 813, 1157, 483, 1230, 2646, 230, 744, 380, 620, 2290, 909, 891, 1206, 735, 1160, 1081, 624, 824, 511, 2486, 2400, 869, 744, 681, 662, 624, 997, 1587, 1000, 747, 834, 1389, 663, 732, 1299, 2414, 943, 795, 0, 1015, 1365, 1424, 239, 518, 746, 826, 405, 1086, 703, 2238, 1042, 2645, 1580, 1158, 592, 1262, 905, 2215, 845, 922, 707, 915, 1168, 1176, 1007, 2485, 413, 1438, 854, 674, 386, 1593, 2222, 1441, 982, 2823, 303, 1011, 2422, 478, 1021, 1295, 965, 193, 2882, 2411, 2734, 1831, 54, 1558, 1984, 1219, 1127, 916, 390, 2664, 1268, 1859, 607, 200, 561, 506, 627, 824, 670, 1172, 446, 867, 805, 1017, 1370, 1330, 893, 1792, 772, 640, 1051, 2323, 2284, 982, 2781, 2148, 2503, 1153, 2585}, {535, 661, 1415, 343, 1047, 1362, 1018, 891, 2219, 522, 603, 585, 380, 1833, 1126, 1246, 1488, 564, 1365, 702, 754, 869, 1046, 2003, 1973, 1404, 978, 190, 269, 960, 1231, 1227, 1305, 1261, 1181, 1058, 1106, 775, 1579, 1957, 564, 1015, 0, 2069, 704, 2797, 956, 699, 1072, 1115, 1157, 822, 1070, 2031, 2753, 667, 1090, 1250, 371, 3020, 1742, 2674, 1635, 944, 325, 678, 258, 310, 2713, 607, 1051, 1521, 233, 764, 1495, 489, 2857, 768, 3008, 154, 1421, 1637, 2406, 1092, 760, 1862, 523, 1146, 2779, 2553, 2708, 800, 2330, 1534, 1103, 1372, 2116, 2958, 2976, 1208, 1779, 2974, 1974, 477, 815, 984, 683, 780, 1029, 760, 2048, 2684, 1377, 1426, 795, 872, 1411, 875, 1137, 782, 494, 1090, 1051, 1083, 2008, 2925, 896, 1220}, {1065, 1520, 1565, 1049, 1064, 2101, 2416, 1879, 1664, 1841, 1337, 1009, 1642, 962, 1457, 2180, 2300, 2542, 1552, 2419, 1521, 1772, 1822, 1923, 1131, 1687, 2258, 2032, 1015, 858, 2017, 2285, 1571, 2359, 2221, 2235, 1915, 2104, 1763, 2633, 1581, 1365, 2069, 0, 1469, 1353, 2176, 521, 585, 556, 1347, 579, 628, 973, 1167, 163, 500, 1206, 1385, 2571, 1567, 2390, 1406, 610, 565, 557, 1531, 883, 1547, 834, 1244, 1000, 2088, 163, 1348, 513, 256, 2156, 1400, 1006, 1671, 457, 954, 1847, 642, 2341, 662, 607, 1043, 3002, 2527, 341, 1572, 2272, 432, 1105, 2361, 895, 933, 1313, 1681, 2979, 1171, 2087, 561, 379, 1889, 1162, 911, 781, 3022, 1036, 1566, 803, 841, 412, 1352, 871, 1847, 1305, 687, 1271, 1891, 2705, 754, 2979, 749, 552}, {707, 561, 1085, 1170, 882, 701, 1501, 1816, 1516, 1003, 1701, 974, 857, 1046, 667, 1300, 1580, 1700, 1942, 901, 1819, 860, 1146, 1161, 1560, 1470, 1502, 1895, 1432, 449, 463, 1421, 1685, 922, 1759, 1809, 1635, 1254, 1641, 1113, 2033, 1424, 704, 1469, 0, 393, 889, 2514, 1464, 431, 971, 1062, 958, 531, 2855, 1767, 799, 416, 1615, 1674, 675, 1192, 1338, 2897, 799, 728, 944, 683, 2531, 358, 1472, 1193, 1236, 1880, 1305, 680, 767, 575, 145, 1454, 1675, 78, 705, 1390, 2632, 2412, 1141, 1561, 504, 1353, 2976, 344, 2606, 1514, 1389, 455, 1514, 992, 2581, 1829, 1823, 2919, 1269, 914, 1787, 336, 678, 745, 712, 267, 1947, 134, 1120, 2667, 1338, 463, 1106, 988, 1143, 1959, 835, 1884, 685, 778, 1930, 1281, 247, 816}, {1807, 2407, 1353, 1060, 997, 2384, 1519, 315, 247, 951, 1511, 2991, 1236, 1747, 799, 1653, 2738, 354, 169, 146, 1055, 322, 1413, 823, 1063, 888, 3029, 2745, 1220, 375, 1392, 1622, 604, 182, 1868, 60, 526, 228, 1666, 490, 982, 239, 2797, 1353, 393, 0, 460, 1070, 1781, 721, 938, 633, 2038, 841, 3062, 287, 1953, 652, 609, 1588, 809, 25, 1995, 2629, 2504, 914, 1184, 222, 1184, 650, 289, 1421, 1253, 1305, 864, 290, 538, 863, 2546, 2934, 657, 1168, 998, 683, 1079, 700, 1212, 2040, 1458, 871, 1391, 511, 2425, 2548, 793, 1396, 1386, 803, 2826, 1218, 1405, 2903, 1291, 827, 1168, 2243, 1239, 923, 1750, 594, 2357, 1321, 2129, 900, 776, 177, 1157, 271, 1022, 1311, 1415, 1175, 1094, 1741, 1123, 2903, 1634, 473}, {844, 1439, 2039, 1021, 881, 952, 1935, 1247, 561, 731, 1167, 852, 2370, 1057, 1524, 501, 1363, 2117, 558, 751, 932, 591, 673, 828, 359, 435, 1177, 2580, 2124, 1537, 496, 1024, 1290, 643, 697, 1170, 796, 1053, 695, 949, 841, 518, 956, 2176, 889, 460, 0, 288, 332, 2246, 1622, 384, 670, 1831, 2747, 720, 731, 1932, 124, 2610, 1105, 1032, 1306, 957, 2247, 2114, 1085, 408, 1766, 716, 1290, 231, 1568, 1374, 1686, 1821, 675, 345, 2376, 1250, 1461, 1532, 172, 821, 1109, 1943, 859, 2111, 1937, 1768, 910, 1369, 2793, 2367, 1676, 713, 1678, 1377, 2301, 1463, 1627, 211, 1102, 767, 1134, 700, 3148, 275, 947, 1171, 2750, 721, 793, 596, 1184, 1718, 519, 240, 1159, 1190, 919, 729, 1023, 2314, 1235, 670, 109, 1304}, {435, 460, 1620, 2220, 1180, 1006, 1053, 2116, 1380, 373, 296, 1200, 1228, 2708, 1182, 1657, 626, 1514, 2455, 195, 509, 497, 772, 238, 1130, 540, 780, 1159, 2761, 2462, 1504, 373, 1205, 1449, 640, 306, 1557, 478, 846, 456, 1336, 746, 699, 521, 2514, 1070, 288, 0, 900, 802, 2164, 977, 1375, 554, 1552, 354, 344, 564, 1836, 2791, 772, 1262, 485, 248, 1156, 1997, 3169, 883, 1558, 126, 117, 1239, 875, 1667, 1879, 1221, 2501, 640, 2304, 1761, 1249, 3012, 1672, 1303, 1402, 2702, 743, 871, 2008, 2247, 1807, 1969, 1070, 2735, 1543, 1683, 1069, 609, 1851, 604, 1872, 2937, 1700, 879, 1076, 837, 359, 1946, 1322, 346, 1259, 580, 1400, 1065, 2158, 194, 2398, 443, 1215, 1273, 864, 1234, 1049, 1647, 1917, 1939, 2803, 363}, {1051, 870, 1238, 586, 1186, 232, 647, 773, 1239, 575, 932, 1247, 1130, 659, 2032, 701, 835, 477, 612, 1657, 1011, 1131, 1373, 374, 1250, 470, 603, 679, 1153, 1884, 1786, 1513, 863, 171, 479, 852, 1116, 995, 1190, 1258, 1066, 826, 1072, 585, 1464, 1781, 332, 900, 0, 170, 853, 2189, 1369, 1171, 2848, 1565, 598, 157, 105, 1525, 880, 294, 651, 1235, 174, 1272, 2868, 2194, 2723, 366, 535, 205, 1485, 758, 2107, 1341, 986, 1800, 2230, 770, 1171, 1416, 3152, 742, 286, 2952, 1677, 1642, 843, 2318, 2286, 915, 423, 999, 1812, 1524, 1946, 1290, 2524, 552, 1129, 3182, 1369, 2224, 1132, 875, 1008, 1246, 2789, 523, 2527, 1786, 1728, 592, 1103, 997, 750, 1451, 592, 1324, 727, 1442, 1122, 1112, 1412, 2512, 1037, 2456}, {775, 287, 290, 554, 1344, 1944, 893, 719, 766, 1848, 1093, 271, 504, 913, 960, 2440, 895, 1370, 339, 1227, 2187, 268, 461, 686, 504, 507, 862, 272, 512, 923, 2493, 2194, 1283, 206, 929, 1162, 358, 407, 1317, 506, 768, 405, 1115, 556, 431, 721, 2246, 802, 170, 0, 1068, 694, 3121, 1272, 1923, 644, 1749, 451, 568, 2874, 865, 238, 1334, 1339, 843, 781, 1417, 2020, 660, 922, 427, 484, 1064, 1544, 924, 1583, 871, 880, 280, 1633, 1022, 1910, 669, 2260, 1934, 2758, 1992, 2576, 1539, 717, 2357, 728, 1472, 460, 759, 1838, 1765, 581, 1831, 892, 897, 2287, 1576, 811, 1928, 629, 1175, 1344, 1017, 2430, 2134, 575, 601, 232, 1493, 517, 316, 408, 2456, 688, 787, 1137, 1145, 1664, 628, 1845, 978, 739}, {957, 534, 1244, 1111, 1383, 740, 1135, 314, 385, 431, 1622, 136, 1086, 1430, 782, 1180, 2441, 240, 418, 622, 270, 2040, 1182, 1214, 1529, 802, 1433, 991, 844, 1030, 826, 2127, 2225, 1161, 1017, 465, 277, 904, 1270, 1516, 1323, 1086, 1157, 1347, 971, 938, 1622, 2164, 853, 1068, 0, 413, 1650, 2876, 3070, 881, 308, 1732, 231, 2950, 982, 1513, 1532, 285, 1073, 278, 563, 1243, 167, 2349, 1455, 458, 900, 914, 1925, 659, 1186, 1000, 2587, 2681, 981, 879, 1147, 1197, 3406, 1805, 1558, 2891, 2473, 1849, 691, 766, 1943, 1414, 896, 555, 2214, 899, 2792, 123, 1387, 2225, 599, 1052, 1092, 2209, 310, 1363, 352, 665, 47, 1136, 1589, 1705, 1886, 376, 1035, 1253, 691, 2565, 167, 1183, 499, 1872, 1539, 1310, 1378, 842}, {671, 291, 487, 578, 443, 751, 1056, 1656, 602, 438, 541, 1684, 807, 445, 760, 770, 904, 2383, 614, 1084, 58, 941, 2102, 524, 644, 886, 429, 763, 797, 225, 465, 780, 2329, 2137, 1140, 376, 641, 871, 415, 629, 1261, 703, 822, 579, 1062, 633, 384, 977, 2189, 694, 413, 0, 1162, 1405, 138, 272, 1086, 185, 1634, 2773, 1189, 317, 662, 294, 250, 468, 1574, 497, 3083, 2048, 1822, 1367, 1086, 933, 618, 1460, 946, 1242, 2780, 248, 1142, 1771, 750, 1667, 794, 1021, 1196, 2457, 2788, 2719, 1888, 1901, 1988, 1893, 561, 734, 646, 163, 2611, 1168, 650, 2450, 949, 170, 1337, 982, 3112, 1177, 220, 872, 2869, 3045, 1394, 462, 395, 758, 435, 567, 604, 824, 2028, 1670, 468, 1520, 1708, 1862, 1902, 1080}, {1003, 981, 1146, 1354, 1414, 1400, 1130, 1715, 2078, 1242, 707, 589, 2579, 1026, 1056, 1349, 233, 1881, 3353, 741, 1144, 945, 1144, 2997, 1231, 961, 1276, 1401, 1383, 1772, 1223, 1463, 264, 3012, 3107, 217, 1077, 1388, 1252, 869, 1159, 2238, 1070, 628, 958, 2038, 670, 1375, 1369, 3121, 1650, 1162, 0, 1001, 1619, 2696, 1030, 1059, 521, 1953, 874, 589, 1615, 1752, 427, 763, 1804, 535, 2223, 1282, 1445, 1776, 772, 1063, 1170, 787, 1214, 339, 3008, 248, 1435, 2759, 1088, 641, 1197, 2216, 1678, 1938, 2354, 2969, 2693, 1116, 919, 1964, 777, 503, 816, 1858, 3052, 987, 1656, 1842, 652, 520, 446, 1189, 1417, 1659, 1157, 961, 2840, 256, 1266, 1119, 1663, 837, 460, 642, 926, 476, 259, 911, 411, 1566, 849, 2070, 1462, 1555}, {245, 796, 736, 939, 1109, 1226, 1193, 1033, 1470, 1833, 997, 462, 344, 2334, 781, 919, 1232, 82, 1674, 3108, 496, 899, 738, 899, 2752, 1108, 864, 1179, 1184, 1266, 1543, 1016, 1256, 145, 2857, 2862, 431, 919, 1143, 1007, 688, 1042, 2031, 973, 531, 841, 1831, 554, 1171, 1272, 2876, 1405, 1001, 0, 2516, 1252, 2858, 863, 950, 2795, 663, 206, 1740, 259, 1370, 1034, 801, 801, 1616, 354, 1815, 1528, 2175, 986, 1011, 849, 1291, 1119, 1842, 192, 1611, 344, 2824, 1520, 998, 1948, 1016, 1344, 1844, 2664, 2943, 227, 1487, 789, 815, 840, 1179, 2459, 1316, 1355, 1475, 2719, 521, 461, 540, 213, 1414, 1441, 3163, 534, 2725, 922, 1942, 2946, 1270, 519, 1500, 1024, 381, 1094, 799, 1441, 1596, 2063, 766, 1718, 1360, 1164}, {3014, 3259, 2295, 2302, 2352, 1919, 2620, 2282, 2903, 1562, 1666, 2095, 2552, 2678, 680, 2263, 2613, 2853, 3035, 1430, 175, 2536, 2366, 2334, 2220, 270, 2617, 2810, 3038, 1872, 2856, 1509, 2091, 1883, 3048, 535, 183, 3408, 2548, 1912, 2025, 2645, 2753, 1167, 2855, 3062, 2747, 1552, 2848, 1923, 3070, 138, 1619, 2516, 0, 332, 1372, 2863, 255, 2135, 975, 1311, 1509, 350, 501, 1203, 322, 536, 1781, 792, 982, 1727, 2273, 1967, 2042, 964, 816, 582, 2826, 998, 1839, 386, 880, 2007, 1197, 2303, 827, 1915, 1365, 1822, 2703, 450, 2487, 1495, 1587, 878, 1699, 1405, 834, 467, 1866, 2389, 920, 324, 697, 881, 1019, 1648, 200, 2396, 2798, 1085, 1595, 441, 904, 181, 313, 735, 88, 513, 543, 2492, 467, 787, 1290, 1764, 1216, 1092}, {2802, 1195, 1312, 709, 1379, 453, 1196, 249, 684, 251, 1765, 2365, 1311, 1106, 1125, 2300, 1515, 373, 51, 1120, 1410, 2890, 1307, 1788, 757, 1649, 2637, 231, 363, 248, 954, 71, 1312, 722, 962, 1057, 2945, 2644, 1402, 417, 1350, 1580, 667, 163, 1767, 287, 720, 354, 1565, 644, 881, 272, 2696, 1252, 332, 0, 794, 1393, 2765, 3106, 78, 441, 990, 93, 660, 1108, 1991, 750, 2320, 1057, 471, 931, 1107, 2065, 1300, 1065, 1035, 479, 1479, 211, 705, 126, 610, 680, 3050, 1881, 1218, 1590, 1812, 1050, 1796, 912, 2802, 2429, 314, 1369, 1816, 1049, 1731, 1070, 157, 2987, 618, 748, 85, 182, 1689, 671, 183, 1079, 771, 207, 1456, 225, 2005, 2096, 850, 785, 1500, 112, 64, 1304, 1231, 1909, 828, 2261, 1267, 869}, {952, 2986, 250, 369, 714, 819, 821, 1091, 1054, 1075, 791, 1552, 1916, 1002, 479, 388, 2316, 864, 694, 989, 168, 1596, 3074, 579, 1090, 656, 998, 2734, 871, 622, 937, 1116, 1023, 1487, 927, 1167, 105, 2940, 2828, 465, 715, 1158, 1090, 500, 799, 1953, 731, 344, 598, 1749, 308, 1086, 1030, 2858, 1372, 794, 0, 665, 1321, 788, 1197, 627, 1554, 1550, 377, 1082, 257, 1150, 2428, 451, 779, 383, 1071, 1321, 871, 1950, 330, 626, 2061, 1356, 1674, 1076, 925, 863, 1284, 814, 681, 2117, 1487, 2122, 1015, 1011, 2302, 2744, 1518, 354, 236, 958, 2210, 277, 706, 1485, 1203, 591, 973, 640, 763, 1018, 895, 1286, 2642, 3009, 1907, 400, 2010, 842, 2759, 204, 334, 1633, 457, 1764, 787, 2883, 1269, 736, 630, 920}, {187, 805, 2969, 410, 507, 715, 929, 732, 1151, 907, 1017, 624, 1654, 2064, 1104, 590, 499, 2376, 1017, 557, 842, 328, 1577, 3057, 732, 1243, 674, 1151, 2794, 724, 455, 770, 1117, 876, 1479, 889, 1129, 265, 3021, 2811, 597, 592, 1250, 1206, 416, 652, 1932, 564, 157, 451, 1732, 185, 1059, 863, 2863, 1393, 665, 0, 357, 1675, 1794, 593, 876, 197, 1168, 984, 723, 824, 842, 549, 1077, 691, 528, 1157, 2402, 1981, 2617, 996, 1853, 766, 561, 152, 1206, 1022, 1014, 2716, 1277, 1543, 2014, 1854, 2161, 2491, 1920, 2310, 1862, 1541, 1347, 2439, 2281, 756, 690, 1455, 978, 921, 792, 416, 1506, 727, 930, 387, 2887, 1328, 1735, 593, 1950, 939, 247, 1970, 908, 342, 1068, 2157, 610, 1817, 2110, 2107, 2508, 282}, {666, 829, 182, 2871, 1072, 1172, 744, 1388, 525, 1231, 391, 815, 69, 1800, 2400, 1346, 1065, 1002, 2371, 1524, 316, 178, 993, 1479, 2959, 1241, 1752, 792, 1658, 2706, 290, 211, 167, 1023, 253, 1381, 791, 1031, 930, 3016, 2713, 1262, 371, 1385, 1615, 609, 124, 1836, 105, 568, 231, 1634, 521, 950, 255, 2765, 1321, 357, 0, 2552, 523, 2442, 1847, 866, 448, 1034, 424, 949, 2530, 1171, 1187, 1004, 325, 343, 1617, 1410, 2611, 2027, 3018, 1006, 950, 1434, 1032, 607, 1329, 2892, 1756, 1134, 1440, 2320, 1893, 917, 1455, 1790, 1050, 1865, 1931, 1482, 775, 882, 1210, 2018, 1639, 893, 1175, 230, 494, 548, 1038, 1053, 2182, 1428, 1373, 2992, 1934, 971, 818, 1108, 2765, 1017, 253, 689, 992, 2218, 1322, 3081, 802, 2161}, {2909, 2793, 2678, 2838, 818, 2595, 2840, 2222, 1865, 2386, 1777, 2654, 2473, 2922, 1329, 848, 1745, 2224, 2295, 637, 1826, 2639, 2889, 2641, 1742, 993, 2099, 1831, 2240, 1764, 783, 2653, 2829, 3057, 1923, 2892, 1777, 2168, 2157, 2685, 283, 905, 3020, 2571, 1674, 1588, 2610, 2791, 1525, 2874, 2950, 2773, 1953, 2795, 2135, 3106, 788, 1675, 2552, 0, 643, 998, 1303, 558, 484, 914, 1787, 700, 2737, 652, 647, 1136, 958, 117, 912, 1073, 688, 1910, 565, 943, 941, 844, 1574, 763, 1454, 3120, 1876, 2655, 1144, 1787, 2294, 1392, 1760, 1381, 1414, 1181, 2181, 358, 1812, 1149, 1327, 2475, 711, 1489, 663, 734, 929, 995, 1268, 140, 1912, 916, 1618, 634, 1046, 773, 965, 1203, 412, 2898, 480, 1953, 963, 2611, 1489, 2015, 265, 504}, {2174, 998, 1096, 1134, 929, 1900, 1223, 1430, 432, 997, 479, 646, 747, 462, 1030, 1166, 1824, 836, 791, 917, 1575, 1133, 740, 980, 1197, 508, 1988, 967, 1382, 485, 1193, 1735, 744, 937, 1165, 272, 983, 410, 211, 33, 1207, 2215, 1742, 1567, 675, 809, 1105, 772, 880, 865, 982, 1189, 874, 663, 975, 78, 1197, 1794, 523, 643, 0, 60, 440, 2681, 777, 622, 687, 951, 2422, 866, 1289, 730, 1324, 1064, 1101, 216, 821, 1356, 153, 2991, 1698, 1084, 984, 737, 1436, 1986, 2118, 2775, 2552, 840, 1826, 361, 1432, 1768, 2406, 1309, 2162, 386, 2746, 556, 725, 2601, 926, 432, 1266, 1209, 384, 664, 1259, 827, 2346, 1586, 1198, 731, 1968, 2043, 88, 1211, 280, 321, 2333, 1612, 753, 1120, 1871, 2416, 1086, 575}, {675, 2567, 356, 614, 740, 392, 2548, 944, 1102, 391, 1032, 206, 878, 348, 496, 365, 1447, 2047, 993, 759, 793, 2029, 1168, 72, 443, 908, 1156, 2636, 960, 1443, 439, 1302, 2383, 173, 272, 500, 700, 446, 1058, 468, 708, 845, 2674, 2390, 1192, 25, 1032, 1262, 294, 238, 1513, 317, 589, 206, 1311, 441, 627, 593, 2442, 998, 60, 0, 1293, 1237, 2299, 1382, 1103, 754, 1227, 545, 1496, 1238, 1589, 1410, 1692, 180, 892, 732, 3378, 2688, 1369, 1105, 1224, 454, 1825, 2955, 1094, 3017, 2672, 2733, 805, 1250, 2028, 1443, 576, 2188, 1127, 813, 3027, 1049, 858, 603, 1052, 364, 302, 1809, 2075, 1278, 1292, 285, 1737, 660, 666, 779, 2213, 1049, 2723, 1039, 417, 345, 606, 733, 92, 2388, 850, 2809, 479, 788}, {1308, 933, 1299, 1650, 1633, 1573, 1579, 1441, 1591, 1836, 952, 927, 1127, 488, 1395, 1214, 1663, 278, 977, 675, 1129, 1255, 761, 889, 1375, 1630, 1612, 727, 1580, 1149, 1045, 959, 855, 1179, 1394, 1570, 1798, 664, 1633, 596, 909, 922, 1635, 1406, 1338, 1995, 1306, 485, 651, 1334, 1532, 662, 1615, 1740, 1509, 990, 1554, 876, 1847, 1303, 440, 1293, 0, 326, 855, 2011, 50, 316, 2523, 969, 1181, 1433, 1362, 1411, 1822, 1055, 767, 294, 2518, 1288, 1215, 3067, 109, 352, 1276, 1840, 1995, 2026, 2914, 2909, 2707, 2238, 1385, 1970, 113, 639, 1055, 1566, 2627, 1364, 1560, 2186, 1375, 490, 630, 791, 2675, 986, 975, 150, 2614, 1403, 1489, 1122, 1318, 1253, 1208, 1776, 535, 512, 643, 2306, 2198, 1995, 1632, 1318, 257, 182}, {1525, 266, 914, 2790, 324, 367, 505, 447, 2787, 748, 867, 595, 1064, 454, 1082, 549, 744, 319, 1651, 2197, 1193, 741, 678, 2252, 1200, 210, 484, 673, 1395, 2875, 917, 1428, 608, 1334, 2622, 366, 150, 465, 939, 518, 1297, 707, 944, 610, 2897, 2629, 957, 248, 1235, 1339, 285, 294, 1752, 259, 350, 93, 1550, 197, 866, 558, 2681, 1237, 326, 0, 211, 540, 2920, 1097, 1598, 654, 489, 1130, 1075, 1483, 502, 1326, 604, 567, 1911, 346, 2058, 2766, 3030, 1313, 1516, 2231, 1053, 2894, 1924, 3137, 2883, 214, 1227, 1396, 1054, 331, 1620, 3046, 1880, 1239, 1874, 2704, 1031, 1549, 756, 651, 1621, 1647, 1664, 694, 2433, 452, 756, 668, 1282, 267, 1325, 1289, 2781, 473, 681, 2265, 1076, 186, 984, 2586, 1593, 337}, {401, 1132, 189, 532, 2397, 542, 624, 694, 514, 2405, 812, 1019, 202, 868, 127, 689, 414, 412, 549, 1258, 1858, 804, 600, 639, 1859, 1004, 243, 565, 786, 1013, 2493, 796, 1279, 250, 1138, 2240, 325, 442, 684, 557, 568, 915, 325, 565, 799, 2504, 2247, 1156, 174, 843, 1073, 250, 427, 1370, 501, 660, 377, 1168, 448, 484, 777, 2299, 855, 211, 0, 818, 1474, 2072, 2745, 285, 1282, 561, 1196, 1246, 1924, 1284, 1015, 720, 2035, 1363, 1353, 1437, 2906, 2487, 317, 2220, 1339, 1880, 2791, 2003, 3111, 417, 2566, 1097, 181, 1073, 1450, 1197, 1108, 680, 1673, 2954, 913, 656, 1249, 731, 1416, 780, 2027, 1396, 2882, 887, 1776, 1223, 1482, 816, 630, 1496, 663, 2890, 578, 2178, 1174, 2730, 1637, 2193, 295, 1263}, {607, 996, 726, 796, 695, 1942, 1149, 972, 880, 1114, 2149, 865, 1110, 405, 374, 696, 244, 983, 824, 1156, 727, 1262, 199, 403, 529, 1469, 471, 850, 1165, 886, 867, 2243, 460, 762, 388, 539, 1887, 929, 1049, 1291, 454, 1168, 678, 557, 728, 914, 2114, 1997, 1272, 781, 278, 468, 763, 1034, 1203, 1108, 1082, 984, 1034, 914, 622, 1382, 2011, 540, 818, 0, 556, 559, 219, 868, 399, 1222, 1420, 1317, 2121, 1400, 1798, 985, 2615, 1593, 568, 502, 441, 2014, 3065, 2802, 1354, 2247, 1786, 2972, 1977, 642, 2686, 2508, 2005, 228, 1532, 1708, 2085, 1942, 998, 2958, 1153, 615, 622, 1705, 1361, 998, 1161, 1996, 1297, 298, 1609, 719, 873, 323, 1300, 519, 779, 754, 2353, 2266, 1212, 2735, 1955, 178, 960, 80}, {1336, 735, 516, 1803, 551, 1151, 3062, 208, 821, 988, 228, 3026, 1230, 1327, 937, 1580, 677, 1420, 475, 910, 197, 1989, 2589, 1535, 1257, 1194, 2524, 1716, 509, 181, 1148, 1634, 3114, 1433, 1944, 979, 1850, 2861, 450, 366, 56, 1176, 258, 1531, 944, 1184, 1085, 3169, 2868, 1417, 563, 1574, 1804, 801, 322, 1991, 257, 723, 424, 1787, 687, 1103, 50, 2920, 1474, 556, 0, 534, 1294, 2100, 1504, 437, 994, 1270, 1816, 1280, 980, 1116, 2723, 597, 777, 1472, 726, 1673, 3160, 314, 1602, 2260, 2144, 1857, 2946, 555, 2928, 2628, 1614, 1787, 1304, 851, 1817, 792, 1544, 1537, 1343, 930, 869, 1017, 2610, 1124, 626, 978, 895, 1972, 1949, 958, 1750, 538, 374, 915, 570, 851, 799, 1080, 1007, 2637, 2051, 2928, 2852, 613}, {1053, 335, 323, 716, 809, 512, 375, 2088, 865, 842, 821, 829, 2178, 885, 1106, 143, 622, 394, 381, 670, 489, 872, 950, 1550, 532, 438, 564, 1550, 758, 566, 880, 873, 793, 2266, 614, 1035, 168, 874, 1967, 644, 765, 1007, 310, 883, 683, 222, 408, 883, 2194, 2020, 1243, 497, 535, 801, 536, 750, 1150, 824, 949, 700, 951, 754, 316, 1097, 2072, 559, 534, 0, 2191, 656, 1497, 1453, 994, 1131, 903, 1276, 633, 1059, 1137, 93, 1392, 1702, 1248, 618, 198, 936, 1399, 2501, 2166, 2248, 1831, 453, 1938, 2870, 1643, 1629, 654, 1616, 2287, 781, 1131, 386, 308, 819, 1183, 444, 1825, 1334, 530, 815, 1792, 2572, 323, 399, 1569, 591, 1117, 589, 983, 703, 1006, 2124, 1921, 2659, 2072, 2933, 72, 2522}, {1853, 2701, 1830, 2080, 2462, 1171, 2223, 1575, 914, 2546, 2644, 2661, 2477, 325, 2695, 2940, 1970, 2058, 2027, 1619, 2295, 1957, 2578, 1335, 1563, 1806, 2233, 2359, 538, 2019, 2288, 2528, 2713, 1105, 413, 2290, 2175, 2009, 1985, 160, 2292, 2485, 2713, 1547, 2531, 1184, 1766, 1558, 2723, 660, 167, 3083, 2223, 1616, 1781, 2320, 2428, 842, 2530, 2737, 2422, 1227, 2523, 1598, 2745, 219, 1294, 2191, 0, 312, 82, 1580, 1661, 969, 1910, 1143, 814, 1106, 2825, 1811, 1573, 751, 1180, 1136, 1130, 3137, 1507, 634, 2398, 2237, 2222, 913, 2805, 1878, 1958, 1669, 1945, 2793, 1750, 594, 1014, 2459, 1788, 868, 1113, 680, 650, 1100, 2493, 871, 2271, 1518, 469, 1792, 2018, 410, 161, 487, 489, 1151, 138, 2369, 1301, 748, 1886, 2835, 594, 388}, {1881, 257, 824, 591, 211, 593, 983, 346, 333, 2242, 667, 803, 831, 598, 2206, 938, 1145, 188, 859, 148, 638, 414, 260, 700, 1207, 1807, 788, 626, 705, 1704, 995, 411, 649, 912, 814, 2294, 802, 1272, 246, 1129, 2041, 413, 607, 834, 358, 650, 716, 126, 366, 922, 2349, 2048, 1282, 354, 792, 1057, 451, 549, 1171, 652, 866, 545, 969, 654, 285, 868, 2100, 656, 312, 0, 950, 67, 2212, 1758, 1034, 1125, 1600, 935, 3032, 147, 566, 247, 550, 1432, 1441, 2634, 1937, 1256, 655, 2708, 2211, 323, 1862, 2747, 1102, 1984, 2121, 408, 898, 558, 1119, 2289, 1061, 2312, 640, 956, 259, 988, 975, 1892, 2342, 1313, 596, 2255, 559, 874, 596, 857, 1050, 548, 804, 1584, 1508, 2554, 1153, 2857, 761, 682}, {640, 1278, 580, 1460, 561, 839, 1221, 522, 982, 441, 1745, 1305, 1399, 1393, 1236, 1603, 1426, 1671, 715, 874, 786, 353, 1054, 862, 1337, 786, 1447, 585, 964, 1090, 1182, 923, 1047, 1287, 1445, 312, 1691, 1021, 1165, 748, 942, 1438, 1051, 1244, 1472, 289, 1290, 117, 535, 427, 1455, 1822, 1445, 1815, 982, 471, 779, 1077, 1187, 647, 1289, 1496, 1181, 489, 1282, 399, 1504, 1497, 82, 950, 0, 899, 926, 2004, 2139, 870, 565, 936, 2717, 605, 1656, 1889, 808, 770, 1305, 1772, 1608, 2836, 1277, 340, 2747, 563, 2158, 1732, 1865, 1067, 2349, 196, 2791, 1567, 824, 2305, 1291, 530, 2016, 817, 1335, 1228, 901, 1189, 597, 1258, 1051, 1257, 994, 1074, 316, 636, 637, 1183, 175, 1394, 510, 2799, 2150, 640, 249, 805}, {88, 589, 1361, 492, 1407, 473, 788, 1170, 464, 931, 475, 1699, 1254, 1326, 1305, 1185, 1686, 1338, 1583, 627, 786, 735, 265, 1003, 822, 1286, 703, 1364, 497, 876, 1002, 1136, 835, 996, 1236, 1357, 394, 1774, 933, 1077, 660, 854, 1521, 1000, 1193, 1421, 231, 1239, 205, 484, 458, 1367, 1776, 1528, 1727, 931, 383, 691, 1004, 1136, 730, 1238, 1433, 1130, 561, 1222, 437, 1453, 1580, 67, 899, 0, 1122, 759, 923, 1674, 943, 938, 1522, 240, 1803, 277, 2029, 819, 922, 1705, 591, 2507, 2733, 962, 305, 920, 2208, 2100, 1219, 1868, 1215, 309, 2945, 1128, 1143, 2143, 638, 933, 687, 2297, 1720, 1415, 1194, 411, 1873, 2507, 1096, 788, 1050, 1707, 1686, 1140, 774, 599, 625, 1816, 1089, 2043, 2357, 2752, 2833, 351}, {859, 947, 915, 2106, 678, 1619, 434, 922, 1103, 976, 1086, 1053, 1913, 1427, 918, 765, 1431, 2350, 682, 927, 727, 73, 1013, 607, 1300, 1167, 1422, 788, 1151, 386, 387, 425, 1670, 99, 1140, 1482, 728, 1253, 2489, 186, 357, 674, 233, 2088, 1236, 1253, 1568, 875, 1485, 1064, 900, 1086, 772, 2175, 2273, 1107, 1071, 528, 325, 958, 1324, 1589, 1362, 1075, 1196, 1420, 994, 994, 1661, 2212, 926, 1122, 0, 1194, 651, 1945, 1279, 515, 2818, 1609, 1555, 743, 719, 1060, 1212, 2673, 505, 1490, 2404, 3043, 927, 2546, 2346, 2112, 1276, 1114, 2184, 1110, 3187, 1248, 1639, 295, 1068, 153, 882, 827, 3200, 233, 155, 581, 2599, 1722, 1055, 697, 1506, 714, 2286, 974, 407, 838, 462, 1120, 557, 1824, 1380, 2997, 1003, 2486}, {216, 709, 797, 967, 1898, 711, 1712, 376, 983, 1224, 768, 1172, 1030, 1705, 1525, 1089, 979, 1490, 2142, 896, 1141, 781, 160, 1072, 449, 1359, 1200, 1532, 580, 975, 217, 545, 591, 1462, 135, 1226, 1541, 942, 1103, 2281, 400, 386, 764, 163, 1880, 1305, 1374, 1667, 758, 1544, 914, 933, 1063, 986, 1967, 2065, 1321, 1157, 343, 117, 1064, 1410, 1411, 1483, 1246, 1317, 1270, 1131, 969, 1758, 2004, 759, 1194, 0, 1585, 632, 2625, 1333, 1893, 530, 919, 406, 277, 918, 2291, 2854, 1593, 1407, 1387, 2651, 3082, 2245, 745, 2354, 1307, 1257, 1069, 461, 2061, 1490, 1759, 2718, 1535, 774, 462, 1294, 1600, 1747, 1773, 1053, 2849, 547, 604, 2438, 1632, 610, 1232, 1635, 1619, 279, 394, 2084, 738, 2207, 1635, 2241, 1100, 981}, {1218, 1425, 693, 635, 1275, 704, 1180, 2095, 1133, 1474, 1856, 470, 1617, 1028, 1291, 1940, 2019, 1980, 1871, 1029, 1998, 2243, 1320, 1362, 1421, 915, 1689, 1446, 1972, 661, 1238, 1102, 1536, 1662, 660, 1339, 1682, 1922, 2019, 676, 1117, 1593, 1495, 1348, 1305, 864, 1686, 1879, 2107, 924, 1925, 618, 1170, 1011, 2042, 1300, 871, 2402, 1617, 912, 1101, 1692, 1822, 502, 1924, 2121, 1816, 903, 1910, 1034, 2139, 923, 651, 1585, 0, 1110, 1154, 1924, 3040, 925, 1610, 1687, 607, 1180, 1123, 1588, 1861, 2492, 1301, 1697, 2625, 1280, 1367, 671, 1113, 1372, 1460, 1468, 3030, 485, 2001, 2894, 917, 1967, 659, 271, 2098, 1130, 3251, 999, 2688, 156, 1643, 1221, 368, 736, 1027, 677, 2116, 1752, 613, 1903, 789, 1598, 1436, 2022, 681, 1167}, {1113, 127, 312, 582, 670, 883, 1814, 627, 1628, 292, 899, 1218, 678, 1088, 931, 1688, 1441, 1123, 1021, 1406, 2083, 985, 1230, 697, 249, 988, 327, 1275, 1116, 1448, 549, 1008, 95, 554, 679, 1403, 253, 1142, 1457, 1031, 976, 2222, 489, 513, 680, 290, 1821, 1221, 1341, 1583, 659, 1460, 787, 849, 964, 1065, 1950, 1981, 1410, 1073, 216, 180, 1055, 1326, 1284, 1400, 1280, 1276, 1143, 1125, 870, 1674, 1945, 632, 1110, 0, 872, 453, 148, 276, 917, 696, 1827, 817, 681, 2937, 1088, 2760, 2389, 1611, 1736, 162, 2681, 1293, 2001, 1225, 1449, 878, 1915, 1367, 925, 3122, 1110, 694, 1667, 1133, 1067, 1360, 690, 2484, 1702, 1249, 1958, 397, 1243, 1548, 1061, 846, 1118, 2284, 1194, 2313, 402, 2475, 1114, 2405, 1321, 384}, {745, 1747, 656, 442, 1087, 1174, 760, 2444, 649, 1237, 614, 682, 721, 1340, 836, 1002, 2355, 1045, 476, 323, 1168, 2763, 259, 504, 596, 496, 809, 858, 1096, 1007, 1040, 1230, 1593, 746, 211, 85, 2083, 541, 863, 1205, 302, 1441, 2857, 256, 767, 538, 675, 2501, 986, 871, 1186, 946, 1214, 1291, 816, 1035, 330, 2617, 2611, 688, 821, 892, 767, 604, 1015, 1798, 980, 633, 814, 1600, 565, 943, 1279, 2625, 1154, 872, 0, 769, 1589, 2740, 1888, 1003, 319, 839, 1011, 3067, 1935, 1759, 2657, 2690, 1650, 954, 2418, 2689, 2235, 1839, 2206, 1118, 2306, 485, 1877, 1965, 1338, 814, 948, 2044, 1959, 710, 1099, 991, 946, 1617, 1419, 619, 1735, 952, 2221, 972, 660, 1286, 1794, 654, 1108, 2294, 1676, 1796, 484, 1038}, {710, 393, 1046, 477, 549, 386, 474, 513, 1743, 257, 1289, 115, 558, 951, 639, 747, 593, 1920, 1100, 999, 934, 1065, 2062, 961, 1206, 356, 489, 647, 157, 927, 746, 1107, 726, 1309, 298, 499, 625, 1382, 586, 801, 1116, 982, 768, 2156, 575, 863, 345, 640, 1800, 880, 1000, 1242, 339, 1119, 582, 479, 626, 996, 2027, 1910, 1356, 732, 294, 567, 720, 985, 1116, 1059, 1106, 935, 936, 938, 515, 1333, 1924, 453, 769, 0, 2486, 1296, 1266, 150, 1143, 968, 2091, 2836, 1867, 2834, 1670, 2871, 2664, 1184, 1401, 2360, 1405, 2017, 832, 750, 2295, 720, 867, 2957, 195, 1056, 1068, 444, 2947, 1137, 837, 1466, 2146, 3097, 1234, 552, 1985, 584, 1436, 1407, 597, 828, 740, 652, 1202, 2743, 1289, 2673, 1168, 140}, {2038, 2739, 2093, 999, 2152, 2360, 1656, 1573, 2176, 295, 2148, 2996, 2125, 2375, 2757, 1451, 2518, 1870, 848, 2841, 2939, 2956, 2772, 30, 2990, 3235, 2265, 2312, 2322, 1914, 2590, 2252, 2873, 1572, 1696, 2101, 2528, 2654, 690, 2273, 2583, 2823, 3008, 1400, 145, 2546, 2376, 2304, 2230, 280, 2587, 2780, 3008, 1842, 2826, 1479, 2061, 1853, 3018, 565, 153, 3378, 2518, 1911, 2035, 2615, 2723, 1137, 2825, 3032, 2717, 1522, 2818, 1893, 3040, 148, 1589, 2486, 0, 332, 459, 2818, 1018, 423, 723, 2016, 1811, 2766, 2731, 1605, 2845, 332, 1281, 1343, 1449, 1558, 884, 3084, 2671, 774, 1170, 1616, 1156, 373, 1310, 641, 534, 1494, 1099, 435, 1878, 1497, 1874, 1600, 1989, 824, 328, 997, 2227, 765, 562, 1187, 1863, 1167, 1987, 2492, 421, 870}, {2816, 1078, 1054, 1419, 1915, 1503, 1417, 1229, 1280, 642, 2521, 843, 229, 1127, 520, 333, 1625, 331, 973, 2884, 42, 691, 838, 140, 2846, 1081, 1198, 722, 1363, 500, 1209, 349, 784, 111, 1778, 2378, 1324, 1074, 1011, 2346, 1499, 303, 154, 1006, 1454, 2934, 1250, 1761, 770, 1633, 2681, 248, 248, 192, 998, 211, 1356, 766, 1006, 943, 2991, 2688, 1288, 346, 1363, 1593, 597, 93, 1811, 147, 605, 240, 1609, 530, 925, 276, 2740, 1296, 332, 0, 1334, 1374, 2948, 1046, 1428, 2891, 1447, 2710, 2663, 2954, 1579, 363, 2403, 1257, 647, 1472, 2540, 2800, 398, 1267, 1185, 2198, 210, 933, 289, 862, 553, 992, 2911, 1320, 2200, 1995, 877, 3080, 931, 1023, 135, 850, 1119, 2360, 602, 1707, 928, 930, 1110, 2941, 774, 307}, {1666, 1343, 702, 1403, 769, 344, 885, 1081, 483, 529, 1024, 1048, 869, 1844, 789, 1179, 1572, 126, 1349, 958, 1262, 1691, 1696, 1636, 1620, 1373, 1654, 1899, 1004, 1018, 1168, 571, 1436, 1255, 1704, 404, 1073, 758, 1192, 1318, 724, 1011, 1421, 1671, 1675, 657, 1461, 1249, 1171, 1022, 981, 1142, 1435, 1611, 1839, 705, 1674, 561, 950, 941, 1698, 1369, 1215, 2058, 1353, 568, 777, 1392, 1573, 566, 1656, 1803, 1555, 919, 1610, 917, 1888, 1266, 459, 1334, 0, 454, 1462, 2066, 1422, 2198, 1712, 2165, 2607, 2973, 2928, 1368, 2671, 2345, 339, 542, 1863, 1082, 1020, 1794, 1717, 1990, 391, 739, 1186, 361, 241, 1185, 1076, 2231, 1811, 964, 651, 936, 1185, 651, 1133, 1090, 277, 1287, 1795, 1824, 883, 1700, 1759, 1365, 87, 430}, {1742, 191, 2894, 1187, 1220, 1528, 1993, 1612, 1553, 1307, 1358, 720, 2599, 951, 106, 1236, 636, 499, 1701, 485, 1051, 2960, 175, 841, 1004, 126, 2924, 1247, 1347, 831, 1501, 575, 1318, 374, 809, 217, 1887, 2487, 1433, 1228, 1177, 2422, 1637, 457, 78, 1168, 1532, 3012, 1416, 1910, 879, 1771, 2759, 344, 386, 126, 1076, 152, 1434, 844, 1084, 1105, 3067, 2766, 1437, 502, 1472, 1702, 751, 247, 1889, 277, 743, 406, 1687, 696, 1003, 150, 2818, 1374, 454, 0, 811, 861, 3174, 3169, 1306, 2611, 2071, 2853, 3012, 463, 1746, 2613, 1336, 234, 1018, 427, 3006, 1696, 1313, 2981, 183, 324, 451, 654, 1264, 1413, 806, 408, 736, 1856, 1181, 1447, 1516, 2131, 1331, 1263, 572, 277, 940, 400, 1009, 2183, 1346, 1026, 1737, 418}, {996, 1726, 847, 3034, 1024, 413, 1111, 2070, 1069, 855, 1395, 1483, 898, 2739, 911, 976, 970, 754, 516, 1663, 751, 1191, 2768, 821, 156, 94, 961, 3064, 254, 351, 808, 909, 866, 1181, 1063, 1132, 779, 1642, 2006, 1092, 569, 478, 2406, 954, 705, 998, 172, 1672, 3152, 669, 1147, 750, 1088, 2824, 880, 610, 925, 1206, 1032, 1574, 984, 1224, 109, 3030, 2906, 441, 726, 1248, 1180, 550, 808, 2029, 719, 277, 607, 1827, 319, 1143, 1018, 2948, 1462, 811, 0, 582, 1703, 819, 2209, 2238, 2508, 2033, 2827, 742, 2745, 1616, 1702, 1359, 1109, 1444, 2677, 1625, 1345, 324, 1353, 510, 525, 719, 293, 267, 1121, 601, 2613, 2844, 515, 746, 1399, 786, 2811, 385, 585, 499, 307, 1355, 1596, 2254, 1706, 1898, 2337, 1439}, {1268, 899, 1293, 874, 2142, 903, 1147, 1258, 1355, 1357, 1310, 810, 779, 400, 1847, 646, 1000, 981, 539, 866, 1265, 618, 379, 2484, 916, 1144, 1211, 774, 2172, 1329, 1536, 583, 1254, 412, 973, 525, 170, 966, 1502, 2151, 1163, 1021, 1092, 1847, 1390, 683, 821, 1303, 742, 2260, 1197, 1667, 641, 1520, 2007, 680, 863, 1022, 607, 763, 737, 454, 352, 1313, 2487, 2014, 1673, 618, 1136, 1432, 770, 819, 1060, 918, 1180, 817, 839, 968, 423, 1046, 2066, 861, 582, 0, 1215, 1738, 1401, 3108, 2135, 2818, 2007, 361, 2644, 2687, 1609, 1725, 1902, 1652, 1660, 980, 2052, 353, 2015, 829, 594, 129, 1622, 1231, 1293, 782, 2789, 431, 1473, 1355, 1336, 1229, 1228, 1864, 1389, 672, 629, 2007, 1225, 458, 1832, 2381, 1283, 2039}, {1589, 404, 1397, 1952, 1251, 3288, 1259, 557, 1283, 2296, 1194, 980, 1636, 1724, 1198, 2993, 1159, 1380, 1163, 1072, 920, 1889, 1155, 1483, 2893, 1225, 560, 422, 1365, 3312, 298, 53, 1056, 1034, 1199, 1407, 1467, 1453, 1183, 1768, 2131, 1295, 760, 642, 2632, 1079, 1109, 1402, 286, 1934, 3406, 794, 1197, 998, 1197, 3050, 1284, 1014, 1329, 1454, 1436, 1825, 1276, 1516, 317, 3065, 3160, 198, 1130, 1441, 1305, 922, 1212, 2291, 1123, 681, 1011, 2091, 723, 1428, 1422, 3174, 1703, 1215, 0, 2615, 897, 1139, 3005, 2215, 2857, 1166, 2621, 2619, 1752, 1405, 2083, 631, 1574, 87, 1491, 3341, 1542, 2194, 1138, 369, 1032, 169, 1228, 548, 3017, 467, 1722, 2827, 1209, 315, 1709, 1005, 2869, 1498, 773, 2315, 818, 1785, 1000, 2452, 998, 986}, {3010, 2547, 2885, 3023, 1325, 2947, 876, 1983, 2472, 1805, 1354, 1822, 2030, 1762, 1808, 2305, 945, 2151, 3125, 2050, 2460, 2853, 1362, 2630, 2237, 126, 2972, 2910, 2795, 2901, 846, 2712, 2957, 2285, 1982, 2449, 1840, 2717, 2536, 2985, 1400, 965, 1862, 2341, 2412, 700, 1943, 2702, 2952, 2758, 1805, 1021, 2216, 1948, 2303, 1881, 814, 2716, 2892, 3120, 1986, 2955, 1840, 2231, 2220, 2802, 314, 936, 3137, 2634, 1772, 1705, 2673, 2854, 1588, 2937, 3067, 2836, 2016, 2891, 2198, 3169, 819, 1738, 2615, 0, 1645, 1778, 1160, 3186, 2189, 530, 2147, 2563, 1441, 1778, 935, 275, 2662, 395, 529, 2636, 1713, 2066, 1894, 966, 1272, 466, 1664, 523, 1883, 168, 1842, 536, 784, 1056, 678, 1257, 836, 2978, 961, 2170, 1058, 2460, 1665, 656, 935, 765}, {1254, 1810, 1695, 1685, 2063, 590, 1954, 1549, 885, 1272, 605, 827, 622, 830, 896, 979, 1383, 1370, 1126, 2165, 841, 1434, 1805, 471, 1623, 1359, 1137, 1976, 1710, 1595, 1941, 1539, 1512, 1757, 1232, 782, 1520, 762, 1796, 1615, 1983, 193, 523, 662, 1141, 1212, 859, 743, 1677, 1992, 1558, 1196, 1678, 1016, 827, 1218, 681, 1277, 1756, 1876, 2118, 1094, 1995, 1053, 1339, 1354, 1602, 1399, 1507, 1937, 1608, 591, 505, 1593, 1861, 1088, 1935, 1867, 1811, 1447, 1712, 1306, 2209, 1401, 897, 1645, 0, 2544, 1684, 845, 3160, 482, 2522, 2017, 1586, 1528, 2166, 1923, 2929, 969, 620, 1835, 848, 1189, 1770, 2350, 1272, 258, 1115, 906, 2852, 1161, 2084, 230, 1749, 1878, 1570, 558, 1347, 1004, 2441, 1273, 1275, 2710, 1697, 1983, 2314, 799}, {953, 396, 2709, 2612, 2584, 2962, 1365, 2853, 1199, 1784, 2171, 1504, 1394, 1521, 1732, 1802, 1848, 2282, 1265, 2025, 3064, 1758, 2333, 2704, 1371, 2522, 2277, 366, 2875, 2609, 2494, 2840, 1169, 2411, 2656, 2131, 1681, 2419, 1661, 2695, 2514, 2882, 1146, 607, 1561, 2040, 2111, 871, 1642, 2576, 2891, 2457, 1938, 1344, 1915, 1590, 2117, 1543, 1134, 2655, 2775, 3017, 2026, 2894, 1880, 2247, 2260, 2501, 634, 1256, 2836, 2507, 1490, 1407, 2492, 2760, 1759, 2834, 2766, 2710, 2165, 2611, 2238, 3108, 1139, 1778, 2544, 0, 2441, 1755, 810, 667, 2149, 2464, 1591, 1612, 2313, 103, 1663, 1233, 1494, 1948, 658, 546, 1498, 2051, 3255, 1425, 1355, 316, 1737, 224, 1122, 545, 1925, 588, 2558, 1034, 573, 1515, 746, 1219, 495, 2600, 1937, 2658, 1457, 1984}, {128, 850, 489, 2606, 2518, 2481, 2859, 1271, 2750, 1220, 1681, 2068, 1401, 1300, 1418, 1626, 1708, 1754, 2179, 1286, 1922, 2961, 1655, 2230, 2601, 1277, 2419, 2183, 372, 2772, 2506, 2391, 2737, 1190, 2308, 2553, 2028, 1578, 2316, 1558, 2592, 2411, 2779, 1043, 504, 1458, 1937, 2008, 843, 1539, 2473, 2788, 2354, 1844, 1365, 1812, 1487, 2014, 1440, 1144, 2552, 2672, 2914, 1924, 2791, 1786, 2144, 2166, 2398, 655, 1277, 2733, 2404, 1387, 1301, 2389, 2657, 1670, 2731, 2663, 2607, 2071, 2508, 2135, 3005, 1160, 1684, 2441, 0, 2632, 1729, 2297, 3019, 2090, 1384, 1486, 2065, 388, 3004, 981, 1744, 2675, 966, 474, 800, 1326, 2954, 1974, 115, 556, 2128, 1519, 1961, 1144, 2153, 781, 158, 1611, 1253, 706, 1221, 1628, 2009, 1563, 2124, 2908, 251, 1174}, {395, 294, 1160, 102, 2916, 2564, 2791, 3040, 1342, 2964, 905, 1991, 2378, 1711, 1371, 1728, 1936, 1779, 1825, 2322, 971, 2168, 3142, 1965, 2477, 2870, 1379, 2647, 2254, 80, 2989, 2816, 2701, 2918, 875, 2618, 2863, 2302, 1888, 2466, 1857, 2734, 2553, 3002, 1353, 871, 1768, 2247, 2318, 717, 1849, 2719, 2969, 2664, 1822, 1050, 2122, 1854, 2320, 1787, 840, 2733, 2909, 3137, 2003, 2972, 1857, 2248, 2237, 2708, 340, 962, 3043, 2651, 1697, 1611, 2690, 2871, 1605, 2954, 2973, 2853, 2033, 2818, 2215, 3186, 845, 1755, 2632, 0, 2606, 853, 1250, 2961, 1313, 1426, 1354, 255, 2936, 1307, 865, 2856, 945, 701, 256, 388, 1604, 1501, 3051, 1063, 2117, 929, 1091, 664, 1019, 1009, 376, 854, 2616, 1421, 190, 1458, 1059, 923, 476, 2798, 250, 136}, {47, 434, 341, 1199, 55, 2955, 2538, 2830, 3014, 1316, 2938, 870, 1974, 2417, 1750, 1345, 1767, 1975, 1753, 1799, 2296, 936, 2142, 3116, 2004, 2451, 2844, 1353, 2621, 2228, 84, 2963, 2855, 2740, 2892, 840, 2657, 2902, 2276, 1927, 2440, 1831, 2708, 2527, 2976, 1391, 910, 1807, 2286, 2357, 691, 1888, 2693, 2943, 2703, 1796, 1015, 2161, 1893, 2294, 1826, 805, 2707, 2883, 3111, 1977, 2946, 1831, 2222, 2211, 2747, 305, 927, 3082, 2625, 1736, 1650, 2664, 2845, 1579, 2928, 3012, 2827, 2007, 2857, 2189, 3160, 810, 1729, 2606, 0, 125, 1751, 1176, 2051, 1278, 2120, 1721, 2880, 1375, 1818, 1274, 1053, 528, 564, 794, 695, 1785, 3005, 2537, 2732, 1169, 1342, 1502, 1988, 181, 336, 1047, 454, 2725, 1074, 1591, 1408, 2058, 1241, 1761, 921, 402}, {2493, 2519, 2341, 2444, 1545, 2502, 1198, 466, 840, 521, 1221, 456, 2373, 669, 809, 1010, 1472, 1094, 1035, 786, 837, 201, 2078, 433, 627, 718, 128, 410, 1180, 162, 530, 2439, 481, 706, 815, 399, 2403, 938, 1145, 313, 980, 54, 800, 341, 344, 511, 1369, 1969, 915, 728, 766, 1901, 1116, 227, 450, 912, 1011, 2491, 917, 1392, 361, 1250, 2238, 214, 417, 642, 555, 453, 913, 323, 563, 920, 2546, 2245, 1280, 162, 954, 1184, 332, 363, 1368, 463, 742, 361, 1166, 530, 482, 667, 2297, 853, 125, 0, 2455, 1630, 2129, 2077, 1427, 406, 2091, 1183, 1889, 2939, 665, 799, 835, 1060, 1660, 923, 245, 2238, 236, 1186, 1392, 912, 873, 827, 875, 1275, 238, 416, 2188, 1312, 563, 1869, 1782, 815, 1441, 954}, {2355, 524, 485, 90, 213, 877, 579, 2554, 2537, 2429, 2873, 1347, 2764, 1310, 1695, 2016, 1415, 1376, 1398, 1574, 1750, 1830, 2193, 1376, 1936, 2975, 1651, 2244, 2615, 1318, 2433, 2210, 462, 2786, 2487, 2339, 2751, 1280, 2256, 2501, 2042, 1558, 2330, 1572, 2606, 2425, 2793, 1070, 423, 1472, 1943, 1988, 919, 1487, 2487, 2802, 2302, 1920, 1455, 1760, 1432, 2028, 1385, 1227, 2566, 2686, 2928, 1938, 2805, 1862, 2158, 2208, 2346, 745, 1367, 2681, 2418, 1401, 1281, 2403, 2671, 1746, 2745, 2644, 2621, 2147, 2522, 2149, 3019, 1250, 1751, 2455, 0, 2397, 1063, 1911, 2398, 1037, 2781, 877, 1694, 3086, 1155, 1225, 1053, 485, 1890, 666, 922, 1423, 858, 3152, 1463, 1152, 1264, 545, 133, 115, 553, 110, 389, 818, 1285, 2061, 1858, 2256, 2921, 1094}, {130, 2297, 450, 411, 54, 152, 806, 505, 2562, 2464, 2437, 2815, 1217, 2706, 1236, 1637, 2024, 1357, 1246, 1374, 1582, 1654, 1700, 2135, 1257, 1878, 2917, 1611, 2186, 2557, 1223, 2375, 2129, 388, 2728, 2462, 2347, 2693, 1206, 2264, 2509, 1984, 1534, 2272, 1514, 2548, 2367, 2735, 999, 460, 1414, 1893, 1964, 789, 1495, 2429, 2744, 2310, 1790, 1381, 1768, 1443, 1970, 1396, 1097, 2508, 2628, 2870, 1878, 2747, 1732, 2100, 2112, 2354, 671, 1293, 2689, 2360, 1343, 1257, 2345, 2613, 1616, 2687, 2619, 2563, 2017, 2464, 2090, 2961, 1176, 1630, 2397, 0, 1500, 958, 778, 402, 2273, 1189, 1238, 2838, 1362, 873, 976, 582, 944, 974, 1307, 346, 3067, 2851, 1528, 489, 1253, 72, 1233, 1093, 933, 425, 506, 2081, 1756, 1723, 1419, 2009, 1174, 2574}, {1330, 1319, 1412, 1780, 1741, 1374, 1477, 728, 1835, 1272, 1659, 1222, 1933, 1073, 1795, 2277, 821, 832, 471, 1397, 344, 390, 1030, 1118, 1291, 2077, 1054, 2009, 720, 1300, 1493, 947, 1464, 1340, 1718, 1817, 1308, 1155, 1811, 2267, 974, 1219, 1103, 432, 1389, 793, 1676, 1543, 1812, 759, 896, 561, 777, 815, 1587, 314, 1518, 1862, 1050, 1414, 2406, 576, 113, 1054, 181, 2005, 1614, 1643, 1958, 1102, 1865, 1219, 1276, 1307, 1113, 2001, 2235, 1405, 1449, 647, 339, 1336, 1702, 1609, 1752, 1441, 1586, 1591, 1384, 1313, 2051, 2129, 1063, 1500, 0, 1518, 967, 2852, 3244, 696, 1714, 1659, 1047, 934, 1127, 1174, 440, 1020, 1201, 981, 2531, 1518, 1703, 3083, 2012, 214, 643, 278, 606, 1042, 748, 2206, 822, 627, 1635, 2259, 1685, 966}, {218, 1168, 1157, 1418, 1618, 1579, 1212, 1315, 510, 1673, 1425, 1666, 1308, 1936, 869, 1818, 2059, 801, 895, 414, 1193, 326, 453, 925, 1013, 1291, 1873, 1035, 2035, 700, 1307, 1519, 743, 1487, 1339, 1556, 1843, 1371, 1218, 1814, 2049, 1127, 1372, 1105, 455, 1396, 713, 1683, 1524, 1838, 555, 734, 503, 840, 878, 1369, 354, 1541, 1865, 1181, 1309, 2188, 639, 331, 1073, 228, 1787, 1629, 1669, 1984, 1067, 1868, 1114, 1257, 1372, 1225, 1839, 2017, 1558, 1472, 542, 234, 1359, 1725, 1405, 1778, 1528, 1612, 1486, 1426, 1278, 2077, 1911, 958, 1518, 0, 1844, 1408, 903, 1581, 1137, 2893, 463, 749, 1241, 686, 2051, 1128, 720, 1247, 1669, 592, 1798, 2834, 1011, 1033, 883, 328, 1291, 544, 505, 2448, 1015, 2474, 988, 1921, 729, 1449}, {1133, 1351, 681, 811, 1731, 762, 788, 735, 829, 623, 771, 2414, 1801, 2236, 2252, 554, 2176, 926, 1212, 1876, 1167, 583, 1226, 1434, 991, 1037, 1534, 747, 1380, 2354, 1296, 1689, 2082, 591, 1859, 1466, 708, 2201, 2206, 2146, 2130, 916, 2116, 2361, 1514, 1386, 1678, 1069, 1946, 1765, 2214, 646, 816, 1179, 1699, 1816, 236, 1347, 1931, 2181, 2162, 1127, 1055, 1620, 1450, 1532, 1304, 654, 1945, 2121, 2349, 1215, 2184, 1069, 1460, 1449, 2206, 832, 884, 2540, 1863, 1018, 1109, 1902, 2083, 935, 2166, 2313, 2065, 1354, 2120, 1427, 2398, 778, 967, 1844, 0, 448, 1813, 1691, 2091, 2030, 1148, 1030, 1003, 902, 444, 590, 1004, 498, 1635, 1557, 1574, 821, 943, 2188, 1070, 201, 701, 1400, 632, 1353, 1243, 2650, 1701, 605, 1591, 431}, {2269, 1832, 1773, 2787, 2845, 565, 3031, 3057, 2831, 2934, 2035, 3040, 1045, 1021, 641, 377, 1759, 250, 2928, 1159, 950, 1500, 2027, 1537, 1383, 1341, 1392, 755, 2633, 924, 360, 1208, 601, 346, 1718, 420, 1085, 2977, 208, 486, 661, 390, 2958, 895, 992, 803, 1377, 609, 1290, 581, 899, 163, 1858, 2459, 1405, 1049, 958, 2439, 1482, 358, 386, 813, 1566, 3046, 1197, 1708, 851, 1616, 2793, 408, 196, 309, 1110, 461, 1468, 878, 1118, 750, 3084, 2800, 1082, 427, 1444, 1652, 631, 275, 1923, 103, 388, 255, 1721, 406, 1037, 402, 2852, 1408, 448, 0, 2690, 329, 1267, 3171, 223, 748, 807, 578, 910, 1230, 2130, 547, 2570, 1787, 585, 466, 2372, 1885, 2866, 1273, 941, 810, 863, 2320, 364, 2878, 1894, 2672, 2668, 1308}, {3104, 846, 1542, 1704, 374, 448, 2577, 105, 58, 358, 236, 1123, 160, 2879, 2622, 2754, 3098, 1400, 3022, 963, 1954, 2341, 1674, 1429, 1691, 1899, 1837, 1883, 2380, 1029, 2195, 3200, 1928, 2503, 2874, 1437, 2692, 2312, 138, 3045, 2779, 2664, 2976, 933, 2581, 2826, 2301, 1851, 2524, 1831, 2792, 2611, 3052, 1316, 834, 1731, 2210, 2281, 775, 1812, 2746, 3027, 2627, 1880, 1108, 2085, 1817, 2287, 1750, 898, 2791, 2945, 3187, 2061, 3030, 1915, 2306, 2295, 2671, 398, 1020, 3006, 2677, 1660, 1574, 2662, 2929, 1663, 3004, 2936, 2880, 2091, 2781, 2273, 3244, 903, 1813, 2690, 0, 1017, 711, 236, 1370, 418, 1057, 972, 590, 1437, 915, 1272, 2751, 841, 389, 1343, 1667, 1393, 2565, 2047, 522, 1050, 273, 1215, 1027, 1744, 2122, 2848, 274, 2321}, {1715, 1407, 977, 629, 734, 1398, 1456, 917, 1739, 1752, 1442, 1545, 646, 1748, 1516, 1084, 1298, 1435, 481, 1326, 1824, 274, 967, 303, 825, 430, 615, 316, 404, 755, 1529, 498, 1537, 353, 806, 1199, 398, 995, 757, 1685, 1348, 1268, 1208, 1313, 1829, 1218, 1463, 604, 552, 892, 123, 1168, 987, 1355, 467, 1070, 277, 756, 882, 1149, 556, 1049, 1364, 1239, 680, 1942, 792, 781, 594, 558, 1567, 1128, 1248, 1490, 485, 1367, 485, 720, 774, 1267, 1794, 1696, 1625, 980, 87, 395, 969, 1233, 981, 1307, 1375, 1183, 877, 1189, 696, 1581, 1691, 329, 1017, 0, 1528, 1710, 1594, 1147, 500, 688, 1830, 1122, 473, 646, 1485, 337, 1556, 1397, 866, 519, 1415, 1618, 2872, 609, 513, 1598, 431, 2713, 976, 3076, 139, 144}, {527, 1293, 1918, 489, 712, 916, 976, 1047, 1427, 1234, 1252, 1020, 1123, 227, 1243, 1925, 1526, 1771, 1945, 367, 1837, 1415, 799, 1387, 678, 604, 737, 945, 727, 793, 1242, 1178, 995, 2047, 807, 1317, 1710, 271, 1506, 1197, 1172, 1859, 1779, 1681, 1823, 1405, 1627, 1872, 1129, 897, 1387, 650, 1656, 1475, 1866, 157, 706, 690, 1210, 1327, 725, 858, 1560, 1874, 1673, 998, 1544, 1131, 1014, 1119, 824, 1143, 1639, 1759, 2001, 925, 1877, 867, 1170, 1185, 1717, 1313, 1345, 2052, 1491, 529, 620, 1494, 1744, 865, 1818, 1889, 1694, 1238, 1714, 1137, 2091, 1267, 711, 1528, 0, 2617, 326, 2091, 1400, 288, 874, 392, 803, 908, 2834, 1974, 1827, 386, 1005, 692, 338, 1633, 2623, 3005, 783, 1595, 289, 1598, 1914, 1942, 214, 325}, {1328, 1752, 722, 3042, 839, 1972, 2190, 995, 1069, 2504, 629, 664, 979, 958, 1462, 635, 3235, 2279, 3009, 3025, 1327, 2949, 241, 1985, 2686, 2006, 1136, 2065, 2273, 1734, 1710, 2307, 432, 2152, 3127, 2072, 2462, 2855, 1364, 2632, 2007, 607, 2974, 2979, 2919, 2903, 211, 2937, 3182, 2287, 2225, 2450, 1842, 2719, 2389, 2987, 1485, 1455, 2018, 2475, 2601, 603, 2186, 2704, 2954, 2958, 1537, 386, 2459, 2289, 2305, 2143, 295, 2718, 2894, 3122, 1965, 2957, 1616, 2198, 1990, 2981, 324, 353, 3341, 2636, 1835, 1948, 2675, 2856, 1274, 2939, 3086, 2838, 1659, 2893, 2030, 3171, 236, 1710, 2617, 0, 816, 605, 1791, 897, 1191, 1223, 1930, 545, 2981, 358, 1245, 440, 1706, 983, 1271, 785, 869, 2732, 2440, 2214, 59, 1989, 653, 2911, 985, 552}, {1807, 1002, 591, 2112, 1258, 1266, 1200, 1249, 1929, 2025, 703, 2028, 2054, 1983, 2077, 1171, 2037, 1629, 535, 1366, 1224, 758, 1146, 1670, 486, 1137, 806, 828, 905, 1022, 275, 244, 506, 1375, 488, 1326, 601, 705, 1087, 739, 848, 200, 1974, 1171, 1269, 1291, 1102, 1700, 1369, 1576, 599, 949, 652, 521, 920, 618, 1203, 978, 1639, 711, 926, 1052, 1375, 1031, 913, 1153, 1343, 308, 1788, 1061, 1291, 638, 1068, 1535, 917, 1110, 1338, 195, 1156, 210, 391, 183, 1353, 2015, 1542, 1713, 848, 658, 966, 945, 1053, 665, 1155, 1362, 1047, 463, 1148, 223, 1370, 1594, 326, 816, 0, 583, 313, 2103, 188, 298, 515, 1051, 2733, 824, 1901, 1957, 1887, 616, 1501, 650, 316, 941, 2195, 874, 1285, 1978, 1175, 1796, 320, 638}, {567, 2152, 966, 441, 2134, 973, 1379, 935, 952, 1817, 1875, 483, 2141, 2167, 1861, 1964, 1065, 2150, 1105, 748, 857, 1001, 869, 892, 2194, 192, 575, 527, 1213, 611, 576, 538, 626, 358, 1899, 102, 1103, 235, 372, 761, 806, 561, 477, 2087, 914, 827, 767, 879, 2224, 811, 1052, 170, 520, 461, 324, 748, 591, 921, 893, 1489, 432, 364, 490, 1549, 656, 615, 930, 819, 868, 2312, 530, 933, 153, 774, 1967, 694, 814, 1056, 373, 933, 739, 324, 510, 829, 2194, 2066, 1189, 546, 474, 701, 528, 799, 1225, 873, 934, 749, 1030, 748, 418, 1147, 2091, 605, 583, 0, 837, 659, 3006, 1445, 1270, 696, 1913, 487, 1752, 339, 785, 724, 605, 946, 1200, 346, 1143, 1048, 2236, 2644, 967, 2187, 1343, 405}, {309, 436, 1852, 691, 196, 1911, 1227, 1079, 798, 840, 1594, 1652, 736, 1841, 1867, 1638, 1741, 842, 1850, 1390, 888, 1166, 1254, 569, 1146, 1898, 142, 841, 397, 911, 496, 613, 246, 334, 559, 1603, 304, 1356, 227, 626, 1019, 506, 815, 561, 1787, 1168, 1134, 1076, 1132, 1928, 1092, 1337, 446, 540, 697, 85, 973, 792, 1175, 663, 1266, 302, 630, 756, 1249, 622, 869, 1183, 1113, 640, 2016, 687, 882, 462, 659, 1667, 948, 1068, 1310, 289, 1186, 451, 525, 594, 1138, 1894, 1770, 1498, 800, 256, 564, 835, 1053, 976, 1127, 1241, 1003, 807, 1057, 500, 1400, 1791, 313, 837, 0, 343, 1562, 1553, 1214, 475, 2788, 1772, 1777, 127, 1970, 1008, 166, 881, 1258, 1333, 238, 2549, 1763, 303, 2134, 2176, 753, 996}, {562, 361, 509, 2308, 1245, 757, 2381, 789, 1535, 1294, 1313, 2137, 2195, 230, 2297, 2323, 2181, 2284, 1385, 2306, 1242, 387, 932, 751, 1025, 675, 2179, 516, 786, 886, 1278, 970, 937, 592, 643, 44, 1884, 259, 853, 594, 245, 627, 984, 379, 336, 2243, 700, 837, 875, 629, 2209, 982, 1189, 213, 881, 182, 640, 416, 230, 734, 1209, 1809, 791, 651, 731, 1705, 1017, 444, 680, 956, 817, 2297, 827, 1294, 271, 1133, 2044, 444, 641, 862, 361, 654, 719, 129, 369, 966, 2350, 2051, 1326, 388, 794, 1060, 485, 582, 1174, 686, 902, 578, 972, 688, 288, 897, 2103, 659, 343, 0, 642, 305, 3035, 806, 2095, 777, 1485, 263, 2117, 826, 1688, 990, 213, 1426, 779, 1938, 1645, 827, 1459, 2842, 993, 406}, {910, 1442, 1189, 1412, 3213, 2133, 1623, 3286, 547, 2440, 2124, 2121, 3003, 3061, 709, 3202, 3228, 3047, 3150, 2251, 3211, 1467, 1019, 1163, 193, 1930, 380, 3082, 1375, 1404, 1716, 2181, 1800, 1741, 1495, 1546, 906, 2787, 1139, 190, 1424, 824, 683, 1889, 678, 1239, 3148, 359, 1008, 1175, 310, 3112, 1417, 1414, 1019, 1689, 763, 1506, 494, 929, 384, 2075, 2675, 1621, 1416, 1361, 2610, 1825, 650, 259, 1335, 1720, 3200, 1600, 2098, 1067, 1959, 2947, 534, 553, 241, 1264, 293, 1622, 1032, 1272, 1272, 3255, 2954, 1604, 695, 1660, 1890, 944, 440, 2051, 444, 910, 590, 1830, 874, 1191, 188, 3006, 1562, 642, 0, 891, 1549, 2290, 3066, 1088, 1635, 1755, 1869, 1033, 338, 742, 382, 381, 1009, 1026, 753, 2979, 995, 105, 858, 646}, {1487, 584, 490, 639, 75, 1766, 1010, 599, 2084, 1333, 1238, 1208, 1313, 1901, 2031, 778, 2000, 2026, 1955, 2049, 1179, 2009, 1701, 568, 1439, 1299, 730, 1221, 1629, 555, 1209, 865, 787, 974, 1091, 283, 223, 581, 1334, 560, 1401, 670, 780, 1162, 745, 923, 275, 1946, 1246, 1344, 1363, 1177, 1659, 1441, 1648, 671, 1018, 727, 548, 995, 664, 1278, 986, 1647, 780, 998, 1124, 1334, 1100, 988, 1228, 1415, 233, 1747, 1130, 1360, 710, 1137, 1494, 992, 1185, 1413, 267, 1231, 169, 466, 258, 1425, 1974, 1501, 1785, 923, 666, 974, 1020, 1128, 590, 1230, 1437, 1122, 392, 1223, 298, 1445, 1553, 305, 891, 0, 1007, 846, 741, 135, 1333, 151, 1158, 718, 733, 1092, 1746, 320, 292, 1117, 882, 2392, 2494, 727, 2959, 910}, {1540, 1359, 1081, 1253, 944, 1468, 3096, 1821, 1382, 2775, 837, 2310, 1327, 1174, 2458, 2450, 1035, 2851, 2812, 2502, 2605, 1706, 2906, 236, 1428, 196, 1192, 1813, 1043, 3133, 1111, 445, 1179, 2157, 1090, 876, 1482, 1570, 1037, 2838, 998, 1172, 1029, 911, 712, 1750, 947, 1322, 2789, 1017, 352, 220, 1157, 3163, 200, 183, 895, 930, 1038, 1268, 1259, 1292, 975, 1664, 2027, 1161, 626, 530, 2493, 975, 901, 1194, 155, 1773, 3251, 690, 1099, 837, 1099, 2911, 1076, 806, 1121, 1293, 1228, 1664, 1115, 1355, 115, 3051, 3005, 245, 922, 1307, 1201, 720, 1004, 2130, 915, 473, 803, 1930, 515, 1270, 1214, 3035, 1549, 1007, 0, 310, 1635, 2903, 2175, 1071, 1924, 806, 367, 1299, 347, 1855, 491, 1966, 1190, 1539, 1632, 3177, 2675, 2629}, {1178, 766, 779, 187, 749, 548, 696, 2495, 1432, 944, 2568, 749, 1722, 1481, 1485, 2324, 2382, 194, 2484, 2510, 2368, 2471, 1572, 2493, 1339, 272, 1006, 659, 1212, 634, 2366, 703, 926, 1073, 1465, 1157, 1109, 779, 830, 205, 2071, 446, 760, 781, 267, 594, 1171, 346, 523, 2430, 665, 872, 961, 534, 2396, 1079, 1286, 387, 1053, 140, 827, 285, 150, 694, 1396, 1996, 978, 815, 871, 1892, 1189, 411, 581, 1053, 999, 2484, 991, 1466, 435, 1320, 2231, 408, 601, 782, 548, 523, 906, 316, 556, 1063, 2537, 2238, 1423, 346, 981, 1247, 498, 547, 1272, 646, 908, 545, 1051, 696, 475, 806, 2290, 846, 310, 0, 2512, 1459, 1597, 638, 1231, 819, 1486, 984, 293, 219, 1318, 2191, 850, 1547, 1196, 2590, 1190, 2328}, {2390, 2836, 1906, 3108, 2203, 1747, 2047, 1934, 560, 1140, 1645, 185, 2937, 668, 1603, 1765, 435, 509, 2399, 94, 127, 419, 413, 1184, 103, 2940, 2444, 2815, 2920, 1222, 2844, 801, 1880, 2402, 1735, 1251, 1752, 1960, 1659, 1705, 2202, 867, 2048, 3022, 1947, 2357, 2750, 1259, 2527, 2134, 47, 2869, 2840, 2725, 2798, 771, 2642, 2887, 2182, 1912, 2346, 1737, 2614, 2433, 2882, 1297, 895, 1792, 2271, 2342, 597, 1873, 2599, 2849, 2688, 1702, 946, 2146, 1878, 2200, 1811, 736, 2613, 2789, 3017, 1883, 2852, 1737, 2128, 2117, 2732, 236, 858, 3067, 2531, 1669, 1635, 2570, 2751, 1485, 2834, 2981, 2733, 1913, 2788, 2095, 3066, 741, 1635, 2512, 0, 539, 935, 2886, 2202, 122, 657, 543, 181, 247, 565, 1099, 958, 2431, 1468, 1737, 305, 1257}, {3005, 737, 1273, 1384, 103, 836, 1339, 1086, 1309, 3110, 2030, 1520, 3183, 458, 2337, 2021, 2018, 2900, 2958, 606, 3099, 3125, 2944, 3047, 2148, 3108, 1478, 977, 1077, 90, 1827, 277, 2979, 1272, 1301, 1613, 2078, 1697, 1638, 1392, 1443, 805, 2684, 1036, 134, 1321, 721, 580, 1786, 575, 1136, 3045, 256, 922, 1085, 207, 3009, 1328, 1428, 916, 1586, 660, 1403, 452, 887, 298, 1972, 2572, 1518, 1313, 1258, 2507, 1722, 547, 156, 1249, 1617, 3097, 1497, 1995, 964, 1856, 2844, 431, 467, 168, 1161, 224, 1519, 929, 1169, 1186, 3152, 2851, 1518, 592, 1557, 1787, 841, 337, 1974, 358, 824, 487, 1772, 777, 1088, 135, 2903, 1459, 539, 0, 1611, 1437, 908, 1041, 802, 1085, 1544, 143, 709, 2265, 824, 2612, 1729, 1745, 1322, 105}, {2114, 1313, 1566, 1567, 1217, 2217, 1379, 836, 1028, 1209, 1658, 423, 640, 1252, 2001, 819, 320, 538, 902, 892, 1511, 1328, 1289, 946, 1049, 196, 1383, 1671, 1721, 1546, 2029, 727, 1920, 1745, 879, 1133, 539, 984, 506, 691, 934, 1017, 1377, 1566, 1120, 2129, 793, 1400, 1728, 601, 1589, 1394, 1266, 1942, 1595, 1456, 1907, 1735, 1373, 1618, 1198, 666, 1489, 756, 1776, 1609, 1949, 323, 469, 596, 1051, 1096, 1055, 604, 1643, 1958, 1419, 1234, 1874, 877, 651, 1181, 515, 1473, 1722, 1842, 2084, 1122, 1961, 1091, 1342, 1392, 1463, 1528, 1703, 1798, 1574, 585, 389, 1556, 1827, 1245, 1901, 1752, 1777, 1485, 1635, 1333, 2175, 1597, 935, 1611, 0, 510, 771, 1937, 360, 166, 109, 1653, 441, 2372, 1060, 1346, 1837, 2629, 1552, 1024}, {1786, 697, 2936, 808, 576, 1367, 783, 837, 1204, 899, 1292, 3041, 1865, 1340, 2932, 261, 2268, 1575, 1512, 2615, 2673, 624, 3008, 2969, 2659, 2762, 1863, 3039, 784, 1080, 380, 616, 1758, 478, 2962, 1089, 689, 1276, 2059, 1282, 1122, 1370, 1426, 803, 2667, 900, 596, 1065, 592, 232, 1705, 462, 1119, 2946, 441, 225, 400, 593, 2992, 634, 731, 779, 1122, 668, 1223, 719, 958, 399, 1792, 2255, 1257, 788, 697, 2438, 1221, 397, 619, 552, 1600, 3080, 936, 1447, 746, 1355, 2827, 536, 230, 545, 1144, 664, 1502, 912, 1152, 489, 3083, 2834, 821, 466, 1343, 1397, 386, 440, 1957, 339, 127, 263, 1755, 151, 1071, 638, 2886, 1437, 510, 0, 1648, 479, 2617, 1303, 860, 225, 1116, 2141, 1267, 2695, 188, 2810, 542, 1255}, {2072, 825, 2141, 864, 1526, 2127, 1042, 2244, 1339, 883, 1183, 1070, 969, 402, 783, 1042, 2073, 196, 1097, 1301, 859, 989, 1535, 958, 984, 913, 1007, 629, 967, 2266, 1605, 2040, 2056, 358, 1980, 1056, 1016, 1717, 1038, 387, 1122, 1330, 795, 841, 1338, 776, 1184, 2158, 1103, 1493, 1886, 395, 1663, 1270, 904, 2005, 2010, 1950, 1934, 1046, 1968, 2213, 1318, 1282, 1482, 873, 1750, 1569, 2018, 559, 994, 1050, 1506, 1632, 368, 1243, 1735, 1985, 1989, 931, 1185, 1516, 1399, 1336, 1209, 784, 1749, 1925, 2153, 1019, 1988, 873, 1264, 1253, 2012, 1011, 943, 2372, 1667, 866, 1005, 1706, 1887, 785, 1970, 2117, 1869, 1158, 1924, 1231, 2202, 908, 771, 1648, 0, 487, 1173, 1670, 646, 969, 495, 1500, 952, 2842, 1939, 1544, 115, 352}, {1192, 963, 1277, 980, 2056, 367, 1148, 418, 1083, 180, 456, 296, 343, 2146, 1098, 652, 2234, 929, 1388, 1217, 1237, 2035, 2093, 374, 2150, 2176, 2079, 2182, 1267, 2159, 1306, 473, 1034, 895, 878, 817, 2013, 439, 821, 809, 1098, 893, 872, 412, 463, 177, 1718, 194, 997, 517, 376, 758, 837, 519, 181, 2096, 842, 939, 971, 773, 2043, 1049, 1253, 267, 816, 323, 538, 591, 410, 874, 1074, 1707, 714, 610, 736, 1548, 952, 584, 824, 1023, 651, 2131, 786, 1229, 315, 1056, 1878, 588, 781, 1009, 181, 827, 545, 72, 214, 1033, 2188, 1885, 1393, 519, 692, 983, 616, 724, 1008, 826, 1033, 718, 806, 819, 122, 1041, 1937, 479, 487, 0, 253, 322, 2675, 518, 432, 2186, 603, 2594, 2146, 2893, 1798, 270}, {694, 1855, 606, 1828, 291, 2719, 446, 1170, 1098, 394, 550, 1053, 800, 1023, 2824, 1744, 1234, 2897, 441, 2051, 1735, 1732, 2614, 2672, 323, 2813, 2839, 2658, 2761, 1862, 2822, 1375, 686, 974, 213, 1541, 205, 2693, 986, 1081, 1327, 1792, 1411, 1352, 1106, 1157, 519, 2398, 750, 316, 1035, 435, 460, 1500, 313, 850, 2759, 247, 818, 965, 88, 2723, 1208, 1325, 630, 1300, 374, 1117, 161, 596, 316, 1686, 2286, 1232, 1027, 1061, 2221, 1436, 328, 135, 1133, 1331, 2811, 1228, 1709, 678, 1570, 2558, 158, 376, 336, 875, 133, 1233, 643, 883, 1070, 2866, 2565, 1415, 338, 1271, 1501, 605, 166, 1688, 338, 733, 367, 1486, 657, 802, 360, 2617, 1173, 253, 0, 753, 1221, 2784, 841, 1565, 1053, 1774, 1831, 3040, 57, 1451}, {961, 267, 1066, 1229, 1205, 1246, 1930, 633, 1388, 152, 1349, 446, 402, 487, 80, 1883, 998, 587, 2108, 1195, 1262, 1180, 1215, 1925, 2021, 640, 2024, 2050, 1979, 2073, 1167, 2033, 1549, 553, 1298, 1161, 754, 1083, 1746, 452, 1057, 772, 875, 871, 988, 271, 240, 443, 1451, 408, 1253, 567, 642, 1024, 735, 785, 204, 1970, 1108, 1203, 1211, 1039, 1776, 1289, 1496, 519, 915, 589, 487, 857, 636, 1140, 974, 1635, 677, 846, 972, 1407, 997, 850, 1090, 1263, 385, 1864, 1005, 1257, 558, 1034, 1611, 854, 1047, 1275, 115, 1093, 278, 328, 201, 1273, 2047, 1618, 1633, 785, 650, 946, 881, 990, 742, 1092, 1299, 984, 543, 1085, 166, 1303, 1670, 322, 753, 0, 385, 1340, 2247, 2536, 170, 2649, 399, 2792, 496, 370}, {1018, 548, 752, 1861, 216, 1647, 668, 2725, 629, 624, 1156, 771, 626, 994, 726, 1081, 2830, 1685, 1167, 2793, 434, 2057, 1437, 1412, 2476, 2534, 463, 2819, 2830, 2520, 2623, 1724, 2828, 832, 901, 428, 587, 1547, 421, 2751, 918, 640, 1137, 1847, 1143, 1022, 1159, 1215, 592, 2456, 691, 604, 926, 381, 88, 1500, 334, 908, 2765, 412, 280, 417, 535, 2781, 663, 779, 570, 983, 489, 1050, 637, 774, 407, 1619, 2116, 1118, 660, 597, 2227, 1119, 277, 572, 585, 1389, 2869, 836, 1347, 573, 1253, 2616, 454, 238, 553, 933, 606, 1291, 701, 941, 522, 2872, 2623, 869, 316, 1200, 1258, 213, 382, 1746, 347, 293, 181, 1544, 109, 860, 646, 2675, 1221, 385, 0, 390, 794, 942, 1275, 1956, 1932, 1963, 164, 660}, {168, 1127, 486, 861, 1994, 120, 1815, 577, 2858, 688, 696, 1265, 663, 721, 1127, 859, 1190, 2963, 1818, 1300, 2961, 306, 2190, 1605, 1580, 2644, 2702, 504, 2952, 2978, 2688, 2791, 1892, 2961, 904, 960, 500, 496, 1680, 358, 2860, 1051, 782, 1305, 1959, 1311, 1190, 1273, 1324, 688, 2565, 824, 476, 1094, 513, 112, 1633, 342, 1017, 2898, 321, 345, 512, 473, 2890, 754, 851, 703, 1151, 548, 1183, 599, 838, 279, 1752, 2284, 1286, 828, 765, 2360, 1287, 277, 499, 672, 1498, 2978, 1004, 1515, 706, 1421, 2725, 416, 110, 425, 1042, 544, 1400, 810, 1050, 609, 3005, 2732, 941, 346, 1333, 1426, 381, 320, 1855, 219, 247, 143, 1653, 225, 969, 518, 2784, 1340, 390, 0, 275, 1113, 1815, 2927, 1007, 2847, 1596, 270}, {565, 432, 590, 499, 324, 1429, 646, 1336, 785, 2293, 293, 898, 728, 888, 211, 562, 308, 653, 2398, 1253, 742, 2439, 665, 1625, 1243, 1236, 2122, 2180, 191, 2387, 2413, 2166, 2269, 1370, 2396, 1059, 536, 775, 700, 1115, 584, 2323, 494, 687, 835, 1415, 919, 864, 727, 787, 167, 2028, 259, 799, 543, 64, 457, 1068, 253, 480, 2333, 606, 643, 681, 578, 2353, 799, 1006, 138, 804, 175, 625, 462, 394, 613, 1194, 1794, 740, 562, 602, 1795, 940, 307, 629, 773, 961, 2441, 746, 1221, 190, 1074, 2188, 389, 506, 748, 505, 632, 863, 273, 513, 783, 2440, 2195, 1143, 238, 779, 1009, 292, 491, 1318, 565, 709, 441, 1116, 495, 432, 841, 2247, 794, 275, 0, 1973, 550, 710, 2154, 2154, 454, 1249}, {1700, 2265, 2132, 1408, 2187, 1526, 342, 2337, 827, 2471, 701, 1860, 2318, 1384, 2574, 1673, 1138, 1438, 1412, 1003, 497, 1023, 808, 2365, 164, 1141, 1359, 534, 664, 1869, 795, 813, 588, 682, 631, 804, 2422, 1947, 2268, 2388, 700, 2284, 1090, 1271, 1884, 1175, 729, 1234, 1442, 1137, 1183, 1670, 911, 1441, 2492, 1304, 1764, 2157, 689, 1953, 1612, 733, 2306, 2265, 2178, 2266, 1080, 2124, 2369, 1584, 1394, 1816, 1120, 2084, 1903, 2313, 654, 652, 1187, 1707, 1824, 400, 1355, 2007, 2315, 2170, 1273, 1219, 1628, 1458, 1591, 1312, 818, 2081, 2206, 2448, 1353, 2320, 1215, 1598, 1595, 2214, 874, 1048, 2549, 1938, 1026, 1117, 1966, 2191, 1099, 2265, 2372, 2141, 1500, 2186, 1565, 2536, 942, 1113, 1973, 0, 721, 1496, 1047, 3125, 912, 506}, {1636, 558, 1095, 986, 260, 928, 273, 1294, 1197, 1433, 1214, 2158, 504, 1400, 262, 1283, 414, 653, 569, 227, 2028, 1226, 815, 2336, 1163, 1490, 1424, 1366, 2153, 2249, 608, 2252, 2278, 2207, 2301, 1395, 2261, 1561, 319, 1269, 1129, 982, 1051, 1891, 685, 1094, 1023, 1049, 1122, 1145, 499, 468, 411, 1596, 467, 1231, 787, 610, 992, 963, 753, 92, 2198, 1076, 1174, 1212, 1007, 1921, 1301, 1508, 510, 1089, 557, 738, 789, 402, 1108, 1202, 1863, 928, 883, 1009, 1596, 1225, 818, 1058, 1275, 495, 2009, 1059, 1408, 563, 1285, 1756, 822, 1015, 1243, 364, 1027, 431, 289, 59, 1285, 2236, 1763, 1645, 753, 882, 1190, 850, 958, 824, 1060, 1267, 952, 603, 1053, 170, 1275, 1815, 550, 721, 0, 2373, 782, 610, 307, 565}, {2019, 571, 2154, 2719, 2586, 1791, 2580, 1917, 725, 2797, 1225, 2866, 139, 2251, 2748, 1767, 2969, 2064, 1608, 1908, 1795, 537, 1010, 1506, 324, 2798, 529, 1545, 1763, 470, 600, 2260, 233, 266, 517, 541, 1096, 242, 2852, 2305, 2727, 2781, 1083, 2705, 778, 1741, 2314, 1647, 1112, 1664, 1872, 1520, 1566, 2063, 787, 1909, 2883, 1817, 2218, 2611, 1120, 2388, 1995, 186, 2730, 2735, 2637, 2659, 748, 2554, 2799, 2043, 1824, 2207, 1598, 2475, 2294, 2743, 1167, 930, 1700, 2183, 2254, 458, 1785, 2460, 2710, 2600, 1563, 923, 2058, 1869, 2061, 1723, 627, 2474, 2650, 2878, 1744, 2713, 1598, 1989, 1978, 2644, 303, 827, 2979, 2392, 1539, 1547, 2431, 2612, 1346, 2695, 2842, 2594, 1774, 2649, 1956, 2927, 710, 1496, 2373, 0, 1600, 1694, 2727, 619}, {1458, 943, 1211, 1437, 1974, 1865, 861, 1807, 1127, 973, 2076, 1433, 2093, 1597, 1391, 2249, 709, 2170, 1293, 1095, 1344, 784, 1260, 1053, 1109, 1775, 2042, 1047, 1593, 1797, 1728, 1858, 1487, 1691, 1717, 1782, 1871, 1276, 1700, 2410, 1179, 2148, 2008, 754, 1930, 1123, 1235, 1917, 1412, 628, 1539, 1708, 849, 766, 1290, 828, 1269, 2110, 1322, 1489, 1871, 850, 1632, 984, 1637, 1955, 2051, 2072, 1886, 1153, 2150, 2357, 1380, 1635, 1436, 1114, 1676, 1289, 1987, 1110, 1759, 1346, 1706, 1832, 1000, 1665, 1697, 1937, 2124, 476, 1241, 1782, 1858, 1419, 1635, 988, 1701, 1894, 2122, 976, 1914, 653, 1175, 967, 2134, 1459, 995, 2494, 1632, 1196, 1468, 1729, 1837, 188, 1939, 2146, 1831, 399, 1932, 1007, 2154, 1047, 782, 1600, 0, 2571, 1283, 2380}, {1564, 198, 2217, 769, 2352, 2917, 2784, 1989, 2778, 2115, 923, 2995, 1423, 3064, 131, 2449, 2946, 1965, 3166, 2262, 1806, 2106, 1993, 429, 1208, 1704, 293, 2996, 727, 1734, 1896, 566, 640, 2458, 200, 235, 550, 529, 1294, 209, 3050, 2503, 2925, 2979, 1281, 2903, 670, 1939, 2512, 1845, 1310, 1862, 2070, 1718, 1764, 2261, 736, 2107, 3081, 2015, 2416, 2809, 1318, 2586, 2193, 178, 2928, 2933, 2835, 2857, 640, 2752, 2997, 2241, 2022, 2405, 1796, 2673, 2492, 2941, 1365, 1026, 1898, 2381, 2452, 656, 1983, 2658, 2908, 2798, 1761, 815, 2256, 2009, 2259, 1921, 605, 2672, 2848, 3076, 1942, 2911, 1796, 2187, 2176, 2842, 105, 727, 3177, 2590, 1737, 1745, 2629, 2810, 1544, 2893, 3040, 2792, 1963, 2847, 2154, 3125, 610, 1694, 2571, 0, 321, 936}, {2871, 1917, 2673, 1038, 2243, 543, 249, 345, 1071, 281, 804, 1948, 369, 1879, 328, 2812, 624, 945, 1208, 431, 657, 1105, 851, 1133, 2917, 1796, 1285, 2982, 160, 2144, 1776, 1750, 2665, 2723, 440, 2906, 2932, 2709, 2812, 1913, 2915, 1153, 896, 749, 247, 1634, 109, 2803, 1037, 978, 1378, 1902, 1462, 1360, 1216, 1267, 630, 2508, 802, 265, 1086, 479, 257, 1593, 295, 960, 2852, 72, 594, 761, 249, 2833, 1003, 1100, 681, 1321, 484, 1168, 421, 774, 87, 1737, 2337, 1283, 998, 935, 2314, 1457, 251, 250, 921, 1441, 2921, 1174, 1685, 729, 1591, 2668, 274, 139, 214, 985, 320, 1343, 753, 993, 858, 2959, 2675, 1190, 305, 1322, 1552, 542, 115, 1798, 57, 496, 164, 1596, 454, 912, 307, 2727, 1283, 321, 0, 34}, {348, 2541, 1570, 2343, 691, 1943, 246, 413, 405, 723, 272, 457, 1618, 533, 1581, 558, 2482, 280, 1012, 861, 661, 322, 807, 554, 786, 2587, 1498, 987, 2660, 473, 1814, 1488, 1470, 2367, 2425, 93, 2576, 2602, 2411, 2514, 1615, 2585, 1220, 552, 816, 473, 1304, 363, 2456, 739, 842, 1080, 1555, 1164, 1092, 869, 920, 282, 2161, 504, 575, 788, 182, 337, 1263, 80, 613, 2522, 388, 682, 805, 351, 2486, 981, 1167, 384, 1038, 140, 870, 307, 430, 418, 1439, 2039, 986, 765, 799, 1984, 1174, 136, 402, 954, 1094, 2574, 966, 1449, 431, 1308, 2321, 144, 325, 552, 638, 405, 996, 406, 646, 910, 2629, 2328, 1257, 105, 1024, 1255, 352, 270, 1451, 370, 660, 270, 1249, 506, 565, 619, 2380, 936, 34, 0}};
ac_int<11, false> population[populationSize][numberOfNodes];
// Random graph generator
// mainDISTANCE_I: for (int i = 0; i < numberOfNodes; ++i) {
// mainDISTANCE_J: for (int j = 0; j < numberOfNodes; ++j) {
//distances vary from 40 + 1000 km
// if (i == j) { continue; }
// int distance = rand() % 1000 + 40;
// distance_matrix[i][j] = distance;
// distance_matrix[j][i] = distance;
// }
// }
cout << "Algorithm Starts..!" << endl;
GHLS.run(distance_matrix,population);
cout << "Algorithm Finished!" << endl;
CCS_RETURN(0);
}