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

require 'racc/parser.rb'
class Ruby26Parser < 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 = [
'-534,312,85,86,87,12,78,-534,-534,-534,79,80,-534,-534,-534,83,-534',
'81,82,84,33,34,76,77,-534,285,-534,-534,-534,88,31,30,116,115,117,118',
'-534,-534,22,-534,-534,-534,-534,-534,11,49,314,13,120,119,121,110,60',
'112,111,113,-102,114,122,123,994,106,107,862,45,46,44,-534,-534,-534',
'-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,602,-101,-534',
'-534,-534,43,-534,-534,36,235,-534,62,63,-534,-534,64,-534,38,-534,-115',
'-534,48,-534,-534,-534,-534,-534,-534,-534,23,-534,287,-534,285,103',
'95,97,98,99,101,-302,480,-102,96,104,-534,-534,-534,-534,-103,-534,66',
'-534,-108,93,100,102,-534,-308,108,109,285,-534,602,-534,-308,-308,-308',
'-101,-108,-308,-308,-308,-104,-308,-302,602,-102,479,602,-102,235,225',
'226,-308,-308,-308,861,-115,225,226,477,-94,651,-308,-308,-102,-308',
'-308,-308,-308,-308,-113,-101,-111,-110,-101,-109,-80,-110,-114,-116',
'-109,602,128,-629,-103,236,729,127,287,728,-101,-111,-106,-308,-308',
'-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-112,-104',
'-308,-308,-308,-113,826,-308,-116,287,-308,763,-103,-308,-308,-103,-308',
'650,-308,-99,-308,95,-308,-308,-308,-308,-308,-308,-308,96,-308,-103',
'-308,236,-114,1006,-104,-630,128,-104,236,969,-112,127,-108,-308,-308',
'-308,-308,-108,-308,128,-308,285,128,-104,127,-308,-633,127,225,226',
'-308,-115,-114,-633,-633,-633,-115,273,274,-633,-633,-100,-633,-101',
'-105,-113,-629,-111,-110,648,-113,-633,-111,-110,-116,-109,128,-102',
'832,-116,-109,127,-633,-633,1007,-633,-633,-633,-633,-633,106,107,272',
'271,236,427,-629,1048,-104,128,-630,-107,-112,810,127,921,-440,-112',
'-213,598,597,-627,831,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633',
'-633,-633,-633,-633,231,287,-633,-633,-633,647,676,281,-103,-114,-633',
'236,-541,-633,-114,632,106,107,-633,-541,-633,478,-633,-633,-633,-633',
'-633,-633,-633,587,-633,-633,-633,669,-110,1019,-110,-534,632,-115,590',
'-626,108,109,-534,-633,-633,-308,-633,-627,-633,233,-531,-534,-308,-308',
'-308,-633,422,-531,-308,-308,-633,-308,-112,232,582,405,579,578,577',
'-627,580,598,597,-102,634,633,630,-116,-633,-546,725,-308,-308,-545',
'-308,-308,-308,-308,-308,-111,587,-107,-531,108,109,703,850,634,633',
'-531,-534,590,851,824,-626,591,914,-116,-531,823,725,670,-308,-308,-308',
'-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-626,787,-308',
'-308,-308,-633,675,632,598,597,-308,-109,-633,-308,402,-108,881,-629',
'-308,632,-308,-633,-308,-308,-308,-308,-308,-308,-308,400,-308,-531',
'-308,669,582,-113,579,578,577,-633,580,-111,591,-113,632,-308,-308,-633',
'-308,632,-308,-534,637,397,-633,-633,-633,-308,-534,-633,-633,-633,-308',
'-633,-114,1037,256,832,634,633,-633,233,-633,-633,-633,-633,729,793',
'231,731,634,633,796,-633,-633,1039,-633,-633,-633,-633,-633,-111,231',
'-540,780,225,226,231,253,475,-540,831,255,254,613,634,633,640,476,632',
'634,633,1017,611,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633',
'-633,-633,-633,1040,-116,-633,-633,-633,231,825,-633,884,888,-633,670',
'778,-633,-633,232,-633,632,-633,-545,-633,780,-633,-633,-633,-633,-633',
'-633,-633,232,-633,-633,-633,810,232,582,850,579,578,577,587,580,634',
'633,652,-633,-633,-633,-633,-542,-633,590,-633,-104,373,128,-542,-633',
'-308,632,127,-99,-633,128,-112,-308,-308,-308,127,-113,232,-308,-308',
'585,-308,-101,256,-108,634,633,630,-539,595,594,598,597,231,128,-539',
'-543,1046,-110,127,551,-308,-308,-543,-308,-308,-308,-308,-308,476,-308',
'-536,-543,236,-544,253,-537,-308,-536,255,254,-544,-630,-537,-538,591',
'-308,634,633,635,-544,-538,-308,-308,-308,-308,-308,-308,-308,-308,-308',
'-308,-308,-308,-308,-308,-352,-309,-308,-308,-308,775,675,-352,-309',
'776,-308,1049,232,-308,627,-543,-352,-309,-308,957,-308,628,-308,-308',
'-308,-308,-308,-308,-308,-308,-308,957,-308,-544,424,231,231,-308,729',
'426,425,731,1045,1039,-308,-308,-308,-633,-105,-630,-308,1043,780,-308',
'-633,-633,-633,-308,884,888,-633,-633,-308,-633,-114,-352,-309,1010',
'957,579,578,577,-633,580,128,231,128,729,231,127,731,127,662,-633,-633',
'541,-633,-633,-633,-633,-633,660,231,128,539,1054,-298,-309,127,230',
'232,232,-308,-298,-309,-213,1019,-546,228,888,339,609,-298,-309,-633',
'-633,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633,-633,225',
'226,-633,-633,-633,582,676,579,578,577,-633,580,232,-633,740,232,225',
'226,-633,-106,-633,-100,-633,-633,-633,-633,-633,-633,-633,232,-633',
'-633,-633,-298,-309,-115,1063,-109,582,1065,579,578,577,749,580,-633',
'-633,-531,-103,1067,-633,1069,752,1069,-531,-531,-531,-633,722,-531',
'-531,-531,-633,-531,-112,338,582,276,579,578,577,-531,580,-531,-531',
'-531,749,131,132,133,134,135,1019,-531,-531,962,-531,-531,-531,-531',
'-531,582,725,579,578,577,725,580,227,582,-630,579,578,577,749,580,909',
'910,-629,236,911,122,123,752,-531,-531,-531,-531,-531,-531,-531,-531',
'-531,-531,-531,-531,-531,-531,224,749,-531,-531,-531,223,-531,-531,222',
'749,-531,957,1019,-531,-531,1092,-531,1069,-531,1069,-531,1069,-531',
'-531,-531,-531,-531,-531,-531,124,-531,236,-531,1069,-94,706,236,582',
'236,579,578,577,587,580,256,-531,-531,-531,-531,236,-531,687,-531,590',
'554,717,718,-531,-317,722,725,732,-531,733,-531,-317,-317,-317,524,737',
'-317,-317,-317,256,-317,585,253,740,741,743,255,254,251,252,-317,-317',
'598,597,745,266,267,747,755,756,-317,-317,757,-317,-317,-317,-317,-317',
'759,725,725,253,609,259,725,255,254,251,252,256,782,257,256,258,787',
'256,591,797,798,256,-280,-317,-317,-317,-317,-317,-317,-317,-317,-317',
'-317,-317,-317,-317,-317,680,256,-317,-317,-317,290,811,-317,668,293',
'-317,667,236,-317,-317,509,-317,663,-317,509,-317,659,-317,-317,-317',
'-317,-317,-317,-317,236,-317,828,-317,253,276,658,837,255,254,251,252',
'839,522,524,-279,-317,-317,-448,-317,656,-317,717,236,290,-448,-448',
'-448,-317,649,-448,-448,-448,-317,-448,256,1010,290,579,578,577,717',
'580,-448,-448,-448,131,132,133,134,135,266,267,646,-448,-448,256,-448',
'-448,-448,-448,-448,582,643,579,578,577,253,580,259,236,255,254,251',
'252,639,236,257,582,258,579,578,577,879,580,-448,-448,-448,-448,-448',
'-448,-448,-448,-448,-448,-448,-448,-448,-448,236,749,-448,-448,-448',
'888,725,-448,236,290,-448,615,614,-448,-448,415,-448,749,-448,609,-448',
'236,-448,-448,-448,-448,-448,-448,-448,256,-448,-448,-448,582,915,579',
'578,577,-281,580,131,132,133,134,135,-448,-448,-655,-448,236,-448,549',
'545,920,-655,-655,-655,-448,3,-655,-655,-655,-448,-655,582,290,579,578',
'577,587,580,749,-655,-655,131,132,133,134,135,236,590,293,542,-655,-655',
'937,-655,-655,-655,-655,-655,717,256,535,-279,943,534,236,948,236,740',
'951,585,953,955,957,957,236,266,267,963,595,594,598,597,725,-79,725',
'524,725,522,236,519,725,253,-655,236,-635,255,254,251,252,-655,981,-635',
'-635,-635,290,-655,-635,-635,-635,290,-635,509,256,982,591,740,985,988',
'990,-635,-635,-635,-635,992,236,,-655,-655,266,267,-635,-635,,-635,-635',
'-635,-635,-635,,,-655,,,,253,-655,259,,255,254,251,252,-655,,,,,-655',
',,,-635,-635,-635,-635,-635,-635,-635,-635,-635,-635,-635,-635,-635',
'-635,,,-635,-635,-635,,,-635,,,-635,,,-635,-635,,-635,,-635,,-635,,-635',
'-635,-635,-635,-635,-635,-635,,-635,-635,-635,582,,579,578,577,587,580',
',,,,,-635,-635,-635,-635,590,-635,-634,-635,,,,,-635,-634,-634,-634',
',-635,-634,-634,-634,,-634,256,,,585,,,,,-634,-634,-634,-634,595,594',
'598,597,266,267,,-634,-634,,-634,-634,-634,-634,-634,,,,,,253,,259,',
'255,254,251,252,,,,,,,,,591,,-634,-634,-634,-634,-634,-634,-634,-634',
'-634,-634,-634,-634,-634,-634,,,-634,-634,-634,,,-634,,,-634,,,-634',
'-634,,-634,,-634,,-634,,-634,-634,-634,-634,-634,-634,-634,,-634,-634',
'-634,582,,579,578,577,587,580,,,,,,-634,-634,-634,-634,590,-634,-655',
'-634,,,,,-634,-655,-655,-655,,-634,-655,-655,-655,,-655,,,,585,,,,,-655',
'-655,-655,,595,594,598,597,,,,-655,-655,,-655,-655,-655,-655,-655,,',
',,,,,,,,,,,,,,,,,,,591,,-655,-655,-655,-655,-655,-655,-655,-655,-655',
'-655,-655,-655,-655,-655,,,-655,-655,-655,,,-655,,290,-655,,,-655,-655',
',-655,,-655,,-655,,-655,-655,-655,-655,-655,-655,-655,,-655,-655,-655',
',,,,,,,,,,,,-655,-655,-299,-655,,-655,,,,-299,-299,-299,-655,,-299,-299',
'-299,-655,-299,,,,,,,,,,-299,-299,-299,,,,,,,,-299,-299,,-299,-299,-299',
'-299,-299,,,,,,,,,,,,,,,,,,,,,,,,-299,-299,-299,-299,-299,-299,-299',
'-299,-299,-299,-299,-299,-299,-299,,,-299,-299,-299,,,-299,,,-299,,',
'-299,-299,,-299,,-299,,-299,,-299,-299,-299,-299,-299,-299,-299,,-299',
',-299,,,,,,,,,,,,,-299,-299,-299,-299,,-299,,-299,,,,,-299,,,,,-299',
'312,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,664,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,,-254,,,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,,,,,664',
'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,,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,,264,265,,,,,,266,267',
',43,,,316,,,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,,-656,-656,,,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,,-656,-656,,,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,-656,-656,-656,-656,273',
'274,,,-656,-656,,,,,,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,-656',
'-656,-656,-656,273,274,,,-656,-656,,,,,,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,-656,-656,-656,-656,273,274,,,-656,-656,,,,,,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,-656,-656,-656,-656,273,274,,,-656',
'-656,,,,,,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,-656,-656,-656',
'-656,273,274,,,-656,-656,,,,,,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,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,-656,-656,-656,-656,273,274,,,-656,-656,,,,,,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,,,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,,,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,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,,,,,,,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,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,,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,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,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,,,,,,,,,,,,,,,,,,,,996,,,247,,,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,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,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,,700,,,,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,,,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,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,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,,,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,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,,,,,,,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,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,,,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,,,,,,,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,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,,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,,,,,,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,554,,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,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,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,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,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,,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,305,114,122,123,,106,107,,45,46,44,,,,,,',
',,,,,,,,,,,,,241,,,247,,,62,63,,,64,,700,,,,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,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,,,,,,,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,,,,,,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,,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,,700,,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,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,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,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,,802,,,,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,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,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,,700,,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,,,,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,,,,,,,329,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,,,335,,,,,,,,,,,,,,,,,,,,1003,,,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,,,,,,,329',
',,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,335,,,,,,',
',,,,,,,,,,,,,996,,,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,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,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,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,,,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,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,,681,459,,,682,,,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,,,,,,,,,,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,,,,,,,,,,455,459,,,456,,,,,,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,,,,,,,,,,807',
'466,,,806,,,,,,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,,',
',,,,,,,681,459,,,682,,,,,,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,,,,,,,,,,683,466,,,684,,,,,,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,,,,,,,,,,895,466,,,896,,,,,,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,,,,,,,,,,804,459,,,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,,,,,,,,,,713,466,,,714,,,,,,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,,,,,598,597,,,,,,,,166',
'165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,591,683',
'466,,,684,,,,,,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,,,,,,,,,,710,459,,,711,,,,,,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,,',
',,,,,,,772,466,,,773,,,,,,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,,,,,,,,,,770,459,,,771,,,,,,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,,,,,,,,,,1073,466,,,1072,,,,,,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,459,,,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,582,,579,578,577,587,580,,,1078,466,,,1079,,,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,595',
'594,598,597,,,,,582,590,579,578,577,587,580,,585,568,,,,,,,590,595,594',
'598,597,,,585,,,,582,591,579,578,577,587,580,598,597,,,585,,,,582,590',
'579,578,577,587,580,598,597,,,591,,,,582,590,579,578,577,587,580,,585',
',,591,,,,,590,,,598,597,,,585,,582,591,579,578,577,587,580,595,594,598',
'597,,,585,,582,590,579,578,577,587,580,,,598,597,,,591,,582,590,579',
'578,577,587,580,,585,,,,,591,,,590,,,598,597,,,585,,,,,591,,,,595,594',
'598,597,,,585,582,,579,578,577,587,580,,,,598,597,,,591,582,590,579',
'578,577,587,580,,,,,,,,591,582,590,579,578,577,587,580,,585,,,,,,591',
',590,,,598,597,,,585,582,,579,578,577,587,580,,595,594,598,597,,,585',
',590,,,,,,,595,594,598,597,,,591,,,,,,,236,,585,,,,,,591,,,595,594,598',
'597,,,,,,,,,591,,,,,,,,,,,,,,,,,,,,,,,,591' ]
        racc_action_table = arr = ::Array.new(26268, 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 = [
'113,359,359,359,359,359,359,113,113,113,359,359,113,113,113,359,113',
'359,359,359,359,359,359,359,113,330,113,113,113,359,359,359,359,359',
'359,359,113,113,359,113,113,113,113,113,359,359,359,359,359,359,359',
'359,359,359,359,359,710,359,359,359,932,359,359,735,359,359,359,113',
'113,113,113,113,113,113,113,113,113,113,113,113,113,357,844,113,113',
'113,359,113,113,359,248,113,359,359,113,113,359,113,359,113,614,113',
'359,113,113,113,113,113,113,113,359,113,330,113,690,359,359,359,359',
'359,359,62,244,710,359,359,113,113,113,113,713,113,359,113,364,359,359',
'359,113,684,359,359,65,113,892,113,684,684,684,844,1000,684,684,684',
'711,684,62,356,710,243,942,710,22,471,471,684,684,684,735,1046,720,720',
'241,705,406,684,684,710,684,684,684,684,684,1077,844,1076,1090,844,365',
'705,893,773,1004,1001,966,357,713,713,22,560,357,690,560,844,770,614',
'684,684,684,684,684,684,684,684,684,684,684,684,684,684,1078,711,684',
'684,684,771,684,684,368,65,684,604,713,684,684,713,684,406,684,364,684',
'92,684,684,684,684,684,684,684,92,684,713,684,471,1079,946,711,773,892',
'711,720,892,772,892,1000,684,684,684,684,1000,684,356,684,29,942,711',
'356,684,807,942,790,790,684,1046,684,807,807,807,1046,47,47,807,807',
'365,807,893,773,1077,1078,1076,1090,403,1077,807,1076,1090,1004,1001',
'966,770,688,1004,1001,966,807,807,947,807,807,807,807,807,335,335,47',
'47,1008,220,772,1008,771,604,1079,368,1078,917,604,827,29,1078,477,740',
'740,617,688,807,807,807,807,807,807,807,807,807,807,807,807,807,807',
'27,29,807,807,807,403,807,27,772,1079,807,790,377,807,1079,526,44,44',
'807,377,807,242,807,807,807,807,807,807,807,982,807,807,807,455,917',
'964,827,617,795,477,982,616,335,335,617,807,807,806,807,617,807,20,375',
'617,806,806,806,807,136,375,806,806,807,806,807,27,752,102,752,752,752',
'617,752,982,982,455,526,526,526,242,895,240,973,806,806,239,806,806',
'806,806,806,455,737,20,616,44,44,526,721,795,795,616,617,737,721,682',
'616,982,795,20,616,681,977,805,806,806,806,806,806,806,806,806,806,806',
'806,806,806,806,616,980,806,806,806,895,806,641,737,737,806,240,895',
'806,101,239,752,895,806,644,806,895,806,806,806,806,806,806,806,100',
'806,616,806,804,962,682,962,962,962,895,962,681,737,805,398,806,806',
'683,806,395,806,376,395,99,683,683,683,806,376,683,683,683,806,683,806',
'993,484,838,641,641,895,439,683,683,683,683,859,641,995,859,644,644',
'644,683,683,995,683,683,683,683,683,804,238,378,995,355,355,366,484',
'238,378,838,484,484,366,398,398,398,238,408,395,395,962,366,683,683',
'683,683,683,683,683,683,683,683,683,683,683,683,996,439,683,683,683',
'620,683,683,1056,1056,683,456,620,683,683,995,683,391,683,41,683,620',
'683,683,683,683,683,683,683,238,683,683,683,665,366,568,998,568,568',
'568,568,568,408,408,408,683,683,683,683,379,683,568,683,456,73,309,379',
'683,461,393,309,41,683,905,683,461,461,461,905,456,620,461,461,568,461',
'665,483,41,391,391,391,380,568,568,568,568,341,901,380,322,1003,665',
'901,341,461,461,322,461,461,461,461,461,341,896,381,322,49,323,483,382',
'896,381,483,483,323,896,382,383,568,896,393,393,393,323,383,461,461',
'461,461,461,461,461,461,461,461,461,461,461,461,50,542,461,461,461,618',
'461,50,542,618,461,1012,341,461,385,322,50,542,461,1013,461,385,461',
'461,461,461,461,461,461,896,461,1014,461,323,138,1002,1038,714,565,138',
'138,565,1002,1038,714,461,461,462,461,714,461,1002,1038,714,462,462',
'462,461,758,758,462,462,461,462,461,50,542,948,1015,948,948,948,462',
'948,5,438,974,561,324,5,561,974,438,462,462,324,462,462,462,462,462',
'438,19,361,324,1016,326,776,361,19,1002,1038,714,326,776,339,1018,42',
'19,1022,43,1022,326,776,462,462,462,462,462,462,462,462,462,462,462',
'462,462,462,784,784,462,462,462,749,462,749,749,749,462,749,438,462',
'1028,324,17,17,462,339,462,42,462,462,462,462,462,462,462,19,462,462',
'462,326,776,339,1031,42,879,1032,879,879,879,749,879,462,462,110,462',
'1033,462,1034,749,1036,110,110,110,462,1042,110,110,110,462,110,462',
'40,585,25,585,585,585,110,585,110,110,110,879,558,558,558,558,558,1055',
'110,110,879,110,110,110,110,110,1054,1060,1054,1054,1054,1061,1054,18',
'963,1072,963,963,963,585,963,791,791,1073,1075,791,791,791,585,110,110',
'110,110,110,110,110,110,110,110,110,110,110,110,16,1054,110,110,110',
'15,110,110,13,963,110,1081,1082,110,110,1086,110,1087,110,1088,110,1089',
'110,110,110,110,110,110,110,3,110,532,110,1097,533,536,538,1069,516',
'1069,1069,1069,1069,1069,499,110,110,110,110,515,110,504,110,1069,543',
'546,548,110,31,555,556,562,110,563,110,31,31,31,566,570,31,31,31,552',
'31,1069,499,571,573,574,499,499,499,499,31,31,1069,1069,575,552,552',
'584,592,596,31,31,599,31,31,31,31,31,601,605,606,552,607,552,608,552',
'552,552,552,488,622,552,487,552,625,486,1069,648,651,485,657,31,31,31',
'31,31,31,31,31,31,31,31,31,31,31,473,498,31,31,31,463,666,31,454,31',
'31,453,450,31,31,671,31,440,31,677,31,436,31,31,31,31,31,31,31,685,31',
'686,31,498,689,433,692,498,498,498,498,694,697,699,431,31,31,30,31,428',
'31,707,709,712,30,30,30,31,405,30,30,30,31,30,503,1048,715,1048,1048',
'1048,716,1048,30,30,30,531,531,531,531,531,503,503,402,30,30,719,30',
'30,30,30,30,881,400,881,881,881,503,881,503,726,503,503,503,503,397',
'736,503,1017,503,1017,1017,1017,751,1017,30,30,30,30,30,30,30,30,30',
'30,30,30,30,30,753,881,30,30,30,760,766,30,769,30,30,369,367,30,30,363',
'30,1017,30,362,30,348,30,30,30,30,30,30,30,343,30,30,30,1019,799,1019',
'1019,1019,801,1019,313,313,313,313,313,30,30,506,30,803,30,340,336,812',
'506,506,506,30,1,506,506,506,30,506,788,334,788,788,788,788,788,1019',
'506,506,9,9,9,9,9,329,788,328,325,506,506,836,506,506,506,506,506,843',
'491,319,854,855,318,317,863,864,865,869,788,870,872,873,875,878,491',
'491,880,788,788,788,788,883,315,889,301,894,298,898,297,902,491,506',
'904,467,491,491,491,491,506,913,467,467,467,506,506,467,467,467,286',
'467,282,490,923,788,924,926,927,928,467,467,467,467,930,931,,506,506',
'490,490,467,467,,467,467,467,467,467,,,506,,,,490,506,490,,490,490,490',
'490,506,,,,,506,,,,467,467,467,467,467,467,467,467,467,467,467,467,467',
'467,,,467,467,467,,,467,,,467,,,467,467,,467,,467,,467,,467,467,467',
'467,467,467,467,,467,467,467,741,,741,741,741,741,741,,,,,,467,467,467',
'467,741,467,466,467,,,,,467,466,466,466,,467,466,466,466,,466,489,,',
'741,,,,,466,466,466,466,741,741,741,741,489,489,,466,466,,466,466,466',
'466,466,,,,,,489,,489,,489,489,489,489,,,,,,,,,741,,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,743',
',743,743,743,743,743,,,,,,466,466,466,466,743,466,457,466,,,,,466,457',
'457,457,,466,457,457,457,,457,,,,743,,,,,457,457,457,,743,743,743,743',
',,,457,457,,457,457,457,457,457,,,,,,,,,,,,,,,,,,,,,,743,,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',
',,,,,,,,,,,,457,457,60,457,,457,,,,60,60,60,457,,60,60,60,457,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,,60,,60,,60,60,60,60,60,60,60,,60,,60,,,,,,,,,,,,,60,60,60,60,,60',
',60,,,,,60,,,,,60,999,999,999,999,999,999,,,,999,999,,,,999,,999,999',
'999,999,999,999,999,,,,,,999,999,999,999,999,999,999,,,999,,,,,443,999',
'999,999,999,999,999,999,999,999,999,999,999,,999,999,999,,999,999,,999',
'999,999,443,443,443,443,443,443,443,443,443,443,443,,443,443,,,443,443',
',999,,,999,,,999,999,,,999,,999,443,,443,999,443,443,443,443,443,443',
'443,999,443,,,,999,999,999,999,999,999,,,,999,999,,443,,443,,,999,,',
'999,999,999,,,999,999,774,774,774,774,774,774,,,,774,774,,,,774,,774',
'774,774,774,774,774,774,,,,,,774,774,774,774,774,774,774,,,774,,,,,449',
'774,774,774,774,774,774,774,774,774,774,774,774,,774,774,774,,774,774',
',774,774,774,449,449,449,449,449,449,449,449,449,449,449,,449,449,,',
'449,449,,774,,,774,,,774,774,,,774,,774,449,,449,774,449,449,449,449',
'449,449,449,774,449,,,,774,774,774,774,774,774,,,,774,774,,449,,,,,774',
',,774,774,774,,,774,774,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,502,502,502,502,502,502,502,502,502,502,502,,502,502,,',
'502,502,,600,,,600,,,600,600,,,600,,600,502,,502,600,502,502,502,502',
'502,502,502,600,502,,,,600,600,600,600,600,600,,,,600,600,502,502,,',
',,600,,,600,600,600,,,600,600,603,603,603,603,603,603,,,,603,603,,,',
'603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,,',
'603,,,,,,603,603,603,603,603,603,603,603,603,603,603,603,,603,603,603',
',603,603,,603,603,603,24,24,24,24,24,24,24,24,24,24,24,,24,24,,,24,24',
',603,,,603,,,603,603,,,603,,603,24,,24,603,24,24,24,24,24,24,24,603',
'24,,,,603,603,603,603,603,603,,,,603,603,,24,,,,,603,,,603,603,603,',
',603,603,899,899,899,899,899,899,,,,899,899,,,,899,,899,899,899,899',
'899,899,899,,,,,,899,899,899,899,899,899,899,,,899,,,,,,899,899,899',
'899,899,899,899,899,899,899,899,899,,899,899,899,,899,899,,899,899,899',
'553,553,553,553,553,553,553,553,553,553,553,,553,553,,,553,553,,899',
',,899,,,899,899,,,899,,899,553,,553,899,553,553,553,553,553,553,553',
'899,553,,,,899,899,899,899,899,899,,,,899,899,,553,,,,,899,,,899,899',
'899,,,899,899,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,295,295,295,295,295,295,295,295,295,295,295,,295,295,,,295,295,',
'247,,,247,,,247,247,,,247,,247,295,,295,247,295,295,295,295,295,295',
'295,247,295,,,,247,247,247,247,247,247,,,,247,247,,295,,,,,247,,,247',
'247,247,,,247,247,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,922,922,922,922,922,922,922,922,922,922,922,,922,922,,,922,922',
',222,,,222,,,222,222,,,222,,222,922,,922,222,922,922,922,922,922,922',
'922,222,922,,,,222,222,222,222,222,222,,,,222,222,,922,,,,,222,,,222',
'222,222,,,222,222,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,809,809,809,809,809,809,809,809,809,809,809,,809,809,,,809,809',
',653,,,653,,,653,653,,,653,,653,809,,809,653,809,809,809,809,809,809',
'809,653,809,,,,653,653,653,653,653,653,,,,653,653,,809,,,,,653,,,653',
'653,653,,,653,653,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,501,501,501,501,501,501,501,501,,501',
'501,,,,,,501,501,,36,,,36,,,36,36,,,36,,36,501,,501,36,501,501,501,501',
'501,501,501,36,501,,,,36,36,36,36,36,36,,,,36,36,,,,,,,36,,,36,36,36',
',,36,36,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,481',
'481,481,481,481,481,481,481,481,481,481,,481,481,,,481,481,,785,,,785',
',,785,785,,,785,,785,481,,481,785,481,481,481,481,481,481,481,785,481',
',,,785,785,785,785,785,785,,,,785,785,,,,,,,785,,,785,785,785,,,785',
'785,833,833,833,833,833,833,,,,833,833,,,,833,,833,833,833,833,833,833',
'833,,,,,,833,833,833,833,833,833,833,,,833,,,,,,833,833,833,833,833',
'833,833,833,833,833,833,833,,833,833,833,,833,833,,833,833,833,482,482',
'482,482,482,482,482,482,482,482,482,,482,482,,,482,482,,833,,,833,,',
'833,833,,,833,,833,482,,482,833,482,482,482,482,482,482,482,833,482',
',,,833,833,833,833,833,833,,,,833,833,,,,,,,833,,,833,833,833,,,833',
'833,861,861,861,861,861,861,,,,861,861,,,,861,,861,861,861,861,861,861',
'861,,,,,,861,861,861,861,861,861,861,,,861,,,,,,861,861,861,861,861',
'861,861,861,861,861,861,861,,861,861,861,,861,861,,861,861,861,500,500',
'500,500,500,500,500,,,500,500,,,,,,500,500,,861,,,861,,,861,861,,,861',
',861,500,,500,861,500,500,500,500,500,500,500,861,500,,,,861,861,861',
'861,861,861,,,,861,861,,,,,,,861,,,861,861,861,,,861,861,792,792,792',
'792,792,792,,,,792,792,,,,792,,792,792,792,792,792,792,792,,,,,,792',
'792,792,792,792,792,792,,,792,,,,,,792,792,792,792,792,792,792,792,792',
'792,792,792,,792,792,792,,792,792,,792,792,792,495,495,495,495,495,495',
'495,,,495,495,,,,,,495,495,,792,,,792,,,792,792,,,792,,792,495,,495',
'792,495,495,495,495,495,495,495,792,495,,,,792,792,792,792,792,792,',
',,792,792,,,,,,,792,,,792,792,792,,,792,792,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,493,493,493,493,493,493,493,,,493',
'493,,,,,,493,493,,938,,,938,,,938,938,,,938,,938,493,,493,938,493,493',
'493,493,493,493,493,938,493,,,,938,938,938,938,938,938,,,,938,938,,',
',,,,938,,,938,938,938,,,938,938,940,940,940,940,940,940,,,,940,940,',
',,940,,940,940,940,940,940,940,940,,,,,,940,940,940,940,940,940,940',
',,940,,,,,,940,940,940,940,940,940,940,940,940,940,940,940,,940,940',
'940,,940,940,,940,940,940,492,492,492,492,492,492,492,,,492,492,,,,',
',492,492,,940,,,940,,,940,940,,,940,,940,492,,492,940,492,492,492,492',
'492,492,492,940,492,,,,940,940,940,940,940,940,,,,940,940,,,,,,,940',
',,940,940,940,,,940,940,1027,1027,1027,1027,1027,1027,,,,1027,1027,',
',,1027,,1027,1027,1027,1027,1027,1027,1027,,,,,,1027,1027,1027,1027',
'1027,1027,1027,,,1027,,,,,,1027,1027,1027,1027,1027,1027,1027,1027,1027',
'1027,1027,1027,,1027,1027,1027,,1027,1027,,1027,1027,1027,497,497,497',
'497,497,497,497,,,497,497,,,,,,497,497,,1027,,,1027,,,1027,1027,,,1027',
',1027,497,,497,1027,497,497,497,497,497,497,497,1027,497,,,,1027,1027',
'1027,1027,1027,1027,,,,1027,1027,,,,,,,1027,,,1027,1027,1027,,,1027',
'1027,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,494,494,494,494,494,494,494,,,494',
'494,,,,,,494,494,,1025,,,1025,,,1025,1025,,,1025,,1025,494,,494,1025',
'494,494,494,494,494,494,494,1025,494,,,,1025,1025,1025,1025,1025,1025',
',,,1025,1025,,,,,,,1025,,,1025,1025,1025,,,1025,1025,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,496,496,496,496,496,496,496,,,496,496,,,',
',,496,496,,2,,,2,,,2,2,,,2,,2,496,,496,2,496,496,496,496,496,496,496',
'2,496,,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,,,2,2,786,786,786,786,786',
'786,,,,786,786,,,,786,,786,786,786,786,786,786,786,,,,,,786,786,786',
'786,786,786,786,,,786,,,,,,786,786,786,786,786,786,786,786,786,786,786',
'786,,786,786,786,,786,786,,786,786,786,,,,,,,,,,,,,,,,,,,,786,,,786',
',,786,786,,,786,,786,,,,786,,,,,,,,786,,,,,786,786,786,786,786,786,',
',,786,786,,,,,,,786,,,786,786,786,,,786,786,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,1020,1020,1020,1020,1020,1020',
',,,1020,1020,,,,1020,,1020,1020,1020,1020,1020,1020,1020,,,,,,1020,1020',
'1020,1020,1020,1020,1020,,,1020,,,,,,1020,1020,1020,1020,1020,1020,1020',
'1020,1020,1020,1020,1020,,1020,1020,1020,,1020,1020,,1020,1020,1020',
',,,,,,,,,,,,,,,,,,,1020,,,1020,,,1020,1020,,,1020,,1020,,,,1020,,,,',
',,,1020,,,,,1020,1020,1020,1020,1020,1020,,,,1020,1020,,,,,,,1020,,',
'1020,1020,1020,,,1020,1020,852,852,852,852,852,852,,,,852,852,,,,852',
',852,852,852,852,852,852,852,,,,,,852,852,852,852,852,852,852,,,852',
',,,,,852,852,852,852,852,852,852,852,852,852,852,852,,852,852,852,,852',
'852,,852,852,852,,,,,,,,,,,,,,,,,,,,852,,,852,,,852,852,,,852,,852,',
',,852,,,,,,,,852,,,,,852,852,852,852,852,852,,,,852,852,,,,,,,852,,',
'852,852,852,,,852,852,970,970,970,970,970,970,,,,970,970,,,,970,,970',
'970,970,970,970,970,970,,,,,,970,970,970,970,970,970,970,,,970,,,,,',
'970,970,970,970,970,970,970,970,970,970,970,970,,970,970,970,,970,970',
',970,970,970,,,,,,,,,,,,,,,,,,,,970,,,970,,,970,970,,,970,,970,,,,970',
',,,,,,,970,,,,,970,970,970,970,970,970,,,,970,970,,,,,,,970,,,970,970',
'970,,,970,970,888,888,888,888,888,888,,,,888,888,,,,888,,888,888,888',
'888,888,888,888,,,,,,888,888,888,888,888,888,888,,,888,,,,,,888,888',
'888,888,888,888,888,888,888,888,888,888,,888,888,888,,888,888,,888,888',
'888,,,,,,,,,,,,,,,,,,,,888,,,888,,,888,888,,,888,,888,,,,888,,,,,,,',
'888,,,,,888,888,888,888,888,888,,,,888,888,,,,,,,888,,,888,888,888,',
',888,888,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,862,862,862,862,862,862,,,,862,862,,,,862,,862,862,862,862,862,862',
'862,,,,,,862,862,862,862,862,862,862,,,862,,,,,,862,862,862,862,862',
'862,862,862,862,862,862,862,,862,862,862,,862,862,,862,862,862,,,,,',
',,,,,,,,,,,,,,862,,,862,,,862,862,,,862,,862,,,,862,,,,,,,,862,,,,,862',
'862,862,862,862,862,,,,862,862,,,,,,,862,,,862,862,862,,,862,862,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,,,,,,,,,,,,,',
',,,,,,360,,,360,,,360,360,,,360,,360,,,,360,,,,,,,,360,,,,,360,360,360',
'360,360,360,,,,360,360,,,,,,,360,,,360,360,360,,,360,360,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,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,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,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,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,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,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,1043,,,',
',,,1043,,1043,1043,1043,1043,,,1043,1043,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,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,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',
'994,994,994,,994,,,,994,994,,,,994,,994,994,994,994,994,994,994,,,,',
',994,994,994,994,994,994,994,,,994,,,,,,,994,,,994,994,994,994,994,994',
'994,994,,994,994,994,,994,994,,,,994,,,,,,,,,,,,,,,,,,,,994,,,994,,',
'994,994,,,994,,,,,,,,,,,,,,,,,,,994,994,994,994,994,994,,,,994,994,',
',,,,,994,,,994,994,994,,,994,994,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,969,969,969,,969',
',,,969,969,,,,969,,969,969,969,969,969,969,969,,,,,,969,969,969,969',
'969,969,969,,,969,,,,,,,969,,,969,969,969,969,969,969,969,969,,969,969',
'969,,969,969,,969,969,969,,,,,,,,,,,,,,,,,,,,969,,,969,,,969,969,,,969',
',969,,,,969,,,,,,,,969,,,,,969,969,969,969,969,969,,,,969,969,,,,,,',
'969,,,969,969,969,,,969,969,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,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,921,921,921,,921,,,,921,921,,',
',921,,921,921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,',
',921,,,,,,,921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921',
',921,921,921,,,,,,,,,,,,,,,,,,,,921,,,921,,,921,921,,,921,,,,,,921,',
',,,,,,921,,,,,921,921,921,921,921,921,,,,921,921,,,,,,,921,,,921,921',
'921,,,921,921,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',
'920,920,920,,920,,,,920,920,,,,920,,920,920,920,920,920,920,920,,,,',
',920,920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920',
'920,920,920,920,920,920,,920,920,,920,920,920,,,,,,,,,,,,,,,,,,,,920',
',,920,,,920,920,,,920,,,,920,,920,,,,,,,,920,,,,,920,920,920,920,920',
'920,,,,920,920,,,,,,,920,,920,920,920,920,,,920,920,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,900,900,900,,900,,,,900,900,,,,900,,900',
'900,900,900,900,900,900,,,,,,900,900,900,900,900,900,900,,,900,,,,,',
',900,,,900,900,900,900,900,900,900,900,,900,900,900,,900,900,,900,900',
'900,,,,,,,,,,,,,,,,,,,,900,,,900,,,900,900,,,900,,,,,,900,,,,,,,,900',
',,,,900,900,900,900,900,900,,,,900,900,,,,,,,900,,,900,900,900,,,900',
'900,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,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,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,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,,,,,,886,,,,,,,,886,,,',
',886,886,886,886,886,886,,,,886,886,,,,,,,886,,,886,886,886,,,886,886',
'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,841,841,841,,841,,,,841,841,,,,841',
',841,841,841,841,841,841,841,,,,,,841,841,841,841,841,841,841,,,841',
',,,,,,841,,,841,841,841,841,841,841,841,841,,841,841,841,,841,841,,841',
'841,841,,,,,,,,,,,,,,,,,,,,841,,,841,,,841,841,,,841,,,,,,841,,,,,,',
',841,,,,,841,841,841,841,841,841,,,,841,841,,,,,,,841,,,841,841,841',
',,841,841,828,828,828,,828,,,,828,828,,,,828,,828,828,828,828,828,828',
'828,,,,,,828,828,828,828,828,828,828,,,828,,,,,,,828,,,828,828,828,828',
'828,828,828,828,,828,828,828,,828,828,,828,828,828,,,,,,,,,,,,,,,,,',
',,828,,,828,,,828,828,,,828,,,,,,828,,,,,,,,828,,,,,828,828,828,828',
'828,828,,,,828,828,,,,,,,828,,,828,828,828,,,828,828,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,825,825,825,,825,,,,825,825,,,,825,,825,825',
'825,825,825,825,825,,,,,,825,825,825,825,825,825,825,,,825,,,,,,,825',
',,825,825,825,825,825,825,825,825,,825,825,825,,825,825,,825,825,825',
',,,,,,,,,,,,,,,,,,,825,,,825,,,825,825,,,825,,,,,,825,,,,,,,,825,,,',
',825,825,825,825,825,825,,,,825,825,,,,,,,825,,,825,825,825,,,825,825',
'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,810,810,810,,810,,,,810,810,,,,810,,810,810,810',
'810,810,810,810,,,,,,810,810,810,810,810,810,810,,,810,,,,,,,810,,,810',
'810,810,810,810,810,810,810,,810,810,810,,810,810,,810,810,810,,,,,',
',,,,,,,,,,,,,,810,,,810,,,810,810,,,810,,,,,,810,,,,,,,,810,,,,,810',
'810,810,810,810,810,,,,810,810,,,,,,,810,,,810,810,810,,,810,810,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,802,802,802,,802,,,,802,802,,,,802,,802',
'802,802,802,802,802,802,,,,,,802,802,802,802,802,802,802,,,802,,,,,',
',802,,,802,802,802,802,802,802,802,802,,802,802,802,,802,802,,802,802',
'802,,,,,,,,,,,,,,,,,,,,802,,,802,,,802,802,,,802,,,,,,802,,,,,,,,802',
',,,,802,802,802,802,802,802,,,,802,802,,,,,,,802,,,802,802,802,,,802',
'802,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,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,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,780,780,780,,780,,,,780,780,,,,780,,780,780,780,780,780',
'780,780,,,,,,780,780,780,780,780,780,780,,,780,,,,,,,780,,,780,780,780',
'780,780,780,780,780,780,780,780,780,,780,780,,780,780,780,,,,,,,,,,',
',,,,,,,,,780,,,780,,,780,780,,,780,,780,,780,,780,,,,,,,,780,,,,,780',
'780,780,780,780,780,,,,780,780,,,,,,,780,,780,780,780,780,,,780,780',
'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',
'768,768,768,,768,,,,768,768,,,,768,,768,768,768,768,768,768,768,,,,',
',768,768,768,768,768,768,768,,,768,,,,,,,768,,,768,768,768,768,768,768',
'768,768,,768,768,768,,768,768,,768,768,768,,,,,,,,,,,,,,,,,,,,768,,',
'768,,,768,768,,,768,,768,,,,768,,,,,,,,768,,,,,768,768,768,768,768,768',
',,,768,768,,,,,,,768,,,768,768,768,,,768,768,747,747,747,,747,,,,747',
'747,,,,747,,747,747,747,747,747,747,747,,,,,,747,747,747,747,747,747',
'747,,,747,,,,,,,747,,,747,747,747,747,747,747,747,747,,747,747,747,',
'747,747,,747,747,747,,,,,,,,,,,,,,,,,,,,747,,,747,,,747,747,,,747,,',
',,,747,,,,,,,,747,,,,,747,747,747,747,747,747,,,,747,747,,,,,,,747,',
',747,747,747,,,747,747,731,731,731,,731,,,,731,731,,,,731,,731,731,731',
'731,731,731,731,,,,,,731,731,731,731,731,731,731,,,731,,,,,,,731,,,731',
'731,731,731,731,731,731,731,731,731,731,731,,731,731,,731,731,731,,',
',,,,,,,,,,,,,,,,,731,,,731,,,731,731,,,731,,,,,,731,,,,,,,,731,,,,,731',
'731,731,731,731,731,,,,731,731,,,,,,,731,,731,731,731,731,,,731,731',
'728,728,728,,728,,,,728,728,,,,728,,728,728,728,728,728,728,728,,,,',
',728,728,728,728,728,728,728,,,728,,,,,,,728,,,728,728,728,728,728,728',
'728,728,728,728,728,728,,728,728,,728,728,728,,,,,,,,,,,,,,,,,,,,728',
',,728,,,728,728,,,728,,728,,,,728,,,,,,,,728,,,,,728,728,728,728,728',
'728,,,,728,728,,,,,,,728,,728,728,728,728,,,728,728,723,723,723,,723',
',,,723,723,,,,723,,723,723,723,723,723,723,723,,,,,,723,723,723,723',
'723,723,723,,,723,,,,,,,723,,,723,723,723,723,723,723,723,723,,723,723',
'723,,723,723,,723,723,723,,,,,,,,,,,,,,,,,,,,723,,,723,,,723,723,,,723',
',723,,,,723,,,,,,,,723,,,,,723,723,723,723,723,723,,,,723,723,,,,,,',
'723,,,723,723,723,,,723,723,718,718,718,,718,,,,718,718,,,,718,,718',
'718,718,718,718,718,718,,,,,,718,718,718,718,718,718,718,,,718,,,,,',
',718,,,718,718,718,718,718,718,718,718,,718,718,718,,718,718,,718,718',
'718,,,,,,,,,,,,,,,,,,,,718,,,718,,,718,718,,,718,,,,,,718,,,,,,,,718',
',,,,718,718,718,718,718,718,,,,718,718,,,,,,,718,,,718,718,718,,,718',
'718,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,706,706,706,,706,,,,706,706,,,,706',
',706,706,706,706,706,706,706,,,,,,706,706,706,706,706,706,706,,,706',
',,,,,,706,,,706,706,706,706,706,706,706,706,,706,706,706,,706,706,,',
',706,,,,,,,,,,,,,,,,,,,,706,,,706,,,706,706,,,706,,,,,,,,,,,,,,,,,,',
'706,706,706,706,706,706,,,,706,706,,,,,,,706,,,706,706,706,,,706,706',
'703,703,703,,703,,,,703,703,,,,703,,703,703,703,703,703,703,703,,,,',
',703,703,703,703,703,703,703,,,703,,,,,,,703,,,703,703,703,703,703,703',
'703,703,,703,703,703,,703,703,,703,703,703,,,,,,,,,,,,,,,,,,,,703,,',
'703,,,703,703,,,703,,,,,,703,,,,,,,,703,,,,,703,703,703,703,703,703',
',,,703,703,,,,,,,703,,,703,703,703,,,703,703,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,676,676,676,,676,,,,676,676,,,,676,,676,676,676',
'676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,,676,,,676',
'676,676,676,676,676,676,676,,676,676,676,,676,676,,676,676,676,,,,,',
',,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,,,,,676,,,,,,,,676,,,,,676',
'676,676,676,676,676,,,,676,676,,,,,,,676,,,676,676,676,,,676,676,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,670,670,670,,670,,,,670,670,,',
',670,,670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,',
',670,,,,,,,670,,,670,670,670,670,670,670,670,670,,670,670,670,,670,670',
',670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,,,,,670,',
',,,,,,670,,,,,670,670,670,670,670,670,,,,670,670,,,,,,,670,,,670,670',
'670,,,670,670,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,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,667,664,664,664,,664,,,,664,664,,,,664,,664,664',
'664,664,664,664,664,,,,,,664,664,664,664,664,664,664,,,664,,,,,,,664',
',,664,664,664,664,664,664,664,664,,664,664,664,,664,664,,664,664,664',
',,,,,,,,,,,,,,,,,,,664,,,664,,,664,664,,,664,,,,,,664,,,,,,,,664,,,',
',664,664,664,664,664,664,,,,664,664,,,,,,,664,,,664,664,664,,,664,664',
'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,663,663,,,663,663,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,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,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,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,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,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,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,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,943,943',
'943,,943,,,,943,943,,,,943,,943,943,943,943,943,943,943,,,,,,943,943',
'943,943,943,943,943,,,943,,,,,,,943,,,943,943,943,943,943,943,943,943',
',943,943,943,,943,943,,,,943,,,,,,,,,,,,,,,,,,,,943,,,943,,,943,943',
',,943,,,,,,,,,,,,,,,,,,,943,943,943,943,943,943,,,,943,943,,,,,,,943',
',,943,943,943,,,943,943,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',
'933,933,933,,933,,,,933,933,,,,933,,933,933,933,933,933,933,933,,,,',
',933,933,933,933,933,933,933,,,933,,,,,,,933,,,933,933,933,933,933,933',
'933,933,,933,933,933,,933,933,,,,933,,,,,,,,,,,,,,,,,,,,933,,,933,,',
'933,933,,,933,,,,,,,,,,,,,,,,,,,933,933,933,933,933,933,,,,933,933,',
',,,,,933,,,933,933,933,,,933,933,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,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,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,789,789,789,789,789,789,789,789,789,789,789',
'789,789,789,789,789,789,789,789,789,789,789,789,789,,,,789,789,789,789',
'789,789,789,789,789,789,,,,,,789,789,789,789,789,789,789,789,789,,,789',
',,,,,,,,789,789,,789,789,789,789,789,789,789,,,789,789,,,,789,789,789',
'789,,,,,,,,,,,,,,789,789,,789,789,789,789,789,789,789,789,789,789,789',
',,789,,,,,,,,,,,,,,,,,,,,789,,,,,789,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',
'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,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,,550,550,,,550,,,655,,,,,655,550,550',
',550,550,550,550,550,550,550,,,550,550,,,,550,550,550,550,,,,,,550,',
',,,,,,550,550,,550,550,550,550,550,550,550,550,550,550,550,,,550,,,',
',,,,,,230,230,,,230,,,,,,550,,,230,230,550,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,,,,,,,,,,229,229,,,229,,,,,,230,,',
'229,229,230,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,,,,,,,,,,779,779,,,779',
',,,,,662,,,779,779,662,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,,,,,,,,,,474,474,,,474,,,,,,779,,,474,474,779,474',
'474,474,474,474,474,474,,,474,474,,,,474,474,474,474,,,,,,474,,,,,,',
',474,474,,474,474,474,474,474,474,474,474,474,474,474,,,474,,,,,,,,',
',475,475,,,475,,,,,,474,,,475,475,474,475,475,475,475,475,475,475,,',
'475,475,,,,475,475,475,475,,,,,,475,,,,,,,,475,475,,475,475,475,475',
'475,475,475,475,475,475,475,,,475,,,,,,,,,,778,778,,,778,,,,,,475,,',
'778,778,475,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,,,,,,,,,,661,661,,,661,,,,,,778,,,661,661,778,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,,,,,,,,,,541,541,,,541',
',,,,,661,,,541,541,661,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,,745,541,745,745,745,745,745,,,,,279,279,,,279,745,,,,,541',
',,279,279,541,279,279,279,279,279,279,279,,,279,279,745,,,279,279,279',
'279,,,,,745,745,,,,,,,,279,279,,279,279,279,279,279,279,279,279,279',
'279,279,,,279,,,,,,,,,745,551,551,,,551,,,,,,279,,,551,551,279,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,,,,,,,,,,540',
'540,,,540,,,,,,551,,,540,540,551,540,540,540,540,540,540,540,,,540,540',
',,,540,540,540,540,,,,,,540,,,,,,,,540,540,,540,540,540,540,540,540',
'540,540,540,540,540,,,540,,,,,,,,,,613,613,,,613,,,,,,540,,,613,613',
'540,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,,',
',,,,,,,612,612,,,612,,,,,,613,,,612,612,613,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,,,,,,,,,,1039,1039,,,1039,,,,',
',612,,,1039,1039,612,1039,1039,1039,1039,1039,1039,1039,,,1039,1039',
',,,1039,1039,1039,1039,,,,,,1039,,,,,,,,1039,1039,,1039,1039,1039,1039',
'1039,1039,1039,1039,1039,1039,1039,,,1039,,,,,,,,,,1044,1044,,,1044',
',,,,,1039,,,1044,1044,1039,1044,1044,1044,1044,1044,1044,1044,,,1044',
'1044,,,,1044,1044,1044,1044,,,,,,1044,,,,,,,,1044,1044,,1044,1044,1044',
'1044,1044,1044,1044,1044,1044,1044,1044,,,1044,1049,,1049,1049,1049',
'1049,1049,,,1045,1045,,,1045,,,1049,,,1044,,,1045,1045,1044,1045,1045',
'1045,1045,1045,1045,1045,,,1045,1045,,,1049,1045,1045,1045,1045,,,,',
',1045,1049,1049,,,,,,1045,1045,,1045,1045,1045,1045,1045,1045,1045,1045',
'1045,1045,1045,,1063,1045,1063,1063,1063,1063,1063,,,,,,1049,,,,1063',
',,,,1045,,,,354,1045,354,354,354,354,354,,,,,,,1063,,957,354,957,957',
'957,957,957,1063,1063,1063,1063,,,,,990,957,990,990,990,990,990,,354',
'354,,,,,,,990,354,354,354,354,,,957,,,,955,1063,955,955,955,955,955',
'957,957,,,990,,,,985,955,985,985,985,985,985,990,990,,,354,,,,1067,985',
'1067,1067,1067,1067,1067,,955,,,957,,,,,1067,,,955,955,,,985,,1065,990',
'1065,1065,1065,1065,1065,985,985,985,985,,,1067,,951,1065,951,951,951',
'951,951,,,1067,1067,,,955,,953,951,953,953,953,953,953,,1065,,,,,985',
',,953,,,1065,1065,,,951,,,,,1067,,,,951,951,951,951,,,953,1092,,1092',
'1092,1092,1092,1092,,,,953,953,,,1065,831,1092,831,831,831,831,831,',
',,,,,,951,988,831,988,988,988,988,988,,1092,,,,,,953,,988,,,1092,1092',
',,831,787,,787,787,787,787,787,,831,831,831,831,,,988,,787,,,,,,,988',
'988,988,988,,,1092,,,,,,,831,,787,,,,,,831,,,787,787,787,787,,,,,,,',
',988,,,,,,,,,,,,,,,,,,,,,,,,787' ]
        racc_action_check = arr = ::Array.new(26268, 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,  1335,  4336,  1039,   nil,   702,   nil,   nil,  6166,  1312,
   nil, 23804, 24080,   906,   nil,   870,   865,   862,   893,   768,
   323,   nil,    72,  6306,  2362,   922,   nil,   281,   nil,   248,
  1196,  1068,  6446,  6586,  6726,   nil,  3067,  6866,  7006,   nil,
   818,   547,   774,   809,   314,  7286,  7426,   217,  7566,   595,
   676,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  1796,   nil,    30,   nil,   nil,   117,   nil,  7706,  7846,   nil,
   nil,  7986,  8126,   586,   nil, 23666,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   125,   nil,   nil,   nil,   nil,   nil,   nil,   410,
   386,   371,   296, 24356,   nil,   nil,   nil,   nil,   nil,   nil,
   929,   nil,   nil,     0,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  8406,   nil,   nil,   nil,
   nil,  8546,  8686,  8826,  8966,  9106,   305,   nil,   735,   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,
   198,   nil,  2785,  9386,  9526,  9666,  9806,  9946, 10086, 24716,
 24643,   nil,   nil, 10226, 10366, 10506,   nil,   nil,   501,   357,
   353,   117,   293,    14,    35,   nil, 23106,  2644,     0, 23386,
 23526, 10646, 10786, 10926, 11066, 11206, 11346, 11486, 11626, 11766,
 11906, 12046, 12186, 12326, 12466, 12606, 12746, 12886, 13026, 13166,
 13306,   nil,   nil,   nil,   nil, 13446,   nil,   nil,   nil, 25300,
   nil,   nil,  1324, 13726,   nil,   nil,  1329,   nil,   nil,   nil,
 14006,   nil,   nil, 14146,   nil,  2644,   nil,  1270,  1268,   nil,
 14426,  1307, 14566,   nil,   nil, 14706, 14846,   nil,   nil,   544,
   nil,   nil, 14986,  1278,   nil,  1248,  5323,  1248,  1282,  1241,
 15266,  4618,   626,   644,   754,  1304,   772,   nil,  1268,  1230,
     0,   nil,   nil,   nil,  1252,   261,  1200, 16386,   nil,   772,
  1261,   623,   nil,  1239, 16666,   nil, 16806,  5746,  1172, 16946,
 17086, 17226,   nil,   nil, 25898,   546,   145,    69, 17366,     0,
  5605,   721,  1280,  1161,   110,   164,   506,  1234,   204,  1264,
   nil,   nil, 17646,   nil, 17786,   333,   460,   293,   502,   586,
   618,   641,   646,   654,   nil,   690,   nil,   nil,   nil,   nil,
   nil,   572,   nil,   614,   nil,   476,   nil,  1130,   471,   nil,
  1118,   nil,  1108,   241,   nil,  1084,   114,   nil,   536,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 24218,   nil,   nil,   nil,   nil,  1085,   nil,
   nil,  1064, 19186,  1055,   nil,   nil,  1025,   nil,   751,   471,
  1123,   nil,   nil,  1939,   nil,   nil,   nil,   nil,   nil,  2080,
  1035,   nil,   nil,  1031,  1028,   305,   539,  1668,   nil,   nil,
   nil,   673,   801,  1064,   nil,   nil,  1536,  1404,   nil,   nil,
   nil,   127,   nil,  1058, 24935, 25008, 20446,   253, 20586, 20726,
 20866,  3208,  3349,   624,   486,  1066,  1062,  1059,  1056,  1486,
  1355,  1302,  3913,  3772,  4195,  3631,  4336,  4054,  1083,   987,
  3490,  3067,  2221,  1146,  1052,   nil,  1324,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   933,   922,   nil,   nil, 22546,
   nil,   nil, 22686,   nil, 22826,   nil,   314,   nil,   nil,   nil,
  5886,  1185,   915,   915,   nil,   nil,   916,  6026,   920, 22406,
 25446, 25227,   677,   974,   nil, 22266,   936,   nil,   979, 22126,
 24570, 25373,  1016,  2503, 21986,  1062,  1061,   nil,   920,   nil,
    73,   705,   976,   960,   nil,   666,   990,   nil,   599,   nil,
   950,   958,   nil,   959,   960,   969,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   956,   897,   nil,   nil, 21846,   nil,
   nil,   nil,  1051,   nil,   nil,   nil,  1052,   nil,   nil,  1055,
  2221,  1100,   nil,  2362,   205,  1104,  1105,  1100,  1109,   nil,
   nil, 21706, 25592, 25519,    76,   nil,   375,   318,   708,   nil,
   542,   nil,  1017, 21566,   nil,  1038,   nil,   nil,   nil, 21426,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   434,   nil,   nil,   446,   nil,   nil,   nil,  1001,   nil,
   nil,  1002,   nil,  2926,   nil, 24494,   nil,  1005, 21286, 21146,
 21006, 25154, 24789, 20306, 20166,   561,  1060, 20026, 19886, 19746,
 19606,  1067,   nil,   nil,   nil, 19466, 19326,  1071,   nil,   nil,
   nil,   383,   377,   534,   139,  1052,  1052,   nil,   235,  1156,
    89,   nil,  1072,   nil,  1181,   nil,   nil,  1062,   nil,  1104,
   nil,   nil,   nil, 19046,   nil,    44, 18906,  1071,   nil,  1075,
    32,   130,  1112,   106,   713,  1125,  1090, 18766, 18626,  1167,
   134,   449,   nil, 18486,   nil,   nil,  1122,   nil, 18346,   nil,
   nil, 18206,   nil,   nil,   nil,    35,  1128,   395,   nil,   nil,
   241,  1467,   nil,  1599,   nil, 25289,   nil, 18066,   nil,   836,
   nil,  1132,   374,  1151,   nil,   nil,   nil,   nil,   799,   nil,
  1268,   nil,   nil,   nil,   nil,   nil,  1274,   nil, 17926,  1159,
   180,   201,   238,   167,  2080,   nil,   773,   nil, 25081, 24862,
 17506,   nil,   nil,   nil,   846,  3208,  4477, 26133,  1290, 23942,
   244,   935,  3631,   nil,   nil,   337,   nil,   nil,   nil,  1198,
   nil,  1186, 16526,  1200,   433,   385,   406,   278,   nil,  2926,
 16246,   nil,  1201,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 16106, 15966, 15826, 15686,   250, 15546,   nil,
   nil, 26094,   nil,  3349,   nil,   nil,  1249,   nil,   479,   nil,
   nil, 15406,   nil,  1239,    58,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,  4900,   nil,  1242,  1284,   nil,   nil,   nil,   437,
   nil,  3490,  5464,  1244,  1250,  1248,   nil,   nil,   nil,  1249,
  1251,   nil,  1252,  1253,   nil,  1254,   nil,   nil,  1258,   869,
  1258,  1189,   nil,  1383,   nil,   nil, 15126,   nil,  5182,  1385,
   nil,   nil,   132,   166,  1387,   414,   640,   nil,  1272,  2503,
 14286,   576,  1391,   nil,  1277,   552,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,  1272,   nil,   nil,   nil,   248,   nil,   nil,
 13866, 13586,  2785,  1294,  1296,   nil,  1297,  1298,  1299,   nil,
  1324,  1308,   -85, 23246,   nil,   nil,   nil,   nil,  3772,   nil,
  3913,   nil,   148, 22966,   nil,   nil,   142,   307,   770,   nil,
   nil, 26025,   nil, 26040,   nil, 25955,   nil, 25913,   nil,   nil,
   nil,   nil,   470,   930,   265,   nil,   182,   nil,   nil,  9246,
  5041,   nil,   nil,   432,   704,   nil,   nil,   462,   nil,   nil,
   398,   nil,   332,   nil,   nil, 25970,   nil,   nil, 26109,   nil,
 25928,   nil,   nil,   443,  8266,   487,   560,   nil,   643,  1939,
   138,   181,   711,   650,   180,   nil,   nil,   nil,   200,   nil,
   nil,   nil,   636,   644,   656,   693,   720,  1205,   731,  1259,
  4759,   nil,   849,   nil,   nil,  4195,   nil,  4054,   767,   nil,
   nil,   789,   792,   802,   804,   nil,   806,   nil,   712, 25665,
   nil,   nil,   933,  7146, 25738, 25811,   157,   nil,  1163, 25802,
   nil,   nil,   nil,   nil,   922,   835,   610,   nil,   nil,   nil,
   965,   969,   nil, 25873,   nil, 26010,   nil, 25985,   nil,   996,
   nil,   nil,   892,   900,   nil,   865,   173,   171,   208,   242,
   nil,   892,   893,   nil,   nil,   nil,   896,   898,   900,   902,
   174,   nil, 26079,   nil,   nil,   nil,   nil,   914,   nil ]

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

clist = [
'6,608,234,237,352,296,296,296,229,4,721,450,291,129,546,278,280,32,336',
'298,298,298,701,32,384,142,142,359,360,346,457,463,297,297,297,521,145',
'145,32,584,434,435,356,357,569,786,361,32,32,32,576,32,410,125,126,556',
'333,333,137,221,319,355,355,340,889,355,849,147,147,9,738,739,883,515',
'871,9,510,600,603,129,506,447,32,32,504,777,32,468,665,142,864,333,317',
'392,641,394,396,399,391,404,407,394,315,874,692,753,416,417,418,419',
'448,927,698,727,730,698,469,142,734,362,294,307,308,833,1035,355,355',
'355,355,130,1011,961,1009,622,318,624,441,393,625,441,2,32,421,408,136',
'441,32,32,32,32,32,282,289,292,653,636,848,638,940,704,642,220,371,430',
'423,748,761,890,701,279,636,691,655,344,562,690,388,563,353,369,781',
'385,626,347,348,930,349,726,870,350,872,521,351,9,372,899,623,901,1025',
'1035,374,296,420,429,440,785,1,440,977,789,980,458,929,440,707,931,1008',
'964,567,445,446,860,716,433,433,354,451,474,470,471,1011,701,1080,735',
'513,514,838,32,32,32,32,32,32,32,467,897,766,414,32,32,32,688,1057,584',
'768,855,296,942,736,685,698,698,32,296,576,1031,296,390,512,878,298',
'961,395,938,398,457,463,644,928,401,298,403,836,297,406,993,908,791',
'451,792,871,409,900,297,869,520,520,866,32,1018,536,392,1029,629,,32',
'526,,32,543,,874,,540,,,291,129,871,,428,694,709,827,,,1058,32,,748',
'550,32,880,604,,,32,561,565,333,795,712,,1041,,318,,844,559,564,560',
'712,355,1055,544,612,333,529,530,,547,469,32,448,32,950,,,,129,1083',
'511,532,32,32,32,,538,,531,,516,315,843,,,,315,,,1082,333,,333,769,',
',,1012,645,1027,,871,794,,,642,893,,607,,,945,712,318,,558,,,318,701',
',,983,984,,584,661,584,,666,,1032,,840,1033,,142,,673,,917,,803,,678',
',,145,296,,520,520,,,672,458,605,606,748,,748,457,463,,817,,,,,654,822',
'584,584,451,,,904,905,147,,,686,576,576,,,,673,467,,32,,902,903,,,1074',
',,,,,,672,,697,,,,1086,,296,698,865,,932,,,,,,458,813,815,,,,1062,818',
'820,,458,,,,972,451,,,856,936,1016,748,,32,,,720,840,,,814,816,32,467',
'333,794,819,821,547,,,898,333,467,,,547,32,947,441,,774,,,,,,671,712',
'441,441,,296,677,,441,441,,,,,,458,,,748,,748,,846,,,,,,973,924,451',
',,762,970,,32,,784,32,,783,,,790,,,32,467,689,835,,,,296,748,,584,,32',
'440,,,,458,32,,,,,440,440,6,,,812,440,440,,451,,799,1059,,999,918,666',
',,32,142,932,,,932,32,32,467,,32,834,145,,,,32,32,829,1020,,666,32,32',
',919,673,520,,678,758,,,760,800,,,,814,816,821,819,672,147,,1090,,859',
'863,,,853,9,857,441,433,,333,,,,547,808,,,1060,,1061,333,,906,,845,',
',,,,,,932,666,,,,296,,,887,,887,1028,,458,924,,,924,,924,892,,472,,',
',,,,,451,742,744,746,,666,,,,,,32,440,,467,,,32,,,,,32,32,,142,919,',
',32,,,520,863,,,724,,,,,,,,,,,32,1075,,517,,,,,,,,829,,,,924,,924,,924',
'712,924,,32,,,,533,944,,,,,,,,966,,764,765,,767,32,29,924,,,894,,29',
'974,32,32,666,,355,,,557,,,,,,29,913,,,,355,431,444,,29,29,29,32,29',
'32,,,,,,975,,863,,979,32,32,,873,,875,,,,,986,986,986,,,,,,,29,29,,',
'29,,,,,,,,,,,,,941,,333,32,,32,,,,946,,,333,,,,,,,,,,523,,525,,,527',
'528,,,,1024,,,32,967,,1047,,,1044,29,,,,853,29,29,29,29,29,,,,926,679',
',,,,,,333,32,,296,,,,887,,,566,891,,458,,,986,986,986,986,,986,32,997',
',998,,32,451,32,,933,,,,,,695,696,,467,887,666,,,32,467,,867,,,867,',
',705,1022,,,,,708,,952,954,,956,958,,959,,,986,986,986,986,29,29,29',
'29,29,29,29,986,,1042,,29,29,29,,,657,,,,,,,,,29,,,,,1056,,,,,,,1013',
',1014,,1015,,,,,,,,987,989,991,19,965,,,,,19,968,,29,,,971,,,925,29',
',,29,976,238,1034,,1036,,,,,,238,238,238,,19,324,324,,29,,,,29,,,,,29',
',,,699,,,566,933,702,,933,,,933,,933,,238,238,,,238,366,,,29,,29,,,1050',
'1051,1052,1053,,1081,29,29,29,,,,,1023,,,,1026,,1087,,1088,,1089,1064',
'1066,1068,1070,,1071,,,,,,,,847,,,,18,754,858,,,19,18,1097,,,238,238',
'238,238,19,,,933,,933,,933,,933,,,,,1091,882,,,,,18,,,,1093,1094,1095',
'1096,,,,,933,867,,1098,925,,,925,,925,,,,1084,1085,,,,,,907,,,,,801',
',,,,,,,,699,566,,29,,,,,,,,,,,,,,,,,,19,238,438,238,238,438,238,,,,',
'438,238,238,,842,,,,,,,,18,,19,,925,,925,,925,18,925,,854,29,,,949,699',
',,566,,29,,,,,,,,960,,,925,,,877,29,238,,,,,,,238,,,238,,,,,,,,978,444',
',,,,,,,,,19,,,,19,,,,324,19,,,,,,,29,,,29,,,,,916,324,,29,,18,,18,,',
'18,19,,19,,29,18,,,,,29,238,19,19,,,,,,18,,,,,,620,,620,939,,,,,,29',
',,,,,29,29,,,29,,,,,,29,29,,,,,29,29,,,,,,,20,,,,,,20,,,,,,,,,,,,,,18',
',,,18,,,,,18,,,,,20,326,326,,,,,,,566,,,,,,,,,,,,18,,18,,,,,,,,238,',
'18,18,,368,,,,,,,,,,,,,,,,,,,,,29,1021,,,,,29,,,,,29,29,,,,,,29,,,,',
',,,,,19,,,,,20,,324,29,238,,,,,20,324,,,,,,,,,238,,,,,,,29,,,,,,,,,',
',,,,,,,,,29,,,,,,,,,29,29,,,,,,,,,,19,,,19,,,,,,,,238,,,29,,29,,,,,',
',238,,,,29,29,238,,20,,439,,,439,,,,,,439,,,,,,,18,,,,19,,,20,,,438',
'238,,,19,,,29,,29,438,438,,,,,438,438,,,,,,,,,,,,,,,,,,,,,,29,,,,,42',
',,324,,,42,,,,,,,,324,,18,,20,18,,,20,,29,,326,20,,,,,,,42,323,323,',
',,,,,326,,29,,,,,29,,29,20,,20,,,,,,,,,,20,20,,29,18,365,19,,387,,18',
',238,621,18,621,,19,19,,18,18,,,19,,18,18,,,,,,,,,,,,,,,438,,,,,,,,',
',,,,,,,,42,,,,,,19,,,42,,,,,,,,,,,,,,,,19,,,,,,,,,19,19,,,,,,,,,,,,',
',,,,,,,,,,,238,,19,,,,,18,,,,,,19,238,,,,18,18,,16,,,,18,,16,,,,,,,',
',41,42,,,,,41,18,,,,995,,,,,19,20,19,16,,1002,,,326,,42,,,,18,,326,',
'41,322,322,,,,,,,,,,,,19,18,,,,,,370,,,18,18,,,,,,,,,,,364,,1038,386',
',,,19,,,,,,,,18,,20,,,20,42,,,,42,18,,19,323,42,,,19,,19,,,,16,,,,,',
',323,,16,,,238,,,41,,42,,42,,,,,41,,18,,18,42,42,20,,,,,,439,,,,20,387',
',387,,,439,439,,,,,439,439,,,,18,,,,,,,,,,,,,,,,,,,,,,,,,,326,,,18,',
',,,,,,326,16,,436,,,436,,,,,,436,18,,,41,,18,,18,,,,,,16,,,,,,,,,,,',
',,,41,,,,,,,,,,,,,,,,20,,,,,,,,,,,20,20,,,,,912,20,,,,,,,,,,,,,,,,16',
',439,,16,,,,,16,,,,,42,41,,,,41,,323,,322,41,20,,,,323,,,,,,16,,16,',
',322,,,,20,,,16,16,,41,,41,20,20,,,,,,,,41,41,,,,,,,,,,,,386,,386,,',
'20,,,,42,,,42,,,,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,621,,,,,20,,20',
',,1004,,42,,,,,,,,,,42,,,,,,,,,,,,,,,20,,,,,,,,,,,,,,,,,,,,,,,,621,',
',,323,20,,,,,,,,,,323,,,,,,,,,,,20,,,,,20,16,20,,,,,,,,,,,,,,41,,,,',
',,322,,,,,,,,322,,,,,,,,,,42,,,,,,,,,,,42,42,,,,,,42,,,,,,,,,,,,16,',
',16,,,,,,,,,,,,41,,,41,,,,,,,,,,,42,,,,,,,,,,,,,,,,,,,42,,,,,16,,,,42',
'42,436,,,,16,,,,,41,436,436,,,,,436,436,,41,,,,,,42,,,,,,245,,,,,42',
',,,295,295,295,,,,,,,,,,,342,343,,345,,,,,,322,,,,,,,,387,,,322,,42',
',42,,,1001,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,,,,,16,,,,,,,,,,,16,16,,',
'41,387,,16,,,42,,,,,41,41,,,,,,41,,,436,,,,,,42,,,,,42,,42,,,,,,,,,',
'16,,,,,,,,,,,,,,,41,,,,16,,,,,,,,,16,16,,,,,41,,,,,,,,,41,41,,,,,,,',
',,,16,,295,443,,,449,295,,,,16,449,,,41,,,,,,,,,,245,41,,481,482,483',
'484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500',
'501,502,16,,16,,503,1005,,,,,386,,295,,,41,,41,,295,1000,,295,,,,,,',
'295,,295,16,,295,295,,,,,,,,,,,,41,,,,,,,,,,,,,,16,,,,,,,,,,386,,552',
',553,41,,,295,295,,16,,,,,16,,16,,,,,,,,41,,,,,41,,41,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,295,,449,449,449,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,295,,,295,,295,,,,,,,,,,,,,,,295,,,,,,,,,,719,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,449,295,,,,809,,,295,295,449,449',
',,,,449,449,,,,,,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,449,,,,,295',
',,,,295,,,295,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,,,,',
'295,,,,,,,,,,,,,,,,,,,,,,295,,,,,,,,449,,,,,,,,,,,,,449,449,449,449',
',922,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,449,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,295' ]
        racc_goto_table = arr = ::Array.new(3754, 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,26,105,45,45,45,37,2,15,35,87,121,64,175,37,56,63,86,86,86',
'223,56,69,70,70,41,41,39,49,49,84,84,84,89,73,73,56,212,28,28,23,23',
'174,124,23,56,56,56,207,56,69,5,8,12,79,79,21,21,62,30,30,77,112,30',
'17,74,74,9,157,157,110,35,213,9,51,109,109,121,49,32,56,56,176,67,56',
'32,36,70,166,79,59,6,196,6,6,6,192,6,6,6,58,218,52,152,23,23,23,23,76',
'162,90,85,85,90,76,70,85,5,57,57,57,164,219,30,30,30,30,7,169,150,168',
'68,14,68,24,193,140,24,3,56,10,193,11,24,56,56,56,56,56,50,50,50,13',
'197,16,197,18,20,197,22,25,29,31,151,42,44,223,48,197,54,75,80,83,88',
'101,104,107,118,120,125,126,127,128,166,129,130,163,131,163,89,132,9',
'133,134,135,136,137,219,138,45,9,26,26,139,1,26,141,142,143,87,154,26',
'64,160,167,153,170,30,30,171,64,84,84,172,6,37,30,30,169,223,168,173',
'179,180,182,56,56,56,56,56,56,56,70,67,116,7,56,56,56,184,185,212,186',
'187,45,188,174,35,90,90,56,45,207,162,45,191,87,152,86,150,194,164,195',
'49,49,198,163,199,86,200,52,84,201,166,202,203,6,204,213,205,206,84',
'211,6,6,215,56,153,63,6,216,222,,56,192,,56,39,,218,,37,,,87,121,213',
',14,176,35,36,,,112,56,,151,37,56,151,23,,,56,86,86,79,196,49,,17,,14',
',36,6,6,84,49,30,153,77,37,79,5,8,,62,76,56,76,56,157,,,,121,110,57',
'59,56,56,56,,59,,9,,57,58,64,,,,58,,,153,79,,79,35,,,,163,6,124,,213',
'197,,,197,36,,5,,,85,49,14,,9,,,14,223,,,157,157,,212,37,212,,39,,163',
',89,163,,70,,87,,36,,35,,87,,,73,45,,6,6,,,6,87,14,14,151,,151,49,49',
',51,,,,,21,51,212,212,6,,,174,174,74,,,39,207,207,,,,87,70,,56,,12,12',
',,15,,,,,,,6,,86,,,,163,,45,90,156,,212,,,,,,87,32,32,,,,157,32,32,',
'87,,,,36,6,,,28,12,151,151,,56,,,30,89,,,76,76,56,70,79,197,76,76,62',
',,35,79,70,,,62,56,12,24,,41,,,,,,50,49,24,24,,45,50,,24,24,,,,,,87',
',,151,,151,,76,,,,,,12,156,6,,,121,109,,56,,30,56,,6,,,30,,,56,70,50',
'105,,,,45,151,,212,,56,26,,,,87,56,,,,,26,26,6,,,86,26,26,,6,,2,116',
',109,32,39,,,56,70,212,,,212,56,56,70,,56,175,73,,,,56,56,6,109,,39',
'56,56,,76,87,6,,87,14,,,14,21,,,,76,76,76,76,6,74,,36,,86,39,,,6,9,6',
'24,84,,79,,,,62,9,,,12,,12,79,,69,,62,,,,,,,,212,39,,,,45,,,6,,6,156',
',87,156,,,156,,156,84,,60,,,,,,,,6,210,210,210,,39,,,,,,56,26,,70,,',
'56,,,,,56,56,,70,76,,,56,,,6,39,,,103,,,,,,,,,,,56,35,,60,,,,,,,,6,',
',,156,,156,,156,49,156,,56,,,,60,6,,,,,,,,23,,103,103,,103,56,53,156',
',,14,,53,23,56,56,39,,30,,,60,,,,,,53,14,,,,30,82,82,,53,53,53,56,53',
'56,,,,,,121,,39,,121,56,56,,161,,161,,,,,6,6,6,,,,,,,53,53,,,53,,,,',
',,,,,,,,14,,79,56,,56,,,,14,,,79,,,,,,,,,,82,,82,,,82,82,,,,121,,,56',
'14,,39,,,37,53,,,,6,53,53,53,53,53,,,,161,60,,,,,,,79,56,,45,,,,6,,',
'82,103,,87,,,6,6,6,6,,6,56,14,,14,,56,6,56,,214,,,,,,60,60,,70,6,39',
',,56,70,,158,,,158,,,60,14,,,,,60,,210,210,,210,210,,210,,,6,6,6,6,53',
'53,53,53,53,53,53,6,,14,,53,53,53,,,82,,,,,,,,,53,,,,,14,,,,,,,161,',
'161,,161,,,,,,,,159,159,159,34,103,,,,,34,103,,53,,,103,,,158,53,,,53',
'103,34,161,,161,,,,,,34,34,34,,34,34,34,,53,,,,53,,,,,53,,,,82,,,82',
'214,82,,214,,,214,,214,,34,34,,,34,34,,,53,,53,,,210,210,210,210,,161',
'53,53,53,,,,,103,,,,103,,161,,161,,161,159,159,159,159,,159,,,,,,,,60',
',,,33,82,60,,,34,33,161,,,34,34,34,34,34,,,214,,214,,214,,214,,,,,210',
'60,,,,,33,,,,159,159,159,159,,,,,214,158,,159,158,,,158,,158,,,,103',
'103,,,,,,60,,,,,82,,,,,,,,,82,82,,53,,,,,,,,,,,,,,,,,,34,34,34,34,34',
'34,34,,,,,34,34,34,,82,,,,,,,,33,,34,,158,,158,,158,33,158,,82,53,,',
'60,82,,,82,,53,,,,,,,,60,,,158,,,82,53,34,,,,,,,34,,,34,,,,,,,,60,82',
',,,,,,,,,34,,,,34,,,,34,34,,,,,,,53,,,53,,,,,82,34,,53,,33,,33,,,33',
'34,,34,,53,33,,,,,53,34,34,34,,,,,,33,,,,,,34,,34,82,,,,,,53,,,,,,53',
'53,,,53,,,,,,53,53,,,,,53,53,,,,,,,38,,,,,,38,,,,,,,,,,,,,,33,,,,33',
',,,,33,,,,,38,38,38,,,,,,,82,,,,,,,,,,,,33,,33,,,,,,,,34,,33,33,,38',
',,,,,,,,,,,,,,,,,,,,53,82,,,,,53,,,,,53,53,,,,,,53,,,,,,,,,,34,,,,,38',
',34,53,34,,,,,38,34,,,,,,,,,34,,,,,,,53,,,,,,,,,,,,,,,,,,,53,,,,,,,',
',53,53,,,,,,,,,,34,,,34,,,,,,,,34,,,53,,53,,,,,,,34,,,,53,53,34,,38',
',38,,,38,,,,,,38,,,,,,,33,,,,34,,,38,,,34,34,,,34,,,53,,53,34,34,,,',
',34,34,,,,,,,,,,,,,,,,,,,,,,53,,,,,66,,,34,,,66,,,,,,,,34,,33,,38,33',
',,38,,53,,38,38,,,,,,,66,66,66,,,,,,,38,,53,,,,,53,,53,38,,38,,,,,,',
',,,38,38,,53,33,66,34,,66,,33,,34,38,33,38,,34,34,,33,33,,,34,,33,33',
',,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,66,,,,,,34,,,66,,,,,,,,,,,,,,,,34,',
',,,,,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,34,,34,,,,,33,,,,,,34,34,,,,33,33',
',27,,,,33,,27,,,,,,,,,65,66,,,,,65,33,,,,34,,,,,34,38,34,27,,34,,,38',
',66,,,,33,,38,,65,65,65,,,,,,,,,,,,34,33,,,,,,27,,,33,33,,,,,,,,,,,65',
',34,65,,,,34,,,,,,,,33,,38,,,38,66,,,,66,33,,34,66,66,,,34,,34,,,,27',
',,,,,,66,,27,,,34,,,65,,66,,66,,,,,65,,33,,33,66,66,38,,,,,,38,,,,38',
'66,,66,,,38,38,,,,,38,38,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,33,,,,',
',,,38,27,,27,,,27,,,,,,27,33,,,65,,33,,33,,,,,,27,,,,,,,,,,,,,,,65,',
',,,,,,,,,,,,,,38,,,,,,,,,,,38,38,,,,,38,38,,,,,,,,,,,,,,,,27,,38,,27',
',,,,27,,,,,66,65,,,,65,,66,,65,65,38,,,,66,,,,,,27,,27,,,65,,,,38,,',
'27,27,,65,,65,38,38,,,,,,,,65,65,,,,,,,,,,,,65,,65,,,38,,,,66,,,66,',
',,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,38,,38,,,38,,66,,,,,,,',
',,66,,,,,,,,,,,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,38,,,,66,38,,,,,,,,,,66',
',,,,,,,,,,38,,,,,38,27,38,,,,,,,,,,,,,,65,,,,,,,65,,,,,,,,65,,,,,,,',
',,66,,,,,,,,,,,66,66,,,,,,66,,,,,,,,,,,,27,,,27,,,,,,,,,,,,65,,,65,',
',,,,,,,,,66,,,,,,,,,,,,,,,,,,,66,,,,,27,,,,66,66,27,,,,27,,,,,65,27',
'27,,,,,27,27,,65,,,,,,66,,,,,,40,,,,,66,,,,40,40,40,,,,,,,,,,,40,40',
',40,,,,,,65,,,,,,,,66,,,65,,66,,66,,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,66',
',,,,,,,27,,,,,,,,,,,27,27,,,65,66,,27,,,66,,,,,65,65,,,,,,65,,,27,,',
',,,66,,,,,66,,66,,,,,,,,,,27,,,,,,,,,,,,,,,65,,,,27,,,,,,,,,27,27,,',
',,65,,,,,,,,,65,65,,,,,,,,,,,27,,40,40,,,40,40,,,,27,40,,,65,,,,,,,',
',,40,65,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40',
'40,40,27,,27,,40,27,,,,,65,,40,,,65,,65,,40,65,,40,,,,,,,40,,40,27,',
'40,40,,,,,,,,,,,,65,,,,,,,,,,,,,,27,,,,,,,,,,65,,40,,40,65,,,40,40,',
'27,,,,,27,,27,,,,,,,,65,,,,,65,,65,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',40,,40,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,40,,40,,,,',
',,,,,,,,,,40,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,',
',,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',40,40,40,,,,40,,,40,40,40,40,,,,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,40',
',,,,,,,,,,,,,,40,,,,,40,,,,,40,,,40,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,',
',,,,,,40,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,40,,,,,,,,,,,',
',40,40,40,40,,40,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,40,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40' ]
        racc_goto_check = arr = ::Array.new(3754, 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,   206,     7,   140,   nil,    48,    -2,   121,    49,    67,
     6,   134,  -292,  -268,    98,  -545,  -565,  -655,  -690,   nil,
  -371,    47,   149,   -25,   -88,    90,   -20,  2043,  -183,   -60,
    -6,    27,  -146,  1257,  1138,  -217,  -362,   -11,  1547,   -20,
  2710,   -42,  -438,   nil,  -594,   -27,   nil,   nil,   142,  -199,
   122,  -206,  -409,   866,  -338,   nil,    15,    88,    66,    56,
   535,   nil,    23,   -20,  -323,  2058,  1839,  -533,  -239,   -51,
    14,   nil,   nil,    25,    56,  -255,  -117,    19,   nil,    19,
   126,   nil,   672,  -176,     0,  -447,   -13,   -18,  -331,  -263,
  -407,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   101,   nil,   258,  -174,   -61,   nil,   112,   nil,  -279,
  -686,   nil,  -696,   nil,   nil,   nil,  -361,   nil,   107,   nil,
  -442,     8,   nil,   nil,  -580,   106,  -203,   122,   122,   124,
  -371,   126,   128,   121,  -586,  -177,  -587,  -777,   126,  -419,
  -246,  -695,  -417,  -696,   nil,   nil,   nil,   nil,   nil,   nil,
  -748,  -420,  -480,  -664,  -619,   nil,  -223,  -500,   324,   211,
  -616,   174,  -720,  -553,  -565,   nil,  -646,  -732,  -816,  -818,
  -136,  -514,   159,  -334,  -310,   -10,  -193,   nil,   nil,   -53,
   -53,   nil,  -457,   nil,  -254,  -770,  -356,  -468,  -598,   nil,
   nil,   175,     3,    40,   174,   175,  -304,  -238,  -124,   179,
   180,   182,  -505,  -346,  -345,   188,  -490,  -304,   nil,   nil,
   206,  -447,  -315,  -667,   213,  -440,  -680,   nil,  -640,  -864,
   nil,   nil,   -86,  -500 ]

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,   779,   242,   473,
    24,   nil,   nil,   358,   nil,    25,    26,    27,   nil,   715,
   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,   674,   518,
   299,   283,   841,    51,    52,    53,    54,    55,    56,    57,
    58,    59,    61,   nil,   nil,   284,    65,   nil,    67,   nil,
   nil,    68,   885,    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,   723,   852,   610,   886,
   750,   583,   nil,   751,  1030,   923,   571,   nil,   572,   nil,
   nil,   573,   nil,   575,   nil,   830,   nil,   nil,   nil,   581,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   464,   286,   nil,
   nil,   693,   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,   868,   788,   570,
   nil,   574,   876,   586,   588,   589,   934,   592,   593,   935,
   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,
  3, 178, :_reduce_49,
  1, 178, :_reduce_none,
  1, 176, :_reduce_none,
  3, 176, :_reduce_52,
  3, 176, :_reduce_53,
  3, 176, :_reduce_54,
  2, 176, :_reduce_55,
  1, 176, :_reduce_none,
  1, 169, :_reduce_57,
  0, 189, :_reduce_58,
  0, 190, :_reduce_59,
  4, 187, :_reduce_60,
  1, 172, :_reduce_none,
  1, 172, :_reduce_none,
  1, 192, :_reduce_none,
  4, 192, :_reduce_64,
  0, 200, :_reduce_65,
  4, 197, :_reduce_66,
  1, 199, :_reduce_67,
  2, 191, :_reduce_68,
  3, 191, :_reduce_69,
  4, 191, :_reduce_70,
  5, 191, :_reduce_71,
  4, 191, :_reduce_72,
  5, 191, :_reduce_73,
  2, 191, :_reduce_74,
  2, 191, :_reduce_75,
  2, 191, :_reduce_76,
  2, 191, :_reduce_77,
  2, 191, :_reduce_78,
  1, 171, :_reduce_none,
  3, 171, :_reduce_80,
  1, 205, :_reduce_none,
  3, 205, :_reduce_82,
  1, 204, :_reduce_83,
  2, 204, :_reduce_84,
  3, 204, :_reduce_85,
  5, 204, :_reduce_86,
  2, 204, :_reduce_87,
  4, 204, :_reduce_88,
  2, 204, :_reduce_89,
  4, 204, :_reduce_90,
  1, 204, :_reduce_91,
  3, 204, :_reduce_92,
  1, 208, :_reduce_none,
  3, 208, :_reduce_94,
  2, 207, :_reduce_95,
  3, 207, :_reduce_96,
  1, 210, :_reduce_97,
  3, 210, :_reduce_98,
  1, 209, :_reduce_99,
  1, 209, :_reduce_100,
  4, 209, :_reduce_101,
  3, 209, :_reduce_102,
  3, 209, :_reduce_103,
  3, 209, :_reduce_104,
  3, 209, :_reduce_105,
  2, 209, :_reduce_106,
  1, 209, :_reduce_107,
  1, 173, :_reduce_108,
  1, 173, :_reduce_109,
  4, 173, :_reduce_110,
  3, 173, :_reduce_111,
  3, 173, :_reduce_112,
  3, 173, :_reduce_113,
  3, 173, :_reduce_114,
  2, 173, :_reduce_115,
  1, 173, :_reduce_116,
  1, 213, :_reduce_117,
  1, 213, :_reduce_none,
  2, 214, :_reduce_119,
  1, 214, :_reduce_120,
  3, 214, :_reduce_121,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_125,
  1, 215, :_reduce_126,
  1, 218, :_reduce_none,
  1, 218, :_reduce_none,
  1, 167, :_reduce_129,
  1, 167, :_reduce_none,
  1, 168, :_reduce_131,
  0, 221, :_reduce_132,
  4, 168, :_reduce_133,
  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_206,
  3, 186, :_reduce_207,
  6, 186, :_reduce_208,
  5, 186, :_reduce_209,
  5, 186, :_reduce_210,
  5, 186, :_reduce_211,
  5, 186, :_reduce_212,
  0, 227, :_reduce_213,
  5, 186, :_reduce_214,
  3, 186, :_reduce_215,
  3, 186, :_reduce_216,
  3, 186, :_reduce_217,
  2, 186, :_reduce_218,
  2, 186, :_reduce_219,
  3, 186, :_reduce_220,
  3, 186, :_reduce_221,
  3, 186, :_reduce_222,
  3, 186, :_reduce_223,
  3, 186, :_reduce_224,
  3, 186, :_reduce_225,
  4, 186, :_reduce_226,
  2, 186, :_reduce_227,
  2, 186, :_reduce_228,
  3, 186, :_reduce_229,
  3, 186, :_reduce_230,
  3, 186, :_reduce_231,
  3, 186, :_reduce_232,
  1, 186, :_reduce_none,
  3, 186, :_reduce_234,
  3, 186, :_reduce_235,
  3, 186, :_reduce_236,
  3, 186, :_reduce_237,
  3, 186, :_reduce_238,
  2, 186, :_reduce_239,
  2, 186, :_reduce_240,
  3, 186, :_reduce_241,
  3, 186, :_reduce_242,
  3, 186, :_reduce_243,
  3, 186, :_reduce_244,
  3, 186, :_reduce_245,
  6, 186, :_reduce_246,
  1, 186, :_reduce_none,
  1, 226, :_reduce_none,
  1, 226, :_reduce_none,
  1, 226, :_reduce_none,
  1, 226, :_reduce_none,
  3, 224, :_reduce_252,
  3, 224, :_reduce_253,
  1, 228, :_reduce_254,
  1, 229, :_reduce_none,
  2, 229, :_reduce_256,
  4, 229, :_reduce_257,
  2, 229, :_reduce_258,
  1, 222, :_reduce_none,
  3, 222, :_reduce_260,
  3, 233, :_reduce_261,
  1, 234, :_reduce_none,
  1, 234, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  2, 181, :_reduce_266,
  4, 181, :_reduce_267,
  2, 181, :_reduce_268,
  1, 203, :_reduce_269,
  2, 203, :_reduce_270,
  2, 203, :_reduce_271,
  4, 203, :_reduce_272,
  1, 203, :_reduce_273,
  0, 237, :_reduce_274,
  2, 196, :_reduce_275,
  2, 236, :_reduce_276,
  2, 235, :_reduce_277,
  1, 235, :_reduce_none,
  1, 230, :_reduce_279,
  2, 230, :_reduce_280,
  3, 230, :_reduce_281,
  0, 238, :_reduce_282,
  5, 230, :_reduce_283,
  1, 175, :_reduce_284,
  1, 175, :_reduce_285,
  3, 174, :_reduce_286,
  4, 174, :_reduce_287,
  2, 174, :_reduce_288,
  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_299,
  0, 273, :_reduce_300,
  4, 225, :_reduce_301,
  0, 274, :_reduce_302,
  3, 225, :_reduce_303,
  0, 275, :_reduce_304,
  0, 276, :_reduce_305,
  5, 225, :_reduce_306,
  3, 225, :_reduce_307,
  3, 225, :_reduce_308,
  2, 225, :_reduce_309,
  0, 277, :_reduce_310,
  4, 225, :_reduce_311,
  0, 278, :_reduce_312,
  4, 225, :_reduce_313,
  1, 225, :_reduce_314,
  4, 225, :_reduce_315,
  3, 225, :_reduce_316,
  1, 225, :_reduce_317,
  5, 225, :_reduce_318,
  4, 225, :_reduce_319,
  3, 225, :_reduce_320,
  2, 225, :_reduce_321,
  1, 225, :_reduce_none,
  2, 225, :_reduce_323,
  2, 225, :_reduce_324,
  6, 225, :_reduce_325,
  6, 225, :_reduce_326,
  4, 225, :_reduce_327,
  4, 225, :_reduce_328,
  5, 225, :_reduce_329,
  4, 225, :_reduce_330,
  6, 225, :_reduce_331,
  0, 279, :_reduce_332,
  0, 280, :_reduce_333,
  7, 225, :_reduce_334,
  0, 281, :_reduce_335,
  0, 282, :_reduce_336,
  0, 283, :_reduce_337,
  9, 225, :_reduce_338,
  0, 284, :_reduce_339,
  0, 285, :_reduce_340,
  6, 225, :_reduce_341,
  0, 286, :_reduce_342,
  0, 287, :_reduce_343,
  7, 225, :_reduce_344,
  0, 288, :_reduce_345,
  0, 289, :_reduce_346,
  9, 225, :_reduce_347,
  1, 225, :_reduce_348,
  1, 225, :_reduce_349,
  1, 225, :_reduce_350,
  1, 225, :_reduce_351,
  1, 180, :_reduce_352,
  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_378,
  1, 258, :_reduce_none,
  2, 258, :_reduce_380,
  1, 264, :_reduce_none,
  1, 264, :_reduce_382,
  1, 296, :_reduce_none,
  3, 296, :_reduce_384,
  1, 299, :_reduce_385,
  3, 299, :_reduce_386,
  1, 298, :_reduce_387,
  4, 298, :_reduce_388,
  6, 298, :_reduce_389,
  3, 298, :_reduce_390,
  5, 298, :_reduce_391,
  2, 298, :_reduce_392,
  4, 298, :_reduce_393,
  1, 298, :_reduce_394,
  3, 298, :_reduce_395,
  4, 300, :_reduce_396,
  2, 300, :_reduce_397,
  2, 300, :_reduce_398,
  1, 300, :_reduce_399,
  2, 305, :_reduce_400,
  1, 305, :_reduce_none,
  6, 306, :_reduce_402,
  8, 306, :_reduce_403,
  4, 306, :_reduce_404,
  6, 306, :_reduce_405,
  4, 306, :_reduce_406,
  2, 306, :_reduce_407,
  6, 306, :_reduce_408,
  2, 306, :_reduce_409,
  4, 306, :_reduce_410,
  6, 306, :_reduce_411,
  2, 306, :_reduce_412,
  4, 306, :_reduce_413,
  2, 306, :_reduce_414,
  4, 306, :_reduce_415,
  1, 306, :_reduce_416,
  1, 310, :_reduce_417,
  1, 310, :_reduce_418,
  3, 311, :_reduce_419,
  1, 311, :_reduce_420,
  4, 311, :_reduce_421,
  1, 312, :_reduce_none,
  4, 312, :_reduce_423,
  1, 313, :_reduce_424,
  3, 313, :_reduce_425,
  1, 314, :_reduce_426,
  1, 314, :_reduce_none,
  0, 318, :_reduce_428,
  0, 319, :_reduce_429,
  4, 253, :_reduce_430,
  4, 316, :_reduce_431,
  1, 316, :_reduce_432,
  3, 317, :_reduce_433,
  3, 317, :_reduce_434,
  3, 321, :_reduce_435,
  2, 193, :_reduce_436,
  4, 193, :_reduce_437,
  5, 193, :_reduce_438,
  5, 193, :_reduce_439,
  0, 324, :_reduce_440,
  3, 252, :_reduce_441,
  4, 252, :_reduce_442,
  4, 252, :_reduce_443,
  3, 252, :_reduce_444,
  3, 252, :_reduce_445,
  3, 252, :_reduce_446,
  2, 252, :_reduce_447,
  1, 252, :_reduce_448,
  4, 252, :_reduce_449,
  0, 325, :_reduce_450,
  4, 251, :_reduce_451,
  0, 326, :_reduce_452,
  4, 251, :_reduce_453,
  0, 327, :_reduce_454,
  0, 328, :_reduce_455,
  4, 198, :_reduce_456,
  0, 329, :_reduce_457,
  0, 330, :_reduce_458,
  4, 322, :_reduce_459,
  0, 332, :_reduce_460,
  6, 262, :_reduce_461,
  1, 331, :_reduce_none,
  1, 331, :_reduce_none,
  6, 161, :_reduce_464,
  0, 161, :_reduce_465,
  1, 333, :_reduce_466,
  1, 333, :_reduce_none,
  1, 333, :_reduce_none,
  2, 334, :_reduce_469,
  1, 334, :_reduce_none,
  2, 163, :_reduce_471,
  1, 163, :_reduce_none,
  1, 239, :_reduce_473,
  1, 239, :_reduce_474,
  1, 239, :_reduce_none,
  1, 240, :_reduce_476,
  1, 336, :_reduce_477,
  1, 336, :_reduce_none,
  2, 336, :_reduce_479,
  3, 337, :_reduce_480,
  1, 337, :_reduce_481,
  3, 241, :_reduce_482,
  3, 242, :_reduce_483,
  3, 243, :_reduce_484,
  3, 243, :_reduce_485,
  1, 341, :_reduce_486,
  3, 341, :_reduce_487,
  1, 342, :_reduce_none,
  2, 342, :_reduce_489,
  3, 245, :_reduce_490,
  0, 345, :_reduce_491,
  4, 245, :_reduce_492,
  1, 344, :_reduce_493,
  3, 344, :_reduce_494,
  3, 244, :_reduce_495,
  3, 244, :_reduce_496,
  3, 246, :_reduce_497,
  3, 246, :_reduce_498,
  1, 346, :_reduce_499,
  3, 346, :_reduce_500,
  1, 347, :_reduce_501,
  3, 347, :_reduce_502,
  1, 338, :_reduce_503,
  2, 338, :_reduce_504,
  1, 339, :_reduce_505,
  2, 339, :_reduce_506,
  1, 340, :_reduce_507,
  2, 340, :_reduce_508,
  1, 343, :_reduce_509,
  0, 349, :_reduce_510,
  3, 343, :_reduce_511,
  0, 350, :_reduce_512,
  4, 343, :_reduce_513,
  1, 348, :_reduce_514,
  1, 348, :_reduce_515,
  1, 348, :_reduce_516,
  1, 348, :_reduce_none,
  2, 219, :_reduce_518,
  1, 219, :_reduce_519,
  1, 351, :_reduce_none,
  1, 351, :_reduce_none,
  1, 351, :_reduce_none,
  1, 351, :_reduce_none,
  3, 220, :_reduce_524,
  1, 335, :_reduce_none,
  2, 335, :_reduce_526,
  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_536,
  1, 212, :_reduce_537,
  1, 212, :_reduce_538,
  1, 212, :_reduce_539,
  1, 212, :_reduce_540,
  1, 212, :_reduce_541,
  1, 212, :_reduce_542,
  1, 247, :_reduce_543,
  1, 247, :_reduce_544,
  1, 179, :_reduce_545,
  1, 179, :_reduce_546,
  1, 184, :_reduce_547,
  1, 184, :_reduce_548,
  0, 352, :_reduce_549,
  4, 266, :_reduce_550,
  1, 266, :_reduce_551,
  3, 270, :_reduce_552,
  0, 354, :_reduce_553,
  3, 270, :_reduce_554,
  4, 353, :_reduce_555,
  2, 353, :_reduce_556,
  2, 353, :_reduce_557,
  1, 353, :_reduce_none,
  2, 356, :_reduce_559,
  0, 356, :_reduce_560,
  6, 320, :_reduce_561,
  8, 320, :_reduce_562,
  4, 320, :_reduce_563,
  6, 320, :_reduce_564,
  4, 320, :_reduce_565,
  6, 320, :_reduce_566,
  2, 320, :_reduce_567,
  4, 320, :_reduce_568,
  6, 320, :_reduce_569,
  2, 320, :_reduce_570,
  4, 320, :_reduce_571,
  2, 320, :_reduce_572,
  4, 320, :_reduce_573,
  1, 320, :_reduce_574,
  0, 320, :_reduce_575,
  1, 315, :_reduce_576,
  1, 315, :_reduce_577,
  1, 315, :_reduce_578,
  1, 315, :_reduce_579,
  1, 297, :_reduce_none,
  1, 297, :_reduce_581,
  1, 358, :_reduce_none,
  1, 359, :_reduce_none,
  3, 359, :_reduce_584,
  1, 307, :_reduce_585,
  3, 307, :_reduce_586,
  1, 360, :_reduce_none,
  2, 361, :_reduce_588,
  1, 361, :_reduce_589,
  2, 362, :_reduce_590,
  1, 362, :_reduce_591,
  1, 301, :_reduce_none,
  3, 301, :_reduce_593,
  1, 355, :_reduce_none,
  3, 355, :_reduce_595,
  1, 363, :_reduce_none,
  1, 363, :_reduce_none,
  2, 302, :_reduce_598,
  1, 302, :_reduce_599,
  3, 364, :_reduce_600,
  3, 365, :_reduce_601,
  1, 308, :_reduce_602,
  3, 308, :_reduce_603,
  1, 357, :_reduce_604,
  3, 357, :_reduce_605,
  1, 366, :_reduce_none,
  1, 366, :_reduce_none,
  2, 309, :_reduce_608,
  1, 309, :_reduce_609,
  1, 367, :_reduce_none,
  1, 367, :_reduce_none,
  2, 304, :_reduce_612,
  2, 303, :_reduce_613,
  0, 303, :_reduce_614,
  1, 271, :_reduce_none,
  0, 368, :_reduce_616,
  4, 271, :_reduce_617,
  1, 250, :_reduce_618,
  2, 250, :_reduce_none,
  1, 232, :_reduce_none,
  3, 232, :_reduce_621,
  3, 369, :_reduce_622,
  2, 369, :_reduce_623,
  4, 369, :_reduce_624,
  2, 369, :_reduce_625,
  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_651,
  1, 267, :_reduce_none,
  1, 154, :_reduce_none,
  2, 154, :_reduce_654,
  0, 152, :_reduce_655 ]

