#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.16
# from Racc grammar file "".
#

require 'racc/parser.rb'
class Ruby20Parser < RubyParser::Parser


require "ruby_lexer"
require "ruby_parser_extras"
include RubyLexer::State::Values

# :stopdoc:

# Local Variables: **
# racc-token-length-max:14 **
# End: **
##### State transition tables begin ###

clist = [
'-623,596,-111,-112,596,596,232,-623,-623,-623,-540,596,663,-623,-623',
'281,-623,231,596,645,-110,879,-94,281,-299,-623,-113,281,-115,825,95',
'-112,722,642,-80,724,-623,-623,96,-623,-623,-623,-623,-623,-213,769',
'662,-113,-109,770,-108,-116,-111,232,854,-110,222,223,757,-299,281,718',
'722,824,-108,721,-113,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623',
'-623,-623,-623,-623,-619,644,-623,-623,-623,-106,669,-437,222,223,-623',
'222,223,-623,-114,641,-619,-115,-623,-111,-623,283,-623,-623,-623,-623',
'-623,-623,-623,283,-623,-623,-623,283,125,-111,-112,125,125,124,-111',
'-112,124,124,125,-623,-623,960,-103,124,-623,125,-106,-110,-305,-103',
'124,-623,-110,-113,-112,-305,-305,-305,-113,232,283,-305,-305,-102,-305',
'-104,-100,-104,-99,-107,-102,125,853,-101,-620,817,124,825,125,228,222',
'223,626,124,-305,-305,277,-305,-305,-305,-305,-305,232,582,-540,232',
'816,722,517,-531,724,-537,626,-536,584,631,-531,-446,-537,125,-536,824',
'-213,-105,124,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,-113,-102,-305,-305,-305,-104,668,-99,592,591,-305,-617',
'626,-305,628,627,624,232,-305,-108,-305,-111,-305,-305,-305,-305,-305',
'-305,-305,-541,-305,-446,-305,924,628,627,-102,-115,-446,-102,-104,832',
'585,-104,584,-305,-305,-446,-105,-623,-305,-102,473,722,-623,-104,724',
'-305,-541,803,-114,-623,-623,-623,-529,-446,229,-623,-623,232,-623,-529',
'1039,628,627,646,-617,592,591,-623,-529,-534,-623,-109,830,621,229,272',
'-534,912,-623,-623,622,-623,-623,-623,-623,-623,-617,821,-100,746,-623',
'575,574,573,-116,576,-107,-623,663,585,-109,-110,-619,875,879,-616,-623',
'232,-116,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623',
'-623,-623,-623,-623,-623,-623,-623,-116,669,-623,-110,842,-623,626,-619',
'-623,626,843,-623,-104,-623,879,-623,603,-623,-623,-623,-623,-623,-623',
'-623,-113,-623,-623,-623,504,-623,-526,504,746,626,575,574,573,-526',
'576,872,-623,-623,-616,-623,626,-623,-526,269,270,-623,626,804,-623',
'-279,662,-112,-623,-623,-623,-533,803,-623,-623,-623,-616,-623,-533',
'628,627,790,628,627,792,-526,-623,-623,-623,-623,791,787,-526,781,268',
'267,776,-623,-623,718,-623,-623,-623,-623,-623,228,628,627,-102,-535',
'875,879,227,603,-101,905,-535,628,627,629,-111,225,1008,628,627,634',
'-110,718,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623,-623',
'-623,-623,718,228,-623,-623,-623,228,818,-623,607,753,-623,906,547,-623',
'-623,-280,-623,605,-623,252,-623,471,-623,-623,-623,-623,-623,-623,-623',
'-529,-623,-623,-623,125,538,539,-529,923,124,575,574,573,924,576,125',
'-623,-623,-623,-623,124,-623,249,-623,584,-526,251,250,-623,228,751',
'-112,-526,-526,-526,-532,772,-526,-526,-526,232,-526,-532,125,750,774',
'580,-305,124,-526,749,-526,-526,-526,-305,589,588,592,591,-620,740,-526',
'-526,-305,-526,-526,-526,-526,-526,746,-295,575,574,573,228,576,746',
'-295,575,574,573,535,576,232,125,738,-295,222,223,124,533,585,-526,-526',
'-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,736,742',
'-526,-526,-526,-539,-526,-526,742,734,-526,911,-539,-526,-526,733,-526',
'745,-526,730,-526,-539,-526,-526,-526,-526,-526,-526,-526,519,-526,3',
'-526,335,336,746,726,575,574,573,924,576,-538,592,591,-526,-526,-526',
'-526,-538,-526,584,-526,725,-529,222,223,-526,-538,420,-526,-529,-529',
'-529,422,421,-529,-529,-529,718,-529,715,228,580,928,710,709,709,-529',
'1030,-529,-529,-529,252,592,591,550,232,774,-278,-529,-529,934,-529',
'-529,-529,-529,-529,746,121,575,574,573,698,576,746,-94,575,574,573',
'1001,576,575,574,573,249,576,939,585,251,250,-529,-529,-529,-529,-529',
'-529,-529,-529,-529,-529,-529,-529,-529,-529,232,742,-529,-529,-529',
'-538,-529,-529,742,733,-529,942,-538,-529,-529,944,-529,953,-529,946',
'-529,-538,-529,-529,-529,-529,-529,-529,-529,948,-529,948,-529,232,232',
'746,954,575,574,573,924,576,-539,232,718,-529,-529,-529,-529,-539,-529',
'584,-529,232,-305,680,718,-529,-539,252,-529,-305,-305,-305,252,718',
'-305,-305,-305,252,-305,252,746,580,575,574,573,252,576,252,-305,-305',
'-305,232,592,591,673,286,661,718,-305,-305,232,-305,-305,-305,-305,-305',
'660,972,232,249,653,652,228,251,250,247,248,249,742,1036,-278,251,250',
'247,248,973,585,745,1034,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,-305,-305,733,-295,-305,-305,-305,228,819,-305,-295,976',
'-305,979,656,-305,-305,981,-305,-295,-305,983,-305,654,-305,-305,-305',
'-305,-305,-305,-305,232,-305,985,-305,746,650,575,574,573,924,576,643',
'640,252,637,633,-305,-305,-305,-305,584,-305,997,-305,998,-305,609,608',
'-305,262,263,-114,-305,-305,-305,411,603,232,-305,-305,252,-305,580',
'252,1010,249,545,255,544,251,250,247,248,592,591,253,228,254,540,262',
'263,-305,-305,1030,-305,-305,-305,-305,-305,228,718,718,774,781,286',
'249,470,255,232,251,250,247,248,289,536,471,1028,585,529,528,1031,842',
'-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'232,-79,-305,-305,-305,746,668,575,574,573,-305,576,519,-305,517,1037',
'514,1060,-305,1040,-305,948,-305,-305,-305,-305,-305,-305,-305,948,-305',
'948,-305,1045,286,923,1010,575,574,573,924,576,-306,742,504,-305,-305',
'231,-305,-306,-305,584,475,474,-314,733,1054,-305,-306,1056,-114,-314',
'-314,-314,1058,1060,-314,-314,-314,1060,-314,252,1001,580,575,574,573',
'472,576,423,-314,-314,589,588,592,591,715,262,263,418,-314,-314,401',
'-314,-314,-314,-314,-314,746,398,575,574,573,249,576,255,396,251,250',
'247,248,393,369,253,232,254,1010,718,585,718,334,-314,-314,-314,-314',
'-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,333,742,-314,-314',
'-314,-306,272,-314,-620,289,-314,-619,-306,-314,-314,232,-314,224,-314',
'221,-314,-306,-314,-314,-314,-314,-314,-314,-314,220,-314,746,-314,575',
'574,573,-306,576,948,1010,1083,1060,-349,-306,1060,-314,-314,-445,-314',
'-349,-314,1060,-306,219,-445,-445,-445,-314,-349,-445,-445,-445,746',
'-445,575,574,573,582,576,742,232,232,-445,-445,-445,900,901,252,584',
'902,119,120,252,-445,-445,-305,-445,-445,-445,-445,-445,-305,-305,709',
'286,286,232,-620,-305,709,580,-305,870,-620,519,,,-305,,,,592,591,,-445',
'-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,,,-445',
'-445,-445,,,-445,,286,-445,,,-445,-445,,-445,585,-445,,-445,,-445,-445',
'-445,-445,-445,-445,-445,,-445,-445,-445,128,129,130,131,132,128,129',
'130,131,132,,,-445,-445,-625,-445,,-445,,,,-625,-625,-625,-445,,-625',
'-625,-625,746,-625,575,574,573,924,576,,,,-625,-625,-625,-625,,,584',
',,,,-625,-625,,-625,-625,-625,-625,-625,128,129,130,131,132,,,,,580',
'128,129,130,131,132,,,,,,592,591,,-625,-625,-625,-625,-625,-625,-625',
'-625,-625,-625,-625,-625,-625,-625,,,-625,-625,-625,,,-625,,,-625,,',
'-625,-625,,-625,585,-625,,-625,,-625,-625,-625,-625,-625,-625,-625,',
'-625,-625,-625,923,,575,574,573,924,576,,,,,,-625,-625,-625,-625,584',
'-625,-644,-625,,,,,-625,-644,-644,-644,,,-644,-644,-644,,-644,252,,',
'580,,,,,-644,-644,-644,,589,588,592,591,262,263,,-644,-644,,-644,-644',
'-644,-644,-644,,,,,,249,,255,,251,250,247,248,,,,,,,,,585,,-644,-644',
'-644,-644,-644,-644,-644,-644,-644,-644,-644,-644,-644,-644,,,-644,-644',
'-644,,,-644,,286,-644,,,-644,-644,,-644,,-644,,-644,,-644,-644,-644',
'-644,-644,-644,-644,,-644,-644,-644,,,,,,,,,,,,,-644,-644,-624,-644',
',-644,,,,-624,-624,-624,-644,,-624,-624,-624,923,-624,575,574,573,924',
'576,,,,-624,-624,-624,-624,,,584,,,,,-624,-624,,-624,-624,-624,-624',
'-624,,,,,,,,,,580,,,,,,,,,589,588,592,591,,-624,-624,-624,-624,-624',
'-624,-624,-624,-624,-624,-624,-624,-624,-624,,,-624,-624,-624,,,-624',
',,-624,,,-624,-624,,-624,585,-624,,-624,,-624,-624,-624,-624,-624,-624',
'-624,,-624,-624,-624,578,,575,574,573,582,576,,,,,,-624,-624,-624,-624',
'584,-624,-296,-624,,,,,-624,-296,-296,-296,,,-296,-296,-296,,-296,252',
',,580,564,,,,,-296,-296,-296,589,588,592,591,262,263,,-296,-296,,-296',
'-296,-296,-296,-296,,,,,,249,,,,251,250,247,248,,,,,,,,,585,,-296,-296',
'-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,,,-296,-296',
'-296,,,-296,,,-296,,,-296,-296,,-296,,-296,,-296,,-296,-296,-296,-296',
'-296,-296,-296,,-296,,-296,746,,575,574,573,582,576,,,,,,-296,-296,-296',
'-296,584,-296,-644,-296,,,,,-296,-644,-644,-644,,,-644,-644,-644,,-644',
',,,580,,,,,-644,-644,,,,,592,591,,,,-644,-644,,-644,-644,-644,-644,-644',
'746,,575,574,573,582,576,746,,575,574,573,582,576,,,584,,,,,585,,584',
',,,,,,,,,,-644,,,,580,,,-644,,,,580,286,-644,,592,591,,,,,,592,591,',
',,,,,,,,,-644,-644,,,,,,,,,,,,,-644,585,,,,-644,,,585,,,,-644,186,197',
'187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184',
'198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,',
'181,188,179,180,176,177,178,136,138,,,137,,,,,,,,,170,171,,166,148,149',
'150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,,,,,,,,,163,162,,147',
'169,165,164,160,161,155,153,145,168,146,,,174,103,,,,,,,,,,104,,,,,',
',,,167,,,,,175,186,197,187,210,183,203,193,192,213,214,208,191,190,185',
'211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194',
'182,201,200,,,,,,181,188,179,180,176,177,178,136,138,,,137,,,,,,,,,170',
'171,,166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,',
',,,,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,103',
',,,,,,,,,104,,,,,,,,,167,,,,,175,186,197,187,210,183,203,193,192,213',
'214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212',
'207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,136',
'138,,,137,,,,,,,,,170,171,,166,148,149,150,157,154,156,,,151,152,,,',
'172,173,158,159,,,,,,,,,,,,,,163,162,,147,169,165,164,160,161,155,153',
'145,168,146,,,174,,,,,,,,,,,,,,,,,,,,167,,,,,175,186,197,187,210,183',
'203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204',
'196,189,,,,205,212,207,378,377,379,376,182,201,200,,,,,,181,188,179',
'180,373,374,375,371,138,109,108,372,,111,,,,,,,170,171,,166,148,149',
'150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,385,,,,,,,,163,162',
',147,169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,,,,,,,,,,',
',,167,,,,,175,186,197,187,210,183,203,193,192,213,214,208,191,190,185',
'211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194',
'182,201,200,,,,,,181,188,179,180,176,177,178,136,138,,,137,,,,,,,,,170',
'171,,166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,',
',,,,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,103',
',,,,,,,,,104,,,,,,,,,167,,,,,175,186,197,187,210,183,203,193,192,213',
'214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212',
'207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,136',
'138,135,,137,,,,,,,,,170,171,,166,148,149,150,157,154,156,,,151,152',
',,,172,173,158,159,,,,,,,,,,,,,,163,162,,147,169,165,164,160,161,155',
'153,145,168,146,,,174,103,,,,,,,,,,104,,,,,,,,,167,,,,,175,186,197,187',
'210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198',
'202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181',
'188,179,180,176,177,178,136,138,408,407,137,,409,,,,,,,170,171,,166',
'148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,,,,,,,,,163',
'162,,147,169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,,,,,307',
'85,86,87,12,78,,,167,79,80,,,175,83,,81,82,84,33,34,76,77,,,,,,88,31',
'30,113,112,114,115,,,22,,,,,657,11,49,309,13,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,252,256,257,258,259,269,270',
'264,265,260,261,,245,246,,,262,263,,43,,,311,,,62,63,,,64,,38,249,,255',
'48,251,250,247,248,268,267,253,23,254,,,,103,95,97,98,99,101,,,,96,104',
',266,,-253,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,657,11,49,309',
'13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,252',
'256,257,258,259,269,270,264,265,260,261,,245,246,,,262,263,,43,,,36',
',,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23,254,,,,103',
'95,97,98,99,101,,,,96,104,,266,,,,,66,,,93,100,102,307,85,86,87,12,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,252,256,257,258,259,269,270,264,265,260,261,,245,246,',
',262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267',
'253,23,254,,,,103,95,97,98,99,101,,,,96,104,,266,,,,,66,,,93,100,102',
'307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,252,256,257,258,259,269,270,264,265',
'260,261,,245,246,,,262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251',
'250,247,248,268,267,253,23,254,,,,103,95,97,98,99,101,,,,96,104,,266',
',,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,252,256,257,258,259',
'269,270,264,265,260,261,,245,246,,,262,263,,43,,,311,,,62,63,,,64,,38',
'249,,255,48,251,250,247,248,268,267,253,23,254,,,,103,95,97,98,99,101',
',,,96,104,,266,,,,,66,,,93,100,102,8,85,86,87,12,78,,,,79,80,,,,83,',
'81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,10',
'13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,252',
'256,257,258,259,269,270,264,265,260,261,,245,246,,,262,263,,43,,,36',
',,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23,254,,,,103',
'95,97,98,99,101,,,,96,104,,266,,,,,66,,,93,100,102,307,85,86,87,12,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,252,256,257,258,259,269,270,264,265,260,261,,245,246,',
',262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267',
'253,23,254,,,,103,95,97,98,99,101,,,,96,104,,266,,,,,66,,,93,100,102',
'307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,252,256,257,258,259,269,270,264,265',
'260,261,,245,246,,,262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251',
'250,247,248,268,267,253,23,254,,,,103,95,97,98,99,101,,,,96,104,232',
'266,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117',
'116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,252,-645',
'-645,-645,-645,269,270,,,-645,-645,,,,,,262,263,,43,,,36,,,62,63,,,64',
',38,249,,255,48,251,250,247,248,268,267,253,23,254,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49',
'309,13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44',
'252,-645,-645,-645,-645,269,270,,,-645,-645,,,,,,262,263,,43,,,36,,',
'62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23,254,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,',
',,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,',
'22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,252,-645,-645,-645,-645,269,270,,,-645,-645,,,,,,262,263',
',43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23',
'254,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,252,-645,-645,-645,-645,269,270,,,-645,-645,',
',,,,262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268',
'267,253,23,254,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
'307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,252,-645,-645,-645,-645,269,270,,,-645',
'-645,,,,,,262,263,,43,,,311,,,62,63,,,64,,38,249,,255,48,251,250,247',
'248,268,267,253,23,254,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93',
'100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60',
'109,108,110,,111,119,120,,105,106,,45,46,44,252,256,257,258,259,269',
'270,264,265,260,261,,-645,-645,,,262,263,,43,,,36,,,62,63,,,64,,38,249',
',255,48,251,250,247,248,268,267,253,23,254,,,,103,95,97,98,99,101,,',
',96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309',
'13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,252',
'256,257,258,259,269,270,264,265,260,261,,-645,-645,,,262,263,,43,,,36',
',,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23,254,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,',
',,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,',
'22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,252,256,257,258,259,269,270,,,260,261,,,,,,262,263,,43',
',,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253,23,254',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87',
'12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114',
'115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,252,256,257,258,259,269,270,264,,260,261,,,,,,262',
'263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268,267,253',
'23,254,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85',
'86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,252,-645,-645,-645,-645,269,270,,,-645,-645,',
',,,,262,263,,43,,,36,,,62,63,,,64,,38,249,,255,48,251,250,247,248,268',
'267,253,23,254,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
'307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,',
',64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,8,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,113,112,114,115,,,22,,,,,,11,49,10,13,117,116,118,107,60',
'109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,',
'36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33',
'34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116',
'118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,',
',,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309',
'13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,',
',,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79',
'80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,',
',,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87',
'12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114',
'115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113',
'112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109,108,110,,111',
'119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,',
'38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,',
',62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,309',
'13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,',
',,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,307,85,86,87,12,78,,,,79',
'80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,',
',,,11,49,309,13,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,746,64,575,574,573,924',
'576,48,,,,,,,,242,584,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,580',
',93,100,102,85,86,87,,78,,592,591,79,80,,,,83,,81,82,84,326,327,76,77',
',,,,,88,323,329,113,112,114,115,,,244,,,,585,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,746,64,575,574,573,582,576,48,,,,,,,,242,584,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,580,,93,100,102,85,86,87,,78,,592,591',
'79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,585,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,',
',,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112',
'114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,',
',,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323',
'329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,',
',88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76',
'77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326',
'327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116',
'118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,',
',,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,',
',117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,',
',,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,',
',,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46',
'44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,',
'103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,296,,48,',
',,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111',
'119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64',
',298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77',
',,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60',
'109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,693,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116',
'118,107,60,109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,',
',,,,,,,,,237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,',
',,49,,,117,116,118,107,60,109,108,110,300,111,119,120,,105,106,,45,46',
'44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,232,,,,,,66,,301,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112',
'114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,',
',,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323',
'329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,',
',88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76',
'77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,',
',237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49',
',13,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,',
',,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,',
',49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44',
',,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45',
'46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,796,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,298,,296,,48',
',,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329',
'113,112,114,115,,,244,,,,,,,324,,,117,116,118,107,60,109,108,110,,111',
'119,120,,105,106,,,,330,,,,,,,,,,,,,,,,,,,,987,,,243,,,62,63,,,64,,',
',,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329',
'113,112,114,115,,,244,,,,,,,324,,,117,116,118,107,60,109,108,110,,111',
'119,120,,105,106,,,,330,,,,,,,,,,,,,,,,,,,,320,,,243,,,62,63,,,64,,',
',,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,531,,,66,,,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111',
'119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64',
',298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77',
',,,,,88,323,329,113,112,114,115,,,244,,,,,,,324,,,117,116,118,107,60',
'109,108,110,,111,119,120,,105,106,,,,330,,,,,,,,,,,,,,,,,,,,320,,,316',
',,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,',
',,88,31,30,113,112,114,115,,,22,,,,,,11,49,309,13,117,116,118,107,60',
'109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,',
'36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,411,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327',
'76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326',
'327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118',
'107,60,109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,',
',,,,,237,,,243,,,62,63,,,64,,,,296,,48,,,,,,,,242,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49',
',,117,116,118,107,60,109,108,110,300,111,119,120,,105,106,,45,46,44',
',,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,693,,296,,48,,,,,,,,242,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115',
',,22,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,',
',,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,',
',,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300',
'111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,',
',,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60',
'109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116',
'118,107,60,109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,',
',,,,,,,,,237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,,',
'330,,,,,,,,,,,,,,,,,,,,320,,,316,,,62,63,,,64,,315,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,,',
'330,,,,,,,,,,,,,,,,,,,,320,,,243,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,332,,,66,,,93,100,102,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,49,,,117,116,118,107,60,109,108,110,300,111,119,120,,105,106,',
'45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,693,,,,48,,,,,,',
',242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112',
'114,115,,,244,,,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,,,330,,,,,,,,,,,,,,,,,,,,320,,,316,,,62,63,,,64,,,,,,,,,,',
',,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87',
',78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114',
'115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,298,,,,48,',
',,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,11,49,10,13,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,',
',,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329',
'113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111',
'119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64',
',,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323',
'329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,',
',88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,',
',,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,',
',,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,125',
',,,,124,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327',
'76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,324,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,,,330,,,,,,,,,,,,,,,,,,,,363',
',,36,,,62,63,,,64,,38,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,10,13,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,411,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116',
'118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,',
',,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,85,86,87,12,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,11,49,,13,117',
'116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,',
',,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,',
'117,116,118,107,60,109,108,110,300,111,119,120,,105,106,,45,46,44,,',
',,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,',
',103,95,97,98,99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,428,,,,48,,,,,',
',,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114',
'115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,428,,,,48,',
',,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,298',
',296,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301',
'93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,',
'93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,232,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,',
'88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108',
'110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62',
'63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,',
'88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108',
'110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62',
'63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,',
'88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108',
'110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62',
'63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,',
'88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108',
'110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62',
'63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,',
',,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76',
'77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326',
'327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116',
'118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,',
',,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,',
',117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,',
',,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,',
'49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44',
',,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,',
',49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44',
',,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,,',
'330,,,,,,,,,,,,,,,,,,,,320,,,316,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45',
'46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,693,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,550,,62,63,,,64,,,,,,48,,,,,',
',,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112',
'114,115,,,22,,,,,,11,49,,13,117,116,118,107,60,109,108,110,,111,119',
'120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,',
',,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329',
'113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300',
'111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,298,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77',
',,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60',
'109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326',
'327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118',
'107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,',
',,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118',
'107,60,109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,',
',,,,,237,,,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,',
'324,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,,,330,,',
',,,,,,,,,,,,,,,,,320,,,316,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,',
'324,,,117,116,118,610,60,109,108,611,,111,119,120,,105,106,,,,330,,',
',,,,,,,,,,,,,,,,,612,,,243,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,',
'324,,,117,116,118,610,60,109,108,611,,111,119,120,,105,106,,,,330,,',
',,,,,,,,,,,,,,,,,612,,,243,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,',
'49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44',
',,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45',
'46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,113,112,114,115,',
',244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',,,330,,,,,,,,,,,,,,,,,,,,994,,,243,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244',
',,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45',
'46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115',
',,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106',
',45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,428,,,,48,,,,,',
',,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112',
'114,115,,,244,,,,,,,324,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,,,330,,,,,,,,,,,,,,,,,,,,987,,,243,,,62,63,,,64,,,,,,,,,,',
',,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87',
',78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114',
'115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105',
'106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,',
',,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112',
'114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120',
',105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48',
',,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113',
'112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108,110,300,111',
'119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64',
',,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,301',
'93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107,60,109,108,110',
',111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63',
',,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,',
'93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,,,',
'88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109,108',
'110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62',
'63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76,77,,,',
',,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60,109',
'108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237,,,243',
',,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326,327,76',
'77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,326',
'327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,324,,,117,116',
'118,107,60,109,108,110,,111,119,120,,105,106,,,,330,,,,,,,,,,,,,,,,',
',,,320,,,316,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,113,112,114,115,,,22,,,,,,,49,,,117,116,118,107',
'60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,113,112,114,115,,,244,,,,,,,49,,,117,116,118,107,60',
'109,108,110,300,111,119,120,,105,106,,45,46,44,,,,,,,,,,,,,,,,,,,,237',
',,243,,,62,63,,,64,,298,,296,,48,,,,,,,,242,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,301,93,100,102,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49,,,117',
'116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,,,,,,,',
',,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,,,,,,,49',
',,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46,44,,,',
',,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,326,327,76,77,,,,,,88,323,329,113,112,114,115,,,244,',
',,,,,49,,,117,116,118,107,60,109,108,110,,111,119,120,,105,106,,45,46',
'44,,,,,,,,,,,,,,,,,,,,237,,,243,,,62,63,,,64,,,,,,48,,,,,,,,242,,,,',
'103,95,97,98,99,101,,,,96,104,457,461,,,456,,66,,,93,100,102,,170,171',
',166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,',
',,,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,,,',
',,,,,,1067,454,,,1068,,,,,,167,,,170,171,175,166,148,149,150,157,154',
'156,,,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165',
'164,160,161,155,153,145,168,146,,,174,,,,,,,,,,1069,461,,,1070,,,,,',
'167,,,170,171,175,166,148,149,150,157,154,156,,,151,152,,,,172,173,158',
'159,,,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155,153,145,168',
'146,,,174,,,,,,,,,,674,454,,,675,,,,,,167,,,170,171,175,166,148,149',
'150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162',
',147,169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,,,676,461',
',,677,,,,,,167,,,170,171,175,166,148,149,150,157,154,156,,,151,152,',
',,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155',
'153,145,168,146,,,174,,,,,,,,,,705,461,,,706,,,,,,167,,,170,171,175',
'166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,',
',,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,,,,',
',,,,,798,454,,,799,,,,,,167,,,170,171,175,166,148,149,150,157,154,156',
',,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164',
'160,161,155,153,145,168,146,,,174,,,,,,,,,,801,461,,,800,,,,,,167,,',
'170,171,175,166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159',
',,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146',
',,174,,,,,,,,,,502,454,,,503,,,,,,167,,,170,171,175,166,148,149,150',
'157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147',
'169,165,164,160,161,155,153,145,168,146,,578,174,575,574,573,582,576',
',,,,502,454,,,503,584,,,,,167,,,170,171,175,166,148,149,150,157,154',
'156,,,151,152,580,,,172,173,158,159,,,589,588,592,591,,,,,,,,163,162',
',147,169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,,585,702,454',
',,703,,,,,,167,,,170,171,175,166,148,149,150,157,154,156,,,151,152,',
',,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155',
'153,145,168,146,,,174,,,,,,,,,,886,461,,,887,,,,,,167,,,170,171,175',
'166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,',
',,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,,,,',
',,,,,766,461,,,767,,,,,,167,,,170,171,175,166,148,149,150,157,154,156',
',,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164',
'160,161,155,153,145,168,146,,,174,,,,,,,,,,450,454,,,451,,,,,,167,,',
'170,171,175,166,148,149,150,157,154,156,,,151,152,,,,172,173,158,159',
',,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155,153,145,168,146',
',,174,,,,,,,,,,764,454,,,765,,,,,,167,,,170,171,175,166,148,149,150',
'157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147',
'169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,,,674,454,,,675',
',,,,,167,,,170,171,175,166,148,149,150,157,154,156,,,151,152,,,,172',
'173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164,160,161,155,153',
'145,168,146,,,174,,,,,,,,,,1064,461,,,1063,,,,,,167,,,170,171,175,166',
'148,149,150,157,154,156,,,151,152,,,,172,173,158,159,,,,,,286,,,,,,',
',163,162,,147,169,165,164,160,161,155,153,145,168,146,,,174,,,,,,,,',
',676,461,,,677,,,,,,167,,,170,171,175,166,148,149,150,157,154,156,,',
'151,152,,,,172,173,158,159,,,,,,286,,,,,,,,163,162,,147,169,165,164',
'160,161,155,153,145,168,146,,578,174,575,574,573,582,576,578,,575,574',
'573,582,576,,,584,,,,,167,,584,,578,175,575,574,573,582,576,,,,,,,580',
',,584,,,,580,,589,588,592,591,,,,589,588,592,591,,,,,578,580,575,574',
'573,582,576,,,,589,588,592,591,,,584,,,,578,585,575,574,573,582,576',
',585,,,,,,,,584,,580,,,,,,,,585,589,588,592,591,,,,,,,,580,,,,,,,,,589',
'588,592,591,,,,,,,,,,,,,585,,,,,,,,,,,,,,,,,,,,585' ]
        racc_action_table = arr = ::Array.new(25517, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'457,957,1067,1069,933,353,747,457,457,457,235,883,799,457,457,325,457',
'22,352,402,1081,754,697,29,62,457,1068,65,608,831,92,766,561,399,697',
'561,457,457,92,457,457,457,457,457,334,612,798,765,361,612,360,364,764',
'22,728,884,784,784,598,62,683,760,556,831,235,556,799,457,457,457,457',
'457,457,457,457,457,457,457,457,457,457,1069,402,457,457,457,334,457',
'29,713,713,457,466,466,457,767,399,766,334,457,798,457,325,457,457,457',
'457,457,457,457,29,457,457,457,65,957,1067,1069,933,353,957,1067,1069',
'933,353,883,457,457,883,457,883,457,352,608,1081,456,766,352,457,1081',
'1068,457,456,456,456,1068,784,683,456,456,702,456,765,361,703,360,364',
'764,598,728,884,767,675,598,681,892,27,778,778,387,892,456,456,27,456',
'456,456,456,456,713,730,41,466,674,557,690,377,557,375,391,373,730,391',
'377,836,375,304,373,681,472,767,304,456,456,456,456,456,456,456,456',
'456,456,456,456,456,456,675,702,456,456,456,703,456,41,730,730,456,611',
'404,456,387,387,387,763,456,41,456,674,456,456,456,456,456,456,456,236',
'456,836,456,973,391,391,702,472,836,702,703,687,730,703,973,456,456',
'836,456,886,456,702,238,851,801,703,851,456,42,908,456,801,801,801,611',
'836,20,801,801,999,801,611,999,404,404,404,611,973,973,801,611,376,705',
'236,685,381,434,682,376,820,801,801,381,801,801,801,801,801,611,679',
'42,745,886,745,745,745,238,745,20,886,451,973,42,908,886,1047,1047,610',
'886,678,20,801,801,801,801,801,801,801,801,801,801,801,801,801,801,705',
'886,801,801,801,434,801,705,820,714,801,638,705,801,635,714,705,451',
'801,1013,801,1013,801,801,801,801,801,801,801,451,801,801,801,670,705',
'610,664,953,789,953,953,953,610,953,745,801,801,610,801,389,801,610',
'47,47,676,394,659,801,651,450,801,676,676,676,379,658,676,676,676,610',
'676,379,638,638,638,635,635,645,371,676,676,676,676,642,635,371,619',
'47,47,616,676,676,602,676,676,676,676,676,19,789,789,450,374,752,752',
'19,601,658,789,374,389,389,389,450,19,953,394,394,394,658,600,676,676',
'676,676,676,676,676,676,676,676,676,676,676,676,599,362,676,676,676',
'337,676,676,362,595,676,793,337,676,676,795,676,362,676,479,676,337',
'676,676,676,676,676,676,676,372,676,676,676,357,330,330,372,824,357',
'824,824,824,824,824,965,676,676,676,676,965,676,479,676,824,107,479',
'479,676,614,593,676,107,107,107,378,614,107,107,107,797,107,378,896',
'590,614,824,1070,896,107,586,107,107,107,1070,824,824,824,824,1070,578',
'107,107,1070,107,107,107,107,107,1045,321,1045,1045,1045,319,1045,742',
'321,742,742,742,319,742,824,5,571,321,17,17,5,319,824,107,107,107,107',
'107,107,107,107,107,107,107,107,107,107,570,1045,107,107,107,318,107',
'107,742,569,107,805,318,107,107,567,107,742,107,566,107,318,107,107',
'107,107,107,107,107,562,107,1,107,44,44,1060,559,1060,1060,1060,1060',
'1060,317,733,733,107,107,107,107,317,107,1060,107,558,110,351,351,107',
'317,135,107,110,110,110,135,135,110,110,110,552,110,551,986,1060,829',
'543,541,835,110,986,110,110,110,478,1060,1060,537,532,986,846,110,110',
'847,110,110,110,110,110,954,3,954,954,954,530,954,870,527,870,870,870',
'1039,870,1039,1039,1039,478,1039,855,1060,478,478,110,110,110,110,110',
'110,110,110,110,110,110,110,110,110,856,954,110,110,110,991,110,110',
'870,857,110,861,991,110,110,862,110,870,110,864,110,991,110,110,110',
'110,110,110,110,865,110,867,110,869,526,1058,871,1058,1058,1058,1058',
'1058,992,511,874,110,110,110,110,992,110,1058,110,510,677,499,880,110',
'992,483,110,677,677,677,482,885,677,677,677,493,677,481,580,1058,580',
'580,580,494,580,480,677,677,677,889,1058,1058,468,458,449,893,677,677',
'895,677,677,677,677,677,448,904,445,493,431,429,993,493,493,493,493',
'494,580,993,426,494,494,494,494,914,1058,580,993,677,677,677,677,677',
'677,677,677,677,677,677,677,677,677,915,995,677,677,677,433,677,677',
'995,917,677,918,433,677,677,919,677,995,677,921,677,433,677,677,677',
'677,677,677,677,922,677,923,677,1056,424,1056,1056,1056,1056,1056,401',
'398,548,396,393,677,677,677,677,1056,677,937,677,938,800,365,363,677',
'548,548,677,800,800,800,359,358,344,800,800,339,800,1056,485,955,548',
'336,548,335,548,548,548,548,1056,1056,548,1029,548,331,485,485,800,800',
'1029,800,800,800,800,800,234,964,968,1029,971,329,485,234,485,324,485',
'485,485,485,323,320,234,984,1056,314,313,987,989,800,800,800,800,800',
'800,800,800,800,800,800,800,800,800,312,310,800,800,800,872,800,872',
'872,872,800,872,297,800,294,994,293,1088,800,1003,800,1004,800,800,800',
'800,800,800,800,1005,800,1006,800,1007,282,1054,1009,1054,1054,1054',
'1054,1054,770,872,278,800,800,244,800,770,800,1054,240,239,31,1019,1022',
'800,770,1023,800,31,31,31,1024,1025,31,31,31,1027,31,498,939,1054,939',
'939,939,237,939,217,31,31,1054,1054,1054,1054,1033,498,498,133,31,31',
'102,31,31,31,31,31,1010,101,1010,1010,1010,498,1010,498,100,498,498',
'498,498,99,73,498,49,498,1046,1051,1054,1052,43,31,31,31,31,31,31,31',
'31,31,31,31,31,31,31,40,1010,31,31,31,536,25,31,1063,31,31,1064,536',
'31,31,1066,31,18,31,16,31,536,31,31,31,31,31,31,31,15,31,1008,31,1008',
'1008,1008,1037,1008,1072,1073,1077,1078,50,1037,1079,31,31,30,31,50',
'31,1080,1037,13,30,30,30,31,50,30,30,30,1040,30,1040,1040,1040,1040',
'1040,1008,719,729,30,30,30,785,785,712,1040,785,785,785,711,30,30,887',
'30,30,30,30,30,706,887,708,707,704,701,887,706,699,1040,887,744,706',
'692,,,706,,,,1040,1040,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,',
'30,30,30,,,30,,30,30,,,30,30,,30,1040,30,,30,,30,30,30,30,30,30,30,',
'30,30,30,525,525,525,525,525,554,554,554,554,554,,,30,30,462,30,,30',
',,,462,462,462,30,,462,462,462,981,462,981,981,981,981,981,,,,462,462',
'462,462,,,981,,,,,462,462,,462,462,462,462,462,308,308,308,308,308,',
',,,981,9,9,9,9,9,,,,,,981,981,,462,462,462,462,462,462,462,462,462,462',
'462,462,462,462,,,462,462,462,,,462,,,462,,,462,462,,462,981,462,,462',
',462,462,462,462,462,462,462,,462,462,462,979,,979,979,979,979,979,',
',,,,462,462,462,462,979,462,452,462,,,,,462,452,452,452,,,452,452,452',
',452,484,,,979,,,,,452,452,452,,979,979,979,979,484,484,,452,452,,452',
'452,452,452,452,,,,,,484,,484,,484,484,484,484,,,,,,,,,979,,452,452',
'452,452,452,452,452,452,452,452,452,452,452,452,,,452,452,452,,,452',
',452,452,,,452,452,,452,,452,,452,,452,452,452,452,452,452,452,,452',
'452,452,,,,,,,,,,,,,452,452,461,452,,452,,,,461,461,461,452,,461,461',
'461,976,461,976,976,976,976,976,,,,461,461,461,461,,,976,,,,,461,461',
',461,461,461,461,461,,,,,,,,,,976,,,,,,,,,976,976,976,976,,461,461,461',
'461,461,461,461,461,461,461,461,461,461,461,,,461,461,461,,,461,,,461',
',,461,461,,461,976,461,,461,,461,461,461,461,461,461,461,,461,461,461',
'350,,350,350,350,350,350,,,,,,461,461,461,461,350,461,60,461,,,,,461',
'60,60,60,,,60,60,60,,60,486,,,350,350,,,,,60,60,60,350,350,350,350,486',
'486,,60,60,,60,60,60,60,60,,,,,,486,,,,486,486,486,486,,,,,,,,,350,',
'60,60,60,60,60,60,60,60,60,60,60,60,60,60,,,60,60,60,,,60,,,60,,,60',
'60,,60,,60,,60,,60,60,60,60,60,60,60,,60,,60,948,,948,948,948,948,948',
',,,,,60,60,60,60,948,60,501,60,,,,,60,501,501,501,,,501,501,501,,501',
',,,948,,,,,501,501,,,,,948,948,,,,501,501,,501,501,501,501,501,946,',
'946,946,946,946,946,944,,944,944,944,944,944,,,946,,,,,948,,944,,,,',
',,,,,,501,,,,946,,,501,,,,944,501,501,,946,946,,,,,,944,944,,,,,,,,',
',,501,501,,,,,,,,,,,,,501,946,,,,501,,,944,,,,501,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,,,,12,12,12,12',
'12,12,12,12,12,12,,,,,,12,12,12,12,12,12,12,12,12,,,12,,,,,,,,,12,12',
',12,12,12,12,12,12,12,,,12,12,,,,12,12,12,12,,,,,,,,,,,,,,12,12,,12',
'12,12,12,12,12,12,12,12,12,12,,,12,12,,,,,,,,,,12,,,,,,,,,12,,,,,12',
'419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419',
'419,419,419,419,419,419,419,,,,419,419,419,419,419,419,419,419,419,419',
',,,,,419,419,419,419,419,419,419,419,419,,,419,,,,,,,,,419,419,,419',
'419,419,419,419,419,419,,,419,419,,,,419,419,419,419,,,,,,,,,,,,,,419',
'419,,419,419,419,419,419,419,419,419,419,419,419,,,419,419,,,,,,,,,',
'419,,,,,,,,,419,,,,,419,783,783,783,783,783,783,783,783,783,783,783',
'783,783,783,783,783,783,783,783,783,783,783,783,783,,,,783,783,783,783',
'783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,783,783,,,783',
',,,,,,,,783,783,,783,783,783,783,783,783,783,,,783,783,,,,783,783,783',
'783,,,,,,,,,,,,,,783,783,,783,783,783,783,783,783,783,783,783,783,783',
',,783,,,,,,,,,,,,,,,,,,,,783,,,,,783,75,75,75,75,75,75,75,75,75,75,75',
'75,75,75,75,75,75,75,75,75,75,75,75,75,,,,75,75,75,75,75,75,75,75,75',
'75,,,,,,75,75,75,75,75,75,75,75,75,75,75,75,,75,,,,,,,75,75,,75,75,75',
'75,75,75,75,,,75,75,,,,75,75,75,75,,,,,,75,,,,,,,,75,75,,75,75,75,75',
'75,75,75,75,75,75,75,,,75,,,,,,,,,,,,,,,,,,,,75,,,,,75,649,649,649,649',
'649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649',
'649,649,649,,,,649,649,649,649,649,649,649,649,649,649,,,,,,649,649',
'649,649,649,649,649,649,649,,,649,,,,,,,,,649,649,,649,649,649,649,649',
'649,649,,,649,649,,,,649,649,649,649,,,,,,,,,,,,,,649,649,,649,649,649',
'649,649,649,649,649,649,649,649,,,649,649,,,,,,,,,,649,,,,,,,,,649,',
',,,649,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11',
'11,11,11,,11,,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11',
'11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,',
',,,,,11,,,,,,,,,11,,,,,11,103,103,103,103,103,103,103,103,103,103,103',
'103,103,103,103,103,103,103,103,103,103,103,103,103,,,,103,103,103,103',
'103,103,103,103,103,103,,,,,,103,103,103,103,103,103,103,103,103,103',
'103,103,,103,,,,,,,103,103,,103,103,103,103,103,103,103,,,103,103,,',
',103,103,103,103,,,,,,,,,,,,,,103,103,,103,103,103,103,103,103,103,103',
'103,103,103,,,103,,,,,,,,,,,,311,311,311,311,311,311,,,103,311,311,',
',103,311,,311,311,311,311,311,311,311,,,,,,311,311,311,311,311,311,311',
',,311,,,,,438,311,311,311,311,311,311,311,311,311,311,311,311,,311,311',
'311,,311,311,,311,311,311,438,438,438,438,438,438,438,438,438,438,438',
',438,438,,,438,438,,311,,,311,,,311,311,,,311,,311,438,,438,311,438',
'438,438,438,438,438,438,311,438,,,,311,311,311,311,311,311,,,,311,311',
',438,,438,,,311,,,311,311,311,990,990,990,990,990,990,,,,990,990,,,',
'990,,990,990,990,990,990,990,990,,,,,,990,990,990,990,990,990,990,,',
'990,,,,,444,990,990,990,990,990,990,990,990,990,990,990,990,,990,990',
'990,,990,990,,990,990,990,444,444,444,444,444,444,444,444,444,444,444',
',444,444,,,444,444,,990,,,990,,,990,990,,,990,,990,444,,444,990,444',
'444,444,444,444,444,444,990,444,,,,990,990,990,990,990,990,,,,990,990',
',444,,,,,990,,,990,990,990,1016,1016,1016,1016,1016,1016,,,,1016,1016',
',,,1016,,1016,1016,1016,1016,1016,1016,1016,,,,,,1016,1016,1016,1016',
'1016,1016,1016,,,1016,,,,,,1016,1016,1016,1016,1016,1016,1016,1016,1016',
'1016,1016,1016,,1016,1016,1016,,1016,1016,,1016,1016,1016,549,549,549',
'549,549,549,549,549,549,549,549,,549,549,,,549,549,,1016,,,1016,,,1016',
'1016,,,1016,,1016,549,,549,1016,549,549,549,549,549,549,549,1016,549',
',,,1016,1016,1016,1016,1016,1016,,,,1016,1016,,549,,,,,1016,,,1016,1016',
'1016,243,243,243,243,243,243,,,,243,243,,,,243,,243,243,243,243,243',
'243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,243,243,243,243',
'243,243,243,243,243,243,243,243,,243,243,243,,243,243,,243,243,243,291',
'291,291,291,291,291,291,291,291,291,291,,291,291,,,291,291,,243,,,243',
',,243,243,,,243,,243,291,,291,243,291,291,291,291,291,291,291,243,291',
',,,243,243,243,243,243,243,,,,243,243,,291,,,,,243,,,243,243,243,316',
'316,316,316,316,316,,,,316,316,,,,316,,316,316,316,316,316,316,316,',
',,,,316,316,316,316,316,316,316,,,316,,,,,,316,316,316,316,316,316,316',
'316,316,316,316,316,,316,316,316,,316,316,,316,316,316,913,913,913,913',
'913,913,913,913,913,913,913,,913,913,,,913,913,,316,,,316,,,316,316',
',,316,,316,913,,913,316,913,913,913,913,913,913,913,316,913,,,,316,316',
'316,316,316,316,,,,316,316,,913,,,,,316,,,316,316,316,647,647,647,647',
'647,647,,,,647,647,,,,647,,647,647,647,647,647,647,647,,,,,,647,647',
'647,647,647,647,647,,,647,,,,,,647,647,647,647,647,647,647,647,647,647',
'647,647,,647,647,647,,647,647,,647,647,647,24,24,24,24,24,24,24,24,24',
'24,24,,24,24,,,24,24,,647,,,647,,,647,647,,,647,,647,24,,24,647,24,24',
'24,24,24,24,24,647,24,,,,647,647,647,647,647,647,,,,647,647,,24,,,,',
'647,,,647,647,647,1011,1011,1011,1011,1011,1011,,,,1011,1011,,,,1011',
',1011,1011,1011,1011,1011,1011,1011,,,,,,1011,1011,1011,1011,1011,1011',
'1011,,,1011,,,,,,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011',
'1011,,1011,1011,1011,,1011,1011,,1011,1011,1011,802,802,802,802,802',
'802,802,802,802,802,802,,802,802,,,802,802,,1011,,,1011,,,1011,1011',
',,1011,,1011,802,,802,1011,802,802,802,802,802,802,802,1011,802,,,,1011',
'1011,1011,1011,1011,1011,,,,1011,1011,,802,,,,,1011,,,1011,1011,1011',
'779,779,779,779,779,779,,,,779,779,,,,779,,779,779,779,779,779,779,779',
',,,,,779,779,779,779,779,779,779,,,779,,,,,,779,779,779,779,779,779',
'779,779,779,779,779,779,,779,779,779,,779,779,,779,779,779,497,497,497',
'497,497,497,497,497,497,497,497,,497,497,,,497,497,,779,,,779,,,779',
'779,,,779,,779,497,,497,779,497,497,497,497,497,497,497,779,497,,,,779',
'779,779,779,779,779,,,,779,779,497,497,,,,,779,,,779,779,779,594,594',
'594,594,594,594,,,,594,594,,,,594,,594,594,594,594,594,594,594,,,,,',
'594,594,594,594,594,594,594,,,594,,,,,,594,594,594,594,594,594,594,594',
'594,594,594,594,,594,594,594,,594,594,,594,594,594,491,491,491,491,491',
'491,491,,,491,491,,,,,,491,491,,594,,,594,,,594,594,,,594,,594,491,',
'491,594,491,491,491,491,491,491,491,594,491,,,,594,594,594,594,594,594',
',,,594,594,,,,,,,594,,,594,594,594,768,768,768,768,768,768,,,,768,768',
',,,768,,768,768,768,768,768,768,768,,,,,,768,768,768,768,768,768,768',
',,768,,,,,,768,768,768,768,768,768,768,768,768,768,768,768,,768,768',
'768,,768,768,,768,768,768,490,490,490,490,490,490,490,,,490,490,,,,',
',490,490,,768,,,768,,,768,768,,,768,,768,490,,490,768,490,490,490,490',
'490,490,490,768,490,,,,768,768,768,768,768,768,,,,768,768,,,,,,,768',
',,768,768,768,597,597,597,597,597,597,,,,597,597,,,,597,,597,597,597',
'597,597,597,597,,,,,,597,597,597,597,597,597,597,,,597,,,,,,597,597',
'597,597,597,597,597,597,597,597,597,597,,597,597,597,,597,597,,597,597',
'597,489,489,489,489,489,489,489,,,489,489,,,,,,489,489,,597,,,597,,',
'597,597,,,597,,597,489,,489,597,489,489,489,489,489,489,489,597,489',
',,,597,597,597,597,597,597,,,,597,597,,,,,,,597,,,597,597,597,786,786',
'786,786,786,786,,,,786,786,,,,786,,786,786,786,786,786,786,786,,,,,',
'786,786,786,786,786,786,786,,,786,,,,,,786,786,786,786,786,786,786,786',
'786,786,786,786,,786,786,786,,786,786,,786,786,786,488,488,488,488,488',
'488,488,,,488,488,,,,,,488,488,,786,,,786,,,786,786,,,786,,786,488,',
'488,786,488,488,488,488,488,488,488,786,488,,,,786,786,786,786,786,786',
',,,786,786,,,,,,,786,,,786,786,786,36,36,36,36,36,36,,,,36,36,,,,36',
',36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,36,36,36,36',
'36,36,36,36,36,36,36,36,,36,36,36,,36,36,,36,36,36,487,487,487,487,487',
'487,487,,,487,487,,,,,,487,487,,36,,,36,,,36,36,,,36,,36,487,,487,36',
'487,487,487,487,487,487,487,36,487,,,,36,36,36,36,36,36,,,,36,36,,,',
',,,36,,,36,36,36,879,879,879,879,879,879,,,,879,879,,,,879,,879,879',
'879,879,879,879,879,,,,,,879,879,879,879,879,879,879,,,879,,,,,,879',
'879,879,879,879,879,879,879,879,879,879,879,,879,879,879,,879,879,,879',
'879,879,477,477,477,477,477,477,477,477,477,477,477,,477,477,,,477,477',
',879,,,879,,,879,879,,,879,,879,477,,477,879,477,477,477,477,477,477',
'477,879,477,,,,879,879,879,879,879,879,,,,879,879,,,,,,,879,,,879,879',
'879,844,844,844,844,844,844,,,,844,844,,,,844,,844,844,844,844,844,844',
'844,,,,,,844,844,844,844,844,844,844,,,844,,,,,,844,844,844,844,844',
'844,844,844,844,844,844,844,,844,844,844,,844,844,,844,844,844,476,476',
'476,476,476,476,476,476,476,476,476,,476,476,,,476,476,,844,,,844,,',
'844,844,,,844,,844,476,,476,844,476,476,476,476,476,476,476,844,476',
',,,844,844,844,844,844,844,,,,844,844,,,,,,,844,,,844,844,844,826,826',
'826,826,826,826,,,,826,826,,,,826,,826,826,826,826,826,826,826,,,,,',
'826,826,826,826,826,826,826,,,826,,,,,,826,826,826,826,826,826,826,826',
'826,826,826,826,,826,826,826,,826,826,,826,826,826,495,495,495,495,495',
'495,495,,,495,495,,,,,,495,495,,826,,,826,,,826,826,,,826,,826,495,',
'495,826,495,495,495,495,495,495,495,826,495,,,,826,826,826,826,826,826',
',,,826,826,,,,,,,826,,,826,826,826,219,219,219,219,219,219,,,,219,219',
',,,219,,219,219,219,219,219,219,219,,,,,,219,219,219,219,219,219,219',
',,219,,,,,,219,219,219,219,219,219,219,219,219,219,219,219,,219,219',
'219,,219,219,,219,219,219,496,496,496,496,496,496,496,496,,496,496,',
',,,,496,496,,219,,,219,,,219,219,,,219,,219,496,,496,219,496,496,496',
'496,496,496,496,219,496,,,,219,219,219,219,219,219,,,,219,219,,,,,,',
'219,,,219,219,219,890,890,890,890,890,890,,,,890,890,,,,890,,890,890',
'890,890,890,890,890,,,,,,890,890,890,890,890,890,890,,,890,,,,,,890',
'890,890,890,890,890,890,890,890,890,890,890,,890,890,890,,890,890,,890',
'890,890,492,492,492,492,492,492,492,,,492,492,,,,,,492,492,,890,,,890',
',,890,890,,,890,,890,492,,492,890,492,492,492,492,492,492,492,890,492',
',,,890,890,890,890,890,890,,,,890,890,,,,,,,890,,,890,890,890,961,961',
'961,961,961,961,,,,961,961,,,,961,,961,961,961,961,961,961,961,,,,,',
'961,961,961,961,961,961,961,,,961,,,,,,961,961,961,961,961,961,961,961',
'961,961,961,961,,961,961,961,,961,961,,961,961,961,,,,,,,,,,,,,,,,,',
',,961,,,961,,,961,961,,,961,,961,,,,961,,,,,,,,961,,,,,961,961,961,961',
'961,961,,,,961,961,,,,,,,961,,,961,961,961,2,2,2,2,2,2,,,,2,2,,,,2,',
'2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2',
'2,2,,2,2,,2,2,2,,,,,,,,,,,,,,,,,,,,2,,,2,,,2,2,,,2,,2,,,,2,,,,,,,,2',
',,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,356,356,356,356,356,356,,,,356',
'356,,,,356,,356,356,356,356,356,356,356,,,,,,356,356,356,356,356,356',
'356,,,356,,,,,,356,356,356,356,356,356,356,356,356,356,356,356,,356',
'356,356,,356,356,,356,356,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356',
',,356,,356,,,,356,,,,,,,,356,,,,,356,356,356,356,356,356,,,,356,356',
',,,,,,356,,,356,356,356,355,355,355,355,355,355,,,,355,355,,,,355,,355',
'355,355,355,355,355,355,,,,,,355,355,355,355,355,355,355,,,355,,,,,',
'355,355,355,355,355,355,355,355,355,355,355,355,,355,355,355,,355,355',
',355,355,355,,,,,,,,,,,,,,,,,,,,355,,,355,,,355,355,,,355,,355,,,,355',
',,,,,,,355,,,,,355,355,355,355,355,355,,,,355,355,,,,,,,355,,,355,355',
'355,929,929,929,929,929,929,,,,929,929,,,,929,,929,929,929,929,929,929',
'929,,,,,,929,929,929,929,929,929,929,,,929,,,,,,929,929,929,929,929',
'929,929,929,929,929,929,929,,929,929,929,,929,929,,929,929,929,,,,,',
',,,,,,,,,,,,,,929,,,929,,,929,929,,,929,,929,,,,929,,,,,,,,929,,,,,929',
'929,929,929,929,929,,,,929,929,,,,,,,929,,,929,929,929,780,780,780,780',
'780,780,,,,780,780,,,,780,,780,780,780,780,780,780,780,,,,,,780,780',
'780,780,780,780,780,,,780,,,,,,780,780,780,780,780,780,780,780,780,780',
'780,780,,780,780,780,,780,780,,780,780,780,,,,,,,,,,,,,,,,,,,,780,,',
'780,,,780,780,,,780,,780,,,,780,,,,,,,,780,,,,,780,780,780,780,780,780',
',,,780,780,,,,,,,780,,,780,780,780,931,931,931,931,931,931,,,,931,931',
',,,931,,931,931,931,931,931,931,931,,,,,,931,931,931,931,931,931,931',
',,931,,,,,,931,931,931,931,931,931,931,931,931,931,931,931,,931,931',
'931,,931,931,,931,931,931,,,,,,,,,,,,,,,,,,,,931,,,931,,,931,931,,,931',
',931,,,,931,,,,,,,,931,,,,,931,931,931,931,931,931,,,,931,931,,,,,,',
'931,,,931,931,931,343,343,343,343,343,343,,,,343,343,,,,343,,343,343',
'343,343,343,343,343,,,,,,343,343,343,343,343,343,343,,,343,,,,,,343',
'343,343,343,343,343,343,343,343,343,343,343,,343,343,343,,343,343,,343',
'343,343,,,,,,,,,,,,,,,,,,,,343,,,343,,,343,343,,,343,,343,,,,343,,,',
',,,,343,,,,,343,343,343,343,343,343,,,,343,343,,,,,,,343,,,343,343,343',
'853,853,853,853,853,853,,,,853,853,,,,853,,853,853,853,853,853,853,853',
',,,,,853,853,853,853,853,853,853,,,853,,,,,,853,853,853,853,853,853',
'853,853,853,853,853,853,,853,853,853,,853,853,,853,853,853,,,,,,,,,',
',,,,,,,,,,853,,,853,,,853,853,,,853,,853,,,,853,,,,,,,,853,,,,,853,853',
'853,853,853,853,,,,853,853,,,,,,,853,,,853,853,853,854,854,854,854,854',
'854,,,,854,854,,,,854,,854,854,854,854,854,854,854,,,,,,854,854,854',
'854,854,854,854,,,854,,,,,,854,854,854,854,854,854,854,854,854,854,854',
'854,,854,854,854,,854,854,,854,854,854,,,,,,,,,,,,,,,,,,,,854,,,854',
',,854,854,,,854,,854,,,,854,,,,,,,,854,,,,,854,854,854,854,854,854,',
',,854,854,,,,,,,854,,,854,854,854,1018,1018,1018,1018,1018,1018,,,,1018',
'1018,,,,1018,,1018,1018,1018,1018,1018,1018,1018,,,,,,1018,1018,1018',
'1018,1018,1018,1018,,,1018,,,,,,1018,1018,1018,1018,1018,1018,1018,1018',
'1018,1018,1018,1018,,1018,1018,1018,,1018,1018,,1018,1018,1018,,,,,',
',,,,,,,,,,,,,,1018,,,1018,,,1018,1018,,,1018,,1018,,,,1018,,,,,,,,1018',
',,,,1018,1018,1018,1018,1018,1018,,,,1018,1018,,,,,,,1018,,,1018,1018',
'1018,249,249,249,,249,,,,249,249,,,,249,,249,249,249,249,249,249,249',
',,,,,249,249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249,249,249',
'249,249,249,,249,249,249,,249,249,,249,249,249,,,,,,,,,,,,,,,,,,,,249',
',,249,,,249,249,,1083,249,1083,1083,1083,1083,1083,249,,,,,,,,249,1083',
',,,249,249,249,249,249,249,,,,249,249,,,,,,,249,1083,,249,249,249,250',
'250,250,,250,,1083,1083,250,250,,,,250,,250,250,250,250,250,250,250',
',,,,,250,250,250,250,250,250,250,,,250,,,,1083,,,250,,,250,250,250,250',
'250,250,250,250,,250,250,250,,250,250,,250,250,250,,,,,,,,,,,,,,,,,',
',,250,,,250,,,250,250,,738,250,738,738,738,738,738,250,,,,,,,,250,738',
',,,250,250,250,250,250,250,,,,250,250,,,,,,,250,738,,250,250,250,251',
'251,251,,251,,738,738,251,251,,,,251,,251,251,251,251,251,251,251,,',
',,,251,251,251,251,251,251,251,,,251,,,,738,,,251,,,251,251,251,251',
'251,251,251,251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,',
',,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251',
'251,251,,,,251,251,,,,,,,251,,,251,251,251,252,252,252,,252,,,,252,252',
',,,252,,252,252,252,252,252,252,252,,,,,,252,252,252,252,252,252,252',
',,252,,,,,,,252,,,252,252,252,252,252,252,252,252,,252,252,252,,252',
'252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252,,,,,,252',
',,,,,,,252,,,,,252,252,252,252,252,252,,,,252,252,,,,,,,252,,,252,252',
'252,253,253,253,,253,,,,253,253,,,,253,,253,253,253,253,253,253,253',
',,,,,253,253,253,253,253,253,253,,,253,,,,,,,253,,,253,253,253,253,253',
'253,253,253,,253,253,253,,253,253,,253,253,253,,,,,,,,,,,,,,,,,,,,253',
',,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253,253,253,253,253,253',
',,,253,253,,,,,,,253,,,253,253,253,254,254,254,,254,,,,254,254,,,,254',
',254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254',
',,,,,,254,,,254,254,254,254,254,254,254,254,,254,254,254,,254,254,,254',
'254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,',
',254,,,,,254,254,254,254,254,254,,,,254,254,,,,,,,254,,,254,254,254',
'255,255,255,,255,,,,255,255,,,,255,,255,255,255,255,255,255,255,,,,',
',255,255,255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255',
'255,255,,255,255,255,,255,255,,255,255,255,,,,,,,,,,,,,,,,,,,,255,,',
'255,,,255,255,,,255,,,,,,255,,,,,,,,255,,,,,255,255,255,255,255,255',
',,,255,255,,,,,,,255,,,255,255,255,256,256,256,,256,,,,256,256,,,,256',
',256,256,256,256,256,256,256,,,,,,256,256,256,256,256,256,256,,,256',
',,,,,,256,,,256,256,256,256,256,256,256,256,,256,256,256,,256,256,,256',
'256,256,,,,,,,,,,,,,,,,,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,',
',256,,,,,256,256,256,256,256,256,,,,256,256,,,,,,,256,,,256,256,256',
'257,257,257,,257,,,,257,257,,,,257,,257,257,257,257,257,257,257,,,,',
',257,257,257,257,257,257,257,,,257,,,,,,,257,,,257,257,257,257,257,257',
'257,257,,257,257,257,,257,257,,257,257,257,,,,,,,,,,,,,,,,,,,,257,,',
'257,,,257,257,,,257,,,,,,257,,,,,,,,257,,,,,257,257,257,257,257,257',
',,,257,257,,,,,,,257,,,257,257,257,258,258,258,,258,,,,258,258,,,,258',
',258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258',
',,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258,,258',
'258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,',
',258,,,,,258,258,258,258,258,258,,,,258,258,,,,,,,258,,,258,258,258',
'259,259,259,,259,,,,259,259,,,,259,,259,259,259,259,259,259,259,,,,',
',259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259',
'259,259,,259,259,259,,259,259,,259,259,259,,,,,,,,,,,,,,,,,,,,259,,',
'259,,,259,259,,,259,,,,,,259,,,,,,,,259,,,,,259,259,259,259,259,259',
',,,259,259,,,,,,,259,,,259,259,259,260,260,260,,260,,,,260,260,,,,260',
',260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,,,260',
',,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260,,260',
'260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,',
',260,,,,,260,260,260,260,260,260,,,,260,260,,,,,,,260,,,260,260,260',
'261,261,261,,261,,,,261,261,,,,261,,261,261,261,261,261,261,261,,,,',
',261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261,261',
'261,261,,261,261,261,,261,261,,261,261,261,,,,,,,,,,,,,,,,,,,,261,,',
'261,,,261,261,,,261,,,,,,261,,,,,,,,261,,,,,261,261,261,261,261,261',
',,,261,261,,,,,,,261,,,261,261,261,262,262,262,,262,,,,262,262,,,,262',
',262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262,,,262',
',,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262,262,,262',
'262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262,,,,,,',
',262,,,,,262,262,262,262,262,262,,,,262,262,,,,,,,262,,,262,262,262',
'263,263,263,,263,,,,263,263,,,,263,,263,263,263,263,263,263,263,,,,',
',263,263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263',
'263,263,,263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,',
'263,,,263,263,,,263,,,,,,263,,,,,,,,263,,,,,263,263,263,263,263,263',
',,,263,263,,,,,,,263,,,263,263,263,264,264,264,,264,,,,264,264,,,,264',
',264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264,,,264',
',,,,,,264,,,264,264,264,264,264,264,264,264,,264,264,264,,264,264,,264',
'264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,,,,,264,,,,,,',
',264,,,,,264,264,264,264,264,264,,,,264,264,,,,,,,264,,,264,264,264',
'265,265,265,,265,,,,265,265,,,,265,,265,265,265,265,265,265,265,,,,',
',265,265,265,265,265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265',
'265,265,,265,265,265,,265,265,,265,265,265,,,,,,,,,,,,,,,,,,,,265,,',
'265,,,265,265,,,265,,,,,,265,,,,,,,,265,,,,,265,265,265,265,265,265',
',,,265,265,,,,,,,265,,,265,265,265,266,266,266,,266,,,,266,266,,,,266',
',266,266,266,266,266,266,266,,,,,,266,266,266,266,266,266,266,,,266',
',,,,,,266,,,266,266,266,266,266,266,266,266,,266,266,266,,266,266,,266',
'266,266,,,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,,266,,,,,,266,,,,,,',
',266,,,,,266,266,266,266,266,266,,,,266,266,,,,,,,266,,,266,266,266',
'271,271,271,,271,,,,271,271,,,,271,,271,271,271,271,271,271,271,,,,',
',271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271,271',
'271,271,,271,271,271,,271,271,,271,271,271,,,,,,,,,,,,,,,,,,,,271,,',
'271,,,271,271,,,271,,,,,,271,,,,,,,,271,,,,,271,271,271,271,271,271',
',,,271,271,,,,,,,271,,,271,271,271,661,661,661,,661,,,,661,661,,,,661',
',661,661,661,661,661,661,661,,,,,,661,661,661,661,661,661,661,,,661',
',,,,,,661,,,661,661,661,661,661,661,661,661,661,661,661,661,,661,661',
',661,661,661,,,,,,,,,,,,,,,,,,,,661,,,661,,,661,661,,,661,,,,661,,661',
',,,,,,,661,,,,,661,661,661,661,661,661,,,,661,661,,,,,,,661,,661,661',
'661,661,279,279,279,,279,,,,279,279,,,,279,,279,279,279,279,279,279',
'279,,,,,,279,279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279',
'279,279,279,279,279,279,279,279,,279,279,,279,279,279,,,,,,,,,,,,,,',
',,,,,279,,,279,,,279,279,,,279,,279,,279,,279,,,,,,,,279,,,,,279,279',
'279,279,279,279,,,,279,279,,,,,,,279,,279,279,279,279,660,660,660,,660',
',,,660,660,,,,660,,660,660,660,660,660,660,660,,,,,,660,660,660,660',
'660,660,660,,,660,,,,,,,660,,,660,660,660,660,660,660,660,660,660,660',
'660,660,,660,660,,660,660,660,,,,,,,,,,,,,,,,,,,,660,,,660,,,660,660',
',,660,,660,,660,,660,,,,,,,,660,,,,,660,660,660,660,660,660,,,,660,660',
',,,,,,660,,660,660,660,660,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,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,289,289,289,,289,,,,289,289,,,,289,,289,289,289,289,289,289,289',
',,,,,289,289,289,289,289,289,289,,,289,,,,,,,289,,,289,289,289,289,289',
'289,289,289,289,289,289,289,,289,289,,289,289,289,,,,,,,,,,,,,,,,,,',
',289,,,289,,,289,289,,,289,,289,,289,,289,,,,,,,,289,,,,,289,289,289',
'289,289,289,,,,289,289,289,,,,,,289,,289,289,289,289,657,657,657,,657',
',,,657,657,,,,657,,657,657,657,657,657,657,657,,,,,,657,657,657,657',
'657,657,657,,,657,,,,,,,657,,,657,657,657,657,657,657,657,657,,657,657',
'657,,657,657,,657,657,657,,,,,,,,,,,,,,,,,,,,657,,,657,,,657,657,,,657',
',,,,,657,,,,,,,,657,,,,,657,657,657,657,657,657,,,,657,657,,,,,,,657',
',,657,657,657,296,296,296,,296,,,,296,296,,,,296,,296,296,296,296,296',
'296,296,,,,,,296,296,296,296,296,296,296,,,296,,,,,,,296,,,296,296,296',
'296,296,296,296,296,,296,296,296,,296,296,,296,296,296,,,,,,,,,,,,,',
',,,,,,296,,,296,,,296,296,,,296,,,,,,296,,,,,,,,296,,,,,296,296,296',
'296,296,296,,,,296,296,,,,,,,296,,,296,296,296,298,298,298,,298,,,,298',
'298,,,,298,,298,298,298,298,298,298,298,,,,,,298,298,298,298,298,298',
'298,,,298,,,,,,,298,,,298,298,298,298,298,298,298,298,,298,298,298,',
'298,298,,298,298,298,,,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,,298,,',
',,,298,,,,,,,,298,,,,,298,298,298,298,298,298,,,,298,298,,,,,,,298,',
',298,298,298,300,300,300,,300,,,,300,300,,,,300,,300,300,300,300,300',
'300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300,,,300,300,300',
'300,300,300,300,300,,300,300,300,,300,300,,300,300,300,,,,,,,,,,,,,',
',,,,,,300,,,300,,,300,300,,,300,,,,,,300,,,,,,,,300,,,,,300,300,300',
'300,300,300,,,,300,300,,,,,,,300,,,300,300,300,301,301,301,,301,,,,301',
'301,,,,301,,301,301,301,301,301,301,301,,,,,,301,301,301,301,301,301',
'301,,,301,,,,,,,301,,,301,301,301,301,301,301,301,301,,301,301,301,',
'301,301,,301,301,301,,,,,,,,,,,,,,,,,,,,301,,,301,,,301,301,,,301,,',
',,,301,,,,,,,,301,,,,,301,301,301,301,301,301,,,,301,301,,,,,,,301,',
',301,301,301,654,654,654,,654,,,,654,654,,,,654,,654,654,654,654,654',
'654,654,,,,,,654,654,654,654,654,654,654,,,654,,,,,,,654,,,654,654,654',
'654,654,654,654,654,654,654,654,654,,654,654,,654,654,654,,,,,,,,,,',
',,,,,,,,,654,,,654,,,654,654,,,654,,654,,654,,654,,,,,,,,654,,,,,654',
'654,654,654,654,654,,,,654,654,,,,,,,654,,654,654,654,654,307,307,307',
'307,307,,,,307,307,,,,307,,307,307,307,307,307,307,307,,,,,,307,307',
'307,307,307,307,307,,,307,,,,,,307,307,,307,307,307,307,307,307,307',
'307,307,,307,307,307,,307,307,,307,307,307,,,,,,,,,,,,,,,,,,,,307,,',
'307,,,307,307,,,307,,307,,,,307,,,,,,,,307,,,,,307,307,307,307,307,307',
',,,307,307,,,,,,,307,,,307,307,307,653,653,653,,653,,,,653,653,,,,653',
',653,653,653,653,653,653,653,,,,,,653,653,653,653,653,653,653,,,653',
',,,,,,653,,,653,653,653,653,653,653,653,653,,653,653,653,,653,653,,653',
'653,653,,,,,,,,,,,,,,,,,,,,653,,,653,,,653,653,,,653,,,,,,653,,,,,,',
',653,,,,,653,653,653,653,653,653,,,,653,653,,,,,,,653,,,653,653,653',
'652,652,652,,652,,,,652,652,,,,652,,652,652,652,652,652,652,652,,,,',
',652,652,652,652,652,652,652,,,652,,,,,,,652,,,652,652,652,652,652,652',
'652,652,,652,652,652,,652,652,,652,652,652,,,,,,,,,,,,,,,,,,,,652,,',
'652,,,652,652,,,652,,652,,,,652,,,,,,,,652,,,,,652,652,652,652,652,652',
',,,652,652,,,,,,,652,,,652,652,652,774,774,774,,774,,,,774,774,,,,774',
',774,774,774,774,774,774,774,,,,,,774,774,774,774,774,774,774,,,774',
',,,,,,774,,,774,774,774,774,774,774,774,774,774,774,774,774,,774,774',
',774,774,774,,,,,,,,,,,,,,,,,,,,774,,,774,,,774,774,,,774,,774,,774',
',774,,,,,,,,774,,,,,774,774,774,774,774,774,,,,774,774,,,,,,,774,,774',
'774,774,774,985,985,985,,985,,,,985,985,,,,985,,985,985,985,985,985',
'985,985,,,,,,985,985,985,985,985,985,985,,,985,,,,,,,985,,,985,985,985',
'985,985,985,985,985,,985,985,985,,985,985,,,,985,,,,,,,,,,,,,,,,,,,',
'985,,,985,,,985,985,,,985,,,,,,,,,,,,,,,,,,,985,985,985,985,985,985',
',,,985,985,,,,,,,985,,,985,985,985,315,315,315,,315,,,,315,315,,,,315',
',315,315,315,315,315,315,315,,,,,,315,315,315,315,315,315,315,,,315',
',,,,,,315,,,315,315,315,315,315,315,315,315,,315,315,315,,315,315,,',
',315,,,,,,,,,,,,,,,,,,,,315,,,315,,,315,315,,,315,,,,,,,,,,,,,,,,,,',
'315,315,315,315,315,315,,,,315,315,,,,315,,,315,,,315,315,315,533,533',
'533,,533,,,,533,533,,,,533,,533,533,533,533,533,533,533,,,,,,533,533',
'533,533,533,533,533,,,533,,,,,,,533,,,533,533,533,533,533,533,533,533',
'533,533,533,533,,533,533,,533,533,533,,,,,,,,,,,,,,,,,,,,533,,,533,',
',533,533,,,533,,533,,533,,533,,,,,,,,533,,,,,533,533,533,533,533,533',
',,,533,533,,,,,,,533,,533,533,533,533,531,531,531,,531,,,,531,531,,',
',531,,531,531,531,531,531,531,531,,,,,,531,531,531,531,531,531,531,',
',531,,,,,,,531,,,531,531,531,531,531,531,531,531,,531,531,531,,531,531',
',,,531,,,,,,,,,,,,,,,,,,,,531,,,531,,,531,531,,,531,,,,,,,,,,,,,,,,',
',,531,531,531,531,531,531,,,,531,531,,,,,,,531,,,531,531,531,524,524',
'524,524,524,,,,524,524,,,,524,,524,524,524,524,524,524,524,,,,,,524',
'524,524,524,524,524,524,,,524,,,,,,524,524,524,524,524,524,524,524,524',
'524,524,524,,524,524,524,,524,524,,524,524,524,,,,,,,,,,,,,,,,,,,,524',
',,524,,,524,524,,,524,,524,,,,524,,,,,,,,524,,,,,524,524,524,524,524',
'524,,,,524,524,,,,,,524,524,,,524,524,524,519,519,519,,519,,,,519,519',
',,,519,,519,519,519,519,519,519,519,,,,,,519,519,519,519,519,519,519',
',,519,,,,,,,519,,,519,519,519,519,519,519,519,519,,519,519,519,,519',
'519,,519,519,519,,,,,,,,,,,,,,,,,,,,519,,,519,,,519,519,,,519,,,,,,519',
',,,,,,,519,,,,,519,519,519,519,519,519,,,,519,519,,,,,,,519,,,519,519',
'519,517,517,517,,517,,,,517,517,,,,517,,517,517,517,517,517,517,517',
',,,,,517,517,517,517,517,517,517,,,517,,,,,,,517,,,517,517,517,517,517',
'517,517,517,517,517,517,517,,517,517,,517,517,517,,,,,,,,,,,,,,,,,,',
',517,,,517,,,517,517,,,517,,,,517,,517,,,,,,,,517,,,,,517,517,517,517',
'517,517,,,,517,517,,,,,,,517,,517,517,517,517,514,514,514,,514,,,,514',
'514,,,,514,,514,514,514,514,514,514,514,,,,,,514,514,514,514,514,514',
'514,,,514,,,,,,,514,,,514,514,514,514,514,514,514,514,514,514,514,514',
',514,514,,514,514,514,,,,,,,,,,,,,,,,,,,,514,,,514,,,514,514,,,514,',
'514,,514,,514,,,,,,,,514,,,,,514,514,514,514,514,514,,,,514,514,,,,',
',,514,,514,514,514,514,877,877,877,,877,,,,877,877,,,,877,,877,877,877',
'877,877,877,877,,,,,,877,877,877,877,877,877,877,,,877,,,,,,,877,,,877',
'877,877,877,877,877,877,877,,877,877,877,,877,877,,877,877,877,,,,,',
',,,,,,,,,,,,,,877,,,877,,,877,877,,,877,,,,,,877,,,,,,,,877,,,,,877',
'877,877,877,877,877,,,,877,877,,,,,,,877,,,877,877,877,23,23,23,,23',
',,,23,23,,,,23,,23,23,23,23,23,23,23,,,,,,23,23,23,23,23,23,23,,,23',
',,,,,,23,,,23,23,23,23,23,23,23,23,,23,23,23,,23,23,,23,23,23,,,,,,',
',,,,,,,,,,,,,23,,,23,,,23,23,,,23,,,,,,23,,,,,,,,23,,,,,23,23,23,23',
'23,23,,,,23,23,,,,,,,23,,,23,23,23,724,724,724,,724,,,,724,724,,,,724',
',724,724,724,724,724,724,724,,,,,,724,724,724,724,724,724,724,,,724',
',,,,,,724,,,724,724,724,724,724,724,724,724,724,724,724,724,,724,724',
',724,724,724,,,,,,,,,,,,,,,,,,,,724,,,724,,,724,724,,,724,,,,,,724,',
',,,,,,724,,,,,724,724,724,724,724,724,,,,724,724,,,,,,,724,,724,724',
'724,724,740,740,740,,740,,,,740,740,,,,740,,740,740,740,740,740,740',
'740,,,,,,740,740,740,740,740,740,740,,,740,,,,,,,740,,,740,740,740,740',
'740,740,740,740,,740,740,740,,740,740,,740,740,740,,,,,,,,,,,,,,,,,',
',,740,,,740,,,740,740,,,740,,,,,,740,,,,,,,,740,,,,,740,740,740,740',
'740,740,,,,740,740,,,,,,,740,,,740,740,740,32,32,32,,32,,,,32,32,,,',
'32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,,32,,,32',
'32,32,32,32,32,32,32,32,32,32,32,,32,32,,32,32,32,,,,,,,,,,,,,,,,,,',
',32,,,32,,,32,32,,,32,,32,,32,,32,,,,,,,,32,,,,,32,32,32,32,32,32,,',
',32,32,,,,,,,32,,32,32,32,32,33,33,33,,33,,,,33,33,,,,33,,33,33,33,33',
'33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33',
'33,33,33,33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33',
',,33,,33,,33,,33,,,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,,,,,,,33,',
'33,33,33,33,34,34,34,,34,,,,34,34,,,,34,,34,34,34,34,34,34,34,,,,,,34',
'34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34',
',34,34,,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,34,,34',
',,,,,,,34,,,,,34,34,34,34,34,34,,,,34,34,,,,,,,34,,34,34,34,34,37,37',
'37,,37,,,,37,37,,,,37,,37,37,37,37,37,37,37,,,,,,37,37,37,37,37,37,37',
',,37,,,,,,,37,,,37,37,37,37,37,37,37,37,,37,37,37,,37,37,,,,37,,,,,',
',,,,,,,,,,,,,,37,,,37,,,37,37,,,37,,37,,,,,,,,,,,,,,,,,37,37,37,37,37',
'37,,,,37,37,,,,,,,37,,,37,37,37,38,38,38,,38,,,,38,38,,,,38,,38,38,38',
'38,38,38,38,,,,,,38,38,38,38,38,38,38,,,38,,,,,,,38,,,38,38,38,38,38',
'38,38,38,,38,38,38,,38,38,,,,38,,,,,,,,,,,,,,,,,,,,38,,,38,,,38,38,',
',38,,,,,,,,,,,,,,,,,,,38,38,38,38,38,38,,,,38,38,,,,38,,,38,,,38,38',
'38,721,721,721,,721,,,,721,721,,,,721,,721,721,721,721,721,721,721,',
',,,,721,721,721,721,721,721,721,,,721,,,,,,,721,,,721,721,721,721,721',
'721,721,721,721,721,721,721,,721,721,,721,721,721,,,,,,,,,,,,,,,,,,',
',721,,,721,,,721,721,,,721,,721,,,,721,,,,,,,,721,,,,,721,721,721,721',
'721,721,,,,721,721,,,,,,,721,,721,721,721,721,698,698,698,,698,,,,698',
'698,,,,698,,698,698,698,698,698,698,698,,,,,,698,698,698,698,698,698',
'698,,,698,,,,,,,698,,,698,698,698,698,698,698,698,698,,698,698,698,',
'698,698,,,,698,,,,,,,,,,,,,,,,,,,,698,,,698,,,698,698,,,698,,,,,,,,',
',,,,,,,,,,698,698,698,698,698,698,,,,698,698,,,,,,,698,,,698,698,698',
'762,762,762,,762,,,,762,762,,,,762,,762,762,762,762,762,762,762,,,,',
',762,762,762,762,762,762,762,,,762,,,,,,,762,,,762,762,762,762,762,762',
'762,762,,762,762,762,,762,762,,762,762,762,,,,,,,,,,,,,,,,,,,,762,,',
'762,,,762,762,,,762,,762,,,,762,,,,,,,,762,,,,,762,762,762,762,762,762',
',,,762,762,,,,,,,762,,,762,762,762,8,8,8,8,8,,,,8,8,,,,8,,8,8,8,8,8',
'8,8,,,,,,8,8,8,8,8,8,8,,,8,,,,,,8,8,8,8,8,8,8,8,8,8,8,8,,8,8,8,,8,8',
',8,8,8,,,,,,,,,,,,,,,,,,,,8,,,8,,,8,8,,,8,,8,,,,8,,,,,,,,8,,,,,8,8,8',
'8,8,8,,,,8,8,,,,,,,8,,,8,8,8,45,45,45,,45,,,,45,45,,,,45,,45,45,45,45',
'45,45,45,,,,,,45,45,45,45,45,45,45,,,45,,,,,,,45,,,45,45,45,45,45,45',
'45,45,,45,45,45,,45,45,,45,45,45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45',
',,45,,,,,,45,,,,,,,,45,,,,,45,45,45,45,45,45,,,,45,45,,,,,,,45,,,45',
'45,45,46,46,46,,46,,,,46,46,,,,46,,46,46,46,46,46,46,46,,,,,,46,46,46',
'46,46,46,46,,,46,,,,,,,46,,,46,46,46,46,46,46,46,46,,46,46,46,,46,46',
',46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,46',
',,,,46,46,46,46,46,46,,,,46,46,,,,,,,46,,,46,46,46,48,48,48,,48,,,,48',
'48,,,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,,',
'48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,,48,48,48,,,,,,,,,,,,',
',,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,48,,,,,48,48,48,48,48,48',
',,,48,48,,,,,,,48,,,48,48,48,67,67,67,,67,,,,67,67,,,,67,,67,67,67,67',
'67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67',
'67,67,,67,67,67,,67,67,,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67',
',,67,,,,,,67,,,,,,,,67,,,,,67,67,67,67,67,67,,,,67,67,,,,,,,67,,,67',
'67,67,68,68,68,,68,,,,68,68,,,,68,,68,68,68,68,68,68,68,,,,,,68,68,68',
'68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68,68,68,68,,68,68,68,,68,68',
',68,68,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,,,,,,68',
',,,,68,68,68,68,68,68,,,,68,68,,,,,,,68,,,68,68,68,71,71,71,,71,,,,71',
'71,,,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,',
'71,,,71,71,71,71,71,71,71,71,,71,71,71,,71,71,,71,71,71,,,,,,,,,,,,',
',,,,,,,71,,,71,,,71,71,,,71,,,,,,71,,,,,,,,71,,,,,71,71,71,71,71,71',
',,,71,71,71,,,,,71,71,,,71,71,71,72,72,72,,72,,,,72,72,,,,72,,72,72',
'72,72,72,72,72,,,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72',
'72,72,72,72,,72,72,72,,72,72,,,,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72',
',,72,,72,,,,,,,,,,,,,,,,,72,72,72,72,72,72,,,,72,72,,,,,,,72,,,72,72',
'72,123,123,123,123,123,,,,123,123,,,,123,,123,123,123,123,123,123,123',
',,,,,123,123,123,123,123,123,123,,,123,,,,,,123,123,123,123,123,123',
'123,123,123,123,123,123,,123,123,123,,123,123,,123,123,123,,,,,,,,,',
',,,,,,,,,,123,,,123,,,123,123,,,123,,123,,,,123,,,,,,,,123,,,,,123,123',
'123,123,123,123,,,,123,123,,,,,,123,123,,,123,123,123,128,128,128,,128',
',,,128,128,,,,128,,128,128,128,128,128,128,128,,,,,,128,128,128,128',
'128,128,128,,,128,,,,,,,128,,,128,128,128,128,128,128,128,128,,128,128',
'128,,128,128,,128,128,128,,,,,,,,,,,,,,,,,,,,128,,,128,,,128,128,,,128',
',,,,,128,,,,,,,,128,,,,,128,128,128,128,128,128,,,,128,128,,,,,,,128',
',,128,128,128,129,129,129,,129,,,,129,129,,,,129,,129,129,129,129,129',
'129,129,,,,,,129,129,129,129,129,129,129,,,129,,,,,,,129,,,129,129,129',
'129,129,129,129,129,,129,129,129,,129,129,,129,129,129,,,,,,,,,,,,,',
',,,,,,129,,,129,,,129,129,,,129,,,,,,129,,,,,,,,129,,,,,129,129,129',
'129,129,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,130,130',
'130,,,130,,,,,,,130,,,130,130,130,130,130,130,130,130,,130,130,130,',
'130,130,,130,130,130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,',
',,,130,,,,,,,,130,,,,,130,130,130,130,130,130,,,,130,130,,,,,,,130,',
',130,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,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,131,131,,,,131,131,,,,,,,131,,,131,131,131,132,132,132,132,132,',
',,132,132,,,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132',
'132,132,,,132,,,,,,132,132,,132,132,132,132,132,132,132,132,132,,132',
'132,132,,132,132,,132,132,132,,,,,,,,,,,,,,,,,,,,132,,,132,,,132,132',
',,132,,132,,,,132,,,,,,,,132,,,,,132,132,132,132,132,132,,,,132,132',
',,,,,,132,,,132,132,132,1034,1034,1034,,1034,,,,1034,1034,,,,1034,,1034',
'1034,1034,1034,1034,1034,1034,,,,,,1034,1034,1034,1034,1034,1034,1034',
',,1034,,,,,,,1034,,,1034,1034,1034,1034,1034,1034,1034,1034,1034,1034',
'1034,1034,,1034,1034,,1034,1034,1034,,,,,,,,,,,,,,,,,,,,1034,,,1034',
',,1034,1034,,,1034,,1034,,1034,,1034,,,,,,,,1034,,,,,1034,1034,1034',
'1034,1034,1034,,,,1034,1034,,,,,,,1034,,1034,1034,1034,1034,220,220',
'220,,220,,,,220,220,,,,220,,220,220,220,220,220,220,220,,,,,,220,220',
'220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220,220',
',220,220,220,,220,220,,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220,,,220',
'220,,,220,,220,,,,220,,,,,,,,220,,,,,220,220,220,220,220,220,,,,220',
'220,,,,,,,220,,,220,220,220,221,221,221,,221,,,,221,221,,,,221,,221',
'221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,',
',221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,,221,221',
'221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,221,,,,221,,,,,,,',
'221,,,,,221,221,221,221,221,221,,,,221,221,,,,,,,221,,,221,221,221,222',
'222,222,,222,,,,222,222,,,,222,,222,222,222,222,222,222,222,,,,,,222',
'222,222,222,222,222,222,,,222,,,,,,,222,,,222,222,222,222,222,222,222',
'222,,222,222,222,,222,222,,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222',
',,222,222,,,222,,,,,,222,,,,,,,,222,,,,,222,222,222,222,222,222,,,,222',
'222,,,,,,,222,,,222,222,222,223,223,223,,223,,,,223,223,,,,223,,223',
'223,223,223,223,223,223,,,,,,223,223,223,223,223,223,223,,,223,,,,,',
',223,,,223,223,223,223,223,223,223,223,,223,223,223,,223,223,,223,223',
'223,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,223,,,223,,,,,,223,,,,,,,,223',
',,,,223,223,223,223,223,223,,,,223,223,,,,,,,223,,,223,223,223,224,224',
'224,,224,,,,224,224,,,,224,,224,224,224,224,224,224,224,,,,,,224,224',
'224,224,224,224,224,,,224,,,,,,,224,,,224,224,224,224,224,224,224,224',
',224,224,224,,224,224,,224,224,224,,,,,,,,,,,,,,,,,,,,224,,,224,,,224',
'224,,,224,,,,,,224,,,,,,,,224,,,,,224,224,224,224,224,224,,,,224,224',
',,,,,,224,,,224,224,224,225,225,225,,225,,,,225,225,,,,225,,225,225',
'225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225',
',,225,225,225,225,225,225,225,225,225,225,225,225,,225,225,,225,225',
'225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,225,,225,,225,,,,',
',,,225,,,,,225,225,225,225,225,225,,,,225,225,,,,,,,225,,225,225,225',
'225,229,229,229,,229,,,,229,229,,,,229,,229,229,229,229,229,229,229',
',,,,,229,229,229,229,229,229,229,,,229,,,,,,,229,,,229,229,229,229,229',
'229,229,229,,229,229,229,,229,229,,229,229,229,,,,,,,,,,,,,,,,,,,,229',
',,229,,,229,229,,,229,,,,,,229,,,,,,,,229,,,,,229,229,229,229,229,229',
',,,229,229,,,,,,,229,,,229,229,229,230,230,230,,230,,,,230,230,,,,230',
',230,230,230,230,230,230,230,,,,,,230,230,230,230,230,230,230,,,230',
',,,,,,230,,,230,230,230,230,230,230,230,230,,230,230,230,,230,230,,230',
'230,230,,,,,,,,,,,,,,,,,,,,230,,,230,,,230,230,,,230,,,,,,230,,,,,,',
',230,,,,,230,230,230,230,230,230,,,,230,230,,,,,,,230,,,230,230,230',
'231,231,231,,231,,,,231,231,,,,231,,231,231,231,231,231,231,231,,,,',
',231,231,231,231,231,231,231,,,231,,,,,,,231,,,231,231,231,231,231,231',
'231,231,,231,231,231,,231,231,,231,231,231,,,,,,,,,,,,,,,,,,,,231,,',
'231,,,231,231,,,231,,,,,,231,,,,,,,,231,,,,,231,231,231,231,231,231',
',,,231,231,231,,,,,,231,,,231,231,231,669,669,669,,669,,,,669,669,,',
',669,,669,669,669,669,669,669,669,,,,,,669,669,669,669,669,669,669,',
',669,,,,,,,669,,,669,669,669,669,669,669,669,669,,669,669,669,,669,669',
',669,669,669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,,669,,,,,,669,',
',,,,,,669,,,,,669,669,669,669,669,669,,,,669,669,,,,,,,669,,,669,669',
'669,668,668,668,,668,,,,668,668,,,,668,,668,668,668,668,668,668,668',
',,,,,668,668,668,668,668,668,668,,,668,,,,,,,668,,,668,668,668,668,668',
'668,668,668,,668,668,668,,668,668,,668,668,668,,,,,,,,,,,,,,,,,,,,668',
',,668,,,668,668,,,668,,,,,,668,,,,,,,,668,,,,,668,668,668,668,668,668',
',,,668,668,,,,,,,668,,,668,668,668,663,663,663,,663,,,,663,663,,,,663',
',663,663,663,663,663,663,663,,,,,,663,663,663,663,663,663,663,,,663',
',,,,,,663,,,663,663,663,663,663,663,663,663,,663,663,663,,663,663,,663',
'663,663,,,,,,,,,,,,,,,,,,,,663,,,663,,,663,663,,,663,,,,,,663,,,,,,',
',663,,,,,663,663,663,663,663,663,,,,663,663,,,,,,,663,,,663,663,663',
'662,662,662,,662,,,,662,662,,,,662,,662,662,662,662,662,662,662,,,,',
',662,662,662,662,662,662,662,,,662,,,,,,,662,,,662,662,662,662,662,662',
'662,662,,662,662,662,,662,662,,662,662,662,,,,,,,,,,,,,,,,,,,,662,,',
'662,,,662,662,,,662,,,,,,662,,,,,,,,662,,,,,662,662,662,662,662,662',
',,,662,662,,,,,,,662,,,662,662,662,242,242,242,,242,,,,242,242,,,,242',
',242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242,242,,,242',
',,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,,242,242,,242',
'242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,,,,242,,,,,,',
',242,,,,,242,242,242,242,242,242,,,,242,242,,,,,,,242,,,242,242,242',
'245,245,245,,245,,,,245,245,,,,245,,245,245,245,245,245,245,245,,,,',
',245,245,245,245,245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245',
'245,245,,245,245,245,,245,245,,245,245,245,,,,,,,,,,,,,,,,,,,,245,,',
'245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,,,245,245,245,245,245,245',
',,,245,245,,,,,,,245,,,245,245,245,246,246,246,,246,,,,246,246,,,,246',
',246,246,246,246,246,246,246,,,,,,246,246,246,246,246,246,246,,,246',
',,,,,,246,,,246,246,246,246,246,246,246,246,,246,246,246,,246,246,,246',
'246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,',
',246,,,,,246,246,246,246,246,246,,,,246,246,,,,,,,246,,,246,246,246',
'247,247,247,,247,,,,247,247,,,,247,,247,247,247,247,247,247,247,,,,',
',247,247,247,247,247,247,247,,,247,,,,,,,247,,,247,247,247,247,247,247',
'247,247,,247,247,247,,247,247,,247,247,247,,,,,,,,,,,,,,,,,,,,247,,',
'247,,,247,247,,,247,,,,,,247,,,,,,,,247,,,,,247,247,247,247,247,247',
',,,247,247,,,,,,,247,,,247,247,247,248,248,248,,248,,,,248,248,,,,248',
',248,248,248,248,248,248,248,,,,,,248,248,248,248,248,248,248,,,248',
',,,,,,248,,,248,248,248,248,248,248,248,248,,248,248,248,,248,248,,248',
'248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248,248,,,248,,,,,,248,,,,,,',
',248,,,,,248,248,248,248,248,248,,,,248,248,,,,,,,248,,,248,248,248',
'623,623,623,,623,,,,623,623,,,,623,,623,623,623,623,623,623,623,,,,',
',623,623,623,623,623,623,623,,,623,,,,,,,623,,,623,623,623,623,623,623',
'623,623,,623,623,623,,623,623,,623,623,623,,,,,,,,,,,,,,,,,,,,623,,',
'623,,,623,623,,,623,,,,,,623,,,,,,,,623,,,,,623,623,623,623,623,623',
',,,623,623,,,,,,,623,,,623,623,623,617,617,617,,617,,,,617,617,,,,617',
',617,617,617,617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617',
',,,,,,617,,,617,617,617,617,617,617,617,617,,617,617,617,,617,617,,617',
'617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,,,,',
',617,,,,,617,617,617,617,617,617,,,,617,617,,,,,,,617,,,617,617,617',
'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,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,332,332,960,960,960,,960,,,,960,960,,,,960,,960,960,960',
'960,960,960,960,,,,,,960,960,960,960,960,960,960,,,960,,,,,,,960,,,960',
'960,960,960,960,960,960,960,,960,960,960,,960,960,,960,960,960,,,,,',
',,,,,,,,,,,,,,960,,,960,,,960,960,,,960,,960,,,,960,,,,,,,,960,,,,,960',
'960,960,960,960,960,,,,960,960,,,,,,,960,,,960,960,960,340,340,340,',
'340,,,,340,340,,,,340,,340,340,340,340,340,340,340,,,,,,340,340,340',
'340,340,340,340,,,340,,,,,,,340,,,340,340,340,340,340,340,340,340,,340',
'340,340,,340,340,,340,340,340,,,,,,,,,,,,,,,,,,,,340,,,340,,,340,340',
',,340,,,,,,340,,,,,,,,340,,,,,340,340,340,340,340,340,,,,340,340,,,',
',,,340,,,340,340,340,342,342,342,,342,,,,342,342,,,,342,,342,342,342',
'342,342,342,342,,,,,,342,342,342,342,342,342,342,,,342,,,,,,,342,,,342',
'342,342,342,342,342,342,342,,342,342,342,,342,342,,342,342,342,,,,,',
',,,,,,,,,,,,,,342,,,342,342,,342,342,,,342,,,,,,342,,,,,,,,342,,,,,342',
'342,342,342,342,342,,,,342,342,,,,,,,342,,,342,342,342,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',
'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,346,346,346,346,,,346',
',,,,,,346,,,346,346,346,346,346,346,346,346,346,346,346,346,,346,346',
',346,346,346,,,,,,,,,,,,,,,,,,,,346,,,346,,,346,346,,,346,,346,,,,346',
',,,,,,,346,,,,,346,346,346,346,346,346,,,,346,346,,,,,,,346,,346,346',
'346,346,347,347,347,,347,,,,347,347,,,,347,,347,347,347,347,347,347',
'347,,,,,,347,347,347,347,347,347,347,,,347,,,,,,,347,,,347,347,347,347',
'347,347,347,347,347,347,347,347,,347,347,,347,347,347,,,,,,,,,,,,,,',
',,,,,347,,,347,,,347,347,,,347,,,,,,347,,,,,,,,347,,,,,347,347,347,347',
'347,347,,,,347,347,,,,,,,347,,347,347,347,347,710,710,710,,710,,,,710',
'710,,,,710,,710,710,710,710,710,710,710,,,,,,710,710,710,710,710,710',
'710,,,710,,,,,,,710,,,710,710,710,710,710,710,710,710,,710,710,710,',
'710,710,,710,710,710,,,,,,,,,,,,,,,,,,,,710,,,710,,,710,710,,,710,,',
',,,710,,,,,,,,710,,,,,710,710,710,710,710,710,,,,710,710,,,,,,,710,',
',710,710,710,354,354,354,,354,,,,354,354,,,,354,,354,354,354,354,354',
'354,354,,,,,,354,354,354,354,354,354,354,,,354,,,,,,,354,,,354,354,354',
'354,354,354,354,354,,354,354,354,,354,354,,354,354,354,,,,,,,,,,,,,',
',,,,,,354,,,354,,,354,354,,,354,,,,,,354,,,,,,,,354,,,,,354,354,354',
'354,354,354,,,,354,354,,,,,,,354,,,354,354,354,605,605,605,,605,,,,605',
'605,,,,605,,605,605,605,605,605,605,605,,,,,,605,605,605,605,605,605',
'605,,,605,,,,,,,605,,,605,605,605,605,605,605,605,605,605,605,605,605',
',605,605,,605,605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605,,,605,',
'605,,605,,605,,,,,,,,605,,,,,605,605,605,605,605,605,,,,605,605,,,,',
',,605,,605,605,605,605,709,709,709,,709,,,,709,709,,,,709,,709,709,709',
'709,709,709,709,,,,,,709,709,709,709,709,709,709,,,709,,,,,,,709,,,709',
'709,709,709,709,709,709,709,,709,709,709,,709,709,,,,709,,,,,,,,,,,',
',,,,,,,,709,,,709,,,709,709,,,709,,,,,,,,,,,,,,,,,,,709,709,709,709',
'709,709,,,,709,709,,,,,,,709,,,709,709,709,368,368,368,,368,,,,368,368',
',,,368,,368,368,368,368,368,368,368,,,,,,368,368,368,368,368,368,368',
',,368,,,,,,,368,,,368,368,368,368,368,368,368,368,,368,368,368,,368',
'368,,,,368,,,,,,,,,,,,,,,,,,,,368,,,368,,,368,368,,,368,,,,,,,,,,,,',
',,,,,,368,368,368,368,368,368,,,,368,368,,,,,,,368,,,368,368,368,370',
'370,370,,370,,,,370,370,,,,370,,370,370,370,370,370,370,370,,,,,,370',
'370,370,370,370,370,370,,,370,,,,,,,370,,,370,370,370,370,370,370,370',
'370,,370,370,370,,370,370,,,,370,,,,,,,,,,,,,,,,,,,,370,,,370,,,370',
'370,,,370,,,,,,,,,,,,,,,,,,,370,370,370,370,370,370,,,,370,370,,,,,',
',370,,,370,370,370,796,796,796,,796,,,,796,796,,,,796,,796,796,796,796',
'796,796,796,,,,,,796,796,796,796,796,796,796,,,796,,,,,,,796,,,796,796',
'796,796,796,796,796,796,,796,796,796,,796,796,,796,796,796,,,,,,,,,',
',,,,,,,,,,796,,,796,,,796,796,,,796,,,,,,796,,,,,,,,796,,,,,796,796',
'796,796,796,796,,,,796,796,,,,,,,796,,,796,796,796,582,582,582,,582',
',,,582,582,,,,582,,582,582,582,582,582,582,582,,,,,,582,582,582,582',
'582,582,582,,,582,,,,,,,582,,,582,582,582,582,582,582,582,582,,582,582',
'582,,582,582,,582,582,582,,,,,,,,,,,,,,,,,,,,582,,,582,,,582,582,,,582',
',,,,,582,,,,,,,,582,,,,,582,582,582,582,582,582,,,,582,582,,,,,,,582',
',,582,582,582,803,803,803,,803,,,,803,803,,,,803,,803,803,803,803,803',
'803,803,,,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803',
'803,803,803,803,803,,803,803,803,,803,803,,803,803,803,,,,,,,,,,,,,',
',,,,,,803,,,803,,,803,803,,,803,,,,,,803,,,,,,,,803,,,,,803,803,803',
'803,803,803,,,,803,803,,,,,,,803,,,803,803,803,816,816,816,,816,,,,816',
'816,,,,816,,816,816,816,816,816,816,816,,,,,,816,816,816,816,816,816',
'816,,,816,,,,,,,816,,,816,816,816,816,816,816,816,816,,816,816,816,',
'816,816,,816,816,816,,,,,,,,,,,,,,,,,,,,816,,,816,,,816,816,,,816,,',
',,,816,,,,,,,,816,,,,,816,816,816,816,816,816,,,,816,816,,,,,,,816,',
',816,816,816,817,817,817,,817,,,,817,817,,,,817,,817,817,817,817,817',
'817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817',
'817,817,817,817,817,,817,817,817,,817,817,,817,817,817,,,,,,,,,,,,,',
',,,,,,817,,,817,,,817,817,,,817,,,,,,817,,,,,,,,817,,,,,817,817,817',
'817,817,817,,,,817,817,,,,,,,817,,,817,817,817,818,818,818,,818,,,,818',
'818,,,,818,,818,818,818,818,818,818,818,,,,,,818,818,818,818,818,818',
'818,,,818,,,,,,,818,,,818,818,818,818,818,818,818,818,,818,818,818,',
'818,818,,818,818,818,,,,,,,,,,,,,,,,,,,,818,,,818,,,818,818,,,818,,',
',,,818,,,,,,,,818,,,,,818,818,818,818,818,818,,,,818,818,,,,,,,818,',
',818,818,818,934,934,934,,934,,,,934,934,,,,934,,934,934,934,934,934',
'934,934,,,,,,934,934,934,934,934,934,934,,,934,,,,,,,934,,,934,934,934',
'934,934,934,934,934,,934,934,934,,934,934,,,,934,,,,,,,,,,,,,,,,,,,',
'934,,,934,,,934,934,,,934,,,,,,,,,,,,,,,,,,,934,934,934,934,934,934',
',,,934,934,,,,,,,934,,,934,934,934,819,819,819,,819,,,,819,819,,,,819',
',819,819,819,819,819,819,819,,,,,,819,819,819,819,819,819,819,,,819',
',,,,,,819,,,819,819,819,819,819,819,819,819,,819,819,819,,819,819,,819',
'819,819,,,,,,,,,,,,,,,,,,,,819,,,819,,,819,819,,,819,,,,,,819,,,,,,',
',819,,,,,819,819,819,819,819,819,,,,819,819,,,,,,,819,,,819,819,819',
'821,821,821,,821,,,,821,821,,,,821,,821,821,821,821,821,821,821,,,,',
',821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821,821',
'821,821,,821,821,821,,821,821,,821,821,821,,,,,,,,,,,,,,,,,,,,821,,',
'821,,,821,821,,,821,,,,,,821,,,,,,,,821,,,,,821,821,821,821,821,821',
',,,821,821,,,,,,,821,,,821,821,821,716,716,716,,716,,,,716,716,,,,716',
',716,716,716,716,716,716,716,,,,,,716,716,716,716,716,716,716,,,716',
',,,,,,716,,,716,716,716,716,716,716,716,716,,716,716,716,,716,716,,716',
'716,716,,,,,,,,,,,,,,,,,,,,716,,,716,,,716,716,,,716,,716,,,,716,,,',
',,,,716,,,,,716,716,716,716,716,716,,,,716,716,,,,,,,716,,,716,716,716',
'924,924,924,,924,,,,924,924,,,,924,,924,924,924,924,924,924,924,,,,',
',924,924,924,924,924,924,924,,,924,,,,,,,924,,,924,924,924,924,924,924',
'924,924,,924,924,924,,924,924,,,,924,,,,,,,,,,,,,,,,,,,,924,,,924,,',
'924,924,,,924,,,,,,,,,,,,,,,,,,,924,924,924,924,924,924,,,,924,924,',
',,,,,924,,,924,924,924,428,428,428,,428,,,,428,428,,,,428,,428,428,428',
'428,428,428,428,,,,,,428,428,428,428,428,428,428,,,428,,,,,,,428,,,428',
'428,428,428,428,428,428,428,,428,428,428,,428,428,,428,428,428,,,,,',
',,,,,,,,,,,,,,428,,,428,,,428,428,,,428,,,,,,428,,,,,,,,428,,,,,428',
'428,428,428,428,428,,,,428,428,,,,,,,428,,,428,428,428,912,912,912,',
'912,,,,912,912,,,,912,,912,912,912,912,912,912,912,,,,,,912,912,912',
'912,912,912,912,,,912,,,,,,,912,,,912,912,912,912,912,912,912,912,,912',
'912,912,,912,912,,912,912,912,,,,,,,,,,,,,,,,,,,,912,,,912,,,912,912',
',,912,,,,,,912,,,,,,,,912,,,,,912,912,912,912,912,912,,,,912,912,,,',
',,,912,,,912,912,912,911,911,911,,911,,,,911,911,,,,911,,911,911,911',
'911,911,911,911,,,,,,911,911,911,911,911,911,911,,,911,,,,,,,911,,,911',
'911,911,911,911,911,911,911,911,911,911,911,,911,911,,911,911,911,,',
',,,,,,,,,,,,,,,,,911,,,911,,,911,911,,,911,,,,911,,911,,,,,,,,911,,',
',,911,911,911,911,911,911,,,,911,911,,,,,,,911,,911,911,911,911,550',
'550,550,,550,,,,550,550,,,,550,,550,550,550,550,550,550,550,,,,,,550',
'550,550,550,550,550,550,,,550,,,,,,,550,,,550,550,550,550,550,550,550',
'550,,550,550,550,,550,550,,550,550,550,,,,,,,,,,,,,,,,,,,,550,,,550',
',,550,550,,,550,,,,,,550,,,,,,,,550,,,,,550,550,550,550,550,550,,,,550',
'550,,,,,,,550,,,550,550,550,545,545,545,,545,,,,545,545,,,,545,,545',
'545,545,545,545,545,545,,,,,,545,545,545,545,545,545,545,,,545,,,,,',
',545,,,545,545,545,545,545,545,545,545,,545,545,545,,545,545,,545,545',
'545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545,,,545,,,,,,545,,,,,,,,545',
',,,,545,545,545,545,545,545,,,,545,545,,,,,,,545,,,545,545,545,544,544',
'544,,544,,,,544,544,,,,544,,544,544,544,544,544,544,544,,,,,,544,544',
'544,544,544,544,544,,,544,,,,,,,544,,,544,544,544,544,544,544,544,544',
',544,544,544,,544,544,,544,544,544,,,,,,,,,,,,,,,,,,,,544,,,544,,,544',
'544,,,544,,,,,,544,,,,,,,,544,,,,,544,544,544,544,544,544,,,,544,544',
',,,,,,544,,,544,544,544,834,834,834,,834,,,,834,834,,,,834,,834,834',
'834,834,834,834,834,,,,,,834,834,834,834,834,834,834,,,834,,,,,,,834',
',,834,834,834,834,834,834,834,834,,834,834,834,,834,834,,834,834,834',
',,,,,,,,,,,,,,,,,,,834,,,834,,,834,834,,,834,,,,,,834,,,,,,,,834,,,',
',834,834,834,834,834,834,,,,834,834,,,,,,,834,,,834,834,834,540,540',
'540,,540,,,,540,540,,,,540,,540,540,540,540,540,540,540,,,,,,540,540',
'540,540,540,540,540,,,540,,,,,,,540,,,540,540,540,540,540,540,540,540',
',540,540,540,,540,540,,,,540,,,,,,,,,,,,,,,,,,,,540,,,540,,,540,540',
',,540,,,,,,,,,,,,,,,,,,,540,540,540,540,540,540,,,,540,540,,,,,,,540',
',,540,540,540,891,891,891,,891,,,,891,891,,,,891,,891,891,891,891,891',
'891,891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891',
'891,891,891,891,891,,891,891,891,,891,891,,891,891,891,,,,,,,,,,,,,',
',,,,,,891,,,891,,,891,891,,,891,,,,,,891,,,,,,,,891,,,,,891,891,891',
'891,891,891,,,,891,891,,,,,,,891,,,891,891,891,471,471,471,,471,,,,471',
'471,,,,471,,471,471,471,471,471,471,471,,,,,,471,471,471,471,471,471',
'471,,,471,,,,,,,471,,,471,471,471,471,471,471,471,471,471,471,471,471',
',471,471,,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,,,471,471,,,471,',
'471,,471,,471,,,,,,,,471,,,,,471,471,471,471,471,471,,,,471,471,,,,',
',,471,,471,471,471,471,473,473,473,,473,,,,473,473,,,,473,,473,473,473',
'473,473,473,473,,,,,,473,473,473,473,473,473,473,,,473,,,,,,,473,,,473',
'473,473,473,473,473,473,473,,473,473,473,,473,473,,473,473,473,,,,,',
',,,,,,,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,473,,,,,473',
'473,473,473,473,473,,,,473,473,,,,,,,473,,,473,473,473,474,474,474,',
'474,,,,474,474,,,,474,,474,474,474,474,474,474,474,,,,,,474,474,474',
'474,474,474,474,,,474,,,,,,,474,,,474,474,474,474,474,474,474,474,,474',
'474,474,,474,474,,474,474,474,,,,,,,,,,,,,,,,,,,,474,,,474,,,474,474',
',,474,,,,,,474,,,,,,,,474,,,,,474,474,474,474,474,474,,,,474,474,,,',
',,,474,,,474,474,474,475,475,475,,475,,,,475,475,,,,475,,475,475,475',
'475,475,475,475,,,,,,475,475,475,475,475,475,475,,,475,,,,,,,475,,,475',
'475,475,475,475,475,475,475,,475,475,475,,475,475,,475,475,475,,,,,',
',,,,,,,,,,,,,,475,,,475,,,475,475,,,475,,,,,,475,,,,,,,,475,,,,,475',
'475,475,475,475,475,,,,475,475,227,227,,,227,,475,,,475,475,475,,227',
'227,,227,227,227,227,227,227,227,,,227,227,,,,227,227,227,227,,,,,,227',
',,,,,,,227,227,,227,227,227,227,227,227,227,227,227,227,227,,,227,,',
',,,,,,,1035,1035,,,1035,,,,,,227,,,1035,1035,227,1035,1035,1035,1035',
'1035,1035,1035,,,1035,1035,,,,1035,1035,1035,1035,,,,,,1035,,,,,,,,1035',
'1035,,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,,,1035',
',,,,,,,,,1036,1036,,,1036,,,,,,1035,,,1036,1036,1035,1036,1036,1036',
'1036,1036,1036,1036,,,1036,1036,,,,1036,1036,1036,1036,,,,,,1036,,,',
',,,,1036,1036,,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036',
',,1036,,,,,,,,,,546,546,,,546,,,,,,1036,,,546,546,1036,546,546,546,546',
'546,546,546,,,546,546,,,,546,546,546,546,,,,,,546,,,,,,,,546,546,,546',
'546,546,546,546,546,546,546,546,546,546,,,546,,,,,,,,,,470,470,,,470',
',,,,,546,,,470,470,546,470,470,470,470,470,470,470,,,470,470,,,,470',
'470,470,470,,,,,,470,,,,,,,,470,470,,470,470,470,470,470,470,470,470',
'470,470,470,,,470,,,,,,,,,,535,535,,,535,,,,,,470,,,535,535,470,535',
'535,535,535,535,535,535,,,535,535,,,,535,535,535,535,,,,,,535,,,,,,',
',535,535,,535,535,535,535,535,535,535,535,535,535,535,,,535,,,,,,,,',
',655,655,,,655,,,,,,535,,,655,655,535,655,655,655,655,655,655,655,,',
'655,655,,,,655,655,655,655,,,,,,655,,,,,,,,655,655,,655,655,655,655',
'655,655,655,655,655,655,655,,,655,,,,,,,,,,656,656,,,656,,,,,,655,,',
'656,656,655,656,656,656,656,656,656,656,,,656,656,,,,656,656,656,656',
',,,,,656,,,,,,,,656,656,,656,656,656,656,656,656,656,656,656,656,656',
',,656,,,,,,,,,,773,773,,,773,,,,,,656,,,773,773,656,773,773,773,773',
'773,773,773,,,773,773,,,,773,773,773,773,,,,,,773,,,,,,,,773,773,,773',
'773,773,773,773,773,773,773,773,773,773,,942,773,942,942,942,942,942',
',,,,275,275,,,275,942,,,,,773,,,275,275,773,275,275,275,275,275,275',
'275,,,275,275,942,,,275,275,275,275,,,942,942,942,942,,,,,,,,275,275',
',275,275,275,275,275,275,275,275,275,275,275,,,275,,,,,,,,,942,534,534',
',,534,,,,,,275,,,534,534,275,534,534,534,534,534,534,534,,,534,534,',
',,534,534,534,534,,,,,,534,,,,,,,,534,534,,534,534,534,534,534,534,534',
'534,534,534,534,,,534,,,,,,,,,,772,772,,,772,,,,,,534,,,772,772,534',
'772,772,772,772,772,772,772,,,772,772,,,,772,772,772,772,,,,,,772,,',
',,,,,772,772,,772,772,772,772,772,772,772,772,772,772,772,,,772,,,,',
',,,,,607,607,,,607,,,,,,772,,,607,607,772,607,607,607,607,607,607,607',
',,607,607,,,,607,607,607,607,,,,,,607,,,,,,,,607,607,,607,607,607,607',
'607,607,607,607,607,607,607,,,607,,,,,,,,,,226,226,,,226,,,,,,607,,',
'226,226,607,226,226,226,226,226,226,226,,,226,226,,,,226,226,226,226',
',,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226',
',,226,,,,,,,,,,606,606,,,606,,,,,,226,,,606,606,226,606,606,606,606',
'606,606,606,,,606,606,,,,606,606,606,606,,,,,,606,,,,,,,,606,606,,606',
'606,606,606,606,606,606,606,606,606,606,,,606,,,,,,,,,,469,469,,,469',
',,,,,606,,,469,469,606,469,469,469,469,469,469,469,,,469,469,,,,469',
'469,469,469,,,,,,469,,,,,,,,469,469,,469,469,469,469,469,469,469,469',
'469,469,469,,,469,,,,,,,,,,1030,1030,,,1030,,,,,,469,,,1030,1030,469',
'1030,1030,1030,1030,1030,1030,1030,,,1030,1030,,,,1030,1030,1030,1030',
',,,,,1030,,,,,,,,1030,1030,,1030,1030,1030,1030,1030,1030,1030,1030',
'1030,1030,1030,,,1030,,,,,,,,,,547,547,,,547,,,,,,1030,,,547,547,1030',
'547,547,547,547,547,547,547,,,547,547,,,,547,547,547,547,,,,,,547,,',
',,,,,547,547,,547,547,547,547,547,547,547,547,547,547,547,,564,547,564',
'564,564,564,564,782,,782,782,782,782,782,,,564,,,,,547,,782,,781,547',
'781,781,781,781,781,,,,,,,564,,,781,,,,782,,564,564,564,564,,,,782,782',
'782,782,,,,,736,781,736,736,736,736,736,,,,781,781,781,781,,,736,,,',
'734,564,734,734,734,734,734,,782,,,,,,,,734,,736,,,,,,,,781,736,736',
'736,736,,,,,,,,734,,,,,,,,,734,734,734,734,,,,,,,,,,,,,736,,,,,,,,,',
',,,,,,,,,,734' ]
        racc_action_check = arr = ::Array.new(25517, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

racc_action_pointer = [
   nil,   652,  5553,   720,   nil,   473,   nil,   nil, 14266,  1351,
   nil,  2687,  1997,  1102,   nil,  1049,  1039,   566,  1091,   371,
   195,   nil,   -73, 12770,  3635,  1140,   nil,    88,   nil,    -2,
  1208,  1080, 13178, 13314, 13450,   nil,  4594, 13586, 13722,   nil,
  1032,    94,   187,  1091,   593, 14402, 14538,   331, 14674,  1014,
  1125,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  1728,   nil,   -67,   nil,   nil,     2,   nil, 14810, 14946,   nil,
   nil, 15082, 15218,  1055,   nil,  2411,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   -86,   nil,   nil,   nil,   nil,   nil,   nil,  1007,
  1002,   995,   988,  2825,   nil,   nil,   nil,   540,   nil,   nil,
   675,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 15354,   nil,   nil,   nil,   nil, 15490, 15626,
 15762, 15898, 16034,  1003,   nil,   627,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   976,   nil,  5142,
 16306, 16442, 16578, 16714, 16850, 16986, 24946, 23997,   nil, 17122,
 17258, 17394,   nil,   nil,   911,   -77,   158,  1048,   181,   938,
   991,   nil, 18074,  3361,   983, 18210, 18346, 18482, 18618,  6922,
  7058,  7194,  7330,  7466,  7602,  7738,  7874,  8010,  8146,  8282,
  8418,  8554,  8690,  8826,  8962,  9098,  9234,   nil,   nil,   nil,
   nil,  9370,   nil,   nil,   nil, 24654,   nil,   nil,   973,  9642,
   nil,   nil,   970,   nil,   nil,   nil,  9914,   nil,   nil, 10050,
   nil,  3361,   nil,   913,   911,   nil, 10322,   950, 10458,   nil,
 10594, 10730,   nil,   nil,    70,   nil,   nil, 11002,  1341,   nil,
   886,  2950,   900,   918,   879, 11682,  3498,   585,   548,   511,
   949,   507,   nil,   913,   872,   -10,   nil,   nil,   nil,   904,
   459,   849, 19026,   nil,   -43,   901,   899,   413,   nil,   893,
 19298,   nil, 19434,  6375,   831, 19570, 19706, 19842,   nil,   nil,
  1659,   640,     6,    -7, 20114,  5827,  5690,   393,   940,   824,
    26,    24,   409,   892,    27,   922,   nil,   nil, 20522,   nil,
 20658,   351,   437,   112,   375,   110,   219,   108,   472,   337,
   nil,   223,   nil,   nil,   nil,   nil,   nil,   109,   nil,   340,
   nil,   129,   nil,   812,   346,   nil,   811,   nil,   809,   -27,
   nil,   808,   -41,   nil,   168,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  2135,
   nil,   nil,   nil,   nil,   812,   nil,   739,   nil, 22290,   730,
   nil,   717,   nil,   818,   215,   nil,   nil,   nil,  2950,   nil,
   nil,   nil,   nil,   nil,  3087,   730,   nil,   nil,   725,   715,
   323,   239,  1468,   nil,   nil,   nil,   135,     0,   753,   nil,
   nil,  1596,  1336,   nil,   nil,   nil,    56,   nil,   751, 25092,
 24289, 23514,   112, 23650, 23786, 23922,  4868,  4731,   637,   438,
   768,   760,   753,   748,  1418,   896,  1678,  4594,  4457,  4320,
  4183,  4046,  5279,   758,   766,  5005,  5142,  3909,  1030,   802,
   nil,  1860,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   683,   673,   nil,   nil, 12498,   nil,   nil, 12362,   nil, 12226,
   nil,   nil,   nil,   nil, 12090,  1283,   664,   598,   nil,   nil,
   595, 11954,   582, 11818, 24727, 24362,  1088,   617,   nil,   nil,
 23242,   568,   nil,   609, 22970, 22834, 24216, 25238,   866,  3224,
 22698,   685,   681,   nil,  1288,   nil,   -64,    58,   579,   544,
   nil,   -94,   562,   nil, 25300,   nil,   511,   507,   nil,   501,
   492,   471,   nil,   nil,   nil,   nil,   nil,   nil,   434,   nil,
   777,   nil, 20930,   nil,   nil,   nil,   514,   nil,   nil,   nil,
   508,   nil,   nil,   494,  4046,   483,   nil,  4320,    32,   477,
   462,   441,   434,   nil,   nil, 20250, 25019, 24873,     4,   nil,
   308,   202,    -6,   nil,   466,   nil,   333, 18890,   nil,   347,
   nil,   nil,   nil, 18754,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   305,   nil,   nil,   302,   nil,
   nil,   nil,   304,   nil,   nil,   298,   nil,  3635,   nil,  2549,
   nil,   280, 11274, 11138, 10866, 24435, 24508, 10186,   329,   312,
  9778,  9506, 17938, 17802,   290,   nil,   nil,   nil, 17666, 17530,
   287,   nil,   nil,   nil,    96,    75,   405,   810,   209,   187,
   nil,    89,   276,    35,   nil,   187,   nil,   248,   nil,   nil,
    56,   nil,  1177,   nil,   nil,   nil,   nil,  -107, 13994,  1131,
   nil,  1131,   126,   130,  1166,   273,  1174,  1165,  1125, 20386,
 19978,  1176,  1171,    53,   352,   nil, 22018,   nil,   nil,  1105,
   nil, 13858,   nil,   nil, 12906,   nil,   nil,   nil,    26,  1106,
   124,   nil,   nil,   564, 25382,   nil, 25362,   nil,  7102,   nil,
 13042,   nil,   540,   nil,  1134,   266,   nil,  -120,   nil,   nil,
   nil,   nil,   441,   nil,     7,   nil,   nil,   nil,   nil,   nil,
    52,   nil, 14130,   107,    28,    23,     7,    71,  4183,   nil,
   990,   nil, 24800, 24581, 11410,   nil,   nil,   nil,   131,  3909,
  6101, 25325, 25307,  2273,    20,  1183,  4457,   nil,   nil,   329,
   nil,   nil,   nil,   384,   nil,   372, 20794,   429,   -41,   -75,
   945,   270,  3772, 21066,   nil,   503,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil, 21202, 21338, 21474, 21746,
   218, 21882,   nil,   nil,   472,   nil,  5005,   nil,   nil,   582,
   nil,   -46,   nil,   nil, 23106,   569,   169,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  4868,   nil,   581,   625,   nil,   nil,
   nil,   143,   nil,  6512,  6649,   607,   630,   636,   nil,   nil,
   nil,   638,   642,   nil,   646,   656,   nil,   658,   nil,   663,
   675,   663,   980,   nil,   791,   nil,   nil, 12634,   nil,  4731,
   803,   nil,   nil,    -1,    31,   812,   240,  1168,   nil,   713,
  5279, 23378,    39,   836,   nil,   722,   432,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   717,   nil,   nil,   nil,   188,   nil,
   nil, 22562, 22426,  3498,   744,   762,   nil,   771,   773,   777,
   nil,   801,   794,   781, 22154,   nil,   nil,   nil,   nil,  5964,
   nil,  6238,   nil,    -8, 21610,   nil,   nil,   829,   935,  1047,
   nil,   nil, 24643,   nil,  1860,   nil,  1853,   nil,  1791,   nil,
   nil,   nil,   nil,   337,   668,   835,   nil,   -11,   nil,   nil,
 19162,  5416,   nil,   nil,   981,   404,   nil,   nil,   982,   nil,
   nil,   903,   nil,   193,   nil,   nil,  1560,   nil,   nil,  1399,
   nil,  1300,   nil,   nil,   897, 11546,   615,   955,   nil,  1003,
  3087,   683,   720,   782,   986,   814,   nil,   nil,   nil,   159,
   nil,   nil,   nil,   916,   918,   926,   928,   930,  1141,   933,
  1073,  3772,   nil,   356,   nil,   nil,  3224,   nil,  6786,   952,
   nil,   nil,   953,   956,   961,   962,   nil,   966,   nil,   898,
 25165,   nil,   nil,  1105, 16170, 24070, 24143,  1119,   nil,   680,
  1172,   nil,   nil,   nil,   nil,   533,  1013,   318,   nil,   nil,
   nil,  1134,  1136,   nil,  1010,   nil,   873,   nil,   740,   nil,
   605,   nil,   nil,  1079,  1082,   nil,  1050,   -10,    14,    -9,
   484,   nil,  1070,  1071,   nil,   nil,   nil,  1072,  1073,  1076,
  1083,     8,   nil,  6966,   nil,   nil,   nil,   nil,   914,   nil ]

racc_action_default = [
    -1,  -645,  -644,  -645,    -2,  -631,    -4,    -5,  -645,    -8,
    -9,  -645,  -645,  -645,   -35,  -645,  -645,   -40,  -645,  -645,
  -295,   -51,  -633,  -645,   -56,   -61,   -62,   -63,   -67,  -273,
  -273,  -273,  -311,  -345,  -346,   -79,  -644,   -83,   -91,   -93,
  -645,  -538,  -539,  -645,  -645,  -645,  -645,  -232,  -645,  -633,
  -246,  -286,  -287,  -288,  -289,  -290,  -291,  -292,  -293,  -294,
  -618,  -297,  -301,  -307,  -309,  -319,  -425,  -645,  -645,   -58,
   -58,  -631,  -645,  -329,  -336,  -645,  -347,  -348,  -350,  -351,
  -352,  -353,  -354,  -355,  -356,  -357,  -358,  -359,  -368,  -470,
  -471,  -472,  -473,  -474,  -475,  -644,  -478,  -644,  -644,  -644,
  -488,  -644,  -644,  -644,  -516,  -522,  -523,  -616,  -527,  -528,
  -617,  -530,  -531,  -532,  -533,  -534,  -535,  -536,  -537,  -542,
  -543,  1090,    -3,  -632,  -640,  -641,  -642,    -7,  -645,  -645,
  -645,  -645,  -645,  -645,   -23,  -645,  -122,  -123,  -124,  -125,
  -126,  -127,  -128,  -129,  -130,  -134,  -135,  -136,  -137,  -138,
  -139,  -140,  -141,  -142,  -143,  -144,  -145,  -146,  -147,  -148,
  -149,  -150,  -151,  -152,  -153,  -154,  -155,  -156,  -157,  -158,
  -159,  -160,  -161,  -162,  -163,  -164,  -165,  -166,  -167,  -168,
  -169,  -170,  -171,  -172,  -173,  -174,  -175,  -176,  -177,  -178,
  -179,  -180,  -181,  -182,  -183,  -184,  -185,  -186,  -187,  -188,
  -189,  -190,  -191,  -192,  -193,  -194,  -195,  -196,  -197,  -198,
  -199,  -200,  -201,  -202,  -203,  -204,  -205,   -28,  -131,  -644,
  -645,  -645,  -645,  -645,  -645,  -644,  -645,  -645,  -628,  -645,
  -645,  -633,  -634,   -55,  -645,  -538,  -539,  -645,  -295,  -645,
  -645,  -238,  -645,  -644,  -645,  -645,  -645,  -645,  -645,  -645,
  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -247,  -248,  -249,
  -250,  -645,  -361,  -454,  -433,  -645,  -629,  -630,   -68,  -645,
  -318,  -360,  -645,  -447,  -449,   -74,  -644,  -444,   -75,  -633,
   -76,  -253,  -268,  -644,  -644,  -272,  -645,  -278,  -645,  -611,
  -645,  -645,   -77,   -78,  -631,   -17,   -18,  -645,   -21,   -22,
   -81,  -644,  -633,  -645,   -84,   -87,  -644,   -99,  -100,  -645,
  -645,  -107,  -311,  -314,  -633,  -437,  -345,  -346,  -349,  -445,
  -645,   -89,  -645,   -95,  -306,  -524,  -525,  -645,  -226,  -227,
  -645,  -239,  -645,  -644,  -633,  -645,  -644,  -644,  -320,  -321,
  -570,   -57,  -645,  -645,  -645,  -644,  -644,  -631,  -645,  -632,
  -538,  -539,  -645,  -645,  -295,  -645,  -378,  -379,  -645,  -332,
  -645,  -122,  -123,  -165,  -166,  -167,  -183,  -188,  -195,  -198,
  -339,  -645,  -538,  -539,  -606,  -607,  -476,  -645,  -500,  -645,
  -502,  -645,  -504,  -645,  -645,  -483,  -645,  -644,  -645,  -645,
  -496,  -645,  -645,  -498,  -645,  -515,  -517,  -518,  -519,  -520,
    -6,  -643,   -29,   -30,   -31,   -32,   -33,   -10,   -11,  -645,
   -25,   -26,   -27,  -132,  -645,   -36,   -38,   -39,  -645,  -645,
   -37,  -645,   -41,  -645,  -295,   -49,   -50,  -206,  -258,  -278,
   -52,   -53,   -42,  -207,  -258,  -633,  -263,  -264,  -644,  -644,
  -619,  -620,  -273,  -442,  -621,  -622,  -620,  -619,  -273,  -441,
  -443,  -621,  -622,   -48,  -215,   -54,  -633,  -317,  -645,  -645,
  -645,  -644,  -306,  -645,  -645,  -645,  -216,  -217,  -218,  -219,
  -220,  -221,  -222,  -223,  -228,  -229,  -230,  -231,  -233,  -234,
  -235,  -236,  -237,  -240,  -241,  -242,  -243,  -633,  -251,  -645,
  -455,  -273,  -619,  -620,   -65,   -69,  -274,  -438,  -451,  -454,
  -633,  -633,  -313,  -269,  -645,  -277,  -270,  -645,  -275,  -645,
  -279,  -614,  -615,   -16,  -632,   -20,  -633,   -80,  -304,   -96,
   -85,  -645,  -633,  -644,  -645,  -645,  -106,  -645,  -524,  -525,
  -645,   -92,   -97,  -645,  -645,  -645,  -645,  -645,  -252,  -244,
  -645,  -462,  -645,  -300,  -302,  -254,  -637,  -637,  -645,  -645,
  -609,  -637,  -645,  -426,  -570,  -429,  -605,  -605,  -553,  -555,
  -555,  -555,  -569,  -571,  -572,  -573,  -574,  -575,  -576,  -577,
  -645,  -579,  -645,  -585,  -587,  -588,  -590,  -595,  -597,  -598,
  -600,  -601,  -602,  -645,  -644,  -369,  -370,  -644,  -645,  -645,
  -645,  -645,  -645,  -364,  -457,  -644,  -645,  -645,  -306,   -58,
  -117,  -118,  -645,  -120,  -645,  -295,  -644,  -645,  -337,  -548,
  -342,  -626,  -627,  -645,  -477,  -501,  -506,  -507,  -509,  -479,
  -503,  -480,  -505,  -481,  -482,  -645,  -485,  -487,  -645,  -490,
  -492,  -493,  -645,  -494,  -495,  -645,  -521,  -644,   -24,  -645,
   -34,  -285,  -645,  -645,  -644,  -645,  -645,  -645,  -446,  -645,
  -265,  -267,  -645,  -645,   -70,  -261,  -262,  -439,  -645,  -645,
   -72,  -440,  -316,  -635,  -619,  -620,  -619,  -620,  -633,  -645,
  -432,  -644,   -64,  -434,  -451,  -645,  -452,  -645,  -260,  -312,
  -644,  -276,  -280,  -281,  -612,  -613,   -19,   -82,  -645,   -88,
   -94,  -633,  -619,  -620,  -644,  -103,  -105,  -645,   -90,  -645,
  -645,  -224,  -225,  -633,  -644,  -362,  -644,  -298,  -367,  -633,
  -255,  -639,  -638,  -257,  -639,  -308,  -310,  -610,  -645,  -633,
  -645,  -551,  -552,  -645,  -645,  -562,  -645,  -565,  -645,  -567,
  -645,  -380,  -645,  -382,  -384,  -391,  -576,  -633,  -581,  -589,
  -599,  -603,  -644,  -371,  -644,   -59,  -372,  -373,  -324,  -325,
  -645,  -327,  -645,  -633,  -619,  -620,  -623,  -305,  -644,  -117,
  -118,  -119,  -645,  -645,  -644,  -330,  -544,  -546,  -333,  -644,
  -644,  -570,  -570,  -645,  -633,  -645,  -644,  -484,  -486,  -645,
  -489,  -497,  -499,  -645,  -133,  -283,  -645,  -633,  -619,  -620,
  -620,  -619,  -259,  -645,  -636,  -644,   -44,  -209,   -45,  -210,
   -71,   -46,  -212,   -47,  -211,   -73,  -645,  -645,  -645,  -645,
  -446,  -645,  -414,  -415,  -633,  -417,  -644,  -436,  -435,  -645,
  -448,  -644,  -450,  -271,  -645,   -86,  -101,   -98,  -214,  -315,
   -13,   -15,  -363,  -365,  -644,  -469,  -463,  -644,  -464,  -465,
  -303,  -637,  -427,  -644,  -644,  -419,  -633,  -605,  -586,  -604,
  -554,  -555,  -555,  -580,  -555,  -555,  -596,  -555,  -591,  -633,
  -645,  -389,  -645,  -578,  -645,  -366,  -374,  -645,  -376,  -644,
  -645,   -60,  -326,  -645,  -446,  -645,  -117,  -118,  -121,  -633,
  -644,  -645,  -645,  -645,  -340,  -633,  -645,  -343,  -608,  -508,
  -511,  -512,  -513,  -514,  -645,  -491,   -12,  -284,  -446,   -43,
  -208,  -266,  -645,  -245,  -605,  -605,  -396,  -644,  -644,  -644,
  -413,  -645,  -633,  -576,  -645,  -583,  -593,  -456,   -66,  -644,
  -282,  -644,  -468,  -645,  -645,  -467,  -256,  -645,  -645,  -645,
  -428,  -550,  -645,  -558,  -645,  -560,  -645,  -563,  -645,  -566,
  -568,  -381,  -383,  -387,  -645,  -392,  -322,  -645,  -377,  -323,
  -645,  -644,  -328,  -446,  -645,  -645,  -334,  -338,  -645,  -547,
  -549,  -548,  -510,  -645,  -394,  -395,  -404,  -398,  -406,  -645,
  -409,  -645,  -411,  -416,  -645,  -645,  -582,  -645,  -453,  -644,
  -644,  -108,  -109,  -645,  -645,  -116,  -466,  -430,  -431,  -633,
  -421,  -423,  -424,  -555,  -555,  -555,  -555,  -385,  -645,  -390,
  -645,  -644,  -280,  -644,  -331,  -545,  -644,  -341,  -644,  -605,
  -584,  -397,  -644,  -644,  -644,  -644,  -594,  -644,  -418,  -592,
  -645,  -306,   -14,  -462,  -644,  -645,  -645,  -115,  -420,  -645,
  -645,  -556,  -559,  -561,  -564,  -645,  -388,  -644,  -458,  -459,
  -460,  -645,  -645,  -393,  -645,  -401,  -645,  -403,  -645,  -407,
  -645,  -410,  -412,  -305,  -623,  -461,  -633,  -619,  -620,  -623,
  -114,  -422,  -555,  -386,  -375,  -335,  -344,  -644,  -644,  -644,
  -644,  -446,  -557,  -645,  -399,  -402,  -405,  -408,  -644,  -400 ]

clist = [
'6,602,230,126,4,380,445,714,314,226,19,274,287,452,458,505,19,276,348',
'552,352,353,144,144,357,292,292,292,694,342,9,234,691,406,863,691,9',
'780,594,597,234,234,234,123,19,319,319,355,356,134,218,312,142,142,874',
'139,139,427,430,122,565,541,501,310,331,516,880,510,635,126,731,732',
'720,723,572,234,234,727,685,234,362,412,413,414,415,747,499,866,856',
'293,293,293,862,388,864,390,392,395,918,400,403,390,771,351,351,841',
'952,351,344,1000,127,278,285,288,1002,436,1026,955,436,139,826,658,389',
'436,741,358,345,719,404,442,616,19,618,346,463,347,234,234,234,234,19',
'290,302,303,368,890,617,139,892,1016,370,9,294,294,294,779,619,968,783',
'971,416,365,349,559,351,351,351,351,233,625,328,328,694,632,384,920',
'636,683,691,691,558,340,919,921,649,922,684,275,881,755,999,1026,735',
'737,739,1,2,563,852,1009,350,313,728,419,367,328,217,508,453,1071,509',
'831,681,1048,1002,762,847,933,292,386,516,387,391,446,469,410,394,19',
'234,433,234,234,433,234,696,694,931,433,234,234,638,397,399,402,760',
'899,952,869,863,785,1022,19,678,1046,829,786,452,458,440,441,699,405',
'888,891,507,840,465,466,647,708,929,462,292,861,729,133,863,429,429',
'292,858,984,292,1020,446,417,741,234,572,871,1073,515,515,866,234,623',
'381,234,775,620,1003,343,126,542,537,,,598,,534,,287,789,,701,19,,,',
'19,,704,687,319,19,1049,526,546,,,,532,,704,1023,525,293,1024,310,,319',
'530,524,310,555,560,293,,,1074,,19,606,19,820,126,,,523,,863,941,234',
'19,19,425,435,936,,435,,,,554,435,,614,836,614,,1032,,,,424,,763,,506',
'1018,351,,,704,,639,,,511,294,,810,,556,,,,815,313,294,,601,1077,,741',
',741,788,974,975,636,,694,655,,659,,835,,691,144,,,,666,797,,,,884,671',
',452,458,,,515,515,328,,665,453,,,,893,894,648,,,142,833,,139,292,328',
'557,561,,446,,,,908,,,313,679,,234,,313,,666,943,945,,947,949,1065,950',
'895,896,,,,,1007,741,665,,328,542,328,,572,572,,,,,542,29,,462,,453',
',29,,599,600,,1053,,,292,,453,,938,446,19,29,664,,,,,319,670,234,29',
'29,29,,29,436,319,,,,741,848,741,889,436,436,234,,704,,436,436,,963',
'964,806,808,961,,788,,811,813,,833,29,29,462,,29,,682,,,713,768,453',
'741,,462,,,,,756,,292,,,,19,446,,19,,,,,,,,234,777,,,,,990,,,,,467,234',
'1041,1042,1043,1044,,234,,29,690,,828,453,29,29,29,29,29,1011,,6,,292',
'865,793,867,462,446,778,,19,1050,,659,784,144,433,234,,328,,,,827,542',
'433,433,,328,,9,433,433,,822,837,659,512,,,,666,794,515,671,142,,1051',
'139,1052,1082,,436,,,462,,665,,,527,319,,909,855,,,845,897,849,,,319',
',,,,,,,,,,,29,29,29,29,29,29,29,917,553,,29,29,29,1081,659,,,,,,,878',
',878,29,,453,,,,752,,,754,,,,,292,,,,,446,429,,,19,659,,443,805,,234',
',464,,,19,19,29,,,,,19,,29,,435,29,,,,515,855,,,435,435,,,433,,435,435',
'1066,462,29,,883,,29,704,,,,29,139,,822,957,328,,,19,,,,,,,851,328,',
'965,935,,,,,,,19,29,1004,29,1005,,1006,672,,19,19,,29,29,29,,,659,,',
',,,,,,,,,,,,,234,,19,,,966,1025,,1027,970,,,,19,234,,,855,688,689,,717',
',426,439,,,,351,,977,977,977,,697,,,,,,700,,351,,,,,986,885,,,,19,,19',
',,993,,,,,,435,,,904,1072,758,759,,761,,,,,,,1015,,,1078,,1079,19,1080',
'32,,,,,,32,,1038,,29,,1035,518,,520,845,521,522,,927,32,1029,,1088,',
',19,,,32,32,32,,32,,,,932,,878,,,,,,453,937,19,977,977,977,977,19,977',
'19,292,464,,443,,446,,29,562,32,32,,,32,,234,29,958,878,659,,,,,,,,857',
',,328,,,29,,,,,,,328,,,,,,,462,977,977,977,977,,462,,,,,,977,,,42,,',
'32,,988,42,989,32,32,32,32,32,,,29,,839,29,,,,,850,,882,29,651,,328',
',,,,42,318,318,1013,29,,,,,,29,,,,,,,873,,,,,,,,915,,,,,,,1033,,29,',
'361,,,383,29,29,,,,,,,,29,29,,,1047,898,29,29,,,,,,,,,32,32,32,32,32',
'32,32,,,,32,32,32,,692,,,562,,695,,,42,,32,,,,,807,809,42,,,,812,814',
',,,956,16,,,,,959,16,,,,962,,,,859,,,859,967,32,940,,,,,,32,,,32,,,',
'951,16,,838,,,,,748,,,,,,32,,29,,32,,,,29,32,,,969,29,29,,,,,,29,1019',
',366,915,,,915,,915,42,,,,,,32,29,32,,,,1014,,,,1017,32,32,32,,,,,42',
',,,,,29,916,,,795,,,,,,,,692,562,16,,,,29,,,,910,16,,,,29,29,,,,,,,807',
'809,814,812,,,,915,,915,,915,,915,,,29,,29,,978,980,982,42,,,,42,,29',
'29,318,42,846,1075,1076,915,,692,,,562,,,,,,,318,,,,,,,,,868,,42,,42',
',,,,,,29,32,29,42,42,,,16,,431,,439,431,,,,383,431,383,,,,,,,,,,910',
',,16,29,,,18,,,,,,18,,,,907,,859,,,916,,,916,32,916,,1055,1057,1059',
'1061,29,1062,32,,,,,,18,,,,,,,,,,,32,,29,930,,,,29,,29,,,,,,16,,,,16',
',,,,16,29,,,,,,,1084,1085,1086,1087,,,,,,,,1089,32,,,32,916,,916,16',
'916,16,916,32,,,,,,,,16,16,,,32,,,,,,32,,,18,916,,,562,,,,,18,,,,,,',
'42,,,,,32,,318,,,,32,32,,,,318,,,,32,32,,,,,32,32,,,,,,,,,,1012,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,42,,,,,,,18,,18,,,18,,,,,18,,,,,,,',
',,,,,,18,,,,,,,,,,,,,,,,,,,42,,,32,,,,,,32,,,,,32,32,,16,,,,32,,,,,',
',,,,,,,,,,,32,,,,,,,18,,,,18,,318,,,18,,,,,,,32,318,,,,,,,,,,,,,,,,',
'32,,18,,18,,,,16,32,32,16,,,18,18,,,,,,,,,,,,,,,,,,32,,32,,,,,,,42,',
',,32,32,,,,,,42,42,,20,,,,42,16,20,,,,,431,,,,,,,,,431,431,,,,,431,431',
',32,,32,,,20,321,321,,,,,,,,42,,,,,,,,,,,,,,,,,32,42,,,,,,,,364,42,42',
',,,,,,,,,,,,,,,,,32,,,,,,,42,,,,,,,,,,,42,,,32,,,,,32,,32,41,,20,,,',
'41,16,18,,,20,,,,32,,,16,16,,,,383,,16,,,42,,42,,,992,41,317,317,,,',
',,431,,,,,,,,,,,,,,,,,,42,,,,,16,,,,,360,,,382,,,,,18,,,18,,16,383,',
',,,42,,,16,16,,,,,20,,434,,,434,,,,,434,,42,,,,,42,,42,16,,,41,20,,',
',,,,16,41,18,,,,,,18,,,,,,,,,18,18,,,,,18,18,,,,,,,,,,,,,,,16,,16,,',
'996,,,,,,,,,,,,,20,,,,20,,,,321,20,,,,,16,,,,,,,,,,,321,,,,,,41,,,,',
'20,,20,,,,,16,,,,,20,20,,,,,,41,,,,,,615,,615,16,,18,,,16,,16,,,,,,18',
'18,,,,,,18,,,,,,,,,,,,,,,,,18,,,,,,,,,,,,,,,,,,41,,,,41,18,,,317,41',
',,,,,,,,,,,,,18,,317,,,,,,,18,18,,,41,,41,,,,,,,,,,41,41,,,,,,,,,18',
',,382,,382,,,,,,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,321,,,18,,18',
',,,321,,,,,,,,,,,,,,,,,,,,,,,,,,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,18',
',20,,,,,,,,,,,,,,,,,,,18,,,,,18,,18,,,,,,,,,,,,,,,,,,,,41,,,,20,,,317',
',,434,,,,,,317,,,434,434,,,,,434,434,,,,,,,,,,,,,,,,,,,,,,,,,,,,,321',
',,,,,,,,,,321,,,,41,,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,41,,20,,,,,,,,,,,20,20,,,,,903,20,,,,,,,,,,,,241,,,,,434,,,,291',
'291,291,,,,,,,,317,,,338,339,,341,,,20,,317,,,,,,,,,,,,,,,,20,,,,,,',
',,20,20,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,41,,,20,,,,,,,,41,41,,,,,',
'41,,,,,,,,,,,,,,,,,,,615,,,,,20,,20,,,995,,,,,,,,,,,41,,,,,,,,,,,,,',
',,20,,41,,,,,,,,,41,41,,,,,,,,,,,,615,,,,,20,,,,,291,438,,41,444,291',
',,,444,,,,,41,,20,,,,,20,241,20,,476,477,478,479,480,481,482,483,484',
'485,486,487,488,489,490,491,492,493,494,495,496,497,,382,,,498,,41,',
'41,,,991,291,,,,,,,291,,,291,,,,,,,291,,291,,291,291,,,,41,,,,,,,,,',
',,,,,,,,,,,,,,382,,,,,41,,,,,,548,,549,,,,291,291,,,,,,,,41,,,,,41,',
'41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'291,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,444,444,444,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,,291,,291,,,,,,,,,,,,,,291,,,',
',,,,,,,711,712,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,,,,,,,,,,,,',
',,,,,,,,,291,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,444,291',
',,802,,,291,291,444,444,,,,,444,444,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,444,,,,,,291,,,,,291,,,291,,,,,,,,,,,,,,,,291,,,,,,,,,,,,,,',
',,,,,,,291,,,,,,,,,,,,291,,,,,,,,,,,,,,,,,,,,,,291,,,,,,,444,,,,,,,',
',,,,,444,444,444,444,,913,,,,,,,,,,,,,291,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,444,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,291' ]
        racc_goto_table = arr = ::Array.new(3677, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'6,114,39,119,2,69,35,15,62,37,34,173,85,49,49,51,34,37,103,12,23,23',
'74,74,23,45,45,45,219,39,9,34,88,69,210,88,9,122,107,107,34,34,34,8',
'34,34,34,41,41,21,21,59,73,73,108,70,70,28,28,5,172,64,49,58,63,87,110',
'35,194,119,155,155,83,83,205,34,34,83,52,34,34,23,23,23,23,150,174,214',
'164,82,82,82,161,6,161,6,6,6,160,6,6,6,67,30,30,17,148,30,126,166,7',
'50,50,50,167,24,215,151,24,70,162,36,191,24,149,5,127,128,191,32,68',
'34,68,129,32,130,34,34,34,34,34,57,57,57,131,132,133,70,134,135,136',
'9,84,84,84,137,138,139,140,141,9,116,105,102,30,30,30,30,26,195,78,78',
'219,195,99,152,195,86,88,88,81,79,161,164,75,158,54,48,44,42,165,215',
'208,208,208,1,3,168,169,151,170,14,171,31,25,78,22,177,85,166,178,180',
'182,183,167,184,185,186,45,189,87,190,192,6,37,7,193,34,34,34,34,34',
'34,34,20,219,18,34,34,34,196,197,198,199,114,200,148,150,210,201,160',
'34,35,151,52,202,49,49,30,30,64,203,67,204,85,16,30,30,13,64,162,70',
'45,209,172,11,210,82,82,45,211,164,45,212,6,10,149,34,205,149,151,6',
'6,214,34,218,123,34,118,124,161,125,119,62,39,,,23,,37,,85,194,,35,34',
',,,34,,49,174,34,34,110,59,37,,,,59,,49,161,9,82,161,58,,34,63,8,58',
'6,6,82,,,108,,34,37,34,36,119,,,5,,210,155,34,34,34,26,26,83,,26,,,',
'9,26,,34,36,34,,17,,,,14,,35,,57,122,30,,,49,,6,,,57,84,,51,,82,,,,51',
'14,84,,5,161,,149,,149,195,155,155,195,,219,37,,39,,64,,88,74,,,,85',
'35,,,,36,85,,49,49,,,6,6,78,,6,85,,,,12,12,21,,,73,87,,70,45,78,84,84',
',6,,,,36,,,14,39,,34,,14,,85,208,208,,208,208,15,208,172,172,,,,,149',
'149,6,,78,62,78,,205,205,,,,,62,53,,70,,85,,53,,14,14,,155,,,45,,85',
',12,6,34,53,50,,,,,34,50,34,53,53,53,,53,24,34,,,,149,28,149,35,24,24',
'34,,49,,24,24,,36,12,32,32,107,,195,,32,32,,87,53,53,70,,53,,50,,,30',
'41,85,149,,70,,,,,119,,45,,,,34,6,,34,,,,,,,,34,6,,,,,107,,,,,60,34',
'208,208,208,208,,34,,53,84,,103,85,53,53,53,53,53,107,,6,,45,159,2,159',
'70,6,30,,34,114,,39,30,74,34,34,,78,,,,173,62,34,34,,78,,9,34,34,,6',
'62,39,60,,,,85,21,6,85,73,,12,70,12,208,,24,,,70,,6,,,60,34,,32,39,',
',6,69,6,,,34,,,,,,,,,,,,53,53,53,53,53,53,53,159,60,,53,53,53,36,39',
',,,,,,6,,6,53,,85,,,,14,,,14,,,,,45,,,,,6,82,,,34,39,,76,84,,34,,76',
',,34,34,53,,,,,34,,53,,26,53,,,,6,39,,,26,26,,,34,,26,26,35,70,53,,82',
',53,49,,,,53,70,,6,23,78,,,34,,,,,,,84,78,,23,6,,,,,,,34,53,159,53,159',
',159,60,,34,34,,53,53,53,,,39,,,,,,,,,,,,,,,,34,,34,,,119,159,,159,119',
',,,34,34,,,39,60,60,,101,,29,29,,,,30,,6,6,6,,60,,,,,,60,,30,,,,,34',
'14,,,,34,,34,,,34,,,,,,26,,,14,159,101,101,,101,,,,,,,119,,,159,,159',
'34,159,56,,,,,,56,,39,,53,,37,29,,29,6,29,29,,14,56,34,,159,,,34,,,56',
'56,56,,56,,,,14,,6,,,,,,85,14,34,6,6,6,6,34,6,34,45,76,,76,,6,,53,29',
'56,56,,,56,,34,53,14,6,39,,,,,,,,154,,,78,,,53,,,,,,,78,,,,,,,70,6,6',
'6,6,,70,,,,,,6,,,66,,,56,,14,66,14,56,56,56,56,56,,,53,,60,53,,,,,60',
',101,53,29,,78,,,,,66,66,66,14,53,,,,,,53,,,,,,,60,,,,,,,,154,,,,,,',
'14,,53,,66,,,66,53,53,,,,,,,,53,53,,,14,60,53,53,,,,,,,,,56,56,56,56',
'56,56,56,,,,56,56,56,,29,,,29,,29,,,66,,56,,,,,76,76,66,,,,76,76,,,',
'101,27,,,,,101,27,,,,101,,,,156,,,156,101,56,60,,,,,,56,,,56,,,,60,27',
',76,,,,,29,,,,,,56,,53,,56,,,,53,56,,,60,53,53,,,,,,53,154,,27,154,',
',154,,154,66,,,,,,56,53,56,,,,101,,,,101,56,56,56,,,,,66,,,,,,53,156',
',,29,,,,,,,,29,29,27,,,,53,,,,76,27,,,,53,53,,,,,,,76,76,76,76,,,,154',
',154,,154,,154,,,53,,53,,157,157,157,66,,,,66,,53,53,66,66,29,101,101',
'154,,29,,,29,,,,,,,66,,,,,,,,,29,,66,,66,,,,,,,53,56,53,66,66,,,27,',
'27,,29,27,,,,66,27,66,,,,,,,,,,76,,,27,53,,,33,,,,,,33,,,,29,,156,,',
'156,,,156,56,156,,157,157,157,157,53,157,56,,,,,,33,,,,,,,,,,,56,,53',
'29,,,,53,,53,,,,,,27,,,,27,,,,,27,53,,,,,,,157,157,157,157,,,,,,,,157',
'56,,,56,156,,156,27,156,27,156,56,,,,,,,,27,27,,,56,,,,,,56,,,33,156',
',,29,,,,,33,,,,,,,66,,,,,56,,66,,,,56,56,,,,66,,,,56,56,,,,,56,56,,',
',,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,66,,,66,,,,,,,33,,33,,,33',
',,,,33,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,,,66,,,56,,,,,,56,,,,,56,56,',
'27,,,,56,,,,,,,,,,,,,,,,,56,,,,,,,33,,,,33,,66,,,33,,,,,,,56,66,,,,',
',,,,,,,,,,,,56,,33,,33,,,,27,56,56,27,,,33,33,,,,,,,,,,,,,,,,,,56,,56',
',,,,,,66,,,,56,56,,,,,,66,66,,38,,,,66,27,38,,,,,27,,,,,,,,,27,27,,',
',,27,27,,56,,56,,,38,38,38,,,,,,,,66,,,,,,,,,,,,,,,,,56,66,,,,,,,,38',
'66,66,,,,,,,,,,,,,,,,,,56,,,,,,,66,,,,,,,,,,,66,,,56,,,,,56,,56,65,',
'38,,,,65,27,33,,,38,,,,56,,,27,27,,,,66,,27,,,66,,66,,,66,65,65,65,',
',,,,27,,,,,,,,,,,,,,,,,,66,,,,,27,,,,,65,,,65,,,,,33,,,33,,27,66,,,',
',66,,,27,27,,,,,38,,38,,,38,,,,,38,,66,,,,,66,,66,27,,,65,38,,,,,,,27',
'65,33,,,,,,33,,,,,,,,,33,33,,,,,33,33,,,,,,,,,,,,,,,27,,27,,,27,,,,',
',,,,,,,,38,,,,38,,,,38,38,,,,,27,,,,,,,,,,,38,,,,,,65,,,,,38,,38,,,',
',27,,,,,38,38,,,,,,65,,,,,,38,,38,27,,33,,,27,,27,,,,,,33,33,,,,,,33',
',,,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,,65,,,,65,33,,,65,65,,,,,,,,,,,,',
',33,,65,,,,,,,33,33,,,65,,65,,,,,,,,,,65,65,,,,,,,,,33,,,65,,65,,,,',
',33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,,,38,,,33,,33,,,,38,,,,,,,,,',
',,,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,33,,38,,,,,,,,,,,,',
',,,,,,33,,,,,33,,33,,,,,,,,,,,,,,,,,,,,65,,,,38,,,65,,,38,,,,,,65,,',
'38,38,,,,,38,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,,,,,,,38,,,,65,,',
'65,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,65,,38,,,,,,,,,',
',38,38,,,,,38,38,,,,,,,,,,,,40,,,,,38,,,,40,40,40,,,,,,,,65,,,40,40',
',40,,,38,,65,,,,,,,,,,,,,,,,38,,,,,,,,,38,38,,,,,,,,,,,,,,,,,,,,,,,',
',38,,,,,,,,65,,,38,,,,,,,,65,65,,,,,,65,,,,,,,,,,,,,,,,,,,38,,,,,38',
',38,,,38,,,,,,,,,,,65,,,,,,,,,,,,,,,,38,,65,,,,,,,,,65,65,,,,,,,,,,',
',38,,,,,38,,,,,40,40,,65,40,40,,,,40,,,,,65,,38,,,,,38,40,38,,40,40',
'40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,65,,,40',
',65,,65,,,65,40,,,,,,,40,,,40,,,,,,,40,,40,,40,40,,,,65,,,,,,,,,,,,',
',,,,,,,,,,,65,,,,,65,,,,,,40,,40,,,,40,40,,,,,,,,65,,,,,65,,65,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,40,40,40,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,40,,,40,,40,,,,,,,,,,,,,,40,,,,,,,,,,,40,40,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,40,40,,,40,,,40,40,40,40,,',
',,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,40,,,,,40,,',
'40,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,40,,,,,,,,,',
',,,,,,,,,,,,40,,,,,,,40,,,,,,,,,,,,,40,40,40,40,,40,,,,,,,,,,,,,40,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'40' ]
        racc_goto_check = arr = ::Array.new(3677, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

racc_goto_pointer = [
   nil,   195,     2,   196,   nil,    54,    -2,   102,    38,    28,
   152,   265,  -324,  -150,   165,  -544,  -449,  -609,  -604,   nil,
  -290,    38,   194,   -47,  -106,   132,   145,  1227,  -163,   688,
    36,    69,   -95,  1472,     8,  -219,  -324,   -10,  1867,   -20,
  2642,   -22,  -409,   nil,  -567,    -7,   nil,   nil,   160,  -213,
    82,  -263,  -430,   510,  -318,   nil,   969,   109,    27,    15,
   393,   nil,   -29,    26,  -271,  1986,  1087,  -510,  -238,   -70,
    44,   nil,   nil,    41,    11,  -239,   555,   nil,   133,   134,
   nil,  -166,    57,  -484,   120,   -18,  -324,  -229,  -482,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    99,
   nil,   354,  -184,   -47,   nil,    96,   nil,  -314,  -698,   nil,
  -688,   nil,   nil,   nil,  -357,   nil,    89,   nil,  -318,    -2,
   nil,   nil,  -582,   221,   -82,   240,    46,    64,  -427,    70,
    71,    71,  -630,  -223,  -630,  -817,    76,  -463,  -224,  -737,
  -462,  -738,   nil,   nil,   nil,   nil,   nil,   nil,  -764,  -456,
  -495,  -755,  -649,   nil,   324,  -496,   513,   474,  -639,   -88,
  -726,  -642,  -561,   nil,  -641,  -749,  -830,  -825,  -153,  -530,
   134,  -361,  -290,   -14,  -187,   nil,   nil,   -76,   -74,   nil,
  -475,   nil,  -288,  -800,  -389,  -500,  -630,   nil,   nil,   127,
   126,    25,   124,   127,  -326,  -218,  -157,   141,   141,   141,
  -540,  -378,  -373,   158,  -513,  -276,   nil,   nil,  -377,  -461,
  -700,  -450,  -690,   nil,  -649,  -863,   nil,   nil,   -90,  -489 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   305,     7,   359,   308,
   nil,   nil,   nil,   nil,   551,   nil,   nil,   nil,   nil,   304,
   306,   nil,   nil,   nil,    14,    15,    21,   239,   nil,   297,
    17,   nil,   432,   240,   337,   nil,   nil,   773,   238,   468,
    24,   nil,   nil,   354,   nil,    25,    26,    27,   nil,   707,
   nil,   nil,   nil,   325,   nil,    28,   322,   447,    35,   nil,
   nil,    37,    40,    39,   nil,   235,   236,   613,   nil,   141,
   455,   140,   143,    90,    91,   nil,   437,    47,    50,   271,
   543,   nil,   448,   nil,   449,   460,   667,   513,   295,   279,
   834,    51,    52,    53,    54,    55,    56,    57,    58,    59,
    61,   nil,   nil,   280,    65,   nil,    67,   nil,   nil,    68,
   876,    69,    70,    71,   nil,    72,   nil,    73,   nil,   595,
    74,    75,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   284,   273,   716,   844,   604,   877,   743,   579,
   nil,   744,  1021,   914,   567,   nil,   568,   nil,   nil,   569,
   nil,   571,   nil,   823,   nil,   nil,   nil,   577,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   459,   282,   nil,   nil,   686,
   nil,   500,   nil,   nil,   nil,   nil,   nil,    89,    92,    94,
   nil,   nil,   nil,   nil,   nil,   630,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   860,   782,   566,   nil,   570,
   581,   583,   925,   586,   587,   926,   590,   593,   nil,   299 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 145, :_reduce_1,
  2, 143, :_reduce_2,
  2, 144, :_reduce_3,
  1, 146, :_reduce_none,
  1, 146, :_reduce_none,
  3, 146, :_reduce_6,
  2, 146, :_reduce_none,
  1, 149, :_reduce_none,
  0, 153, :_reduce_9,
  3, 149, :_reduce_10,
  0, 155, :_reduce_11,
  4, 152, :_reduce_12,
  0, 160, :_reduce_13,
  6, 154, :_reduce_14,
  3, 154, :_reduce_15,
  2, 156, :_reduce_16,
  1, 161, :_reduce_none,
  1, 161, :_reduce_none,
  3, 161, :_reduce_19,
  2, 161, :_reduce_20,
  1, 162, :_reduce_none,
  1, 162, :_reduce_22,
  0, 173, :_reduce_23,
  4, 151, :_reduce_24,
  3, 151, :_reduce_25,
  3, 151, :_reduce_26,
  3, 151, :_reduce_27,
  2, 151, :_reduce_28,
  3, 151, :_reduce_29,
  3, 151, :_reduce_30,
  3, 151, :_reduce_31,
  3, 151, :_reduce_32,
  3, 151, :_reduce_33,
  4, 151, :_reduce_34,
  1, 151, :_reduce_none,
  3, 151, :_reduce_36,
  3, 151, :_reduce_37,
  3, 151, :_reduce_38,
  3, 151, :_reduce_39,
  1, 151, :_reduce_none,
  3, 166, :_reduce_41,
  3, 166, :_reduce_42,
  6, 166, :_reduce_43,
  5, 166, :_reduce_44,
  5, 166, :_reduce_45,
  5, 166, :_reduce_46,
  5, 166, :_reduce_47,
  3, 166, :_reduce_48,
  1, 174, :_reduce_49,
  1, 174, :_reduce_none,
  1, 172, :_reduce_none,
  3, 172, :_reduce_52,
  3, 172, :_reduce_53,
  3, 172, :_reduce_54,
  2, 172, :_reduce_55,
  1, 172, :_reduce_none,
  1, 165, :_reduce_57,
  0, 185, :_reduce_58,
  0, 186, :_reduce_59,
  4, 183, :_reduce_60,
  1, 168, :_reduce_none,
  1, 168, :_reduce_none,
  1, 188, :_reduce_none,
  4, 188, :_reduce_64,
  0, 196, :_reduce_65,
  4, 193, :_reduce_66,
  1, 195, :_reduce_67,
  2, 187, :_reduce_68,
  3, 187, :_reduce_69,
  4, 187, :_reduce_70,
  5, 187, :_reduce_71,
  4, 187, :_reduce_72,
  5, 187, :_reduce_73,
  2, 187, :_reduce_74,
  2, 187, :_reduce_75,
  2, 187, :_reduce_76,
  2, 187, :_reduce_77,
  2, 187, :_reduce_78,
  1, 167, :_reduce_none,
  3, 167, :_reduce_80,
  1, 201, :_reduce_none,
  3, 201, :_reduce_82,
  1, 200, :_reduce_83,
  2, 200, :_reduce_84,
  3, 200, :_reduce_85,
  5, 200, :_reduce_86,
  2, 200, :_reduce_87,
  4, 200, :_reduce_88,
  2, 200, :_reduce_89,
  4, 200, :_reduce_90,
  1, 200, :_reduce_91,
  3, 200, :_reduce_92,
  1, 204, :_reduce_none,
  3, 204, :_reduce_94,
  2, 203, :_reduce_95,
  3, 203, :_reduce_96,
  1, 206, :_reduce_97,
  3, 206, :_reduce_98,
  1, 205, :_reduce_99,
  1, 205, :_reduce_100,
  4, 205, :_reduce_101,
  3, 205, :_reduce_102,
  3, 205, :_reduce_103,
  3, 205, :_reduce_104,
  3, 205, :_reduce_105,
  2, 205, :_reduce_106,
  1, 205, :_reduce_107,
  1, 169, :_reduce_108,
  1, 169, :_reduce_109,
  4, 169, :_reduce_110,
  3, 169, :_reduce_111,
  3, 169, :_reduce_112,
  3, 169, :_reduce_113,
  3, 169, :_reduce_114,
  2, 169, :_reduce_115,
  1, 169, :_reduce_116,
  1, 209, :_reduce_117,
  1, 209, :_reduce_none,
  2, 210, :_reduce_119,
  1, 210, :_reduce_120,
  3, 210, :_reduce_121,
  1, 211, :_reduce_none,
  1, 211, :_reduce_none,
  1, 211, :_reduce_none,
  1, 211, :_reduce_125,
  1, 211, :_reduce_126,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 163, :_reduce_129,
  1, 163, :_reduce_none,
  1, 164, :_reduce_131,
  0, 217, :_reduce_132,
  4, 164, :_reduce_133,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  3, 182, :_reduce_206,
  3, 182, :_reduce_207,
  6, 182, :_reduce_208,
  5, 182, :_reduce_209,
  5, 182, :_reduce_210,
  5, 182, :_reduce_211,
  5, 182, :_reduce_212,
  0, 222, :_reduce_213,
  5, 182, :_reduce_214,
  3, 182, :_reduce_215,
  3, 182, :_reduce_216,
  3, 182, :_reduce_217,
  3, 182, :_reduce_218,
  3, 182, :_reduce_219,
  3, 182, :_reduce_220,
  3, 182, :_reduce_221,
  3, 182, :_reduce_222,
  3, 182, :_reduce_223,
  4, 182, :_reduce_224,
  4, 182, :_reduce_225,
  2, 182, :_reduce_226,
  2, 182, :_reduce_227,
  3, 182, :_reduce_228,
  3, 182, :_reduce_229,
  3, 182, :_reduce_230,
  3, 182, :_reduce_231,
  1, 182, :_reduce_none,
  3, 182, :_reduce_233,
  3, 182, :_reduce_234,
  3, 182, :_reduce_235,
  3, 182, :_reduce_236,
  3, 182, :_reduce_237,
  2, 182, :_reduce_238,
  2, 182, :_reduce_239,
  3, 182, :_reduce_240,
  3, 182, :_reduce_241,
  3, 182, :_reduce_242,
  3, 182, :_reduce_243,
  3, 182, :_reduce_244,
  6, 182, :_reduce_245,
  1, 182, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  3, 219, :_reduce_251,
  3, 219, :_reduce_252,
  1, 171, :_reduce_253,
  1, 223, :_reduce_none,
  2, 223, :_reduce_255,
  4, 223, :_reduce_256,
  2, 223, :_reduce_257,
  1, 218, :_reduce_none,
  3, 218, :_reduce_259,
  3, 227, :_reduce_260,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  2, 177, :_reduce_265,
  4, 177, :_reduce_266,
  2, 177, :_reduce_267,
  1, 199, :_reduce_268,
  2, 199, :_reduce_269,
  2, 199, :_reduce_270,
  4, 199, :_reduce_271,
  1, 199, :_reduce_272,
  0, 231, :_reduce_273,
  2, 192, :_reduce_274,
  2, 230, :_reduce_275,
  2, 229, :_reduce_276,
  1, 229, :_reduce_none,
  1, 224, :_reduce_278,
  2, 224, :_reduce_279,
  3, 224, :_reduce_280,
  0, 232, :_reduce_281,
  5, 224, :_reduce_282,
  3, 170, :_reduce_283,
  4, 170, :_reduce_284,
  2, 170, :_reduce_285,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_296,
  0, 267, :_reduce_297,
  4, 220, :_reduce_298,
  0, 268, :_reduce_299,
  3, 220, :_reduce_300,
  0, 269, :_reduce_301,
  0, 270, :_reduce_302,
  5, 220, :_reduce_303,
  3, 220, :_reduce_304,
  3, 220, :_reduce_305,
  2, 220, :_reduce_306,
  0, 271, :_reduce_307,
  4, 220, :_reduce_308,
  0, 272, :_reduce_309,
  4, 220, :_reduce_310,
  1, 220, :_reduce_311,
  4, 220, :_reduce_312,
  3, 220, :_reduce_313,
  1, 220, :_reduce_314,
  5, 220, :_reduce_315,
  4, 220, :_reduce_316,
  3, 220, :_reduce_317,
  2, 220, :_reduce_318,
  1, 220, :_reduce_none,
  2, 220, :_reduce_320,
  2, 220, :_reduce_321,
  6, 220, :_reduce_322,
  6, 220, :_reduce_323,
  4, 220, :_reduce_324,
  4, 220, :_reduce_325,
  5, 220, :_reduce_326,
  4, 220, :_reduce_327,
  6, 220, :_reduce_328,
  0, 273, :_reduce_329,
  0, 274, :_reduce_330,
  7, 220, :_reduce_331,
  0, 275, :_reduce_332,
  0, 276, :_reduce_333,
  0, 277, :_reduce_334,
  9, 220, :_reduce_335,
  0, 278, :_reduce_336,
  0, 279, :_reduce_337,
  6, 220, :_reduce_338,
  0, 280, :_reduce_339,
  0, 281, :_reduce_340,
  7, 220, :_reduce_341,
  0, 282, :_reduce_342,
  0, 283, :_reduce_343,
  9, 220, :_reduce_344,
  1, 220, :_reduce_345,
  1, 220, :_reduce_346,
  1, 220, :_reduce_347,
  1, 220, :_reduce_348,
  1, 176, :_reduce_349,
  1, 242, :_reduce_none,
  1, 248, :_reduce_none,
  1, 251, :_reduce_none,
  1, 253, :_reduce_none,
  1, 254, :_reduce_none,
  1, 255, :_reduce_none,
  1, 257, :_reduce_none,
  1, 259, :_reduce_none,
  1, 262, :_reduce_none,
  1, 263, :_reduce_none,
  1, 284, :_reduce_none,
  1, 285, :_reduce_none,
  1, 286, :_reduce_none,
  1, 287, :_reduce_none,
  1, 288, :_reduce_none,
  1, 158, :_reduce_none,
  1, 289, :_reduce_none,
  1, 243, :_reduce_none,
  1, 198, :_reduce_none,
  1, 249, :_reduce_none,
  1, 249, :_reduce_none,
  2, 249, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 250, :_reduce_none,
  5, 250, :_reduce_375,
  1, 252, :_reduce_none,
  2, 252, :_reduce_377,
  1, 258, :_reduce_none,
  1, 258, :_reduce_379,
  1, 290, :_reduce_none,
  3, 290, :_reduce_381,
  1, 293, :_reduce_382,
  3, 293, :_reduce_383,
  1, 292, :_reduce_384,
  4, 292, :_reduce_385,
  6, 292, :_reduce_386,
  3, 292, :_reduce_387,
  5, 292, :_reduce_388,
  2, 292, :_reduce_389,
  4, 292, :_reduce_390,
  1, 292, :_reduce_391,
  3, 292, :_reduce_392,
  4, 294, :_reduce_393,
  2, 294, :_reduce_394,
  2, 294, :_reduce_395,
  1, 294, :_reduce_396,
  2, 299, :_reduce_397,
  1, 299, :_reduce_none,
  6, 300, :_reduce_399,
  8, 300, :_reduce_400,
  4, 300, :_reduce_401,
  6, 300, :_reduce_402,
  4, 300, :_reduce_403,
  2, 300, :_reduce_404,
  6, 300, :_reduce_405,
  2, 300, :_reduce_406,
  4, 300, :_reduce_407,
  6, 300, :_reduce_408,
  2, 300, :_reduce_409,
  4, 300, :_reduce_410,
  2, 300, :_reduce_411,
  4, 300, :_reduce_412,
  1, 300, :_reduce_413,
  1, 304, :_reduce_414,
  1, 304, :_reduce_415,
  3, 305, :_reduce_416,
  1, 305, :_reduce_417,
  4, 305, :_reduce_418,
  1, 306, :_reduce_none,
  4, 306, :_reduce_420,
  1, 307, :_reduce_421,
  3, 307, :_reduce_422,
  1, 308, :_reduce_423,
  1, 308, :_reduce_none,
  0, 312, :_reduce_425,
  0, 313, :_reduce_426,
  4, 247, :_reduce_427,
  4, 310, :_reduce_428,
  1, 310, :_reduce_429,
  3, 311, :_reduce_430,
  3, 311, :_reduce_431,
  3, 315, :_reduce_432,
  2, 189, :_reduce_433,
  4, 189, :_reduce_434,
  5, 189, :_reduce_435,
  5, 189, :_reduce_436,
  0, 318, :_reduce_437,
  3, 246, :_reduce_438,
  4, 246, :_reduce_439,
  4, 246, :_reduce_440,
  3, 246, :_reduce_441,
  3, 246, :_reduce_442,
  3, 246, :_reduce_443,
  2, 246, :_reduce_444,
  1, 246, :_reduce_445,
  4, 246, :_reduce_446,
  0, 319, :_reduce_447,
  4, 245, :_reduce_448,
  0, 320, :_reduce_449,
  4, 245, :_reduce_450,
  0, 321, :_reduce_451,
  0, 322, :_reduce_452,
  4, 194, :_reduce_453,
  0, 323, :_reduce_454,
  0, 324, :_reduce_455,
  4, 316, :_reduce_456,
  0, 326, :_reduce_457,
  6, 256, :_reduce_458,
  1, 325, :_reduce_none,
  1, 325, :_reduce_none,
  6, 157, :_reduce_461,
  0, 157, :_reduce_462,
  1, 327, :_reduce_463,
  1, 327, :_reduce_none,
  1, 327, :_reduce_none,
  2, 328, :_reduce_466,
  1, 328, :_reduce_none,
  2, 159, :_reduce_468,
  1, 159, :_reduce_none,
  1, 233, :_reduce_470,
  1, 233, :_reduce_471,
  1, 233, :_reduce_none,
  1, 234, :_reduce_473,
  1, 330, :_reduce_474,
  1, 330, :_reduce_none,
  2, 330, :_reduce_476,
  3, 331, :_reduce_477,
  1, 331, :_reduce_478,
  3, 235, :_reduce_479,
  3, 236, :_reduce_480,
  3, 237, :_reduce_481,
  3, 237, :_reduce_482,
  1, 335, :_reduce_483,
  3, 335, :_reduce_484,
  1, 336, :_reduce_none,
  2, 336, :_reduce_486,
  3, 239, :_reduce_487,
  0, 339, :_reduce_488,
  4, 239, :_reduce_489,
  1, 338, :_reduce_490,
  3, 338, :_reduce_491,
  3, 238, :_reduce_492,
  3, 238, :_reduce_493,
  3, 240, :_reduce_494,
  3, 240, :_reduce_495,
  1, 340, :_reduce_496,
  3, 340, :_reduce_497,
  1, 341, :_reduce_498,
  3, 341, :_reduce_499,
  1, 332, :_reduce_500,
  2, 332, :_reduce_501,
  1, 333, :_reduce_502,
  2, 333, :_reduce_503,
  1, 334, :_reduce_504,
  2, 334, :_reduce_505,
  1, 337, :_reduce_506,
  0, 343, :_reduce_507,
  3, 337, :_reduce_508,
  0, 344, :_reduce_509,
  4, 337, :_reduce_510,
  1, 342, :_reduce_511,
  1, 342, :_reduce_512,
  1, 342, :_reduce_513,
  1, 342, :_reduce_none,
  2, 215, :_reduce_515,
  1, 215, :_reduce_516,
  1, 345, :_reduce_none,
  1, 345, :_reduce_none,
  1, 345, :_reduce_none,
  1, 345, :_reduce_none,
  3, 216, :_reduce_521,
  1, 329, :_reduce_none,
  1, 329, :_reduce_none,
  2, 329, :_reduce_524,
  2, 329, :_reduce_525,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 208, :_reduce_531,
  1, 208, :_reduce_532,
  1, 208, :_reduce_533,
  1, 208, :_reduce_534,
  1, 208, :_reduce_535,
  1, 208, :_reduce_536,
  1, 208, :_reduce_537,
  1, 241, :_reduce_538,
  1, 241, :_reduce_539,
  1, 175, :_reduce_540,
  1, 175, :_reduce_541,
  1, 180, :_reduce_542,
  1, 180, :_reduce_543,
  0, 346, :_reduce_544,
  4, 260, :_reduce_545,
  1, 260, :_reduce_546,
  3, 264, :_reduce_547,
  0, 348, :_reduce_548,
  3, 264, :_reduce_549,
  4, 347, :_reduce_550,
  2, 347, :_reduce_551,
  2, 347, :_reduce_552,
  1, 347, :_reduce_none,
  2, 350, :_reduce_554,
  0, 350, :_reduce_555,
  6, 314, :_reduce_556,
  8, 314, :_reduce_557,
  4, 314, :_reduce_558,
  6, 314, :_reduce_559,
  4, 314, :_reduce_560,
  6, 314, :_reduce_561,
  2, 314, :_reduce_562,
  4, 314, :_reduce_563,
  6, 314, :_reduce_564,
  2, 314, :_reduce_565,
  4, 314, :_reduce_566,
  2, 314, :_reduce_567,
  4, 314, :_reduce_568,
  1, 314, :_reduce_569,
  0, 314, :_reduce_570,
  1, 309, :_reduce_571,
  1, 309, :_reduce_572,
  1, 309, :_reduce_573,
  1, 309, :_reduce_574,
  1, 291, :_reduce_none,
  1, 291, :_reduce_576,
  1, 352, :_reduce_none,
  3, 352, :_reduce_578,
  1, 301, :_reduce_579,
  3, 301, :_reduce_580,
  2, 353, :_reduce_581,
  2, 354, :_reduce_582,
  1, 295, :_reduce_none,
  3, 295, :_reduce_584,
  1, 349, :_reduce_none,
  3, 349, :_reduce_586,
  1, 355, :_reduce_none,
  1, 355, :_reduce_none,
  2, 296, :_reduce_589,
  1, 296, :_reduce_590,
  3, 356, :_reduce_591,
  3, 357, :_reduce_592,
  1, 302, :_reduce_593,
  3, 302, :_reduce_594,
  1, 351, :_reduce_595,
  3, 351, :_reduce_596,
  1, 358, :_reduce_none,
  1, 358, :_reduce_none,
  2, 303, :_reduce_599,
  1, 303, :_reduce_600,
  1, 359, :_reduce_none,
  1, 359, :_reduce_none,
  2, 298, :_reduce_603,
  2, 297, :_reduce_604,
  0, 297, :_reduce_605,
  1, 265, :_reduce_none,
  0, 360, :_reduce_607,
  4, 265, :_reduce_608,
  1, 244, :_reduce_609,
  2, 244, :_reduce_none,
  1, 226, :_reduce_none,
  3, 226, :_reduce_612,
  3, 361, :_reduce_613,
  2, 361, :_reduce_614,
  2, 361, :_reduce_615,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 191, :_reduce_none,
  1, 191, :_reduce_none,
  1, 191, :_reduce_none,
  1, 191, :_reduce_none,
  1, 317, :_reduce_none,
  1, 317, :_reduce_none,
  1, 317, :_reduce_none,
  1, 266, :_reduce_none,
  1, 266, :_reduce_none,
  1, 179, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  0, 147, :_reduce_none,
  1, 147, :_reduce_none,
  0, 181, :_reduce_none,
  1, 181, :_reduce_none,
  2, 202, :_reduce_none,
  2, 178, :_reduce_none,
  0, 225, :_reduce_none,
  1, 225, :_reduce_none,
  1, 225, :_reduce_none,
  1, 261, :_reduce_640,
  1, 261, :_reduce_none,
  1, 150, :_reduce_none,
  2, 150, :_reduce_643,
  0, 148, :_reduce_644 ]

racc_reduce_n = 645

racc_shift_n = 1090

racc_token_table = {
  false => 0,
  :error => 1,
  :kCLASS => 2,
  :kMODULE => 3,
  :kDEF => 4,
  :kUNDEF => 5,
  :kBEGIN => 6,
  :kRESCUE => 7,
  :kENSURE => 8,
  :kEND => 9,
  :kIF => 10,
  :kUNLESS => 11,
  :kTHEN => 12,
  :kELSIF => 13,
  :kELSE => 14,
  :kCASE => 15,
  :kWHEN => 16,
  :kWHILE => 17,
  :kUNTIL => 18,
  :kFOR => 19,
  :kBREAK => 20,
  :kNEXT => 21,
  :kREDO => 22,
  :kRETRY => 23,
  :kIN => 24,
  :kDO => 25,
  :kDO_COND => 26,
  :kDO_BLOCK => 27,
  :kDO_LAMBDA => 28,
  :kRETURN => 29,
  :kYIELD => 30,
  :kSUPER => 31,
  :kSELF => 32,
  :kNIL => 33,
  :kTRUE => 34,
  :kFALSE => 35,
  :kAND => 36,
  :kOR => 37,
  :kNOT => 38,
  :kIF_MOD => 39,
  :kUNLESS_MOD => 40,
  :kWHILE_MOD => 41,
  :kUNTIL_MOD => 42,
  :kRESCUE_MOD => 43,
  :kALIAS => 44,
  :kDEFINED => 45,
  :klBEGIN => 46,
  :klEND => 47,
  :k__LINE__ => 48,
  :k__FILE__ => 49,
  :k__ENCODING__ => 50,
  :tIDENTIFIER => 51,
  :tFID => 52,
  :tGVAR => 53,
  :tIVAR => 54,
  :tCONSTANT => 55,
  :tLABEL => 56,
  :tCVAR => 57,
  :tNTH_REF => 58,
  :tBACK_REF => 59,
  :tSTRING_CONTENT => 60,
  :tINTEGER => 61,
  :tFLOAT => 62,
  :tREGEXP_END => 63,
  :tUPLUS => 64,
  :tUMINUS => 65,
  :tUMINUS_NUM => 66,
  :tPOW => 67,
  :tCMP => 68,
  :tEQ => 69,
  :tEQQ => 70,
  :tNEQ => 71,
  :tGEQ => 72,
  :tLEQ => 73,
  :tANDOP => 74,
  :tOROP => 75,
  :tMATCH => 76,
  :tNMATCH => 77,
  :tDOT => 78,
  :tDOT2 => 79,
  :tDOT3 => 80,
  :tAREF => 81,
  :tASET => 82,
  :tLSHFT => 83,
  :tRSHFT => 84,
  :tCOLON2 => 85,
  :tCOLON3 => 86,
  :tOP_ASGN => 87,
  :tASSOC => 88,
  :tLPAREN => 89,
  :tLPAREN2 => 90,
  :tRPAREN => 91,
  :tLPAREN_ARG => 92,
  :tLBRACK => 93,
  :tLBRACK2 => 94,
  :tRBRACK => 95,
  :tLBRACE => 96,
  :tLBRACE_ARG => 97,
  :tSTAR => 98,
  :tSTAR2 => 99,
  :tAMPER => 100,
  :tAMPER2 => 101,
  :tTILDE => 102,
  :tPERCENT => 103,
  :tDIVIDE => 104,
  :tPLUS => 105,
  :tMINUS => 106,
  :tLT => 107,
  :tGT => 108,
  :tPIPE => 109,
  :tBANG => 110,
  :tCARET => 111,
  :tLCURLY => 112,
  :tRCURLY => 113,
  :tBACK_REF2 => 114,
  :tSYMBEG => 115,
  :tSTRING_BEG => 116,
  :tXSTRING_BEG => 117,
  :tREGEXP_BEG => 118,
  :tWORDS_BEG => 119,
  :tQWORDS_BEG => 120,
  :tSTRING_DBEG => 121,
  :tSTRING_DVAR => 122,
  :tSTRING_END => 123,
  :tSTRING => 124,
  :tSYMBOL => 125,
  :tNL => 126,
  :tEH => 127,
  :tCOLON => 128,
  :tCOMMA => 129,
  :tSPACE => 130,
  :tSEMI => 131,
  :tLAMBDA => 132,
  :tLAMBEG => 133,
  :tDSTAR => 134,
  :tCHAR => 135,
  :tSYMBOLS_BEG => 136,
  :tQSYMBOLS_BEG => 137,
  :tSTRING_DEND => 138,
  :tUBANG => 139,
  :tLOWEST => 140,
  :tEQL => 141 }

racc_nt_base = 142

racc_use_result_var = true

Racc_arg = [
  racc_action_table,
  racc_action_check,
  racc_action_default,
  racc_action_pointer,
  racc_goto_table,
  racc_goto_check,
  racc_goto_default,
  racc_goto_pointer,
  racc_nt_base,
  racc_reduce_table,
  racc_token_table,
  racc_shift_n,
  racc_reduce_n,
  racc_use_result_var ]

Racc_token_to_s_table = [
  "$end",
  "error",
  "kCLASS",
  "kMODULE",
  "kDEF",
  "kUNDEF",
  "kBEGIN",
  "kRESCUE",
  "kENSURE",
  "kEND",
  "kIF",
  "kUNLESS",
  "kTHEN",
  "kELSIF",
  "kELSE",
  "kCASE",
  "kWHEN",
  "kWHILE",
  "kUNTIL",
  "kFOR",
  "kBREAK",
  "kNEXT",
  "kREDO",
  "kRETRY",
  "kIN",
  "kDO",
  "kDO_COND",
  "kDO_BLOCK",
  "kDO_LAMBDA",
  "kRETURN",
  "kYIELD",
  "kSUPER",
  "kSELF",
  "kNIL",
  "kTRUE",
  "kFALSE",
  "kAND",
  "kOR",
  "kNOT",
  "kIF_MOD",
  "kUNLESS_MOD",
  "kWHILE_MOD",
  "kUNTIL_MOD",
  "kRESCUE_MOD",
  "kALIAS",
  "kDEFINED",
  "klBEGIN",
  "klEND",
  "k__LINE__",
  "k__FILE__",
  "k__ENCODING__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tLABEL",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tLBRACK2",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAMBDA",
  "tLAMBEG",
  "tDSTAR",
  "tCHAR",
  "tSYMBOLS_BEG",
  "tQSYMBOLS_BEG",
  "tSTRING_DEND",
  "tUBANG",
  "tLOWEST",
  "tEQL",
  "$start",
  "program",
  "top_compstmt",
  "@1",
  "top_stmts",
  "opt_terms",
  "none",
  "top_stmt",
  "terms",
  "stmt",
  "begin_block",
  "@2",
  "bodystmt",
  "@3",
  "compstmt",
  "opt_rescue",
  "k_else",
  "opt_ensure",
  "@4",
  "stmts",
  "stmt_or_begin",
  "fitem",
  "undef_list",
  "expr_value",
  "command_asgn",
  "mlhs",
  "command_call",
  "lhs",
  "mrhs",
  "arg_value",
  "expr",
  "@5",
  "command_rhs",
  "var_lhs",
  "primary_value",
  "opt_call_args",
  "rbracket",
  "call_op",
  "backref",
  "opt_nl",
  "arg",
  "expr_value_do",
  "do",
  "@6",
  "@7",
  "command",
  "block_command",
  "block_call",
  "call_op2",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "brace_body",
  "fcall",
  "@8",
  "operation",
  "k_return",
  "call_args",
  "mlhs_basic",
  "mlhs_inner",
  "rparen",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "mlhs_post",
  "user_variable",
  "keyword_variable",
  "cname",
  "cpath",
  "fname",
  "op",
  "reswords",
  "fsym",
  "symbol",
  "dsym",
  "@9",
  "arg_rhs",
  "rel_expr",
  "primary",
  "relop",
  "@10",
  "aref_args",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@11",
  "@12",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "symbols",
  "qsymbols",
  "var_ref",
  "k_begin",
  "k_end",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "k_if",
  "then",
  "if_tail",
  "k_unless",
  "opt_else",
  "k_while",
  "k_until",
  "k_case",
  "case_body",
  "k_for",
  "for_var",
  "k_class",
  "superclass",
  "term",
  "k_module",
  "k_def",
  "f_arglist",
  "singleton",
  "dot_or_colon",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "@27",
  "@28",
  "@29",
  "k_do",
  "k_do_block",
  "k_rescue",
  "k_ensure",
  "k_when",
  "k_elsif",
  "f_marg",
  "f_norm_arg",
  "f_margs",
  "f_marg_list",
  "block_args_tail",
  "f_block_kwarg",
  "f_kwrest",
  "opt_f_block_arg",
  "f_block_arg",
  "opt_block_args_tail",
  "block_param",
  "f_arg",
  "f_block_optarg",
  "f_rest_arg",
  "opt_block_param",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@30",
  "@31",
  "f_args",
  "do_block",
  "do_body",
  "operation3",
  "@32",
  "@33",
  "@34",
  "@35",
  "@36",
  "@37",
  "@38",
  "cases",
  "@39",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "@40",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@41",
  "@42",
  "sym",
  "@43",
  "args_tail",
  "@44",
  "f_kwarg",
  "opt_args_tail",
  "f_optarg",
  "f_arg_item",
  "f_kw",
  "f_block_kw",
  "kwrest_mark",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "@45",
  "assoc" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

def _reduce_1(val, _values, result)
                      self.lexer.lex_state = EXPR_BEG

    result
end

def _reduce_2(val, _values, result)
                      result = new_compstmt val

    result
end

def _reduce_3(val, _values, result)
                      stmt, _ = val
                      result = stmt

    result
end

# reduce 4 omitted

# reduce 5 omitted

def _reduce_6(val, _values, result)
                      result = self.block_append val[0], val[2]

    result
end

# reduce 7 omitted

# reduce 8 omitted

def _reduce_9(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 1
                        yyerror "BEGIN in method"
                      end
                      self.env.extend

    result
end

def _reduce_10(val, _values, result)
                      (_, lineno), _, iter = val
                      iter.line lineno

                      (_, preexe,) = iter
                      preexe.line lineno

                      result = iter

    result
end

def _reduce_11(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_12(val, _values, result)
                      _, line, stmt, _ = val
                      result = new_iter s(:preexe).line(line), 0, stmt

    result
end

def _reduce_13(val, _values, result)
                      res = _values[-2]
                      yyerror "else without rescue is useless" unless res

    result
end

def _reduce_14(val, _values, result)
                      body, resc, _, _, els, ens = val

                      result = new_body [body, resc, els, ens]

    result
end

def _reduce_15(val, _values, result)
                      body, resc, ens = val

                      result = new_body [body, resc, nil, ens]

    result
end

def _reduce_16(val, _values, result)
                      result = new_compstmt val

    result
end

# reduce 17 omitted

# reduce 18 omitted

def _reduce_19(val, _values, result)
                      result = self.block_append val[0], val[2]

    result
end

def _reduce_20(val, _values, result)
                      result = val[1]
                      debug20 2, val, result

    result
end

# reduce 21 omitted

def _reduce_22(val, _values, result)
                      yyerror "BEGIN is permitted only at toplevel"

    result
end

def _reduce_23(val, _values, result)
                      lexer.lex_state = EXPR_FNAME

    result
end

def _reduce_24(val, _values, result)
                      (_, line), lhs, _, rhs = val
                      result = s(:alias, lhs, rhs).line(line).line line

    result
end

def _reduce_25(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, rhs.to_sym).line line

    result
end

def _reduce_26(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, :"$#{rhs}").line line

    result
end

def _reduce_27(val, _values, result)
                      yyerror "can't make alias for the number variables"

    result
end

def _reduce_28(val, _values, result)
                      result = val[1]

    result
end

def _reduce_29(val, _values, result)
                      t, _, c = val
                      result = new_if c, t, nil

    result
end

def _reduce_30(val, _values, result)
                      f, _, c = val
                      result = new_if c, nil, f

    result
end

def _reduce_31(val, _values, result)
                      e, _, c = val
                      result = new_while e, c, true

    result
end

def _reduce_32(val, _values, result)
                      e, _, c = val
                      result = new_until e, c, true

    result
end

def _reduce_33(val, _values, result)
                      body, _, resbody = val

                      resbody = new_resbody s(:array).line(resbody.line), resbody
                      result = new_rescue body, resbody

    result
end

def _reduce_34(val, _values, result)
                      (_, line), _, stmt, _ = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 3
                        yyerror "END in method; use at_exit"
                      end

                      result = new_iter s(:postexe).line(line), 0, stmt

    result
end

# reduce 35 omitted

def _reduce_36(val, _values, result)
                      result = new_masgn val[0], val[2], :wrap

    result
end

def _reduce_37(val, _values, result)
                      lhs, _, rhs = val
                      result = new_assign lhs, s(:svalue, rhs).line(rhs.line)

    result
end

def _reduce_38(val, _values, result)
                      result = new_masgn val[0], val[2], :wrap

    result
end

def _reduce_39(val, _values, result)
                      result = new_masgn val[0], val[2]

    result
end

# reduce 40 omitted

def _reduce_41(val, _values, result)
                      result = new_assign val[0], val[2]

    result
end

def _reduce_42(val, _values, result)
                      result = new_op_asgn val

    result
end

def _reduce_43(val, _values, result)
                      result = new_op_asgn1 val

    result
end

def _reduce_44(val, _values, result)
                      prim, _, id, opasgn, rhs = val
                      result = s(:op_asgn, prim, rhs, id.to_sym, opasgn.to_sym)
                      if val[1] == '&.'
                        result.sexp_type = :safe_op_asgn
                      end
                      result.line = val[0].line

    result
end

def _reduce_45(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
                      if val[1] == '&.'
                        result.sexp_type = :safe_op_asgn
                      end
                      result.line = val[0].line

    result
end

def _reduce_46(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                      debug20 4, val, result

    result
end

def _reduce_47(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                      debug20 5, val, result

    result
end

def _reduce_48(val, _values, result)
                      self.backref_assign_error val[0]

    result
end

def _reduce_49(val, _values, result)
                      expr, = val
                      result = value_expr expr

    result
end

# reduce 50 omitted

# reduce 51 omitted

def _reduce_52(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :and, lhs, rhs

    result
end

def _reduce_53(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :or, lhs, rhs

    result
end

def _reduce_54(val, _values, result)
                      (_, line), _, expr = val
                      result = new_call(expr, :"!").line line
                      # REFACTOR: call_uni_op

    result
end

def _reduce_55(val, _values, result)
                      _, cmd = val
                      result = new_call(cmd, :"!").line cmd.line
                      # TODO: fix line number to tBANG... but causes BAD shift/reduce conflict
                      # REFACTOR: call_uni_op -- see parse26.y

    result
end

# reduce 56 omitted

def _reduce_57(val, _values, result)
                      result = value_expr(val[0])

    result
end

def _reduce_58(val, _values, result)
                      lexer.cond.push true

    result
end

def _reduce_59(val, _values, result)
                      lexer.cond.pop

    result
end

def _reduce_60(val, _values, result)
                      _, expr, _, _ = val
                      result = expr

    result
end

# reduce 61 omitted

# reduce 62 omitted

# reduce 63 omitted

def _reduce_64(val, _values, result)
                      blk, _, msg, args = val
                      result = new_call(blk, msg.to_sym, args).line blk.line

    result
end

def _reduce_65(val, _values, result)
                      # self.env.extend(:dynamic)
                      result = self.lexer.lineno

    result
end

def _reduce_66(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      # self.env.unextend

    result
end

def _reduce_67(val, _values, result)
                      msg, = val
                      result = new_call(nil, msg.to_sym).line lexer.lineno

    result
end

def _reduce_68(val, _values, result)
                      call, args = val
                      result = call.concat args.sexp_body

    result
end

def _reduce_69(val, _values, result)
                      call, args, block = val

                      result = call.concat args.sexp_body

                      if block then
                        block_dup_check result, block

                        result, operation = block, result
                        result.insert 1, operation
                      end

    result
end

def _reduce_70(val, _values, result)
                      lhs, callop, op, args = val
                      result = new_call lhs, op.to_sym, args, callop

    result
end

def _reduce_71(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args, val[1]

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

def _reduce_72(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]

    result
end

def _reduce_73(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

def _reduce_74(val, _values, result)
                      result = new_super val[1]

    result
end

def _reduce_75(val, _values, result)
                      (_, line), args = val
                      result = new_yield args
                      result.line line # TODO: push to new_yield

    result
end

def _reduce_76(val, _values, result)
                      line = val[0].last
                      result = s(:return, ret_args(val[1])).line(line)

    result
end

def _reduce_77(val, _values, result)
                      (_, line), args = val
                      result = s(:break, ret_args(args)).line line

    result
end

def _reduce_78(val, _values, result)
                      line = val[0].last
                      result = s(:next, ret_args(val[1])).line(line)

    result
end

# reduce 79 omitted

def _reduce_80(val, _values, result)
                      result = val[1]

    result
end

# reduce 81 omitted

def _reduce_82(val, _values, result)
                      _, arg, _ = val
                      l = arg.line

                      result = s(:masgn, s(:array, arg).line(l)).line l

    result
end

def _reduce_83(val, _values, result)
                      head, = val
                      result = s(:masgn, head).line head.line

    result
end

def _reduce_84(val, _values, result)
                      lhs, rhs = val
                      result = s(:masgn, lhs << rhs.compact).line lhs.line

    result
end

def _reduce_85(val, _values, result)
                      head, _, tail = val
                      head << s(:splat, tail).line(tail.line)
                      result = s(:masgn, head).line head.line

    result
end

def _reduce_86(val, _values, result)
                      ary1, _, splat, _, ary2 = val

                      result = list_append ary1, s(:splat, splat).line(splat.line)
                      result.concat ary2.sexp_body
                      result = s(:masgn, result).line result.line

    result
end

def _reduce_87(val, _values, result)
                      head, _ = val
                      l = head.line
                      result = s(:masgn, head << s(:splat).line(l)).line l

    result
end

def _reduce_88(val, _values, result)
                      head, _, _, post = val
                      ary = list_append head, s(:splat).line(head.line)
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line

    result
end

def _reduce_89(val, _values, result)
                      _, node = val
                      l = node.line
                      splat  = s(:splat, node).line l
                      ary    = s(:array, splat).line l
                      result = s(:masgn, ary).line l

    result
end

def _reduce_90(val, _values, result)
                      _, node, _, post = val

                      splat = s(:splat, node).line node.line
                      ary = s(:array, splat).line splat.line
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line

    result
end

def _reduce_91(val, _values, result)
                      l = lexer.lineno
                      result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l

    result
end

def _reduce_92(val, _values, result)
                      _, _, post = val
                      l = post.line

                      splat = s(:splat).line l
                      ary = s(:array, splat, *post.sexp_body).line l
                      result = s(:masgn, ary).line l

    result
end

# reduce 93 omitted

def _reduce_94(val, _values, result)
                      result = val[1]

    result
end

def _reduce_95(val, _values, result)
                      lhs, _ = val
                      result = s(:array, lhs).line lhs.line

    result
end

def _reduce_96(val, _values, result)
                      result = val[0] << val[1].compact

    result
end

def _reduce_97(val, _values, result)
                      item, = val
                      result = s(:array, item).line item.line

    result
end

def _reduce_98(val, _values, result)
                      result = list_append val[0], val[2]

    result
end

def _reduce_99(val, _values, result)
                      result = self.assignable val[0]

    result
end

def _reduce_100(val, _values, result)
                      result = self.assignable val[0]

    result
end

def _reduce_101(val, _values, result)
                      result = self.aryset val[0], val[2]

    result
end

def _reduce_102(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]

    result
end

def _reduce_103(val, _values, result)
                      recv, _, id = val
                      result = new_attrasgn recv, id

    result
end

def _reduce_104(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]

    result
end

def _reduce_105(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 7
                        yyerror "dynamic constant assignment"
                      end

                      expr, _, id = val
                      l = expr.line

                      result = s(:const, s(:colon2, expr, id.to_sym).line(l), nil).line l

    result
end

def _reduce_106(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 8
                        yyerror "dynamic constant assignment"
                      end

                      _, id = val
                      l = lexer.lineno

                      result = s(:const, nil, s(:colon3, id.to_sym).line(l)).line l

    result
end

def _reduce_107(val, _values, result)
                      self.backref_assign_error val[0]

    result
end

def _reduce_108(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line

    result
end

def _reduce_109(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line
                      debug20 9, val, result

    result
end

def _reduce_110(val, _values, result)
                      lhs, _, args, _ = val
                      result = self.aryset lhs, args

    result
end

def _reduce_111(val, _values, result)
                      lhs, op, id = val
                      result = new_attrasgn lhs, id, op

    result
end

def _reduce_112(val, _values, result)
                      lhs, _, id = val
                      result = new_attrasgn lhs, id

    result
end

def _reduce_113(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]

    result
end

def _reduce_114(val, _values, result)
                      expr, _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 10
                        yyerror "dynamic constant assignment"
                      end

                      l = expr.line
                      result = s(:const, s(:colon2, expr, id.to_sym).line(l)).line l

    result
end

def _reduce_115(val, _values, result)
                      _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 11
                        yyerror "dynamic constant assignment"
                      end

                      l = lexer.lineno
                      result = s(:const, s(:colon3, id.to_sym).line(l)).line l

    result
end

def _reduce_116(val, _values, result)
                      self.backref_assign_error val[0]

    result
end

def _reduce_117(val, _values, result)
                      yyerror "class/module name must be CONSTANT"

    result
end

# reduce 118 omitted

def _reduce_119(val, _values, result)
                      _, name = val
                      result = s(:colon3, name.to_sym).line lexer.lineno

    result
end

def _reduce_120(val, _values, result)
                      result = val[0].to_sym

    result
end

def _reduce_121(val, _values, result)
                      pval, _, name = val

                      result = s(:colon2, pval, name.to_sym)
                      result.line pval.line

    result
end

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

def _reduce_125(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[0]

    result
end

def _reduce_126(val, _values, result)
                      (sym, _line), = val
                      lexer.lex_state = EXPR_END
                      result = sym

    result
end

# reduce 127 omitted

# reduce 128 omitted

def _reduce_129(val, _values, result)
                      id, = val
                      result = s(:lit, id.to_sym).line lexer.lineno

    result
end

# reduce 130 omitted

def _reduce_131(val, _values, result)
                      result = new_undef val[0]

    result
end

def _reduce_132(val, _values, result)
                      lexer.lex_state = EXPR_FNAME

    result
end

def _reduce_133(val, _values, result)
                      result = new_undef val[0], val[3]

    result
end

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

# reduce 197 omitted

# reduce 198 omitted

# reduce 199 omitted

# reduce 200 omitted

# reduce 201 omitted

# reduce 202 omitted

# reduce 203 omitted

# reduce 204 omitted

# reduce 205 omitted

def _reduce_206(val, _values, result)
                      result = new_assign val[0], val[2]

    result
end

def _reduce_207(val, _values, result)
                      result = new_op_asgn val

    result
end

def _reduce_208(val, _values, result)
                      result = new_op_asgn1 val

    result
end

def _reduce_209(val, _values, result)
                      result = new_op_asgn2 val

    result
end

def _reduce_210(val, _values, result)
                      result = new_op_asgn2 val

    result
end

def _reduce_211(val, _values, result)
                      lhs, _, id, op, rhs = val

                      result = s(:op_asgn, lhs, rhs, id.to_sym, op.to_sym).line lhs.line

    result
end

def _reduce_212(val, _values, result)
                      lhs1, _, lhs2, op, rhs = val

                      lhs = s(:colon2, lhs1, lhs2.to_sym).line lhs1.line
                      result = new_const_op_asgn [lhs, op, rhs]

    result
end

def _reduce_213(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_214(val, _values, result)
                      _, lhs, line, op, rhs = val

                      lhs = s(:colon3, lhs.to_sym).line line
                      result = new_const_op_asgn [lhs, op, rhs]

    result
end

def _reduce_215(val, _values, result)
                      # TODO: lhs = var_field val[0]
                      asgn = new_op_asgn val
                      result = self.backref_assign_error asgn

    result
end

def _reduce_216(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
                        result = s(:lit, (v1.last)..(v2.last)).line v1.line
                      else
                        result = s(:dot2, v1, v2).line v1.line
                      end

    result
end

def _reduce_217(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
                        result = s(:lit, (v1.last)...(v2.last)).line v1.line
                      else
                        result = s(:dot3, v1, v2).line v1.line
                      end

    result
end

def _reduce_218(val, _values, result)
                      result = new_call val[0], :+, argl(val[2])

    result
end

def _reduce_219(val, _values, result)
                      result = new_call val[0], :-, argl(val[2])

    result
end

def _reduce_220(val, _values, result)
                      result = new_call val[0], :*, argl(val[2])

    result
end

def _reduce_221(val, _values, result)
                      result = new_call val[0], :"/", argl(val[2])

    result
end

def _reduce_222(val, _values, result)
                      result = new_call val[0], :"%", argl(val[2])

    result
end

def _reduce_223(val, _values, result)
                      result = new_call val[0], :**, argl(val[2])

    result
end

def _reduce_224(val, _values, result)
                      lit = s(:lit, val[1]).line lexer.lineno
                      result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")

    result
end

def _reduce_225(val, _values, result)
                      lit = s(:lit, val[1]).line lexer.lineno
                      result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")

                      ## TODO: why is this 2.0 only?
                      debug20 12, val, result

    result
end

def _reduce_226(val, _values, result)
                      result = new_call val[1], :"+@"

    result
end

def _reduce_227(val, _values, result)
                      result = new_call val[1], :"-@"

    result
end

def _reduce_228(val, _values, result)
                      result = new_call val[0], :"|", argl(val[2])

    result
end

def _reduce_229(val, _values, result)
                      result = new_call val[0], :"^", argl(val[2])

    result
end

def _reduce_230(val, _values, result)
                      result = new_call val[0], :"&", argl(val[2])

    result
end

def _reduce_231(val, _values, result)
                      result = new_call val[0], :"<=>", argl(val[2])

    result
end

# reduce 232 omitted

def _reduce_233(val, _values, result)
                      result = new_call val[0], :"==", argl(val[2])

    result
end

def _reduce_234(val, _values, result)
                      result = new_call val[0], :"===", argl(val[2])

    result
end

def _reduce_235(val, _values, result)
                      result = new_call val[0], :"!=", argl(val[2])

    result
end

def _reduce_236(val, _values, result)
                      lhs, _, rhs = val
                      result = new_match lhs, rhs

    result
end

def _reduce_237(val, _values, result)
                      lhs, _, rhs = val
                      result = s(:not, new_match(lhs, rhs)).line lhs.line

    result
end

def _reduce_238(val, _values, result)
                      _, arg = val
                      result = new_call arg, :"!"
                      result.line arg.line

    result
end

def _reduce_239(val, _values, result)
                      result = new_call value_expr(val[1]), :"~"

    result
end

def _reduce_240(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :"\<\<", argl(val[2])

    result
end

def _reduce_241(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :">>", argl(val[2])

    result
end

def _reduce_242(val, _values, result)
                      result = logical_op :and, val[0], val[2]

    result
end

def _reduce_243(val, _values, result)
                      result = logical_op :or, val[0], val[2]

    result
end

def _reduce_244(val, _values, result)
                      (_, line), _, arg = val
                      result = s(:defined, arg).line line

    result
end

def _reduce_245(val, _values, result)
                      c, _, t, _, _, f = val
                      result = s(:if, c, t, f).line c.line

    result
end

# reduce 246 omitted

# reduce 247 omitted

# reduce 248 omitted

# reduce 249 omitted

# reduce 250 omitted

def _reduce_251(val, _values, result)
                      lhs, op, rhs = val
                      result = new_call lhs, op.to_sym, argl(rhs)

    result
end

def _reduce_252(val, _values, result)
                      lhs, op, rhs = val
                      warn "comparison '%s' after comparison", op
                      result = new_call lhs, op.to_sym, argl(rhs)

    result
end

def _reduce_253(val, _values, result)
                      result = value_expr(val[0])

    result
end

# reduce 254 omitted

def _reduce_255(val, _values, result)
                      result = args [val[0]]

    result
end

def _reduce_256(val, _values, result)
                      result = args [val[0], array_to_hash(val[2])]

    result
end

def _reduce_257(val, _values, result)
                      result = args [array_to_hash(val[0])]

    result
end

# reduce 258 omitted

def _reduce_259(val, _values, result)
                      body, (_, line), resbody = val
                      body    = value_expr body
                      resbody = remove_begin resbody

                      ary = s(:array).line line
                      result  = new_rescue(body, new_resbody(ary, resbody))

    result
end

def _reduce_260(val, _values, result)
                      _, args, _ = val
                      result = args

    result
end

# reduce 261 omitted

# reduce 262 omitted

# reduce 263 omitted

# reduce 264 omitted

def _reduce_265(val, _values, result)
                      result = args val

    result
end

def _reduce_266(val, _values, result)
                      result = args [val[0], array_to_hash(val[2])]

    result
end

def _reduce_267(val, _values, result)
                      result = args [array_to_hash(val[0])]

    result
end

def _reduce_268(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = call_args val

    result
end

def _reduce_269(val, _values, result)
                      result = call_args val

    result
end

def _reduce_270(val, _values, result)
                      result = call_args [array_to_hash(val[0]), val[1]]

    result
end

def _reduce_271(val, _values, result)
                      result = call_args [val[0], array_to_hash(val[2]), val[3]]

    result
end

def _reduce_272(val, _values, result)
                      result = call_args val

    result
end

def _reduce_273(val, _values, result)
                      result = lexer.cmdarg.store true

    result
end

def _reduce_274(val, _values, result)
                      lexer.cmdarg.restore val[0]
                      result = val[1]

    result
end

def _reduce_275(val, _values, result)
                      _, arg = val
                      result = s(:block_pass, arg).line arg.line

    result
end

def _reduce_276(val, _values, result)
                      result = val[1]

    result
end

# reduce 277 omitted

def _reduce_278(val, _values, result)
                      arg, = val

                      result = s(:array, arg).line arg.line

    result
end

def _reduce_279(val, _values, result)
                      _, arg = val
                      result = s(:array, s(:splat, arg).line(arg.line)).line arg.line

    result
end

def _reduce_280(val, _values, result)
                      args, _, id = val
                      result = self.list_append args, id

    result
end

def _reduce_281(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_282(val, _values, result)
                      args, _, _, line, id = val
                      result = self.list_append args, s(:splat, id).line(line)

    result
end

def _reduce_283(val, _values, result)
                      result = val[0] << val[2]

    result
end

def _reduce_284(val, _values, result)
                      # FIX: bad shift/reduce conflict with rhs' comma star prod
                      # TODO: make all tXXXX terminals include lexer.lineno
                      arg, _, _, splat = val
                      result = self.arg_concat arg, splat

    result
end

def _reduce_285(val, _values, result)
                      _, arg = val
                      result = s(:splat, arg).line arg.line

    result
end

# reduce 286 omitted

# reduce 287 omitted

# reduce 288 omitted

# reduce 289 omitted

# reduce 290 omitted

# reduce 291 omitted

# reduce 292 omitted

# reduce 293 omitted

# reduce 294 omitted

# reduce 295 omitted

def _reduce_296(val, _values, result)
                      msg, = val
                      result = new_call nil, msg.to_sym

    result
end

def _reduce_297(val, _values, result)
                      result = self.lexer.lineno
                      # TODO:
                      # $<val>1 = cmdarg_stack;
                      # CMDARG_SET(0);

    result
end

def _reduce_298(val, _values, result)
                      # TODO: CMDARG_SET($<val>1);
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]

    result
end

def _reduce_299(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG
                      result = lexer.lineno

    result
end

def _reduce_300(val, _values, result)
                      _, line, _ = val
                      result = s(:begin).line line

    result
end

def _reduce_301(val, _values, result)
                      result = lexer.cmdarg.store false

    result
end

def _reduce_302(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG

    result
end

def _reduce_303(val, _values, result)
                      _, cmdarg, stmt, _, _, = val
                      warning "(...) interpreted as grouped expression"
                      lexer.cmdarg.restore cmdarg
                      result = stmt

    result
end

def _reduce_304(val, _values, result)
                      _, stmt, _ = val
                      result = stmt
                      result ||= s(:nil).line lexer.lineno
                      result.paren = true

    result
end

def _reduce_305(val, _values, result)
                      expr, _, id = val

                      result = s(:colon2, expr, id.to_sym).line expr.line

    result
end

def _reduce_306(val, _values, result)
                      _, id = val

                      result = s(:colon3, id.to_sym).line lexer.lineno

    result
end

def _reduce_307(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_308(val, _values, result)
                      _, line, args, _ = val
                      result = args || s(:array)
                      result.sexp_type = :array # aref_args is :args
                      result.line line

    result
end

def _reduce_309(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_310(val, _values, result)
                      result = new_hash val

    result
end

def _reduce_311(val, _values, result)
                      (_, line), = val
                      result = s(:return).line line

    result
end

def _reduce_312(val, _values, result)
                      result = new_yield val[2]

    result
end

def _reduce_313(val, _values, result)
                      result = new_yield

    result
end

def _reduce_314(val, _values, result)
                      result = new_yield

    result
end

def _reduce_315(val, _values, result)
                      (_, line), _, _, arg, _ = val

                      result = s(:defined, arg).line line

    result
end

def _reduce_316(val, _values, result)
                      _, _, lhs, _ = val
                      result = new_call lhs, :"!"

    result
end

def _reduce_317(val, _values, result)
                      debug20 14, val, result

    result
end

def _reduce_318(val, _values, result)
                      call, iter = val

                      iter.insert 1, call
                      result = iter
                      # FIX: probably not: call.line = iter.line

    result
end

# reduce 319 omitted

def _reduce_320(val, _values, result)
                      call, iter = val[0], val[1]
                      block_dup_check call, iter
                      iter.insert 1, call # FIX
                      result = iter

    result
end

def _reduce_321(val, _values, result)
                      result = val[1] # TODO: fix lineno

    result
end

def _reduce_322(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, t, f

    result
end

def _reduce_323(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, f, t

    result
end

def _reduce_324(val, _values, result)
                      _, cond, body, _ = val
                      result = new_while body, cond, true

    result
end

def _reduce_325(val, _values, result)
                      _, cond, body, _ = val
                      result = new_until body, cond, true

    result
end

def _reduce_326(val, _values, result)
                      (_, line), expr, _, body, _ = val
                      result = new_case expr, body, line

    result
end

def _reduce_327(val, _values, result)
                      (_, line), _, body, _ = val
                      result = new_case nil, body, line

    result
end

def _reduce_328(val, _values, result)
                      _, var, _, iter, body, _ = val
                      result = new_for iter, var, body

    result
end

def _reduce_329(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_330(val, _values, result)
                      self.comments.push self.lexer.comments
                      if (self.in_def || self.in_single > 0) then
                        yyerror "class definition in method body"
                      end
                      self.env.extend

    result
end

def _reduce_331(val, _values, result)
                      result = new_class val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_332(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_333(val, _values, result)
                      result = self.in_def
                      self.in_def = false

    result
end

def _reduce_334(val, _values, result)
                      result = self.in_single
                      self.in_single = 0
                      self.env.extend

    result
end

def _reduce_335(val, _values, result)
                      result = new_sclass val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_336(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_337(val, _values, result)
                      self.comments.push self.lexer.comments
                      yyerror "module definition in method body" if
                        self.in_def or self.in_single > 0

                      self.env.extend

    result
end

def _reduce_338(val, _values, result)
                      result = new_module val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_339(val, _values, result)
                      result = [self.in_def, self.lexer.cmdarg.stack.dup]

                      self.comments.push self.lexer.comments
                      self.in_def = true
                      self.env.extend
                      # TODO: local->cmdargs = cmdarg_stack;
                      # TODO: port local_push_gen and local_pop_gen
                      lexer.cmdarg.stack.replace [false]

    result
end

def _reduce_340(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_341(val, _values, result)
                      in_def, cmdarg = val[2]

                      result = new_defn val

                      lexer.cmdarg.stack.replace cmdarg
                      self.env.unextend
                      self.in_def = in_def
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_342(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = EXPR_FNAME

    result
end

def _reduce_343(val, _values, result)
                      self.in_single += 1
                      self.env.extend
                      lexer.lex_state = EXPR_ENDFN # force for args
                      result = [lexer.lineno, self.lexer.cmdarg.stack.dup]
                      lexer.cmdarg.stack.replace [false]

    result
end

def _reduce_344(val, _values, result)
                      _, cmdarg = val[5]
                      result = new_defs val

                      lexer.cmdarg.stack.replace cmdarg

                      self.env.unextend
                      self.in_single -= 1
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_345(val, _values, result)
                      (_, line), = val
                      result = s(:break).line line

    result
end

def _reduce_346(val, _values, result)
                      (_, line), = val
                      result = s(:next).line line

    result
end

def _reduce_347(val, _values, result)
                      (_, line), = val
                      result = s(:redo).line line

    result
end

def _reduce_348(val, _values, result)
                      (_, line), = val
                      result = s(:retry).line line

    result
end

def _reduce_349(val, _values, result)
                      result = value_expr(val[0])

    result
end

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

# reduce 353 omitted

# reduce 354 omitted

# reduce 355 omitted

# reduce 356 omitted

# reduce 357 omitted

# reduce 358 omitted

# reduce 359 omitted

# reduce 360 omitted

# reduce 361 omitted

# reduce 362 omitted

# reduce 363 omitted

# reduce 364 omitted

# reduce 365 omitted

# reduce 366 omitted

# reduce 367 omitted

# reduce 368 omitted

# reduce 369 omitted

# reduce 370 omitted

# reduce 371 omitted

# reduce 372 omitted

# reduce 373 omitted

# reduce 374 omitted

def _reduce_375(val, _values, result)
                      (_, line), c, _, t, rest = val

                      result = s(:if, c, t, rest).line line

    result
end

# reduce 376 omitted

def _reduce_377(val, _values, result)
                      result = val[1]

    result
end

# reduce 378 omitted

def _reduce_379(val, _values, result)
                      val[0].delete_at 1 if val[0][1].nil? # HACK

    result
end

# reduce 380 omitted

def _reduce_381(val, _values, result)
                      result = val[1]

    result
end

def _reduce_382(val, _values, result)
                      sym, = val

                      result = s(:array, sym).line lexer.lineno

    result
end

def _reduce_383(val, _values, result)
                      result = list_append val[0], val[2]

    result
end

def _reduce_384(val, _values, result)
                      args, = val

                      result = block_var args

    result
end

def _reduce_385(val, _values, result)
                      args, _, _, splat = val

                      result = block_var args, "*#{splat}".to_sym

    result
end

def _reduce_386(val, _values, result)
                      args, _, _, splat, _, args2 = val

                      result = block_var args, "*#{splat}".to_sym, args2

    result
end

def _reduce_387(val, _values, result)
                      args, _, _ = val

                      result = block_var args, :*

    result
end

def _reduce_388(val, _values, result)
                      args, _, _, _, args2 = val

                      result = block_var args, :*, args2

    result
end

def _reduce_389(val, _values, result)
                      _, splat = val

                      result = block_var :"*#{splat}"

    result
end

def _reduce_390(val, _values, result)
                      _, splat, _, args = val

                      result = block_var :"*#{splat}", args

    result
end

def _reduce_391(val, _values, result)
                      result = block_var :*

    result
end

def _reduce_392(val, _values, result)
                      _, _, args = val

                      result = block_var :*, args

    result
end

def _reduce_393(val, _values, result)
                      result = call_args val

    result
end

def _reduce_394(val, _values, result)
                      result = call_args val

    result
end

def _reduce_395(val, _values, result)
                      result = call_args val

    result
end

def _reduce_396(val, _values, result)
                      line = lexer.lineno
                      result = call_args val # TODO: push line down
                      result.line line

    result
end

def _reduce_397(val, _values, result)
                      result = args val

    result
end

# reduce 398 omitted

def _reduce_399(val, _values, result)
                      result = args val

    result
end

def _reduce_400(val, _values, result)
                      result = args val

    result
end

def _reduce_401(val, _values, result)
                      result = args val

    result
end

def _reduce_402(val, _values, result)
                      result = args val

    result
end

def _reduce_403(val, _values, result)
                      result = args val

    result
end

def _reduce_404(val, _values, result)
                      result = args(val) << nil

    result
end

def _reduce_405(val, _values, result)
                      result = args val

    result
end

def _reduce_406(val, _values, result)
                      result = args val

    result
end

def _reduce_407(val, _values, result)
                      result = args val

    result
end

def _reduce_408(val, _values, result)
                      result = args val

    result
end

def _reduce_409(val, _values, result)
                      result = args val

    result
end

def _reduce_410(val, _values, result)
                      result = args val

    result
end

def _reduce_411(val, _values, result)
                      result = args val

    result
end

def _reduce_412(val, _values, result)
                      result = args val

    result
end

def _reduce_413(val, _values, result)
                      result = args val

    result
end

def _reduce_414(val, _values, result)
 result = 0
    result
end

def _reduce_415(val, _values, result)
                      self.lexer.command_start = true

    result
end

def _reduce_416(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val

    result
end

def _reduce_417(val, _values, result)
                      result = s(:args).line lexer.lineno

    result
end

def _reduce_418(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val

    result
end

# reduce 419 omitted

def _reduce_420(val, _values, result)
                      result = args val

    result
end

def _reduce_421(val, _values, result)
                      result = args val

    result
end

def _reduce_422(val, _values, result)
                      result = args val

    result
end

def _reduce_423(val, _values, result)
                      id, = val
                      line = lexer.lineno
                      result = s(:shadow, id.to_sym).line line

    result
end

# reduce 424 omitted

def _reduce_425(val, _values, result)
                      self.env.extend :dynamic
                      result = [lexer.lineno, lexer.lpar_beg]
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest

    result
end

def _reduce_426(val, _values, result)
                      result = lexer.cmdarg.store(false)

    result
end

def _reduce_427(val, _values, result)
                      (line, lpar), args, cmdarg, body = val
                      lexer.lpar_beg = lpar

                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.lexpop

                      call = s(:lambda).line line
                      result = new_iter call, args, body
                      result.line = line
                      self.env.unextend

    result
end

def _reduce_428(val, _values, result)
                      result = args val

    result
end

def _reduce_429(val, _values, result)
                      result = val[0]
                      result = 0 if result == s(:args)

    result
end

def _reduce_430(val, _values, result)
                      result = val[1]

    result
end

def _reduce_431(val, _values, result)
                      result = val[1]

    result
end

def _reduce_432(val, _values, result)
                      (_, line), iter, _ = val
                      result = iter.line line

    result
end

def _reduce_433(val, _values, result)
                      # TODO:
                      ## if (nd_type($1) == NODE_YIELD) {
                      ##     compile_error(PARSER_ARG "block given to yield");

                      syntax_error "Both block arg and actual block given." if
                        val[0].block_pass?

                      val = invert_block_call val if inverted? val

                      cmd, blk = val

                      result = blk
                      result.insert 1, cmd

    result
end

def _reduce_434(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]

    result
end

def _reduce_435(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2

    result
end

def _reduce_436(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2

    result
end

def _reduce_437(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_438(val, _values, result)
                      call, lineno, args = val

                      result = call.concat args.sexp_body if args
                      result.line lineno

    result
end

def _reduce_439(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3], val[1]

    result
end

def _reduce_440(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]

    result
end

def _reduce_441(val, _values, result)
                      result = new_call val[0], val[2].to_sym

    result
end

def _reduce_442(val, _values, result)
                      result = new_call val[0], :call, val[2], val[1]

    result
end

def _reduce_443(val, _values, result)
                      result = new_call val[0], :call, val[2]

    result
end

def _reduce_444(val, _values, result)
                      result = new_super val[1]

    result
end

def _reduce_445(val, _values, result)
                      result = s(:zsuper).line lexer.lineno

    result
end

def _reduce_446(val, _values, result)
                      result = new_aref val

    result
end

def _reduce_447(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno

    result
end

def _reduce_448(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

def _reduce_449(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno

    result
end

def _reduce_450(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

def _reduce_451(val, _values, result)
 self.env.extend :dynamic; result = self.lexer.lineno
    result
end

def _reduce_452(val, _values, result)
 result = lexer.cmdarg.store(false)
    result
end

def _reduce_453(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_brace_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?

    result
end

def _reduce_454(val, _values, result)
 self.env.extend :dynamic; result = self.lexer.lineno
    result
end

def _reduce_455(val, _values, result)
 result = lexer.cmdarg.store(false)
    result
end

def _reduce_456(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_do_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg

    result
end

def _reduce_457(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_458(val, _values, result)
                      result = new_when(val[2], val[4])
                      result.line = val[1]
                      result << val[5] if val[5]

    result
end

# reduce 459 omitted

# reduce 460 omitted

def _reduce_461(val, _values, result)
                      (_, line), klasses, var, _, body, rest = val

                      klasses ||= s(:array)
                      klasses << new_assign(var, s(:gvar, :"$!").line(var.line)) if var
                      klasses.line line

                      result = new_resbody(klasses, body)
                      result << rest if rest # UGH, rewritten above

    result
end

def _reduce_462(val, _values, result)
                      result = nil

    result
end

def _reduce_463(val, _values, result)
                      arg, = val
                      result = s(:array, arg).line arg.line

    result
end

# reduce 464 omitted

# reduce 465 omitted

def _reduce_466(val, _values, result)
                      result = val[1]

    result
end

# reduce 467 omitted

def _reduce_468(val, _values, result)
                      (_, line), body = val

                      result = body || s(:nil).line(line)

    result
end

# reduce 469 omitted

def _reduce_470(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line

    result
end

def _reduce_471(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line

    result
end

# reduce 472 omitted

def _reduce_473(val, _values, result)
                      str, = val
                      str = s(:dstr, str.value) if str.sexp_type == :evstr
                      result = str

    result
end

def _reduce_474(val, _values, result)
                      debug20 23, val, result

    result
end

# reduce 475 omitted

def _reduce_476(val, _values, result)
                      result = self.literal_concat val[0], val[1]

    result
end

def _reduce_477(val, _values, result)
                      _, str, (_, func) = val

                      str = dedent str if func =~ RubyLexer::STR_FUNC_ICNTNT

                      result = str

    result
end

def _reduce_478(val, _values, result)
                      result = new_string val

    result
end

def _reduce_479(val, _values, result)
                      result = new_xstring val[1]
                      # TODO: dedent?!?! SERIOUSLY?!?

    result
end

def _reduce_480(val, _values, result)
                      result = new_regexp val

    result
end

def _reduce_481(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

def _reduce_482(val, _values, result)
                      result = val[1]

    result
end

def _reduce_483(val, _values, result)
                      result = new_word_list

    result
end

def _reduce_484(val, _values, result)
                      result = val[0].dup << new_word_list_entry(val)

    result
end

# reduce 485 omitted

def _reduce_486(val, _values, result)
                      result = self.literal_concat val[0], val[1]

    result
end

def _reduce_487(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

def _reduce_488(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_489(val, _values, result)
                      _, line, list, _, = val
                      list.line = line
                      result = list

    result
end

def _reduce_490(val, _values, result)
                      result = new_symbol_list.line lexer.lineno

    result
end

def _reduce_491(val, _values, result)
                      list, * = val
                      result = list.dup << new_symbol_list_entry(val)

    result
end

def _reduce_492(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

def _reduce_493(val, _values, result)
                      result = val[1]

    result
end

def _reduce_494(val, _values, result)
                      result = s(:array).line lexer.lineno # FIX

    result
end

def _reduce_495(val, _values, result)
                      result = val[1]

    result
end

def _reduce_496(val, _values, result)
                      result = new_qword_list

    result
end

def _reduce_497(val, _values, result)
                      result = val[0].dup << new_qword_list_entry(val)

    result
end

def _reduce_498(val, _values, result)
                      result = new_qsym_list

    result
end

def _reduce_499(val, _values, result)
                      result = val[0].dup << new_qsym_list_entry(val)

    result
end

def _reduce_500(val, _values, result)
                      result = s(:str, "").line lexer.lineno

    result
end

def _reduce_501(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

def _reduce_502(val, _values, result)
                      result = nil

    result
end

def _reduce_503(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

def _reduce_504(val, _values, result)
                      result = nil

    result
end

def _reduce_505(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

def _reduce_506(val, _values, result)
                      result = new_string val

    result
end

def _reduce_507(val, _values, result)
                      result = lexer.lex_strterm

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG

    result
end

def _reduce_508(val, _values, result)
                      _, strterm, str = val
                      lexer.lex_strterm = strterm
                      result = s(:evstr, str).line str.line

    result
end

def _reduce_509(val, _values, result)
                      result = [lexer.lex_strterm,
                                lexer.brace_nest,
                                lexer.string_nest, # TODO: remove
                                lexer.cond.store,
                                lexer.cmdarg.store,
                                lexer.lex_state,
                                lexer.lineno,
                               ]

                      lexer.lex_strterm = nil
                      lexer.brace_nest  = 0
                      lexer.string_nest = 0

                      lexer.lex_state   = EXPR_BEG

    result
end

def _reduce_510(val, _values, result)
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state, line = memo

                      lexer.lex_strterm = lex_strterm
                      lexer.brace_nest  = brace_nest
                      lexer.string_nest = string_nest

                      lexer.cond.restore oldcond
                      lexer.cmdarg.restore oldcmdarg

                      lexer.lex_state = oldlex_state

                      case stmt
                      when Sexp then
                        case stmt.sexp_type
                        when :str, :dstr, :evstr then
                          result = stmt
                        else
                          result = s(:evstr, stmt).line line
                        end
                      when nil then
                        result = s(:evstr).line line
                      else
                        debug20 25
                        raise "unknown string body: #{stmt.inspect}"
                      end

    result
end

def _reduce_511(val, _values, result)
 result = s(:gvar, val[0].to_sym).line lexer.lineno
    result
end

def _reduce_512(val, _values, result)
 result = s(:ivar, val[0].to_sym).line lexer.lineno
    result
end

def _reduce_513(val, _values, result)
 result = s(:cvar, val[0].to_sym).line lexer.lineno
    result
end

# reduce 514 omitted

def _reduce_515(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[1].to_sym

    result
end

def _reduce_516(val, _values, result)
                      result = val[0].to_sym

    result
end

# reduce 517 omitted

# reduce 518 omitted

# reduce 519 omitted

# reduce 520 omitted

def _reduce_521(val, _values, result)
                      _, result, _ = val

                      lexer.lex_state = EXPR_END

                      result ||= s(:str, "").line lexer.lineno

                      case result.sexp_type
                      when :dstr then
                        result.sexp_type = :dsym
                      when :str then
                        result = s(:lit, result.last.to_sym).line result.line
                      when :evstr then
                        result = s(:dsym, "", result).line result.line
                      else
                        debug20 26, val, result
                      end

    result
end

# reduce 522 omitted

# reduce 523 omitted

def _reduce_524(val, _values, result)
                      result = -val[1] # TODO: pt_testcase

    result
end

def _reduce_525(val, _values, result)
                      result = -val[1] # TODO: pt_testcase

    result
end

# reduce 526 omitted

# reduce 527 omitted

# reduce 528 omitted

# reduce 529 omitted

# reduce 530 omitted

def _reduce_531(val, _values, result)
 result = s(:nil).line lexer.lineno
    result
end

def _reduce_532(val, _values, result)
 result = s(:self).line lexer.lineno
    result
end

def _reduce_533(val, _values, result)
 result = s(:true).line lexer.lineno
    result
end

def _reduce_534(val, _values, result)
 result = s(:false).line lexer.lineno
    result
end

def _reduce_535(val, _values, result)
 result = s(:str, self.file).line lexer.lineno
    result
end

def _reduce_536(val, _values, result)
 result = s(:lit, lexer.lineno).line lexer.lineno
    result
end

def _reduce_537(val, _values, result)
                      l = lexer.lineno
                      result =
                        if defined? Encoding then
                          s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
                        else
                          s(:str, "Unsupported!").line l
                        end

    result
end

def _reduce_538(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)

    result
end

def _reduce_539(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)

    result
end

def _reduce_540(val, _values, result)
                      result = self.assignable val[0]

    result
end

def _reduce_541(val, _values, result)
                      result = self.assignable val[0]
                      debug20 29, val, result

    result
end

def _reduce_542(val, _values, result)
 result = s(:nth_ref,  val[0]).line lexer.lineno
    result
end

def _reduce_543(val, _values, result)
 result = s(:back_ref, val[0]).line lexer.lineno
    result
end

def _reduce_544(val, _values, result)
                      lexer.lex_state = EXPR_BEG
                      lexer.command_start = true

    result
end

def _reduce_545(val, _values, result)
                      result = val[2]

    result
end

def _reduce_546(val, _values, result)
                      result = nil

    result
end

def _reduce_547(val, _values, result)
                      result = val[1]
                      self.lexer.lex_state = EXPR_BEG
                      self.lexer.command_start = true

    result
end

def _reduce_548(val, _values, result)
                      result = self.in_kwarg
                      self.in_kwarg = true
                      self.lexer.lex_state |= EXPR_LABEL

    result
end

def _reduce_549(val, _values, result)
                      kwarg, args, _ = val

                      self.in_kwarg = kwarg
                      result = args
                      lexer.lex_state     = EXPR_BEG
                      lexer.command_start = true

    result
end

def _reduce_550(val, _values, result)
                      result = args val

    result
end

def _reduce_551(val, _values, result)
                      result = args val

    result
end

def _reduce_552(val, _values, result)
                      result = args val

    result
end

# reduce 553 omitted

def _reduce_554(val, _values, result)
                      result = val[1]

    result
end

def _reduce_555(val, _values, result)
                      result = nil

    result
end

def _reduce_556(val, _values, result)
                      result = args val

    result
end

def _reduce_557(val, _values, result)
                      result = args val

    result
end

def _reduce_558(val, _values, result)
                      result = args val

    result
end

def _reduce_559(val, _values, result)
                      result = args val

    result
end

def _reduce_560(val, _values, result)
                      result = args val

    result
end

def _reduce_561(val, _values, result)
                      result = args val

    result
end

def _reduce_562(val, _values, result)
                      result = args val

    result
end

def _reduce_563(val, _values, result)
                      result = args val

    result
end

def _reduce_564(val, _values, result)
                      result = args val

    result
end

def _reduce_565(val, _values, result)
                      result = args val

    result
end

def _reduce_566(val, _values, result)
                      result = args val

    result
end

def _reduce_567(val, _values, result)
                      result = args val

    result
end

def _reduce_568(val, _values, result)
                      result = args val

    result
end

def _reduce_569(val, _values, result)
                      result = args val

    result
end

def _reduce_570(val, _values, result)
                      result = args val

    result
end

def _reduce_571(val, _values, result)
                      yyerror "formal argument cannot be a constant"

    result
end

def _reduce_572(val, _values, result)
                      yyerror "formal argument cannot be an instance variable"

    result
end

def _reduce_573(val, _values, result)
                      yyerror "formal argument cannot be a global variable"

    result
end

def _reduce_574(val, _values, result)
                      yyerror "formal argument cannot be a class variable"

    result
end

# reduce 575 omitted

def _reduce_576(val, _values, result)
                      identifier = val[0].to_sym
                      self.env[identifier] = :lvar

                      result = identifier

    result
end

# reduce 577 omitted

def _reduce_578(val, _values, result)
                      result = val[1]

    result
end

def _reduce_579(val, _values, result)
                      arg, = val

                      case arg
                      when Symbol then
                        result = s(:args, arg).line lexer.lineno
                      when Sexp then
                        result = arg
                      else
                        debug20 32
                        raise "Unknown f_arg type: #{val.inspect}"
                      end

    result
end

def _reduce_580(val, _values, result)
                      list, _, item = val

                      if list.sexp_type == :args then
                        result = list
                      else
                        result = s(:args, list).line list.line
                      end

                      result << item

    result
end

def _reduce_581(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), arg = val

                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      kwarg  = s(:kwarg, identifier, arg).line line
                      result = s(:array, kwarg).line line

    result
end

def _reduce_582(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), expr = val
                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id, expr).line(line)).line line

    result
end

# reduce 583 omitted

def _reduce_584(val, _values, result)
                      list, _, item = val
                      result = list << item.last

    result
end

# reduce 585 omitted

def _reduce_586(val, _values, result)
                      result = args val

    result
end

# reduce 587 omitted

# reduce 588 omitted

def _reduce_589(val, _values, result)
                      name = val[1].to_sym
                      self.assignable name
                      result = :"**#{name}"

    result
end

def _reduce_590(val, _values, result)
                      result = :"**"

    result
end

def _reduce_591(val, _values, result)
                      result = self.assignable val[0], val[2]
                      # TODO: detect duplicate names

    result
end

def _reduce_592(val, _values, result)
                      result = self.assignable val[0], val[2]

    result
end

def _reduce_593(val, _values, result)
                      optblk, = val
                      result = s(:block, optblk).line optblk.line

    result
end

def _reduce_594(val, _values, result)
                      optarg, _, optblk = val
                      result = optarg
                      result << optblk

    result
end

def _reduce_595(val, _values, result)
                      opt, = val
                      result = s(:block, opt).line opt.line

    result
end

def _reduce_596(val, _values, result)
                      result = self.block_append val[0], val[2]

    result
end

# reduce 597 omitted

# reduce 598 omitted

def _reduce_599(val, _values, result)
                      # TODO: differs from parse.y - needs tests
                      name = val[1].to_sym
                      self.assignable name
                      result = :"*#{name}"

    result
end

def _reduce_600(val, _values, result)
                      name = :"*"
                      self.env[name] = :lvar
                      result = name

    result
end

# reduce 601 omitted

# reduce 602 omitted

def _reduce_603(val, _values, result)
                      identifier = val[1].to_sym

                      self.env[identifier] = :lvar
                      result = "&#{identifier}".to_sym

    result
end

def _reduce_604(val, _values, result)
                      result = val[1]

    result
end

def _reduce_605(val, _values, result)
                      result = nil

    result
end

# reduce 606 omitted

def _reduce_607(val, _values, result)
                      lexer.lex_state = EXPR_BEG

    result
end

def _reduce_608(val, _values, result)
                      result = val[2]
                      yyerror "Can't define single method for literals." if
                        result.sexp_type == :lit

    result
end

def _reduce_609(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

# reduce 610 omitted

# reduce 611 omitted

def _reduce_612(val, _values, result)
                      list = val[0].dup
                      more = val[2].sexp_body
                      list.push(*more) unless more.empty?
                      result = list
                      result.sexp_type = :hash

    result
end

def _reduce_613(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line

    result
end

def _reduce_614(val, _values, result)
                      (label, line), arg = val

                      lit = s(:lit, label.to_sym).line line
                      result = s(:array, lit, arg).line line

    result
end

def _reduce_615(val, _values, result)
                      _, arg = val
                      line = arg.line
                      result = s(:array, s(:kwsplat, arg).line(line)).line line

    result
end

# reduce 616 omitted

# reduce 617 omitted

# reduce 618 omitted

# reduce 619 omitted

# reduce 620 omitted

# reduce 621 omitted

# reduce 622 omitted

# reduce 623 omitted

# reduce 624 omitted

# reduce 625 omitted

# reduce 626 omitted

# reduce 627 omitted

# reduce 628 omitted

# reduce 629 omitted

# reduce 630 omitted

# reduce 631 omitted

# reduce 632 omitted

# reduce 633 omitted

# reduce 634 omitted

# reduce 635 omitted

# reduce 636 omitted

# reduce 637 omitted

# reduce 638 omitted

# reduce 639 omitted

def _reduce_640(val, _values, result)
 yyerrok
    result
end

# reduce 641 omitted

# reduce 642 omitted

def _reduce_643(val, _values, result)
 yyerrok
    result
end

def _reduce_644(val, _values, result)
 result = nil;
    result
end

def _reduce_none(val, _values, result)
  val[0]
end

end   # class Ruby20Parser
