#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.14
# from Racc grammer file "".
#

require 'racc/parser.rb'
class Ruby21Parser < Racc::Parser


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-288,581,626,-102,-100,-103,271,-288,-288,-288,749,271,221,-288,-288',
'561,-288,558,557,556,817,559,587,-98,-84,-105,662,271,581,662,581,-101',
'784,3,623,850,-288,-288,-70,-288,-288,-288,-288,-288,878,817,218,219',
'222,-100,-106,222,-101,715,-92,581,581,-511,701,271,661,840,718,661',
'-511,625,-99,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-601,729,-288,-288,-288,729,645,-103,218,219,-288,-416',
'270,-288,218,219,622,270,-288,-100,-288,-103,-288,-288,-288,-288,-288',
'-288,-288,-104,-288,-102,-288,270,116,748,-102,-100,-103,115,-92,-102',
'-100,-103,-288,-288,-288,-89,-95,-96,-288,-288,-288,-288,116,222,-288',
'-288,-288,115,-288,116,-104,116,-101,270,115,222,115,-101,-288,-288',
'-288,-91,-97,-92,-92,-94,-92,817,-288,-288,700,-288,-288,-288,-288,-288',
'116,116,-90,930,-92,115,115,-602,-502,-601,222,662,729,116,-509,-502',
'222,116,115,783,528,-509,115,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-288,-288,-288,-517,-94,-288,-288,-288,-517,786,-288',
'661,-95,-288,-93,-516,-288,-288,242,-288,690,-288,-94,-288,662,-288',
'-288,-288,-288,-288,-288,-288,566,-288,273,-288,94,95,94,95,273,-101',
'-105,569,607,-90,222,-516,-288,-288,-288,-288,457,-288,-605,-288,690',
'-94,661,-99,-94,-605,-605,-605,-99,-104,-605,-605,-605,740,-605,-98',
'540,741,-94,539,577,576,116,-605,-605,-605,-605,115,83,222,505,-605',
'1000,-89,-605,-605,84,-605,-605,-605,-605,-605,561,503,558,557,556,-98',
'559,609,608,607,-106,607,570,261,612,-510,761,96,97,96,97,-599,-510',
'-605,-605,-605,-605,-605,-605,-605,-605,-605,-605,-605,-605,-605,-605',
'788,264,-605,-605,-605,-605,785,-605,265,-264,-605,607,-605,-605,-605',
'222,-605,-601,-605,490,-605,-605,-605,-605,-605,-605,-605,-605,-605',
'-425,-605,-605,-605,609,608,609,608,-505,490,-605,877,842,759,607,-505',
'-605,-605,-605,-605,-599,-605,-502,-605,-505,528,218,219,770,-502,-502',
'-502,-507,-102,-502,-502,-502,-263,-502,-507,566,764,-599,609,608,620',
'-502,-513,-502,-502,-502,569,116,-425,-513,-598,763,115,-502,-502,-425',
'-502,-502,-502,-502,-502,-512,-96,561,-425,558,557,556,-512,559,609',
'608,615,607,-505,640,-105,607,116,577,576,-505,-425,115,-502,-502,-502',
'-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,577,576,-502',
'-502,-502,-502,-502,-502,607,762,-502,732,-502,-502,-502,570,-502,-598',
'-502,-94,-502,-502,-502,-502,-502,-502,-502,-502,-502,409,-502,587,-502',
'-103,411,410,609,608,605,-598,609,608,610,976,216,-502,-502,-502,-502',
'-508,-502,-505,-502,769,639,725,-508,723,-505,-505,-505,264,-502,-505',
'-505,-505,242,-505,265,609,608,627,722,-289,721,-505,242,-505,-505,-505',
'-289,880,540,706,-605,542,-97,-505,-505,-289,-505,-505,-505,-505,-505',
'-91,-92,883,239,886,-106,116,241,240,237,238,115,888,239,-100,-101,116',
'241,240,237,238,115,890,-505,-505,-505,-505,-505,-505,-505,-505,-505',
'-505,-505,-505,-505,-505,222,242,-505,-505,-505,-605,-505,-505,540,892',
'-505,542,-605,-505,-505,893,-505,-601,-505,713,-505,-605,-505,-505,-505',
'-505,-505,-505,-505,116,-505,116,-505,239,115,116,115,241,240,-605,115',
'242,218,219,711,-505,-505,-505,-505,709,-505,-605,-505,119,120,121,122',
'123,-605,-605,-605,707,-505,242,-605,-605,561,-605,558,557,556,566,559',
'239,846,817,-605,241,240,256,257,540,569,690,542,218,219,-605,-605,706',
'-605,-605,-605,-605,-605,239,846,817,901,241,240,237,238,703,564,547',
'561,-262,558,557,556,905,559,574,573,577,576,907,-605,-605,-605,-605',
'-605,-605,-605,-605,-605,-605,-605,-605,-605,-605,218,219,-605,-605',
'-605,561,646,558,557,556,-605,559,715,-605,908,222,706,570,-605,911',
'-605,718,-605,-605,-605,-605,-605,-605,-605,913,-605,-605,-605,915,917',
'917,561,222,558,557,556,222,559,715,923,-605,-605,696,-93,925,-605,294',
'72,73,74,12,60,695,927,215,66,67,-102,690,533,70,590,68,69,71,33,34',
'75,76,715,588,222,679,-84,32,31,30,104,103,105,106,869,870,22,222,871',
'110,111,650,11,48,222,13,108,107,109,98,59,100,99,101,222,102,110,111',
'222,94,95,242,45,46,44,242,246,251,252,253,248,250,258,259,254,255,-515',
'235,236,-514,242,256,257,-515,43,937,-514,36,938,222,61,62,-515,941',
'63,-514,38,239,-265,245,47,241,240,237,238,249,247,243,23,244,242,242',
'215,91,83,85,86,87,89,1007,649,273,84,92,638,260,637,-239,1005,222,65',
'633,951,81,88,90,-262,631,96,97,8,72,73,74,12,60,624,958,-289,66,67',
'959,621,961,70,-289,68,69,71,33,34,75,76,962,-289,618,614,592,32,31',
'30,104,103,105,106,591,401,22,587,505,544,543,650,11,48,10,13,108,107',
'109,98,59,100,99,101,978,102,110,111,537,94,95,980,45,46,44,242,246',
'251,252,253,248,250,258,259,254,255,-288,235,236,215,981,256,257,-288',
'43,242,214,36,-602,529,61,62,-288,985,63,212,38,239,525,245,47,241,240',
'237,238,249,247,243,23,244,273,706,215,91,83,85,86,87,89,957,-280,990',
'84,92,992,260,994,-280,745,996,65,996,222,81,88,90,-280,276,96,97,294',
'72,73,74,12,60,522,1003,-280,66,67,515,514,222,70,-280,68,69,71,33,34',
'75,76,-69,-280,1008,505,1009,32,31,30,104,103,105,106,917,917,22,917',
'1014,503,978,634,11,48,500,13,108,107,109,98,59,100,99,101,273,102,110',
'111,490,94,95,221,45,46,44,242,246,251,252,253,248,250,258,259,254,255',
'-288,235,236,-514,459,256,257,-288,43,458,-514,36,-602,456,61,62,-288',
'222,63,-514,38,239,412,245,47,241,240,237,238,249,247,243,23,244,407',
'391,-288,91,83,85,86,87,89,-288,215,-602,84,92,-602,260,-601,743,-288',
'695,65,388,385,81,88,90,745,382,96,97,294,72,73,74,12,60,358,222,-289',
'66,67,319,978,318,70,-289,68,69,71,33,34,75,76,1037,-289,1038,1039,1040',
'32,31,30,104,103,105,106,996,954,22,558,557,556,996,559,11,48,996,13',
'108,107,109,98,59,100,99,101,222,102,110,111,261,94,95,217,45,46,44',
'242,246,251,252,253,248,250,258,259,254,255,215,235,236,215,211,256',
'257,531,43,210,521,36,917,978,61,62,455,209,63,519,38,239,112,245,47',
'241,240,237,238,249,247,243,23,244,996,,215,91,83,85,86,87,89,957,-515',
',84,92,,260,,-515,745,,65,,,81,88,90,-515,,96,97,294,72,73,74,12,60',
',,215,66,67,,,,70,454,68,69,71,33,34,75,76,,455,,,,32,31,30,104,103',
'105,106,,954,22,558,557,556,,559,11,48,,13,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259',
'254,255,-335,235,236,,,256,257,-335,43,,,36,,,61,62,-335,,63,,38,239',
',245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84',
'92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,119,120,121,122,123,32,31,30,104,103,105,106,',
',22,119,120,121,122,123,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255',
',235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,222,260,,,,,65',
',,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,119,120,121,122,123,32,31,30,104,103,105,106,,,22,,,,,,11,48,',
'13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246',
'251,252,253,248,250,258,259,254,255,,235,236,,,256,257,,43,,,36,,,61',
'62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83',
'85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256',
'257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243',
'23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97',
'294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255',
',235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81',
'88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250',
'258,259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245',
'47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92',
',260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251',
'252,253,248,250,258,259,254,255,,235,236,,,256,257,,43,,,296,,,61,62',
',,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85',
'86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256',
'257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243',
'23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97',
'294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255',
',235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81',
'88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250',
'258,259,254,255,,235,236,,,256,257,,43,,,296,,,61,62,,,63,,38,239,,245',
'47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92',
',260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251',
'252,253,248,250,258,259,254,255,,235,236,,,256,257,,43,,,36,,,61,62',
',,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85',
'86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256',
'257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243',
'23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97',
'294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255',
',235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81',
'88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,561,22,558,557,556,,559,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,561,,558,557',
'556,,559,561,715,558,557,556,,559,,,,922,,43,,,36,,,61,62,,,63,,38,',
',,47,,,715,,,,,23,,715,,,91,83,85,86,87,89,,,,84,92,,561,,558,557,556',
'65,559,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,715,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,-625,-625',
'-625,-625,248,250,,,-625,-625,,,,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11',
'48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242',
'246,251,252,253,248,250,,,254,255,,,,,,256,257,,43,,,36,,,61,62,,,63',
',38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
'11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,246,251,252,253,248,250,258,,254,255,,,,,,256,257,,43,,,296,,,61',
'62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,242,,,,,,,,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,',
'245,47,241,240,237,238,,,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,',
',,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253',
'248,250,258,259,254,255,,-625,-625,,,256,257,,43,,,36,,,61,62,,,63,',
'38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
'11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,246,251,252,253,248,250,258,259,254,255,,-625,-625,,,256,257,,43',
',,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,,,243,23,244,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,,,,,',
',,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,,,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,',
',96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,',
'32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,43,,,36',
',,61,62,,,63,,38,239,,245,47,241,240,237,238,,,243,23,244,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22',
',,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,242,-625,-625,-625,-625,248,250,,,-625,-625,,,,,,256,257,,43,',
',36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,8,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,22,,,,,,11,48,10,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,-625,-625,-625,-625,248,250,,,-625,-625,,,,,,256',
'257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243',
'23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294',
'72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,242,-625,-625,-625,-625,248,250,,,-625,-625,,,',
',,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249',
'247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,-625,-625,-625,-625,248,250,,,-625,-625',
',,,,,256,257,,227,,,233,,,61,62,,,63,,,239,,245,47,241,240,237,238,249',
'247,243,232,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,',
'96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,242,-625,-625,-625,-625,248,250,,,-625,-625',
',,,,,256,257,,227,,,233,,,61,62,,,63,,,239,,245,47,241,240,237,238,249',
'247,243,232,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,',
'96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287',
'102,110,111,,94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,227,,,233,',
',61,62,,,63,,,239,283,245,47,241,240,237,238,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242',
',,,,,,,,,,,,,,,256,257,,227,,,233,,,61,62,,,63,,,239,,245,47,241,240',
'237,238,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,222,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,',
'63,,285,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76',
',,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59',
'100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,116,,,,,115,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,',
',,,,,,,,,,,,,,,,,352,,,36,,,61,62,,,63,,38,,,,,,,,,,,,,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61',
'62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305',
',,233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,317',
',,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,10,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,401,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305',
',,301,,,61,62,,,63,,300,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,417,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,417,,,,47,,,,,,,,232,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,222,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,',
'234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,',
'45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,',
',232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,674',
',283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,767,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,222,,,,,,65,,288',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76',
',,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59',
'100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,674,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,',
'84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309',
',,108,107,109,593,59,100,99,594,,102,110,111,,94,95,,,,315,,,,,,,,,',
',,,,,,,,,,595,,,233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,',
'234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,593,59',
'100,99,594,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,595,,,233,',
',61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36',
',,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312',
'75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,968,',
',233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59',
'100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,',
'84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,',
'234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,417,,,,47,,,,,',
',,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104',
'103,105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,233,,,61,62,,,63,,,,,,,,',
',,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,517,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,895,,,233,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,',
'307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61',
'62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,285,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,674,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,10,13,108,107,109,98,59,100,99,101,',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63',
',38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,',
'63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,',
'307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61',
'62,,,63,,674,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,533,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,',
'68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,',
'13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,',
',,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,401,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,895,,,233,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,-606,,96',
'97,,,,-606,-606,-606,,,-606,-606,-606,561,-606,558,557,556,566,559,',
',,-606,-606,-606,-606,,,569,,,,,-606,-606,,-606,-606,-606,-606,-606',
',,,,,,,,,564,,,,,,,,,,,577,576,,-606,-606,-606,-606,-606,-606,-606,-606',
'-606,-606,-606,-606,-606,-606,,,-606,-606,-606,,,-606,,,-606,,,-606',
'-606,,-606,570,-606,,-606,,-606,-606,-606,-606,-606,-606,-606,,-606',
'-606,-606,,,,,,,,,,,,,-606,-606,-606,-606,-607,-606,,-606,,,,-607,-607',
'-607,,,-607,-607,-607,561,-607,558,557,556,566,559,,,,-607,-607,-607',
'-607,,,569,,,,,-607,-607,,-607,-607,-607,-607,-607,,,,,,,,,,564,,,,',
',,,,574,573,577,576,,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607',
'-607,-607,-607,-607,,,-607,-607,-607,,,-607,,,-607,,,-607,-607,,-607',
'570,-607,,-607,,-607,-607,-607,-607,-607,-607,-607,,-607,-607,-607,',
',,,,,,,,,,,-607,-607,-607,-607,-281,-607,,-607,,,,-281,-281,-281,,,-281',
'-281,-281,561,-281,558,557,556,566,559,,,,,-281,-281,-281,,,569,,,,',
'-281,-281,,-281,-281,-281,-281,-281,,,,,,,,,,564,,,,,,,,,,,577,576,',
'-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281',
',,-281,-281,-281,,,-281,,,-281,,,-281,-281,,-281,570,-281,,-281,,-281',
'-281,-281,-281,-281,-281,-281,,-281,,-281,,,,,,,,,,,,,-281,-281,-281',
'-281,,-281,,-281,176,187,177,200,173,193,183,182,203,204,198,181,180',
'175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,367,366,368',
'365,172,191,190,,,,,,171,178,169,170,362,363,364,360,129,100,99,361',
',102,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163,164',
'149,150,,,,,,374,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136',
'159,137,,,165,,,,,,,,,,,,,,,,,,,,158,176,187,177,200,173,193,183,182',
'203,204,198,181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195',
'202,197,196,189,199,184,172,191,190,,,,,,171,178,169,170,166,167,168',
'127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143',
',,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177,200,173',
'193,183,182,203,204,198,181,180,175,201,205,206,185,174,188,192,194',
'186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178,169',
'170,166,167,168,127,129,126,,128,,,,,,,,,161,162,,157,139,140,141,148',
'145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156',
'155,151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176',
'187,177,200,173,193,183,182,203,204,198,181,180,175,201,205,206,185',
'174,188,192,194,186,179,,,,195,202,197,196,189,199,184,172,191,190,',
',,,,171,178,169,170,166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153',
',138,160,156,155,151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,',
',,,,,,158,176,187,177,200,173,193,183,182,203,204,198,181,180,175,201',
'205,206,185,174,188,192,194,186,179,,,,195,202,197,196,189,199,184,172',
'191,190,,,,,,171,178,169,170,166,167,168,127,129,,,128,,,,,,,,,161,162',
',157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,',
',,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,91,,,',
',,,,,,92,,,,,,,,,158,176,187,177,200,173,193,183,182,203,204,198,181',
'180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,196,189',
'199,184,172,191,190,,,,,,171,178,169,170,166,167,168,127,129,398,397',
'128,,399,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163',
'164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136',
'159,137,,,165,,,,,,,,,,,,,,,,,,,,158,176,187,177,200,173,193,183,182',
'203,204,198,181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195',
'202,197,196,189,199,184,172,191,190,,,,,,171,178,169,170,166,167,168',
'127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143',
',,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,-295,,165,,,,,-295,-295,-295,,,-295,-295,-295,561,-295',
'558,557,556,566,559,158,,,,-295,-295,,,,569,,,,,-295,-295,,-295,-295',
'-295,-295,-295,,,,,,,,,,564,,,,,,,,,574,573,577,576,,-295,-295,-295',
'-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,,,-295,-295,-295',
',,-295,,276,-295,,,-295,-295,,-295,570,-295,,-295,,-295,-295,-295,-295',
'-295,-295,-295,,-295,,-295,,,,,,,,,,,,-624,-295,-295,,-295,,-295,-624',
'-624,-624,,,-624,-624,-624,561,-624,558,557,556,566,559,,,,-624,-624',
',,,,569,,,,,-624,-624,,-624,-624,-624,-624,-624,,,561,,558,557,556,566',
'559,564,,,,,,,,,569,,577,576,,-624,,,,,,,-624,-624,-624,,-624,-624,-624',
'-624,,-624,564,-624,,,,,273,-624,-624,-624,-624,577,576,,570,,,,,-624',
'-624,,-624,-624,-624,-624,-624,,-624,-624,,,,,,,,,,,,,-624,,,570,,-624',
',,-624,-624,-624,-624,-624,-624,-624,-624,-624,-624,-624,-624,-624,-624',
',,-624,-624,-624,,,-624,,273,-624,,,-624,-624,,-624,,-624,,-624,,-624',
'-624,-624,-624,-624,-624,-624,,-624,-624,-624,,,,,,,,,,,,-424,-624,-624',
',-624,,-624,-424,-424,-424,,,-424,-424,-424,561,-424,558,557,556,566',
'559,,,,-424,-424,-424,,,,569,,,,,-424,-424,,-424,-424,-424,-424,-424',
',,,,,,,,,564,,,,,,,,,574,573,577,576,,-424,-424,-424,-424,-424,-424',
'-424,-424,-424,-424,-424,-424,-424,-424,,,-424,-424,-424,,,-424,,273',
'-424,,,-424,-424,,-424,570,-424,,-424,,-424,-424,-424,-424,-424,-424',
'-424,,-424,-424,-424,,,,,,737,438,,,738,,,-424,-424,,-424,,-424,161',
'162,,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273',
',,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,',
',,434,438,,,433,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,488,431,,,489,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,',
'652,431,,,653,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,654,438,,,655,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,',
'854,438,,,855,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,683,431,,,684,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,',
'686,438,,,687,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,561,165,558,557,556,566,559,561,,558,557,556',
'566,559,,,569,,,,,158,,569,561,,558,557,556,566,559,,,,,,,,564,,569',
',,,,564,,574,573,577,576,,,,574,573,577,576,,,,561,564,558,557,556,566',
'559,,,,574,573,577,576,,,569,,,,,222,570,,,,,,,570,,,,,,,,,564,1032',
'438,,,1033,,,570,,,577,576,,161,162,,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,570,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,1030,431,,,1031,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,561,165,558',
'557,556,566,559,561,,558,557,556,566,559,,,569,,,,,158,,569,,,,,,,,',
',,,,,,564,,,,,,,564,,427,431,577,576,428,,,,,577,576,,,161,162,,157',
'139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,570,,,273,,,',
'570,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,561,165',
'558,557,556,566,559,561,,558,557,556,566,559,,,569,,,,,158,,569,,,,',
',,,,,,,,,,564,,,,,,,564,,652,431,577,576,653,,,,,577,576,,,161,162,',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,570,,,273',
',,,570,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165',
',,,,654,438,,,655,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,',
'142,143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,,165,,,,,488,431,,,489,,,,,,,,,161,162',
'158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,',
',,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,561,165',
'558,557,556,566,559,561,,558,557,556,566,559,,,569,,,,,158,,569,561',
',558,557,556,566,559,,,,,,,,564,753,569,,,,,564,,574,573,577,576,,,',
'574,573,577,576,,,,,564,753,561,,558,557,556,566,559,574,573,577,576',
',,,,,569,,561,570,558,557,556,566,559,,570,,,,,,,,569,,,,564,,,,,570',
',,,,,577,576,,,,,,564,,,735,431,,,736,,574,573,577,576,,,,161,162,,157',
'139,140,141,148,145,147,,570,142,143,,,,163,164,149,150,,,,,,273,,,570',
',,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,1002',
'438,,,1001,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143',
',,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,561,165,558,557,556,566,559,,,,,,,,,,569,,,,,158',
',,,,,,,,,,,,,,,,564,,,,,,,,,574,573,577,576,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,570' ]
        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 = [
'433,343,392,1032,1045,1031,310,433,433,433,599,665,22,433,433,564,433',
'564,564,564,983,564,983,349,678,591,494,29,904,666,926,1030,653,1,389',
'731,433,433,678,433,433,433,433,433,787,726,451,451,22,852,353,719,735',
'564,683,851,342,363,546,64,494,717,564,666,363,392,350,433,433,433,433',
'433,433,433,433,433,433,433,433,433,433,1032,853,433,433,433,584,433',
'653,756,756,433,29,310,433,693,693,389,665,433,787,433,736,433,433,433',
'433,433,433,433,738,433,737,433,29,343,599,1032,1045,1031,343,683,1032',
'1045,1031,655,433,433,349,433,591,433,655,655,655,599,451,655,655,655',
'599,655,904,433,926,1030,64,904,702,926,1030,655,655,655,852,353,683',
'735,684,683,694,655,655,546,655,655,655,655,655,851,342,350,851,683',
'851,342,738,360,737,756,495,583,853,368,360,693,584,853,652,456,368',
'584,655,655,655,655,655,655,655,655,655,655,655,655,655,655,42,736,655',
'655,655,226,655,655,495,738,655,737,225,655,655,692,655,689,655,684',
'655,486,655,655,655,655,655,655,655,703,655,688,655,44,44,315,315,685',
'652,456,703,619,42,682,41,655,655,655,655,228,655,654,655,680,684,486',
'42,684,654,654,654,226,655,654,654,654,595,654,225,331,595,684,331,703',
'703,583,654,654,654,654,583,80,952,673,854,952,41,654,654,80,654,654',
'654,654,654,718,671,718,718,718,41,718,619,619,616,228,380,703,664,380',
'365,619,44,44,315,315,594,365,654,654,654,654,654,654,654,654,654,654',
'654,654,654,654,658,27,654,654,654,854,654,654,27,766,654,386,854,654',
'654,656,654,854,654,647,654,854,654,654,654,654,654,654,654,812,654',
'654,654,616,616,380,380,594,641,854,771,718,616,383,594,654,654,654',
'654,594,654,98,654,594,319,20,20,636,98,98,98,366,654,98,98,98,632,98',
'366,880,628,594,386,386,386,98,364,98,98,98,880,346,812,364,593,626',
'346,98,98,812,98,98,98,98,98,362,319,922,812,922,922,922,362,922,383',
'383,383,376,361,428,319,378,749,880,880,361,812,749,98,98,98,98,98,98',
'98,98,98,98,98,98,98,98,706,706,98,98,98,593,98,98,394,623,98,586,593',
'98,98,880,98,593,98,428,98,593,98,98,98,98,98,98,98,126,98,585,98,428',
'126,126,376,376,376,593,378,378,378,922,18,98,98,98,98,367,98,101,98',
'635,427,580,367,578,101,101,101,370,98,101,101,101,482,101,370,394,394',
'394,575,522,571,101,481,101,101,101,522,789,332,790,686,332,18,101,101',
'522,101,101,101,101,101,635,427,792,482,793,18,291,482,482,482,482,291',
'794,481,635,427,754,481,481,481,481,754,796,101,101,101,101,101,101',
'101,101,101,101,101,101,101,101,797,463,101,101,101,686,101,101,336',
'798,101,336,686,101,101,799,101,686,101,562,101,686,101,101,101,101',
'101,101,101,5,101,935,101,463,5,861,935,463,463,686,861,462,341,341',
'554,101,101,101,101,553,101,434,101,677,677,677,677,677,434,434,434',
'552,101,470,434,434,340,434,340,340,340,340,340,462,724,724,434,462',
'462,470,470,698,340,811,698,750,750,434,434,550,434,434,434,434,434',
'470,1016,1016,815,470,470,470,470,549,340,340,715,818,715,715,715,819',
'715,340,340,340,340,823,434,434,434,434,434,434,434,434,434,434,434',
'434,434,434,327,327,434,434,434,976,434,976,976,976,434,976,715,434',
'824,825,826,340,434,830,434,715,434,434,434,434,434,434,434,831,434',
'434,434,833,834,836,923,839,923,923,923,536,923,976,841,434,434,535',
'434,844,434,582,582,582,582,582,582,534,847,351,582,582,434,526,523',
'582,351,582,582,582,582,582,582,582,923,351,518,516,513,582,582,582',
'582,582,582,582,757,757,582,512,757,757,757,446,582,582,497,582,582',
'582,582,582,582,582,582,582,857,582,582,582,496,582,582,467,582,582',
'582,446,446,446,446,446,446,446,446,446,446,446,966,446,446,302,466',
'446,446,966,582,862,302,582,863,864,582,582,966,873,582,302,582,446',
'874,446,582,446,446,446,446,446,446,446,582,446,465,464,967,582,582',
'582,582,582,582,967,443,435,582,582,426,446,425,446,967,422,582,418',
'891,582,582,582,416,413,582,582,2,2,2,2,2,2,391,895,741,2,2,896,388',
'898,2,741,2,2,2,2,2,2,2,899,741,385,382,354,2,2,2,2,2,2,2,352,348,2',
'347,337,334,333,657,2,2,2,2,2,2,2,2,2,2,2,2,924,2,2,2,329,2,2,928,2',
'2,2,657,657,657,657,657,657,657,657,657,657,657,855,657,657,17,929,657',
'657,855,2,323,17,2,855,320,2,2,855,934,2,17,2,657,316,657,2,657,657',
'657,657,657,657,657,2,657,314,942,956,2,2,2,2,2,2,956,306,945,2,2,946',
'657,947,306,956,948,2,950,309,2,2,2,306,308,2,2,817,817,817,817,817',
'817,305,960,969,817,817,299,298,297,817,969,817,817,817,817,817,817',
'817,295,969,968,284,971,817,817,817,817,817,817,817,972,973,817,974',
'975,281,977,421,817,817,280,817,817,817,817,817,817,817,817,817,269',
'817,817,817,266,817,817,234,817,817,817,421,421,421,421,421,421,421',
'421,421,421,421,687,421,421,965,230,421,421,687,817,229,965,817,687',
'227,817,817,687,734,817,965,817,421,207,421,817,421,421,421,421,421',
'421,421,817,421,124,90,1033,817,817,817,817,817,817,1033,597,1001,817',
'817,1033,421,1002,597,1033,1004,817,89,88,817,817,817,597,87,817,817',
'897,897,897,897,897,897,72,48,1008,897,897,43,1015,40,897,1008,897,897',
'897,897,897,897,897,1020,1008,1021,1022,1023,897,897,897,897,897,897',
'897,1024,892,897,892,892,892,1025,892,897,897,1026,897,897,897,897,897',
'897,897,897,897,1029,897,897,897,25,897,897,19,897,897,897,441,441,441',
'441,441,441,441,441,441,441,441,321,441,441,304,16,441,441,321,897,15',
'304,897,1034,1035,897,897,321,13,897,304,897,441,3,441,897,441,441,441',
'441,441,441,441,897,441,1047,,894,897,897,897,897,897,897,894,303,,897',
'897,,441,,303,894,,897,,,897,897,897,303,,897,897,808,808,808,808,808',
'808,,,224,808,808,,,,808,224,808,808,808,808,808,808,808,,224,,,,808',
'808,808,808,808,808,808,,1000,808,1000,1000,1000,,1000,808,808,,808',
'808,808,808,808,808,808,808,808,,808,808,808,,808,808,,808,808,808,775',
'775,775,775,775,775,775,775,775,775,775,49,775,775,,,775,775,49,808',
',,808,,,808,808,49,,808,,808,775,,775,808,775,775,775,775,775,775,775',
'808,775,,,,808,808,808,808,808,808,,,,808,808,,775,,,,,808,,,808,808',
'808,,,808,808,807,807,807,807,807,807,,,,807,807,,,,807,,807,807,807',
'807,807,807,807,9,9,9,9,9,807,807,807,807,807,807,807,,,807,511,511',
'511,511,511,807,807,,807,807,807,807,807,807,807,807,807,,807,807,807',
',807,807,,807,807,807,485,485,485,485,485,485,485,485,485,485,485,,485',
'485,,,485,485,,807,,,807,,,807,807,,,807,,807,485,,485,807,485,485,485',
'485,485,485,485,807,485,,,,807,807,807,807,807,807,,,,807,807,485,485',
',,,,807,,,807,807,807,,,807,807,803,803,803,803,803,803,,,,803,803,',
',,803,,803,803,803,803,803,803,803,293,293,293,293,293,803,803,803,803',
'803,803,803,,,803,,,,,,803,803,,803,803,803,803,803,803,803,803,803',
',803,803,803,,803,803,,803,803,803,778,778,778,778,778,778,778,778,778',
'778,778,,778,778,,,778,778,,803,,,803,,,803,803,,,803,,803,778,,778',
'803,778,778,778,778,778,778,778,803,778,,,,803,803,803,803,803,803,',
',,803,803,,778,,,,,803,,,803,803,803,,,803,803,579,579,579,579,579,579',
',,,579,579,,,,579,,579,579,579,579,579,579,579,,,,,,579,579,579,579',
'579,579,579,,,579,,,,,,579,579,,579,579,579,579,579,579,579,579,579',
',579,579,579,,579,579,,579,579,579,876,876,876,876,876,876,876,876,876',
'876,876,,876,876,,,876,876,,579,,,579,,,579,579,,,579,,579,876,,876',
'579,876,876,876,876,876,876,876,579,876,,,,579,579,579,579,579,579,',
',,579,579,,876,,,,,579,,,579,579,579,,,579,579,701,701,701,701,701,701',
',,,701,701,,,,701,,701,701,701,701,701,701,701,,,,,,701,701,701,701',
'701,701,701,,,701,,,,,,701,701,,701,701,701,701,701,701,701,701,701',
',701,701,701,,701,701,,701,701,701,879,879,879,879,879,879,879,879,879',
'879,879,,879,879,,,879,879,,701,,,701,,,701,701,,,701,,701,879,,879',
'701,879,879,879,879,879,879,879,701,879,,,,701,701,701,701,701,701,',
',,701,701,,879,,,,,701,,,701,701,701,,,701,701,700,700,700,700,700,700',
',,,700,700,,,,700,,700,700,700,700,700,700,700,,,,,,700,700,700,700',
'700,700,700,,,700,,,,,,700,700,,700,700,700,700,700,700,700,700,700',
',700,700,700,,700,700,,700,700,700,773,773,773,773,773,773,773,773,773',
'773,773,,773,773,,,773,773,,700,,,700,,,700,700,,,700,,700,773,,773',
'700,773,773,773,773,773,773,773,700,773,,,,700,700,700,700,700,700,',
',,700,700,,773,,,,,700,,,700,700,700,,,700,700,301,301,301,301,301,301',
',,,301,301,,,,301,,301,301,301,301,301,301,301,,,,,,301,301,301,301',
'301,301,301,,,301,,,,,,301,301,,301,301,301,301,301,301,301,301,301',
',301,301,301,,301,301,,301,301,301,24,24,24,24,24,24,24,24,24,24,24',
',24,24,,,24,24,,301,,,301,,,301,301,,,301,,301,24,,24,301,24,24,24,24',
'24,24,24,301,24,,,,301,301,301,301,301,301,,,,301,301,,24,,,,,301,,',
'301,301,301,,,301,301,964,964,964,964,964,964,,,,964,964,,,,964,,964',
'964,964,964,964,964,964,,,,,,964,964,964,964,964,964,964,,,964,,,,,',
'964,964,,964,964,964,964,964,964,964,964,964,,964,964,964,,964,964,',
'964,964,964,691,691,691,691,691,691,691,691,691,691,691,,691,691,,,691',
'691,,964,,,964,,,964,964,,,964,,964,691,,691,964,691,691,691,691,691',
'691,691,964,691,,,,964,964,964,964,964,964,,,,964,964,,691,,,,,964,',
',964,964,964,,,964,964,901,901,901,901,901,901,,,,901,901,,,,901,,901',
'901,901,901,901,901,901,,,,,,901,901,901,901,901,901,901,,,901,,,,,',
'901,901,,901,901,901,901,901,901,901,901,901,,901,901,901,,901,901,',
'901,901,901,768,768,768,768,768,768,768,768,768,768,768,,768,768,,,768',
'768,,901,,,901,,,901,901,,,901,,901,768,,768,901,768,768,768,768,768',
'768,768,901,768,,,,901,901,901,901,901,901,,,,901,901,,768,,,,,901,',
',901,901,901,,,901,901,296,296,296,296,296,296,,,,296,296,,,,296,,296',
'296,296,296,296,296,296,,,,,,296,296,296,296,296,296,296,,,296,,,,,',
'296,296,,296,296,296,296,296,296,296,296,296,,296,296,296,,296,296,',
'296,296,296,780,780,780,780,780,780,780,780,780,780,780,,780,780,,,780',
'780,,296,,,296,,,296,296,,,296,,296,780,,780,296,780,780,780,780,780',
'780,780,296,780,,,,296,296,296,296,296,296,,,,296,296,,780,,,,,296,',
',296,296,296,,,296,296,979,979,979,979,979,979,,,,979,979,,,,979,,979',
'979,979,979,979,979,979,,,,,,979,979,979,979,979,979,979,,,979,,,,,',
'979,979,,979,979,979,979,979,979,979,979,979,,979,979,979,,979,979,',
'979,979,979,278,278,278,278,278,278,278,278,278,278,278,,278,278,,,278',
'278,,979,,,979,,,979,979,,,979,,979,278,,278,979,278,278,278,278,278',
'278,278,979,278,,,,979,979,979,979,979,979,,,,979,979,,278,,,,,979,',
',979,979,979,,,979,979,984,984,984,984,984,984,,,,984,984,,,,984,,984',
'984,984,984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,',
'984,984,,984,984,984,984,984,984,984,984,984,,984,984,984,,984,984,',
'984,984,984,782,782,782,782,782,782,782,782,782,782,782,,782,782,,,782',
'782,,984,,,984,,,984,984,,,984,,984,782,,782,984,782,782,782,782,782',
'782,782,984,782,,,,984,984,984,984,984,984,,,,984,984,,782,,,,,984,',
',984,984,984,,,984,984,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,532,532,532,532,532,532,532,532,532,532,532,,532,532,,,532',
'532,,233,,,233,,,233,233,,,233,,233,532,,532,233,532,532,532,532,532',
'532,532,233,532,,,,233,233,233,233,233,233,,,,233,233,,532,,,,,233,',
',233,233,233,,,233,233,987,987,987,987,987,987,,,,987,987,,,,987,,987',
'987,987,987,987,987,987,,,,,,987,987,987,987,987,987,987,,840,987,840',
'840,840,,840,987,987,,987,987,987,987,987,987,987,987,987,,987,987,987',
',987,987,,987,987,987,842,,842,842,842,,842,978,840,978,978,978,,978',
',,,840,,987,,,987,,,987,987,,,987,,987,,,,987,,,842,,,,,987,,978,,,987',
'987,987,987,987,987,,,,987,987,,1014,,1014,1014,1014,987,1014,,987,987',
'987,,,987,987,988,988,988,988,988,988,,,,988,988,,,,988,,988,988,988',
'988,988,988,988,1014,,,,,988,988,988,988,988,988,988,,,988,,,,,,988',
'988,,988,988,988,988,988,988,988,988,988,,988,988,988,,988,988,,988',
'988,988,471,471,471,471,471,471,471,,,471,471,,,,,,471,471,,988,,,988',
',,988,988,,,988,,988,471,,471,988,471,471,471,471,471,471,471,988,471',
',,,988,988,988,988,988,988,,,,988,988,,,,,,,988,,,988,988,988,,,988',
'988,858,858,858,858,858,858,,,,858,858,,,,858,,858,858,858,858,858,858',
'858,,,,,,858,858,858,858,858,858,858,,,858,,,,,,858,858,,858,858,858',
'858,858,858,858,858,858,,858,858,858,,858,858,,858,858,858,483,483,483',
'483,483,483,483,,,483,483,,,,,,483,483,,858,,,858,,,858,858,,,858,,858',
'483,,483,858,483,483,483,483,483,483,483,858,483,,,,858,858,858,858',
'858,858,,,,858,858,,,,,,,858,,,858,858,858,,,858,858,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',
'484,484,484,484,484,484,484,484,,484,484,,,,,,484,484,,36,,,36,,,36',
'36,,,36,,36,484,,484,36,484,484,484,484,484,484,484,36,484,,,,36,36',
'36,36,36,36,,,,36,36,,,,,,,36,,,36,36,36,,,36,36,209,209,209,209,209',
'209,,,,209,209,,,,209,,209,209,209,209,209,209,209,,,,,,209,209,209',
'209,209,209,209,,,209,,,,,,209,209,,209,209,209,209,209,209,209,209',
'209,,209,209,209,,209,209,,209,209,209,472,,,,,,,,,,,,,,,,472,472,,209',
',,209,,,209,209,,,209,,209,472,,472,209,472,472,472,472,,,472,209,472',
',,,209,209,209,209,209,209,,,,209,209,,,,,,,209,,,209,209,209,,,209',
'209,931,931,931,931,931,931,,,,931,931,,,,931,,931,931,931,931,931,931',
'931,,,,,,931,931,931,931,931,931,931,,,931,,,,,,931,931,,931,931,931',
'931,931,931,931,931,931,,931,931,931,,931,931,,931,931,931,461,461,461',
'461,461,461,461,461,461,461,461,,461,461,,,461,461,,931,,,931,,,931',
'931,,,931,,931,461,,461,931,461,461,461,461,461,461,461,931,461,,,,931',
'931,931,931,931,931,,,,931,931,,,,,,,931,,,931,931,931,,,931,931,751',
'751,751,751,751,751,,,,751,751,,,,751,,751,751,751,751,751,751,751,',
',,,,751,751,751,751,751,751,751,,,751,,,,,,751,751,,751,751,751,751',
'751,751,751,751,751,,751,751,751,,751,751,,751,751,751,460,460,460,460',
'460,460,460,460,460,460,460,,460,460,,,460,460,,751,,,751,,,751,751',
',,751,,751,460,,460,751,460,460,460,460,460,460,460,751,460,,,,751,751',
'751,751,751,751,,,,751,751,,,,,,,751,,,751,751,751,,,751,751,752,752',
'752,752,752,752,,,,752,752,,,,752,,752,752,752,752,752,752,752,,,,,',
'752,752,752,752,752,752,752,,,752,,,,,,752,752,,752,752,752,752,752',
'752,752,752,752,,752,752,752,,752,752,,752,752,752,473,,,,,,,,,,,,,',
',,473,473,,752,,,752,,,752,752,,,752,,752,473,,473,752,473,473,473,473',
',,473,752,473,,,,752,752,752,752,752,752,,,,752,752,,,,,,,752,,,752',
'752,752,,,752,752,326,326,326,326,326,326,,,,326,326,,,,326,,326,326',
'326,326,326,326,326,,,,,,326,326,326,326,326,326,326,,,326,,,,,,326',
'326,,326,326,326,326,326,326,326,326,326,,326,326,326,,326,326,,326',
'326,326,474,,,,,,,,,,,,,,,,474,474,,326,,,326,,,326,326,,,326,,326,474',
',474,326,474,474,474,474,,,474,326,474,,,,326,326,326,326,326,326,,',
',326,326,,,,,,,326,,,326,326,326,,,326,326,848,848,848,848,848,848,',
',,848,848,,,,848,,848,848,848,848,848,848,848,,,,,,848,848,848,848,848',
'848,848,,,848,,,,,,848,848,,848,848,848,848,848,848,848,848,848,,848',
'848,848,,848,848,,848,848,848,475,,,,,,,,,,,,,,,,475,475,,848,,,848',
',,848,848,,,848,,848,475,,475,848,475,475,475,475,,,475,848,475,,,,848',
'848,848,848,848,848,,,,848,848,,,,,,,848,,,848,848,848,,,848,848,849',
'849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849,849,849,',
',,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,,849,849,849,849',
'849,849,849,849,849,,849,849,849,,849,849,,849,849,849,476,476,476,476',
'476,476,476,,,476,476,,,,,,476,476,,849,,,849,,,849,849,,,849,,849,476',
',476,849,476,476,476,476,476,476,476,849,476,,,,849,849,849,849,849',
'849,,,,849,849,,,,,,,849,,,849,849,849,,,849,849,407,407,407,407,407',
'407,,,,407,407,,,,407,,407,407,407,407,407,407,407,,,,,,407,407,407',
'407,407,407,407,,,407,,,,,,407,407,407,407,407,407,407,407,407,407,407',
'407,,407,407,407,,407,407,,407,407,407,478,478,478,478,478,478,478,',
',478,478,,,,,,478,478,,407,,,407,,,407,407,,,407,,407,478,,478,407,478',
'478,478,478,478,478,478,407,478,,,,407,407,407,407,407,407,,,,407,407',
',,,,,,407,,,407,407,407,,,407,407,758,758,758,758,758,758,,,,758,758',
',,,758,,758,758,758,758,758,758,758,,,,,,758,758,758,758,758,758,758',
',,758,,,,,,758,758,,758,758,758,758,758,758,758,758,758,,758,758,758',
',758,758,,758,758,758,480,480,480,480,480,480,480,,,480,480,,,,,,480',
'480,,758,,,758,,,758,758,,,758,,758,480,,480,758,480,480,480,480,480',
'480,480,758,480,,,,758,758,758,758,758,758,,,,758,758,,,,,,,758,,,758',
'758,758,,,758,758,285,285,285,,285,,,,285,285,,,,285,,285,285,285,285',
'285,285,285,,,,,,285,285,285,285,285,285,285,,,285,,,,,,,285,,,285,285',
'285,285,285,285,285,285,,285,285,285,,285,285,,285,285,285,477,477,477',
'477,477,477,477,,,477,477,,,,,,477,477,,285,,,285,,,285,285,,,285,,',
'477,,477,285,477,477,477,477,477,477,477,285,477,,,,285,285,285,285',
'285,285,,,,285,285,,,,,,,285,,,285,285,285,,,285,285,674,674,674,,674',
',,,674,674,,,,674,,674,674,674,674,674,674,674,,,,,,674,674,674,674',
'674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674,674,,674,674',
'674,,674,674,,674,674,674,479,479,479,479,479,479,479,,,479,479,,,,',
',479,479,,674,,,674,,,674,674,,,674,,,479,,479,674,479,479,479,479,479',
'479,479,674,479,,,,674,674,674,674,674,674,,,,674,674,,,,,,,674,,,674',
'674,674,,,674,674,877,877,877,,877,,,,877,877,,,,877,,877,877,877,877',
'877,877,877,,,,,,877,877,877,877,877,877,877,,,877,,,,,,,877,,,877,877',
'877,877,877,877,877,877,877,877,877,877,,877,877,,877,877,877,469,,',
',,,,,,,,,,,,,469,469,,877,,,877,,,877,877,,,877,,,469,877,469,877,469',
'469,469,469,,,,877,,,,,877,877,877,877,877,877,,,,877,877,,,,,,,877',
',877,877,877,877,,,877,877,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',
'468,,,,,,,,,,,,,,,,468,468,,344,,,344,,,344,344,,,344,,,468,,468,344',
'468,468,468,468,,,,344,,,,,344,344,344,344,344,344,,,,344,344,,,,,,',
'344,,,344,344,344,,,344,344,61,61,61,,61,,,,61,61,,,,61,,61,61,61,61',
'61,61,61,,,,,,61,61,61,61,61,61,61,,,61,,,,,,,61,,,61,61,61,61,61,61',
'61,61,,61,61,61,,61,61,,61,61,61,,,,,,,,,,,,,,,,,,,,61,,,61,,,61,61',
',,61,,,,,,61,,,,,,,,61,,,,,61,61,61,61,61,61,,,,61,61,61,,,,,,61,,,61',
'61,61,,,61,61,62,62,62,,62,,,,62,62,,,,62,,62,62,62,62,62,62,62,,,,',
',62,62,62,62,62,62,62,,,62,,,,,,,62,,,62,62,62,62,62,62,62,62,62,62',
'62,62,,62,62,,62,62,62,,,,,,,,,,,,,,,,,,,,62,,,62,,,62,62,,,62,,62,',
',,62,,,,,,,,62,,,,,62,62,62,62,62,62,,,,62,62,,,,,,,62,,62,62,62,62',
',,62,62,63,63,63,,63,,,,63,63,,,,63,,63,63,63,63,63,63,63,,,,,,63,63',
'63,63,63,63,63,,,63,,,,,,,63,,,63,63,63,63,63,63,63,63,63,63,63,63,',
'63,63,,63,63,63,,,,,,,,,,,,,,,,,,,,63,,,63,,,63,63,,,63,,,,,,63,,,,',
',,,63,,,,,63,63,63,63,63,63,,,,63,63,,,,,,,63,,63,63,63,63,,,63,63,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,66,66,66,,66,,,,66',
'66,,,,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,',
'66,,,66,66,66,66,66,66,66,66,,66,66,66,,66,66,,66,66,66,,,,,,,,,,,,',
',,,,,,,66,,,66,,,66,66,,,66,,,,,,66,,,,,,,,66,,,,,66,66,66,66,66,66',
',,,66,66,,,,,,,66,,,66,66,66,,,66,66,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,70,70,70,,70,,,,70,70,,,,70,,70,70,70,70,70,70',
'70,,,,,,70,70,70,70,70,70,70,,,70,,,,,,,70,,,70,70,70,70,70,70,70,70',
',70,70,70,,70,70,,70,70,70,,,,,,,,,,,,,,,,,,,,70,,,70,,,70,70,,,70,',
',,,,70,,,,,,,,70,,,,,70,70,70,70,70,70,,,,70,70,70,,,,,70,70,,,70,70',
'70,,,70,70,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,767,767',
'767,,767,,,,767,767,,,,767,,767,767,767,767,767,767,767,,,,,,767,767',
'767,767,767,767,767,,,767,,,,,,,767,,,767,767,767,767,767,767,767,767',
',767,767,767,,767,767,,767,767,767,,,,,,,,,,,,,,,,,,,,767,,,767,,,767',
'767,,,767,,,,,,767,,,,,,,,767,,,,,767,767,767,767,767,767,,,,767,767',
',,,,,,767,,,767,767,767,,,767,767,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,679,679,679,,679,,,,679,679,,,,679,,679,679,679,679',
'679,679,679,,,,,,679,679,679,679,679,679,679,,,679,,,,,,,679,,,679,679',
'679,679,679,679,679,679,,679,679,679,,679,679,,,,679,,,,,,,,,,,,,,,',
',,,,679,,,679,,,679,679,,,679,,,,,,,,,,,,,,,,,,,679,679,679,679,679',
'679,,,,679,679,,,,,,,679,,,679,679,679,,,679,679,459,459,459,,459,,',
',459,459,,,,459,,459,459,459,459,459,459,459,,,,,,459,459,459,459,459',
'459,459,,,459,,,,,,,459,,,459,459,459,459,459,459,459,459,,459,459,459',
',459,459,,459,459,459,,,,,,,,,,,,,,,,,,,,459,,,459,,,459,459,,,459,',
',,,,459,,,,,,,,459,,,,,459,459,459,459,459,459,,,,459,459,,,,,,,459',
',,459,459,459,,,459,459,650,650,650,,650,,,,650,650,,,,650,,650,650',
'650,650,650,650,650,,,,,,650,650,650,650,650,650,650,,,650,,,,,,,650',
',,650,650,650,650,650,650,650,650,,650,650,650,,650,650,,650,650,650',
',,,,,,,,,,,,,,,,,,,650,,,650,,,650,650,,,650,,,,,,650,,,,,,,,650,,,',
',650,650,650,650,650,650,,,,650,650,,,,,,,650,,,650,650,650,,,650,650',
'1005,1005,1005,,1005,,,,1005,1005,,,,1005,,1005,1005,1005,1005,1005',
'1005,1005,,,,,,1005,1005,1005,1005,1005,1005,1005,,,1005,,,,,,,1005',
',,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,,1005',
'1005,,1005,1005,1005,,,,,,,,,,,,,,,,,,,,1005,,,1005,,,1005,1005,,,1005',
',1005,,1005,,1005,,,,,,,,1005,,,,,1005,1005,1005,1005,1005,1005,,,,1005',
'1005,,,,,,,1005,,1005,1005,1005,1005,,,1005,1005,649,649,649,,649,,',
',649,649,,,,649,,649,649,649,649,649,649,649,,,,,,649,649,649,649,649',
'649,649,,,649,,,,,,,649,,,649,649,649,649,649,649,649,649,,649,649,649',
',649,649,,649,649,649,,,,,,,,,,,,,,,,,,,,649,,,649,,,649,649,,,649,',
',,,,649,,,,,,,,649,,,,,649,649,649,649,649,649,,,,649,649,,,,,,,649',
',,649,649,649,,,649,649,859,859,859,,859,,,,859,859,,,,859,,859,859',
'859,859,859,859,859,,,,,,859,859,859,859,859,859,859,,,859,,,,,,,859',
',,859,859,859,859,859,859,859,859,,859,859,859,,859,859,,859,859,859',
',,,,,,,,,,,,,,,,,,,859,,,859,,,859,859,,,859,,,,,,859,,,,,,,,859,,,',
',859,859,859,859,859,859,,,,859,859,,,,,,,859,,,859,859,859,,,859,859',
'458,458,458,,458,,,,458,458,,,,458,,458,458,458,458,458,458,458,,,,',
',458,458,458,458,458,458,458,,,458,,,,,,,458,,,458,458,458,458,458,458',
'458,458,,458,458,458,,458,458,,458,458,458,,,,,,,,,,,,,,,,,,,,458,,',
'458,,,458,458,,,458,,,,,,458,,,,,,,,458,,,,,458,458,458,458,458,458',
',,,458,458,,,,,,,458,,,458,458,458,,,458,458,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,114,114,114,114,114,,,,114,114,,,,114,,114,114',
'114,114,114,114,114,,,,,,114,114,114,114,114,114,114,,,114,,,,,,114',
'114,114,114,114,114,114,114,114,114,114,114,,114,114,114,,114,114,,114',
'114,114,,,,,,,,,,,,,,,,,,,,114,,,114,,,114,114,,,114,,114,,,,114,,,',
',,,,114,,,,,114,114,114,114,114,114,,,,114,114,,,,,,114,114,,,114,114',
'114,,,114,114,119,119,119,,119,,,,119,119,,,,119,,119,119,119,119,119',
'119,119,,,,,,119,119,119,119,119,119,119,,,119,,,,,,,119,,,119,119,119',
'119,119,119,119,119,,119,119,119,,119,119,,119,119,119,,,,,,,,,,,,,',
',,,,,,119,,,119,,,119,119,,,119,,,,,,119,,,,,,,,119,,,,,119,119,119',
'119,119,119,,,,119,119,,,,,,,119,,,119,119,119,,,119,119,120,120,120',
',120,,,,120,120,,,,120,,120,120,120,120,120,120,120,,,,,,120,120,120',
'120,120,120,120,,,120,,,,,,,120,,,120,120,120,120,120,120,120,120,,120',
'120,120,,120,120,,120,120,120,,,,,,,,,,,,,,,,,,,,120,,,120,,,120,120',
',,120,,,,,,120,,,,,,,,120,,,,,120,120,120,120,120,120,,,,120,120,,,',
',,,120,,,120,120,120,,,120,120,121,121,121,,121,,,,121,121,,,,121,,121',
'121,121,121,121,121,121,,,,,,121,121,121,121,121,121,121,,,121,,,,,',
',121,,,121,121,121,121,121,121,121,121,,121,121,121,,121,121,,121,121',
'121,,,,,,,,,,,,,,,,,,,,121,,,121,,,121,121,,,121,,,,,,121,,,,,,,,121',
',,,,121,121,121,121,121,121,,,,121,121,,,,,,,121,,,121,121,121,,,121',
'121,122,122,122,,122,,,,122,122,,,,122,,122,122,122,122,122,122,122',
',,,,,122,122,122,122,122,122,122,,,122,,,,,,,122,,,122,122,122,122,122',
'122,122,122,,122,122,122,,122,122,,122,122,122,,,,,,,,,,,,,,,,,,,,122',
',,122,,,122,122,,,122,,,,,,122,,,,,,,,122,,,,,122,122,122,122,122,122',
',,,122,122,,,,,,,122,,,122,122,122,,,122,122,123,123,123,123,123,,,',
'123,123,,,,123,,123,123,123,123,123,123,123,,,,,,123,123,123,123,123',
'123,123,,,123,,,,,,123,123,,123,123,123,123,123,123,123,123,123,,123',
'123,123,,123,123,,123,123,123,,,,,,,,,,,,,,,,,,,,123,,,123,,,123,123',
',,123,,123,,,,123,,,,,,,,123,,,,,123,123,123,123,123,123,,,,123,123',
',,,,,,123,,,123,123,123,,,123,123,646,646,646,,646,,,,646,646,,,,646',
',646,646,646,646,646,646,646,,,,,,646,646,646,646,646,646,646,,,646',
',,,,,,646,,,646,646,646,646,646,646,646,646,,646,646,646,,646,646,,646',
'646,646,,,,,,,,,,,,,,,,,,,,646,,,646,,,646,646,,,646,,,,,,646,,,,,,',
',646,,,,,646,646,646,646,646,646,,,,646,646,,,,,,,646,,,646,646,646',
',,646,646,645,645,645,,645,,,,645,645,,,,645,,645,645,645,645,645,645',
'645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,,645,,,645,645,645,645',
'645,645,645,645,,645,645,645,,645,645,,645,645,645,,,,,,,,,,,,,,,,,',
',,645,,,645,,,645,645,,,645,,,,,,645,,,,,,,,645,,,,,645,645,645,645',
'645,645,,,,645,645,,,,,,,645,,,645,645,645,,,645,645,769,769,769,,769',
',,,769,769,,,,769,,769,769,769,769,769,769,769,,,,,,769,769,769,769',
'769,769,769,,,769,,,,,,,769,,,769,769,769,769,769,769,769,769,,769,769',
'769,,769,769,,769,769,769,,,,,,,,,,,,,,,,,,,,769,,,769,,,769,769,,,769',
',,,,,769,,,,,,,,769,,,,,769,769,769,769,769,769,,,,769,769,,,,,,,769',
',,769,769,769,,,769,769,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,210,210,210,,210,,,,210,210,,,,210,,210,210,210,210,210,210,210,',
',,,,210,210,210,210,210,210,210,,,210,,,,,,,210,,,210,210,210,210,210',
'210,210,210,,210,210,210,,210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210',
',,210,,,210,210,,,210,,210,,,,210,,,,,,,,210,,,,,210,210,210,210,210',
'210,,,,210,210,,,,,,,210,,,210,210,210,,,210,210,211,211,211,,211,,',
',211,211,,,,211,,211,211,211,211,211,211,211,,,,,,211,211,211,211,211',
'211,211,,,211,,,,,,,211,,,211,211,211,211,211,211,211,211,,211,211,211',
',211,211,,211,211,211,,,,,,,,,,,,,,,,,,,,211,,,211,,,211,211,,,211,',
',,,,211,,,,,,,,211,,,,,211,211,211,211,211,211,,,,211,211,,,,,,,211',
',,211,211,211,,,211,211,212,212,212,,212,,,,212,212,,,,212,,212,212',
'212,212,212,212,212,,,,,,212,212,212,212,212,212,212,,,212,,,,,,,212',
',,212,212,212,212,212,212,212,212,212,212,212,212,,212,212,,212,212',
'212,,,,,,,,,,,,,,,,,,,,212,,,212,,,212,212,,,212,,212,,212,,212,,,,',
',,,212,,,,,212,212,212,212,212,212,,,,212,212,,,,,,,212,,212,212,212',
'212,,,212,212,640,640,640,,640,,,,640,640,,,,640,,640,640,640,640,640',
'640,640,,,,,,640,640,640,640,640,640,640,,,640,,,,,,,640,,,640,640,640',
'640,640,640,640,640,,640,640,640,,640,640,,640,640,640,,,,,,,,,,,,,',
',,,,,,640,,,640,,,640,640,,,640,,,,,,640,,,,,,,,640,,,,,640,640,640',
'640,640,640,,,,640,640,,,,,,,640,,,640,640,640,,,640,640,639,639,639',
',639,,,,639,639,,,,639,,639,639,639,639,639,639,639,,,,,,639,639,639',
'639,639,639,639,,,639,,,,,,,639,,,639,639,639,639,639,639,639,639,,639',
'639,639,,639,639,,639,639,639,,,,,,,,,,,,,,,,,,,,639,,,639,,,639,639',
',,639,,,,,,639,,,,,,,,639,,,,,639,639,639,639,639,639,,,,639,639,,,',
',,,639,,,639,639,639,,,639,639,216,216,216,,216,,,,216,216,,,,216,,216',
'216,216,216,216,216,216,,,,,,216,216,216,216,216,216,216,,,216,,,,,',
',216,,,216,216,216,216,216,216,216,216,,216,216,216,,216,216,,216,216',
'216,,,,,,,,,,,,,,,,,,,,216,,,216,,,216,216,,,216,,,,,,216,,,,,,,,216',
',,,,216,216,216,216,216,216,,,,216,216,,,,,,,216,,,216,216,216,,,216',
'216,217,217,217,,217,,,,217,217,,,,217,,217,217,217,217,217,217,217',
',,,,,217,217,217,217,217,217,217,,,217,,,,,,,217,,,217,217,217,217,217',
'217,217,217,,217,217,217,,217,217,,217,217,217,,,,,,,,,,,,,,,,,,,,217',
',,217,,,217,217,,,217,,217,,,,217,,,,,,,,217,,,,,217,217,217,217,217',
'217,,,,217,217,,,,,,,217,,,217,217,217,,,217,217,218,218,218,,218,,',
',218,218,,,,218,,218,218,218,218,218,218,218,,,,,,218,218,218,218,218',
'218,218,,,218,,,,,,,218,,,218,218,218,218,218,218,218,218,,218,218,218',
',218,218,,218,218,218,,,,,,,,,,,,,,,,,,,,218,,,218,,,218,218,,,218,',
',,,,218,,,,,,,,218,,,,,218,218,218,218,218,218,,,,218,218,,,,,,,218',
',,218,218,218,,,218,218,219,219,219,,219,,,,219,219,,,,219,,219,219',
'219,219,219,219,219,,,,,,219,219,219,219,219,219,219,,,219,,,,,,,219',
',,219,219,219,219,219,219,219,219,,219,219,219,,219,219,,219,219,219',
',,,,,,,,,,,,,,,,,,,219,,,219,,,219,219,,,219,,,,,,219,,,,,,,,219,,,',
',219,219,219,219,219,219,,,,219,219,,,,,,,219,,,219,219,219,,,219,219',
'220,220,220,,220,,,,220,220,,,,220,,220,220,220,220,220,220,220,,,,',
',220,220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220',
'220,220,,220,220,220,,220,220,,220,220,220,,,,,,,,,,,,,,,,,,,,220,,',
'220,,,220,220,,,220,,,,,,220,,,,,,,,220,,,,,220,220,220,220,220,220',
',,,220,220,,,,,,,220,,,220,220,220,,,220,220,221,221,221,,221,,,,221',
'221,,,,221,,221,221,221,221,221,221,221,,,,,,221,221,221,221,221,221',
'221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221,,221,221,221,',
'221,221,,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,',
',,,221,,,,,,,,221,,,,,221,221,221,221,221,221,,,,221,221,221,,,,,,221',
',,221,221,221,,,221,221,638,638,638,,638,,,,638,638,,,,638,,638,638',
'638,638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,,,638',
',,638,638,638,638,638,638,638,638,638,638,638,638,,638,638,,638,638',
'638,,,,,,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,,,638,,638,,,,,,,',
'638,,,,,638,638,638,638,638,638,,,,638,638,,,,,,,638,,638,638,638,638',
',,638,638,637,637,637,,637,,,,637,637,,,,637,,637,637,637,637,637,637',
'637,,,,,,637,637,637,637,637,637,637,,,637,,,,,,,637,,,637,637,637,637',
'637,637,637,637,637,637,637,637,,637,637,,637,637,637,,,,,,,,,,,,,,',
',,,,,637,,,637,,,637,637,,,637,,637,,637,,637,,,,,,,,637,,,,,637,637',
'637,637,637,637,,,,637,637,,,,,,,637,,637,637,637,637,,,637,637,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,,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,633,633,633,,633,,,,633,633,,',
',633,,633,633,633,633,633,633,633,,,,,,633,633,633,633,633,633,633,',
',633,,,,,,,633,,,633,633,633,633,633,633,633,633,,633,633,633,,633,633',
',633,633,633,,,,,,,,,,,,,,,,,,,,633,,,633,,,633,633,,,633,,633,,,,633',
',,,,,,,633,,,,,633,633,633,633,633,633,,,,633,633,,,,,,,633,,,633,633',
'633,,,633,633,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,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,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,232',
'232,232,,232,,,,232,232,,,,232,,232,232,232,232,232,232,232,,,,,,232',
'232,232,232,232,232,232,,,232,,,,,,,232,,,232,232,232,232,232,232,232',
'232,,232,232,232,,232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232',
',,232,232,,,232,,,,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,232',
'232,,,,,,,232,,,232,232,232,,,232,232,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,457,457,,,,,,,,,,,,,,,,,,,,457,,,457,,,457,457,,,457,,,,,,457,',
',,,,,,457,,,,,457,457,457,457,457,457,,,,457,457,,,,,,,457,,,457,457',
'457,,,457,457,455,455,455,,455,,,,455,455,,,,455,,455,455,455,455,455',
'455,455,,,,,,455,455,455,455,455,455,455,,,455,,,,,,,455,,,455,455,455',
'455,455,455,455,455,455,455,455,455,,455,455,,455,455,455,,,,,,,,,,',
',,,,,,,,,455,,,455,,,455,455,,,455,,455,,455,,455,,,,,,,,455,,,,,455',
'455,455,455,455,455,,,,455,455,,,,,,,455,,455,455,455,455,,,455,455',
'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,236,236,236,,236,,,,236',
'236,,,,236,,236,236,236,236,236,236,236,,,,,,236,236,236,236,236,236',
'236,,,236,,,,,,,236,,,236,236,236,236,236,236,236,236,,236,236,236,',
'236,236,,236,236,236,,,,,,,,,,,,,,,,,,,,236,,,236,,,236,236,,,236,,',
',,,236,,,,,,,,236,,,,,236,236,236,236,236,236,,,,236,236,,,,,,,236,',
',236,236,236,,,236,236,237,237,237,,237,,,,237,237,,,,237,,237,237,237',
'237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,,,237,,,237',
'237,237,237,237,237,237,237,,237,237,237,,237,237,,237,237,237,,,,,',
',,,,,,,,,,,,,,237,,,237,,,237,237,,,237,,,,,,237,,,,,,,,237,,,,,237',
'237,237,237,237,237,,,,237,237,,,,,,,237,,,237,237,237,,,237,237,238',
'238,238,,238,,,,238,238,,,,238,,238,238,238,238,238,238,238,,,,,,238',
'238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238',
'238,,238,238,238,,238,238,,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238',
',,238,238,,,238,,,,,,238,,,,,,,,238,,,,,238,238,238,238,238,238,,,,238',
'238,,,,,,,238,,,238,238,238,,,238,238,239,239,239,,239,,,,239,239,,',
',239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,',
',239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239,,239,239',
',239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,',
',,,,,,239,,,,,239,239,239,239,239,239,,,,239,239,,,,,,,239,,,239,239',
'239,,,239,239,240,240,240,,240,,,,240,240,,,,240,,240,240,240,240,240',
'240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240',
'240,240,240,240,240,,240,240,240,,240,240,,240,240,240,,,,,,,,,,,,,',
',,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,240,,,,,240,240,240',
'240,240,240,,,,240,240,,,,,,,240,,,240,240,240,,,240,240,241,241,241',
',241,,,,241,241,,,,241,,241,241,241,241,241,241,241,,,,,,241,241,241',
'241,241,241,241,,,241,,,,,,,241,,,241,241,241,241,241,241,241,241,,241',
'241,241,,241,241,,241,241,241,,,,,,,,,,,,,,,,,,,,241,,,241,,,241,241',
',,241,,,,,,241,,,,,,,,241,,,,,241,241,241,241,241,241,,,,241,241,,,',
',,,241,,,241,241,241,,,241,241,242,242,242,,242,,,,242,242,,,,242,,242',
'242,242,242,242,242,242,,,,,,242,242,242,242,242,242,242,,,242,,,,,',
',242,,,242,242,242,242,242,242,242,242,,242,242,242,,242,242,,242,242',
'242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,,,,242,,,,,,,,242',
',,,,242,242,242,242,242,242,,,,242,242,,,,,,,242,,,242,242,242,,,242',
'242,243,243,243,,243,,,,243,243,,,,243,,243,243,243,243,243,243,243',
',,,,,243,243,243,243,243,243,243,,,243,,,,,,,243,,,243,243,243,243,243',
'243,243,243,,243,243,243,,243,243,,243,243,243,,,,,,,,,,,,,,,,,,,,243',
',,243,,,243,243,,,243,,,,,,243,,,,,,,,243,,,,,243,243,243,243,243,243',
',,,243,243,,,,,,,243,,,243,243,243,,,243,243,244,244,244,,244,,,,244',
'244,,,,244,,244,244,244,244,244,244,244,,,,,,244,244,244,244,244,244',
'244,,,244,,,,,,,244,,,244,244,244,244,244,244,244,244,,244,244,244,',
'244,244,,244,244,244,,,,,,,,,,,,,,,,,,,,244,,,244,,,244,244,,,244,,',
',,,244,,,,,,,,244,,,,,244,244,244,244,244,244,,,,244,244,,,,,,,244,',
',244,244,244,,,244,244,245,245,245,,245,,,,245,245,,,,245,,245,245,245',
'245,245,245,245,,,,,,245,245,245,245,245,245,245,,,245,,,,,,,245,,,245',
'245,245,245,245,245,245,245,,245,245,245,,245,245,,245,245,245,,,,,',
',,,,,,,,,,,,,,245,,,245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,,,245',
'245,245,245,245,245,,,,245,245,,,,,,,245,,,245,245,245,,,245,245,246',
'246,246,,246,,,,246,246,,,,246,,246,246,246,246,246,246,246,,,,,,246',
'246,246,246,246,246,246,,,246,,,,,,,246,,,246,246,246,246,246,246,246',
'246,,246,246,246,,246,246,,246,246,246,,,,,,,,,,,,,,,,,,,,246,,,246',
',,246,246,,,246,,,,,,246,,,,,,,,246,,,,,246,246,246,246,246,246,,,,246',
'246,,,,,,,246,,,246,246,246,,,246,246,247,247,247,,247,,,,247,247,,',
',247,,247,247,247,247,247,247,247,,,,,,247,247,247,247,247,247,247,',
',247,,,,,,,247,,,247,247,247,247,247,247,247,247,,247,247,247,,247,247',
',247,247,247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,',
',,,,,,247,,,,,247,247,247,247,247,247,,,,247,247,,,,,,,247,,,247,247',
'247,,,247,247,248,248,248,,248,,,,248,248,,,,248,,248,248,248,248,248',
'248,248,,,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248',
'248,248,248,248,248,,248,248,248,,248,248,,248,248,248,,,,,,,,,,,,,',
',,,,,,248,,,248,,,248,248,,,248,,,,,,248,,,,,,,,248,,,,,248,248,248',
'248,248,248,,,,248,248,,,,,,,248,,,248,248,248,,,248,248,249,249,249',
',249,,,,249,249,,,,249,,249,249,249,249,249,249,249,,,,,,249,249,249',
'249,249,249,249,,,249,,,,,,,249,,,249,249,249,249,249,249,249,249,,249',
'249,249,,249,249,,249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249',
',,249,,,,,,249,,,,,,,,249,,,,,249,249,249,249,249,249,,,,249,249,,,',
',,,249,,,249,249,249,,,249,249,250,250,250,,250,,,,250,250,,,,250,,250',
'250,250,250,250,250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,',
',250,,,250,250,250,250,250,250,250,250,,250,250,250,,250,250,,250,250',
'250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,250',
',,,,250,250,250,250,250,250,,,,250,250,,,,,,,250,,,250,250,250,,,250',
'250,251,251,251,,251,,,,251,251,,,,251,,251,251,251,251,251,251,251',
',,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251',
'251,251,251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,,,,251',
',,251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251,251,251',
',,,251,251,,,,,,,251,,,251,251,251,,,251,251,252,252,252,,252,,,,252',
'252,,,,252,,252,252,252,252,252,252,252,,,,,,252,252,252,252,252,252',
'252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252,,252,252,252,',
'252,252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252,,',
',,,252,,,,,,,,252,,,,,252,252,252,252,252,252,,,,252,252,,,,,,,252,',
',252,252,252,,,252,252,253,253,253,,253,,,,253,253,,,,253,,253,253,253',
'253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,,,253,,,253',
'253,253,253,253,253,253,253,,253,253,253,,253,253,,253,253,253,,,,,',
',,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253',
'253,253,253,253,253,,,,253,253,,,,,,,253,,,253,253,253,,,253,253,254',
'254,254,,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254',
'254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254,254,254',
'254,,254,254,254,,254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254',
',,254,254,,,254,,,,,,254,,,,,,,,254,,,,,254,254,254,254,254,254,,,,254',
'254,,,,,,,254,,,254,254,254,,,254,254,255,255,255,,255,,,,255,255,,',
',255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255,255,255,',
',255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255,,255,255',
',255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255,',
',,,,,,255,,,,,255,255,255,255,255,255,,,,255,255,,,,,,,255,,,255,255',
'255,,,255,255,256,256,256,,256,,,,256,256,,,,256,,256,256,256,256,256',
'256,256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256',
'256,256,256,256,256,,256,256,256,,256,256,,256,256,256,,,,,,,,,,,,,',
',,,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,256,,,,,256,256,256',
'256,256,256,,,,256,256,,,,,,,256,,,256,256,256,,,256,256,257,257,257',
',257,,,,257,257,,,,257,,257,257,257,257,257,257,257,,,,,,257,257,257',
'257,257,257,257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257',
'257,257,,257,257,,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257',
',,257,,,,,,257,,,,,,,,257,,,,,257,257,257,257,257,257,,,,257,257,,,',
',,,257,,,257,257,257,,,257,257,258,258,258,,258,,,,258,258,,,,258,,258',
'258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,',
',258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258,,258,258',
'258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,258',
',,,,258,258,258,258,258,258,,,,258,258,,,,,,,258,,,258,258,258,,,258',
'258,259,259,259,,259,,,,259,259,,,,259,,259,259,259,259,259,259,259',
',,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259',
'259,259,259,,259,259,259,,259,259,,259,259,259,,,,,,,,,,,,,,,,,,,,259',
',,259,,,259,259,,,259,,,,,,259,,,,,,,,259,,,,,259,259,259,259,259,259',
',,,259,259,,,,,,,259,,,259,259,259,,,259,259,260,260,260,,260,,,,260',
'260,,,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260',
'260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,',
'260,260,,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,',
',,,260,,,,,,,,260,,,,,260,260,260,260,260,260,,,,260,260,,,,,,,260,',
',260,260,260,,,260,260,604,604,604,,604,,,,604,604,,,,604,,604,604,604',
'604,604,604,604,,,,,,604,604,604,604,604,604,604,,,604,,,,,,,604,,,604',
'604,604,604,604,604,604,604,,604,604,604,,604,604,,604,604,604,,,,,',
',,,,,,,,,,,,,,604,,,604,,,604,604,,,604,,,,,,604,,,,,,,,604,,,,,604',
'604,604,604,604,604,,,,604,604,,,,,,,604,,,604,604,604,,,604,604,600',
'600,600,,600,,,,600,600,,,,600,,600,600,600,600,600,600,600,,,,,,600',
'600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600,600,600,600',
'600,,600,600,600,,600,600,,600,600,600,,,,,,,,,,,,,,,,,,,,600,,,600',
',,600,600,,,600,,,,,,600,,,,,,,,600,,,,,600,600,600,600,600,600,,,,600',
'600,,,,,,,600,,,600,600,600,,,600,600,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,267,267,,,267,267,690,690,690,,690,,,,690,690,,,,690,,690,690',
'690,690,690,690,690,,,,,,690,690,690,690,690,690,690,,,690,,,,,,,690',
',,690,690,690,690,690,690,690,690,,690,690,690,,690,690,,,,690,,,,,',
',,,,,,,,,,,,,,690,,,690,,,690,690,,,690,,,,,,,,,,,,,,,,,,,690,690,690',
'690,690,690,,,,690,690,,,,,,,690,,,690,690,690,,,690,690,273,273,273',
',273,,,,273,273,,,,273,,273,273,273,273,273,273,273,,,,,,273,273,273',
'273,273,273,273,,,273,,,,,,,273,,,273,273,273,273,273,273,273,273,273',
'273,273,273,,273,273,,273,273,273,,,,,,,,,,,,,,,,,,,,273,,,273,,,273',
'273,,,273,,273,,273,,273,,,,,,,,273,,,,,273,273,273,273,273,273,,,,273',
'273,,,,,,,273,,273,273,273,273,,,273,273,276,276,276,,276,,,,276,276',
',,,276,,276,276,276,276,276,276,276,,,,,,276,276,276,276,276,276,276',
',,276,,,,,,,276,,,276,276,276,276,276,276,276,276,276,276,276,276,,276',
'276,,276,276,276,,,,,,,,,,,,,,,,,,,,276,,,276,,,276,276,,,276,,276,',
'276,,276,,,,,,,,276,,,,,276,276,276,276,276,276,,,,276,276,276,,,,,',
'276,,276,276,276,276,,,276,276,500,500,500,,500,,,,500,500,,,,500,,500',
'500,500,500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,',
',500,,,500,500,500,500,500,500,500,500,500,500,500,500,,500,500,,500',
'500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,500,,500,,500',
',,,,,,,500,,,,,500,500,500,500,500,500,,,,500,500,,,,,,,500,,500,500',
'500,500,,,500,500,359,359,359,,359,,,,359,359,,,,359,,359,359,359,359',
'359,359,359,,,,,,359,359,359,359,359,359,359,,,359,,,,,,,359,,,359,359',
'359,359,359,359,359,359,,359,359,359,,359,359,,,,359,,,,,,,,,,,,,,,',
',,,,359,,,359,,,359,359,,,359,,,,,,,,,,,,,,,,,,,359,359,359,359,359',
'359,,,,359,359,,,,,,,359,,,359,359,359,,,359,359,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,588,588,,,588,588,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,783,783,783,,783,,,,783,783,,,,783,,783,783,783,783,783,783',
'783,,,,,,783,783,783,783,783,783,783,,,783,,,,,,,783,,,783,783,783,783',
'783,783,783,783,,783,783,783,,783,783,,783,783,783,,,,,,,,,,,,,,,,,',
',,783,,,783,,,783,783,,,783,,,,,,783,,,,,,,,783,,,,,783,783,783,783',
'783,783,,,,783,783,,,,,,,783,,,783,783,783,,,783,783,47,47,47,,47,,',
',47,47,,,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,',
',,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,,47,47,47,,,,,,,,',
',,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,47,,,,,47,47,47,47,47',
'47,,,,47,47,,,,,,,47,,,47,47,47,,,47,47,287,287,287,,287,,,,287,287',
',,,287,,287,287,287,287,287,287,287,,,,,,287,287,287,287,287,287,287',
',,287,,,,,,,287,,,287,287,287,287,287,287,287,287,,287,287,287,,287',
'287,,287,287,287,,,,,,,,,,,,,,,,,,,,287,,,287,,,287,287,,,287,,,,,,287',
',,,,,,,287,,,,,287,287,287,287,287,287,,,,287,287,,,,,,,287,,,287,287',
'287,,,287,287,288,288,288,,288,,,,288,288,,,,288,,288,288,288,288,288',
'288,288,,,,,,288,288,288,288,288,288,288,,,288,,,,,,,288,,,288,288,288',
'288,288,288,288,288,,288,288,288,,288,288,,288,288,288,,,,,,,,,,,,,',
',,,,,,288,,,288,,,288,288,,,288,,,,,,288,,,,,,,,288,,,,,288,288,288',
'288,288,288,,,,288,288,,,,,,,288,,,288,288,288,,,288,288,784,784,784',
',784,,,,784,784,,,,784,,784,784,784,784,784,784,784,,,,,,784,784,784',
'784,784,784,784,,,784,,,,,,,784,,,784,784,784,784,784,784,784,784,,784',
'784,784,,784,784,,784,784,784,,,,,,,,,,,,,,,,,,,,784,,,784,,,784,784',
',,784,,,,,,784,,,,,,,,784,,,,,784,784,784,784,784,784,,,,784,784,,,',
',,,784,,,784,784,784,,,784,784,357,357,357,,357,,,,357,357,,,,357,,357',
'357,357,357,357,357,357,,,,,,357,357,357,357,357,357,357,,,357,,,,,',
',357,,,357,357,357,357,357,357,357,357,,357,357,357,,357,357,,,,357',
',,,,,,,,,,,,,,,,,,,357,,,357,,,357,357,,,357,,,,,,,,,,,,,,,,,,,357,357',
'357,357,357,357,,,,357,357,,,,,,,357,,,357,357,357,,,357,357,294,294',
'294,294,294,,,,294,294,,,,294,,294,294,294,294,294,294,294,,,,,,294',
'294,294,294,294,294,294,,,294,,,,,,294,294,,294,294,294,294,294,294',
'294,294,294,,294,294,294,,294,294,,294,294,294,,,,,,,,,,,,,,,,,,,,294',
',,294,,,294,294,,,294,,294,,,,294,,,,,,,,294,,,,,294,294,294,294,294',
'294,,,,294,294,,,,,,,294,,,294,294,294,,,294,294,905,905,905,,905,,',
',905,905,,,,905,,905,905,905,905,905,905,905,,,,,,905,905,905,905,905',
'905,905,,,905,,,,,,,905,,,905,905,905,905,905,905,905,905,,905,905,905',
',905,905,,,,905,,,,,,,,,,,,,,,,,,,,905,,,905,,,905,905,,,905,,,,,,,',
',,,,,,,,,,,905,905,905,905,905,905,,,,905,905,,,,,,,905,,,905,905,905',
',,905,905,745,745,745,,745,,,,745,745,,,,745,,745,745,745,745,745,745',
'745,,,,,,745,745,745,745,745,745,745,,,745,,,,,,,745,,,745,745,745,745',
'745,745,745,745,745,745,745,745,,745,745,,745,745,745,,,,,,,,,,,,,,',
',,,,,745,,,745,,,745,745,,,745,,745,,745,,745,,,,,,,,745,,,,,745,745',
'745,745,745,745,,,,745,745,,,,,,,745,,745,745,745,745,,,745,745,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,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,',
',,,,785,,,,,,,,785,,,,,785,785,785,785,785,785,,,,785,785,,,,,,,785',
',,785,785,785,,,785,785,695,695,695,,695,,,,695,695,,,,695,,695,695',
'695,695,695,695,695,,,,,,695,695,695,695,695,695,695,,,695,,,,,,,695',
',,695,695,695,695,695,695,695,695,,695,695,695,,695,695,,695,695,695',
',,,,,,,,,,,,,,,,,,,695,,,695,,,695,695,,,695,,695,,,,695,,,,,,,,695',
',,,,695,695,695,695,695,695,,,,695,695,,,,,,,695,,,695,695,695,,,695',
'695,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,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,517,517,517,,517,,,,517,517,,,,517,,517,517,517',
'517,517,517,517,,,,,,517,517,517,517,517,517,517,,,517,,,,,,,517,,,517',
'517,517,517,517,517,517,517,,517,517,517,,517,517,,,,517,,,,,,,,,,,',
',,,,,,,,517,,,517,,,517,517,,,517,,,,,,,,,,,,,,,,,,,517,517,517,517',
'517,517,,,,517,517,,,,,,,517,,,517,517,517,,,517,517,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,788,788,788,,788,,,,788,788,,,,788,,788,788',
'788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788,,,,,,,788',
',,788,788,788,788,788,788,788,788,,788,788,788,,788,788,,788,788,788',
',,,,,,,,,,,,,,,,,,,788,,,788,,,788,788,,,788,,,,,,788,,,,,,,,788,,,',
',788,788,788,788,788,788,,,,788,788,,,,,,,788,,,788,788,788,,,788,788',
'567,567,567,,567,,,,567,567,,,,567,,567,567,567,567,567,567,567,,,,',
',567,567,567,567,567,567,567,,,567,,,,,,,567,,,567,567,567,567,567,567',
'567,567,,567,567,567,,567,567,,567,567,567,,,,,,,,,,,,,,,,,,,,567,,',
'567,,,567,567,,,567,,,,,,567,,,,,,,,567,,,,,567,567,567,567,567,567',
',,,567,567,,,,,,,567,,,567,567,567,,,567,567,800,800,800,,800,,,,800',
'800,,,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800',
'800,,,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,',
'800,800,,,,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,,,',
',,,,,,,,,,800,800,800,800,800,800,,,,800,800,,,,,,,800,,,800,800,800',
',,800,800,713,713,713,,713,,,,713,713,,,,713,,713,713,713,713,713,713',
'713,,,,,,713,713,713,713,713,713,713,,,713,,,,,,,713,,,713,713,713,713',
'713,713,713,713,,713,713,713,,713,713,,713,713,713,,,,,,,,,,,,,,,,,',
',,713,,,713,,,713,713,,,713,,,,,,713,,,,,,,,713,,,,,713,713,713,713',
'713,713,,,,713,713,,,,,,,713,,,713,713,713,,,713,713,739,739,739,,739',
',,,739,739,,,,739,,739,739,739,739,739,739,739,,,,,,739,739,739,739',
'739,739,739,,,739,,,,,,,739,,,739,739,739,739,739,739,739,739,,739,739',
'739,,739,739,,739,739,739,,,,,,,,,,,,,,,,,,,,739,,,739,,,739,739,,,739',
',,,,,739,,,,,,,,739,,,,,739,739,739,739,739,739,,,,739,739,,,,,,,739',
',,739,739,739,,,739,739,345,345,345,,345,,,,345,345,,,,345,,345,345',
'345,345,345,345,345,,,,,,345,345,345,345,345,345,345,,,345,,,,,,,345',
',,345,345,345,345,345,345,345,345,,345,345,345,,345,345,,345,345,345',
',,,,,,,,,,,,,,,,,,,345,,,345,,,345,345,,,345,,,,,,345,,,,,,,,345,,,',
',345,345,345,345,345,345,,,,345,345,,,,,,,345,,,345,345,345,,,345,345',
'733,733,733,,733,,,,733,733,,,,733,,733,733,733,733,733,733,733,,,,',
',733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733,733',
'733,733,,733,733,733,,733,733,,733,733,733,,,,,,,,,,,,,,,,,,,,733,,',
'733,,,733,733,,,733,,733,,,,733,,,,,,,,733,,,,,733,733,733,733,733,733',
',,,733,733,,,,,,,733,,,733,733,733,,,733,733,503,503,503,,503,,,,503',
'503,,,,503,,503,503,503,503,503,503,503,,,,,,503,503,503,503,503,503',
'503,,,503,,,,,,,503,,,503,503,503,503,503,503,503,503,503,503,503,503',
',503,503,,503,503,503,,,,,,,,,,,,,,,,,,,,503,,,503,,,503,503,,,503,',
',,503,,503,,,,,,,,503,,,,,503,503,503,503,503,503,,,,503,503,,,,,,,503',
',503,503,503,503,,,503,503,542,542,542,,542,,,,542,542,,,,542,,542,542',
'542,542,542,542,542,,,,,,542,542,542,542,542,542,542,,,542,,,,,,,542',
',,542,542,542,542,542,542,542,542,542,542,542,542,,542,542,,542,542',
'542,,,,,,,,,,,,,,,,,,,,542,,,542,,,542,542,,,542,,,,,,542,,,,,,,,542',
',,,,542,542,542,542,542,542,,,,542,542,,,,,,,542,,542,542,542,542,,',
'542,542,317,317,317,,317,,,,317,317,,,,317,,317,317,317,317,317,317',
'317,,,,,,317,317,317,317,317,317,317,,,317,,,,,,,317,,,317,317,317,317',
'317,317,317,317,,317,317,317,,317,317,,,,317,,,,,,,,,,,,,,,,,,,,317',
',,317,,,317,317,,,317,,,,,,,,,,,,,,,,,,,317,317,317,317,317,317,,,,317',
'317,,,,,,,317,,,317,317,317,,,317,317,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,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,846,846,846,,846,,,,846,846,,,,846,,846,846,846',
'846,846,846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,,846,,,846',
'846,846,846,846,846,846,846,,846,846,846,,846,846,,846,846,846,,,,,',
',,,,,,,,,,,,,,846,,,846,,,846,846,,,846,,,,,,846,,,,,,,,846,,,,,846',
'846,846,846,846,846,,,,846,846,,,,,,,846,,,846,846,846,,,846,846,930',
'930,930,,930,,,,930,930,,,,930,,930,930,930,930,930,930,930,,,,,,930',
'930,930,930,930,930,930,,,930,,,,,,,930,,,930,930,930,930,930,930,930',
'930,,930,930,930,,930,930,,930,930,930,,,,,,,,,,,,,,,,,,,,930,,,930',
',,930,930,,,930,,930,,,,930,,,,,,,,930,,,,,930,930,930,930,930,930,',
',,930,930,,,,,,,930,,,930,930,930,,,930,930,325,325,325,,325,,,,325',
'325,,,,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325,325',
'325,,,325,,,,,,,325,,,325,325,325,325,325,325,325,325,,325,325,325,',
'325,325,,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,325,,325,325,,,325',
',,,,,325,,,,,,,,325,,,,,325,325,325,325,325,325,,,,325,325,,,,,,,325',
',,325,325,325,,,325,325,417,417,417,,417,,,,417,417,,,,417,,417,417',
'417,417,417,417,417,,,,,,417,417,417,417,417,417,417,,,417,,,,,,,417',
',,417,417,417,417,417,417,417,417,,417,417,417,,417,417,,417,417,417',
',,,,,,,,,,,,,,,,,,,417,,,417,,,417,417,,,417,,,,,,417,,,,,,,,417,,,',
',417,417,417,417,417,417,,,,417,417,,,,,,,417,,,417,417,417,,,417,417',
'533,533,533,,533,,,,533,533,,,,533,,533,533,533,533,533,533,533,,,,',
',533,533,533,533,533,533,533,,,533,,,,,,,533,,,533,533,533,533,533,533',
'533,533,,533,533,533,,533,533,,533,533,533,,,,,,,,,,,,,,,,,,,,533,,',
'533,,,533,533,,,533,,,,,,533,,,,,,,,533,,,,,533,533,533,533,533,533',
',,,533,533,,,,,,,533,,,533,533,533,,,533,533,510,510,510,510,510,,,',
'510,510,,,,510,,510,510,510,510,510,510,510,,,,,,510,510,510,510,510',
'510,510,,,510,,,,,,510,510,,510,510,510,510,510,510,510,510,510,,510',
'510,510,,510,510,,510,510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510,510',
',,510,,510,,,,510,,,,,,,,510,,,,,510,510,510,510,510,510,,,,510,510',
',,,,,510,510,,,510,510,510,,,510,510,529,529,529,,529,,,,529,529,,,',
'529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529,529,529,,',
'529,,,,,,,529,,,529,529,529,529,529,529,529,529,,529,529,529,,529,529',
',529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,,,,,,529,',
',,,,,,529,,,,,529,529,529,529,529,529,,,,529,529,,,,,,,529,,,529,529',
'529,,,529,529,528,528,528,,528,,,,528,528,,,,528,,528,528,528,528,528',
'528,528,,,,,,528,528,528,528,528,528,528,,,528,,,,,,,528,,,528,528,528',
'528,528,528,528,528,,528,528,528,,528,528,,528,528,528,,,,,,,,,,,,,',
',,,,,,528,,,528,,,528,528,,,528,,,,,,528,,,,,,,,528,,,,,528,528,528',
'528,528,528,,,,528,528,,,,,,,528,,,528,528,528,,,528,528,893,893,893',
',893,,,,893,893,,,,893,,893,893,893,893,893,893,893,,,,,,893,893,893',
'893,893,893,893,,,893,,,,,,,893,,,893,893,893,893,893,893,893,893,,893',
'893,893,,893,893,,,,893,,,,,,,,,,,,,,,,,,,,893,,,893,,,893,893,,,893',
',,,,,,,,,,,,,,,,,,893,893,893,893,893,893,,,,893,893,,,,,,,893,,,893',
'893,893,,,893,893,525,525,525,,525,,,,525,525,,,,525,,525,525,525,525',
'525,525,525,,,,,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525',
'525,525,525,525,525,525,,525,525,525,,525,525,,,,525,,,,,,,,,,,,,,,',
',,,,525,,,525,,,525,525,,,525,,,,,,,,,,,,,,,,,,,525,525,525,525,525',
'525,,,,525,525,,,,,,,525,,,525,525,525,,,525,525,505,505,505,,505,,',
',505,505,,,,505,,505,505,505,505,505,505,505,,,,,,505,505,505,505,505',
'505,505,,,505,,,,,,,505,,,505,505,505,505,505,505,505,505,,505,505,505',
',505,505,,505,505,505,,,,,,,,,,,,,,,,,,,,505,,,505,,,505,505,,,505,',
',,,,505,,,,,,,,505,,,,,505,505,505,505,505,505,,,,505,505,,,,,,,505',
',,505,505,505,,,505,505,878,878,878,,878,,,,878,878,,,,878,,878,878',
'878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878',
',,878,878,878,878,878,878,878,878,,878,878,878,,878,878,,878,878,878',
',,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,878,,,',
',878,878,878,878,878,878,,,,878,878,,,,,,,878,,,878,878,878,438,,878',
'878,,,,438,438,438,,,438,438,438,913,438,913,913,913,913,913,,,,438',
'438,438,438,,,913,,,,,438,438,,438,438,438,438,438,,,,,,,,,,913,,,,',
',,,,,,913,913,,438,438,438,438,438,438,438,438,438,438,438,438,438,438',
',,438,438,438,,,438,,,438,,,438,438,,438,913,438,,438,,438,438,438,438',
'438,438,438,,438,438,438,,,,,,,,,,,,,438,438,438,438,439,438,,438,,',
',439,439,439,,,439,439,439,709,439,709,709,709,709,709,,,,439,439,439',
'439,,,709,,,,,439,439,,439,439,439,439,439,,,,,,,,,,709,,,,,,,,,709',
'709,709,709,,439,439,439,439,439,439,439,439,439,439,439,439,439,439',
',,439,439,439,,,439,,,439,,,439,439,,439,709,439,,439,,439,439,439,439',
'439,439,439,,439,439,439,,,,,,,,,,,,,439,439,439,439,59,439,,439,,,',
'59,59,59,,,59,59,59,917,59,917,917,917,917,917,,,,,59,59,59,,,917,,',
',,59,59,,59,59,59,59,59,,,,,,,,,,917,,,,,,,,,,,917,917,,59,59,59,59',
'59,59,59,59,59,59,59,59,59,59,,,59,59,59,,,59,,,59,,,59,59,,59,917,59',
',59,,59,59,59,59,59,59,59,,59,,59,,,,,,,,,,,,,59,59,59,59,,59,,59,74',
'74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74',
',,,74,74,74,74,74,74,74,74,74,74,,,,,,74,74,74,74,74,74,74,74,74,74',
'74,74,,74,,,,,,,74,74,,74,74,74,74,74,74,74,,,74,74,,,,74,74,74,74,',
',,,,74,,,,,,,,74,74,,74,74,74,74,74,74,74,74,74,74,74,,,74,,,,,,,,,',
',,,,,,,,,,74,408,408,408,408,408,408,408,408,408,408,408,408,408,408',
'408,408,408,408,408,408,408,408,408,408,,,,408,408,408,408,408,408,408',
'408,408,408,,,,,,408,408,408,408,408,408,408,408,408,,,408,,,,,,,,,408',
'408,,408,408,408,408,408,408,408,,,408,408,,,,408,408,408,408,,,,,,',
',,,,,,,408,408,,408,408,408,408,408,408,408,408,408,408,408,,,408,408',
',,,,,,,,,408,,,,,,,,,408,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,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,630,630,630,630,630,630,630',
'630,630,630,630,630,630,630,630,630,630,630,630,630,630,630,630,630',
',,,630,630,630,630,630,630,630,630,630,630,,,,,,630,630,630,630,630',
'630,630,630,630,,,630,,,,,,,,,630,630,,630,630,630,630,630,630,630,',
',630,630,,,,630,630,630,630,,,,,,,,,,,,,,630,630,,630,630,630,630,630',
'630,630,630,630,630,630,,,630,630,,,,,,,,,,630,,,,,,,,,630,91,91,91',
'91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,,,,91',
'91,91,91,91,91,91,91,91,91,,,,,,91,91,91,91,91,91,91,91,91,91,91,91',
',91,,,,,,,91,91,,91,91,91,91,91,91,91,,,91,91,,,,91,91,91,91,,,,,,,',
',,,,,,91,91,,91,91,91,91,91,91,91,91,91,91,91,,,91,,,,,,,,,,,,,,,,,',
',,91,755,755,755,755,755,755,755,755,755,755,755,755,755,755,755,755',
'755,755,755,755,755,755,755,755,,,,755,755,755,755,755,755,755,755,755',
'755,,,,,,755,755,755,755,755,755,755,755,755,,,755,,,,,,,,,755,755,',
'755,755,755,755,755,755,755,,,755,755,,,,755,755,755,755,,,,,,,,,,,',
',,755,755,,755,755,755,755,755,755,755,755,755,755,755,31,,755,,,,,31',
'31,31,,,31,31,31,911,31,911,911,911,911,911,755,,,,31,31,,,,911,,,,',
'31,31,,31,31,31,31,31,,,,,,,,,,911,,,,,,,,,911,911,911,911,,31,31,31',
'31,31,31,31,31,31,31,31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31',
'911,31,,31,,31,31,31,31,31,31,31,,31,,31,,,,,,,,,,,,487,31,31,,31,,31',
'487,487,487,,,487,487,487,711,487,711,711,711,711,711,,,,487,487,,,',
',711,,,,,487,487,,487,487,487,487,487,,,1009,,1009,1009,1009,1009,1009',
'711,,,,,,,,,1009,,711,711,,429,,,,,,,429,429,429,,487,429,429,429,,429',
'1009,487,,,,,487,487,429,429,429,1009,1009,,711,,,,,429,429,,429,429',
'429,429,429,,487,487,,,,,,,,,,,,,487,,,1009,,487,,,429,429,429,429,429',
'429,429,429,429,429,429,429,429,429,,,429,429,429,,,429,,429,429,,,429',
'429,,429,,429,,429,,429,429,429,429,429,429,429,,429,429,429,,,,,,,',
',,,,30,429,429,,429,,429,30,30,30,,,30,30,30,753,30,753,753,753,753',
'753,,,,30,30,30,,,,753,,,,,30,30,,30,30,30,30,30,,,,,,,,,,753,,,,,,',
',,753,753,753,753,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30',
'30,,,30,,30,30,,,30,30,,30,753,30,,30,,30,30,30,30,30,30,30,,30,30,30',
',,,,,590,590,,,590,,,30,30,,30,,30,590,590,,590,590,590,590,590,590',
'590,,,590,590,,,,590,590,590,590,,,,,,590,,,,,,,,590,590,,590,590,590',
'590,590,590,590,590,590,590,590,,,590,,,,,214,214,,,214,,,,,,,,,214',
'214,590,214,214,214,214,214,214,214,,,214,214,,,,214,214,214,214,,,',
',,214,,,,,,,,214,214,,214,214,214,214,214,214,214,214,214,214,214,,',
'214,,,,,744,744,,,744,,,,,,,,,744,744,214,744,744,744,744,744,744,744',
',,744,744,,,,744,744,744,744,,,,,,744,,,,,,,,744,744,,744,744,744,744',
'744,744,744,744,744,744,744,,,744,,,,,453,453,,,453,,,,,,,,,453,453',
'744,453,453,453,453,453,453,453,,,453,453,,,,453,453,453,453,,,,,,453',
',,,,,,,453,453,,453,453,453,453,453,453,453,453,453,453,453,,,453,,',
',,454,454,,,454,,,,,,,,,454,454,453,454,454,454,454,454,454,454,,,454',
'454,,,,454,454,454,454,,,,,,454,,,,,,,,454,454,,454,454,454,454,454',
'454,454,454,454,454,454,,,454,,,,,743,743,,,743,,,,,,,,,743,743,454',
'743,743,743,743,743,743,743,,,743,743,,,,743,743,743,743,,,,,,743,,',
',,,,,743,743,,743,743,743,743,743,743,743,743,743,743,743,,,743,,,,',
'520,520,,,520,,,,,,,,,520,520,743,520,520,520,520,520,520,520,,,520',
'520,,,,520,520,520,520,,,,,,520,,,,,,,,520,520,,520,520,520,520,520',
'520,520,520,520,520,520,,,520,,,,,521,521,,,521,,,,,,,,,521,521,520',
'521,521,521,521,521,521,521,,,521,521,,,,521,521,521,521,,,,,,521,,',
',,,,,521,521,,521,521,521,521,521,521,521,521,521,521,521,,883,521,883',
'883,883,883,883,661,,661,661,661,661,661,,,883,,,,,521,,661,886,,886',
'886,886,886,886,,,,,,,,883,,886,,,,,661,,883,883,883,883,,,,661,661',
'661,661,,,,888,886,888,888,888,888,888,,,,886,886,886,886,,,888,,,,',
'661,883,,,,,,,661,,,,,,,,,888,1007,1007,,,1007,,,886,,,888,888,,1007',
'1007,,1007,1007,1007,1007,1007,1007,1007,,,1007,1007,,,,1007,1007,1007',
'1007,,,,,,1007,,,,,888,,,1007,1007,,1007,1007,1007,1007,1007,1007,1007',
'1007,1007,1007,1007,,,1007,,,,,1006,1006,,,1006,,,,,,,,,1006,1006,1007',
'1006,1006,1006,1006,1006,1006,1006,,,1006,1006,,,,1006,1006,1006,1006',
',,,,,1006,,,,,,,,1006,1006,,1006,1006,1006,1006,1006,1006,1006,1006',
'1006,1006,1006,,996,1006,996,996,996,996,996,994,,994,994,994,994,994',
',,996,,,,,1006,,994,,,,,,,,,,,,,,,996,,,,,,,994,,213,213,996,996,213',
',,,,994,994,,,213,213,,213,213,213,213,213,213,213,,,213,213,,,,213',
'213,213,213,,,996,,,213,,,,994,,,,213,213,,213,213,213,213,213,213,213',
'213,213,213,213,,992,213,992,992,992,992,992,1040,,1040,1040,1040,1040',
'1040,,,992,,,,,213,,1040,,,,,,,,,,,,,,,992,,,,,,,1040,,530,530,992,992',
'530,,,,,1040,1040,,,530,530,,530,530,530,530,530,530,530,,,530,530,',
',,530,530,530,530,,,992,,,530,,,,1040,,,,530,530,,530,530,530,530,530',
'530,530,530,530,530,530,,,530,,,,,531,531,,,531,,,,,,,,,531,531,530',
'531,531,531,531,531,531,531,,,531,531,,,,531,531,531,531,,,,,,531,,',
',,,,,531,531,,531,531,531,531,531,531,531,531,531,531,531,,,531,,,,',
'263,263,,,263,,,,,,,,,263,263,531,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,,602,263,602,602,602,602,602,547,,547,547,547,547',
'547,,,602,,,,,263,,547,940,,940,940,940,940,940,,,,,,,,602,602,940,',
',,,547,,602,602,602,602,,,,547,547,547,547,,,,,940,940,915,,915,915',
'915,915,915,940,940,940,940,,,,,,915,,707,602,707,707,707,707,707,,547',
',,,,,,,707,,,,915,,,,,940,,,,,,915,915,,,,,,707,,,589,589,,,589,,707',
'707,707,707,,,,589,589,,589,589,589,589,589,589,589,,915,589,589,,,',
'589,589,589,589,,,,,,589,,,707,,,,,589,589,,589,589,589,589,589,589',
'589,589,589,589,589,,,589,,,,,957,957,,,957,,,,,,,,,957,957,589,957',
'957,957,957,957,957,957,,,957,957,,,,957,957,957,957,,,,,,957,,,,,,',
',957,957,,957,957,957,957,957,957,957,957,957,957,957,,990,957,990,990',
'990,990,990,,,,,,,,,,990,,,,,957,,,,,,,,,,,,,,,,,990,,,,,,,,,990,990',
'990,990,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,990' ]
        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,    33,   925,  1307,   nil,   505,   nil,   nil, 21253,  1474,
   nil, 23729, 23862,  1190,   nil,  1151,  1202,   928,   427,  1127,
   357,   nil,   -78, 19293,  2194,  1240,   nil,   261,   nil,     2,
 24690, 24373, 11873, 11733, 11593,   nil,  3604,  9353,  7953,   nil,
  1092,   163,   119,  1164,   178,  6833,  5993, 17613,  1089,  1348,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23331,
   nil,  5573,  5713,  5853,    34,   nil,  6133,  6273,   nil,   nil,
  6413,  6553,  1131,   nil, 23463,   nil,   nil,   nil,   nil,   nil,
   171,   nil,   nil,   nil,   nil,   nil,   nil,  1075,  1070,  1069,
  1049, 24128,   nil,   nil,   nil,   nil,   nil,   nil,   389,   nil,
   nil,   521,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  8093,   nil,   nil,   nil,   nil,  8233,
  8373,  8513,  8653,  8793,  1066,   nil,   446,   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,  1037,   nil,  3745,
  9493,  9633,  9773, 25573, 24826,   nil, 10193, 10333, 10473, 10613,
 10753, 10893,   nil,   nil,  1279,   131,   124,  1102,   168,  1010,
  1061,   nil, 12013,  3040,  1039, 12433, 12573, 12713, 12853, 12993,
 13133, 13273, 13413, 13553, 13693, 13833, 13973, 14113, 14253, 14393,
 14533, 14673, 14813, 14953, 15093, 15233, 15373, 15513, 15653, 15793,
 15933,   nil,   nil, 25818,   nil,   nil,  1029, 16353,   nil,  1032,
   nil,   nil,   nil, 16633,   nil,   nil, 16773,   nil,  2758,   nil,
   983,   978,   nil, 17333,  1005,  5013,   nil, 17753, 17893,   nil,
   nil,   445,   nil,  1615, 18313,   947,  2617,   954,   988,   949,
 19153,  2194,   787,  1251,  1210,  1018,   969,   nil,   974,   933,
   -19,   nil,   nil,   nil,   947,   180,   896, 20973,   nil,   305,
   949,  1207,   nil,   945,   nil, 21673,  4309,   698,   nil,   894,
   nil,   149,   426,   872,   853,   nil,   484,   877,   nil,   nil,
   617,   608,    44,   -11,  5433, 20413,   293,   948,   831,    -1,
    42,   715,   906,    26,   929,   nil,   nil, 18173,   nil, 17053,
    99,   368,   355,   -21,   336,   238,   321,   441,   105,   nil,
   453,   nil,   nil,   nil,   nil,   nil,   385,   nil,   389,   nil,
   252,   nil,   829,   321,   nil,   828,   289,   nil,   815,   -26,
   nil,   809,   -58,   nil,   418,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  4732, 23596,   nil,
   nil,   nil,   nil,   810,   nil,   nil,   793, 21813,   788,   nil,
   nil,  1066,   789,   nil,   nil,   783,   781,   437,   360, 24565,
   nil,   nil,   nil,     0,   653,   817,   nil,   nil, 23071, 23201,
   nil,  1207,   nil,   763,   nil,   nil,   784,   nil,   nil,   nil,
   nil,    10,   nil, 24962, 25030, 12293,   102, 12153,  7813,  7113,
  4027,  3886,   576,   536,   830,   829,   799,   780,  5433,  5293,
   598,  3322,  3745,  4168,  4309,  4450,  4591,  5013,  4732,  5153,
  4873,   479,   469,  3463,  3604,  1489,   152, 24498,   nil,   nil,
   nil,   nil,   nil,   nil,   -49,   105,   718,   704,   nil,   nil,
 16913,   nil,   nil, 20693,   nil, 22793,   nil,   nil,   nil,   nil,
 22093,  1489,   697,   683,   nil,   nil,   682, 19433,   684, 18733,
 25166, 25234,   465,   708,   nil, 22653,   668,   nil, 22373, 22233,
 25682, 25750,  3040, 21953,   784,   772,   649,   nil,   nil, 21113,
   nil,   nil, 20833,   nil,   nil,   nil,    30, 25887,   nil,   576,
   562,   nil,   534,   522,   517,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   478,   nil,   -36,   nil,   nil, 19853,   nil,   nil,
   nil,   493,   nil,   nil,   nil,   491,   nil,   nil,   476,  1771,
   513,   nil,   784,   155,    60,   485,   472,   nil, 17193, 26003,
 24758,     1,   nil,   397,   297,   221,   nil,  1110,   nil,     9,
 16213,   nil, 25880,   nil, 16073,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   250,   nil,   nil,   187,
   nil,   nil,   nil,   349,   nil,   nil,   293,   nil,   295,   nil,
 23995,   nil,   275, 11453, 11313,   436,   300, 11173, 11033, 10053,
  9913,   279,   nil,   nil,   nil,  9073,  8933,   260,   nil,  7533,
  7253,   nil,   101,   -55,   257,   125,   227,   925,   210,   nil,
   nil, 25303,   nil,   nil,   287,   -14,   -46,   nil,   nil,   nil,
   nil,   173,   nil,   201,  5153,   nil,   nil,   616,  -105,  6973,
   130,   nil,   123,    30,   134,   153,   529,  1066,   147,    94,
 16493,  2335,   154,    59,   146, 19013,   nil,   nil,   557,   nil,
  2053,  1912,    22,   179,   nil,   nil,   370, 25962,   nil, 23165,
   nil, 24462,   nil, 20133,   nil,   657,   nil,   -68,   250,   -75,
   nil,   nil,   nil,   nil,   663,   nil,    31,   nil,   nil,   nil,
   nil,    26,   nil, 20553,  1035,    28,    78,    88,    86, 20273,
   nil,   856,   nil, 25098, 24894, 18593,   nil,   nil,   nil,   324,
   651,  4027,  4168, 24654,   455, 24261,    53,   767,  4873,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   218,  6693,  2476,  9213,
   nil,   249,   nil,  2053,   nil,  1348,   nil,   nil,  1630,   nil,
  2617,   nil,  2899, 17473, 18033, 18873, 19573,   -43, 19713,   422,
   424,   nil,   438,   440,   448,   nil,   478,   476,   480,   474,
 19993,   nil,   nil,  1630,   nil,   nil,   nil,  1489,  1348,   nil,
   nil,   556,   342,   nil,   nil,   692,   nil,  1066,   580,   625,
   nil,   nil,   nil,   606,   739,   623,   621,   nil,   nil,   nil,
   624,   634,   nil,   638,   639,   nil,   640,   nil,   nil,   645,
  3167,   649,  3197,   nil,   774,   nil, 21393,   783,  4450,  4591,
   nil,    43,    25,    56,   265,   925,   nil,   714,  3463,  7673,
   nil,   511,   862,   865,   749,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   766,   755,   nil,  1771,  5293, 22933,  1912,
   351,   nil,   nil, 25296,   nil,   nil, 25320,   nil, 25357,   nil,
   nil,   809,  1193, 22513,  1243,   878,   928,  1207,   826,   940,
   nil,  2476,   nil,   nil,    16, 18453,   nil,   nil,   nil,   nil,
   nil, 24337,   nil, 23035,   nil, 25944,   nil, 23295,   nil,   nil,
   nil,   nil,   384,   719,   852,   nil,    18,   nil,   979,   998,
 21533,  3886,   nil,   nil,  1011,   507,   nil,   nil,   nil,   nil,
 25904,   nil,   909,   nil,   nil,   919,   922,   924,   927,   nil,
   929,   nil,   162,   nil,   nil,   nil,   961, 26071,   nil,   nil,
   961,   nil,   nil,   nil,  2335,  1069,   784,   820,  1037,   997,
   nil,   965,   973,   974,   976,   977,   688,   979,  3204,  2758,
   nil,   nil,   nil,     6,  2899,   nil,   nil,  3181,  3322,   nil,
 26133,   nil, 25635,   nil, 25533,   nil, 25526,   nil,   nil,   nil,
  1334,  1099,  1104,   nil,  1190,  7393, 25464, 25396,  1138, 24493,
   nil,   nil,   nil,   nil,  3257,  1091,   685,   nil,   nil,   nil,
  1222,  1224,  1225,  1106,  1114,  1120,  1124,   nil,   nil,  1137,
    19,    -7,    -9,  1102,  1168,  1169,   nil,   nil,   nil,   nil,
 25642,   nil,   nil,   nil,   nil,    -8,   nil,  1190,   nil ]

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