racc_reduce_n = 656

racc_shift_n = 1099

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

def _reduce_49(val, _values, result)
                      expr, (_, line), resbody = val

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

    result
end

# reduce 50 omitted

# reduce 51 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 56 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 61 omitted

# reduce 62 omitted

# reduce 63 omitted

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

    result
end

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

    result
end

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

                      result = body
                      result.line = line

                      # self.env.unextend

    result
end

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

    result
end

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

    result
end

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

                      result = call.concat args.sexp_body

                      if block then
                        block_dup_check result, block

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

    result
end

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

    result
end

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

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

    result
end

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 79 omitted

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

    result
end

# reduce 81 omitted

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

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

    result
end

# reduce 93 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

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

    result
end

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

                      _, id = val
                      l = lexer.lineno

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

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

    result
end

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

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

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

    result
end

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

    result
end

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

    result
end

# reduce 118 omitted

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

    result
end

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

    result
end

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

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

    result
end

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

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

    result
end

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

    result
end

# reduce 127 omitted

# reduce 128 omitted

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

    result
end

# reduce 130 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

# reduce 197 omitted

# reduce 198 omitted

# reduce 199 omitted

# reduce 200 omitted

# reduce 201 omitted

# reduce 202 omitted

# reduce 203 omitted

# reduce 204 omitted

