﻿#include <stdexcept>
#include "pinyin.h"
#include <codecvt>
#include <locale>
#include <algorithm>

typedef short Int16;
typedef int Int32;
typedef int64_t Int64;
namespace caxios {
#define MinValue      12295
#define Part1MinValue 19968
#define Part1MaxValue 40869
#define Part2MinValue 59418
#define Part2MaxValue 59491
#define ling          175

const char* PinyinTable[] = {
    "A", "AI", "AN", "ANG", "AO", "BA", "BAI", "BAN", "BANG", "BAO", "BEI", "BEN", "BENG", "BI", "BIAN", "BIAO", "BIE", "BIN", "BING", "BO",
    "BU", "CA", "CAI", "CAN", "CANG", "CAO", "CE", "CEN", "CENG", "CHA", "CHAI", "CHAN", "CHANG", "CHAO", "CHE", "CHEN", "CHENG", "CHI", "CHONG", "CHOU",
    "CHU", "CHUAI", "CHUAN", "CHUANG", "CHUI", "CHUN", "CHUO", "CI", "CONG", "COU", "CU", "CUAN", "CUI", "CUN", "CUO", "DA", "DAI", "DAN", "DANG", "DAO",
    "DE", "DEI", "DENG", "DI", "DIA", "DIAN", "DIAO", "DIE", "DING", "DIU", "DONG", "DOU", "DU", "DUAN", "DUI", "DUN", "DUO", "E", "EN", "ER",
    "FA", "FAN", "FANG", "FEI", "FEN", "FENG", "FO", "FOU", "FU", "GA", "GAI", "GAN", "GANG", "GAO", "GE", "GEI", "GEN", "GENG", "GONG", "GOU",
    "GU", "GUA", "GUAI", "GUAN", "GUANG", "GUI", "GUN", "GUO", "HA", "HAI", "HAN", "HANG", "HAO", "HE", "HEI", "HEN", "HENG", "HONG", "HOU", "HU",
    "HUA", "HUAI", "HUAN", "HUANG", "HUI", "HUN", "HUO", "JI", "JIA", "JIAN", "JIANG", "JIAO", "JIE", "JIN", "JING", "JIONG", "JIU", "JU", "JUAN", "JUE",
    "JUN", "KA", "KAI", "KAN", "KANG", "KAO", "KE", "KEN", "KENG", "KONG", "KOU", "KU", "KUA", "KUAI", "KUAN", "KUANG", "KUI", "KUN", "KUO", "LA",
    "LAI", "LAN", "LANG", "LAO", "LE", "LEI", "LENG", "LI", "LIA", "LIAN", "LIANG", "LIAO", "LIE", "LIN", "LING", "LIU", "LONG", "LOU", "LU", "LUAN",
    "LUN", "LUO", "LV", "LVE", "MA", "MAI", "MAN", "MANG", "MAO", "ME", "MEI", "MEN", "MENG", "MI", "MIAN", "MIAO", "MIE", "MIN", "MING", "MIU",
    "MO", "MOU", "MU", "NA", "NAI", "NAN", "NANG", "NAO", "NE", "NEI", "NEN", "NENG", "NI", "NIAN", "NIANG", "NIAO", "NIE", "NIN", "NING", "NIU",
    "NONG", "NU", "NUAN", "NUO", "NV", "NVE", "O", "OU", "PA", "PAI", "PAN", "PANG", "PAO", "PEI", "PEN", "PENG", "PI", "PIAN", "PIAO", "PIE",
    "PIN", "PING", "PO", "POU", "PU", "QI", "QIA", "QIAN", "QIANG", "QIAO", "QIE", "QIN", "QING", "QIONG", "QIU", "QU", "QUAN", "QUE", "QUN", "RAN",
    "RANG", "RAO", "RE", "REN", "RENG", "RI", "RONG", "ROU", "RU", "RUAN", "RUI", "RUN", "RUO", "SA", "SAI", "SAN", "SANG", "SAO", "SE", "SEN",
    "SENG", "SHA", "SHAI", "SHAN", "SHANG", "SHAO", "SHE", "SHEI", "SHEN", "SHENG", "SHI", "SHOU", "SHU", "SHUA", "SHUAI", "SHUAN", "SHUANG", "SHUI", "SHUN", "SHUO",
    "SI", "SONG", "SOU", "SU", "SUAN", "SUI", "SUN", "SUO", "TA", "TAI", "TAN", "TANG", "TAO", "TE", "TENG", "TI", "TIAN", "TIAO", "TIE", "TING",
    "TONG", "TOU", "TU", "TUAN", "TUI", "TUN", "TUO", "WA", "WAI", "WAN", "WANG", "WEI", "WEN", "WENG", "WO", "WU", "XI", "XIA", "XIAN", "XIANG",
    "XIAO", "XIE", "XIN", "XING", "XIONG", "XIU", "XU", "XUAN", "XUE", "XUN", "YA", "YAI", "YAN", "YANG", "YAO", "YE", "YI", "YIN", "YING", "YO",
    "YONG", "YOU", "YU", "YUAN", "YUE", "YUN", "ZA", "ZAI", "ZAN", "ZANG", "ZAO", "ZE", "ZEI", "ZEN", "ZENG", "ZHA", "ZHAI", "ZHAN", "ZHANG", "ZHAO",
    "ZHE", "ZHEI", "ZHEN", "ZHENG", "ZHI", "ZHONG", "ZHOU", "ZHU", "ZHUA", "ZHUAI", "ZHUAN", "ZHUANG", "ZHUI", "ZHUN", "ZHUO", "ZI", "ZONG", "ZOU", "ZU", "ZUAN",
    "ZUI", "ZUN", "ZUO"
};

const Int64 PinyinCodes[] = {
    175, 357, 35712, 75115, 246, 285, 338, 291, 103242, 379, 276, 128, 21, 363, 195, 91, 40, 391, 70907, 237,
    255, 19, 356, 49, 71, 301, 37, 70, 171, 362, 353, 277, 293, 137, 95, 180064, 131, 386, 133, 86,
    53404, 43, 32, 174, 395, 66, 6, 330, 58, 332, 388, 135, 168, 138, 240, 89, 23396709, 1381, 205, 327,
    97635, 120, 385, 336, 376, 81, 84845, 118630, 242, 232, 250, 103, 19234, 358, 381, 101081, 337, 340, 207, 186,
    180, 269, 349, 204, 47352, 106, 92, 140, 84652, 69, 384, 80, 41, 157, 366, 306, 97, 49762, 342, 126329,
    165197, 169808, 145, 56, 132, 110, 117, 203, 320, 129277, 20, 170, 77, 98636, 264, 148259, 165, 372, 134, 245,
    20735, 265, 87, 313, 181, 25, 188812, 309, 339, 15687, 118, 321, 248, 47215, 48997, 57, 34, 17275, 274, 33,
    192, 82, 17604, 354, 69368, 335, 130, 66181, 44899, 12844, 331, 85, 64, 83, 234, 67, 76, 2, 346, 68966,
    29985, 113976, 127, 64154, 27535, 22407, 18058, 127315, 12836, 350, 343, 35, 222, 3604, 101, 213, 8, 347, 387, 289,
    131471, 24877, 13, 149293, 23659259, 154469, 34109, 256, 14, 146812, 48, 403, 316, 16762, 114, 287, 44633, 100, 219, 361,
    328, 142, 10, 62589, 48754, 164, 40031, 7, 199, 129, 41165, 59509, 257, 318, 344, 144, 46702, 161, 38, 153,
    105, 194, 3, 179, 202, 36673, 30, 99, 27778, 183, 67939, 383, 7268729, 154, 31, 221, 119, 136, 19264, 252,
    37157, 166727, 206, 341, 7918, 325, 51, 78, 150363, 152, 141, 83627, 399, 126, 69479, 304, 45763, 150379, 126253, 86699,
    230, 16, 10898236, 84, 11, 19576, 16933, 355, 397, 104, 317, 60, 30007, 23433, 236, 17208, 69291, 68347, 150, 139,
    182, 302, 85679, 396, 12, 23, 377, 282, 253, 359, 66808, 137998, 164738, 46, 65669, 273, 238, 30520, 290, 175460,
    124, 378, 20730, 7257, 12077, 74, 228, 322, 188273, 91319, 54429, 303, 154497, 364, 267, 51331, 185, 9, 312, 113,
    284, 71938, 137065, 158519, 308, 368, 18, 224, 12564, 166, 53, 20329, 13683, 152366, 5, 126351, 44, 111, 239, 88243,
    187, 83255, 200594, 402, 172, 32571, 16775, 125, 22062, 66879, 16442, 281, 71019, 164744, 198, 66295, 275, 16668, 59, 348,
    24, 310, 20540, 162, 109413, 193, 254, 82093, 156, 33131, 369, 69373, 18684, 315, 177, 133972, 150334, 64342, 85174, 345,
    39, 380, 75, 147, 323, 41173, 72, 104658, 90291, 65782, 24972, 292, 189, 260, 210, 93, 14200, 27, 102, 96969,
    183658, 151, 44274, 167, 231, 173, 247, 191, 394, 50, 36937, 143, 63, 73976, 2888, 190355, 251, 54, 333, 62074,
    365, 176, 17, 5353, 98, 294, 131932, 15642, 55, 174941, 160, 244, 2631925, 19533, 94461, 145761, 37771, 37453, 19564929, 29048,
    166279, 17540, 121, 160065, 400, 99529, 68743, 149, 286, 201, 94, 163, 19617, 84646, 171362, 67321, 71930, 160611, 233, 208,
    19747, 367, 13170, 73, 71936, 116992, 15, 214, 26511, 8418588, 104654, 19584, 93991, 10261, 72951, 2402, 258, 155995, 1569, 170337,
    1647, 92193121, 192889, 149377, 14125, 188, 401, 7102765, 144722, 68860, 83192, 50806, 89283, 130828, 64391, 6306081, 141601, 12577, 297, 52876,
    86307, 66386, 170347, 68, 271, 51338, 31033, 243, 311, 197, 178027, 27725, 58706, 1, 172901, 326, 7405, 48773, 10996, 45293,
    40057, 57493, 299, 197516, 172395, 72029, 45, 37133, 61156, 98125, 104657, 29494, 3595, 186734, 108, 249, 1102, 101709, 107221, 103627,
    18239, 19793, 126337, 26528998, 61275, 320659, 46418, 58197, 14860128, 72960, 71057, 57171, 7185, 96397688, 29945983, 56630, 46222, 35153, 48782, 150366,
    56467, 62755, 160574, 1614, 55625, 181092, 241, 109, 32962, 20627296, 64365, 360, 72881, 125250, 40163, 27434263250, 10483, 88759, 153965, 66296,
    40784, 371, 123, 170319, 61778, 41288, 68468, 34006, 194947, 148, 194955, 33059, 40053, 167306, 35098, 168292, 7491, 21551, 129895, 229,
    279, 217, 71937, 16695, 185195, 35192, 329, 114951, 63340, 20354, 39800, 111457, 19599, 6379, 12595, 15736, 196, 235, 178, 51832,
    58709, 794, 28981, 36, 52040, 128851, 84147, 334, 66229, 56435, 79, 65, 157073, 48783, 12572, 26, 90, 51841, 67925, 149339,
    31294, 11210131, 17788, 45771, 21339, 28894921, 40272, 10322, 26479, 81734, 14885, 30074, 227, 198539, 67834, 59735, 56994, 33408847, 121690, 20867,
    11294, 10473, 61800, 190, 2901, 261, 67724, 47, 11640, 374, 111471, 218, 324, 39238, 22577, 158, 259, 136483, 63102, 71425,
    22061, 184, 36355936, 170331, 186250, 31296, 126310, 43711, 76555, 62701, 32930, 19520, 69464, 393, 4327, 69917, 45812, 3083, 6742, 95419,
    10997, 155954, 129920, 20253, 21314, 4621, 38794, 278, 4309, 39549, 55631, 2632437, 96970, 114958, 564580, 5209, 24704, 66704, 65873, 128258,
    141079, 370, 17181, 33153, 375, 3156, 79173, 36676, 28050, 104272, 2923, 10589, 83283, 270, 392, 75514, 18807681, 52071, 44264, 176988,
    169324, 97098, 28729, 168803, 6256, 46209, 33084, 88918, 398, 126294, 147320, 189832, 6805, 28698422, 38477, 17997, 225, 223, 300, 45930,
    55941, 72045, 220, 3092, 105173, 183169, 62079, 84171, 72542, 61593, 148307, 33703740, 54600, 262, 24115, 162624, 215, 104672, 7412, 107826,
    100170, 1361, 152969, 5625076, 42073, 139087, 68856, 53578, 24272, 1762, 64670, 30562, 24337, 268, 108302, 1889, 149308, 39751, 165227, 2926,
    129313, 68404, 99015, 176487, 216, 96108, 54673, 57038, 211, 130396, 34622, 12536, 110341, 63233, 87220, 150404, 95116, 307, 5652, 109447,
    157534, 12320, 66371, 149329, 69891, 5411, 26542725, 155, 155994, 162689, 70839, 20145, 93880, 10841, 41154, 88280, 96449, 17958, 146, 170341,
    110898, 29, 172886, 9970, 40083, 162134, 13347, 40289, 60593, 4, 40064, 15445, 28, 36307343, 3219, 45785, 83663, 173921, 4701, 71832,
    168780, 35107, 74106, 97104, 68243, 137063, 1167, 75002, 24631, 32836, 12316, 27537, 120045, 15232, 54412, 145786, 54609, 86189, 60775, 52,
    63130, 7880240, 57684, 45811, 295, 103240, 319, 10329, 298, 66836, 128794, 65681697, 61776, 22920, 1641, 164183, 13872, 27851596, 159, 29521,
    127319, 41556, 127767, 90845, 70912, 32835, 72059, 178540, 55455, 10635, 167781, 42728, 116, 168267, 19328, 2402024, 19772, 61, 196993, 35648,
    314, 161093, 126309, 149302, 88913, 155010, 126243, 20090250, 127228, 80203, 73553, 122, 98502, 70807, 106716, 163706, 141101, 20842, 35139, 178013,
    108250, 50293, 163171, 54604, 71532, 165739, 57988, 95936, 107, 83118, 139060, 35135, 263, 29957878, 30493, 18490, 25390, 13590, 127227, 13361,
    195457, 175974, 28730, 38476, 65668, 63324, 1237, 21345, 64306, 53371, 48008, 131419, 61777, 373, 181098, 149349, 188280, 84648, 3301, 47761,
    78160, 15391, 5165453157, 24955638, 15697, 172925, 389, 147325, 193409, 147300, 94921, 33996640, 192890, 11295, 158535, 2780, 118513, 128380, 190841, 52383,
    296, 19813, 14103, 182662, 147235, 53919, 104717, 35103, 171909, 66390, 152903, 144692, 71972148, 76536, 2366188, 140082, 67736, 70911, 19583, 8014659,
    93367, 150318, 72075, 5630849, 93519, 18749, 140111, 26515, 171858, 65371, 52844, 50309, 29980, 6308124, 76672, 70506, 60764, 18157, 12051, 63849,
    189328, 71003, 75511, 42, 64126, 20039, 170832, 20878, 106251, 4844, 113888, 82262, 40293, 23115, 68472, 118515, 61592, 62290, 148285, 140570,
    16691, 44268, 33091, 15606, 154927, 46929, 21112, 192901, 2810, 19497, 99615, 82301, 138513, 106837, 64332, 10321, 45769, 28563, 85891465, 128355,
    33943396, 22, 61567, 68481, 86200, 162177, 11538, 91941, 82081, 26993, 66899, 105783, 86299, 86198, 103760, 58659, 21284, 20495980, 39682, 67937,
    54610, 150316, 1412, 37733, 86326, 183681, 16517, 112, 90474, 103248, 266, 159079, 167295, 54408, 120051, 149330, 35173, 78683, 283, 57162,
    37622, 50524, 37669, 66722, 48241, 5365, 15223, 4181, 43160, 71569, 63676, 22849, 62777077, 30923, 54527, 19327, 144668, 8478, 167805, 32845,
    46687, 44223361, 154449, 5716, 38693, 20700, 171885, 92193124, 37252, 25485, 105850, 12737334, 175461, 39781, 19669, 54410, 192915, 105732, 35201, 39827,
    145784, 43299, 86381, 18815, 126289, 24855, 66962, 185707, 58488, 162149, 68234, 103787, 54397, 164199, 156006, 15683, 2922, 64667, 142622, 44166445,
    167819, 31613, 5862, 4852, 54925, 280, 135457, 45872, 155534, 109273, 27539, 77049, 5869, 141592, 56962, 148351, 55423, 42070, 65921, 35172,
    68343, 39211, 170862, 8582527, 66694, 48274, 34175, 51333, 19193, 9235, 54400, 151876, 143649, 96074, 20360, 19624, 37555, 70316, 103115, 104152,
    41345, 272, 66938, 39237, 19256, 67002709, 34103, 133473, 128293, 10457, 10482, 149369, 20793, 99541, 33148, 53884, 85165, 97989, 199051, 54394,
    130901, 66844, 27024, 63333, 21329, 183142, 153903, 19498, 73875, 172386, 68867, 162133, 147281, 57002, 19841, 65908, 103245, 64704, 64157, 181094,
    129826, 174947, 96971, 37088, 141106, 58515, 93989, 86205, 136546, 98005, 27857663, 9445, 187275, 63306, 41554, 130922, 146232, 45825, 61564, 39303,
    97993, 23430480, 64191, 86399, 69991, 7362, 121074, 9994625, 140637, 90921, 93427, 118659, 174434, 126231, 172883, 153904, 117478, 61787, 33130, 92193125,
    19303, 44150, 109832, 167278, 149817, 77007, 86679404, 65787, 53356, 57185, 34691, 109857, 8312, 100130, 130896, 60669, 83114, 64198, 68438, 64710,
    114500, 67839, 67721, 23946, 58585, 54625, 47716, 98124, 129407, 109272, 58205, 48500, 57143, 19766, 93493, 65183, 22825, 88405, 121584, 71973,
    30548, 84140, 145719, 179558, 165752, 140564, 115, 19007, 56955, 149364, 28451, 49137994, 43755, 65818, 65356, 4626, 38732, 101065, 19079, 62793,
    67979, 109343, 131934, 8319, 186232, 6229, 73569, 54530, 21387, 45289, 174938, 88260448, 84150, 64348, 18262, 58495, 64862, 74904, 71308, 72448,
    166726, 17546, 1359, 17803, 52057, 16998, 176999, 127260, 114524, 182648, 40814, 63844, 87288, 2739, 149797, 27442, 186222, 57092, 128341, 69953,
    88886, 153955, 93484, 179553, 20289, 194949, 7875, 4840, 70309, 48895, 161153, 119535, 158033, 80646, 10474, 42107, 10093413, 148824, 58569, 149301,
    36516, 96651, 72497, 3821, 87211872, 158035, 48982, 182122, 67787089, 71516, 62106, 106858, 53895, 100707, 12761484, 17250, 9301, 98670, 66918, 1628,
    159077, 71055, 76134, 9969, 27415, 148811, 202643, 6890, 53355, 150339, 158067, 62308, 71934, 45747, 9454, 65932, 99665, 130380, 63332, 61825,
    185720, 28761, 13952, 20865, 42215, 147307, 166214, 31886589792, 116067, 7761, 20283, 170346, 149303, 305, 6892, 89273, 1892, 64166, 15927, 18498,
    9902, 7296, 124757, 193916, 96587, 162643, 64878, 96959, 20548, 9811, 99559, 209, 153436, 99810187, 65682773, 28550, 54907, 48485, 65687, 9585469,
    63230, 34376, 50959696, 65389, 55452, 53505, 86353, 27331836, 72043, 29987, 34550, 78071, 47766, 126203, 43761, 75446, 10318, 53916, 48822, 38971238,
    1356, 38613250, 4796, 90806, 164713, 52075, 14372, 226, 10471, 132433, 47824, 1919, 155990, 154428, 62099, 80716, 126802, 147311, 58618, 65171,
    61698, 173911, 10087809, 6739, 65913, 85290, 146274, 15564, 58045, 18469, 179572, 204689, 87379, 70540, 98498, 70323, 8425, 86163296, 78212, 67817,
    70834, 75644, 77568, 90836, 69503, 68773, 14470, 29010, 14108, 190867, 43097, 72558, 13953, 5550836, 29287, 31100, 144760, 72451, 128300, 22090,
    47203, 119020, 33156, 143729, 200592, 54380, 156980, 145197, 157575, 4178, 150319, 145187, 17690, 69265, 109946, 186243, 55417, 97986, 34702637, 182125,
    88, 4691, 7188, 173916, 52377, 3785, 50299, 1115, 178526, 6675, 49280, 15763262, 100173, 129363, 9826, 165210, 192397, 9526561, 91831, 17694,
    127229, 126205, 24457, 53429, 17455, 159549, 54910, 100038, 96964, 165211, 55150, 14044978, 188791, 155956, 71559, 73021779, 42227, 51482826, 93246851, 65678707,
    8418615, 144667, 138075, 12060, 47947, 3309, 81212, 52327, 127850, 48319, 131435, 150357, 33145, 31107, 57970, 61184, 38279, 21248, 190840, 166728,
    41185, 163709, 66773, 48886, 10304, 184683, 7505, 7252, 118504, 46175, 212, 88516438, 95433, 169293, 88756, 31546, 26240, 89568618, 19799, 107845,
    45813, 55462, 36518657, 23159, 82257, 865, 34056, 55421710, 39235, 8371, 161606, 157004, 5646, 70796, 48800, 106765, 92373, 53896, 20826, 68993,
    170839, 133431, 62198, 22098, 2107623, 60670, 109816, 65359, 143131, 65701, 23878, 45145, 46725, 178052, 181100, 21390, 16742, 146750, 65704, 134929,
    112516, 10469, 139042, 51814, 66299, 127313, 16257, 58202, 39552, 67800, 41706, 96459, 19702, 15524, 134499, 12648694, 127326, 18653, 50723665, 148311,
    156010, 146773, 45807, 169323, 27022, 111368, 68378, 159105, 71521, 167796, 5721, 42027190, 100075915, 72498, 127359, 62284, 99527, 182155, 17726826, 163162,
    21380, 12005277531, 23876, 8431, 26291, 29248, 26167, 71309, 43093, 79005, 90898, 172885, 5140, 92490, 58002, 170348, 95567, 123634, 62077, 44334,
    30787, 19013, 60547, 56146, 64362, 29498, 51456, 10477, 147301, 178021, 48749, 42115960, 33163, 175451, 106764, 29257, 161083, 16514, 55659, 88240,
    6228, 16700, 106758, 54397725, 52068, 175453, 72847, 29420376, 90964, 27431, 64357, 71884, 16765, 19680, 10441, 43242, 55148, 162129, 38212, 177514,
    15668, 143644, 5364, 27191, 10324, 175966, 183156, 16554, 159610, 145747, 4182, 129335, 101104, 7810, 92342, 32896, 21043, 203153, 62294, 61789,
    170321, 30053, 172887, 104789, 9209210, 53584094, 29541, 15611, 15433, 51319, 40120, 19536, 78272877, 147754, 104661, 198542, 21120, 58194, 35158, 52345,
    145233, 119539, 172882, 200, 68495, 12659, 18257, 150411, 61781, 62280, 87418, 166757, 16420, 44200, 7183, 75934, 9339, 10360, 39628, 29680841,
    86202, 6158, 101721, 9582, 164697, 129382, 19712, 52351, 19805, 34684, 33680642, 27468, 26367, 26368, 8980730, 83019629, 19783, 66774, 17989498, 29261,
    149382, 19524, 6894, 20773, 39747, 26444, 169295, 26176, 33860, 182123, 52551, 12657, 29252, 109828, 27724, 26249, 162157, 44133741, 140630, 28560,
    71926, 12171788664, 18678, 45835, 34659, 132966, 74067, 23851, 25083744, 74041, 200071, 64860, 179045, 24462, 54091, 28988, 56443, 195454, 118003, 169860,
    81699, 77226844, 72068, 28899164, 45837, 57489, 50520, 53584594, 71054, 128849, 63326, 69004, 29773, 28529, 30079, 41715, 188817, 45969, 170377, 2401,
    117099, 87393, 20772, 46335, 62288, 34214154, 66904, 127362, 10989, 104719, 129367, 140625, 51949, 8515984, 7447, 10818959, 127329, 55948113, 164747, 55937,
    69972, 154475, 64347, 163685, 61268, 17726819, 26901331, 111485, 185218, 37186, 66890, 26763, 24459, 21130, 40255, 111505, 43701, 85160, 659, 54942,
    107852, 23627, 81689427, 66730, 34617, 181607, 169357, 37757, 143156, 182159, 158564, 48808, 28946, 83638, 24463, 149807, 66929, 71969107, 159575, 162161,
    128278, 9729848, 99525, 19003, 159571, 8548183, 65308, 7279, 92193144, 1138, 60756, 20628331, 37663, 18476, 56976, 143185, 85904257, 47765, 34145, 590,
    3005171, 67412, 39730, 45904, 37764, 41225, 38793, 27529, 58626, 68344, 99152, 91315, 49644368, 65330, 89777, 34150, 100157, 48768, 48914, 8039,
    128286, 146299, 7187, 18001272, 58655, 98120, 3673, 5732, 170333, 63847, 47728, 81226, 37452, 29762, 24960626, 8043, 45886, 64244, 50311, 69971,
    64845, 74081, 78493, 168838, 129377, 8534394, 34374, 3161, 52352, 142639, 76438373, 71522, 58497, 160088, 182629, 171886, 68951, 71834, 189839, 66230,
    1325, 36739, 54597, 199054, 2915, 90994, 169292, 24953, 10380, 97036, 41227, 81773, 23117, 79007, 112389, 45736, 54614, 5367623, 65387, 166793,
    40187, 149359, 131414, 89263, 176512, 35125, 145697, 20798, 35067, 47234, 167756, 130906, 145735, 148839, 86195, 34520, 45674, 48769, 7365, 61759, 63115, 966496,
    22401, 13049, 159548, 10898308, 26500, 97481, 34170, 182637, 50693830, 69826, 35711, 70993, 64336, 61080, 40050, 149334, 16268, 7268728, 90812, 51023, 27859711,
};

const Int64 PinyinPart1[] = {
    2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 6, 7, 12, 13, 14, 15, 16, 17, 0, 18, 19, 20, 8, 8, 21, 22, 23, 24, 25, 26,
    27, 28, 21, 29, 28, 30, 29, 31, 22, 32, 33, 34, 35, 36, 37, 38, 12, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
    52, 53, 54, 55, 56, 57, 58, 59, 0, 34, 34, 60, 61, 2, 62, 63, 64, 65, 62, 66, 67, 68, 69, 70, 71, 62, 72, 73, 73, 2,
    74, 75, 76, 34, 5, 23, 77, 78, 16, 34, 0, 0, 33, 0, 8, 12, 79, 0, 0, 0, 0, 0, 80, 81, 0, 82, 83, 31, 0, 0,
    84, 85, 0, 0, 0, 0, 85, 81, 86, 87, 81, 44, 2, 88, 89, 90, 14, 91, 8, 8, 92, 93, 14, 94, 14, 95, 62, 5, 64, 52,
    26, 96, 97, 98, 36, 99, 36, 100, 36, 12, 101, 102, 103, 104, 105, 106, 2, 43, 107, 108, 0, 78, 52, 109, 29, 78, 52, 23, 110, 111,
    30, 99, 49, 112, 113, 114, 115, 49, 12, 12, 102, 2, 116, 115, 117, 90, 118, 119, 120, 121, 47, 10, 119, 39, 22, 122, 24, 123, 124, 125,
    22, 126, 127, 8, 128, 10, 56, 129, 129, 130, 131, 132, 115, 133, 134, 135, 111, 136, 1, 2, 137, 138, 139, 140, 2, 108, 141, 115, 142, 143,
    144, 145, 38, 20, 146, 64, 147, 148, 149, 40, 150, 115, 151, 152, 153, 154, 38, 5, 155, 14, 156, 157, 64, 2, 0, 103, 2, 12, 158, 64,
    12, 56, 66, 159, 160, 20, 161, 56, 162, 38, 30, 163, 164, 14, 165, 95, 11, 50, 166, 167, 36, 168, 6, 140, 125, 169, 170, 171, 50, 51,
    172, 129, 173, 174, 175, 176, 176, 99, 177, 178, 1, 179, 180, 181, 182, 183, 184, 185, 20, 2, 26, 186, 91, 187, 134, 80, 49, 51, 13, 188,
    189, 190, 191, 50, 153, 51, 192, 30, 144, 193, 194, 195, 189, 60, 196, 14, 2, 197, 192, 198, 199, 132, 176, 129, 188, 200, 201, 133, 8, 202,
    203, 155, 204, 205, 206, 78, 207, 144, 208, 66, 209, 210, 211, 22, 12, 212, 163, 86, 213, 214, 105, 191, 2, 8, 215, 180, 60, 216, 63, 217,
    218, 2, 219, 220, 221, 53, 74, 8, 222, 51, 178, 30, 223, 224, 225, 92, 125, 226, 227, 219, 170, 228, 179, 2, 82, 229, 7, 26, 136, 230,
    0, 231, 232, 233, 71, 234, 235, 199, 236, 119, 64, 237, 238, 239, 232, 192, 17, 240, 230, 54, 241, 109, 180, 242, 111, 243, 244, 245, 246, 14,
    77, 247, 248, 21, 249, 221, 250, 64, 251, 2, 56, 252, 253, 71, 53, 200, 254, 255, 168, 11, 155, 256, 56, 77, 53, 257, 69, 203, 258, 259,
    7, 171, 159, 14, 153, 167, 17, 0, 31, 260, 53, 218, 26, 147, 159, 56, 163, 54, 244, 261, 147, 262, 263, 264, 40, 36, 223, 265, 14, 171,
    189, 266, 267, 63, 22, 34, 268, 165, 260, 48, 218, 150, 269, 35, 270, 265, 271, 33, 33, 141, 272, 273, 88, 274, 215, 275, 276, 237, 2, 5,
    193, 87, 277, 39, 96, 140, 278, 154, 63, 279, 280, 269, 54, 133, 176, 125, 45, 146, 281, 282, 283, 254, 25, 284, 285, 64, 54, 59, 286, 147,
    287, 23, 63, 288, 289, 199, 290, 27, 291, 31, 292, 293, 294, 210, 295, 50, 14, 22, 296, 193, 50, 297, 31, 40, 298, 146, 248, 99, 172, 299,
    216, 153, 192, 227, 109, 265, 300, 301, 268, 302, 303, 31, 30, 147, 178, 65, 191, 56, 304, 63, 269, 15, 12, 2, 99, 170, 305, 306, 233, 232,
    307, 308, 308, 265, 309, 310, 39, 50, 152, 140, 311, 312, 313, 256, 7, 56, 314, 315, 53, 173, 95, 316, 317, 318, 46, 319, 320, 39, 77, 321,
    291, 322, 169, 93, 11, 265, 244, 323, 268, 324, 325, 144, 66, 22, 148, 136, 326, 319, 175, 327, 93, 328, 329, 330, 331, 332, 333, 269, 183, 334,
    335, 166, 14, 287, 336, 6, 337, 52, 219, 288, 338, 10, 289, 31, 153, 99, 310, 265, 339, 119, 112, 340, 341, 133, 129, 342, 290, 25, 343, 78,
    321, 71, 238, 246, 344, 120, 77, 206, 140, 221, 345, 5, 346, 347, 50, 12, 111, 348, 349, 350, 351, 231, 34, 352, 152, 129, 353, 248, 105, 147,
    354, 44, 111, 175, 129, 256, 129, 37, 355, 23, 119, 356, 71, 20, 40, 179, 158, 357, 2, 251, 236, 358, 2, 359, 52, 360, 234, 147, 93, 49,
    105, 288, 326, 361, 327, 223, 82, 362, 363, 235, 364, 365, 119, 133, 366, 64, 199, 367, 176, 140, 368, 330, 230, 369, 203, 370, 262, 371, 63, 26,
    30, 320, 372, 373, 53, 374, 50, 375, 93, 43, 376, 377, 378, 53, 281, 371, 328, 319, 31, 379, 79, 92, 64, 95, 371, 314, 380, 381, 382, 380,
    129, 221, 383, 384, 383, 15, 385, 140, 386, 383, 386, 119, 385, 26, 31, 31, 8, 384, 359, 384, 387, 152, 384, 180, 387, 384, 52, 228, 301, 82,
    102, 388, 213, 29, 258, 47, 228, 389, 77, 39, 364, 228, 271, 270, 215, 22, 390, 54, 46, 391, 0, 144, 147, 392, 12, 2, 12, 43, 132, 393,
    394, 395, 314, 393, 396, 394, 397, 238, 398, 326, 399, 238, 400, 179, 400, 198, 178, 15, 385, 315, 401, 99, 216, 251, 236, 2, 222, 8, 270, 366,
    38, 54, 314, 209, 402, 44, 56, 99, 222, 29, 25, 362, 396, 403, 22, 62, 381, 88, 62, 369, 23, 404, 405, 56, 355, 25, 129, 406, 407, 147,
    52, 312, 408, 385, 5, 175, 409, 282, 52, 29, 289, 156, 1, 25, 87, 147, 74, 410, 158, 53, 126, 209, 409, 331, 26, 113, 119, 44, 44, 199,
    77, 411, 12, 142, 142, 142, 40, 54, 93, 0, 40, 0, 0, 56, 40, 69, 40, 412, 301, 412, 87, 413, 69, 414, 380, 234, 385, 415, 93, 12,
    359, 338, 338, 416, 272, 156, 53, 115, 115, 337, 152, 417, 2, 12, 216, 133, 418, 93, 419, 12, 49, 215, 420, 48, 88, 53, 421, 406, 422, 118,
    396, 337, 56, 93, 188, 156, 321, 355, 1, 38, 405, 423, 39, 39, 424, 53, 321, 423, 43, 52, 399, 425, 272, 337, 94, 250, 113, 92, 63, 426,
    427, 428, 191, 384, 39, 86, 191, 86, 412, 113, 12, 193, 52, 387, 281, 118, 314, 429, 430, 384, 431, 133, 428, 337, 399, 147, 429, 53, 193, 264,
    432, 43, 5, 337, 284, 396, 48, 433, 12, 434, 435, 436, 437, 147, 12, 433, 0, 54, 163, 299, 147, 438, 439, 64, 399, 56, 299, 147, 35, 440,
    412, 337, 42, 43, 441, 224, 53, 275, 321, 339, 402, 442, 399, 71, 88, 443, 65, 45, 112, 54, 20, 422, 86, 442, 86, 147, 147, 444, 163, 12,
    147, 2, 147, 63, 43, 445, 446, 53, 51, 53, 36, 213, 177, 228, 210, 64, 80, 406, 447, 448, 99, 63, 25, 51, 173, 39, 188, 449, 2, 51,
    450, 53, 447, 206, 206, 280, 402, 144, 201, 244, 225, 369, 39, 406, 195, 8, 384, 447, 451, 111, 355, 219, 452, 200, 200, 15, 384, 170, 280, 289,
    224, 13, 366, 453, 454, 412, 15, 25, 178, 178, 216, 64, 2, 170, 455, 299, 206, 108, 224, 339, 8, 12, 240, 456, 442, 213, 78, 2, 457, 142,
    280, 226, 54, 49, 99, 80, 170, 170, 230, 53, 172, 376, 213, 203, 449, 95, 34, 203, 198, 64, 95, 0, 380, 16, 16, 203, 24, 0, 380, 275,
    54, 458, 35, 120, 248, 459, 56, 228, 104, 34, 228, 189, 443, 265, 460, 461, 154, 34, 2, 462, 37, 103, 37, 369, 62, 7, 188, 142, 86, 417,
    463, 369, 264, 62, 14, 86, 94, 348, 49, 311, 112, 112, 0, 464, 34, 465, 77, 20, 466, 2, 384, 31, 467, 176, 466, 8, 170, 133, 468, 139,
    469, 299, 64, 348, 177, 8, 77, 48, 443, 99, 48, 265, 469, 45, 99, 470, 80, 471, 49, 472, 111, 473, 474, 41, 467, 13, 302, 475, 224, 30,
    224, 77, 399, 146, 99, 49, 39, 50, 476, 367, 63, 393, 74, 50, 449, 12, 477, 81, 219, 280, 99, 478, 119, 477, 94, 12, 248, 289, 77, 11,
    479, 480, 248, 109, 53, 75, 481, 53, 36, 36, 482, 196, 153, 483, 70, 109, 417, 36, 484, 485, 486, 193, 53, 196, 237, 109, 487, 429, 264, 314,
    488, 314, 78, 31, 53, 88, 489, 46, 93, 34, 490, 335, 86, 482, 26, 53, 140, 491, 53, 31, 31, 314, 26, 492, 493, 494, 188, 188, 0, 330,
    464, 129, 495, 11, 496, 496, 497, 498, 58, 136, 30, 227, 12, 30, 499, 142, 392, 500, 47, 66, 296, 501, 33, 45, 188, 392, 467, 178, 502, 405,
    312, 12, 503, 312, 504, 505, 24, 402, 175, 506, 1, 399, 507, 402, 63, 105, 190, 47, 90, 384, 362, 219, 8, 30, 21, 508, 300, 320, 26, 509,
    219, 117, 156, 12, 0, 131, 510, 511, 486, 219, 35, 360, 268, 284, 205, 12, 156, 512, 132, 209, 237, 53, 385, 78, 65, 513, 23, 230, 514, 317,
    307, 163, 515, 251, 17, 44, 516, 74, 264, 517, 240, 240, 518, 519, 520, 47, 157, 152, 521, 338, 109, 522, 523, 5, 131, 524, 74, 525, 64, 137,
    84, 526, 77, 527, 528, 419, 237, 529, 64, 451, 36, 251, 230, 248, 35, 530, 136, 5, 27, 64, 451, 56, 105, 131, 219, 299, 531, 516, 108, 2,
    532, 307, 53, 533, 534, 535, 419, 536, 64, 537, 8, 280, 0, 538, 539, 540, 1, 394, 30, 153, 179, 8, 179, 541, 542, 2, 543, 69, 391, 544,
    391, 50, 545, 546, 460, 547, 155, 2, 548, 180, 62, 209, 549, 550, 551, 552, 462, 60, 113, 432, 459, 553, 56, 144, 195, 554, 555, 556, 34, 200,
    56, 104, 179, 201, 202, 175, 557, 192, 13, 375, 25, 199, 128, 26, 129, 163, 5, 92, 248, 221, 65, 558, 2, 406, 284, 510, 222, 63, 268, 12,
    179, 559, 560, 309, 244, 561, 348, 220, 562, 563, 129, 564, 360, 159, 565, 566, 206, 2, 158, 567, 180, 132, 131, 380, 434, 201, 568, 326, 30, 569,
    261, 78, 158, 97, 369, 570, 104, 244, 189, 571, 468, 443, 0, 234, 113, 0, 295, 236, 225, 572, 320, 534, 573, 574, 486, 35, 575, 219, 449, 53,
    576, 253, 195, 250, 244, 129, 206, 577, 75, 65, 252, 47, 510, 578, 96, 56, 13, 338, 107, 425, 579, 35, 30, 31, 175, 175, 533, 338, 325, 294,
    2, 158, 580, 385, 129, 48, 53, 77, 319, 192, 21, 172, 581, 582, 570, 387, 5, 153, 240, 80, 0, 492, 0, 0, 206, 29, 325, 582, 583, 452,
    288, 12, 253, 584, 40, 160, 585, 5, 392, 50, 426, 140, 586, 53, 536, 223, 587, 572, 588, 14, 271, 218, 288, 77, 60, 62, 158, 589, 0, 590,
    45, 591, 6, 592, 593, 44, 514, 286, 78, 594, 64, 419, 331, 595, 175, 5, 5, 124, 49, 49, 596, 391, 597, 331, 598, 195, 570, 5, 75, 264,
    29, 129, 20, 288, 431, 118, 599, 399, 600, 118, 601, 18, 602, 535, 281, 31, 153, 603, 604, 111, 90, 452, 244, 54, 319, 219, 193, 223, 34, 49,
    202, 605, 50, 243, 321, 14, 75, 431, 39, 237, 338, 606, 179, 235, 607, 608, 14, 74, 309, 268, 146, 15, 62, 95, 42, 348, 583, 609, 77, 195,
    12, 94, 610, 50, 288, 178, 301, 611, 612, 360, 29, 14, 32, 613, 71, 31, 470, 614, 615, 53, 572, 616, 50, 617, 0, 618, 0, 94, 77, 14,
    39, 619, 250, 582, 620, 193, 268, 621, 622, 159, 536, 601, 200, 256, 492, 99, 58, 325, 317, 227, 106, 384, 623, 32, 624, 82, 312, 625, 12, 70,
    64, 626, 8, 35, 284, 39, 627, 628, 201, 26, 219, 320, 325, 629, 630, 325, 240, 602, 195, 0, 357, 631, 35, 84, 632, 158, 536, 132, 189, 335,
    335, 112, 633, 75, 450, 312, 312, 509, 153, 5, 105, 381, 105, 634, 509, 635, 636, 210, 158, 244, 339, 619, 637, 638, 639, 62, 348, 535, 307, 129,
    118, 140, 640, 508, 641, 317, 80, 62, 454, 464, 637, 319, 23, 183, 290, 357, 105, 222, 244, 443, 80, 394, 642, 275, 206, 244, 12, 51, 643, 94,
    487, 244, 26, 320, 644, 345, 71, 77, 645, 604, 273, 646, 170, 647, 344, 648, 613, 348, 371, 337, 649, 49, 14, 650, 651, 105, 23, 77, 5, 320,
    112, 640, 413, 348, 74, 120, 88, 240, 170, 0, 224, 26, 31, 290, 104, 652, 653, 654, 119, 236, 571, 99, 5, 248, 582, 2, 8, 655, 314, 158,
    200, 526, 72, 14, 618, 272, 637, 656, 157, 359, 0, 357, 20, 20, 74, 487, 199, 153, 657, 128, 658, 82, 320, 513, 23, 113, 659, 660, 295, 119,
    320, 193, 140, 170, 0, 661, 193, 224, 348, 662, 30, 602, 74, 663, 664, 131, 75, 53, 422, 106, 79, 665, 450, 31, 53, 224, 375, 450, 49, 624,
    567, 20, 78, 163, 0, 77, 113, 250, 31, 43, 290, 666, 46, 431, 128, 665, 667, 668, 583, 163, 18, 602, 665, 669, 53, 43, 235, 53, 2, 281,
    79, 309, 256, 77, 670, 147, 671, 51, 364, 602, 79, 0, 0, 50, 348, 74, 21, 26, 672, 147, 348, 171, 74, 243, 673, 673, 674, 103, 314, 238,
    297, 95, 675, 62, 348, 314, 248, 535, 676, 24, 132, 385, 50, 125, 535, 677, 678, 1, 175, 535, 362, 535, 385, 30, 535, 74, 679, 120, 14, 338,
    314, 125, 680, 14, 289, 535, 681, 50, 314, 680, 250, 120, 314, 314, 36, 673, 385, 385, 673, 682, 348, 2, 609, 81, 81, 385, 36, 385, 109, 299,
    120, 224, 234, 683, 326, 684, 35, 685, 64, 86, 20, 2, 686, 133, 133, 232, 45, 359, 407, 0, 0, 369, 140, 687, 602, 450, 12, 210, 63, 63,
    177, 170, 2, 240, 688, 251, 689, 674, 154, 152, 285, 509, 216, 690, 192, 448, 189, 52, 691, 52, 12, 234, 692, 693, 147, 509, 53, 47, 64, 152,
    694, 508, 695, 319, 676, 188, 509, 63, 60, 87, 69, 46, 399, 176, 362, 20, 696, 144, 123, 335, 224, 21, 108, 384, 198, 83, 47, 692, 172, 1,
    51, 56, 62, 63, 527, 431, 375, 375, 224, 335, 136, 459, 355, 215, 226, 12, 195, 230, 191, 219, 330, 16, 74, 237, 383, 382, 56, 221, 268, 113,
    113, 86, 227, 144, 74, 66, 198, 314, 504, 99, 590, 6, 392, 248, 0, 46, 131, 570, 220, 104, 0, 359, 412, 0, 460, 223, 215, 129, 314, 318,
    697, 698, 2, 74, 481, 178, 527, 240, 425, 158, 699, 154, 322, 200, 251, 502, 153, 700, 452, 280, 27, 321, 490, 75, 406, 406, 701, 27, 0, 13,
    8, 170, 535, 238, 23, 468, 153, 14, 13, 570, 680, 702, 20, 703, 48, 54, 125, 91, 279, 704, 25, 136, 509, 223, 286, 705, 706, 216, 63, 113,
    2, 63, 2, 155, 12, 707, 5, 708, 54, 709, 250, 384, 319, 676, 176, 147, 383, 490, 396, 14, 570, 275, 175, 385, 404, 154, 36, 133, 676, 223,
    180, 710, 460, 385, 27, 74, 679, 189, 112, 711, 504, 18, 237, 712, 203, 14, 153, 713, 39, 714, 715, 425, 216, 269, 14, 301, 248, 268, 31, 716,
    717, 408, 140, 464, 60, 74, 40, 38, 39, 119, 107, 396, 349, 718, 0, 330, 215, 301, 404, 306, 48, 360, 719, 12, 234, 290, 128, 27, 200, 412,
    256, 256, 8, 222, 623, 628, 27, 385, 319, 720, 38, 53, 275, 318, 721, 722, 383, 271, 64, 91, 170, 35, 232, 158, 228, 0, 216, 271, 314, 419,
    99, 422, 0, 452, 723, 275, 183, 624, 224, 224, 307, 133, 408, 450, 441, 499, 33, 619, 219, 341, 262, 52, 398, 33, 724, 10, 216, 200, 588, 624,
    63, 719, 535, 536, 490, 153, 6, 108, 331, 31, 128, 725, 133, 536, 29, 50, 694, 71, 725, 178, 358, 321, 726, 120, 727, 728, 142, 720, 450, 157,
    157, 729, 153, 299, 710, 113, 509, 413, 730, 152, 301, 509, 104, 23, 0, 147, 731, 536, 12, 71, 590, 2, 517, 189, 46, 37, 23, 200, 732, 509,
    364, 54, 0, 359, 666, 133, 170, 733, 77, 195, 158, 36, 272, 320, 734, 119, 330, 369, 224, 31, 509, 50, 204, 375, 375, 505, 53, 44, 666, 43,
    170, 31, 330, 47, 48, 8, 115, 0, 735, 735, 299, 0, 0, 736, 51, 735, 62, 62, 676, 2, 62, 178, 676, 392, 486, 157, 392, 2, 737, 738,
    93, 37, 739, 265, 287, 467, 96, 677, 1, 56, 429, 7, 740, 99, 460, 7, 94, 77, 607, 741, 742, 256, 113, 113, 23, 289, 0, 198, 198, 5,
    366, 366, 74, 163, 624, 743, 118, 271, 362, 56, 500, 744, 144, 745, 451, 8, 124, 362, 308, 31, 189, 2, 220, 746, 113, 443, 369, 95, 746, 47,
    631, 112, 583, 747, 31, 459, 280, 390, 59, 40, 748, 152, 46, 680, 94, 749, 583, 750, 412, 751, 285, 2, 37, 124, 752, 285, 77, 301, 264, 156,
    170, 753, 46, 335, 196, 628, 754, 335, 64, 335, 37, 112, 755, 95, 37, 8, 152, 163, 189, 81, 756, 757, 173, 90, 59, 133, 147, 128, 34, 758,
    227, 320, 129, 142, 12, 759, 82, 264, 151, 131, 735, 56, 317, 49, 115, 760, 52, 31, 761, 419, 38, 600, 464, 12, 522, 38, 268, 119, 95, 617,
    520, 219, 762, 735, 763, 31, 471, 171, 152, 189, 14, 60, 40, 741, 154, 64, 14, 86, 464, 764, 176, 179, 45, 382, 104, 765, 314, 0, 360, 766,
    248, 408, 450, 5, 189, 180, 417, 248, 195, 178, 66, 91, 355, 177, 108, 56, 1, 284, 284, 8, 394, 321, 144, 341, 39, 175, 26, 215, 50, 391,
    54, 321, 567, 115, 268, 25, 37, 33, 12, 16, 78, 767, 280, 105, 198, 768, 147, 147, 2, 468, 63, 232, 12, 129, 107, 221, 769, 770, 31, 209,
    406, 155, 570, 30, 31, 227, 771, 74, 772, 773, 213, 284, 282, 50, 131, 201, 619, 36, 774, 105, 81, 69, 129, 449, 53, 73, 99, 486, 56, 325,
    730, 50, 384, 775, 775, 776, 777, 215, 243, 14, 778, 779, 780, 280, 180, 63, 338, 153, 735, 248, 567, 246, 129, 781, 64, 31, 64, 782, 31, 14,
    26, 14, 201, 53, 129, 54, 188, 783, 5, 129, 45, 25, 140, 224, 537, 248, 248, 619, 15, 24, 784, 54, 508, 286, 1, 48, 262, 244, 33, 5,
    348, 785, 146, 786, 509, 264, 264, 39, 271, 176, 213, 52, 254, 52, 787, 46, 215, 62, 788, 218, 189, 74, 179, 789, 56, 52, 125, 790, 364, 791,
    74, 36, 54, 53, 46, 129, 0, 443, 290, 43, 180, 109, 792, 268, 64, 243, 793, 210, 308, 178, 14, 50, 747, 794, 408, 49, 795, 240, 348, 146,
    133, 294, 617, 56, 39, 306, 2, 38, 408, 301, 15, 796, 290, 360, 39, 50, 408, 314, 91, 21, 797, 99, 798, 112, 393, 394, 26, 297, 50, 201,
    247, 62, 335, 39, 203, 178, 799, 86, 93, 268, 20, 77, 314, 290, 315, 82, 219, 422, 408, 405, 800, 317, 198, 94, 801, 210, 708, 232, 314, 802,
    315, 803, 804, 12, 256, 805, 129, 124, 70, 452, 460, 262, 158, 20, 567, 2, 339, 14, 330, 360, 806, 2, 10, 103, 200, 176, 53, 153, 807, 31,
    119, 441, 140, 118, 808, 809, 206, 450, 75, 62, 62, 335, 809, 536, 317, 55, 175, 64, 655, 798, 302, 617, 129, 129, 450, 345, 112, 443, 86, 413,
    63, 178, 2, 443, 77, 94, 774, 77, 31, 43, 105, 408, 142, 142, 129, 2, 348, 105, 142, 8, 189, 321, 96, 536, 112, 810, 171, 805, 25, 2,
    361, 158, 0, 199, 450, 811, 17, 119, 191, 14, 567, 315, 82, 211, 31, 362, 290, 812, 805, 421, 290, 15, 0, 450, 180, 215, 176, 464, 422, 314,
    364, 31, 499, 1, 105, 813, 364, 168, 290, 499, 378, 814, 222, 53, 815, 31, 816, 364, 284, 39, 88, 88, 279, 95, 817, 284, 418, 818, 56, 819,
    284, 244, 171, 366, 26, 362, 203, 12, 175, 173, 83, 30, 820, 106, 81, 821, 460, 510, 24, 133, 33, 822, 36, 284, 365, 56, 284, 53, 83, 111,
    82, 0, 602, 602, 290, 81, 203, 199, 315, 128, 86, 287, 367, 14, 392, 223, 823, 282, 48, 794, 268, 131, 2, 52, 409, 222, 51, 359, 131, 269,
    270, 179, 90, 48, 2, 203, 8, 8, 381, 180, 384, 360, 8, 30, 583, 2, 214, 824, 129, 228, 27, 825, 228, 244, 326, 65, 826, 106, 31, 244,
    827, 180, 624, 315, 301, 222, 402, 828, 327, 829, 286, 371, 12, 314, 12, 74, 222, 402, 289, 195, 232, 147, 56, 199, 22, 583, 408, 240, 338, 14,
    8, 199, 119, 199, 830, 14, 203, 828, 199, 240, 450, 227, 831, 399, 240, 62, 64, 345, 484, 199, 287, 180, 50, 99, 828, 348, 345, 251, 583, 2,
    2, 203, 240, 832, 203, 40, 418, 383, 26, 170, 272, 833, 0, 392, 508, 40, 0, 834, 196, 384, 456, 456, 18, 503, 344, 170, 816, 383, 272, 244,
    295, 449, 835, 835, 92, 637, 147, 33, 624, 6, 6, 450, 637, 140, 345, 129, 129, 676, 30, 151, 30, 345, 836, 268, 837, 151, 151, 151, 637, 268,
    113, 94, 38, 34, 87, 175, 87, 246, 87, 87, 8, 74, 838, 839, 176, 119, 840, 841, 54, 20, 842, 843, 189, 54, 39, 271, 188, 193, 39, 64,
    156, 8, 8, 844, 12, 99, 232, 843, 176, 302, 77, 50, 341, 845, 619, 844, 193, 264, 816, 846, 385, 230, 230, 77, 842, 230, 54, 99, 54, 88,
    345, 88, 816, 843, 847, 594, 176, 321, 201, 129, 53, 848, 348, 348, 849, 135, 5, 115, 64, 481, 180, 14, 93, 96, 5, 0, 421, 177, 268, 850,
    36, 64, 39, 851, 12, 133, 852, 48, 5, 853, 133, 5, 227, 39, 188, 396, 129, 335, 364, 272, 47, 192, 192, 144, 54, 396, 384, 198, 83, 508,
    53, 214, 854, 31, 56, 159, 210, 1, 60, 20, 335, 136, 369, 421, 188, 62, 508, 355, 223, 214, 1, 219, 0, 25, 0, 94, 159, 393, 132, 83,
    2, 0, 195, 855, 281, 248, 856, 170, 504, 224, 631, 92, 16, 213, 226, 2, 108, 8, 223, 50, 583, 484, 222, 53, 12, 226, 50, 30, 407, 7,
    406, 268, 655, 91, 81, 105, 248, 248, 14, 300, 13, 71, 677, 40, 40, 460, 53, 30, 129, 315, 272, 180, 27, 385, 425, 251, 451, 7, 74, 525,
    857, 216, 206, 218, 858, 477, 279, 381, 381, 128, 44, 443, 54, 218, 5, 355, 676, 676, 165, 175, 331, 36, 36, 859, 125, 125, 1, 88, 113, 91,
    535, 74, 25, 338, 91, 50, 244, 517, 31, 282, 39, 183, 253, 860, 25, 194, 175, 74, 284, 118, 301, 14, 861, 792, 40, 21, 144, 193, 2, 63,
    862, 326, 268, 248, 51, 863, 230, 31, 408, 338, 12, 12, 583, 109, 299, 408, 133, 864, 14, 269, 364, 865, 31, 31, 50, 269, 227, 96, 315, 384,
    240, 14, 5, 619, 385, 383, 77, 628, 126, 298, 866, 39, 867, 422, 64, 282, 868, 284, 50, 183, 46, 429, 133, 200, 602, 869, 12, 8, 0, 282,
    269, 37, 345, 103, 43, 870, 871, 90, 385, 619, 10, 194, 194, 335, 636, 188, 536, 872, 487, 272, 272, 77, 14, 873, 375, 78, 874, 111, 240, 105,
    31, 206, 302, 44, 345, 345, 490, 413, 113, 344, 655, 875, 268, 105, 268, 88, 876, 2, 83, 460, 23, 23, 2, 602, 858, 12, 99, 384, 877, 153,
    335, 487, 50, 2, 315, 272, 1, 39, 14, 421, 74, 328, 39, 878, 877, 375, 375, 46, 879, 77, 54, 43, 290, 94, 31, 50, 460, 213, 137, 880,
    81, 46, 46, 602, 31, 31, 31, 94, 31, 42, 881, 42, 179, 301, 693, 170, 137, 137, 406, 228, 192, 71, 54, 228, 0, 64, 120, 13, 882, 21,
    21, 12, 2, 26, 47, 63, 382, 883, 2, 119, 170, 280, 0, 170, 119, 884, 462, 189, 8, 13, 90, 885, 142, 602, 8, 152, 600, 63, 77, 62,
    49, 50, 10, 319, 136, 886, 155, 600, 887, 888, 112, 63, 179, 111, 63, 153, 450, 2, 2, 69, 407, 280, 82, 885, 136, 232, 889, 71, 232, 8,
    677, 77, 318, 136, 86, 363, 69, 10, 890, 48, 136, 50, 140, 891, 12, 118, 535, 393, 464, 237, 232, 178, 222, 50, 146, 56, 2, 318, 69, 0,
    228, 405, 301, 124, 222, 210, 374, 348, 38, 892, 341, 108, 262, 535, 118, 108, 318, 10, 52, 43, 56, 63, 893, 142, 894, 189, 189, 10, 222, 71,
    43, 152, 366, 318, 363, 510, 93, 39, 129, 364, 87, 69, 468, 147, 22, 22, 215, 87, 268, 583, 30, 30, 12, 895, 20, 109, 118, 0, 735, 664,
    289, 189, 5, 674, 337, 86, 36, 896, 39, 178, 224, 64, 735, 250, 290, 686, 459, 46, 36, 617, 425, 191, 56, 132, 70, 264, 78, 2, 63, 214,
    63, 159, 438, 192, 244, 385, 86, 250, 837, 109, 30, 13, 22, 27, 218, 189, 12, 223, 33, 103, 200, 60, 282, 33, 289, 14, 14, 617, 312, 897,
    78, 0, 34, 248, 898, 422, 489, 112, 452, 312, 63, 13, 289, 34, 34, 490, 335, 899, 619, 74, 345, 900, 224, 2, 93, 43, 385, 26, 901, 617,
    140, 64, 902, 895, 0, 234, 189, 903, 99, 44, 44, 345, 224, 12, 290, 129, 109, 200, 53, 109, 74, 170, 31, 109, 153, 508, 147, 348, 59, 348,
    228, 468, 412, 467, 2, 5, 904, 152, 905, 31, 2, 722, 189, 2, 2, 92, 11, 8, 0, 8, 8, 228, 906, 74, 62, 56, 131, 64, 747, 219,
    37, 47, 180, 153, 10, 907, 124, 56, 153, 222, 129, 62, 137, 173, 52, 232, 2, 222, 680, 48, 449, 296, 908, 52, 156, 10, 37, 456, 275, 273,
    456, 189, 189, 196, 0, 147, 198, 0, 66, 189, 402, 147, 423, 244, 273, 909, 456, 131, 222, 909, 48, 88, 12, 12, 86, 359, 224, 224, 673, 348,
    63, 348, 348, 2, 2, 2, 2, 421, 421, 11, 215, 419, 132, 31, 31, 14, 219, 286, 262, 156, 327, 275, 200, 339, 10, 290, 219, 219, 910, 911,
    12, 912, 38, 2, 151, 172, 189, 153, 1, 56, 151, 91, 247, 151, 52, 136, 77, 170, 913, 144, 204, 230, 237, 914, 915, 63, 178, 52, 385, 24,
    77, 218, 24, 641, 261, 77, 25, 12, 140, 63, 24, 179, 218, 14, 99, 39, 147, 797, 502, 467, 301, 56, 170, 50, 916, 268, 50, 77, 91, 339,
    917, 918, 919, 919, 423, 918, 610, 172, 268, 348, 105, 348, 408, 375, 78, 203, 905, 171, 33, 189, 2, 117, 115, 272, 920, 16, 12, 115, 115, 43,
    509, 921, 922, 134, 923, 924, 418, 63, 151, 486, 925, 142, 0, 271, 538, 419, 38, 381, 64, 12, 64, 77, 148, 30, 48, 24, 926, 234, 258, 467,
    63, 927, 331, 624, 362, 928, 929, 468, 254, 380, 763, 930, 129, 171, 103, 62, 931, 152, 932, 362, 282, 64, 307, 140, 337, 54, 2, 203, 137, 933,
    155, 192, 670, 144, 934, 177, 173, 935, 91, 600, 13, 936, 620, 62, 905, 104, 112, 937, 938, 153, 136, 2, 939, 30, 56, 12, 275, 215, 314, 176,
    72, 56, 77, 189, 30, 417, 360, 24, 22, 301, 940, 93, 517, 33, 77, 509, 0, 269, 383, 450, 0, 2, 8, 941, 170, 8, 77, 206, 942, 369,
    225, 63, 99, 112, 943, 301, 504, 320, 279, 944, 107, 77, 639, 33, 26, 770, 21, 144, 348, 348, 219, 210, 2, 380, 72, 44, 348, 284, 178, 219,
    6, 757, 913, 631, 384, 226, 271, 228, 213, 77, 407, 421, 275, 590, 918, 348, 647, 0, 132, 31, 412, 398, 460, 95, 486, 200, 200, 945, 20, 676,
    71, 421, 258, 946, 865, 77, 75, 44, 193, 338, 947, 417, 193, 13, 2, 133, 348, 77, 265, 948, 2, 107, 282, 213, 27, 94, 64, 64, 30, 53,
    252, 583, 24, 2, 421, 53, 672, 0, 248, 477, 360, 133, 64, 355, 24, 264, 265, 918, 331, 140, 141, 53, 12, 270, 270, 215, 272, 5, 279, 271,
    125, 77, 216, 949, 176, 289, 17, 157, 535, 302, 52, 48, 741, 119, 12, 950, 511, 163, 195, 680, 273, 193, 193, 602, 151, 668, 62, 254, 77, 140,
    171, 50, 348, 647, 951, 269, 147, 200, 46, 54, 361, 27, 918, 265, 417, 361, 49, 270, 113, 460, 95, 78, 694, 952, 301, 294, 367, 953, 215, 398,
    467, 254, 269, 797, 71, 17, 265, 360, 50, 35, 133, 50, 14, 14, 189, 360, 583, 355, 189, 2, 15, 200, 954, 955, 74, 248, 956, 393, 407, 384,
    14, 158, 417, 31, 714, 87, 95, 957, 937, 404, 152, 0, 94, 94, 477, 492, 95, 256, 256, 5, 268, 282, 301, 12, 175, 54, 337, 176, 99, 412,
    91, 200, 636, 170, 180, 111, 931, 314, 843, 254, 200, 144, 53, 958, 124, 74, 191, 645, 959, 362, 301, 95, 180, 209, 228, 196, 960, 339, 108, 108,
    535, 219, 361, 361, 361, 331, 355, 921, 10, 132, 335, 499, 341, 270, 477, 582, 34, 348, 412, 112, 307, 282, 490, 74, 230, 6, 50, 673, 341, 133,
    196, 200, 289, 103, 692, 961, 310, 280, 5, 5, 14, 69, 345, 957, 30, 381, 63, 132, 27, 5, 188, 275, 265, 423, 367, 105, 725, 219, 112, 69,
    94, 348, 71, 915, 962, 74, 77, 77, 963, 509, 113, 383, 964, 256, 88, 398, 244, 142, 152, 206, 206, 381, 338, 5, 129, 355, 52, 345, 64, 361,
    88, 247, 129, 509, 299, 20, 2, 93, 129, 460, 49, 509, 52, 282, 338, 965, 50, 966, 25, 240, 240, 54, 958, 590, 99, 290, 335, 393, 2, 44,
    601, 251, 932, 141, 364, 158, 44, 31, 899, 7, 219, 14, 74, 136, 366, 967, 366, 383, 390, 450, 733, 141, 17, 63, 328, 328, 968, 144, 111, 63,
    369, 369, 30, 56, 422, 510, 27, 969, 43, 366, 364, 932, 360, 666, 43, 12, 54, 970, 196, 2, 112, 243, 446, 319, 88, 971, 971, 971, 35, 421,
    64, 147, 972, 33, 315, 973, 27, 146, 39, 35, 147, 536, 163, 536, 302, 25, 5, 210, 504, 974, 210, 12, 63, 216, 12, 94, 16, 413, 0, 536,
    35, 147, 39, 14, 147, 975, 224, 973, 302, 973, 973, 668, 136, 188, 62, 62, 62, 248, 976, 193, 393, 62, 53, 154, 325, 245, 46, 238, 6, 2,
    2, 321, 62, 264, 31, 392, 193, 286, 977, 21, 978, 120, 979, 104, 122, 142, 0, 326, 60, 10, 906, 980, 525, 981, 134, 180, 982, 983, 984, 402,
    64, 0, 133, 63, 115, 899, 141, 708, 144, 763, 177, 172, 774, 985, 929, 695, 210, 14, 56, 335, 986, 20, 63, 63, 248, 0, 382, 27, 12, 31,
    930, 467, 137, 506, 419, 620, 421, 88, 47, 240, 161, 91, 95, 48, 539, 2, 33, 987, 432, 308, 387, 103, 988, 0, 56, 459, 0, 335, 118, 673,
    402, 125, 536, 251, 62, 203, 22, 989, 275, 243, 13, 20, 362, 268, 232, 65, 144, 203, 195, 176, 990, 153, 219, 873, 210, 991, 408, 624, 36, 17,
    188, 355, 93, 992, 304, 993, 51, 49, 994, 108, 468, 431, 56, 459, 177, 261, 44, 84, 72, 133, 54, 995, 47, 60, 60, 996, 54, 45, 997, 998,
    208, 208, 724, 176, 54, 899, 375, 147, 407, 200, 364, 199, 111, 999, 133, 913, 1000, 8, 39, 91, 672, 228, 228, 213, 1001, 729, 309, 839, 1002, 99,
    1003, 348, 567, 1004, 1005, 84, 208, 219, 399, 63, 1006, 113, 113, 63, 417, 223, 236, 232, 205, 105, 220, 25, 1007, 214, 406, 65, 224, 1008, 201, 88,
    406, 54, 63, 81, 36, 1009, 128, 1010, 460, 359, 105, 91, 12, 348, 129, 14, 158, 1011, 328, 429, 111, 425, 193, 232, 27, 1012, 1013, 1014, 408, 236,
    54, 1015, 147, 2, 109, 321, 1016, 48, 1010, 227, 40, 1017, 64, 251, 1018, 132, 676, 1019, 1020, 45, 697, 1021, 47, 338, 449, 602, 280, 118, 1022, 23,
    1023, 13, 48, 1024, 344, 1004, 287, 224, 312, 1011, 206, 818, 318, 147, 583, 272, 50, 48, 240, 275, 196, 406, 355, 141, 56, 208, 54, 272, 1025, 158,
    280, 421, 269, 1026, 527, 39, 385, 285, 84, 468, 1027, 1028, 1029, 5, 129, 27, 46, 708, 125, 289, 396, 113, 392, 156, 432, 153, 10, 254, 12, 124,
    407, 5, 261, 33, 133, 1, 23, 36, 88, 91, 29, 399, 365, 1030, 436, 3, 682, 286, 509, 172, 22, 39, 193, 279, 246, 31, 429, 749, 54, 271,
    133, 590, 174, 600, 39, 224, 1031, 0, 1032, 63, 1033, 366, 1034, 0, 270, 275, 314, 328, 147, 1035, 1036, 147, 14, 31, 94, 243, 1037, 794, 1038, 50,
    1039, 749, 360, 617, 747, 602, 227, 8, 269, 232, 2, 170, 1040, 467, 144, 583, 31, 1041, 223, 1042, 36, 146, 1043, 1044, 12, 747, 431, 431, 624, 412,
    34, 34, 385, 39, 1045, 97, 1046, 244, 1008, 99, 314, 291, 23, 227, 65, 265, 268, 50, 183, 364, 1047, 240, 43, 35, 619, 269, 97, 105, 198, 240,
    315, 477, 1048, 1044, 302, 818, 818, 111, 93, 1049, 1050, 429, 708, 845, 268, 272, 63, 1051, 1052, 147, 312, 21, 451, 129, 759, 32, 119, 510, 1053, 1054,
    328, 321, 128, 1055, 319, 1056, 177, 104, 53, 124, 1057, 63, 201, 1058, 133, 419, 536, 1059, 232, 248, 99, 328, 213, 227, 65, 35, 64, 631, 0, 103,
    196, 33, 208, 268, 327, 312, 509, 1060, 1061, 325, 34, 381, 337, 1031, 22, 1062, 885, 1063, 1064, 1065, 287, 112, 27, 219, 270, 224, 281, 619, 269, 1066,
    1067, 1068, 536, 319, 443, 331, 63, 991, 456, 86, 290, 63, 1069, 63, 602, 341, 822, 402, 1070, 1071, 673, 442, 450, 450, 1072, 1034, 1014, 262, 37, 268,
    198, 133, 345, 12, 290, 88, 55, 55, 206, 157, 129, 1073, 86, 371, 2, 129, 27, 27, 139, 1074, 131, 26, 338, 221, 623, 344, 468, 44, 91, 1075,
    735, 105, 12, 636, 273, 1033, 172, 1076, 172, 88, 244, 345, 285, 1077, 71, 111, 1078, 45, 18, 1079, 701, 240, 157, 468, 443, 99, 224, 105, 880, 128,
    338, 1080, 1009, 147, 87, 200, 330, 79, 224, 321, 45, 999, 120, 668, 12, 359, 601, 636, 289, 372, 583, 39, 240, 234, 49, 99, 1081, 20, 111, 335,
    54, 23, 248, 366, 312, 222, 12, 362, 45, 272, 215, 364, 1082, 54, 23, 82, 23, 23, 176, 1083, 39, 327, 199, 35, 63, 1084, 899, 450, 147, 99,
    368, 509, 208, 312, 224, 1085, 774, 1086, 405, 144, 330, 1087, 1088, 880, 468, 129, 251, 163, 53, 1089, 583, 290, 224, 375, 133, 133, 1090, 133, 364, 1091,
    290, 408, 666, 358, 628, 880, 99, 196, 281, 251, 446, 219, 1090, 815, 1092, 445, 1093, 46, 201, 298, 105, 88, 364, 1094, 79, 63, 86, 86, 390, 170,
    508, 142, 392, 839, 30, 16, 2, 228, 134, 177, 154, 91, 508, 46, 402, 355, 1095, 175, 1096, 398, 244, 222, 1097, 1098, 153, 178, 105, 355, 624, 34,
    180, 113, 14, 219, 335, 208, 178, 105, 113, 112, 602, 189, 140, 46, 1099, 2, 87, 11, 384, 1100, 964, 390, 0, 244, 113, 105, 52, 144, 1101, 355,
    1102, 1103, 71, 1103, 91, 153, 232, 56, 1102, 345, 466, 0, 2, 105, 321, 105, 45, 1104, 112, 189, 1105, 244, 244, 419, 83, 5, 5, 287, 327, 88,
    287, 452, 264, 177, 177, 364, 14, 364, 50, 387, 299, 345, 210, 62, 99, 210, 14, 232, 105, 146, 214, 387, 119, 219, 1106, 56, 536, 302, 188, 45,
    302, 306, 45, 26, 171, 45, 45, 490, 44, 45, 93, 306, 51, 154, 1107, 1108, 525, 8, 155, 1109, 0, 70, 5, 302, 393, 230, 155, 517, 422, 56,
    154, 360, 52, 52, 176, 253, 382, 2, 422, 449, 147, 0, 2, 5, 63, 142, 339, 142, 302, 234, 96, 14, 1110, 12, 12, 12, 163, 1111, 49, 34,
    63, 582, 99, 214, 170, 178, 637, 431, 87, 338, 1112, 153, 178, 43, 8, 369, 144, 8, 151, 355, 355, 1113, 294, 64, 95, 265, 850, 118, 177, 39,
    676, 299, 62, 154, 320, 1114, 140, 360, 209, 254, 152, 240, 62, 2, 77, 171, 31, 118, 154, 509, 180, 54, 144, 371, 22, 215, 290, 360, 1115, 232,
    1, 294, 320, 408, 192, 450, 467, 178, 254, 382, 269, 8, 1116, 14, 264, 1117, 393, 176, 140, 419, 25, 158, 22, 0, 179, 375, 129, 369, 214, 137,
    8, 301, 301, 360, 94, 1118, 105, 119, 63, 119, 6, 132, 131, 31, 16, 78, 1119, 244, 23, 95, 348, 338, 338, 251, 48, 129, 676, 179, 77, 73,
    299, 13, 75, 75, 64, 1120, 348, 320, 624, 48, 271, 45, 487, 179, 120, 52, 77, 321, 176, 77, 289, 1121, 52, 86, 91, 2, 63, 223, 48, 44,
    29, 140, 151, 244, 371, 264, 360, 1122, 2, 7, 95, 348, 178, 355, 94, 23, 290, 1123, 50, 33, 289, 393, 243, 1124, 758, 223, 144, 294, 268, 325,
    120, 209, 105, 412, 1125, 628, 140, 5, 320, 31, 53, 158, 12, 12, 141, 371, 99, 320, 108, 450, 24, 176, 10, 348, 1126, 338, 360, 42, 345, 129,
    509, 52, 55, 44, 516, 77, 2, 12, 301, 136, 23, 23, 53, 509, 132, 244, 264, 180, 382, 320, 2, 78, 215, 180, 105, 203, 52, 31, 158, 23,
    82, 33, 366, 170, 268, 1126, 53, 624, 369, 504, 0, 268, 163, 230, 77, 315, 375, 79, 281, 81, 1119, 319, 31, 51, 421, 421, 188, 23, 425, 23,
    62, 195, 33, 636, 636, 299, 341, 1127, 1127, 193, 487, 812, 178, 164, 74, 417, 152, 20, 421, 30, 734, 275, 1128, 56, 1, 1129, 188, 0, 757, 214,
    759, 232, 452, 452, 1130, 209, 1131, 151, 516, 643, 5, 390, 290, 269, 151, 1132, 452, 206, 366, 375, 108, 0, 50, 450, 285, 65, 816, 816, 0, 51,
    115, 47, 1133, 113, 113, 1134, 53, 1135, 12, 34, 189, 159, 1136, 191, 288, 0, 462, 213, 133, 525, 87, 64, 227, 1137, 170, 142, 64, 284, 53, 215,
    286, 418, 115, 1138, 1139, 1140, 10, 486, 219, 2, 1141, 228, 464, 1142, 5, 33, 396, 214, 37, 15, 0, 218, 0, 486, 144, 317, 617, 1143, 314, 1108,
    1144, 265, 39, 25, 451, 268, 129, 93, 294, 600, 1145, 443, 171, 1146, 51, 17, 282, 177, 282, 12, 1147, 119, 198, 12, 393, 20, 517, 151, 850, 154,
    152, 2, 56, 243, 77, 62, 1148, 1149, 171, 232, 268, 44, 505, 248, 408, 382, 535, 63, 1150, 95, 0, 299, 33, 582, 1140, 53, 224, 147, 27, 0,
    536, 40, 1151, 244, 232, 250, 69, 1152, 77, 63, 72, 244, 210, 210, 506, 716, 450, 1153, 23, 23, 8, 602, 189, 798, 1154, 1, 22, 1155, 431, 195,
    695, 142, 38, 136, 191, 144, 56, 174, 225, 87, 5, 394, 794, 33, 449, 282, 75, 7, 30, 180, 1156, 60, 1157, 1158, 199, 0, 153, 1159, 65, 616,
    49, 175, 701, 34, 335, 56, 147, 764, 1160, 384, 59, 51, 553, 422, 235, 1161, 26, 51, 265, 1162, 72, 227, 268, 27, 34, 8, 63, 422, 408, 0,
    0, 1161, 582, 262, 302, 63, 375, 25, 224, 0, 1163, 364, 200, 33, 821, 1001, 5, 1164, 1165, 53, 2, 78, 232, 53, 1166, 1000, 216, 22, 115, 639,
    208, 115, 22, 284, 17, 2, 191, 178, 51, 1167, 487, 92, 92, 1168, 66, 228, 839, 206, 302, 53, 74, 144, 1169, 97, 766, 8, 35, 326, 81, 56,
    39, 107, 86, 124, 221, 50, 369, 82, 223, 223, 280, 1170, 45, 250, 63, 367, 132, 32, 32, 583, 1171, 34, 83, 113, 527, 1172, 309, 0, 0, 39,
    422, 0, 36, 774, 232, 359, 5, 71, 443, 1173, 37, 735, 170, 325, 288, 1164, 265, 1174, 899, 52, 111, 285, 56, 505, 132, 88, 77, 452, 422, 40,
    5, 419, 251, 134, 1175, 29, 21, 109, 30, 408, 318, 375, 275, 735, 153, 360, 1176, 582, 1177, 175, 189, 153, 338, 284, 63, 115, 265, 425, 147, 583,
    48, 328, 210, 214, 12, 244, 230, 1178, 1179, 853, 152, 282, 366, 64, 53, 1180, 387, 240, 290, 325, 54, 193, 99, 791, 45, 33, 43, 142, 50, 52,
    53, 22, 0, 0, 124, 63, 218, 112, 147, 1181, 1, 53, 5, 22, 125, 957, 133, 15, 5, 5, 286, 949, 43, 1182, 264, 1183, 318, 1184, 254, 269,
    267, 582, 12, 878, 275, 14, 14, 175, 1185, 25, 319, 396, 151, 153, 429, 142, 27, 302, 5, 314, 31, 14, 680, 2, 1186, 1187, 527, 283, 5, 45,
    1188, 384, 218, 1189, 749, 382, 270, 152, 152, 624, 289, 1190, 48, 535, 224, 320, 39, 2, 660, 54, 54, 27, 1191, 29, 1192, 63, 274, 570, 54, 1193,
    105, 45, 284, 327, 275, 90, 93, 0, 0, 0, 147, 86, 77, 464, 133, 0, 86, 46, 281, 63, 0, 0, 56, 425, 275, 321, 2, 60, 1194, 113,
    23, 56, 1075, 50, 306, 210, 269, 1195, 2, 1196, 77, 482, 31, 42, 147, 294, 14, 195, 616, 146, 297, 189, 268, 1197, 178, 296, 144, 431, 31, 285,
    348, 94, 39, 94, 26, 1198, 99, 60, 1199, 147, 108, 393, 93, 1057, 62, 112, 404, 109, 243, 14, 30, 408, 957, 908, 360, 144, 232, 297, 1200, 12,
    1201, 23, 93, 1202, 14, 410, 50, 408, 747, 12, 39, 412, 21, 290, 794, 301, 619, 67, 0, 0, 567, 0, 16, 509, 364, 1203, 14, 624, 230, 54,
    0, 0, 189, 99, 210, 2, 1204, 56, 328, 222, 452, 315, 175, 1205, 54, 128, 268, 232, 318, 288, 314, 284, 209, 256, 210, 268, 39, 301, 134, 264,
    65, 133, 317, 818, 314, 99, 315, 8, 63, 331, 419, 109, 422, 315, 319, 477, 287, 26, 299, 128, 384, 77, 175, 5, 1206, 451, 818, 405, 124, 35,
    294, 1207, 0, 12, 759, 1208, 527, 1209, 227, 168, 932, 408, 645, 396, 451, 45, 60, 0, 144, 46, 210, 718, 487, 0, 375, 1210, 51, 32, 558, 1211,
    112, 348, 200, 133, 535, 16, 16, 1212, 443, 5, 1213, 872, 275, 30, 62, 37, 62, 583, 86, 602, 2, 451, 103, 86, 86, 636, 1214, 119, 153, 1215,
    67, 452, 624, 1150, 1216, 159, 289, 499, 142, 132, 270, 118, 256, 330, 224, 29, 222, 619, 137, 256, 384, 93, 319, 262, 1217, 1218, 75, 65, 33, 10,
    341, 1219, 1220, 144, 214, 275, 51, 288, 77, 213, 107, 147, 24, 12, 0, 536, 0, 290, 1221, 170, 766, 71, 487, 24, 120, 33, 443, 94, 232, 344,
    421, 321, 77, 294, 46, 902, 87, 450, 64, 71, 774, 44, 422, 71, 129, 1222, 142, 1223, 60, 206, 95, 523, 1224, 27, 1225, 366, 54, 27, 1226, 88,
    88, 1227, 348, 12, 328, 78, 60, 199, 505, 51, 1132, 1127, 152, 367, 1228, 107, 929, 175, 422, 206, 451, 93, 0, 0, 0, 11, 12, 387, 52, 224,
    147, 0, 314, 128, 1229, 37, 509, 44, 236, 74, 77, 348, 321, 487, 360, 27, 87, 54, 487, 2, 240, 120, 31, 330, 40, 348, 359, 12, 96, 1230,
    1231, 27, 93, 987, 1173, 12, 39, 210, 289, 1232, 147, 536, 272, 2, 262, 282, 196, 44, 53, 227, 366, 74, 1233, 362, 15, 5, 673, 1210, 767, 12,
    133, 1234, 199, 2, 451, 718, 74, 734, 289, 31, 5, 222, 1235, 86, 294, 12, 94, 508, 413, 0, 35, 15, 30, 63, 1236, 133, 330, 1237, 139, 224,
    53, 880, 230, 1238, 348, 307, 230, 63, 451, 464, 314, 1163, 264, 1239, 312, 112, 37, 93, 0, 51, 224, 31, 53, 51, 373, 295, 248, 256, 1240, 602,
    14, 375, 1089, 105, 129, 86, 54, 1241, 1, 290, 1242, 74, 30, 290, 78, 236, 111, 194, 364, 54, 499, 196, 487, 24, 213, 188, 722, 34, 14, 281,
    53, 1243, 81, 298, 88, 0, 364, 364, 51, 379, 53, 47, 79, 14, 1, 0, 133, 191, 583, 171, 14, 1244, 168, 307, 178, 137, 1245, 5, 412, 1246,
    88, 77, 178, 513, 14, 94, 452, 828, 1247, 77, 158, 390, 5, 178, 1248, 240, 828, 216, 828, 1249, 42, 288, 399, 74, 171, 99, 14, 133, 244, 23,
    35, 1250, 509, 1251, 307, 62, 1252, 583, 178, 618, 515, 244, 178, 1253, 0, 1254, 93, 2, 248, 14, 668, 583, 63, 91, 191, 13, 64, 5, 13, 13,
    607, 54, 133, 1255, 601, 0, 601, 38, 96, 0, 53, 1256, 14, 53, 311, 136, 248, 26, 147, 75, 1257, 450, 268, 450, 247, 144, 271, 299, 136, 6,
    178, 170, 33, 361, 88, 339, 407, 21, 256, 372, 95, 112, 2, 23, 484, 566, 361, 1258, 49, 12, 504, 232, 95, 419, 17, 327, 193, 119, 6, 74,
    219, 34, 1259, 880, 2, 49, 464, 37, 112, 327, 464, 147, 147, 33, 307, 306, 51, 1260, 1261, 2, 288, 736, 736, 1262, 170, 46, 348, 348, 175, 720,
    12, 2, 307, 348, 306, 2, 244, 64, 270, 108, 408, 408, 158, 39, 464, 14, 189, 189, 189, 20, 20, 189, 43, 393, 320, 286, 20, 406, 210, 302,
    357, 1263, 60, 170, 92, 315, 129, 54, 108, 320, 21, 1264, 0, 509, 155, 54, 113, 331, 189, 11, 11, 393, 1265, 33, 33, 60, 1266, 147, 128, 11,
    1267, 108, 1268, 132, 315, 140, 120, 224, 302, 708, 302, 366, 224, 188, 504, 484, 153, 355, 88, 837, 5, 55, 59, 0, 272, 129, 42, 152, 1269, 395,
    0, 56, 180, 25, 289, 5, 74, 77, 106, 144, 223, 36, 384, 289, 36, 25, 49, 230, 289, 144, 95, 95, 889, 11, 915, 22, 200, 359, 889, 117,
    1270, 516, 142, 1271, 109, 63, 21, 1272, 118, 15, 880, 348, 156, 338, 227, 1273, 42, 1274, 1275, 743, 77, 60, 486, 1276, 5, 321, 567, 338, 133, 525,
    525, 170, 26, 82, 228, 37, 219, 64, 385, 34, 1277, 1199, 63, 133, 222, 175, 151, 52, 52, 505, 251, 131, 362, 1278, 12, 467, 467, 134, 419, 38,
    70, 380, 88, 1279, 763, 5, 152, 178, 178, 240, 2, 146, 95, 314, 1108, 480, 180, 624, 49, 30, 1280, 62, 163, 5, 108, 757, 1281, 623, 15, 1282,
    381, 70, 189, 288, 63, 155, 405, 694, 462, 198, 422, 1281, 118, 40, 307, 53, 125, 126, 40, 50, 62, 450, 1283, 33, 54, 462, 798, 798, 60, 195,
    1284, 1234, 1002, 66, 264, 30, 271, 63, 382, 175, 302, 31, 26, 369, 1285, 54, 99, 21, 1117, 210, 38, 213, 577, 348, 1286, 285, 118, 51, 117, 30,
    175, 131, 87, 66, 393, 26, 62, 1287, 391, 142, 1288, 256, 199, 27, 1, 459, 111, 5, 26, 176, 54, 1289, 51, 299, 330, 360, 526, 56, 405, 355,
    362, 144, 12, 200, 270, 183, 83, 1290, 224, 49, 1291, 99, 508, 118, 52, 74, 1292, 39, 23, 348, 348, 326, 27, 74, 50, 237, 229, 1293, 406, 26,
    12, 92, 215, 56, 139, 1294, 63, 74, 64, 1295, 839, 51, 37, 281, 281, 796, 25, 193, 225, 330, 2, 222, 213, 119, 508, 50, 244, 1153, 131, 178,
    1296, 369, 124, 278, 54, 92, 179, 82, 69, 170, 380, 63, 1236, 583, 209, 163, 201, 407, 1297, 893, 188, 422, 2, 210, 52, 291, 37, 105, 232, 8,
    45, 398, 0, 164, 12, 422, 43, 254, 1298, 236, 170, 119, 406, 21, 50, 75, 769, 338, 318, 486, 45, 1299, 77, 111, 387, 583, 131, 1300, 120, 1301,
    364, 320, 452, 338, 53, 425, 56, 64, 112, 294, 1302, 2, 14, 132, 206, 106, 119, 502, 381, 238, 408, 780, 27, 155, 1091, 180, 385, 676, 69, 602,
    338, 52, 244, 196, 1303, 385, 332, 244, 129, 109, 248, 256, 1304, 280, 853, 193, 53, 889, 26, 330, 889, 124, 0, 206, 218, 112, 50, 711, 95, 583,
    153, 107, 1222, 147, 10, 601, 56, 270, 215, 1305, 1001, 36, 668, 10, 23, 1306, 1307, 338, 60, 25, 195, 146, 54, 196, 29, 254, 128, 45, 46, 1308,
    918, 280, 284, 77, 244, 5, 620, 1309, 1310, 44, 319, 1311, 275, 320, 140, 33, 5, 154, 63, 224, 460, 54, 124, 24, 330, 75, 1287, 264, 282, 271,
    873, 49, 511, 176, 14, 224, 87, 222, 52, 1, 125, 74, 331, 188, 932, 14, 1312, 180, 1313, 294, 62, 314, 218, 254, 289, 31, 291, 271, 617, 63,
    74, 577, 285, 314, 538, 296, 264, 289, 314, 0, 12, 196, 314, 0, 224, 284, 464, 2, 147, 1314, 261, 0, 14, 314, 180, 180, 794, 583, 51, 147,
    758, 14, 1315, 109, 188, 464, 1198, 65, 111, 146, 711, 747, 50, 419, 82, 99, 398, 50, 195, 396, 31, 492, 360, 222, 384, 393, 290, 31, 30, 1316,
    617, 299, 408, 326, 254, 59, 86, 219, 248, 261, 408, 1317, 5, 5, 408, 271, 410, 50, 361, 673, 15, 1318, 577, 178, 12, 618, 147, 147, 62, 40,
    78, 2, 74, 302, 8, 1319, 232, 301, 509, 14, 189, 1320, 8, 385, 299, 200, 54, 25, 1321, 1322, 1323, 21, 1260, 1277, 375, 163, 314, 243, 695, 30,
    213, 735, 29, 43, 129, 1324, 1325, 284, 48, 8, 341, 290, 431, 1259, 40, 147, 178, 619, 50, 16, 111, 290, 0, 119, 1326, 319, 314, 325, 314, 112,
    268, 366, 409, 27, 384, 362, 623, 201, 422, 1327, 708, 209, 65, 8, 2, 125, 317, 120, 1328, 53, 326, 64, 77, 419, 536, 118, 8, 256, 158, 1329,
    312, 95, 159, 74, 315, 254, 256, 601, 1330, 128, 8, 82, 158, 405, 645, 93, 70, 628, 126, 510, 35, 46, 1331, 301, 843, 284, 153, 63, 804, 56,
    39, 443, 35, 284, 124, 374, 96, 189, 105, 348, 949, 74, 1332, 1290, 63, 31, 196, 341, 290, 294, 230, 364, 81, 268, 327, 509, 14, 159, 62, 189,
    262, 63, 37, 402, 180, 6, 153, 222, 335, 224, 1298, 62, 30, 43, 142, 200, 949, 948, 289, 14, 339, 12, 36, 137, 5, 77, 12, 224, 619, 375,
    119, 535, 957, 619, 63, 16, 536, 53, 31, 636, 105, 24, 294, 441, 307, 374, 23, 77, 222, 319, 450, 1277, 1333, 112, 364, 201, 1334, 87, 1062, 360,
    2, 341, 284, 486, 103, 1335, 275, 33, 10, 10, 1215, 178, 583, 1336, 147, 31, 1337, 1338, 331, 193, 144, 37, 1150, 290, 131, 159, 33, 970, 290, 244,
    1150, 676, 178, 112, 63, 50, 1339, 1340, 105, 577, 1341, 348, 39, 64, 600, 12, 405, 944, 256, 133, 133, 77, 224, 77, 818, 157, 301, 355, 1222, 256,
    1342, 232, 1150, 2, 961, 48, 1343, 509, 137, 1344, 1259, 23, 449, 1345, 51, 1346, 1347, 189, 321, 43, 43, 33, 132, 120, 44, 50, 601, 601, 1348, 238,
    1348, 443, 105, 206, 172, 87, 418, 131, 26, 33, 275, 338, 95, 422, 131, 56, 1125, 195, 129, 147, 321, 77, 0, 224, 364, 199, 14, 44, 1314, 582,
    359, 1349, 1350, 99, 14, 53, 1351, 430, 1, 1352, 284, 200, 164, 361, 112, 46, 23, 335, 966, 232, 43, 341, 49, 273, 2, 96, 20, 54, 128, 240,
    12, 45, 112, 236, 711, 490, 1353, 601, 1354, 96, 1355, 93, 128, 282, 920, 0, 51, 218, 327, 112, 1234, 8, 33, 222, 199, 290, 290, 366, 119, 5,
    189, 12, 320, 82, 872, 146, 124, 74, 74, 383, 191, 1083, 372, 364, 769, 867, 120, 45, 50, 1356, 175, 133, 290, 327, 899, 264, 126, 0, 147, 1357,
    1291, 371, 230, 53, 30, 144, 224, 26, 63, 290, 411, 151, 348, 99, 405, 180, 262, 43, 1358, 422, 147, 1126, 601, 27, 175, 327, 163, 129, 224, 240,
    338, 290, 315, 53, 1359, 244, 290, 96, 1357, 99, 1360, 83, 51, 1290, 218, 383, 142, 62, 218, 33, 1, 290, 222, 12, 112, 1167, 290, 152, 44, 2,
    147, 421, 43, 136, 666, 147, 364, 142, 499, 314, 1361, 40, 1362, 330, 364, 24, 188, 200, 133, 66, 270, 88, 31, 320, 0, 139, 371, 81, 31, 53,
    222, 321, 509, 359, 105, 43, 290, 320, 47, 51, 364, 364, 79, 48, 81, 1363, 129, 31, 87, 31, 14, 163, 1364, 510, 221, 413, 348, 244, 244, 348,
    131, 1, 582, 18, 34, 1365, 99, 219, 45, 326, 326, 361, 144, 5, 38, 1366, 763, 1114, 419, 120, 2, 224, 527, 20, 412, 405, 31, 1367, 739, 108,
    137, 345, 1368, 103, 157, 221, 171, 63, 221, 221, 50, 536, 0, 104, 7, 91, 51, 384, 382, 56, 47, 99, 99, 1, 1369, 360, 54, 509, 424, 238,
    1370, 362, 362, 22, 144, 132, 321, 51, 65, 46, 50, 8, 112, 219, 301, 179, 62, 759, 364, 109, 231, 178, 107, 213, 406, 583, 144, 1371, 159, 129,
    74, 1372, 179, 268, 8, 50, 226, 510, 326, 412, 131, 1373, 7, 51, 1374, 91, 508, 1260, 348, 221, 172, 348, 839, 54, 142, 449, 23, 348, 0, 319,
    119, 953, 406, 77, 56, 238, 1375, 120, 109, 45, 109, 48, 106, 275, 452, 436, 178, 40, 219, 315, 62, 77, 33, 1376, 1377, 1378, 1379, 244, 77, 31,
    338, 735, 1380, 153, 1375, 390, 64, 31, 230, 338, 0, 583, 141, 54, 507, 265, 152, 44, 676, 254, 1381, 77, 331, 1110, 131, 1382, 56, 1383, 105, 24,
    40, 69, 367, 296, 515, 367, 171, 1384, 31, 31, 2, 655, 14, 396, 394, 20, 1385, 396, 299, 1386, 449, 1387, 468, 425, 899, 624, 195, 94, 38, 306,
    7, 348, 40, 1317, 360, 215, 301, 105, 147, 189, 290, 51, 1075, 673, 1388, 77, 1389, 758, 43, 31, 238, 238, 14, 408, 288, 50, 1390, 119, 367, 794,
    408, 583, 178, 382, 503, 142, 21, 96, 144, 406, 51, 39, 582, 399, 203, 62, 95, 243, 8, 29, 467, 198, 246, 319, 137, 321, 1391, 111, 1392, 99,
    77, 64, 77, 95, 195, 621, 515, 95, 380, 0, 321, 367, 268, 170, 222, 1393, 804, 64, 315, 228, 31, 536, 422, 515, 189, 262, 1150, 1394, 147, 1395,
    2, 619, 1062, 1396, 2, 132, 88, 269, 1397, 62, 2, 63, 335, 50, 422, 1398, 307, 953, 238, 341, 676, 6, 880, 725, 147, 77, 77, 77, 2, 244,
    219, 301, 351, 23, 170, 394, 31, 170, 1399, 251, 413, 157, 180, 655, 1366, 1143, 345, 14, 44, 1400, 449, 152, 142, 31, 170, 364, 408, 298, 2, 238,
    141, 52, 105, 290, 14, 2, 83, 364, 1401, 582, 361, 96, 77, 477, 1150, 1393, 348, 51, 99, 1, 503, 2, 99, 382, 348, 0, 236, 364, 292, 129,
    621, 170, 119, 17, 507, 1402, 195, 364, 262, 315, 878, 450, 203, 296, 230, 368, 335, 170, 369, 1403, 345, 53, 224, 88, 345, 1404, 77, 99, 375, 23,
    361, 666, 421, 364, 24, 88, 1405, 270, 54, 172, 222, 319, 364, 51, 364, 1, 880, 14, 1406, 382, 600, 91, 459, 27, 314, 158, 50, 0, 88, 88,
    56, 23, 47, 504, 23, 268, 253, 499, 835, 405, 337, 384, 722, 504, 536, 200, 536, 297, 177, 405, 137, 147, 261, 464, 337, 14, 65, 1407, 504, 1408,
    111, 337, 30, 30, 464, 36, 27, 763, 763, 567, 1409, 540, 995, 108, 206, 115, 486, 154, 393, 108, 396, 64, 31, 1410, 265, 26, 147, 175, 938, 35,
    299, 108, 153, 133, 213, 213, 284, 921, 77, 486, 448, 133, 64, 175, 77, 53, 53, 432, 12, 396, 1411, 285, 213, 294, 464, 54, 210, 291, 40, 297,
    384, 54, 839, 93, 77, 265, 281, 39, 317, 11, 50, 1268, 157, 132, 0, 37, 0, 53, 464, 406, 261, 1412, 111, 1413, 17, 50, 1414, 17, 213, 142,
    47, 142, 21, 12, 235, 45, 223, 205, 735, 221, 317, 30, 980, 1415, 237, 36, 74, 1416, 735, 95, 369, 763, 153, 369, 38, 108, 265, 20, 54, 1417,
    1418, 459, 7, 911, 62, 1, 264, 20, 176, 268, 30, 198, 83, 54, 49, 111, 250, 129, 199, 966, 913, 105, 1419, 382, 295, 170, 321, 1420, 315, 392,
    132, 1421, 464, 7, 8, 234, 91, 14, 818, 14, 189, 1422, 824, 280, 53, 7, 74, 1423, 452, 265, 63, 31, 288, 53, 338, 129, 52, 261, 264, 244,
    1424, 5, 176, 262, 74, 218, 406, 147, 536, 676, 31, 535, 269, 222, 140, 2, 63, 91, 1425, 366, 286, 247, 196, 406, 0, 281, 62, 269, 86, 50,
    40, 146, 314, 215, 51, 393, 50, 42, 1426, 673, 992, 460, 1427, 210, 237, 245, 1428, 30, 408, 227, 268, 818, 577, 209, 443, 314, 312, 317, 314, 136,
    14, 8, 320, 536, 2, 232, 126, 320, 341, 52, 37, 450, 10, 43, 335, 335, 451, 331, 1366, 88, 189, 189, 301, 701, 44, 178, 354, 1262, 345, 1429,
    244, 0, 157, 105, 35, 1430, 464, 348, 1431, 129, 99, 128, 129, 170, 199, 467, 163, 82, 366, 406, 1432, 1433, 392, 224, 128, 1426, 222, 666, 583, 460,
    281, 129, 5, 88, 360, 1434, 1435, 473, 224, 14, 256, 151, 21, 637, 90, 117, 47, 12, 131, 153, 42, 87, 34, 14, 5, 14, 1436, 317, 131, 64,
    56, 355, 39, 36, 1437, 467, 318, 421, 88, 1438, 88, 48, 1439, 408, 49, 567, 50, 583, 129, 536, 1, 136, 2, 1440, 69, 46, 56, 360, 77, 111,
    191, 198, 210, 449, 508, 191, 384, 394, 299, 180, 1441, 1442, 210, 355, 321, 422, 189, 232, 232, 88, 66, 375, 119, 105, 147, 53, 221, 129, 179, 228,
    31, 159, 144, 178, 281, 256, 51, 240, 1443, 170, 203, 92, 78, 268, 7, 107, 86, 381, 178, 177, 155, 206, 359, 0, 1045, 419, 248, 239, 747, 64,
    64, 27, 251, 408, 265, 109, 129, 93, 338, 810, 31, 21, 360, 452, 53, 159, 56, 422, 36, 77, 1, 53, 119, 112, 325, 0, 40, 48, 46, 1444,
    302, 1445, 355, 14, 54, 624, 218, 355, 1446, 503, 271, 93, 1447, 1448, 27, 62, 5, 248, 676, 140, 5, 183, 48, 224, 24, 1449, 31, 156, 265, 44,
    240, 20, 600, 536, 45, 240, 66, 119, 367, 464, 39, 1045, 14, 393, 408, 294, 360, 193, 215, 136, 794, 355, 147, 50, 734, 583, 99, 42, 147, 18,
    1436, 112, 213, 7, 306, 314, 36, 460, 62, 290, 14, 301, 505, 601, 422, 8, 315, 325, 268, 419, 64, 232, 119, 290, 317, 124, 422, 319, 53, 452,
    86, 271, 1209, 429, 88, 382, 268, 158, 327, 1450, 140, 676, 18, 24, 119, 2, 331, 24, 390, 53, 52, 1451, 21, 360, 335, 112, 141, 10, 74, 1452,
    290, 50, 224, 64, 413, 159, 725, 170, 188, 359, 44, 345, 1453, 256, 301, 86, 120, 52, 142, 119, 422, 12, 348, 52, 158, 189, 361, 188, 582, 359,
    105, 1449, 509, 164, 583, 601, 96, 271, 93, 14, 119, 1454, 1455, 33, 419, 487, 364, 77, 1456, 360, 734, 146, 16, 330, 464, 53, 63, 794, 53, 371,
    367, 193, 86, 96, 431, 375, 224, 53, 371, 364, 290, 1457, 78, 1458, 270, 272, 371, 1459, 399, 111, 504, 662, 62, 1460, 339, 177, 666, 53, 201, 0,
    78, 0, 177, 618, 154, 49, 628, 307, 0, 0, 0, 62, 1, 2, 69, 191, 0, 280, 140, 219, 0, 359, 366, 13, 694, 69, 297, 179, 232, 0,
    191, 290, 5, 129, 619, 153, 307, 366, 18, 183, 44, 725, 64, 20, 49, 628, 290, 31, 87, 136, 180, 271, 271, 338, 140, 299, 289, 180, 43, 43,
    505, 299, 256, 180, 200, 885, 224, 56, 200, 183, 40, 199, 271, 30, 210, 180, 1461, 46, 56, 243, 46, 69, 920, 443, 0, 213, 326, 837, 189, 189,
    34, 170, 422, 140, 108, 95, 142, 56, 425, 271, 39, 39, 213, 50, 304, 0, 108, 0, 405, 37, 201, 1462, 243, 422, 285, 232, 645, 108, 108, 1463,
    271, 16, 189, 104, 1464, 682, 5, 682, 1465, 0, 1465, 443, 1466, 14, 108, 251, 2, 422, 196, 0, 17, 443, 359, 694, 12, 48, 37, 27, 140, 1467,
    330, 12, 235, 422, 0, 673, 44, 37, 37, 17, 20, 504, 504, 1468, 278, 49, 33, 33, 724, 2, 22, 59, 90, 189, 39, 345, 396, 35, 34, 179,
    7, 321, 178, 1469, 53, 144, 624, 30, 47, 39, 526, 5, 36, 331, 189, 2, 53, 269, 337, 40, 51, 459, 20, 87, 384, 191, 83, 63, 963, 232,
    1470, 63, 374, 54, 12, 264, 54, 321, 210, 360, 65, 22, 1190, 91, 200, 52, 213, 1471, 132, 2, 39, 1472, 348, 1473, 144, 219, 63, 913, 36, 408,
    387, 52, 244, 132, 385, 486, 20, 244, 1474, 120, 53, 63, 429, 113, 64, 288, 206, 392, 583, 129, 2, 1475, 10, 270, 509, 264, 317, 1476, 219, 12,
    187, 1477, 219, 189, 517, 355, 175, 383, 384, 50, 14, 331, 36, 51, 247, 49, 180, 38, 1255, 14, 237, 40, 431, 144, 624, 385, 14, 535, 419, 583,
    250, 210, 74, 2, 619, 708, 88, 219, 77, 270, 2, 419, 12, 337, 177, 1478, 422, 1479, 392, 1469, 1480, 104, 423, 509, 10, 262, 180, 247, 281, 2,
    269, 17, 10, 287, 312, 601, 477, 156, 619, 619, 450, 240, 74, 290, 301, 56, 345, 375, 71, 422, 206, 129, 264, 49, 74, 195, 158, 177, 129, 270,
    944, 236, 14, 50, 2, 200, 20, 330, 53, 33, 49, 1481, 46, 1481, 1089, 423, 12, 219, 144, 360, 39, 91, 0, 53, 163, 1089, 0, 46, 360, 290,
    74, 188, 200, 509, 46, 281, 81, 81, 111, 0, 86, 47, 0, 413, 1076, 208, 208, 417, 1482, 582, 582, 393, 686, 600, 39, 301, 86, 191, 1, 451,
    450, 12, 105, 275, 451, 158, 248, 320, 338, 189, 48, 17, 133, 77, 158, 1483, 320, 301, 320, 118, 331, 320, 244, 23, 508, 320, 105, 158, 215, 301,
    1094, 339, 195, 105, 20, 87, 459, 179, 251, 21, 418, 477, 65, 175, 251, 251, 179, 65, 175, 1484, 464, 355, 5, 290, 14, 265, 382, 38, 618, 195,
    290, 195, 2, 111, 48, 195, 850, 302, 31, 147, 195, 14, 94, 142, 1141, 272, 405, 56, 21, 73, 272, 224, 302, 366, 53, 119, 178, 147, 405, 270,
    223, 224, 178, 660, 359, 223, 175, 53, 108, 90, 87, 178, 486, 1485, 63, 5, 314, 1486, 78, 157, 171, 77, 405, 40, 157, 355, 209, 1418, 8, 1487,
    15, 405, 154, 617, 49, 408, 1488, 216, 129, 402, 8, 144, 91, 268, 180, 163, 104, 232, 369, 1042, 180, 1002, 299, 408, 1358, 51, 232, 232, 15, 8,
    314, 1489, 176, 284, 284, 137, 65, 360, 1490, 1491, 375, 96, 132, 222, 1159, 153, 1492, 209, 1493, 219, 369, 280, 225, 232, 214, 144, 31, 446, 38, 450,
    1494, 91, 408, 325, 1495, 338, 583, 153, 27, 1496, 280, 248, 341, 129, 77, 676, 218, 147, 321, 271, 1497, 48, 404, 8, 367, 406, 36, 52, 91, 53,
    218, 633, 280, 889, 96, 464, 20, 20, 108, 254, 176, 224, 1498, 39, 286, 179, 14, 254, 317, 7, 215, 348, 949, 326, 294, 147, 408, 464, 237, 360,
    271, 94, 451, 505, 393, 178, 66, 146, 617, 17, 311, 222, 628, 1499, 359, 1500, 384, 312, 7, 1501, 450, 209, 341, 152, 118, 10, 2, 1502, 402, 450,
    523, 24, 619, 219, 341, 339, 27, 86, 366, 1274, 523, 55, 77, 71, 120, 51, 413, 180, 523, 345, 172, 1091, 216, 23, 940, 132, 1503, 44, 311, 1091,
    23, 158, 348, 302, 147, 175, 382, 905, 408, 17, 708, 199, 170, 268, 1504, 366, 15, 567, 15, 330, 1505, 88, 360, 15, 163, 224, 366, 375, 1506, 341,
    1507, 93, 319, 216, 51, 393, 119, 1508, 1509, 759, 118, 88, 8, 2, 180, 63, 237, 180, 290, 54, 179, 105, 429, 306, 158, 105, 725, 421, 47, 1510,
    90, 1511, 12, 284, 87, 64, 75, 1512, 1513, 77, 142, 369, 359, 317, 288, 49, 88, 53, 56, 355, 248, 178, 103, 63, 1514, 216, 39, 1515, 248, 36,
    20, 75, 31, 96, 18, 172, 157, 201, 31, 119, 40, 66, 450, 65, 1442, 14, 1516, 60, 60, 153, 287, 232, 248, 56, 108, 51, 431, 467, 173, 69,
    275, 1, 459, 117, 508, 1517, 508, 180, 462, 158, 53, 375, 132, 200, 53, 369, 93, 448, 213, 51, 1518, 86, 248, 460, 407, 224, 944, 158, 1519, 1520,
    215, 31, 25, 1287, 77, 206, 131, 759, 7, 71, 348, 1521, 71, 12, 448, 244, 1522, 43, 452, 131, 14, 244, 7, 1523, 1524, 1525, 172, 172, 146, 422,
    290, 486, 477, 31, 288, 676, 1526, 0, 0, 224, 1527, 147, 1528, 282, 45, 448, 275, 31, 694, 279, 27, 5, 1150, 289, 44, 251, 1529, 90, 355, 156,
    1223, 195, 389, 158, 96, 1530, 404, 265, 74, 383, 64, 5, 125, 48, 46, 1531, 265, 5, 624, 734, 31, 504, 90, 179, 60, 39, 290, 467, 384, 189,
    50, 759, 1532, 306, 7, 359, 747, 460, 275, 147, 153, 509, 227, 271, 5, 157, 40, 360, 477, 720, 317, 228, 468, 1533, 248, 191, 422, 1534, 319, 1408,
    1535, 20, 1536, 32, 330, 429, 271, 1537, 77, 112, 405, 1521, 95, 1054, 75, 384, 431, 18, 268, 949, 18, 43, 5, 1069, 275, 422, 224, 216, 337, 624,
    74, 330, 262, 5, 450, 5, 331, 269, 289, 668, 125, 12, 321, 206, 188, 725, 413, 147, 77, 44, 90, 46, 301, 1529, 1538, 71, 153, 53, 147, 105,
    77, 10, 71, 157, 147, 14, 694, 1539, 1540, 118, 330, 39, 93, 23, 1541, 359, 2, 37, 20, 20, 0, 567, 5, 58, 384, 147, 14, 734, 366, 459,
    191, 111, 144, 317, 1082, 1542, 369, 330, 330, 63, 53, 1094, 142, 477, 459, 290, 53, 375, 375, 450, 111, 499, 270, 364, 1082, 31, 8, 8, 53, 122,
    196, 421, 26, 5, 128, 317, 99, 268, 129, 1543, 5, 63, 1544, 383, 610, 115, 2, 8, 30, 63, 214, 56, 56, 222, 253, 63, 1474, 408, 192, 188,
    62, 51, 180, 96, 191, 235, 222, 230, 14, 78, 64, 214, 339, 51, 86, 7, 63, 1545, 451, 232, 451, 1546, 119, 180, 16, 676, 153, 272, 163, 124,
    5, 175, 270, 487, 1, 224, 22, 119, 272, 63, 224, 358, 189, 75, 348, 30, 77, 74, 284, 163, 232, 56, 314, 64, 129, 1547, 1086, 2, 408, 26,
    153, 265, 45, 232, 200, 12, 451, 319, 26, 317, 128, 56, 360, 5, 14, 77, 12, 26, 358, 49, 86, 96, 53, 236, 1234, 272, 53, 666, 421, 1086,
    371, 330, 794, 14, 14, 53, 99, 240, 195, 385, 159, 26, 115, 385, 284, 1548, 87, 766, 129, 22, 468, 21, 21, 610, 152, 1549, 95, 384, 617, 63,
    52, 189, 63, 14, 1286, 250, 177, 20, 176, 53, 30, 253, 20, 111, 1, 450, 1550, 468, 240, 144, 192, 63, 63, 33, 54, 284, 163, 12, 1550, 132,
    484, 1336, 205, 74, 284, 63, 39, 115, 464, 2, 51, 348, 236, 834, 77, 451, 452, 56, 1551, 889, 230, 676, 87, 52, 193, 27, 1450, 449, 889, 36,
    125, 224, 175, 192, 115, 409, 318, 208, 390, 63, 63, 676, 283, 275, 384, 1481, 17, 1552, 14, 256, 682, 78, 2, 77, 467, 12, 56, 517, 328, 39,
    38, 269, 178, 1550, 272, 419, 1553, 1554, 14, 12, 178, 232, 63, 272, 210, 390, 1206, 451, 1526, 315, 96, 0, 12, 103, 108, 321, 1555, 1086, 12, 1556,
    256, 12, 290, 419, 21, 601, 0, 2, 301, 417, 12, 96, 244, 120, 105, 45, 293, 0, 230, 96, 236, 601, 348, 666, 328, 14, 567, 1456, 246, 419,
    27, 1083, 369, 230, 1557, 601, 666, 45, 53, 1090, 83, 1558, 34, 367, 77, 367, 279, 14, 180, 52, 268, 42, 409, 385, 206, 417, 287, 268, 467, 203,
    268, 22, 201, 1559, 1560, 71, 156, 64, 773, 268, 63, 337, 268, 214, 105, 337, 238, 244, 27, 402, 880, 146, 49, 250, 384, 45, 178, 256, 270, 94,
    387, 45, 1344, 146, 201, 36, 14, 1561, 367, 268, 268, 214, 137, 14, 271, 156, 1561, 345, 77, 64, 94, 337, 1562, 828, 828, 375, 27, 331, 345, 86,
    880, 71, 367, 411, 582, 375, 417, 53, 93, 8, 56, 133, 93, 131, 5, 320, 299, 152, 33, 617, 1563, 302, 51, 1, 1564, 22, 52, 52, 10, 208,
    26, 251, 131, 132, 282, 1565, 156, 2, 33, 52, 188, 39, 69, 306, 53, 18, 842, 413, 418, 607, 52, 216, 52, 51, 51, 1566, 275, 14, 219, 87,
    486, 51, 0, 464, 12, 105, 47, 1474, 12, 240, 382, 818, 36, 694, 314, 62, 1108, 244, 1567, 517, 189, 147, 2, 25, 321, 299, 1568, 153, 51, 84,
    219, 175, 53, 417, 355, 203, 214, 26, 56, 1569, 285, 66, 104, 284, 153, 1, 1570, 173, 1571, 198, 142, 210, 87, 142, 8, 393, 508, 0, 147, 367,
    375, 0, 467, 281, 86, 188, 219, 74, 268, 129, 189, 367, 899, 413, 105, 119, 213, 818, 82, 66, 369, 51, 132, 12, 104, 1108, 398, 38, 402, 218,
    189, 1119, 359, 91, 398, 56, 1572, 385, 600, 53, 452, 54, 270, 147, 338, 1525, 7, 63, 27, 1474, 8, 51, 192, 244, 449, 109, 1573, 31, 451, 234,
    87, 17, 369, 396, 95, 307, 133, 244, 147, 1574, 218, 749, 1183, 189, 517, 35, 1334, 1575, 14, 147, 1576, 175, 266, 91, 289, 1577, 179, 224, 111, 12,
    44, 1474, 1578, 56, 65, 175, 279, 133, 133, 251, 274, 270, 741, 398, 253, 111, 118, 417, 60, 281, 49, 244, 296, 147, 360, 467, 818, 78, 129, 69,
    232, 215, 62, 976, 51, 421, 294, 230, 64, 25, 1579, 12, 39, 301, 215, 408, 142, 1580, 18, 297, 40, 51, 131, 417, 237, 21, 617, 133, 175, 94,
    0, 619, 95, 195, 319, 421, 17, 451, 264, 296, 91, 198, 602, 133, 244, 880, 1581, 1582, 464, 53, 189, 45, 93, 1119, 219, 51, 126, 375, 364, 147,
    13, 53, 348, 189, 1583, 24, 31, 275, 1584, 1585, 20, 339, 387, 14, 510, 441, 118, 1119, 1586, 2, 62, 43, 402, 247, 69, 582, 12, 86, 256, 619,
    1463, 224, 468, 1587, 880, 0, 325, 117, 306, 0, 244, 111, 222, 1588, 298, 345, 49, 46, 56, 147, 355, 94, 136, 105, 413, 301, 1589, 206, 371, 244,
    224, 8, 371, 0, 261, 0, 261, 87, 54, 224, 224, 31, 111, 359, 357, 987, 198, 133, 112, 13, 179, 218, 0, 364, 94, 14, 421, 320, 232, 362,
    193, 602, 1233, 12, 0, 0, 374, 18, 179, 1590, 1591, 179, 0, 45, 374, 224, 224, 147, 60, 290, 14, 218, 375, 0, 112, 364, 133, 421, 38, 188,
    112, 467, 306, 445, 53, 1592, 281, 290, 421, 45, 14, 222, 153, 142, 180, 75, 180, 757, 195, 330, 129, 284, 176, 418, 0, 0, 0, 517, 177, 64,
    1593, 1594, 794, 152, 189, 331, 0, 75, 222, 0, 0, 47, 53, 87, 54, 508, 450, 247, 1595, 179, 1216, 256, 214, 53, 77, 256, 131, 132, 391, 1003,
    421, 1596, 44, 735, 208, 206, 152, 0, 188, 0, 29, 129, 56, 29, 361, 52, 53, 421, 224, 54, 5, 331, 208, 10, 44, 269, 52, 1597, 0, 497,
    11, 319, 467, 794, 15, 237, 178, 269, 62, 147, 371, 191, 53, 99, 56, 328, 265, 0, 159, 451, 319, 21, 210, 636, 735, 319, 1598, 497, 152, 582,
    103, 37, 450, 11, 11, 328, 542, 29, 37, 234, 111, 583, 33, 12, 129, 328, 673, 602, 53, 192, 153, 602, 214, 364, 1599, 105, 34, 719, 228, 91,
    34, 30, 12, 227, 179, 170, 1600, 492, 14, 205, 48, 115, 419, 419, 21, 84, 284, 0, 763, 1601, 295, 33, 1324, 20, 232, 288, 131, 63, 12, 152,
    95, 115, 49, 119, 256, 1602, 325, 331, 34, 977, 47, 119, 56, 63, 5, 284, 17, 131, 977, 330, 77, 56, 99, 180, 1603, 51, 188, 1, 51, 449,
    87, 144, 1571, 60, 232, 136, 93, 8, 38, 1604, 181, 238, 177, 188, 450, 33, 487, 369, 52, 115, 1108, 1153, 295, 51, 17, 1605, 1606, 88, 369, 62,
    191, 1607, 425, 124, 1319, 250, 105, 213, 1608, 1373, 1609, 1610, 129, 56, 1611, 226, 315, 1612, 74, 330, 99, 280, 178, 217, 504, 132, 26, 37, 78, 0,
    88, 63, 147, 280, 1255, 1613, 232, 230, 27, 21, 33, 318, 132, 244, 583, 1614, 1615, 159, 193, 1616, 99, 131, 77, 56, 109, 96, 383, 676, 56, 52,
    62, 63, 858, 238, 40, 12, 0, 0, 1617, 1618, 113, 878, 1619, 29, 1233, 213, 1620, 5, 5, 409, 5, 48, 1621, 129, 392, 50, 1622, 124, 48, 396,
    151, 183, 1623, 286, 535, 165, 1624, 422, 5, 302, 189, 1625, 1, 15, 5, 417, 1626, 269, 1627, 749, 77, 284, 215, 29, 119, 264, 505, 355, 14, 269,
    142, 1619, 178, 290, 6, 0, 178, 78, 147, 384, 129, 734, 15, 390, 306, 610, 153, 1628, 1629, 314, 99, 203, 26, 21, 467, 583, 425, 1150, 15, 50,
    56, 50, 1630, 198, 617, 99, 112, 269, 245, 1631, 74, 193, 399, 63, 1203, 27, 43, 136, 306, 314, 269, 178, 299, 0, 425, 0, 290, 119, 2, 694,
    176, 318, 620, 405, 179, 147, 869, 213, 499, 1203, 7, 1632, 719, 315, 124, 56, 95, 1164, 451, 82, 62, 1633, 374, 1604, 256, 232, 269, 124, 0, 286,
    189, 40, 247, 53, 1634, 1260, 77, 269, 330, 1635, 133, 341, 63, 230, 1219, 339, 112, 222, 360, 269, 12, 1636, 1396, 1637, 230, 183, 2, 708, 1638, 1639,
    536, 254, 129, 77, 269, 0, 394, 360, 96, 457, 725, 192, 63, 321, 11, 44, 1509, 142, 345, 1625, 344, 147, 774, 43, 505, 159, 348, 443, 445, 77,
    536, 0, 104, 299, 1173, 719, 601, 147, 37, 583, 1640, 24, 1319, 105, 189, 1641, 2, 0, 96, 976, 1642, 1643, 12, 327, 133, 364, 120, 170, 445, 5,
    275, 268, 450, 330, 99, 445, 369, 30, 178, 330, 1091, 43, 105, 224, 43, 290, 1644, 376, 1091, 487, 445, 281, 1507, 272, 364, 330, 112, 105, 34, 14,
    492, 179, 168, 205, 1600, 12, 48, 369, 12, 115, 50, 95, 131, 294, 20, 288, 396, 84, 115, 269, 1624, 152, 63, 419, 154, 51, 232, 763, 33, 129,
    87, 99, 56, 112, 253, 180, 77, 63, 38, 179, 177, 56, 93, 449, 2, 52, 136, 318, 315, 39, 250, 774, 504, 1108, 348, 1611, 1609, 37, 1373, 88,
    105, 132, 425, 244, 280, 159, 77, 96, 124, 12, 193, 12, 178, 1, 290, 178, 5, 264, 1625, 6, 949, 299, 50, 15, 392, 183, 17, 124, 422, 213,
    1617, 302, 48, 1619, 1623, 284, 384, 78, 147, 15, 364, 193, 617, 390, 1203, 348, 26, 113, 306, 245, 129, 198, 694, 583, 153, 230, 467, 1628, 314, 119,
    56, 82, 232, 40, 1632, 451, 43, 53, 2, 147, 327, 339, 341, 330, 290, 1634, 1638, 708, 99, 345, 321, 725, 37, 133, 1640, 583, 105, 445, 1601, 99,
    396, 1601, 477, 1601, 0, 111, 69, 78, 156, 396, 290, 290, 289, 7, 270, 344, 509, 27, 5, 628, 290, 330, 509, 224, 270, 151, 26, 1645, 151, 338,
    151, 281, 56, 180, 66, 175, 51, 54, 393, 175, 355, 396, 1646, 399, 1647, 280, 56, 180, 31, 382, 487, 1648, 45, 14, 63, 223, 66, 364, 33, 26,
    20, 317, 422, 1646, 66, 53, 137, 50, 189, 12, 725, 381, 422, 12, 280, 222, 382, 281, 20, 12, 12, 81, 144, 222, 536, 104, 408, 1293, 30, 30,
    152, 47, 451, 144, 175, 1649, 722, 1650, 1, 515, 51, 153, 159, 536, 2, 129, 315, 677, 677, 536, 583, 325, 858, 2, 0, 1192, 168, 14, 425, 39,
    319, 314, 77, 142, 321, 152, 321, 112, 330, 425, 0, 536, 43, 14, 492, 2, 381, 628, 152, 131, 219, 219, 331, 56, 7, 285, 2, 431, 2, 517,
    1, 389, 63, 1651, 77, 99, 78, 77, 77, 384, 71, 348, 348, 1652, 288, 131, 37, 1653, 331, 264, 1654, 288, 219, 51, 147, 360, 219, 297, 269, 48,
    348, 237, 195, 1655, 338, 335, 339, 2, 112, 1656, 335, 44, 0, 71, 335, 142, 2, 348, 360, 272, 268, 206, 206, 839, 393, 75, 5, 198, 198, 198,
    504, 504, 92, 426, 714, 211, 59, 1657, 330, 109, 284, 425, 137, 320, 95, 979, 20, 1002, 26, 1658, 210, 54, 163, 93, 206, 125, 295, 319, 307, 619,
    0, 37, 70, 1659, 619, 12, 206, 163, 30, 450, 932, 92, 2, 90, 23, 104, 282, 240, 95, 219, 49, 49, 131, 425, 63, 0, 602, 49, 232, 172,
    1, 91, 30, 1660, 345, 375, 63, 199, 214, 1661, 36, 1662, 535, 178, 112, 320, 299, 406, 567, 52, 54, 189, 153, 535, 419, 178, 69, 24, 0, 0,
    109, 54, 24, 94, 112, 94, 24, 112, 628, 94, 112, 112, 24, 335, 299, 282, 109, 94, 602, 63, 49, 199, 417, 1663, 109, 109, 375, 14, 0, 382,
    26, 256, 2, 256, 26, 382, 382, 794, 2, 454, 12, 21, 590, 0, 1664, 1665, 583, 301, 219, 115, 244, 82, 179, 314, 464, 396, 315, 87, 227, 146,
    140, 175, 63, 338, 56, 264, 1128, 155, 739, 147, 154, 409, 30, 84, 850, 590, 394, 228, 1666, 419, 268, 5, 20, 133, 1667, 77, 264, 590, 52, 362,
    180, 38, 10, 99, 180, 50, 179, 504, 49, 1668, 47, 111, 188, 271, 265, 399, 362, 284, 1129, 63, 176, 1287, 391, 56, 1669, 232, 129, 192, 155, 210,
    299, 63, 203, 108, 188, 62, 384, 219, 74, 178, 144, 375, 25, 202, 224, 52, 173, 31, 70, 220, 2, 221, 106, 1670, 25, 1255, 105, 380, 380, 92,
    223, 107, 297, 1671, 284, 311, 915, 214, 63, 331, 408, 99, 331, 1672, 1673, 1673, 12, 1672, 672, 234, 139, 722, 5, 460, 222, 236, 81, 1674, 111, 419,
    48, 159, 667, 52, 30, 107, 429, 1675, 358, 109, 408, 294, 180, 580, 1676, 1130, 1677, 1678, 1679, 60, 459, 27, 1680, 1681, 387, 60, 805, 0, 20, 0,
    281, 53, 112, 138, 1396, 39, 252, 889, 20, 262, 125, 297, 1682, 1683, 1684, 49, 271, 395, 52, 0, 1685, 23, 1686, 1687, 180, 1623, 56, 56, 54, 264,
    536, 48, 25, 20, 1197, 269, 90, 146, 408, 1688, 1280, 219, 410, 281, 307, 153, 223, 215, 460, 33, 1001, 243, 95, 38, 794, 248, 357, 1689, 268, 147,
    50, 667, 14, 210, 306, 189, 140, 56, 129, 176, 15, 201, 374, 246, 1408, 168, 230, 201, 392, 319, 256, 694, 35, 2, 111, 345, 12, 20, 99, 451,
    230, 327, 307, 140, 1690, 1197, 70, 1044, 262, 37, 1454, 319, 450, 77, 166, 224, 105, 290, 310, 63, 0, 418, 44, 1132, 275, 176, 1044, 345, 331, 311,
    244, 1691, 1465, 63, 105, 321, 893, 331, 74, 78, 1692, 152, 290, 321, 987, 49, 234, 236, 516, 112, 1693, 200, 1694, 93, 2, 280, 1695, 112, 708, 516,
    175, 5, 331, 327, 170, 1696, 1147, 0, 129, 262, 215, 676, 431, 31, 224, 163, 462, 281, 188, 722, 81, 1697, 462, 624, 168, 146, 1698, 722, 44, 1698,
    284, 105, 602, 1699, 12, 451, 1699, 1407, 602, 63, 63, 35, 147, 1159, 1700, 159, 362, 232, 34, 129, 14, 227, 268, 14, 381, 1530, 77, 34, 14, 14,
    215, 54, 34, 1701, 196, 196, 196, 34, 8, 1702, 33, 8, 271, 509, 120, 0, 270, 1703, 271, 42, 523, 7, 64, 179, 272, 42, 321, 2, 142, 600,
    362, 142, 177, 1704, 1108, 154, 1705, 189, 224, 38, 147, 126, 1, 51, 118, 798, 111, 129, 35, 42, 7, 224, 1706, 739, 77, 220, 56, 582, 40, 53,
    449, 14, 452, 109, 14, 50, 111, 366, 1707, 54, 301, 392, 269, 467, 1219, 504, 272, 318, 227, 2, 312, 126, 636, 619, 136, 0, 943, 381, 413, 359,
    536, 224, 2, 12, 147, 1708, 366, 5, 224, 224, 43, 499, 97, 29, 147, 147, 1709, 31, 56, 69, 31, 31, 636, 636, 2, 1710, 920, 105, 58, 59,
    214, 105, 39, 275, 48, 2, 227, 15, 222, 87, 133, 14, 14, 449, 380, 464, 585, 5, 486, 284, 348, 96, 63, 78, 20, 56, 1711, 50, 64, 63,
    5, 321, 419, 133, 115, 1712, 402, 1713, 224, 1714, 12, 240, 5, 1715, 152, 47, 505, 171, 12, 443, 443, 154, 64, 88, 198, 63, 95, 240, 335, 1716,
    393, 36, 1571, 122, 1108, 24, 1717, 30, 467, 2, 0, 50, 53, 20, 248, 129, 140, 126, 51, 256, 747, 314, 394, 1, 362, 1718, 153, 617, 289, 1719,
    200, 384, 108, 265, 203, 198, 355, 2, 2, 905, 55, 1720, 250, 1721, 176, 1722, 22, 321, 159, 268, 129, 285, 131, 290, 65, 25, 54, 504, 602, 87,
    62, 69, 408, 56, 1723, 1724, 553, 50, 888, 45, 393, 142, 1725, 393, 393, 47, 391, 450, 284, 63, 219, 12, 52, 375, 24, 805, 314, 83, 290, 367,
    1519, 209, 53, 315, 74, 97, 1726, 1727, 624, 14, 1728, 284, 406, 64, 1729, 86, 191, 147, 191, 198, 221, 486, 227, 105, 1730, 56, 14, 51, 391, 37,
    348, 74, 227, 1731, 315, 82, 381, 1732, 132, 38, 133, 51, 170, 583, 56, 213, 16, 623, 52, 215, 42, 636, 52, 92, 223, 71, 1733, 115, 147, 1170,
    301, 69, 53, 787, 1734, 33, 0, 104, 210, 1735, 189, 398, 71, 348, 1736, 359, 284, 315, 1377, 804, 281, 290, 1737, 119, 818, 74, 80, 131, 179, 268,
    464, 50, 53, 387, 56, 115, 74, 195, 189, 701, 95, 153, 385, 96, 96, 27, 1738, 64, 423, 77, 425, 53, 120, 51, 450, 53, 735, 192, 60, 21,
    1012, 325, 624, 1062, 54, 408, 1739, 215, 52, 172, 1740, 251, 31, 109, 30, 429, 788, 338, 30, 429, 210, 151, 1741, 763, 1742, 129, 252, 1743, 248, 450,
    1674, 39, 243, 108, 216, 218, 112, 8, 146, 385, 129, 163, 30, 290, 290, 0, 294, 486, 486, 191, 1744, 52, 153, 188, 25, 147, 1745, 175, 431, 224,
    54, 50, 251, 1746, 676, 195, 0, 127, 451, 535, 56, 125, 140, 17, 282, 527, 302, 141, 286, 47, 53, 385, 111, 338, 203, 240, 280, 77, 240, 153,
    1747, 120, 359, 119, 998, 1748, 425, 443, 175, 1, 264, 240, 796, 151, 183, 179, 31, 1442, 147, 44, 509, 33, 271, 272, 62, 5, 195, 331, 124, 294,
    189, 140, 583, 264, 218, 5, 366, 69, 50, 49, 288, 583, 1749, 2, 1718, 1736, 270, 398, 59, 0, 1750, 34, 887, 281, 189, 2, 405, 111, 459, 90,
    290, 290, 290, 244, 139, 21, 384, 78, 48, 353, 14, 1751, 112, 360, 360, 243, 398, 146, 294, 1742, 14, 467, 1263, 223, 248, 1752, 290, 1336, 899, 37,
    781, 192, 192, 1442, 203, 794, 77, 23, 796, 188, 147, 56, 230, 147, 1353, 40, 131, 131, 237, 31, 385, 1753, 284, 78, 1187, 35, 407, 372, 222, 301,
    180, 120, 16, 25, 179, 291, 50, 111, 50, 600, 12, 62, 722, 210, 306, 268, 1754, 24, 213, 50, 1755, 94, 109, 1377, 77, 8, 5, 364, 269, 268,
    314, 408, 95, 33, 153, 18, 270, 0, 83, 43, 412, 94, 0, 37, 619, 1756, 261, 200, 312, 74, 8, 294, 8, 95, 232, 452, 1007, 366, 53, 477,
    1474, 609, 53, 54, 77, 1408, 93, 249, 385, 422, 1708, 46, 133, 1442, 508, 429, 314, 93, 14, 234, 405, 120, 120, 84, 759, 77, 152, 95, 91, 147,
    12, 296, 126, 631, 222, 320, 818, 232, 1757, 312, 178, 422, 77, 175, 452, 315, 628, 1141, 429, 8, 319, 281, 82, 325, 360, 265, 1758, 86, 189, 269,
    949, 0, 214, 398, 0, 364, 49, 12, 53, 180, 452, 14, 1, 290, 450, 1759, 1760, 393, 132, 1761, 275, 223, 112, 1150, 77, 69, 1762, 119, 1763, 39,
    50, 246, 636, 14, 2, 54, 340, 189, 224, 178, 13, 10, 330, 456, 341, 31, 1, 719, 1764, 949, 338, 153, 256, 1765, 196, 6, 153, 510, 254, 1214,
    111, 1766, 1767, 75, 180, 360, 503, 62, 335, 222, 310, 247, 38, 286, 577, 37, 222, 675, 805, 348, 1768, 74, 1242, 468, 33, 74, 535, 624, 62, 288,
    402, 133, 317, 463, 0, 536, 387, 1553, 44, 402, 158, 189, 53, 50, 12, 1737, 299, 142, 366, 307, 43, 46, 170, 655, 505, 505, 330, 14, 71, 1761,
    443, 147, 80, 95, 203, 30, 188, 224, 1735, 348, 248, 193, 264, 88, 487, 902, 82, 1769, 1770, 523, 505, 36, 178, 56, 88, 298, 64, 25, 26, 244,
    77, 1771, 1203, 449, 5, 147, 1203, 818, 1, 14, 7, 628, 12, 131, 26, 236, 330, 360, 1203, 14, 1772, 320, 1773, 320, 158, 50, 348, 348, 12, 391,
    78, 1774, 510, 2, 404, 37, 361, 180, 536, 112, 384, 314, 104, 1086, 319, 83, 189, 302, 818, 1553, 142, 90, 99, 175, 99, 816, 147, 1775, 131, 139,
    171, 170, 268, 208, 312, 33, 170, 383, 567, 1776, 199, 660, 1777, 82, 339, 362, 1736, 582, 624, 232, 92, 176, 290, 451, 24, 548, 5, 66, 147, 511,
    94, 295, 467, 906, 222, 364, 119, 463, 617, 367, 417, 129, 345, 307, 168, 256, 230, 2, 178, 99, 53, 2, 431, 330, 105, 153, 63, 265, 374, 1402,
    450, 583, 1557, 142, 312, 509, 246, 367, 71, 50, 422, 348, 307, 451, 1203, 203, 53, 816, 1761, 158, 44, 582, 360, 240, 218, 163, 1750, 647, 505, 505,
    390, 107, 224, 256, 246, 486, 1203, 1778, 14, 170, 12, 238, 360, 450, 21, 256, 238, 275, 602, 1603, 376, 2, 129, 14, 54, 1553, 1553, 74, 536, 290,
    375, 0, 443, 421, 1, 188, 268, 142, 408, 657, 1259, 364, 12, 298, 0, 330, 330, 1779, 1780, 63, 50, 94, 302, 932, 53, 12, 222, 330, 932, 281,
    12, 94, 224, 147, 0, 374, 330, 213, 244, 2, 81, 141, 423, 62, 62, 224, 1528, 230, 1534, 244, 133, 93, 62, 178, 429, 56, 178, 178, 224, 62,
    14, 320, 947, 54, 535, 203, 31, 302, 302, 94, 327, 77, 33, 381, 21, 1781, 12, 21, 1782, 8, 0, 88, 75, 196, 14, 134, 284, 1783, 348, 366,
    35, 96, 1784, 235, 8, 2, 317, 78, 1602, 248, 47, 219, 133, 419, 419, 505, 706, 20, 421, 421, 251, 5, 132, 74, 543, 361, 741, 322, 1785, 929,
    5, 38, 36, 320, 108, 151, 152, 152, 1108, 228, 582, 56, 394, 39, 56, 219, 387, 203, 129, 176, 1786, 21, 30, 65, 69, 219, 30, 384, 338, 54,
    53, 56, 394, 65, 1787, 20, 1788, 129, 51, 156, 423, 22, 175, 302, 188, 1789, 887, 1, 175, 49, 175, 0, 53, 27, 188, 225, 1519, 191, 348, 348,
    1523, 56, 144, 201, 406, 51, 2, 129, 899, 105, 53, 1790, 69, 278, 1791, 196, 2, 151, 450, 367, 176, 86, 367, 63, 341, 206, 75, 210, 460, 26,
    5, 215, 39, 21, 1742, 200, 210, 246, 172, 265, 1053, 338, 33, 360, 40, 180, 1196, 1681, 129, 75, 64, 56, 53, 252, 189, 93, 908, 30, 39, 49,
    31, 109, 46, 246, 348, 1025, 63, 282, 264, 54, 222, 5, 5, 14, 251, 1792, 366, 536, 1143, 77, 125, 53, 504, 214, 124, 676, 338, 338, 14, 318,
    264, 20, 50, 674, 2, 534, 0, 213, 133, 505, 176, 289, 50, 29, 535, 48, 25, 248, 177, 1793, 151, 361, 144, 290, 535, 43, 90, 431, 384, 295,
    99, 109, 393, 1794, 15, 14, 39, 8, 360, 301, 31, 467, 1795, 50, 56, 314, 408, 50, 56, 734, 99, 30, 1276, 864, 1784, 290, 8, 610, 319, 51,
    269, 917, 56, 314, 94, 366, 431, 1796, 62, 21, 504, 1507, 1025, 800, 1651, 243, 619, 294, 315, 0, 37, 246, 452, 70, 26, 77, 191, 1165, 314, 628,
    112, 312, 695, 315, 315, 12, 64, 159, 338, 240, 186, 517, 443, 319, 2, 464, 59, 513, 62, 1173, 317, 209, 2, 419, 290, 1797, 38, 126, 708, 0,
    341, 214, 6, 8, 636, 219, 1766, 335, 224, 50, 1159, 319, 624, 339, 905, 20, 14, 1798, 281, 619, 240, 38, 74, 37, 885, 419, 244, 1214, 75, 75,
    317, 317, 1799, 1800, 393, 77, 24, 53, 341, 244, 140, 10, 486, 78, 450, 487, 26, 21, 921, 63, 275, 275, 655, 188, 423, 345, 405, 86, 77, 12,
    18, 301, 1801, 1342, 88, 88, 348, 1344, 1802, 105, 321, 1803, 244, 1095, 610, 170, 26, 0, 27, 359, 53, 99, 1033, 2, 52, 104, 43, 390, 717, 78,
    196, 281, 240, 290, 235, 53, 974, 360, 112, 816, 118, 99, 486, 99, 5, 315, 147, 366, 320, 82, 163, 45, 39, 567, 195, 510, 142, 330, 39, 431,
    1628, 53, 294, 53, 21, 602, 224, 464, 244, 1761, 375, 53, 375, 40, 23, 20, 1804, 1805, 280, 290, 33, 77, 361, 188, 213, 464, 361, 341, 188, 39,
    816, 45, 1806, 301, 757, 155, 757, 171, 38, 80, 92, 1807, 510, 77, 1808, 31, 216, 314, 188, 1, 360, 33, 129, 226, 1809, 39, 129, 36, 62, 50,
    272, 381, 50, 272, 409, 107, 188, 2, 2, 13, 87, 14, 262, 227, 2, 321, 624, 56, 949, 1353, 1810, 39, 84, 38, 49, 2, 38, 38, 39, 1086,
    99, 394, 63, 115, 240, 119, 251, 314, 408, 235, 335, 805, 1811, 394, 210, 60, 1, 136, 424, 459, 268, 192, 189, 449, 509, 1171, 1266, 83, 159, 232,
    2, 600, 888, 153, 201, 56, 949, 63, 63, 394, 405, 2, 393, 60, 1812, 198, 360, 1813, 188, 265, 14, 77, 0, 111, 0, 56, 1814, 1733, 250, 115,
    37, 356, 1167, 1815, 39, 92, 35, 82, 51, 86, 74, 286, 406, 0, 0, 735, 359, 178, 676, 590, 805, 33, 210, 676, 27, 53, 280, 180, 432, 518,
    2, 14, 232, 422, 21, 677, 12, 2, 13, 735, 889, 288, 677, 53, 112, 112, 250, 147, 203, 43, 517, 676, 124, 314, 1, 219, 140, 363, 113, 262,
    29, 723, 155, 1816, 264, 1817, 281, 535, 796, 464, 1818, 63, 54, 923, 390, 535, 399, 590, 0, 193, 797, 56, 381, 99, 467, 504, 676, 1819, 1820, 159,
    195, 314, 203, 203, 56, 799, 673, 31, 1811, 265, 1761, 230, 0, 0, 1203, 128, 198, 104, 932, 315, 314, 82, 59, 238, 1821, 695, 1381, 219, 32, 805,
    290, 39, 133, 932, 250, 112, 364, 53, 75, 8, 230, 2, 504, 99, 129, 50, 262, 636, 12, 536, 1822, 1823, 78, 189, 1681, 147, 1635, 147, 1824, 12,
    351, 462, 648, 1825, 78, 1826, 423, 774, 147, 364, 335, 1827, 1173, 0, 96, 236, 351, 1828, 189, 119, 359, 1123, 1829, 189, 364, 1681, 82, 63, 0, 1123,
    201, 8, 533, 99, 111, 624, 218, 375, 77, 1830, 364, 75, 136, 54, 1090, 8, 147, 405, 2, 364, 36, 77, 77, 268, 1831, 1832, 56, 0, 56, 47,
    195, 12, 12, 1091, 270, 467, 31, 86, 667, 297, 393, 222, 222, 1833, 8, 26, 351, 232, 667, 222, 214, 112, 268, 63, 251, 77, 321, 50, 77, 271,
    14, 364, 248, 464, 110, 70, 12, 209, 290, 198, 188, 302, 119, 270, 413, 1834, 1835, 188, 147, 50, 667, 188, 281, 364, 180, 1836, 270, 1091, 270, 31,
    86, 222, 8, 43, 364, 667, 12, 77, 153, 271, 14, 198, 119, 188, 667, 21, 119, 1837, 88, 63, 137, 12, 175, 49, 1838, 724, 6, 1839, 213, 35,
    8, 1319, 86, 228, 93, 39, 254, 21, 215, 256, 176, 390, 224, 63, 65, 189, 215, 62, 6, 228, 63, 1840, 93, 1841, 2, 224, 88, 1841, 31, 1841,
    31, 31, 90, 56, 21, 21, 105, 131, 12, 142, 170, 156, 131, 982, 124, 178, 295, 1842, 115, 170, 74, 321, 5, 60, 12, 170, 74, 248, 1437, 36,
    268, 282, 180, 74, 1843, 88, 1844, 1492, 624, 30, 63, 380, 154, 171, 143, 196, 31, 139, 409, 1298, 2, 0, 256, 219, 195, 180, 195, 178, 232, 51,
    91, 198, 284, 284, 1845, 175, 56, 147, 504, 1, 747, 144, 53, 1846, 405, 179, 87, 2, 54, 268, 65, 798, 1847, 188, 382, 69, 189, 380, 1658, 764,
    104, 253, 124, 51, 191, 75, 200, 178, 170, 2, 301, 205, 8, 1848, 244, 8, 913, 1849, 1850, 86, 213, 348, 39, 443, 16, 78, 50, 180, 660, 226,
    222, 302, 209, 1851, 348, 31, 380, 399, 1852, 22, 811, 1002, 330, 51, 369, 220, 64, 14, 374, 12, 63, 115, 247, 452, 248, 369, 77, 8, 109, 49,
    265, 43, 30, 448, 71, 240, 426, 223, 14, 244, 27, 39, 129, 64, 64, 451, 282, 13, 348, 52, 1853, 232, 1853, 0, 0, 140, 1854, 39, 384, 188,
    24, 244, 96, 151, 129, 264, 453, 128, 2, 1855, 74, 811, 20, 45, 43, 624, 409, 12, 5, 509, 694, 50, 54, 289, 25, 91, 1570, 1856, 133, 45,
    29, 147, 1857, 1858, 125, 180, 262, 443, 297, 14, 1859, 178, 297, 592, 360, 8, 254, 1860, 248, 38, 747, 99, 56, 120, 109, 147, 5, 14, 284, 18,
    1861, 348, 74, 223, 129, 243, 624, 40, 51, 144, 31, 301, 360, 35, 328, 178, 225, 23, 50, 215, 374, 660, 321, 147, 1862, 94, 301, 163, 35, 290,
    1598, 244, 222, 1863, 536, 1164, 83, 1534, 256, 318, 219, 133, 8, 37, 314, 99, 621, 124, 268, 268, 224, 511, 1764, 24, 289, 53, 450, 450, 6, 75,
    1864, 147, 118, 1865, 112, 619, 1866, 307, 949, 1867, 1868, 335, 335, 119, 75, 1002, 1869, 37, 341, 643, 552, 1870, 351, 178, 725, 601, 77, 65, 383, 91,
    1074, 364, 248, 290, 88, 12, 344, 105, 111, 348, 18, 1110, 670, 65, 484, 71, 509, 670, 120, 299, 360, 582, 509, 359, 96, 129, 12, 105, 52, 1871,
    0, 2, 158, 302, 20, 348, 1779, 2, 2, 321, 666, 0, 133, 383, 128, 62, 660, 320, 58, 290, 147, 14, 147, 348, 411, 75, 280, 371, 330, 180,
    50, 43, 53, 1872, 467, 75, 31, 248, 17, 50, 17, 268, 43, 666, 74, 364, 1873, 99, 602, 583, 371, 2, 359, 0, 31, 464, 31, 12, 90, 56,
    115, 12, 39, 131, 124, 666, 321, 5, 60, 170, 2, 170, 12, 115, 37, 348, 307, 54, 36, 1492, 1298, 248, 125, 380, 282, 40, 196, 154, 88, 91,
    175, 195, 69, 253, 484, 380, 65, 256, 232, 153, 179, 191, 188, 382, 189, 2, 1847, 369, 330, 8, 399, 8, 39, 348, 27, 51, 180, 443, 49, 198,
    213, 86, 170, 2, 91, 16, 78, 227, 254, 178, 660, 39, 64, 14, 71, 64, 451, 30, 348, 369, 1853, 282, 77, 289, 51, 749, 328, 411, 45, 264,
    384, 50, 14, 1854, 180, 811, 43, 29, 409, 96, 509, 180, 2, 225, 624, 504, 301, 147, 99, 83, 23, 50, 248, 14, 360, 43, 284, 223, 31, 153,
    1598, 297, 178, 450, 359, 256, 99, 268, 318, 8, 133, 222, 119, 341, 75, 147, 1864, 509, 670, 71, 364, 120, 88, 31, 133, 302, 624, 1526, 133, 131,
    7, 12, 131, 338, 849, 719, 77, 767, 345, 134, 464, 375, 387, 37, 5, 219, 1874, 413, 48, 1875, 33, 129, 40, 63, 63, 31, 31, 8, 93, 348,
    516, 2, 516, 2, 147, 47, 237, 248, 93, 78, 583, 147, 1876, 16, 54, 56, 77, 1877, 320, 14, 51, 210, 152, 77, 1878, 419, 583, 327, 153, 269,
    152, 2, 63, 203, 235, 223, 20, 84, 20, 198, 1879, 30, 156, 450, 26, 159, 583, 1876, 1419, 1880, 450, 223, 393, 1881, 176, 189, 14, 210, 673, 393,
    20, 77, 2, 353, 450, 93, 509, 583, 88, 265, 232, 534, 56, 286, 228, 921, 2, 1108, 48, 567, 163, 142, 509, 788, 999, 63, 92, 51, 8, 189,
    284, 92, 86, 297, 1470, 80, 1786, 299, 369, 1571, 887, 2, 219, 393, 195, 1882, 224, 44, 348, 16, 297, 284, 638, 178, 974, 105, 16, 722, 147, 290,
    170, 232, 196, 327, 327, 21, 196, 42, 722, 179, 218, 371, 191, 624, 6, 271, 155, 425, 129, 80, 147, 96, 56, 273, 24, 24, 63, 12, 10, 464,
    119, 1883, 294, 95, 203, 326, 218, 40, 126, 12, 299, 58, 1585, 56, 198, 357, 118, 345, 2, 208, 624, 48, 63, 694, 262, 1884, 725, 49, 371, 31,
    120, 321, 48, 290, 119, 1581, 129, 722, 189, 464, 33, 31, 6, 360, 375, 1581, 722, 265, 232, 56, 534, 228, 286, 999, 129, 208, 10, 163, 63, 142,
    509, 567, 467, 198, 51, 270, 92, 147, 1882, 8, 887, 86, 369, 136, 393, 264, 195, 2, 974, 63, 638, 348, 284, 44, 224, 722, 284, 16, 119, 21,
    232, 218, 196, 56, 464, 12, 33, 6, 191, 189, 179, 425, 155, 273, 218, 40, 694, 56, 1585, 357, 118, 31, 371, 1884, 725, 321, 290, 87, 219, 77,
    196, 243, 1885, 77, 27, 195, 27, 75, 7, 319, 749, 749, 53, 34, 56, 382, 87, 5, 321, 367, 1886, 129, 284, 875, 240, 692, 191, 624, 1164, 939,
    19, 137, 153, 77, 302, 1694, 421, 188, 295, 1887, 93, 1888, 1889, 284, 214, 113, 406, 87, 325, 247, 77, 1890, 256, 74, 54, 147, 1891, 319, 1625, 1892,
    224, 188, 359, 1893, 284, 193, 1894, 219, 1236, 1895, 71, 105, 582, 1896, 92, 371, 371, 253, 600, 1773, 981, 384, 157, 875, 56, 624, 147, 912, 63, 128,
    421, 979, 5, 421, 536, 1897, 362, 2, 1898, 1, 408, 47, 504, 250, 60, 210, 191, 459, 407, 51, 905, 1899, 63, 56, 695, 905, 321, 111, 176, 54,
    1094, 97, 2, 12, 1900, 129, 105, 113, 1761, 213, 220, 1901, 86, 367, 94, 78, 1902, 224, 1903, 63, 148, 214, 286, 147, 104, 71, 189, 129, 113, 12,
    54, 12, 1904, 1905, 1837, 52, 602, 244, 13, 83, 729, 108, 33, 29, 200, 105, 17, 71, 225, 128, 147, 390, 584, 1906, 668, 39, 390, 602, 54, 602,
    125, 224, 404, 932, 54, 219, 1907, 213, 193, 111, 469, 417, 390, 1908, 269, 286, 269, 275, 63, 91, 1909, 63, 1910, 113, 157, 349, 200, 38, 692, 65,
    624, 1044, 147, 1911, 319, 54, 304, 253, 504, 297, 794, 328, 193, 616, 246, 147, 272, 429, 1165, 128, 536, 302, 46, 747, 12, 602, 405, 422, 1912, 189,
    381, 224, 345, 247, 319, 1913, 256, 77, 94, 12, 63, 536, 724, 405, 269, 112, 183, 582, 1914, 423, 246, 54, 413, 842, 129, 142, 93, 610, 1915, 111,
    1916, 247, 88, 88, 44, 0, 71, 655, 120, 345, 157, 880, 270, 582, 104, 189, 189, 51, 54, 93, 71, 157, 17, 12, 64, 1917, 468, 44, 406, 63,
    1918, 63, 43, 93, 306, 50, 375, 44, 129, 50, 445, 364, 99, 666, 1919, 602, 128, 188, 390, 880, 1920, 77, 94, 1921, 44, 180, 228, 49, 0, 188,
    193, 113, 113, 228, 452, 0, 281, 158, 12, 54, 319, 279, 206, 31, 0, 103, 188, 310, 206, 798, 63, 0, 193, 272, 0, 14, 167, 1922, 86, 251,
    50, 421, 1542, 136, 1604, 142, 115, 321, 369, 33, 516, 1923, 532, 248, 84, 5, 393, 734, 369, 133, 0, 0, 62, 1787, 369, 692, 1, 136, 335, 232,
    142, 369, 144, 275, 265, 175, 175, 459, 51, 1924, 248, 47, 179, 63, 1925, 384, 2, 289, 8, 69, 92, 228, 54, 105, 221, 224, 412, 213, 179, 326,
    63, 196, 29, 14, 449, 30, 1274, 1926, 75, 48, 56, 289, 179, 365, 283, 75, 302, 29, 284, 348, 151, 668, 1597, 216, 2, 275, 133, 949, 468, 69,
    270, 265, 125, 261, 29, 734, 794, 12, 144, 1927, 42, 410, 1928, 1929, 30, 131, 33, 834, 284, 56, 1203, 285, 1595, 14, 1203, 1930, 175, 232, 513, 314,
    224, 639, 137, 1931, 50, 1932, 0, 75, 105, 302, 13, 206, 152, 142, 44, 35, 601, 216, 583, 2, 12, 694, 92, 14, 147, 131, 330, 155, 53, 53,
    224, 44, 167, 1922, 86, 360, 136, 115, 1931, 248, 125, 734, 131, 175, 384, 224, 179, 63, 2, 62, 232, 53, 268, 289, 8, 326, 63, 105, 179, 213,
    224, 105, 75, 56, 29, 468, 265, 348, 949, 151, 29, 668, 284, 410, 56, 12, 1203, 33, 155, 314, 513, 1595, 224, 75, 44, 171, 175, 191, 191, 517,
    487, 467, 431, 431, 191, 1933, 177, 467, 467, 467, 83, 467, 177, 191, 467, 245, 624, 82, 236, 236, 232, 1934, 749, 0, 122, 467, 0, 8, 14, 345,
    104, 43, 87, 133, 14, 14, 5, 170, 911, 535, 80, 5, 462, 1935, 385, 409, 290, 1936, 95, 119, 883, 36, 142, 64, 1936, 248, 1937, 1938, 104, 119,
    314, 50, 112, 219, 172, 1155, 214, 1255, 2, 238, 210, 1164, 136, 92, 153, 1939, 1940, 504, 118, 124, 33, 911, 0, 52, 348, 25, 30, 222, 1475, 12,
    59, 2, 39, 694, 406, 170, 246, 282, 1941, 124, 70, 237, 176, 157, 238, 1942, 170, 13, 30, 244, 21, 308, 51, 21, 153, 153, 385, 52, 193, 387,
    186, 1938, 132, 221, 64, 8, 27, 256, 582, 677, 40, 112, 0, 348, 53, 0, 218, 285, 429, 1943, 1475, 583, 136, 224, 30, 179, 119, 14, 668, 94,
    50, 193, 2, 623, 314, 281, 189, 328, 14, 298, 96, 157, 96, 31, 42, 219, 193, 14, 8, 232, 30, 95, 248, 467, 535, 248, 7, 301, 21, 272,
    623, 50, 0, 840, 198, 268, 17, 422, 170, 128, 592, 219, 314, 256, 128, 133, 317, 268, 270, 10, 335, 8, 1082, 219, 256, 582, 75, 157, 592, 619,
    1255, 429, 44, 344, 774, 133, 1942, 14, 840, 248, 345, 54, 8, 189, 268, 80, 99, 96, 1944, 302, 374, 92, 617, 467, 467, 431, 1216, 314, 30, 281,
    53, 2, 109, 413, 5, 200, 321, 338, 14, 486, 1945, 367, 77, 369, 56, 1946, 327, 154, 1947, 1948, 171, 180, 318, 314, 418, 163, 300, 318, 64, 54,
    30, 338, 362, 21, 1875, 20, 22, 449, 265, 201, 153, 1949, 23, 44, 369, 86, 51, 8, 250, 14, 217, 513, 1950, 63, 12, 1951, 237, 0, 105, 77,
    86, 328, 452, 210, 234, 91, 452, 95, 31, 27, 387, 542, 230, 56, 525, 56, 451, 320, 452, 210, 425, 251, 290, 111, 77, 905, 53, 95, 13, 244,
    5, 20, 289, 535, 179, 509, 1949, 69, 218, 176, 624, 30, 519, 78, 49, 54, 200, 71, 2, 411, 31, 408, 296, 265, 248, 33, 280, 14, 95, 237,
    94, 78, 78, 312, 319, 209, 77, 82, 93, 1952, 1949, 23, 64, 78, 95, 320, 200, 189, 393, 137, 1454, 345, 74, 18, 62, 71, 31, 10, 1214, 71,
    178, 413, 189, 170, 189, 725, 50, 91, 393, 321, 44, 508, 1953, 366, 23, 708, 234, 40, 366, 749, 369, 112, 1954, 43, 30, 5, 31, 43, 1954, 1,
    814, 77, 40, 1954, 53, 30, 90, 21, 45, 155, 179, 2, 87, 14, 34, 1260, 487, 393, 1955, 178, 387, 232, 152, 0, 56, 95, 362, 271, 407, 60,
    1028, 338, 175, 256, 1956, 17, 1957, 209, 206, 668, 17, 30, 132, 63, 129, 37, 27, 74, 385, 105, 408, 250, 1474, 330, 120, 1958, 106, 31, 1592, 777,
    1959, 224, 364, 1960, 124, 155, 302, 294, 273, 487, 694, 247, 676, 193, 1091, 464, 62, 178, 215, 509, 121, 294, 95, 0, 384, 312, 222, 213, 17, 429,
    95, 200, 850, 65, 106, 319, 37, 339, 1873, 1961, 53, 582, 206, 2, 37, 13, 105, 77, 509, 1956, 236, 976, 53, 54, 1962, 58, 777, 82, 170, 1963,
    31, 1, 222, 222, 777, 171, 105, 1592, 222, 31, 467, 286, 0, 30, 8, 8, 53, 610, 23, 29, 1507, 119, 119, 1964, 2, 345, 272, 382, 90, 508,
    21, 47, 56, 232, 63, 47, 81, 56, 59, 156, 321, 71, 402, 42, 284, 142, 14, 1965, 134, 396, 5, 486, 1966, 153, 26, 77, 2, 982, 976, 385,
    77, 757, 133, 0, 147, 20, 1148, 160, 979, 154, 373, 1967, 387, 1600, 1968, 56, 1969, 1970, 1971, 248, 88, 157, 198, 74, 133, 177, 1972, 115, 143, 763,
    152, 95, 2, 240, 20, 535, 131, 74, 251, 156, 2, 38, 77, 16, 1111, 163, 362, 103, 0, 224, 248, 240, 0, 284, 176, 385, 8, 355, 1973, 384,
    1, 22, 182, 175, 111, 20, 14, 26, 192, 13, 30, 187, 210, 232, 8, 8, 887, 54, 1974, 976, 995, 360, 382, 424, 195, 1975, 299, 1976, 8, 111,
    51, 219, 462, 508, 132, 133, 56, 287, 393, 1977, 56, 53, 421, 20, 144, 177, 111, 39, 198, 249, 91, 108, 1978, 77, 153, 210, 108, 509, 180, 2,
    26, 369, 202, 265, 147, 1979, 215, 131, 105, 219, 92, 1519, 844, 8, 713, 1980, 74, 251, 179, 381, 1981, 132, 450, 330, 12, 1982, 1983, 115, 344, 63,
    367, 321, 1216, 1295, 147, 213, 20, 1984, 51, 1985, 209, 220, 1986, 1987, 129, 159, 251, 227, 206, 12, 20, 82, 222, 2, 74, 221, 223, 28, 30, 601,
    839, 133, 81, 26, 0, 156, 338, 505, 484, 448, 21, 244, 1988, 1820, 722, 193, 429, 399, 492, 1989, 1990, 230, 408, 452, 1991, 171, 1572, 265, 64, 256,
    14, 43, 920, 111, 338, 210, 131, 1992, 40, 43, 48, 63, 26, 1430, 1965, 525, 214, 369, 1993, 682, 215, 240, 180, 338, 682, 23, 1994, 725, 54, 129,
    1995, 486, 120, 53, 405, 505, 27, 451, 53, 921, 0, 51, 232, 385, 422, 1996, 54, 140, 741, 147, 396, 156, 124, 140, 1997, 384, 1, 20, 224, 53,
    536, 155, 280, 355, 1552, 1475, 223, 20, 168, 36, 694, 1998, 1999, 279, 128, 2000, 464, 2001, 527, 284, 91, 285, 602, 269, 2002, 2003, 90, 923, 133, 1623,
    12, 14, 119, 270, 393, 140, 271, 77, 2004, 2005, 175, 1767, 33, 232, 224, 366, 224, 443, 262, 637, 218, 590, 0, 0, 59, 1991, 371, 62, 918, 129,
    297, 163, 29, 66, 141, 412, 2006, 692, 2004, 535, 129, 464, 385, 50, 2007, 56, 794, 12, 248, 251, 1164, 193, 65, 62, 144, 306, 7, 14, 448, 299,
    301, 50, 56, 382, 227, 417, 8, 131, 94, 328, 225, 71, 71, 237, 308, 269, 583, 300, 355, 147, 306, 147, 26, 94, 62, 360, 2008, 39, 1755, 467,
    38, 284, 159, 23, 408, 261, 158, 16, 147, 408, 1821, 623, 1408, 7, 112, 2009, 412, 422, 2010, 2011, 0, 628, 315, 319, 325, 1209, 2012, 759, 1054, 111,
    405, 2013, 517, 32, 396, 284, 64, 290, 301, 214, 422, 412, 818, 288, 312, 1991, 1125, 232, 232, 2014, 2, 314, 319, 602, 77, 210, 35, 317, 280, 282,
    253, 325, 7, 40, 419, 84, 224, 325, 307, 2015, 673, 159, 270, 360, 112, 2016, 335, 341, 450, 281, 189, 50, 422, 153, 11, 269, 2, 224, 335, 448,
    536, 331, 5, 140, 319, 341, 200, 43, 40, 52, 262, 33, 619, 159, 24, 375, 371, 2017, 636, 53, 7, 77, 103, 499, 183, 119, 133, 27, 224, 443,
    12, 120, 969, 536, 508, 44, 601, 159, 2018, 27, 94, 26, 422, 460, 301, 55, 96, 142, 71, 213, 144, 319, 78, 1509, 105, 344, 345, 417, 206, 964,
    2019, 371, 390, 147, 38, 413, 36, 290, 964, 88, 0, 2020, 120, 952, 0, 27, 90, 321, 412, 147, 264, 96, 224, 280, 348, 14, 112, 45, 2021, 291,
    45, 330, 1693, 887, 966, 300, 113, 535, 2022, 905, 1366, 104, 265, 2, 158, 269, 170, 156, 51, 107, 694, 12, 1190, 195, 163, 289, 327, 290, 94, 199,
    1643, 147, 147, 133, 227, 63, 2023, 53, 330, 12, 445, 369, 6, 275, 431, 464, 759, 668, 230, 262, 203, 224, 63, 828, 375, 248, 224, 171, 147, 364,
    111, 291, 1600, 43, 376, 147, 77, 270, 126, 602, 330, 880, 188, 405, 281, 445, 81, 416, 602, 88, 319, 51, 364, 119, 637, 2, 232, 90, 382, 508,
    345, 385, 133, 42, 321, 1972, 142, 156, 141, 757, 144, 235, 1967, 16, 13, 362, 54, 157, 143, 38, 84, 265, 396, 177, 133, 1600, 240, 251, 64, 198,
    103, 154, 163, 387, 763, 979, 14, 133, 91, 133, 175, 111, 384, 508, 13, 111, 421, 445, 108, 509, 210, 187, 30, 887, 111, 1, 759, 1977, 393, 424,
    8, 360, 995, 189, 176, 20, 113, 215, 839, 206, 92, 486, 36, 30, 27, 210, 23, 460, 63, 2024, 132, 230, 156, 74, 412, 65, 51, 1295, 920, 28,
    1987, 443, 213, 288, 568, 1925, 35, 209, 91, 601, 105, 2, 43, 381, 319, 223, 74, 82, 51, 206, 120, 525, 218, 921, 112, 448, 244, 325, 53, 725,
    93, 535, 451, 248, 159, 429, 682, 40, 171, 422, 412, 147, 505, 193, 452, 240, 54, 514, 536, 2008, 328, 429, 393, 285, 923, 918, 384, 676, 140, 77,
    175, 281, 527, 694, 119, 63, 129, 280, 163, 155, 2025, 90, 147, 54, 366, 284, 417, 2006, 412, 536, 26, 248, 227, 71, 38, 306, 312, 301, 583, 158,
    464, 408, 619, 284, 264, 408, 450, 232, 111, 35, 602, 319, 280, 602, 84, 422, 1125, 1408, 2, 210, 327, 315, 262, 319, 341, 281, 183, 200, 52, 153,
    2015, 360, 422, 2026, 88, 345, 120, 224, 964, 364, 120, 880, 536, 413, 163, 330, 966, 45, 112, 2, 227, 262, 431, 43, 376, 138, 138, 34, 335, 504,
    88, 345, 222, 138, 141, 317, 1001, 321, 2027, 141, 31, 189, 2028, 189, 0, 412, 103, 183, 131, 1222, 11, 129, 1091, 147, 355, 0, 889, 387, 2029, 460,
    302, 275, 248, 1, 467, 189, 1222, 2030, 788, 35, 205, 66, 93, 2031, 86, 355, 0, 676, 452, 230, 109, 288, 54, 421, 421, 43, 188, 44, 276, 288,
    676, 31, 419, 31, 2032, 254, 14, 419, 2031, 203, 2031, 188, 268, 419, 177, 223, 50, 74, 899, 477, 364, 2033, 213, 0, 271, 510, 128, 412, 195, 477,
    2034, 788, 387, 5, 94, 276, 788, 339, 2035, 2036, 348, 43, 20, 298, 583, 128, 419, 128, 141, 1001, 321, 31, 2028, 189, 419, 337, 1222, 50, 129, 131,
    147, 355, 103, 141, 65, 460, 86, 419, 128, 355, 230, 412, 66, 35, 195, 676, 34, 421, 452, 2033, 14, 31, 140, 77, 419, 254, 31, 848, 43, 364,
    188, 348, 899, 477, 195, 271, 128, 477, 2035, 583, 56, 192, 117, 383, 171, 133, 64, 2, 2037, 74, 144, 387, 537, 299, 177, 155, 2038, 95, 734, 63,
    20, 52, 154, 144, 74, 232, 39, 27, 537, 188, 153, 253, 192, 2039, 1, 2040, 60, 60, 2041, 22, 56, 12, 389, 375, 624, 693, 113, 619, 450, 2042,
    33, 2043, 129, 92, 86, 14, 16, 321, 251, 71, 693, 294, 2044, 189, 7, 321, 299, 63, 701, 387, 314, 232, 93, 0, 272, 602, 95, 129, 155, 264,
    749, 2, 383, 125, 74, 54, 527, 1164, 20, 1, 458, 129, 389, 299, 0, 74, 2045, 144, 2046, 7, 381, 31, 74, 258, 153, 14, 375, 50, 50, 602,
    2047, 96, 223, 301, 39, 96, 74, 1608, 31, 710, 35, 95, 64, 1536, 158, 77, 319, 12, 10, 272, 335, 77, 74, 139, 774, 44, 246, 413, 20, 96,
    96, 14, 1091, 152, 176, 92, 12, 272, 77, 74, 0, 348, 375, 77, 53, 53, 53, 2048, 2049, 63, 818, 1768, 243, 2, 720, 31, 240, 2050, 380, 36,
    12, 175, 583, 63, 198, 1768, 191, 200, 54, 93, 62, 462, 281, 14, 17, 156, 96, 338, 1708, 499, 970, 1994, 462, 200, 12, 877, 17, 422, 53, 243,
    83, 462, 12, 12, 14, 14, 83, 84, 1601, 2036, 108, 419, 152, 70, 95, 53, 219, 144, 1, 330, 223, 203, 2051, 46, 359, 62, 64, 156, 178, 12,
    108, 624, 244, 1577, 109, 232, 155, 408, 1, 5, 179, 163, 288, 264, 131, 302, 74, 176, 51, 516, 44, 1, 25, 2006, 2051, 1, 499, 1, 7, 131,
    74, 80, 80, 95, 422, 366, 327, 64, 50, 899, 74, 77, 2, 158, 49, 0, 129, 14, 2052, 375, 136, 12, 70, 144, 47, 20, 50, 0, 77, 12,
    80, 2053, 366, 330, 53, 2054, 158, 264, 136, 2055, 1, 58, 40, 53, 203, 0, 0, 0, 22, 289, 289, 277, 271, 232, 52, 27, 372, 52, 277, 2056,
    52, 271, 264, 264, 839, 222, 15, 15, 203, 23, 2057, 348, 566, 2058, 90, 227, 291, 115, 153, 464, 64, 115, 240, 119, 83, 763, 47, 74, 139, 84,
    886, 253, 104, 177, 2, 268, 124, 1693, 39, 131, 459, 144, 0, 74, 2059, 124, 295, 99, 223, 223, 913, 228, 0, 104, 71, 109, 341, 2060, 96, 214,
    2061, 1430, 279, 183, 128, 2062, 2063, 899, 54, 431, 2064, 794, 318, 0, 21, 21, 2065, 71, 540, 54, 147, 467, 153, 147, 95, 124, 198, 128, 265, 99,
    405, 35, 2063, 899, 319, 619, 1173, 71, 83, 12, 147, 37, 43, 623, 62, 129, 133, 464, 201, 147, 364, 50, 115, 56, 2066, 680, 35, 50, 2061, 338,
    140, 899, 794, 95, 196, 50, 35, 2067, 124, 2068, 1203, 451, 189, 2069, 969, 464, 201, 464, 50, 115, 56, 338, 50, 95, 124, 34, 34, 129, 99, 129,
    12, 74, 462, 95, 449, 117, 275, 2070, 290, 95, 275, 223, 74, 78, 62, 300, 90, 289, 94, 78, 523, 481, 178, 2, 178, 175, 282, 94, 5, 2071,
    14, 2072, 1128, 2073, 153, 2074, 405, 508, 1, 172, 52, 330, 2075, 71, 564, 248, 50, 1319, 899, 180, 2, 2, 384, 383, 2076, 69, 330, 2077, 210, 308,
    2078, 94, 210, 281, 109, 27, 290, 95, 62, 338, 2079, 246, 246, 567, 218, 246, 284, 284, 527, 90, 218, 1343, 338, 133, 384, 165, 2080, 240, 2, 357,
    193, 248, 248, 31, 2081, 2082, 605, 18, 31, 0, 171, 2, 314, 32, 187, 187, 37, 2083, 330, 206, 339, 2084, 341, 247, 268, 320, 71, 175, 170, 2085,
    348, 2086, 82, 366, 327, 129, 567, 224, 950, 602, 213, 300, 90, 289, 338, 78, 523, 178, 178, 48, 175, 2073, 5, 1128, 282, 2071, 14, 224, 1, 508,
    2079, 1319, 210, 109, 205, 290, 238, 384, 2, 567, 348, 246, 338, 290, 290, 384, 193, 605, 248, 18, 31, 248, 602, 341, 46, 32, 320, 330, 194, 82,
    567, 213, 40, 2087, 0, 56, 7, 302, 1557, 139, 2088, 362, 406, 2089, 360, 1742, 54, 262, 26, 50, 144, 268, 312, 412, 2090, 142, 422, 77, 1800, 339,
    339, 422, 262, 262, 262, 345, 262, 601, 40, 159, 40, 144, 302, 262, 139, 54, 26, 312, 268, 422, 339, 262, 262, 264, 142, 264, 264, 2091, 8, 361,
    12, 90, 26, 60, 302, 818, 78, 516, 115, 14, 2092, 461, 74, 142, 142, 615, 74, 51, 186, 1570, 189, 39, 124, 203, 191, 887, 26, 203, 8, 113,
    106, 115, 271, 105, 2093, 22, 268, 132, 191, 78, 144, 280, 92, 31, 0, 77, 361, 111, 395, 248, 13, 251, 387, 256, 14, 824, 268, 791, 535, 8,
    147, 694, 22, 129, 13, 23, 273, 264, 10, 2001, 270, 248, 758, 1487, 62, 301, 887, 348, 1223, 237, 2030, 2094, 152, 50, 175, 616, 282, 319, 111, 451,
    77, 94, 422, 312, 124, 23, 0, 450, 319, 341, 189, 14, 159, 119, 11, 94, 18, 321, 219, 49, 2095, 12, 774, 27, 200, 124, 50, 78, 302, 152,
    106, 366, 31, 450, 43, 78, 281, 371, 79, 8, 90, 12, 60, 2094, 516, 77, 115, 14, 219, 142, 74, 147, 8, 203, 26, 113, 2, 92, 774, 78,
    2093, 0, 105, 77, 22, 111, 387, 248, 14, 395, 251, 535, 254, 129, 270, 616, 94, 175, 312, 43, 23, 450, 111, 422, 159, 119, 341, 11, 18, 79,
    392, 94, 535, 78, 152, 111, 176, 189, 577, 385, 338, 264, 147, 223, 158, 56, 129, 2096, 171, 152, 567, 171, 317, 14, 403, 338, 153, 798, 60, 219,
    170, 51, 484, 155, 2097, 1111, 139, 95, 419, 63, 49, 230, 30, 111, 203, 2098, 798, 0, 188, 419, 188, 238, 508, 382, 314, 275, 179, 54, 51, 173,
    54, 20, 2099, 210, 1, 232, 532, 56, 144, 8, 189, 60, 60, 26, 422, 317, 297, 124, 63, 315, 374, 25, 1609, 213, 180, 238, 92, 106, 111, 51,
    74, 2100, 0, 49, 106, 422, 54, 282, 240, 486, 252, 338, 385, 360, 246, 251, 248, 27, 215, 2101, 224, 694, 2102, 196, 297, 676, 124, 218, 269, 384,
    390, 5, 31, 264, 708, 0, 35, 268, 64, 297, 24, 297, 133, 264, 301, 133, 163, 14, 193, 213, 7, 269, 94, 794, 26, 399, 0, 2103, 312, 291,
    27, 63, 422, 275, 374, 77, 636, 464, 31, 314, 2104, 708, 321, 5, 1255, 499, 224, 77, 281, 10, 991, 2105, 361, 1764, 24, 188, 189, 63, 14, 178,
    443, 111, 256, 244, 44, 302, 157, 422, 60, 842, 46, 105, 887, 31, 281, 302, 52, 2, 23, 1139, 567, 179, 31, 2106, 230, 374, 78, 12, 499, 54,
    77, 583, 53, 1764, 317, 14, 798, 170, 219, 188, 1111, 111, 230, 2099, 8, 26, 56, 54, 749, 51, 60, 173, 210, 2, 532, 244, 317, 74, 105, 443,
    2100, 106, 297, 1764, 53, 27, 31, 215, 240, 251, 5, 390, 384, 694, 269, 256, 361, 297, 63, 94, 708, 64, 335, 422, 291, 321, 1764, 281, 24, 43,
    179, 12, 499, 78, 175, 2107, 2107, 2107, 14, 87, 2, 850, 308, 39, 203, 265, 2108, 193, 153, 250, 106, 655, 237, 220, 35, 246, 425, 297, 189, 384,
    407, 14, 96, 619, 577, 244, 1408, 2109, 869, 828, 327, 450, 345, 619, 244, 464, 722, 96, 193, 327, 828, 224, 451, 451, 71, 839, 71, 206, 708, 1764,
    676, 676, 747, 154, 159, 394, 393, 49, 676, 327, 66, 214, 20, 284, 66, 394, 747, 203, 189, 2110, 1571, 92, 2111, 188, 228, 159, 2112, 12, 275, 987,
    449, 325, 193, 53, 327, 269, 747, 275, 282, 91, 213, 269, 523, 147, 2113, 62, 431, 34, 5, 112, 232, 327, 275, 317, 11, 341, 341, 352, 178, 406,
    133, 133, 79, 583, 2114, 199, 327, 406, 2115, 387, 387, 460, 2031, 77, 387, 338, 387, 387, 34, 140, 14, 14, 2012, 31, 2116, 1971, 86, 1617, 422, 2117,
    6, 14, 86, 408, 390, 5, 637, 94, 254, 47, 2118, 408, 178, 31, 244, 29, 2119, 2120, 5, 151, 29, 50, 87, 219, 339, 189, 450, 5, 178, 17,
    31, 302, 14, 272, 115, 295, 0, 492, 60, 906, 12, 14, 521, 2121, 1012, 1108, 516, 450, 39, 180, 177, 741, 20, 224, 419, 62, 224, 2122, 154, 152,
    84, 30, 0, 0, 205, 7, 2123, 338, 20, 2124, 60, 764, 21, 69, 56, 189, 717, 50, 905, 156, 764, 30, 949, 20, 468, 2125, 362, 203, 56, 65,
    54, 175, 8, 25, 17, 2126, 39, 33, 237, 78, 92, 223, 50, 382, 51, 74, 406, 1519, 132, 1170, 923, 2063, 50, 105, 250, 2117, 129, 35, 348, 206,
    56, 839, 0, 113, 251, 193, 15, 449, 65, 325, 240, 14, 395, 75, 949, 425, 256, 64, 21, 2127, 120, 583, 2128, 53, 288, 288, 839, 366, 27, 53,
    0, 0, 200, 180, 284, 5, 703, 78, 395, 294, 12, 156, 417, 175, 179, 25, 218, 264, 176, 2, 676, 224, 34, 140, 52, 125, 1, 749, 53, 366,
    269, 1199, 468, 0, 0, 0, 8, 498, 583, 193, 237, 215, 51, 431, 269, 12, 467, 467, 583, 213, 974, 50, 50, 14, 294, 794, 2129, 301, 112, 31,
    21, 21, 147, 189, 248, 144, 56, 357, 2130, 7, 2131, 62, 8, 296, 0, 419, 291, 320, 64, 70, 708, 422, 317, 8, 8, 270, 284, 374, 128, 268,
    207, 200, 133, 5, 419, 296, 0, 112, 335, 117, 348, 355, 12, 214, 188, 147, 498, 341, 77, 21, 262, 12, 12, 51, 37, 2132, 441, 200, 10, 103,
    83, 423, 14, 188, 78, 111, 105, 170, 256, 301, 344, 2133, 321, 142, 875, 44, 170, 617, 77, 0, 0, 152, 270, 237, 234, 974, 708, 876, 87, 86,
    2134, 53, 140, 330, 33, 0, 82, 12, 511, 62, 33, 53, 368, 2135, 510, 232, 78, 248, 224, 270, 53, 129, 14, 272, 12, 30, 516, 224, 154, 47,
    205, 47, 69, 468, 224, 30, 65, 56, 764, 203, 237, 20, 362, 2117, 39, 839, 50, 92, 132, 974, 237, 234, 12, 105, 129, 65, 78, 170, 425, 53,
    112, 147, 53, 8, 214, 949, 288, 583, 251, 12, 200, 703, 1, 5, 749, 264, 676, 140, 175, 176, 468, 156, 52, 498, 8, 284, 152, 504, 189, 140,
    193, 419, 50, 357, 248, 21, 56, 301, 213, 37, 467, 708, 335, 5, 128, 270, 268, 70, 291, 117, 262, 83, 423, 341, 355, 200, 50, 77, 86, 321,
    44, 344, 62, 87, 53, 876, 270, 2136, 2, 56, 53, 34, 13, 31, 56, 1890, 12, 40, 0, 134, 8, 40, 209, 203, 314, 1255, 62, 240, 2137, 1128,
    419, 291, 8, 14, 1601, 268, 875, 875, 20, 583, 232, 203, 31, 36, 91, 154, 40, 419, 307, 136, 2138, 82, 1, 2139, 56, 60, 538, 53, 467, 63,
    35, 314, 191, 188, 244, 219, 49, 54, 2105, 175, 38, 14, 144, 14, 36, 2140, 14, 0, 83, 383, 64, 92, 399, 158, 63, 848, 107, 244, 210, 406,
    51, 1293, 1170, 131, 224, 82, 225, 35, 115, 244, 159, 1311, 219, 1519, 0, 0, 0, 81, 210, 12, 385, 2141, 60, 13, 64, 280, 14, 111, 251, 251,
    189, 77, 251, 54, 385, 52, 193, 248, 248, 369, 620, 64, 180, 453, 105, 0, 224, 69, 33, 56, 2142, 45, 275, 240, 133, 265, 156, 224, 477, 147,
    54, 385, 36, 314, 5, 53, 23, 694, 279, 113, 676, 299, 5, 52, 2, 2, 289, 284, 218, 25, 5, 1763, 425, 54, 465, 0, 0, 12, 33, 0,
    219, 617, 794, 2142, 21, 193, 62, 193, 248, 39, 393, 304, 294, 385, 31, 195, 314, 297, 676, 408, 62, 290, 2143, 64, 54, 0, 2144, 154, 1169, 290,
    314, 129, 628, 8, 195, 93, 319, 7, 296, 422, 12, 620, 291, 818, 338, 191, 191, 2, 268, 31, 12, 53, 271, 402, 193, 1534, 2, 385, 317, 244,
    451, 271, 624, 12, 673, 75, 335, 1262, 2, 307, 219, 961, 422, 200, 230, 189, 499, 45, 14, 64, 88, 74, 2145, 26, 105, 2, 443, 189, 290, 256,
    301, 142, 105, 345, 31, 451, 34, 129, 129, 385, 80, 344, 14, 290, 224, 673, 129, 83, 2, 20, 2146, 281, 77, 2, 12, 118, 14, 302, 23, 144,
    189, 199, 62, 222, 290, 366, 153, 421, 14, 330, 13, 224, 195, 375, 499, 421, 290, 970, 188, 53, 81, 2136, 34, 12, 314, 209, 8, 307, 36, 2144,
    203, 232, 175, 25, 224, 36, 244, 144, 1, 219, 188, 314, 83, 60, 26, 63, 92, 399, 159, 107, 1311, 35, 81, 131, 64, 111, 53, 280, 620, 248,
    14, 129, 193, 64, 477, 617, 223, 676, 265, 275, 133, 294, 425, 314, 256, 62, 195, 248, 620, 21, 191, 408, 64, 2, 268, 628, 422, 12, 2, 147,
    195, 2, 290, 75, 422, 345, 105, 34, 14, 224, 583, 302, 290, 62, 366, 270, 499, 224, 119, 1, 147, 1091, 429, 147, 147, 31, 429, 224, 30, 247,
    12, 1557, 247, 459, 2147, 1578, 51, 147, 222, 222, 14, 422, 624, 1578, 44, 176, 5, 224, 34, 1578, 52, 53, 78, 858, 210, 222, 53, 196, 10, 44,
    52, 5, 1, 31, 247, 80, 80, 195, 137, 56, 15, 15, 56, 459, 188, 188, 225, 56, 129, 218, 188, 15, 219, 40, 56, 188, 15, 317, 2148, 2148,
    348, 0, 749, 0, 152, 301, 301, 119, 221, 271, 0, 131, 443, 369, 131, 33, 53, 468, 219, 1347, 1347, 2, 133, 49, 77, 516, 450, 450, 291, 136,
    93, 30, 2149, 2, 7, 31, 188, 408, 31, 289, 2150, 53, 298, 464, 361, 31, 31, 31, 1955, 223, 232, 136, 361, 2, 408, 652, 31, 464, 224, 63,
    152, 56, 56, 2151, 1628, 314, 247, 188, 643, 201, 51, 63, 366, 335, 423, 60, 189, 314, 643, 60, 90, 2152, 59, 2153, 284, 175, 175, 25, 152, 124,
    314, 20, 140, 451, 5, 314, 319, 374, 33, 0, 152, 264, 419, 726, 156, 60, 38, 188, 299, 8, 30, 8, 109, 64, 2154, 52, 254, 2154, 31, 385,
    26, 77, 129, 31, 330, 189, 268, 21, 338, 2155, 2155, 2156, 99, 2157, 65, 159, 628, 65, 236, 79, 390, 287, 12, 284, 12, 12, 390, 12, 219, 624,
    624, 195, 36, 1260, 99, 203, 118, 2158, 2159, 219, 31, 54, 214, 1, 1, 93, 213, 99, 1443, 602, 34, 268, 668, 95, 525, 93, 2, 176, 2160, 1934,
    188, 95, 31, 1961, 248, 146, 2, 869, 749, 46, 93, 119, 570, 219, 624, 195, 1260, 54, 1, 203, 214, 284, 1443, 14, 668, 188, 146, 2161, 70, 2162,
    70, 31, 2161, 375, 228, 216, 104, 1, 104, 375, 228, 216, 2163, 21, 423, 2163, 421, 527, 195, 88, 99, 14,
};
const Int64 PinyinPart2[] = {
    179, 179, 0, 0, 0, 607, 338, 338, 0, 0, 179, 179, 0, 396, 234, 282, 282, 0, 0, 396, 348, 128, 0, 0, 0, 0, 619, 361, 0, 17,
    0, 0, 0, 0, 698, 979, 0, 18, 367, 94, 94, 0, 171, 31, 289, 289, 0, 321, 1148, 508, 321, 45, 321, 88, 1044, 91, 1044, 91, 0, 0,
    14, 74, 294, 21, 14, 374, 8, 105, 406, 52, 54, 193, 20, 31,
};

std::vector<std::string> decodeLocaleAlphabet(Int64 pinyinCode)
{
    Int16 count = 0;
    for (Int64 tmp = pinyinCode; tmp > 0; count += 1, tmp >>= 9) ;
    std::vector<std::string> pinyins;
    for (Int16 i = 0; pinyinCode > 0; i += 1, pinyinCode >>= 9)
    {
        pinyins.push_back( PinyinTable[(pinyinCode & 511) - 1] );
    }
    return std::move(pinyins);
}

bool IsChinese(wchar_t chr)
{
    return (Part1MinValue <= chr && chr <= Part1MaxValue && PinyinPart1[chr - Part1MinValue] != 0)
        || (Part2MinValue <= chr && chr <= Part2MaxValue && PinyinPart2[chr - Part2MinValue] != 0)
        || MinValue == chr;
}

std::vector<std::string> getLocaleAlphabet(wchar_t chr)
{
  std::vector<std::string> vLocale;
  if (chr < 255) {
    std::wstring str(&chr, 1);
    std::transform(str.begin(), str.end(), str.begin(),
      [](unsigned char c) { return ::toupper(c); });
    vLocale.emplace_back(wstring2string(str));
    return vLocale;
  }
    if (Part1MinValue <= chr && chr <= Part1MaxValue && PinyinPart1[chr - Part1MinValue] != 0)
    { return decodeLocaleAlphabet(PinyinCodes[PinyinPart1[chr - Part1MinValue] - 1]); }
    else if (Part2MinValue <= chr && chr <= Part2MaxValue && PinyinPart2[chr - Part2MinValue] != 0)
    { return decodeLocaleAlphabet(PinyinCodes[PinyinPart2[chr - Part2MinValue] - 1]); }
    else if (MinValue == chr)
    { return decodeLocaleAlphabet(ling); }
    throw std::out_of_range("Expect a Chinese character.");
}


std::string wstring2string(const std::wstring& str)
{
  std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
  return conv.to_bytes(str);
}

}