clist = [
'6,220,279,279,279,262,586,298,369,338,17,694,274,535,213,445,17,135',
'135,130,130,4,280,280,280,396,299,325,555,502,422,224,125,208,263,548',
'133,133,117,844,224,224,224,635,17,304,304,579,582,419,526,752,331,491',
'429,435,442,114,313,313,330,335,342,343,800,9,346,835,113,224,675,9',
'704,705,224,224,793,672,224,351,672,377,130,379,381,384,387,390,393',
'379,742,496,313,815,266,272,275,320,316,130,538,541,327,117,487,545',
'118,341,341,675,921,341,281,281,281,402,403,404,405,719,794,924,17,295',
'955,847,953,224,224,224,224,17,796,347,727,730,663,616,297,223,619,949',
'332,336,667,668,277,289,290,378,599,375,601,832,357,394,858,600,861',
'987,341,341,341,341,359,751,831,602,833,755,940,739,415,825,502,849',
'345,9,795,356,413,207,279,900,848,797,406,344,536,326,370,952,408,746',
'546,430,699,340,124,354,418,486,977,803,298,675,494,418,807,495,423',
'808,400,1017,672,672,733,17,224,224,224,453,439,819,224,224,224,224',
'224,224,904,984,955,376,1027,555,339,279,856,380,383,17,702,279,731',
'949,279,666,921,334,680,493,386,389,392,1015,868,280,689,448,449,450',
'451,757,758,395,280,298,891,835,839,423,298,656,859,224,373,787,501',
'501,897,224,830,800,224,665,800,2,523,800,555,800,827,1035,429,435,274',
'943,945,333,630,520,17,812,17,604,527,1,304,17,,,881,882,,,806,,530',
',,313,,,117,304,414,420,,832,,1036,440,444,17,,,682,313,,583,584,946',
'510,,947,,281,589,910,,,224,224,509,852,281,511,,,516,685,606,832,,597',
'613,597,524,617,971,685,617,,,,,603,313,117,313,492,1018,295,,341,341',
',295,988,497,,,800,,800,,800,512,800,,636,,518,932,6,734,,,585,,643',
'811,,135,17,130,648,,809,,,,501,501,279,628,642,776,629,685,,,133,781',
'430,,,862,863,,555,832,800,675,,,445,864,1023,,,,423,672,,,,,,,,439',
'224,658,989,,822,,643,9,,,,,,,,933,,,1028,,,659,642,,,,279,,,659,659',
'641,,,,,,647,,430,19,,,527,,,19,,,430,,527,,,423,17,809,,,,,,304,,224',
',439,,,,304,820,,,19,313,439,,224,,,,934,313,,,,724,,664,726,,,931,',
'279,,,,,857,,,,,,,,430,355,677,693,,,,,,671,,,,,685,423,17,,,17,,,,',
',224,,439,,,,760,,,760,,,224,964,805,,224,,,19,728,728,,698,,,,,19,',
',,555,,,979,747,,,636,135,,130,,798,750,1019,328,804,756,,224,224,,1045',
'765,,224,224,133,,224,,,,636,,,659,,,643,527,501,648,823,824,,1021,1022',
',,,813,,798,,642,,418,,304,,866,,,816,821,,708,710,712,304,,313,,,791',
',,,,17,17,19,313,,636,,279,,771,443,,,,816,851,816,,430,,,873,,,,,19',
'853,,,,,,,,423,,828,,224,828,,,439,,224,,772,774,,,17,17,777,779,130',
',444,17,,,501,,,,,896,,798,224,898,899,341,,860,,,,,865,903,,884,884',
'884,,,19,,19,,,,,19,452,,,,,894,,,17,,902,,17,17,906,,928,929,313,,1029',
',17,,19,18,,,,,,18,,636,,,29,,792,926,,,29,,685,,,,,,,224,935,17,17',
'498,,29,,18,306,306,,17,224,960,29,29,29,963,29,,,,,,513,,,,,,875,728',
'341,,834,,836,,,936,,,353,29,,341,956,983,29,29,17,,29,19,17,,,,967',
'313,,,,,,,,828,,,791,313,,791,,791,999,,,,1004,,,,17,18,,,884,884,884',
'884,,884,18,1016,29,,,,1020,29,29,29,29,29,,,,1006,439,,,986,,,,17,912',
'914,279,916,918,,919,,816,,,,,,17,430,,,41,17,,,17,17,41,,790,,,,423',
',,,,636,,,19,,224,816,439,,337,,,,884,884,884,884,41,302,302,,,,,791',
'651,791,18,791,,791,,,826,,,,884,29,29,29,29,,,,29,29,29,29,29,29,18',
'349,,,371,,,948,,950,,29,,,,,,,,669,670,19,,791,19,,,,,,,,972,,973,678',
'974,16,,,,681,,16,41,29,,,,,,29,,41,29,1010,1011,1012,1013,697,,18,',
'18,,,,306,18,,,16,29,,29,,,,,29,,,,,306,,,,,,,443,,18,,,,,,,,,,,29,416',
',,,,,1024,447,1025,,1026,,,1046,,,,29,29,598,,598,,,,1034,,,,,,,,,41',
',,19,19,,,,,,16,,,885,887,889,,,,16,942,,1047,790,41,,790,,790,,,,,',
',18,,,,504,,506,,507,508,,29,,,,,,,,19,19,,,,,,19,,,,,,,,,,,,,,,,814',
',,,,,,,41,,41,,,,302,41,,29,,,,,,,,,843,,16,19,,302,,19,19,,,,,,41,',
',19,,,,,,,,,16,790,,790,,790,,790,,18,,867,,,,,306,,,371,29,371,19,19',
'306,,,,,29,,,19,,,,,991,993,995,997,,998,29,632,,,,,,,790,,,,,,,,,,16',
',16,,,,,16,41,,19,,,,19,,,18,970,909,18,,,,,,,,29,,,29,16,920,,,,29',
',,,,,,19,,,,,29,,,,29,1041,1042,1043,1044,939,,,,,,,,673,,,337,,676',
',,,,,19,1048,,,,,,,,,,29,29,,,19,,29,29,42,19,29,,19,19,42,,,673,,,337',
',,41,,16,,,,306,302,,,,,,,,302,,306,,42,303,303,720,,,,,18,18,,,,,,',
',,,29,29,,,,,,,,,,,,,,,350,,,372,,,,,,,,,,,,41,,,41,,,,,29,18,18,,,',
'29,872,18,,,766,29,29,,673,337,,,29,42,,,,,,,,16,42,29,,,,,,,,,,,,,',
',,,,,,598,,810,18,,,,18,18,,,,,,29,,,18,29,29,,,,818,,,,,29,,,,,,,,',
',,,,838,302,,,,,16,18,18,16,,,302,,,,29,18,29,29,447,,41,41,42,,,,29',
'29,,,,,,,,,,,,,,562,,,,,42,,,,598,,874,,18,,,,18,,,,969,,,29,,,,29,',
'41,41,,,,,,41,,,,,,,,,,18,,,,,,,,,,,29,,,,,,,,42,,42,,,,303,42,,,,,',
'371,18,,41,,16,16,41,41,,303,,29,,,,18,41,,42,,18,,,18,18,,29,,,,,29',
',,29,29,,,,,,337,,,,,,41,41,372,,372,29,,,16,16,41,,,,,16,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,371,,982,,41,,,42,41,,,,965,,,16,,,,16,16,,,,,,,',
',16,,,,231,,562,,,41,,,,278,278,278,,,,,,,,714,,,322,323,324,,,16,16',
',,,,,,,,16,41,278,278,,,,,,,,,,,,,41,,,,562,41,,,41,41,,,,,,,,,,,,,',
'16,42,,,16,,,,303,,,,,,,,303,,,,,,,,,,,,,,,,,,16,,,,,,799,,,,,,,,,,',
',,,,,,,,,,,,,,,,16,,,42,,,42,,,,,,,,,16,,,,562,16,562,,16,16,,,714,',
',841,,,,,,,,,,,,,,278,421,278,,,,441,446,,,,,,,,,,,,,,562,231,,,460',
'461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477',
'478,479,480,481,482,483,484,485,,,,,,,278,,303,,,,278,,,278,,,,303,',
',278,,278,,278,278,,42,42,,,,,,,,,,,,,,,,,,,,,,,,,,,714,,714,,,,,532',
',,,,,,,,,,,,,,,42,42,,,,,,42,,,,,,,,,,,,,799,,,799,,,,,,,,,,,,,,,,,',
',,,,,,,562,372,,,42,,,,42,42,,975,714,,,,,,42,,,,,,,,,,278,562,,,,,',
',,,,,,,,,,,,,,42,42,,,,,,,,,42,,,,,,714,278,714,441,657,421,,,,,,,,',
'799,,,,,,,,,,,,,,,372,,,,42,,,,42,714,,,966,,,,,278,,,278,,278,,,,,',
',,,,,,,,278,,42,,,,,,,691,692,,,,,,,,,,278,,,278,,,,,,,,,,,,42,,,,,',
',,,,,,,278,,42,,,,,42,,,42,42,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,278,768,,,278,278,773,775,,,,,778,780,,,657,782,',
',,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,278',
',,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,,,278,,876',
',,,,,,,,,,,,,773,775,780,778,,879,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,876,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278' ]
        racc_goto_table = arr = ::Array.new(2898, 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,34,36,36,36,153,95,12,60,89,24,13,74,10,27,20,24,65,65,61,61,2,71',
'71,71,60,53,34,183,76,25,24,17,17,39,152,64,64,98,93,24,24,24,26,24',
'24,24,92,92,30,55,99,71,42,40,40,30,8,68,68,6,6,19,19,189,9,19,193,5',
'24,198,9,137,137,24,24,142,77,24,24,77,6,61,6,6,6,6,6,6,6,58,25,68,14',
'41,41,41,67,54,61,72,72,32,98,40,72,7,32,32,198,130,32,73,73,73,19,19',
'19,19,132,143,133,24,49,148,14,147,24,24,24,24,24,145,5,94,94,43,173',
'50,22,173,194,73,73,43,43,48,48,48,170,59,168,59,188,109,170,110,111',
'112,113,32,32,32,32,114,115,143,116,143,117,118,107,31,145,76,106,105',
'9,134,21,12,18,36,15,104,140,9,103,102,101,100,146,33,97,149,74,150',
'151,11,96,71,154,133,155,12,198,158,71,159,160,6,161,7,162,77,77,163',
'24,24,24,24,27,61,164,24,24,24,24,24,24,165,108,148,169,147,183,91,36',
'58,171,172,24,152,36,95,194,36,45,130,88,55,74,175,176,177,133,178,71',
'55,32,32,32,32,179,180,181,71,12,145,193,132,6,12,25,182,24,87,26,6',
'6,46,24,186,189,24,75,189,3,34,189,183,189,190,133,40,40,74,191,142',
'70,66,27,24,26,24,197,53,1,24,24,,,137,137,,,43,,27,,,68,,,98,24,22',
'22,,188,,93,22,22,24,,,25,68,,19,19,143,8,,143,,73,27,137,,,24,24,5',
'26,73,9,,,54,40,174,188,,24,174,24,67,174,143,40,174,,,,,39,68,98,68',
'48,14,49,,32,32,,49,99,48,,,189,,189,,189,50,189,,34,,50,94,6,25,,,5',
',74,55,,65,24,61,74,,76,,,,6,6,36,2,6,42,17,40,,,64,42,74,,,10,10,,183',
'188,189,198,,,20,152,143,,,,6,77,,,,,,,,61,24,34,137,,72,,74,9,,,,,',
',,26,,,13,,,6,6,,,,36,,,6,6,41,,,,,,41,,74,29,,,53,,,29,,,74,,53,,,6',
'24,76,,,,,,24,,24,,61,,,,24,30,,,29,68,61,,24,,,,10,68,,,,12,,41,12',
',,92,,36,,,,,25,,,,,,,,74,29,9,32,,,,,,73,,,,,40,6,24,,,24,,,,,,24,',
'61,,,,174,,,174,,,24,92,89,,24,,,29,98,98,,73,,,,,29,,,,183,,,92,98',
',,34,65,,61,,34,32,95,51,153,32,,24,24,,26,17,,24,24,64,,24,,,,34,,',
'6,,,74,53,6,74,12,12,,10,10,,,,53,,34,,6,,71,,24,,60,,,6,6,,185,185',
'185,24,,68,,,138,,,,,24,24,29,68,,34,,36,,73,29,,,,6,71,6,,74,,,12,',
',,,29,19,,,,,,,,6,,138,,24,138,,,61,,24,,22,22,,,24,24,22,22,61,,22',
'24,,,6,,,,,12,,34,24,12,12,32,,98,,,,,98,12,,6,6,6,,,29,,29,,,,,29,51',
',,,,24,,,24,,6,,24,24,6,,12,12,68,,25,,24,,29,28,,,,,,28,,34,,,44,,141',
'19,,,44,,40,,,,,,,24,19,24,24,51,,44,,28,28,28,,24,24,12,44,44,44,12',
'44,,,,,,51,,,,,,22,98,32,,141,,141,,,98,,,28,44,,32,24,12,44,44,24,',
'44,29,24,,,,24,68,,,,,,,,138,,,138,68,,138,,138,34,,,,12,,,,24,28,,',
'6,6,6,6,,6,28,12,44,,,,12,44,44,44,44,44,,,,27,61,,,98,,,,24,185,185',
'36,185,185,,185,,6,,,,,,24,74,,,56,24,,,24,24,56,,136,,,,6,,,,,34,,',
'29,,24,6,61,,69,,,,6,6,6,6,56,56,56,,,,,138,51,138,28,138,,138,,,136',
',,,6,44,44,44,44,,,,44,44,44,44,44,44,28,56,,,56,,,141,,141,,44,,,,',
',,,51,51,29,,138,29,,,,,,,,141,,141,51,141,23,,,,51,,23,56,44,,,,,,44',
',56,44,185,185,185,185,51,,28,,28,,,,28,28,,,23,44,,44,,,,,44,,,,,28',
',,,,,,29,,28,,,,,,,,,,,44,69,,,,,,141,69,141,,141,,,185,,,,44,44,28',
',28,,,,141,,,,,,,,,56,,,29,29,,,,,,23,,,139,139,139,,,,23,136,,141,136',
'56,,136,,136,,,,,,,28,,,,69,,69,,69,69,,44,,,,,,,,29,29,,,,,,29,,,,',
',,,,,,,,,,,51,,,,,,,,56,,56,,,,56,56,,44,,,,,,,,,51,,23,29,,56,,29,29',
',,,,,56,,,29,,,,,,,,,23,136,,136,,136,,136,,28,,51,,,,,28,,,56,44,56',
'29,29,28,,,,,44,,,29,,,,,139,139,139,139,,139,44,69,,,,,,,136,,,,,,',
',,,23,,23,,,,,23,56,,29,,,,29,,,28,29,51,28,,,,,,,,44,,,44,23,51,,,',
'44,,,,,,,29,,,,,44,,,,44,139,139,139,139,51,,,,,,,,69,,,69,,69,,,,,',
'29,139,,,,,,,,,,44,44,,,29,,44,44,57,29,44,,29,29,57,,,69,,,69,,,56',
',23,,,,28,56,,,,,,,,56,,28,,57,57,57,69,,,,,28,28,,,,,,,,,,44,44,,,',
',,,,,,,,,,,57,,,57,,,,,,,,,,,,56,,,56,,,,,44,28,28,,,,44,28,28,,,69',
'44,44,,69,69,,,44,57,,,,,,,,23,57,44,,,,,,,,,,,,,,,,,,,,28,,69,28,,',
',28,28,,,,,,44,,,28,44,44,,,,69,,,,,44,,,,,,,,,,,,,69,56,,,,,23,28,28',
'23,,,56,,,,44,28,44,44,69,,56,56,57,,,,44,44,,,,,,,,,,,,,,131,,,,,57',
',,,28,,69,,28,,,,28,,,,28,,,44,,,,44,,56,56,,,,,,56,,,,,,,,,,28,,,,',
',,,,,,44,,,,,,,,57,,57,,,,57,57,,,,,,56,28,,56,,23,23,56,56,,57,,44',
',,,28,56,,57,,28,,,28,28,,44,,,,,44,,,44,44,,,,,,69,,,,,,56,56,57,,57',
'44,,,23,23,56,,,,,23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,56,,69,,56,,,57,56',
',,,56,,,23,,,,23,23,,,,,,,,,23,,,,35,,131,,,56,,,,35,35,35,,,,,,,,131',
',,35,35,35,,,23,23,,,,,,,,,23,56,35,35,,,,,,,,,,,,,56,,,,131,56,,,56',
'56,,,,,,,,,,,,,,23,57,,,23,,,,57,,,,,,,,57,,,,,,,,,,,,,,,,,,23,,,,,',
'131,,,,,,,,,,,,,,,,,,,,,,,,,,,23,,,57,,,57,,,,,,,,,23,,,,131,23,131',
',23,23,,,131,,,131,,,,,,,,,,,,,,35,35,35,,,,35,35,,,,,,,,,,,,,,131,35',
',,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35',
'35,35,35,35,,,,,,,35,,57,,,,35,,,35,,,,57,,,35,,35,,35,35,,57,57,,,',
',,,,,,,,,,,,,,,,,,,,,,,131,,131,,,,,35,,,,,,,,,,,,,,,,57,57,,,,,,57',
',,,,,,,,,,,,131,,,131,,,,,,,,,,,,,,,,,,,,,,,,,131,57,,,57,,,,57,57,',
'131,131,,,,,,57,,,,,,,,,,35,131,,,,,,,,,,,,,,,,,,,,57,57,,,,,,,,,57',
',,,,,131,35,131,35,35,35,,,,,,,,,131,,,,,,,,,,,,,,,57,,,,57,,,,57,131',
',,57,,,,,35,,,35,,35,,,,,,,,,,,,,,35,,57,,,,,,,35,35,,,,,,,,,,35,,,35',
',,,,,,,,,,,57,,,,,,,,,,,,,35,,57,,,,,57,,,57,57,,,,,,,,,,35,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,,,35,35,35,35,,,,,35,35,,',
'35,35,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,',
',,,,35,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,35,',
'35,,,,,,,,,,,,,,35,35,35,35,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35' ]
        racc_goto_check = arr = ::Array.new(2898, 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,   307,    19,   287,   nil,    63,    -2,    98,    52,    63,
  -313,   188,   -29,  -523,  -601,  -632,   nil,    21,   169,    -4,
  -202,   108,   116,  1094,     8,  -182,  -379,    -3,   826,   501,
  -161,   -38,    41,    67,   -21,  1892,   -30,   nil,   nil,     7,
  -159,    65,  -213,  -350,   837,  -243,  -526,   nil,   114,    87,
   102,   582,   nil,   -11,    60,  -267,   989,  1482,  -505,  -207,
   -66,     8,   nil,   nil,    25,     6,  -112,    53,    21,   954,
   237,   -10,  -231,    80,   -18,  -202,  -252,  -423,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   202,   186,   -55,
   nil,   171,  -295,  -685,  -449,  -341,   128,  -406,    33,  -551,
   116,   129,  -139,   119,  -543,   107,  -555,  -421,  -701,    82,
  -590,  -201,  -592,  -777,    91,  -436,  -202,  -434,  -696,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  -730,  1370,  -445,  -721,  -483,   nil,   338,  -477,    42,   419,
  -476,   180,  -585,  -541,   nil,  -529,  -701,  -766,  -768,  -146,
  -350,   132,  -305,   -20,   -60,  -460,   nil,   nil,   -64,  -459,
   -62,  -457,  -770,  -371,  -472,  -589,   nil,   nil,    71,   150,
    64,   153,   153,  -246,   -14,   164,   164,   164,  -501,  -345,
  -345,   174,  -474,  -312,   nil,   143,  -425,   nil,  -554,  -597,
  -411,  -583,   nil,  -642,  -745,   nil,   nil,   -69,  -433 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   292,     7,   348,   293,
   nil,   nil,   534,   nil,   845,   nil,   291,   nil,   nil,   nil,
    14,    15,    21,   230,   321,   nil,   nil,   744,   228,   229,
   nil,   nil,    20,   nil,   329,    24,    25,    26,    27,   nil,
   688,   nil,   nil,   nil,   310,   nil,   nil,    28,   424,    35,
   nil,   nil,    37,    40,    39,   nil,   225,   226,   596,   nil,
   132,   432,   131,   134,    78,    79,   nil,    93,    49,   284,
   nil,   425,   nil,   426,   437,   644,   499,   282,   267,    50,
    51,    52,    53,    54,    55,    56,    57,    58,   nil,   268,
    64,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   580,   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,
   716,   837,   nil,   717,   944,   789,   550,   nil,   551,   nil,
   nil,   552,   nil,   554,   660,   nil,   nil,   nil,   560,   nil,
   nil,   nil,   754,   nil,   nil,   nil,   436,   269,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    77,    80,    82,   nil,
   nil,   nil,   nil,   nil,   611,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   829,   549,   nil,   553,   563,   565,   567,
   568,   801,   571,   572,   802,   575,   578,   nil,   286 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 148, :_reduce_1,
  2, 146, :_reduce_2,
  2, 147, :_reduce_3,
  1, 149, :_reduce_none,
  1, 149, :_reduce_none,
  3, 149, :_reduce_6,
  2, 149, :_reduce_none,
  1, 152, :_reduce_8,
  0, 156, :_reduce_9,
  5, 152, :_reduce_10,
  4, 155, :_reduce_11,
  2, 157, :_reduce_12,
  1, 161, :_reduce_none,
  1, 161, :_reduce_none,
  3, 161, :_reduce_15,
  2, 161, :_reduce_16,
  0, 178, :_reduce_17,
  4, 154, :_reduce_18,
  3, 154, :_reduce_19,
  3, 154, :_reduce_20,
  3, 154, :_reduce_21,
  2, 154, :_reduce_22,
  3, 154, :_reduce_23,
  3, 154, :_reduce_24,
  3, 154, :_reduce_25,
  3, 154, :_reduce_26,
  3, 154, :_reduce_27,
  4, 154, :_reduce_28,
  1, 154, :_reduce_none,
  3, 154, :_reduce_30,
  3, 154, :_reduce_31,
  6, 154, :_reduce_32,
  5, 154, :_reduce_33,
  5, 154, :_reduce_34,
  5, 154, :_reduce_35,
  5, 154, :_reduce_36,
  3, 154, :_reduce_37,
  3, 154, :_reduce_38,
  3, 154, :_reduce_39,
  1, 154, :_reduce_none,
  3, 165, :_reduce_41,
  3, 165, :_reduce_42,
  1, 177, :_reduce_none,
  3, 177, :_reduce_44,
  3, 177, :_reduce_45,
  3, 177, :_reduce_46,
  2, 177, :_reduce_47,
  1, 177, :_reduce_none,
  1, 164, :_reduce_49,
  1, 167, :_reduce_none,
  1, 167, :_reduce_none,
  1, 182, :_reduce_none,
  4, 182, :_reduce_53,
  0, 190, :_reduce_54,
  0, 191, :_reduce_55,
  6, 187, :_reduce_56,
  1, 189, :_reduce_57,
  2, 181, :_reduce_58,
  3, 181, :_reduce_59,
  4, 181, :_reduce_60,
  5, 181, :_reduce_61,
  4, 181, :_reduce_62,
  5, 181, :_reduce_63,
  2, 181, :_reduce_64,
  2, 181, :_reduce_65,
  2, 181, :_reduce_66,
  2, 181, :_reduce_67,
  2, 181, :_reduce_68,
  1, 166, :_reduce_none,
  3, 166, :_reduce_70,
  1, 195, :_reduce_none,
  3, 195, :_reduce_72,
  1, 194, :_reduce_73,
  2, 194, :_reduce_74,
  3, 194, :_reduce_75,
  5, 194, :_reduce_76,
  2, 194, :_reduce_77,
  4, 194, :_reduce_78,
  2, 194, :_reduce_79,
  4, 194, :_reduce_80,
  1, 194, :_reduce_81,
  3, 194, :_reduce_82,
  1, 198, :_reduce_none,
  3, 198, :_reduce_84,
  2, 197, :_reduce_85,
  3, 197, :_reduce_86,
  1, 200, :_reduce_87,
  3, 200, :_reduce_88,
  1, 199, :_reduce_89,
  1, 199, :_reduce_90,
  4, 199, :_reduce_91,
  3, 199, :_reduce_92,
  3, 199, :_reduce_93,
  3, 199, :_reduce_94,
  3, 199, :_reduce_95,
  2, 199, :_reduce_96,
  1, 199, :_reduce_97,
  1, 174, :_reduce_98,
  1, 174, :_reduce_99,
  4, 174, :_reduce_100,
  3, 174, :_reduce_101,
  3, 174, :_reduce_102,
  3, 174, :_reduce_103,
  3, 174, :_reduce_104,
  2, 174, :_reduce_105,
  1, 174, :_reduce_106,
  1, 203, :_reduce_107,
  1, 203, :_reduce_none,
  2, 204, :_reduce_109,
  1, 204, :_reduce_110,
  3, 204, :_reduce_111,
  1, 205, :_reduce_none,
  1, 205, :_reduce_none,
  1, 205, :_reduce_none,
  1, 205, :_reduce_115,
  1, 205, :_reduce_116,
  1, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 162, :_reduce_119,
  1, 162, :_reduce_none,
  1, 163, :_reduce_121,
  0, 211, :_reduce_122,
  4, 163, :_reduce_123,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 206, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  3, 180, :_reduce_195,
  5, 180, :_reduce_196,
  3, 180, :_reduce_197,
  5, 180, :_reduce_198,
  6, 180, :_reduce_199,
  5, 180, :_reduce_200,
  5, 180, :_reduce_201,
  5, 180, :_reduce_202,
  5, 180, :_reduce_203,
  4, 180, :_reduce_204,
  3, 180, :_reduce_205,
  3, 180, :_reduce_206,
  3, 180, :_reduce_207,
  3, 180, :_reduce_208,
  3, 180, :_reduce_209,
  3, 180, :_reduce_210,
  3, 180, :_reduce_211,
  3, 180, :_reduce_212,
  3, 180, :_reduce_213,
  4, 180, :_reduce_214,
  2, 180, :_reduce_215,
  2, 180, :_reduce_216,
  3, 180, :_reduce_217,
  3, 180, :_reduce_218,
  3, 180, :_reduce_219,
  3, 180, :_reduce_220,
  3, 180, :_reduce_221,
  3, 180, :_reduce_222,
  3, 180, :_reduce_223,
  3, 180, :_reduce_224,
  3, 180, :_reduce_225,
  3, 180, :_reduce_226,
  3, 180, :_reduce_227,
  3, 180, :_reduce_228,
  3, 180, :_reduce_229,
  2, 180, :_reduce_230,
  2, 180, :_reduce_231,
  3, 180, :_reduce_232,
  3, 180, :_reduce_233,
  3, 180, :_reduce_234,
  3, 180, :_reduce_235,
  3, 180, :_reduce_236,
  6, 180, :_reduce_237,
  1, 180, :_reduce_none,
  1, 214, :_reduce_239,
  1, 215, :_reduce_none,
  2, 215, :_reduce_241,
  4, 215, :_reduce_242,
  2, 215, :_reduce_243,
  3, 219, :_reduce_244,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 170, :_reduce_247,
  1, 170, :_reduce_248,
  2, 170, :_reduce_249,
  4, 170, :_reduce_250,
  2, 170, :_reduce_251,
  1, 193, :_reduce_252,
  2, 193, :_reduce_253,
  2, 193, :_reduce_254,
  4, 193, :_reduce_255,
  1, 193, :_reduce_256,
  0, 223, :_reduce_257,
  2, 186, :_reduce_258,
  2, 222, :_reduce_259,
  2, 221, :_reduce_260,
  1, 221, :_reduce_none,
  1, 216, :_reduce_262,
  2, 216, :_reduce_263,
  3, 216, :_reduce_264,
  4, 216, :_reduce_265,
  1, 176, :_reduce_266,
  1, 176, :_reduce_267,
  3, 175, :_reduce_268,
  4, 175, :_reduce_269,
  2, 175, :_reduce_270,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_281,
  0, 246, :_reduce_282,
  4, 213, :_reduce_283,
  2, 213, :_reduce_284,
  0, 247, :_reduce_285,
  4, 213, :_reduce_286,
  3, 213, :_reduce_287,
  3, 213, :_reduce_288,
  2, 213, :_reduce_289,
  3, 213, :_reduce_290,
  3, 213, :_reduce_291,
  1, 213, :_reduce_292,
  4, 213, :_reduce_293,
  3, 213, :_reduce_294,
  1, 213, :_reduce_295,
  5, 213, :_reduce_296,
  4, 213, :_reduce_297,
  3, 213, :_reduce_298,
  2, 213, :_reduce_299,
  1, 213, :_reduce_none,
  2, 213, :_reduce_301,
  2, 213, :_reduce_302,
  6, 213, :_reduce_303,
  6, 213, :_reduce_304,
  0, 248, :_reduce_305,
  0, 249, :_reduce_306,
  7, 213, :_reduce_307,
  0, 250, :_reduce_308,
  0, 251, :_reduce_309,
  7, 213, :_reduce_310,
  5, 213, :_reduce_311,
  4, 213, :_reduce_312,
  0, 252, :_reduce_313,
  0, 253, :_reduce_314,
  9, 213, :_reduce_315,
  0, 254, :_reduce_316,
  0, 255, :_reduce_317,
  7, 213, :_reduce_318,
  0, 256, :_reduce_319,
  0, 257, :_reduce_320,
  0, 258, :_reduce_321,
  9, 213, :_reduce_322,
  0, 259, :_reduce_323,
  0, 260, :_reduce_324,
  6, 213, :_reduce_325,
  0, 261, :_reduce_326,
  6, 213, :_reduce_327,
  0, 262, :_reduce_328,
  0, 263, :_reduce_329,
  9, 213, :_reduce_330,
  1, 213, :_reduce_331,
  1, 213, :_reduce_332,
  1, 213, :_reduce_333,
  1, 213, :_reduce_334,
  1, 169, :_reduce_335,
  1, 264, :_reduce_none,
  1, 265, :_reduce_none,
  1, 266, :_reduce_none,
  1, 267, :_reduce_none,
  1, 268, :_reduce_none,
  1, 269, :_reduce_none,
  1, 270, :_reduce_none,
  1, 271, :_reduce_none,
  1, 272, :_reduce_none,
  1, 273, :_reduce_none,
  1, 274, :_reduce_none,
  1, 237, :_reduce_none,
  1, 237, :_reduce_none,
  2, 237, :_reduce_none,
  1, 239, :_reduce_none,
  1, 239, :_reduce_none,
  1, 238, :_reduce_none,
  5, 238, :_reduce_353,
  1, 159, :_reduce_none,
  2, 159, :_reduce_355,
  1, 241, :_reduce_none,
  1, 241, :_reduce_357,
  1, 275, :_reduce_none,
  3, 275, :_reduce_359,
  1, 278, :_reduce_360,
  3, 278, :_reduce_361,
  1, 277, :_reduce_362,
  4, 277, :_reduce_363,
  6, 277, :_reduce_364,
  3, 277, :_reduce_365,
  5, 277, :_reduce_366,
  2, 277, :_reduce_367,
  4, 277, :_reduce_368,
  1, 277, :_reduce_369,
  3, 277, :_reduce_370,
  4, 279, :_reduce_371,
  2, 279, :_reduce_372,
  2, 279, :_reduce_373,
  1, 279, :_reduce_374,
  2, 284, :_reduce_375,
  1, 284, :_reduce_none,
  6, 285, :_reduce_377,
  8, 285, :_reduce_378,
  4, 285, :_reduce_379,
  6, 285, :_reduce_380,
  4, 285, :_reduce_381,
  2, 285, :_reduce_382,
  6, 285, :_reduce_383,
  2, 285, :_reduce_384,
  4, 285, :_reduce_385,
  6, 285, :_reduce_386,
  2, 285, :_reduce_387,
  4, 285, :_reduce_388,
  2, 285, :_reduce_389,
  4, 285, :_reduce_390,
  1, 285, :_reduce_391,
  1, 188, :_reduce_392,
  1, 188, :_reduce_none,
  3, 289, :_reduce_394,
  1, 289, :_reduce_395,
  4, 289, :_reduce_396,
  1, 290, :_reduce_none,
  4, 290, :_reduce_398,
  1, 291, :_reduce_399,
  3, 291, :_reduce_400,
  1, 292, :_reduce_401,
  1, 292, :_reduce_none,
  0, 296, :_reduce_403,
  3, 236, :_reduce_404,
  4, 294, :_reduce_405,
  1, 294, :_reduce_406,
  3, 295, :_reduce_407,
  3, 295, :_reduce_408,
  0, 299, :_reduce_409,
  0, 300, :_reduce_410,
  6, 298, :_reduce_411,
  2, 183, :_reduce_412,
  4, 183, :_reduce_413,
  5, 183, :_reduce_414,
  5, 183, :_reduce_415,
  0, 302, :_reduce_416,
  3, 235, :_reduce_417,
  4, 235, :_reduce_418,
  4, 235, :_reduce_419,
  3, 235, :_reduce_420,
  3, 235, :_reduce_421,
  3, 235, :_reduce_422,
  2, 235, :_reduce_423,
  1, 235, :_reduce_424,
  4, 235, :_reduce_425,
  0, 303, :_reduce_426,
  0, 304, :_reduce_427,
  6, 234, :_reduce_428,
  0, 305, :_reduce_429,
  0, 306, :_reduce_430,
  6, 234, :_reduce_431,
  0, 308, :_reduce_432,
  6, 240, :_reduce_433,
  1, 307, :_reduce_none,
  1, 307, :_reduce_none,
  6, 158, :_reduce_436,
  0, 158, :_reduce_437,
  1, 309, :_reduce_438,
  1, 309, :_reduce_none,
  1, 309, :_reduce_none,
  2, 310, :_reduce_441,
  1, 310, :_reduce_none,
  2, 160, :_reduce_443,
  1, 160, :_reduce_none,
  1, 224, :_reduce_445,
  1, 224, :_reduce_446,
  1, 224, :_reduce_none,
  1, 225, :_reduce_448,
  1, 312, :_reduce_449,
  1, 312, :_reduce_none,
  2, 312, :_reduce_451,
  3, 313, :_reduce_452,
  1, 313, :_reduce_453,
  3, 226, :_reduce_454,
  3, 227, :_reduce_455,
  3, 228, :_reduce_456,
  3, 228, :_reduce_457,
  1, 317, :_reduce_458,
  3, 317, :_reduce_459,
  1, 318, :_reduce_none,
  2, 318, :_reduce_461,
  3, 230, :_reduce_462,
  3, 230, :_reduce_463,
  1, 320, :_reduce_464,
  3, 320, :_reduce_465,
  3, 229, :_reduce_466,
  3, 229, :_reduce_467,
  3, 231, :_reduce_468,
  3, 231, :_reduce_469,
  1, 321, :_reduce_470,
  3, 321, :_reduce_471,
  1, 322, :_reduce_472,
  3, 322, :_reduce_473,
  1, 314, :_reduce_474,
  2, 314, :_reduce_475,
  1, 315, :_reduce_476,
  2, 315, :_reduce_477,
  1, 316, :_reduce_478,
  2, 316, :_reduce_479,
  1, 319, :_reduce_480,
  0, 324, :_reduce_481,
  3, 319, :_reduce_482,
  0, 325, :_reduce_483,
  4, 319, :_reduce_484,
  1, 323, :_reduce_485,
  1, 323, :_reduce_486,
  1, 323, :_reduce_487,
  1, 323, :_reduce_none,
  2, 209, :_reduce_489,
  1, 209, :_reduce_490,
  1, 326, :_reduce_none,
  1, 326, :_reduce_none,
  1, 326, :_reduce_none,
  1, 326, :_reduce_none,
  3, 210, :_reduce_495,
  1, 311, :_reduce_none,
  2, 311, :_reduce_497,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 202, :_reduce_507,
  1, 202, :_reduce_508,
  1, 202, :_reduce_509,
  1, 202, :_reduce_510,
  1, 202, :_reduce_511,
  1, 202, :_reduce_512,
  1, 202, :_reduce_513,
  1, 232, :_reduce_514,
  1, 232, :_reduce_515,
  1, 168, :_reduce_516,
  1, 168, :_reduce_517,
  1, 173, :_reduce_518,
  1, 173, :_reduce_519,
  1, 242, :_reduce_520,
  0, 327, :_reduce_521,
  4, 242, :_reduce_522,
  2, 242, :_reduce_523,
  3, 244, :_reduce_524,
  2, 244, :_reduce_525,
  4, 328, :_reduce_526,
  2, 328, :_reduce_527,
  2, 328, :_reduce_528,
  1, 328, :_reduce_none,
  2, 330, :_reduce_530,
  0, 330, :_reduce_531,
  6, 297, :_reduce_532,
  8, 297, :_reduce_533,
  4, 297, :_reduce_534,
  6, 297, :_reduce_535,
  4, 297, :_reduce_536,
  6, 297, :_reduce_537,
  2, 297, :_reduce_538,
  4, 297, :_reduce_539,
  6, 297, :_reduce_540,
  2, 297, :_reduce_541,
  4, 297, :_reduce_542,
  2, 297, :_reduce_543,
  4, 297, :_reduce_544,
  1, 297, :_reduce_545,
  0, 297, :_reduce_546,
  1, 293, :_reduce_547,
  1, 293, :_reduce_548,
  1, 293, :_reduce_549,
  1, 293, :_reduce_550,
  1, 276, :_reduce_none,
  1, 276, :_reduce_552,
  1, 332, :_reduce_none,
  1, 333, :_reduce_none,
  3, 333, :_reduce_555,
  1, 333, :_reduce_none,
  3, 333, :_reduce_557,
  1, 286, :_reduce_558,
  3, 286, :_reduce_559,
  1, 334, :_reduce_none,
  2, 335, :_reduce_561,
  1, 335, :_reduce_562,
  2, 336, :_reduce_563,
  1, 336, :_reduce_564,
  1, 280, :_reduce_none,
  3, 280, :_reduce_566,
  1, 329, :_reduce_none,
  3, 329, :_reduce_568,
  1, 337, :_reduce_none,
  1, 337, :_reduce_none,
  2, 281, :_reduce_571,
  1, 281, :_reduce_572,
  3, 338, :_reduce_573,
  3, 339, :_reduce_574,
  1, 287, :_reduce_575,
  3, 287, :_reduce_576,
  1, 331, :_reduce_577,
  3, 331, :_reduce_578,
  1, 340, :_reduce_none,
  1, 340, :_reduce_none,
  2, 288, :_reduce_581,
  1, 288, :_reduce_582,
  1, 341, :_reduce_none,
  1, 341, :_reduce_none,
  2, 283, :_reduce_585,
  2, 282, :_reduce_586,
  0, 282, :_reduce_587,
  1, 245, :_reduce_none,
  0, 342, :_reduce_589,
  4, 245, :_reduce_590,
  1, 233, :_reduce_591,
  2, 233, :_reduce_592,
  1, 218, :_reduce_none,
  3, 218, :_reduce_594,
  3, 343, :_reduce_595,
  2, 343, :_reduce_596,
  2, 343, :_reduce_597,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 185, :_reduce_none,
  1, 185, :_reduce_none,
  1, 185, :_reduce_none,
  1, 185, :_reduce_none,
  1, 301, :_reduce_none,
  1, 301, :_reduce_none,
  1, 301, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 172, :_reduce_none,
  0, 150, :_reduce_none,
  1, 150, :_reduce_none,
  0, 179, :_reduce_none,
  1, 179, :_reduce_none,
  2, 196, :_reduce_none,
  2, 171, :_reduce_none,
  0, 217, :_reduce_none,
  1, 217, :_reduce_none,
  1, 217, :_reduce_none,
  1, 243, :_reduce_620,
  1, 243, :_reduce_none,
  1, 153, :_reduce_none,
  2, 153, :_reduce_623,
  0, 151, :_reduce_624 ]

