JP7408701B2 - Polar符号符号化方法および装置 - Google Patents
Polar符号符号化方法および装置 Download PDFInfo
- Publication number
- JP7408701B2 JP7408701B2 JP2022018608A JP2022018608A JP7408701B2 JP 7408701 B2 JP7408701 B2 JP 7408701B2 JP 2022018608 A JP2022018608 A JP 2022018608A JP 2022018608 A JP2022018608 A JP 2022018608A JP 7408701 B2 JP7408701 B2 JP 7408701B2
- Authority
- JP
- Japan
- Prior art keywords
- sequence
- bits
- reliability
- polarized channels
- polarized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 63
- 230000001174 ascending effect Effects 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 108091006146 Channels Proteins 0.000 description 98
- 238000004891 communication Methods 0.000 description 23
- 238000013461 design Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 6
- 241000169170 Boreogadus saida Species 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
- H04L1/0058—Block-coded modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/134—Non-binary linear block codes not provided for otherwise
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Tires In General (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Peptides Or Proteins (AREA)
- Mobile Radio Communication Systems (AREA)
- Dc Digital Transmission (AREA)
Description
変調器は、変調された系列を得るために、符号化の後にビット系列を変調するように構成され、
トランシーバは、変調された系列を送信するように構成される。
(1) Nmaxは2の正の整数乗でないが、所与の例の符号長がすべて2の正の整数乗であり、したがって、第2の系列がSequence Q1からSequence Q30までに示された任意の系列の一部であることのみが可能であるか、または
(2) 符号化デバイスによってサポートされるNmax_encoding_deviceがプロトコルによって規制されたNmax_protocol未満であり、したがって、Sequence Q1からSequence Q30までに示された任意の系列内のNmax_encoding_deviceのみが選択される必要があるか、または
(3) 長さNmaxを有する実際に使用される系列の一部がSequence Q1からSequence Q30までに示された任意の系列の一部と完全に一致する。
[0, 1, 4, 8, 2, 16, 32, 6, 64, 512, 3, 12, 5, 18, 128, 9, 33, 17, 10, 256, 20, 34, 24, 65, 7, 36, 66, 129, 11, 40, 19, 132, 513, 13, 68, 48, 14, 72, 257, 21, 130, 26, 35, 80, 258, 136, 38, 22, 260, 516, 37, 25, 96, 67, 264, 41, 144, 28, 69, 49, 74, 160, 42, 520, 272, 192, 70, 44, 131, 81, 15, 288, 50, 134, 73, 514, 23, 52, 320, 133, 76, 82, 137, 56, 27, 259, 528, 97, 39, 384, 138, 84, 29, 261, 145, 544, 43, 98, 140, 30, 88, 262, 146, 71, 518, 265, 161, 45, 100, 148, 51, 46, 576, 75, 266, 104, 273, 164, 193, 53, 515, 162, 268, 77, 152, 274, 54, 524, 83, 57, 112, 85, 135, 289, 517, 194, 78, 290, 58, 276, 168, 530, 99, 139, 196, 86, 176, 640, 60, 89, 280, 101, 147, 292, 521, 141, 321, 142, 90, 200, 545, 31, 102, 263, 105, 529, 322, 149, 296, 47, 522, 92, 208, 267, 385, 324, 304, 536, 768, 532, 163, 153, 150, 106, 55, 165, 386, 577, 328, 548, 269, 113, 154, 79, 224, 166, 275, 108, 578, 270, 59, 114, 195, 169, 156, 87, 546, 61, 277, 291, 519, 278, 116, 170, 197, 641, 177, 281, 91, 552, 201, 388, 293, 198, 523, 62, 143, 336, 584, 172, 282, 120, 644, 103, 178, 294, 531, 202, 93, 323, 560, 392, 297, 151, 580, 209, 284, 180, 525, 107, 94, 204, 769, 298, 352, 325, 526, 155, 109, 533, 400, 305, 300, 642, 210, 184, 326, 538, 115, 167, 592, 157, 225, 306, 547, 329, 110, 770, 212, 117, 171, 550, 330, 226, 648, 387, 308, 158, 608, 416, 337, 534, 216, 271, 549, 118, 279, 537, 332, 389, 173, 579, 121, 199, 776, 179, 228, 553, 338, 656, 312, 540, 390, 174, 581, 393, 283, 772, 122, 672, 554, 784, 63, 340, 704, 448, 561, 353, 800, 394, 232, 203, 527, 582, 556, 295, 285, 181, 124, 205, 240, 643, 585, 562, 286, 299, 354, 182, 401, 211, 396, 344, 586, 832, 564, 95, 185, 206, 327, 645, 535, 402, 593, 186, 356, 588, 568, 307, 646, 418, 213, 301, 227, 302, 896, 594, 360, 111, 649, 771, 417, 539, 214, 404, 309, 188, 449, 331, 217, 159, 609, 596, 551, 650, 119, 229, 333, 408, 541, 773, 610, 657, 310, 420, 600, 218, 368, 230, 652, 391, 175, 313, 339, 542, 334, 123, 555, 774, 233, 314, 658, 612, 341, 777, 450, 220, 424, 355, 673, 583, 125, 234, 183, 395, 241, 557, 660, 616, 316, 342, 345, 778, 563, 403, 287, 397, 452, 674, 558, 785, 432, 187, 357, 207, 664, 587, 780, 705, 676, 236, 346, 565, 361, 126, 242, 589, 405, 215, 398, 566, 303, 597, 358, 801, 419, 624, 456, 786, 348, 244, 569, 189, 590, 219, 647, 311, 706, 362, 595, 464, 802, 406, 680, 421, 788, 248, 598, 190, 570, 369, 651, 409, 834, 410, 708, 480, 613, 231, 572, 315, 659, 364, 422, 335, 688, 370, 792, 221, 611, 451, 601, 425, 804, 412, 653, 453, 833, 317, 712, 235, 602, 343, 543, 372, 654, 222, 614, 426, 775, 433, 559, 237, 898, 617, 347, 808, 243, 720, 454, 665, 318, 604, 376, 661, 428, 779, 238, 675, 359, 836, 458, 625, 399, 662, 677, 434, 567, 457, 816, 245, 618, 349, 787, 127, 781, 897, 407, 666, 436, 591, 363, 620, 465, 736, 350, 678, 571, 246, 681, 249, 626, 460, 707, 840, 411, 782, 365, 789, 440, 599, 374, 668, 628, 423, 900, 466, 848, 803, 250, 790, 371, 709, 191, 573, 689, 481, 682, 413, 603, 793, 366, 713, 468, 710, 373, 574, 655, 427, 806, 414, 684, 904, 252, 615, 482, 632, 805, 429, 794, 864, 223, 690, 455, 714, 835, 472, 809, 377, 605, 619, 435, 663, 721, 319, 796, 484, 692, 912, 430, 606, 716, 488, 810, 459, 838, 667, 239, 817, 621, 378, 837, 722, 437, 696, 461, 737, 679, 380, 812, 627, 247, 899, 841, 441, 622, 928, 351, 724, 783, 469, 629, 818, 438, 669, 462, 738, 683, 251, 842, 849, 496, 901, 820, 728, 467, 633, 902, 367, 670, 791, 442, 844, 630, 474, 685, 850, 483, 691, 711, 379, 865, 795, 415, 824, 960, 740, 253, 905, 634, 444, 693, 744, 485, 807, 686, 906, 470, 575, 715, 375, 866, 913, 473, 852, 636, 797, 431, 694, 811, 486, 752, 723, 798, 489, 856, 908, 254, 717, 607, 930, 476, 697, 725, 914, 439, 819, 839, 868, 492, 718, 698, 381, 813, 623, 814, 498, 872, 739, 929, 671, 916, 821, 463, 726, 961, 843, 490, 631, 729, 700, 382, 741, 845, 920, 471, 822, 851, 730, 497, 880, 742, 443, 903, 687, 825, 500, 445, 932, 846, 635, 745, 826, 732, 446, 962, 936, 475, 853, 867, 637, 907, 487, 695, 746, 828, 753, 854, 857, 915, 964, 477, 909, 719, 799, 699, 493, 504, 748, 944, 858, 873, 638, 754, 255, 968, 869, 491, 478, 383, 910, 815, 917, 727, 870, 701, 931, 860, 499, 756, 731, 823, 922, 874, 976, 918, 502, 933, 743, 760, 881, 494, 702, 921, 876, 501, 847, 992, 447, 733, 827, 882, 934, 963, 505, 937, 747, 855, 924, 734, 829, 965, 938, 884, 506, 749, 945, 859, 755, 479, 966, 830, 888, 940, 750, 871, 970, 911, 757, 946, 969, 861, 977, 875, 919, 639, 758, 948, 862, 761, 508, 972, 923, 877, 952, 886, 935, 978, 762, 503, 883, 703, 993, 925, 878, 980, 941, 764, 495, 926, 885, 994, 735, 939, 984, 967, 889, 947, 831, 507, 942, 751, 973, 996, 890, 949, 759, 892, 971, 1000, 953, 509, 863, 981, 950, 974, 763, 1008, 979, 879, 954, 986, 995, 891, 927, 510, 765, 956, 997, 982, 887, 985, 943, 998, 1001, 766, 988, 951, 1004, 893, 1010, 957, 975, 511, 1002, 894, 983, 1009, 955, 987, 1012, 958, 999, 1005, 989, 1016, 990, 1011, 767, 1003, 1014, 1006, 1017, 895, 1013, 991, 1018, 959, 1020, 1015, 1007, 1019, 1021, 1022, 1023]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 128, 9, 33, 17, 10, 256, 20, 34, 24, 65, 7, 36, 66, 129, 11, 40, 19, 132, 13, 68, 48, 14, 72, 257, 21, 130, 26, 35, 80, 258, 136, 38, 22, 260, 37, 25, 96, 67, 264, 41, 144, 28, 69, 49, 74, 160, 42, 272, 192, 70, 44, 131, 81, 15, 288, 50, 134, 73, 23, 52, 320, 133, 76, 82, 137, 56, 27, 259, 97, 39, 384, 138, 84, 29, 261, 145, 43, 98, 140, 30, 88, 262, 146, 71, 265, 161, 45, 100, 148, 51, 46, 75, 266, 104, 273, 164, 193, 53, 162, 268, 77, 152, 274, 54, 83, 57, 112, 85, 135, 289, 194, 78, 290, 58, 276, 168, 99, 139, 196, 86, 176, 60, 89, 280, 101, 147, 292, 141, 321, 142, 90, 200, 31, 102, 263, 105, 322, 149, 296, 47, 92, 208, 267, 385, 324, 304, 163, 153, 150, 106, 55, 165, 386, 328, 269, 113, 154, 79, 224, 166, 275, 108, 270, 59, 114, 195, 169, 156, 87, 61, 277, 291, 278, 116, 170, 197, 177, 281, 91, 201, 388, 293, 198, 62, 143, 336, 172, 282, 120, 103, 178, 294, 202, 93, 323, 392, 297, 151, 209, 284, 180, 107, 94, 204, 298, 352, 325, 155, 109, 400, 305, 300, 210, 184, 326, 115, 167, 157, 225, 306, 329, 110, 212, 117, 171, 330, 226, 387, 308, 158, 416, 337, 216, 271, 118, 279, 332, 389, 173, 121, 199, 179, 228, 338, 312, 390, 174, 393, 283, 122, 63, 340, 448, 353, 394, 232, 203, 295, 285, 181, 124, 205, 240, 286, 299, 354, 182, 401, 211, 396, 344, 95, 185, 206, 327, 402, 186, 356, 307, 418, 213, 301, 227, 302, 360, 111, 417, 214, 404, 309, 188, 449, 331, 217, 159, 119, 229, 333, 408, 310, 420, 218, 368, 230, 391, 175, 313, 339, 334, 123, 233, 314, 341, 450, 220, 424, 355, 125, 234, 183, 395, 241, 316, 342, 345, 403, 287, 397, 452, 432, 187, 357, 207, 236, 346, 361, 126, 242, 405, 215, 398, 303, 358, 419, 456, 348, 244, 189, 219, 311, 362, 464, 406, 421, 248, 190, 369, 409, 410, 480, 231, 315, 364, 422, 335, 370, 221, 451, 425, 412, 453, 317, 235, 343, 372, 222, 426, 433, 237, 347, 243, 454, 318, 376, 428, 238, 359, 458, 399, 434, 457, 245, 349, 127, 407, 436, 363, 465, 350, 246, 249, 460, 411, 365, 440, 374, 423, 466, 250, 371, 191, 481, 413, 366, 468, 373, 427, 414, 252, 482, 429, 223, 455, 472, 377, 435, 319, 484, 430, 488, 459, 239, 378, 437, 461, 380, 247, 441, 351, 469, 438, 462, 251, 496, 467, 367, 442, 474, 483, 379, 415, 253, 444, 485, 470, 375, 473, 431, 486, 489, 254, 476, 439, 492, 381, 498, 463, 490, 382, 471, 497, 443, 500, 445, 446, 475, 487, 477, 493, 504, 255, 491, 478, 383, 499, 502, 494, 501, 447, 505, 506, 479, 508, 503, 495, 507, 509, 510, 511]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 128, 9, 33, 17, 10, 20, 34, 24, 65, 7, 36, 66, 129, 11, 40, 19, 132, 13, 68, 48, 14, 72, 21, 130, 26, 35, 80, 136, 38, 22, 37, 25, 96, 67, 41, 144, 28, 69, 49, 74, 160, 42, 192, 70, 44, 131, 81, 15, 50, 134, 73, 23, 52, 133, 76, 82, 137, 56, 27, 97, 39, 138, 84, 29, 145, 43, 98, 140, 30, 88, 146, 71, 161, 45, 100, 148, 51, 46, 75, 104, 164, 193, 53, 162, 77, 152, 54, 83, 57, 112, 85, 135, 194, 78, 58, 168, 99, 139, 196, 86, 176, 60, 89, 101, 147, 141, 142, 90, 200, 31, 102, 105, 149, 47, 92, 208, 163, 153, 150, 106, 55, 165, 113, 154, 79, 224, 166, 108, 59, 114, 195, 169, 156, 87, 61, 116, 170, 197, 177, 91, 201, 198, 62, 143, 172, 120, 103, 178, 202, 93, 151, 209, 180, 107, 94, 204, 155, 109, 210, 184, 115, 167, 157, 225, 110, 212, 117, 171, 226, 158, 216, 118, 173, 121, 199, 179, 228, 174, 122, 63, 232, 203, 181, 124, 205, 240, 182, 211, 95, 185, 206, 186, 213, 227, 111, 214, 188, 217, 159, 119, 229, 218, 230, 175, 123, 233, 220, 125, 234, 183, 241, 187, 207, 236, 126, 242, 215, 244, 189, 219, 248, 190, 231, 221, 235, 222, 237, 243, 238, 245, 127, 246, 249, 250, 191, 252, 223, 239, 247, 251, 253, 254, 255]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 9, 33, 17, 10, 20, 34, 24, 65, 7, 36, 66, 11, 40, 19, 13, 68, 48, 14, 72, 21, 26, 35, 80, 38, 22, 37, 25, 96, 67, 41, 28, 69, 49, 74, 42, 70, 44, 81, 15, 50, 73, 23, 52, 76, 82, 56, 27, 97, 39, 84, 29, 43, 98, 30, 88, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 85, 78, 58, 99, 86, 60, 89, 101, 90, 31, 102, 105, 47, 92, 106, 55, 113, 79, 108, 59, 114, 87, 61, 116, 91, 62, 120, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 4, 8, 2, 16, 32, 6, 3, 12, 5, 18, 9, 33, 17, 10, 20, 34, 24, 7, 36, 11, 40, 19, 13, 48, 14, 21, 26, 35, 38, 22, 37, 25, 41, 28, 49, 42, 44, 15, 50, 23, 52, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 4, 10, 2, 12, 7, 24, 3, 15, 18, 28, 11, 33, 36, 70, 5, 17, 13, 30, 20, 39, 47, 76, 22, 51, 41, 84, 57, 92, 99, 161, 6, 16, 21, 42, 25, 50, 46, 88, 29, 55, 62, 96, 67, 107, 111, 169, 35, 59, 72, 110, 77, 119, 126, 184, 83, 129, 138, 200, 148, 207, 225, 322, 8, 23, 26, 53, 34, 58, 66, 103, 37, 74, 60, 113, 80, 123, 136, 193, 43, 69, 81, 128, 91, 131, 145, 205, 100, 149, 158, 218, 171, 238, 250, 355, 52, 87, 97, 142, 108, 151, 162, 233, 115, 164, 183, 249, 197, 258, 276, 377, 130, 191, 201, 268, 212, 279, 295, 394, 231, 302, 318, 415, 338, 430, 463, 573, 14, 27, 40, 68, 31, 79, 73, 132, 45, 82, 90, 143, 98, 155, 157, 226, 56, 94, 102, 152, 109, 167, 182, 243, 124, 181, 192, 257, 204, 271, 287, 389, 61, 106, 121, 180, 117, 185, 195, 269, 140, 203, 213, 280, 229, 300, 313, 410, 146, 216, 234, 305, 247, 337, 347, 432, 265, 356, 363, 451, 385, 481, 497, 612, 65, 118, 135, 202, 144, 214, 223, 303, 159, 220, 237, 331, 251, 339, 357, 453, 172, 245, 264, 349, 278, 370, 382, 467, 292, 388, 405, 483, 425, 517, 535, 640, 194, 272, 283, 372, 306, 395, 407, 507, 330, 418, 431, 529, 459, 541, 556, 666, 340, 434, 464, 546, 479, 569, 587, 680, 495, 589, 608, 697, 632, 726, 756, 843, 19, 38, 44, 85, 48, 93, 101, 163, 54, 105, 114, 173, 122, 190, 199, 293, 64, 116, 125, 196, 139, 208, 211, 296, 150, 217, 230, 316, 246, 336, 344, 444, 71, 133, 137, 209, 153, 222, 235, 335, 168, 242, 253, 345, 262, 371, 373, 470, 176, 261, 273, 367, 286, 384, 402, 485, 310, 411, 419, 509, 438, 527, 550, 653, 78, 156, 166, 239, 175, 255, 266, 358, 188, 275, 282, 387, 298, 396, 414, 513, 227, 290, 308, 412, 323, 422, 439, 531, 351, 440, 460, 544, 478, 571, 584, 686, 254, 327, 346, 427, 364, 452, 472, 558, 376, 462, 487, 580, 511, 596, 620, 707, 406, 499, 515, 610, 533, 624, 600, 739, 552, 647, 669, 719, 677, 771, 790, 848, 89, 174, 186, 285, 221, 299, 312, 409, 241, 315, 329, 433, 350, 445, 468, 562, 260, 348, 361, 443, 383, 466, 491, 576, 397, 501, 503, 594, 523, 617, 629, 722, 289, 380, 369, 474, 403, 493, 512, 603, 426, 521, 537, 627, 554, 637, 658, 746, 450, 539, 565, 650, 578, 672, 692, 764, 598, 683, 710, 801, 729, 806, 813, 877, 325, 386, 424, 519, 446, 525, 548, 642, 476, 567, 560, 663, 591, 674, 694, 782, 489, 582, 605, 704, 622, 689, 736, 794, 645, 742, 713, 816, 760, 830, 847, 898, 505, 615, 634, 716, 655, 732, 749, 821, 661, 753, 786, 846, 768, 835, 870, 937, 700, 798, 775, 857, 805, 874, 865, 928, 836, 883, 893, 948, 919, 960, 974, 992, 9, 32, 75, 120, 49, 134, 104, 210, 63, 154, 170, 224, 127, 248, 256, 332, 86, 165, 141, 236, 179, 259, 291, 360, 177, 297, 267, 381, 311, 398, 413, 532, 95, 160, 206, 274, 189, 294, 281, 392, 219, 307, 320, 416, 334, 435, 448, 540, 240, 326, 343, 442, 354, 461, 469, 566, 366, 480, 498, 586, 508, 613, 625, 737, 112, 187, 198, 301, 244, 314, 333, 429, 228, 342, 352, 455, 365, 465, 482, 579, 270, 362, 375, 488, 391, 471, 496, 599, 404, 520, 530, 618, 551, 648, 659, 758, 288, 390, 400, 518, 421, 506, 536, 633, 437, 543, 570, 649, 581, 668, 684, 773, 475, 561, 590, 679, 602, 690, 712, 787, 635, 705, 728, 809, 744, 819, 841, 914, 147, 215, 263, 341, 232, 359, 368, 484, 284, 378, 393, 500, 408, 524, 534, 626, 309, 401, 420, 510, 436, 553, 563, 651, 454, 549, 577, 665, 601, 693, 708, 779, 319, 428, 447, 557, 458, 564, 585, 676, 492, 588, 616, 696, 630, 714, 734, 803, 514, 614, 641, 717, 656, 730, 747, 822, 673, 761, 770, 834, 789, 854, 871, 930, 324, 457, 486, 592, 504, 611, 623, 718, 528, 621, 643, 738, 660, 757, 769, 832, 547, 652, 671, 751, 687, 762, 783, 852, 703, 788, 797, 859, 812, 878, 888, 941, 583, 675, 695, 777, 725, 791, 800, 867, 731, 810, 823, 885, 837, 894, 903, 950, 750, 825, 842, 897, 858, 907, 915, 955, 868, 918, 927, 965, 936, 975, 984, 1007, 178, 252, 277, 379, 317, 399, 417, 538, 304, 423, 441, 555, 456, 574, 595, 688, 321, 449, 477, 572, 494, 597, 609, 709, 516, 619, 638, 721, 654, 745, 752, 833, 328, 473, 490, 607, 522, 636, 628, 733, 545, 646, 662, 748, 678, 772, 774, 850, 568, 667, 691, 765, 702, 781, 795, 860, 723, 804, 811, 879, 824, 889, 900, 947, 353, 526, 502, 644, 559, 670, 664, 766, 593, 682, 698, 785, 711, 792, 808, 875, 606, 699, 715, 796, 743, 817, 826, 886, 754, 827, 839, 896, 856, 910, 917, 961, 639, 720, 740, 818, 767, 845, 853, 904, 776, 840, 862, 912, 873, 922, 933, 968, 799, 869, 880, 929, 892, 939, 924, 979, 901, 945, 953, 972, 956, 988, 994, 1012, 374, 575, 542, 681, 604, 701, 706, 802, 631, 727, 735, 820, 755, 831, 849, 906, 657, 741, 763, 828, 780, 851, 864, 913, 793, 872, 861, 921, 887, 932, 938, 973, 685, 778, 759, 855, 807, 866, 881, 925, 815, 884, 891, 942, 902, 935, 949, 981, 838, 895, 908, 946, 916, 954, 963, 986, 923, 959, 969, 997, 976, 990, 1000, 1016, 724, 784, 814, 882, 829, 890, 899, 944, 844, 909, 905, 957, 920, 951, 964, 991, 863, 911, 926, 967, 934, 962, 978, 995, 943, 980, 970, 998, 985, 1003, 1005, 1014, 876, 931, 940, 971, 952, 977, 982, 1001, 958, 983, 993, 1008, 987, 1002, 1010, 1019, 966, 996, 989, 1006, 999, 1013, 1009, 1018, 1004, 1011, 1015, 1020, 1017, 1021, 1022, 1023]
[0, 1, 4, 9, 2, 11, 7, 23, 3, 14, 17, 27, 10, 31, 34, 66, 5, 16, 12, 29, 19, 37, 45, 71, 21, 48, 39, 79, 54, 86, 92, 145, 6, 15, 20, 40, 24, 47, 44, 82, 28, 52, 59, 89, 63, 99, 103, 152, 33, 56, 68, 102, 72, 110, 116, 163, 78, 118, 126, 176, 134, 182, 196, 263, 8, 22, 25, 50, 32, 55, 62, 96, 35, 70, 57, 104, 75, 113, 124, 170, 41, 65, 76, 117, 85, 120, 132, 181, 93, 135, 143, 191, 153, 206, 215, 284, 49, 81, 90, 129, 100, 137, 146, 202, 106, 148, 162, 214, 174, 221, 234, 298, 119, 168, 177, 228, 186, 236, 247, 308, 201, 252, 262, 322, 273, 330, 349, 406, 13, 26, 38, 64, 30, 74, 69, 121, 43, 77, 84, 130, 91, 140, 142, 197, 53, 88, 95, 138, 101, 150, 161, 210, 114, 160, 169, 220, 180, 230, 242, 307, 58, 98, 111, 159, 108, 164, 172, 229, 128, 179, 187, 237, 199, 251, 259, 318, 133, 189, 203, 254, 213, 272, 279, 332, 226, 285, 289, 343, 303, 360, 368, 423, 61, 109, 123, 178, 131, 188, 195, 253, 144, 192, 205, 269, 216, 274, 286, 345, 154, 211, 225, 281, 235, 293, 300, 352, 245, 306, 314, 361, 327, 379, 388, 434, 171, 231, 239, 295, 255, 309, 316, 373, 268, 323, 331, 385, 346, 391, 398, 444, 275, 334, 350, 393, 359, 404, 412, 449, 367, 413, 421, 455, 431, 464, 473, 493, 18, 36, 42, 80, 46, 87, 94, 147, 51, 97, 105, 155, 112, 167, 175, 246, 60, 107, 115, 173, 127, 183, 185, 248, 136, 190, 200, 261, 212, 271, 276, 339, 67, 122, 125, 184, 139, 194, 204, 270, 151, 209, 217, 277, 224, 294, 296, 354, 158, 223, 232, 291, 241, 302, 312, 362, 257, 319, 324, 374, 335, 384, 395, 439, 73, 141, 149, 207, 157, 219, 227, 287, 166, 233, 238, 305, 249, 310, 321, 377, 198, 244, 256, 320, 264, 325, 336, 386, 283, 337, 347, 392, 358, 405, 411, 451, 218, 266, 278, 329, 290, 344, 355, 399, 297, 348, 363, 409, 375, 416, 426, 458, 315, 369, 378, 422, 387, 428, 418, 468, 396, 437, 445, 462, 448, 477, 481, 496, 83, 156, 165, 240, 193, 250, 258, 317, 208, 260, 267, 333, 282, 340, 353, 401, 222, 280, 288, 338, 301, 351, 365, 407, 311, 370, 371, 415, 382, 425, 430, 463, 243, 299, 292, 356, 313, 366, 376, 419, 328, 381, 389, 429, 397, 433, 441, 470, 342, 390, 402, 438, 408, 446, 453, 475, 417, 450, 459, 484, 465, 486, 487, 501, 265, 304, 326, 380, 341, 383, 394, 435, 357, 403, 400, 443, 414, 447, 454, 479, 364, 410, 420, 457, 427, 452, 467, 482, 436, 469, 460, 488, 474, 490, 495, 504, 372, 424, 432, 461, 440, 466, 471, 489, 442, 472, 480, 494, 476, 491, 499, 507, 456, 483, 478, 497, 485, 500, 498, 506, 492, 502, 503, 508, 505, 509, 510, 511]
[0, 1, 4, 9, 2, 11, 7, 22, 3, 14, 17, 26, 10, 30, 33, 60, 5, 16, 12, 28, 18, 35, 42, 64, 20, 44, 37, 71, 49, 76, 81, 122, 6, 15, 19, 38, 23, 43, 41, 73, 27, 47, 54, 78, 57, 86, 90, 126, 32, 51, 61, 89, 65, 95, 99, 133, 70, 101, 107, 141, 114, 147, 155, 192, 8, 21, 24, 46, 31, 50, 56, 84, 34, 63, 52, 91, 67, 97, 106, 137, 39, 59, 68, 100, 75, 103, 112, 146, 82, 115, 120, 152, 127, 162, 167, 201, 45, 72, 79, 109, 87, 116, 123, 159, 92, 124, 132, 166, 140, 170, 177, 207, 102, 135, 142, 173, 148, 179, 184, 212, 158, 186, 191, 217, 196, 220, 227, 243, 13, 25, 36, 58, 29, 66, 62, 104, 40, 69, 74, 110, 80, 118, 119, 156, 48, 77, 83, 117, 88, 125, 131, 163, 98, 130, 136, 169, 145, 175, 182, 211, 53, 85, 96, 129, 93, 134, 139, 174, 108, 144, 149, 180, 157, 185, 190, 216, 113, 151, 160, 188, 165, 195, 199, 222, 172, 202, 204, 224, 209, 231, 234, 247, 55, 94, 105, 143, 111, 150, 154, 187, 121, 153, 161, 194, 168, 197, 203, 225, 128, 164, 171, 200, 178, 205, 208, 229, 183, 210, 214, 232, 219, 236, 238, 249, 138, 176, 181, 206, 189, 213, 215, 235, 193, 218, 221, 237, 226, 239, 241, 250, 198, 223, 228, 240, 230, 242, 244, 251, 233, 245, 246, 252, 248, 253, 254, 255]
[0, 1, 4, 9, 2, 11, 7, 21, 3, 13, 16, 24, 10, 27, 30, 51, 5, 15, 12, 26, 17, 32, 37, 54, 19, 39, 33, 59, 43, 63, 66, 90, 6, 14, 18, 34, 22, 38, 36, 61, 25, 42, 47, 64, 49, 69, 72, 93, 29, 45, 52, 71, 55, 75, 77, 96, 58, 79, 83, 100, 86, 103, 106, 119, 8, 20, 23, 41, 28, 44, 48, 68, 31, 53, 46, 73, 56, 76, 82, 98, 35, 50, 57, 78, 62, 81, 85, 102, 67, 87, 89, 105, 94, 109, 111, 121, 40, 60, 65, 84, 70, 88, 91, 108, 74, 92, 95, 110, 99, 112, 114, 122, 80, 97, 101, 113, 104, 115, 116, 123, 107, 117, 118, 124, 120, 125, 126, 127]
[0, 1, 4, 8, 2, 10, 7, 19, 3, 12, 15, 21, 9, 24, 26, 39, 5, 14, 11, 23, 16, 27, 31, 41, 18, 33, 28, 44, 35, 46, 48, 57, 6, 13, 17, 29, 20, 32, 30, 45, 22, 34, 37, 47, 38, 49, 51, 58, 25, 36, 40, 50, 42, 52, 53, 59, 43, 54, 55, 60, 56, 61, 62, 63]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 256, 36, 24, 20, 65, 34, 7, 129, 66, 512, 11, 40, 68, 13, 19, 130, 48, 14, 72, 257, 21, 132, 35, 258, 26, 513, 80, 37, 25, 22, 136, 38, 260, 96, 514, 264, 67, 41, 144, 28, 69, 42, 516, 49, 74, 272, 160, 520, 288, 528, 70, 131, 544, 192, 44, 81, 50, 73, 133, 15, 52, 320, 23, 134, 76, 82, 56, 384, 137, 97, 27, 39, 259, 84, 138, 145, 261, 29, 43, 98, 515, 88, 140, 30, 146, 71, 262, 265, 161, 576, 45, 100, 640, 51, 148, 46, 75, 266, 273, 517, 104, 162, 53, 193, 152, 77, 164, 768, 268, 274, 518, 54, 83, 57, 521, 112, 135, 78, 289, 194, 85, 276, 522, 58, 168, 139, 99, 86, 60, 280, 89, 290, 529, 524, 196, 141, 101, 147, 176, 142, 530, 31, 292, 200, 263, 90, 149, 321, 322, 102, 545, 105, 532, 92, 47, 296, 163, 150, 546, 208, 385, 267, 304, 324, 153, 165, 536, 386, 106, 55, 328, 577, 548, 113, 154, 79, 224, 108, 269, 166, 578, 519, 552, 195, 270, 641, 523, 580, 560, 275, 59, 169, 156, 291, 277, 114, 87, 197, 116, 170, 61, 531, 525, 642, 281, 278, 526, 177, 293, 388, 91, 584, 769, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 644, 202, 592, 323, 392, 297, 151, 209, 284, 180, 107, 94, 204, 770, 648, 298, 352, 533, 325, 608, 155, 210, 400, 305, 547, 300, 109, 184, 534, 772, 326, 656, 115, 167, 157, 537, 225, 306, 329, 110, 117, 212, 171, 330, 226, 549, 776, 538, 387, 308, 216, 416, 672, 337, 158, 271, 118, 279, 550, 332, 579, 540, 389, 173, 121, 553, 199, 784, 179, 228, 338, 312, 704, 390, 122, 554, 581, 393, 283, 174, 203, 340, 448, 561, 353, 394, 181, 527, 582, 556, 63, 295, 285, 232, 124, 643, 585, 562, 205, 182, 286, 299, 354, 211, 401, 185, 396, 344, 586, 645, 593, 535, 240, 206, 95, 327, 564, 800, 402, 356, 307, 301, 417, 186, 404, 213, 418, 539, 568, 594, 649, 771, 227, 832, 588, 646, 302, 111, 360, 214, 551, 609, 896, 188, 309, 449, 331, 217, 408, 229, 541, 159, 420, 596, 650, 773, 310, 333, 119, 339, 218, 368, 657, 230, 391, 542, 610, 233, 313, 334, 774, 658, 612, 175, 123, 314, 555, 600, 583, 341, 450, 652, 220, 557, 424, 395, 777, 673, 355, 287, 183, 234, 125, 241, 563, 660, 558, 616, 778, 674, 316, 342, 345, 397, 452, 432, 207, 785, 403, 357, 187, 587, 565, 664, 624, 780, 236, 126, 242, 398, 705, 346, 456, 358, 405, 303, 569, 595, 244, 786, 189, 676, 589, 566, 647, 361, 706, 215, 348, 419, 406, 464, 801, 590, 409, 680, 788, 362, 570, 597, 572, 311, 708, 219, 598, 601, 651, 611, 410, 802, 421, 792, 231, 602, 653, 248, 688, 369, 190, 480, 335, 364, 613, 659, 654, 422, 315, 221, 370, 425, 235, 451, 412, 343, 372, 317, 614, 775, 222, 543, 426, 453, 237, 559, 833, 804, 712, 834, 661, 808, 779, 617, 604, 433, 720, 816, 836, 347, 897, 243, 662, 454, 318, 675, 376, 567, 618, 665, 736, 898, 840, 781, 428, 625, 238, 359, 458, 399, 245, 434, 677, 457, 591, 349, 127, 666, 787, 678, 620, 782, 626, 571, 191, 407, 350, 436, 465, 246, 460, 363, 681, 599, 249, 411, 668, 707, 573, 789, 803, 790, 682, 365, 440, 628, 709, 374, 423, 466, 250, 371, 689, 793, 481, 413, 603, 574, 366, 468, 655, 900, 805, 429, 615, 710, 252, 373, 848, 684, 713, 605, 690, 632, 482, 794, 806, 427, 414, 663, 835, 904, 809, 714, 619, 796, 472, 223, 455, 692, 721, 837, 716, 864, 810, 606, 912, 722, 696, 377, 817, 435, 812, 319, 484, 430, 621, 838, 667, 239, 461, 378, 459, 627, 622, 437, 488, 380, 818, 496, 669, 679, 724, 841, 629, 351, 467, 438, 737, 251, 462, 442, 441, 469, 247, 683, 842, 738, 899, 670, 783, 849, 820, 728, 928, 791, 367, 901, 630, 685, 844, 633, 711, 253, 691, 824, 902, 686, 740, 850, 375, 444, 470, 483, 415, 485, 905, 795, 473, 634, 744, 852, 960, 865, 693, 797, 906, 715, 807, 474, 636, 694, 254, 717, 575, 811, 697, 866, 798, 379, 431, 913, 607, 489, 723, 486, 908, 718, 813, 476, 856, 839, 725, 698, 914, 752, 868, 819, 814, 439, 929, 490, 623, 671, 739, 916, 872, 381, 930, 497, 821, 463, 726, 961, 843, 492, 631, 729, 700, 443, 741, 845, 920, 382, 822, 851, 730, 498, 880, 742, 445, 903, 687, 825, 932, 471, 635, 846, 500, 745, 962, 826, 732, 446, 936, 255, 853, 475, 753, 695, 867, 637, 907, 487, 746, 828, 854, 504, 799, 909, 857, 964, 719, 477, 915, 699, 493, 748, 944, 858, 873, 638, 968, 478, 383, 754, 869, 491, 910, 815, 917, 727, 870, 701, 931, 499, 860, 756, 922, 731, 976, 918, 874, 823, 502, 933, 743, 760, 881, 494, 702, 921, 827, 876, 501, 847, 992, 934, 447, 733, 882, 937, 963, 747, 505, 855, 924, 734, 829, 965, 884, 938, 506, 749, 945, 966, 755, 859, 940, 830, 911, 871, 639, 888, 479, 946, 750, 969, 508, 861, 757, 970, 919, 875, 862, 758, 948, 977, 923, 972, 761, 877, 952, 495, 703, 935, 978, 883, 762, 503, 925, 878, 735, 993, 885, 939, 994, 980, 926, 764, 941, 967, 886, 831, 947, 507, 889, 984, 751, 942, 996, 971, 890, 509, 949, 973, 1000, 892, 950, 863, 759, 1008, 510, 979, 953, 763, 974, 954, 879, 981, 982, 927, 995, 765, 956, 887, 985, 997, 986, 943, 891, 998, 766, 511, 988, 1001, 951, 1002, 893, 975, 894, 1009, 955, 1004, 1010, 957, 983, 958, 987, 1012, 999, 1016, 767, 989, 1003, 990, 1005, 959, 1011, 1013, 895, 1006, 1014, 1017, 1018, 991, 1020, 1007, 1015, 1019, 1021, 1022, 1023]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 256, 36, 24, 20, 65, 34, 7, 129, 66, 11, 40, 68, 13, 19, 130, 48, 14, 72, 257, 21, 132, 35, 258, 26, 80, 37, 25, 22, 136, 38, 260, 96, 264, 67, 41, 144, 28, 69, 42, 49, 74, 272, 160, 288, 70, 131, 192, 44, 81, 50, 73, 133, 15, 52, 320, 23, 134, 76, 82, 56, 384, 137, 97, 27, 39, 259, 84, 138, 145, 261, 29, 43, 98, 88, 140, 30, 146, 71, 262, 265, 161, 45, 100, 51, 148, 46, 75, 266, 273, 104, 162, 53, 193, 152, 77, 164, 268, 274, 54, 83, 57, 112, 135, 78, 289, 194, 85, 276, 58, 168, 139, 99, 86, 60, 280, 89, 290, 196, 141, 101, 147, 176, 142, 31, 292, 200, 263, 90, 149, 321, 322, 102, 105, 92, 47, 296, 163, 150, 208, 385, 267, 304, 324, 153, 165, 386, 106, 55, 328, 113, 154, 79, 224, 108, 269, 166, 195, 270, 275, 59, 169, 156, 291, 277, 114, 87, 197, 116, 170, 61, 281, 278, 177, 293, 388, 91, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 202, 323, 392, 297, 151, 209, 284, 180, 107, 94, 204, 298, 352, 325, 155, 210, 400, 305, 300, 109, 184, 326, 115, 167, 157, 225, 306, 329, 110, 117, 212, 171, 330, 226, 387, 308, 216, 416, 337, 158, 271, 118, 279, 332, 389, 173, 121, 199, 179, 228, 338, 312, 390, 122, 393, 283, 174, 203, 340, 448, 353, 394, 181, 63, 295, 285, 232, 124, 205, 182, 286, 299, 354, 211, 401, 185, 396, 344, 240, 206, 95, 327, 402, 356, 307, 301, 417, 186, 404, 213, 418, 227, 302, 111, 360, 214, 188, 309, 449, 331, 217, 408, 229, 159, 420, 310, 333, 119, 339, 218, 368, 230, 391, 233, 313, 334, 175, 123, 314, 341, 450, 220, 424, 395, 355, 287, 183, 234, 125, 241, 316, 342, 345, 397, 452, 432, 207, 403, 357, 187, 236, 126, 242, 398, 346, 456, 358, 405, 303, 244, 189, 361, 215, 348, 419, 406, 464, 409, 362, 311, 219, 410, 421, 231, 248, 369, 190, 480, 335, 364, 422, 315, 221, 370, 425, 235, 451, 412, 343, 372, 317, 222, 426, 453, 237, 433, 347, 243, 454, 318, 376, 428, 238, 359, 458, 399, 245, 434, 457, 349, 127, 191, 407, 350, 436, 465, 246, 460, 363, 249, 411, 365, 440, 374, 423, 466, 250, 371, 481, 413, 366, 468, 429, 252, 373, 482, 427, 414, 472, 223, 455, 377, 435, 319, 484, 430, 239, 461, 378, 459, 437, 488, 380, 496, 351, 467, 438, 251, 462, 442, 441, 469, 247, 367, 253, 375, 444, 470, 483, 415, 485, 473, 474, 254, 379, 431, 489, 486, 476, 439, 490, 381, 497, 463, 492, 443, 382, 498, 445, 471, 500, 446, 255, 475, 487, 504, 477, 493, 478, 383, 491, 499, 502, 494, 501, 447, 505, 506, 479, 508, 495, 503, 507, 509, 510, 511]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 36, 24, 20, 65, 34, 7, 129, 66, 11, 40, 68, 13, 19, 130, 48, 14, 72, 21, 132, 35, 26, 80, 37, 25, 22, 136, 38, 96, 67, 41, 144, 28, 69, 42, 49, 74, 160, 70, 131, 192, 44, 81, 50, 73, 133, 15, 52, 23, 134, 76, 82, 56, 137, 97, 27, 39, 84, 138, 145, 29, 43, 98, 88, 140, 30, 146, 71, 161, 45, 100, 51, 148, 46, 75, 104, 162, 53, 193, 152, 77, 164, 54, 83, 57, 112, 135, 78, 194, 85, 58, 168, 139, 99, 86, 60, 89, 196, 141, 101, 147, 176, 142, 31, 200, 90, 149, 102, 105, 92, 47, 163, 150, 208, 153, 165, 106, 55, 113, 154, 79, 224, 108, 166, 195, 59, 169, 156, 114, 87, 197, 116, 170, 61, 177, 91, 198, 172, 120, 201, 62, 143, 103, 178, 93, 202, 151, 209, 180, 107, 94, 204, 155, 210, 109, 184, 115, 167, 157, 225, 110, 117, 212, 171, 226, 216, 158, 118, 173, 121, 199, 179, 228, 122, 174, 203, 181, 63, 232, 124, 205, 182, 211, 185, 240, 206, 95, 186, 213, 227, 111, 214, 188, 217, 229, 159, 119, 218, 230, 233, 175, 123, 220, 183, 234, 125, 241, 207, 187, 236, 126, 242, 244, 189, 215, 219, 231, 248, 190, 221, 235, 222, 237, 243, 238, 245, 127, 191, 246, 249, 250, 252, 223, 239, 251, 247, 253, 254, 255]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 12, 33, 36, 24, 20, 65, 34, 7, 66, 11, 40, 68, 13, 19, 48, 14, 72, 21, 35, 26, 80, 37, 25, 22, 38, 96, 67, 41, 28, 69, 42, 49, 74, 70, 44, 81, 50, 73, 15, 52, 23, 76, 82, 56, 97, 27, 39, 84, 29, 43, 98, 88, 30, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 78, 85, 58, 99, 86, 60, 89, 101, 31, 90, 102, 105, 92, 47, 106, 55, 113, 79, 108, 59, 114, 87, 116, 61, 91, 120, 62, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 9, 6, 17, 10, 18, 12, 33, 36, 24, 20, 34, 7, 11, 40, 13, 19, 48, 14, 21, 35, 26, 37, 25, 22, 38, 41, 28, 42, 49, 44, 50, 15, 52, 23, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 28, 16, 31, 35, 77, 5, 12, 14, 32, 21, 38, 47, 80, 20, 46, 42, 88, 57, 95, 101, 159, 6, 17, 23, 40, 19, 45, 49, 89, 29, 55, 59, 96, 72, 108, 113, 172, 34, 61, 74, 111, 78, 120, 129, 187, 84, 131, 141, 208, 146, 218, 236, 333, 9, 22, 26, 54, 30, 58, 68, 103, 36, 75, 62, 114, 82, 123, 135, 193, 44, 73, 83, 130, 91, 138, 145, 214, 99, 148, 163, 228, 171, 242, 254, 357, 51, 87, 97, 144, 109, 154, 167, 239, 118, 169, 186, 253, 195, 269, 282, 380, 133, 191, 213, 275, 216, 283, 299, 401, 233, 307, 317, 417, 337, 435, 460, 577, 15, 25, 33, 69, 39, 76, 81, 134, 48, 86, 92, 143, 100, 153, 157, 238, 56, 93, 102, 155, 112, 164, 175, 249, 122, 182, 192, 263, 210, 277, 297, 394, 64, 106, 119, 174, 124, 183, 197, 276, 142, 209, 217, 285, 232, 306, 322, 416, 156, 225, 240, 311, 252, 329, 342, 433, 270, 348, 366, 453, 386, 473, 511, 585, 71, 121, 137, 201, 152, 215, 231, 309, 161, 234, 244, 323, 255, 341, 356, 449, 177, 250, 264, 346, 284, 368, 382, 480, 293, 390, 403, 496, 425, 520, 531, 648, 194, 279, 287, 375, 312, 392, 406, 505, 336, 410, 434, 523, 459, 535, 567, 670, 355, 436, 461, 552, 471, 571, 590, 695, 508, 595, 611, 690, 627, 714, 743, 816, 18, 37, 41, 90, 50, 94, 104, 162, 53, 105, 115, 179, 126, 196, 202, 298, 63, 116, 127, 207, 139, 212, 223, 300, 147, 222, 237, 321, 251, 335, 343, 432, 66, 136, 149, 211, 160, 226, 241, 334, 173, 248, 258, 344, 268, 364, 379, 468, 180, 266, 280, 363, 292, 387, 399, 494, 314, 411, 418, 519, 443, 528, 555, 664, 79, 165, 166, 246, 181, 261, 273, 358, 188, 281, 286, 389, 302, 400, 412, 513, 235, 296, 313, 402, 324, 422, 444, 526, 350, 445, 464, 550, 481, 576, 587, 686, 259, 327, 345, 431, 362, 452, 466, 568, 381, 478, 490, 592, 514, 604, 619, 707, 404, 510, 521, 612, 527, 628, 608, 721, 557, 660, 672, 750, 678, 778, 794, 845, 85, 178, 185, 291, 227, 305, 316, 407, 247, 320, 328, 428, 349, 446, 462, 570, 265, 347, 361, 451, 367, 467, 483, 586, 391, 487, 501, 596, 525, 616, 639, 725, 294, 365, 369, 482, 395, 503, 518, 609, 427, 522, 533, 638, 565, 624, 666, 751, 448, 546, 572, 662, 588, 676, 688, 770, 605, 693, 692, 790, 722, 801, 814, 879, 325, 388, 423, 524, 447, 534, 554, 649, 465, 574, 569, 673, 591, 671, 691, 782, 484, 589, 610, 687, 620, 694, 723, 806, 647, 729, 740, 818, 760, 834, 844, 905, 512, 615, 635, 724, 665, 726, 756, 824, 677, 754, 772, 848, 786, 837, 870, 924, 680, 780, 798, 856, 809, 875, 865, 930, 828, 885, 893, 946, 909, 954, 963, 984, 27, 43, 52, 98, 60, 117, 128, 199, 65, 132, 140, 204, 151, 220, 224, 330, 67, 150, 158, 219, 170, 260, 271, 354, 184, 278, 290, 370, 304, 393, 408, 532, 70, 168, 176, 267, 190, 288, 301, 383, 200, 308, 318, 419, 332, 426, 439, 536, 206, 326, 340, 437, 359, 455, 476, 558, 371, 469, 491, 584, 493, 599, 618, 745, 107, 189, 198, 303, 205, 319, 331, 421, 229, 339, 351, 454, 377, 475, 486, 575, 245, 353, 372, 470, 396, 492, 497, 594, 420, 498, 506, 617, 545, 632, 656, 753, 262, 384, 409, 500, 415, 515, 529, 625, 440, 544, 559, 645, 581, 667, 675, 773, 457, 566, 583, 674, 606, 685, 709, 787, 634, 712, 730, 807, 741, 822, 842, 903, 110, 203, 221, 338, 243, 352, 378, 477, 257, 373, 397, 499, 424, 507, 517, 621, 274, 405, 414, 516, 438, 541, 553, 640, 456, 560, 578, 669, 597, 681, 700, 774, 295, 430, 442, 556, 474, 573, 580, 682, 488, 593, 603, 696, 630, 710, 718, 803, 509, 613, 633, 715, 650, 735, 742, 820, 659, 747, 764, 836, 789, 854, 871, 925, 315, 463, 479, 598, 495, 607, 626, 713, 539, 631, 644, 738, 653, 744, 758, 833, 547, 651, 658, 755, 683, 763, 783, 852, 704, 788, 797, 860, 813, 880, 888, 933, 561, 689, 698, 775, 719, 791, 800, 867, 731, 810, 825, 884, 838, 894, 907, 949, 766, 819, 846, 897, 858, 911, 916, 961, 868, 921, 929, 966, 940, 974, 983, 1003, 125, 230, 256, 374, 272, 398, 413, 530, 289, 429, 441, 543, 458, 564, 582, 701, 310, 450, 472, 579, 489, 600, 602, 706, 504, 614, 636, 728, 646, 736, 749, 829, 360, 485, 502, 601, 538, 623, 637, 739, 542, 643, 655, 746, 663, 759, 769, 850, 548, 661, 679, 768, 703, 781, 795, 864, 716, 804, 812, 873, 826, 889, 900, 944, 376, 537, 540, 641, 549, 652, 668, 762, 563, 684, 697, 785, 711, 792, 808, 876, 629, 702, 720, 796, 732, 817, 827, 886, 761, 831, 840, 898, 857, 910, 915, 960, 654, 734, 748, 821, 767, 847, 853, 902, 777, 841, 863, 914, 874, 922, 932, 969, 799, 869, 881, 928, 891, 935, 943, 976, 904, 947, 953, 981, 958, 989, 991, 1011, 385, 551, 562, 699, 622, 708, 717, 802, 642, 727, 737, 823, 757, 830, 849, 901, 657, 752, 765, 835, 776, 851, 862, 913, 793, 872, 859, 919, 887, 931, 939, 972, 705, 771, 779, 855, 805, 866, 878, 926, 815, 882, 892, 936, 899, 941, 950, 980, 839, 895, 906, 945, 917, 955, 959, 987, 923, 965, 968, 993, 975, 996, 998, 1008, 733, 784, 811, 883, 832, 890, 896, 942, 843, 908, 912, 952, 920, 956, 967, 990, 861, 918, 927, 964, 938, 970, 971, 997, 948, 977, 979, 999, 985, 1004, 1006, 1016, 877, 934, 937, 973, 951, 978, 982, 1001, 957, 986, 988, 1005, 994, 1007, 1012, 1018, 962, 992, 995, 1009, 1000, 1010, 1013, 1019, 1002, 1014, 1015, 1020, 1017, 1021, 1022, 1023]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 27, 16, 30, 34, 70, 5, 12, 14, 31, 21, 37, 45, 73, 20, 44, 41, 81, 54, 88, 93, 141, 6, 17, 23, 39, 19, 43, 47, 82, 28, 52, 56, 89, 65, 99, 103, 152, 33, 57, 67, 101, 71, 109, 116, 165, 77, 118, 126, 177, 131, 187, 199, 269, 9, 22, 26, 51, 29, 55, 62, 95, 35, 68, 58, 104, 75, 112, 121, 169, 42, 66, 76, 117, 84, 124, 130, 183, 91, 133, 145, 193, 151, 205, 215, 286, 49, 80, 90, 129, 100, 137, 149, 202, 107, 150, 164, 214, 171, 225, 234, 299, 119, 167, 182, 228, 185, 235, 247, 313, 196, 252, 259, 323, 273, 334, 347, 406, 15, 25, 32, 63, 38, 69, 74, 120, 46, 79, 85, 128, 92, 136, 140, 201, 53, 86, 94, 138, 102, 146, 155, 210, 111, 161, 168, 220, 179, 230, 245, 309, 60, 98, 108, 154, 113, 162, 173, 229, 127, 178, 186, 237, 195, 251, 262, 322, 139, 190, 203, 254, 213, 268, 275, 332, 226, 281, 293, 345, 302, 356, 372, 407, 64, 110, 123, 174, 135, 184, 194, 253, 143, 197, 206, 263, 216, 274, 285, 342, 156, 211, 221, 279, 236, 295, 301, 358, 242, 306, 315, 366, 327, 378, 387, 435, 170, 231, 239, 297, 255, 308, 317, 369, 272, 319, 333, 381, 346, 390, 398, 442, 284, 335, 348, 393, 355, 402, 412, 458, 370, 415, 422, 453, 429, 460, 469, 488, 18, 36, 40, 83, 48, 87, 96, 144, 50, 97, 105, 158, 114, 172, 175, 246, 59, 106, 115, 176, 125, 181, 189, 248, 132, 188, 200, 261, 212, 271, 276, 331, 61, 122, 134, 180, 142, 191, 204, 270, 153, 209, 217, 277, 224, 291, 298, 354, 159, 223, 232, 290, 241, 303, 311, 365, 257, 320, 324, 377, 336, 386, 395, 439, 72, 147, 148, 207, 160, 219, 227, 287, 166, 233, 238, 305, 249, 312, 321, 374, 198, 244, 256, 314, 264, 325, 337, 384, 283, 338, 350, 392, 359, 405, 409, 450, 218, 266, 278, 330, 289, 344, 352, 399, 300, 357, 364, 414, 375, 417, 426, 459, 316, 371, 379, 423, 385, 430, 419, 461, 396, 437, 444, 470, 448, 477, 482, 495, 78, 157, 163, 240, 192, 250, 258, 318, 208, 260, 267, 329, 282, 339, 349, 401, 222, 280, 288, 343, 294, 353, 361, 408, 307, 363, 367, 416, 383, 425, 433, 465, 243, 292, 296, 360, 310, 368, 376, 420, 328, 380, 388, 432, 397, 428, 441, 471, 341, 391, 403, 438, 410, 446, 452, 475, 418, 456, 455, 481, 462, 484, 487, 501, 265, 304, 326, 382, 340, 389, 394, 436, 351, 404, 400, 445, 413, 443, 454, 479, 362, 411, 421, 451, 427, 457, 463, 485, 434, 467, 468, 489, 474, 492, 494, 504, 373, 424, 431, 464, 440, 466, 473, 490, 447, 472, 476, 496, 480, 493, 499, 506, 449, 478, 483, 497, 486, 500, 498, 507, 491, 502, 503, 508, 505, 509, 510, 511]
[0, 1, 2, 7, 3, 8, 11, 23, 4, 10, 13, 26, 16, 29, 33, 63, 5, 12, 14, 30, 20, 35, 42, 65, 19, 41, 38, 72, 49, 77, 82, 120, 6, 17, 22, 37, 18, 40, 44, 73, 27, 47, 51, 78, 58, 86, 90, 127, 32, 52, 60, 88, 64, 94, 99, 134, 69, 101, 107, 142, 112, 150, 157, 194, 9, 21, 25, 46, 28, 50, 55, 84, 34, 61, 53, 91, 67, 97, 104, 137, 39, 59, 68, 100, 74, 106, 111, 146, 80, 113, 122, 152, 126, 161, 167, 203, 45, 71, 79, 110, 87, 116, 124, 159, 92, 125, 133, 166, 139, 171, 177, 207, 102, 135, 145, 173, 148, 178, 184, 213, 155, 186, 190, 218, 196, 222, 227, 243, 15, 24, 31, 56, 36, 62, 66, 103, 43, 70, 75, 109, 81, 115, 119, 158, 48, 76, 83, 117, 89, 123, 129, 163, 96, 131, 136, 169, 144, 175, 183, 212, 54, 85, 93, 128, 98, 132, 140, 174, 108, 143, 149, 180, 154, 185, 191, 217, 118, 151, 160, 188, 165, 193, 198, 220, 172, 200, 204, 225, 209, 230, 235, 244, 57, 95, 105, 141, 114, 147, 153, 187, 121, 156, 162, 192, 168, 197, 202, 224, 130, 164, 170, 199, 179, 205, 208, 231, 182, 210, 214, 232, 219, 236, 238, 249, 138, 176, 181, 206, 189, 211, 215, 233, 195, 216, 221, 237, 226, 239, 241, 250, 201, 223, 228, 240, 229, 242, 245, 252, 234, 246, 247, 251, 248, 253, 254, 255]
[0, 1, 2, 7, 3, 8, 11, 22, 4, 10, 13, 24, 15, 27, 30, 53, 5, 12, 14, 28, 19, 32, 38, 55, 18, 37, 34, 60, 43, 63, 67, 89, 6, 16, 21, 33, 17, 36, 39, 61, 25, 42, 45, 64, 49, 69, 72, 94, 29, 46, 51, 71, 54, 75, 77, 96, 58, 79, 83, 100, 86, 104, 107, 119, 9, 20, 23, 41, 26, 44, 48, 68, 31, 52, 47, 73, 56, 76, 81, 98, 35, 50, 57, 78, 62, 82, 85, 102, 66, 87, 90, 105, 93, 109, 111, 121, 40, 59, 65, 84, 70, 88, 91, 108, 74, 92, 95, 110, 99, 112, 114, 122, 80, 97, 101, 113, 103, 115, 116, 123, 106, 117, 118, 124, 120, 125, 126, 127]
[0, 1, 2, 7, 3, 8, 10, 20, 4, 9, 12, 21, 14, 23, 26, 40, 5, 11, 13, 24, 18, 27, 32, 42, 17, 31, 29, 44, 35, 46, 48, 57, 6, 15, 19, 28, 16, 30, 33, 45, 22, 34, 36, 47, 38, 49, 51, 58, 25, 37, 39, 50, 41, 52, 53, 59, 43, 54, 55, 60, 56, 61, 62, 63]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 256, 34, 24, 36, 7, 129, 66, 512, 11, 40, 68, 130, 19, 13, 48, 14, 72, 257, 21, 132, 35, 258, 26, 513, 80, 37, 25, 22, 136, 260, 264, 38, 514, 96, 67, 41, 144, 28, 69, 42, 516, 49, 74, 272, 160, 520, 288, 528, 192, 544, 70, 44, 131, 81, 50, 73, 15, 320, 133, 52, 23, 134, 384, 76, 137, 82, 56, 27, 97, 39, 259, 84, 138, 145, 261, 29, 43, 98, 515, 88, 140, 30, 146, 71, 262, 265, 161, 576, 45, 100, 640, 51, 148, 46, 75, 266, 273, 517, 104, 162, 53, 193, 152, 77, 164, 768, 268, 274, 518, 54, 83, 57, 521, 112, 135, 78, 289, 194, 85, 276, 522, 58, 168, 139, 99, 86, 60, 280, 89, 290, 529, 524, 196, 141, 101, 147, 176, 142, 530, 321, 31, 200, 90, 545, 292, 322, 532, 263, 149, 102, 105, 304, 296, 163, 92, 47, 267, 385, 546, 324, 208, 386, 150, 153, 165, 106, 55, 328, 536, 577, 548, 113, 154, 79, 269, 108, 578, 224, 166, 519, 552, 195, 270, 641, 523, 275, 580, 291, 59, 169, 560, 114, 277, 156, 87, 197, 116, 170, 61, 531, 525, 642, 281, 278, 526, 177, 293, 388, 91, 584, 769, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 644, 202, 592, 323, 392, 297, 770, 107, 180, 151, 209, 284, 648, 94, 204, 298, 400, 608, 352, 325, 533, 155, 210, 305, 547, 300, 109, 184, 534, 537, 115, 167, 225, 326, 306, 772, 157, 656, 329, 110, 117, 212, 171, 776, 330, 226, 549, 538, 387, 308, 216, 416, 271, 279, 158, 337, 550, 672, 118, 332, 579, 540, 389, 173, 121, 553, 199, 784, 179, 228, 338, 312, 704, 390, 174, 554, 581, 393, 283, 122, 448, 353, 561, 203, 63, 340, 394, 527, 582, 556, 181, 295, 285, 232, 124, 205, 182, 643, 562, 286, 585, 299, 354, 211, 401, 185, 396, 344, 586, 645, 593, 535, 240, 206, 95, 327, 564, 800, 402, 356, 307, 301, 417, 213, 568, 832, 588, 186, 646, 404, 227, 896, 594, 418, 302, 649, 771, 360, 539, 111, 331, 214, 309, 188, 449, 217, 408, 609, 596, 551, 650, 229, 159, 420, 310, 541, 773, 610, 657, 333, 119, 600, 339, 218, 368, 652, 230, 391, 313, 450, 542, 334, 233, 555, 774, 175, 123, 658, 612, 341, 777, 220, 314, 424, 395, 673, 583, 355, 287, 183, 234, 125, 557, 660, 616, 342, 316, 241, 778, 563, 345, 452, 397, 403, 207, 674, 558, 785, 432, 357, 187, 236, 664, 624, 587, 780, 705, 126, 242, 565, 398, 346, 456, 358, 405, 303, 569, 244, 595, 189, 566, 676, 361, 706, 589, 215, 786, 647, 348, 419, 406, 464, 680, 801, 362, 590, 409, 570, 788, 597, 572, 219, 311, 708, 598, 601, 651, 421, 792, 802, 611, 602, 410, 231, 688, 653, 248, 369, 190, 364, 654, 659, 335, 480, 315, 221, 370, 613, 422, 425, 451, 614, 543, 235, 412, 343, 372, 775, 317, 222, 426, 453, 237, 559, 833, 804, 712, 834, 661, 808, 779, 617, 604, 433, 720, 816, 836, 347, 897, 243, 662, 454, 318, 675, 618, 898, 781, 376, 428, 665, 736, 567, 840, 625, 238, 359, 457, 399, 787, 591, 678, 434, 677, 349, 245, 458, 666, 620, 363, 127, 191, 782, 407, 436, 626, 571, 465, 681, 246, 707, 350, 599, 668, 790, 460, 249, 682, 573, 411, 803, 789, 709, 365, 440, 628, 689, 374, 423, 466, 793, 250, 371, 481, 574, 413, 603, 366, 468, 655, 900, 805, 615, 684, 710, 429, 794, 252, 373, 605, 848, 690, 713, 632, 482, 806, 427, 904, 414, 223, 663, 692, 835, 619, 472, 455, 796, 809, 714, 721, 837, 716, 864, 810, 606, 912, 722, 696, 377, 435, 817, 319, 621, 812, 484, 430, 838, 667, 488, 239, 378, 459, 622, 627, 437, 380, 818, 461, 496, 669, 679, 724, 841, 629, 351, 467, 438, 737, 251, 462, 442, 441, 469, 247, 683, 842, 738, 899, 670, 783, 849, 820, 728, 928, 791, 367, 901, 630, 685, 844, 633, 711, 253, 691, 824, 902, 686, 740, 850, 375, 444, 470, 483, 415, 485, 905, 795, 473, 634, 744, 852, 960, 865, 693, 797, 906, 715, 807, 474, 636, 694, 254, 717, 575, 913, 798, 811, 379, 697, 431, 607, 489, 866, 723, 486, 908, 718, 813, 476, 856, 839, 725, 698, 914, 752, 868, 819, 814, 439, 929, 490, 623, 671, 739, 916, 463, 843, 381, 497, 930, 821, 726, 961, 872, 492, 631, 729, 700, 443, 741, 845, 920, 382, 822, 851, 730, 498, 880, 742, 445, 471, 635, 932, 687, 903, 825, 500, 846, 745, 826, 732, 446, 962, 936, 475, 853, 867, 637, 907, 487, 695, 746, 828, 753, 854, 857, 504, 799, 255, 964, 909, 719, 477, 915, 638, 748, 944, 869, 491, 699, 754, 858, 478, 968, 383, 910, 815, 976, 870, 917, 727, 493, 873, 701, 931, 756, 860, 499, 731, 823, 922, 874, 918, 502, 933, 743, 760, 881, 494, 702, 921, 501, 876, 847, 992, 447, 733, 827, 934, 882, 937, 963, 747, 505, 855, 924, 734, 829, 965, 938, 884, 506, 749, 945, 966, 755, 859, 940, 830, 911, 871, 639, 888, 479, 946, 750, 969, 508, 861, 757, 970, 919, 875, 862, 758, 948, 977, 923, 972, 761, 877, 952, 495, 703, 935, 978, 883, 762, 503, 925, 878, 735, 993, 885, 939, 994, 980, 926, 764, 941, 967, 886, 831, 947, 507, 889, 984, 751, 942, 996, 971, 890, 509, 949, 973, 1000, 892, 950, 863, 759, 1008, 510, 979, 953, 763, 974, 954, 879, 981, 982, 927, 995, 765, 956, 887, 985, 997, 986, 943, 891, 998, 766, 511, 988, 1001, 951, 1002, 893, 975, 894, 1009, 955, 1004, 1010, 957, 983, 958, 987, 1012, 999, 1016, 767, 989, 1003, 990, 1005, 959, 1011, 1013, 895, 1006, 1014, 1017, 1018, 991, 1020, 1007, 1015, 1019, 1021, 1022, 1023]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 256, 34, 24, 36, 7, 129, 66, 11, 40, 68, 130, 19, 13, 48, 14, 72, 257, 21, 132, 35, 258, 26, 80, 37, 25, 22, 136, 260, 264, 38, 96, 67, 41, 144, 28, 69, 42, 49, 74, 272, 160, 288, 192, 70, 44, 131, 81, 50, 73, 15, 320, 133, 52, 23, 134, 384, 76, 137, 82, 56, 27, 97, 39, 259, 84, 138, 145, 261, 29, 43, 98, 88, 140, 30, 146, 71, 262, 265, 161, 45, 100, 51, 148, 46, 75, 266, 273, 104, 162, 53, 193, 152, 77, 164, 268, 274, 54, 83, 57, 112, 135, 78, 289, 194, 85, 276, 58, 168, 139, 99, 86, 60, 280, 89, 290, 196, 141, 101, 147, 176, 142, 321, 31, 200, 90, 292, 322, 263, 149, 102, 105, 304, 296, 163, 92, 47, 267, 385, 324, 208, 386, 150, 153, 165, 106, 55, 328, 113, 154, 79, 269, 108, 224, 166, 195, 270, 275, 291, 59, 169, 114, 277, 156, 87, 197, 116, 170, 61, 281, 278, 177, 293, 388, 91, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 202, 323, 392, 297, 107, 180, 151, 209, 284, 94, 204, 298, 400, 352, 325, 155, 210, 305, 300, 109, 184, 115, 167, 225, 326, 306, 157, 329, 110, 117, 212, 171, 330, 226, 387, 308, 216, 416, 271, 279, 158, 337, 118, 332, 389, 173, 121, 199, 179, 228, 338, 312, 390, 174, 393, 283, 122, 448, 353, 203, 63, 340, 394, 181, 295, 285, 232, 124, 205, 182, 286, 299, 354, 211, 401, 185, 396, 344, 240, 206, 95, 327, 402, 356, 307, 301, 417, 213, 186, 404, 227, 418, 302, 360, 111, 331, 214, 309, 188, 449, 217, 408, 229, 159, 420, 310, 333, 119, 339, 218, 368, 230, 391, 313, 450, 334, 233, 175, 123, 341, 220, 314, 424, 395, 355, 287, 183, 234, 125, 342, 316, 241, 345, 452, 397, 403, 207, 432, 357, 187, 236, 126, 242, 398, 346, 456, 358, 405, 303, 244, 189, 361, 215, 348, 419, 406, 464, 362, 409, 219, 311, 421, 410, 231, 248, 369, 190, 364, 335, 480, 315, 221, 370, 422, 425, 451, 235, 412, 343, 372, 317, 222, 426, 453, 237, 433, 347, 243, 454, 318, 376, 428, 238, 359, 457, 399, 434, 349, 245, 458, 363, 127, 191, 407, 436, 465, 246, 350, 460, 249, 411, 365, 440, 374, 423, 466, 250, 371, 481, 413, 366, 468, 429, 252, 373, 482, 427, 414, 223, 472, 455, 377, 435, 319, 484, 430, 488, 239, 378, 459, 437, 380, 461, 496, 351, 467, 438, 251, 462, 442, 441, 469, 247, 367, 253, 375, 444, 470, 483, 415, 485, 473, 474, 254, 379, 431, 489, 486, 476, 439, 490, 463, 381, 497, 492, 443, 382, 498, 445, 471, 500, 446, 475, 487, 504, 255, 477, 491, 478, 383, 493, 499, 502, 494, 501, 447, 505, 506, 479, 508, 495, 503, 507, 509, 510, 511]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 34, 24, 36, 7, 129, 66, 11, 40, 68, 130, 19, 13, 48, 14, 72, 21, 132, 35, 26, 80, 37, 25, 22, 136, 38, 96, 67, 41, 144, 28, 69, 42, 49, 74, 160, 192, 70, 44, 131, 81, 50, 73, 15, 133, 52, 23, 134, 76, 137, 82, 56, 27, 97, 39, 84, 138, 145, 29, 43, 98, 88, 140, 30, 146, 71, 161, 45, 100, 51, 148, 46, 75, 104, 162, 53, 193, 152, 77, 164, 54, 83, 57, 112, 135, 78, 194, 85, 58, 168, 139, 99, 86, 60, 89, 196, 141, 101, 147, 176, 142, 31, 200, 90, 149, 102, 105, 163, 92, 47, 208, 150, 153, 165, 106, 55, 113, 154, 79, 108, 224, 166, 195, 59, 169, 114, 156, 87, 197, 116, 170, 61, 177, 91, 198, 172, 120, 201, 62, 143, 103, 178, 93, 202, 107, 180, 151, 209, 94, 204, 155, 210, 109, 184, 115, 167, 225, 157, 110, 117, 212, 171, 226, 216, 158, 118, 173, 121, 199, 179, 228, 174, 122, 203, 63, 181, 232, 124, 205, 182, 211, 185, 240, 206, 95, 213, 186, 227, 111, 214, 188, 217, 229, 159, 119, 218, 230, 233, 175, 123, 220, 183, 234, 125, 241, 207, 187, 236, 126, 242, 244, 189, 215, 219, 231, 248, 190, 221, 235, 222, 237, 243, 238, 245, 127, 191, 246, 249, 250, 252, 223, 239, 251, 247, 253, 254, 255]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 12, 33, 65, 20, 34, 24, 36, 7, 66, 11, 40, 68, 19, 13, 48, 14, 72, 21, 35, 26, 80, 37, 25, 22, 38, 96, 67, 41, 28, 69, 42, 49, 74, 70, 44, 81, 50, 73, 15, 52, 23, 76, 82, 56, 27, 97, 39, 84, 29, 43, 98, 88, 30, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 78, 85, 58, 99, 86, 60, 89, 101, 31, 90, 102, 105, 92, 47, 106, 55, 113, 79, 108, 59, 114, 87, 116, 61, 91, 120, 62, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 9, 6, 17, 10, 18, 12, 33, 20, 34, 24, 36, 7, 11, 40, 19, 13, 48, 14, 21, 35, 26, 37, 25, 22, 38, 41, 28, 42, 49, 44, 50, 15, 52, 23, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 28, 16, 33, 35, 76, 5, 12, 14, 32, 19, 38, 47, 80, 22, 46, 42, 87, 57, 95, 101, 160, 6, 17, 21, 40, 23, 45, 51, 89, 29, 55, 59, 96, 71, 108, 113, 175, 34, 61, 74, 111, 79, 120, 129, 186, 86, 131, 141, 208, 146, 218, 236, 327, 9, 18, 26, 54, 30, 58, 70, 103, 36, 75, 62, 114, 83, 123, 135, 193, 44, 73, 85, 130, 91, 138, 145, 214, 99, 148, 162, 228, 174, 242, 256, 357, 53, 88, 97, 144, 109, 154, 169, 239, 118, 170, 185, 250, 195, 269, 282, 382, 133, 191, 211, 273, 216, 283, 301, 403, 233, 307, 322, 419, 337, 434, 460, 582, 15, 25, 31, 72, 39, 78, 81, 134, 48, 84, 92, 143, 100, 153, 157, 238, 56, 93, 102, 155, 112, 168, 182, 252, 122, 183, 192, 264, 213, 279, 297, 395, 64, 106, 119, 173, 124, 184, 198, 274, 142, 209, 217, 285, 232, 306, 317, 418, 156, 225, 240, 311, 251, 333, 339, 432, 270, 348, 370, 453, 386, 472, 511, 583, 68, 121, 137, 201, 152, 215, 231, 309, 161, 234, 244, 326, 257, 338, 356, 447, 180, 253, 265, 346, 284, 366, 384, 478, 293, 388, 406, 494, 424, 518, 532, 641, 197, 275, 288, 373, 312, 394, 409, 506, 336, 415, 433, 526, 454, 535, 567, 671, 355, 440, 461, 552, 470, 577, 591, 695, 509, 598, 613, 690, 629, 714, 743, 830, 20, 37, 41, 90, 49, 94, 104, 167, 50, 105, 115, 176, 126, 194, 202, 295, 63, 116, 127, 205, 139, 212, 223, 296, 147, 222, 237, 321, 254, 335, 342, 431, 66, 136, 149, 207, 164, 226, 241, 334, 172, 248, 258, 344, 268, 364, 377, 468, 171, 266, 277, 363, 292, 385, 397, 495, 314, 411, 425, 517, 439, 531, 555, 663, 77, 159, 165, 246, 179, 262, 276, 358, 187, 281, 287, 383, 302, 402, 414, 515, 235, 298, 313, 405, 328, 422, 438, 528, 350, 443, 464, 550, 481, 576, 593, 686, 261, 324, 345, 430, 362, 452, 466, 568, 380, 475, 487, 581, 512, 605, 619, 707, 407, 510, 519, 614, 529, 630, 609, 721, 560, 660, 672, 749, 677, 779, 794, 846, 82, 177, 181, 291, 227, 305, 316, 410, 247, 320, 329, 427, 349, 445, 463, 570, 259, 347, 361, 446, 372, 467, 483, 585, 389, 489, 505, 601, 527, 617, 640, 725, 294, 365, 376, 482, 396, 500, 521, 610, 426, 522, 533, 638, 561, 627, 667, 751, 451, 546, 574, 661, 586, 676, 688, 770, 606, 693, 692, 790, 722, 801, 813, 877, 323, 387, 412, 523, 444, 534, 554, 647, 465, 569, 578, 673, 597, 679, 691, 777, 484, 589, 611, 687, 620, 694, 723, 802, 646, 729, 740, 816, 760, 834, 844, 905, 516, 615, 636, 724, 666, 726, 756, 821, 670, 753, 772, 840, 786, 853, 870, 924, 680, 780, 798, 859, 808, 873, 865, 930, 828, 885, 893, 946, 909, 954, 963, 984, 27, 43, 52, 98, 60, 117, 128, 199, 65, 132, 140, 204, 151, 220, 224, 330, 67, 150, 158, 219, 166, 263, 271, 354, 188, 272, 290, 381, 304, 398, 413, 525, 69, 163, 178, 267, 190, 289, 299, 392, 200, 308, 318, 416, 332, 435, 449, 536, 210, 325, 341, 442, 359, 462, 473, 564, 367, 469, 490, 588, 493, 600, 616, 745, 107, 189, 196, 303, 206, 319, 331, 429, 229, 343, 351, 457, 369, 477, 488, 572, 245, 353, 375, 471, 391, 492, 497, 594, 404, 498, 504, 618, 545, 631, 656, 752, 260, 390, 400, 503, 421, 520, 524, 624, 437, 544, 557, 645, 580, 664, 674, 773, 456, 566, 587, 675, 607, 685, 709, 787, 635, 712, 730, 803, 741, 819, 836, 903, 110, 203, 221, 340, 243, 352, 371, 480, 255, 378, 393, 499, 408, 508, 513, 621, 280, 401, 420, 514, 436, 541, 553, 642, 455, 562, 579, 669, 595, 681, 700, 774, 300, 428, 448, 556, 474, 575, 573, 682, 485, 590, 599, 696, 625, 710, 718, 805, 507, 608, 633, 715, 643, 735, 742, 822, 659, 750, 764, 841, 789, 855, 871, 925, 315, 459, 476, 592, 496, 604, 626, 713, 539, 634, 650, 738, 653, 744, 758, 833, 547, 651, 658, 755, 683, 763, 783, 852, 704, 788, 797, 860, 812, 878, 888, 933, 563, 689, 698, 775, 719, 791, 800, 867, 731, 810, 823, 884, 837, 894, 907, 949, 766, 825, 842, 897, 857, 911, 916, 961, 868, 921, 929, 966, 940, 974, 983, 1003, 125, 230, 249, 379, 278, 399, 417, 530, 286, 423, 441, 543, 458, 559, 584, 701, 310, 450, 479, 571, 491, 603, 596, 706, 501, 612, 628, 728, 648, 736, 747, 829, 360, 486, 502, 602, 538, 623, 637, 739, 542, 649, 655, 748, 665, 759, 769, 848, 548, 662, 678, 768, 703, 782, 795, 861, 716, 807, 811, 879, 824, 889, 900, 944, 368, 537, 540, 644, 549, 652, 668, 762, 565, 684, 697, 778, 711, 792, 809, 875, 632, 702, 720, 796, 732, 817, 826, 886, 761, 827, 843, 898, 858, 910, 915, 960, 654, 734, 754, 818, 767, 839, 850, 902, 785, 854, 863, 914, 874, 922, 932, 969, 799, 869, 881, 928, 892, 935, 943, 976, 904, 947, 953, 981, 958, 989, 991, 1011, 374, 551, 558, 699, 622, 708, 717, 806, 639, 727, 737, 820, 757, 832, 847, 901, 657, 746, 765, 835, 776, 851, 864, 913, 793, 872, 862, 919, 887, 931, 939, 972, 705, 771, 781, 856, 804, 866, 880, 926, 815, 882, 891, 936, 899, 941, 950, 980, 838, 895, 906, 945, 917, 955, 959, 987, 923, 965, 968, 993, 975, 996, 998, 1008, 733, 784, 814, 883, 831, 890, 896, 942, 845, 908, 912, 952, 920, 956, 967, 990, 849, 918, 927, 964, 938, 970, 971, 997, 948, 977, 979, 999, 985, 1004, 1006, 1016, 876, 934, 937, 973, 951, 978, 982, 1001, 957, 986, 988, 1005, 994, 1007, 1012, 1018, 962, 992, 995, 1009, 1000, 1010, 1013, 1019, 1002, 1014, 1015, 1020, 1017, 1021, 1022, 1023]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 27, 16, 32, 34, 69, 5, 12, 14, 31, 19, 37, 45, 73, 22, 44, 41, 80, 54, 88, 93, 142, 6, 17, 21, 39, 23, 43, 49, 82, 28, 52, 56, 89, 64, 99, 103, 155, 33, 57, 67, 101, 72, 109, 116, 165, 79, 118, 126, 178, 131, 187, 199, 266, 9, 18, 26, 51, 29, 55, 63, 95, 35, 68, 58, 104, 76, 112, 121, 169, 42, 66, 78, 117, 84, 124, 130, 183, 91, 133, 144, 193, 154, 205, 215, 286, 50, 81, 90, 129, 100, 137, 149, 202, 107, 150, 164, 210, 171, 225, 234, 300, 119, 167, 180, 227, 185, 235, 248, 313, 196, 252, 262, 324, 273, 334, 347, 407, 15, 25, 30, 65, 38, 71, 74, 120, 46, 77, 85, 128, 92, 136, 140, 201, 53, 86, 94, 138, 102, 148, 161, 212, 111, 162, 168, 221, 182, 232, 246, 309, 60, 98, 108, 153, 113, 163, 173, 228, 127, 179, 186, 237, 195, 251, 259, 323, 139, 190, 203, 254, 211, 269, 275, 332, 226, 281, 294, 345, 304, 356, 372, 408, 62, 110, 123, 174, 135, 184, 194, 253, 143, 197, 206, 265, 216, 274, 285, 342, 159, 213, 222, 279, 236, 293, 302, 358, 242, 306, 315, 365, 326, 377, 387, 434, 172, 229, 239, 296, 255, 308, 317, 369, 272, 322, 333, 382, 346, 390, 398, 443, 284, 337, 348, 393, 355, 404, 412, 458, 370, 415, 422, 453, 429, 460, 469, 491, 20, 36, 40, 83, 47, 87, 96, 147, 48, 97, 105, 156, 114, 170, 175, 244, 59, 106, 115, 176, 125, 181, 189, 245, 132, 188, 200, 261, 214, 271, 276, 331, 61, 122, 134, 177, 145, 191, 204, 270, 152, 209, 217, 277, 224, 291, 298, 354, 151, 223, 231, 290, 241, 303, 311, 366, 257, 319, 327, 376, 336, 386, 395, 439, 70, 141, 146, 207, 158, 220, 230, 287, 166, 233, 238, 301, 249, 312, 321, 374, 198, 247, 256, 314, 267, 325, 335, 384, 283, 338, 350, 392, 359, 403, 413, 450, 219, 264, 278, 330, 289, 344, 352, 399, 299, 357, 363, 406, 373, 417, 426, 459, 316, 371, 378, 423, 385, 430, 419, 461, 396, 437, 444, 470, 447, 478, 482, 495, 75, 157, 160, 240, 192, 250, 258, 318, 208, 260, 268, 329, 282, 340, 349, 401, 218, 280, 288, 341, 295, 353, 361, 409, 307, 364, 368, 416, 383, 425, 433, 465, 243, 292, 297, 360, 310, 367, 379, 420, 328, 380, 388, 432, 397, 428, 441, 471, 343, 391, 402, 438, 410, 446, 452, 475, 418, 456, 455, 481, 462, 484, 487, 501, 263, 305, 320, 381, 339, 389, 394, 436, 351, 400, 405, 445, 414, 448, 454, 477, 362, 411, 421, 451, 427, 457, 463, 485, 435, 467, 468, 488, 474, 492, 494, 504, 375, 424, 431, 464, 440, 466, 473, 489, 442, 472, 476, 493, 480, 496, 499, 506, 449, 479, 483, 497, 486, 500, 498, 507, 490, 502, 503, 508, 505, 509, 510, 511]
[0, 1, 2, 7, 3, 8, 11, 23, 4, 10, 13, 26, 16, 31, 33, 62, 5, 12, 14, 30, 19, 35, 42, 65, 21, 41, 38, 71, 49, 77, 82, 120, 6, 17, 20, 37, 22, 40, 44, 73, 27, 47, 51, 78, 57, 86, 90, 128, 32, 52, 60, 88, 64, 94, 99, 134, 70, 101, 107, 142, 112, 150, 157, 193, 9, 18, 25, 46, 28, 50, 56, 84, 34, 61, 53, 91, 67, 97, 104, 137, 39, 59, 69, 100, 74, 106, 111, 146, 80, 113, 122, 152, 127, 161, 167, 203, 45, 72, 79, 110, 87, 116, 124, 159, 92, 125, 133, 163, 138, 171, 177, 207, 102, 135, 144, 173, 148, 178, 184, 213, 155, 186, 191, 218, 196, 222, 227, 243, 15, 24, 29, 58, 36, 63, 66, 103, 43, 68, 75, 109, 81, 115, 119, 158, 48, 76, 83, 117, 89, 123, 130, 165, 96, 131, 136, 169, 145, 176, 183, 212, 54, 85, 93, 126, 98, 132, 140, 174, 108, 143, 149, 180, 154, 185, 190, 217, 118, 151, 160, 188, 164, 194, 198, 220, 172, 200, 205, 225, 209, 230, 235, 244, 55, 95, 105, 141, 114, 147, 153, 187, 121, 156, 162, 192, 168, 197, 202, 224, 129, 166, 170, 199, 179, 204, 208, 231, 182, 210, 214, 232, 219, 236, 238, 249, 139, 175, 181, 206, 189, 211, 215, 233, 195, 216, 221, 237, 226, 239, 241, 250, 201, 223, 228, 240, 229, 242, 245, 252, 234, 246, 247, 251, 248, 253, 254, 255]
[0, 1, 2, 7, 3, 8, 11, 22, 4, 10, 13, 24, 15, 28, 30, 53, 5, 12, 14, 27, 18, 32, 38, 55, 20, 37, 34, 59, 43, 63, 67, 89, 6, 16, 19, 33, 21, 36, 39, 61, 25, 42, 45, 64, 49, 69, 72, 94, 29, 46, 51, 71, 54, 75, 77, 96, 58, 79, 83, 100, 86, 104, 107, 119, 9, 17, 23, 41, 26, 44, 48, 68, 31, 52, 47, 73, 56, 76, 81, 98, 35, 50, 57, 78, 62, 82, 85, 102, 66, 87, 90, 105, 93, 109, 111, 121, 40, 60, 65, 84, 70, 88, 91, 108, 74, 92, 95, 110, 99, 112, 114, 122, 80, 97, 101, 113, 103, 115, 116, 123, 106, 117, 118, 124, 120, 125, 126, 127]
[0, 1, 2, 7, 3, 8, 10, 20, 4, 9, 12, 21, 14, 24, 26, 40, 5, 11, 13, 23, 16, 27, 32, 42, 18, 31, 29, 44, 35, 46, 48, 57, 6, 15, 17, 28, 19, 30, 33, 45, 22, 34, 36, 47, 38, 49, 51, 58, 25, 37, 39, 50, 41, 52, 53, 59, 43, 54, 55, 60, 56, 61, 62, 63]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 256, 34, 24, 36, 7, 129, 66, 512, 11, 40, 68, 130, 19, 13, 48, 14, 72, 257, 21, 132, 35, 258, 22, 80, 136, 513, 25, 37, 260, 264, 26, 96, 514, 38, 67, 41, 144, 28, 69, 516, 42, 272, 49, 70, 520, 160, 44, 131, 73, 288, 528, 192, 50, 74, 544, 52, 15, 133, 320, 81, 23, 134, 384, 76, 56, 259, 82, 137, 27, 97, 39, 84, 138, 145, 261, 29, 43, 98, 515, 88, 140, 30, 146, 71, 262, 265, 161, 576, 45, 100, 640, 51, 148, 46, 75, 266, 273, 517, 104, 162, 53, 193, 152, 77, 164, 768, 268, 274, 518, 54, 83, 57, 521, 112, 135, 78, 289, 194, 85, 276, 522, 58, 168, 139, 99, 86, 60, 280, 89, 290, 529, 524, 196, 141, 101, 147, 176, 142, 530, 321, 90, 200, 31, 545, 292, 322, 532, 263, 149, 102, 105, 296, 304, 163, 92, 47, 267, 150, 208, 385, 546, 386, 324, 106, 153, 165, 55, 328, 536, 577, 548, 113, 154, 79, 269, 108, 578, 224, 166, 519, 552, 195, 270, 641, 523, 275, 580, 291, 169, 59, 560, 114, 277, 156, 87, 197, 116, 170, 61, 531, 525, 642, 281, 278, 526, 177, 293, 388, 91, 584, 769, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 644, 202, 592, 323, 392, 297, 770, 107, 180, 151, 209, 284, 648, 94, 204, 298, 400, 352, 608, 325, 533, 155, 210, 305, 547, 300, 109, 184, 115, 534, 167, 225, 537, 326, 306, 772, 157, 656, 329, 110, 117, 212, 171, 330, 226, 549, 776, 538, 387, 308, 216, 416, 271, 279, 158, 337, 550, 672, 118, 332, 579, 540, 389, 173, 121, 553, 199, 784, 179, 228, 338, 390, 122, 554, 448, 312, 581, 393, 283, 704, 174, 394, 181, 340, 203, 353, 561, 527, 582, 556, 63, 295, 285, 232, 124, 286, 562, 205, 182, 643, 585, 299, 354, 211, 401, 185, 396, 344, 586, 645, 593, 535, 240, 206, 95, 327, 564, 800, 402, 356, 307, 301, 417, 213, 186, 539, 404, 227, 594, 568, 771, 418, 649, 302, 832, 551, 111, 896, 360, 588, 609, 331, 214, 309, 188, 449, 217, 646, 408, 229, 541, 159, 420, 596, 650, 773, 310, 333, 119, 657, 658, 610, 368, 339, 391, 313, 218, 334, 542, 230, 233, 774, 612, 175, 123, 652, 600, 450, 583, 341, 220, 555, 314, 557, 424, 395, 777, 673, 355, 287, 183, 234, 125, 616, 342, 563, 778, 660, 558, 452, 674, 397, 785, 432, 316, 345, 241, 207, 403, 357, 187, 587, 565, 664, 624, 780, 236, 126, 242, 398, 705, 346, 456, 358, 405, 303, 569, 189, 595, 215, 566, 676, 361, 706, 589, 244, 786, 647, 348, 419, 406, 464, 801, 590, 362, 570, 409, 680, 597, 788, 572, 219, 311, 708, 598, 601, 651, 421, 792, 802, 611, 602, 369, 190, 688, 653, 248, 231, 410, 364, 654, 659, 335, 480, 315, 221, 613, 422, 370, 425, 235, 451, 543, 614, 412, 343, 222, 775, 317, 372, 426, 453, 237, 559, 833, 804, 712, 834, 661, 808, 779, 617, 604, 433, 720, 816, 836, 347, 897, 243, 662, 454, 318, 675, 618, 898, 781, 376, 428, 665, 736, 567, 840, 625, 238, 359, 457, 399, 787, 677, 434, 349, 458, 678, 245, 666, 363, 591, 127, 620, 407, 782, 436, 465, 626, 571, 246, 681, 350, 707, 460, 599, 668, 789, 249, 411, 682, 573, 365, 803, 790, 709, 440, 466, 793, 574, 371, 423, 689, 603, 366, 628, 250, 413, 468, 655, 481, 900, 805, 191, 373, 615, 684, 427, 710, 794, 605, 414, 252, 713, 374, 848, 690, 632, 806, 482, 429, 904, 809, 455, 223, 663, 835, 692, 619, 472, 714, 796, 721, 837, 716, 864, 810, 606, 912, 722, 696, 377, 817, 435, 484, 621, 812, 319, 430, 838, 667, 239, 378, 459, 437, 622, 627, 488, 380, 818, 461, 496, 669, 679, 724, 841, 629, 351, 467, 438, 737, 247, 462, 441, 442, 469, 251, 683, 842, 738, 899, 670, 783, 849, 820, 728, 928, 791, 367, 901, 630, 685, 844, 633, 711, 253, 691, 824, 902, 686, 740, 850, 375, 444, 470, 483, 905, 415, 485, 795, 473, 634, 744, 852, 960, 865, 693, 797, 906, 715, 807, 474, 636, 694, 254, 717, 575, 811, 697, 866, 798, 379, 431, 913, 607, 489, 723, 486, 908, 718, 813, 476, 856, 839, 725, 698, 914, 752, 868, 819, 814, 439, 929, 490, 623, 671, 739, 916, 463, 843, 381, 497, 930, 821, 726, 961, 872, 492, 631, 729, 700, 443, 741, 845, 920, 382, 822, 851, 730, 498, 880, 742, 445, 471, 635, 932, 687, 903, 825, 500, 846, 745, 826, 732, 446, 962, 936, 475, 853, 867, 637, 907, 487, 695, 746, 828, 753, 854, 857, 504, 799, 909, 719, 638, 915, 477, 255, 964, 699, 748, 869, 944, 491, 754, 910, 858, 917, 478, 968, 870, 815, 383, 727, 493, 873, 701, 931, 756, 860, 499, 731, 823, 702, 918, 921, 874, 494, 976, 760, 933, 881, 501, 743, 922, 876, 847, 934, 827, 733, 882, 502, 447, 992, 937, 963, 747, 505, 855, 924, 734, 829, 938, 884, 506, 965, 749, 945, 966, 755, 859, 940, 830, 911, 871, 888, 479, 946, 750, 969, 861, 757, 970, 919, 875, 758, 508, 862, 639, 948, 977, 923, 972, 761, 877, 952, 495, 703, 935, 978, 883, 762, 503, 925, 878, 735, 993, 885, 939, 994, 980, 926, 764, 941, 967, 886, 831, 947, 507, 889, 984, 751, 942, 996, 971, 890, 509, 949, 973, 1000, 892, 950, 863, 759, 1008, 510, 979, 953, 763, 974, 954, 879, 981, 982, 927, 995, 765, 956, 887, 985, 997, 986, 943, 891, 998, 766, 511, 988, 1001, 951, 1002, 893, 975, 894, 1009, 955, 1004, 1010, 957, 983, 958, 987, 1012, 999, 1016, 767, 989, 1003, 990, 1005, 895, 1011, 1013, 959, 1006, 1014, 1017, 1018, 991, 1020, 1007, 1015, 1019, 1021, 1022, 1023]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 256, 34, 24, 36, 7, 129, 66, 11, 40, 68, 130, 19, 13, 48, 14, 72, 257, 21, 132, 35, 258, 22, 80, 136, 25, 37, 260, 264, 26, 96, 38, 67, 41, 144, 28, 69, 42, 272, 49, 70, 160, 44, 131, 73, 288, 192, 50, 74, 52, 15, 133, 320, 81, 23, 134, 384, 76, 56, 259, 82, 137, 27, 97, 39, 84, 138, 145, 261, 29, 43, 98, 88, 140, 30, 146, 71, 262, 265, 161, 45, 100, 51, 148, 46, 75, 266, 273, 104, 162, 53, 193, 152, 77, 164, 268, 274, 54, 83, 57, 112, 135, 78, 289, 194, 85, 276, 58, 168, 139, 99, 86, 60, 280, 89, 290, 196, 141, 101, 147, 176, 142, 321, 90, 200, 31, 292, 322, 263, 149, 102, 105, 296, 304, 163, 92, 47, 267, 150, 208, 385, 386, 324, 106, 153, 165, 55, 328, 113, 154, 79, 269, 108, 224, 166, 195, 270, 275, 291, 169, 59, 114, 277, 156, 87, 197, 116, 170, 61, 281, 278, 177, 293, 388, 91, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 202, 323, 392, 297, 107, 180, 151, 209, 284, 94, 204, 298, 400, 352, 325, 155, 210, 305, 300, 109, 184, 115, 167, 225, 326, 306, 157, 329, 110, 117, 212, 171, 330, 226, 387, 308, 216, 416, 271, 279, 158, 337, 118, 332, 389, 173, 121, 199, 179, 228, 338, 390, 122, 448, 312, 393, 283, 174, 394, 181, 340, 203, 353, 63, 295, 285, 232, 124, 286, 205, 182, 299, 354, 211, 401, 185, 396, 344, 240, 206, 95, 327, 402, 356, 307, 301, 417, 213, 186, 404, 227, 418, 302, 111, 360, 331, 214, 309, 188, 449, 217, 408, 229, 159, 420, 310, 333, 119, 368, 339, 391, 313, 218, 334, 230, 233, 175, 123, 450, 341, 220, 314, 424, 395, 355, 287, 183, 234, 125, 342, 452, 397, 432, 316, 345, 241, 207, 403, 357, 187, 236, 126, 242, 398, 346, 456, 358, 405, 303, 189, 215, 361, 244, 348, 419, 406, 464, 362, 409, 219, 311, 421, 369, 190, 248, 231, 410, 364, 335, 480, 315, 221, 422, 370, 425, 235, 451, 412, 343, 222, 317, 372, 426, 453, 237, 433, 347, 243, 454, 318, 376, 428, 238, 359, 457, 399, 434, 349, 458, 245, 363, 127, 407, 436, 465, 246, 350, 460, 249, 411, 365, 440, 466, 371, 423, 366, 250, 413, 468, 481, 191, 373, 427, 414, 252, 374, 482, 429, 455, 223, 472, 377, 435, 484, 319, 430, 239, 378, 459, 437, 488, 380, 461, 496, 351, 467, 438, 247, 462, 441, 442, 469, 251, 367, 253, 375, 444, 470, 483, 415, 485, 473, 474, 254, 379, 431, 489, 486, 476, 439, 490, 463, 381, 497, 492, 443, 382, 498, 445, 471, 500, 446, 475, 487, 504, 477, 255, 491, 478, 383, 493, 499, 494, 501, 502, 447, 505, 506, 479, 508, 495, 503, 507, 509, 510, 511]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 34, 24, 36, 7, 129, 66, 11, 40, 68, 130, 19, 13, 48, 14, 72, 21, 132, 35, 22, 80, 136, 25, 37, 26, 96, 38, 67, 41, 144, 28, 69, 42, 49, 70, 160, 44, 131, 73, 192, 50, 74, 52, 15, 133, 81, 23, 134, 76, 56, 82, 137, 27, 97, 39, 84, 138, 145, 29, 43, 98, 88, 140, 30, 146, 71, 161, 45, 100, 51, 148, 46, 75, 104, 162, 53, 193, 152, 77, 164, 54, 83, 57, 112, 135, 78, 194, 85, 58, 168, 139, 99, 86, 60, 89, 196, 141, 101, 147, 176, 142, 90, 200, 31, 149, 102, 105, 163, 92, 47, 150, 208, 106, 153, 165, 55, 113, 154, 79, 108, 224, 166, 195, 169, 59, 114, 156, 87, 197, 116, 170, 61, 177, 91, 198, 172, 120, 201, 62, 143, 103, 178, 93, 202, 107, 180, 151, 209, 94, 204, 155, 210, 109, 184, 115, 167, 225, 157, 110, 117, 212, 171, 226, 216, 158, 118, 173, 121, 199, 179, 228, 122, 174, 181, 203, 63, 232, 124, 205, 182, 211, 185, 240, 206, 95, 213, 186, 227, 111, 214, 188, 217, 229, 159, 119, 218, 230, 233, 175, 123, 220, 183, 234, 125, 241, 207, 187, 236, 126, 242, 189, 215, 244, 219, 190, 248, 231, 221, 235, 222, 237, 243, 238, 245, 127, 246, 249, 250, 191, 252, 223, 239, 247, 251, 253, 254, 255]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 12, 33, 65, 20, 34, 24, 36, 7, 66, 11, 40, 68, 19, 13, 48, 14, 72, 21, 35, 22, 80, 25, 37, 26, 96, 38, 67, 41, 28, 69, 42, 49, 70, 44, 73, 50, 74, 52, 15, 81, 23, 76, 56, 82, 27, 97, 39, 84, 29, 43, 98, 88, 30, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 78, 85, 58, 99, 86, 60, 89, 101, 90, 31, 102, 105, 92, 47, 106, 55, 113, 79, 108, 59, 114, 87, 116, 61, 91, 120, 62, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 9, 6, 17, 10, 18, 12, 33, 20, 34, 24, 36, 7, 11, 40, 19, 13, 48, 14, 21, 35, 22, 25, 37, 26, 38, 41, 28, 42, 49, 44, 50, 52, 15, 23, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 28, 16, 33, 35, 76, 5, 12, 14, 32, 19, 38, 42, 80, 22, 46, 50, 88, 57, 95, 101, 162, 6, 17, 21, 40, 23, 47, 53, 90, 29, 55, 60, 96, 66, 108, 113, 175, 34, 62, 72, 111, 75, 120, 129, 186, 84, 131, 141, 209, 146, 218, 236, 333, 9, 18, 26, 54, 30, 58, 63, 103, 36, 68, 73, 114, 83, 123, 135, 193, 43, 79, 86, 130, 91, 138, 145, 214, 99, 148, 160, 228, 174, 242, 256, 357, 51, 89, 97, 144, 109, 154, 169, 239, 118, 170, 183, 250, 195, 269, 282, 379, 133, 191, 211, 271, 216, 283, 301, 401, 233, 307, 315, 417, 337, 435, 460, 581, 15, 25, 31, 67, 39, 77, 81, 134, 44, 87, 92, 143, 100, 153, 157, 238, 56, 93, 102, 155, 112, 168, 177, 252, 122, 184, 192, 264, 213, 279, 297, 394, 65, 106, 119, 173, 124, 185, 198, 273, 142, 208, 217, 285, 232, 306, 323, 416, 156, 225, 240, 311, 251, 325, 341, 433, 270, 348, 367, 453, 387, 470, 506, 622, 71, 121, 137, 201, 152, 215, 231, 309, 161, 234, 244, 327, 257, 340, 356, 450, 178, 253, 265, 346, 284, 366, 385, 472, 293, 389, 409, 494, 423, 518, 529, 643, 197, 274, 287, 370, 312, 392, 412, 510, 336, 413, 434, 523, 459, 535, 567, 670, 355, 449, 461, 552, 478, 577, 589, 690, 509, 597, 615, 695, 631, 714, 743, 835, 20, 37, 41, 85, 48, 94, 104, 167, 49, 105, 115, 176, 126, 194, 202, 295, 61, 116, 127, 205, 139, 212, 223, 296, 147, 222, 237, 321, 254, 335, 338, 432, 69, 136, 149, 207, 164, 226, 241, 334, 171, 248, 258, 344, 268, 364, 376, 468, 172, 266, 277, 363, 292, 386, 399, 495, 318, 408, 425, 517, 447, 531, 555, 666, 78, 159, 165, 246, 182, 262, 276, 358, 187, 281, 286, 384, 302, 400, 410, 515, 235, 298, 313, 406, 326, 422, 437, 528, 350, 448, 464, 550, 481, 574, 591, 686, 260, 328, 345, 431, 362, 452, 466, 568, 381, 475, 487, 579, 512, 601, 613, 707, 405, 505, 521, 609, 532, 623, 633, 721, 560, 660, 671, 750, 677, 779, 794, 850, 82, 179, 181, 291, 227, 305, 314, 407, 247, 320, 324, 428, 349, 444, 462, 570, 259, 347, 361, 451, 369, 467, 483, 583, 391, 489, 511, 598, 527, 616, 630, 726, 294, 365, 374, 482, 395, 500, 520, 610, 427, 522, 533, 626, 561, 639, 667, 751, 446, 546, 573, 662, 585, 673, 688, 770, 605, 692, 693, 790, 722, 801, 813, 880, 317, 388, 420, 524, 442, 534, 554, 642, 465, 569, 575, 672, 593, 679, 691, 777, 484, 586, 606, 687, 617, 694, 723, 802, 648, 729, 740, 816, 760, 834, 846, 904, 516, 619, 638, 724, 663, 727, 756, 821, 676, 754, 772, 841, 786, 852, 865, 924, 680, 780, 798, 858, 808, 870, 879, 930, 828, 885, 892, 946, 914, 954, 963, 984, 27, 45, 52, 98, 59, 117, 128, 199, 64, 132, 140, 204, 151, 220, 224, 330, 70, 150, 158, 219, 166, 263, 272, 354, 188, 275, 290, 368, 304, 393, 411, 525, 74, 163, 180, 267, 190, 288, 299, 378, 200, 308, 316, 424, 332, 426, 441, 536, 210, 329, 339, 438, 359, 455, 473, 564, 372, 469, 488, 588, 493, 600, 608, 745, 107, 189, 196, 303, 206, 319, 331, 421, 229, 343, 351, 454, 382, 477, 486, 580, 245, 353, 371, 471, 396, 491, 497, 594, 419, 498, 504, 612, 545, 629, 656, 753, 261, 383, 404, 503, 415, 519, 526, 624, 436, 544, 557, 647, 582, 664, 674, 773, 457, 566, 587, 675, 614, 685, 709, 787, 636, 712, 730, 803, 741, 819, 832, 916, 110, 203, 221, 342, 243, 352, 390, 480, 255, 375, 397, 499, 418, 508, 513, 618, 280, 402, 403, 514, 440, 541, 553, 644, 456, 562, 578, 669, 595, 681, 700, 774, 300, 430, 443, 556, 474, 572, 576, 682, 490, 590, 599, 696, 625, 710, 718, 805, 507, 611, 635, 715, 646, 735, 742, 822, 659, 747, 764, 837, 789, 854, 861, 925, 322, 463, 476, 592, 496, 604, 627, 713, 539, 632, 649, 738, 653, 744, 758, 831, 547, 651, 658, 755, 683, 763, 783, 851, 704, 788, 797, 859, 812, 877, 888, 933, 563, 689, 698, 775, 719, 791, 800, 871, 731, 810, 823, 884, 838, 894, 906, 949, 766, 825, 842, 897, 856, 909, 913, 961, 867, 921, 929, 966, 940, 974, 983, 1003, 125, 230, 249, 373, 278, 398, 414, 530, 289, 429, 439, 543, 458, 559, 584, 701, 310, 445, 479, 571, 492, 596, 603, 706, 501, 607, 628, 728, 650, 736, 749, 829, 360, 485, 502, 602, 538, 621, 637, 739, 542, 641, 655, 746, 665, 759, 769, 849, 548, 661, 678, 768, 703, 782, 795, 860, 716, 807, 811, 876, 824, 889, 900, 944, 377, 537, 540, 645, 549, 652, 668, 762, 565, 684, 697, 778, 711, 792, 809, 874, 634, 702, 720, 796, 732, 817, 826, 886, 761, 827, 844, 898, 857, 908, 915, 960, 654, 734, 748, 818, 767, 839, 848, 902, 785, 853, 864, 912, 873, 922, 932, 969, 799, 869, 878, 928, 891, 935, 943, 976, 903, 947, 953, 981, 958, 989, 991, 1008, 380, 551, 558, 699, 620, 708, 717, 806, 640, 725, 737, 820, 757, 830, 843, 901, 657, 752, 765, 833, 776, 845, 862, 911, 793, 863, 872, 919, 887, 931, 939, 972, 705, 771, 781, 855, 804, 868, 875, 926, 815, 882, 890, 936, 899, 941, 950, 980, 840, 895, 905, 945, 917, 955, 959, 987, 923, 965, 968, 993, 975, 996, 998, 1011, 733, 784, 814, 883, 836, 893, 896, 942, 847, 907, 910, 952, 920, 956, 967, 990, 866, 918, 927, 964, 938, 970, 971, 997, 948, 977, 979, 999, 985, 1004, 1006, 1016, 881, 934, 937, 973, 951, 978, 982, 1001, 957, 986, 988, 1005, 994, 1007, 1012, 1018, 962, 992, 995, 1009, 1000, 1010, 1013, 1019, 1002, 1014, 1015, 1020, 1017, 1021, 1022, 1023]
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 27, 16, 32, 34, 69, 5, 12, 14, 31, 19, 37, 41, 73, 22, 44, 48, 81, 54, 88, 93, 144, 6, 17, 21, 39, 23, 45, 50, 83, 28, 52, 56, 89, 61, 99, 103, 155, 33, 58, 66, 101, 68, 109, 116, 165, 77, 118, 126, 179, 131, 187, 199, 269, 9, 18, 26, 51, 29, 55, 59, 95, 35, 63, 67, 104, 76, 112, 121, 169, 42, 72, 79, 117, 84, 124, 130, 183, 91, 133, 142, 193, 154, 205, 215, 286, 49, 82, 90, 129, 100, 137, 149, 202, 107, 150, 162, 210, 171, 225, 234, 299, 119, 167, 180, 227, 185, 235, 248, 313, 196, 252, 258, 323, 273, 334, 347, 407, 15, 25, 30, 62, 38, 70, 74, 120, 43, 80, 85, 128, 92, 136, 140, 201, 53, 86, 94, 138, 102, 148, 157, 212, 111, 163, 168, 221, 182, 232, 246, 309, 60, 98, 108, 153, 113, 164, 173, 228, 127, 178, 186, 237, 195, 251, 263, 322, 139, 190, 203, 254, 211, 265, 276, 332, 226, 281, 294, 345, 304, 355, 369, 426, 65, 110, 123, 174, 135, 184, 194, 253, 143, 197, 206, 267, 216, 275, 285, 342, 158, 213, 222, 279, 236, 293, 302, 356, 242, 306, 318, 365, 326, 377, 385, 435, 172, 229, 239, 296, 255, 308, 320, 371, 272, 321, 333, 381, 346, 390, 398, 442, 284, 341, 348, 393, 358, 405, 411, 453, 370, 414, 422, 458, 430, 460, 469, 492, 20, 36, 40, 78, 46, 87, 96, 147, 47, 97, 105, 156, 114, 170, 175, 244, 57, 106, 115, 176, 125, 181, 189, 245, 132, 188, 200, 262, 214, 271, 274, 331, 64, 122, 134, 177, 145, 191, 204, 270, 151, 209, 217, 277, 224, 291, 298, 354, 152, 223, 231, 290, 241, 303, 311, 366, 260, 317, 327, 376, 339, 386, 395, 440, 71, 141, 146, 207, 161, 220, 230, 287, 166, 233, 238, 301, 249, 312, 319, 374, 198, 247, 256, 315, 266, 325, 335, 384, 283, 340, 350, 392, 359, 403, 412, 450, 219, 268, 278, 330, 289, 344, 352, 399, 300, 357, 363, 406, 373, 416, 421, 459, 314, 368, 379, 419, 387, 427, 431, 461, 396, 437, 443, 470, 447, 478, 482, 495, 75, 159, 160, 240, 192, 250, 257, 316, 208, 261, 264, 329, 282, 337, 349, 401, 218, 280, 288, 343, 295, 353, 361, 408, 307, 364, 372, 415, 383, 423, 429, 465, 243, 292, 297, 360, 310, 367, 378, 420, 328, 380, 388, 428, 397, 433, 441, 471, 338, 391, 402, 438, 409, 445, 452, 475, 417, 455, 456, 481, 462, 484, 487, 501, 259, 305, 324, 382, 336, 389, 394, 434, 351, 400, 404, 444, 413, 448, 454, 477, 362, 410, 418, 451, 424, 457, 463, 485, 436, 467, 468, 488, 474, 491, 494, 504, 375, 425, 432, 464, 439, 466, 473, 489, 446, 472, 476, 493, 480, 496, 498, 506, 449, 479, 483, 497, 486, 499, 500, 507, 490, 502, 503, 508, 505, 509, 510, 511]
[0, 1, 2, 7, 3, 8, 11, 23, 4, 10, 13, 26, 16, 31, 33, 62, 5, 12, 14, 30, 19, 35, 38, 65, 21, 41, 43, 71, 49, 77, 82, 122, 6, 17, 20, 37, 22, 42, 45, 73, 27, 47, 51, 78, 55, 86, 90, 128, 32, 52, 59, 88, 61, 94, 99, 134, 68, 101, 107, 143, 112, 150, 157, 194, 9, 18, 25, 46, 28, 50, 53, 84, 34, 57, 60, 91, 67, 97, 104, 137, 39, 64, 69, 100, 74, 106, 111, 146, 80, 113, 120, 152, 127, 161, 167, 203, 44, 72, 79, 110, 87, 116, 124, 159, 92, 125, 131, 163, 138, 171, 177, 207, 102, 135, 144, 173, 148, 178, 184, 213, 155, 186, 190, 218, 196, 222, 227, 243, 15, 24, 29, 56, 36, 63, 66, 103, 40, 70, 75, 109, 81, 115, 119, 158, 48, 76, 83, 117, 89, 123, 129, 165, 96, 132, 136, 169, 145, 176, 183, 212, 54, 85, 93, 126, 98, 133, 140, 174, 108, 142, 149, 180, 154, 185, 191, 217, 118, 151, 160, 188, 164, 192, 198, 220, 172, 200, 205, 225, 209, 229, 233, 247, 58, 95, 105, 141, 114, 147, 153, 187, 121, 156, 162, 193, 168, 197, 202, 224, 130, 166, 170, 199, 179, 204, 208, 230, 182, 210, 214, 232, 219, 236, 238, 249, 139, 175, 181, 206, 189, 211, 215, 235, 195, 216, 221, 237, 226, 239, 241, 250, 201, 223, 228, 240, 231, 242, 244, 251, 234, 245, 246, 252, 248, 253, 254, 255]
[0, 1, 2, 7, 3, 8, 11, 22, 4, 10, 13, 24, 15, 28, 30, 53, 5, 12, 14, 27, 18, 32, 34, 55, 20, 36, 38, 59, 43, 63, 67, 90, 6, 16, 19, 33, 21, 37, 40, 61, 25, 42, 45, 64, 48, 69, 72, 94, 29, 46, 50, 71, 52, 75, 77, 96, 57, 79, 83, 100, 86, 104, 107, 119, 9, 17, 23, 41, 26, 44, 47, 68, 31, 49, 51, 73, 56, 76, 81, 98, 35, 54, 58, 78, 62, 82, 85, 102, 66, 87, 89, 105, 93, 109, 111, 121, 39, 60, 65, 84, 70, 88, 91, 108, 74, 92, 95, 110, 99, 112, 114, 122, 80, 97, 101, 113, 103, 115, 116, 123, 106, 117, 118, 124, 120, 125, 126, 127]
[0, 1, 2, 7, 3, 8, 10, 20, 4, 9, 12, 21, 14, 24, 26, 41, 5, 11, 13, 23, 16, 27, 29, 42, 18, 30, 32, 44, 35, 46, 48, 57, 6, 15, 17, 28, 19, 31, 33, 45, 22, 34, 36, 47, 38, 49, 51, 58, 25, 37, 39, 50, 40, 52, 53, 59, 43, 54, 55, 60, 56, 61, 62, 63]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 6, 9, 17, 10, 18, 128, 12, 33, 256, 20, 34, 24, 65, 36, 7, 129, 66, 512, 11, 40, 68, 19, 13, 130, 48, 14, 72, 257, 21, 132, 35, 258, 26, 513, 80, 37, 25, 22, 136, 96, 260, 38, 514, 264, 67, 41, 144, 28, 69, 42, 516, 49, 160, 272, 70, 520, 288, 528, 131, 44, 544, 73, 192, 50, 74, 52, 15, 133, 320, 81, 23, 134, 76, 137, 82, 384, 56, 27, 97, 39, 259, 84, 138, 145, 261, 29, 43, 98, 515, 88, 140, 30, 146, 71, 262, 265, 517, 161, 45, 576, 518, 100, 51, 148, 521, 46, 75, 640, 266, 273, 522, 104, 162, 53, 193, 152, 77, 164, 268, 274, 54, 83, 530, 57, 112, 529, 524, 135, 78, 289, 194, 85, 276, 58, 168, 139, 99, 86, 60, 89, 768, 196, 290, 141, 101, 280, 545, 546, 532, 147, 176, 142, 90, 536, 292, 200, 263, 31, 149, 321, 322, 577, 102, 105, 296, 163, 92, 47, 150, 548, 208, 324, 385, 304, 267, 578, 106, 153, 386, 165, 55, 328, 113, 519, 552, 641, 154, 79, 108, 224, 269, 166, 523, 560, 580, 195, 277, 169, 275, 291, 59, 270, 114, 156, 87, 197, 116, 170, 61, 525, 531, 177, 278, 281, 526, 642, 293, 388, 91, 584, 769, 198, 172, 120, 201, 62, 143, 336, 282, 103, 178, 294, 93, 533, 644, 534, 547, 770, 392, 297, 592, 323, 202, 284, 151, 209, 180, 107, 325, 94, 537, 400, 298, 204, 352, 305, 155, 300, 210, 608, 648, 109, 184, 115, 167, 225, 326, 157, 110, 772, 549, 656, 538, 117, 212, 330, 171, 550, 329, 306, 226, 387, 308, 271, 579, 416, 216, 337, 158, 776, 118, 540, 553, 279, 332, 389, 173, 121, 199, 179, 228, 283, 122, 393, 174, 312, 672, 390, 554, 556, 203, 561, 181, 295, 448, 353, 338, 63, 581, 340, 285, 394, 232, 124, 354, 582, 784, 704, 527, 286, 182, 562, 643, 585, 205, 299, 211, 401, 185, 396, 240, 586, 645, 593, 535, 301, 402, 344, 206, 564, 800, 327, 356, 307, 95, 417, 213, 186, 404, 111, 539, 568, 594, 649, 771, 302, 832, 588, 646, 227, 360, 214, 188, 551, 609, 896, 331, 309, 418, 449, 217, 408, 229, 541, 159, 420, 596, 650, 773, 310, 333, 119, 368, 339, 391, 657, 313, 218, 542, 610, 334, 230, 233, 774, 658, 612, 175, 123, 450, 652, 341, 220, 557, 314, 555, 600, 583, 424, 395, 777, 673, 355, 287, 183, 234, 125, 342, 563, 674, 616, 558, 660, 778, 452, 397, 432, 316, 345, 241, 207, 785, 403, 357, 187, 587, 565, 664, 624, 780, 236, 126, 242, 398, 705, 346, 456, 358, 405, 303, 569, 595, 189, 786, 215, 676, 589, 566, 647, 361, 706, 244, 348, 419, 406, 311, 708, 219, 598, 601, 651, 611, 409, 680, 788, 362, 570, 597, 572, 464, 801, 590, 421, 802, 369, 792, 190, 602, 653, 248, 688, 231, 410, 364, 335, 422, 613, 659, 654, 315, 221, 370, 425, 235, 451, 480, 775, 412, 614, 343, 222, 317, 372, 543, 426, 453, 237, 559, 833, 804, 712, 834, 661, 808, 779, 617, 604, 433, 720, 816, 836, 347, 897, 243, 662, 454, 318, 675, 376, 428, 625, 238, 359, 567, 618, 665, 736, 898, 457, 399, 781, 591, 666, 678, 349, 434, 677, 840, 782, 626, 571, 620, 787, 363, 245, 458, 127, 407, 436, 465, 350, 246, 681, 460, 249, 599, 411, 365, 668, 707, 573, 789, 803, 790, 682, 440, 709, 466, 628, 371, 423, 366, 250, 413, 574, 468, 603, 481, 689, 793, 191, 373, 655, 900, 805, 427, 615, 710, 414, 252, 848, 684, 713, 605, 690, 632, 482, 794, 806, 472, 223, 663, 835, 904, 809, 714, 619, 796, 374, 429, 455, 692, 721, 837, 716, 864, 810, 606, 912, 722, 696, 377, 817, 435, 812, 484, 319, 430, 621, 838, 667, 239, 378, 459, 437, 627, 622, 488, 380, 461, 679, 841, 818, 724, 669, 496, 629, 928, 737, 899, 783, 738, 901, 842, 438, 467, 247, 820, 849, 683, 351, 791, 441, 728, 670, 462, 469, 442, 251, 367, 630, 740, 902, 711, 844, 850, 905, 685, 691, 824, 633, 483, 795, 744, 470, 852, 686, 444, 473, 253, 634, 485, 415, 375, 960, 865, 575, 807, 906, 715, 913, 693, 797, 866, 811, 717, 474, 254, 694, 723, 636, 486, 798, 607, 697, 489, 431, 379, 908, 752, 914, 856, 868, 839, 929, 813, 718, 819, 476, 916, 725, 698, 490, 739, 814, 843, 623, 497, 439, 381, 671, 463, 726, 930, 872, 821, 920, 700, 729, 492, 932, 961, 741, 903, 845, 498, 880, 382, 822, 851, 631, 443, 825, 730, 471, 445, 687, 635, 742, 846, 500, 745, 826, 732, 446, 962, 936, 255, 853, 504, 637, 907, 475, 746, 867, 487, 695, 799, 854, 828, 753, 857, 964, 909, 719, 477, 915, 869, 699, 748, 944, 638, 754, 491, 910, 858, 478, 815, 727, 917, 870, 493, 873, 701, 968, 383, 860, 756, 918, 931, 976, 499, 921, 874, 702, 823, 494, 731, 760, 881, 933, 501, 743, 922, 876, 847, 934, 827, 733, 502, 992, 882, 447, 963, 937, 747, 505, 855, 924, 734, 829, 884, 938, 506, 965, 749, 945, 966, 940, 969, 911, 946, 755, 888, 830, 859, 639, 871, 970, 750, 508, 948, 977, 757, 479, 919, 861, 875, 972, 978, 758, 862, 952, 761, 993, 923, 703, 495, 935, 877, 883, 980, 762, 925, 994, 878, 503, 885, 939, 984, 764, 996, 926, 735, 967, 886, 941, 507, 947, 889, 831, 1000, 942, 971, 751, 509, 949, 890, 973, 1008, 510, 950, 979, 759, 892, 863, 953, 974, 981, 954, 763, 995, 879, 982, 956, 985, 765, 997, 927, 887, 986, 766, 998, 1001, 943, 891, 988, 1002, 1009, 511, 951, 893, 1004, 975, 1010, 894, 955, 1012, 983, 957, 1016, 958, 987, 767, 999, 989, 1003, 990, 1005, 1011, 895, 1006, 1013, 1014, 1017, 959, 1018, 1020, 991, 1007, 1015, 1019, 1021, 1022, 1023]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 6, 9, 17, 10, 18, 128, 12, 33, 256, 20, 34, 24, 65, 36, 7, 129, 66, 11, 40, 68, 19, 13, 130, 48, 14, 72, 257, 21, 132, 35, 258, 26, 80, 37, 25, 22, 136, 96, 260, 38, 264, 67, 41, 144, 28, 69, 42, 49, 160, 272, 70, 288, 131, 44, 73, 192, 50, 74, 52, 15, 133, 320, 81, 23, 134, 76, 137, 82, 384, 56, 27, 97, 39, 259, 84, 138, 145, 261, 29, 43, 98, 88, 140, 30, 146, 71, 262, 265, 161, 45, 100, 51, 148, 46, 75, 266, 273, 104, 162, 53, 193, 152, 77, 164, 268, 274, 54, 83, 57, 112, 135, 78, 289, 194, 85, 276, 58, 168, 139, 99, 86, 60, 89, 196, 290, 141, 101, 280, 147, 176, 142, 90, 292, 200, 263, 31, 149, 321, 322, 102, 105, 296, 163, 92, 47, 150, 208, 324, 385, 304, 267, 106, 153, 386, 165, 55, 328, 113, 154, 79, 108, 224, 269, 166, 195, 277, 169, 275, 291, 59, 270, 114, 156, 87, 197, 116, 170, 61, 177, 278, 281, 293, 388, 91, 198, 172, 120, 201, 62, 143, 336, 282, 103, 178, 294, 93, 392, 297, 323, 202, 284, 151, 209, 180, 107, 325, 94, 400, 298, 204, 352, 305, 155, 300, 210, 109, 184, 115, 167, 225, 326, 157, 110, 117, 212, 330, 171, 329, 306, 226, 387, 308, 271, 416, 216, 337, 158, 118, 279, 332, 389, 173, 121, 199, 179, 228, 283, 122, 393, 174, 312, 390, 203, 181, 295, 448, 353, 338, 63, 340, 285, 394, 232, 124, 354, 286, 182, 205, 299, 211, 401, 185, 396, 240, 301, 402, 344, 206, 327, 356, 307, 95, 417, 213, 186, 404, 111, 302, 227, 360, 214, 188, 331, 309, 418, 449, 217, 408, 229, 159, 420, 310, 333, 119, 368, 339, 391, 313, 218, 334, 230, 233, 175, 123, 450, 341, 220, 314, 424, 395, 355, 287, 183, 234, 125, 342, 452, 397, 432, 316, 345, 241, 207, 403, 357, 187, 236, 126, 242, 398, 346, 456, 358, 405, 303, 189, 215, 361, 244, 348, 419, 406, 311, 219, 409, 362, 464, 421, 369, 190, 248, 231, 410, 364, 335, 422, 315, 221, 370, 425, 235, 451, 480, 412, 343, 222, 317, 372, 426, 453, 237, 433, 347, 243, 454, 318, 376, 428, 238, 359, 457, 399, 349, 434, 363, 245, 458, 127, 407, 436, 465, 350, 246, 460, 249, 411, 365, 440, 466, 371, 423, 366, 250, 413, 468, 481, 191, 373, 427, 414, 252, 482, 472, 223, 374, 429, 455, 377, 435, 484, 319, 430, 239, 378, 459, 437, 488, 380, 461, 496, 438, 467, 247, 351, 441, 462, 469, 442, 251, 367, 483, 470, 444, 473, 253, 485, 415, 375, 474, 254, 486, 489, 431, 379, 476, 490, 497, 439, 381, 463, 492, 498, 382, 443, 471, 445, 500, 446, 255, 504, 475, 487, 477, 491, 478, 493, 383, 499, 494, 501, 502, 447, 505, 506, 508, 479, 495, 503, 507, 509, 510, 511]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 6, 9, 17, 10, 18, 128, 12, 33, 20, 34, 24, 65, 36, 7, 129, 66, 11, 40, 68, 19, 13, 130, 48, 14, 72, 21, 132, 35, 26, 80, 37, 25, 22, 136, 96, 38, 67, 41, 144, 28, 69, 42, 49, 160, 70, 131, 44, 73, 192, 50, 74, 52, 15, 133, 81, 23, 134, 76, 137, 82, 56, 27, 97, 39, 84, 138, 145, 29, 43, 98, 88, 140, 30, 146, 71, 161, 45, 100, 51, 148, 46, 75, 104, 162, 53, 193, 152, 77, 164, 54, 83, 57, 112, 135, 78, 194, 85, 58, 168, 139, 99, 86, 60, 89, 196, 141, 101, 147, 176, 142, 90, 200, 31, 149, 102, 105, 163, 92, 47, 150, 208, 106, 153, 165, 55, 113, 154, 79, 108, 224, 166, 195, 169, 59, 114, 156, 87, 197, 116, 170, 61, 177, 91, 198, 172, 120, 201, 62, 143, 103, 178, 93, 202, 151, 209, 180, 107, 94, 204, 155, 210, 109, 184, 115, 167, 225, 157, 110, 117, 212, 171, 226, 216, 158, 118, 173, 121, 199, 179, 228, 122, 174, 203, 181, 63, 232, 124, 182, 205, 211, 185, 240, 206, 95, 213, 186, 111, 227, 214, 188, 217, 229, 159, 119, 218, 230, 233, 175, 123, 220, 183, 234, 125, 241, 207, 187, 236, 126, 242, 189, 215, 244, 219, 190, 248, 231, 221, 235, 222, 237, 243, 238, 245, 127, 246, 249, 250, 191, 252, 223, 239, 247, 251, 253, 254, 255]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 6, 9, 17, 10, 18, 12, 33, 20, 34, 24, 65, 36, 7, 66, 11, 40, 68, 19, 13, 48, 14, 72, 21, 35, 26, 80, 37, 25, 22, 96, 38, 67, 41, 28, 69, 42, 49, 70, 44, 73, 50, 74, 52, 15, 81, 23, 76, 82, 56, 27, 97, 39, 84, 29, 43, 98, 88, 30, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 78, 85, 58, 99, 86, 60, 89, 101, 90, 31, 102, 105, 92, 47, 106, 55, 113, 79, 108, 59, 114, 87, 116, 61, 91, 120, 62, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 2, 4, 8, 16, 32, 3, 5, 6, 9, 17, 10, 18, 12, 33, 20, 34, 24, 36, 7, 11, 40, 19, 13, 48, 14, 21, 35, 26, 37, 25, 22, 38, 41, 28, 42, 49, 44, 50, 52, 15, 23, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 2, 7, 3, 8, 10, 24, 4, 11, 13, 28, 16, 32, 35, 76, 5, 12, 14, 31, 19, 38, 47, 80, 21, 46, 42, 87, 57, 95, 101, 167, 6, 17, 20, 40, 23, 45, 51, 89, 29, 55, 59, 96, 69, 108, 115, 177, 34, 61, 73, 112, 75, 123, 130, 190, 86, 133, 143, 210, 148, 218, 235, 327, 9, 22, 26, 54, 30, 58, 64, 103, 36, 71, 74, 116, 82, 126, 138, 197, 44, 79, 84, 131, 91, 141, 147, 214, 99, 149, 162, 228, 176, 242, 259, 364, 49, 88, 97, 146, 111, 154, 172, 239, 121, 173, 186, 257, 198, 271, 278, 369, 134, 192, 212, 273, 216, 283, 300, 401, 233, 307, 312, 417, 333, 435, 460, 585, 15, 25, 33, 68, 39, 77, 81, 137, 48, 83, 92, 145, 100, 153, 161, 236, 56, 93, 102, 159, 113, 168, 178, 254, 125, 187, 196, 266, 213, 277, 298, 394, 62, 107, 122, 175, 127, 189, 201, 274, 144, 207, 217, 286, 232, 306, 314, 416, 160, 221, 240, 309, 256, 322, 340, 433, 272, 348, 367, 453, 382, 471, 505, 619, 72, 124, 140, 205, 151, 215, 231, 308, 165, 234, 252, 320, 263, 344, 358, 449, 180, 255, 268, 346, 284, 366, 381, 473, 296, 390, 407, 486, 421, 519, 529, 639, 199, 275, 290, 379, 310, 392, 411, 510, 332, 412, 434, 522, 459, 535, 560, 670, 350, 448, 461, 552, 480, 583, 590, 695, 508, 593, 611, 707, 628, 728, 746, 816, 18, 37, 41, 90, 50, 94, 104, 166, 53, 105, 118, 184, 128, 200, 211, 293, 63, 119, 129, 208, 142, 206, 222, 303, 155, 223, 238, 311, 253, 330, 339, 432, 66, 139, 152, 209, 164, 226, 241, 323, 174, 249, 262, 345, 267, 355, 375, 468, 183, 265, 289, 363, 292, 387, 399, 484, 315, 406, 423, 518, 446, 530, 555, 665, 78, 169, 170, 251, 181, 258, 276, 361, 191, 288, 285, 386, 304, 400, 410, 513, 237, 297, 326, 403, 329, 420, 436, 528, 357, 447, 464, 550, 481, 573, 589, 699, 264, 325, 334, 431, 362, 452, 466, 561, 380, 478, 494, 582, 512, 596, 610, 708, 402, 503, 520, 608, 531, 620, 647, 732, 557, 660, 671, 756, 677, 778, 796, 854, 85, 182, 188, 291, 227, 305, 317, 404, 248, 313, 331, 428, 349, 444, 462, 568, 261, 347, 356, 451, 368, 467, 483, 586, 391, 491, 511, 595, 526, 612, 627, 731, 295, 365, 388, 482, 395, 501, 514, 609, 427, 521, 533, 624, 558, 648, 666, 755, 445, 546, 574, 662, 587, 673, 693, 777, 604, 701, 706, 800, 726, 804, 813, 881, 324, 389, 418, 523, 443, 534, 554, 649, 465, 567, 584, 672, 592, 678, 704, 780, 498, 588, 606, 694, 614, 705, 723, 803, 638, 727, 745, 821, 767, 834, 845, 913, 524, 616, 635, 720, 664, 730, 750, 824, 676, 754, 771, 842, 788, 850, 865, 926, 684, 776, 794, 860, 809, 870, 878, 935, 818, 885, 892, 946, 909, 954, 959, 988, 27, 43, 52, 98, 60, 106, 110, 193, 65, 114, 120, 202, 136, 219, 224, 338, 67, 135, 132, 220, 158, 243, 245, 354, 163, 260, 282, 370, 301, 393, 408, 532, 70, 156, 157, 246, 179, 280, 287, 383, 194, 302, 318, 424, 319, 422, 440, 536, 203, 321, 341, 437, 359, 455, 476, 562, 371, 469, 495, 579, 497, 599, 613, 735, 109, 171, 185, 294, 204, 328, 335, 426, 229, 343, 351, 454, 377, 475, 500, 570, 250, 353, 372, 470, 396, 496, 487, 594, 425, 488, 506, 615, 545, 632, 656, 752, 269, 384, 409, 490, 415, 515, 527, 625, 439, 544, 563, 645, 580, 667, 675, 775, 457, 559, 578, 674, 607, 685, 709, 799, 634, 719, 729, 806, 749, 819, 840, 905, 117, 195, 225, 342, 244, 352, 378, 477, 270, 373, 397, 489, 419, 507, 517, 621, 281, 405, 414, 516, 441, 541, 553, 640, 456, 564, 571, 669, 597, 683, 703, 779, 316, 430, 438, 556, 474, 575, 572, 679, 492, 591, 603, 698, 630, 716, 725, 805, 509, 617, 633, 717, 650, 740, 747, 825, 659, 753, 770, 837, 786, 852, 863, 925, 337, 463, 479, 598, 485, 605, 626, 712, 539, 631, 644, 738, 653, 744, 765, 833, 547, 651, 658, 748, 682, 769, 781, 847, 702, 787, 802, 866, 812, 877, 888, 942, 565, 687, 690, 772, 710, 791, 807, 871, 722, 810, 822, 884, 838, 894, 908, 953, 758, 829, 841, 901, 856, 912, 919, 962, 867, 922, 931, 969, 939, 975, 980, 1002, 150, 230, 247, 374, 279, 398, 413, 525, 299, 429, 442, 543, 458, 569, 577, 689, 336, 450, 472, 581, 493, 600, 602, 700, 504, 618, 636, 721, 646, 741, 751, 826, 360, 499, 502, 601, 538, 623, 637, 736, 542, 643, 655, 743, 663, 764, 773, 846, 548, 661, 681, 766, 696, 784, 797, 864, 718, 801, 811, 876, 828, 889, 903, 949, 376, 537, 540, 641, 549, 652, 668, 762, 576, 680, 692, 774, 713, 793, 808, 874, 629, 697, 714, 798, 724, 817, 827, 886, 760, 830, 844, 904, 855, 915, 920, 964, 654, 734, 742, 823, 761, 836, 849, 906, 783, 851, 862, 916, 873, 928, 934, 971, 795, 868, 880, 929, 890, 936, 944, 978, 902, 948, 956, 984, 963, 990, 994, 1009, 385, 551, 566, 688, 622, 691, 711, 792, 642, 715, 737, 820, 757, 832, 843, 899, 657, 739, 759, 835, 768, 848, 857, 914, 785, 861, 872, 924, 887, 932, 941, 977, 686, 763, 782, 858, 789, 869, 875, 927, 815, 883, 891, 937, 897, 945, 951, 983, 839, 895, 900, 947, 910, 955, 960, 989, 921, 965, 968, 995, 973, 998, 1000, 1014, 733, 790, 814, 882, 831, 893, 896, 943, 853, 898, 907, 952, 917, 957, 966, 992, 859, 911, 918, 961, 930, 967, 972, 997, 938, 974, 979, 1001, 985, 1004, 1006, 1017, 879, 923, 933, 970, 940, 976, 981, 1003, 950, 982, 986, 1005, 991, 1007, 1010, 1018, 958, 987, 993, 1008, 996, 1011, 1012, 1019, 999, 1013, 1015, 1020, 1016, 1021, 1022, 1023]
[0, 1, 2, 7, 3, 8, 10, 24, 4, 11, 13, 27, 16, 31, 34, 69, 5, 12, 14, 30, 19, 37, 45, 73, 21, 44, 41, 80, 54, 88, 93, 145, 6, 17, 20, 39, 23, 43, 49, 82, 28, 52, 56, 89, 63, 99, 103, 154, 33, 57, 66, 101, 68, 109, 116, 165, 79, 118, 126, 179, 131, 187, 198, 268, 9, 22, 26, 51, 29, 55, 60, 95, 35, 64, 67, 104, 75, 112, 121, 169, 42, 72, 77, 117, 84, 124, 130, 183, 91, 132, 141, 193, 153, 205, 216, 291, 47, 81, 90, 129, 100, 136, 149, 202, 107, 150, 161, 214, 170, 225, 232, 296, 119, 167, 181, 227, 185, 233, 247, 313, 196, 252, 257, 323, 273, 334, 347, 407, 15, 25, 32, 62, 38, 70, 74, 120, 46, 76, 85, 128, 92, 135, 140, 199, 53, 86, 94, 138, 102, 146, 155, 211, 111, 162, 168, 222, 182, 231, 246, 309, 58, 98, 108, 152, 113, 164, 173, 228, 127, 176, 186, 236, 195, 251, 259, 322, 139, 188, 203, 254, 213, 263, 276, 332, 226, 281, 294, 345, 301, 355, 369, 426, 65, 110, 123, 174, 133, 184, 194, 253, 143, 197, 209, 262, 219, 277, 287, 342, 156, 212, 224, 279, 234, 293, 300, 356, 244, 306, 318, 363, 326, 377, 385, 433, 171, 229, 239, 298, 255, 308, 320, 371, 272, 321, 333, 380, 346, 390, 398, 442, 283, 341, 348, 393, 358, 405, 412, 452, 370, 414, 422, 458, 430, 464, 469, 488, 18, 36, 40, 83, 48, 87, 96, 144, 50, 97, 105, 160, 114, 172, 180, 242, 59, 106, 115, 177, 125, 175, 189, 248, 137, 190, 201, 256, 210, 270, 275, 331, 61, 122, 134, 178, 142, 191, 204, 264, 151, 207, 218, 278, 223, 284, 297, 354, 159, 221, 238, 290, 241, 303, 311, 362, 260, 317, 327, 376, 339, 386, 395, 440, 71, 147, 148, 208, 157, 215, 230, 288, 166, 237, 235, 302, 249, 312, 319, 374, 200, 245, 267, 315, 269, 325, 335, 384, 286, 340, 350, 392, 359, 402, 411, 453, 220, 266, 274, 330, 289, 344, 352, 399, 299, 357, 365, 404, 373, 416, 421, 459, 314, 368, 378, 419, 387, 427, 434, 467, 396, 437, 443, 473, 447, 478, 482, 496, 78, 158, 163, 240, 192, 250, 261, 316, 206, 258, 271, 329, 282, 337, 349, 401, 217, 280, 285, 343, 295, 353, 361, 408, 307, 364, 372, 415, 383, 423, 429, 466, 243, 292, 304, 360, 310, 367, 375, 420, 328, 379, 388, 428, 397, 435, 441, 472, 338, 391, 403, 438, 409, 445, 450, 477, 417, 454, 457, 483, 462, 485, 487, 501, 265, 305, 324, 381, 336, 389, 394, 436, 351, 400, 406, 444, 413, 448, 455, 479, 366, 410, 418, 451, 424, 456, 461, 484, 432, 463, 468, 490, 474, 492, 494, 505, 382, 425, 431, 460, 439, 465, 470, 491, 446, 471, 475, 493, 480, 495, 498, 506, 449, 476, 481, 497, 486, 499, 500, 507, 489, 502, 503, 508, 504, 509, 510, 511]
[0, 1, 2, 7, 3, 8, 10, 23, 4, 11, 13, 26, 16, 30, 33, 62, 5, 12, 14, 29, 18, 35, 42, 65, 20, 41, 38, 71, 49, 77, 82, 122, 6, 17, 19, 37, 22, 40, 45, 73, 27, 47, 51, 78, 56, 86, 90, 128, 32, 52, 59, 88, 61, 94, 99, 134, 70, 101, 107, 143, 112, 150, 157, 194, 9, 21, 25, 46, 28, 50, 54, 84, 34, 57, 60, 91, 67, 97, 104, 137, 39, 64, 69, 100, 74, 106, 111, 146, 80, 113, 120, 152, 127, 161, 167, 203, 44, 72, 79, 110, 87, 116, 124, 159, 92, 125, 131, 166, 138, 171, 177, 206, 102, 135, 144, 173, 148, 178, 184, 213, 155, 186, 190, 218, 196, 222, 227, 243, 15, 24, 31, 55, 36, 63, 66, 103, 43, 68, 75, 109, 81, 115, 119, 158, 48, 76, 83, 117, 89, 123, 129, 163, 96, 132, 136, 169, 145, 176, 183, 212, 53, 85, 93, 126, 98, 133, 140, 174, 108, 142, 149, 180, 154, 185, 191, 217, 118, 151, 160, 188, 165, 193, 197, 220, 172, 200, 205, 225, 209, 229, 233, 247, 58, 95, 105, 141, 114, 147, 153, 187, 121, 156, 162, 192, 168, 198, 202, 224, 130, 164, 170, 199, 179, 204, 208, 230, 182, 210, 214, 232, 219, 236, 238, 249, 139, 175, 181, 207, 189, 211, 215, 235, 195, 216, 221, 237, 226, 239, 241, 250, 201, 223, 228, 240, 231, 242, 244, 251, 234, 245, 246, 252, 248, 253, 254, 255]
[0, 1, 2, 7, 3, 8, 10, 22, 4, 11, 13, 24, 15, 28, 30, 53, 5, 12, 14, 27, 17, 32, 38, 55, 19, 37, 34, 59, 43, 63, 67, 90, 6, 16, 18, 33, 21, 36, 40, 61, 25, 42, 45, 64, 48, 69, 72, 94, 29, 46, 50, 71, 52, 75, 77, 96, 58, 79, 83, 100, 86, 104, 107, 119, 9, 20, 23, 41, 26, 44, 47, 68, 31, 49, 51, 73, 56, 76, 81, 98, 35, 54, 57, 78, 62, 82, 85, 102, 66, 87, 89, 105, 93, 109, 111, 121, 39, 60, 65, 84, 70, 88, 91, 108, 74, 92, 95, 110, 99, 112, 114, 122, 80, 97, 101, 113, 103, 115, 116, 123, 106, 117, 118, 124, 120, 125, 126, 127]
[0, 1, 2, 7, 3, 8, 9, 20, 4, 10, 12, 21, 14, 24, 26, 41, 5, 11, 13, 23, 16, 27, 32, 42, 18, 31, 29, 44, 35, 46, 48, 57, 6, 15, 17, 28, 19, 30, 33, 45, 22, 34, 36, 47, 38, 49, 51, 58, 25, 37, 39, 50, 40, 52, 53, 59, 43, 54, 55, 60, 56, 61, 62, 63]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 512, 3, 12, 5, 18, 128, 9, 33, 17, 10, 36, 66, 24, 256, 20, 65, 34, 7, 129, 40, 11, 72, 132, 513, 19, 48, 68, 13, 257, 14, 21, 130, 26, 80, 35, 258, 38, 136, 96, 22, 516, 37, 25, 67, 264, 41, 144, 28, 69, 260, 49, 74, 160, 42, 520, 134, 70, 44, 81, 272, 15, 50, 131, 192, 73, 23, 514, 137, 52, 288, 76, 133, 82, 27, 97, 259, 39, 528, 56, 138, 84, 29, 145, 261, 43, 320, 544, 98, 140, 265, 30, 88, 146, 262, 100, 518, 161, 71, 45, 273, 51, 148, 266, 576, 46, 75, 104, 164, 193, 53, 162, 515, 384, 268, 77, 152, 54, 85, 524, 289, 112, 274, 57, 78, 135, 517, 194, 83, 290, 168, 276, 86, 530, 58, 139, 322, 196, 101, 640, 60, 147, 176, 280, 99, 89, 521, 292, 141, 321, 200, 90, 545, 31, 142, 102, 263, 529, 47, 386, 105, 296, 208, 522, 153, 92, 149, 267, 548, 163, 324, 113, 150, 578, 165, 55, 304, 106, 275, 536, 269, 385, 154, 768, 79, 108, 224, 166, 532, 59, 169, 114, 195, 577, 328, 270, 277, 87, 546, 156, 116, 388, 519, 336, 291, 278, 197, 641, 61, 177, 170, 552, 91, 281, 201, 198, 523, 62, 143, 294, 584, 172, 392, 103, 644, 120, 293, 282, 531, 352, 178, 202, 560, 323, 297, 93, 580, 107, 151, 209, 525, 284, 180, 400, 769, 94, 204, 298, 526, 326, 155, 533, 305, 109, 325, 642, 210, 184, 225, 538, 167, 300, 592, 115, 387, 329, 547, 110, 416, 770, 212, 271, 117, 550, 306, 157, 648, 226, 171, 330, 608, 337, 389, 534, 308, 216, 549, 121, 390, 537, 158, 279, 332, 579, 118, 173, 776, 338, 179, 553, 199, 353, 656, 283, 312, 540, 448, 228, 581, 393, 122, 181, 772, 232, 295, 561, 174, 394, 586, 63, 203, 672, 354, 554, 401, 340, 646, 124, 285, 582, 182, 299, 556, 240, 211, 593, 286, 344, 784, 396, 205, 527, 95, 418, 562, 185, 643, 213, 402, 704, 307, 327, 585, 356, 535, 206, 186, 649, 301, 111, 564, 302, 800, 360, 227, 588, 417, 159, 645, 404, 594, 309, 214, 539, 449, 331, 609, 119, 771, 217, 188, 551, 229, 568, 333, 408, 650, 310, 596, 339, 420, 541, 218, 657, 368, 773, 123, 230, 555, 175, 832, 391, 313, 610, 241, 652, 450, 334, 777, 220, 542, 341, 600, 424, 314, 658, 183, 774, 233, 612, 355, 673, 125, 287, 583, 395, 557, 234, 785, 316, 345, 563, 187, 660, 452, 778, 403, 558, 342, 397, 587, 207, 616, 236, 676, 432, 705, 346, 565, 361, 674, 126, 242, 896, 357, 780, 405, 589, 215, 664, 398, 566, 303, 597, 358, 801, 419, 624, 456, 786, 348, 189, 569, 244, 590, 410, 647, 219, 706, 311, 595, 362, 802, 464, 680, 406, 788, 421, 598, 231, 570, 248, 651, 369, 834, 190, 708, 409, 613, 315, 572, 364, 659, 422, 335, 221, 688, 451, 792, 370, 611, 425, 601, 235, 804, 343, 653, 412, 833, 480, 712, 222, 602, 317, 543, 453, 654, 426, 614, 372, 775, 433, 559, 237, 898, 617, 347, 808, 243, 720, 454, 665, 318, 604, 376, 661, 428, 779, 238, 675, 359, 836, 458, 625, 399, 662, 677, 245, 567, 434, 816, 457, 618, 349, 787, 465, 781, 897, 363, 666, 407, 591, 127, 620, 246, 736, 436, 678, 571, 350, 681, 249, 626, 460, 707, 840, 411, 782, 365, 789, 440, 599, 374, 668, 628, 423, 900, 466, 848, 803, 250, 790, 371, 709, 191, 573, 689, 481, 682, 413, 603, 793, 366, 713, 468, 710, 429, 574, 655, 252, 806, 414, 684, 904, 373, 615, 482, 632, 805, 223, 794, 864, 427, 690, 472, 714, 835, 455, 809, 377, 605, 619, 435, 663, 721, 319, 796, 430, 692, 912, 239, 606, 716, 461, 810, 484, 838, 667, 378, 817, 621, 437, 837, 722, 247, 696, 380, 737, 679, 459, 812, 627, 488, 899, 841, 441, 622, 928, 351, 724, 783, 469, 629, 818, 438, 669, 462, 738, 683, 251, 842, 849, 496, 901, 820, 728, 467, 633, 902, 367, 670, 791, 442, 844, 630, 474, 685, 850, 483, 691, 711, 379, 865, 795, 415, 824, 960, 740, 253, 905, 634, 444, 693, 744, 485, 807, 686, 906, 470, 575, 715, 375, 866, 913, 473, 852, 636, 797, 431, 694, 811, 486, 752, 723, 798, 489, 856, 908, 254, 717, 607, 930, 476, 697, 725, 914, 439, 819, 839, 868, 492, 718, 698, 381, 813, 623, 814, 498, 872, 739, 929, 445, 671, 916, 821, 463, 726, 961, 843, 490, 631, 729, 700, 382, 741, 845, 920, 471, 822, 851, 932, 730, 497, 880, 635, 742, 443, 687, 903, 825, 475, 753, 962, 846, 732, 500, 853, 936, 826, 446, 695, 745, 867, 637, 487, 799, 907, 746, 828, 493, 857, 699, 964, 915, 477, 854, 909, 719, 504, 748, 944, 858, 873, 638, 478, 754, 869, 917, 727, 499, 910, 815, 870, 931, 255, 968, 860, 701, 756, 922, 491, 731, 823, 874, 976, 918, 502, 933, 743, 760, 881, 494, 702, 921, 827, 876, 934, 847, 505, 733, 963, 882, 937, 747, 383, 855, 924, 992, 734, 829, 965, 501, 938, 884, 945, 749, 859, 755, 479, 966, 830, 888, 940, 750, 871, 506, 970, 911, 757, 946, 969, 861, 977, 447, 875, 919, 639, 758, 948, 862, 761, 508, 972, 923, 877, 952, 886, 935, 978, 762, 503, 883, 703, 993, 925, 878, 980, 941, 764, 495, 926, 885, 994, 735, 939, 984, 967, 889, 947, 831, 507, 942, 751, 973, 996, 890, 949, 759, 892, 971, 1000, 953, 509, 863, 981, 950, 974, 763, 1008, 979, 879, 954, 986, 995, 891, 927, 510, 765, 956, 997, 982, 887, 985, 943, 998, 1001, 766, 988, 951, 1004, 893, 1010, 957, 975, 511, 1002, 894, 983, 1009, 955, 987, 1012, 958, 999, 1005, 989, 1016, 990, 1011, 767, 1003, 1014, 1006, 1017, 895, 1013, 991, 1018, 959, 1020, 1015, 1007, 1019, 1021, 1022, 1023]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 128, 9, 33, 17, 10, 36, 66, 24, 256, 20, 65, 34, 7, 129, 40, 11, 72, 132, 19, 48, 68, 13, 257, 14, 21, 130, 26, 80, 35, 258, 38, 136, 96, 22, 37, 25, 67, 264, 41, 144, 28, 69, 260, 49, 74, 160, 42, 134, 70, 44, 81, 272, 15, 50, 131, 192, 73, 23, 137, 52, 288, 76, 133, 82, 27, 97, 259, 39, 56, 138, 84, 29, 145, 261, 43, 320, 98, 140, 265, 30, 88, 146, 262, 100, 161, 71, 45, 273, 51, 148, 266, 46, 75, 104, 164, 193, 53, 162, 384, 268, 77, 152, 54, 85, 289, 112, 274, 57, 78, 135, 194, 83, 290, 168, 276, 86, 58, 139, 322, 196, 101, 60, 147, 176, 280, 99, 89, 292, 141, 321, 200, 90, 31, 142, 102, 263, 47, 386, 105, 296, 208, 153, 92, 149, 267, 163, 324, 113, 150, 165, 55, 304, 106, 275, 269, 385, 154, 79, 108, 224, 166, 59, 169, 114, 195, 328, 270, 277, 87, 156, 116, 388, 336, 291, 278, 197, 61, 177, 170, 91, 281, 201, 198, 62, 143, 294, 172, 392, 103, 120, 293, 282, 352, 178, 202, 323, 297, 93, 107, 151, 209, 284, 180, 400, 94, 204, 298, 326, 155, 305, 109, 325, 210, 184, 225, 167, 300, 115, 387, 329, 110, 416, 212, 271, 117, 306, 157, 226, 171, 330, 337, 389, 308, 216, 121, 390, 158, 279, 332, 118, 173, 338, 179, 199, 353, 283, 312, 448, 228, 393, 122, 181, 232, 295, 174, 394, 63, 203, 354, 401, 340, 124, 285, 182, 299, 240, 211, 286, 344, 396, 205, 95, 418, 185, 213, 402, 307, 327, 356, 206, 186, 301, 111, 302, 360, 227, 417, 159, 404, 309, 214, 449, 331, 119, 217, 188, 229, 333, 408, 310, 339, 420, 218, 368, 123, 230, 175, 391, 313, 241, 450, 334, 220, 341, 424, 314, 183, 233, 355, 125, 287, 395, 234, 316, 345, 187, 452, 403, 342, 397, 207, 236, 432, 346, 361, 126, 242, 357, 405, 215, 398, 303, 358, 419, 456, 348, 189, 244, 410, 219, 311, 362, 464, 406, 421, 231, 248, 369, 190, 409, 315, 364, 422, 335, 221, 451, 370, 425, 235, 343, 412, 480, 222, 317, 453, 426, 372, 433, 237, 347, 243, 454, 318, 376, 428, 238, 359, 458, 399, 245, 434, 457, 349, 465, 363, 407, 127, 246, 436, 350, 249, 460, 411, 365, 440, 374, 423, 466, 250, 371, 191, 481, 413, 366, 468, 429, 252, 414, 373, 482, 223, 427, 472, 455, 377, 435, 319, 430, 239, 461, 484, 378, 437, 247, 380, 459, 488, 441, 351, 469, 438, 462, 251, 496, 467, 367, 442, 474, 483, 379, 415, 253, 444, 485, 470, 375, 473, 431, 486, 489, 254, 476, 439, 492, 381, 498, 445, 463, 490, 382, 471, 497, 443, 475, 500, 446, 487, 493, 477, 504, 478, 499, 255, 491, 502, 494, 505, 383, 501, 479, 506, 447, 508, 503, 495, 507, 509, 510, 511]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 128, 9, 33, 17, 10, 36, 66, 24, 20, 65, 34, 7, 129, 40, 11, 72, 132, 19, 48, 68, 13, 14, 21, 130, 26, 80, 35, 38, 136, 96, 22, 37, 25, 67, 41, 144, 28, 69, 49, 74, 160, 42, 134, 70, 44, 81, 15, 50, 131, 192, 73, 23, 137, 52, 76, 133, 82, 27, 97, 39, 56, 138, 84, 29, 145, 43, 98, 140, 30, 88, 146, 100, 161, 71, 45, 51, 148, 46, 75, 104, 164, 193, 53, 162, 77, 152, 54, 85, 112, 57, 78, 135, 194, 83, 168, 86, 58, 139, 196, 101, 60, 147, 176, 99, 89, 141, 200, 90, 31, 142, 102, 47, 105, 208, 153, 92, 149, 163, 113, 150, 165, 55, 106, 154, 79, 108, 224, 166, 59, 169, 114, 195, 87, 156, 116, 197, 61, 177, 170, 91, 201, 198, 62, 143, 172, 103, 120, 178, 202, 93, 107, 151, 209, 180, 94, 204, 155, 109, 210, 184, 225, 167, 115, 110, 212, 117, 157, 226, 171, 216, 121, 158, 118, 173, 179, 199, 228, 122, 181, 232, 174, 63, 203, 124, 182, 240, 211, 205, 95, 185, 213, 206, 186, 111, 227, 159, 214, 119, 217, 188, 229, 218, 123, 230, 175, 241, 220, 183, 233, 125, 234, 187, 207, 236, 126, 242, 215, 189, 244, 219, 231, 248, 190, 221, 235, 222, 237, 243, 238, 245, 127, 246, 249, 250, 191, 252, 223, 239, 247, 251, 253, 254, 255]
[0, 1, 4, 8, 2, 16, 32, 6, 64, 3, 12, 5, 18, 9, 33, 17, 10, 36, 66, 24, 20, 65, 34, 7, 40, 11, 72, 19, 48, 68, 13, 14, 21, 26, 80, 35, 38, 96, 22, 37, 25, 67, 41, 28, 69, 49, 74, 42, 70, 44, 81, 15, 50, 73, 23, 52, 76, 82, 27, 97, 39, 56, 84, 29, 43, 98, 30, 88, 100, 71, 45, 51, 46, 75, 104, 53, 77, 54, 85, 112, 57, 78, 83, 86, 58, 101, 60, 99, 89, 90, 31, 102, 47, 105, 92, 113, 55, 106, 79, 108, 59, 114, 87, 116, 61, 91, 62, 103, 120, 93, 107, 94, 109, 115, 110, 117, 121, 118, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127]
[0, 1, 4, 8, 2, 16, 32, 6, 3, 12, 5, 18, 9, 33, 17, 10, 36, 24, 20, 34, 7, 40, 11, 19, 48, 13, 14, 21, 26, 35, 38, 22, 37, 25, 41, 28, 49, 42, 44, 15, 50, 23, 52, 27, 39, 56, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]
[0, 1, 4, 10, 2, 12, 7, 26, 3, 15, 18, 29, 11, 36, 38, 69, 5, 17, 13, 33, 23, 39, 48, 74, 21, 51, 41, 82, 56, 90, 99, 161, 6, 16, 25, 43, 19, 50, 45, 85, 28, 54, 62, 93, 66, 107, 113, 166, 34, 59, 70, 109, 77, 118, 125, 183, 87, 131, 142, 197, 148, 216, 225, 327, 8, 24, 20, 52, 35, 57, 65, 106, 30, 73, 60, 114, 79, 123, 132, 192, 42, 67, 81, 136, 89, 126, 140, 205, 100, 153, 159, 220, 173, 243, 253, 350, 47, 83, 96, 152, 103, 146, 163, 231, 115, 168, 185, 245, 193, 261, 275, 367, 129, 179, 199, 271, 208, 280, 302, 385, 233, 295, 318, 404, 335, 430, 459, 580, 14, 27, 40, 71, 31, 80, 64, 133, 46, 76, 88, 143, 97, 156, 162, 226, 55, 91, 101, 149, 110, 174, 180, 246, 124, 172, 190, 258, 207, 283, 298, 375, 61, 105, 119, 177, 116, 182, 195, 268, 138, 198, 218, 286, 229, 303, 324, 407, 150, 217, 238, 306, 250, 319, 338, 424, 265, 353, 364, 440, 388, 479, 503, 612, 72, 117, 135, 200, 145, 214, 223, 308, 158, 222, 239, 328, 254, 348, 363, 449, 170, 247, 264, 342, 278, 355, 380, 466, 293, 387, 400, 485, 417, 513, 529, 637, 194, 266, 285, 372, 315, 390, 405, 497, 321, 426, 435, 521, 451, 541, 556, 658, 341, 412, 460, 546, 481, 565, 582, 672, 499, 589, 608, 697, 627, 726, 756, 852, 22, 37, 44, 84, 58, 92, 102, 164, 53, 98, 111, 175, 122, 188, 203, 279, 68, 108, 130, 186, 139, 204, 213, 299, 151, 221, 235, 311, 249, 336, 344, 431, 78, 128, 137, 212, 155, 234, 227, 322, 169, 242, 255, 339, 269, 366, 369, 470, 184, 260, 282, 358, 292, 379, 395, 487, 312, 410, 422, 507, 437, 531, 550, 653, 94, 157, 144, 241, 178, 262, 257, 359, 202, 273, 287, 383, 300, 392, 415, 512, 211, 289, 305, 397, 333, 419, 446, 523, 345, 438, 455, 544, 478, 571, 587, 686, 237, 309, 330, 428, 361, 462, 472, 558, 371, 457, 489, 576, 509, 596, 620, 707, 402, 501, 517, 610, 537, 632, 600, 739, 552, 647, 666, 719, 674, 771, 791, 882, 121, 189, 167, 272, 209, 290, 296, 409, 230, 317, 325, 433, 347, 447, 468, 562, 251, 332, 356, 444, 377, 464, 493, 578, 393, 505, 483, 594, 525, 617, 629, 722, 276, 374, 351, 474, 398, 495, 511, 603, 421, 519, 535, 640, 554, 624, 655, 746, 453, 539, 567, 650, 584, 669, 692, 764, 598, 683, 710, 804, 729, 779, 817, 911, 314, 382, 414, 515, 442, 533, 548, 645, 476, 569, 560, 677, 591, 661, 694, 783, 491, 573, 605, 704, 622, 689, 736, 795, 642, 742, 713, 808, 760, 832, 842, 896, 527, 615, 634, 716, 663, 732, 749, 822, 680, 753, 787, 858, 768, 827, 869, 937, 700, 800, 775, 847, 813, 889, 864, 928, 836, 876, 903, 948, 919, 960, 974, 992, 9, 32, 75, 120, 49, 134, 104, 210, 63, 154, 171, 224, 127, 248, 256, 349, 86, 165, 141, 236, 196, 259, 291, 362, 187, 297, 267, 381, 313, 399, 418, 532, 95, 160, 206, 274, 176, 294, 281, 389, 219, 307, 331, 406, 340, 434, 445, 540, 240, 323, 352, 439, 368, 456, 469, 566, 391, 480, 498, 586, 508, 613, 625, 737, 112, 201, 181, 301, 244, 316, 337, 432, 228, 360, 326, 448, 373, 465, 482, 579, 270, 343, 378, 488, 396, 471, 496, 599, 420, 520, 530, 618, 551, 648, 659, 758, 288, 384, 411, 518, 427, 506, 536, 633, 450, 543, 570, 649, 581, 668, 684, 773, 475, 561, 590, 679, 602, 690, 712, 788, 635, 705, 728, 802, 744, 821, 841, 914, 147, 215, 263, 354, 232, 376, 334, 484, 284, 365, 394, 500, 413, 524, 534, 626, 310, 401, 423, 510, 441, 553, 563, 651, 467, 549, 577, 665, 601, 693, 708, 780, 329, 429, 458, 557, 452, 564, 585, 676, 492, 588, 616, 696, 630, 714, 734, 805, 514, 614, 641, 717, 656, 730, 747, 818, 673, 761, 770, 829, 790, 855, 870, 930, 357, 454, 486, 592, 504, 611, 623, 718, 528, 621, 643, 738, 660, 757, 769, 835, 547, 652, 671, 751, 687, 762, 784, 846, 703, 789, 799, 859, 812, 877, 886, 941, 583, 675, 695, 777, 725, 792, 803, 866, 731, 819, 825, 881, 837, 893, 901, 950, 750, 809, 843, 895, 856, 906, 915, 955, 867, 918, 927, 965, 936, 975, 984, 1007, 191, 252, 277, 386, 320, 403, 425, 538, 304, 416, 443, 555, 463, 574, 595, 688, 346, 436, 477, 572, 494, 597, 609, 709, 516, 619, 638, 721, 654, 745, 752, 823, 370, 473, 490, 607, 522, 636, 628, 733, 545, 646, 662, 748, 678, 772, 774, 849, 568, 667, 691, 765, 702, 782, 796, 860, 723, 807, 816, 872, 826, 887, 898, 947, 408, 526, 502, 644, 559, 670, 664, 766, 593, 682, 698, 786, 711, 793, 811, 875, 606, 699, 715, 797, 743, 814, 833, 883, 754, 828, 839, 894, 854, 909, 917, 961, 639, 720, 740, 820, 767, 844, 850, 902, 776, 840, 861, 912, 873, 922, 933, 968, 801, 868, 879, 929, 891, 939, 924, 979, 899, 945, 953, 972, 956, 988, 994, 1012, 461, 575, 542, 681, 604, 701, 706, 806, 631, 727, 735, 824, 755, 834, 848, 905, 657, 741, 763, 831, 781, 845, 863, 913, 794, 871, 857, 921, 884, 932, 938, 973, 685, 778, 759, 851, 798, 865, 874, 925, 815, 880, 890, 942, 900, 935, 949, 981, 838, 892, 907, 946, 916, 954, 963, 986, 923, 959, 969, 997, 976, 990, 1000, 1016, 724, 785, 810, 878, 830, 888, 897, 944, 853, 908, 904, 957, 920, 951, 964, 991, 862, 910, 926, 967, 934, 962, 978, 995, 943, 980, 970, 998, 985, 1003, 1005, 1014, 885, 931, 940, 971, 952, 977, 982, 1001, 958, 983, 993, 1008, 987, 1002, 1010, 1019, 966, 996, 989, 1006, 999, 1013, 1009, 1018, 1004, 1011, 1015, 1020, 1017, 1021, 1022, 1023]
[0, 1, 4, 9, 2, 11, 7, 25, 3, 14, 17, 28, 10, 34, 36, 65, 5, 16, 12, 31, 22, 37, 46, 70, 20, 48, 39, 77, 53, 84, 92, 145, 6, 15, 24, 41, 18, 47, 43, 80, 27, 51, 59, 87, 62, 99, 104, 149, 32, 56, 66, 101, 72, 109, 115, 163, 81, 120, 129, 174, 134, 189, 196, 269, 8, 23, 19, 49, 33, 54, 61, 98, 29, 69, 57, 105, 74, 113, 121, 170, 40, 63, 76, 124, 83, 116, 128, 181, 93, 139, 144, 192, 155, 210, 217, 284, 45, 78, 89, 138, 96, 133, 147, 201, 106, 151, 165, 211, 171, 223, 233, 295, 118, 160, 176, 230, 183, 237, 252, 306, 202, 247, 263, 317, 274, 332, 348, 409, 13, 26, 38, 67, 30, 75, 60, 122, 44, 71, 82, 130, 90, 141, 146, 197, 52, 85, 94, 135, 102, 156, 161, 212, 114, 154, 169, 221, 182, 239, 249, 300, 58, 97, 110, 158, 107, 162, 173, 228, 126, 175, 191, 241, 199, 253, 267, 319, 136, 190, 206, 255, 215, 264, 276, 329, 226, 286, 293, 338, 308, 359, 371, 423, 68, 108, 123, 177, 132, 188, 195, 256, 143, 194, 207, 270, 218, 283, 292, 343, 153, 213, 225, 279, 235, 287, 303, 352, 246, 307, 315, 362, 325, 377, 385, 433, 172, 227, 240, 298, 261, 309, 318, 368, 265, 330, 335, 381, 344, 391, 398, 441, 278, 322, 349, 393, 360, 402, 410, 446, 369, 413, 421, 455, 429, 464, 473, 495, 21, 35, 42, 79, 55, 86, 95, 148, 50, 91, 103, 157, 112, 167, 179, 236, 64, 100, 119, 166, 127, 180, 187, 250, 137, 193, 204, 258, 214, 275, 280, 333, 73, 117, 125, 186, 140, 203, 198, 266, 152, 209, 219, 277, 229, 294, 296, 354, 164, 222, 238, 289, 245, 302, 312, 363, 259, 321, 328, 373, 336, 386, 395, 439, 88, 142, 131, 208, 159, 224, 220, 290, 178, 232, 242, 305, 251, 310, 324, 376, 185, 243, 254, 313, 273, 326, 341, 382, 281, 337, 346, 392, 358, 405, 412, 451, 205, 257, 271, 331, 291, 350, 355, 399, 297, 347, 364, 407, 374, 416, 426, 458, 316, 370, 379, 422, 389, 431, 418, 468, 396, 437, 444, 462, 447, 477, 482, 500, 111, 168, 150, 231, 184, 244, 248, 320, 200, 262, 268, 334, 282, 342, 353, 401, 216, 272, 288, 340, 301, 351, 366, 408, 311, 372, 361, 415, 383, 425, 430, 463, 234, 299, 285, 356, 314, 367, 375, 419, 327, 380, 388, 434, 397, 428, 440, 470, 345, 390, 403, 438, 411, 445, 453, 475, 417, 450, 459, 485, 465, 479, 488, 504, 260, 304, 323, 378, 339, 387, 394, 436, 357, 404, 400, 448, 414, 442, 454, 480, 365, 406, 420, 457, 427, 452, 467, 483, 435, 469, 460, 486, 474, 491, 493, 502, 384, 424, 432, 461, 443, 466, 471, 489, 449, 472, 481, 496, 476, 490, 498, 507, 456, 484, 478, 494, 487, 501, 497, 506, 492, 499, 503, 508, 505, 509, 510, 511]
[0, 1, 4, 9, 2, 11, 7, 24, 3, 14, 17, 27, 10, 33, 34, 59, 5, 16, 12, 30, 21, 35, 43, 64, 20, 45, 37, 70, 49, 76, 81, 121, 6, 15, 23, 39, 18, 44, 40, 72, 26, 47, 54, 78, 57, 87, 90, 124, 31, 51, 60, 88, 66, 95, 99, 134, 73, 102, 109, 141, 113, 149, 155, 194, 8, 22, 19, 46, 32, 50, 56, 86, 28, 63, 52, 91, 67, 97, 103, 137, 38, 58, 69, 106, 75, 100, 108, 145, 82, 117, 120, 152, 128, 162, 167, 201, 42, 71, 79, 116, 84, 112, 123, 158, 92, 125, 135, 163, 138, 170, 176, 206, 101, 131, 143, 175, 147, 178, 185, 210, 159, 183, 190, 215, 196, 222, 227, 243, 13, 25, 36, 61, 29, 68, 55, 104, 41, 65, 74, 110, 80, 118, 122, 156, 48, 77, 83, 114, 89, 129, 132, 164, 98, 127, 136, 169, 146, 179, 184, 208, 53, 85, 96, 130, 93, 133, 140, 174, 107, 142, 151, 181, 157, 186, 193, 217, 115, 150, 160, 187, 166, 191, 197, 220, 172, 202, 205, 224, 212, 230, 235, 247, 62, 94, 105, 144, 111, 148, 154, 188, 119, 153, 161, 195, 168, 200, 204, 225, 126, 165, 171, 199, 177, 203, 209, 229, 182, 211, 214, 232, 219, 236, 238, 249, 139, 173, 180, 207, 189, 213, 216, 233, 192, 221, 223, 237, 226, 239, 241, 250, 198, 218, 228, 240, 231, 242, 244, 251, 234, 245, 246, 252, 248, 253, 254, 255]
[0, 1, 4, 9, 2, 11, 7, 23, 3, 13, 16, 25, 10, 30, 31, 51, 5, 15, 12, 27, 20, 32, 38, 54, 19, 40, 33, 58, 43, 63, 66, 90, 6, 14, 22, 35, 17, 39, 36, 60, 24, 42, 47, 64, 49, 70, 72, 92, 28, 45, 52, 71, 55, 75, 77, 96, 61, 80, 84, 100, 86, 104, 106, 119, 8, 21, 18, 41, 29, 44, 48, 69, 26, 53, 46, 73, 56, 76, 81, 98, 34, 50, 57, 82, 62, 78, 83, 102, 67, 88, 89, 105, 94, 109, 111, 121, 37, 59, 65, 87, 68, 85, 91, 107, 74, 93, 97, 110, 99, 112, 114, 122, 79, 95, 101, 113, 103, 115, 117, 123, 108, 116, 118, 124, 120, 125, 126, 127]
[0, 1, 4, 8, 2, 10, 7, 20, 3, 12, 15, 22, 9, 25, 26, 39, 5, 14, 11, 23, 18, 27, 31, 41, 17, 33, 28, 43, 35, 46, 48, 57, 6, 13, 19, 29, 16, 32, 30, 44, 21, 34, 37, 47, 38, 49, 51, 58, 24, 36, 40, 50, 42, 52, 53, 59, 45, 54, 55, 60, 56, 61, 62, 63]
K個の符号化対象ビットを符号化するために使用される第1の系列を得るように構成された取得ユニット601であって、第1の系列が、N個の分極されたチャネルの系列番号を含み、N個の分極されたチャネルの系列番号が、N個の分極されたチャネルの信頼性に基づいて第1の系列内で配列され、Kが、正の整数であり、Nが、Polar符号の母符号長であり、Nが、2の正の整数乗であり、K≦Nである、取得ユニット601と、
信頼性の昇順に第1の系列からK個の分極されたチャネルの系列番号を選択するように構成された選択ユニット602と、
K個の分極されたチャネルの選択された系列番号に基づいて符号化対象ビットを配置し、符号化対象ビットに対してPolar符号符号化を実行するように構成された符号化ユニット603とを含む。
102 コアネットワーク
104 IPネットワーク
110 ネットワークデバイス
112 端末
120 ネットワークデバイス
300 Polar符号符号化装置
301 入力インターフェース回路
302 論理回路
303 出力インターフェース回路
310 変調器
320 トランシーバ
330 アンテナ
401 メモリ
402 プロセッサ
501 メモリ
502 プロセッサ
601 取得ユニット
602 選択ユニット
603 符号化ユニット
Claims (11)
- 符号化方法であって、
符号化装置により、K個の符号化対象ビットを符号化するために使用される第1の系列を得るステップであって、前記第1の系列が、N個の分極されたチャネルの信頼性の系列番号を含み、Kが正の整数であり、K≦N、N=1024である、ステップと、
前記符号化装置により、前記第1の系列からK個の分極されたチャネルの信頼性の系列番号を選択するステップと、
前記符号化装置により、符号化後のビット系列を得るために、前記K個の分極されたチャネルの選択された前記信頼性の系列番号に基づいて、前記K個の符号化対象ビットに対してPolar符号符号化を実行するステップと
を含み、
前記第1の系列は、Sequence Z11:
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 28, 16, 33, 35, 76, 5, 12, 14, 32, 19, 38, 47, 80, 22, 46, 42, 87, 57, 95, 101, 160, 6, 17, 21, 40, 23, 45, 51, 89, 29, 55, 59, 96, 71, 108, 113, 175, 34, 61, 74, 111, 79, 120, 129, 186, 86, 131, 141, 208, 146, 218, 236, 327, 9, 18, 26, 54, 30, 58, 70, 103, 36, 75, 62, 114, 83, 123, 135, 193, 44, 73, 85, 130, 91, 138, 145, 214, 99, 148, 162, 228, 174, 242, 256, 357, 53, 88, 97, 144, 109, 154, 169, 239, 118, 170, 185, 250, 195, 269, 282, 382, 133, 191, 211, 273, 216, 283, 301, 403, 233, 307, 322, 419, 337, 434, 460, 582, 15, 25, 31, 72, 39, 78, 81, 134, 48, 84, 92, 143, 100, 153, 157, 238, 56, 93, 102, 155, 112, 168, 182, 252, 122, 183, 192, 264, 213, 279, 297, 395, 64, 106, 119, 173, 124, 184, 198, 274, 142, 209, 217, 285, 232, 306, 317, 418, 156, 225, 240, 311, 251, 333, 339, 432, 270, 348, 370, 453, 386, 472, 511, 583, 68, 121, 137, 201, 152, 215, 231, 309, 161, 234, 244, 326, 257, 338, 356, 447, 180, 253, 265, 346, 284, 366, 384, 478, 293, 388, 406, 494, 424, 518, 532, 641, 197, 275, 288, 373, 312, 394, 409, 506, 336, 415, 433, 526, 454, 535, 567, 671, 355, 440, 461, 552, 470, 577, 591, 695, 509, 598, 613, 690, 629, 714, 743, 830, 20, 37, 41, 90, 49, 94, 104, 167, 50, 105, 115, 176, 126, 194, 202, 295, 63, 116, 127, 205, 139, 212, 223, 296, 147, 222, 237, 321, 254, 335, 342, 431, 66, 136, 149, 207, 164, 226, 241, 334, 172, 248, 258, 344, 268, 364, 377, 468, 171, 266, 277, 363, 292, 385, 397, 495, 314, 411, 425, 517, 439, 531, 555, 663, 77, 159, 165, 246, 179, 262, 276, 358, 187, 281, 287, 383, 302, 402, 414, 515, 235, 298, 313, 405, 328, 422, 438, 528, 350, 443, 464, 550, 481, 576, 593, 686, 261, 324, 345, 430, 362, 452, 466, 568, 380, 475, 487, 581, 512, 605, 619, 707, 407, 510, 519, 614, 529, 630, 609, 721, 560, 660, 672, 749, 677, 779, 794, 846, 82, 177, 181, 291, 227, 305, 316, 410, 247, 320, 329, 427, 349, 445, 463, 570, 259, 347, 361, 446, 372, 467, 483, 585, 389, 489, 505, 601, 527, 617, 640, 725, 294, 365, 376, 482, 396, 500, 521, 610, 426, 522, 533, 638, 561, 627, 667, 751, 451, 546, 574, 661, 586, 676, 688, 770, 606, 693, 692, 790, 722, 801, 813, 877, 323, 387, 412, 523, 444, 534, 554, 647, 465, 569, 578, 673, 597, 679, 691, 777, 484, 589, 611, 687, 620, 694, 723, 802, 646, 729, 740, 816, 760, 834, 844, 905, 516, 615, 636, 724, 666, 726, 756, 821, 670, 753, 772, 840, 786, 853, 870, 924, 680, 780, 798, 859, 808, 873, 865, 930, 828, 885, 893, 946, 909, 954, 963, 984, 27, 43, 52, 98, 60, 117, 128, 199, 65, 132, 140, 204, 151, 220, 224, 330, 67, 150, 158, 219, 166, 263, 271, 354, 188, 272, 290, 381, 304, 398, 413, 525, 69, 163, 178, 267, 190, 289, 299, 392, 200, 308, 318, 416, 332, 435, 449, 536, 210, 325, 341, 442, 359, 462, 473, 564, 367, 469, 490, 588, 493, 600, 616, 745, 107, 189, 196, 303, 206, 319, 331, 429, 229, 343, 351, 457, 369, 477, 488, 572, 245, 353, 375, 471, 391, 492, 497, 594, 404, 498, 504, 618, 545, 631, 656, 752, 260, 390, 400, 503, 421, 520, 524, 624, 437, 544, 557, 645, 580, 664, 674, 773, 456, 566, 587, 675, 607, 685, 709, 787, 635, 712, 730, 803, 741, 819, 836, 903, 110, 203, 221, 340, 243, 352, 371, 480, 255, 378, 393, 499, 408, 508, 513, 621, 280, 401, 420, 514, 436, 541, 553, 642, 455, 562, 579, 669, 595, 681, 700, 774, 300, 428, 448, 556, 474, 575, 573, 682, 485, 590, 599, 696, 625, 710, 718, 805, 507, 608, 633, 715, 643, 735, 742, 822, 659, 750, 764, 841, 789, 855, 871, 925, 315, 459, 476, 592, 496, 604, 626, 713, 539, 634, 650, 738, 653, 744, 758, 833, 547, 651, 658, 755, 683, 763, 783, 852, 704, 788, 797, 860, 812, 878, 888, 933, 563, 689, 698, 775, 719, 791, 800, 867, 731, 810, 823, 884, 837, 894, 907, 949, 766, 825, 842, 897, 857, 911, 916, 961, 868, 921, 929, 966, 940, 974, 983, 1003, 125, 230, 249, 379, 278, 399, 417, 530, 286, 423, 441, 543, 458, 559, 584, 701, 310, 450, 479, 571, 491, 603, 596, 706, 501, 612, 628, 728, 648, 736, 747, 829, 360, 486, 502, 602, 538, 623, 637, 739, 542, 649, 655, 748, 665, 759, 769, 848, 548, 662, 678, 768, 703, 782, 795, 861, 716, 807, 811, 879, 824, 889, 900, 944, 368, 537, 540, 644, 549, 652, 668, 762, 565, 684, 697, 778, 711, 792, 809, 875, 632, 702, 720, 796, 732, 817, 826, 886, 761, 827, 843, 898, 858, 910, 915, 960, 654, 734, 754, 818, 767, 839, 850, 902, 785, 854, 863, 914, 874, 922, 932, 969, 799, 869, 881, 928, 892, 935, 943, 976, 904, 947, 953, 981, 958, 989, 991, 1011, 374, 551, 558, 699, 622, 708, 717, 806, 639, 727, 737, 820, 757, 832, 847, 901, 657, 746, 765, 835, 776, 851, 864, 913, 793, 872, 862, 919, 887, 931, 939, 972, 705, 771, 781, 856, 804, 866, 880, 926, 815, 882, 891, 936, 899, 941, 950, 980, 838, 895, 906, 945, 917, 955, 959, 987, 923, 965, 968, 993, 975, 996, 998, 1008, 733, 784, 814, 883, 831, 890, 896, 942, 845, 908, 912, 952, 920, 956, 967, 990, 849, 918, 927, 964, 938, 970, 971, 997, 948, 977, 979, 999, 985, 1004, 1006, 1016, 876, 934, 937, 973, 951, 978, 982, 1001, 957, 986, 988, 1005, 994, 1007, 1012, 1018, 962, 992, 995, 1009, 1000, 1010, 1013, 1019, 1002, 1014, 1015, 1020, 1017, 1021, 1022, 1023]
または、Table Z11:
- 前記N個の分極されたチャネルの前記信頼性の系列番号が、前記N個の分極されたチャネルの系列番号順に前記第1の系列内で配列される、請求項1に記載の方法。
- 前記K個の分極されたチャネルの前記信頼性の系列番号が、前記N個の分極されたチャネルの信頼性の昇順に選択される、請求項2に記載の方法。
- 前記K個の符号化対象ビットが、巡回冗長検査(CRC)ビットを含む、請求項1から3のいずれか一項に記載の方法。
- 前記K個の符号化対象ビットが、パリティ検査(PC)ビットを含む、請求項1から4のいずれか一項に記載の方法。
- Polar符号符号化装置であって、
命令を格納したメモリと、
前記メモリとの通信を行うプロセッサと
を備え、
前記プロセッサは、前記命令を実行して、請求項1から5のいずれか一項に記載の方法を実行するように構成される、装置。 - K個の符号化対象ビットを得るように構成された入力インターフェース回路と、
論理回路であって、
前記K個の符号化対象ビットを符号化するために使用される第1の系列を得ることであって、前記第1の系列が、N個の分極されたチャネルの信頼性の系列番号を含み、Kが正の整数であり、K≦N、N=1024である、ことと、
前記第1の系列からK個の分極されたチャネルの信頼性の系列番号を選択することと、
符号化後のビット系列を得るために、前記K個の分極されたチャネルの選択された前記信頼性の系列番号に基づいて、前記K個の符号化対象ビットに対してPolar符号符号化を実行することと
を行うように構成された論理回路と、
符号化後の前記ビット系列を出力するように構成された出力インターフェース回路と
を備え、
前記第1の系列は、Sequence Z11:
[0, 1, 2, 7, 3, 8, 11, 24, 4, 10, 13, 28, 16, 33, 35, 76, 5, 12, 14, 32, 19, 38, 47, 80, 22, 46, 42, 87, 57, 95, 101, 160, 6, 17, 21, 40, 23, 45, 51, 89, 29, 55, 59, 96, 71, 108, 113, 175, 34, 61, 74, 111, 79, 120, 129, 186, 86, 131, 141, 208, 146, 218, 236, 327, 9, 18, 26, 54, 30, 58, 70, 103, 36, 75, 62, 114, 83, 123, 135, 193, 44, 73, 85, 130, 91, 138, 145, 214, 99, 148, 162, 228, 174, 242, 256, 357, 53, 88, 97, 144, 109, 154, 169, 239, 118, 170, 185, 250, 195, 269, 282, 382, 133, 191, 211, 273, 216, 283, 301, 403, 233, 307, 322, 419, 337, 434, 460, 582, 15, 25, 31, 72, 39, 78, 81, 134, 48, 84, 92, 143, 100, 153, 157, 238, 56, 93, 102, 155, 112, 168, 182, 252, 122, 183, 192, 264, 213, 279, 297, 395, 64, 106, 119, 173, 124, 184, 198, 274, 142, 209, 217, 285, 232, 306, 317, 418, 156, 225, 240, 311, 251, 333, 339, 432, 270, 348, 370, 453, 386, 472, 511, 583, 68, 121, 137, 201, 152, 215, 231, 309, 161, 234, 244, 326, 257, 338, 356, 447, 180, 253, 265, 346, 284, 366, 384, 478, 293, 388, 406, 494, 424, 518, 532, 641, 197, 275, 288, 373, 312, 394, 409, 506, 336, 415, 433, 526, 454, 535, 567, 671, 355, 440, 461, 552, 470, 577, 591, 695, 509, 598, 613, 690, 629, 714, 743, 830, 20, 37, 41, 90, 49, 94, 104, 167, 50, 105, 115, 176, 126, 194, 202, 295, 63, 116, 127, 205, 139, 212, 223, 296, 147, 222, 237, 321, 254, 335, 342, 431, 66, 136, 149, 207, 164, 226, 241, 334, 172, 248, 258, 344, 268, 364, 377, 468, 171, 266, 277, 363, 292, 385, 397, 495, 314, 411, 425, 517, 439, 531, 555, 663, 77, 159, 165, 246, 179, 262, 276, 358, 187, 281, 287, 383, 302, 402, 414, 515, 235, 298, 313, 405, 328, 422, 438, 528, 350, 443, 464, 550, 481, 576, 593, 686, 261, 324, 345, 430, 362, 452, 466, 568, 380, 475, 487, 581, 512, 605, 619, 707, 407, 510, 519, 614, 529, 630, 609, 721, 560, 660, 672, 749, 677, 779, 794, 846, 82, 177, 181, 291, 227, 305, 316, 410, 247, 320, 329, 427, 349, 445, 463, 570, 259, 347, 361, 446, 372, 467, 483, 585, 389, 489, 505, 601, 527, 617, 640, 725, 294, 365, 376, 482, 396, 500, 521, 610, 426, 522, 533, 638, 561, 627, 667, 751, 451, 546, 574, 661, 586, 676, 688, 770, 606, 693, 692, 790, 722, 801, 813, 877, 323, 387, 412, 523, 444, 534, 554, 647, 465, 569, 578, 673, 597, 679, 691, 777, 484, 589, 611, 687, 620, 694, 723, 802, 646, 729, 740, 816, 760, 834, 844, 905, 516, 615, 636, 724, 666, 726, 756, 821, 670, 753, 772, 840, 786, 853, 870, 924, 680, 780, 798, 859, 808, 873, 865, 930, 828, 885, 893, 946, 909, 954, 963, 984, 27, 43, 52, 98, 60, 117, 128, 199, 65, 132, 140, 204, 151, 220, 224, 330, 67, 150, 158, 219, 166, 263, 271, 354, 188, 272, 290, 381, 304, 398, 413, 525, 69, 163, 178, 267, 190, 289, 299, 392, 200, 308, 318, 416, 332, 435, 449, 536, 210, 325, 341, 442, 359, 462, 473, 564, 367, 469, 490, 588, 493, 600, 616, 745, 107, 189, 196, 303, 206, 319, 331, 429, 229, 343, 351, 457, 369, 477, 488, 572, 245, 353, 375, 471, 391, 492, 497, 594, 404, 498, 504, 618, 545, 631, 656, 752, 260, 390, 400, 503, 421, 520, 524, 624, 437, 544, 557, 645, 580, 664, 674, 773, 456, 566, 587, 675, 607, 685, 709, 787, 635, 712, 730, 803, 741, 819, 836, 903, 110, 203, 221, 340, 243, 352, 371, 480, 255, 378, 393, 499, 408, 508, 513, 621, 280, 401, 420, 514, 436, 541, 553, 642, 455, 562, 579, 669, 595, 681, 700, 774, 300, 428, 448, 556, 474, 575, 573, 682, 485, 590, 599, 696, 625, 710, 718, 805, 507, 608, 633, 715, 643, 735, 742, 822, 659, 750, 764, 841, 789, 855, 871, 925, 315, 459, 476, 592, 496, 604, 626, 713, 539, 634, 650, 738, 653, 744, 758, 833, 547, 651, 658, 755, 683, 763, 783, 852, 704, 788, 797, 860, 812, 878, 888, 933, 563, 689, 698, 775, 719, 791, 800, 867, 731, 810, 823, 884, 837, 894, 907, 949, 766, 825, 842, 897, 857, 911, 916, 961, 868, 921, 929, 966, 940, 974, 983, 1003, 125, 230, 249, 379, 278, 399, 417, 530, 286, 423, 441, 543, 458, 559, 584, 701, 310, 450, 479, 571, 491, 603, 596, 706, 501, 612, 628, 728, 648, 736, 747, 829, 360, 486, 502, 602, 538, 623, 637, 739, 542, 649, 655, 748, 665, 759, 769, 848, 548, 662, 678, 768, 703, 782, 795, 861, 716, 807, 811, 879, 824, 889, 900, 944, 368, 537, 540, 644, 549, 652, 668, 762, 565, 684, 697, 778, 711, 792, 809, 875, 632, 702, 720, 796, 732, 817, 826, 886, 761, 827, 843, 898, 858, 910, 915, 960, 654, 734, 754, 818, 767, 839, 850, 902, 785, 854, 863, 914, 874, 922, 932, 969, 799, 869, 881, 928, 892, 935, 943, 976, 904, 947, 953, 981, 958, 989, 991, 1011, 374, 551, 558, 699, 622, 708, 717, 806, 639, 727, 737, 820, 757, 832, 847, 901, 657, 746, 765, 835, 776, 851, 864, 913, 793, 872, 862, 919, 887, 931, 939, 972, 705, 771, 781, 856, 804, 866, 880, 926, 815, 882, 891, 936, 899, 941, 950, 980, 838, 895, 906, 945, 917, 955, 959, 987, 923, 965, 968, 993, 975, 996, 998, 1008, 733, 784, 814, 883, 831, 890, 896, 942, 845, 908, 912, 952, 920, 956, 967, 990, 849, 918, 927, 964, 938, 970, 971, 997, 948, 977, 979, 999, 985, 1004, 1006, 1016, 876, 934, 937, 973, 951, 978, 982, 1001, 957, 986, 988, 1005, 994, 1007, 1012, 1018, 962, 992, 995, 1009, 1000, 1010, 1013, 1019, 1002, 1014, 1015, 1020, 1017, 1021, 1022, 1023]
またはTable Z11:
- 前記N個の分極されたチャネルの前記信頼性の系列番号が、前記N個の分極されたチャネルの系列番号順に前記第1の系列内で配列される、請求項7に記載の装置。
- 前記K個の分極されたチャネルの前記信頼性の系列番号が、前記N個の分極されたチャネルの信頼性の昇順に選択される、請求項8に記載の装置。
- 前記K個の符号化対象ビットが、巡回冗長検査(CRC)ビットを含む、請求項7から9のいずれか一項に記載の装置。
- 前記K個の符号化対象ビットが、パリティ検査(PC)ビットを含む、請求項7から10のいずれか一項に記載の装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710653644.4 | 2017-08-02 | ||
CN201710653644.4A CN107592181B (zh) | 2017-08-02 | 2017-08-02 | 一种Polar码编码方法及装置 |
JP2019567982A JP7025456B2 (ja) | 2017-08-02 | 2018-05-04 | Polar符号符号化方法および装置 |
PCT/CN2018/085567 WO2019024555A1 (zh) | 2017-08-02 | 2018-05-04 | 一种Polar码编码方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567982A Division JP7025456B2 (ja) | 2017-08-02 | 2018-05-04 | Polar符号符号化方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022066220A JP2022066220A (ja) | 2022-04-28 |
JP7408701B2 true JP7408701B2 (ja) | 2024-01-05 |
Family
ID=61041914
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567982A Active JP7025456B2 (ja) | 2017-08-02 | 2018-05-04 | Polar符号符号化方法および装置 |
JP2022018608A Active JP7408701B2 (ja) | 2017-08-02 | 2022-02-09 | Polar符号符号化方法および装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567982A Active JP7025456B2 (ja) | 2017-08-02 | 2018-05-04 | Polar符号符号化方法および装置 |
Country Status (16)
Country | Link |
---|---|
US (2) | US11811528B2 (ja) |
EP (2) | EP3457606B8 (ja) |
JP (2) | JP7025456B2 (ja) |
KR (1) | KR102249201B1 (ja) |
CN (6) | CN107592181B (ja) |
AU (1) | AU2018309213C1 (ja) |
BR (2) | BR122020003960B1 (ja) |
CA (1) | CA3062966C (ja) |
DK (1) | DK3457606T3 (ja) |
ES (1) | ES2910208T3 (ja) |
MX (1) | MX2019015482A (ja) |
PL (1) | PL3457606T3 (ja) |
PT (1) | PT3457606T (ja) |
RU (1) | RU2729773C1 (ja) |
WO (1) | WO2019024555A1 (ja) |
ZA (1) | ZA201907741B (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598424A (zh) * | 2017-02-15 | 2022-06-07 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
US11159179B2 (en) | 2017-07-26 | 2021-10-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Enhanced information sequences for polar codes |
US10659194B2 (en) | 2017-08-02 | 2020-05-19 | Huawei Technologies Co., Ltd. | Polar code encoding method and apparatus in wireless communications |
CN109391343B (zh) * | 2017-08-02 | 2021-09-03 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN107592181B (zh) | 2017-08-02 | 2021-10-15 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN109391345B (zh) * | 2017-08-04 | 2022-10-11 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
US11632138B2 (en) | 2017-08-21 | 2023-04-18 | Telefonaktiebolaget Lm Ericsson (Publ) | UPO compliant information sequences for polar codes |
CN110166167B (zh) * | 2018-02-14 | 2022-05-10 | 华为技术有限公司 | 编码的方法、译码的方法、编码设备和译码设备 |
CN111771336B (zh) | 2018-02-22 | 2024-04-26 | 华为技术有限公司 | 生成极化码的设备和方法 |
CN111106897B (zh) * | 2018-10-26 | 2020-12-15 | 华为技术有限公司 | 译码方法及设备 |
CN111200476B (zh) * | 2018-11-16 | 2021-12-14 | 华为技术有限公司 | Polar码编码方法及装置 |
CN111447042B (zh) * | 2019-01-17 | 2021-12-24 | 华为技术有限公司 | 一种极化编译码方法及装置 |
CN113810059A (zh) * | 2020-06-12 | 2021-12-17 | 华为技术有限公司 | 一种用于卫星通信的极化编码译码方法及装置 |
CN115549851A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 极化码的构造方法和装置 |
WO2023204328A1 (ko) * | 2022-04-22 | 2023-10-26 | 엘지전자 주식회사 | 채널 인코딩을 수행하는 방법, 통신 기기, 프로세싱 장치, 및 저장 매체, 그리고 채널 디코딩을 수행하는 방법, 통신 기기, 프로세싱 장치, 및 저장 매체 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015000511A1 (en) | 2013-07-03 | 2015-01-08 | Huawei Technologies Co., Ltd. | Method for concurrent transmission of information symbols in wireless communication systems using a low density signature interleaver/deinterleaver |
US20170111060A1 (en) | 2015-10-15 | 2017-04-20 | Macronix International Co., Ltd. | Method and device for performing polar codes channel-aware procedure |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7403925B2 (en) * | 2003-03-17 | 2008-07-22 | Intel Corporation | Entitlement security and control |
JP5136043B2 (ja) | 2007-02-22 | 2013-02-06 | 富士通セミコンダクター株式会社 | 論理回路および記録媒体 |
US9351293B2 (en) | 2009-09-11 | 2016-05-24 | Qualcomm Incorporated | Multiple carrier indication and downlink control information interaction |
KR20110060635A (ko) * | 2009-11-30 | 2011-06-08 | 전북대학교산학협력단 | 래딕스 4 기반의 폴라코드를 이용한 부호화방법 |
US9485075B2 (en) | 2011-04-29 | 2016-11-01 | Futurewei Technologies Inc. | Method and system for transmission and reception of signals and related method of signaling |
KR101595676B1 (ko) | 2011-08-12 | 2016-02-18 | 인터디지탈 패튼 홀딩스, 인크 | 무선 시스템에서의 융통성있는 대역폭 동작을 위한 다운링크 리소스 할당 |
CN102694625B (zh) * | 2012-06-15 | 2014-11-12 | 北京邮电大学 | 一种循环冗余校验辅助的极化码译码方法 |
CN103516476B (zh) * | 2012-06-29 | 2016-12-21 | 华为技术有限公司 | 编码方法和设备 |
CN103684477B (zh) * | 2012-09-24 | 2017-02-01 | 华为技术有限公司 | 混合极性码的生成方法和生成装置 |
US9083387B2 (en) * | 2012-12-18 | 2015-07-14 | Samsung Electronics Co., Ltd. | Communication system with compound coding mechanism and method of operation thereof |
CN103023518B (zh) * | 2012-12-26 | 2016-04-27 | 中国科学院微电子研究所 | 一种基于并行编码译码的循环汉明码的纠错方法 |
WO2014102565A1 (en) * | 2012-12-29 | 2014-07-03 | Emc Corporation | Polar codes for efficient encoding and decoding in redundant disk arrays |
EP2963970B1 (en) | 2013-03-28 | 2022-01-05 | Huawei Technologies Co., Ltd. | Method and device for allocating bandwidth, user equipment and base station |
CN103281166B (zh) * | 2013-05-15 | 2016-05-25 | 北京邮电大学 | 一种基于极化码的混合自动重传请求传输方法 |
WO2015006947A1 (zh) | 2013-07-18 | 2015-01-22 | 华为技术有限公司 | 一种低码率的编码方法和设备 |
CN103746708A (zh) * | 2013-10-25 | 2014-04-23 | 中国农业大学 | 一种Polar-LDPC级联码的构造方法 |
RU2571587C2 (ru) * | 2014-04-10 | 2015-12-20 | Самсунг Электроникс Ко., Лтд. | Способ и устройство кодирования и декодирования данных в скрученном полярном коде |
RU2665233C1 (ru) * | 2014-05-30 | 2018-08-28 | Хуавей Текнолоджиз Ко., Лтд. | Способ и устройство построения прореженного полярного кода |
US10193578B2 (en) | 2014-07-10 | 2019-01-29 | The Royal Institution For The Advancement Of Learning / Mcgill University | Flexible polar encoders and decoders |
KR101909549B1 (ko) * | 2014-11-27 | 2018-10-18 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 폴라 코드 레이트 매칭 방법과 장치, 및 무선 통신 장치 |
RU2685034C2 (ru) * | 2014-12-22 | 2019-04-16 | Хуавэй Текнолоджиз Ко., Лтд. | Устройство кодирования и способ кодирования полярным кодом |
CN104539393B (zh) * | 2015-01-07 | 2018-01-12 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
CN105099622B (zh) * | 2015-07-01 | 2018-10-19 | 北京邮电大学 | 极化编码调制中信道可靠度的确定方法及装置 |
US10581462B2 (en) | 2015-12-01 | 2020-03-03 | Huawei Technologies Co., Ltd. | Signature-enabled polar encoder and decoder |
CN106877973B (zh) * | 2015-12-10 | 2020-04-14 | 华为技术有限公司 | 极化码处理的方法及通信设备 |
CN106899379B (zh) * | 2015-12-18 | 2020-01-17 | 华为技术有限公司 | 用于处理极化码的方法和通信设备 |
US10430272B2 (en) | 2016-01-25 | 2019-10-01 | California Institute Of Technology | Secure raid schemes for distributed storage |
CN105743621B (zh) * | 2016-02-02 | 2019-03-26 | 北京邮电大学 | 基于极化码的harq信号发送、接收方法及装置 |
CN109075806B (zh) | 2016-05-13 | 2023-07-18 | 英特尔公司 | 极化码构造和编码 |
EP3273602B1 (en) * | 2016-07-19 | 2022-01-26 | MediaTek Inc. | Low complexity rate matching design for polar codes |
CN106506079B (zh) * | 2016-11-29 | 2018-09-21 | 东南大学 | 四色可见光通信系统中的极化码优化设计方法 |
WO2018119883A1 (en) | 2016-12-29 | 2018-07-05 | Qualcomm Incorporated | Nested structure for polar code construction using density evolution |
CN108347300B (zh) | 2017-01-25 | 2020-08-14 | 华为技术有限公司 | 一种调整Polar码的方法、装置及编译码装置 |
CN110719141B (zh) | 2017-02-03 | 2020-08-21 | 华为技术有限公司 | 一种信息的传输方法、译码方法和装置 |
KR102434082B1 (ko) | 2017-03-23 | 2022-08-22 | 삼성전자 주식회사 | 극부호를 위한 시퀀스 생성 방법 및 그 저장 매체와 그를 이용한 데이터 송신 방법 및 장치 |
CN108631942A (zh) | 2017-03-24 | 2018-10-09 | 华为技术有限公司 | 编码方法、译码方法、装置和设备 |
CN109347488B (zh) | 2017-04-01 | 2019-11-01 | 华为技术有限公司 | 极化码编码和译码的方法、发送设备和接收设备 |
GB2563568A (en) * | 2017-05-05 | 2018-12-26 | Tcl Communication Ltd | Transmitting and receiving data using polar codes |
CN108809333B (zh) | 2017-05-05 | 2021-05-04 | 华为技术有限公司 | 极化码编译码的方法、发送设备和接收设备 |
CN108880743B (zh) | 2017-05-15 | 2020-07-28 | 华为技术有限公司 | 一种Polar码传输方法及装置 |
US20180331697A1 (en) * | 2017-05-15 | 2018-11-15 | Qualcomm Incorporated | Nominal complexity and weighted combinations for polar code construction |
KR102394139B1 (ko) | 2017-06-16 | 2022-05-04 | 삼성전자 주식회사 | 극부호를 위한 시퀀스 생성 방법 및 그 저장 매체와 그를 이용한 데이터 송신 방법 및 장치 |
CN109150384B (zh) | 2017-06-27 | 2020-11-17 | 华为技术有限公司 | 极化码编码的方法和装置 |
CN109257140B (zh) | 2017-07-14 | 2021-03-30 | 华为技术有限公司 | 一种极化信道可靠度排序的方法、极化码编码方法及装置 |
CN109286403B (zh) | 2017-07-21 | 2022-05-10 | 华为技术有限公司 | 极化码编码的方法和装置 |
CN109286404B (zh) * | 2017-07-21 | 2021-02-09 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN109286402B (zh) * | 2017-07-21 | 2022-01-14 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN109309503B (zh) * | 2017-07-28 | 2022-05-10 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN109391343B (zh) * | 2017-08-02 | 2021-09-03 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
CN107592181B (zh) * | 2017-08-02 | 2021-10-15 | 华为技术有限公司 | 一种Polar码编码方法及装置 |
US10659194B2 (en) * | 2017-08-02 | 2020-05-19 | Huawei Technologies Co., Ltd. | Polar code encoding method and apparatus in wireless communications |
-
2017
- 2017-08-02 CN CN201710653644.4A patent/CN107592181B/zh active Active
- 2017-08-02 CN CN202111216987.7A patent/CN114070330A/zh active Pending
- 2017-08-02 CN CN202111214124.6A patent/CN114095122B/zh active Active
- 2017-08-02 CN CN202010202826.1A patent/CN111490852B/zh active Active
- 2017-08-02 CN CN202111217171.6A patent/CN114095123A/zh active Pending
- 2017-08-02 CN CN201810211560.XA patent/CN108650053B/zh active Active
-
2018
- 2018-05-04 PL PL18765530T patent/PL3457606T3/pl unknown
- 2018-05-04 CA CA3062966A patent/CA3062966C/en active Active
- 2018-05-04 KR KR1020197034107A patent/KR102249201B1/ko active IP Right Grant
- 2018-05-04 AU AU2018309213A patent/AU2018309213C1/en active Active
- 2018-05-04 BR BR122020003960-4A patent/BR122020003960B1/pt active IP Right Grant
- 2018-05-04 BR BR112019024002-0A patent/BR112019024002B1/pt active IP Right Grant
- 2018-05-04 DK DK18765530.3T patent/DK3457606T3/da active
- 2018-05-04 WO PCT/CN2018/085567 patent/WO2019024555A1/zh active Application Filing
- 2018-05-04 EP EP18765530.3A patent/EP3457606B8/en active Active
- 2018-05-04 EP EP22153899.4A patent/EP4109795A1/en active Pending
- 2018-05-04 PT PT187655303T patent/PT3457606T/pt unknown
- 2018-05-04 RU RU2019142710A patent/RU2729773C1/ru active
- 2018-05-04 MX MX2019015482A patent/MX2019015482A/es unknown
- 2018-05-04 ES ES18765530T patent/ES2910208T3/es active Active
- 2018-05-04 JP JP2019567982A patent/JP7025456B2/ja active Active
-
2019
- 2019-11-22 ZA ZA2019/07741A patent/ZA201907741B/en unknown
-
2021
- 2021-10-01 US US17/491,529 patent/US11811528B2/en active Active
-
2022
- 2022-02-09 JP JP2022018608A patent/JP7408701B2/ja active Active
-
2023
- 2023-10-11 US US18/485,303 patent/US20240146455A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015000511A1 (en) | 2013-07-03 | 2015-01-08 | Huawei Technologies Co., Ltd. | Method for concurrent transmission of information symbols in wireless communication systems using a low density signature interleaver/deinterleaver |
US20170111060A1 (en) | 2015-10-15 | 2017-04-20 | Macronix International Co., Ltd. | Method and device for performing polar codes channel-aware procedure |
Non-Patent Citations (3)
Title |
---|
Huawei, HiSilicon,Summary of polar code design for control channels[online],3GPP TSG RAN WG1 Ad-Hoc Meeting R1-1700088,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_AH/NR_AH_1701/Docs/R1-1700088.zip>,2017年01月20日 |
Qualcomm Incorporated,Design of Polar codes for control channel[online],3GPP TSG RAN WG1 adhoc_NR_AH_1701 R1-1700832,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_AH/NR_AH_1701/Docs/R1-1700832.zip>,2017年01月10日 |
Samsung,Design of a Nested Sequence for Polar Codes[online],3GPP TSG RAN WG1 #88b R1-1705425,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_88b/Docs/R1-1705425.zip>,2017年03月25日 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7408701B2 (ja) | Polar符号符号化方法および装置 | |
US11165535B2 (en) | Polar code encoding method and apparatus in wireless communications | |
CN109391343B (zh) | 一种Polar码编码方法及装置 | |
CN107659381B (zh) | 编译码方法及装置 | |
RU2760317C2 (ru) | Способ и устройство для полярного кодирования | |
CN109286402B (zh) | 一种Polar码编码方法及装置 | |
US11165534B2 (en) | Polar code encoding method and apparatus | |
CN110890894A (zh) | 级联编码的方法和装置 | |
CN111446969A (zh) | 一种级联crc码的极化码编码方法及装置 | |
WO2020098461A1 (zh) | Polar码编码方法及装置 | |
CN115529105A (zh) | 一种网络编码方法及装置 | |
CN111865487B (zh) | 一种编码方法及通信设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230213 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230810 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7408701 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |