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

require 'racc/parser.rb'
class Ruby23Parser < 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 = [
'-630,-115,225,226,808,-114,285,-630,-630,-630,285,-112,-110,-630,-630',
'285,-630,-299,651,-93,-110,886,256,609,235,-630,-539,648,-100,830,830',
'285,602,-539,-109,-79,-630,-630,-537,-630,-630,-630,-630,-630,774,-537',
'-100,582,775,579,578,577,-299,580,253,-102,-101,-103,255,254,236,-112',
'-109,829,829,602,955,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630',
'-630,-630,-630,-630,650,860,-630,-630,-630,-107,675,-108,-115,647,-630',
'236,287,-630,-100,-437,287,955,-630,1052,-630,287,-630,-630,-630,-630',
'-630,-630,-630,-105,-630,-630,-630,1017,-115,-103,-101,287,-109,-115',
'-626,-102,-101,-103,879,-630,-630,-528,-630,-100,-630,-111,-100,-110',
'-528,-528,-528,-630,-110,-528,-528,-528,-630,-528,-111,128,762,-109',
'-100,-113,127,-528,-109,-528,-528,-528,-102,-101,-103,-102,-101,-103',
'-107,-528,-528,95,-528,-528,-528,-528,-528,602,602,96,-112,-102,-101',
'-103,128,-112,276,967,-108,127,-528,602,859,225,226,739,-98,-528,-99',
'-106,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528',
'-528,-114,-626,-528,-528,-528,-538,-528,-528,728,1061,-528,730,-538',
'-528,-528,-100,-528,478,-528,-627,-528,669,-528,-528,-528,-528,-528',
'-528,-528,-212,-528,233,-528,225,226,128,1063,-111,128,-113,127,632',
'-111,127,231,-528,-528,-528,-528,-111,-528,281,-528,1065,627,-113,632',
'-528,-305,637,-113,628,-528,-103,-528,-305,-305,-305,-107,236,-305,-305',
'-305,-107,-305,-115,128,128,128,-112,1067,127,127,127,-305,-305,-305',
'-114,-108,-115,-542,128,1067,-108,-305,-305,127,-305,-305,-305,-305',
'-305,634,633,728,-627,-531,727,721,232,-543,912,632,-531,-114,-626,848',
'634,633,-114,106,107,849,236,227,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,-305,-305,-305,-305,106,107,-305,-305,-305,-104,824,-305',
'224,-107,-305,-212,1017,-305,-305,-102,-305,668,-305,668,-305,724,-305',
'-305,-305,-305,-305,-305,-305,-108,-305,724,-305,-627,634,633,630,-626',
'582,236,579,578,577,587,580,-305,-305,-305,-305,919,-305,-542,-305,-105',
'590,702,632,-305,-531,-101,108,109,-305,128,-113,-531,-531,-531,127',
'-114,-531,-531,-531,223,-531,-110,585,-110,632,108,109,222,-531,-533',
'-531,-531,-531,598,597,231,-533,-624,669,-98,-531,-531,475,-531,-531',
'-531,-531,-531,955,236,-534,476,1046,-109,-305,-107,582,-534,579,578',
'577,-305,580,634,633,795,-627,591,598,597,-305,-531,-531,-531,-531,-531',
'-531,-531,-531,-531,-531,-531,-531,-531,-531,634,633,-531,-531,-531',
'-531,-531,-531,1017,792,-531,-112,-531,-531,-531,232,-531,-624,-531',
'-543,-531,-531,-531,-531,-531,-531,-531,-531,-531,-535,-531,1090,-531',
'1067,-305,808,-535,1067,582,-624,579,578,577,587,580,-531,-531,-531',
'-531,1015,-531,822,-531,821,590,632,-536,-531,-305,882,886,-99,-531',
'-536,-531,-305,-305,-305,1067,587,-531,-305,-305,424,-305,231,585,-108',
'426,425,590,728,613,256,730,128,-623,598,597,231,127,611,124,-109,-305',
'-305,662,-305,-305,-305,-305,-305,907,908,256,660,909,122,123,-112,256',
'-110,686,598,597,253,634,633,652,255,254,591,256,-630,236,-305,-305',
'-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-528,232',
'-305,-305,-305,632,674,-528,591,128,-305,236,-623,-305,127,232,-528',
'256,-305,236,-305,-93,-305,-305,-305,-305,-305,-305,-305,587,-305,705',
'-305,128,-623,-349,-306,-630,127,233,590,236,-349,-306,-630,-305,-305',
'-630,-305,-626,-305,-349,-306,-630,-630,-630,-630,-305,882,886,-630',
'-630,-305,-630,-113,-528,634,633,640,225,226,-630,-630,598,597,231,728',
'679,231,730,290,-106,551,-630,-630,1037,-630,-630,-630,-630,-630,476',
'-305,554,779,716,231,-115,717,-305,-349,-306,-630,1043,-627,632,667',
'591,-305,225,226,666,1041,236,-630,-630,-630,-630,-630,-630,-630,-630',
'-630,-630,-630,-630,-630,-630,231,-306,-630,-630,-630,721,675,777,-306',
'632,-630,724,232,-630,731,232,779,-306,-630,732,-630,524,-630,-630,-630',
'-630,-630,-630,-630,-305,-630,-630,-630,232,736,231,231,-295,634,633',
'635,739,1037,230,-295,-630,-630,-305,-102,740,-630,779,228,-295,-305',
'-305,-305,-630,225,226,-305,-305,-630,-305,-111,232,-306,742,273,274',
'634,633,630,256,744,231,746,754,-541,755,756,758,541,-305,-305,-541',
'-305,-305,-305,-305,-305,539,-540,724,-541,724,609,724,659,-540,232',
'232,-295,272,271,253,658,-276,-540,255,254,251,252,656,-305,-305,-305',
'-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,781,649,-305',
'-305,-305,582,674,579,578,577,-305,580,232,-305,786,-541,796,797,-305',
'646,-305,643,-305,-305,-305,-305,-305,-305,-305,-540,-305,582,-305,579',
'578,577,-277,580,582,639,579,578,577,748,580,-305,-305,-630,-104,809',
'-305,509,751,509,-630,-630,-630,-305,236,-630,-630,-630,-305,-630,-113',
'256,826,276,1067,748,835,837,-630,-630,-630,-630,748,522,960,524,615',
'266,267,-630,-630,751,-630,-630,-630,-630,-630,716,1008,236,579,578',
'577,253,580,259,614,255,254,251,252,290,415,257,290,258,716,609,256',
'236,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630',
'-630,236,256,-630,-630,-630,256,823,-630,236,549,-630,877,236,-630,-630',
'886,-630,256,-630,724,-630,236,-630,-630,-630,-630,-630,-630,-630,545',
'-630,-630,-630,266,267,290,3,253,236,293,542,255,254,251,252,-630,-630',
'-630,-630,253,-630,259,-630,255,254,251,252,-630,-314,257,535,258,-630',
'534,-111,-314,-314,-314,913,-278,-314,-314,-314,582,-314,579,578,577',
'587,580,236,236,-78,918,-314,-314,524,522,519,590,290,509,935,235,-314',
'-314,716,-314,-314,-314,-314,-314,582,480,579,578,577,479,580,-276,941',
'585,582,477,579,578,577,946,580,236,595,594,598,597,739,-314,-314,-314',
'-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,949,748,-314',
'-314,-314,951,953,-314,955,293,-314,748,955,-314,-314,236,-314,591,-314',
'961,-314,724,-314,-314,-314,-314,-314,-314,-314,724,-314,582,-314,579',
'578,577,427,580,582,724,579,578,577,236,580,-314,-314,-632,-314,422',
'-314,405,724,236,-632,-632,-632,-314,979,-632,-632,-632,-314,-632,256',
'402,400,980,739,748,983,986,-632,-632,-632,-632,748,988,990,236,266',
'267,992,-632,-632,397,-632,-632,-632,-632,-632,582,373,579,578,577,253',
'580,259,1004,255,254,251,252,1008,1005,579,578,577,1017,580,236,724',
'724,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632',
'-632,786,748,-632,-632,-632,1035,339,-632,1038,848,-632,338,1044,-632',
'-632,1047,-632,955,-632,,-632,,-632,-632,-632,-632,-632,-632,-632,,-632',
'-632,-632,582,,579,578,577,587,580,131,132,133,134,135,-632,-632,-632',
'-632,590,-632,-652,-632,,,,,-632,-652,-652,-652,,-632,-652,-652,-652',
',-652,256,,,585,,,,,-652,-652,-652,,595,594,598,597,266,267,,-652,-652',
',-652,-652,-652,-652,-652,131,132,133,134,135,253,,,,255,254,251,252',
'131,132,133,134,135,,,,591,,-652,-652,-652,-652,-652,-652,-652,-652',
'-652,-652,-652,-652,-652,-652,,,-652,-652,-652,,,-652,,290,-652,,,-652',
'-652,,-652,,-652,,-652,,-652,-652,-652,-652,-652,-652,-652,,-652,-652',
'-652,131,132,133,134,135,,,,,,,,-652,-652,-631,-652,,-652,,,,-631,-631',
'-631,-652,,-631,-631,-631,-652,-631,256,,,,,,,,-631,-631,-631,-631,',
',,,266,267,,-631,-631,,-631,-631,-631,-631,-631,,,,,,253,,259,,255,254',
'251,252,,,,,,,,,,,-631,-631,-631,-631,-631,-631,-631,-631,-631,-631',
'-631,-631,-631,-631,,,-631,-631,-631,,,-631,,,-631,,,-631,-631,,-631',
',-631,,-631,,-631,-631,-631,-631,-631,-631,-631,,-631,-631,-631,582',
',579,578,577,587,580,,,,,,-631,-631,-631,-631,590,-631,-296,-631,,,',
',-631,-296,-296,-296,,-631,-296,-296,-296,,-296,,,,585,,,,,,-296,-296',
'-296,,,598,597,,,,-296,-296,,-296,-296,-296,-296,-296,,,,,,,,,,,,,,',
',,,,,,,591,,-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,582,,579,578,577,587',
'580,,,,,,-296,-296,-296,-296,590,-296,-445,-296,,,,,-296,-445,-445,-445',
',-296,-445,-445,-445,,-445,,,,585,,,,,-445,-445,-445,,595,594,598,597',
',,,-445,-445,,-445,-445,-445,-445,-445,,,,,,,,,,,,,,,,,,,,,,591,,-445',
'-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,,,-445',
'-445,-445,,,-445,,290,-445,,,-445,-445,,-445,,-445,,-445,,-445,-445',
'-445,-445,-445,-445,-445,,-445,-445,-445,,,,,,,,,,,,,-445,-445,-652',
'-445,,-445,,,,-652,-652,-652,-445,,-652,-652,-652,-445,-652,582,,579',
'578,577,587,580,,-652,-652,,,,,,,590,,,-652,-652,,-652,-652,-652,-652',
'-652,,582,,579,578,577,587,580,,,,585,,,,,,590,,,,,598,597,,,,,,,,,',
',-652,,,,,585,,-652,,,,,290,-652,595,594,598,597,,,,,591,,,,,,,,,,,',
'-652,-652,,,,,,,236,,,,,,-652,,591,,,-652,312,85,86,87,12,78,-652,,',
'79,80,-652,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,22,,,,,663,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,256,260,261,262,263,273,274,268,269,264,265,,249',
'250,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252',
'272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,270,,-251,,,66',
',,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33',
'34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,663,11,49,314,13,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,256,260,261',
'262,263,273,274,268,269,264,265,,249,250,,,266,267,,43,,,36,,,62,63',
',,64,,38,253,,259,48,255,254,251,252,272,271,257,23,258,,,,103,95,97',
'98,99,101,,,,96,104,,270,,,,,66,,,93,100,102,,,108,109,312,85,86,87',
'12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,256,260,261,262,263,273,274,268,269,264,265,,249',
'250,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252',
'272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,270,,,,,66,,,93',
'100,102,,,108,109,8,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,10,13,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,256,260,261,262,263,273',
'274,268,269,264,265,,249,250,,,266,267,,43,,,36,,,62,63,,,64,,38,253',
',259,48,255,254,251,252,272,271,257,23,258,,,,103,95,97,98,99,101,,',
',96,104,,270,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79',
'80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,',
',,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,256,260,261,262,263,273,274,268,269,264,265,,249,250,,,266',
'267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252,272,271,257',
'23,258,,,,103,95,97,98,99,101,,,,96,104,,270,,,,,66,,,93,100,102,,,108',
'109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,256,260,261,262,263,273,274',
'268,269,264,265,,249,250,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259',
'48,255,254,251,252,272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104',
'236,270,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,',
',83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11',
'49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46',
'44,256,260,261,262,263,273,274,268,269,264,265,,249,250,,,266,267,,43',
',,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252,272,271,257,23,258',
',,,103,95,97,98,99,101,,,,96,104,,270,,,,,66,,,93,100,102,,,108,109',
'312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,256,260,261,262,263,273,274,268,269',
'264,265,,249,250,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255',
'254,251,252,272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,270',
',,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314',
'13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,256',
'260,261,262,263,273,274,268,269,264,265,,-653,-653,,,266,267,,43,,,36',
',,62,63,,,64,,38,253,,259,48,255,254,251,252,272,271,257,23,258,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,256,-653,-653,-653,-653,273,274,,,-653,-653,',
',,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252,272',
'271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,256,260,261,262,263,273',
'274,,,264,265,,,,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255',
'254,251,252,272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,,,',
',,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,256,260',
'261,262,263,273,274,268,,264,265,,,,,,266,267,,43,,,36,,,62,63,,,64',
',38,253,,259,48,255,254,251,252,272,271,257,23,258,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,256,-653,-653,-653,-653,273,274,,,-653,-653,,,,,,266,267,',
'43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252,272,271,257,23',
'258,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109',
'312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,256,-653,-653,-653,-653,273,274,,,-653',
'-653,,,,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251',
'252,272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93',
'100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,256,260,261,262,263',
'273,274,268,269,264,265,,-653,-653,,,266,267,,43,,,36,,,62,63,,,64,',
'38,253,,259,48,255,254,251,252,272,271,257,23,258,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,256,-653,-653,-653,-653,273,274,,,-653,-653,,,,,,266,267,',
'43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251,252,272,271,257,23',
'258,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109',
'312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,256,-653,-653,-653,-653,273,274,,,-653',
'-653,,,,,,266,267,,43,,,36,,,62,63,,,64,,38,253,,259,48,255,254,251',
'252,272,271,257,23,258,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93',
'100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,256,-653,-653,-653',
'-653,273,274,,,-653,-653,,,,,,266,267,,43,,,36,,,62,63,,,64,,38,253',
',259,48,255,254,251,252,272,271,257,23,258,,,,103,95,97,98,99,101,,',
',96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,',
'11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,43,,,316,,,62,63,,,64,,38,,,,48,,,,,,,,23,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,',
'38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,8,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,10,13,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49',
'314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
',,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,316,,,62,63,,,64,,38',
',,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49',
'314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
',,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,',
',,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,',
'316,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,312,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,314',
'13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,',
',,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,312,85,86,87',
'12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,22,,,,,,11,49,314,13,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,',
'108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88',
'328,334,116,115,117,118,,,248,,,,,,,329,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,,,,,,,,,325,,,321,,,62,63',
',,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,',
'247,,,62,63,,,64,,699,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,',
',,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,12,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,',
'11,49,10,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,300',
',48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62',
'63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60',
'112,111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241',
',,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101',
',,,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,',
',49,,,120,119,121,110,60,112,111,113,305,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246',
',,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,,,,,66',
',306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331',
'332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,329,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,,,,,',
',,,325,,,321,,,62,63,,,64,,320,,,,,,,,,,,,,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,',
'329,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,',
',,,,,,,,,,,,,,,,,325,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,337,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,329,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,335,,,,,,,,,,,,,,,,,,,,994,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117',
'118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328',
'334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63',
',,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332',
'76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241',
',,247,,,62,63,,,64,,699,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,',
'96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49',
',,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,',
',,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,329,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,335,,,,,,,,,,,,,,,,,,,,1001,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,',
'103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62',
'63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,128,,,,',
'127,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,329,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,',
',,,,,,,367,,,36,,,62,63,,,64,,38,,,,,,,,,,,,,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,',
'329,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,',
',,,,,,,,,,,,,,,,,994,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,',
',247,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,10,13,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,',
',,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,415,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,23,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62',
'63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,,13,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,432,,,,48,,,,,,,,246,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,432,,,,48,,,,,',
',,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62',
'63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,',
',247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121',
'110,60,112,111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,',
',,,,,241,,,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97',
'98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,',
',248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,',
'108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31',
'30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,236,,,,,,66,,,93',
'100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,',
',,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331',
'332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,',
',120,119,121,110,60,112,111,113,305,114,122,123,,106,107,,45,46,44,',
',,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246,,',
',,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,236,,,,',
',66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,,,,79,80,,',
',83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11',
'49,,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
',,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117',
'118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328',
'334,116,115,117,118,,,248,,,,,,,329,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,,,335,,,,,,,,,,,,,,,,,,,,325,,,247,,,62,63,,',
'64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,537,,,66,,,93',
'100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,',
'247,,,62,63,,,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,',
',,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,',
',83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,',
',,,,329,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335',
',,,,,,,,,,,,,,,,,,,325,,,321,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,,,48,,,,,',
',,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328',
'334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63',
',,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332',
'76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110',
'60,112,111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,',
',241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,303,97,98,99,101',
',,,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,',
',,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,',
'103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115',
'117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,554,,62,63,,,64,,,,',
',48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88',
'328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111',
'113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,699,,,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104',
',,,,,,66,,306,93,100,102,,,108,109,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,,13',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,',
',,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,,,48,',
',,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88',
'328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111',
'113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,',
',,,,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,',
',,,,,,,,,,241,,,247,,,62,63,,,64,,432,,,,48,,,,,,,,246,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,23,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115',
'117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48',
',,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,',
',108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88',
'328,334,116,115,117,118,,,248,,,,,,,329,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,,,,,,,,,325,,,321,,,62,63',
',,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,',
'247,,,62,63,,,64,,,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96',
'104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,329',
',,120,119,121,616,60,112,111,617,,114,122,123,,106,107,,,,335,,,,,,',
',,,,,,,,,,,,,618,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,329,,,120,119,121,616,60,112,111,617,,114,122,123,,106,107,,,',
'335,,,,,,,,,,,,,,,,,,,,618,,,247,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117',
'118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64',
',,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62',
'63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,',
',247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,',
'49,,,120,119,121,110,60,112,111,113,305,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,300,,48,,,,,,,,246,',
',,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334',
'116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305',
'114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63',
',,64,,699,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,',
',,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,',
',,49,,,120,119,121,110,60,112,111,113,305,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246',
',,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,801,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,',
',,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,302',
',300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,,,,,66,,306',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76',
'77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241',
',,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,',
',,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,329,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,,,335,,,,,,,,,,,,,,,,,,,,325,,,321,,,62,63,,,64,,,,,,',
',,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,305',
'114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63',
',,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96,104,,,',
',,,66,,306,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121',
'110,60,112,111,113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,',
',,,,,241,,,247,,,62,63,,,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97',
'98,99,101,,,,96,104,,,,,,,66,,306,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,329,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,',
',,,,,,,325,,,321,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,,,,79,80,,',
',83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11',
'49,314,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,415,66,,,93,100,102,,,108,109,85,86,87',
',78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117',
'118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,',
',,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328',
'334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63',
',,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332',
'76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241',
',,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118',
',,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,',
',,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116,115,117,118,,,248',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,,,,48,,,,,,,,246,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,331,332,76,77,,,,,,88,328,334,116',
'115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247,,,62,63,,,64,,,',
',,48,,,,,,,,246,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,248,,,,,,,49,,,120,119,121,110,60,112,111',
'113,305,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,241,,,247',
',,62,63,,,64,,302,,300,,48,,,,,,,,246,,,,,103,303,97,98,99,101,,,,96',
'104,,,,,,,66,,306,93,100,102,,,108,109,189,200,190,213,186,206,196,195',
'216,217,211,194,193,188,214,218,219,198,187,201,205,207,199,192,,,,208',
'215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183,179,180,181',
'139,141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155',
',,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163,164,158',
'156,148,171,149,,,177,,,,,,,,,,,,,,,,,,,,170,,,,,178,189,200,190,213',
'186,206,196,195,216,217,211,194,193,188,214,218,219,198,187,201,205',
'207,199,192,,,,208,215,210,209,202,212,197,185,204,203,,,,,,184,191',
'182,183,179,180,181,139,141,138,,140,,,,,,,,,173,174,,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172',
'168,167,163,164,158,156,148,171,149,,,177,103,,,,,,,,,,104,,,,,,,,,170',
',,,,178,189,200,190,213,186,206,196,195,216,217,211,194,193,188,214',
'218,219,198,187,201,205,207,199,192,,,,208,215,210,382,381,383,380,185',
'204,203,,,,,,184,191,182,183,377,378,379,375,141,112,111,376,,114,,',
',,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,389,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,,,,,,,,,,,170,,,,,178,189,200,190,213,186,206,196,195',
'216,217,211,194,193,188,214,218,219,198,187,201,205,207,199,192,,,,208',
'215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183,179,180,181',
'139,141,412,411,140,,413,,,,,,,173,174,,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163',
'164,158,156,148,171,149,,,177,,,,,,,,,,,,,,,,,,,,170,,,,,178,189,200',
'190,213,186,206,196,195,216,217,211,194,193,188,214,218,219,198,187',
'201,205,207,199,192,,,,208,215,210,209,202,212,197,185,204,203,,,,,',
'184,191,182,183,179,180,181,139,141,,,140,,,,,,,,,173,174,,169,151,152',
'153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,103,,,,,,,,,,104,,,,,',
',,,170,,,,,178,189,200,190,213,186,206,196,195,216,217,211,194,193,188',
'214,218,219,198,187,201,205,207,199,192,,,,208,215,210,209,202,212,197',
'185,204,203,,,,,,184,191,182,183,179,180,181,139,141,,,140,,,,,,,,,173',
'174,,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,',
',,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,103',
',,,,,,,,,104,,,,,,,,,170,,,,,178,189,200,190,213,186,206,196,195,216',
'217,211,194,193,188,214,218,219,198,187,201,205,207,199,192,,,,208,215',
'210,209,202,212,197,185,204,203,,,,,,184,191,182,183,179,180,181,139',
'141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,',
'175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,103,,,,,,,,,,104,,455,459,,,456,,,170,,,,,178,173',
'174,,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,290',
',,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,',
',,,,,,,806,466,,,805,,,,,,170,,,173,174,178,169,151,152,153,160,157',
'159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168',
'167,163,164,158,156,148,171,149,,,177,,,,,,,,,,771,466,,,772,,,,,,170',
',,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,682,466,,,683,,,,,,170,,,173,174,178,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,680,459,,,681',
',,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,,712,466,,,713,,,,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,',
',166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,',
',1076,466,,,1077,,,,,,170,,,173,174,178,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168,167',
'163,164,158,156,148,171,149,,,177,,,,,,,,,,682,466,,,683,,,,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,803,459,,,804,,,,,,170,,,173,174,178,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,680,459,,,681',
',,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,,507,459,,,508,,,,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,',
',166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,',
',769,459,,,770,,,,,,170,,,173,174,178,169,151,152,153,160,157,159,,',
'154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168,167',
'163,164,158,156,148,171,149,,,177,,,,,,,,,,893,466,,,894,,,,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,1071,466,,,1070,,,,,,170,,,173,174,178,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,462,466,,,461',
',,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,290,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,,1074,459,,,1075,,,,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,290,,,,,,',
',166,165,,150,172,168,167,163,164,158,156,148,171,149,,582,177,579,578',
'577,587,580,,,,,507,459,,,508,590,,,,,170,,,173,174,178,169,151,152',
'153,160,157,159,,,154,155,585,,,175,176,161,162,,,595,594,598,597,,',
',,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,582',
',579,578,577,587,580,,591,709,459,,,710,,,590,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,585,175,176,161,162,,,,,,290,598',
'597,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,582,177',
'579,578,577,587,580,,,,,,591,,,,590,,,,,170,,,,582,178,579,578,577,587',
'580,,,,,,,585,,582,590,579,578,577,587,580,,,598,597,,,,,582,590,579',
'578,577,587,580,,585,582,,579,578,577,587,580,590,595,594,598,597,,',
'585,,590,,,591,,,,595,594,598,597,,,585,582,,579,578,577,587,580,,585',
',598,597,,,591,,590,,,598,597,582,,579,578,577,587,580,,591,,,,,,,,590',
'585,,,,,,591,,,,,598,597,,,591,,,,,582,585,579,578,577,587,580,,,,595',
'594,598,597,,582,590,579,578,577,587,580,,,,591,,,,,,590,,,,,,,585,568',
',,,,,,591,595,594,598,597,,582,585,579,578,577,587,580,,,,595,594,598',
'597,,,590,582,,579,578,577,587,580,,,,,,,,591,,590,,,,,585,,,,,,,,591',
',,598,597,,,,,585,,,,,,,,,595,594,598,597,,,,,,,,,,,,,,,,591,,,,,,,',
',,,,,,,,,591' ]
        racc_action_table = arr = ::Array.new(26270, 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 = [
'806,1002,789,789,664,614,330,806,806,806,65,770,769,806,806,689,806',
'62,406,704,1074,1020,483,1020,22,806,379,403,842,687,836,29,940,379',
'1088,704,806,806,378,806,806,806,806,806,618,378,664,751,618,751,751',
'751,62,751,483,712,709,710,483,483,22,1075,664,687,836,890,1012,806',
'806,806,806,806,806,806,806,806,806,806,806,806,806,406,734,806,806',
'806,364,806,365,368,403,806,789,330,806,842,29,65,1013,806,1014,806',
'689,806,806,806,806,806,806,806,614,806,806,806,1016,1002,770,769,29',
'891,1002,712,712,709,710,751,806,806,110,806,842,806,1076,842,1074,110',
'110,110,806,1074,110,110,110,806,110,806,940,604,1088,842,1077,940,110',
'1088,110,110,110,712,709,710,712,709,710,998,110,110,92,110,110,110',
'110,110,356,357,92,1075,712,709,710,890,1075,25,890,999,890,375,964',
'734,471,471,1026,364,375,365,368,110,110,110,110,110,110,110,110,110',
'110,110,110,110,110,1044,1076,110,110,110,377,110,110,561,1029,110,561',
'377,110,110,891,110,242,110,1077,110,456,110,110,110,110,110,110,110',
'477,110,439,110,719,719,5,1030,1076,604,772,5,794,1076,604,27,110,110',
'110,110,771,110,27,110,1031,385,1077,395,110,683,395,1077,385,110,456',
'110,683,683,683,998,471,683,683,683,998,683,242,972,356,357,456,1032',
'972,356,357,683,683,683,477,999,439,239,964,1034,999,683,683,964,683',
'683,683,683,683,794,794,560,772,376,560,1040,27,240,794,526,376,1044',
'771,720,395,395,1044,335,335,720,719,18,683,683,683,683,683,683,683',
'683,683,683,683,683,683,683,44,44,683,683,683,772,683,683,16,239,683',
'339,1053,683,683,771,683,455,683,803,683,1058,683,683,683,683,683,683',
'683,240,683,1059,683,1070,526,526,526,1071,1067,1073,1067,1067,1067',
'1067,1067,683,683,683,683,825,683,41,683,339,1067,526,644,683,113,455',
'335,335,683,361,683,113,113,113,361,339,113,113,113,15,113,455,1067',
'803,641,44,44,13,113,381,113,113,113,1067,1067,238,381,617,804,41,113',
'113,238,113,113,113,113,113,1079,1006,382,238,1006,825,713,41,960,382',
'960,960,960,713,960,644,644,644,713,1067,739,739,713,113,113,113,113',
'113,113,113,113,113,113,113,113,113,113,641,641,113,113,113,617,113',
'113,1080,641,113,804,617,113,113,238,113,617,113,42,113,617,113,113',
'113,113,113,113,113,383,113,1084,113,1085,713,915,383,1086,1065,617',
'1065,1065,1065,1065,1065,113,113,113,113,960,113,681,113,680,1065,408',
'380,113,805,757,757,42,113,380,113,805,805,805,1087,980,617,805,805',
'138,805,366,1065,42,138,138,980,857,366,484,857,309,616,1065,1065,438',
'309,366,3,915,805,805,438,805,805,805,805,805,790,790,488,438,790,790',
'790,681,487,680,504,980,980,484,408,408,408,484,484,1065,486,893,515',
'805,805,805,805,805,805,805,805,805,805,805,805,805,805,616,366,805',
'805,805,398,805,616,980,899,805,516,616,805,899,438,616,485,805,532',
'805,533,805,805,805,805,805,805,805,736,805,536,805,903,616,50,542,893',
'903,20,736,538,50,542,893,805,805,462,805,893,805,50,542,893,462,462',
'462,805,1054,1054,462,462,805,462,805,616,398,398,398,783,783,893,462',
'736,736,341,565,473,993,565,463,20,341,462,462,993,462,462,462,462,462',
'341,894,543,993,546,1000,20,548,894,50,542,893,1000,894,393,454,736',
'894,17,17,453,1000,450,462,462,462,462,462,462,462,462,462,462,462,462',
'462,462,620,775,462,462,462,555,462,620,775,391,462,556,341,462,562',
'993,620,775,462,563,462,566,462,462,462,462,462,462,462,894,462,462',
'462,1000,570,1036,19,326,393,393,393,571,1036,19,326,462,462,461,462',
'573,462,1036,19,326,461,461,461,462,355,355,461,461,462,461,462,620',
'775,574,47,47,391,391,391,498,575,324,584,592,323,596,599,601,324,461',
'461,323,461,461,461,461,461,324,322,605,323,606,607,608,436,322,1036',
'19,326,47,47,498,433,431,322,498,498,498,498,428,461,461,461,461,461',
'461,461,461,461,461,461,461,461,461,622,405,461,461,461,585,461,585',
'585,585,461,585,324,461,625,323,648,651,461,402,461,400,461,461,461',
'461,461,461,461,322,461,877,461,877,877,877,657,877,748,397,748,748',
'748,585,748,461,461,682,461,665,461,670,585,676,682,682,682,461,684',
'682,682,682,461,682,461,503,685,688,1095,877,691,693,682,682,682,682',
'748,696,877,698,369,503,503,682,682,748,682,682,682,682,682,706,1046',
'708,1046,1046,1046,503,1046,503,367,503,503,503,503,711,363,503,714',
'503,715,362,718,725,682,682,682,682,682,682,682,682,682,682,682,682',
'682,682,348,343,682,682,682,499,682,682,735,340,682,750,752,682,682',
'759,682,552,682,765,682,768,682,682,682,682,682,682,682,336,682,682',
'682,552,552,334,1,499,329,328,325,499,499,499,499,682,682,682,682,552',
'682,552,682,552,552,552,552,682,31,552,319,552,682,318,682,31,31,31',
'798,800,31,31,31,787,31,787,787,787,787,787,317,802,315,810,31,31,301',
'298,297,787,286,282,834,248,31,31,841,31,31,31,31,31,1017,244,1017,1017',
'1017,243,1017,852,853,787,961,241,961,961,961,861,961,862,787,787,787',
'787,863,31,31,31,31,31,31,31,31,31,31,31,31,31,31,867,1017,31,31,31',
'868,870,31,871,31,31,961,873,31,31,876,31,787,31,878,31,881,31,31,31',
'31,31,31,31,887,31,879,31,879,879,879,220,879,1015,892,1015,1015,1015',
'896,1015,31,31,467,31,136,31,102,900,902,467,467,467,31,911,467,467',
'467,31,467,490,101,100,921,922,879,924,925,467,467,467,467,1015,926',
'928,929,490,490,930,467,467,99,467,467,467,467,467,1052,73,1052,1052',
'1052,490,1052,490,944,490,490,490,490,946,945,946,946,946,962,946,49',
'971,975,467,467,467,467,467,467,467,467,467,467,467,467,467,467,978',
'1052,467,467,467,991,43,467,994,996,467,40,1001,467,467,1010,467,1011',
'467,,467,,467,467,467,467,467,467,467,,467,467,467,786,,786,786,786',
'786,786,9,9,9,9,9,467,467,467,467,786,467,457,467,,,,,467,457,457,457',
',467,457,457,457,,457,491,,,786,,,,,457,457,457,,786,786,786,786,491',
'491,,457,457,,457,457,457,457,457,531,531,531,531,531,491,,,,491,491',
'491,491,313,313,313,313,313,,,,786,,457,457,457,457,457,457,457,457',
'457,457,457,457,457,457,,,457,457,457,,,457,,457,457,,,457,457,,457',
',457,,457,,457,457,457,457,457,457,457,,457,457,457,558,558,558,558',
'558,,,,,,,,457,457,466,457,,457,,,,466,466,466,457,,466,466,466,457',
'466,489,,,,,,,,466,466,466,466,,,,,489,489,,466,466,,466,466,466,466',
'466,,,,,,489,,489,,489,489,489,489,,,,,,,,,,,466,466,466,466,466,466',
'466,466,466,466,466,466,466,466,,,466,466,466,,,466,,,466,,,466,466',
',466,,466,,466,,466,466,466,466,466,466,466,,466,466,466,1063,,1063',
'1063,1063,1063,1063,,,,,,466,466,466,466,1063,466,60,466,,,,,466,60',
'60,60,,466,60,60,60,,60,,,,1063,,,,,,60,60,60,,,1063,1063,,,,60,60,',
'60,60,60,60,60,,,,,,,,,,,,,,,,,,,,,,1063,,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,1061,,1061,1061,1061,1061,1061,,,,,,60,60,60,60,1061',
'60,30,60,,,,,60,30,30,30,,60,30,30,30,,30,,,,1061,,,,,30,30,30,,1061',
'1061,1061,1061,,,,30,30,,30,30,30,30,30,,,,,,,,,,,,,,,,,,,,,,1061,,30',
'30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30,,,30,,30,30,,,30,30',
',30,,30,,30,,30,30,30,30,30,30,30,,30,30,30,,,,,,,,,,,,,30,30,506,30',
',30,,,,506,506,506,30,,506,506,506,30,506,1047,,1047,1047,1047,1047',
'1047,,506,506,,,,,,,1047,,,506,506,,506,506,506,506,506,,829,,829,829',
'829,829,829,,,,1047,,,,,,829,,,,,1047,1047,,,,,,,,,,,506,,,,,829,,506',
',,,,506,506,829,829,829,829,,,,,1047,,,,,,,,,,,,506,506,,,,,,,829,,',
',,,506,,829,,,506,997,997,997,997,997,997,506,,,997,997,506,,,997,,997',
'997,997,997,997,997,997,,,,,,997,997,997,997,997,997,997,,,997,,,,,443',
'997,997,997,997,997,997,997,997,997,997,997,997,,997,997,997,,997,997',
',997,997,997,443,443,443,443,443,443,443,443,443,443,443,,443,443,,',
'443,443,,997,,,997,,,997,997,,,997,,997,443,,443,997,443,443,443,443',
'443,443,443,997,443,,,,997,997,997,997,997,997,,,,997,997,,443,,443',
',,997,,,997,997,997,,,997,997,603,603,603,603,603,603,,,,603,603,,,',
'603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,,',
'603,,,,,449,603,603,603,603,603,603,603,603,603,603,603,603,,603,603',
'603,,603,603,,603,603,603,449,449,449,449,449,449,449,449,449,449,449',
',449,449,,,449,449,,603,,,603,,,603,603,,,603,,603,449,,449,603,449',
'449,449,449,449,449,449,603,449,,,,603,603,603,603,603,603,,,,603,603',
',449,,,,,603,,,603,603,603,,,603,603,968,968,968,968,968,968,,,,968',
'968,,,,968,,968,968,968,968,968,968,968,,,,,,968,968,968,968,968,968',
'968,,,968,,,,,,968,968,968,968,968,968,968,968,968,968,968,968,,968',
'968,968,,968,968,,968,968,968,295,295,295,295,295,295,295,295,295,295',
'295,,295,295,,,295,295,,968,,,968,,,968,968,,,968,,968,295,,295,968',
'295,295,295,295,295,295,295,968,295,,,,968,968,968,968,968,968,,,,968',
'968,,295,,,,,968,,,968,968,968,,,968,968,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,920,920,920,920,920,920,920,920,920',
'920,920,,920,920,,,920,920,,653,,,653,,,653,653,,,653,,653,920,,920',
'653,920,920,920,920,920,920,920,653,920,,,,653,653,653,653,653,653,',
',,653,653,,920,,,,,653,,,653,653,653,,,653,653,831,831,831,831,831,831',
',,,831,831,,,,831,,831,831,831,831,831,831,831,,,,,,831,831,831,831',
'831,831,831,,,831,,,,,,831,831,831,831,831,831,831,831,831,831,831,831',
',831,831,831,,831,831,,831,831,831,553,553,553,553,553,553,553,553,553',
'553,553,,553,553,,,553,553,,831,,,831,,,831,831,,,831,,831,553,,553',
'831,553,553,553,553,553,553,553,831,553,,,,831,831,831,831,831,831,',
',,831,831,,553,,,,,831,,,831,831,831,,,831,831,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,773,773,773,773,773,773,773,773,773',
',773,773,773,,773,773,,773,773,773,502,502,502,502,502,502,502,502,502',
'502,502,,502,502,,,502,502,,773,,,773,,,773,773,,,773,,773,502,,502',
'773,502,502,502,502,502,502,502,773,502,,,,773,773,773,773,773,773,',
',,773,773,502,502,,,,,773,,,773,773,773,,,773,773,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,807,807,807,807,807,807,807,807',
'807,807,807,,807,807,,,807,807,,247,,,247,,,247,247,,,247,,247,807,',
'807,247,807,807,807,807,807,807,807,247,807,,,,247,247,247,247,247,247',
',,,247,247,,807,,,,,247,,,247,247,247,,,247,247,886,886,886,886,886',
'886,,,,886,886,,,,886,,886,886,886,886,886,886,886,,,,,,886,886,886',
'886,886,886,886,,,886,,,,,,886,886,886,886,886,886,886,886,886,886,886',
'886,,886,886,886,,886,886,,886,886,886,24,24,24,24,24,24,24,24,24,24',
'24,,24,24,,,24,24,,886,,,886,,,886,886,,,886,,886,24,,24,886,24,24,24',
'24,24,24,24,886,24,,,,886,886,886,886,886,886,,,,886,886,,24,,,,,886',
',,886,886,886,,,886,886,1025,1025,1025,1025,1025,1025,,,,1025,1025,',
',,1025,,1025,1025,1025,1025,1025,1025,1025,,,,,,1025,1025,1025,1025',
'1025,1025,1025,,,1025,,,,,,1025,1025,1025,1025,1025,1025,1025,1025,1025',
'1025,1025,1025,,1025,1025,1025,,1025,1025,,1025,1025,1025,481,481,481',
'481,481,481,481,481,481,481,481,,481,481,,,481,481,,1025,,,1025,,,1025',
'1025,,,1025,,1025,481,,481,1025,481,481,481,481,481,481,481,1025,481',
',,,1025,1025,1025,1025,1025,1025,,,,1025,1025,,,,,,,1025,,,1025,1025',
'1025,,,1025,1025,860,860,860,860,860,860,,,,860,860,,,,860,,860,860',
'860,860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860',
'860,860,860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,,860',
'860,860,497,497,497,497,497,497,497,,,497,497,,,,,,497,497,,860,,,860',
',,860,860,,,860,,860,497,,497,860,497,497,497,497,497,497,497,860,497',
',,,860,860,860,860,860,860,,,,860,860,,,,,,,860,,,860,860,860,,,860',
'860,1023,1023,1023,1023,1023,1023,,,,1023,1023,,,,1023,,1023,1023,1023',
'1023,1023,1023,1023,,,,,,1023,1023,1023,1023,1023,1023,1023,,,1023,',
',,,,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,,1023',
'1023,1023,,1023,1023,,1023,1023,1023,500,500,500,500,500,500,500,,,500',
'500,,,,,,500,500,,1023,,,1023,,,1023,1023,,,1023,,1023,500,,500,1023',
'500,500,500,500,500,500,500,1023,500,,,,1023,1023,1023,1023,1023,1023',
',,,1023,1023,,,,,,,1023,,,1023,1023,1023,,,1023,1023,850,850,850,850',
'850,850,,,,850,850,,,,850,,850,850,850,850,850,850,850,,,,,,850,850',
'850,850,850,850,850,,,850,,,,,,850,850,850,850,850,850,850,850,850,850',
'850,850,,850,850,850,,850,850,,850,850,850,501,501,501,501,501,501,501',
'501,,501,501,,,,,,501,501,,850,,,850,,,850,850,,,850,,850,501,,501,850',
'501,501,501,501,501,501,501,850,501,,,,850,850,850,850,850,850,,,,850',
'850,,,,,,,850,,,850,850,850,,,850,850,784,784,784,784,784,784,,,,784',
'784,,,,784,,784,784,784,784,784,784,784,,,,,,784,784,784,784,784,784',
'784,,,784,,,,,,784,784,784,784,784,784,784,784,784,784,784,784,,784',
'784,784,,784,784,,784,784,784,493,493,493,493,493,493,493,,,493,493',
',,,,,493,493,,784,,,784,,,784,784,,,784,,784,493,,493,784,493,493,493',
'493,493,493,493,784,493,,,,784,784,784,784,784,784,,,,784,784,,,,,,',
'784,,,784,784,784,,,784,784,785,785,785,785,785,785,,,,785,785,,,,785',
',785,785,785,785,785,785,785,,,,,,785,785,785,785,785,785,785,,,785',
',,,,,785,785,785,785,785,785,785,785,785,785,785,785,,785,785,785,,785',
'785,,785,785,785,492,492,492,492,492,492,492,,,492,492,,,,,,492,492',
',785,,,785,,,785,785,,,785,,785,492,,492,785,492,492,492,492,492,492',
'492,785,492,,,,785,785,785,785,785,785,,,,785,785,,,,,,,785,,,785,785',
'785,,,785,785,859,859,859,859,859,859,,,,859,859,,,,859,,859,859,859',
'859,859,859,859,,,,,,859,859,859,859,859,859,859,,,859,,,,,,859,859',
'859,859,859,859,859,859,859,859,859,859,,859,859,859,,859,859,,859,859',
'859,482,482,482,482,482,482,482,482,482,482,482,,482,482,,,482,482,',
'859,,,859,,,859,859,,,859,,859,482,,482,859,482,482,482,482,482,482',
'482,859,482,,,,859,859,859,859,859,859,,,,859,859,,,,,,,859,,,859,859',
'859,,,859,859,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,494,494,494,494,494,494,494',
',,494,494,,,,,,494,494,,1018,,,1018,,,1018,1018,,,1018,,1018,494,,494',
'1018,494,494,494,494,494,494,494,1018,494,,,,1018,1018,1018,1018,1018',
'1018,,,,1018,1018,,,,,,,1018,,,1018,1018,1018,,,1018,1018,360,360,360',
'360,360,360,,,,360,360,,,,360,,360,360,360,360,360,360,360,,,,,,360',
'360,360,360,360,360,360,,,360,,,,,,360,360,360,360,360,360,360,360,360',
'360,360,360,,360,360,360,,360,360,,360,360,360,495,495,495,495,495,495',
'495,,,495,495,,,,,,495,495,,360,,,360,,,360,360,,,360,,360,495,,495',
'360,495,495,495,495,495,495,495,360,495,,,,360,360,360,360,360,360,',
',,360,360,,,,,,,360,,,360,360,360,,,360,360,938,938,938,938,938,938',
',,,938,938,,,,938,,938,938,938,938,938,938,938,,,,,,938,938,938,938',
'938,938,938,,,938,,,,,,938,938,938,938,938,938,938,938,938,938,938,938',
',938,938,938,,938,938,,938,938,938,496,496,496,496,496,496,496,,,496',
'496,,,,,,496,496,,938,,,938,,,938,938,,,938,,938,496,,496,938,496,496',
'496,496,496,496,496,938,496,,,,938,938,938,938,938,938,,,,938,938,,',
',,,,938,,,938,938,938,,,938,938,321,321,321,321,321,321,,,,321,321,',
',,321,,321,321,321,321,321,321,321,,,,,,321,321,321,321,321,321,321',
',,321,,,,,,321,321,321,321,321,321,321,321,321,321,321,321,,321,321',
'321,,321,321,,321,321,321,,,,,,,,,,,,,,,,,,,,321,,,321,,,321,321,,,321',
',321,,,,321,,,,,,,,321,,,,,321,321,321,321,321,321,,,,321,321,,,,,,',
'321,,,321,321,321,,,321,321,936,936,936,936,936,936,,,,936,936,,,,936',
',936,936,936,936,936,936,936,,,,,,936,936,936,936,936,936,936,,,936',
',,,,,936,936,936,936,936,936,936,936,936,936,936,936,,936,936,936,,936',
'936,,936,936,936,,,,,,,,,,,,,,,,,,,,936,,,936,,,936,936,,,936,,936,',
',,936,,,,,,,,936,,,,,936,936,936,936,936,936,,,,936,936,,,,,,,936,,',
'936,936,936,,,936,936,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,,,2,2,791,791,791,791,791,791,,,,791,791,,,,791,,791',
'791,791,791,791,791,791,,,,,,791,791,791,791,791,791,791,,,791,,,,,',
'791,791,791,791,791,791,791,791,791,791,791,791,,791,791,791,,791,791',
',791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791,,,791,,791,,,,791',
',,,,,,,791,,,,,791,791,791,791,791,791,,,,791,791,,,,,,,791,,,791,791',
'791,,,791,791,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,,,,,,,,,,,,,,,,,,,,36,,,36,,,36,36,,,36',
',36,,,,36,,,,,,,,36,,,,,36,36,36,36,36,36,,,,36,36,,,,,,,36,,,36,36',
'36,,,36,36,600,600,600,600,600,600,,,,600,600,,,,600,,600,600,600,600',
'600,600,600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,600,600,600',
'600,600,600,600,600,600,600,600,600,,600,600,600,,600,600,,600,600,600',
',,,,,,,,,,,,,,,,,,,600,,,600,,,600,600,,,600,,600,,,,600,,,,,,,,600',
',,,,600,600,600,600,600,600,,,,600,600,,,,,,,600,,,600,600,600,,,600',
'600,359,359,359,359,359,359,,,,359,359,,,,359,,359,359,359,359,359,359',
'359,,,,,,359,359,359,359,359,359,359,,,359,,,,,,359,359,359,359,359',
'359,359,359,359,359,359,359,,359,359,359,,359,359,,359,359,359,,,,,',
',,,,,,,,,,,,,,359,,,359,,,359,359,,,359,,359,,,,359,,,,,,,,359,,,,,359',
'359,359,359,359,359,,,,359,359,,,,,,,359,,,359,359,359,,,359,359,897',
'897,897,897,897,897,,,,897,897,,,,897,,897,897,897,897,897,897,897,',
',,,,897,897,897,897,897,897,897,,,897,,,,,,897,897,897,897,897,897,897',
'897,897,897,897,897,,897,897,897,,897,897,,897,897,897,,,,,,,,,,,,,',
',,,,,,897,,,897,,,897,897,,,897,,897,,,,897,,,,,,,,897,,,,,897,897,897',
'897,897,897,,,,897,897,,,,,,,897,,,897,897,897,,,897,897,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,,,,,,,,,,,,,,,,,,,,316',
',,316,,,316,316,,,316,,316,,,,316,,,,,,,,316,,,,,316,316,316,316,316',
'316,,,,316,316,,,,,,,316,,,316,316,316,,,316,316,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,',
',,222,222,,,,,,,222,,,222,222,222,,,222,222,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,,,,,,,347,,,347,347,347,,,347,347,705,705,705,,705,,,,705,705,,',
',705,,705,705,705,705,705,705,705,,,,,,705,705,705,705,705,705,705,',
',705,,,,,,,705,,,705,705,705,705,705,705,705,705,,705,705,705,,705,705',
',,,705,,,,,,,,,,,,,,,,,,,,705,,,705,,,705,705,,,705,,,,,,,,,,,,,,,,',
',,705,705,705,705,705,705,,,,705,705,,,,,,,705,,,705,705,705,,,705,705',
'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,,519,519,519,519,,,519,519,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,,,8,8,1041,1041,1041',
',1041,,,,1041,1041,,,,1041,,1041,1041,1041,1041,1041,1041,1041,,,,,',
'1041,1041,1041,1041,1041,1041,1041,,,1041,,,,,,,1041,,,1041,1041,1041',
'1041,1041,1041,1041,1041,1041,1041,1041,1041,,1041,1041,,1041,1041,1041',
',,,,,,,,,,,,,,,,,,,1041,,,1041,,,1041,1041,,,1041,,1041,,1041,,1041',
',,,,,,,1041,,,,,1041,1041,1041,1041,1041,1041,,,,1041,1041,,,,,,,1041',
',1041,1041,1041,1041,,,1041,1041,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,,,23,23,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,,,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,,,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,,,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,,,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,,,38,38,992,992,992,,992,,,,992,992,,,,992,,992,992,992',
'992,992,992,992,,,,,,992,992,992,992,992,992,992,,,992,,,,,,,992,,,992',
'992,992,992,992,992,992,992,,992,992,992,,992,992,,,,992,,,,,,,,,,,',
',,,,,,,,992,,,992,,,992,992,,,992,,,,,,,,,,,,,,,,,,,992,992,992,992',
'992,992,,,,992,992,,,,,,,992,,,992,992,992,,,992,992,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,,,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,,,46,46,967,967,967,,967,,,,967,967,,,,967,,967,967',
'967,967,967,967,967,,,,,,967,967,967,967,967,967,967,,,967,,,,,,,967',
',,967,967,967,967,967,967,967,967,,967,967,967,,967,967,,967,967,967',
',,,,,,,,,,,,,,,,,,,967,,,967,,,967,967,,,967,,967,,,,967,,,,,,,,967',
',,,,967,967,967,967,967,967,,,,967,967,,,,,,,967,,,967,967,967,,,967',
'967,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,,,48,48,941,941,941',
',941,,,,941,941,,,,941,,941,941,941,941,941,941,941,,,,,,941,941,941',
'941,941,941,941,,,941,,,,,,,941,,,941,941,941,941,941,941,941,941,,941',
'941,941,,941,941,,,,941,,,,,,,,,,,,,,,,,,,,941,,,941,,,941,941,,,941',
',,,,,,,,,,,,,,,,,,941,941,941,941,941,941,,,,941,941,,,,,,,941,,,941',
'941,941,,,941,941,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,,,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,,,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,,,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,,,72,72,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,919,919',
'919,,919,,,,919,919,,,,919,,919,919,919,919,919,919,919,,,,,,919,919',
'919,919,919,919,919,,,919,,,,,,,919,,,919,919,919,919,919,919,919,919',
',919,919,919,,919,919,,919,919,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919',
'919,,,919,,,,,,919,,,,,,,,919,,,,,919,919,919,919,919,919,,,,919,919',
',,,,,,919,,,919,919,919,,,919,919,918,918,918,,918,,,,918,918,,,,918',
',918,918,918,918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918',
',,,,,,918,,,918,918,918,918,918,918,918,918,918,918,918,918,,918,918',
',918,918,918,,,,,,,,,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,918,,918',
',,,,,,,918,,,,,918,918,918,918,918,918,,,,918,918,,,,,,,918,,918,918',
'918,918,,,918,918,898,898,898,,898,,,,898,898,,,,898,,898,898,898,898',
'898,898,898,,,,,,898,898,898,898,898,898,898,,,898,,,,,,,898,,,898,898',
'898,898,898,898,898,898,,898,898,898,,898,898,,898,898,898,,,,,,,,,',
',,,,,,,,,,898,,,898,,,898,898,,,898,,,,,,898,,,,,,,,898,,,,,898,898',
'898,898,898,898,,,,898,898,,,,,,,898,,,898,898,898,,,898,898,126,126',
'126,126,126,,,,126,126,,,,126,,126,126,126,126,126,126,126,,,,,,126',
'126,126,126,126,126,126,,,126,,,,,,126,126,126,126,126,126,126,126,126',
'126,126,126,,126,126,126,,126,126,,126,126,126,,,,,,,,,,,,,,,,,,,,126',
',,126,,,126,126,,,126,,126,,,,126,,,,,,,,126,,,,,126,126,126,126,126',
'126,,,,126,126,,,,,,126,126,,,126,126,126,,,126,126,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,,,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',
'133,133,133,,133,,,,133,133,,,,133,,133,133,133,133,133,133,133,,,,',
',133,133,133,133,133,133,133,,,133,,,,,,,133,,,133,133,133,133,133,133',
'133,133,,133,133,133,,133,133,,133,133,133,,,,,,,,,,,,,,,,,,,,133,,',
'133,,,133,133,,,133,,,,,,133,,,,,,,,133,,,,,133,133,133,133,133,133',
',,,133,133,,,,,,,133,,,133,133,133,,,133,133,134,134,134,,134,,,,134',
'134,,,,134,,134,134,134,134,134,134,134,,,,,,134,134,134,134,134,134',
'134,,,134,,,,,,,134,,,134,134,134,134,134,134,134,134,,134,134,134,',
'134,134,,134,134,134,,,,,,,,,,,,,,,,,,,,134,,,134,,,134,134,,,134,,',
',,,134,,,,,,,,134,,,,,134,134,134,134,134,134,,,,134,134,,,,,,,134,',
',134,134,134,,,134,134,135,135,135,135,135,,,,135,135,,,,135,,135,135',
'135,135,135,135,135,,,,,,135,135,135,135,135,135,135,,,135,,,,,,135',
'135,,135,135,135,135,135,135,135,135,135,,135,135,135,,135,135,,135',
'135,135,,,,,,,,,,,,,,,,,,,,135,,,135,,,135,135,,,135,,135,,,,135,,,',
',,,,135,,,,,135,135,135,135,135,135,,,,135,135,,,,,,,135,,,135,135,135',
',,135,135,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,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,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,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',
'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,226,226,,,226,226,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,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,228,228,228,,228,,,,228,228,,,,228,,228,228,228',
'228,228,228,228,,,,,,228,228,228,228,228,228,228,,,228,,,,,,,228,,,228',
'228,228,228,228,228,228,228,228,228,228,228,,228,228,,228,228,228,,',
',,,,,,,,,,,,,,,,,228,,,228,,,228,228,,,228,,228,,228,,228,,,,,,,,228',
',,,,228,228,228,228,228,228,,,,228,228,,,,,,,228,,228,228,228,228,,',
'228,228,233,233,233,,233,,,,233,233,,,,233,,233,233,233,233,233,233',
'233,,,,,,233,233,233,233,233,233,233,,,233,,,,,,,233,,,233,233,233,233',
'233,233,233,233,,233,233,233,,233,233,,233,233,233,,,,,,,,,,,,,,,,,',
',,233,,,233,,,233,233,,,233,,,,,,233,,,,,,,,233,,,,,233,233,233,233',
'233,233,,,,233,233,,,,,,,233,,,233,233,233,,,233,233,234,234,234,,234',
',,,234,234,,,,234,,234,234,234,234,234,234,234,,,,,,234,234,234,234',
'234,234,234,,,234,,,,,,,234,,,234,234,234,234,234,234,234,234,,234,234',
'234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,,,,234,,,234,,,234,234,,,234',
',,,,,234,,,,,,,,234,,,,,234,234,234,234,234,234,,,,234,234,,,,,,,234',
',,234,234,234,,,234,234,235,235,235,,235,,,,235,235,,,,235,,235,235',
'235,235,235,235,235,,,,,,235,235,235,235,235,235,235,,,235,,,,,,,235',
',,235,235,235,235,235,235,235,235,,235,235,235,,235,235,,235,235,235',
',,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235,,,,,,235,,,,,,,,235,,,',
',235,235,235,235,235,235,,,,235,235,235,,,,,,235,,,235,235,235,,,235',
'235,884,884,884,,884,,,,884,884,,,,884,,884,884,884,884,884,884,884',
',,,,,884,884,884,884,884,884,884,,,884,,,,,,,884,,,884,884,884,884,884',
'884,884,884,,884,884,884,,884,884,,884,884,884,,,,,,,,,,,,,,,,,,,,884',
',,884,,,884,884,,,884,,,,,,884,,,,,,,,884,,,,,884,884,884,884,884,884',
',,,884,884,,,,,,,884,,,884,884,884,,,884,884,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,,',
',,,826,,,,,,,,826,,,,,826,826,826,826,826,826,,,,826,826,,,,,,,826,',
',826,826,826,,,826,826,290,290,290,,290,,,,290,290,,,,290,,290,290,290',
'290,290,290,290,,,,,,290,290,290,290,290,290,290,,,290,,,,,,,290,,,290',
'290,290,290,290,290,290,290,290,290,290,290,,290,290,,290,290,290,,',
',,,,,,,,,,,,,,,,,290,,,290,,,290,290,,,290,,290,,290,,290,,,,,,,,290',
',,,,290,290,290,290,290,290,,,,290,290,,,,,,,290,,290,290,290,290,,',
'290,290,293,293,293,,293,,,,293,293,,,,293,,293,293,293,293,293,293',
'293,,,,,,293,293,293,293,293,293,293,,,293,,,,,,,293,,,293,293,293,293',
'293,293,293,293,293,293,293,293,,293,293,,293,293,293,,,,,,,,,,,,,,',
',,,,,293,,,293,,,293,293,,,293,,293,,293,,293,,,,,,,,293,,,,,293,293',
'293,293,293,293,,,,293,293,293,,,,,,293,,293,293,293,293,,,293,293,824',
'824,824,,824,,,,824,824,,,,824,,824,824,824,824,824,824,824,,,,,,824',
'824,824,824,824,824,824,,,824,,,,,,,824,,,824,824,824,824,824,824,824',
'824,,824,824,824,,824,824,,824,824,824,,,,,,,,,,,,,,,,,,,,824,,,824',
',,824,824,,,824,,,,,,824,,,,,,,,824,,,,,824,824,824,824,824,824,,,,824',
'824,,,,,,,824,,,824,824,824,,,824,824,823,823,823,,823,,,,823,823,,',
',823,,823,823,823,823,823,823,823,,,,,,823,823,823,823,823,823,823,',
',823,,,,,,,823,,,823,823,823,823,823,823,823,823,,823,823,823,,823,823',
',823,823,823,,,,,,,,,,,,,,,,,,,,823,,,823,,,823,823,,,823,,,,,,823,',
',,,,,,823,,,,,823,823,823,823,823,823,,,,823,823,,,,,,,823,,,823,823',
'823,,,823,823,822,822,822,,822,,,,822,822,,,,822,,822,822,822,822,822',
'822,822,,,,,,822,822,822,822,822,822,822,,,822,,,,,,,822,,,822,822,822',
'822,822,822,822,822,,822,822,822,,822,822,,822,822,822,,,,,,,,,,,,,',
',,,,,,822,,,822,,,822,822,,,822,,,,,,822,,,,,,,,822,,,,,822,822,822',
'822,822,822,,,,822,822,,,,,,,822,,,822,822,822,,,822,822,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,,,300,300,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,,,821',
'821,302,302,302,,302,,,,302,302,,,,302,,302,302,302,302,302,302,302',
',,,,,302,302,302,302,302,302,302,,,302,,,,,,,302,,,302,302,302,302,302',
'302,302,302,,302,302,302,,302,302,,302,302,302,,,,,,,,,,,,,,,,,,,,302',
',,302,,,302,302,,,302,,,,,,302,,,,,,,,302,,,,,302,302,302,302,302,302',
',,,302,302,,,,,,,302,,,302,302,302,,,302,302,305,305,305,,305,,,,305',
'305,,,,305,,305,305,305,305,305,305,305,,,,,,305,305,305,305,305,305',
'305,,,305,,,,,,,305,,,305,305,305,305,305,305,305,305,,305,305,305,',
'305,305,,305,305,305,,,,,,,,,,,,,,,,,,,,305,,,305,,,305,305,,,305,,',
',,,305,,,,,,,,305,,,,,305,305,305,305,305,305,,,,305,305,,,,,,,305,',
',305,305,305,,,305,305,306,306,306,,306,,,,306,306,,,,306,,306,306,306',
'306,306,306,306,,,,,,306,306,306,306,306,306,306,,,306,,,,,,,306,,,306',
'306,306,306,306,306,306,306,,306,306,306,,306,306,,306,306,306,,,,,',
',,,,,,,,,,,,,,306,,,306,,,306,306,,,306,,,,,,306,,,,,,,,306,,,,,306',
'306,306,306,306,306,,,,306,306,,,,,,,306,,,306,306,306,,,306,306,808',
'808,808,,808,,,,808,808,,,,808,,808,808,808,808,808,808,808,,,,,,808',
'808,808,808,808,808,808,,,808,,,,,,,808,,,808,808,808,808,808,808,808',
'808,,808,808,808,,808,808,,808,808,808,,,,,,,,,,,,,,,,,,,,808,,,808',
',,808,808,,,808,,,,,,808,,,,,,,,808,,,,,808,808,808,808,808,808,,,,808',
'808,,,,,,,808,,,808,808,808,,,808,808,312,312,312,312,312,,,,312,312',
',,,312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312',
',,312,,,,,,312,312,,312,312,312,312,312,312,312,312,312,,312,312,312',
',312,312,,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,',
'312,,,,312,,,,,,,,312,,,,,312,312,312,312,312,312,,,,312,312,,,,,,,312',
',,312,312,312,,,312,312,801,801,801,,801,,,,801,801,,,,801,,801,801',
'801,801,801,801,801,,,,,,801,801,801,801,801,801,801,,,801,,,,,,,801',
',,801,801,801,801,801,801,801,801,,801,801,801,,801,801,,801,801,801',
',,,,,,,,,,,,,,,,,,,801,,,801,,,801,801,,,801,,,,,,801,,,,,,,,801,,,',
',801,801,801,801,801,801,,,,801,801,,,,,,,801,,,801,801,801,,,801,801',
'320,320,320,,320,,,,320,320,,,,320,,320,320,320,320,320,320,320,,,,',
',320,320,320,320,320,320,320,,,320,,,,,,,320,,,320,320,320,320,320,320',
'320,320,,320,320,320,,320,320,,,,320,,,,,,,,,,,,,,,,,,,,320,,,320,,',
'320,320,,,320,,,,,,,,,,,,,,,,,,,320,320,320,320,320,320,,,,320,320,',
',,320,,,320,,,320,320,320,,,320,320,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,,,779,,779,,779',
',779,,,,,,,,779,,,,,779,779,779,779,779,779,,,,779,779,,,,,,,779,,779',
'779,779,779,,,779,779,337,337,337,,337,,,,337,337,,,,337,,337,337,337',
'337,337,337,337,,,,,,337,337,337,337,337,337,337,,,337,,,,,,,337,,,337',
'337,337,337,337,337,337,337,,337,337,337,,337,337,,,,337,,,,,,,,,,,',
',,,,,,,,337,,,337,,,337,337,,,337,,,,,,,,,,,,,,,,,,,337,337,337,337',
'337,337,,,,337,337,,,,,,,337,,,337,337,337,,,337,337,767,767,767,,767',
',,,767,767,,,,767,,767,767,767,767,767,767,767,,,,,,767,767,767,767',
'767,767,767,,,767,,,,,,,767,,,767,767,767,767,767,767,767,767,,767,767',
'767,,767,767,,767,767,767,,,,,,,,,,,,,,,,,,,,767,,,767,,,767,767,,,767',
',767,,,,767,,,,,,,,767,,,,,767,767,767,767,767,767,,,,767,767,,,,,,',
'767,,,767,767,767,,,767,767,746,746,746,,746,,,,746,746,,,,746,,746',
'746,746,746,746,746,746,,,,,,746,746,746,746,746,746,746,,,746,,,,,',
',746,,,746,746,746,746,746,746,746,746,,746,746,746,,746,746,,746,746',
'746,,,,,,,,,,,,,,,,,,,,746,,,746,,,746,746,,,746,,,,,,746,,,,,,,,746',
',,,,746,746,746,746,746,746,,,,746,746,,,,,,,746,,,746,746,746,,,746',
'746,730,730,730,,730,,,,730,730,,,,730,,730,730,730,730,730,730,730',
',,,,,730,730,730,730,730,730,730,,,730,,,,,,,730,,,730,730,730,730,730',
'730,730,730,730,730,730,730,,730,730,,730,730,730,,,,,,,,,,,,,,,,,,',
',730,,,730,,,730,730,,,730,,,,,,730,,,,,,,,730,,,,,730,730,730,730,730',
'730,,,,730,730,,,,,,,730,,730,730,730,730,,,730,730,344,344,344,,344',
',,,344,344,,,,344,,344,344,344,344,344,344,344,,,,,,344,344,344,344',
'344,344,344,,,344,,,,,,,344,,,344,344,344,344,344,344,344,344,,344,344',
'344,,344,344,,344,344,344,,,,,,,,,,,,,,,,,,,,344,,,344,,,344,344,,,344',
',,,,,344,,,,,,,,344,,,,,344,344,344,344,344,344,,,,344,344,,,,,,,344',
',,344,344,344,,,344,344,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,727,727,727,,727,,,,727,727,,,,727,,727,727,727,727,727,727,727',
',,,,,727,727,727,727,727,727,727,,,727,,,,,,,727,,,727,727,727,727,727',
'727,727,727,727,727,727,727,,727,727,,727,727,727,,,,,,,,,,,,,,,,,,',
',727,,,727,,,727,727,,,727,,727,,,,727,,,,,,,,727,,,,,727,727,727,727',
'727,727,,,,727,727,,,,,,,727,,727,727,727,727,,,727,727,349,349,349',
'349,349,,,,349,349,,,,349,,349,349,349,349,349,349,349,,,,,,349,349',
'349,349,349,349,349,,,349,,,,,,349,349,,349,349,349,349,349,349,349',
'349,349,,349,349,349,,349,349,,349,349,349,,,,,,,,,,,,,,,,,,,,349,,',
'349,,,349,349,,,349,,349,,,,349,,,,,,,,349,,,,,349,349,349,349,349,349',
',,,349,349,,,,,,,349,,,349,349,349,,,349,349,350,350,350,,350,,,,350',
'350,,,,350,,350,350,350,350,350,350,350,,,,,,350,350,350,350,350,350',
'350,,,350,,,,,,,350,,,350,350,350,350,350,350,350,350,350,350,350,350',
',350,350,,350,350,350,,,,,,,,,,,,,,,,,,,,350,,,350,,,350,350,,,350,',
'350,,,,350,,,,,,,,350,,,,,350,350,350,350,350,350,,,,350,350,,,,,,,350',
',350,350,350,350,,,350,350,351,351,351,,351,,,,351,351,,,,351,,351,351',
'351,351,351,351,351,,,,,,351,351,351,351,351,351,351,,,351,,,,,,,351',
',,351,351,351,351,351,351,351,351,351,351,351,351,,351,351,,351,351',
'351,,,,,,,,,,,,,,,,,,,,351,,,351,,,351,351,,,351,,,,,,351,,,,,,,,351',
',,,,351,351,351,351,351,351,,,,351,351,,,,,,,351,,351,351,351,351,,',
'351,351,722,722,722,,722,,,,722,722,,,,722,,722,722,722,722,722,722',
'722,,,,,,722,722,722,722,722,722,722,,,722,,,,,,,722,,,722,722,722,722',
'722,722,722,722,,722,722,722,,722,722,,722,722,722,,,,,,,,,,,,,,,,,',
',,722,,,722,,,722,722,,,722,,722,,,,722,,,,,,,,722,,,,,722,722,722,722',
'722,722,,,,722,722,,,,,,,722,,,722,722,722,,,722,722,358,358,358,,358',
',,,358,358,,,,358,,358,358,358,358,358,358,358,,,,,,358,358,358,358',
'358,358,358,,,358,,,,,,,358,,,358,358,358,358,358,358,358,358,,358,358',
'358,,358,358,,358,358,358,,,,,,,,,,,,,,,,,,,,358,,,358,,,358,358,,,358',
',,,,,358,,,,,,,,358,,,,,358,358,358,358,358,358,,,,358,358,,,,,,,358',
',,358,358,358,,,358,358,717,717,717,,717,,,,717,717,,,,717,,717,717',
'717,717,717,717,717,,,,,,717,717,717,717,717,717,717,,,717,,,,,,,717',
',,717,717,717,717,717,717,717,717,,717,717,717,,717,717,,717,717,717',
',,,,,,,,,,,,,,,,,,,717,,,717,,,717,717,,,717,,,,,,717,,,,,,,,717,,,',
',717,717,717,717,717,717,,,,717,717,,,,,,,717,,,717,717,717,,,717,717',
'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,522,522,522,,522,,,,522,522,,,,522',
',522,522,522,522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522',
',,,,,,522,,,522,522,522,522,522,522,522,522,522,522,522,522,,522,522',
',522,522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,,,522,,522',
',,,,,,,522,,,,,522,522,522,522,522,522,,,,522,522,,,,,,,522,,522,522',
'522,522,,,522,522,372,372,372,,372,,,,372,372,,,,372,,372,372,372,372',
'372,372,372,,,,,,372,372,372,372,372,372,372,,,372,,,,,,,372,,,372,372',
'372,372,372,372,372,372,,372,372,372,,372,372,,,,372,,,,,,,,,,,,,,,',
',,,,372,,,372,,,372,372,,,372,,,,,,,,,,,,,,,,,,,372,372,372,372,372',
'372,,,,372,372,,,,,,,372,,,372,372,372,,,372,372,374,374,374,,374,,',
',374,374,,,,374,,374,374,374,374,374,374,374,,,,,,374,374,374,374,374',
'374,374,,,374,,,,,,,374,,,374,374,374,374,374,374,374,374,,374,374,374',
',374,374,,,,374,,,,,,,,,,,,,,,,,,,,374,,,374,,,374,374,,,374,,,,,,,',
',,,,,,,,,,,374,374,374,374,374,374,,,,374,374,,,,,,,374,,,374,374,374',
',,374,374,702,702,702,,702,,,,702,702,,,,702,,702,702,702,702,702,702',
'702,,,,,,702,702,702,702,702,702,702,,,702,,,,,,,702,,,702,702,702,702',
'702,702,702,702,,702,702,702,,702,702,,702,702,702,,,,,,,,,,,,,,,,,',
',,702,,,702,,,702,702,,,702,,,,,,702,,,,,,,,702,,,,,702,702,702,702',
'702,702,,,,702,702,,,,,,,702,,,702,702,702,,,702,702,675,675,675,,675',
',,,675,675,,,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675',
'675,675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675',
'675,,675,675,,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675',
',,,,,675,,,,,,,,675,,,,,675,675,675,675,675,675,,,,675,675,,,,,,,675',
',,675,675,675,,,675,675,674,674,674,,674,,,,674,674,,,,674,,674,674',
'674,674,674,674,674,,,,,,674,674,674,674,674,674,674,,,674,,,,,,,674',
',,674,674,674,674,674,674,674,674,,674,674,674,,674,674,,674,674,674',
',,,,,,,,,,,,,,,,,,,674,,,674,,,674,674,,,674,,,,,,674,,,,,,,,674,,,',
',674,674,674,674,674,674,,,,674,674,,,,,,,674,,,674,674,674,,,674,674',
'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,,,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,,,668,668,667,667,667,,667,,,,667,667,,,,667,,667,667,667',
'667,667,667,667,,,,,,667,667,667,667,667,667,667,,,667,,,,,,,667,,,667',
'667,667,667,667,667,667,667,667,667,667,667,,667,667,,667,667,667,,',
',,,,,,,,,,,,,,,,,667,,,667,,,667,667,,,667,,,,667,,667,,,,,,,,667,,',
',,667,667,667,667,667,667,,,,667,667,,,,,,,667,,667,667,667,667,,,667',
'667,666,666,666,,666,,,,666,666,,,,666,,666,666,666,666,666,666,666',
',,,,,666,666,666,666,666,666,666,,,666,,,,,,,666,,,666,666,666,666,666',
'666,666,666,666,666,666,666,,666,666,,666,666,666,,,,,,,,,,,,,,,,,,',
',666,,,666,,,666,666,,,666,,666,,666,,666,,,,,,,,666,,,,,666,666,666',
'666,666,666,,,,666,666,,,,,,,666,,666,666,666,666,,,666,666,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,,,663,663,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,,,660,660,659,659,659,,659,,,,659,659,,,,659,,659,659,659',
'659,659,659,659,,,,,,659,659,659,659,659,659,659,,,659,,,,,,,659,,,659',
'659,659,659,659,659,659,659,,659,659,659,,659,659,,659,659,659,,,,,',
',,,,,,,,,,,,,,659,,,659,,,659,659,,,659,,,,,,659,,,,,,,,659,,,,,659',
'659,659,659,659,659,,,,659,659,,,,,,,659,,,659,659,659,,,659,659,658',
'658,658,,658,,,,658,658,,,,658,,658,658,658,658,658,658,658,,,,,,658',
'658,658,658,658,658,658,,,658,,,,,,,658,,,658,658,658,658,658,658,658',
'658,,658,658,658,,658,658,,658,658,658,,,,,,,,,,,,,,,,,,,,658,,,658',
',,658,658,,,658,,658,,,,658,,,,,,,,658,,,,,658,658,658,658,658,658,',
',,658,658,,,,,,,658,,,658,658,658,,,658,658,629,629,629,,629,,,,629',
'629,,,,629,,629,629,629,629,629,629,629,,,,,,629,629,629,629,629,629',
'629,,,629,,,,,,,629,,,629,629,629,629,629,629,629,629,,629,629,629,',
'629,629,,629,629,629,,,,,,,,,,,,,,,,,,,,629,,,629,,,629,629,,,629,,',
',,,629,,,,,,,,629,,,,,629,629,629,629,629,629,,,,629,629,,,,,,,629,',
',629,629,629,,,629,629,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,,,623,623,432',
'432,432,,432,,,,432,432,,,,432,,432,432,432,432,432,432,432,,,,,,432',
'432,432,432,432,432,432,,,432,,,,,,,432,,,432,432,432,432,432,432,432',
'432,,432,432,432,,432,432,,432,432,432,,,,,,,,,,,,,,,,,,,,432,,,432',
',,432,432,,,432,,,,,,432,,,,,,,,432,,,,,432,432,432,432,432,432,,,,432',
'432,,,,,,,432,,,432,432,432,,,432,432,611,611,611,,611,,,,611,611,,',
',611,,611,611,611,611,611,611,611,,,,,,611,611,611,611,611,611,611,',
',611,,,,,,,611,,,611,611,611,611,611,611,611,611,611,611,611,611,,611',
'611,,611,611,611,,,,,,,,,,,,,,,,,,,,611,,,611,,,611,611,,,611,,611,',
'611,,611,,,,,,,,611,,,,,611,611,611,611,611,611,,,,611,611,,,,,,,611',
',611,611,611,611,,,611,611,588,588,588,,588,,,,588,588,,,,588,,588,588',
'588,588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,,,588',
',,588,588,588,588,588,588,588,588,,588,588,588,,588,588,,588,588,588',
',,,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,588,,,,,,,,588,,,',
',588,588,588,588,588,588,,,,588,588,,,,,,,588,,,588,588,588,,,588,588',
'554,554,554,,554,,,,554,554,,,,554,,554,554,554,554,554,554,554,,,,',
',554,554,554,554,554,554,554,,,554,,,,,,,554,,,554,554,554,554,554,554',
'554,554,,554,554,554,,554,554,,554,554,554,,,,,,,,,,,,,,,,,,,,554,,',
'554,,,554,554,,,554,,,,,,554,,,,,,,,554,,,,,554,554,554,554,554,554',
',,,554,554,,,,,,,554,,,554,554,554,,,554,554,549,549,549,,549,,,,549',
'549,,,,549,,549,549,549,549,549,549,549,,,,,,549,549,549,549,549,549',
'549,,,549,,,,,,,549,,,549,549,549,549,549,549,549,549,,549,549,549,',
'549,549,,549,549,549,,,,,,,,,,,,,,,,,,,,549,,,549,,,549,549,,,549,,',
',,,549,,,,,,,,549,,,,,549,549,549,549,549,549,,,,549,549,,,,,,,549,',
',549,549,549,,,549,549,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,476,476,476,,476',
',,,476,476,,,,476,,476,476,476,476,476,476,476,,,,,,476,476,476,476',
'476,476,476,,,476,,,,,,,476,,,476,476,476,476,476,476,476,476,476,476',
'476,476,,476,476,,476,476,476,,,,,,,,,,,,,,,,,,,,476,,,476,,,476,476',
',,476,,476,,476,,476,,,,,,,,476,,,,,476,476,476,476,476,476,,,,476,476',
',,,,,,476,,476,476,476,476,,,476,476,539,539,539,,539,,,,539,539,,,',
'539,,539,539,539,539,539,539,539,,,,,,539,539,539,539,539,539,539,,',
'539,,,,,,,539,,,539,539,539,539,539,539,539,539,539,539,539,539,,539',
'539,,539,539,539,,,,,,,,,,,,,,,,,,,,539,,,539,,,539,539,,,539,,539,',
'539,,539,,,,,,,,539,,,,,539,539,539,539,539,539,,,,539,539,,,,,,,539',
',539,539,539,539,,,539,539,478,478,478,,478,,,,478,478,,,,478,,478,478',
'478,478,478,478,478,,,,,,478,478,478,478,478,478,478,,,478,,,,,,,478',
',,478,478,478,478,478,478,478,478,,478,478,478,,478,478,,478,478,478',
',,,,,,,,,,,,,,,,,,,478,,,478,,,478,478,,,478,,,,,,478,,,,,,,,478,,,',
',478,478,478,478,478,478,,,,478,478,,,,,,,478,,,478,478,478,,,478,478',
'479,479,479,,479,,,,479,479,,,,479,,479,479,479,479,479,479,479,,,,',
',479,479,479,479,479,479,479,,,479,,,,,,,479,,,479,479,479,479,479,479',
'479,479,,479,479,479,,479,479,,479,479,479,,,,,,,,,,,,,,,,,,,,479,,',
'479,,,479,479,,,479,,,,,,479,,,,,,,,479,,,,,479,479,479,479,479,479',
',,,479,479,,,,,,,479,,,479,479,479,,,479,479,480,480,480,,480,,,,480',
'480,,,,480,,480,480,480,480,480,480,480,,,,,,480,480,480,480,480,480',
'480,,,480,,,,,,,480,,,480,480,480,480,480,480,480,480,,480,480,480,',
'480,480,,480,480,480,,,,,,,,,,,,,,,,,,,,480,,,480,,,480,480,,,480,,',
',,,480,,,,,,,,480,,,,,480,480,480,480,480,480,,,,480,480,,,,,,,480,',
',480,480,480,,,480,480,537,537,537,,537,,,,537,537,,,,537,,537,537,537',
'537,537,537,537,,,,,,537,537,537,537,537,537,537,,,537,,,,,,,537,,,537',
'537,537,537,537,537,537,537,,537,537,537,,537,537,,,,537,,,,,,,,,,,',
',,,,,,,,537,,,537,,,537,537,,,537,,,,,,,,,,,,,,,,,,,537,537,537,537',
'537,537,,,,537,537,,,,,,,537,,,537,537,537,,,537,537,530,530,530,530',
'530,,,,530,530,,,,530,,530,530,530,530,530,530,530,,,,,,530,530,530',
'530,530,530,530,,,530,,,,,,530,530,530,530,530,530,530,530,530,530,530',
'530,,530,530,530,,530,530,,530,530,530,,,,,,,,,,,,,,,,,,,,530,,,530',
',,530,530,,,530,,530,,,,530,,,,,,,,530,,,,,530,530,530,530,530,530,',
',,530,530,,,,,,530,530,,,530,530,530,,,530,530,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,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,,,246,246,839',
'839,839,,839,,,,839,839,,,,839,,839,839,839,839,839,839,839,,,,,,839',
'839,839,839,839,839,839,,,839,,,,,,,839,,,839,839,839,839,839,839,839',
'839,,839,839,839,,839,839,,839,839,839,,,,,,,,,,,,,,,,,,,,839,,,839',
',,839,839,,,839,,,,,,839,,,,,,,,839,,,,,839,839,839,839,839,839,,,,839',
'839,,,,,,,839,,,839,839,839,,,839,839,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,,,249,,,,,,249,',
',,,,,,249,,,,,249,249,249,249,249,249,,,,249,249,,,,,,,249,,,249,249',
'249,,,249,249,250,250,250,,250,,,,250,250,,,,250,,250,250,250,250,250',
'250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,,,250,,,250,250,250',
'250,250,250,250,250,,250,250,250,,250,250,,250,250,250,,,,,,,,,,,,,',
',,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,250,,,,,250,250,250',
'250,250,250,,,,250,250,,,,,,,250,,,250,250,250,,,250,250,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,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,266,266,267,267,267',
',267,,,,267,267,,,,267,,267,267,267,267,267,267,267,,,,,,267,267,267',
'267,267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267',
'267,267,,267,267,,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267',
',,267,,,,,,267,,,,,,,,267,,,,,267,267,267,267,267,267,,,,267,267,,,',
',,,267,,,267,267,267,,,267,267,268,268,268,,268,,,,268,268,,,,268,,268',
'268,268,268,268,268,268,,,,,,268,268,268,268,268,268,268,,,268,,,,,',
',268,,,268,268,268,268,268,268,268,268,,268,268,268,,268,268,,268,268',
'268,,,,,,,,,,,,,,,,,,,,268,,,268,,,268,268,,,268,,,,,,268,,,,,,,,268',
',,,,268,268,268,268,268,268,,,,268,268,,,,,,,268,,,268,268,268,,,268',
'268,269,269,269,,269,,,,269,269,,,,269,,269,269,269,269,269,269,269',
',,,,,269,269,269,269,269,269,269,,,269,,,,,,,269,,,269,269,269,269,269',
'269,269,269,,269,269,269,,269,269,,269,269,269,,,,,,,,,,,,,,,,,,,,269',
',,269,,,269,269,,,269,,,,,,269,,,,,,,,269,,,,,269,269,269,269,269,269',
',,,269,269,,,,,,,269,,,269,269,269,,,269,269,270,270,270,,270,,,,270',
'270,,,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270',
'270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,',
'270,270,,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,',
',,,270,,,,,,,,270,,,,,270,270,270,270,270,270,,,,270,270,,,,,,,270,',
',270,270,270,,,270,270,275,275,275,,275,,,,275,275,,,,275,,275,275,275',
'275,275,275,275,,,,,,275,275,275,275,275,275,275,,,275,,,,,,,275,,,275',
'275,275,275,275,275,275,275,,275,275,275,,275,275,,275,275,275,,,,,',
',,,,,,,,,,,,,,275,,,275,,,275,275,,,275,,,,,,275,,,,,,,,275,,,,,275',
'275,275,275,275,275,,,,275,275,,,,,,,275,,,275,275,275,,,275,275,283',
'283,283,,283,,,,283,283,,,,283,,283,283,283,283,283,283,283,,,,,,283',
'283,283,283,283,283,283,,,283,,,,,,,283,,,283,283,283,283,283,283,283',
'283,283,283,283,283,,283,283,,283,283,283,,,,,,,,,,,,,,,,,,,,283,,,283',
',,283,283,,,283,,283,,283,,283,,,,,,,,283,,,,,283,283,283,283,283,283',
',,,283,283,,,,,,,283,,283,283,283,283,,,283,283,788,788,788,788,788',
'788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788',
'788,788,,,,788,788,788,788,788,788,788,788,788,788,,,,,,788,788,788',
'788,788,788,788,788,788,,,788,,,,,,,,,788,788,,788,788,788,788,788,788',
'788,,,788,788,,,,788,788,788,788,,,,,,,,,,,,,,788,788,,788,788,788,788',
'788,788,788,788,788,788,788,,,788,,,,,,,,,,,,,,,,,,,,788,,,,,788,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,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,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,,,,,,,,,,,,,,,,,,,,103,,,,,103,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,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423',
'423,423,423,423,423,423,423,423,423,,,,423,423,423,423,423,423,423,423',
'423,423,,,,,,423,423,423,423,423,423,423,423,423,,,423,,,,,,,,,423,423',
',423,423,423,423,423,423,423,,,423,423,,,,423,423,423,423,,,,,,,,,,',
',,,423,423,,423,423,423,423,423,423,423,423,423,423,423,,,423,423,,',
',,,,,,,423,,,,,,,,,423,,,,,423,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,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',
'655,655,655,,,,,,,,,,,,,,655,655,,655,655,655,655,655,655,655,655,655',
'655,655,,,655,655,,,,,,,,,,655,,229,229,,,229,,,655,,,,,655,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,,,',
',,,,,,662,662,,,662,,,,,,229,,,662,662,229,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,,,,,,,,,,613,613,,,613,,,,,,662,,',
'613,613,662,613,613,613,613,613,613,613,,,613,613,,,,613,613,613,613',
',,,,,613,,,,,,,,613,613,,613,613,613,613,613,613,613,613,613,613,613',
',,613,,,,,,,,,,551,551,,,551,,,,,,613,,,551,551,613,551,551,551,551',
'551,551,551,,,551,551,,,,551,551,551,551,,,,,,551,,,,,,,,551,551,,551',
'551,551,551,551,551,551,551,551,551,551,,,551,,,,,,,,,,550,550,,,550',
',,,,,551,,,550,550,551,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,,,,,,,,,,541,541,,,541,,,,,,550,,,541,541,550,541',
'541,541,541,541,541,541,,,541,541,,,,541,541,541,541,,,,,,541,,,,,,',
',541,541,,541,541,541,541,541,541,541,541,541,541,541,,,541,,,,,,,,',
',1043,1043,,,1043,,,,,,541,,,1043,1043,541,1043,1043,1043,1043,1043',
'1043,1043,,,1043,1043,,,,1043,1043,1043,1043,,,,,,1043,,,,,,,,1043,1043',
',1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,,,1043,,,,,',
',,,,475,475,,,475,,,,,,1043,,,475,475,1043,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,,,,,,,,,,661,661,,,661,,,,,,475,,',
'661,661,475,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,,,,,,,,,,474,474,,,474,,,,,,661,,,474,474,661,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,,,,,,,,,,778,778,,,778',
',,,,,474,,,778,778,474,778,778,778,778,778,778,778,,,778,778,,,,778',
'778,778,778,,,,,,778,,,,,,,,778,778,,778,778,778,778,778,778,778,778',
'778,778,778,,,778,,,,,,,,,,612,612,,,612,,,,,,778,,,612,612,778,612',
'612,612,612,612,612,612,,,612,612,,,,612,612,612,612,,,,,,612,,,,,,',
',612,612,,612,612,612,612,612,612,612,612,612,612,612,,,612,,,,,,,,',
',777,777,,,777,,,,,,612,,,777,777,612,777,777,777,777,777,777,777,,',
'777,777,,,,777,777,777,777,,,,,,777,,,,,,,,777,777,,777,777,777,777',
'777,777,777,777,777,777,777,,,777,,,,,,,,,,1037,1037,,,1037,,,,,,777',
',,1037,1037,777,1037,1037,1037,1037,1037,1037,1037,,,1037,1037,,,,1037',
'1037,1037,1037,,,,,,1037,,,,,,,,1037,1037,,1037,1037,1037,1037,1037',
'1037,1037,1037,1037,1037,1037,,,1037,,,,,,,,,,230,230,,,230,,,,,,1037',
',,230,230,1037,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,,,,,,,,,,1042,1042,,,1042,,,,,,230,,,1042,1042,230,1042,1042',
'1042,1042,1042,1042,1042,,,1042,1042,,,,1042,1042,1042,1042,,,,,,1042',
',,,,,,,1042,1042,,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042',
'1042,,740,1042,740,740,740,740,740,,,,,279,279,,,279,740,,,,,1042,,',
'279,279,1042,279,279,279,279,279,279,279,,,279,279,740,,,279,279,279',
'279,,,740,740,740,740,,,,,,,,279,279,,279,279,279,279,279,279,279,279',
'279,279,279,,,279,1090,,1090,1090,1090,1090,1090,,740,540,540,,,540',
',,1090,,,279,,,540,540,279,540,540,540,540,540,540,540,,,540,540,,,1090',
'540,540,540,540,,,,,,540,1090,1090,,,,,,540,540,,540,540,540,540,540',
'540,540,540,540,540,540,,988,540,988,988,988,988,988,,,,,,1090,,,,988',
',,,,540,,,,986,540,986,986,986,986,986,,,,,,,988,,983,986,983,983,983',
'983,983,,,988,988,,,,,955,983,955,955,955,955,955,,986,953,,953,953',
'953,953,953,955,986,986,986,986,,,983,,953,,,988,,,,983,983,983,983',
',,955,951,,951,951,951,951,951,,953,,955,955,,,986,,951,,,953,953,949',
',949,949,949,949,949,,983,,,,,,,,949,951,,,,,,955,,,,,951,951,,,953',
',,,,354,949,354,354,354,354,354,,,,949,949,949,949,,568,354,568,568',
'568,568,568,,,,951,,,,,,568,,,,,,,354,354,,,,,,,949,354,354,354,354',
',744,568,744,744,744,744,744,,,,568,568,568,568,,,744,742,,742,742,742',
'742,742,,,,,,,,354,,742,,,,,744,,,,,,,,568,,,744,744,,,,,742,,,,,,,',
',742,742,742,742,,,,,,,,,,,,,,,,744,,,,,,,,,,,,,,,,,742' ]
        racc_action_check = arr = ::Array.new(26270, 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,  1046,  4799,   579,   nil,   118,   nil,   nil,  6347,  1278,
   nil, 23845, 24259,   317,   nil,   276,   211,   699,   246,   712,
   578,   nil,   -66,  6627,  2966,   154,   nil,   175,   nil,     6,
  1720,  1068,  6767,  6907,  7047,   nil,  5081,  7187,  7327,   nil,
  1159,   312,   419,  1228,   287,  7607,  7747,   750,  8027,  1134,
   583,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  1588,   nil,   -74,   nil,   nil,   -15,   nil,  8307,  8447,   nil,
   nil,  8587,  8727,  1158,   nil, 23983,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    50,   nil,   nil,   nil,   nil,   nil,   nil,  1104,
  1085,  1084,  1070, 24121,   nil,   nil,   nil,   nil,   nil,   nil,
   128,   nil,   nil,   406,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  9427,   nil,   nil,   nil,
   nil,  9567,  9707,  9847,  9987, 10127,  1086,   nil,   507,   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,
  1056,   nil,  5786, 10267, 10407, 10547, 10687, 10827, 10967, 24611,
 25633,   nil,   nil, 11107, 11247, 11387,   nil,   nil,   359,   212,
   232,  1068,   139,   972,  1026,   nil, 20067,  2825,  1013, 20347,
 20487, 20627, 20767, 20907, 21047, 21187, 21327, 21467, 21607, 21747,
 21887, 22027, 22167, 22307, 22447, 22587, 22727, 22867, 23007, 23147,
 23287,   nil,   nil,   nil,   nil, 23427,   nil,   nil,   nil, 25779,
   nil,   nil,  1004, 23567,   nil,   nil,  1010,   nil,   nil,   nil,
 11807,   nil,   nil, 11947,   nil,  2261,   nil,   969,   968,   nil,
 12507,  1008, 12787,   nil,   nil, 12927, 13067,   nil,   nil,   446,
   nil,   nil, 13347,  1346,   nil,   947,  5645,   964,   982,   941,
 13627,  4517,   768,   754,   751,   995,   713,   nil,   959,   922,
   -19,   nil,   nil,   nil,   955,   268,   910, 13907,   nil,   272,
   952,   623,   nil,   944, 14467,   nil, 14607,  5927,   884, 14887,
 15027, 15167,   nil,   nil, 26066,   776,   160,   161, 15447,  5363,
  4235,   285,   977,   857,    62,    64,   484,   927,    65,   938,
   nil,   nil, 16007,   nil, 16147,   107,   237,   136,   -40,   -52,
   465,   353,   374,   438,   nil,   185,   nil,   nil,   nil,   nil,
   nil,   703,   nil,   671,   nil,   205,   nil,   798,   571,   nil,
   780,   nil,   778,   -33,   nil,   760,   -42,   nil,   482,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 24397,   nil,   nil,   nil,   nil,   754,   nil,
   nil,   732, 18107,   731,   nil,   nil,   707,   nil,   498,   153,
   nil,   nil,   nil,  1979,   nil,   nil,   nil,   nil,   nil,  2120,
   613,   nil,   nil,   608,   603,   278,   143,  1328,   nil,   nil,
   nil,   801,   673,   616,   nil,   nil,  1456,  1196,   nil,   nil,
   nil,   152,   nil,   612, 25268, 25122, 18947,   151, 19227, 19367,
 19507,  3107,  3953,   -45,   503,   576,   542,   530,   524,  1406,
  1146,  1278,  3812,  3671,  4094,  4235,  4376,  3248,   760,   948,
  3389,  3530,  2684,   880,   590,   nil,  1848,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   485,   511,   nil,   nil,  6207,
   nil,   nil, 15867,   nil, 19927,   nil,   261,   nil,   nil,   nil,
 19787,  1333,   519,   518,   nil,   nil,   528, 19647,   541, 19087,
 25852, 24976,   584,   629,   nil, 18807,   592,   nil,   637, 18667,
 24903, 24830,   960,  2543, 18527,   752,   756,   nil,  1403,   nil,
   187,    91,   673,   660,   nil,   576,   687,   nil, 26081,   nil,
   659,   666,   nil,   674,   692,   699,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   685,   836,   nil,   nil, 18387,   nil,
   nil,   nil,   780,   nil,   nil,   nil,   782,   nil,   nil,   783,
  5222,   823,   nil,  2120,   121,   838,   840,   834,   842,   nil,
   nil, 18247, 25414, 24757,   -19,   nil,   548,   414,    -7,   nil,
   676,   nil,   775, 17967,   nil,   806,   nil,   nil,   nil, 17827,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   366,   nil,   nil,   344,   nil,   nil,   nil,   768,   nil,
   nil,   769,   nil,  2402,   nil, 24535,   nil,   789, 17687, 17547,
 17407, 25195, 24684, 17267,   -83,   836, 17127, 16987, 16847, 16707,
   836,   nil,   nil,   nil, 16567, 16427,   838,   nil,   nil,   nil,
   453,   451,   929,   267,   814,   820,   nil,   -46,   922,   -10,
   nil,   839,   nil,   944,   nil,   nil,   830,   nil,   873,   nil,
   nil,   nil, 16287,   nil,  -110,  6067,   844,   nil,   849,    32,
    33,   897,    31,   378,   900,   863, 15727, 15587,   927,   206,
   317,   nil, 15307,   nil,   nil,   869,   nil, 14747,   nil,   nil,
 14327,   nil,   nil,   nil,    54,   892,   599,   nil,   nil,   370,
 25768,   nil, 26135,   nil, 26118,   nil, 14187,   nil,   869,   nil,
   892,    -4,   896,   nil,   nil,   nil,   nil,   533,   nil,  1011,
   nil,   nil,   nil,   nil,   nil,  1020,   nil, 14047,   905,   -12,
   -13,   234,   224,  2684,   nil,   677,   nil, 25487, 25341, 13767,
   nil,   nil,   nil,   659,  3671,  3812,  1259,  1032, 23707,   -34,
   536,  4940,   nil,   nil,   190,   nil,   nil,   nil,   965,   nil,
   950, 13487,   965,   280,   353,   545,     0,  2825, 13207,   nil,
   964,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil, 12647, 12367, 12227, 12087,   310, 11667,   nil,   nil,  1842,
   nil,  2543,   nil,   nil,   989,   nil,   -45,   nil,   nil, 20207,
   nil,   977,     4,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  3530,   nil,   990,  1032,   nil,   nil,   nil,   442,   nil,  3953,
  3248,   996,  1003,  1005,   nil,   nil,   nil,  1020,  1025,   nil,
  1026,  1028,   nil,  1032,   nil,   nil,  1038,   862,  1039,  1129,
   nil,  1161,   nil,   nil, 11527,   nil,  2966,  1169,   nil,   nil,
    53,    95,  1179,   585,   640,   nil,  1066,  5504,  9287,   509,
  1192,   nil,  1076,   533,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  1069,   nil,   nil,   nil,   435,   nil,   nil,  9147,  9007,
  2402,  1087,  1088,   nil,  1090,  1091,  1097,   nil,  1118,  1102,
  1086,  8867,   nil,   nil,   nil,   nil,  4658,   nil,  4376,   nil,
    20,  8167,   nil,   nil,  1135,  1245,  1202,   nil,   nil, 26029,
   nil, 26008,   nil, 25978,   nil, 25969,   nil,   nil,   nil,   nil,
   407,  1071,  1129,   nil,   174,   nil,   nil,  7887,  2261,   nil,
   nil,  1252,   159,   nil,   nil,  1253,   nil,   nil,  1187,   nil,
   500,   nil,   nil, 25954,   nil,   nil, 25939,   nil, 25914,   nil,
   nil,  1173,  7467,   626,  1230,   nil,  1278,  1979,   151,   171,
   644,  1234,   -11,   nil,   nil,   nil,   325,   nil,   nil,   nil,
  1163,  1165,   -63,   -31,   -29,  1136,   -15,  1061,  4094,   nil,
     7,   nil,   nil,  3389,   nil,  3107,    61,   nil,   nil,    89,
   116,   133,   160,   nil,   172,   nil,   711, 25560,   nil,   nil,
   310,  6487, 25706, 25049,   197,   nil,   923,  1814,   nil,   nil,
   nil,   nil,  1189,   231,   671,   nil,   nil,   nil,   360,   370,
   nil,  1651,   nil,  1519,   nil,   474,   nil,   335,   nil,   nil,
   291,   295,   nil,   261,     8,    49,   120,   138,   nil,   321,
   366,   nil,   nil,   nil,   389,   391,   395,   426,    22,   nil,
 25843,   nil,   nil,   nil,   nil,   821,   nil ]

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

clist = [
'6,608,234,384,237,296,296,296,229,278,4,352,291,129,457,463,280,32,319',
'298,298,298,521,32,125,142,142,510,720,346,450,410,297,297,297,785,145',
'145,32,359,360,340,356,357,600,603,361,32,32,32,126,32,434,435,881,556',
'333,333,137,221,9,355,355,569,506,355,9,447,147,147,576,869,872,468',
'737,738,336,700,584,129,726,729,32,32,697,733,32,697,641,142,362,333',
'515,392,391,394,396,399,887,404,407,394,317,546,315,847,416,417,418',
'419,691,752,862,664,868,831,870,142,282,289,292,925,776,1033,504,355',
'355,355,355,130,1009,962,448,959,318,294,307,308,469,393,622,32,624',
'625,2,408,32,32,32,32,32,1007,421,441,136,653,441,846,938,703,220,636',
'441,638,371,430,642,423,760,888,279,690,655,344,562,689,636,388,521',
'563,353,369,780,385,9,626,347,472,348,349,725,350,351,420,372,897,623',
'899,1033,1023,374,296,784,926,429,440,928,1,440,975,788,458,978,1016',
'440,927,929,1006,567,445,446,858,700,433,433,354,451,474,470,471,1009',
'697,697,734,513,514,836,32,32,32,32,32,32,32,467,517,765,414,32,32,32',
'1078,687,1055,767,853,296,940,390,457,463,395,32,296,936,398,296,1053',
'512,533,298,644,401,959,876,1029,403,735,684,872,298,895,406,297,576',
'700,869,834,451,906,790,791,584,297,409,520,520,898,32,867,557,392,526',
'706,1080,32,991,864,32,543,1027,715,629,540,869,,291,129,547,,428,,',
'1010,,711,,32,529,,550,32,544,604,794,711,32,561,565,333,,708,,,,318',
',825,559,564,560,1081,355,,530,612,333,1030,536,1056,1031,693,32,,32',
',,948,,129,531,842,,32,32,32,,943,,,607,1039,532,469,315,448,511,538',
'1025,315,,333,,333,,,516,711,869,645,,,,,,,,558,,793,,,642,768,318,815',
',,,318,838,820,,678,,981,982,661,,,665,891,,,,1084,,142,,672,,,,,,677',
'457,463,145,296,747,520,520,,,671,458,605,606,,,,802,,584,915,584,694',
'695,,654,841,,700,451,,,,,,147,,685,697,704,,,,672,467,707,32,900,901',
',902,903,,,,,,576,576,671,,696,,811,813,584,584,296,1072,816,818,,,547',
',,,458,,,,547,,,,1060,,458,,838,,,451,741,743,745,,,,,32,670,,719,,',
'854,676,930,32,467,333,,,970,,,793,711,333,467,,,945,32,,,,812,814,',
',,968,817,819,896,,,296,773,,,441,,,,,,458,688,,441,441,,,,,441,441',
'971,,,,451,,,761,747,,32,878,783,32,,782,,844,789,,,32,467,997,,,,,296',
',833,,,32,,440,,,458,32,,,,916,440,440,6,1018,810,,440,440,,451,1057',
',798,,,665,,,,32,142,,845,832,584,32,32,467,856,,,145,,,32,32,827,547',
',665,32,32,,,672,520,,677,843,757,,,759,799,,880,,,930,,671,930,9,147',
'917,857,861,904,,851,,855,,433,,333,,812,814,819,817,,1058,,1059,723',
'333,1088,441,,,,905,747,,747,,,,665,,,,296,,,885,,885,,,458,,,,,,,890',
',,,,,,,,,451,,,,,665,763,764,930,766,,32,440,,467,,,32,,,,863,32,32',
',142,,,,32,,520,861,,,,,947,,,,,,,,,32,917,1014,747,711,958,,,,950,952',
'827,954,956,,957,,,,,1073,,,32,,,,,942,,,976,,,,,964,871,,873,431,444',
'32,29,,,,,892,29,972,32,32,665,,355,,747,,747,,,,,29,,911,,922,355,',
',,29,29,29,32,29,32,,,,,,973,,861,,977,32,32,,,,747,,,,,984,984,984',
',,,,934,,29,29,,,29,,,,,523,,525,889,,527,528,924,939,,333,32,,32,,',
',944,931,,333,,865,,,865,,,,,,,,,,1048,1049,1050,1051,,1022,,,32,965',
',1045,,,1042,29,566,,,851,29,29,29,29,29,,,,,,,,,,,,333,32,,296,,,,885',
',,,,,458,,,984,984,984,984,,984,32,995,,996,,32,451,32,,1026,,1089,922',
',,922,,922,467,885,665,,923,32,467,,963,,,,,,966,1020,1011,,1012,969',
'1013,657,,,,,,974,,,,984,984,984,984,29,29,29,29,29,29,29,984,,1040',
',29,29,29,,19,,,1032,,1034,19,,931,,29,931,,,931,1054,931,,,,,238,922',
',922,,922,,922,,238,238,238,,19,324,324,,985,987,989,,,,,,29,,1021,',
',922,1024,29,,,29,,698,,,566,,701,1079,238,238,,,238,366,,,,,29,,,1085',
'29,1086,,1087,,29,,,,,931,,931,,931,,931,,,,,,,,,,865,,1095,923,,29',
'923,29,923,,,,,931,,,29,29,29,19,,,753,,238,238,238,238,19,,1082,1083',
',,,,,,1062,1064,1066,1068,,1069,,,,,,,,,,,,,,,,,,,,,,,,,,18,,,,,,18',
',,,,,923,,923,,923,,923,,,,,800,1091,1092,1093,1094,,,,698,566,,18,1096',
',,,,,923,,,,,19,238,438,238,238,438,238,,,,,438,238,238,,,,,,29,,840',
',,,19,,,,,,,,,,,,,,,,852,,,,,698,,,566,,,,,,,,,,,,238,,,,875,,,238,',
',238,,29,,,,,18,,,,29,,,,444,18,,,19,,,,19,,,29,324,19,,,,,,,,,,,,,',
',,324,,,,,914,,,,,19,,19,,,,,,,,,238,19,19,,,,,29,,,29,,,,620,,620,',
'29,,,,937,,,,,,,,29,,,,,,29,,18,,18,,,18,,,,,,18,,,,,,,,,,,29,,,18,',
',29,29,,,,,,,,29,29,,,,,29,29,,,,,,,,,,,,,,,,,,,566,,,,,,,,,,,,,,,,',
'238,,,,,,,,,,18,,,,18,,,,,18,,,,,,,,,,,,,1019,,,,,,,,,,,,,18,,18,,,',
',,,19,,,18,18,,,324,29,238,,,,,29,324,,20,,29,29,,,20,238,,29,,,,,,',
',,,,,,,,,,29,,,,,,,,20,326,326,,,,,,,,,,,,,29,,,,19,,,19,,,,,,,,238',
',,,29,,368,,,,,,238,29,29,,,,238,,,,,,,,,,,,,,,,,,,,29,,29,,19,,,,,',
'438,238,,29,29,,,,,438,438,,20,,,438,438,,,,,20,,,,,,,,,,,,,,,,,,,,',
'29,,29,18,324,,,,,,,,,,,324,,,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,29,,,,,20,,439,,,439,19,18,,,18,439,238,,,,29,19,19,,,29,,29',
'19,20,,,,,,,,,,,,,,29,,438,,,,,,,,,,,,,,,,,,,18,,,,19,,18,,,,,,,,,18',
'18,,,,,18,18,19,,,,,,,20,,19,19,20,,,,326,20,,,,,,,,,,,,,,,,326,,238',
',19,,,,,,20,,20,,,19,238,,,,,,20,20,,,,,,,,,,,,621,42,621,,,,,42,,,',
',,,993,,,,,19,,19,,,1000,,,,,,18,,,,,42,323,323,,,,18,18,,,,,,18,,,19',
',,,,,,,,,,,,,18,,,,,,365,,,387,1036,,,,,19,,,,,,,,18,,,,,,,,,,,,,19',
',,,,19,18,19,,,,,,,,18,18,,,,,,,238,42,,,,,,,,,42,,41,,,,,,41,18,,,',
',,,,,,,18,,,,20,,,,,,,326,,,,,41,322,322,326,,,,,,,,,,,,,,,,,,,,18,',
'18,,,,,,,,,,,364,,,386,,,,,,,,,,,,42,,,,18,,,20,,,20,,,,,,,,,,,,,,,42',
',,,,,,,18,,,,,,41,,,,,,,,,41,,,,,,18,,,,,18,20,18,,,,,439,,,,,,,,,439',
'439,,,,,439,439,,,,,,,,42,,,,42,,,,323,42,,,,,,,,,,,,,326,,,323,,,,',
',,,326,,42,,42,,,,,,,,41,,42,42,,,16,,,,,,16,,,387,,387,,,,,,,,41,,',
',,,,,,,,,,,,16,,,,,20,,,,,,,,,,,20,20,,,,,910,20,,,,,,,,,,,,,370,,,',
'439,,,,,,,,,,41,,,,41,,,,322,41,,,,20,,,,,,,,,,,,322,,,,,,,20,,,41,',
'41,,,16,20,20,,,,,41,41,16,,,,,,,,,,,386,,386,,,,,,20,,,,,,,,,,,20,',
',,42,,,,,,,323,,,,,,,,323,,,,,,,,,,,,,,,621,,,,,20,,20,,,1002,,,,,,',
',,,,,,16,,436,,,436,,,,,,436,,,20,,,42,,,42,,,,,16,,,,,,,,,,,,,621,',
',,,20,,,,,,,,,,,,,,,,,,,,,20,,,,,20,42,20,,,,,,,,,,,41,,,,,,,322,16',
',,,16,,,322,,16,,,,,,,,,,,,,,,,,,,,,,,323,,,16,,16,,,,,,323,,,,16,16',
',,,,,,,,,,,,,41,,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,,,,,,,',
'42,42,,,41,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,,,,,,322',
',,,,,,,,,42,322,,,245,,,,,42,42,,,295,295,295,,,,,,,,,,,342,343,,345',
',,,,,,42,,,,,16,,,,,,42,,,,,,,,,,,41,,,,,,,,,,,41,41,,,,,,41,,,,,387',
',,,,42,,42,,,999,,,,,,,,,,,,,,,,,,,,16,,,16,,41,,42,,,,,,,,,,,,,,,,',
'41,,,,,,,387,,41,41,,42,,,,,,,,,,,,,,,,,16,,,,42,,436,41,,42,,42,,,',
'436,436,,41,,,436,436,,,,,,,,,,,,,,,,,,295,443,,,449,295,,,,,449,,386',
',,,,41,,41,,,998,245,,,481,482,483,484,485,486,487,488,489,490,491,492',
'493,494,495,496,497,498,499,500,501,502,,41,,,503,,,,,,,,295,,,,,,,295',
',,295,,,386,,,,295,41,295,16,,295,295,,,,,,,,16,16,,,,,,16,41,,,,,41',
',41,,,,,,,,,436,,,,,,552,,553,,,,295,295,,,,,,,,,,16,,,,,,,,,,,,,,,',
',,,16,,,,,,,,,16,16,,,,,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,,16,,,,,295',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,,16,,,1003,,,,,295,,449,449,449',
',,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,295,,,295,,295,,,16,,,,,,,,',
',,,295,,,,,,,,,16,718,,,,16,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295',
',,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,295,449,295,,,807,,,295,295,449,449,,,,,449,449,,,,,,,,,,,,,,,,',
',,,,,,,,,,295,,,,,,,,,,,,,,,449,,,,,295,,,,,295,,,295,,,,,,,,,,,,,,',
',295,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,295',
',,,,,,449,,,,,,,,,,,,,449,449,449,449,,920,,,,,,,,,,,,,295,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',295,449,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295' ]
        racc_goto_table = arr = ::Array.new(3888, 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,116,39,69,26,45,45,45,37,175,2,105,87,121,49,49,37,56,62,86,86,86',
'89,56,5,70,70,51,15,39,35,69,84,84,84,124,73,73,56,41,41,77,23,23,109',
'109,23,56,56,56,8,56,28,28,110,12,79,79,21,21,9,30,30,174,49,30,9,32',
'74,74,207,213,218,32,157,157,63,223,212,121,85,85,56,56,90,85,56,90',
'196,70,5,79,35,6,192,6,6,6,112,6,6,6,59,64,58,17,23,23,23,23,52,152',
'166,36,163,164,163,70,50,50,50,162,67,219,176,30,30,30,30,7,169,153',
'76,150,14,57,57,57,76,193,68,56,68,140,3,193,56,56,56,56,56,168,10,24',
'11,13,24,16,18,20,22,197,24,197,25,29,197,31,42,44,48,54,75,80,83,88',
'197,101,89,104,107,118,120,125,9,126,127,60,128,129,130,131,132,9,133',
'134,135,136,219,137,138,45,139,163,26,26,166,1,26,141,142,87,143,153',
'26,154,160,167,170,30,30,171,223,84,84,172,6,37,30,30,169,90,90,173',
'179,180,182,56,56,56,56,56,56,56,70,60,116,7,56,56,56,168,184,185,186',
'187,45,188,191,49,49,194,56,45,164,195,45,153,87,60,86,198,199,150,152',
'162,200,174,35,218,86,67,201,84,207,223,213,52,6,202,203,204,212,84',
'205,6,6,206,56,211,60,6,192,64,153,56,166,215,56,39,216,64,222,37,213',
',87,121,62,,14,,,163,,49,,56,5,,37,56,77,23,196,49,56,86,86,79,,35,',
',,14,,36,6,6,84,110,30,,8,37,79,163,63,112,163,176,56,,56,,,157,,121',
'9,36,,56,56,56,,85,,,5,17,59,76,58,76,57,59,124,58,,79,,79,,,57,49,213',
'6,,,,,,,,9,,197,,,197,35,14,51,,,,14,89,51,,60,,157,157,37,,,39,36,',
',,163,,70,,87,,,,,,87,49,49,73,45,151,6,6,,,6,87,14,14,,,,35,,212,36',
'212,60,60,,21,64,,223,6,,,,,,74,,39,90,60,,,,87,70,60,56,12,12,,174',
'174,,,,,,207,207,6,,86,,32,32,212,212,45,15,32,32,,,62,,,,87,,,,62,',
',,157,,87,,89,,,6,210,210,210,,,,,56,50,,30,,,28,50,212,56,70,79,,,36',
',,197,49,79,70,,,12,56,,,,76,76,,,,109,76,76,35,,,45,41,,,24,,,,,,87',
'50,,24,24,,,,,24,24,12,,,,6,,,121,151,,56,151,30,56,,6,,76,30,,,56,70',
'109,,,,,45,,105,,,56,,26,,,87,56,,,,32,26,26,6,109,86,,26,26,,6,116',
',2,,,39,,,,56,70,,60,175,212,56,56,70,60,,,73,,,56,56,6,62,,39,56,56',
',,87,6,,87,62,14,,,14,21,,60,,,212,,6,212,9,74,76,86,39,69,,6,,6,,84',
',79,,76,76,76,76,,12,,12,103,79,36,24,,,,60,151,,151,,,,39,,,,45,,,6',
',6,,,87,,,,,,,84,,,,,,,,,,6,,,,,39,103,103,212,103,,56,26,,70,,,56,',
',,156,56,56,,70,,,,56,,6,39,,,,,60,,,,,,,,,56,76,151,151,49,60,,,,210',
'210,6,210,210,,210,,,,,35,,,56,,,,,6,,,60,,,,,23,161,,161,82,82,56,53',
',,,,14,53,23,56,56,39,,30,,151,,151,,,,,53,,14,,156,30,,,,53,53,53,56',
'53,56,,,,,,121,,39,,121,56,56,,,,151,,,,,6,6,6,,,,,14,,53,53,,,53,,',
',,82,,82,103,,82,82,161,14,,79,56,,56,,,,14,214,,79,,158,,,158,,,,,',
',,,,210,210,210,210,,121,,,56,14,,39,,,37,53,82,,,6,53,53,53,53,53,',
',,,,,,,,,,79,56,,45,,,,6,,,,,,87,,,6,6,6,6,,6,56,14,,14,,56,6,56,,156',
',210,156,,,156,,156,70,6,39,,158,56,70,,103,,,,,,103,14,161,,161,103',
'161,82,,,,,,103,,,,6,6,6,6,53,53,53,53,53,53,53,6,,14,,53,53,53,,34',
',,161,,161,34,,214,,53,214,,,214,14,214,,,,,34,156,,156,,156,,156,,34',
'34,34,,34,34,34,,159,159,159,,,,,,53,,103,,,156,103,53,,,53,,82,,,82',
',82,161,34,34,,,34,34,,,,,53,,,161,53,161,,161,,53,,,,,214,,214,,214',
',214,,,,,,,,,,158,,161,158,,53,158,53,158,,,,,214,,,53,53,53,34,,,82',
',34,34,34,34,34,,103,103,,,,,,,159,159,159,159,,159,,,,,,,,,,,,,,,,',
',,,,,,,,,33,,,,,,33,,,,,,158,,158,,158,,158,,,,,82,159,159,159,159,',
',,82,82,,33,159,,,,,,158,,,,,34,34,34,34,34,34,34,,,,,34,34,34,,,,,',
'53,,82,,,,34,,,,,,,,,,,,,,,,82,,,,,82,,,82,,,,,,,,,,,,34,,,,82,,,34',
',,34,,53,,,,,33,,,,53,,,,82,33,,,34,,,,34,,,53,34,34,,,,,,,,,,,,,,,',
'34,,,,,82,,,,,34,,34,,,,,,,,,34,34,34,,,,,53,,,53,,,,34,,34,,53,,,,82',
',,,,,,,53,,,,,,53,,33,,33,,,33,,,,,,33,,,,,,,,,,,53,,,33,,,53,53,,,',
',,,,53,53,,,,,53,53,,,,,,,,,,,,,,,,,,,82,,,,,,,,,,,,,,,,,34,,,,,,,,',
',33,,,,33,,,,,33,,,,,,,,,,,,,82,,,,,,,,,,,,,33,,33,,,,,,,34,,,33,33',
',,34,53,34,,,,,53,34,,38,,53,53,,,38,34,,53,,,,,,,,,,,,,,,,,53,,,,,',
',,38,38,38,,,,,,,,,,,,,53,,,,34,,,34,,,,,,,,34,,,,53,,38,,,,,,34,53',
'53,,,,34,,,,,,,,,,,,,,,,,,,,53,,53,,34,,,,,,34,34,,53,53,,,,,34,34,',
'38,,,34,34,,,,,38,,,,,,,,,,,,,,,,,,,,,53,,53,33,34,,,,,,,,,,,34,,,,',
',,,,,,,,,,,,53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,38,,38,,,38,34,33',
',,33,38,34,,,,53,34,34,,,53,,53,34,38,,,,,,,,,,,,,,53,,34,,,,,,,,,,',
',,,,,,,,33,,,,34,,33,,,,,,,,,33,33,,,,,33,33,34,,,,,,,38,,34,34,38,',
',,38,38,,,,,,,,,,,,,,,,38,,34,,34,,,,,,38,,38,,,34,34,,,,,,38,38,,,',
',,,,,,,,38,66,38,,,,,66,,,,,,,34,,,,,34,,34,,,34,,,,,,33,,,,,66,66,66',
',,,33,33,,,,,,33,,,34,,,,,,,,,,,,,,33,,,,,,66,,,66,34,,,,,34,,,,,,,',
'33,,,,,,,,,,,,,34,,,,,34,33,34,,,,,,,,33,33,,,,,,,34,66,,,,,,,,,66,',
'65,,,,,,65,33,,,,,,,,,,,33,,,,38,,,,,,,38,,,,,65,65,65,38,,,,,,,,,,',
',,,,,,,,,33,,33,,,,,,,,,,,65,,,65,,,,,,,,,,,,66,,,,33,,,38,,,38,,,,',
',,,,,,,,,,66,,,,,,,,33,,,,,,65,,,,,,,,,65,,,,,,33,,,,,33,38,33,,,,,38',
',,,,,,,,38,38,,,,,38,38,,,,,,,,66,,,,66,,,,66,66,,,,,,,,,,,,,38,,,66',
',,,,,,,38,,66,,66,,,,,,,,65,,66,66,,,27,,,,,,27,,,66,,66,,,,,,,,65,',
',,,,,,,,,,,,,27,,,,,38,,,,,,,,,,,38,38,,,,,38,38,,,,,,,,,,,,,27,,,,38',
',,,,,,,,,65,,,,65,,,,65,65,,,,38,,,,,,,,,,,,65,,,,,,,38,,,65,,65,,,27',
'38,38,,,,,65,65,27,,,,,,,,,,,65,,65,,,,,,38,,,,,,,,,,,38,,,,66,,,,,',
',66,,,,,,,,66,,,,,,,,,,,,,,,38,,,,,38,,38,,,38,,,,,,,,,,,,,27,,27,,',
'27,,,,,,27,,,38,,,66,,,66,,,,,27,,,,,,,,,,,,,38,,,,,38,,,,,,,,,,,,,',
',,,,,,,38,,,,,38,66,38,,,,,,,,,,,65,,,,,,,65,27,,,,27,,,65,,27,,,,,',
',,,,,,,,,,,,,,,,,66,,,27,,27,,,,,,66,,,,27,27,,,,,,,,,,,,,,65,,,65,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,66,,,,,,,,,,,66,66,,,65,,,66,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,66,,,,,,,,,65,,,,,,,,,,66,65,,,40,',
',,,66,66,,,40,40,40,,,,,,,,,,,40,40,,40,,,,,,,66,,,,,27,,,,,,66,,,,',
',,,,,,65,,,,,,,,,,,65,65,,,,,,65,,,,,66,,,,,66,,66,,,66,,,,,,,,,,,,',
',,,,,,,27,,,27,,65,,66,,,,,,,,,,,,,,,,,65,,,,,,,66,,65,65,,66,,,,,,',
',,,,,,,,,,27,,,,66,,27,65,,66,,66,,,,27,27,,65,,,27,27,,,,,,,,,,,,,',
',,,,40,40,,,40,40,,,,,40,,65,,,,,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,,65,,,40,,,,,,,,40,',
',,,,,40,,,40,,,65,,,,40,65,40,27,,40,40,,,,,,,,27,27,,,,,,27,65,,,,',
'65,,65,,,,,,,,,27,,,,,,40,,40,,,,40,40,,,,,,,,,,27,,,,,,,,,,,,,,,,,',
',27,,,,,,,,,27,27,,,,,,,,,,,,,,,,,,,,,,,,,,27,,,,,,,,,,,27,,,,,40,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,,27,,,27,,,,,40,,40,40,40,,,,,,,,',
',,,,,,,,,27,,,,,,,,,,,,,,,,,,,,,40,,,40,,40,,,27,,,,,,,,,,,,40,,,,,',
',,,27,40,,,,27,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,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(3888, 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,   207,     8,   144,   nil,    19,    -2,   121,    45,    58,
    16,   144,  -292,  -267,    98,  -527,  -563,  -615,  -688,   nil,
  -371,    47,   148,   -25,   -71,    92,   -19,  2376,  -171,   -58,
    -6,    30,  -160,  1273,  1099,  -198,  -337,   -11,  1644,   -20,
  2846,   -30,  -436,   nil,  -591,   -27,   nil,   nil,   143,  -215,
    89,  -255,  -403,   864,  -338,   nil,    15,   103,    68,    66,
   -48,   nil,   -19,    38,  -234,  2150,  2015,  -496,  -232,   -72,
    14,   nil,   nil,    25,    57,  -255,   -95,    -3,   nil,    19,
   126,   nil,   640,  -176,     0,  -480,   -13,   -18,  -331,  -276,
  -435,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   102,   nil,   178,  -172,   -54,   nil,   114,   nil,  -312,
  -703,   nil,  -661,   nil,   nil,   nil,  -361,   nil,   109,   nil,
  -440,     8,   nil,   nil,  -590,   108,  -200,   125,   126,   127,
  -368,   128,   128,   121,  -585,  -177,  -586,  -774,   126,  -422,
  -241,  -692,  -416,  -692,   nil,   nil,   nil,   nil,   nil,   nil,
  -744,  -135,  -474,  -748,  -614,   nil,    62,  -496,   226,   215,
  -613,   118,  -708,  -626,  -572,   nil,  -623,  -729,  -795,  -816,
  -136,  -513,   159,  -334,  -291,   -16,  -153,   nil,   nil,   -53,
   -53,   nil,  -456,   nil,  -253,  -767,  -356,  -467,  -596,   nil,
   nil,   166,    -1,    42,   163,   166,  -310,  -232,  -130,   172,
   175,   180,  -501,  -343,  -343,   191,  -484,  -284,   nil,   nil,
   -35,  -441,  -276,  -669,   129,  -429,  -670,   nil,  -670,  -863,
   nil,   nil,   -77,  -445 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   310,     7,   363,   313,
   nil,   nil,   nil,   nil,   555,   nil,   nil,   nil,   nil,   309,
   311,   nil,   nil,   nil,    14,    15,    21,   243,   nil,   nil,
    17,   nil,   437,   244,   341,   nil,   nil,   778,   242,   473,
    24,   nil,   nil,   358,   nil,    25,    26,    27,   nil,   714,
   nil,   nil,   nil,   330,   nil,    28,   327,   452,    35,   nil,
   nil,    37,    40,    39,   nil,   239,   240,   619,   nil,   144,
   460,   143,   146,    90,    91,   nil,   442,   105,    47,    50,
   275,   548,   301,   nil,   453,   nil,   454,   465,   673,   518,
   299,   283,   839,    51,    52,    53,    54,    55,    56,    57,
    58,    59,    61,   nil,   nil,   284,    65,   nil,    67,   nil,
   nil,    68,   883,    69,    70,    71,   nil,    72,   nil,    73,
   nil,   601,    74,    75,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   288,   277,   722,   850,   610,   884,
   749,   583,   nil,   750,  1028,   921,   571,   nil,   572,   nil,
   nil,   573,   nil,   575,   nil,   828,   nil,   nil,   nil,   581,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   464,   286,   nil,
   nil,   692,   nil,   505,   nil,   nil,   nil,   nil,   nil,    89,
    92,    94,   nil,   nil,   nil,   nil,   nil,   631,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   866,   787,   570,
   nil,   574,   874,   586,   588,   589,   932,   592,   593,   933,
   596,   599,   nil,   304 ]

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

racc_reduce_n = 653

racc_shift_n = 1097

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,
  :tRATIONAL => 140,
  :tIMAGINARY => 141,
  :tLABEL_END => 142,
  :tLONELY => 143,
  :tLOWEST => 144,
  :tEQL => 145 }

racc_nt_base = 146

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",
  "tRATIONAL",
  "tIMAGINARY",
  "tLABEL_END",
  "tLONELY",
  "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",
  "mrhs_arg",
  "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",
  "simple_numeric",
  "rel_expr",
  "primary",
  "relop",
  "@10",
  "arg_value",
  "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_asgn",
  "f_arg_item",
  "f_label",
  "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]

    result
end

# reduce 39 omitted

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

    result
end

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

    result
end

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

    result
end

def _reduce_43(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_44(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_45(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                      debug20 4, val, result

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 49 omitted

# reduce 50 omitted

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

    result
end

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

    result
end

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

    result
end

def _reduce_54(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 55 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 60 omitted

# reduce 61 omitted

# reduce 62 omitted

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

    result
end

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

    result
end

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

                      result = body
                      result.line = line

                      # self.env.unextend

    result
end

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

    result
end

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

    result
end

def _reduce_68(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_69(val, _values, result)
                      lhs, callop, op, args = val
                      result = new_call lhs, op.to_sym, args, callop

    result
end

def _reduce_70(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_71(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]

    result
end

def _reduce_72(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_73(val, _values, result)
                      result = new_super val[1]

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 78 omitted

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

    result
end

# reduce 80 omitted

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_85(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_86(val, _values, result)
                      head, _ = val
                      l = head.line
                      result = s(:masgn, head << s(:splat).line(l)).line l

    result
end

def _reduce_87(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_88(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_89(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_90(val, _values, result)
                      l = lexer.lineno
                      result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l

    result
end

def _reduce_91(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 92 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_104(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_105(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_106(val, _values, result)
                      self.backref_assign_error val[0]

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_113(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_114(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_115(val, _values, result)
                      self.backref_assign_error val[0]

    result
end

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

    result
end

# reduce 117 omitted

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

    result
end

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

    result
end

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

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

    result
end

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

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

    result
end

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

    result
end

# reduce 126 omitted

# reduce 127 omitted

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

    result
end

# reduce 129 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 133 omitted

# 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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_210(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_211(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_212(val, _values, result)
                      result = self.lexer.lineno

    result
end

def _reduce_213(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_214(val, _values, result)
                      # TODO: lhs = var_field val[0]
                      asgn = new_op_asgn val
                      result = self.backref_assign_error asgn

    result
end

def _reduce_215(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_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(:dot3, v1, v2).line v1.line
                      end

    result
end

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

    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)
                      lit = s(:lit, val[1]).line lexer.lineno
                      result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")


    result
end

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

    result
end

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

    result
end

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

    result
end

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

    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

# reduce 230 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_238(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_239(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_240(val, _values, result)
                      result = logical_op :and, val[0], val[2]

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 244 omitted

# reduce 245 omitted

# reduce 246 omitted

# reduce 247 omitted

# reduce 248 omitted

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

    result
end

def _reduce_250(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_251(val, _values, result)
                      result = value_expr(val[0])

    result
end

# reduce 252 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 256 omitted

def _reduce_257(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_258(val, _values, result)
                      _, args, _ = val
                      result = args

    result
end

# reduce 259 omitted

# reduce 260 omitted

# reduce 261 omitted

# reduce 262 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 275 omitted

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

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

def _reduce_281(val, _values, result)
                      result = new_masgn_arg val[0]

    result
end

def _reduce_282(val, _values, result)
                      result = new_masgn_arg val[0], :wrap

    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

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

    result
end

# reduce 524 omitted

# reduce 525 omitted

# reduce 526 omitted

# reduce 527 omitted

# reduce 528 omitted

# reduce 529 omitted

# reduce 530 omitted

# reduce 531 omitted

# reduce 532 omitted

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

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

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

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

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

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

def _reduce_539(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_540(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_551(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_552(val, _values, result)
                      result = args val

    result
end

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

    result
end

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

    result
end

# reduce 555 omitted

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

    result
end

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

    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)
                      result = args val

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 577 omitted

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

                      result = identifier

    result
end

# reduce 579 omitted

# reduce 580 omitted

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

    result
end

def _reduce_582(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_583(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

# reduce 584 omitted

def _reduce_585(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_586(val, _values, result)
                      (label, line), = val

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

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

    result
end

def _reduce_587(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

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

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

    result
end

# reduce 589 omitted

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

    result
end

# reduce 591 omitted

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

    result
end

# reduce 593 omitted

# reduce 594 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 603 omitted

# reduce 604 omitted

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

    result
end

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

    result
end

# reduce 607 omitted

# reduce 608 omitted

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

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

    result
end

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

    result
end

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

    result
end

# reduce 612 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 616 omitted

# reduce 617 omitted

def _reduce_618(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_619(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line

    result
end

def _reduce_620(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_621(val, _values, result)
                      _, sym, _, value = val
                      sym.sexp_type = :dsym
                      result = s(:array, sym, value).line sym.line

    result
end

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

    result
end

# 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

# reduce 640 omitted

# reduce 641 omitted

# reduce 642 omitted

# reduce 643 omitted

# reduce 644 omitted

# reduce 645 omitted

# reduce 646 omitted

# reduce 647 omitted

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

# reduce 649 omitted

# reduce 650 omitted

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

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

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

end   # class Ruby23Parser