racc_reduce_n = 625

racc_shift_n = 1049

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,
  :tEQL => 143,
  :tLOWEST => 144 }

racc_nt_base = 145

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",
  "tEQL",
  "tLOWEST",
  "$start",
  "program",
  "top_compstmt",
  "@1",
  "top_stmts",
  "opt_terms",
  "none",
  "top_stmt",
  "terms",
  "stmt",
  "bodystmt",
  "@2",
  "compstmt",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "fitem",
  "undef_list",
  "expr_value",
  "command_asgn",
  "mlhs",
  "command_call",
  "var_lhs",
  "primary_value",
  "opt_call_args",
  "rbracket",
  "call_op",
  "backref",
  "lhs",
  "mrhs",
  "mrhs_arg",
  "expr",
  "@3",
  "opt_nl",
  "arg",
  "command",
  "block_command",
  "block_call",
  "dot_or_colon",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_param",
  "fcall",
  "@4",
  "@5",
  "operation",
  "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",
  "@6",
  "simple_numeric",
  "primary",
  "arg_value",
  "aref_args",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@7",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "symbols",
  "qsymbols",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "then",
  "if_tail",
  "do",
  "case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "@8",
  "@9",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "k_begin",
  "k_if",
  "k_unless",
  "k_while",
  "k_until",
  "k_case",
  "k_for",
  "k_class",
  "k_module",
  "k_def",
  "k_end",
  "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",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@26",
  "f_args",
  "do_block",
  "@27",
  "@28",
  "operation3",
  "@29",
  "@30",
  "@31",
  "@32",
  "@33",
  "cases",
  "@34",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@35",
  "@36",
  "sym",
  "@37",
  "args_tail",
  "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",
  "@38",
  "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)
                      result = val[0]
                    
    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

