diff --git a/generator/Ordering_GAMESS.cpp b/generator/Ordering_GAMESS.cpp index 316b5d2..907f8b4 100644 --- a/generator/Ordering_GAMESS.cpp +++ b/generator/Ordering_GAMESS.cpp @@ -3008,3 +3008,3005 @@ std::map> gorder_map = { }, }; +std::map> gindex_map = { +{ 0, { + /*{ 0, 0, 0}*/ 0, + } +}, +{ 1, { + /*{ 1, 0, 0}*/ 1, + /*{ 0, 1, 0}*/ 256, + /*{ 0, 0, 1}*/ 65536, + } +}, +{ 2, { + /*{ 2, 0, 0}*/ 2, + /*{ 0, 2, 0}*/ 512, + /*{ 0, 0, 2}*/ 131072, + /*{ 1, 1, 0}*/ 257, + /*{ 1, 0, 1}*/ 65537, + /*{ 0, 1, 1}*/ 65792, + } +}, +{ 3, { + /*{ 3, 0, 0}*/ 3, + /*{ 0, 3, 0}*/ 768, + /*{ 0, 0, 3}*/ 196608, + /*{ 2, 1, 0}*/ 258, + /*{ 2, 0, 1}*/ 65538, + /*{ 1, 2, 0}*/ 513, + /*{ 0, 2, 1}*/ 66048, + /*{ 1, 0, 2}*/ 131073, + /*{ 0, 1, 2}*/ 131328, + /*{ 1, 1, 1}*/ 65793, + } +}, +{ 4, { + /*{ 4, 0, 0}*/ 4, + /*{ 3, 1, 0}*/ 259, + /*{ 3, 0, 1}*/ 65539, + /*{ 2, 2, 0}*/ 514, + /*{ 2, 1, 1}*/ 65794, + /*{ 2, 0, 2}*/ 131074, + /*{ 1, 3, 0}*/ 769, + /*{ 1, 2, 1}*/ 66049, + /*{ 1, 1, 2}*/ 131329, + /*{ 1, 0, 3}*/ 196609, + /*{ 0, 4, 0}*/ 1024, + /*{ 0, 3, 1}*/ 66304, + /*{ 0, 2, 2}*/ 131584, + /*{ 0, 1, 3}*/ 196864, + /*{ 0, 0, 4}*/ 262144, + } +}, +{ 5, { + /*{ 5, 0, 0}*/ 5, + /*{ 4, 1, 0}*/ 260, + /*{ 4, 0, 1}*/ 65540, + /*{ 3, 2, 0}*/ 515, + /*{ 3, 1, 1}*/ 65795, + /*{ 3, 0, 2}*/ 131075, + /*{ 2, 3, 0}*/ 770, + /*{ 2, 2, 1}*/ 66050, + /*{ 2, 1, 2}*/ 131330, + /*{ 2, 0, 3}*/ 196610, + /*{ 1, 4, 0}*/ 1025, + /*{ 1, 3, 1}*/ 66305, + /*{ 1, 2, 2}*/ 131585, + /*{ 1, 1, 3}*/ 196865, + /*{ 1, 0, 4}*/ 262145, + /*{ 0, 5, 0}*/ 1280, + /*{ 0, 4, 1}*/ 66560, + /*{ 0, 3, 2}*/ 131840, + /*{ 0, 2, 3}*/ 197120, + /*{ 0, 1, 4}*/ 262400, + /*{ 0, 0, 5}*/ 327680, + } +}, +{ 6, { + /*{ 6, 0, 0}*/ 6, + /*{ 5, 1, 0}*/ 261, + /*{ 5, 0, 1}*/ 65541, + /*{ 4, 2, 0}*/ 516, + /*{ 4, 1, 1}*/ 65796, + /*{ 4, 0, 2}*/ 131076, + /*{ 3, 3, 0}*/ 771, + /*{ 3, 2, 1}*/ 66051, + /*{ 3, 1, 2}*/ 131331, + /*{ 3, 0, 3}*/ 196611, + /*{ 2, 4, 0}*/ 1026, + /*{ 2, 3, 1}*/ 66306, + /*{ 2, 2, 2}*/ 131586, + /*{ 2, 1, 3}*/ 196866, + /*{ 2, 0, 4}*/ 262146, + /*{ 1, 5, 0}*/ 1281, + /*{ 1, 4, 1}*/ 66561, + /*{ 1, 3, 2}*/ 131841, + /*{ 1, 2, 3}*/ 197121, + /*{ 1, 1, 4}*/ 262401, + /*{ 1, 0, 5}*/ 327681, + /*{ 0, 6, 0}*/ 1536, + /*{ 0, 5, 1}*/ 66816, + /*{ 0, 4, 2}*/ 132096, + /*{ 0, 3, 3}*/ 197376, + /*{ 0, 2, 4}*/ 262656, + /*{ 0, 1, 5}*/ 327936, + /*{ 0, 0, 6}*/ 393216, + } +}, +{ 7, { + /*{ 7, 0, 0}*/ 7, + /*{ 6, 1, 0}*/ 262, + /*{ 6, 0, 1}*/ 65542, + /*{ 5, 2, 0}*/ 517, + /*{ 5, 1, 1}*/ 65797, + /*{ 5, 0, 2}*/ 131077, + /*{ 4, 3, 0}*/ 772, + /*{ 4, 2, 1}*/ 66052, + /*{ 4, 1, 2}*/ 131332, + /*{ 4, 0, 3}*/ 196612, + /*{ 3, 4, 0}*/ 1027, + /*{ 3, 3, 1}*/ 66307, + /*{ 3, 2, 2}*/ 131587, + /*{ 3, 1, 3}*/ 196867, + /*{ 3, 0, 4}*/ 262147, + /*{ 2, 5, 0}*/ 1282, + /*{ 2, 4, 1}*/ 66562, + /*{ 2, 3, 2}*/ 131842, + /*{ 2, 2, 3}*/ 197122, + /*{ 2, 1, 4}*/ 262402, + /*{ 2, 0, 5}*/ 327682, + /*{ 1, 6, 0}*/ 1537, + /*{ 1, 5, 1}*/ 66817, + /*{ 1, 4, 2}*/ 132097, + /*{ 1, 3, 3}*/ 197377, + /*{ 1, 2, 4}*/ 262657, + /*{ 1, 1, 5}*/ 327937, + /*{ 1, 0, 6}*/ 393217, + /*{ 0, 7, 0}*/ 1792, + /*{ 0, 6, 1}*/ 67072, + /*{ 0, 5, 2}*/ 132352, + /*{ 0, 4, 3}*/ 197632, + /*{ 0, 3, 4}*/ 262912, + /*{ 0, 2, 5}*/ 328192, + /*{ 0, 1, 6}*/ 393472, + /*{ 0, 0, 7}*/ 458752, + } +}, +{ 8, { + /*{ 8, 0, 0}*/ 8, + /*{ 7, 1, 0}*/ 263, + /*{ 7, 0, 1}*/ 65543, + /*{ 6, 2, 0}*/ 518, + /*{ 6, 1, 1}*/ 65798, + /*{ 6, 0, 2}*/ 131078, + /*{ 5, 3, 0}*/ 773, + /*{ 5, 2, 1}*/ 66053, + /*{ 5, 1, 2}*/ 131333, + /*{ 5, 0, 3}*/ 196613, + /*{ 4, 4, 0}*/ 1028, + /*{ 4, 3, 1}*/ 66308, + /*{ 4, 2, 2}*/ 131588, + /*{ 4, 1, 3}*/ 196868, + /*{ 4, 0, 4}*/ 262148, + /*{ 3, 5, 0}*/ 1283, + /*{ 3, 4, 1}*/ 66563, + /*{ 3, 3, 2}*/ 131843, + /*{ 3, 2, 3}*/ 197123, + /*{ 3, 1, 4}*/ 262403, + /*{ 3, 0, 5}*/ 327683, + /*{ 2, 6, 0}*/ 1538, + /*{ 2, 5, 1}*/ 66818, + /*{ 2, 4, 2}*/ 132098, + /*{ 2, 3, 3}*/ 197378, + /*{ 2, 2, 4}*/ 262658, + /*{ 2, 1, 5}*/ 327938, + /*{ 2, 0, 6}*/ 393218, + /*{ 1, 7, 0}*/ 1793, + /*{ 1, 6, 1}*/ 67073, + /*{ 1, 5, 2}*/ 132353, + /*{ 1, 4, 3}*/ 197633, + /*{ 1, 3, 4}*/ 262913, + /*{ 1, 2, 5}*/ 328193, + /*{ 1, 1, 6}*/ 393473, + /*{ 1, 0, 7}*/ 458753, + /*{ 0, 8, 0}*/ 2048, + /*{ 0, 7, 1}*/ 67328, + /*{ 0, 6, 2}*/ 132608, + /*{ 0, 5, 3}*/ 197888, + /*{ 0, 4, 4}*/ 263168, + /*{ 0, 3, 5}*/ 328448, + /*{ 0, 2, 6}*/ 393728, + /*{ 0, 1, 7}*/ 459008, + /*{ 0, 0, 8}*/ 524288, + } +}, +{ 9, { + /*{ 9, 0, 0}*/ 9, + /*{ 8, 1, 0}*/ 264, + /*{ 8, 0, 1}*/ 65544, + /*{ 7, 2, 0}*/ 519, + /*{ 7, 1, 1}*/ 65799, + /*{ 7, 0, 2}*/ 131079, + /*{ 6, 3, 0}*/ 774, + /*{ 6, 2, 1}*/ 66054, + /*{ 6, 1, 2}*/ 131334, + /*{ 6, 0, 3}*/ 196614, + /*{ 5, 4, 0}*/ 1029, + /*{ 5, 3, 1}*/ 66309, + /*{ 5, 2, 2}*/ 131589, + /*{ 5, 1, 3}*/ 196869, + /*{ 5, 0, 4}*/ 262149, + /*{ 4, 5, 0}*/ 1284, + /*{ 4, 4, 1}*/ 66564, + /*{ 4, 3, 2}*/ 131844, + /*{ 4, 2, 3}*/ 197124, + /*{ 4, 1, 4}*/ 262404, + /*{ 4, 0, 5}*/ 327684, + /*{ 3, 6, 0}*/ 1539, + /*{ 3, 5, 1}*/ 66819, + /*{ 3, 4, 2}*/ 132099, + /*{ 3, 3, 3}*/ 197379, + /*{ 3, 2, 4}*/ 262659, + /*{ 3, 1, 5}*/ 327939, + /*{ 3, 0, 6}*/ 393219, + /*{ 2, 7, 0}*/ 1794, + /*{ 2, 6, 1}*/ 67074, + /*{ 2, 5, 2}*/ 132354, + /*{ 2, 4, 3}*/ 197634, + /*{ 2, 3, 4}*/ 262914, + /*{ 2, 2, 5}*/ 328194, + /*{ 2, 1, 6}*/ 393474, + /*{ 2, 0, 7}*/ 458754, + /*{ 1, 8, 0}*/ 2049, + /*{ 1, 7, 1}*/ 67329, + /*{ 1, 6, 2}*/ 132609, + /*{ 1, 5, 3}*/ 197889, + /*{ 1, 4, 4}*/ 263169, + /*{ 1, 3, 5}*/ 328449, + /*{ 1, 2, 6}*/ 393729, + /*{ 1, 1, 7}*/ 459009, + /*{ 1, 0, 8}*/ 524289, + /*{ 0, 9, 0}*/ 2304, + /*{ 0, 8, 1}*/ 67584, + /*{ 0, 7, 2}*/ 132864, + /*{ 0, 6, 3}*/ 198144, + /*{ 0, 5, 4}*/ 263424, + /*{ 0, 4, 5}*/ 328704, + /*{ 0, 3, 6}*/ 393984, + /*{ 0, 2, 7}*/ 459264, + /*{ 0, 1, 8}*/ 524544, + /*{ 0, 0, 9}*/ 589824, + } +}, +{ 10, { + /*{ 10, 0, 0}*/ 10, + /*{ 9, 1, 0}*/ 265, + /*{ 9, 0, 1}*/ 65545, + /*{ 8, 2, 0}*/ 520, + /*{ 8, 1, 1}*/ 65800, + /*{ 8, 0, 2}*/ 131080, + /*{ 7, 3, 0}*/ 775, + /*{ 7, 2, 1}*/ 66055, + /*{ 7, 1, 2}*/ 131335, + /*{ 7, 0, 3}*/ 196615, + /*{ 6, 4, 0}*/ 1030, + /*{ 6, 3, 1}*/ 66310, + /*{ 6, 2, 2}*/ 131590, + /*{ 6, 1, 3}*/ 196870, + /*{ 6, 0, 4}*/ 262150, + /*{ 5, 5, 0}*/ 1285, + /*{ 5, 4, 1}*/ 66565, + /*{ 5, 3, 2}*/ 131845, + /*{ 5, 2, 3}*/ 197125, + /*{ 5, 1, 4}*/ 262405, + /*{ 5, 0, 5}*/ 327685, + /*{ 4, 6, 0}*/ 1540, + /*{ 4, 5, 1}*/ 66820, + /*{ 4, 4, 2}*/ 132100, + /*{ 4, 3, 3}*/ 197380, + /*{ 4, 2, 4}*/ 262660, + /*{ 4, 1, 5}*/ 327940, + /*{ 4, 0, 6}*/ 393220, + /*{ 3, 7, 0}*/ 1795, + /*{ 3, 6, 1}*/ 67075, + /*{ 3, 5, 2}*/ 132355, + /*{ 3, 4, 3}*/ 197635, + /*{ 3, 3, 4}*/ 262915, + /*{ 3, 2, 5}*/ 328195, + /*{ 3, 1, 6}*/ 393475, + /*{ 3, 0, 7}*/ 458755, + /*{ 2, 8, 0}*/ 2050, + /*{ 2, 7, 1}*/ 67330, + /*{ 2, 6, 2}*/ 132610, + /*{ 2, 5, 3}*/ 197890, + /*{ 2, 4, 4}*/ 263170, + /*{ 2, 3, 5}*/ 328450, + /*{ 2, 2, 6}*/ 393730, + /*{ 2, 1, 7}*/ 459010, + /*{ 2, 0, 8}*/ 524290, + /*{ 1, 9, 0}*/ 2305, + /*{ 1, 8, 1}*/ 67585, + /*{ 1, 7, 2}*/ 132865, + /*{ 1, 6, 3}*/ 198145, + /*{ 1, 5, 4}*/ 263425, + /*{ 1, 4, 5}*/ 328705, + /*{ 1, 3, 6}*/ 393985, + /*{ 1, 2, 7}*/ 459265, + /*{ 1, 1, 8}*/ 524545, + /*{ 1, 0, 9}*/ 589825, + /*{ 0, 10, 0}*/ 2560, + /*{ 0, 9, 1}*/ 67840, + /*{ 0, 8, 2}*/ 133120, + /*{ 0, 7, 3}*/ 198400, + /*{ 0, 6, 4}*/ 263680, + /*{ 0, 5, 5}*/ 328960, + /*{ 0, 4, 6}*/ 394240, + /*{ 0, 3, 7}*/ 459520, + /*{ 0, 2, 8}*/ 524800, + /*{ 0, 1, 9}*/ 590080, + /*{ 0, 0, 10}*/ 655360, + } +}, +{ 11, { + /*{ 11, 0, 0}*/ 11, + /*{ 10, 1, 0}*/ 266, + /*{ 10, 0, 1}*/ 65546, + /*{ 9, 2, 0}*/ 521, + /*{ 9, 1, 1}*/ 65801, + /*{ 9, 0, 2}*/ 131081, + /*{ 8, 3, 0}*/ 776, + /*{ 8, 2, 1}*/ 66056, + /*{ 8, 1, 2}*/ 131336, + /*{ 8, 0, 3}*/ 196616, + /*{ 7, 4, 0}*/ 1031, + /*{ 7, 3, 1}*/ 66311, + /*{ 7, 2, 2}*/ 131591, + /*{ 7, 1, 3}*/ 196871, + /*{ 7, 0, 4}*/ 262151, + /*{ 6, 5, 0}*/ 1286, + /*{ 6, 4, 1}*/ 66566, + /*{ 6, 3, 2}*/ 131846, + /*{ 6, 2, 3}*/ 197126, + /*{ 6, 1, 4}*/ 262406, + /*{ 6, 0, 5}*/ 327686, + /*{ 5, 6, 0}*/ 1541, + /*{ 5, 5, 1}*/ 66821, + /*{ 5, 4, 2}*/ 132101, + /*{ 5, 3, 3}*/ 197381, + /*{ 5, 2, 4}*/ 262661, + /*{ 5, 1, 5}*/ 327941, + /*{ 5, 0, 6}*/ 393221, + /*{ 4, 7, 0}*/ 1796, + /*{ 4, 6, 1}*/ 67076, + /*{ 4, 5, 2}*/ 132356, + /*{ 4, 4, 3}*/ 197636, + /*{ 4, 3, 4}*/ 262916, + /*{ 4, 2, 5}*/ 328196, + /*{ 4, 1, 6}*/ 393476, + /*{ 4, 0, 7}*/ 458756, + /*{ 3, 8, 0}*/ 2051, + /*{ 3, 7, 1}*/ 67331, + /*{ 3, 6, 2}*/ 132611, + /*{ 3, 5, 3}*/ 197891, + /*{ 3, 4, 4}*/ 263171, + /*{ 3, 3, 5}*/ 328451, + /*{ 3, 2, 6}*/ 393731, + /*{ 3, 1, 7}*/ 459011, + /*{ 3, 0, 8}*/ 524291, + /*{ 2, 9, 0}*/ 2306, + /*{ 2, 8, 1}*/ 67586, + /*{ 2, 7, 2}*/ 132866, + /*{ 2, 6, 3}*/ 198146, + /*{ 2, 5, 4}*/ 263426, + /*{ 2, 4, 5}*/ 328706, + /*{ 2, 3, 6}*/ 393986, + /*{ 2, 2, 7}*/ 459266, + /*{ 2, 1, 8}*/ 524546, + /*{ 2, 0, 9}*/ 589826, + /*{ 1, 10, 0}*/ 2561, + /*{ 1, 9, 1}*/ 67841, + /*{ 1, 8, 2}*/ 133121, + /*{ 1, 7, 3}*/ 198401, + /*{ 1, 6, 4}*/ 263681, + /*{ 1, 5, 5}*/ 328961, + /*{ 1, 4, 6}*/ 394241, + /*{ 1, 3, 7}*/ 459521, + /*{ 1, 2, 8}*/ 524801, + /*{ 1, 1, 9}*/ 590081, + /*{ 1, 0, 10}*/ 655361, + /*{ 0, 11, 0}*/ 2816, + /*{ 0, 10, 1}*/ 68096, + /*{ 0, 9, 2}*/ 133376, + /*{ 0, 8, 3}*/ 198656, + /*{ 0, 7, 4}*/ 263936, + /*{ 0, 6, 5}*/ 329216, + /*{ 0, 5, 6}*/ 394496, + /*{ 0, 4, 7}*/ 459776, + /*{ 0, 3, 8}*/ 525056, + /*{ 0, 2, 9}*/ 590336, + /*{ 0, 1, 10}*/ 655616, + /*{ 0, 0, 11}*/ 720896, + } +}, +{ 12, { + /*{ 12, 0, 0}*/ 12, + /*{ 11, 1, 0}*/ 267, + /*{ 11, 0, 1}*/ 65547, + /*{ 10, 2, 0}*/ 522, + /*{ 10, 1, 1}*/ 65802, + /*{ 10, 0, 2}*/ 131082, + /*{ 9, 3, 0}*/ 777, + /*{ 9, 2, 1}*/ 66057, + /*{ 9, 1, 2}*/ 131337, + /*{ 9, 0, 3}*/ 196617, + /*{ 8, 4, 0}*/ 1032, + /*{ 8, 3, 1}*/ 66312, + /*{ 8, 2, 2}*/ 131592, + /*{ 8, 1, 3}*/ 196872, + /*{ 8, 0, 4}*/ 262152, + /*{ 7, 5, 0}*/ 1287, + /*{ 7, 4, 1}*/ 66567, + /*{ 7, 3, 2}*/ 131847, + /*{ 7, 2, 3}*/ 197127, + /*{ 7, 1, 4}*/ 262407, + /*{ 7, 0, 5}*/ 327687, + /*{ 6, 6, 0}*/ 1542, + /*{ 6, 5, 1}*/ 66822, + /*{ 6, 4, 2}*/ 132102, + /*{ 6, 3, 3}*/ 197382, + /*{ 6, 2, 4}*/ 262662, + /*{ 6, 1, 5}*/ 327942, + /*{ 6, 0, 6}*/ 393222, + /*{ 5, 7, 0}*/ 1797, + /*{ 5, 6, 1}*/ 67077, + /*{ 5, 5, 2}*/ 132357, + /*{ 5, 4, 3}*/ 197637, + /*{ 5, 3, 4}*/ 262917, + /*{ 5, 2, 5}*/ 328197, + /*{ 5, 1, 6}*/ 393477, + /*{ 5, 0, 7}*/ 458757, + /*{ 4, 8, 0}*/ 2052, + /*{ 4, 7, 1}*/ 67332, + /*{ 4, 6, 2}*/ 132612, + /*{ 4, 5, 3}*/ 197892, + /*{ 4, 4, 4}*/ 263172, + /*{ 4, 3, 5}*/ 328452, + /*{ 4, 2, 6}*/ 393732, + /*{ 4, 1, 7}*/ 459012, + /*{ 4, 0, 8}*/ 524292, + /*{ 3, 9, 0}*/ 2307, + /*{ 3, 8, 1}*/ 67587, + /*{ 3, 7, 2}*/ 132867, + /*{ 3, 6, 3}*/ 198147, + /*{ 3, 5, 4}*/ 263427, + /*{ 3, 4, 5}*/ 328707, + /*{ 3, 3, 6}*/ 393987, + /*{ 3, 2, 7}*/ 459267, + /*{ 3, 1, 8}*/ 524547, + /*{ 3, 0, 9}*/ 589827, + /*{ 2, 10, 0}*/ 2562, + /*{ 2, 9, 1}*/ 67842, + /*{ 2, 8, 2}*/ 133122, + /*{ 2, 7, 3}*/ 198402, + /*{ 2, 6, 4}*/ 263682, + /*{ 2, 5, 5}*/ 328962, + /*{ 2, 4, 6}*/ 394242, + /*{ 2, 3, 7}*/ 459522, + /*{ 2, 2, 8}*/ 524802, + /*{ 2, 1, 9}*/ 590082, + /*{ 2, 0, 10}*/ 655362, + /*{ 1, 11, 0}*/ 2817, + /*{ 1, 10, 1}*/ 68097, + /*{ 1, 9, 2}*/ 133377, + /*{ 1, 8, 3}*/ 198657, + /*{ 1, 7, 4}*/ 263937, + /*{ 1, 6, 5}*/ 329217, + /*{ 1, 5, 6}*/ 394497, + /*{ 1, 4, 7}*/ 459777, + /*{ 1, 3, 8}*/ 525057, + /*{ 1, 2, 9}*/ 590337, + /*{ 1, 1, 10}*/ 655617, + /*{ 1, 0, 11}*/ 720897, + /*{ 0, 12, 0}*/ 3072, + /*{ 0, 11, 1}*/ 68352, + /*{ 0, 10, 2}*/ 133632, + /*{ 0, 9, 3}*/ 198912, + /*{ 0, 8, 4}*/ 264192, + /*{ 0, 7, 5}*/ 329472, + /*{ 0, 6, 6}*/ 394752, + /*{ 0, 5, 7}*/ 460032, + /*{ 0, 4, 8}*/ 525312, + /*{ 0, 3, 9}*/ 590592, + /*{ 0, 2, 10}*/ 655872, + /*{ 0, 1, 11}*/ 721152, + /*{ 0, 0, 12}*/ 786432, + } +}, +{ 13, { + /*{ 13, 0, 0}*/ 13, + /*{ 12, 1, 0}*/ 268, + /*{ 12, 0, 1}*/ 65548, + /*{ 11, 2, 0}*/ 523, + /*{ 11, 1, 1}*/ 65803, + /*{ 11, 0, 2}*/ 131083, + /*{ 10, 3, 0}*/ 778, + /*{ 10, 2, 1}*/ 66058, + /*{ 10, 1, 2}*/ 131338, + /*{ 10, 0, 3}*/ 196618, + /*{ 9, 4, 0}*/ 1033, + /*{ 9, 3, 1}*/ 66313, + /*{ 9, 2, 2}*/ 131593, + /*{ 9, 1, 3}*/ 196873, + /*{ 9, 0, 4}*/ 262153, + /*{ 8, 5, 0}*/ 1288, + /*{ 8, 4, 1}*/ 66568, + /*{ 8, 3, 2}*/ 131848, + /*{ 8, 2, 3}*/ 197128, + /*{ 8, 1, 4}*/ 262408, + /*{ 8, 0, 5}*/ 327688, + /*{ 7, 6, 0}*/ 1543, + /*{ 7, 5, 1}*/ 66823, + /*{ 7, 4, 2}*/ 132103, + /*{ 7, 3, 3}*/ 197383, + /*{ 7, 2, 4}*/ 262663, + /*{ 7, 1, 5}*/ 327943, + /*{ 7, 0, 6}*/ 393223, + /*{ 6, 7, 0}*/ 1798, + /*{ 6, 6, 1}*/ 67078, + /*{ 6, 5, 2}*/ 132358, + /*{ 6, 4, 3}*/ 197638, + /*{ 6, 3, 4}*/ 262918, + /*{ 6, 2, 5}*/ 328198, + /*{ 6, 1, 6}*/ 393478, + /*{ 6, 0, 7}*/ 458758, + /*{ 5, 8, 0}*/ 2053, + /*{ 5, 7, 1}*/ 67333, + /*{ 5, 6, 2}*/ 132613, + /*{ 5, 5, 3}*/ 197893, + /*{ 5, 4, 4}*/ 263173, + /*{ 5, 3, 5}*/ 328453, + /*{ 5, 2, 6}*/ 393733, + /*{ 5, 1, 7}*/ 459013, + /*{ 5, 0, 8}*/ 524293, + /*{ 4, 9, 0}*/ 2308, + /*{ 4, 8, 1}*/ 67588, + /*{ 4, 7, 2}*/ 132868, + /*{ 4, 6, 3}*/ 198148, + /*{ 4, 5, 4}*/ 263428, + /*{ 4, 4, 5}*/ 328708, + /*{ 4, 3, 6}*/ 393988, + /*{ 4, 2, 7}*/ 459268, + /*{ 4, 1, 8}*/ 524548, + /*{ 4, 0, 9}*/ 589828, + /*{ 3, 10, 0}*/ 2563, + /*{ 3, 9, 1}*/ 67843, + /*{ 3, 8, 2}*/ 133123, + /*{ 3, 7, 3}*/ 198403, + /*{ 3, 6, 4}*/ 263683, + /*{ 3, 5, 5}*/ 328963, + /*{ 3, 4, 6}*/ 394243, + /*{ 3, 3, 7}*/ 459523, + /*{ 3, 2, 8}*/ 524803, + /*{ 3, 1, 9}*/ 590083, + /*{ 3, 0, 10}*/ 655363, + /*{ 2, 11, 0}*/ 2818, + /*{ 2, 10, 1}*/ 68098, + /*{ 2, 9, 2}*/ 133378, + /*{ 2, 8, 3}*/ 198658, + /*{ 2, 7, 4}*/ 263938, + /*{ 2, 6, 5}*/ 329218, + /*{ 2, 5, 6}*/ 394498, + /*{ 2, 4, 7}*/ 459778, + /*{ 2, 3, 8}*/ 525058, + /*{ 2, 2, 9}*/ 590338, + /*{ 2, 1, 10}*/ 655618, + /*{ 2, 0, 11}*/ 720898, + /*{ 1, 12, 0}*/ 3073, + /*{ 1, 11, 1}*/ 68353, + /*{ 1, 10, 2}*/ 133633, + /*{ 1, 9, 3}*/ 198913, + /*{ 1, 8, 4}*/ 264193, + /*{ 1, 7, 5}*/ 329473, + /*{ 1, 6, 6}*/ 394753, + /*{ 1, 5, 7}*/ 460033, + /*{ 1, 4, 8}*/ 525313, + /*{ 1, 3, 9}*/ 590593, + /*{ 1, 2, 10}*/ 655873, + /*{ 1, 1, 11}*/ 721153, + /*{ 1, 0, 12}*/ 786433, + /*{ 0, 13, 0}*/ 3328, + /*{ 0, 12, 1}*/ 68608, + /*{ 0, 11, 2}*/ 133888, + /*{ 0, 10, 3}*/ 199168, + /*{ 0, 9, 4}*/ 264448, + /*{ 0, 8, 5}*/ 329728, + /*{ 0, 7, 6}*/ 395008, + /*{ 0, 6, 7}*/ 460288, + /*{ 0, 5, 8}*/ 525568, + /*{ 0, 4, 9}*/ 590848, + /*{ 0, 3, 10}*/ 656128, + /*{ 0, 2, 11}*/ 721408, + /*{ 0, 1, 12}*/ 786688, + /*{ 0, 0, 13}*/ 851968, + } +}, +{ 14, { + /*{ 14, 0, 0}*/ 14, + /*{ 13, 1, 0}*/ 269, + /*{ 13, 0, 1}*/ 65549, + /*{ 12, 2, 0}*/ 524, + /*{ 12, 1, 1}*/ 65804, + /*{ 12, 0, 2}*/ 131084, + /*{ 11, 3, 0}*/ 779, + /*{ 11, 2, 1}*/ 66059, + /*{ 11, 1, 2}*/ 131339, + /*{ 11, 0, 3}*/ 196619, + /*{ 10, 4, 0}*/ 1034, + /*{ 10, 3, 1}*/ 66314, + /*{ 10, 2, 2}*/ 131594, + /*{ 10, 1, 3}*/ 196874, + /*{ 10, 0, 4}*/ 262154, + /*{ 9, 5, 0}*/ 1289, + /*{ 9, 4, 1}*/ 66569, + /*{ 9, 3, 2}*/ 131849, + /*{ 9, 2, 3}*/ 197129, + /*{ 9, 1, 4}*/ 262409, + /*{ 9, 0, 5}*/ 327689, + /*{ 8, 6, 0}*/ 1544, + /*{ 8, 5, 1}*/ 66824, + /*{ 8, 4, 2}*/ 132104, + /*{ 8, 3, 3}*/ 197384, + /*{ 8, 2, 4}*/ 262664, + /*{ 8, 1, 5}*/ 327944, + /*{ 8, 0, 6}*/ 393224, + /*{ 7, 7, 0}*/ 1799, + /*{ 7, 6, 1}*/ 67079, + /*{ 7, 5, 2}*/ 132359, + /*{ 7, 4, 3}*/ 197639, + /*{ 7, 3, 4}*/ 262919, + /*{ 7, 2, 5}*/ 328199, + /*{ 7, 1, 6}*/ 393479, + /*{ 7, 0, 7}*/ 458759, + /*{ 6, 8, 0}*/ 2054, + /*{ 6, 7, 1}*/ 67334, + /*{ 6, 6, 2}*/ 132614, + /*{ 6, 5, 3}*/ 197894, + /*{ 6, 4, 4}*/ 263174, + /*{ 6, 3, 5}*/ 328454, + /*{ 6, 2, 6}*/ 393734, + /*{ 6, 1, 7}*/ 459014, + /*{ 6, 0, 8}*/ 524294, + /*{ 5, 9, 0}*/ 2309, + /*{ 5, 8, 1}*/ 67589, + /*{ 5, 7, 2}*/ 132869, + /*{ 5, 6, 3}*/ 198149, + /*{ 5, 5, 4}*/ 263429, + /*{ 5, 4, 5}*/ 328709, + /*{ 5, 3, 6}*/ 393989, + /*{ 5, 2, 7}*/ 459269, + /*{ 5, 1, 8}*/ 524549, + /*{ 5, 0, 9}*/ 589829, + /*{ 4, 10, 0}*/ 2564, + /*{ 4, 9, 1}*/ 67844, + /*{ 4, 8, 2}*/ 133124, + /*{ 4, 7, 3}*/ 198404, + /*{ 4, 6, 4}*/ 263684, + /*{ 4, 5, 5}*/ 328964, + /*{ 4, 4, 6}*/ 394244, + /*{ 4, 3, 7}*/ 459524, + /*{ 4, 2, 8}*/ 524804, + /*{ 4, 1, 9}*/ 590084, + /*{ 4, 0, 10}*/ 655364, + /*{ 3, 11, 0}*/ 2819, + /*{ 3, 10, 1}*/ 68099, + /*{ 3, 9, 2}*/ 133379, + /*{ 3, 8, 3}*/ 198659, + /*{ 3, 7, 4}*/ 263939, + /*{ 3, 6, 5}*/ 329219, + /*{ 3, 5, 6}*/ 394499, + /*{ 3, 4, 7}*/ 459779, + /*{ 3, 3, 8}*/ 525059, + /*{ 3, 2, 9}*/ 590339, + /*{ 3, 1, 10}*/ 655619, + /*{ 3, 0, 11}*/ 720899, + /*{ 2, 12, 0}*/ 3074, + /*{ 2, 11, 1}*/ 68354, + /*{ 2, 10, 2}*/ 133634, + /*{ 2, 9, 3}*/ 198914, + /*{ 2, 8, 4}*/ 264194, + /*{ 2, 7, 5}*/ 329474, + /*{ 2, 6, 6}*/ 394754, + /*{ 2, 5, 7}*/ 460034, + /*{ 2, 4, 8}*/ 525314, + /*{ 2, 3, 9}*/ 590594, + /*{ 2, 2, 10}*/ 655874, + /*{ 2, 1, 11}*/ 721154, + /*{ 2, 0, 12}*/ 786434, + /*{ 1, 13, 0}*/ 3329, + /*{ 1, 12, 1}*/ 68609, + /*{ 1, 11, 2}*/ 133889, + /*{ 1, 10, 3}*/ 199169, + /*{ 1, 9, 4}*/ 264449, + /*{ 1, 8, 5}*/ 329729, + /*{ 1, 7, 6}*/ 395009, + /*{ 1, 6, 7}*/ 460289, + /*{ 1, 5, 8}*/ 525569, + /*{ 1, 4, 9}*/ 590849, + /*{ 1, 3, 10}*/ 656129, + /*{ 1, 2, 11}*/ 721409, + /*{ 1, 1, 12}*/ 786689, + /*{ 1, 0, 13}*/ 851969, + /*{ 0, 14, 0}*/ 3584, + /*{ 0, 13, 1}*/ 68864, + /*{ 0, 12, 2}*/ 134144, + /*{ 0, 11, 3}*/ 199424, + /*{ 0, 10, 4}*/ 264704, + /*{ 0, 9, 5}*/ 329984, + /*{ 0, 8, 6}*/ 395264, + /*{ 0, 7, 7}*/ 460544, + /*{ 0, 6, 8}*/ 525824, + /*{ 0, 5, 9}*/ 591104, + /*{ 0, 4, 10}*/ 656384, + /*{ 0, 3, 11}*/ 721664, + /*{ 0, 2, 12}*/ 786944, + /*{ 0, 1, 13}*/ 852224, + /*{ 0, 0, 14}*/ 917504, + } +}, +{ 15, { + /*{ 15, 0, 0}*/ 15, + /*{ 14, 1, 0}*/ 270, + /*{ 14, 0, 1}*/ 65550, + /*{ 13, 2, 0}*/ 525, + /*{ 13, 1, 1}*/ 65805, + /*{ 13, 0, 2}*/ 131085, + /*{ 12, 3, 0}*/ 780, + /*{ 12, 2, 1}*/ 66060, + /*{ 12, 1, 2}*/ 131340, + /*{ 12, 0, 3}*/ 196620, + /*{ 11, 4, 0}*/ 1035, + /*{ 11, 3, 1}*/ 66315, + /*{ 11, 2, 2}*/ 131595, + /*{ 11, 1, 3}*/ 196875, + /*{ 11, 0, 4}*/ 262155, + /*{ 10, 5, 0}*/ 1290, + /*{ 10, 4, 1}*/ 66570, + /*{ 10, 3, 2}*/ 131850, + /*{ 10, 2, 3}*/ 197130, + /*{ 10, 1, 4}*/ 262410, + /*{ 10, 0, 5}*/ 327690, + /*{ 9, 6, 0}*/ 1545, + /*{ 9, 5, 1}*/ 66825, + /*{ 9, 4, 2}*/ 132105, + /*{ 9, 3, 3}*/ 197385, + /*{ 9, 2, 4}*/ 262665, + /*{ 9, 1, 5}*/ 327945, + /*{ 9, 0, 6}*/ 393225, + /*{ 8, 7, 0}*/ 1800, + /*{ 8, 6, 1}*/ 67080, + /*{ 8, 5, 2}*/ 132360, + /*{ 8, 4, 3}*/ 197640, + /*{ 8, 3, 4}*/ 262920, + /*{ 8, 2, 5}*/ 328200, + /*{ 8, 1, 6}*/ 393480, + /*{ 8, 0, 7}*/ 458760, + /*{ 7, 8, 0}*/ 2055, + /*{ 7, 7, 1}*/ 67335, + /*{ 7, 6, 2}*/ 132615, + /*{ 7, 5, 3}*/ 197895, + /*{ 7, 4, 4}*/ 263175, + /*{ 7, 3, 5}*/ 328455, + /*{ 7, 2, 6}*/ 393735, + /*{ 7, 1, 7}*/ 459015, + /*{ 7, 0, 8}*/ 524295, + /*{ 6, 9, 0}*/ 2310, + /*{ 6, 8, 1}*/ 67590, + /*{ 6, 7, 2}*/ 132870, + /*{ 6, 6, 3}*/ 198150, + /*{ 6, 5, 4}*/ 263430, + /*{ 6, 4, 5}*/ 328710, + /*{ 6, 3, 6}*/ 393990, + /*{ 6, 2, 7}*/ 459270, + /*{ 6, 1, 8}*/ 524550, + /*{ 6, 0, 9}*/ 589830, + /*{ 5, 10, 0}*/ 2565, + /*{ 5, 9, 1}*/ 67845, + /*{ 5, 8, 2}*/ 133125, + /*{ 5, 7, 3}*/ 198405, + /*{ 5, 6, 4}*/ 263685, + /*{ 5, 5, 5}*/ 328965, + /*{ 5, 4, 6}*/ 394245, + /*{ 5, 3, 7}*/ 459525, + /*{ 5, 2, 8}*/ 524805, + /*{ 5, 1, 9}*/ 590085, + /*{ 5, 0, 10}*/ 655365, + /*{ 4, 11, 0}*/ 2820, + /*{ 4, 10, 1}*/ 68100, + /*{ 4, 9, 2}*/ 133380, + /*{ 4, 8, 3}*/ 198660, + /*{ 4, 7, 4}*/ 263940, + /*{ 4, 6, 5}*/ 329220, + /*{ 4, 5, 6}*/ 394500, + /*{ 4, 4, 7}*/ 459780, + /*{ 4, 3, 8}*/ 525060, + /*{ 4, 2, 9}*/ 590340, + /*{ 4, 1, 10}*/ 655620, + /*{ 4, 0, 11}*/ 720900, + /*{ 3, 12, 0}*/ 3075, + /*{ 3, 11, 1}*/ 68355, + /*{ 3, 10, 2}*/ 133635, + /*{ 3, 9, 3}*/ 198915, + /*{ 3, 8, 4}*/ 264195, + /*{ 3, 7, 5}*/ 329475, + /*{ 3, 6, 6}*/ 394755, + /*{ 3, 5, 7}*/ 460035, + /*{ 3, 4, 8}*/ 525315, + /*{ 3, 3, 9}*/ 590595, + /*{ 3, 2, 10}*/ 655875, + /*{ 3, 1, 11}*/ 721155, + /*{ 3, 0, 12}*/ 786435, + /*{ 2, 13, 0}*/ 3330, + /*{ 2, 12, 1}*/ 68610, + /*{ 2, 11, 2}*/ 133890, + /*{ 2, 10, 3}*/ 199170, + /*{ 2, 9, 4}*/ 264450, + /*{ 2, 8, 5}*/ 329730, + /*{ 2, 7, 6}*/ 395010, + /*{ 2, 6, 7}*/ 460290, + /*{ 2, 5, 8}*/ 525570, + /*{ 2, 4, 9}*/ 590850, + /*{ 2, 3, 10}*/ 656130, + /*{ 2, 2, 11}*/ 721410, + /*{ 2, 1, 12}*/ 786690, + /*{ 2, 0, 13}*/ 851970, + /*{ 1, 14, 0}*/ 3585, + /*{ 1, 13, 1}*/ 68865, + /*{ 1, 12, 2}*/ 134145, + /*{ 1, 11, 3}*/ 199425, + /*{ 1, 10, 4}*/ 264705, + /*{ 1, 9, 5}*/ 329985, + /*{ 1, 8, 6}*/ 395265, + /*{ 1, 7, 7}*/ 460545, + /*{ 1, 6, 8}*/ 525825, + /*{ 1, 5, 9}*/ 591105, + /*{ 1, 4, 10}*/ 656385, + /*{ 1, 3, 11}*/ 721665, + /*{ 1, 2, 12}*/ 786945, + /*{ 1, 1, 13}*/ 852225, + /*{ 1, 0, 14}*/ 917505, + /*{ 0, 15, 0}*/ 3840, + /*{ 0, 14, 1}*/ 69120, + /*{ 0, 13, 2}*/ 134400, + /*{ 0, 12, 3}*/ 199680, + /*{ 0, 11, 4}*/ 264960, + /*{ 0, 10, 5}*/ 330240, + /*{ 0, 9, 6}*/ 395520, + /*{ 0, 8, 7}*/ 460800, + /*{ 0, 7, 8}*/ 526080, + /*{ 0, 6, 9}*/ 591360, + /*{ 0, 5, 10}*/ 656640, + /*{ 0, 4, 11}*/ 721920, + /*{ 0, 3, 12}*/ 787200, + /*{ 0, 2, 13}*/ 852480, + /*{ 0, 1, 14}*/ 917760, + /*{ 0, 0, 15}*/ 983040, + } +}, +{ 16, { + /*{ 16, 0, 0}*/ 16, + /*{ 15, 1, 0}*/ 271, + /*{ 15, 0, 1}*/ 65551, + /*{ 14, 2, 0}*/ 526, + /*{ 14, 1, 1}*/ 65806, + /*{ 14, 0, 2}*/ 131086, + /*{ 13, 3, 0}*/ 781, + /*{ 13, 2, 1}*/ 66061, + /*{ 13, 1, 2}*/ 131341, + /*{ 13, 0, 3}*/ 196621, + /*{ 12, 4, 0}*/ 1036, + /*{ 12, 3, 1}*/ 66316, + /*{ 12, 2, 2}*/ 131596, + /*{ 12, 1, 3}*/ 196876, + /*{ 12, 0, 4}*/ 262156, + /*{ 11, 5, 0}*/ 1291, + /*{ 11, 4, 1}*/ 66571, + /*{ 11, 3, 2}*/ 131851, + /*{ 11, 2, 3}*/ 197131, + /*{ 11, 1, 4}*/ 262411, + /*{ 11, 0, 5}*/ 327691, + /*{ 10, 6, 0}*/ 1546, + /*{ 10, 5, 1}*/ 66826, + /*{ 10, 4, 2}*/ 132106, + /*{ 10, 3, 3}*/ 197386, + /*{ 10, 2, 4}*/ 262666, + /*{ 10, 1, 5}*/ 327946, + /*{ 10, 0, 6}*/ 393226, + /*{ 9, 7, 0}*/ 1801, + /*{ 9, 6, 1}*/ 67081, + /*{ 9, 5, 2}*/ 132361, + /*{ 9, 4, 3}*/ 197641, + /*{ 9, 3, 4}*/ 262921, + /*{ 9, 2, 5}*/ 328201, + /*{ 9, 1, 6}*/ 393481, + /*{ 9, 0, 7}*/ 458761, + /*{ 8, 8, 0}*/ 2056, + /*{ 8, 7, 1}*/ 67336, + /*{ 8, 6, 2}*/ 132616, + /*{ 8, 5, 3}*/ 197896, + /*{ 8, 4, 4}*/ 263176, + /*{ 8, 3, 5}*/ 328456, + /*{ 8, 2, 6}*/ 393736, + /*{ 8, 1, 7}*/ 459016, + /*{ 8, 0, 8}*/ 524296, + /*{ 7, 9, 0}*/ 2311, + /*{ 7, 8, 1}*/ 67591, + /*{ 7, 7, 2}*/ 132871, + /*{ 7, 6, 3}*/ 198151, + /*{ 7, 5, 4}*/ 263431, + /*{ 7, 4, 5}*/ 328711, + /*{ 7, 3, 6}*/ 393991, + /*{ 7, 2, 7}*/ 459271, + /*{ 7, 1, 8}*/ 524551, + /*{ 7, 0, 9}*/ 589831, + /*{ 6, 10, 0}*/ 2566, + /*{ 6, 9, 1}*/ 67846, + /*{ 6, 8, 2}*/ 133126, + /*{ 6, 7, 3}*/ 198406, + /*{ 6, 6, 4}*/ 263686, + /*{ 6, 5, 5}*/ 328966, + /*{ 6, 4, 6}*/ 394246, + /*{ 6, 3, 7}*/ 459526, + /*{ 6, 2, 8}*/ 524806, + /*{ 6, 1, 9}*/ 590086, + /*{ 6, 0, 10}*/ 655366, + /*{ 5, 11, 0}*/ 2821, + /*{ 5, 10, 1}*/ 68101, + /*{ 5, 9, 2}*/ 133381, + /*{ 5, 8, 3}*/ 198661, + /*{ 5, 7, 4}*/ 263941, + /*{ 5, 6, 5}*/ 329221, + /*{ 5, 5, 6}*/ 394501, + /*{ 5, 4, 7}*/ 459781, + /*{ 5, 3, 8}*/ 525061, + /*{ 5, 2, 9}*/ 590341, + /*{ 5, 1, 10}*/ 655621, + /*{ 5, 0, 11}*/ 720901, + /*{ 4, 12, 0}*/ 3076, + /*{ 4, 11, 1}*/ 68356, + /*{ 4, 10, 2}*/ 133636, + /*{ 4, 9, 3}*/ 198916, + /*{ 4, 8, 4}*/ 264196, + /*{ 4, 7, 5}*/ 329476, + /*{ 4, 6, 6}*/ 394756, + /*{ 4, 5, 7}*/ 460036, + /*{ 4, 4, 8}*/ 525316, + /*{ 4, 3, 9}*/ 590596, + /*{ 4, 2, 10}*/ 655876, + /*{ 4, 1, 11}*/ 721156, + /*{ 4, 0, 12}*/ 786436, + /*{ 3, 13, 0}*/ 3331, + /*{ 3, 12, 1}*/ 68611, + /*{ 3, 11, 2}*/ 133891, + /*{ 3, 10, 3}*/ 199171, + /*{ 3, 9, 4}*/ 264451, + /*{ 3, 8, 5}*/ 329731, + /*{ 3, 7, 6}*/ 395011, + /*{ 3, 6, 7}*/ 460291, + /*{ 3, 5, 8}*/ 525571, + /*{ 3, 4, 9}*/ 590851, + /*{ 3, 3, 10}*/ 656131, + /*{ 3, 2, 11}*/ 721411, + /*{ 3, 1, 12}*/ 786691, + /*{ 3, 0, 13}*/ 851971, + /*{ 2, 14, 0}*/ 3586, + /*{ 2, 13, 1}*/ 68866, + /*{ 2, 12, 2}*/ 134146, + /*{ 2, 11, 3}*/ 199426, + /*{ 2, 10, 4}*/ 264706, + /*{ 2, 9, 5}*/ 329986, + /*{ 2, 8, 6}*/ 395266, + /*{ 2, 7, 7}*/ 460546, + /*{ 2, 6, 8}*/ 525826, + /*{ 2, 5, 9}*/ 591106, + /*{ 2, 4, 10}*/ 656386, + /*{ 2, 3, 11}*/ 721666, + /*{ 2, 2, 12}*/ 786946, + /*{ 2, 1, 13}*/ 852226, + /*{ 2, 0, 14}*/ 917506, + /*{ 1, 15, 0}*/ 3841, + /*{ 1, 14, 1}*/ 69121, + /*{ 1, 13, 2}*/ 134401, + /*{ 1, 12, 3}*/ 199681, + /*{ 1, 11, 4}*/ 264961, + /*{ 1, 10, 5}*/ 330241, + /*{ 1, 9, 6}*/ 395521, + /*{ 1, 8, 7}*/ 460801, + /*{ 1, 7, 8}*/ 526081, + /*{ 1, 6, 9}*/ 591361, + /*{ 1, 5, 10}*/ 656641, + /*{ 1, 4, 11}*/ 721921, + /*{ 1, 3, 12}*/ 787201, + /*{ 1, 2, 13}*/ 852481, + /*{ 1, 1, 14}*/ 917761, + /*{ 1, 0, 15}*/ 983041, + /*{ 0, 16, 0}*/ 4096, + /*{ 0, 15, 1}*/ 69376, + /*{ 0, 14, 2}*/ 134656, + /*{ 0, 13, 3}*/ 199936, + /*{ 0, 12, 4}*/ 265216, + /*{ 0, 11, 5}*/ 330496, + /*{ 0, 10, 6}*/ 395776, + /*{ 0, 9, 7}*/ 461056, + /*{ 0, 8, 8}*/ 526336, + /*{ 0, 7, 9}*/ 591616, + /*{ 0, 6, 10}*/ 656896, + /*{ 0, 5, 11}*/ 722176, + /*{ 0, 4, 12}*/ 787456, + /*{ 0, 3, 13}*/ 852736, + /*{ 0, 2, 14}*/ 918016, + /*{ 0, 1, 15}*/ 983296, + /*{ 0, 0, 16}*/ 1048576, + } +}, +{ 17, { + /*{ 17, 0, 0}*/ 17, + /*{ 16, 1, 0}*/ 272, + /*{ 16, 0, 1}*/ 65552, + /*{ 15, 2, 0}*/ 527, + /*{ 15, 1, 1}*/ 65807, + /*{ 15, 0, 2}*/ 131087, + /*{ 14, 3, 0}*/ 782, + /*{ 14, 2, 1}*/ 66062, + /*{ 14, 1, 2}*/ 131342, + /*{ 14, 0, 3}*/ 196622, + /*{ 13, 4, 0}*/ 1037, + /*{ 13, 3, 1}*/ 66317, + /*{ 13, 2, 2}*/ 131597, + /*{ 13, 1, 3}*/ 196877, + /*{ 13, 0, 4}*/ 262157, + /*{ 12, 5, 0}*/ 1292, + /*{ 12, 4, 1}*/ 66572, + /*{ 12, 3, 2}*/ 131852, + /*{ 12, 2, 3}*/ 197132, + /*{ 12, 1, 4}*/ 262412, + /*{ 12, 0, 5}*/ 327692, + /*{ 11, 6, 0}*/ 1547, + /*{ 11, 5, 1}*/ 66827, + /*{ 11, 4, 2}*/ 132107, + /*{ 11, 3, 3}*/ 197387, + /*{ 11, 2, 4}*/ 262667, + /*{ 11, 1, 5}*/ 327947, + /*{ 11, 0, 6}*/ 393227, + /*{ 10, 7, 0}*/ 1802, + /*{ 10, 6, 1}*/ 67082, + /*{ 10, 5, 2}*/ 132362, + /*{ 10, 4, 3}*/ 197642, + /*{ 10, 3, 4}*/ 262922, + /*{ 10, 2, 5}*/ 328202, + /*{ 10, 1, 6}*/ 393482, + /*{ 10, 0, 7}*/ 458762, + /*{ 9, 8, 0}*/ 2057, + /*{ 9, 7, 1}*/ 67337, + /*{ 9, 6, 2}*/ 132617, + /*{ 9, 5, 3}*/ 197897, + /*{ 9, 4, 4}*/ 263177, + /*{ 9, 3, 5}*/ 328457, + /*{ 9, 2, 6}*/ 393737, + /*{ 9, 1, 7}*/ 459017, + /*{ 9, 0, 8}*/ 524297, + /*{ 8, 9, 0}*/ 2312, + /*{ 8, 8, 1}*/ 67592, + /*{ 8, 7, 2}*/ 132872, + /*{ 8, 6, 3}*/ 198152, + /*{ 8, 5, 4}*/ 263432, + /*{ 8, 4, 5}*/ 328712, + /*{ 8, 3, 6}*/ 393992, + /*{ 8, 2, 7}*/ 459272, + /*{ 8, 1, 8}*/ 524552, + /*{ 8, 0, 9}*/ 589832, + /*{ 7, 10, 0}*/ 2567, + /*{ 7, 9, 1}*/ 67847, + /*{ 7, 8, 2}*/ 133127, + /*{ 7, 7, 3}*/ 198407, + /*{ 7, 6, 4}*/ 263687, + /*{ 7, 5, 5}*/ 328967, + /*{ 7, 4, 6}*/ 394247, + /*{ 7, 3, 7}*/ 459527, + /*{ 7, 2, 8}*/ 524807, + /*{ 7, 1, 9}*/ 590087, + /*{ 7, 0, 10}*/ 655367, + /*{ 6, 11, 0}*/ 2822, + /*{ 6, 10, 1}*/ 68102, + /*{ 6, 9, 2}*/ 133382, + /*{ 6, 8, 3}*/ 198662, + /*{ 6, 7, 4}*/ 263942, + /*{ 6, 6, 5}*/ 329222, + /*{ 6, 5, 6}*/ 394502, + /*{ 6, 4, 7}*/ 459782, + /*{ 6, 3, 8}*/ 525062, + /*{ 6, 2, 9}*/ 590342, + /*{ 6, 1, 10}*/ 655622, + /*{ 6, 0, 11}*/ 720902, + /*{ 5, 12, 0}*/ 3077, + /*{ 5, 11, 1}*/ 68357, + /*{ 5, 10, 2}*/ 133637, + /*{ 5, 9, 3}*/ 198917, + /*{ 5, 8, 4}*/ 264197, + /*{ 5, 7, 5}*/ 329477, + /*{ 5, 6, 6}*/ 394757, + /*{ 5, 5, 7}*/ 460037, + /*{ 5, 4, 8}*/ 525317, + /*{ 5, 3, 9}*/ 590597, + /*{ 5, 2, 10}*/ 655877, + /*{ 5, 1, 11}*/ 721157, + /*{ 5, 0, 12}*/ 786437, + /*{ 4, 13, 0}*/ 3332, + /*{ 4, 12, 1}*/ 68612, + /*{ 4, 11, 2}*/ 133892, + /*{ 4, 10, 3}*/ 199172, + /*{ 4, 9, 4}*/ 264452, + /*{ 4, 8, 5}*/ 329732, + /*{ 4, 7, 6}*/ 395012, + /*{ 4, 6, 7}*/ 460292, + /*{ 4, 5, 8}*/ 525572, + /*{ 4, 4, 9}*/ 590852, + /*{ 4, 3, 10}*/ 656132, + /*{ 4, 2, 11}*/ 721412, + /*{ 4, 1, 12}*/ 786692, + /*{ 4, 0, 13}*/ 851972, + /*{ 3, 14, 0}*/ 3587, + /*{ 3, 13, 1}*/ 68867, + /*{ 3, 12, 2}*/ 134147, + /*{ 3, 11, 3}*/ 199427, + /*{ 3, 10, 4}*/ 264707, + /*{ 3, 9, 5}*/ 329987, + /*{ 3, 8, 6}*/ 395267, + /*{ 3, 7, 7}*/ 460547, + /*{ 3, 6, 8}*/ 525827, + /*{ 3, 5, 9}*/ 591107, + /*{ 3, 4, 10}*/ 656387, + /*{ 3, 3, 11}*/ 721667, + /*{ 3, 2, 12}*/ 786947, + /*{ 3, 1, 13}*/ 852227, + /*{ 3, 0, 14}*/ 917507, + /*{ 2, 15, 0}*/ 3842, + /*{ 2, 14, 1}*/ 69122, + /*{ 2, 13, 2}*/ 134402, + /*{ 2, 12, 3}*/ 199682, + /*{ 2, 11, 4}*/ 264962, + /*{ 2, 10, 5}*/ 330242, + /*{ 2, 9, 6}*/ 395522, + /*{ 2, 8, 7}*/ 460802, + /*{ 2, 7, 8}*/ 526082, + /*{ 2, 6, 9}*/ 591362, + /*{ 2, 5, 10}*/ 656642, + /*{ 2, 4, 11}*/ 721922, + /*{ 2, 3, 12}*/ 787202, + /*{ 2, 2, 13}*/ 852482, + /*{ 2, 1, 14}*/ 917762, + /*{ 2, 0, 15}*/ 983042, + /*{ 1, 16, 0}*/ 4097, + /*{ 1, 15, 1}*/ 69377, + /*{ 1, 14, 2}*/ 134657, + /*{ 1, 13, 3}*/ 199937, + /*{ 1, 12, 4}*/ 265217, + /*{ 1, 11, 5}*/ 330497, + /*{ 1, 10, 6}*/ 395777, + /*{ 1, 9, 7}*/ 461057, + /*{ 1, 8, 8}*/ 526337, + /*{ 1, 7, 9}*/ 591617, + /*{ 1, 6, 10}*/ 656897, + /*{ 1, 5, 11}*/ 722177, + /*{ 1, 4, 12}*/ 787457, + /*{ 1, 3, 13}*/ 852737, + /*{ 1, 2, 14}*/ 918017, + /*{ 1, 1, 15}*/ 983297, + /*{ 1, 0, 16}*/ 1048577, + /*{ 0, 17, 0}*/ 4352, + /*{ 0, 16, 1}*/ 69632, + /*{ 0, 15, 2}*/ 134912, + /*{ 0, 14, 3}*/ 200192, + /*{ 0, 13, 4}*/ 265472, + /*{ 0, 12, 5}*/ 330752, + /*{ 0, 11, 6}*/ 396032, + /*{ 0, 10, 7}*/ 461312, + /*{ 0, 9, 8}*/ 526592, + /*{ 0, 8, 9}*/ 591872, + /*{ 0, 7, 10}*/ 657152, + /*{ 0, 6, 11}*/ 722432, + /*{ 0, 5, 12}*/ 787712, + /*{ 0, 4, 13}*/ 852992, + /*{ 0, 3, 14}*/ 918272, + /*{ 0, 2, 15}*/ 983552, + /*{ 0, 1, 16}*/ 1048832, + /*{ 0, 0, 17}*/ 1114112, + } +}, +{ 18, { + /*{ 18, 0, 0}*/ 18, + /*{ 17, 1, 0}*/ 273, + /*{ 17, 0, 1}*/ 65553, + /*{ 16, 2, 0}*/ 528, + /*{ 16, 1, 1}*/ 65808, + /*{ 16, 0, 2}*/ 131088, + /*{ 15, 3, 0}*/ 783, + /*{ 15, 2, 1}*/ 66063, + /*{ 15, 1, 2}*/ 131343, + /*{ 15, 0, 3}*/ 196623, + /*{ 14, 4, 0}*/ 1038, + /*{ 14, 3, 1}*/ 66318, + /*{ 14, 2, 2}*/ 131598, + /*{ 14, 1, 3}*/ 196878, + /*{ 14, 0, 4}*/ 262158, + /*{ 13, 5, 0}*/ 1293, + /*{ 13, 4, 1}*/ 66573, + /*{ 13, 3, 2}*/ 131853, + /*{ 13, 2, 3}*/ 197133, + /*{ 13, 1, 4}*/ 262413, + /*{ 13, 0, 5}*/ 327693, + /*{ 12, 6, 0}*/ 1548, + /*{ 12, 5, 1}*/ 66828, + /*{ 12, 4, 2}*/ 132108, + /*{ 12, 3, 3}*/ 197388, + /*{ 12, 2, 4}*/ 262668, + /*{ 12, 1, 5}*/ 327948, + /*{ 12, 0, 6}*/ 393228, + /*{ 11, 7, 0}*/ 1803, + /*{ 11, 6, 1}*/ 67083, + /*{ 11, 5, 2}*/ 132363, + /*{ 11, 4, 3}*/ 197643, + /*{ 11, 3, 4}*/ 262923, + /*{ 11, 2, 5}*/ 328203, + /*{ 11, 1, 6}*/ 393483, + /*{ 11, 0, 7}*/ 458763, + /*{ 10, 8, 0}*/ 2058, + /*{ 10, 7, 1}*/ 67338, + /*{ 10, 6, 2}*/ 132618, + /*{ 10, 5, 3}*/ 197898, + /*{ 10, 4, 4}*/ 263178, + /*{ 10, 3, 5}*/ 328458, + /*{ 10, 2, 6}*/ 393738, + /*{ 10, 1, 7}*/ 459018, + /*{ 10, 0, 8}*/ 524298, + /*{ 9, 9, 0}*/ 2313, + /*{ 9, 8, 1}*/ 67593, + /*{ 9, 7, 2}*/ 132873, + /*{ 9, 6, 3}*/ 198153, + /*{ 9, 5, 4}*/ 263433, + /*{ 9, 4, 5}*/ 328713, + /*{ 9, 3, 6}*/ 393993, + /*{ 9, 2, 7}*/ 459273, + /*{ 9, 1, 8}*/ 524553, + /*{ 9, 0, 9}*/ 589833, + /*{ 8, 10, 0}*/ 2568, + /*{ 8, 9, 1}*/ 67848, + /*{ 8, 8, 2}*/ 133128, + /*{ 8, 7, 3}*/ 198408, + /*{ 8, 6, 4}*/ 263688, + /*{ 8, 5, 5}*/ 328968, + /*{ 8, 4, 6}*/ 394248, + /*{ 8, 3, 7}*/ 459528, + /*{ 8, 2, 8}*/ 524808, + /*{ 8, 1, 9}*/ 590088, + /*{ 8, 0, 10}*/ 655368, + /*{ 7, 11, 0}*/ 2823, + /*{ 7, 10, 1}*/ 68103, + /*{ 7, 9, 2}*/ 133383, + /*{ 7, 8, 3}*/ 198663, + /*{ 7, 7, 4}*/ 263943, + /*{ 7, 6, 5}*/ 329223, + /*{ 7, 5, 6}*/ 394503, + /*{ 7, 4, 7}*/ 459783, + /*{ 7, 3, 8}*/ 525063, + /*{ 7, 2, 9}*/ 590343, + /*{ 7, 1, 10}*/ 655623, + /*{ 7, 0, 11}*/ 720903, + /*{ 6, 12, 0}*/ 3078, + /*{ 6, 11, 1}*/ 68358, + /*{ 6, 10, 2}*/ 133638, + /*{ 6, 9, 3}*/ 198918, + /*{ 6, 8, 4}*/ 264198, + /*{ 6, 7, 5}*/ 329478, + /*{ 6, 6, 6}*/ 394758, + /*{ 6, 5, 7}*/ 460038, + /*{ 6, 4, 8}*/ 525318, + /*{ 6, 3, 9}*/ 590598, + /*{ 6, 2, 10}*/ 655878, + /*{ 6, 1, 11}*/ 721158, + /*{ 6, 0, 12}*/ 786438, + /*{ 5, 13, 0}*/ 3333, + /*{ 5, 12, 1}*/ 68613, + /*{ 5, 11, 2}*/ 133893, + /*{ 5, 10, 3}*/ 199173, + /*{ 5, 9, 4}*/ 264453, + /*{ 5, 8, 5}*/ 329733, + /*{ 5, 7, 6}*/ 395013, + /*{ 5, 6, 7}*/ 460293, + /*{ 5, 5, 8}*/ 525573, + /*{ 5, 4, 9}*/ 590853, + /*{ 5, 3, 10}*/ 656133, + /*{ 5, 2, 11}*/ 721413, + /*{ 5, 1, 12}*/ 786693, + /*{ 5, 0, 13}*/ 851973, + /*{ 4, 14, 0}*/ 3588, + /*{ 4, 13, 1}*/ 68868, + /*{ 4, 12, 2}*/ 134148, + /*{ 4, 11, 3}*/ 199428, + /*{ 4, 10, 4}*/ 264708, + /*{ 4, 9, 5}*/ 329988, + /*{ 4, 8, 6}*/ 395268, + /*{ 4, 7, 7}*/ 460548, + /*{ 4, 6, 8}*/ 525828, + /*{ 4, 5, 9}*/ 591108, + /*{ 4, 4, 10}*/ 656388, + /*{ 4, 3, 11}*/ 721668, + /*{ 4, 2, 12}*/ 786948, + /*{ 4, 1, 13}*/ 852228, + /*{ 4, 0, 14}*/ 917508, + /*{ 3, 15, 0}*/ 3843, + /*{ 3, 14, 1}*/ 69123, + /*{ 3, 13, 2}*/ 134403, + /*{ 3, 12, 3}*/ 199683, + /*{ 3, 11, 4}*/ 264963, + /*{ 3, 10, 5}*/ 330243, + /*{ 3, 9, 6}*/ 395523, + /*{ 3, 8, 7}*/ 460803, + /*{ 3, 7, 8}*/ 526083, + /*{ 3, 6, 9}*/ 591363, + /*{ 3, 5, 10}*/ 656643, + /*{ 3, 4, 11}*/ 721923, + /*{ 3, 3, 12}*/ 787203, + /*{ 3, 2, 13}*/ 852483, + /*{ 3, 1, 14}*/ 917763, + /*{ 3, 0, 15}*/ 983043, + /*{ 2, 16, 0}*/ 4098, + /*{ 2, 15, 1}*/ 69378, + /*{ 2, 14, 2}*/ 134658, + /*{ 2, 13, 3}*/ 199938, + /*{ 2, 12, 4}*/ 265218, + /*{ 2, 11, 5}*/ 330498, + /*{ 2, 10, 6}*/ 395778, + /*{ 2, 9, 7}*/ 461058, + /*{ 2, 8, 8}*/ 526338, + /*{ 2, 7, 9}*/ 591618, + /*{ 2, 6, 10}*/ 656898, + /*{ 2, 5, 11}*/ 722178, + /*{ 2, 4, 12}*/ 787458, + /*{ 2, 3, 13}*/ 852738, + /*{ 2, 2, 14}*/ 918018, + /*{ 2, 1, 15}*/ 983298, + /*{ 2, 0, 16}*/ 1048578, + /*{ 1, 17, 0}*/ 4353, + /*{ 1, 16, 1}*/ 69633, + /*{ 1, 15, 2}*/ 134913, + /*{ 1, 14, 3}*/ 200193, + /*{ 1, 13, 4}*/ 265473, + /*{ 1, 12, 5}*/ 330753, + /*{ 1, 11, 6}*/ 396033, + /*{ 1, 10, 7}*/ 461313, + /*{ 1, 9, 8}*/ 526593, + /*{ 1, 8, 9}*/ 591873, + /*{ 1, 7, 10}*/ 657153, + /*{ 1, 6, 11}*/ 722433, + /*{ 1, 5, 12}*/ 787713, + /*{ 1, 4, 13}*/ 852993, + /*{ 1, 3, 14}*/ 918273, + /*{ 1, 2, 15}*/ 983553, + /*{ 1, 1, 16}*/ 1048833, + /*{ 1, 0, 17}*/ 1114113, + /*{ 0, 18, 0}*/ 4608, + /*{ 0, 17, 1}*/ 69888, + /*{ 0, 16, 2}*/ 135168, + /*{ 0, 15, 3}*/ 200448, + /*{ 0, 14, 4}*/ 265728, + /*{ 0, 13, 5}*/ 331008, + /*{ 0, 12, 6}*/ 396288, + /*{ 0, 11, 7}*/ 461568, + /*{ 0, 10, 8}*/ 526848, + /*{ 0, 9, 9}*/ 592128, + /*{ 0, 8, 10}*/ 657408, + /*{ 0, 7, 11}*/ 722688, + /*{ 0, 6, 12}*/ 787968, + /*{ 0, 5, 13}*/ 853248, + /*{ 0, 4, 14}*/ 918528, + /*{ 0, 3, 15}*/ 983808, + /*{ 0, 2, 16}*/ 1049088, + /*{ 0, 1, 17}*/ 1114368, + /*{ 0, 0, 18}*/ 1179648, + } +}, +{ 19, { + /*{ 19, 0, 0}*/ 19, + /*{ 18, 1, 0}*/ 274, + /*{ 18, 0, 1}*/ 65554, + /*{ 17, 2, 0}*/ 529, + /*{ 17, 1, 1}*/ 65809, + /*{ 17, 0, 2}*/ 131089, + /*{ 16, 3, 0}*/ 784, + /*{ 16, 2, 1}*/ 66064, + /*{ 16, 1, 2}*/ 131344, + /*{ 16, 0, 3}*/ 196624, + /*{ 15, 4, 0}*/ 1039, + /*{ 15, 3, 1}*/ 66319, + /*{ 15, 2, 2}*/ 131599, + /*{ 15, 1, 3}*/ 196879, + /*{ 15, 0, 4}*/ 262159, + /*{ 14, 5, 0}*/ 1294, + /*{ 14, 4, 1}*/ 66574, + /*{ 14, 3, 2}*/ 131854, + /*{ 14, 2, 3}*/ 197134, + /*{ 14, 1, 4}*/ 262414, + /*{ 14, 0, 5}*/ 327694, + /*{ 13, 6, 0}*/ 1549, + /*{ 13, 5, 1}*/ 66829, + /*{ 13, 4, 2}*/ 132109, + /*{ 13, 3, 3}*/ 197389, + /*{ 13, 2, 4}*/ 262669, + /*{ 13, 1, 5}*/ 327949, + /*{ 13, 0, 6}*/ 393229, + /*{ 12, 7, 0}*/ 1804, + /*{ 12, 6, 1}*/ 67084, + /*{ 12, 5, 2}*/ 132364, + /*{ 12, 4, 3}*/ 197644, + /*{ 12, 3, 4}*/ 262924, + /*{ 12, 2, 5}*/ 328204, + /*{ 12, 1, 6}*/ 393484, + /*{ 12, 0, 7}*/ 458764, + /*{ 11, 8, 0}*/ 2059, + /*{ 11, 7, 1}*/ 67339, + /*{ 11, 6, 2}*/ 132619, + /*{ 11, 5, 3}*/ 197899, + /*{ 11, 4, 4}*/ 263179, + /*{ 11, 3, 5}*/ 328459, + /*{ 11, 2, 6}*/ 393739, + /*{ 11, 1, 7}*/ 459019, + /*{ 11, 0, 8}*/ 524299, + /*{ 10, 9, 0}*/ 2314, + /*{ 10, 8, 1}*/ 67594, + /*{ 10, 7, 2}*/ 132874, + /*{ 10, 6, 3}*/ 198154, + /*{ 10, 5, 4}*/ 263434, + /*{ 10, 4, 5}*/ 328714, + /*{ 10, 3, 6}*/ 393994, + /*{ 10, 2, 7}*/ 459274, + /*{ 10, 1, 8}*/ 524554, + /*{ 10, 0, 9}*/ 589834, + /*{ 9, 10, 0}*/ 2569, + /*{ 9, 9, 1}*/ 67849, + /*{ 9, 8, 2}*/ 133129, + /*{ 9, 7, 3}*/ 198409, + /*{ 9, 6, 4}*/ 263689, + /*{ 9, 5, 5}*/ 328969, + /*{ 9, 4, 6}*/ 394249, + /*{ 9, 3, 7}*/ 459529, + /*{ 9, 2, 8}*/ 524809, + /*{ 9, 1, 9}*/ 590089, + /*{ 9, 0, 10}*/ 655369, + /*{ 8, 11, 0}*/ 2824, + /*{ 8, 10, 1}*/ 68104, + /*{ 8, 9, 2}*/ 133384, + /*{ 8, 8, 3}*/ 198664, + /*{ 8, 7, 4}*/ 263944, + /*{ 8, 6, 5}*/ 329224, + /*{ 8, 5, 6}*/ 394504, + /*{ 8, 4, 7}*/ 459784, + /*{ 8, 3, 8}*/ 525064, + /*{ 8, 2, 9}*/ 590344, + /*{ 8, 1, 10}*/ 655624, + /*{ 8, 0, 11}*/ 720904, + /*{ 7, 12, 0}*/ 3079, + /*{ 7, 11, 1}*/ 68359, + /*{ 7, 10, 2}*/ 133639, + /*{ 7, 9, 3}*/ 198919, + /*{ 7, 8, 4}*/ 264199, + /*{ 7, 7, 5}*/ 329479, + /*{ 7, 6, 6}*/ 394759, + /*{ 7, 5, 7}*/ 460039, + /*{ 7, 4, 8}*/ 525319, + /*{ 7, 3, 9}*/ 590599, + /*{ 7, 2, 10}*/ 655879, + /*{ 7, 1, 11}*/ 721159, + /*{ 7, 0, 12}*/ 786439, + /*{ 6, 13, 0}*/ 3334, + /*{ 6, 12, 1}*/ 68614, + /*{ 6, 11, 2}*/ 133894, + /*{ 6, 10, 3}*/ 199174, + /*{ 6, 9, 4}*/ 264454, + /*{ 6, 8, 5}*/ 329734, + /*{ 6, 7, 6}*/ 395014, + /*{ 6, 6, 7}*/ 460294, + /*{ 6, 5, 8}*/ 525574, + /*{ 6, 4, 9}*/ 590854, + /*{ 6, 3, 10}*/ 656134, + /*{ 6, 2, 11}*/ 721414, + /*{ 6, 1, 12}*/ 786694, + /*{ 6, 0, 13}*/ 851974, + /*{ 5, 14, 0}*/ 3589, + /*{ 5, 13, 1}*/ 68869, + /*{ 5, 12, 2}*/ 134149, + /*{ 5, 11, 3}*/ 199429, + /*{ 5, 10, 4}*/ 264709, + /*{ 5, 9, 5}*/ 329989, + /*{ 5, 8, 6}*/ 395269, + /*{ 5, 7, 7}*/ 460549, + /*{ 5, 6, 8}*/ 525829, + /*{ 5, 5, 9}*/ 591109, + /*{ 5, 4, 10}*/ 656389, + /*{ 5, 3, 11}*/ 721669, + /*{ 5, 2, 12}*/ 786949, + /*{ 5, 1, 13}*/ 852229, + /*{ 5, 0, 14}*/ 917509, + /*{ 4, 15, 0}*/ 3844, + /*{ 4, 14, 1}*/ 69124, + /*{ 4, 13, 2}*/ 134404, + /*{ 4, 12, 3}*/ 199684, + /*{ 4, 11, 4}*/ 264964, + /*{ 4, 10, 5}*/ 330244, + /*{ 4, 9, 6}*/ 395524, + /*{ 4, 8, 7}*/ 460804, + /*{ 4, 7, 8}*/ 526084, + /*{ 4, 6, 9}*/ 591364, + /*{ 4, 5, 10}*/ 656644, + /*{ 4, 4, 11}*/ 721924, + /*{ 4, 3, 12}*/ 787204, + /*{ 4, 2, 13}*/ 852484, + /*{ 4, 1, 14}*/ 917764, + /*{ 4, 0, 15}*/ 983044, + /*{ 3, 16, 0}*/ 4099, + /*{ 3, 15, 1}*/ 69379, + /*{ 3, 14, 2}*/ 134659, + /*{ 3, 13, 3}*/ 199939, + /*{ 3, 12, 4}*/ 265219, + /*{ 3, 11, 5}*/ 330499, + /*{ 3, 10, 6}*/ 395779, + /*{ 3, 9, 7}*/ 461059, + /*{ 3, 8, 8}*/ 526339, + /*{ 3, 7, 9}*/ 591619, + /*{ 3, 6, 10}*/ 656899, + /*{ 3, 5, 11}*/ 722179, + /*{ 3, 4, 12}*/ 787459, + /*{ 3, 3, 13}*/ 852739, + /*{ 3, 2, 14}*/ 918019, + /*{ 3, 1, 15}*/ 983299, + /*{ 3, 0, 16}*/ 1048579, + /*{ 2, 17, 0}*/ 4354, + /*{ 2, 16, 1}*/ 69634, + /*{ 2, 15, 2}*/ 134914, + /*{ 2, 14, 3}*/ 200194, + /*{ 2, 13, 4}*/ 265474, + /*{ 2, 12, 5}*/ 330754, + /*{ 2, 11, 6}*/ 396034, + /*{ 2, 10, 7}*/ 461314, + /*{ 2, 9, 8}*/ 526594, + /*{ 2, 8, 9}*/ 591874, + /*{ 2, 7, 10}*/ 657154, + /*{ 2, 6, 11}*/ 722434, + /*{ 2, 5, 12}*/ 787714, + /*{ 2, 4, 13}*/ 852994, + /*{ 2, 3, 14}*/ 918274, + /*{ 2, 2, 15}*/ 983554, + /*{ 2, 1, 16}*/ 1048834, + /*{ 2, 0, 17}*/ 1114114, + /*{ 1, 18, 0}*/ 4609, + /*{ 1, 17, 1}*/ 69889, + /*{ 1, 16, 2}*/ 135169, + /*{ 1, 15, 3}*/ 200449, + /*{ 1, 14, 4}*/ 265729, + /*{ 1, 13, 5}*/ 331009, + /*{ 1, 12, 6}*/ 396289, + /*{ 1, 11, 7}*/ 461569, + /*{ 1, 10, 8}*/ 526849, + /*{ 1, 9, 9}*/ 592129, + /*{ 1, 8, 10}*/ 657409, + /*{ 1, 7, 11}*/ 722689, + /*{ 1, 6, 12}*/ 787969, + /*{ 1, 5, 13}*/ 853249, + /*{ 1, 4, 14}*/ 918529, + /*{ 1, 3, 15}*/ 983809, + /*{ 1, 2, 16}*/ 1049089, + /*{ 1, 1, 17}*/ 1114369, + /*{ 1, 0, 18}*/ 1179649, + /*{ 0, 19, 0}*/ 4864, + /*{ 0, 18, 1}*/ 70144, + /*{ 0, 17, 2}*/ 135424, + /*{ 0, 16, 3}*/ 200704, + /*{ 0, 15, 4}*/ 265984, + /*{ 0, 14, 5}*/ 331264, + /*{ 0, 13, 6}*/ 396544, + /*{ 0, 12, 7}*/ 461824, + /*{ 0, 11, 8}*/ 527104, + /*{ 0, 10, 9}*/ 592384, + /*{ 0, 9, 10}*/ 657664, + /*{ 0, 8, 11}*/ 722944, + /*{ 0, 7, 12}*/ 788224, + /*{ 0, 6, 13}*/ 853504, + /*{ 0, 5, 14}*/ 918784, + /*{ 0, 4, 15}*/ 984064, + /*{ 0, 3, 16}*/ 1049344, + /*{ 0, 2, 17}*/ 1114624, + /*{ 0, 1, 18}*/ 1179904, + /*{ 0, 0, 19}*/ 1245184, + } +}, +{ 20, { + /*{ 20, 0, 0}*/ 20, + /*{ 19, 1, 0}*/ 275, + /*{ 19, 0, 1}*/ 65555, + /*{ 18, 2, 0}*/ 530, + /*{ 18, 1, 1}*/ 65810, + /*{ 18, 0, 2}*/ 131090, + /*{ 17, 3, 0}*/ 785, + /*{ 17, 2, 1}*/ 66065, + /*{ 17, 1, 2}*/ 131345, + /*{ 17, 0, 3}*/ 196625, + /*{ 16, 4, 0}*/ 1040, + /*{ 16, 3, 1}*/ 66320, + /*{ 16, 2, 2}*/ 131600, + /*{ 16, 1, 3}*/ 196880, + /*{ 16, 0, 4}*/ 262160, + /*{ 15, 5, 0}*/ 1295, + /*{ 15, 4, 1}*/ 66575, + /*{ 15, 3, 2}*/ 131855, + /*{ 15, 2, 3}*/ 197135, + /*{ 15, 1, 4}*/ 262415, + /*{ 15, 0, 5}*/ 327695, + /*{ 14, 6, 0}*/ 1550, + /*{ 14, 5, 1}*/ 66830, + /*{ 14, 4, 2}*/ 132110, + /*{ 14, 3, 3}*/ 197390, + /*{ 14, 2, 4}*/ 262670, + /*{ 14, 1, 5}*/ 327950, + /*{ 14, 0, 6}*/ 393230, + /*{ 13, 7, 0}*/ 1805, + /*{ 13, 6, 1}*/ 67085, + /*{ 13, 5, 2}*/ 132365, + /*{ 13, 4, 3}*/ 197645, + /*{ 13, 3, 4}*/ 262925, + /*{ 13, 2, 5}*/ 328205, + /*{ 13, 1, 6}*/ 393485, + /*{ 13, 0, 7}*/ 458765, + /*{ 12, 8, 0}*/ 2060, + /*{ 12, 7, 1}*/ 67340, + /*{ 12, 6, 2}*/ 132620, + /*{ 12, 5, 3}*/ 197900, + /*{ 12, 4, 4}*/ 263180, + /*{ 12, 3, 5}*/ 328460, + /*{ 12, 2, 6}*/ 393740, + /*{ 12, 1, 7}*/ 459020, + /*{ 12, 0, 8}*/ 524300, + /*{ 11, 9, 0}*/ 2315, + /*{ 11, 8, 1}*/ 67595, + /*{ 11, 7, 2}*/ 132875, + /*{ 11, 6, 3}*/ 198155, + /*{ 11, 5, 4}*/ 263435, + /*{ 11, 4, 5}*/ 328715, + /*{ 11, 3, 6}*/ 393995, + /*{ 11, 2, 7}*/ 459275, + /*{ 11, 1, 8}*/ 524555, + /*{ 11, 0, 9}*/ 589835, + /*{ 10, 10, 0}*/ 2570, + /*{ 10, 9, 1}*/ 67850, + /*{ 10, 8, 2}*/ 133130, + /*{ 10, 7, 3}*/ 198410, + /*{ 10, 6, 4}*/ 263690, + /*{ 10, 5, 5}*/ 328970, + /*{ 10, 4, 6}*/ 394250, + /*{ 10, 3, 7}*/ 459530, + /*{ 10, 2, 8}*/ 524810, + /*{ 10, 1, 9}*/ 590090, + /*{ 10, 0, 10}*/ 655370, + /*{ 9, 11, 0}*/ 2825, + /*{ 9, 10, 1}*/ 68105, + /*{ 9, 9, 2}*/ 133385, + /*{ 9, 8, 3}*/ 198665, + /*{ 9, 7, 4}*/ 263945, + /*{ 9, 6, 5}*/ 329225, + /*{ 9, 5, 6}*/ 394505, + /*{ 9, 4, 7}*/ 459785, + /*{ 9, 3, 8}*/ 525065, + /*{ 9, 2, 9}*/ 590345, + /*{ 9, 1, 10}*/ 655625, + /*{ 9, 0, 11}*/ 720905, + /*{ 8, 12, 0}*/ 3080, + /*{ 8, 11, 1}*/ 68360, + /*{ 8, 10, 2}*/ 133640, + /*{ 8, 9, 3}*/ 198920, + /*{ 8, 8, 4}*/ 264200, + /*{ 8, 7, 5}*/ 329480, + /*{ 8, 6, 6}*/ 394760, + /*{ 8, 5, 7}*/ 460040, + /*{ 8, 4, 8}*/ 525320, + /*{ 8, 3, 9}*/ 590600, + /*{ 8, 2, 10}*/ 655880, + /*{ 8, 1, 11}*/ 721160, + /*{ 8, 0, 12}*/ 786440, + /*{ 7, 13, 0}*/ 3335, + /*{ 7, 12, 1}*/ 68615, + /*{ 7, 11, 2}*/ 133895, + /*{ 7, 10, 3}*/ 199175, + /*{ 7, 9, 4}*/ 264455, + /*{ 7, 8, 5}*/ 329735, + /*{ 7, 7, 6}*/ 395015, + /*{ 7, 6, 7}*/ 460295, + /*{ 7, 5, 8}*/ 525575, + /*{ 7, 4, 9}*/ 590855, + /*{ 7, 3, 10}*/ 656135, + /*{ 7, 2, 11}*/ 721415, + /*{ 7, 1, 12}*/ 786695, + /*{ 7, 0, 13}*/ 851975, + /*{ 6, 14, 0}*/ 3590, + /*{ 6, 13, 1}*/ 68870, + /*{ 6, 12, 2}*/ 134150, + /*{ 6, 11, 3}*/ 199430, + /*{ 6, 10, 4}*/ 264710, + /*{ 6, 9, 5}*/ 329990, + /*{ 6, 8, 6}*/ 395270, + /*{ 6, 7, 7}*/ 460550, + /*{ 6, 6, 8}*/ 525830, + /*{ 6, 5, 9}*/ 591110, + /*{ 6, 4, 10}*/ 656390, + /*{ 6, 3, 11}*/ 721670, + /*{ 6, 2, 12}*/ 786950, + /*{ 6, 1, 13}*/ 852230, + /*{ 6, 0, 14}*/ 917510, + /*{ 5, 15, 0}*/ 3845, + /*{ 5, 14, 1}*/ 69125, + /*{ 5, 13, 2}*/ 134405, + /*{ 5, 12, 3}*/ 199685, + /*{ 5, 11, 4}*/ 264965, + /*{ 5, 10, 5}*/ 330245, + /*{ 5, 9, 6}*/ 395525, + /*{ 5, 8, 7}*/ 460805, + /*{ 5, 7, 8}*/ 526085, + /*{ 5, 6, 9}*/ 591365, + /*{ 5, 5, 10}*/ 656645, + /*{ 5, 4, 11}*/ 721925, + /*{ 5, 3, 12}*/ 787205, + /*{ 5, 2, 13}*/ 852485, + /*{ 5, 1, 14}*/ 917765, + /*{ 5, 0, 15}*/ 983045, + /*{ 4, 16, 0}*/ 4100, + /*{ 4, 15, 1}*/ 69380, + /*{ 4, 14, 2}*/ 134660, + /*{ 4, 13, 3}*/ 199940, + /*{ 4, 12, 4}*/ 265220, + /*{ 4, 11, 5}*/ 330500, + /*{ 4, 10, 6}*/ 395780, + /*{ 4, 9, 7}*/ 461060, + /*{ 4, 8, 8}*/ 526340, + /*{ 4, 7, 9}*/ 591620, + /*{ 4, 6, 10}*/ 656900, + /*{ 4, 5, 11}*/ 722180, + /*{ 4, 4, 12}*/ 787460, + /*{ 4, 3, 13}*/ 852740, + /*{ 4, 2, 14}*/ 918020, + /*{ 4, 1, 15}*/ 983300, + /*{ 4, 0, 16}*/ 1048580, + /*{ 3, 17, 0}*/ 4355, + /*{ 3, 16, 1}*/ 69635, + /*{ 3, 15, 2}*/ 134915, + /*{ 3, 14, 3}*/ 200195, + /*{ 3, 13, 4}*/ 265475, + /*{ 3, 12, 5}*/ 330755, + /*{ 3, 11, 6}*/ 396035, + /*{ 3, 10, 7}*/ 461315, + /*{ 3, 9, 8}*/ 526595, + /*{ 3, 8, 9}*/ 591875, + /*{ 3, 7, 10}*/ 657155, + /*{ 3, 6, 11}*/ 722435, + /*{ 3, 5, 12}*/ 787715, + /*{ 3, 4, 13}*/ 852995, + /*{ 3, 3, 14}*/ 918275, + /*{ 3, 2, 15}*/ 983555, + /*{ 3, 1, 16}*/ 1048835, + /*{ 3, 0, 17}*/ 1114115, + /*{ 2, 18, 0}*/ 4610, + /*{ 2, 17, 1}*/ 69890, + /*{ 2, 16, 2}*/ 135170, + /*{ 2, 15, 3}*/ 200450, + /*{ 2, 14, 4}*/ 265730, + /*{ 2, 13, 5}*/ 331010, + /*{ 2, 12, 6}*/ 396290, + /*{ 2, 11, 7}*/ 461570, + /*{ 2, 10, 8}*/ 526850, + /*{ 2, 9, 9}*/ 592130, + /*{ 2, 8, 10}*/ 657410, + /*{ 2, 7, 11}*/ 722690, + /*{ 2, 6, 12}*/ 787970, + /*{ 2, 5, 13}*/ 853250, + /*{ 2, 4, 14}*/ 918530, + /*{ 2, 3, 15}*/ 983810, + /*{ 2, 2, 16}*/ 1049090, + /*{ 2, 1, 17}*/ 1114370, + /*{ 2, 0, 18}*/ 1179650, + /*{ 1, 19, 0}*/ 4865, + /*{ 1, 18, 1}*/ 70145, + /*{ 1, 17, 2}*/ 135425, + /*{ 1, 16, 3}*/ 200705, + /*{ 1, 15, 4}*/ 265985, + /*{ 1, 14, 5}*/ 331265, + /*{ 1, 13, 6}*/ 396545, + /*{ 1, 12, 7}*/ 461825, + /*{ 1, 11, 8}*/ 527105, + /*{ 1, 10, 9}*/ 592385, + /*{ 1, 9, 10}*/ 657665, + /*{ 1, 8, 11}*/ 722945, + /*{ 1, 7, 12}*/ 788225, + /*{ 1, 6, 13}*/ 853505, + /*{ 1, 5, 14}*/ 918785, + /*{ 1, 4, 15}*/ 984065, + /*{ 1, 3, 16}*/ 1049345, + /*{ 1, 2, 17}*/ 1114625, + /*{ 1, 1, 18}*/ 1179905, + /*{ 1, 0, 19}*/ 1245185, + /*{ 0, 20, 0}*/ 5120, + /*{ 0, 19, 1}*/ 70400, + /*{ 0, 18, 2}*/ 135680, + /*{ 0, 17, 3}*/ 200960, + /*{ 0, 16, 4}*/ 266240, + /*{ 0, 15, 5}*/ 331520, + /*{ 0, 14, 6}*/ 396800, + /*{ 0, 13, 7}*/ 462080, + /*{ 0, 12, 8}*/ 527360, + /*{ 0, 11, 9}*/ 592640, + /*{ 0, 10, 10}*/ 657920, + /*{ 0, 9, 11}*/ 723200, + /*{ 0, 8, 12}*/ 788480, + /*{ 0, 7, 13}*/ 853760, + /*{ 0, 6, 14}*/ 919040, + /*{ 0, 5, 15}*/ 984320, + /*{ 0, 4, 16}*/ 1049600, + /*{ 0, 3, 17}*/ 1114880, + /*{ 0, 2, 18}*/ 1180160, + /*{ 0, 1, 19}*/ 1245440, + /*{ 0, 0, 20}*/ 1310720, + } +}, +{ 21, { + /*{ 21, 0, 0}*/ 21, + /*{ 20, 1, 0}*/ 276, + /*{ 20, 0, 1}*/ 65556, + /*{ 19, 2, 0}*/ 531, + /*{ 19, 1, 1}*/ 65811, + /*{ 19, 0, 2}*/ 131091, + /*{ 18, 3, 0}*/ 786, + /*{ 18, 2, 1}*/ 66066, + /*{ 18, 1, 2}*/ 131346, + /*{ 18, 0, 3}*/ 196626, + /*{ 17, 4, 0}*/ 1041, + /*{ 17, 3, 1}*/ 66321, + /*{ 17, 2, 2}*/ 131601, + /*{ 17, 1, 3}*/ 196881, + /*{ 17, 0, 4}*/ 262161, + /*{ 16, 5, 0}*/ 1296, + /*{ 16, 4, 1}*/ 66576, + /*{ 16, 3, 2}*/ 131856, + /*{ 16, 2, 3}*/ 197136, + /*{ 16, 1, 4}*/ 262416, + /*{ 16, 0, 5}*/ 327696, + /*{ 15, 6, 0}*/ 1551, + /*{ 15, 5, 1}*/ 66831, + /*{ 15, 4, 2}*/ 132111, + /*{ 15, 3, 3}*/ 197391, + /*{ 15, 2, 4}*/ 262671, + /*{ 15, 1, 5}*/ 327951, + /*{ 15, 0, 6}*/ 393231, + /*{ 14, 7, 0}*/ 1806, + /*{ 14, 6, 1}*/ 67086, + /*{ 14, 5, 2}*/ 132366, + /*{ 14, 4, 3}*/ 197646, + /*{ 14, 3, 4}*/ 262926, + /*{ 14, 2, 5}*/ 328206, + /*{ 14, 1, 6}*/ 393486, + /*{ 14, 0, 7}*/ 458766, + /*{ 13, 8, 0}*/ 2061, + /*{ 13, 7, 1}*/ 67341, + /*{ 13, 6, 2}*/ 132621, + /*{ 13, 5, 3}*/ 197901, + /*{ 13, 4, 4}*/ 263181, + /*{ 13, 3, 5}*/ 328461, + /*{ 13, 2, 6}*/ 393741, + /*{ 13, 1, 7}*/ 459021, + /*{ 13, 0, 8}*/ 524301, + /*{ 12, 9, 0}*/ 2316, + /*{ 12, 8, 1}*/ 67596, + /*{ 12, 7, 2}*/ 132876, + /*{ 12, 6, 3}*/ 198156, + /*{ 12, 5, 4}*/ 263436, + /*{ 12, 4, 5}*/ 328716, + /*{ 12, 3, 6}*/ 393996, + /*{ 12, 2, 7}*/ 459276, + /*{ 12, 1, 8}*/ 524556, + /*{ 12, 0, 9}*/ 589836, + /*{ 11, 10, 0}*/ 2571, + /*{ 11, 9, 1}*/ 67851, + /*{ 11, 8, 2}*/ 133131, + /*{ 11, 7, 3}*/ 198411, + /*{ 11, 6, 4}*/ 263691, + /*{ 11, 5, 5}*/ 328971, + /*{ 11, 4, 6}*/ 394251, + /*{ 11, 3, 7}*/ 459531, + /*{ 11, 2, 8}*/ 524811, + /*{ 11, 1, 9}*/ 590091, + /*{ 11, 0, 10}*/ 655371, + /*{ 10, 11, 0}*/ 2826, + /*{ 10, 10, 1}*/ 68106, + /*{ 10, 9, 2}*/ 133386, + /*{ 10, 8, 3}*/ 198666, + /*{ 10, 7, 4}*/ 263946, + /*{ 10, 6, 5}*/ 329226, + /*{ 10, 5, 6}*/ 394506, + /*{ 10, 4, 7}*/ 459786, + /*{ 10, 3, 8}*/ 525066, + /*{ 10, 2, 9}*/ 590346, + /*{ 10, 1, 10}*/ 655626, + /*{ 10, 0, 11}*/ 720906, + /*{ 9, 12, 0}*/ 3081, + /*{ 9, 11, 1}*/ 68361, + /*{ 9, 10, 2}*/ 133641, + /*{ 9, 9, 3}*/ 198921, + /*{ 9, 8, 4}*/ 264201, + /*{ 9, 7, 5}*/ 329481, + /*{ 9, 6, 6}*/ 394761, + /*{ 9, 5, 7}*/ 460041, + /*{ 9, 4, 8}*/ 525321, + /*{ 9, 3, 9}*/ 590601, + /*{ 9, 2, 10}*/ 655881, + /*{ 9, 1, 11}*/ 721161, + /*{ 9, 0, 12}*/ 786441, + /*{ 8, 13, 0}*/ 3336, + /*{ 8, 12, 1}*/ 68616, + /*{ 8, 11, 2}*/ 133896, + /*{ 8, 10, 3}*/ 199176, + /*{ 8, 9, 4}*/ 264456, + /*{ 8, 8, 5}*/ 329736, + /*{ 8, 7, 6}*/ 395016, + /*{ 8, 6, 7}*/ 460296, + /*{ 8, 5, 8}*/ 525576, + /*{ 8, 4, 9}*/ 590856, + /*{ 8, 3, 10}*/ 656136, + /*{ 8, 2, 11}*/ 721416, + /*{ 8, 1, 12}*/ 786696, + /*{ 8, 0, 13}*/ 851976, + /*{ 7, 14, 0}*/ 3591, + /*{ 7, 13, 1}*/ 68871, + /*{ 7, 12, 2}*/ 134151, + /*{ 7, 11, 3}*/ 199431, + /*{ 7, 10, 4}*/ 264711, + /*{ 7, 9, 5}*/ 329991, + /*{ 7, 8, 6}*/ 395271, + /*{ 7, 7, 7}*/ 460551, + /*{ 7, 6, 8}*/ 525831, + /*{ 7, 5, 9}*/ 591111, + /*{ 7, 4, 10}*/ 656391, + /*{ 7, 3, 11}*/ 721671, + /*{ 7, 2, 12}*/ 786951, + /*{ 7, 1, 13}*/ 852231, + /*{ 7, 0, 14}*/ 917511, + /*{ 6, 15, 0}*/ 3846, + /*{ 6, 14, 1}*/ 69126, + /*{ 6, 13, 2}*/ 134406, + /*{ 6, 12, 3}*/ 199686, + /*{ 6, 11, 4}*/ 264966, + /*{ 6, 10, 5}*/ 330246, + /*{ 6, 9, 6}*/ 395526, + /*{ 6, 8, 7}*/ 460806, + /*{ 6, 7, 8}*/ 526086, + /*{ 6, 6, 9}*/ 591366, + /*{ 6, 5, 10}*/ 656646, + /*{ 6, 4, 11}*/ 721926, + /*{ 6, 3, 12}*/ 787206, + /*{ 6, 2, 13}*/ 852486, + /*{ 6, 1, 14}*/ 917766, + /*{ 6, 0, 15}*/ 983046, + /*{ 5, 16, 0}*/ 4101, + /*{ 5, 15, 1}*/ 69381, + /*{ 5, 14, 2}*/ 134661, + /*{ 5, 13, 3}*/ 199941, + /*{ 5, 12, 4}*/ 265221, + /*{ 5, 11, 5}*/ 330501, + /*{ 5, 10, 6}*/ 395781, + /*{ 5, 9, 7}*/ 461061, + /*{ 5, 8, 8}*/ 526341, + /*{ 5, 7, 9}*/ 591621, + /*{ 5, 6, 10}*/ 656901, + /*{ 5, 5, 11}*/ 722181, + /*{ 5, 4, 12}*/ 787461, + /*{ 5, 3, 13}*/ 852741, + /*{ 5, 2, 14}*/ 918021, + /*{ 5, 1, 15}*/ 983301, + /*{ 5, 0, 16}*/ 1048581, + /*{ 4, 17, 0}*/ 4356, + /*{ 4, 16, 1}*/ 69636, + /*{ 4, 15, 2}*/ 134916, + /*{ 4, 14, 3}*/ 200196, + /*{ 4, 13, 4}*/ 265476, + /*{ 4, 12, 5}*/ 330756, + /*{ 4, 11, 6}*/ 396036, + /*{ 4, 10, 7}*/ 461316, + /*{ 4, 9, 8}*/ 526596, + /*{ 4, 8, 9}*/ 591876, + /*{ 4, 7, 10}*/ 657156, + /*{ 4, 6, 11}*/ 722436, + /*{ 4, 5, 12}*/ 787716, + /*{ 4, 4, 13}*/ 852996, + /*{ 4, 3, 14}*/ 918276, + /*{ 4, 2, 15}*/ 983556, + /*{ 4, 1, 16}*/ 1048836, + /*{ 4, 0, 17}*/ 1114116, + /*{ 3, 18, 0}*/ 4611, + /*{ 3, 17, 1}*/ 69891, + /*{ 3, 16, 2}*/ 135171, + /*{ 3, 15, 3}*/ 200451, + /*{ 3, 14, 4}*/ 265731, + /*{ 3, 13, 5}*/ 331011, + /*{ 3, 12, 6}*/ 396291, + /*{ 3, 11, 7}*/ 461571, + /*{ 3, 10, 8}*/ 526851, + /*{ 3, 9, 9}*/ 592131, + /*{ 3, 8, 10}*/ 657411, + /*{ 3, 7, 11}*/ 722691, + /*{ 3, 6, 12}*/ 787971, + /*{ 3, 5, 13}*/ 853251, + /*{ 3, 4, 14}*/ 918531, + /*{ 3, 3, 15}*/ 983811, + /*{ 3, 2, 16}*/ 1049091, + /*{ 3, 1, 17}*/ 1114371, + /*{ 3, 0, 18}*/ 1179651, + /*{ 2, 19, 0}*/ 4866, + /*{ 2, 18, 1}*/ 70146, + /*{ 2, 17, 2}*/ 135426, + /*{ 2, 16, 3}*/ 200706, + /*{ 2, 15, 4}*/ 265986, + /*{ 2, 14, 5}*/ 331266, + /*{ 2, 13, 6}*/ 396546, + /*{ 2, 12, 7}*/ 461826, + /*{ 2, 11, 8}*/ 527106, + /*{ 2, 10, 9}*/ 592386, + /*{ 2, 9, 10}*/ 657666, + /*{ 2, 8, 11}*/ 722946, + /*{ 2, 7, 12}*/ 788226, + /*{ 2, 6, 13}*/ 853506, + /*{ 2, 5, 14}*/ 918786, + /*{ 2, 4, 15}*/ 984066, + /*{ 2, 3, 16}*/ 1049346, + /*{ 2, 2, 17}*/ 1114626, + /*{ 2, 1, 18}*/ 1179906, + /*{ 2, 0, 19}*/ 1245186, + /*{ 1, 20, 0}*/ 5121, + /*{ 1, 19, 1}*/ 70401, + /*{ 1, 18, 2}*/ 135681, + /*{ 1, 17, 3}*/ 200961, + /*{ 1, 16, 4}*/ 266241, + /*{ 1, 15, 5}*/ 331521, + /*{ 1, 14, 6}*/ 396801, + /*{ 1, 13, 7}*/ 462081, + /*{ 1, 12, 8}*/ 527361, + /*{ 1, 11, 9}*/ 592641, + /*{ 1, 10, 10}*/ 657921, + /*{ 1, 9, 11}*/ 723201, + /*{ 1, 8, 12}*/ 788481, + /*{ 1, 7, 13}*/ 853761, + /*{ 1, 6, 14}*/ 919041, + /*{ 1, 5, 15}*/ 984321, + /*{ 1, 4, 16}*/ 1049601, + /*{ 1, 3, 17}*/ 1114881, + /*{ 1, 2, 18}*/ 1180161, + /*{ 1, 1, 19}*/ 1245441, + /*{ 1, 0, 20}*/ 1310721, + /*{ 0, 21, 0}*/ 5376, + /*{ 0, 20, 1}*/ 70656, + /*{ 0, 19, 2}*/ 135936, + /*{ 0, 18, 3}*/ 201216, + /*{ 0, 17, 4}*/ 266496, + /*{ 0, 16, 5}*/ 331776, + /*{ 0, 15, 6}*/ 397056, + /*{ 0, 14, 7}*/ 462336, + /*{ 0, 13, 8}*/ 527616, + /*{ 0, 12, 9}*/ 592896, + /*{ 0, 11, 10}*/ 658176, + /*{ 0, 10, 11}*/ 723456, + /*{ 0, 9, 12}*/ 788736, + /*{ 0, 8, 13}*/ 854016, + /*{ 0, 7, 14}*/ 919296, + /*{ 0, 6, 15}*/ 984576, + /*{ 0, 5, 16}*/ 1049856, + /*{ 0, 4, 17}*/ 1115136, + /*{ 0, 3, 18}*/ 1180416, + /*{ 0, 2, 19}*/ 1245696, + /*{ 0, 1, 20}*/ 1310976, + /*{ 0, 0, 21}*/ 1376256, + } +}, +{ 22, { + /*{ 22, 0, 0}*/ 22, + /*{ 21, 1, 0}*/ 277, + /*{ 21, 0, 1}*/ 65557, + /*{ 20, 2, 0}*/ 532, + /*{ 20, 1, 1}*/ 65812, + /*{ 20, 0, 2}*/ 131092, + /*{ 19, 3, 0}*/ 787, + /*{ 19, 2, 1}*/ 66067, + /*{ 19, 1, 2}*/ 131347, + /*{ 19, 0, 3}*/ 196627, + /*{ 18, 4, 0}*/ 1042, + /*{ 18, 3, 1}*/ 66322, + /*{ 18, 2, 2}*/ 131602, + /*{ 18, 1, 3}*/ 196882, + /*{ 18, 0, 4}*/ 262162, + /*{ 17, 5, 0}*/ 1297, + /*{ 17, 4, 1}*/ 66577, + /*{ 17, 3, 2}*/ 131857, + /*{ 17, 2, 3}*/ 197137, + /*{ 17, 1, 4}*/ 262417, + /*{ 17, 0, 5}*/ 327697, + /*{ 16, 6, 0}*/ 1552, + /*{ 16, 5, 1}*/ 66832, + /*{ 16, 4, 2}*/ 132112, + /*{ 16, 3, 3}*/ 197392, + /*{ 16, 2, 4}*/ 262672, + /*{ 16, 1, 5}*/ 327952, + /*{ 16, 0, 6}*/ 393232, + /*{ 15, 7, 0}*/ 1807, + /*{ 15, 6, 1}*/ 67087, + /*{ 15, 5, 2}*/ 132367, + /*{ 15, 4, 3}*/ 197647, + /*{ 15, 3, 4}*/ 262927, + /*{ 15, 2, 5}*/ 328207, + /*{ 15, 1, 6}*/ 393487, + /*{ 15, 0, 7}*/ 458767, + /*{ 14, 8, 0}*/ 2062, + /*{ 14, 7, 1}*/ 67342, + /*{ 14, 6, 2}*/ 132622, + /*{ 14, 5, 3}*/ 197902, + /*{ 14, 4, 4}*/ 263182, + /*{ 14, 3, 5}*/ 328462, + /*{ 14, 2, 6}*/ 393742, + /*{ 14, 1, 7}*/ 459022, + /*{ 14, 0, 8}*/ 524302, + /*{ 13, 9, 0}*/ 2317, + /*{ 13, 8, 1}*/ 67597, + /*{ 13, 7, 2}*/ 132877, + /*{ 13, 6, 3}*/ 198157, + /*{ 13, 5, 4}*/ 263437, + /*{ 13, 4, 5}*/ 328717, + /*{ 13, 3, 6}*/ 393997, + /*{ 13, 2, 7}*/ 459277, + /*{ 13, 1, 8}*/ 524557, + /*{ 13, 0, 9}*/ 589837, + /*{ 12, 10, 0}*/ 2572, + /*{ 12, 9, 1}*/ 67852, + /*{ 12, 8, 2}*/ 133132, + /*{ 12, 7, 3}*/ 198412, + /*{ 12, 6, 4}*/ 263692, + /*{ 12, 5, 5}*/ 328972, + /*{ 12, 4, 6}*/ 394252, + /*{ 12, 3, 7}*/ 459532, + /*{ 12, 2, 8}*/ 524812, + /*{ 12, 1, 9}*/ 590092, + /*{ 12, 0, 10}*/ 655372, + /*{ 11, 11, 0}*/ 2827, + /*{ 11, 10, 1}*/ 68107, + /*{ 11, 9, 2}*/ 133387, + /*{ 11, 8, 3}*/ 198667, + /*{ 11, 7, 4}*/ 263947, + /*{ 11, 6, 5}*/ 329227, + /*{ 11, 5, 6}*/ 394507, + /*{ 11, 4, 7}*/ 459787, + /*{ 11, 3, 8}*/ 525067, + /*{ 11, 2, 9}*/ 590347, + /*{ 11, 1, 10}*/ 655627, + /*{ 11, 0, 11}*/ 720907, + /*{ 10, 12, 0}*/ 3082, + /*{ 10, 11, 1}*/ 68362, + /*{ 10, 10, 2}*/ 133642, + /*{ 10, 9, 3}*/ 198922, + /*{ 10, 8, 4}*/ 264202, + /*{ 10, 7, 5}*/ 329482, + /*{ 10, 6, 6}*/ 394762, + /*{ 10, 5, 7}*/ 460042, + /*{ 10, 4, 8}*/ 525322, + /*{ 10, 3, 9}*/ 590602, + /*{ 10, 2, 10}*/ 655882, + /*{ 10, 1, 11}*/ 721162, + /*{ 10, 0, 12}*/ 786442, + /*{ 9, 13, 0}*/ 3337, + /*{ 9, 12, 1}*/ 68617, + /*{ 9, 11, 2}*/ 133897, + /*{ 9, 10, 3}*/ 199177, + /*{ 9, 9, 4}*/ 264457, + /*{ 9, 8, 5}*/ 329737, + /*{ 9, 7, 6}*/ 395017, + /*{ 9, 6, 7}*/ 460297, + /*{ 9, 5, 8}*/ 525577, + /*{ 9, 4, 9}*/ 590857, + /*{ 9, 3, 10}*/ 656137, + /*{ 9, 2, 11}*/ 721417, + /*{ 9, 1, 12}*/ 786697, + /*{ 9, 0, 13}*/ 851977, + /*{ 8, 14, 0}*/ 3592, + /*{ 8, 13, 1}*/ 68872, + /*{ 8, 12, 2}*/ 134152, + /*{ 8, 11, 3}*/ 199432, + /*{ 8, 10, 4}*/ 264712, + /*{ 8, 9, 5}*/ 329992, + /*{ 8, 8, 6}*/ 395272, + /*{ 8, 7, 7}*/ 460552, + /*{ 8, 6, 8}*/ 525832, + /*{ 8, 5, 9}*/ 591112, + /*{ 8, 4, 10}*/ 656392, + /*{ 8, 3, 11}*/ 721672, + /*{ 8, 2, 12}*/ 786952, + /*{ 8, 1, 13}*/ 852232, + /*{ 8, 0, 14}*/ 917512, + /*{ 7, 15, 0}*/ 3847, + /*{ 7, 14, 1}*/ 69127, + /*{ 7, 13, 2}*/ 134407, + /*{ 7, 12, 3}*/ 199687, + /*{ 7, 11, 4}*/ 264967, + /*{ 7, 10, 5}*/ 330247, + /*{ 7, 9, 6}*/ 395527, + /*{ 7, 8, 7}*/ 460807, + /*{ 7, 7, 8}*/ 526087, + /*{ 7, 6, 9}*/ 591367, + /*{ 7, 5, 10}*/ 656647, + /*{ 7, 4, 11}*/ 721927, + /*{ 7, 3, 12}*/ 787207, + /*{ 7, 2, 13}*/ 852487, + /*{ 7, 1, 14}*/ 917767, + /*{ 7, 0, 15}*/ 983047, + /*{ 6, 16, 0}*/ 4102, + /*{ 6, 15, 1}*/ 69382, + /*{ 6, 14, 2}*/ 134662, + /*{ 6, 13, 3}*/ 199942, + /*{ 6, 12, 4}*/ 265222, + /*{ 6, 11, 5}*/ 330502, + /*{ 6, 10, 6}*/ 395782, + /*{ 6, 9, 7}*/ 461062, + /*{ 6, 8, 8}*/ 526342, + /*{ 6, 7, 9}*/ 591622, + /*{ 6, 6, 10}*/ 656902, + /*{ 6, 5, 11}*/ 722182, + /*{ 6, 4, 12}*/ 787462, + /*{ 6, 3, 13}*/ 852742, + /*{ 6, 2, 14}*/ 918022, + /*{ 6, 1, 15}*/ 983302, + /*{ 6, 0, 16}*/ 1048582, + /*{ 5, 17, 0}*/ 4357, + /*{ 5, 16, 1}*/ 69637, + /*{ 5, 15, 2}*/ 134917, + /*{ 5, 14, 3}*/ 200197, + /*{ 5, 13, 4}*/ 265477, + /*{ 5, 12, 5}*/ 330757, + /*{ 5, 11, 6}*/ 396037, + /*{ 5, 10, 7}*/ 461317, + /*{ 5, 9, 8}*/ 526597, + /*{ 5, 8, 9}*/ 591877, + /*{ 5, 7, 10}*/ 657157, + /*{ 5, 6, 11}*/ 722437, + /*{ 5, 5, 12}*/ 787717, + /*{ 5, 4, 13}*/ 852997, + /*{ 5, 3, 14}*/ 918277, + /*{ 5, 2, 15}*/ 983557, + /*{ 5, 1, 16}*/ 1048837, + /*{ 5, 0, 17}*/ 1114117, + /*{ 4, 18, 0}*/ 4612, + /*{ 4, 17, 1}*/ 69892, + /*{ 4, 16, 2}*/ 135172, + /*{ 4, 15, 3}*/ 200452, + /*{ 4, 14, 4}*/ 265732, + /*{ 4, 13, 5}*/ 331012, + /*{ 4, 12, 6}*/ 396292, + /*{ 4, 11, 7}*/ 461572, + /*{ 4, 10, 8}*/ 526852, + /*{ 4, 9, 9}*/ 592132, + /*{ 4, 8, 10}*/ 657412, + /*{ 4, 7, 11}*/ 722692, + /*{ 4, 6, 12}*/ 787972, + /*{ 4, 5, 13}*/ 853252, + /*{ 4, 4, 14}*/ 918532, + /*{ 4, 3, 15}*/ 983812, + /*{ 4, 2, 16}*/ 1049092, + /*{ 4, 1, 17}*/ 1114372, + /*{ 4, 0, 18}*/ 1179652, + /*{ 3, 19, 0}*/ 4867, + /*{ 3, 18, 1}*/ 70147, + /*{ 3, 17, 2}*/ 135427, + /*{ 3, 16, 3}*/ 200707, + /*{ 3, 15, 4}*/ 265987, + /*{ 3, 14, 5}*/ 331267, + /*{ 3, 13, 6}*/ 396547, + /*{ 3, 12, 7}*/ 461827, + /*{ 3, 11, 8}*/ 527107, + /*{ 3, 10, 9}*/ 592387, + /*{ 3, 9, 10}*/ 657667, + /*{ 3, 8, 11}*/ 722947, + /*{ 3, 7, 12}*/ 788227, + /*{ 3, 6, 13}*/ 853507, + /*{ 3, 5, 14}*/ 918787, + /*{ 3, 4, 15}*/ 984067, + /*{ 3, 3, 16}*/ 1049347, + /*{ 3, 2, 17}*/ 1114627, + /*{ 3, 1, 18}*/ 1179907, + /*{ 3, 0, 19}*/ 1245187, + /*{ 2, 20, 0}*/ 5122, + /*{ 2, 19, 1}*/ 70402, + /*{ 2, 18, 2}*/ 135682, + /*{ 2, 17, 3}*/ 200962, + /*{ 2, 16, 4}*/ 266242, + /*{ 2, 15, 5}*/ 331522, + /*{ 2, 14, 6}*/ 396802, + /*{ 2, 13, 7}*/ 462082, + /*{ 2, 12, 8}*/ 527362, + /*{ 2, 11, 9}*/ 592642, + /*{ 2, 10, 10}*/ 657922, + /*{ 2, 9, 11}*/ 723202, + /*{ 2, 8, 12}*/ 788482, + /*{ 2, 7, 13}*/ 853762, + /*{ 2, 6, 14}*/ 919042, + /*{ 2, 5, 15}*/ 984322, + /*{ 2, 4, 16}*/ 1049602, + /*{ 2, 3, 17}*/ 1114882, + /*{ 2, 2, 18}*/ 1180162, + /*{ 2, 1, 19}*/ 1245442, + /*{ 2, 0, 20}*/ 1310722, + /*{ 1, 21, 0}*/ 5377, + /*{ 1, 20, 1}*/ 70657, + /*{ 1, 19, 2}*/ 135937, + /*{ 1, 18, 3}*/ 201217, + /*{ 1, 17, 4}*/ 266497, + /*{ 1, 16, 5}*/ 331777, + /*{ 1, 15, 6}*/ 397057, + /*{ 1, 14, 7}*/ 462337, + /*{ 1, 13, 8}*/ 527617, + /*{ 1, 12, 9}*/ 592897, + /*{ 1, 11, 10}*/ 658177, + /*{ 1, 10, 11}*/ 723457, + /*{ 1, 9, 12}*/ 788737, + /*{ 1, 8, 13}*/ 854017, + /*{ 1, 7, 14}*/ 919297, + /*{ 1, 6, 15}*/ 984577, + /*{ 1, 5, 16}*/ 1049857, + /*{ 1, 4, 17}*/ 1115137, + /*{ 1, 3, 18}*/ 1180417, + /*{ 1, 2, 19}*/ 1245697, + /*{ 1, 1, 20}*/ 1310977, + /*{ 1, 0, 21}*/ 1376257, + /*{ 0, 22, 0}*/ 5632, + /*{ 0, 21, 1}*/ 70912, + /*{ 0, 20, 2}*/ 136192, + /*{ 0, 19, 3}*/ 201472, + /*{ 0, 18, 4}*/ 266752, + /*{ 0, 17, 5}*/ 332032, + /*{ 0, 16, 6}*/ 397312, + /*{ 0, 15, 7}*/ 462592, + /*{ 0, 14, 8}*/ 527872, + /*{ 0, 13, 9}*/ 593152, + /*{ 0, 12, 10}*/ 658432, + /*{ 0, 11, 11}*/ 723712, + /*{ 0, 10, 12}*/ 788992, + /*{ 0, 9, 13}*/ 854272, + /*{ 0, 8, 14}*/ 919552, + /*{ 0, 7, 15}*/ 984832, + /*{ 0, 6, 16}*/ 1050112, + /*{ 0, 5, 17}*/ 1115392, + /*{ 0, 4, 18}*/ 1180672, + /*{ 0, 3, 19}*/ 1245952, + /*{ 0, 2, 20}*/ 1311232, + /*{ 0, 1, 21}*/ 1376512, + /*{ 0, 0, 22}*/ 1441792, + } +}, +{ 23, { + /*{ 23, 0, 0}*/ 23, + /*{ 22, 1, 0}*/ 278, + /*{ 22, 0, 1}*/ 65558, + /*{ 21, 2, 0}*/ 533, + /*{ 21, 1, 1}*/ 65813, + /*{ 21, 0, 2}*/ 131093, + /*{ 20, 3, 0}*/ 788, + /*{ 20, 2, 1}*/ 66068, + /*{ 20, 1, 2}*/ 131348, + /*{ 20, 0, 3}*/ 196628, + /*{ 19, 4, 0}*/ 1043, + /*{ 19, 3, 1}*/ 66323, + /*{ 19, 2, 2}*/ 131603, + /*{ 19, 1, 3}*/ 196883, + /*{ 19, 0, 4}*/ 262163, + /*{ 18, 5, 0}*/ 1298, + /*{ 18, 4, 1}*/ 66578, + /*{ 18, 3, 2}*/ 131858, + /*{ 18, 2, 3}*/ 197138, + /*{ 18, 1, 4}*/ 262418, + /*{ 18, 0, 5}*/ 327698, + /*{ 17, 6, 0}*/ 1553, + /*{ 17, 5, 1}*/ 66833, + /*{ 17, 4, 2}*/ 132113, + /*{ 17, 3, 3}*/ 197393, + /*{ 17, 2, 4}*/ 262673, + /*{ 17, 1, 5}*/ 327953, + /*{ 17, 0, 6}*/ 393233, + /*{ 16, 7, 0}*/ 1808, + /*{ 16, 6, 1}*/ 67088, + /*{ 16, 5, 2}*/ 132368, + /*{ 16, 4, 3}*/ 197648, + /*{ 16, 3, 4}*/ 262928, + /*{ 16, 2, 5}*/ 328208, + /*{ 16, 1, 6}*/ 393488, + /*{ 16, 0, 7}*/ 458768, + /*{ 15, 8, 0}*/ 2063, + /*{ 15, 7, 1}*/ 67343, + /*{ 15, 6, 2}*/ 132623, + /*{ 15, 5, 3}*/ 197903, + /*{ 15, 4, 4}*/ 263183, + /*{ 15, 3, 5}*/ 328463, + /*{ 15, 2, 6}*/ 393743, + /*{ 15, 1, 7}*/ 459023, + /*{ 15, 0, 8}*/ 524303, + /*{ 14, 9, 0}*/ 2318, + /*{ 14, 8, 1}*/ 67598, + /*{ 14, 7, 2}*/ 132878, + /*{ 14, 6, 3}*/ 198158, + /*{ 14, 5, 4}*/ 263438, + /*{ 14, 4, 5}*/ 328718, + /*{ 14, 3, 6}*/ 393998, + /*{ 14, 2, 7}*/ 459278, + /*{ 14, 1, 8}*/ 524558, + /*{ 14, 0, 9}*/ 589838, + /*{ 13, 10, 0}*/ 2573, + /*{ 13, 9, 1}*/ 67853, + /*{ 13, 8, 2}*/ 133133, + /*{ 13, 7, 3}*/ 198413, + /*{ 13, 6, 4}*/ 263693, + /*{ 13, 5, 5}*/ 328973, + /*{ 13, 4, 6}*/ 394253, + /*{ 13, 3, 7}*/ 459533, + /*{ 13, 2, 8}*/ 524813, + /*{ 13, 1, 9}*/ 590093, + /*{ 13, 0, 10}*/ 655373, + /*{ 12, 11, 0}*/ 2828, + /*{ 12, 10, 1}*/ 68108, + /*{ 12, 9, 2}*/ 133388, + /*{ 12, 8, 3}*/ 198668, + /*{ 12, 7, 4}*/ 263948, + /*{ 12, 6, 5}*/ 329228, + /*{ 12, 5, 6}*/ 394508, + /*{ 12, 4, 7}*/ 459788, + /*{ 12, 3, 8}*/ 525068, + /*{ 12, 2, 9}*/ 590348, + /*{ 12, 1, 10}*/ 655628, + /*{ 12, 0, 11}*/ 720908, + /*{ 11, 12, 0}*/ 3083, + /*{ 11, 11, 1}*/ 68363, + /*{ 11, 10, 2}*/ 133643, + /*{ 11, 9, 3}*/ 198923, + /*{ 11, 8, 4}*/ 264203, + /*{ 11, 7, 5}*/ 329483, + /*{ 11, 6, 6}*/ 394763, + /*{ 11, 5, 7}*/ 460043, + /*{ 11, 4, 8}*/ 525323, + /*{ 11, 3, 9}*/ 590603, + /*{ 11, 2, 10}*/ 655883, + /*{ 11, 1, 11}*/ 721163, + /*{ 11, 0, 12}*/ 786443, + /*{ 10, 13, 0}*/ 3338, + /*{ 10, 12, 1}*/ 68618, + /*{ 10, 11, 2}*/ 133898, + /*{ 10, 10, 3}*/ 199178, + /*{ 10, 9, 4}*/ 264458, + /*{ 10, 8, 5}*/ 329738, + /*{ 10, 7, 6}*/ 395018, + /*{ 10, 6, 7}*/ 460298, + /*{ 10, 5, 8}*/ 525578, + /*{ 10, 4, 9}*/ 590858, + /*{ 10, 3, 10}*/ 656138, + /*{ 10, 2, 11}*/ 721418, + /*{ 10, 1, 12}*/ 786698, + /*{ 10, 0, 13}*/ 851978, + /*{ 9, 14, 0}*/ 3593, + /*{ 9, 13, 1}*/ 68873, + /*{ 9, 12, 2}*/ 134153, + /*{ 9, 11, 3}*/ 199433, + /*{ 9, 10, 4}*/ 264713, + /*{ 9, 9, 5}*/ 329993, + /*{ 9, 8, 6}*/ 395273, + /*{ 9, 7, 7}*/ 460553, + /*{ 9, 6, 8}*/ 525833, + /*{ 9, 5, 9}*/ 591113, + /*{ 9, 4, 10}*/ 656393, + /*{ 9, 3, 11}*/ 721673, + /*{ 9, 2, 12}*/ 786953, + /*{ 9, 1, 13}*/ 852233, + /*{ 9, 0, 14}*/ 917513, + /*{ 8, 15, 0}*/ 3848, + /*{ 8, 14, 1}*/ 69128, + /*{ 8, 13, 2}*/ 134408, + /*{ 8, 12, 3}*/ 199688, + /*{ 8, 11, 4}*/ 264968, + /*{ 8, 10, 5}*/ 330248, + /*{ 8, 9, 6}*/ 395528, + /*{ 8, 8, 7}*/ 460808, + /*{ 8, 7, 8}*/ 526088, + /*{ 8, 6, 9}*/ 591368, + /*{ 8, 5, 10}*/ 656648, + /*{ 8, 4, 11}*/ 721928, + /*{ 8, 3, 12}*/ 787208, + /*{ 8, 2, 13}*/ 852488, + /*{ 8, 1, 14}*/ 917768, + /*{ 8, 0, 15}*/ 983048, + /*{ 7, 16, 0}*/ 4103, + /*{ 7, 15, 1}*/ 69383, + /*{ 7, 14, 2}*/ 134663, + /*{ 7, 13, 3}*/ 199943, + /*{ 7, 12, 4}*/ 265223, + /*{ 7, 11, 5}*/ 330503, + /*{ 7, 10, 6}*/ 395783, + /*{ 7, 9, 7}*/ 461063, + /*{ 7, 8, 8}*/ 526343, + /*{ 7, 7, 9}*/ 591623, + /*{ 7, 6, 10}*/ 656903, + /*{ 7, 5, 11}*/ 722183, + /*{ 7, 4, 12}*/ 787463, + /*{ 7, 3, 13}*/ 852743, + /*{ 7, 2, 14}*/ 918023, + /*{ 7, 1, 15}*/ 983303, + /*{ 7, 0, 16}*/ 1048583, + /*{ 6, 17, 0}*/ 4358, + /*{ 6, 16, 1}*/ 69638, + /*{ 6, 15, 2}*/ 134918, + /*{ 6, 14, 3}*/ 200198, + /*{ 6, 13, 4}*/ 265478, + /*{ 6, 12, 5}*/ 330758, + /*{ 6, 11, 6}*/ 396038, + /*{ 6, 10, 7}*/ 461318, + /*{ 6, 9, 8}*/ 526598, + /*{ 6, 8, 9}*/ 591878, + /*{ 6, 7, 10}*/ 657158, + /*{ 6, 6, 11}*/ 722438, + /*{ 6, 5, 12}*/ 787718, + /*{ 6, 4, 13}*/ 852998, + /*{ 6, 3, 14}*/ 918278, + /*{ 6, 2, 15}*/ 983558, + /*{ 6, 1, 16}*/ 1048838, + /*{ 6, 0, 17}*/ 1114118, + /*{ 5, 18, 0}*/ 4613, + /*{ 5, 17, 1}*/ 69893, + /*{ 5, 16, 2}*/ 135173, + /*{ 5, 15, 3}*/ 200453, + /*{ 5, 14, 4}*/ 265733, + /*{ 5, 13, 5}*/ 331013, + /*{ 5, 12, 6}*/ 396293, + /*{ 5, 11, 7}*/ 461573, + /*{ 5, 10, 8}*/ 526853, + /*{ 5, 9, 9}*/ 592133, + /*{ 5, 8, 10}*/ 657413, + /*{ 5, 7, 11}*/ 722693, + /*{ 5, 6, 12}*/ 787973, + /*{ 5, 5, 13}*/ 853253, + /*{ 5, 4, 14}*/ 918533, + /*{ 5, 3, 15}*/ 983813, + /*{ 5, 2, 16}*/ 1049093, + /*{ 5, 1, 17}*/ 1114373, + /*{ 5, 0, 18}*/ 1179653, + /*{ 4, 19, 0}*/ 4868, + /*{ 4, 18, 1}*/ 70148, + /*{ 4, 17, 2}*/ 135428, + /*{ 4, 16, 3}*/ 200708, + /*{ 4, 15, 4}*/ 265988, + /*{ 4, 14, 5}*/ 331268, + /*{ 4, 13, 6}*/ 396548, + /*{ 4, 12, 7}*/ 461828, + /*{ 4, 11, 8}*/ 527108, + /*{ 4, 10, 9}*/ 592388, + /*{ 4, 9, 10}*/ 657668, + /*{ 4, 8, 11}*/ 722948, + /*{ 4, 7, 12}*/ 788228, + /*{ 4, 6, 13}*/ 853508, + /*{ 4, 5, 14}*/ 918788, + /*{ 4, 4, 15}*/ 984068, + /*{ 4, 3, 16}*/ 1049348, + /*{ 4, 2, 17}*/ 1114628, + /*{ 4, 1, 18}*/ 1179908, + /*{ 4, 0, 19}*/ 1245188, + /*{ 3, 20, 0}*/ 5123, + /*{ 3, 19, 1}*/ 70403, + /*{ 3, 18, 2}*/ 135683, + /*{ 3, 17, 3}*/ 200963, + /*{ 3, 16, 4}*/ 266243, + /*{ 3, 15, 5}*/ 331523, + /*{ 3, 14, 6}*/ 396803, + /*{ 3, 13, 7}*/ 462083, + /*{ 3, 12, 8}*/ 527363, + /*{ 3, 11, 9}*/ 592643, + /*{ 3, 10, 10}*/ 657923, + /*{ 3, 9, 11}*/ 723203, + /*{ 3, 8, 12}*/ 788483, + /*{ 3, 7, 13}*/ 853763, + /*{ 3, 6, 14}*/ 919043, + /*{ 3, 5, 15}*/ 984323, + /*{ 3, 4, 16}*/ 1049603, + /*{ 3, 3, 17}*/ 1114883, + /*{ 3, 2, 18}*/ 1180163, + /*{ 3, 1, 19}*/ 1245443, + /*{ 3, 0, 20}*/ 1310723, + /*{ 2, 21, 0}*/ 5378, + /*{ 2, 20, 1}*/ 70658, + /*{ 2, 19, 2}*/ 135938, + /*{ 2, 18, 3}*/ 201218, + /*{ 2, 17, 4}*/ 266498, + /*{ 2, 16, 5}*/ 331778, + /*{ 2, 15, 6}*/ 397058, + /*{ 2, 14, 7}*/ 462338, + /*{ 2, 13, 8}*/ 527618, + /*{ 2, 12, 9}*/ 592898, + /*{ 2, 11, 10}*/ 658178, + /*{ 2, 10, 11}*/ 723458, + /*{ 2, 9, 12}*/ 788738, + /*{ 2, 8, 13}*/ 854018, + /*{ 2, 7, 14}*/ 919298, + /*{ 2, 6, 15}*/ 984578, + /*{ 2, 5, 16}*/ 1049858, + /*{ 2, 4, 17}*/ 1115138, + /*{ 2, 3, 18}*/ 1180418, + /*{ 2, 2, 19}*/ 1245698, + /*{ 2, 1, 20}*/ 1310978, + /*{ 2, 0, 21}*/ 1376258, + /*{ 1, 22, 0}*/ 5633, + /*{ 1, 21, 1}*/ 70913, + /*{ 1, 20, 2}*/ 136193, + /*{ 1, 19, 3}*/ 201473, + /*{ 1, 18, 4}*/ 266753, + /*{ 1, 17, 5}*/ 332033, + /*{ 1, 16, 6}*/ 397313, + /*{ 1, 15, 7}*/ 462593, + /*{ 1, 14, 8}*/ 527873, + /*{ 1, 13, 9}*/ 593153, + /*{ 1, 12, 10}*/ 658433, + /*{ 1, 11, 11}*/ 723713, + /*{ 1, 10, 12}*/ 788993, + /*{ 1, 9, 13}*/ 854273, + /*{ 1, 8, 14}*/ 919553, + /*{ 1, 7, 15}*/ 984833, + /*{ 1, 6, 16}*/ 1050113, + /*{ 1, 5, 17}*/ 1115393, + /*{ 1, 4, 18}*/ 1180673, + /*{ 1, 3, 19}*/ 1245953, + /*{ 1, 2, 20}*/ 1311233, + /*{ 1, 1, 21}*/ 1376513, + /*{ 1, 0, 22}*/ 1441793, + /*{ 0, 23, 0}*/ 5888, + /*{ 0, 22, 1}*/ 71168, + /*{ 0, 21, 2}*/ 136448, + /*{ 0, 20, 3}*/ 201728, + /*{ 0, 19, 4}*/ 267008, + /*{ 0, 18, 5}*/ 332288, + /*{ 0, 17, 6}*/ 397568, + /*{ 0, 16, 7}*/ 462848, + /*{ 0, 15, 8}*/ 528128, + /*{ 0, 14, 9}*/ 593408, + /*{ 0, 13, 10}*/ 658688, + /*{ 0, 12, 11}*/ 723968, + /*{ 0, 11, 12}*/ 789248, + /*{ 0, 10, 13}*/ 854528, + /*{ 0, 9, 14}*/ 919808, + /*{ 0, 8, 15}*/ 985088, + /*{ 0, 7, 16}*/ 1050368, + /*{ 0, 6, 17}*/ 1115648, + /*{ 0, 5, 18}*/ 1180928, + /*{ 0, 4, 19}*/ 1246208, + /*{ 0, 3, 20}*/ 1311488, + /*{ 0, 2, 21}*/ 1376768, + /*{ 0, 1, 22}*/ 1442048, + /*{ 0, 0, 23}*/ 1507328, + } +}, +{ 24, { + /*{ 24, 0, 0}*/ 24, + /*{ 23, 1, 0}*/ 279, + /*{ 23, 0, 1}*/ 65559, + /*{ 22, 2, 0}*/ 534, + /*{ 22, 1, 1}*/ 65814, + /*{ 22, 0, 2}*/ 131094, + /*{ 21, 3, 0}*/ 789, + /*{ 21, 2, 1}*/ 66069, + /*{ 21, 1, 2}*/ 131349, + /*{ 21, 0, 3}*/ 196629, + /*{ 20, 4, 0}*/ 1044, + /*{ 20, 3, 1}*/ 66324, + /*{ 20, 2, 2}*/ 131604, + /*{ 20, 1, 3}*/ 196884, + /*{ 20, 0, 4}*/ 262164, + /*{ 19, 5, 0}*/ 1299, + /*{ 19, 4, 1}*/ 66579, + /*{ 19, 3, 2}*/ 131859, + /*{ 19, 2, 3}*/ 197139, + /*{ 19, 1, 4}*/ 262419, + /*{ 19, 0, 5}*/ 327699, + /*{ 18, 6, 0}*/ 1554, + /*{ 18, 5, 1}*/ 66834, + /*{ 18, 4, 2}*/ 132114, + /*{ 18, 3, 3}*/ 197394, + /*{ 18, 2, 4}*/ 262674, + /*{ 18, 1, 5}*/ 327954, + /*{ 18, 0, 6}*/ 393234, + /*{ 17, 7, 0}*/ 1809, + /*{ 17, 6, 1}*/ 67089, + /*{ 17, 5, 2}*/ 132369, + /*{ 17, 4, 3}*/ 197649, + /*{ 17, 3, 4}*/ 262929, + /*{ 17, 2, 5}*/ 328209, + /*{ 17, 1, 6}*/ 393489, + /*{ 17, 0, 7}*/ 458769, + /*{ 16, 8, 0}*/ 2064, + /*{ 16, 7, 1}*/ 67344, + /*{ 16, 6, 2}*/ 132624, + /*{ 16, 5, 3}*/ 197904, + /*{ 16, 4, 4}*/ 263184, + /*{ 16, 3, 5}*/ 328464, + /*{ 16, 2, 6}*/ 393744, + /*{ 16, 1, 7}*/ 459024, + /*{ 16, 0, 8}*/ 524304, + /*{ 15, 9, 0}*/ 2319, + /*{ 15, 8, 1}*/ 67599, + /*{ 15, 7, 2}*/ 132879, + /*{ 15, 6, 3}*/ 198159, + /*{ 15, 5, 4}*/ 263439, + /*{ 15, 4, 5}*/ 328719, + /*{ 15, 3, 6}*/ 393999, + /*{ 15, 2, 7}*/ 459279, + /*{ 15, 1, 8}*/ 524559, + /*{ 15, 0, 9}*/ 589839, + /*{ 14, 10, 0}*/ 2574, + /*{ 14, 9, 1}*/ 67854, + /*{ 14, 8, 2}*/ 133134, + /*{ 14, 7, 3}*/ 198414, + /*{ 14, 6, 4}*/ 263694, + /*{ 14, 5, 5}*/ 328974, + /*{ 14, 4, 6}*/ 394254, + /*{ 14, 3, 7}*/ 459534, + /*{ 14, 2, 8}*/ 524814, + /*{ 14, 1, 9}*/ 590094, + /*{ 14, 0, 10}*/ 655374, + /*{ 13, 11, 0}*/ 2829, + /*{ 13, 10, 1}*/ 68109, + /*{ 13, 9, 2}*/ 133389, + /*{ 13, 8, 3}*/ 198669, + /*{ 13, 7, 4}*/ 263949, + /*{ 13, 6, 5}*/ 329229, + /*{ 13, 5, 6}*/ 394509, + /*{ 13, 4, 7}*/ 459789, + /*{ 13, 3, 8}*/ 525069, + /*{ 13, 2, 9}*/ 590349, + /*{ 13, 1, 10}*/ 655629, + /*{ 13, 0, 11}*/ 720909, + /*{ 12, 12, 0}*/ 3084, + /*{ 12, 11, 1}*/ 68364, + /*{ 12, 10, 2}*/ 133644, + /*{ 12, 9, 3}*/ 198924, + /*{ 12, 8, 4}*/ 264204, + /*{ 12, 7, 5}*/ 329484, + /*{ 12, 6, 6}*/ 394764, + /*{ 12, 5, 7}*/ 460044, + /*{ 12, 4, 8}*/ 525324, + /*{ 12, 3, 9}*/ 590604, + /*{ 12, 2, 10}*/ 655884, + /*{ 12, 1, 11}*/ 721164, + /*{ 12, 0, 12}*/ 786444, + /*{ 11, 13, 0}*/ 3339, + /*{ 11, 12, 1}*/ 68619, + /*{ 11, 11, 2}*/ 133899, + /*{ 11, 10, 3}*/ 199179, + /*{ 11, 9, 4}*/ 264459, + /*{ 11, 8, 5}*/ 329739, + /*{ 11, 7, 6}*/ 395019, + /*{ 11, 6, 7}*/ 460299, + /*{ 11, 5, 8}*/ 525579, + /*{ 11, 4, 9}*/ 590859, + /*{ 11, 3, 10}*/ 656139, + /*{ 11, 2, 11}*/ 721419, + /*{ 11, 1, 12}*/ 786699, + /*{ 11, 0, 13}*/ 851979, + /*{ 10, 14, 0}*/ 3594, + /*{ 10, 13, 1}*/ 68874, + /*{ 10, 12, 2}*/ 134154, + /*{ 10, 11, 3}*/ 199434, + /*{ 10, 10, 4}*/ 264714, + /*{ 10, 9, 5}*/ 329994, + /*{ 10, 8, 6}*/ 395274, + /*{ 10, 7, 7}*/ 460554, + /*{ 10, 6, 8}*/ 525834, + /*{ 10, 5, 9}*/ 591114, + /*{ 10, 4, 10}*/ 656394, + /*{ 10, 3, 11}*/ 721674, + /*{ 10, 2, 12}*/ 786954, + /*{ 10, 1, 13}*/ 852234, + /*{ 10, 0, 14}*/ 917514, + /*{ 9, 15, 0}*/ 3849, + /*{ 9, 14, 1}*/ 69129, + /*{ 9, 13, 2}*/ 134409, + /*{ 9, 12, 3}*/ 199689, + /*{ 9, 11, 4}*/ 264969, + /*{ 9, 10, 5}*/ 330249, + /*{ 9, 9, 6}*/ 395529, + /*{ 9, 8, 7}*/ 460809, + /*{ 9, 7, 8}*/ 526089, + /*{ 9, 6, 9}*/ 591369, + /*{ 9, 5, 10}*/ 656649, + /*{ 9, 4, 11}*/ 721929, + /*{ 9, 3, 12}*/ 787209, + /*{ 9, 2, 13}*/ 852489, + /*{ 9, 1, 14}*/ 917769, + /*{ 9, 0, 15}*/ 983049, + /*{ 8, 16, 0}*/ 4104, + /*{ 8, 15, 1}*/ 69384, + /*{ 8, 14, 2}*/ 134664, + /*{ 8, 13, 3}*/ 199944, + /*{ 8, 12, 4}*/ 265224, + /*{ 8, 11, 5}*/ 330504, + /*{ 8, 10, 6}*/ 395784, + /*{ 8, 9, 7}*/ 461064, + /*{ 8, 8, 8}*/ 526344, + /*{ 8, 7, 9}*/ 591624, + /*{ 8, 6, 10}*/ 656904, + /*{ 8, 5, 11}*/ 722184, + /*{ 8, 4, 12}*/ 787464, + /*{ 8, 3, 13}*/ 852744, + /*{ 8, 2, 14}*/ 918024, + /*{ 8, 1, 15}*/ 983304, + /*{ 8, 0, 16}*/ 1048584, + /*{ 7, 17, 0}*/ 4359, + /*{ 7, 16, 1}*/ 69639, + /*{ 7, 15, 2}*/ 134919, + /*{ 7, 14, 3}*/ 200199, + /*{ 7, 13, 4}*/ 265479, + /*{ 7, 12, 5}*/ 330759, + /*{ 7, 11, 6}*/ 396039, + /*{ 7, 10, 7}*/ 461319, + /*{ 7, 9, 8}*/ 526599, + /*{ 7, 8, 9}*/ 591879, + /*{ 7, 7, 10}*/ 657159, + /*{ 7, 6, 11}*/ 722439, + /*{ 7, 5, 12}*/ 787719, + /*{ 7, 4, 13}*/ 852999, + /*{ 7, 3, 14}*/ 918279, + /*{ 7, 2, 15}*/ 983559, + /*{ 7, 1, 16}*/ 1048839, + /*{ 7, 0, 17}*/ 1114119, + /*{ 6, 18, 0}*/ 4614, + /*{ 6, 17, 1}*/ 69894, + /*{ 6, 16, 2}*/ 135174, + /*{ 6, 15, 3}*/ 200454, + /*{ 6, 14, 4}*/ 265734, + /*{ 6, 13, 5}*/ 331014, + /*{ 6, 12, 6}*/ 396294, + /*{ 6, 11, 7}*/ 461574, + /*{ 6, 10, 8}*/ 526854, + /*{ 6, 9, 9}*/ 592134, + /*{ 6, 8, 10}*/ 657414, + /*{ 6, 7, 11}*/ 722694, + /*{ 6, 6, 12}*/ 787974, + /*{ 6, 5, 13}*/ 853254, + /*{ 6, 4, 14}*/ 918534, + /*{ 6, 3, 15}*/ 983814, + /*{ 6, 2, 16}*/ 1049094, + /*{ 6, 1, 17}*/ 1114374, + /*{ 6, 0, 18}*/ 1179654, + /*{ 5, 19, 0}*/ 4869, + /*{ 5, 18, 1}*/ 70149, + /*{ 5, 17, 2}*/ 135429, + /*{ 5, 16, 3}*/ 200709, + /*{ 5, 15, 4}*/ 265989, + /*{ 5, 14, 5}*/ 331269, + /*{ 5, 13, 6}*/ 396549, + /*{ 5, 12, 7}*/ 461829, + /*{ 5, 11, 8}*/ 527109, + /*{ 5, 10, 9}*/ 592389, + /*{ 5, 9, 10}*/ 657669, + /*{ 5, 8, 11}*/ 722949, + /*{ 5, 7, 12}*/ 788229, + /*{ 5, 6, 13}*/ 853509, + /*{ 5, 5, 14}*/ 918789, + /*{ 5, 4, 15}*/ 984069, + /*{ 5, 3, 16}*/ 1049349, + /*{ 5, 2, 17}*/ 1114629, + /*{ 5, 1, 18}*/ 1179909, + /*{ 5, 0, 19}*/ 1245189, + /*{ 4, 20, 0}*/ 5124, + /*{ 4, 19, 1}*/ 70404, + /*{ 4, 18, 2}*/ 135684, + /*{ 4, 17, 3}*/ 200964, + /*{ 4, 16, 4}*/ 266244, + /*{ 4, 15, 5}*/ 331524, + /*{ 4, 14, 6}*/ 396804, + /*{ 4, 13, 7}*/ 462084, + /*{ 4, 12, 8}*/ 527364, + /*{ 4, 11, 9}*/ 592644, + /*{ 4, 10, 10}*/ 657924, + /*{ 4, 9, 11}*/ 723204, + /*{ 4, 8, 12}*/ 788484, + /*{ 4, 7, 13}*/ 853764, + /*{ 4, 6, 14}*/ 919044, + /*{ 4, 5, 15}*/ 984324, + /*{ 4, 4, 16}*/ 1049604, + /*{ 4, 3, 17}*/ 1114884, + /*{ 4, 2, 18}*/ 1180164, + /*{ 4, 1, 19}*/ 1245444, + /*{ 4, 0, 20}*/ 1310724, + /*{ 3, 21, 0}*/ 5379, + /*{ 3, 20, 1}*/ 70659, + /*{ 3, 19, 2}*/ 135939, + /*{ 3, 18, 3}*/ 201219, + /*{ 3, 17, 4}*/ 266499, + /*{ 3, 16, 5}*/ 331779, + /*{ 3, 15, 6}*/ 397059, + /*{ 3, 14, 7}*/ 462339, + /*{ 3, 13, 8}*/ 527619, + /*{ 3, 12, 9}*/ 592899, + /*{ 3, 11, 10}*/ 658179, + /*{ 3, 10, 11}*/ 723459, + /*{ 3, 9, 12}*/ 788739, + /*{ 3, 8, 13}*/ 854019, + /*{ 3, 7, 14}*/ 919299, + /*{ 3, 6, 15}*/ 984579, + /*{ 3, 5, 16}*/ 1049859, + /*{ 3, 4, 17}*/ 1115139, + /*{ 3, 3, 18}*/ 1180419, + /*{ 3, 2, 19}*/ 1245699, + /*{ 3, 1, 20}*/ 1310979, + /*{ 3, 0, 21}*/ 1376259, + /*{ 2, 22, 0}*/ 5634, + /*{ 2, 21, 1}*/ 70914, + /*{ 2, 20, 2}*/ 136194, + /*{ 2, 19, 3}*/ 201474, + /*{ 2, 18, 4}*/ 266754, + /*{ 2, 17, 5}*/ 332034, + /*{ 2, 16, 6}*/ 397314, + /*{ 2, 15, 7}*/ 462594, + /*{ 2, 14, 8}*/ 527874, + /*{ 2, 13, 9}*/ 593154, + /*{ 2, 12, 10}*/ 658434, + /*{ 2, 11, 11}*/ 723714, + /*{ 2, 10, 12}*/ 788994, + /*{ 2, 9, 13}*/ 854274, + /*{ 2, 8, 14}*/ 919554, + /*{ 2, 7, 15}*/ 984834, + /*{ 2, 6, 16}*/ 1050114, + /*{ 2, 5, 17}*/ 1115394, + /*{ 2, 4, 18}*/ 1180674, + /*{ 2, 3, 19}*/ 1245954, + /*{ 2, 2, 20}*/ 1311234, + /*{ 2, 1, 21}*/ 1376514, + /*{ 2, 0, 22}*/ 1441794, + /*{ 1, 23, 0}*/ 5889, + /*{ 1, 22, 1}*/ 71169, + /*{ 1, 21, 2}*/ 136449, + /*{ 1, 20, 3}*/ 201729, + /*{ 1, 19, 4}*/ 267009, + /*{ 1, 18, 5}*/ 332289, + /*{ 1, 17, 6}*/ 397569, + /*{ 1, 16, 7}*/ 462849, + /*{ 1, 15, 8}*/ 528129, + /*{ 1, 14, 9}*/ 593409, + /*{ 1, 13, 10}*/ 658689, + /*{ 1, 12, 11}*/ 723969, + /*{ 1, 11, 12}*/ 789249, + /*{ 1, 10, 13}*/ 854529, + /*{ 1, 9, 14}*/ 919809, + /*{ 1, 8, 15}*/ 985089, + /*{ 1, 7, 16}*/ 1050369, + /*{ 1, 6, 17}*/ 1115649, + /*{ 1, 5, 18}*/ 1180929, + /*{ 1, 4, 19}*/ 1246209, + /*{ 1, 3, 20}*/ 1311489, + /*{ 1, 2, 21}*/ 1376769, + /*{ 1, 1, 22}*/ 1442049, + /*{ 1, 0, 23}*/ 1507329, + /*{ 0, 24, 0}*/ 6144, + /*{ 0, 23, 1}*/ 71424, + /*{ 0, 22, 2}*/ 136704, + /*{ 0, 21, 3}*/ 201984, + /*{ 0, 20, 4}*/ 267264, + /*{ 0, 19, 5}*/ 332544, + /*{ 0, 18, 6}*/ 397824, + /*{ 0, 17, 7}*/ 463104, + /*{ 0, 16, 8}*/ 528384, + /*{ 0, 15, 9}*/ 593664, + /*{ 0, 14, 10}*/ 658944, + /*{ 0, 13, 11}*/ 724224, + /*{ 0, 12, 12}*/ 789504, + /*{ 0, 11, 13}*/ 854784, + /*{ 0, 10, 14}*/ 920064, + /*{ 0, 9, 15}*/ 985344, + /*{ 0, 8, 16}*/ 1050624, + /*{ 0, 7, 17}*/ 1115904, + /*{ 0, 6, 18}*/ 1181184, + /*{ 0, 5, 19}*/ 1246464, + /*{ 0, 4, 20}*/ 1311744, + /*{ 0, 3, 21}*/ 1377024, + /*{ 0, 2, 22}*/ 1442304, + /*{ 0, 1, 23}*/ 1507584, + /*{ 0, 0, 24}*/ 1572864, + } +}, +}; diff --git a/generator/ostei/OSTEIDeriv1_Writer.cpp b/generator/ostei/OSTEIDeriv1_Writer.cpp index a913aa7..9797979 100644 --- a/generator/ostei/OSTEIDeriv1_Writer.cpp +++ b/generator/ostei/OSTEIDeriv1_Writer.cpp @@ -713,6 +713,7 @@ void OSTEIDeriv1_Writer::Write_Full_(void) const os_ << indent3 << "for(i = istart; i < iend; ++i)\n"; os_ << indent3 << "{\n"; os_ << indent4 << "SIMINT_DBLTYPE bra_screen_max; // only used if check_screen\n\n"; + os_ << indent4 << "bra_screen_max = SIMINT_DBLSET1(0.);\n"; os_ << indent4 << "if(check_screen)\n"; os_ << indent4 << "{\n"; diff --git a/generator/ostei/OSTEI_Writer.cpp b/generator/ostei/OSTEI_Writer.cpp index fbf0907..7225218 100644 --- a/generator/ostei/OSTEI_Writer.cpp +++ b/generator/ostei/OSTEI_Writer.cpp @@ -499,6 +499,7 @@ void OSTEI_Writer::Write_Full_(void) const os_ << indent3 << "for(i = istart; i < iend; ++i)\n"; os_ << indent3 << "{\n"; os_ << indent4 << "SIMINT_DBLTYPE bra_screen_max; // only used if check_screen\n\n"; + os_ << indent4 << "bra_screen_max = SIMINT_DBLSET1(0.);\n"; os_ << indent4 << "if(check_screen)\n"; os_ << indent4 << "{\n"; @@ -547,11 +548,12 @@ void OSTEI_Writer::Write_Full_(void) const WriteShellOffsets(); - os_ << indent5 << "// Do we have to compute this vector (or has it been screened out)?\n"; - os_ << indent5 << "// (not_screened != 0 means we have to do this vector)\n"; - os_ << indent5 << "SIMINT_DBLTYPE prim_screen_res = SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j));\n"; + os_ << indent5 << "SIMINT_DBLTYPE prim_screen_res = SIMINT_DBLSET1(0.);\n"; os_ << indent5 << "if(check_screen)\n"; os_ << indent5 << "{\n"; + os_ << indent6 << "// Do we have to compute this vector (or has it been screened out)?\n"; + os_ << indent6 << "// (not_screened != 0 means we have to do this vector)\n"; + os_ << indent6 << "prim_screen_res = SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j));\n"; os_ << indent6 << "const double vmax = vector_max(prim_screen_res);\n"; os_ << indent6 << "if(vmax < screen_tol)\n"; os_ << indent6 << "{\n"; diff --git a/skel/ostei_s_s_s_s.c b/skel/ostei_s_s_s_s.c index 5f1cbdf..1c763e0 100644 --- a/skel/ostei_s_s_s_s.c +++ b/skel/ostei_s_s_s_s.c @@ -79,7 +79,7 @@ int ostei_s_s_s_s(struct simint_multi_shellpair const P, if (j_vec > n_info_vector) { n_info_vector = j_vec; - if (!offset_info) free(offset_info); + free(offset_info); offset_info = (int*) malloc(sizeof(int) * (SIMINT_SIMD_LEN + 1 + TopAM_size) * n_info_vector); } // Calculate all the shell offsets in the j-loop @@ -125,6 +125,7 @@ int ostei_s_s_s_s(struct simint_multi_shellpair const P, for(i = istart; i < iend; ++i) { SIMINT_DBLTYPE bra_screen_max; // only used if check_screen + bra_screen_max = SIMINT_DBLSET1(0.); if(check_screen) { @@ -196,9 +197,15 @@ int ostei_s_s_s_s(struct simint_multi_shellpair const P, // Do we have to compute this vector (or has it been screened out)? // (not_screened != 0 means we have to do this vector) - SIMINT_DBLTYPE prim_screen_res = SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)); + SIMINT_DBLTYPE prim_screen_res = SIMINT_DBLSET1(0.); if(check_screen) { + if(jend -j < SIMINT_SIMD_LEN ){ + //initialize remainders when vlen < SIMD_LEN + for(n = jend; n < j+SIMINT_SIMD_LEN; n++) + Q.screen[n] = 0.; + } + prim_screen_res = SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)); const double vmax = vector_max(prim_screen_res); if(vmax < screen_tol) { diff --git a/skel/simint/shell/shell.c b/skel/simint/shell/shell.c index bc6cebb..921aa34 100644 --- a/skel/simint/shell/shell.c +++ b/skel/simint/shell/shell.c @@ -431,6 +431,7 @@ void simint_fill_multi_shellpair2(int npair, struct simint_shell const * AB, P->nshell12 = npair; P->nshell12_clip = npair; // by default, it's the same P->nprim = 0; + P->screen_max = 1.e99; // zero out // This is not really needed, and can be expensive in @@ -454,8 +455,6 @@ void simint_fill_multi_shellpair2(int npair, struct simint_shell const * AB, double m = simint_primscreen(A, B, P->screen + idx, screen_method); P->screen_max = (m > P->screen_max ? m : P->screen_max); } - else - P->screen_max = 0.0; // are these the same shells? const int same_shell = compare_shell(A, B); diff --git a/skel/simint/shell/shell_screen.c b/skel/simint/shell/shell_screen.c index 5f474a0..ccdb65e 100644 --- a/skel/simint/shell/shell_screen.c +++ b/skel/simint/shell/shell_screen.c @@ -224,10 +224,6 @@ simint_primscreen_fastschwarz(struct simint_shell const * A, struct simint_shell const * B, double * restrict out) { - // workspace - const size_t workmem = simint_ostei_workmem(0, SIMINT_OSTEI_MAXAM); - double * work = (double *)SIMINT_ALLOC(workmem); - const int same_shell = compare_shell(A, B); double total_max = 0.0; int idx = 0; @@ -266,6 +262,5 @@ simint_primscreen_fastschwarz(struct simint_shell const * A, } } - SIMINT_FREE(work); return total_max; } diff --git a/skel/simint/simint.f90 b/skel/simint/simint.f90 index 5c98f4a..9dd8c97 100644 --- a/skel/simint/simint.f90 +++ b/skel/simint/simint.f90 @@ -200,6 +200,32 @@ function c_simint_eri_workmem(derorder, maxam) & integer(C_SIZE_T) :: res end function + function c_simint_compute_overlap(P, Q, integrals) & + result(res) bind(C, name="simint_compute_overlap") + use iso_c_binding + implicit none + type(C_PTR), intent(in), value :: P, Q, integrals + integer(C_INT) :: res + end function + + function c_simint_compute_ke(P, Q, integrals) & + result(res) bind(C, name="simint_compute_ke") + use iso_c_binding + implicit none + type(C_PTR), intent(in), value :: P, Q, integrals + integer(C_INT) :: res + end function + + function c_simint_compute_potential(n, nuc_charge, X, Y, Z, P, Q,& + integrals) & + result(res) bind(C, name="simint_compute_potential") + use iso_c_binding + implicit none + integer(C_INT), intent(in), value :: n + type(C_PTR), intent(in), value :: nuc_charge, X, Y, Z,P, Q, integrals + integer(C_INT) :: res + end function + end interface contains @@ -396,4 +422,50 @@ function simint_eri_workmem(derorder, maxam) result(res) res = INT(res2) end function + function simint_compute_overlap(P, Q, integrals) & + result(res) + implicit none + + type(c_simint_shell), intent(in), target :: P, Q + double precision, intent(inout), target :: integrals(*) + integer :: res + integer(C_INT) :: res2 + + res2 = c_simint_compute_overlap(C_LOC(P), C_LOC(Q), & + C_LOC(integrals)) + res = INT(res2) + end function + + function simint_compute_ke(P, Q, integrals) & + result(res) + implicit none + + type(c_simint_shell), intent(in), target :: P, Q + double precision, intent(inout), target :: integrals(*) + integer :: res + integer(C_INT) :: res2 + + res2 = c_simint_compute_ke(C_LOC(P), C_LOC(Q), & + C_LOC(integrals)) + res = INT(res2) + end function + + function simint_compute_potential(n, nuc_charge, X, Y, Z, P, Q,& + integrals) & + result(res) + implicit none + + integer, intent(in) :: n + type(c_simint_shell), intent(in), target :: P, Q + double precision, intent(inout), target :: integrals(*) + double precision, intent(in), target :: X(n), & + Y(n), Z(n), nuc_charge(n) + integer :: res + integer(C_INT) :: res2 + res2 = c_simint_compute_potential( INT(n, C_INT), & + C_LOC(nuc_charge), C_LOC(X), & + C_LOC(Y), C_LOC(Z), C_LOC(P), C_LOC(Q), C_LOC(integrals)) + res = INT(res2) + end function + end module