# reduce 205 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_218(val, _values, result)
                      v1, _ = val
                      v2 = nil

                      result = s(:dot2, v1, v2).line v1.line

    result
end

def _reduce_219(val, _values, result)
                      v1, _ = val
                      v2 = nil

                      result = s(:dot3, v1, v2).line v1.line

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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


    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 233 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 247 omitted

# reduce 248 omitted

# reduce 249 omitted

# reduce 250 omitted

# reduce 251 omitted

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

    result
end

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

    result
end

# reduce 255 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 259 omitted

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

    result
end

# reduce 262 omitted

# reduce 263 omitted

# reduce 264 omitted

# reduce 265 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 278 omitted

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

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_287(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_288(val, _values, result)
                      _, arg = val
                      result = s(:splat, arg).line arg.line

    result
end

# reduce 289 omitted

# reduce 290 omitted

# reduce 291 omitted

# reduce 292 omitted

# reduce 293 omitted

# reduce 294 omitted

# reduce 295 omitted

# reduce 296 omitted

# reduce 297 omitted

# reduce 298 omitted

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

    result
end

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

    result
end

def _reduce_301(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_302(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG
                      result = lexer.lineno

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

# reduce 322 omitted

def _reduce_323(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_324(val, _values, result)
                      result = val[1] # TODO: fix lineno

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_333(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_334(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_335(val, _values, result)
                      result = self.lexer.lineno

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_340(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_341(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_342(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_343(val, _values, result)
 result = lexer.lineno
    result
end

def _reduce_344(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_345(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = EXPR_FNAME

    result
end

def _reduce_346(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_347(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_348(val, _values, result)
                      (_, line), = val
                      result = s(:break).line line

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# 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

# reduce 375 omitted

# reduce 376 omitted

# reduce 377 omitted

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

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

    result
end

# reduce 379 omitted

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

    result
end

# reduce 381 omitted

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

    result
end

# reduce 383 omitted

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

    result
end

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

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

    result
end

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

    result
end

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

                      result = block_var args

    result
end

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

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

    result
end

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

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

    result
end

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

                      result = block_var args, :*

    result
end

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

                      result = block_var args, :*, args2

    result
end

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

                      result = block_var :"*#{splat}"

    result
end

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

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

    result
end

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

    result
end

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

                      result = block_var :*, args

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 401 omitted

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

    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) << nil

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 422 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 427 omitted

def _reduce_428(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_429(val, _values, result)
                      result = lexer.cmdarg.store(false)

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_438(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_439(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_440(val, _values, result)
                      result = self.lexer.lineno

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

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

    result
end

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

                      result = body
                      result.line = line

                      self.env.unextend

    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_brace_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?

    result
end

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

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

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

    result
end

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

    result
end

# reduce 462 omitted

# reduce 463 omitted

def _reduce_464(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_465(val, _values, result)
                      result = nil

    result
end

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

    result
end

# reduce 467 omitted

# reduce 468 omitted

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

    result
end

# reduce 470 omitted

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

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

    result
end

# reduce 472 omitted

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

    result
end

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

    result
end

# reduce 475 omitted

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

    result
end

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

    result
end

# reduce 478 omitted

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

    result
end

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

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

                      result = str

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 488 omitted

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG

    result
end

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

    result
end

def _reduce_512(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_513(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_514(val, _values, result)
 result = s(:gvar, val[0].to_sym).line lexer.lineno
    result
end

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

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

# reduce 517 omitted

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

    result
end

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

    result
end

# reduce 520 omitted

# reduce 521 omitted

# reduce 522 omitted

# reduce 523 omitted

def _reduce_524(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 525 omitted

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

    result
end

# reduce 527 omitted

# reduce 528 omitted

# reduce 529 omitted

# reduce 530 omitted

# reduce 531 omitted

# reduce 532 omitted

# reduce 533 omitted

# reduce 534 omitted

# reduce 535 omitted

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

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

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

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

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

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 558 omitted

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 580 omitted

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

                      result = identifier

    result
end

# reduce 582 omitted

# reduce 583 omitted

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

    result
end

def _reduce_585(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_586(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 587 omitted

def _reduce_588(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_589(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_590(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_591(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 592 omitted

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

    result
end

# reduce 594 omitted

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

    result
end

# reduce 596 omitted

# reduce 597 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 606 omitted

# reduce 607 omitted

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

    result
end

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

    result
end

# reduce 610 omitted

# reduce 611 omitted

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

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

    result
end

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

    result
end

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

    result
end

# reduce 615 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 619 omitted

# reduce 620 omitted

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

    result
end

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

    result
end

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

    result
end

# 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

# reduce 648 omitted

# reduce 649 omitted

# reduce 650 omitted

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

# reduce 652 omitted

# reduce 653 omitted

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

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

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

end   # class Ruby26Parser