def _reduce_8(val, _values, result)
                      result = val[0]

                      # TODO: remove once I have more confidence this is fixed
                      # result.each_of_type :call_args do |s|
                      #   debug20 666, s, result
                      # end
                    
    result
end

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)
                      result = new_iter s(:preexe), nil, val[3]
                    
    result
end

def _reduce_11(val, _values, result)
                      result = new_body val
                    
    result
end

def _reduce_12(val, _values, result)
                      result = new_compstmt val
                    
    result
end

# reduce 13 omitted

# reduce 14 omitted

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

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

def _reduce_17(val, _values, result)
                      lexer.lex_state = :expr_fname
                      result = self.lexer.lineno
                    
    result
end

def _reduce_18(val, _values, result)
                      result = s(:alias, val[1], val[3]).line(val[2])
                    
    result
end

def _reduce_19(val, _values, result)
                      result = s(:valias, val[1].to_sym, val[2].to_sym)
                    
    result
end

def _reduce_20(val, _values, result)
                      result = s(:valias, val[1].to_sym, :"$#{val[2]}")
                    
    result
end

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

def _reduce_22(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_23(val, _values, result)
                      result = new_if val[2], val[0], nil
                    
    result
end

def _reduce_24(val, _values, result)
                      result = new_if val[2], nil, val[0]
                    
    result
end

def _reduce_25(val, _values, result)
                      result = new_while val[0], val[2], true
                    
    result
end

def _reduce_26(val, _values, result)
                      result = new_until val[0], val[2], true
                    
    result
end

def _reduce_27(val, _values, result)
                      result = s(:rescue, val[0], new_resbody(s(:array), val[2]))
                    
    result
end

def _reduce_28(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 3
                        yyerror "END in method; use at_exit"
                      end
                      result = new_iter s(:postexe), 0, val[2]
                    
    result
end

# reduce 29 omitted

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

def _reduce_31(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

def _reduce_32(val, _values, result)
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
                    
    result
end

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

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

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

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

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

def _reduce_38(val, _values, result)
                      result = self.node_assign val[0], s(:svalue, val[2])
                    
    result
end

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

# reduce 40 omitted

def _reduce_41(val, _values, result)
                      result = self.node_assign val[0], val[2]
                    
    result
end

def _reduce_42(val, _values, result)
                      result = self.node_assign val[0], val[2]
                    
    result
end

# reduce 43 omitted

def _reduce_44(val, _values, result)
                      result = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_45(val, _values, result)
                      result = logop(:or, val[0], val[2])
                    
    result
end

def _reduce_46(val, _values, result)
                      result = s(:call, val[2], :"!")
                    
    result
end

def _reduce_47(val, _values, result)
                      result = s(:call, val[1], :"!")
                    
    result
end

# reduce 48 omitted

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

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

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

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

def _reduce_55(val, _values, result)
                      result = nil # self.env.dynamic.keys
                    
    result
end

def _reduce_56(val, _values, result)
                      result = new_iter nil, val[2], val[4]
                      result.line = val[1]

                      self.env.unextend
                    
    result
end

def _reduce_57(val, _values, result)
                      result = new_call nil, val[0].to_sym
                    
    result
end

def _reduce_58(val, _values, result)
                      result = val[0].concat val[1][1..-1] # REFACTOR pattern
                    
    result
end

def _reduce_59(val, _values, result)
                      result = val[0].concat val[1][1..-1]
                      if val[2] then
                        block_dup_check result, val[2]

                        result, operation = val[2], result
                        result.insert 1, operation
                      end
                    
    result
end

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

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

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

def _reduce_65(val, _values, result)
                      result = new_yield val[1]
                    
    result
end

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

def _reduce_67(val, _values, result)
                      line = val[0].last
                      result = s(:break, ret_args(val[1])).line(line)
                    
    result
end

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

# reduce 69 omitted

def _reduce_70(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 71 omitted

def _reduce_72(val, _values, result)
                      result = s(:masgn, s(:array, val[1]))
                    
    result
end

def _reduce_73(val, _values, result)
                      result = s(:masgn, val[0])
                    
    result
end

def _reduce_74(val, _values, result)
                      result = s(:masgn, val[0] << val[1].compact)
                    
    result
end

def _reduce_75(val, _values, result)
                      result = s(:masgn, val[0] << s(:splat, val[2]))
                    
    result
end

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

                      result = list_append ary1, s(:splat, splat)
                      result.concat ary2[1..-1]
                      result = s(:masgn, result)
                    
    result
end

def _reduce_77(val, _values, result)
                      result = s(:masgn, val[0] << s(:splat))
                    
    result
end

def _reduce_78(val, _values, result)
                      ary = list_append val[0], s(:splat)
                      ary.concat val[3][1..-1]
                      result = s(:masgn, ary)
                    
    result
end

def _reduce_79(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat, val[1])))
                    
    result
end

def _reduce_80(val, _values, result)
                      ary = s(:array, s(:splat, val[1]))
                      ary.concat val[3][1..-1]
                      result = s(:masgn, ary)
                    
    result
end

def _reduce_81(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat)))
                    
    result
