unit IMCode; // 簡化版拼音反查單元
interface
{ iMode 二進制功能位說明
X X X X X X X X X X X X X X X X
3 2 1
1: 0 - 只取各個漢字聲母的第一個字母; 1 - 全取
2: 0 - 遇到不能翻譯的字符不翻譯; 1 - 翻譯成 '?' (本選項目針對全角字符)
3: 0 - 生成的串不包括非數字, 字母的其他字符; 1 - 包括
(控制全角的要輸出非數字, 字母字符的; 半角的非數字, 字母字符)
}
function MakeSpellCode(stText: string; iMode, iCount: Integer): string;
function GetSpellCode(szText: PChar; iMode, iCount: Integer): PChar; stdcall;
implementation
uses
SysUtils;
type
{ 拼音代碼表 }
TPYCode = record
PYCode: string[6];
end;
TFPYCodes = array [1..126, 1..191] of TPYCode;
const
PYMUSICCOUNT = 405;
PyMusicCode: array [1..PYMUSICCOUNT] of string[6] = { 漢字基本發音表 } (
'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', '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',
'deng', 'di', 'dian', 'diao', 'die', 'ding', 'diu', 'dong', 'dou', 'du',
'duan', 'dui', 'dun', 'duo', 'e', 'en', 'er', 'fa', 'fan', 'fang',
'fei', 'fen', 'feng', 'fu', 'fou', 'ga', 'gai', 'gan', 'gang', 'gao',
'ge', 'ji', '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', 'jia', 'jian', 'jiang', 'qiao', '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', 'lue', 'lun', 'luo', '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', 'nue', 'yao',
'nuo', 'o', 'ou', 'pa', 'pai', 'pan', 'pang', 'pao', 'pei', 'pen',
'peng', 'pi', 'pian', 'piao', 'pie', 'pin', 'ping', 'po', 'pou', 'pu',
'qi', 'qia', 'qian', 'qiang', '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', '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', 'yan', 'yang', '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', 'zhen', 'zheng', 'zhi', 'zhong', 'zhou', 'zhu', 'zhua', 'zhuai',
'zhuan', 'zhuang', 'zhui', 'zhun', 'zhuo', 'zi', 'zong', 'zou', 'zu', 'zuan',
'zui', 'zun', 'zuo', '', 'ei', 'm', 'n', 'dia', 'cen', 'nou',
'jv', 'qv', 'xv', 'lv', 'nv'
);
PyCodeIndex: array [1..126, 1..191] of Word = ( { 拼音索引表 }
(354,279,331,0,190,39,284,67,249,167,353,19,133,92,129,152,31,385,105,131,84,348,348,329,133,0,376,116,283,349,344,87,133,0,0,0,284,202,0,0,0,0,0,0,342,345,0,276,199,243,0,0,52,0,375,102,88,176,170,348,136,180,375,0,354,294,299,94,344,368,344,55,347,333,131,347,353,369,166,74,325,92,0,329,6,19,0,306,0,332,372,114,107,20,33,370,279,258,79,191,243,328,220,83,43,324,62,376,229,354,64,73,329,348,336,92,2,349,232,282,84,305,389,357,134,332,343,336,363,332,217,208,335,340,377,389,13,232,348,294,348,374,107,181,378,21,250,14,371,47,346,369,14,332,250,284,10,121,110,333,91,78,194,19,113,123,102,251,47,337,282,320,106,157,348,101,349,189,340,3,175,77,178,29,37,343,377,263,125,294,56),
(302,214,130,132,313,373,393,39,404,134,286,313,282,320,20,201,334,318,354,330,340,101,148,329,348,84,167,122,350,332,270,229,330,190,331,339,62,134,375,157,294,123,334,125,16,309,81,344,11,354,336,116,374,375,19,133,220,389,167,323,169,43,387,0,91,310,286,187,304,383,337,237,241,88,167,299,245,80,375,387,178,295,171,122,68,386,12,329,134,200,23,125,347,276,245,350,36,243,264,376,45,325,354,19,309,345,83,305,328,75,34,283,140,62,29,11,367,120,220,369,388,345,353,340,367,47,84,84,375,190,92,348,335,343,294,71,368,373,315,11,360,245,325,296,375,297,331,355,261,217,357,126,180,63,305,109,129,330,278,243,252,35,40,270,11,334,352,220,304,301,346,78,19,333,359,97,270,162,352,362,387,231,295,381,354,368,389,279,43,131,107),
(370,247,349,62,335,174,11,234,130,166,175,182,243,332,304,350,68,392,278,127,132,318,392,240,160,32,101,241,308,381,325,92,20,121,45,312,278,220,82,332,354,75,170,20,97,332,332,193,347,130,242,127,83,377,2,269,348,137,216,304,348,58,150,0,125,40,128,276,359,24,18,3,303,59,30,158,348,130,243,188,329,214,248,208,32,169,404,152,10,354,16,360,375,294,353,109,247,246,164,308,325,173,40,31,333,311,335,164,179,360,221,305,345,179,202,360,338,265,265,316,32,208,208,130,345,284,0,0,0,0,282,69,0,0,120,329,265,167,354,107,310,0,92,348,184,254,345,184,367,132,98,132,184,377,96,340,353,140,348,189,284,188,134,147,193,84,335,189,303,89,116,226,84,193,242,125,296,186,316,97,131,247,68,88,349,2,164,25,194,384,52),
(294,74,130,170,330,70,79,79,134,40,374,83,198,375,83,83,139,88,237,150,107,258,43,92,243,53,92,57,323,136,164,84,250,64,193,171,376,17,129,129,278,31,94,43,153,74,77,129,47,131,69,179,363,355,54,0,276,43,54,164,81,31,241,0,43,386,89,240,74,247,385,125,92,345,123,74,375,329,98,283,125,367,139,244,42,31,381,175,164,231,278,147,98,117,367,385,166,134,172,102,128,102,125,125,314,92,125,125,375,31,390,196,164,378,344,131,145,335,375,348,378,196,160,135,147,346,321,334,197,152,129,169,0,131,90,193,37,159,352,0,135,247,175,21,157,139,190,68,340,329,348,343,346,283,168,175,234,284,92,244,128,251,333,348,342,79,135,314,134,57,181,343,343,404,164,34,333,251,357,133,10,0,14,87,87,348,231,134,220,91,75),
(95,55,133,95,203,133,348,126,141,116,250,79,245,361,152,116,354,102,121,57,153,166,166,298,70,133,250,330,143,345,250,343,209,389,284,330,323,323,335,278,92,288,152,330,335,254,346,248,280,37,340,330,153,92,75,330,270,345,372,107,344,62,368,0,227,0,245,344,375,183,309,281,313,391,81,363,355,164,63,246,5,102,345,164,32,243,164,345,345,355,114,190,262,250,0,162,70,381,282,282,282,348,56,285,136,6,267,284,385,331,334,92,357,265,48,98,249,37,0,114,192,183,341,386,74,347,223,123,348,39,246,335,239,117,114,354,221,342,263,223,90,137,404,91,326,241,329,128,357,37,283,319,326,75,284,135,230,326,197,254,62,284,377,312,330,348,241,237,386,340,348,334,344,250,332,320,239,17,84,346,123,303,55,321,393,21,302,332,123,241,77),
(75,375,378,343,334,149,284,311,397,341,322,160,314,338,353,189,209,337,0,109,357,173,239,183,389,110,332,160,238,167,6,192,404,299,84,107,356,353,97,97,11,107,348,243,316,345,323,164,249,34,362,344,69,241,62,246,0,114,0,0,167,159,276,0,0,328,349,241,321,244,3,363,209,354,310,157,330,2,400,385,368,358,334,333,384,329,326,309,97,241,241,57,347,386,316,52,110,344,241,372,167,332,350,98,363,104,179,0,62,251,320,0,305,3,57,354,372,377,30,322,0,360,220,190,116,357,119,355,92,376,325,276,340,120,367,345,167,354,271,139,127,345,278,230,300,351,325,350,0,11,0,362,123,309,220,334,244,273,352,114,335,180,29,106,263,321,92,227,329,332,386,175,321,0,301,0,269,0,199,244,14,5,166,391,378,196,304,128,38,128,139),
(304,282,2,334,174,334,116,121,104,340,332,363,32,238,60,180,116,86,305,347,269,128,334,117,181,254,334,334,92,153,334,109,396,127,340,320,304,343,329,392,79,139,121,24,43,358,57,354,319,330,241,109,166,340,121,349,343,220,294,345,350,55,369,0,385,216,356,335,127,355,2,352,325,354,230,59,336,73,58,336,232,349,391,214,62,158,302,328,331,347,74,339,377,368,130,32,343,185,375,175,121,228,353,220,349,351,186,114,372,164,172,106,202,196,345,164,175,173,196,57,35,236,232,333,185,330,74,148,345,31,350,0,156,302,334,46,119,123,381,372,334,367,164,31,30,164,348,179,360,297,0,365,125,358,378,158,212,0,0,121,349,213,317,141,355,132,233,357,48,121,75,104,314,316,104,253,260,104,303,104,349,122,107,178,104,44,325,355,251,148,240),
(355,355,344,317,316,316,317,177,121,348,176,176,344,316,313,240,175,150,344,384,297,297,385,58,242,331,278,212,196,124,375,343,348,246,186,261,319,82,14,337,158,131,92,62,337,226,305,250,385,98,303,132,346,0,175,249,96,342,6,171,378,84,116,0,375,5,0,228,193,92,110,404,47,37,349,115,72,371,84,101,220,74,102,29,346,335,285,19,114,55,138,58,108,3,337,332,9,239,11,348,349,107,340,383,246,83,80,252,352,137,331,62,159,135,246,372,169,117,21,132,347,62,344,251,299,374,323,134,178,374,146,279,68,304,23,315,13,332,74,348,375,384,241,134,208,143,154,208,125,89,354,344,97,163,80,344,154,3,282,203,316,36,119,14,166,328,381,10,354,329,129,264,347,94,387,354,120,75,220,84,92,186,279,320,349,83,376,129,130,113,89),
(45,332,237,162,337,120,71,323,341,330,92,150,350,352,139,297,284,189,327,36,316,252,376,164,231,9,361,72,373,329,374,343,373,2,95,345,140,326,335,172,106,159,279,231,13,35,175,175,223,243,186,196,381,290,174,16,27,375,370,140,63,35,385,0,92,104,244,246,62,52,345,302,366,243,325,383,127,278,278,81,240,318,317,79,252,73,392,62,283,121,74,304,61,329,82,120,304,55,347,378,125,354,244,127,144,348,232,63,126,347,342,304,158,134,118,58,255,243,343,332,330,2,344,59,264,130,404,152,175,345,304,325,121,173,173,265,164,170,31,343,345,162,6,323,270,382,348,181,378,382,116,154,116,340,154,285,183,73,285,348,350,126,227,368,15,299,253,171,54,341,335,203,331,355,323,375,247,0,96,241,188,188,35,363,136,90,306,303,345,14,0),
(357,335,6,76,309,228,135,335,63,346,119,139,367,12,120,81,64,343,145,5,327,303,329,5,126,166,74,357,126,284,82,123,14,176,74,313,243,133,218,29,332,79,92,114,57,353,131,129,326,376,224,145,376,357,232,37,356,382,345,201,336,82,83,0,355,70,20,385,371,208,355,315,341,375,75,196,14,282,75,110,340,78,374,193,8,84,171,386,254,332,346,182,386,134,258,68,92,87,333,123,135,96,125,125,209,375,373,332,113,101,343,149,345,194,169,229,344,353,345,332,309,321,251,295,114,332,280,283,335,183,84,329,143,157,50,313,337,201,354,238,299,375,107,382,237,318,332,354,345,329,330,345,354,294,164,134,383,241,332,385,68,175,75,75,404,190,48,239,134,23,171,334,286,241,121,84,328,328,304,81,81,310,208,251,131,131,243,63,337,116,323),
(157,349,377,203,84,178,0,154,349,344,134,164,63,332,117,117,346,220,201,267,124,354,354,325,309,262,186,57,264,247,121,328,243,45,191,84,129,71,348,376,120,190,345,350,341,129,325,374,249,375,335,320,166,184,254,294,233,325,321,50,116,245,10,0,340,354,102,388,220,355,261,263,172,186,226,357,180,153,282,373,355,301,261,194,350,297,211,306,227,159,203,10,232,348,354,341,355,348,141,352,208,391,130,381,363,201,160,372,116,116,5,264,180,235,97,329,127,320,369,191,332,332,196,168,166,117,102,61,375,340,348,117,330,153,220,345,31,128,186,84,79,345,348,111,128,84,284,299,244,166,341,336,211,68,348,24,2,210,214,180,311,39,130,47,354,236,261,263,208,345,303,350,243,356,190,14,282,337,208,70,172,355,158,345,171,128,255,158,332,350,290),
(335,251,189,164,176,345,378,158,136,386,336,294,303,353,381,343,192,48,323,344,348,386,164,342,20,200,212,350,176,261,248,316,262,220,348,131,384,378,114,284,348,311,330,36,253,95,334,367,284,282,120,189,147,23,360,355,249,110,373,125,214,19,119,0,246,284,214,130,214,375,354,10,151,214,404,246,116,375,214,282,325,335,151,121,137,348,348,10,246,173,10,83,404,72,238,381,238,0,346,381,343,378,72,59,129,189,189,286,279,196,168,332,332,154,353,211,227,324,324,324,220,74,153,376,88,97,380,88,88,330,14,129,310,64,284,373,335,208,330,0,182,174,237,335,81,335,404,28,335,134,136,168,136,378,335,238,321,332,164,345,59,121,173,258,329,107,282,40,0,356,8,220,4,329,129,92,82,323,243,241,129,393,393,346,134,89,342,238,164,311,389),
(84,320,232,5,152,250,238,311,171,37,237,0,9,314,342,15,110,143,179,75,212,65,175,76,77,87,251,348,198,284,3,325,119,189,164,92,314,325,353,97,169,220,128,75,347,21,253,83,203,164,353,332,261,59,282,36,316,94,90,331,349,354,202,0,140,345,252,38,302,170,117,134,157,193,154,154,389,97,344,89,178,178,171,74,374,349,68,107,374,325,232,129,389,148,68,349,386,363,120,354,346,83,249,346,309,348,375,284,75,378,369,404,345,186,107,92,119,313,329,354,387,158,143,345,345,325,387,29,301,143,246,309,316,72,330,327,25,305,350,129,139,172,329,127,13,63,243,352,212,54,284,267,295,387,126,168,141,31,65,399,66,316,174,369,369,5,26,250,244,391,391,59,59,330,354,232,173,333,374,20,246,128,345,160,369,168,168,246,74,392,127),
(136,220,128,220,136,369,348,342,203,347,347,348,212,345,92,335,143,330,62,5,391,325,261,59,171,129,354,356,349,263,129,169,330,173,173,350,330,134,31,350,325,345,203,251,33,51,176,63,63,212,345,345,345,203,345,150,120,337,33,169,0,240,240,0,249,375,371,348,130,300,251,0,238,358,66,212,82,224,375,116,57,56,321,84,196,348,348,237,242,135,263,288,291,127,373,284,253,56,102,237,370,270,323,56,276,241,70,115,374,340,325,348,9,237,65,95,226,306,189,124,308,121,376,282,16,104,363,198,9,131,31,375,329,14,14,370,189,127,31,82,188,9,59,192,40,129,332,158,125,19,88,92,313,363,101,185,246,319,344,336,129,382,344,47,314,348,375,311,375,334,316,102,148,188,353,21,19,36,157,92,295,286,247,354,191,296,363,333,81,133,75),
(325,172,331,296,375,21,247,133,133,174,349,330,175,348,40,316,294,336,191,32,329,81,152,0,150,14,273,170,168,404,92,350,332,313,352,164,313,345,62,238,121,200,121,82,250,345,361,348,77,270,77,284,64,116,329,318,126,6,282,370,306,84,62,0,33,373,348,251,280,355,131,64,370,126,244,231,14,281,304,125,91,78,14,147,125,17,334,304,104,244,114,208,104,323,136,92,175,121,121,348,348,348,356,356,326,345,354,37,64,352,234,37,385,348,92,376,324,62,171,84,324,330,324,374,375,131,48,375,48,0,92,375,387,377,157,335,129,125,309,331,233,84,325,227,330,374,234,309,60,375,17,376,34,220,121,186,173,333,10,250,161,258,313,87,258,107,348,303,330,79,350,326,326,329,92,330,129,323,48,354,284,52,303,384,246,122,338,324,332,141,134),
(348,10,193,229,147,8,215,369,116,389,353,62,318,353,84,330,14,353,341,48,19,120,342,232,286,330,304,352,196,0,284,330,160,113,152,197,375,335,220,65,109,325,340,334,294,149,249,121,37,348,338,99,170,37,279,381,356,231,60,121,334,183,352,0,355,232,356,354,354,143,372,170,128,245,309,21,243,330,187,348,113,36,329,164,167,48,348,164,203,75,329,48,60,32,187,164,100,100,241,146,310,178,330,140,103,208,73,104,369,355,130,92,170,354,110,251,304,309,212,46,187,336,329,301,387,125,352,60,203,357,312,45,248,27,15,122,387,309,11,341,325,91,325,14,341,119,190,352,241,305,349,336,184,242,143,2,245,345,264,387,294,350,252,114,357,297,241,220,295,120,92,97,134,43,208,335,139,374,352,26,343,282,20,330,335,122,352,346,164,272,306),
(349,340,303,357,194,95,48,234,198,104,37,24,24,24,52,193,370,314,5,290,100,252,362,133,166,223,295,246,349,404,279,317,182,332,281,247,62,375,404,135,241,241,354,237,168,295,353,38,375,314,36,241,250,231,11,248,128,37,166,237,153,121,374,0,349,349,330,330,57,304,74,319,297,136,27,334,79,82,160,160,332,193,168,329,24,136,50,332,304,283,232,348,332,216,57,304,131,295,128,325,341,246,246,134,272,144,350,348,170,273,137,118,2,347,155,331,37,354,349,56,188,208,188,72,241,196,332,187,39,375,221,40,346,20,375,152,152,353,84,172,192,36,121,31,158,118,341,255,31,92,134,119,281,166,201,196,305,136,382,382,356,91,125,68,65,23,124,375,153,369,244,91,125,354,353,330,369,330,330,250,116,116,75,348,309,184,63,279,348,348,345),
(249,164,79,263,359,370,356,354,329,107,282,367,348,241,329,0,258,330,246,124,354,5,372,375,375,0,345,324,15,134,326,116,356,246,282,374,357,323,265,239,239,6,215,363,357,19,375,201,240,220,373,367,346,242,208,347,37,232,124,186,250,40,344,0,369,228,199,243,320,7,375,134,155,242,243,112,213,95,392,348,335,273,121,7,375,155,74,74,216,373,110,128,68,263,169,367,175,281,136,169,134,344,332,354,345,20,94,309,36,301,243,186,216,134,231,125,345,299,335,367,83,148,249,123,316,239,363,296,354,385,323,375,392,380,368,175,296,345,9,325,323,246,281,193,187,84,59,328,251,356,387,310,316,12,328,393,331,241,36,272,178,247,89,62,122,241,286,323,171,344,374,167,98,348,340,345,374,23,19,309,388,144,285,129,194,94,188,272,231,221,125),
(374,353,243,345,201,341,232,325,269,212,284,387,373,343,352,15,346,119,345,390,340,242,92,309,156,156,35,133,316,122,93,68,334,335,243,367,11,220,325,0,329,387,93,96,246,261,252,388,300,300,261,231,143,220,59,375,221,335,249,332,130,192,348,0,72,278,302,367,238,164,306,148,375,321,331,326,244,310,373,75,221,251,367,329,372,141,261,277,300,301,168,38,43,104,231,375,241,296,166,36,37,100,175,174,387,330,116,379,244,305,117,375,244,102,350,127,375,212,182,31,223,40,297,381,128,278,243,234,126,220,96,243,92,235,160,73,332,267,102,365,348,343,36,334,114,101,302,209,170,374,325,142,92,26,336,304,78,34,136,334,12,196,385,325,240,246,73,117,128,302,220,379,166,352,202,175,385,368,240,46,330,58,273,247,129,150,278,335,367,5,134),
(347,75,188,189,92,303,59,158,134,347,263,347,347,208,328,129,18,214,91,375,375,305,196,125,335,169,304,7,296,175,356,256,375,346,162,268,286,51,209,332,229,164,157,119,350,179,173,243,243,243,158,332,350,186,278,350,51,335,372,179,186,196,37,0,390,176,304,277,63,321,305,128,158,179,102,102,241,343,142,348,107,8,238,63,147,193,329,110,27,285,104,340,128,35,373,74,354,7,340,74,212,63,252,348,143,345,241,315,334,74,346,331,193,378,2,62,373,286,168,250,338,348,128,278,128,385,348,166,14,303,334,334,342,241,241,136,368,0,8,354,158,325,283,124,124,354,128,315,69,375,244,250,369,385,385,385,246,170,385,40,71,378,129,108,229,353,0,241,232,172,84,80,131,371,348,280,125,0,375,79,234,79,369,150,299,354,92,92,123,335,311),
(350,62,340,31,346,284,193,193,384,45,329,11,8,129,283,116,80,132,341,82,246,116,345,363,80,282,134,346,80,341,238,373,171,109,196,15,340,122,387,331,81,348,326,68,2,19,4,173,152,311,284,120,341,153,340,128,130,375,314,114,87,333,107,0,137,332,154,377,330,283,372,372,107,109,323,310,385,391,377,278,208,330,241,374,348,345,323,170,32,324,334,81,341,348,357,121,340,193,347,350,286,325,247,184,201,158,346,45,220,301,240,128,139,109,327,32,241,109,345,164,92,187,360,335,109,196,48,208,370,121,107,341,42,168,304,131,235,170,330,348,129,120,56,347,347,164,304,314,334,81,282,371,109,348,333,337,278,128,10,131,345,2,347,263,188,164,35,152,65,0,220,123,404,261,173,179,176,277,305,345,378,0,348,116,286,26,283,366,243,340,155),
(349,245,82,232,82,171,148,0,405,311,159,391,194,324,319,241,350,387,324,314,159,160,173,0,286,0,258,6,74,311,164,249,133,14,373,47,263,243,354,329,343,79,386,258,372,74,183,37,348,91,95,375,126,278,323,133,183,375,355,81,68,332,45,0,286,117,336,215,39,295,356,130,92,184,232,4,82,348,84,201,116,347,378,336,220,75,371,357,391,283,74,175,295,201,373,303,330,99,84,196,348,347,347,284,212,14,348,208,156,110,226,79,376,56,47,350,84,286,280,295,282,254,352,375,389,57,97,240,5,84,84,393,17,367,294,378,229,284,99,29,220,133,172,186,164,261,362,0,352,343,241,373,348,333,373,164,273,140,19,258,7,258,19,386,39,348,47,392,391,77,77,354,78,95,369,164,349,375,284,84,263,348,148,248,271,342,74,44,354,360,0),
(350,129,172,369,343,268,373,11,350,155,131,238,12,265,330,159,172,83,241,326,137,107,349,249,353,173,231,382,62,342,316,362,353,14,62,107,375,258,11,332,119,323,221,124,311,92,334,404,151,399,82,295,294,69,246,350,134,154,385,31,325,131,164,0,19,331,0,306,375,157,166,385,164,241,19,178,295,243,241,23,31,372,81,229,239,122,36,362,169,354,354,97,103,68,89,324,54,79,36,369,241,355,345,354,251,348,282,330,385,297,157,388,388,82,35,247,212,323,175,109,245,377,134,134,36,393,244,344,232,385,386,18,231,66,40,32,187,117,125,102,330,59,102,63,375,251,0,84,94,231,278,348,282,74,84,325,325,124,387,125,348,330,345,345,369,354,110,328,233,14,220,149,340,267,346,156,345,12,121,153,129,153,294,83,320,375,198,184,148,116,313),
(354,353,295,355,346,373,233,347,242,347,292,354,325,186,309,92,129,262,120,161,251,333,284,304,357,282,40,232,124,348,373,84,221,189,97,130,302,220,335,355,386,194,297,124,220,129,120,107,243,180,355,261,284,375,326,313,261,305,368,294,283,143,330,0,97,241,142,300,226,306,91,45,373,400,92,129,244,332,186,340,89,385,320,127,346,63,124,375,59,173,271,330,92,166,121,352,243,104,87,87,317,117,282,391,231,353,126,116,119,102,348,348,90,141,102,102,323,375,382,357,159,35,387,164,339,247,290,314,100,363,297,162,175,167,189,404,128,297,143,16,175,168,372,367,286,182,211,346,311,231,378,276,251,125,48,92,345,342,375,343,375,391,48,240,286,117,153,373,278,330,45,63,81,196,329,256,170,172,127,332,266,79,369,160,357,292,318,36,305,188,334),
(136,336,121,92,221,320,214,265,314,366,82,248,345,113,246,97,172,160,90,330,283,386,270,92,69,131,125,40,55,286,126,170,203,349,121,278,391,341,36,88,134,391,348,240,83,121,58,92,299,237,36,40,379,121,92,129,124,368,125,244,59,348,16,0,295,281,164,349,306,303,190,241,317,19,123,92,243,208,214,348,90,140,349,264,247,345,241,189,371,102,45,92,153,238,61,40,91,190,353,375,120,243,162,169,268,175,164,51,404,192,121,223,404,375,90,70,355,356,81,385,296,166,126,40,247,378,404,345,164,378,246,129,75,297,118,212,354,173,157,128,332,0,134,339,171,350,278,349,353,350,333,216,20,369,166,134,290,281,391,48,251,250,25,0,354,179,164,390,176,305,136,345,158,158,378,179,164,6,202,354,171,101,348,332,340,33,330,241,143,349,136),
(330,340,331,153,159,336,296,335,340,41,349,243,336,243,42,98,349,354,334,347,346,304,253,223,116,334,119,340,230,348,334,340,0,166,40,348,75,354,46,119,21,21,134,243,375,273,37,273,376,301,299,164,363,354,164,153,75,372,326,196,220,283,340,0,136,242,249,297,247,348,347,347,24,187,65,373,357,326,39,309,130,279,349,64,133,153,51,57,70,126,166,18,70,125,125,378,283,348,335,252,127,220,343,121,252,241,250,121,71,348,334,100,186,2,129,232,31,0,0,232,169,124,269,198,320,343,77,261,332,134,249,221,0,229,134,74,14,270,184,299,286,320,143,302,270,286,198,184,314,261,369,272,369,188,175,65,136,241,346,205,18,282,330,330,247,344,68,346,357,374,19,58,291,161,208,79,249,224,363,190,64,385,42,323,79,56,320,183,353,236,243),
(354,354,316,133,375,375,243,131,131,319,137,114,251,15,107,376,227,342,120,353,340,340,357,345,57,353,116,123,405,196,329,38,227,14,375,226,386,358,172,363,83,186,358,320,373,373,348,78,310,294,152,350,134,348,124,376,121,12,363,378,353,97,116,0,237,386,375,297,36,294,134,342,283,342,84,92,100,57,349,377,347,121,359,36,325,115,125,294,77,337,84,386,375,349,329,142,0,345,309,197,162,348,189,251,238,334,348,297,152,245,134,237,338,375,120,194,329,250,348,131,284,0,31,130,169,249,325,107,183,353,20,69,114,348,374,158,107,164,94,166,45,114,348,314,160,331,38,132,299,36,229,332,282,154,237,107,247,258,316,334,313,75,357,164,291,294,162,291,70,357,113,337,306,46,370,202,355,320,68,328,134,281,167,122,302,245,60,135,116,104,345),
(377,231,109,32,243,80,37,175,134,164,372,237,310,354,208,175,189,131,171,178,250,354,282,116,116,355,157,247,243,375,349,238,12,355,326,267,81,355,143,241,281,273,241,232,330,355,262,119,125,218,329,313,83,328,309,325,264,27,110,345,114,189,184,0,350,345,247,283,186,359,122,200,102,37,75,166,241,241,186,310,49,325,24,193,238,340,92,125,83,348,349,284,335,374,304,354,14,193,284,316,283,352,134,314,317,249,249,346,173,123,355,201,226,353,251,382,167,31,345,384,110,386,187,350,156,83,174,325,331,350,238,130,345,301,355,332,220,188,385,36,303,302,321,147,272,367,284,178,180,325,359,329,326,244,363,284,2,357,349,297,301,284,2,226,340,327,25,192,91,342,120,335,62,375,350,129,91,299,128,121,349,363,290,45,334,354,339,116,14,16,375),
(126,147,282,279,189,5,175,340,353,31,79,352,103,187,247,354,92,344,33,330,92,175,173,130,104,295,375,87,244,128,48,45,381,223,308,347,330,189,305,305,304,166,321,303,88,231,386,141,231,370,382,340,155,243,345,290,334,52,309,126,387,350,114,0,336,286,119,387,154,340,375,235,286,127,238,346,121,129,329,224,92,325,334,243,344,330,300,73,193,266,297,373,387,348,375,323,304,349,335,347,367,270,111,14,31,286,240,170,325,273,273,36,132,117,203,160,53,114,107,357,172,114,84,109,110,332,125,278,330,354,175,214,354,170,283,58,119,363,335,354,284,342,171,323,386,352,150,24,166,63,347,341,373,182,57,348,299,232,134,302,246,385,216,328,246,230,273,276,325,40,302,295,313,273,378,166,208,330,286,189,214,350,350,188,130,241,241,391,328,306,349),
(349,72,47,123,247,158,343,143,325,18,97,243,350,18,155,81,25,185,360,325,238,360,175,164,353,346,175,294,375,350,70,324,121,335,226,282,16,31,196,172,125,273,36,97,18,123,332,175,246,261,164,131,334,350,299,325,322,342,378,290,157,72,79,0,116,157,286,171,350,208,92,166,392,350,170,348,125,31,56,255,125,158,79,290,355,385,83,281,162,158,48,250,352,243,78,136,345,350,332,360,176,345,164,189,278,304,58,128,31,350,109,378,158,158,202,323,176,343,332,345,88,345,354,101,334,334,121,114,381,367,335,37,359,241,376,82,215,326,240,348,232,139,226,345,227,198,168,101,336,101,101,15,55,331,374,378,143,371,84,6,335,335,171,385,228,303,346,314,278,325,120,377,220,340,113,251,119,339,339,332,349,344,377,220,284,325,314,342,359,139,331),
(341,374,238,121,101,34,121,35,0,169,84,132,335,240,313,385,313,106,159,345,340,37,261,116,330,286,123,343,148,356,334,330,382,250,62,335,241,0,404,345,134,170,154,122,319,330,52,329,114,134,84,328,48,83,237,248,267,348,248,336,348,127,354,0,89,232,350,324,283,98,280,0,0,94,325,35,110,153,376,331,357,83,166,337,128,14,350,378,325,317,278,330,341,218,31,345,132,132,186,325,367,130,248,262,119,79,249,299,346,169,129,362,98,357,201,284,167,96,305,33,357,20,347,335,330,329,357,110,334,348,357,200,278,248,220,189,243,350,329,95,345,244,14,16,387,175,125,174,231,299,348,314,136,387,116,348,375,325,172,254,223,257,132,154,51,366,125,330,330,348,334,37,120,57,347,343,345,343,334,137,61,319,282,127,82,330,354,170,314,280,82),
(343,158,186,305,348,132,187,131,0,350,348,342,158,303,24,330,252,387,243,121,378,171,354,348,335,371,121,55,0,19,264,334,343,130,39,306,220,110,158,16,261,169,196,267,404,169,5,343,152,356,168,164,175,136,168,345,330,335,173,347,24,255,356,0,158,48,314,100,134,34,189,305,158,378,158,171,354,371,374,228,36,325,107,136,347,389,189,43,143,361,65,244,352,244,226,33,125,43,354,367,190,226,20,43,353,70,36,215,161,320,258,183,80,89,345,361,11,294,353,91,198,368,251,251,386,183,145,243,164,239,89,375,12,251,45,124,83,143,134,40,330,11,179,129,180,270,325,184,73,314,127,330,164,70,169,225,234,20,330,39,325,256,39,6,92,30,385,110,141,229,115,344,349,119,382,152,376,198,232,134,348,337,348,171,232,208,220,353,342,57,20),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(148,332,341,196,371,129,343,278,302,314,160,385,330,331,11,375,345,276,107,131,225,81,334,232,241,16,349,157,125,244,154,345,387,375,374,344,169,0,387,0,83,328,355,278,317,344,335,124,233,353,220,300,238,194,296,180,355,56,354,284,109,244,348,0,373,25,109,182,126,198,31,5,90,52,82,14,14,120,240,170,354,382,220,330,334,285,0,128,91,341,70,121,150,332,332,214,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(123,263,188,169,353,131,285,175,302,332,189,255,203,179,332,241,136,220,386,175,297,249,86,161,6,114,62,42,88,354,241,354,32,114,329,84,129,344,187,9,356,136,357,136,349,57,236,244,348,88,237,84,341,49,96,124,280,47,254,283,282,348,389,0,172,14,373,130,128,125,164,101,332,377,345,339,346,340,297,246,349,343,10,333,331,102,38,340,229,160,58,350,326,75,313,309,329,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(329,36,137,186,11,313,332,40,107,341,345,341,339,84,330,171,164,130,301,83,323,63,236,369,273,193,354,157,193,324,354,310,40,229,36,75,32,13,175,251,64,229,244,385,246,78,130,70,129,122,354,186,45,341,309,337,56,262,193,125,325,264,119,0,335,42,125,381,346,166,251,71,344,120,172,284,261,301,220,326,329,373,130,350,180,306,172,164,159,310,244,54,136,371,18,316,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(154,381,48,348,241,131,362,249,5,166,187,349,117,325,329,61,339,366,343,250,58,170,168,248,297,102,131,79,130,172,92,121,131,2,362,58,128,103,304,150,119,273,299,310,40,354,130,175,233,286,391,158,330,386,341,264,328,87,162,70,164,375,262,0,164,360,341,309,102,299,156,173,175,164,158,350,330,333,325,100,59,360,347,20,228,375,164,0,333,0,8,230,80,57,0,0,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(116,348,0,135,32,37,0,58,188,383,237,15,377,0,47,350,241,332,174,62,223,381,170,329,57,327,350,345,310,107,32,247,282,31,31,265,297,282,175,83,367,84,237,66,384,188,14,172,300,172,198,357,84,94,129,84,310,198,0,126,321,84,201,0,198,198,92,310,87,14,55,375,177,226,348,117,354,354,198,137,348,172,65,117,58,383,126,36,32,319,162,29,172,65,170,126,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(232,65,65,245,57,286,375,200,14,89,377,331,340,35,342,241,344,52,14,387,342,375,78,375,81,134,278,212,308,314,129,354,121,304,37,186,131,334,316,183,334,298,240,74,285,348,231,370,100,180,170,92,310,347,37,232,193,72,143,344,50,282,376,0,375,354,83,346,35,316,104,326,119,148,349,136,330,100,348,43,162,0,63,370,282,50,348,387,296,273,64,174,404,246,84,293,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(172,160,332,81,304,349,110,332,100,325,216,354,325,352,162,164,286,57,170,170,17,92,37,346,129,374,185,164,123,157,92,341,350,349,352,304,63,179,176,176,20,0,6,78,78,245,92,362,184,224,47,171,196,92,231,90,75,107,14,39,243,2,334,0,109,120,109,363,52,109,334,347,109,128,2,337,120,179,234,110,128,88,228,249,252,367,97,137,137,377,367,0,371,70,241,350,11,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,224,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10),
(371,110,110,20,323,354,79,84,249,59,175,369,164,130,340,140,341,3,404,340,377,58,3,97,164,88,324,241,355,332,336,330,83,193,194,284,357,226,80,186,332,284,350,374,220,282,123,55,373,152,340,282,186,196,378,373,284,65,208,386,33,80,226,0,173,314,375,62,204,194,343,373,346,196,376,196,186,334,107,119,36,380,135,75,182,332,330,154,278,310,178,323,163,284,248,169,374,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,232,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,18,18,19,19,19,19,19,19,19),
(164,157,391,135,232,122,175,363,377,354,122,180,331,337,121,103,359,45,125,186,115,341,310,340,78,328,102,189,327,147,58,310,248,196,82,363,370,348,69,147,196,292,48,404,37,187,102,119,292,330,240,282,168,34,332,347,342,329,325,125,347,2,121,0,125,371,186,39,272,214,343,220,356,188,190,236,190,162,152,341,190,123,175,188,173,251,182,330,305,140,378,246,354,293,385,136,282,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,21,21,21,21,21,21,21,21,21,22,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,29,29,29,29,29,29,29,29,29,29,29,30,30,30,31,31,31,31,31,31,31,31,31,31,32,32),
(115,350,377,128,366,356,6,66,241,386,329,372,242,244,57,136,164,84,326,75,141,375,129,236,75,372,299,321,130,196,389,354,179,320,75,198,378,217,237,171,240,161,75,238,352,152,145,251,378,152,75,242,175,325,2,349,345,237,160,114,247,325,127,0,0,247,252,31,159,114,354,334,331,183,179,352,34,34,345,276,154,97,0,117,175,35,219,295,385,145,345,383,146,36,241,387,247,32,32,32,370,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,284,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40),
(170,137,226,193,369,110,330,163,349,329,241,178,203,264,345,66,320,350,143,325,293,373,71,331,58,309,203,310,241,73,83,252,252,180,95,335,75,172,309,305,143,232,325,310,344,241,166,325,357,383,156,0,220,381,31,241,127,231,172,175,140,43,35,0,349,162,234,241,378,52,387,46,178,92,278,160,366,125,330,66,63,226,358,127,62,164,125,330,370,127,332,354,383,127,143,363,162,40,40,40,40,40,40,41,42,42,42,42,42,42,42,43,43,382,43,43,43,44,44,44,44,44,45,45,45,45,45,45,45,46,33,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,49,50,50,50,50,51,51,51,52,52,52,52,52,52,52,52,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56),
(129,40,347,252,58,348,232,232,354,236,241,348,143,125,354,264,228,47,20,346,180,336,152,162,162,375,164,179,79,252,228,350,164,173,173,196,290,100,158,22,345,259,356,302,180,335,220,375,80,72,376,0,348,284,353,375,311,84,189,298,186,30,404,0,354,329,378,102,331,375,90,90,291,130,282,87,154,62,306,97,100,391,171,175,59,375,14,40,121,353,349,386,123,373,355,329,332,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,368,62,62,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,311,65,65,65,65,65,65,65),
(346,375,348,186,294,62,11,373,352,92,90,305,294,180,302,84,341,241,354,241,294,304,57,102,299,164,216,332,59,164,356,375,360,162,262,335,316,258,386,199,375,332,209,249,82,184,357,375,131,375,354,148,8,232,208,164,353,232,20,171,209,393,375,0,134,123,314,375,155,110,349,386,375,258,70,378,216,240,90,363,320,154,88,131,309,316,344,178,175,97,393,384,9,241,375,154,163,66,66,66,66,66,66,66,66,66,67,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,73,73,73,73,73,319,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,76,77,77,77,77,77,77,77),
(231,170,391,354,297,0,348,330,15,92,84,232,221,129,376,387,340,36,59,332,386,354,340,375,142,97,261,299,261,92,141,278,189,375,92,175,297,92,350,326,249,0,348,120,245,92,334,240,128,385,376,391,404,299,216,273,121,255,221,354,236,386,318,0,326,36,123,152,404,228,273,385,164,360,344,354,282,131,220,160,220,10,19,321,378,228,64,329,321,43,220,334,36,147,57,385,340,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,0,85,84,84,84,84,84,84,84,84,84,84,84,84,84),
(297,100,385,328,321,347,248,220,220,311,33,310,64,174,168,330,329,153,43,371,151,151,36,52,168,362,51,127,248,70,362,173,245,40,284,84,243,40,114,241,109,283,82,191,250,378,171,207,19,7,294,114,373,64,348,286,131,250,237,164,381,28,61,0,53,322,131,140,131,161,231,37,183,378,323,128,298,246,344,383,355,108,130,232,348,68,278,331,378,199,97,245,193,10,278,229,171,84,84,84,84,84,84,84,84,84,84,84,240,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,86,86,87,87,87,87,87,87,88,88,88,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,91,91,91,91,91,91,91,91,91,91,91,105,91,91,91,91,91,0,93,93,94,94,94,94),
(217,84,79,88,79,284,184,334,248,193,179,102,250,37,349,220,14,155,128,357,263,92,108,376,157,58,27,84,316,164,159,134,100,332,107,352,331,375,36,298,378,393,313,124,90,88,152,357,222,334,240,157,388,225,232,91,303,99,354,125,371,116,374,0,367,377,175,170,253,84,367,97,243,137,383,27,389,20,341,15,300,332,237,337,116,348,356,45,404,329,68,334,92,129,337,186,79,94,94,94,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,99,99,99,100,100,100,100,100,100,100,100,100,100,100,101,101,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,103,103,103,104,104,104,104,104,104,105),
(71,83,378,114,245,249,191,243,97,284,357,110,305,356,39,267,374,212,243,334,173,231,70,385,40,284,378,244,173,125,21,121,14,378,48,345,360,390,232,234,354,381,368,277,104,348,116,31,147,237,362,92,404,92,209,301,51,64,301,161,167,334,20,0,189,294,305,168,57,84,125,193,153,56,128,381,160,334,175,284,360,241,225,241,232,88,134,175,175,345,58,269,379,96,243,166,284,106,106,106,106,106,106,106,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,12,108,108,109,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,196,110,110,110,110,110,110,110,111,111,112,112,112,112,113,113,113,113,113,114,114,114,114,114,114,114,114,114,115,115,115,115,115,115,115,116,116,116,116,116,116,116,116,116,116,116),
(158,153,354,356,109,373,303,309,212,306,348,241,308,381,377,226,296,377,243,385,308,175,175,125,320,350,354,157,173,245,166,158,243,356,376,250,166,15,71,390,164,284,179,350,356,385,354,79,282,372,282,405,110,208,53,370,243,368,232,8,329,276,141,0,262,14,299,349,372,189,303,116,88,134,196,377,164,297,114,314,273,170,382,7,160,77,250,110,332,84,164,356,175,134,241,7,370,116,116,116,116,116,116,116,117,117,117,117,117,117,117,117,117,118,118,118,118,118,119,119,119,119,119,119,119,119,119,119,119,119,119,119,120,120,120,120,120,120,120,120,120,120,120,120,120,120,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,122,122,122,122,122,122,123,123,123,123,123,123,123,123,123,123,92,92,92,92,92,92,92,92),
(117,117,270,305,15,190,387,125,164,335,84,221,11,97,339,124,382,305,270,82,126,196,270,270,221,330,167,150,20,119,286,92,332,317,212,164,393,62,212,311,158,294,133,95,374,133,353,92,29,377,343,356,126,354,129,323,258,326,249,199,386,315,215,0,85,129,286,384,232,373,276,114,375,92,82,357,258,57,130,80,389,133,367,6,84,375,241,377,114,367,330,84,348,282,20,378,250,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,140,125,125,125,125,125,125,125),
(171,378,280,88,346,84,320,373,56,40,284,376,341,389,132,8,250,196,286,391,152,131,258,108,348,129,378,39,149,196,136,152,116,47,119,94,306,335,148,334,251,87,179,343,231,332,84,331,314,261,311,349,162,335,135,106,65,314,294,126,333,121,136,0,125,341,375,326,373,404,36,249,286,9,314,334,323,332,94,339,309,339,335,114,330,84,313,299,72,154,84,131,116,375,345,132,83,125,125,125,125,125,125,125,125,126,126,126,126,126,126,126,126,126,126,126,126,126,128,128,128,128,128,128,128,128,128,128,128,128,128,128,220,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,134,129,129,129,129,129,129,129,129,129,92,129,129,129,129,129,129,129,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130),
(92,340,258,387,282,74,169,404,167,306,251,280,241,384,241,323,374,332,285,348,306,323,89,324,13,383,23,104,389,178,172,348,369,14,46,171,190,241,245,310,387,122,388,330,386,337,167,130,81,265,193,354,387,79,404,340,350,279,241,340,333,125,143,0,332,264,190,241,71,376,62,193,191,355,347,10,294,249,15,119,94,387,190,325,84,325,340,96,191,335,166,387,233,357,349,309,98,130,130,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,132,132,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,135,135,135,135,135,135,135,136,136,136,136,136,136,128,136,136,136,137,137,137,137,137,137),
(375,357,36,31,56,331,355,387,340,350,325,94,0,350,130,348,383,208,9,116,226,377,125,301,251,290,357,331,299,330,261,306,84,357,373,90,263,116,366,308,341,297,373,387,306,120,23,14,83,50,164,301,349,330,387,162,381,243,182,375,404,198,234,0,166,341,387,92,334,299,404,13,348,362,198,244,122,332,92,276,339,254,341,299,127,366,393,375,278,270,170,354,79,256,46,392,125,137,137,137,137,137,138,138,138,91,139,139,139,139,139,140,140,140,140,140,140,141,141,141,141,141,141,141,142,142,142,142,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,144,144,144,144,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,148,148,149,149,149,149,149,150,150,150,150,151,151,152,152,152,152,152,152,152,152,153,153,153,153,153,153,153,153),
(256,31,265,339,121,117,390,330,244,357,55,350,121,330,273,125,126,119,362,48,335,385,14,304,348,216,299,348,277,340,92,18,243,158,240,343,241,231,220,196,162,335,390,152,353,340,162,332,31,128,175,31,350,278,333,332,391,390,179,330,158,162,166,0,114,258,378,373,65,330,350,306,357,332,299,335,85,85,241,20,237,333,371,89,350,100,392,304,25,241,327,350,162,304,175,294,89,153,153,153,154,154,154,154,155,155,155,155,156,156,156,156,156,156,156,157,157,157,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,159,159,159,159,159,159,159,160,160,160,160,160,160,160,160,160,161,161,162,162,162,162,162,162,162,162,162,162,162,163,163,163,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164),
(0,282,97,378,134,188,193,98,309,135,84,282,99,385,354,3,78,294,180,172,232,78,33,325,14,92,38,172,135,189,371,179,232,92,92,176,189,55,346,353,353,82,6,346,97,353,361,186,348,378,348,261,253,244,119,348,348,346,244,332,354,159,355,0,79,278,82,278,166,400,244,114,38,82,114,37,52,84,331,230,156,238,175,375,354,330,335,330,143,121,121,334,276,114,126,377,276,164,164,164,164,164,164,164,164,167,166,166,166,166,166,166,166,166,166,166,166,166,166,166,167,167,167,167,167,167,167,167,167,167,167,168,168,168,168,168,168,168,168,161,168,168,168,168,169,169,169,169,169,170,170,170,170,170,170,170,170,170,170,170,170,171,171,171,171,171,171,171,171,171,171,171,171,171,171,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173),
(37,341,37,387,323,121,115,110,234,166,250,5,170,230,127,5,121,341,59,0,96,96,96,65,264,200,381,313,232,348,250,124,134,40,178,129,367,174,92,160,123,353,118,348,246,357,57,114,375,0,373,34,374,353,385,311,405,344,372,0,109,283,169,0,131,14,62,104,326,340,237,48,66,0,313,134,48,153,166,166,327,153,166,166,48,283,295,313,153,372,375,57,214,245,208,313,313,173,173,173,173,174,174,174,174,174,174,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,404,404,404,404,404,404,404,404,404,404,404,404,404,404,176,176,176,176,176,176,177,177,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,179,179,180,180,180,180,180,180,180,180,180,181,181,181,181,181,181,182,182,182,182,182,182,182,182),
(173,371,294,297,371,348,249,144,26,241,62,119,37,258,263,355,29,246,82,229,227,353,254,326,241,232,330,330,144,65,81,6,20,340,310,386,148,375,208,237,386,377,332,198,250,143,37,346,227,375,338,77,113,386,153,374,311,52,186,335,335,181,335,0,213,326,326,339,145,353,113,228,278,313,186,45,282,250,307,391,92,353,336,320,36,318,69,203,232,97,164,370,299,129,167,291,16,182,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,185,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,187,187,187,188,188,188,188,188,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,190,190,190,190,190,190,191,191,191,191,191,191,191,191,192,192,193,193,193,193,193,193,194,194,194,194,194,194,195,196),
(178,233,162,251,115,57,205,200,258,282,383,134,68,232,123,328,186,264,381,37,179,223,62,3,203,289,357,376,262,316,325,136,124,71,14,32,345,321,285,305,297,383,348,168,92,232,335,404,223,32,175,123,227,41,126,175,381,175,128,350,404,342,399,0,314,208,168,52,153,334,319,226,375,128,329,52,0,333,0,82,379,57,150,216,136,40,135,156,166,319,241,52,18,343,263,356,361,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,197,197,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,199,199,199,199,199,199,199,200,200,200,200,200,201,201,201,202,203,203,203,203,203,204,205,205,206,207,208,208,208,208,208,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,211,211,212,212,212,212,212,212,212,213,214,214,214,214),
(332,16,337,154,169,345,175,123,358,179,250,361,176,208,360,332,328,132,170,132,128,92,109,339,190,212,91,125,375,375,339,303,332,29,330,354,337,134,133,336,281,133,310,284,304,240,240,100,241,310,331,59,79,224,303,79,79,175,171,331,248,227,149,0,84,362,83,164,354,159,0,20,243,0,120,387,15,198,65,69,9,29,348,25,174,56,342,220,61,58,244,175,348,92,125,328,241,214,214,215,215,215,215,216,216,216,216,217,217,217,405,218,219,219,221,221,221,221,222,223,223,223,223,223,223,223,224,224,224,224,224,224,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,229,230,230,231,231,231,231,231,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232),
(175,175,31,290,125,237,345,345,26,161,313,311,128,231,348,29,190,88,354,331,386,121,299,375,319,325,241,326,258,84,378,117,136,92,5,388,184,259,108,349,353,348,245,232,309,62,164,352,11,348,378,208,224,19,339,220,332,114,393,68,65,212,116,0,186,283,98,189,325,84,386,375,92,48,0,342,179,164,261,375,35,354,339,386,169,329,92,102,47,96,101,211,354,386,229,198,376,232,232,232,232,232,232,232,232,232,233,233,233,233,234,234,234,234,235,235,236,236,236,236,236,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,239,240,240,240,240,240,240,240,240,240,240,240,240,240,240,10,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,242),
(243,378,119,84,87,302,42,131,77,3,127,37,237,243,160,286,382,55,27,354,70,325,164,69,84,258,349,240,357,299,36,216,329,17,330,94,378,196,382,393,320,249,301,35,231,330,337,350,34,137,345,54,107,54,124,324,353,262,334,332,326,129,201,0,198,316,0,183,47,62,250,68,388,156,175,325,258,154,240,386,90,104,178,39,44,369,187,164,10,246,135,246,62,276,130,371,375,242,242,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,247,247,248,248,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250),
(94,149,246,345,324,13,377,125,170,304,310,59,116,110,45,32,119,84,157,276,345,348,311,241,323,27,373,363,133,14,348,188,0,228,66,249,143,333,323,354,354,84,166,341,201,27,328,45,334,233,198,3,350,155,155,126,190,393,393,389,262,330,347,0,345,250,125,84,404,125,230,114,114,115,345,316,386,247,189,120,282,87,377,243,325,20,325,92,71,220,301,251,373,343,284,158,387,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,253,253,254,254,254,254,255,255,255,255,255,256,256,256,257,257,258,258,258,258,258,258,258,258,258,258,259,259,260,261,261,261,261,261,261,261,261,261,261,262,262,262,263,263,263,263,263,263,263,263,263,263,264,264,265,265,265,266,266,267,267,268,268,268,269,269,269,269,270,270),
(220,355,186,357,286,381,100,254,342,0,325,353,296,349,284,45,284,357,373,263,164,252,355,164,134,330,40,340,316,172,328,63,243,389,238,54,355,40,354,226,240,199,330,82,357,267,25,189,300,194,296,172,330,97,159,91,54,305,179,341,385,102,387,0,103,393,311,27,229,0,282,159,171,311,339,184,314,378,3,166,387,237,340,130,317,129,325,318,26,354,348,386,14,175,21,370,162,270,270,271,271,271,272,272,272,272,273,273,273,274,275,276,276,276,29,276,276,276,276,276,277,277,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,279,279,279,279,279,279,279,279,280,280,280,280,280,280,280,280,280,280,280,281,281,281,281,281,281,281,281,281,281,281,281,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,283,283,283,283,283,283),
(244,182,345,171,330,234,103,107,62,175,281,279,62,343,20,62,367,282,341,116,5,189,404,376,238,126,189,48,211,121,137,349,278,349,104,35,116,276,147,243,180,361,363,164,325,92,343,283,188,223,31,63,265,162,354,127,378,149,125,181,357,10,353,0,175,220,75,309,81,136,81,263,82,153,292,344,340,84,305,329,68,294,334,330,268,357,280,125,300,171,354,331,294,216,341,357,354,283,283,283,283,283,284,284,284,284,284,284,284,284,284,284,284,284,282,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285,285,285,285,285,285,285,285,285,285,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286),
(334,109,2,121,121,92,386,333,323,192,163,126,24,282,273,166,143,355,55,375,305,369,300,345,79,66,335,97,378,125,142,268,343,220,7,72,236,355,214,377,328,234,241,362,35,373,77,208,350,48,334,241,78,125,354,153,15,385,189,158,130,248,245,0,0,332,297,404,348,340,335,348,156,162,128,62,375,11,220,196,119,228,296,304,318,248,127,325,172,121,223,142,357,10,164,378,378,286,287,287,288,288,288,288,289,289,290,290,290,291,291,291,291,292,292,292,292,293,293,293,293,294,294,294,294,294,294,294,294,294,294,294,294,294,284,294,294,295,295,295,295,295,295,295,295,296,296,296,296,297,297,297,297,297,297,297,297,297,339,297,297,298,298,298,299,299,299,299,299,299,299,299,299,299,299,300,300,300,301,301,301,301,301,301,301,301,302,302,302,302,302),
(2,170,341,246,157,363,329,265,265,246,175,297,318,183,357,237,354,343,92,132,341,249,297,132,83,20,333,348,332,354,134,332,332,349,244,350,173,315,117,356,171,220,186,158,153,158,92,305,182,162,162,121,295,375,325,153,118,164,92,162,118,179,92,0,153,175,125,0,308,162,251,334,348,176,187,17,375,334,134,116,340,54,84,340,175,116,109,128,134,10,345,369,369,153,18,330,286,302,302,302,302,303,303,303,303,303,303,303,303,303,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,305,305,305,305,305,305,305,305,305,305,305,305,305,306,306,306,306,306,306,306,306,306,306,306,307,308,308,308,308,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,310,310,310,310,310,310,310,310,311,311,311,311,311,312,312,312,313,313,313),
(64,249,66,0,136,372,347,354,107,386,333,80,75,6,37,243,326,356,356,137,241,314,375,355,252,353,246,241,376,198,324,82,82,108,84,254,228,208,307,237,62,134,164,84,367,340,232,232,332,64,17,19,369,312,97,350,179,47,121,183,84,169,348,0,332,164,348,237,245,281,348,324,196,245,102,248,160,337,129,249,124,356,34,11,107,341,373,240,332,167,14,355,353,129,57,63,121,313,313,313,313,313,313,313,314,314,314,314,314,314,314,314,314,314,314,314,314,315,315,315,315,316,316,316,316,316,316,316,316,316,316,316,317,317,318,318,318,318,318,318,319,319,319,320,320,320,320,320,320,320,320,320,320,320,321,321,321,321,321,321,321,322,322,323,323,323,323,323,323,323,323,323,323,323,323,323,323,323,323,323,324,324,324,324,324,324,324,324,324,324,325),
(295,134,241,354,137,330,178,164,65,306,154,107,107,9,81,325,319,357,301,243,325,208,325,167,68,75,8,385,324,24,189,0,156,129,313,184,340,190,129,284,341,345,262,325,84,355,186,325,264,335,331,350,284,376,305,378,387,309,355,188,156,70,249,0,330,328,357,354,350,126,8,294,47,330,327,166,226,261,92,329,339,107,348,232,117,348,70,207,331,116,121,180,348,326,350,308,376,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,326,326,326,326,326,326,326,326,326,326,327,327,327,328,328,328,328,328,328,328,328,328,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,330,330,330,330,330,330,330,330,330,330,330),
(25,0,241,311,279,62,175,325,375,35,250,232,354,125,174,246,349,126,326,334,182,372,372,180,354,172,48,164,182,334,32,196,391,294,249,307,375,231,127,250,17,168,102,330,241,381,81,168,136,136,349,309,128,256,334,329,376,343,294,40,36,58,164,0,320,348,131,55,241,92,333,281,246,350,30,164,364,341,378,363,335,183,335,241,261,125,109,385,129,18,110,79,162,129,156,193,164,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,332,330,330,330,330,330,331,331,331,331,331,331,331,331,331,331,276,331,331,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,332,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,334,334,334,342,334,334,334,334,334,334,334),
(249,212,175,70,334,378,173,164,173,227,347,232,279,347,350,286,330,24,250,251,24,182,129,378,385,120,405,229,376,181,77,143,192,330,140,355,250,171,341,286,314,333,354,116,325,59,38,325,59,384,88,354,348,84,230,129,376,57,348,376,129,375,335,0,254,375,137,30,348,254,320,171,228,220,393,14,280,134,149,342,373,348,224,84,62,84,103,375,375,254,348,320,199,96,341,372,250,334,334,334,334,334,334,334,335,335,335,335,335,335,124,335,335,335,335,335,335,335,335,335,335,335,335,335,335,336,336,336,336,336,336,336,336,336,336,337,337,337,337,337,337,337,337,337,108,337,337,337,337,337,338,338,338,338,338,338,338,339,339,339,339,339,339,339,339,339,340,340,340,340,340,340,340,340,340,340,340,340,340,40,340,340,340,340,340,341,341,341,341,341,341),
(354,208,20,0,221,241,148,258,126,392,196,129,77,263,378,102,349,138,337,0,154,211,286,335,154,164,135,282,129,373,172,92,348,21,382,291,253,164,339,304,154,306,355,171,37,32,59,167,229,81,355,345,70,375,348,241,104,144,241,309,309,84,376,0,335,65,154,317,353,353,355,84,354,317,345,348,228,57,357,302,96,118,261,355,200,132,301,226,271,211,350,129,118,148,166,164,284,341,341,341,341,342,342,342,342,342,342,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,220,220,220,220),
(404,348,65,335,332,325,16,26,92,278,239,14,240,125,381,125,54,92,57,358,79,81,333,343,17,256,182,158,5,363,121,26,299,216,57,166,58,286,369,14,158,240,375,0,286,321,284,11,335,20,35,157,173,330,332,158,372,56,134,360,284,125,348,0,158,344,330,83,84,0,6,110,92,92,332,100,15,345,340,136,233,184,189,189,235,284,294,92,373,136,189,311,166,220,375,137,330,220,220,220,220,220,220,220,220,220,220,220,347,347,347,347,347