Rust | Run-Time One-Liner and the Nerdiest Approach You Will Ever See :-P | With Comments
So I wasn\'t the only one to think about precomputation here... Anyway, my "standard" solution is below, and then we\'ll go really crazy with an idea I had belo
So I wasn\'t the only one to think about precomputation here... Anyway, my "standard" solution is below, and then we\'ll go really crazy with an idea I had below that, which you really don\'t want to miss :D.\n\nI love how easy it is to compute things at compile time in Rust compared to C++\'s `constexpr`. So for the "standard" solution I use that to build a look-up table with the digit histograms of all the powers of two <= 10^9 (there are 30). At runtime, I only have to build the histogram of the given number, and check if it is in the lookup table.\n\n**"Standard" Solution**\n\n```\nconst N_DIGITS: usize = 10;\n\nconst fn build_histogram(mut n: i32) -> [u8; N_DIGITS] {\n    let mut rez = [0; N_DIGITS];\n    while n > 0 {\n        rez[(n % 10) as usize] += 1;\n        n /= 10;\n    }\n    rez\n}\n\nconst N_POWERS: usize = 30;\n\nconst fn compute_power_histograms() -> [[u8; N_DIGITS]; N_POWERS] {\n    let mut i = 0;\n    let mut rez = [[0; N_DIGITS]; N_POWERS];\n    while i < N_POWERS {\n        rez[i] = build_histogram(1 << i);\n        i += 1;\n    }\n    rez\n}\n\nconst POWER_HISTOGRAMS: [[u8; N_DIGITS]; N_POWERS] = compute_power_histograms();\n\nimpl Solution {\n    pub fn reordered_power_of2(n: i32) -> bool {\n        POWER_HISTOGRAMS.contains(&build_histogram(n))\n    }\n}\n```\n\n**Graph Solution**\n\nSo, what if we build a graph of all the valid paths we can take given the digits as edges? We\'ll mark whether each node is a valid leaf or not. The result is that when we traverse the graph e.g. 64 and 46 both end up at the same leaf node. The benefit of this approach is that we will be able to weed out a number as soon as we encounter a digit that is not on a valid path, since the tail node won\'t have an edge for the next digit. Compare that to the "standard" solution where we *have* to have all the digits of `n` before checking if it\'s a valid power of two (yeah, yeah, big-O time complexities are the same, but let\'s have some fun :) ) We\'ll use a separate program to compute the graph (I have pasted that in at the very bottom of this post), and we\'ll use the computed graph as a constant that gets compiled into our program for solving the problem. Here is the finished solution (it\'s long :) ):\n\n```\nconst N_DIGITS: usize = 10;\n\nimpl Solution {\n    pub fn reordered_power_of2(mut n: i32) -> bool {\n        let mut node = 0;\n        while n > 0 {\n            let digit = (n % 10) as usize;\n            match GRAPH[node].0[digit] {\n                0 => return false,\n                next_node => node = next_node,\n            }\n            n /= 10;\n        }\n        GRAPH[node].1\n    }\n}\n\nconst GRAPH: [([usize; N_DIGITS], bool); 1203] = [\n    ([31, 1, 2, 7, 3, 17, 5, 87, 4, 38], false),\n    ([30, 139, 13, 75, 25, 20, 6, 123, 12, 54], true),\n    ([29, 13, 162, 8, 21, 18, 16, 94, 10, 52], true),\n    ([27, 25, 21, 73, 154, 184, 9, 261, 32, 43], true),\n    ([37, 12, 10, 66, 32, 176, 55, 76, 164, 48], true),\n    ([47, 6, 16, 71, 9, 14, 96, 88, 55, 39], false),\n    ([273, 460, 153, 72, 70, 269, 457, 250, 62, 1072], true),\n    ([136, 75, 8, 512, 73, 107, 71, 92, 66, 363], false),\n    ([132, 128, 733, 515, 511, 501, 95, 93, 86, 1082], true),\n    ([46, 70, 147, 68, 141, 265, 581, 246, 56, 40], true),\n    ([36, 11, 183, 86, 33, 180, 85, 83, 174, 49], false),\n    ([1153, 672, 670, 667, 661, 1147, 1138, 649, 0, 50], true),\n    ([237, 673, 11, 67, 65, 233, 62, 215, 557, 51], false),\n    ([28, 137, 163, 128, 22, 19, 153, 118, 11, 53], false),\n    ([271, 269, 15, 104, 265, 102, 97, 238, 218, 1044], false),\n    ([1190, 1188, 0, 868, 867, 860, 842, 1162, 792, 1053], true),\n    ([1196, 153, 151, 95, 147, 15, 454, 91, 85, 1068], false),\n    ([278, 20, 18, 107, 184, 105, 14, 253, 176, 303], false),\n    ([338, 19, 187, 501, 185, 482, 15, 322, 180, 304], false),\n    ([337, 0, 334, 1197, 0, 0, 1188, 327, 1147, 309], true),\n    ([277, 0, 19, 1200, 274, 0, 269, 258, 233, 312], false),\n    ([24, 22, 160, 511, 155, 185, 147, 713, 33, 0], false),\n    ([23, 731, 161, 727, 158, 0, 150, 717, 661, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 23, 0, 0, 0, 0, 0, 0, 34, 0], false),\n    ([26, 732, 22, 74, 159, 274, 70, 262, 65, 361], false),\n    ([0, 0, 23, 381, 379, 275, 272, 263, 236, 362], false),\n    ([0, 26, 24, 382, 380, 276, 46, 264, 35, 44], false),\n    ([0, 138, 339, 131, 23, 337, 1195, 121, 1153, 319], false),\n    ([0, 28, 340, 132, 24, 338, 1196, 122, 36, 320], false),\n    ([0, 140, 28, 135, 26, 277, 273, 126, 237, 321], false),\n    ([0, 30, 29, 136, 27, 278, 47, 127, 37, 45], false),\n    ([35, 65, 33, 63, 819, 177, 56, 211, 171, 0], false),\n    ([34, 661, 182, 652, 822, 178, 798, 632, 172, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 236, 34, 0, 0, 232, 227, 214, 556, 0], false),\n    ([0, 1153, 0, 1151, 34, 1149, 1140, 1124, 0, 993], false),\n    ([0, 237, 36, 407, 35, 235, 229, 217, 405, 995], false),\n    ([45, 54, 52, 363, 43, 303, 39, 279, 48, 0], false),\n    ([42, 1072, 1068, 1060, 40, 1044, 0, 996, 936, 0], false),\n    ([41, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 1073, 1071, 1067, 41, 1059, 0, 1027, 967, 0], false),\n    ([44, 361, 0, 357, 341, 0, 40, 0, 0, 0], false),\n    ([0, 362, 0, 360, 356, 0, 41, 0, 0, 0], false),\n    ([0, 321, 320, 366, 44, 314, 42, 302, 995, 0], false),\n    ([0, 272, 0, 0, 0, 268, 584, 249, 227, 41], false),\n    ([0, 273, 1196, 408, 46, 271, 586, 252, 229, 42], false),\n    ([995, 51, 49, 984, 0, 968, 936, 872, 0, 0], false),\n    ([993, 50, 0, 985, 0, 977, 961, 929, 0, 0], false),\n    ([992, 0, 0, 986, 0, 978, 962, 930, 0, 0], true),\n    ([994, 0, 50, 989, 0, 981, 965, 933, 0, 0], false),\n    ([320, 53, 315, 1082, 0, 304, 1068, 292, 49, 0], false),\n    ([319, 0, 316, 1083, 0, 309, 1069, 297, 50, 0], false),\n    ([321, 0, 53, 364, 361, 312, 1072, 300, 51, 0], false),\n    ([229, 62, 85, 60, 56, 218, 567, 77, 399, 936], false),\n    ([227, 59, 798, 57, 793, 219, 568, 196, 548, 0], false),\n    ([0, 58, 797, 0, 794, 787, 765, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([226, 0, 0, 58, 0, 220, 569, 197, 549, 0], false),\n    ([406, 61, 84, 0, 57, 790, 768, 78, 400, 953], false),\n    ([1137, 0, 1134, 0, 58, 1128, 0, 1101, 0, 958], false),\n    ([228, 0, 1138, 61, 59, 223, 572, 200, 552, 965], false),\n    ([0, 64, 652, 0, 820, 815, 57, 623, 0, 0], false),\n    ([0, 658, 656, 0, 0, 0, 58, 630, 0, 0], false),\n    ([236, 663, 661, 64, 0, 230, 59, 212, 554, 0], false),\n    ([407, 67, 86, 0, 63, 817, 60, 81, 403, 984], false),\n    ([1152, 669, 667, 0, 64, 1144, 61, 644, 0, 989], false),\n    ([0, 69, 871, 0, 869, 865, 847, 0, 57, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 58, 0], false),\n    ([272, 0, 150, 69, 146, 266, 582, 247, 59, 0], false),\n    ([408, 72, 95, 0, 68, 104, 101, 89, 60, 1060], false),\n    ([1194, 0, 1191, 0, 69, 1185, 0, 1169, 61, 1065], false),\n    ([382, 74, 511, 507, 375, 491, 68, 704, 63, 357], false),\n    ([381, 729, 727, 0, 376, 0, 69, 711, 64, 358], false),\n    ([135, 133, 128, 0, 74, 1200, 72, 113, 67, 364], false),\n    ([217, 215, 83, 81, 211, 203, 77, 587, 516, 872], false),\n    ([202, 200, 80, 78, 196, 188, 559, 0, 517, 873], false),\n    ([1103, 1101, 79, 0, 0, 1086, 0, 0, 0, 890], false),\n    ([1100, 1098, 0, 0, 0, 1087, 0, 0, 0, 891], true),\n    ([1106, 1104, 0, 79, 0, 1094, 0, 0, 0, 898], false),\n    ([1122, 644, 82, 0, 623, 1107, 78, 606, 0, 921], false),\n    ([1120, 642, 639, 0, 624, 1108, 79, 607, 0, 922], false),\n    ([1124, 649, 646, 82, 632, 1115, 80, 615, 0, 929], false),\n    ([1136, 1134, 0, 0, 797, 791, 769, 79, 0, 954], false),\n    ([1140, 1138, 0, 84, 798, 792, 770, 80, 0, 961], false),\n    ([1151, 667, 664, 0, 652, 818, 84, 82, 0, 985], false),\n    ([127, 123, 94, 92, 261, 253, 88, 409, 76, 279], false),\n    ([252, 250, 91, 89, 246, 238, 445, 428, 77, 996], false),\n    ([1171, 1169, 90, 0, 0, 1154, 0, 0, 78, 1013], false),\n    ([1168, 1166, 0, 0, 0, 1155, 0, 0, 79, 1014], false),\n    ([1173, 451, 0, 90, 0, 1162, 446, 435, 80, 1021], false),\n    ([117, 113, 93, 0, 704, 1174, 89, 692, 81, 1036], false),\n    ([112, 108, 720, 0, 705, 1175, 90, 693, 82, 1037], false),\n    ([122, 118, 330, 93, 713, 322, 91, 440, 83, 292], false),\n    ([1193, 1191, 0, 0, 871, 868, 850, 90, 84, 1061], false),\n    ([586, 457, 454, 101, 581, 97, 0, 445, 567, 0], false),\n    ([0, 0, 842, 100, 833, 98, 0, 0, 737, 0], false),\n    ([0, 0, 832, 99, 823, 0, 0, 0, 738, 0], false),\n    ([0, 0, 831, 0, 828, 0, 0, 0, 747, 0], true),\n    ([0, 0, 841, 0, 838, 99, 0, 0, 758, 0], false),\n    ([0, 0, 850, 0, 847, 100, 0, 0, 768, 0], false),\n    ([0, 0, 860, 103, 851, 0, 98, 0, 771, 0], false),\n    ([0, 0, 859, 0, 856, 0, 99, 0, 780, 0], false),\n    ([1187, 1185, 868, 0, 865, 103, 100, 1154, 790, 1045], false),\n    ([0, 0, 482, 106, 461, 0, 102, 0, 799, 0], false),\n    ([0, 0, 481, 477, 470, 0, 103, 0, 808, 0], false),\n    (\n        [1202, 1200, 501, 497, 491, 106, 104, 1174, 817, 1074],\n        false,\n    ),\n    ([111, 109, 721, 0, 709, 1176, 1166, 697, 642, 1038], false),\n    ([110, 0, 722, 0, 710, 0, 0, 698, 643, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 110, 0, 0, 0, 1177, 1167, 0, 1119, 1039], false),\n    ([0, 111, 0, 0, 0, 1178, 1168, 0, 1120, 1040], false),\n    ([116, 114, 108, 0, 711, 1179, 1169, 699, 644, 1041], false),\n    ([115, 0, 109, 0, 712, 0, 0, 700, 645, 0], false),\n    ([0, 0, 110, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 115, 111, 0, 0, 1180, 1170, 0, 1121, 1042], false),\n    ([0, 116, 112, 0, 0, 1181, 1171, 0, 1122, 1043], false),\n    ([121, 119, 331, 108, 717, 327, 451, 441, 649, 297], false),\n    ([120, 0, 723, 109, 718, 0, 452, 442, 650, 0], false),\n    ([0, 0, 0, 110, 0, 0, 0, 0, 0, 0], false),\n    ([0, 120, 332, 111, 0, 328, 1172, 0, 1123, 298], false),\n    ([0, 121, 333, 112, 0, 329, 1173, 0, 1124, 299], false),\n    ([126, 124, 118, 113, 262, 258, 250, 443, 215, 300], false),\n    ([125, 0, 119, 114, 719, 0, 453, 444, 651, 0], false),\n    ([0, 0, 120, 115, 0, 0, 0, 0, 0, 0], false),\n    ([0, 125, 121, 116, 263, 259, 251, 0, 216, 301], false),\n    ([0, 126, 122, 117, 264, 260, 252, 0, 217, 302], false),\n    ([131, 129, 734, 0, 727, 1197, 1191, 108, 667, 1083], false),\n    ([130, 0, 735, 0, 728, 0, 0, 109, 668, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 110, 0, 0], false),\n    ([0, 130, 0, 0, 0, 1198, 1192, 111, 1150, 1084], false),\n    ([0, 131, 0, 0, 0, 1199, 1193, 112, 1151, 1085], false),\n    ([134, 0, 129, 0, 729, 0, 0, 114, 669, 0], false),\n    ([0, 0, 130, 0, 0, 0, 0, 115, 0, 0], false),\n    ([0, 134, 131, 0, 381, 1201, 1194, 116, 1152, 365], false),\n    ([0, 135, 132, 0, 382, 1202, 408, 117, 407, 366], false),\n    ([138, 0, 736, 129, 731, 0, 459, 119, 672, 0], false),\n    ([0, 0, 0, 130, 0, 0, 0, 120, 0, 0], false),\n    ([140, 0, 137, 133, 732, 0, 460, 124, 673, 0], false),\n    ([0, 0, 138, 134, 0, 0, 0, 125, 0, 0], false),\n    ([0, 146, 142, 869, 0, 861, 843, 0, 793, 0], false),\n    ([0, 145, 143, 870, 0, 864, 846, 0, 796, 0], false),\n    ([0, 144, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 0, 144, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 145, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 150, 148, 871, 142, 867, 849, 0, 798, 0], false),\n    ([0, 149, 0, 0, 143, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 144, 0, 0, 0, 0, 0], false),\n    ([0, 0, 149, 0, 145, 0, 0, 0, 0, 0], false),\n    ([0, 152, 0, 0, 148, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 149, 0, 0, 0, 0, 0], false),\n    (\n        [1195, 459, 152, 1191, 150, 1188, 455, 451, 1138, 1069],\n        false,\n    ),\n    ([380, 159, 155, 375, 367, 483, 141, 0, 819, 341], false),\n    ([0, 158, 156, 506, 0, 490, 142, 0, 822, 0], false),\n    ([0, 157, 0, 0, 0, 0, 143, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 144, 0, 0, 0], false),\n    ([0, 0, 157, 0, 0, 0, 145, 0, 0, 0], false),\n    ([379, 0, 158, 376, 372, 0, 146, 0, 0, 354], false),\n    ([0, 161, 0, 724, 156, 186, 148, 714, 182, 0], false),\n    ([0, 730, 0, 725, 157, 0, 149, 715, 659, 0], false),\n    ([340, 163, 0, 733, 160, 187, 151, 330, 183, 315], false),\n    ([339, 736, 0, 734, 161, 334, 152, 331, 670, 316], false),\n    ([405, 557, 174, 403, 171, 165, 399, 516, 383, 0], false),\n    ([0, 0, 169, 0, 166, 0, 0, 0, 0, 0], false),\n    ([0, 0, 167, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 168, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 0, 170, 0, 167, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 168, 0, 0, 0, 0, 0], false),\n    ([556, 554, 172, 0, 0, 166, 548, 533, 0, 0], false),\n    ([0, 0, 173, 0, 0, 167, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 168, 0, 0, 0, 0], false),\n    ([0, 0, 175, 0, 172, 169, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 173, 170, 0, 0, 0, 0], false),\n    ([235, 233, 180, 817, 177, 799, 218, 203, 165, 968], false),\n    ([232, 230, 178, 815, 811, 800, 219, 204, 166, 0], false),\n    ([0, 0, 179, 816, 814, 807, 789, 0, 167, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 168, 0], false),\n    ([1149, 1147, 181, 818, 178, 810, 792, 1115, 169, 977], false),\n    ([0, 0, 0, 0, 179, 0, 0, 0, 170, 0], false),\n    ([0, 659, 0, 653, 0, 179, 0, 633, 173, 0], false),\n    ([0, 670, 0, 664, 182, 181, 0, 646, 175, 0], false),\n    ([276, 274, 185, 491, 483, 461, 265, 254, 177, 0], false),\n    ([0, 0, 186, 496, 490, 476, 867, 0, 178, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 179, 0], false),\n    ([336, 334, 0, 0, 186, 0, 0, 323, 181, 305], false),\n    ([195, 193, 1094, 1086, 189, 0, 0, 0, 0, 874], false),\n    ([192, 190, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([191, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 191, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([194, 0, 1095, 1091, 190, 0, 0, 0, 0, 887], false),\n    ([0, 0, 1096, 1092, 191, 0, 0, 0, 0, 888], false),\n    ([0, 194, 1097, 1093, 192, 0, 0, 0, 0, 889], false),\n    ([199, 197, 0, 0, 0, 189, 560, 0, 526, 0], false),\n    ([198, 0, 0, 0, 0, 190, 561, 0, 527, 0], false),\n    ([0, 0, 0, 0, 0, 191, 562, 0, 528, 0], false),\n    ([0, 198, 0, 0, 0, 192, 563, 0, 529, 0], false),\n    ([201, 0, 1104, 1101, 197, 193, 564, 0, 530, 902], false),\n    ([0, 0, 1105, 1102, 198, 194, 565, 0, 531, 903], false),\n    ([0, 201, 1106, 1103, 199, 195, 566, 0, 532, 904], false),\n    ([210, 208, 1115, 1107, 204, 0, 188, 0, 0, 905], false),\n    ([207, 205, 0, 0, 0, 0, 189, 0, 0, 0], false),\n    ([206, 0, 0, 0, 0, 0, 190, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 191, 0, 0, 0], false),\n    ([0, 206, 0, 0, 0, 0, 192, 0, 0, 0], false),\n    ([209, 0, 1116, 1112, 205, 0, 193, 0, 0, 918], false),\n    ([0, 0, 1117, 1113, 206, 0, 194, 0, 0, 919], false),\n    ([0, 209, 1118, 1114, 207, 0, 195, 0, 0, 920], false),\n    ([214, 212, 632, 623, 0, 204, 196, 588, 533, 0], false),\n    ([213, 638, 636, 630, 0, 205, 197, 604, 534, 0], false),\n    ([0, 0, 0, 0, 0, 206, 198, 0, 535, 0], false),\n    ([0, 213, 0, 0, 0, 207, 199, 0, 536, 0], false),\n    ([216, 651, 649, 644, 212, 208, 200, 621, 537, 933], false),\n    ([0, 0, 1123, 1121, 213, 209, 201, 0, 538, 934], false),\n    ([0, 216, 1124, 1122, 214, 210, 202, 0, 539, 935], false),\n    ([225, 223, 792, 790, 219, 771, 737, 188, 0, 937], false),\n    ([222, 220, 789, 787, 783, 772, 750, 189, 0, 0], false),\n    ([221, 0, 0, 0, 0, 0, 0, 190, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 191, 0, 0], false),\n    ([0, 221, 0, 0, 0, 0, 0, 192, 0, 0], false),\n    ([224, 0, 1131, 1128, 220, 0, 0, 193, 0, 950], false),\n    ([0, 0, 1132, 1129, 221, 0, 0, 194, 0, 951], false),\n    ([0, 224, 1133, 1130, 222, 0, 0, 195, 0, 952], false),\n    ([0, 0, 0, 0, 0, 221, 570, 198, 550, 0], false),\n    ([0, 226, 0, 0, 0, 222, 571, 199, 551, 0], false),\n    ([0, 0, 1139, 1137, 226, 224, 573, 201, 553, 966], false),\n    ([0, 228, 1140, 406, 227, 225, 574, 202, 402, 967], false),\n    ([231, 0, 0, 0, 0, 0, 220, 205, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 221, 206, 0, 0], false),\n    ([0, 231, 0, 0, 0, 0, 222, 207, 0, 0], false),\n    ([234, 0, 1147, 1144, 230, 0, 223, 208, 0, 981], false),\n    ([0, 0, 1148, 1145, 231, 0, 224, 209, 0, 982], false),\n    ([0, 234, 1149, 1146, 232, 0, 225, 210, 0, 983], false),\n    ([0, 0, 0, 0, 0, 231, 226, 213, 555, 0], false),\n    ([0, 0, 1153, 1152, 236, 234, 228, 216, 558, 994], false),\n    ([245, 243, 1162, 1154, 239, 0, 0, 0, 188, 997], false),\n    ([242, 240, 0, 0, 0, 0, 0, 0, 189, 0], false),\n    ([241, 0, 0, 0, 0, 0, 0, 0, 190, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 191, 0], false),\n    ([0, 241, 0, 0, 0, 0, 0, 0, 192, 0], false),\n    ([244, 0, 1163, 1159, 240, 0, 0, 0, 193, 1010], false),\n    ([0, 0, 1164, 1160, 241, 0, 0, 0, 194, 1011], false),\n    ([0, 244, 1165, 1161, 242, 0, 0, 0, 195, 1012], false),\n    ([249, 247, 0, 0, 0, 239, 575, 0, 196, 0], false),\n    ([248, 0, 0, 0, 0, 240, 576, 0, 197, 0], false),\n    ([0, 0, 0, 0, 0, 241, 577, 0, 198, 0], false),\n    ([0, 248, 0, 0, 0, 242, 578, 0, 199, 0], false),\n    ([251, 453, 451, 1169, 247, 243, 449, 438, 200, 1025], false),\n    ([0, 0, 1172, 1170, 248, 244, 579, 0, 201, 1026], false),\n    ([0, 251, 1173, 1171, 249, 245, 580, 0, 202, 1027], false),\n    ([260, 258, 322, 1174, 254, 0, 238, 0, 203, 280], false),\n    ([257, 255, 0, 0, 0, 0, 239, 0, 204, 0], false),\n    ([256, 0, 0, 0, 0, 0, 240, 0, 205, 0], false),\n    ([0, 0, 0, 0, 0, 0, 241, 0, 206, 0], false),\n    ([0, 256, 0, 0, 0, 0, 242, 0, 207, 0], false),\n    ([259, 0, 327, 1179, 255, 0, 243, 0, 208, 289], false),\n    ([0, 0, 328, 1180, 256, 0, 244, 0, 209, 290], false),\n    ([0, 259, 329, 1181, 257, 0, 245, 0, 210, 291], false),\n    ([264, 262, 713, 704, 0, 254, 246, 674, 211, 0], false),\n    ([263, 719, 717, 711, 0, 255, 247, 690, 212, 0], false),\n    ([0, 0, 0, 0, 0, 256, 248, 0, 213, 0], false),\n    ([0, 263, 0, 0, 0, 257, 249, 0, 214, 0], false),\n    ([268, 266, 867, 865, 861, 851, 833, 239, 219, 0], false),\n    ([267, 0, 0, 0, 0, 0, 0, 240, 220, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 241, 221, 0], false),\n    ([0, 267, 0, 0, 0, 0, 0, 242, 222, 0], false),\n    ([270, 0, 1188, 1185, 266, 0, 0, 243, 223, 1057], false),\n    ([0, 0, 1189, 1186, 267, 0, 0, 244, 224, 1058], false),\n    ([0, 270, 1190, 1187, 268, 0, 0, 245, 225, 1059], false),\n    ([0, 0, 0, 0, 0, 267, 583, 248, 226, 0], false),\n    ([0, 0, 1195, 1194, 272, 270, 585, 251, 228, 1073], false),\n    ([275, 0, 0, 0, 0, 0, 266, 255, 230, 0], false),\n    ([0, 0, 0, 0, 0, 0, 267, 256, 231, 0], false),\n    ([0, 275, 0, 0, 0, 0, 268, 257, 232, 0], false),\n    ([0, 0, 337, 1201, 275, 0, 270, 259, 234, 313], false),\n    ([0, 277, 338, 1202, 276, 0, 271, 260, 235, 314], false),\n    ([302, 300, 292, 1036, 0, 280, 996, 0, 872, 0], false),\n    ([291, 289, 281, 1028, 0, 0, 997, 0, 905, 0], false),\n    ([288, 286, 282, 1029, 0, 0, 1006, 0, 914, 0], false),\n    ([285, 283, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([284, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 284, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([287, 0, 283, 1030, 0, 0, 1007, 0, 915, 0], false),\n    ([0, 0, 284, 1031, 0, 0, 1008, 0, 916, 0], false),\n    ([0, 287, 285, 1032, 0, 0, 1009, 0, 917, 0], false),\n    ([290, 0, 286, 1033, 0, 0, 1010, 0, 918, 0], false),\n    ([0, 0, 287, 1034, 0, 0, 1011, 0, 919, 0], false),\n    ([0, 290, 288, 1035, 0, 0, 1012, 0, 920, 0], false),\n    ([299, 297, 293, 1037, 0, 281, 1021, 0, 929, 0], false),\n    ([296, 294, 0, 0, 0, 282, 0, 0, 0, 0], false),\n    ([295, 0, 0, 0, 0, 283, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 284, 0, 0, 0, 0], false),\n    ([0, 295, 0, 0, 0, 285, 0, 0, 0, 0], false),\n    ([298, 0, 294, 1038, 0, 286, 1022, 0, 930, 0], false),\n    ([0, 0, 295, 1039, 0, 287, 1023, 0, 931, 0], false),\n    ([0, 298, 296, 1040, 0, 288, 1024, 0, 932, 0], false),\n    ([301, 0, 297, 1041, 0, 289, 1025, 0, 933, 0], false),\n    ([0, 0, 298, 1042, 0, 290, 1026, 0, 934, 0], false),\n    ([0, 301, 299, 1043, 0, 291, 1027, 0, 935, 0], false),\n    ([314, 312, 304, 1074, 0, 0, 1044, 280, 968, 0], false),\n    ([311, 309, 305, 1075, 0, 0, 1053, 281, 977, 0], false),\n    ([308, 306, 0, 0, 0, 0, 0, 282, 0, 0], false),\n    ([307, 0, 0, 0, 0, 0, 0, 283, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 284, 0, 0], false),\n    ([0, 307, 0, 0, 0, 0, 0, 285, 0, 0], false),\n    ([310, 0, 306, 1076, 0, 0, 1054, 286, 978, 0], false),\n    ([0, 0, 307, 1077, 0, 0, 1055, 287, 979, 0], false),\n    ([0, 310, 308, 1078, 0, 0, 1056, 288, 980, 0], false),\n    ([313, 0, 309, 1079, 0, 0, 1057, 289, 981, 0], false),\n    ([0, 0, 310, 1080, 0, 0, 1058, 290, 982, 0], false),\n    ([0, 313, 311, 1081, 0, 0, 1059, 291, 983, 0], false),\n    ([318, 316, 0, 0, 0, 305, 0, 293, 0, 0], false),\n    ([317, 0, 0, 0, 0, 306, 0, 294, 0, 0], false),\n    ([0, 0, 0, 0, 0, 307, 0, 295, 0, 0], false),\n    ([0, 317, 0, 0, 0, 308, 0, 296, 0, 0], false),\n    ([0, 0, 317, 1084, 0, 310, 1070, 298, 992, 0], false),\n    ([0, 319, 318, 1085, 0, 311, 1071, 299, 993, 0], false),\n    ([0, 0, 319, 365, 362, 313, 1073, 301, 994, 0], false),\n    ([329, 327, 323, 1175, 0, 0, 1162, 0, 1115, 281], false),\n    ([326, 324, 0, 0, 0, 0, 0, 0, 0, 282], false),\n    ([325, 0, 0, 0, 0, 0, 0, 0, 0, 283], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 284], false),\n    ([0, 325, 0, 0, 0, 0, 0, 0, 0, 285], false),\n    ([328, 0, 324, 1176, 0, 0, 1163, 0, 1116, 286], false),\n    ([0, 0, 325, 1177, 0, 0, 1164, 0, 1117, 287], false),\n    ([0, 328, 326, 1178, 0, 0, 1165, 0, 1118, 288], false),\n    ([333, 331, 0, 720, 714, 323, 0, 701, 646, 293], false),\n    ([332, 723, 0, 721, 715, 324, 0, 702, 647, 294], false),\n    ([0, 0, 0, 0, 0, 325, 0, 0, 0, 295], false),\n    ([0, 332, 0, 0, 0, 326, 0, 0, 0, 296], false),\n    ([335, 0, 0, 0, 0, 0, 0, 324, 0, 306], false),\n    ([0, 0, 0, 0, 0, 0, 0, 325, 0, 307], false),\n    ([0, 335, 0, 0, 0, 0, 0, 326, 0, 308], false),\n    ([0, 0, 335, 1198, 0, 0, 1189, 328, 1148, 310], false),\n    ([0, 337, 336, 1199, 0, 0, 1190, 329, 1149, 311], false),\n    ([0, 0, 0, 0, 0, 335, 0, 332, 0, 317], false),\n    ([0, 339, 0, 0, 0, 336, 0, 333, 0, 318], false),\n    ([356, 354, 0, 350, 342, 0, 0, 0, 0, 0], false),\n    ([349, 347, 0, 343, 0, 0, 0, 0, 0, 0], false),\n    ([346, 344, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([345, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 345, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([348, 0, 0, 344, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 345, 0, 0, 0, 0, 0, 0], false),\n    ([0, 348, 0, 346, 0, 0, 0, 0, 0, 0], false),\n    ([353, 351, 0, 0, 343, 0, 0, 0, 0, 0], false),\n    ([352, 0, 0, 0, 344, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 345, 0, 0, 0, 0, 0], false),\n    ([0, 352, 0, 0, 346, 0, 0, 0, 0, 0], false),\n    ([355, 0, 0, 351, 347, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 352, 348, 0, 0, 0, 0, 0], false),\n    ([0, 355, 0, 353, 349, 0, 0, 0, 0, 0], false),\n    ([360, 358, 0, 0, 350, 0, 0, 0, 0, 0], false),\n    ([359, 0, 0, 0, 351, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 352, 0, 0, 0, 0, 0], false),\n    ([0, 359, 0, 0, 353, 0, 0, 0, 0, 0], false),\n    ([362, 0, 0, 358, 354, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 359, 355, 0, 0, 0, 0, 0], false),\n    ([366, 364, 1082, 0, 357, 1074, 1060, 1036, 984, 0], false),\n    ([365, 0, 1083, 0, 358, 1079, 1065, 1041, 989, 0], false),\n    ([0, 0, 1084, 0, 359, 1080, 1066, 1042, 990, 0], false),\n    ([0, 365, 1085, 0, 360, 1081, 1067, 1043, 991, 0], false),\n    ([374, 372, 0, 368, 0, 0, 0, 0, 0, 342], false),\n    ([371, 369, 0, 0, 0, 0, 0, 0, 0, 343], false),\n    ([370, 0, 0, 0, 0, 0, 0, 0, 0, 344], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 345], false),\n    ([0, 370, 0, 0, 0, 0, 0, 0, 0, 346], false),\n    ([373, 0, 0, 369, 0, 0, 0, 0, 0, 347], false),\n    ([0, 0, 0, 370, 0, 0, 0, 0, 0, 348], false),\n    ([0, 373, 0, 371, 0, 0, 0, 0, 0, 349], false),\n    ([378, 376, 506, 502, 368, 484, 869, 0, 820, 350], false),\n    ([377, 0, 0, 0, 369, 0, 0, 0, 0, 351], false),\n    ([0, 0, 0, 0, 370, 0, 0, 0, 0, 352], false),\n    ([0, 377, 0, 0, 371, 0, 0, 0, 0, 353], false),\n    ([0, 0, 0, 377, 373, 0, 0, 0, 0, 355], false),\n    ([0, 379, 0, 378, 374, 0, 0, 0, 0, 356], false),\n    ([0, 0, 0, 0, 377, 0, 0, 0, 0, 359], false),\n    ([0, 381, 0, 0, 378, 0, 0, 0, 0, 360], false),\n    ([398, 0, 0, 396, 0, 0, 392, 0, 384, 0], false),\n    ([391, 0, 0, 389, 0, 0, 385, 0, 0, 0], false),\n    ([388, 0, 0, 386, 0, 0, 0, 0, 0, 0], false),\n    ([387, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 0, 0, 387, 0, 0, 0, 0, 0, 0], false),\n    ([390, 0, 0, 0, 0, 0, 386, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 387, 0, 0, 0], false),\n    ([0, 0, 0, 390, 0, 0, 388, 0, 0, 0], false),\n    ([395, 0, 0, 393, 0, 0, 0, 0, 385, 0], false),\n    ([394, 0, 0, 0, 0, 0, 0, 0, 386, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 387, 0], false),\n    ([0, 0, 0, 394, 0, 0, 0, 0, 388, 0], false),\n    ([397, 0, 0, 0, 0, 0, 393, 0, 389, 0], false),\n    ([0, 0, 0, 0, 0, 0, 394, 0, 390, 0], false),\n    ([0, 0, 0, 397, 0, 0, 395, 0, 391, 0], false),\n    ([402, 552, 0, 400, 548, 0, 540, 517, 392, 0], false),\n    ([401, 0, 0, 0, 0, 0, 0, 0, 393, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 394, 0], false),\n    ([0, 553, 0, 401, 551, 0, 547, 532, 395, 0], false),\n    ([404, 0, 0, 0, 0, 0, 400, 0, 396, 0], false),\n    ([0, 0, 0, 0, 0, 0, 401, 0, 397, 0], false),\n    ([0, 558, 0, 404, 556, 0, 402, 539, 398, 0], false),\n    ([0, 1137, 1136, 0, 0, 1130, 0, 1103, 401, 960], false),\n    ([0, 1152, 1151, 0, 0, 1146, 406, 1122, 404, 991], false),\n    ([0, 1194, 1193, 0, 0, 1187, 0, 1171, 406, 1067], false),\n    ([0, 443, 440, 692, 674, 0, 428, 410, 587, 0], false),\n    ([0, 426, 423, 0, 0, 0, 411, 0, 0, 0], false),\n    ([0, 421, 418, 0, 0, 0, 412, 0, 0, 0], false),\n    ([0, 416, 413, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 414, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 415, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 417, 414, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 415, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 419, 0, 0, 0, 0, 413, 0, 0, 0], false),\n    ([0, 420, 0, 0, 0, 0, 414, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 415, 0, 0, 0], false),\n    ([0, 422, 419, 0, 0, 0, 416, 0, 0, 0], false),\n    ([0, 0, 420, 0, 0, 0, 417, 0, 0, 0], false),\n    ([0, 424, 0, 0, 0, 0, 418, 0, 0, 0], false),\n    ([0, 425, 0, 0, 0, 0, 419, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 420, 0, 0, 0], false),\n    ([0, 427, 424, 0, 0, 0, 421, 0, 0, 0], false),\n    ([0, 0, 425, 0, 0, 0, 422, 0, 0, 0], false),\n    ([0, 438, 435, 0, 0, 0, 429, 411, 0, 0], false),\n    ([0, 433, 430, 0, 0, 0, 0, 412, 0, 0], false),\n    ([0, 431, 0, 0, 0, 0, 0, 413, 0, 0], false),\n    ([0, 432, 0, 0, 0, 0, 0, 414, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 415, 0, 0], false),\n    ([0, 434, 431, 0, 0, 0, 0, 416, 0, 0], false),\n    ([0, 0, 432, 0, 0, 0, 0, 417, 0, 0], false),\n    ([0, 436, 0, 0, 0, 0, 430, 418, 0, 0], false),\n    ([0, 437, 0, 0, 0, 0, 431, 419, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 432, 420, 0, 0], false),\n    ([0, 439, 436, 0, 0, 0, 433, 421, 0, 0], false),\n    ([0, 0, 437, 0, 0, 0, 434, 422, 0, 0], false),\n    ([0, 441, 701, 693, 684, 0, 435, 423, 615, 0], false),\n    ([0, 442, 702, 697, 688, 0, 436, 424, 619, 0], false),\n    ([0, 0, 703, 698, 689, 0, 437, 425, 620, 0], false),\n    ([0, 444, 441, 699, 690, 0, 438, 426, 621, 0], false),\n    ([0, 0, 442, 700, 691, 0, 439, 427, 622, 0], false),\n    ([580, 449, 446, 0, 575, 0, 0, 429, 559, 0], false),\n    ([0, 447, 0, 0, 0, 0, 0, 430, 0, 0], false),\n    ([0, 448, 0, 0, 0, 0, 0, 431, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 432, 0, 0], false),\n    ([579, 450, 447, 0, 576, 0, 0, 433, 564, 0], false),\n    ([0, 0, 448, 0, 0, 0, 0, 434, 0, 0], false),\n    ([1172, 452, 0, 1166, 0, 1163, 447, 436, 1104, 1022], false),\n    ([0, 0, 0, 0, 0, 0, 448, 437, 0, 0], false),\n    ([0, 0, 452, 0, 0, 0, 450, 439, 0, 0], false),\n    ([0, 455, 0, 850, 849, 842, 0, 446, 770, 0], false),\n    ([0, 456, 0, 0, 0, 0, 0, 447, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 448, 0, 0], false),\n    ([585, 458, 455, 0, 582, 0, 0, 449, 572, 0], false),\n    ([0, 0, 456, 0, 0, 0, 0, 450, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 456, 452, 0, 0], false),\n    ([0, 0, 459, 0, 0, 0, 458, 453, 0, 0], false),\n    ([0, 0, 476, 470, 462, 0, 851, 0, 800, 0], false),\n    ([0, 0, 469, 463, 0, 0, 852, 0, 801, 0], false),\n    ([0, 0, 468, 464, 0, 0, 853, 0, 802, 0], false),\n    ([0, 0, 467, 465, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 466, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 0, 0, 466, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 467, 0, 0, 854, 0, 803, 0], false),\n    ([0, 0, 0, 468, 0, 0, 855, 0, 804, 0], false),\n    ([0, 0, 475, 471, 463, 0, 856, 0, 805, 0], false),\n    ([0, 0, 474, 472, 464, 0, 0, 0, 0, 0], false),\n    ([0, 0, 473, 0, 465, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 466, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 473, 467, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 474, 468, 0, 857, 0, 806, 0], false),\n    ([0, 0, 0, 475, 469, 0, 858, 0, 807, 0], false),\n    ([0, 0, 480, 478, 471, 0, 0, 0, 0, 0], false),\n    ([0, 0, 479, 0, 472, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 473, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 479, 474, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 480, 475, 0, 859, 0, 809, 0], false),\n    ([0, 0, 0, 481, 476, 0, 860, 0, 810, 0], false),\n    ([0, 0, 490, 484, 0, 462, 861, 0, 811, 0], false),\n    ([0, 0, 489, 485, 0, 463, 862, 0, 812, 0], false),\n    ([0, 0, 488, 486, 0, 464, 0, 0, 0, 0], false),\n    ([0, 0, 487, 0, 0, 465, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 466, 0, 0, 0, 0], false),\n    ([0, 0, 0, 487, 0, 467, 0, 0, 0, 0], false),\n    ([0, 0, 0, 488, 0, 468, 863, 0, 813, 0], false),\n    ([0, 0, 0, 489, 0, 469, 864, 0, 814, 0], false),\n    ([0, 0, 496, 492, 484, 470, 865, 0, 815, 0], false),\n    ([0, 0, 495, 493, 485, 471, 0, 0, 0, 0], false),\n    ([0, 0, 494, 0, 486, 472, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 487, 473, 0, 0, 0, 0], false),\n    ([0, 0, 0, 494, 488, 474, 0, 0, 0, 0], false),\n    ([0, 0, 0, 495, 489, 475, 866, 0, 816, 0], false),\n    ([0, 0, 500, 498, 492, 477, 0, 0, 0, 0], false),\n    ([0, 0, 499, 0, 493, 478, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 494, 479, 0, 0, 0, 0], false),\n    ([0, 0, 0, 499, 495, 480, 0, 0, 0, 0], false),\n    ([1199, 1197, 0, 500, 496, 481, 868, 1175, 818, 1075], false),\n    ([0, 0, 505, 503, 0, 485, 0, 0, 0, 0], false),\n    ([0, 0, 504, 0, 0, 486, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 487, 0, 0, 0, 0], false),\n    ([0, 0, 0, 504, 0, 488, 0, 0, 0, 0], false),\n    ([0, 0, 0, 505, 0, 489, 870, 0, 821, 0], false),\n    ([0, 0, 510, 508, 502, 492, 0, 0, 0, 0], false),\n    ([0, 0, 509, 0, 503, 493, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 504, 494, 0, 0, 0, 0], false),\n    ([0, 0, 0, 509, 505, 495, 0, 0, 0, 0], false),\n    ([0, 727, 724, 510, 506, 496, 871, 705, 652, 0], false),\n    ([0, 0, 515, 513, 507, 497, 0, 0, 0, 0], false),\n    ([0, 0, 514, 0, 508, 498, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 509, 499, 0, 0, 0, 0], false),\n    ([0, 0, 0, 514, 510, 500, 0, 0, 0, 0], false),\n    ([539, 537, 0, 0, 533, 0, 517, 0, 0, 0], false),\n    ([532, 530, 0, 0, 526, 0, 518, 0, 0, 0], false),\n    ([525, 523, 0, 0, 519, 0, 0, 0, 0, 0], false),\n    ([522, 520, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([521, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 521, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([524, 0, 0, 0, 520, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 521, 0, 0, 0, 0, 0], false),\n    ([0, 524, 0, 0, 522, 0, 0, 0, 0, 0], false),\n    ([529, 527, 0, 0, 0, 0, 519, 0, 0, 0], false),\n    ([528, 0, 0, 0, 0, 0, 520, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 521, 0, 0, 0], false),\n    ([0, 528, 0, 0, 0, 0, 522, 0, 0, 0], false),\n    ([531, 0, 0, 0, 527, 0, 523, 0, 0, 0], false),\n    ([0, 0, 0, 0, 528, 0, 524, 0, 0, 0], false),\n    ([0, 531, 0, 0, 529, 0, 525, 0, 0, 0], false),\n    ([536, 534, 0, 0, 0, 0, 526, 0, 0, 0], false),\n    ([535, 0, 0, 0, 0, 0, 527, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 528, 0, 0, 0], false),\n    ([0, 535, 0, 0, 0, 0, 529, 0, 0, 0], false),\n    ([538, 0, 0, 0, 534, 0, 530, 0, 0, 0], false),\n    ([0, 0, 0, 0, 535, 0, 531, 0, 0, 0], false),\n    ([0, 538, 0, 0, 536, 0, 532, 0, 0, 0], false),\n    ([547, 545, 0, 0, 541, 0, 0, 518, 0, 0], false),\n    ([544, 542, 0, 0, 0, 0, 0, 519, 0, 0], false),\n    ([543, 0, 0, 0, 0, 0, 0, 520, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 521, 0, 0], false),\n    ([0, 543, 0, 0, 0, 0, 0, 522, 0, 0], false),\n    ([546, 0, 0, 0, 542, 0, 0, 523, 0, 0], false),\n    ([0, 0, 0, 0, 543, 0, 0, 524, 0, 0], false),\n    ([0, 546, 0, 0, 544, 0, 0, 525, 0, 0], false),\n    ([551, 549, 0, 0, 0, 0, 541, 526, 0, 0], false),\n    ([550, 0, 0, 0, 0, 0, 542, 527, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 543, 528, 0, 0], false),\n    ([0, 550, 0, 0, 0, 0, 544, 529, 0, 0], false),\n    ([553, 0, 0, 0, 549, 0, 545, 530, 0, 0], false),\n    ([0, 0, 0, 0, 550, 0, 546, 531, 0, 0], false),\n    ([555, 0, 0, 0, 0, 0, 549, 534, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 550, 535, 0, 0], false),\n    ([0, 555, 0, 0, 0, 0, 551, 536, 0, 0], false),\n    ([558, 0, 0, 0, 554, 0, 552, 537, 0, 0], false),\n    ([0, 0, 0, 0, 555, 0, 553, 538, 0, 0], false),\n    ([566, 564, 0, 0, 560, 0, 0, 0, 518, 0], false),\n    ([563, 561, 0, 0, 0, 0, 0, 0, 519, 0], false),\n    ([562, 0, 0, 0, 0, 0, 0, 0, 520, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 521, 0], false),\n    ([0, 562, 0, 0, 0, 0, 0, 0, 522, 0], false),\n    ([565, 0, 0, 0, 561, 0, 0, 0, 523, 0], false),\n    ([0, 0, 0, 0, 562, 0, 0, 0, 524, 0], false),\n    ([0, 565, 0, 0, 563, 0, 0, 0, 525, 0], false),\n    ([574, 572, 770, 768, 568, 737, 0, 559, 540, 0], false),\n    ([571, 569, 767, 765, 761, 750, 0, 560, 541, 0], false),\n    ([570, 0, 0, 0, 0, 0, 0, 561, 542, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 562, 543, 0], false),\n    ([0, 570, 0, 0, 0, 0, 0, 563, 544, 0], false),\n    ([573, 0, 0, 0, 569, 0, 0, 564, 545, 0], false),\n    ([0, 0, 0, 0, 570, 0, 0, 565, 546, 0], false),\n    ([0, 573, 0, 0, 571, 0, 0, 566, 547, 0], false),\n    ([578, 576, 0, 0, 0, 0, 0, 0, 560, 0], false),\n    ([577, 0, 0, 0, 0, 0, 0, 0, 561, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 562, 0], false),\n    ([0, 577, 0, 0, 0, 0, 0, 0, 563, 0], false),\n    ([0, 0, 0, 0, 577, 0, 0, 0, 565, 0], false),\n    ([0, 579, 0, 0, 578, 0, 0, 0, 566, 0], false),\n    ([584, 582, 849, 847, 843, 833, 0, 575, 568, 0], false),\n    ([583, 0, 0, 0, 0, 0, 0, 576, 569, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 577, 570, 0], false),\n    ([0, 583, 0, 0, 0, 0, 0, 578, 571, 0], false),\n    ([0, 0, 0, 0, 583, 0, 0, 579, 573, 0], false),\n    ([0, 585, 0, 0, 584, 0, 0, 580, 574, 0], false),\n    ([0, 621, 615, 606, 588, 0, 0, 0, 0, 0], false),\n    ([0, 604, 598, 589, 0, 0, 0, 0, 0, 0], false),\n    ([0, 596, 590, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 594, 591, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 592, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 593, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 595, 592, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 593, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 597, 594, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 595, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 602, 599, 590, 0, 0, 0, 0, 0, 0], false),\n    ([0, 600, 0, 591, 0, 0, 0, 0, 0, 0], false),\n    ([0, 601, 0, 592, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 593, 0, 0, 0, 0, 0, 0], false),\n    ([0, 603, 600, 594, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 601, 595, 0, 0, 0, 0, 0, 0], false),\n    ([0, 605, 602, 596, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 603, 597, 0, 0, 0, 0, 0, 0], false),\n    ([0, 613, 607, 0, 589, 0, 0, 0, 0, 0], false),\n    ([0, 611, 608, 0, 590, 0, 0, 0, 0, 0], false),\n    ([0, 609, 0, 0, 591, 0, 0, 0, 0, 0], false),\n    ([0, 610, 0, 0, 592, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 593, 0, 0, 0, 0, 0], false),\n    ([0, 612, 609, 0, 594, 0, 0, 0, 0, 0], false),\n    ([0, 0, 610, 0, 595, 0, 0, 0, 0, 0], false),\n    ([0, 614, 611, 0, 596, 0, 0, 0, 0, 0], false),\n    ([0, 0, 612, 0, 597, 0, 0, 0, 0, 0], false),\n    ([0, 619, 616, 607, 598, 0, 0, 0, 0, 0], false),\n    ([0, 617, 0, 608, 599, 0, 0, 0, 0, 0], false),\n    ([0, 618, 0, 609, 600, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 610, 601, 0, 0, 0, 0, 0], false),\n    ([0, 620, 617, 611, 602, 0, 0, 0, 0, 0], false),\n    ([0, 0, 618, 612, 603, 0, 0, 0, 0, 0], false),\n    ([0, 622, 619, 613, 604, 0, 0, 0, 0, 0], false),\n    ([0, 0, 620, 614, 605, 0, 0, 0, 0, 0], false),\n    ([0, 630, 624, 0, 0, 0, 0, 589, 0, 0], false),\n    ([0, 628, 625, 0, 0, 0, 0, 590, 0, 0], false),\n    ([0, 626, 0, 0, 0, 0, 0, 591, 0, 0], false),\n    ([0, 627, 0, 0, 0, 0, 0, 592, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 593, 0, 0], false),\n    ([0, 629, 626, 0, 0, 0, 0, 594, 0, 0], false),\n    ([0, 0, 627, 0, 0, 0, 0, 595, 0, 0], false),\n    ([0, 631, 628, 0, 0, 0, 0, 596, 0, 0], false),\n    ([0, 0, 629, 0, 0, 0, 0, 597, 0, 0], false),\n    ([0, 636, 633, 624, 0, 0, 0, 598, 0, 0], false),\n    ([0, 634, 0, 625, 0, 0, 0, 599, 0, 0], false),\n    ([0, 635, 0, 626, 0, 0, 0, 600, 0, 0], false),\n    ([0, 0, 0, 627, 0, 0, 0, 601, 0, 0], false),\n    ([0, 637, 634, 628, 0, 0, 0, 602, 0, 0], false),\n    ([0, 0, 635, 629, 0, 0, 0, 603, 0, 0], false),\n    ([0, 0, 637, 631, 0, 0, 0, 605, 0, 0], false),\n    ([0, 640, 0, 0, 625, 0, 0, 608, 0, 0], false),\n    ([0, 641, 0, 0, 626, 0, 0, 609, 0, 0], false),\n    ([0, 0, 0, 0, 627, 0, 0, 610, 0, 0], false),\n    ([1119, 643, 640, 0, 628, 1109, 1098, 611, 0, 923], false),\n    ([0, 0, 641, 0, 629, 0, 0, 612, 0, 0], false),\n    ([1121, 645, 642, 0, 630, 1112, 1101, 613, 0, 926], false),\n    ([0, 0, 643, 0, 631, 0, 0, 614, 0, 0], false),\n    ([0, 647, 0, 639, 633, 0, 0, 616, 0, 0], false),\n    ([0, 648, 0, 640, 634, 0, 0, 617, 0, 0], false),\n    ([0, 0, 0, 641, 635, 0, 0, 618, 0, 0], false),\n    ([1123, 650, 647, 642, 636, 1116, 1104, 619, 0, 930], false),\n    ([0, 0, 648, 643, 637, 0, 0, 620, 0, 0], false),\n    ([0, 0, 650, 645, 638, 0, 0, 622, 0, 0], false),\n    ([0, 656, 653, 0, 821, 816, 797, 624, 0, 0], false),\n    ([0, 654, 0, 0, 0, 0, 0, 625, 0, 0], false),\n    ([0, 655, 0, 0, 0, 0, 0, 626, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 627, 0, 0], false),\n    ([0, 657, 654, 0, 0, 0, 0, 628, 0, 0], false),\n    ([0, 0, 655, 0, 0, 0, 0, 629, 0, 0], false),\n    ([0, 0, 657, 0, 0, 0, 0, 631, 0, 0], false),\n    ([0, 660, 0, 654, 0, 0, 0, 634, 0, 0], false),\n    ([0, 0, 0, 655, 0, 0, 0, 635, 0, 0], false),\n    ([0, 662, 659, 656, 0, 0, 0, 636, 0, 0], false),\n    ([0, 0, 660, 657, 0, 0, 0, 637, 0, 0], false),\n    ([0, 0, 662, 658, 0, 0, 0, 638, 0, 0], false),\n    ([0, 665, 0, 0, 653, 0, 0, 639, 0, 0], false),\n    ([0, 666, 0, 0, 654, 0, 0, 640, 0, 0], false),\n    ([0, 0, 0, 0, 655, 0, 0, 641, 0, 0], false),\n    ([1150, 668, 665, 0, 656, 1141, 1134, 642, 0, 986], false),\n    ([0, 0, 666, 0, 657, 0, 0, 643, 0, 0], false),\n    ([0, 0, 668, 0, 658, 0, 0, 645, 0, 0], false),\n    ([0, 671, 0, 665, 659, 0, 0, 647, 0, 0], false),\n    ([0, 0, 0, 666, 660, 0, 0, 648, 0, 0], false),\n    ([0, 0, 671, 668, 662, 0, 0, 650, 0, 0], false),\n    ([0, 0, 672, 669, 663, 0, 0, 651, 0, 0], false),\n    ([0, 690, 684, 675, 0, 0, 0, 0, 588, 0], false),\n    ([0, 682, 676, 0, 0, 0, 0, 0, 589, 0], false),\n    ([0, 680, 677, 0, 0, 0, 0, 0, 590, 0], false),\n    ([0, 678, 0, 0, 0, 0, 0, 0, 591, 0], false),\n    ([0, 679, 0, 0, 0, 0, 0, 0, 592, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 593, 0], false),\n    ([0, 681, 678, 0, 0, 0, 0, 0, 594, 0], false),\n    ([0, 0, 679, 0, 0, 0, 0, 0, 595, 0], false),\n    ([0, 683, 680, 0, 0, 0, 0, 0, 596, 0], false),\n    ([0, 0, 681, 0, 0, 0, 0, 0, 597, 0], false),\n    ([0, 688, 685, 676, 0, 0, 0, 0, 598, 0], false),\n    ([0, 686, 0, 677, 0, 0, 0, 0, 599, 0], false),\n    ([0, 687, 0, 678, 0, 0, 0, 0, 600, 0], false),\n    ([0, 0, 0, 679, 0, 0, 0, 0, 601, 0], false),\n    ([0, 689, 686, 680, 0, 0, 0, 0, 602, 0], false),\n    ([0, 0, 687, 681, 0, 0, 0, 0, 603, 0], false),\n    ([0, 691, 688, 682, 0, 0, 0, 0, 604, 0], false),\n    ([0, 0, 689, 683, 0, 0, 0, 0, 605, 0], false),\n    ([0, 699, 693, 0, 675, 0, 0, 0, 606, 0], false),\n    ([0, 697, 694, 0, 676, 0, 0, 0, 607, 0], false),\n    ([0, 695, 0, 0, 677, 0, 0, 0, 608, 0], false),\n    ([0, 696, 0, 0, 678, 0, 0, 0, 609, 0], false),\n    ([0, 0, 0, 0, 679, 0, 0, 0, 610, 0], false),\n    ([0, 698, 695, 0, 680, 0, 0, 0, 611, 0], false),\n    ([0, 0, 696, 0, 681, 0, 0, 0, 612, 0], false),\n    ([0, 700, 697, 0, 682, 0, 0, 0, 613, 0], false),\n    ([0, 0, 698, 0, 683, 0, 0, 0, 614, 0], false),\n    ([0, 702, 0, 694, 685, 0, 0, 0, 616, 0], false),\n    ([0, 703, 0, 695, 686, 0, 0, 0, 617, 0], false),\n    ([0, 0, 0, 696, 687, 0, 0, 0, 618, 0], false),\n    ([0, 711, 705, 0, 0, 0, 0, 675, 623, 0], false),\n    ([0, 709, 706, 0, 0, 0, 0, 676, 624, 0], false),\n    ([0, 707, 0, 0, 0, 0, 0, 677, 625, 0], false),\n    ([0, 708, 0, 0, 0, 0, 0, 678, 626, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 679, 627, 0], false),\n    ([0, 710, 707, 0, 0, 0, 0, 680, 628, 0], false),\n    ([0, 0, 708, 0, 0, 0, 0, 681, 629, 0], false),\n    ([0, 712, 709, 0, 0, 0, 0, 682, 630, 0], false),\n    ([0, 0, 710, 0, 0, 0, 0, 683, 631, 0], false),\n    ([0, 717, 714, 705, 0, 0, 0, 684, 632, 0], false),\n    ([0, 715, 0, 706, 0, 0, 0, 685, 633, 0], false),\n    ([0, 716, 0, 707, 0, 0, 0, 686, 634, 0], false),\n    ([0, 0, 0, 708, 0, 0, 0, 687, 635, 0], false),\n    ([0, 718, 715, 709, 0, 0, 0, 688, 636, 0], false),\n    ([0, 0, 716, 710, 0, 0, 0, 689, 637, 0], false),\n    ([0, 0, 718, 712, 0, 0, 0, 691, 638, 0], false),\n    ([0, 721, 0, 0, 706, 0, 0, 694, 639, 0], false),\n    ([0, 722, 0, 0, 707, 0, 0, 695, 640, 0], false),\n    ([0, 0, 0, 0, 708, 0, 0, 696, 641, 0], false),\n    ([0, 0, 0, 722, 716, 0, 0, 703, 648, 0], false),\n    ([0, 725, 0, 0, 0, 0, 0, 706, 653, 0], false),\n    ([0, 726, 0, 0, 0, 0, 0, 707, 654, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 708, 655, 0], false),\n    ([0, 728, 725, 0, 0, 0, 0, 709, 656, 0], false),\n    ([0, 0, 726, 0, 0, 0, 0, 710, 657, 0], false),\n    ([0, 0, 728, 0, 0, 0, 0, 712, 658, 0], false),\n    ([0, 0, 0, 726, 0, 0, 0, 716, 660, 0], false),\n    ([0, 0, 730, 728, 0, 0, 0, 718, 662, 0], false),\n    ([0, 0, 731, 729, 0, 0, 0, 719, 663, 0], false),\n    ([0, 734, 0, 0, 724, 0, 0, 720, 664, 0], false),\n    ([0, 735, 0, 0, 725, 0, 0, 721, 665, 0], false),\n    ([0, 0, 0, 0, 726, 0, 0, 722, 666, 0], false),\n    ([0, 0, 0, 735, 730, 0, 0, 723, 671, 0], false),\n    ([0, 0, 760, 758, 750, 738, 0, 0, 0, 0], false),\n    ([0, 0, 749, 747, 739, 0, 0, 0, 0, 0], false),\n    ([0, 0, 746, 744, 740, 0, 0, 0, 0, 0], false),\n    ([0, 0, 743, 741, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 742, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 0, 0, 742, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 745, 0, 741, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 742, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 745, 743, 0, 0, 0, 0, 0], false),\n    ([0, 0, 748, 0, 744, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 745, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 748, 746, 0, 0, 0, 0, 0], false),\n    ([0, 0, 757, 755, 751, 739, 0, 0, 0, 0], false),\n    ([0, 0, 754, 752, 0, 740, 0, 0, 0, 0], false),\n    ([0, 0, 753, 0, 0, 741, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 742, 0, 0, 0, 0], false),\n    ([0, 0, 0, 753, 0, 743, 0, 0, 0, 0], false),\n    ([0, 0, 756, 0, 752, 744, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 753, 745, 0, 0, 0, 0], false),\n    ([0, 0, 0, 756, 754, 746, 0, 0, 0, 0], false),\n    ([0, 0, 759, 0, 755, 747, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 756, 748, 0, 0, 0, 0], false),\n    ([0, 0, 0, 759, 757, 749, 0, 0, 0, 0], false),\n    ([0, 0, 764, 762, 0, 751, 0, 0, 0, 0], false),\n    ([0, 0, 763, 0, 0, 752, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 753, 0, 0, 0, 0], false),\n    ([0, 0, 0, 763, 0, 754, 0, 0, 0, 0], false),\n    ([0, 0, 766, 0, 762, 755, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 763, 756, 0, 0, 0, 0], false),\n    ([0, 0, 0, 766, 764, 757, 0, 0, 0, 0], false),\n    ([0, 0, 769, 0, 765, 758, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 766, 759, 0, 0, 0, 0], false),\n    ([0, 0, 0, 769, 767, 760, 0, 0, 0, 0], false),\n    ([0, 0, 782, 780, 772, 0, 738, 0, 0, 0], false),\n    ([0, 0, 779, 777, 773, 0, 739, 0, 0, 0], false),\n    ([0, 0, 776, 774, 0, 0, 740, 0, 0, 0], false),\n    ([0, 0, 775, 0, 0, 0, 741, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 742, 0, 0, 0], false),\n    ([0, 0, 0, 775, 0, 0, 743, 0, 0, 0], false),\n    ([0, 0, 778, 0, 774, 0, 744, 0, 0, 0], false),\n    ([0, 0, 0, 0, 775, 0, 745, 0, 0, 0], false),\n    ([0, 0, 0, 778, 776, 0, 746, 0, 0, 0], false),\n    ([0, 0, 781, 0, 777, 0, 747, 0, 0, 0], false),\n    ([0, 0, 0, 0, 778, 0, 748, 0, 0, 0], false),\n    ([0, 0, 0, 781, 779, 0, 749, 0, 0, 0], false),\n    ([0, 0, 786, 784, 0, 773, 751, 0, 0, 0], false),\n    ([0, 0, 785, 0, 0, 774, 752, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 775, 753, 0, 0, 0], false),\n    ([0, 0, 0, 785, 0, 776, 754, 0, 0, 0], false),\n    ([0, 0, 788, 0, 784, 777, 755, 0, 0, 0], false),\n    ([0, 0, 0, 0, 785, 778, 756, 0, 0, 0], false),\n    ([0, 0, 0, 788, 786, 779, 757, 0, 0, 0], false),\n    ([1130, 1128, 791, 0, 787, 780, 758, 1086, 0, 938], false),\n    ([1127, 1125, 0, 0, 788, 781, 759, 1087, 0, 939], false),\n    ([1133, 1131, 0, 791, 789, 782, 760, 1094, 0, 946], false),\n    ([0, 0, 796, 794, 0, 783, 761, 0, 0, 0], false),\n    ([0, 0, 795, 0, 0, 784, 762, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 785, 763, 0, 0, 0], false),\n    ([0, 0, 0, 795, 0, 786, 764, 0, 0, 0], false),\n    ([0, 0, 0, 0, 795, 788, 766, 0, 0, 0], false),\n    ([0, 0, 0, 797, 796, 789, 767, 0, 0, 0], false),\n    ([0, 0, 810, 808, 800, 0, 771, 0, 0, 0], false),\n    ([0, 0, 807, 805, 801, 0, 772, 0, 0, 0], false),\n    ([0, 0, 804, 802, 0, 0, 773, 0, 0, 0], false),\n    ([0, 0, 803, 0, 0, 0, 774, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 775, 0, 0, 0], false),\n    ([0, 0, 0, 803, 0, 0, 776, 0, 0, 0], false),\n    ([0, 0, 806, 0, 802, 0, 777, 0, 0, 0], false),\n    ([0, 0, 0, 0, 803, 0, 778, 0, 0, 0], false),\n    ([0, 0, 0, 806, 804, 0, 779, 0, 0, 0], false),\n    ([0, 0, 809, 0, 805, 0, 780, 0, 0, 0], false),\n    ([0, 0, 0, 0, 806, 0, 781, 0, 0, 0], false),\n    ([0, 0, 0, 809, 807, 0, 782, 0, 0, 0], false),\n    ([0, 0, 814, 812, 0, 801, 783, 0, 0, 0], false),\n    ([0, 0, 813, 0, 0, 802, 784, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 803, 785, 0, 0, 0], false),\n    ([0, 0, 0, 813, 0, 804, 786, 0, 0, 0], false),\n    ([0, 0, 816, 0, 812, 805, 787, 0, 0, 0], false),\n    ([0, 0, 0, 0, 813, 806, 788, 0, 0, 0], false),\n    ([1146, 1144, 818, 0, 815, 808, 790, 1107, 0, 969], false),\n    ([1143, 1141, 0, 0, 816, 809, 791, 1108, 0, 970], false),\n    ([0, 0, 822, 820, 0, 811, 793, 0, 0, 0], false),\n    ([0, 0, 821, 0, 0, 812, 794, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 813, 795, 0, 0, 0], false),\n    ([0, 0, 0, 821, 0, 814, 796, 0, 0, 0], false),\n    ([0, 0, 830, 828, 824, 0, 0, 0, 739, 0], false),\n    ([0, 0, 827, 825, 0, 0, 0, 0, 740, 0], false),\n    ([0, 0, 826, 0, 0, 0, 0, 0, 741, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 742, 0], false),\n    ([0, 0, 0, 826, 0, 0, 0, 0, 743, 0], false),\n    ([0, 0, 829, 0, 825, 0, 0, 0, 744, 0], false),\n    ([0, 0, 0, 0, 826, 0, 0, 0, 745, 0], false),\n    ([0, 0, 0, 829, 827, 0, 0, 0, 746, 0], false),\n    ([0, 0, 0, 0, 829, 0, 0, 0, 748, 0], false),\n    ([0, 0, 0, 831, 830, 0, 0, 0, 749, 0], false),\n    ([0, 0, 840, 838, 834, 823, 0, 0, 750, 0], false),\n    ([0, 0, 837, 835, 0, 824, 0, 0, 751, 0], false),\n    ([0, 0, 836, 0, 0, 825, 0, 0, 752, 0], false),\n    ([0, 0, 0, 0, 0, 826, 0, 0, 753, 0], false),\n    ([0, 0, 0, 836, 0, 827, 0, 0, 754, 0], false),\n    ([0, 0, 839, 0, 835, 828, 0, 0, 755, 0], false),\n    ([0, 0, 0, 0, 836, 829, 0, 0, 756, 0], false),\n    ([0, 0, 0, 839, 837, 830, 0, 0, 757, 0], false),\n    ([0, 0, 0, 0, 839, 831, 0, 0, 759, 0], false),\n    ([0, 0, 0, 841, 840, 832, 0, 0, 760, 0], false),\n    ([0, 0, 846, 844, 0, 834, 0, 0, 761, 0], false),\n    ([0, 0, 845, 0, 0, 835, 0, 0, 762, 0], false),\n    ([0, 0, 0, 0, 0, 836, 0, 0, 763, 0], false),\n    ([0, 0, 0, 845, 0, 837, 0, 0, 764, 0], false),\n    ([0, 0, 848, 0, 844, 838, 0, 0, 765, 0], false),\n    ([0, 0, 0, 0, 845, 839, 0, 0, 766, 0], false),\n    ([0, 0, 0, 848, 846, 840, 0, 0, 767, 0], false),\n    ([0, 0, 0, 0, 848, 841, 0, 0, 769, 0], false),\n    ([0, 0, 858, 856, 852, 0, 823, 0, 772, 0], false),\n    ([0, 0, 855, 853, 0, 0, 824, 0, 773, 0], false),\n    ([0, 0, 854, 0, 0, 0, 825, 0, 774, 0], false),\n    ([0, 0, 0, 0, 0, 0, 826, 0, 775, 0], false),\n    ([0, 0, 0, 854, 0, 0, 827, 0, 776, 0], false),\n    ([0, 0, 857, 0, 853, 0, 828, 0, 777, 0], false),\n    ([0, 0, 0, 0, 854, 0, 829, 0, 778, 0], false),\n    ([0, 0, 0, 857, 855, 0, 830, 0, 779, 0], false),\n    ([0, 0, 0, 0, 857, 0, 831, 0, 781, 0], false),\n    ([0, 0, 0, 859, 858, 0, 832, 0, 782, 0], false),\n    ([0, 0, 864, 862, 0, 852, 834, 0, 783, 0], false),\n    ([0, 0, 863, 0, 0, 853, 835, 0, 784, 0], false),\n    ([0, 0, 0, 0, 0, 854, 836, 0, 785, 0], false),\n    ([0, 0, 0, 863, 0, 855, 837, 0, 786, 0], false),\n    ([0, 0, 866, 0, 862, 856, 838, 0, 787, 0], false),\n    ([0, 0, 0, 0, 863, 857, 839, 0, 788, 0], false),\n    ([0, 0, 0, 866, 864, 858, 840, 0, 789, 0], false),\n    ([1184, 1182, 0, 0, 866, 859, 841, 1155, 791, 1046], false),\n    ([0, 0, 870, 0, 0, 862, 844, 0, 794, 0], false),\n    ([0, 0, 0, 0, 0, 863, 845, 0, 795, 0], false),\n    ([0, 0, 0, 0, 870, 866, 848, 0, 797, 0], false),\n    ([935, 933, 929, 921, 0, 905, 873, 0, 0, 0], false),\n    ([904, 902, 898, 890, 0, 874, 0, 0, 0, 0], false),\n    ([889, 887, 883, 875, 0, 0, 0, 0, 0, 0], false),\n    ([882, 880, 876, 0, 0, 0, 0, 0, 0, 0], false),\n    ([879, 877, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([878, 0, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], true),\n    ([0, 878, 0, 0, 0, 0, 0, 0, 0, 0], false),\n    ([881, 0, 877, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 878, 0, 0, 0, 0, 0, 0, 0], false),\n    ([0, 881, 879, 0, 0, 0, 0, 0, 0, 0], false),\n    ([886, 884, 0, 876, 0, 0, 0, 0, 0, 0], false),\n    ([885, 0, 0, 877, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 0, 878, 0, 0, 0, 0, 0, 0], false),\n    ([0, 885, 0, 879, 0, 0, 0, 0, 0, 0], false),\n    ([888, 0, 884, 880, 0, 0, 0, 0, 0, 0], false),\n    ([0, 0, 885, 881, 0, 0, 0, 0, 0, 0], false),\n    ([0, 888, 886, 882, 0, 0, 0, 0, 0, 0], false),\n    ([897, 895, 891, 0, 0, 875, 0, 0, 0, 0], false),\n    ([894, 892, 0, 0, 0, 876, 0, 0, 0, 0], false),\n    ([893, 0, 0, 0, 0, 877, 0, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 878, 0, 0, 0, 0], false),\n    ([0, 893, 0, 0, 0, 879, 0, 0, 0, 0], false),\n    ([896, 0, 892, 0, 0, 880, 0, 0, 0, 0], false),\n    ([0, 0, 893, 0, 0, 881, 0, 0, 0, 0], false),\n    ([0, 896, 894, 0, 0, 882, 0, 0, 0, 0], false),\n    ([901, 899, 0, 891, 0, 883, 0, 0, 0, 0], false),\n    ([900, 0, 0, 892, 0, 884, 0, 0, 0, 0], false),\n    ([0, 0, 0, 893, 0, 885, 0, 0, 0, 0], false),\n    ([0, 900, 0, 894, 0, 886, 0, 0, 0, 0], false),\n    ([903, 0, 899, 895, 0, 887, 0, 0, 0, 0], false),\n    ([0, 0, 900, 896, 0, 888, 0, 0, 0, 0], false),\n    ([0, 903, 901, 897, 0, 889, 0, 0, 0, 0], false),\n    ([920, 918, 914, 906, 0, 0, 874, 0, 0, 0], false),\n    ([913, 911, 907, 0, 0, 0, 875, 0, 0, 0], false),\n    ([910, 908, 0, 0, 0, 0, 876, 0, 0, 0], false),\n    ([909, 0, 0, 0, 0, 0, 877, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 878, 0, 0, 0], false),\n    ([0, 909, 0, 0, 0, 0, 879, 0, 0, 0], false),\n    ([912, 0, 908, 0, 0, 0, 880, 0, 0, 0], false),\n    ([0, 0, 909, 0, 0, 0, 881, 0, 0, 0], false),\n    ([0, 912, 910, 0, 0, 0, 882, 0, 0, 0], false),\n    ([917, 915, 0, 907, 0, 0, 883, 0, 0, 0], false),\n    ([916, 0, 0, 908, 0, 0, 884, 0, 0, 0], false),\n    ([0, 0, 0, 909, 0, 0, 885, 0, 0, 0], false),\n    ([0, 916, 0, 910, 0, 0, 886, 0, 0, 0], false),\n    ([919, 0, 915, 911, 0, 0, 887, 0, 0, 0], false),\n    ([0, 0, 916, 912, 0, 0, 888, 0, 0, 0], false),\n    ([0, 919, 917, 913, 0, 0, 889, 0, 0, 0], false),\n    ([928, 926, 922, 0, 0, 906, 890, 0, 0, 0], false),\n    ([925, 923, 0, 0, 0, 907, 891, 0, 0, 0], false),\n    ([924, 0, 0, 0, 0, 908, 892, 0, 0, 0], false),\n    ([0, 0, 0, 0, 0, 909, 893, 0, 0, 0], false),\n    ([0, 924, 0, 0, 0, 910, 894, 0, 0, 0], false),\n    ([927, 0, 923, 0, 0, 911, 895, 0, 0, 0], false),\n    ([0, 0, 924, 0, 0, 912, 896, 0, 0, 0], false),\n    ([0, 927, 925, 0, 0, 913, 897, 0, 0, 0], false),\n    ([932, 930, 0, 922, 0, 914, 898, 0, 0, 0], false),\n    ([931, 0, 0, 923, 0, 915, 899, 0, 0, 0], false),\n    ([0, 0, 0, 924, 0, 916, 900, 0, 0, 0], false),\n    ([0, 931, 0, 925, 0, 917, 901, 0, 0, 0], false),\n    ([934, 0, 930, 926, 0, 918, 902, 0, 0, 0], false),\n    ([0, 0, 931, 927, 0, 919, 903, 0, 0, 0], false),\n    ([0, 934, 932, 928, 0, 920, 904, 0, 0, 0], false),\n    ([967, 965, 961, 953, 0, 937, 0, 873, 0, 0], false),\n    ([952, 950, 946, 938, 0, 0, 0, 874, 0, 0], false),\n    ([945, 943, 939, 0, 0, 0, 0, 875, 0, 0], false),\n    ([942, 940, 0, 0, 0, 0, 0, 876, 0, 0], false),\n    ([941, 0, 0, 0, 0, 0, 0, 877, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 878, 0, 0], false),\n    ([0, 941, 0, 0, 0, 0, 0, 879, 0, 0], false),\n    ([944, 0, 940, 0, 0, 0, 0, 880, 0, 0], false),\n    ([0, 0, 941, 0, 0, 0, 0, 881, 0, 0], false),\n    ([0, 944, 942, 0, 0, 0, 0, 882, 0, 0], false),\n    ([949, 947, 0, 939, 0, 0, 0, 883, 0, 0], false),\n    ([948, 0, 0, 940, 0, 0, 0, 884, 0, 0], false),\n    ([0, 0, 0, 941, 0, 0, 0, 885, 0, 0], false),\n    ([0, 948, 0, 942, 0, 0, 0, 886, 0, 0], false),\n    ([951, 0, 947, 943, 0, 0, 0, 887, 0, 0], false),\n    ([0, 0, 948, 944, 0, 0, 0, 888, 0, 0], false),\n    ([0, 951, 949, 945, 0, 0, 0, 889, 0, 0], false),\n    ([960, 958, 954, 0, 0, 938, 0, 890, 0, 0], false),\n    ([957, 955, 0, 0, 0, 939, 0, 891, 0, 0], false),\n    ([956, 0, 0, 0, 0, 940, 0, 892, 0, 0], false),\n    ([0, 0, 0, 0, 0, 941, 0, 893, 0, 0], false),\n    ([0, 956, 0, 0, 0, 942, 0, 894, 0, 0], false),\n    ([959, 0, 955, 0, 0, 943, 0, 895, 0, 0], false),\n    ([0, 0, 956, 0, 0, 944, 0, 896, 0, 0], false),\n    ([0, 959, 957, 0, 0, 945, 0, 897, 0, 0], false),\n    ([964, 962, 0, 954, 0, 946, 0, 898, 0, 0], false),\n    ([963, 0, 0, 955, 0, 947, 0, 899, 0, 0], false),\n    ([0, 0, 0, 956, 0, 948, 0, 900, 0, 0], false),\n    ([0, 963, 0, 957, 0, 949, 0, 901, 0, 0], false),\n    ([966, 0, 962, 958, 0, 950, 0, 902, 0, 0], false),\n    ([0, 0, 963, 959, 0, 951, 0, 903, 0, 0], false),\n    ([0, 966, 964, 960, 0, 952, 0, 904, 0, 0], false),\n    ([983, 981, 977, 969, 0, 0, 937, 905, 0, 0], false),\n    ([976, 974, 970, 0, 0, 0, 938, 906, 0, 0], false),\n    ([973, 971, 0, 0, 0, 0, 939, 907, 0, 0], false),\n    ([972, 0, 0, 0, 0, 0, 940, 908, 0, 0], false),\n    ([0, 0, 0, 0, 0, 0, 941, 909, 0, 0], false),\n    ([0, 972, 0, 0, 0, 0, 942, 910, 0, 0], false),\n    ([975, 0, 971, 0, 0, 0, 943, 911, 0, 0], false),\n    ([0, 0, 972, 0, 0, 0, 944, 912, 0, 0], false),\n    ([0, 975, 973, 0, 0, 0, 945, 913, 0, 0], false),\n    ([980, 978, 0, 970, 0, 0, 946, 914, 0, 0], false),\n    ([979, 0, 0, 971, 0, 0, 947, 915, 0, 0], false),\n    ([0, 0, 0, 972, 0, 0, 948, 916, 0, 0], false),\n    ([0, 979, 0, 973, 0, 0, 949, 917, 0, 0], false),\n    ([982, 0, 978, 974, 0, 0, 950, 918, 0, 0], false),\n    ([0, 0, 979, 975, 0, 0, 951, 919, 0, 0], false),\n    ([0, 982, 980, 976, 0, 0, 952, 920, 0, 0], false),\n    ([991, 989, 985, 0, 0, 969, 953, 921, 0, 0], false),\n    ([988, 986, 0, 0, 0, 970, 954, 922, 0, 0], false),\n    ([987, 0, 0, 0, 0, 971, 955, 923, 0, 0], false),\n    ([0, 0, 0, 0, 0, 972, 956, 924, 0, 0], false),\n    ([0, 987, 0, 0, 0, 973, 957, 925, 0, 0], false),\n    ([990, 0, 986, 0, 0, 974, 958, 926, 0, 0], false),\n    ([0, 0, 987, 0, 0, 975, 959, 927, 0, 0], false),\n    ([0, 990, 988, 0, 0, 976, 960, 928, 0, 0], false),\n    ([0, 0, 0, 987, 0, 979, 963, 931, 0, 0], false),\n    ([0, 992, 0, 988, 0, 980, 964, 932, 0, 0], false),\n    ([0, 0, 992, 990, 0, 982, 966, 934, 0, 0], false),\n    ([0, 994, 993, 991, 0, 983, 967, 935, 0, 0], false),\n    ([1027, 1025, 1021, 1013, 0, 997, 0, 0, 873, 0], false),\n    ([1012, 1010, 1006, 998, 0, 0, 0, 0, 874, 0], false),\n    ([1005, 1003, 999, 0, 0, 0, 0, 0, 875, 0], false),\n    ([1002, 1000, 0, 0, 0, 0, 0, 0, 876, 0], false),\n    ([1001, 0, 0, 0, 0, 0, 0, 0, 877, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 878, 0], false),\n    ([0, 1001, 0, 0, 0, 0, 0, 0, 879, 0], false),\n    ([1004, 0, 1000, 0, 0, 0, 0, 0, 880, 0], false),\n    ([0, 0, 1001, 0, 0, 0, 0, 0, 881, 0], false),\n    ([0, 1004, 1002, 0, 0, 0, 0, 0, 882, 0], false),\n    ([1009, 1007, 0, 999, 0, 0, 0, 0, 883, 0], false),\n    ([1008, 0, 0, 1000, 0, 0, 0, 0, 884, 0], false),\n    ([0, 0, 0, 1001, 0, 0, 0, 0, 885, 0], false),\n    ([0, 1008, 0, 1002, 0, 0, 0, 0, 886, 0], false),\n    ([1011, 0, 1007, 1003, 0, 0, 0, 0, 887, 0], false),\n    ([0, 0, 1008, 1004, 0, 0, 0, 0, 888, 0], false),\n    ([0, 1011, 1009, 1005, 0, 0, 0, 0, 889, 0], false),\n    ([1020, 1018, 1014, 0, 0, 998, 0, 0, 890, 0], false),\n    ([1017, 1015, 0, 0, 0, 999, 0, 0, 891, 0], false),\n    ([1016, 0, 0, 0, 0, 1000, 0, 0, 892, 0], false),\n    ([0, 0, 0, 0, 0, 1001, 0, 0, 893, 0], false),\n    ([0, 1016, 0, 0, 0, 1002, 0, 0, 894, 0], false),\n    ([1019, 0, 1015, 0, 0, 1003, 0, 0, 895, 0], false),\n    ([0, 0, 1016, 0, 0, 1004, 0, 0, 896, 0], false),\n    ([0, 1019, 1017, 0, 0, 1005, 0, 0, 897, 0], false),\n    ([1024, 1022, 0, 1014, 0, 1006, 0, 0, 898, 0], false),\n    ([1023, 0, 0, 1015, 0, 1007, 0, 0, 899, 0], false),\n    ([0, 0, 0, 1016, 0, 1008, 0, 0, 900, 0], false),\n    ([0, 1023, 0, 1017, 0, 1009, 0, 0, 901, 0], false),\n    ([1026, 0, 1022, 1018, 0, 1010, 0, 0, 902, 0], false),\n    ([0, 0, 1023, 1019, 0, 1011, 0, 0, 903, 0], false),\n    ([0, 1026, 1024, 1020, 0, 1012, 0, 0, 904, 0], false),\n    ([1035, 1033, 1029, 0, 0, 0, 998, 0, 906, 0], false),\n    ([1032, 1030, 0, 0, 0, 0, 999, 0, 907, 0], false),\n    ([1031, 0, 0, 0, 0, 0, 1000, 0, 908, 0], false),\n    ([0, 0, 0, 0, 0, 0, 1001, 0, 909, 0], false),\n    ([0, 1031, 0, 0, 0, 0, 1002, 0, 910, 0], false),\n    ([1034, 0, 1030, 0, 0, 0, 1003, 0, 911, 0], false),\n    ([0, 0, 1031, 0, 0, 0, 1004, 0, 912, 0], false),\n    ([0, 1034, 1032, 0, 0, 0, 1005, 0, 913, 0], false),\n    ([1043, 1041, 1037, 0, 0, 1028, 1013, 0, 921, 0], false),\n    ([1040, 1038, 0, 0, 0, 1029, 1014, 0, 922, 0], false),\n    ([1039, 0, 0, 0, 0, 1030, 1015, 0, 923, 0], false),\n    ([0, 0, 0, 0, 0, 1031, 1016, 0, 924, 0], false),\n    ([0, 1039, 0, 0, 0, 1032, 1017, 0, 925, 0], false),\n    ([1042, 0, 1038, 0, 0, 1033, 1018, 0, 926, 0], false),\n    ([0, 0, 1039, 0, 0, 1034, 1019, 0, 927, 0], false),\n    ([0, 1042, 1040, 0, 0, 1035, 1020, 0, 928, 0], false),\n    ([1059, 1057, 1053, 1045, 0, 0, 0, 997, 937, 0], false),\n    ([1052, 1050, 1046, 0, 0, 0, 0, 998, 938, 0], false),\n    ([1049, 1047, 0, 0, 0, 0, 0, 999, 939, 0], false),\n    ([1048, 0, 0, 0, 0, 0, 0, 1000, 940, 0], false),\n    ([0, 0, 0, 0, 0, 0, 0, 1001, 941, 0], false),\n    ([0, 1048, 0, 0, 0, 0, 0, 1002, 942, 0], false),\n    ([1051, 0, 1047, 0, 0, 0, 0, 1003, 943, 0], false),\n    ([0, 0, 1048, 0, 0, 0, 0, 1004, 944, 0], false),\n    ([0, 1051, 1049, 0, 0, 0, 0, 1005, 945, 0], false),\n    ([1056, 1054, 0, 1046, 0, 0, 0, 1006, 946, 0], false),\n    ([1055, 0, 0, 1047, 0, 0, 0, 1007, 947, 0], false),\n    ([0, 0, 0, 1048, 0, 0, 0, 1008, 948, 0], false),\n    ([0, 1055, 0, 1049, 0, 0, 0, 1009, 949, 0], false),\n    ([1058, 0, 1054, 1050, 0, 0, 0, 1010, 950, 0], false),\n    ([0, 0, 1055, 1051, 0, 0, 0, 1011, 951, 0], false),\n    ([0, 1058, 1056, 1052, 0, 0, 0, 1012, 952, 0], false),\n    ([1067, 1065, 1061, 0, 0, 1045, 0, 1013, 953, 0], false),\n    ([1064, 1062, 0, 0, 0, 1046, 0, 1014, 954, 0], false),\n    ([1063, 0, 0, 0, 0, 1047, 0, 1015, 955, 0], false),\n    ([0, 0, 0, 0, 0, 1048, 0, 1016, 956, 0], false),\n    ([0, 1063, 0, 0, 0, 1049, 0, 1017, 957, 0], false),\n    ([1066, 0, 1062, 0, 0, 1050, 0, 1018, 958, 0], false),\n    ([0, 0, 1063, 0, 0, 1051, 0, 1019, 959, 0], false),\n    ([0, 1066, 1064, 0, 0, 1052, 0, 1020, 960, 0], false),\n    ([1071, 1069, 0, 1061, 0, 1053, 0, 1021, 961, 0], false),\n    ([1070, 0, 0, 1062, 0, 1054, 0, 1022, 962, 0], false),\n    ([0, 0, 0, 1063, 0, 1055, 0, 1023, 963, 0], false),\n    ([0, 1070, 0, 1064, 0, 1056, 0, 1024, 964, 0], false),\n    ([1073, 0, 1069, 1065, 0, 1057, 0, 1025, 965, 0], false),\n    ([0, 0, 1070, 1066, 0, 1058, 0, 1026, 966, 0], false),\n    ([1081, 1079, 1075, 0, 0, 0, 1045, 1028, 969, 0], false),\n    ([1078, 1076, 0, 0, 0, 0, 1046, 1029, 970, 0], false),\n    ([1077, 0, 0, 0, 0, 0, 1047, 1030, 971, 0], false),\n    ([0, 0, 0, 0, 0, 0, 1048, 1031, 972, 0], false),\n    ([0, 1077, 0, 0, 0, 0, 1049, 1032, 973, 0], false),\n    ([1080, 0, 1076, 0, 0, 0, 1050, 1033, 974, 0], false),\n    ([0, 0, 1077, 0, 0, 0, 1051, 1034, 975, 0], false),\n    ([0, 1080, 1078, 0, 0, 0, 1052, 1035, 976, 0], false),\n    ([1085, 1083, 0, 0, 0, 1075, 1061, 1037, 985, 0], false),\n    ([1084, 0, 0, 0, 0, 1076, 1062, 1038, 986, 0], false),\n    ([0, 0, 0, 0, 0, 1077, 1063, 1039, 987, 0], false),\n    ([0, 1084, 0, 0, 0, 1078, 1064, 1040, 988, 0], false),\n    ([1093, 1091, 1087, 0, 0, 0, 0, 0, 0, 875], false),\n    ([1090, 1088, 0, 0, 0, 0, 0, 0, 0, 876], false),\n    ([1089, 0, 0, 0, 0, 0, 0, 0, 0, 877], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 0, 878], false),\n    ([0, 1089, 0, 0, 0, 0, 0, 0, 0, 879], false),\n    ([1092, 0, 1088, 0, 0, 0, 0, 0, 0, 880], false),\n    ([0, 0, 1089, 0, 0, 0, 0, 0, 0, 881], false),\n    ([0, 1092, 1090, 0, 0, 0, 0, 0, 0, 882], false),\n    ([1097, 1095, 0, 1087, 0, 0, 0, 0, 0, 883], false),\n    ([1096, 0, 0, 1088, 0, 0, 0, 0, 0, 884], false),\n    ([0, 0, 0, 1089, 0, 0, 0, 0, 0, 885], false),\n    ([0, 1096, 0, 1090, 0, 0, 0, 0, 0, 886], false),\n    ([1099, 0, 0, 0, 0, 1088, 0, 0, 0, 892], false),\n    ([0, 0, 0, 0, 0, 1089, 0, 0, 0, 893], false),\n    ([0, 1099, 0, 0, 0, 1090, 0, 0, 0, 894], false),\n    ([1102, 0, 1098, 0, 0, 1091, 0, 0, 0, 895], false),\n    ([0, 0, 1099, 0, 0, 1092, 0, 0, 0, 896], false),\n    ([0, 1102, 1100, 0, 0, 1093, 0, 0, 0, 897], false),\n    ([1105, 0, 0, 1098, 0, 1095, 0, 0, 0, 899], false),\n    ([0, 0, 0, 1099, 0, 1096, 0, 0, 0, 900], false),\n    ([0, 1105, 0, 1100, 0, 1097, 0, 0, 0, 901], false),\n    ([1114, 1112, 1108, 0, 0, 0, 1086, 0, 0, 906], false),\n    ([1111, 1109, 0, 0, 0, 0, 1087, 0, 0, 907], false),\n    ([1110, 0, 0, 0, 0, 0, 1088, 0, 0, 908], false),\n    ([0, 0, 0, 0, 0, 0, 1089, 0, 0, 909], false),\n    ([0, 1110, 0, 0, 0, 0, 1090, 0, 0, 910], false),\n    ([1113, 0, 1109, 0, 0, 0, 1091, 0, 0, 911], false),\n    ([0, 0, 1110, 0, 0, 0, 1092, 0, 0, 912], false),\n    ([0, 1113, 1111, 0, 0, 0, 1093, 0, 0, 913], false),\n    ([1118, 1116, 0, 1108, 0, 0, 1094, 0, 0, 914], false),\n    ([1117, 0, 0, 1109, 0, 0, 1095, 0, 0, 915], false),\n    ([0, 0, 0, 1110, 0, 0, 1096, 0, 0, 916], false),\n    ([0, 1117, 0, 1111, 0, 0, 1097, 0, 0, 917], false),\n    ([0, 0, 0, 0, 0, 1110, 1099, 0, 0, 924], false),\n    ([0, 1119, 0, 0, 0, 1111, 1100, 0, 0, 925], false),\n    ([0, 0, 1119, 0, 0, 1113, 1102, 0, 0, 927], false),\n    ([0, 1121, 1120, 0, 0, 1114, 1103, 0, 0, 928], false),\n    ([0, 0, 0, 1119, 0, 1117, 1105, 0, 0, 931], false),\n    ([0, 1123, 0, 1120, 0, 1118, 1106, 0, 0, 932], false),\n    ([1126, 0, 0, 0, 0, 0, 0, 1088, 0, 940], false),\n    ([0, 0, 0, 0, 0, 0, 0, 1089, 0, 941], false),\n    ([0, 1126, 0, 0, 0, 0, 0, 1090, 0, 942], false),\n    ([1129, 0, 1125, 0, 0, 0, 0, 1091, 0, 943], false),\n    ([0, 0, 1126, 0, 0, 0, 0, 1092, 0, 944], false),\n    ([0, 1129, 1127, 0, 0, 0, 0, 1093, 0, 945], false),\n    ([1132, 0, 0, 1125, 0, 0, 0, 1095, 0, 947], false),\n    ([0, 0, 0, 1126, 0, 0, 0, 1096, 0, 948], false),\n    ([0, 1132, 0, 1127, 0, 0, 0, 1097, 0, 949], false),\n    ([1135, 0, 0, 0, 0, 1125, 0, 1098, 0, 955], false),\n    ([0, 0, 0, 0, 0, 1126, 0, 1099, 0, 956], false),\n    ([0, 1135, 0, 0, 0, 1127, 0, 1100, 0, 957], false),\n    ([0, 0, 1135, 0, 0, 1129, 0, 1102, 0, 959], false),\n    ([1139, 0, 0, 1134, 0, 1131, 0, 1104, 0, 962], false),\n    ([0, 0, 0, 1135, 0, 1132, 0, 1105, 0, 963], false),\n    ([0, 1139, 0, 1136, 0, 1133, 0, 1106, 0, 964], false),\n    ([1142, 0, 0, 0, 0, 0, 1125, 1109, 0, 971], false),\n    ([0, 0, 0, 0, 0, 0, 1126, 1110, 0, 972], false),\n    ([0, 1142, 0, 0, 0, 0, 1127, 1111, 0, 973], false),\n    ([1145, 0, 1141, 0, 0, 0, 1128, 1112, 0, 974], false),\n    ([0, 0, 1142, 0, 0, 0, 1129, 1113, 0, 975], false),\n    ([0, 1145, 1143, 0, 0, 0, 1130, 1114, 0, 976], false),\n    ([1148, 0, 0, 1141, 0, 0, 1131, 1116, 0, 978], false),\n    ([0, 0, 0, 1142, 0, 0, 1132, 1117, 0, 979], false),\n    ([0, 1148, 0, 1143, 0, 0, 1133, 1118, 0, 980], false),\n    ([0, 0, 0, 0, 0, 1142, 1135, 1119, 0, 987], false),\n    ([0, 1150, 0, 0, 0, 1143, 1136, 1120, 0, 988], false),\n    ([0, 0, 1150, 0, 0, 1145, 1137, 1121, 0, 990], false),\n    ([0, 0, 0, 1150, 0, 1148, 1139, 1123, 0, 992], false),\n    ([1161, 1159, 1155, 0, 0, 0, 0, 0, 1086, 998], false),\n    ([1158, 1156, 0, 0, 0, 0, 0, 0, 1087, 999], false),\n    ([1157, 0, 0, 0, 0, 0, 0, 0, 1088, 1000], false),\n    ([0, 0, 0, 0, 0, 0, 0, 0, 1089, 1001], false),\n    ([0, 1157, 0, 0, 0, 0, 0, 0, 1090, 1002], false),\n    ([1160, 0, 1156, 0, 0, 0, 0, 0, 1091, 1003], false),\n    ([0, 0, 1157, 0, 0, 0, 0, 0, 1092, 1004], false),\n    ([0, 1160, 1158, 0, 0, 0, 0, 0, 1093, 1005], false),\n    ([1165, 1163, 0, 1155, 0, 0, 0, 0, 1094, 1006], false),\n    ([1164, 0, 0, 1156, 0, 0, 0, 0, 1095, 1007], false),\n    ([0, 0, 0, 1157, 0, 0, 0, 0, 1096, 1008], false),\n    ([0, 1164, 0, 1158, 0, 0, 0, 0, 1097, 1009], false),\n    ([1167, 0, 0, 0, 0, 1156, 0, 0, 1098, 1015], false),\n    ([0, 0, 0, 0, 0, 1157, 0, 0, 1099, 1016], false),\n    ([0, 1167, 0, 0, 0, 1158, 0, 0, 1100, 1017], false),\n    ([1170, 0, 1166, 0, 0, 1159, 0, 0, 1101, 1018], false),\n    ([0, 0, 1167, 0, 0, 1160, 0, 0, 1102, 1019], false),\n    ([0, 1170, 1168, 0, 0, 1161, 0, 0, 1103, 1020], false),\n    ([0, 0, 0, 1167, 0, 1164, 0, 0, 1105, 1023], false),\n    ([0, 1172, 0, 1168, 0, 1165, 0, 0, 1106, 1024], false),\n    ([1181, 1179, 1175, 0, 0, 0, 1154, 0, 1107, 1028], false),\n    ([1178, 1176, 0, 0, 0, 0, 1155, 0, 1108, 1029], false),\n    ([1177, 0, 0, 0, 0, 0, 1156, 0, 1109, 1030], false),\n    ([0, 0, 0, 0, 0, 0, 1157, 0, 1110, 1031], false),\n    ([0, 1177, 0, 0, 0, 0, 1158, 0, 1111, 1032], false),\n    ([1180, 0, 1176, 0, 0, 0, 1159, 0, 1112, 1033], false),\n    ([0, 0, 1177, 0, 0, 0, 1160, 0, 1113, 1034], false),\n    ([0, 1180, 1178, 0, 0, 0, 1161, 0, 1114, 1035], false),\n    ([1183, 0, 0, 0, 0, 0, 0, 1156, 1125, 1047], false),\n    ([0, 0, 0, 0, 0, 0, 0, 1157, 1126, 1048], false),\n    ([0, 1183, 0, 0, 0, 0, 0, 1158, 1127, 1049], false),\n    ([1186, 0, 1182, 0, 0, 0, 0, 1159, 1128, 1050], false),\n    ([0, 0, 1183, 0, 0, 0, 0, 1160, 1129, 1051], false),\n    ([0, 1186, 1184, 0, 0, 0, 0, 1161, 1130, 1052], false),\n    ([1189, 0, 0, 1182, 0, 0, 0, 1163, 1131, 1054], false),\n    ([0, 0, 0, 1183, 0, 0, 0, 1164, 1132, 1055], false),\n    ([0, 1189, 0, 1184, 0, 0, 0, 1165, 1133, 1056], false),\n    ([1192, 0, 0, 0, 0, 1182, 0, 1166, 1134, 1062], false),\n    ([0, 0, 0, 0, 0, 1183, 0, 1167, 1135, 1063], false),\n    ([0, 1192, 0, 0, 0, 1184, 0, 1168, 1136, 1064], false),\n    ([0, 0, 1192, 0, 0, 1186, 0, 1170, 1137, 1066], false),\n    ([0, 0, 0, 1192, 0, 1189, 0, 1172, 1139, 1070], false),\n    ([0, 1195, 0, 1193, 0, 1190, 0, 1173, 1140, 1071], false),\n    ([1198, 0, 0, 0, 0, 0, 1182, 1176, 1141, 1076], false),\n    ([0, 0, 0, 0, 0, 0, 1183, 1177, 1142, 1077], false),\n    ([0, 1198, 0, 0, 0, 0, 1184, 1178, 1143, 1078], false),\n    ([1201, 0, 1197, 0, 0, 0, 1185, 1179, 1144, 1079], false),\n    ([0, 0, 1198, 0, 0, 0, 1186, 1180, 1145, 1080], false),\n    ([0, 1201, 1199, 0, 0, 0, 1187, 1181, 1146, 1081], false),\n];\n```\n\nIf you scrolled all the way here, you might as well enjoy reading the program that generates the graph:\n\n```\nconst N_DIGITS: usize = 10;\n\nuse std::collections::HashMap;\n\nfn get_node_id(digits: &[usize], visited: &mut [bool], n_visited: usize) -> usize {\n    if n_visited == 0 {\n        usize::MAX\n    } else {\n        digits\n            .iter()\n            .zip(visited.iter())\n            .fold(0, |id, (d, v)| if *v { id * 10 + *d } else { id })\n    }\n}\n\nfn backtrack(\n    digits: &[usize],\n    visited: &mut [bool],\n    depth: usize,\n    graph: &mut HashMap<usize, (usize, [usize; N_DIGITS], bool)>,\n    node_number: &mut usize,\n) {\n    let curr_id = get_node_id(digits, visited, depth);\n    if depth == digits.len() {\n        graph.get_mut(&curr_id).unwrap().2 = true;\n    } else {\n        graph.entry(curr_id).or_insert_with(|| {\n            let nn = *node_number;\n            *node_number += 1;\n            (nn, [0; N_DIGITS], false)\n        });\n\n        for i in 0..digits.len() {\n            if !visited[i] {\n                visited[i] = true;\n                let next_id = get_node_id(digits, visited, depth + 1);\n                let next_node_number = graph\n                    .entry(next_id)\n                    .or_insert_with(|| {\n                        let nn = *node_number;\n                        *node_number += 1;\n                        (nn, [0; N_DIGITS], false)\n                    })\n                    .0;\n                graph.get_mut(&curr_id).unwrap().1[digits[i]] = next_node_number;\n                backtrack(digits, visited, depth + 1, graph, node_number);\n                visited[i] = false;\n            }\n        }\n    }\n}\n\nfn get_digits(mut n: i32) -> Vec<usize> {\n    if n == 0 {\n        vec![0]\n    } else {\n        let mut rez = vec![];\n        while n > 0 {\n            rez.push((n % 10) as usize);\n            n /= 10;\n        }\n        rez.sort_unstable_by(|d1, d2| d2.cmp(d1));\n        rez\n    }\n}\n\nfn insert(\n    n: i32,\n    graph: &mut HashMap<usize, (usize, [usize; N_DIGITS], bool)>,\n    node_number: &mut usize,\n) {\n    let digits = get_digits(n);\n    let mut visited = vec![false; digits.len()];\n    backtrack(&digits, &mut visited, 0, graph, node_number);\n}\n\nfn main() {\n    let mut node_number = 0;\n    let mut graph_map = HashMap::new();\n    for shift in 0..30 {\n        insert(1 << shift, &mut graph_map, &mut node_number);\n    }\n    let mut graph = graph_map.values().copied().collect::<Vec<_>>();\n    graph.sort_unstable_by_key(|(node_number, _, _)| *node_number);\n    let graph = graph\n        .into_iter()\n        .map(|(_, edges, leaf)| (edges, leaf))\n        .collect::<Vec<_>>();\n    println!("{:?}", graph);\n    println!("{:?}", graph.len());\n}\n```
['Rust']