end

def _reduce_82(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat), *val[2][1..-1]))
                    
    result
end

# reduce 83 omitted

def _reduce_84(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_85(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

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

def _reduce_87(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

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

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

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

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

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

def _reduce_93(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=")
                    
    result
end

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

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

                      result = s(:const, s(:colon2, val[0], val[2].to_sym), nil)
                    
    result
end

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

                      result = s(:const, nil, s(:colon3, val[1].to_sym))
                    
    result
end

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

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

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

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

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

def _reduce_102(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=")
                    
    result
end

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

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

                      result = s(:const, s(:colon2, val[0], val[2].to_sym))
                    
    result
end

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

                      result = s(:const, s(:colon3, val[1].to_sym))
                    
    result
end

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

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

# reduce 108 omitted

def _reduce_109(val, _values, result)
                      result = s(:colon3, val[1].to_sym)
                    
    result
end

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

def _reduce_111(val, _values, result)
                      result = s(:colon2, val[0], val[2].to_sym)
                    
    result
end

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

def _reduce_115(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[0]
                    
    result
end

def _reduce_116(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[0]
                    
    result
end

# reduce 117 omitted

# reduce 118 omitted

def _reduce_119(val, _values, result)
                      result = s(:lit, val[0].to_sym)
                    
    result
end

# reduce 120 omitted

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

def _reduce_122(val, _values, result)
                      lexer.lex_state = :expr_fname
                    
    result
end

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

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

def _reduce_195(val, _values, result)
                      result = self.node_assign val[0], val[2]
                    
    result
end

def _reduce_196(val, _values, result)
                      result = self.node_assign val[0], s(:rescue, val[2], new_resbody(s(:array), val[4]))
                    
    result
end

def _reduce_197(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

def _reduce_198(val, _values, result)
                      result = new_op_asgn val
                      result = s(:rescue, result, new_resbody(s(:array), val[4]))
                    
    result
end

def _reduce_199(val, _values, result)
                      val[2][0] = :arglist if val[2]
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
                    
    result
end

def _reduce_200(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

def _reduce_201(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

def _reduce_202(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
                    
    result
end

def _reduce_203(val, _values, result)
                      yyerror "constant re-assignment"
                    
    result
end

def _reduce_204(val, _values, result)
                      yyerror "constant re-assignment"
                    
    result
end

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

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

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

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

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

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

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

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

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

def _reduce_214(val, _values, result)
                      result = new_call(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_223(val, _values, result)
                      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)
                      result = new_call val[0], :"===", argl(val[2])
                    
    result
end

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

def _reduce_228(val, _values, result)
                      result = self.get_match_node val[0], val[2]
                    
    result
end

def _reduce_229(val, _values, result)
                      result = s(:not, self.get_match_node(val[0], val[2]))
                    
    result
end

def _reduce_230(val, _values, result)
                      result = new_call val[1], :"!"
                    
    result
end

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

def _reduce_232(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_233(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_234(val, _values, result)
                      result = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_235(val, _values, result)
                      result = logop(:or, val[0], val[2])
                    
    result
end

def _reduce_236(val, _values, result)
                      result = s(:defined, val[2])
                    
    result
end

def _reduce_237(val, _values, result)
                      result = s(:if, val[0], val[2], val[5])
                    
    result
end

# reduce 238 omitted

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

# reduce 240 omitted

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

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

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

def _reduce_244(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 245 omitted

# reduce 246 omitted

def _reduce_247(val, _values, result)
                      result = val[0]
                    
    result
end

def _reduce_248(val, _values, result)
                      result = val[0]
                    
    result
end

def _reduce_249(val, _values, result)
                      result = args val
                    
    result
end

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

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

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

def _reduce_253(val, _values, result)
                      result = call_args val
                      result = self.arg_blk_pass val[0], val[1]
                    
    result
end

def _reduce_254(val, _values, result)
                      result = call_args [array_to_hash(val[0])]
                      result = self.arg_blk_pass result, val[1]
                    
    result
end

def _reduce_255(val, _values, result)
                      result = call_args [val[0], array_to_hash(val[2])]
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

def _reduce_256(val, _values, result)
                      result = call_args val
                    
    result
end

def _reduce_257(val, _values, result)
                      result = lexer.cmdarg.stack.dup # TODO: smell?
                      lexer.cmdarg.push true
                    
    result
end

def _reduce_258(val, _values, result)
                      lexer.cmdarg.stack.replace val[0]
                      result = val[1]
                    
    result
end

def _reduce_259(val, _values, result)
                      result = s(:block_pass, val[1])
                    
    result
end

def _reduce_260(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 261 omitted

def _reduce_262(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

def _reduce_263(val, _values, result)
                      result = s(:array, s(:splat, val[1]))
                    
    result
end

def _reduce_264(val, _values, result)
                      result = self.list_append val[0], val[2]
                    
    result
end

def _reduce_265(val, _values, result)
                      result = self.list_append val[0], s(:splat, val[3])
                    
    result
end

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

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

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

def _reduce_269(val, _values, result)
                      result = self.arg_concat val[0], val[3]
                    
    result
end

def _reduce_270(val, _values, result)
                      result = s(:splat, val[1])
                    
    result
end

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

# reduce 278 omitted

# reduce 279 omitted

# reduce 280 omitted

def _reduce_281(val, _values, result)
                      result = new_call nil, val[0].to_sym
                    
    result
end

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

def _reduce_283(val, _values, result)
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]
                    
    result
end

def _reduce_284(val, _values, result)
                      debug20 13, val, result
                    
    result
end

def _reduce_285(val, _values, result)
                      lexer.lex_state = :expr_endarg
                    
    result
end

def _reduce_286(val, _values, result)
                      warning "(...) interpreted as grouped expression"
                      result = val[1]
                    
    result
end

def _reduce_287(val, _values, result)
                      result = val[1] || s(:nil)
                      result.paren = true
                    
    result
end

def _reduce_288(val, _values, result)
                      result = s(:colon2, val[0], val[2].to_sym)
                    
    result
end

def _reduce_289(val, _values, result)
                      result = s(:colon3, val[1].to_sym)
                    
    result
end

def _reduce_290(val, _values, result)
                      result = val[1] || s(:array)
                      result[0] = :array # aref_args is :args
                    
    result
end

def _reduce_291(val, _values, result)
                      result = s(:hash, *val[1].values) # TODO: array_to_hash?
                    
    result
end

def _reduce_292(val, _values, result)
                      result = s(:return)
                    
    result
end

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

def _reduce_294(val, _values, result)
                      result = new_yield
                    
    result
end

def _reduce_295(val, _values, result)
                      result = new_yield
                    
    result
end

def _reduce_296(val, _values, result)
                      result = s(:defined, val[3])
                    
    result
end

def _reduce_297(val, _values, result)
                      result = s(:call, val[2], :"!")
                    
    result
end

def _reduce_298(val, _values, result)
                      debug20 14, val, result
                    
    result
end

def _reduce_299(val, _values, result)
                      oper, iter = val[0], val[1]
                      call = oper # FIX
                      iter.insert 1, call
                      result = iter
                      call.line = iter.line
                    
    result
end

# reduce 300 omitted

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

def _reduce_303(val, _values, result)
                      result = new_if val[1], val[3], val[4]
                    
    result
end

def _reduce_304(val, _values, result)
                      result = new_if val[1], val[4], val[3]
                    
    result
end

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

def _reduce_306(val, _values, result)
                      lexer.cond.pop
                    
    result
end

def _reduce_307(val, _values, result)
                      result = new_while val[5], val[2], true
                    
    result
end

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

def _reduce_309(val, _values, result)
                      lexer.cond.pop
                    
    result
end

def _reduce_310(val, _values, result)
                      result = new_until val[5], val[2], true
                    
    result
end

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

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

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

def _reduce_314(val, _values, result)
                      lexer.cond.pop
                    
    result
end

def _reduce_315(val, _values, result)
                      result = new_for val[4], val[1], val[7]
                    
    result
end

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

def _reduce_317(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_318(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_319(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

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

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

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

def _reduce_324(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_325(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_326(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_327(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_328(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = :expr_fname
                    
    result
end

def _reduce_329(val, _values, result)
                      self.in_single += 1
                      self.env.extend
                      lexer.lex_state = :expr_endfn # force for args
                      result = lexer.lineno
                    
    result
end

def _reduce_330(val, _values, result)
                      result = new_defs val
                      result[3].line val[5]

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

def _reduce_331(val, _values, result)
                      result = s(:break)
                    
    result
end

def _reduce_332(val, _values, result)
                      result = s(:next)
                    
    result
end

def _reduce_333(val, _values, result)
                      result = s(:redo)
                    
    result
end

def _reduce_334(val, _values, result)
                      result = s(:retry)
                    
    result
end

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

# reduce 336 omitted

# reduce 337 omitted

# reduce 338 omitted

# reduce 339 omitted

# reduce 340 omitted

# reduce 341 omitted

# reduce 342 omitted

# reduce 343 omitted

# reduce 344 omitted

# reduce 345 omitted

# reduce 346 omitted

# reduce 347 omitted

# reduce 348 omitted

# reduce 349 omitted

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

def _reduce_353(val, _values, result)
                      result = s(:if, val[1], val[3], val[4])
                    
    result
end

# reduce 354 omitted

def _reduce_355(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 356 omitted

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

# reduce 358 omitted

def _reduce_359(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_360(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

                      result = block_var args, :*, args2
                      debug20 16, val, result
                    
    result
end

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

                      result = block_var :"*#{splat}"
                    
    result
end

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

                      result = block_var :"*#{splat}", args
                      debug20 17, val, result
                    
    result
end

def _reduce_369(val, _values, result)
                      result = block_var :*
                      debug20 18, val, result
                    
    result
end

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

                      result = block_var :*, args
                    
    result
end

def _reduce_371(val, _values, result)
                      result = call_args val
                    
    result
end

def _reduce_372(val, _values, result)
                      result = call_args val
                    
    result
end

def _reduce_373(val, _values, result)
                      result = call_args val
                    
    result
end

def _reduce_374(val, _values, result)
                      result = call_args val
                    
    result
end

def _reduce_375(val, _values, result)
                      result = args val
                    
    result
end

# reduce 376 omitted

def _reduce_377(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_378(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_379(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_380(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_381(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_382(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_383(val, _values, result)
                      result = args val
                    
    result
end

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

def _reduce_385(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_386(val, _values, result)
                      result = args val
                    
    result
end

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

def _reduce_388(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_389(val, _values, result)
                      result = args val
                    
    result
end

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

def _reduce_391(val, _values, result)
                      result = args val
                    
    result
end

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

# reduce 393 omitted

def _reduce_394(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_395(val, _values, result)
                      self.lexer.command_start = true
                      result = s(:args)
                    
    result
end

def _reduce_396(val, _values, result)
                      result = args val
                    
    result
end

# reduce 397 omitted

def _reduce_398(val, _values, result)
                      result = args val
                    
    result
end

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

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

def _reduce_401(val, _values, result)
                      result = s(:shadow, val[0].to_sym)
                    
    result
end

# reduce 402 omitted

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

                      result = lexer.lpar_beg
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest
                    
    result
end

def _reduce_404(val, _values, result)
                      lpar, args, body = val
                      lexer.lpar_beg = lpar

                      call = new_call nil, :lambda
                      result = new_iter call, args, body
                      self.env.unextend
                    
    result
end

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

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

def _reduce_407(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_408(val, _values, result)
                      result = val[1]
                    
    result
end

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

def _reduce_410(val, _values, result)
                      result = nil # self.env.dynamic.keys
                    
    result
end

def _reduce_411(val, _values, result)
                      args   = val[2]
                      body   = val[4]
                      result = new_iter nil, args, body
                      result.line = val[1]

                      self.env.unextend
                    
    result
end

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

                      result = val[1]
                      result.insert 1, val[0]
                    
    result
end

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

def _reduce_414(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_415(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_416(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_417(val, _values, result)
                      args = self.call_args val[2..-1]
                      result = val[0].concat args[1..-1]
                    
    result
end

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

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

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

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

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

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

def _reduce_424(val, _values, result)
                      result = s(:zsuper)
                    
    result
end

def _reduce_425(val, _values, result)
                      result = new_aref val
                    
    result
end

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

def _reduce_427(val, _values, result)
                      result = nil # self.env.dynamic.keys
                    
    result
end

def _reduce_428(val, _values, result)
                      _, line, args, _, body, _ = val

                      result = new_iter nil, args, body
                      result.line = line

                      self.env.unextend
                    
    result
end

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

def _reduce_430(val, _values, result)
                      result = nil # self.env.dynamic.keys
                    
    result
end

def _reduce_431(val, _values, result)
                      _, line, args, _, body, _ = val

                      result = new_iter nil, args, body
                      result.line = line

                      self.env.unextend
                    
    result
end

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

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

# reduce 434 omitted

# reduce 435 omitted

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

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

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

def _reduce_437(val, _values, result)
                      result = nil
                    
    result
end

def _reduce_438(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

# reduce 439 omitted

# reduce 440 omitted

def _reduce_441(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 442 omitted

def _reduce_443(val, _values, result)
                      _, body = val

                      result = body || s(:nil)
                    
    result
end

# reduce 444 omitted

def _reduce_445(val, _values, result)
                      result = s(:lit, val[0])
                    
    result
end

def _reduce_446(val, _values, result)
                      result = s(:lit, val[0])
                    
    result
end

# reduce 447 omitted

def _reduce_448(val, _values, result)
                      val[0] = s(:dstr, val[0].value) if val[0][0] == :evstr
                      result = val[0]
                    
    result
end

def _reduce_449(val, _values, result)
                      debug20 23, val, result
                    
    result
end

# reduce 450 omitted

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

def _reduce_452(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_453(val, _values, result)
                      result = new_string val
                    
    result
end

def _reduce_454(val, _values, result)
                      result = new_xstring val[1]
                    
    result
end

def _reduce_455(val, _values, result)
                      result = new_regexp val
                    
    result
end

def _reduce_456(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_457(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_458(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_459(val, _values, result)
                      word = val[1][0] == :evstr ? s(:dstr, "", val[1]) : val[1]
                      result = val[0].dup << word
                    
    result
end

# reduce 460 omitted

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

def _reduce_462(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_463(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_464(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_465(val, _values, result)
                      list, sym, _ = val

                      case sym[0]
                      when :dstr then
                        sym[0] = :dsym
                      when :str then
                        sym = s(:lit, sym.last.to_sym)
                      else
                        debug20 24
                        sym = s(:dsym, "", result)
                      end

                      result = list.dup << sym
                    
    result
end

def _reduce_466(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_467(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_468(val, _values, result)
                      result = s(:array)
                    
    result
end

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

def _reduce_470(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_471(val, _values, result)
                      result = val[0].dup << s(:str, val[1])
                    
    result
end

def _reduce_472(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_473(val, _values, result)
                      result = val[0].dup << s(:lit, val[1].to_sym)
                    
    result
end

def _reduce_474(val, _values, result)
                      result = s(:str, "")
                    
    result
end

def _reduce_475(val, _values, result)
                      result = literal_concat(val[0], val[1])
                    
    result
end

def _reduce_476(val, _values, result)
                      result = nil
                    
    result
end

def _reduce_477(val, _values, result)
                      result = literal_concat(val[0], val[1])
                    
    result
end

def _reduce_478(val, _values, result)
                      result = nil
                    
    result
end

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

def _reduce_480(val, _values, result)
                      result = new_string val
                    
    result
end

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = :expr_beg # TODO: expr_value ?
                    
    result
end

def _reduce_482(val, _values, result)
                      lexer.lex_strterm = val[1]
                      result = s(:evstr, val[2])
                    
    result
end

def _reduce_483(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.lex_strterm = nil
                      lexer.brace_nest  = 0
                      lexer.string_nest = 0

                      lexer.lex_state   = :expr_value
                    
    result
end

def _reduce_484(val, _values, result)
#if   defined(RUBY21) || defined(RUBY22 || defined(RUBY23))
                      # TODO: tRCURLY -> tSTRING_END
#endif
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state = 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[0]
                        when :str, :dstr, :evstr then
                          result = stmt
                        else
                          result = s(:evstr, stmt)
                        end
                      when nil then
                        result = s(:evstr)
                      else
                        debug20 25
                        raise "unknown string body: #{stmt.inspect}"
                      end
                    
    result
end

def _reduce_485(val, _values, result)
 result = s(:gvar, val[0].to_sym) 
    result
end

def _reduce_486(val, _values, result)
 result = s(:ivar, val[0].to_sym) 
    result
end

def _reduce_487(val, _values, result)
 result = s(:cvar, val[0].to_sym) 
    result
end

# reduce 488 omitted

def _reduce_489(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[1].to_sym
                    
    result
end

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

# reduce 491 omitted

# reduce 492 omitted

# reduce 493 omitted

# reduce 494 omitted

def _reduce_495(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[1]

                      result ||= s(:str, "")

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

# reduce 496 omitted

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

# reduce 498 omitted

# reduce 499 omitted

# reduce 500 omitted

# reduce 501 omitted

# reduce 502 omitted

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

# reduce 506 omitted

def _reduce_507(val, _values, result)
 result = s(:nil)   
    result
end

def _reduce_508(val, _values, result)
 result = s(:self)  
    result
end

def _reduce_509(val, _values, result)
 result = s(:true)  
    result
end

def _reduce_510(val, _values, result)
 result = s(:false) 
    result
end

def _reduce_511(val, _values, result)
 result = s(:str, self.file) 
    result
end

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

def _reduce_513(val, _values, result)
                      result =
                        if defined? Encoding then
                          s(:colon2, s(:const, :Encoding), :UTF_8)
                        else
                          s(:str, "Unsupported!")
                        end
                    
    result
end

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

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

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

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

def _reduce_518(val, _values, result)
 result = s(:nth_ref,  val[0]) 
    result
end

def _reduce_519(val, _values, result)
 result = s(:back_ref, val[0]) 
    result
end

def _reduce_520(val, _values, result)
                      result = nil
                    
    result
end

def _reduce_521(val, _values, result)
                      lexer.lex_state = :expr_beg
                    
    result
end

def _reduce_522(val, _values, result)
                      result = val[2]
                    
    result
end

def _reduce_523(val, _values, result)
                      yyerrok
                      result = nil
                      debug20 30, val, result
                    
    result
end

def _reduce_524(val, _values, result)
                      result = val[1]
                      self.lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                      # TODO:
                      # $<num>$ = parser->parser_in_kwarg;
                      # parser->parser_in_kwarg = 1;
                    
    result
end

def _reduce_525(val, _values, result)
                      # TODO: parser->parser_in_kwarg = $<num>1;
                      result = val[0]
                      self.lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                    
    result
end

def _reduce_526(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_527(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_528(val, _values, result)
                      result = args val
                    
    result
end

# reduce 529 omitted

def _reduce_530(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_531(val, _values, result)
                      result = nil
                    
    result
end

def _reduce_532(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_533(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_534(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_535(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_536(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_537(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_538(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_539(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_540(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_541(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_542(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_543(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_544(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_545(val, _values, result)
                      result = args val
                    
    result
end

def _reduce_546(val, _values, result)
                      result = args val
                    
    result
end

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

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

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

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

# reduce 551 omitted

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

                      result = identifier
                    
    result
end

# reduce 553 omitted

# reduce 554 omitted

def _reduce_555(val, _values, result)
                      result = val[1]
                    
    result
end

# reduce 556 omitted

def _reduce_557(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_558(val, _values, result)
                      case val[0]
                      when Symbol then
                        result = s(:args)
                        result << val[0]
                      when Sexp then
                        result = val[0]
                      else
                        debug20 32
                        raise "Unknown f_arg type: #{val.inspect}"
                      end
                    
    result
end

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

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

                      result << item
                    
    result
end

# reduce 560 omitted

def _reduce_561(val, _values, result)
                      # TODO: call_args
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier, val[1]))
                    
    result
end

def _reduce_562(val, _values, result)
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier))
                    
    result
end

def _reduce_563(val, _values, result)
                      # TODO: call_args
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier, val[1]))
                    
    result
end

def _reduce_564(val, _values, result)
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier))
                    
    result
end

# reduce 565 omitted

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

# reduce 567 omitted

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

# reduce 569 omitted

# reduce 570 omitted

def _reduce_571(val, _values, result)
                      result = :"**#{val[1]}"
                    
    result
end

def _reduce_572(val, _values, result)
                      debug20 36, val, result
                    
    result
end

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

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

def _reduce_575(val, _values, result)
                      result = s(:block, val[0])
                    
    result
end

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

def _reduce_577(val, _values, result)
                      result = s(:block, val[0])
                    
    result
end

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

# reduce 579 omitted

# reduce 580 omitted

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

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

# reduce 583 omitted

# reduce 584 omitted

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

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

def _reduce_586(val, _values, result)
                      result = val[1]
                    
    result
end

def _reduce_587(val, _values, result)
                      result = nil
                    
    result
end

# reduce 588 omitted

def _reduce_589(val, _values, result)
                      lexer.lex_state = :expr_beg
                    
    result
end

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

def _reduce_591(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_592(val, _values, result)
                      result = val[0]
                    
    result
end

# reduce 593 omitted

def _reduce_594(val, _values, result)
                      list = val[0].dup
                      more = val[2][1..-1]
                      list.push(*more) unless more.empty?
                      result = list
                      result[0] = :hash
                      # TODO: shouldn't this be a hash?
                    
    result
end

def _reduce_595(val, _values, result)
                      result = s(:array, val[0], val[2])
                    
    result
end

def _reduce_596(val, _values, result)
                      result = s(:array, s(:lit, val[0][0].to_sym), val[1])
                    
    result
end

def _reduce_597(val, _values, result)
                      result = s(:array, s(:kwsplat, val[1]))
                    
    result
end

# reduce 598 omitted

# reduce 599 omitted

# reduce 600 omitted

# reduce 601 omitted

# reduce 602 omitted

# reduce 603 omitted

# reduce 604 omitted

# reduce 605 omitted

# reduce 606 omitted

# reduce 607 omitted

# reduce 608 omitted

# reduce 609 omitted

# reduce 610 omitted

# reduce 611 omitted

# reduce 612 omitted

# reduce 613 omitted

# reduce 614 omitted

# reduce 615 omitted

# reduce 616 omitted

# reduce 617 omitted

# reduce 618 omitted

# reduce 619 omitted

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

# reduce 621 omitted

# reduce 622 omitted

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

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

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

end   # class Ruby21Parser
