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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-607,585,611,585,3,218,219,-607,-607,-607,754,271,221,-607,-607,570',
'-607,-510,-99,-106,856,242,666,-101,-510,-607,573,271,666,823,-103,585',
'-102,585,271,611,-607,-607,616,-607,-607,-607,-607,-607,-100,745,218',
'219,222,746,706,-94,-92,239,-100,585,665,241,240,581,580,222,665,613',
'612,624,666,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607',
'-607,-607,734,-104,-607,-607,-607,-105,650,218,219,271,-607,-416,574',
'-607,222,613,612,270,-607,665,-607,-101,-607,-607,-607,-607,-607,-607',
'-607,-603,-607,-607,-607,270,116,753,116,-94,-92,115,270,115,-90,-97',
'-288,-607,-607,846,-93,-98,-607,-288,-288,-288,116,222,-101,-288,-288',
'115,-288,-101,-102,-103,116,-102,116,-604,-103,115,-102,115,-94,-92',
'705,-94,-92,-100,-91,734,-288,-288,-100,-288,-288,-288,-288,-288,116',
'-94,-92,936,222,115,-102,-103,270,222,734,630,116,83,884,-425,611,115',
'-95,666,823,84,-96,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-288,627,-92,-288,-288,-288,-84,649,823,532,591,-288',
'94,95,-288,94,95,665,242,-288,-70,-288,695,-288,-288,-288,-288,-288',
'-288,-288,-89,-288,-425,-288,-100,273,-603,611,629,-425,-607,613,612',
'609,273,-502,-288,-288,-425,-95,789,-288,-502,-502,-502,116,222,-502',
'-502,-502,115,-502,681,-104,626,-105,-425,852,823,-502,788,-502,-502',
'-502,116,-93,-94,544,-601,115,546,-502,-502,695,-502,-502,-502,-502',
'-502,-511,570,96,97,-607,96,97,-511,116,613,612,-607,573,115,-517,-516',
'-603,-103,766,459,-607,-607,-517,-502,-502,-502,-502,-502,-502,-502',
'-502,-502,-502,-502,-502,-502,-502,-101,-607,-502,-502,-502,-505,-502',
'-502,581,580,-502,611,-505,-502,-502,222,-502,-601,-502,-90,-502,-505',
'-502,-502,-502,-502,-502,-502,-502,-502,-502,507,-502,-99,-98,505,-502',
'-607,-106,-601,532,-99,574,261,-607,-502,-502,-502,-502,-603,-502,-505',
'-502,-607,611,218,219,-264,-505,-505,-505,-513,-502,-505,-505,-505,793',
'-505,-513,-280,222,-607,613,612,492,-505,-280,-505,-505,-505,544,764',
'-96,543,-600,-280,544,-505,-505,546,-505,-505,-505,-505,-505,565,-105',
'562,561,560,883,563,492,565,611,562,561,560,960,563,562,561,560,611',
'563,613,612,619,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505',
'-505,-505,-505,775,-505,-505,-505,-505,-502,-505,-505,-505,-263,-505',
'769,-502,-505,-505,768,-505,-600,-505,644,-505,-502,-505,-505,-505,-505',
'-505,-505,-505,767,-505,-507,-505,613,612,631,611,544,-507,-600,546',
'848,613,612,614,-505,-505,-505,-505,982,-505,-288,-505,-516,774,581',
'580,737,-288,-288,-288,-94,-505,-288,-288,-288,565,-288,562,561,560',
'570,563,215,-508,-103,-509,-288,-288,-288,535,-508,573,-509,218,219',
'591,-288,-288,457,-288,-288,-288,-288,-288,-89,-91,613,612,609,264,215',
'218,219,568,216,411,265,963,-98,-100,413,412,578,577,581,580,750,-288',
'-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,643',
'264,-288,-288,-288,-289,791,-288,265,730,-288,728,-289,-288,-288,-97',
'-288,574,-288,727,-288,-289,-288,-288,-288,-288,-288,-288,-288,-106',
'-288,886,-288,565,-512,562,561,560,570,563,222,-512,-92,1006,711,-288',
'-288,-288,-288,573,-288,-607,-288,218,219,889,-101,892,-607,-607,-607',
'894,-104,-607,-607,-607,565,-607,562,561,560,568,563,852,823,896,-607',
'-607,-607,-607,578,577,581,580,116,222,898,-607,-607,115,-607,-607,-607',
'-607,-607,116,899,726,718,565,115,562,561,560,720,563,565,716,562,561',
'560,714,563,723,695,712,574,907,-607,-607,-607,-607,-607,-607,-607,-607',
'-607,-607,-607,-607,-607,-607,711,242,-607,-607,-607,720,790,-607,-262',
'911,-607,913,720,-607,-607,914,-607,222,-607,711,-607,723,-607,-607',
'-607,-607,-607,-607,-607,242,-607,-607,-607,239,917,215,116,241,240',
'237,238,115,594,919,116,-607,-607,-607,-607,115,-607,592,-607,215,296',
'72,73,74,12,60,748,239,-102,66,67,241,240,921,70,750,68,69,71,33,34',
'75,76,119,120,121,122,123,32,31,30,104,103,105,106,875,876,22,923,877',
'110,111,654,11,48,923,13,108,107,109,98,59,100,99,101,222,102,110,111',
'708,94,95,929,45,46,44,242,246,251,252,253,248,250,258,259,254,255,-288',
'235,236,215,116,256,257,-288,43,115,963,36,-604,222,61,62,-288,116,63',
'750,38,239,115,245,47,241,240,237,238,249,247,243,23,244,931,701,215',
'91,83,85,86,87,89,214,933,700,84,92,695,260,537,-239,212,222,65,684',
'-84,81,88,90,222,222,96,97,296,72,73,74,12,60,222,222,215,66,67,242',
'943,944,70,525,68,69,71,33,34,75,76,222,523,947,-265,242,32,31,30,104',
'103,105,106,242,242,22,653,273,642,641,638,11,48,222,13,108,107,109',
'98,59,100,99,101,957,102,110,111,637,94,95,-262,45,46,44,242,246,251',
'252,253,248,250,258,259,254,255,-288,235,236,-289,635,256,257,-288,43',
'964,-289,298,-604,965,61,62,-288,628,63,-289,38,239,967,245,47,241,240',
'237,238,249,247,243,23,244,968,625,-515,91,83,85,86,87,89,-515,-335',
'622,84,92,618,260,596,-335,-515,595,65,403,591,81,88,90,-335,507,96',
'97,296,72,73,74,12,60,548,984,-289,66,67,547,986,987,70,-289,68,69,71',
'33,34,75,76,541,-289,242,991,533,32,31,30,104,103,105,106,529,711,22',
'996,998,1000,1002,654,11,48,1002,13,108,107,109,98,59,100,99,101,273',
'102,110,111,222,94,95,276,45,46,44,242,246,251,252,253,248,250,258,259',
'254,255,-514,235,236,-515,1009,256,257,-514,43,526,-515,298,519,518',
'61,62,-514,222,63,-515,38,239,1014,245,47,241,240,237,238,249,247,243',
'23,244,-69,1015,215,91,83,85,86,87,89,1013,-280,923,84,92,923,260,923',
'-280,1011,1020,65,507,984,81,88,90,-280,505,96,97,296,72,73,74,12,60',
'502,273,215,66,67,492,221,461,70,456,68,69,71,33,34,75,76,460,457,458',
'414,409,32,31,30,104,103,105,106,393,960,22,562,561,560,-604,563,11',
'48,-603,13,108,107,109,98,59,100,99,101,700,102,110,111,390,94,95,387',
'45,46,44,242,246,251,252,253,248,250,258,259,254,255,-288,235,236,-514',
'384,256,257,-288,43,360,-514,36,-604,222,61,62,-288,321,63,-514,38,239',
'984,245,47,241,240,237,238,249,247,243,23,244,320,1043,1044,91,83,85',
'86,87,89,1045,1046,1002,84,92,222,260,1002,1002,222,261,65,217,211,81',
'88,90,210,923,96,97,296,72,73,74,12,60,984,209,112,66,67,1002,,,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,,260,,,,,65,,,81,88',
'90,,,96,97,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,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,296,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,565,22,562,561,560,242,563',
'11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'565,,562,561,560,,563,239,720,,,241,240,237,238,,,928,,43,,,36,242,',
'61,62,,,63,,38,,,,47,,,720,256,257,,,23,,,,,91,83,85,86,87,89,,239,',
'84,92,241,240,237,238,,,65,,,81,88,90,,,96,97,296,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,,-627,-627,,,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,,565,,562,561,560,65,563,,81,88,90',
',,96,97,8,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,720,,',
',,32,31,30,104,103,105,106,,565,22,562,561,560,,563,11,48,10,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,-627,-627',
'-627,-627,248,250,,720,-627,-627,,,,,,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,,565,,562,561,560,65,563,,81,88,90,,,96,97,296,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,720,,,,,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,,,298,,,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,296,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,296,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,,,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,296,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,-627,-627,-627,-627',
'248,250,,,-627,-627,,,,,,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,296,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,-627,-627',
'-627,-627,248,250,,,-627,-627,,,,,,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,296,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,296,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,296,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,-627,-627,-627,-627,248,250',
',,-627,-627,,,,,,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,296,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,-627,-627,-627,-627',
'248,250,,,-627,-627,,,,,,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,246,251,252',
'253,248,250,258,259,254,255,,-627,-627,,,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,313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,-627,-627,-627,-627,248,250,,,-627,-627,,,,,,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,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,,,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,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,289,102,110,111,,94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,227',
',,233,,,61,62,,,63,,285,239,283,245,47,241,240,237,238,,,,232,,,,,91',
'286,85,86,87,89,,,,84,287,,,,,,,65,,290,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,289,102,110,111,,94,95',
',45,46,44,242,,,,,,,,,,,,,,,,256,257,,227,,,233,,,61,62,,,63,,285,239',
'283,245,47,241,240,237,238,,,,232,,,,,91,286,85,86,87,89,,,,84,287,',
',,,,,65,,290,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',
'313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,285,,,,47,,,,,,,,232,,,,,91,286,85',
'86,87,89,,,,84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,313,314,75,76,,,,,,309,310,316,104,103,105,106,,',
'234,,,,,,,48,,,108,107,109,98,59,100,99,101,289,102,110,111,,94,95,',
'45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,313,314,75,76,,,,,,309,310,316,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,289,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,678,,,,47',
',,,,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,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,313,314,75,76,,',
',,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,354,,,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,313,314,75,76,,,,,',
'309,310,316,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,',
',65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313',
'314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,311,,',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,',
',,,,,,,307,,,303,,,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,,419,,,,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,289,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,',
',,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,,,233,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,319,,,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,,,,,,403,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,313',
'314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,901',
',,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,313,314',
'75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,',
',303,,,61,62,,,63,,302,,,,,,,,,,,,,,,,,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,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,286,85,86,87,89,',
',,84,287,,,,,,,65,,290,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,289,102,110,111,,94,95,,45,46,44,,,,,',
',,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91',
'286,85,86,87,89,,,,84,287,,,,,,,65,,290,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,,419,,,,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,289,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,',
',,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,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,289,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',283,,47,,,,,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313,314,75,76,,',
',,,309,310,316,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,,419,,,,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,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,313,314,75',
'76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,,,232,,,,,91,286,85',
'86,87,89,,,,84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,313,314,75,76,,,,,,309,310,316,104,103,105,106,,',
'234,,,,,,,311,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,',
'317,,,,,,,,,,,,,,,,,,,,901,,,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,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,313,314,75,76,,',
',,,309,310,316,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,313,314,75',
'76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,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,313,314,75,76,,',
',,,309,310,316,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,313,314,75',
'76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,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,313,314,75,76,,',
',,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,974,,,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,313,314,75,76,,,,,',
'309,310,316,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,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233',
',,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,286,85,86,87,89,,,,84,287',
',,,,,,65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,',
',,,307,,,303,,,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,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,286,85,86,87',
'89,,,,84,287,,,,,,,65,,290,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,289,102,110,111,,94,95,,45,46,44,',
',,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,',
',,91,286,85,86,87,89,,,,84,287,222,,,,,,65,,290,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,313,314,75,76,,,,,,309,310,316,104,103',
'105,106,,,234,,,,,,,311,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,,,303,,,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,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,313,314,75,76,,',
',,,309,310,316,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,313,314,75',
'76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316,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,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,286',
'85,86,87,89,,,,84,287,,,,,,,65,,290,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,313,314,75,76,,,,,,309,310,316,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,313,314,75,76,,,,,,309,310,316',
'104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,,,303,,,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,313,314,75,76,,,,,,309,310,316',
'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,313,314,75,76,,,,,,309,310',
'316,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,313,314,75,76,,,,,,309',
'310,316,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,313,314,75,76,,',
',,,309,310,316,104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,,,233,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,521,,,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,,,,,,403',
'65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313,314',
'75,76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,',
',,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,,,232,,,,,91,286,85,86,87',
'89,,,,84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,313,314,75,76,,,,,,309,310,316,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,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',
',,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,289,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,',
',,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,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,313,314,75,76,,,,,,309,310,316',
'104,103,105,106,,,234,,,,,,,311,,,108,107,109,597,59,100,99,598,,102',
'110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,599,,,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,,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,313,314,75,76,,,,,,309,310,316',
'104,103,105,106,,,234,,,,,,,311,,,108,107,109,597,59,100,99,598,,102',
'110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,599,,,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,313,314,75,76,,,,,,309,310,316',
'104,103,105,106,,,234,,,,,,,311,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,317,,,,,,,,,,,,,,,,,,,,307,,,303,,,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,,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,313,314,75,76,,,,,,309,310,316',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,289,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,283,,47,,,,,,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313,314,75,76',
',,,,,309,310,316,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59',
'100,99,101,289,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,678,,283,,47,,,,,,,,232,,,,,91,286,85,86,87,89,,',
',84,287,,,,,,,65,,290,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,',
'68,69,71,313,314,75,76,,,,,,309,310,316,104,103,105,106,,,234,,,,,,',
'48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,227,,,233,537,,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,313,314,75,76,,,,,,309,310,316,104,103,105,106,,',
'234,,,,,,,48,,,108,107,109,98,59,100,99,101,289,102,110,111,,94,95,',
'45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,678,,283,,47,,,',
',,,,232,,,,,91,286,85,86,87,89,,,,84,287,,,,,,,65,,290,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313,314,75,76,,,,,,309,310',
'316,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,',
'678,,,,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,313,314,75,76,,,,,',
'309,310,316,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,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,313,314,75',
'76,,,,,,309,310,316,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,313',
'314,75,76,,,,,,309,310,316,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,,772,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,-281,,96,97,,,,-281,-281,-281,,,-281,-281',
'-281,565,-281,562,561,560,570,563,,,,,-281,-281,-281,,,573,,,,,-281',
'-281,,-281,-281,-281,-281,-281,,,,,,,,,,568,,,,,,,,,578,577,581,580',
',-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281',
',,-281,-281,-281,,,-281,,,-281,,,-281,-281,,-281,574,-281,,-281,,-281',
'-281,-281,-281,-281,-281,-281,,-281,,-281,,,,,,,,,,,,,-281,-281,-281',
'-281,-608,-281,,-281,,,,-608,-608,-608,,,-608,-608,-608,565,-608,562',
'561,560,570,563,,,,-608,-608,-608,-608,,,573,,,,,-608,-608,,-608,-608',
'-608,-608,-608,,,,,,,,,,568,,,,,,,,,,,581,580,,-608,-608,-608,-608,-608',
'-608,-608,-608,-608,-608,-608,-608,-608,-608,,,-608,-608,-608,,,-608',
',,-608,,,-608,-608,,-608,574,-608,,-608,,-608,-608,-608,-608,-608,-608',
'-608,,-608,-608,-608,,,,,,,,,,,,,-608,-608,-608,-608,-609,-608,,-608',
',,,-609,-609,-609,,,-609,-609,-609,565,-609,562,561,560,570,563,,,,-609',
'-609,-609,-609,,,573,,,,,-609,-609,,-609,-609,-609,-609,-609,,,,,,,',
',,568,,,,,,,,,,,581,580,,-609,-609,-609,-609,-609,-609,-609,-609,-609',
'-609,-609,-609,-609,-609,,,-609,-609,-609,,,-609,,,-609,,,-609,-609',
',-609,574,-609,,-609,,-609,-609,-609,-609,-609,-609,-609,,-609,-609',
'-609,,,,,,,,,,,,,-609,-609,-609,-609,,-609,,-609,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,369,368,370,367,172,191,190,,,,,',
'171,178,169,170,364,365,366,362,129,100,99,363,,102,,,,,,,161,162,,157',
'139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,376,,,,,,',
',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,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,,,,,,,,,,,,,,,,,,,,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,400,399,128,,401,,,,,,,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,-424,,165,,,',
',-424,-424,-424,,,-424,-424,-424,565,-424,562,561,560,570,563,158,,',
'-424,-424,-424,,,,573,,,,,-424,-424,,-424,-424,-424,-424,-424,,,,,,',
',,,568,,,,,,,,,,,581,580,,-424,-424,-424,-424,-424,-424,-424,-424,-424',
'-424,-424,-424,-424,-424,,,-424,-424,-424,,,-424,,273,-424,,,-424,-424',
',-424,574,-424,,-424,,-424,-424,-424,-424,-424,-424,-424,,-424,-424',
'-424,,,,,,,,,,,,-295,-424,-424,,-424,,-424,-295,-295,-295,,,-295,-295',
'-295,565,-295,562,561,560,570,563,,,,,-295,-295,,,,573,,,,,-295,-295',
',-295,-295,-295,-295,-295,,,,,,,,,,568,,,,,,,,,578,577,581,580,,-295',
'-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,,,-295',
'-295,-295,,,-295,,276,-295,,,-295,-295,,-295,574,-295,,-295,,-295,-295',
'-295,-295,-295,-295,-295,,-295,,-295,,,,,,,,,,,,-626,-295,-295,,-295',
',-295,-626,-626,-626,,,-626,-626,-626,565,-626,562,561,560,570,563,',
',,-626,-626,,,,,573,,,,,-626,-626,,-626,-626,-626,-626,-626,,,565,,562',
'561,560,570,563,568,,,,,,,,,573,,581,580,,-626,,,,,,,-626,-626,-626',
',-626,-626,-626,-626,,-626,568,-626,,,,,273,-626,-626,-626,-626,581',
'580,,574,,,,,-626,-626,,-626,-626,-626,-626,-626,,-626,-626,,,,,,,,',
',,,,-626,,,574,,-626,,,-626,-626,-626,-626,-626,-626,-626,-626,-626',
'-626,-626,-626,-626,-626,,,-626,-626,-626,,,-626,,273,-626,,,-626,-626',
',-626,,-626,,-626,,-626,-626,-626,-626,-626,-626,-626,,-626,-626,-626',
',,,,,1038,440,,,1039,,,-626,-626,,-626,,-626,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,,,,,1036,433,,,1037,,',
',,,,,,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,,,,,656,433,,,657,,,,,,,,,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,,,,,658,440,,,659,,,,,,,,',
'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,,,,,490,433,,,491,,,,,,,,,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,,,,,429,433,,,430,,,,,,,,,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,,,,,436,440,,,435,,,,,,,,,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,,,,,658,440,,,659,,,,,,,,,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,,',
',,656,433,,,657,,,,,,,,,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,,565,165,562,561,560,570,563,565,,562,561,560',
'570,563,,,573,,,,,158,,573,,,,,,,,,,,,,,,568,,,,,,,568,,578,577,581',
'580,,,,860,440,581,580,861,,,,,,,,,161,162,,157,139,140,141,148,145',
'147,,,142,143,,,574,163,164,149,150,,,574,,,273,,,,,,,,154,153,,138',
'160,156,155,151,152,146,144,136,159,137,,565,165,562,561,560,570,563',
'565,,562,561,560,570,563,,,573,,,,,158,,573,,,,,565,,562,561,560,570',
'563,,,,568,,,,,,573,568,,578,577,581,580,,,,578,577,581,580,,,,,,,,565',
'568,562,561,560,570,563,,,,490,433,581,580,491,,573,,574,,,,,161,162',
'574,157,139,140,141,148,145,147,,,142,143,,568,,163,164,149,150,,,574',
'578,577,581,580,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159',
'137,,,165,,222,,,691,440,,,692,574,,,,,,,,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,,,,,688,433,,,689,,,,',
',,,,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,,,,,1008,440,,,1007,,,,,,,,,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,,,,,740,433,,,741,,,,,,,,',
'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,,,,,742,440,,,743,,,,,,,,,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,,565,165,562,561,560,570,563,565,,562',
'561,560,570,563,,,573,,,,,158,,573,565,,562,561,560,570,563,,,,,,,,568',
',573,,,,,568,,578,577,581,580,,,,,,581,580,,,,565,568,562,561,560,570',
'563,,,,,,581,580,,565,573,562,561,560,570,563,574,,,,,,,574,,573,,,',
',,,568,565,,562,561,560,570,563,574,,,581,580,,,568,551,573,,,,,,,578',
'577,581,580,565,,562,561,560,570,563,,,,,568,758,,,,573,574,,,578,577',
'581,580,,,,,,,,,574,,,,,,568,758,,,,,,,,578,577,581,580,,,,,,574,,,',
',,,,,,,,,,,,,,,,,,,,,,,574' ]
        racc_action_table = arr = ::Array.new(26495, 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 = [
'436,932,388,344,1,761,761,436,436,436,603,312,22,436,436,886,436,367',
'352,355,736,465,670,1036,367,436,886,29,497,731,1037,910,1038,345,64',
'382,436,436,382,436,436,436,436,436,1051,599,698,698,22,599,550,689',
'688,465,858,857,670,465,465,886,886,724,497,388,388,388,488,436,436',
'436,436,436,436,436,436,436,436,436,436,436,436,587,743,436,436,436',
'595,436,453,453,669,436,29,886,436,761,382,382,312,436,488,436,740,436',
'436,436,436,436,436,436,1038,436,436,436,29,932,603,344,689,688,932',
'64,344,352,355,435,436,436,722,436,351,436,435,435,435,603,698,1036',
'435,435,603,435,1036,436,1037,910,1038,345,743,1037,910,1038,345,689',
'688,550,689,688,1051,858,859,435,435,1051,435,435,435,435,435,857,689',
'688,857,707,857,742,741,669,453,588,394,587,80,792,818,509,587,743,496',
'699,80,595,435,435,435,435,435,435,435,435,435,435,435,435,435,435,391',
'740,435,435,435,683,435,989,458,989,435,44,44,435,317,317,496,697,435',
'683,435,694,435,435,435,435,435,435,435,351,435,818,435,792,693,742',
'623,394,818,860,509,509,509,690,98,435,435,818,435,657,435,98,98,98',
'859,687,98,98,98,859,98,509,435,391,458,818,729,729,98,656,98,98,98',
'588,742,741,334,598,588,334,98,98,685,98,98,98,98,98,365,708,44,44,860',
'317,317,365,754,623,623,860,708,754,42,225,860,657,623,228,860,691,226',
'98,98,98,98,98,98,98,98,98,98,98,98,98,98,656,860,98,98,98,598,98,98',
'708,708,98,620,598,98,98,739,98,598,98,42,98,598,98,98,98,98,98,98,98',
'362,98,677,98,42,225,675,362,691,228,598,321,226,708,668,691,98,98,98',
'98,691,98,101,98,691,385,329,329,771,101,101,101,366,98,101,101,101',
'662,101,366,308,660,691,620,620,651,101,308,101,101,101,333,620,321',
'333,597,308,338,101,101,338,101,101,101,101,101,723,321,723,723,723',
'776,723,645,928,396,928,928,928,1006,928,1006,1006,1006,380,1006,385',
'385,385,101,101,101,101,101,101,101,101,101,101,101,101,101,101,640',
'363,101,101,101,597,101,101,363,636,101,632,597,101,101,630,101,597',
'101,430,101,597,101,101,101,101,101,101,101,627,101,368,101,396,396',
'396,378,703,368,597,703,723,380,380,380,101,101,101,101,928,101,659',
'101,41,639,711,711,590,659,659,659,430,101,659,659,659,551,659,551,551',
'551,551,551,323,369,430,370,659,659,659,323,369,551,370,343,343,589',
'659,659,323,659,659,659,659,659,41,639,378,378,378,372,900,20,20,551',
'18,126,372,900,41,639,126,126,551,551,551,551,900,659,659,659,659,659',
'659,659,659,659,659,659,659,659,659,429,27,659,659,659,746,659,659,27',
'584,659,582,746,659,659,18,659,551,659,579,659,746,659,659,659,659,659',
'659,659,18,659,794,659,889,364,889,889,889,889,889,958,364,429,958,795',
'659,659,659,659,889,659,658,659,755,755,797,429,798,658,658,658,799',
'659,658,658,658,568,658,568,568,568,889,568,1022,1022,801,658,658,658',
'658,889,889,889,889,348,802,803,658,658,348,658,658,658,658,658,293',
'804,575,567,982,293,982,982,982,568,982,720,558,720,720,720,557,720',
'568,817,556,889,821,658,658,658,658,658,658,658,658,658,658,658,658',
'658,658,554,483,658,658,658,982,658,658,824,825,658,829,720,658,658',
'830,658,831,658,832,658,720,658,658,658,658,658,658,658,464,658,658',
'658,483,836,353,759,483,483,483,483,759,353,837,5,658,658,658,658,5',
'658,353,658,601,907,907,907,907,907,907,601,464,658,907,907,464,464',
'839,907,601,907,907,907,907,907,907,907,295,295,295,295,295,907,907',
'907,907,907,907,907,762,762,907,840,762,762,762,448,907,907,842,907',
'907,907,907,907,907,907,907,907,845,907,907,907,553,907,907,847,907',
'907,907,448,448,448,448,448,448,448,448,448,448,448,1039,448,448,962',
'941,448,448,1039,907,941,962,907,1039,540,907,907,1039,867,907,962,907',
'448,867,448,907,448,448,448,448,448,448,448,907,448,850,539,17,907,907',
'907,907,907,907,17,853,538,907,907,530,448,527,448,17,522,907,520,517',
'907,907,907,516,863,907,907,303,303,303,303,303,303,499,498,306,303',
'303,469,868,869,303,306,303,303,303,303,303,303,303,870,306,879,880',
'468,303,303,303,303,303,303,303,467,466,303,445,437,428,427,423,303',
'303,424,303,303,303,303,303,303,303,303,303,897,303,303,303,420,303',
'303,418,303,303,303,423,423,423,423,423,423,423,423,423,423,423,692',
'423,423,1014,415,423,423,692,303,901,1014,303,692,902,303,303,692,393',
'303,1014,303,423,904,423,303,423,423,423,423,423,423,423,303,423,905',
'390,305,303,303,303,303,303,303,305,49,387,303,303,384,423,356,49,305',
'354,303,350,349,303,303,303,49,339,303,303,298,298,298,298,298,298,336',
'930,526,298,298,335,934,935,298,526,298,298,298,298,298,298,298,331',
'526,325,940,322,298,298,298,298,298,298,298,318,948,298,951,952,953',
'954,661,298,298,956,298,298,298,298,298,298,298,298,298,316,298,298',
'298,311,298,298,310,298,298,298,661,661,661,661,661,661,661,661,661',
'661,661,971,661,661,972,966,661,661,971,298,307,972,298,301,300,298',
'298,971,299,298,972,298,661,974,661,298,661,661,661,661,661,661,661',
'298,661,297,977,973,298,298,298,298,298,298,973,975,978,298,298,979',
'661,980,975,973,981,298,284,983,298,298,298,975,281,298,298,763,763',
'763,763,763,763,280,269,224,763,763,266,234,230,763,224,763,763,763',
'763,763,763,763,229,224,227,207,124,763,763,763,763,763,763,763,90,898',
'763,898,898,898,1007,898,763,763,1008,763,763,763,763,763,763,763,763',
'763,1010,763,763,763,89,763,763,88,763,763,763,487,487,487,487,487,487',
'487,487,487,487,487,861,487,487,304,87,487,487,861,763,72,304,763,861',
'48,763,763,861,43,763,304,763,487,1021,487,763,487,487,487,487,487,487',
'487,763,487,40,1026,1027,763,763,763,763,763,763,1028,1029,1030,763',
'763,487,487,1031,1032,1035,25,763,19,16,763,763,763,15,1040,763,763',
'586,586,586,586,586,586,1041,13,3,586,586,1053,,,586,,586,586,586,586',
'586,586,586,9,9,9,9,9,586,586,586,586,586,586,586,,,586,515,515,515',
'515,515,586,586,,586,586,586,586,586,586,586,586,586,,586,586,586,,586',
'586,,586,586,586,787,787,787,787,787,787,787,787,787,787,787,,787,787',
',,787,787,,586,,,586,,,586,586,,,586,,586,787,,787,586,787,787,787,787',
'787,787,787,586,787,,,,586,586,586,586,586,586,,,,586,586,,787,,,,,586',
',,586,586,586,,,586,586,985,985,985,985,985,985,,,,985,985,,,,985,,985',
'985,985,985,985,985,985,682,682,682,682,682,985,985,985,985,985,985',
'985,,,985,,,,,,985,985,,985,985,985,985,985,985,985,985,985,,985,985',
'985,,985,985,,985,985,985,785,785,785,785,785,785,785,785,785,785,785',
',785,785,,,785,785,,985,,,985,,,985,985,,,985,,985,785,,785,985,785',
'785,785,785,785,785,785,985,785,,,,985,985,985,985,985,985,,,,985,985',
',785,,,,,985,,,985,985,985,,,985,985,583,583,583,583,583,583,,,,583',
'583,,,,583,,583,583,583,583,583,583,583,,,,,,583,583,583,583,583,583',
'583,,,583,,,,,,583,583,,583,583,583,583,583,583,583,583,583,,583,583',
'583,,583,583,,583,583,583,783,783,783,783,783,783,783,783,783,783,783',
',783,783,,,783,783,,583,,,583,,,583,583,,,583,,583,783,,783,583,783',
'783,783,783,783,783,783,583,783,,,,583,583,583,583,583,583,,,,583,583',
',783,,,,,583,,,583,583,583,,,583,583,855,855,855,855,855,855,,,,855',
'855,,,,855,,855,855,855,855,855,855,855,,,,,,855,855,855,855,855,855',
'855,,,855,,,,,,855,855,,855,855,855,855,855,855,855,855,855,,855,855',
'855,,855,855,,855,855,855,780,780,780,780,780,780,780,780,780,780,780',
',780,780,,,780,780,,855,,,855,,,855,855,,,855,,855,780,,780,855,780',
'780,780,780,780,780,780,855,780,,,,855,855,855,855,855,855,,,,855,855',
',780,,,,,855,,,855,855,855,,,855,855,990,990,990,990,990,990,,,,990',
'990,,,,990,,990,990,990,990,990,990,990,,,,,,990,990,990,990,990,990',
'990,,,990,,,,,,990,990,,990,990,990,990,990,990,990,990,990,,990,990',
'990,,990,990,,990,990,990,778,778,778,778,778,778,778,778,778,778,778',
',778,778,,,778,778,,990,,,990,,,990,990,,,990,,990,778,,778,990,778',
'778,778,778,778,778,778,990,778,,,,990,990,990,990,990,990,,,,990,990',
',778,,,,,990,,,990,990,990,,,990,990,993,993,993,993,993,993,,,,993',
'993,,,,993,,993,993,993,993,993,993,993,,,,,,993,993,993,993,993,993',
'993,,,993,,,,,,993,993,,993,993,993,993,993,993,993,993,993,,993,993',
'993,,993,993,,993,993,993,773,773,773,773,773,773,773,773,773,773,773',
',773,773,,,773,773,,993,,,993,,,993,993,,,993,,993,773,,773,993,773',
'773,773,773,773,773,773,993,773,,,,993,993,993,993,993,993,,,,993,993',
',773,,,,,993,,,993,993,993,,,993,993,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,278,278,278,278,278,278,278,278,278,278,278',
',278,278,,,278,278,,233,,,233,,,233,233,,,233,,233,278,,278,233,278',
'278,278,278,278,278,278,233,278,,,,233,233,233,233,233,233,,,,233,233',
',278,,,,,233,,,233,233,233,,,233,233,994,994,994,994,994,994,,,,994',
'994,,,,994,,994,994,994,994,994,994,994,,,,,,994,994,994,994,994,994',
'994,,,994,,,,,,994,994,,994,994,994,994,994,994,994,994,994,,994,994',
'994,,994,994,,994,994,994,696,696,696,696,696,696,696,696,696,696,696',
',696,696,,,696,696,,994,,,994,,,994,994,,,994,,994,696,,696,994,696',
'696,696,696,696,696,696,994,696,,,,994,994,994,994,994,994,,,,994,994',
',696,,,,,994,,,994,994,994,,,994,994,970,970,970,970,970,970,,,,970',
'970,,,,970,,970,970,970,970,970,970,970,,,,,,970,970,970,970,970,970',
'970,,,970,,,,,,970,970,,970,970,970,970,970,970,970,970,970,,970,970',
'970,,970,970,,970,970,970,882,882,882,882,882,882,882,882,882,882,882',
',882,882,,,882,882,,970,,,970,,,970,970,,,970,,970,882,,882,970,882',
'882,882,882,882,882,882,970,882,,,,970,970,970,970,970,970,,,,970,970',
',882,,,,,970,,,970,970,970,,,970,970,903,903,903,903,903,903,,,,903',
'903,,,,903,,903,903,903,903,903,903,903,,,,,,903,903,903,903,903,903',
'903,,,903,,,,,,903,903,,903,903,903,903,903,903,903,903,903,,903,903',
'903,,903,903,,903,903,903,24,24,24,24,24,24,24,24,24,24,24,,24,24,,',
'24,24,,903,,,903,,,903,903,,,903,,903,24,,24,903,24,24,24,24,24,24,24',
'903,24,,,,903,903,903,903,903,903,,,,903,903,,24,,,,,903,,,903,903,903',
',,903,903,757,757,757,757,757,757,,,,757,757,,,,757,,757,757,757,757',
'757,757,757,,,,,,757,757,757,757,757,757,757,,,757,,,,,,757,757,,757',
'757,757,757,757,757,757,757,757,,757,757,757,,757,757,,757,757,757,885',
'885,885,885,885,885,885,885,885,885,885,,885,885,,,885,885,,757,,,757',
',,757,757,,,757,,757,885,,885,757,885,885,885,885,885,885,885,757,885',
',,,757,757,757,757,757,757,,,,757,757,,885,,,,,757,,,757,757,757,,,757',
'757,854,854,854,854,854,854,,,,854,854,,,,854,,854,854,854,854,854,854',
'854,,,,,,854,854,854,854,854,854,854,,,854,,,,,,854,854,,854,854,854',
'854,854,854,854,854,854,,854,854,854,,854,854,,854,854,854,536,536,536',
'536,536,536,536,536,536,536,536,,536,536,,,536,536,,854,,,854,,,854',
'854,,,854,,854,536,,536,854,536,536,536,536,536,536,536,854,536,,,,854',
'854,854,854,854,854,,,,854,854,,536,,,,,854,,,854,854,854,,,854,854',
'808,808,808,808,808,808,,,,808,808,,,,808,,808,808,808,808,808,808,808',
',,,,,808,808,808,808,808,808,808,,,808,,,,,,808,808,,808,808,808,808',
'808,808,808,808,808,,808,808,808,,808,808,,808,808,808,443,443,443,443',
'443,443,443,443,443,443,443,,443,443,,,443,443,,808,,,808,,,808,808',
',,808,,808,443,,443,808,443,443,443,443,443,443,443,808,443,,,,808,808',
'808,808,808,808,,,,808,808,,443,,,,,808,,,808,808,808,,,808,808,812',
'812,812,812,812,812,,,,812,812,,,,812,,812,812,812,812,812,812,812,',
',,,,812,812,812,812,812,812,812,,846,812,846,846,846,484,846,812,812',
',812,812,812,812,812,812,812,812,812,,812,812,812,,812,812,,812,812',
'812,929,,929,929,929,,929,484,846,,,484,484,484,484,,,846,,812,,,812',
'472,,812,812,,,812,,812,,,,812,,,929,472,472,,,812,,,,,812,812,812,812',
'812,812,,472,,812,812,472,472,472,472,,,812,,,812,812,812,,,812,812',
'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,462,462,462,462',
'462,462,462,462,462,462,462,,462,462,,,462,462,,209,,,209,,,209,209',
',,209,,209,462,,462,209,462,462,462,462,462,462,462,209,462,,,,209,209',
'209,209,209,209,,,,209,209,,1020,,1020,1020,1020,209,1020,,209,209,209',
',,209,209,409,409,409,409,409,409,,,,409,409,,,,409,,409,409,409,409',
'409,409,409,1020,,,,,409,409,409,409,409,409,409,,984,409,984,984,984',
',984,409,409,409,409,409,409,409,409,409,409,409,409,,409,409,409,,409',
'409,,409,409,409,473,473,473,473,473,473,473,,984,473,473,,,,,,473,473',
',409,,,409,,,409,409,,,409,,409,473,,473,409,473,473,473,473,473,473',
'473,409,473,,,,409,409,409,409,409,409,,,,409,409,,848,,848,848,848',
'409,848,,409,409,409,,,409,409,36,36,36,36,36,36,,,,36,36,,,,36,,36',
'36,36,36,36,36,36,848,,,,,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,474,,,,,,,,,,,,,,,,474',
'474,,36,,,36,,,36,36,,,36,,36,474,,474,36,474,474,474,474,,,474,36,474',
',,,36,36,36,36,36,36,,,,36,36,,,,,,,36,,,36,36,36,,,36,36,813,813,813',
'813,813,813,,,,813,813,,,,813,,813,813,813,813,813,813,813,,,,,,813',
'813,813,813,813,813,813,,,813,,,,,,813,813,,813,813,813,813,813,813',
'813,813,813,,813,813,813,,813,813,,813,813,813,475,,,,,,,,,,,,,,,,475',
'475,,813,,,813,,,813,813,,,813,,813,475,,475,813,475,475,475,475,,,475',
'813,475,,,,813,813,813,813,813,813,,,,813,813,,,,,,,813,,,813,813,813',
',,813,813,937,937,937,937,937,937,,,,937,937,,,,937,,937,937,937,937',
'937,937,937,,,,,,937,937,937,937,937,937,937,,,937,,,,,,937,937,,937',
'937,937,937,937,937,937,937,937,,937,937,937,,937,937,,937,937,937,486',
'486,486,486,486,486,486,486,,486,486,,,,,,486,486,,937,,,937,,,937,937',
',,937,,937,486,,486,937,486,486,486,486,486,486,486,937,486,,,,937,937',
'937,937,937,937,,,,937,937,,,,,,,937,,,937,937,937,,,937,937,864,864',
'864,864,864,864,,,,864,864,,,,864,,864,864,864,864,864,864,864,,,,,',
'864,864,864,864,864,864,864,,,864,,,,,,864,864,,864,864,864,864,864',
'864,864,864,864,,864,864,864,,864,864,,864,864,864,481,481,481,481,481',
'481,481,,,481,481,,,,,,481,481,,864,,,864,,,864,864,,,864,,864,481,',
'481,864,481,481,481,481,481,481,481,864,481,,,,864,864,864,864,864,864',
',,,864,864,,,,,,,864,,,864,864,864,,,864,864,756,756,756,756,756,756',
',,,756,756,,,,756,,756,756,756,756,756,756,756,,,,,,756,756,756,756',
'756,756,756,,,756,,,,,,756,756,,756,756,756,756,756,756,756,756,756',
',756,756,756,,756,756,,756,756,756,482,482,482,482,482,482,482,,,482',
'482,,,,,,482,482,,756,,,756,,,756,756,,,756,,756,482,,482,756,482,482',
'482,482,482,482,482,756,482,,,,756,756,756,756,756,756,,,,756,756,,',
',,,,756,,,756,756,756,,,756,756,706,706,706,706,706,706,,,,706,706,',
',,706,,706,706,706,706,706,706,706,,,,,,706,706,706,706,706,706,706',
',,706,,,,,,706,706,,706,706,706,706,706,706,706,706,706,,706,706,706',
',706,706,,706,706,706,477,,,,,,,,,,,,,,,,477,477,,706,,,706,,,706,706',
',,706,,706,477,,477,706,477,477,477,477,,,477,706,477,,,,706,706,706',
'706,706,706,,,,706,706,,,,,,,706,,,706,706,706,,,706,706,705,705,705',
'705,705,705,,,,705,705,,,,705,,705,705,705,705,705,705,705,,,,,,705',
'705,705,705,705,705,705,,,705,,,,,,705,705,,705,705,705,705,705,705',
'705,705,705,,705,705,705,,705,705,,705,705,705,485,485,485,485,485,485',
'485,,,485,485,,,,,,485,485,,705,,,705,,,705,705,,,705,,705,485,,485',
'705,485,485,485,485,485,485,485,705,485,,,,705,705,705,705,705,705,',
',,705,705,,,,,,,705,,,705,705,705,,,705,705,823,823,823,823,823,823',
',,,823,823,,,,823,,823,823,823,823,823,823,823,,,,,,823,823,823,823',
'823,823,823,,,823,,,,,,823,823,,823,823,823,823,823,823,823,823,823',
',823,823,823,,823,823,,823,823,823,479,479,479,479,479,479,479,,,479',
'479,,,,,,479,479,,823,,,823,,,823,823,,,823,,823,479,,479,823,479,479',
'479,479,479,479,479,823,479,,,,823,823,823,823,823,823,,,,823,823,,',
',,,,823,,,823,823,823,,,823,823,328,328,328,328,328,328,,,,328,328,',
',,328,,328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328',
',,328,,,,,,328,328,,328,328,328,328,328,328,328,328,328,,328,328,328',
',328,328,,328,328,328,478,478,478,478,478,478,478,,,478,478,,,,,,478',
'478,,328,,,328,,,328,328,,,328,,328,478,,478,328,478,478,478,478,478',
'478,478,328,478,,,,328,328,328,328,328,328,,,,328,328,,,,,,,328,,,328',
'328,328,,,328,328,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2',
'2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,,2,2,2,463,463',
'463,463,463,463,463,463,463,463,463,,463,463,,,463,463,,2,,,2,,,2,2',
',,2,,2,463,,463,2,463,463,463,463,463,463,463,2,463,,,,2,2,2,2,2,2,',
',,2,2,,,,,,,2,,,2,2,2,,,2,2,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,480,480,480,480,480,480,480,,,480,480,,,,,,480,480,,283,,,283,,',
'283,283,,,283,,,480,,480,283,480,480,480,480,480,480,480,283,480,,,',
'283,283,283,283,283,283,,,,283,283,,,,,,,283,,,283,283,283,,,283,283',
'852,852,852,,852,,,,852,852,,,,852,,852,852,852,852,852,852,852,,,,',
',852,852,852,852,852,852,852,,,852,,,,,,,852,,,852,852,852,852,852,852',
'852,852,,852,852,852,,852,852,,852,852,852,476,,,,,,,,,,,,,,,,476,476',
',852,,,852,,,852,852,,,852,,,476,,476,852,476,476,476,476,,,476,852',
'476,,,,852,852,852,852,852,852,,,,852,852,,,,,,,852,,,852,852,852,,',
'852,852,750,750,750,,750,,,,750,750,,,,750,,750,750,750,750,750,750',
'750,,,,,,750,750,750,750,750,750,750,,,750,,,,,,,750,,,750,750,750,750',
'750,750,750,750,750,750,750,750,,750,750,,750,750,750,470,,,,,,,,,,',
',,,,,470,470,,750,,,750,,,750,750,,,750,,750,470,750,470,750,470,470',
'470,470,,,,750,,,,,750,750,750,750,750,750,,,,750,750,,,,,,,750,,750',
'750,750,750,,,750,750,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,471',
',,,,,,,,,,,,,,,471,471,,457,,,457,,,457,457,,,457,,457,471,457,471,457',
'471,471,471,471,,,,457,,,,,457,457,457,457,457,457,,,,457,457,,,,,,',
'457,,457,457,457,457,,,457,457,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,543',
'543,543,,543,,,,543,543,,,,543,,543,543,543,543,543,543,543,,,,,,543',
'543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543,543,543,543,543',
'543,543,543,543,543,,543,543,,543,543,543,,,,,,,,,,,,,,,,,,,,543,,,543',
',,543,543,,,543,,543,,,,543,,,,,,,,543,,,,,543,543,543,543,543,543,',
',,543,543,,,,,,,543,,543,543,543,543,,,543,543,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,546,546,546',
',546,,,,546,546,,,,546,,546,546,546,546,546,546,546,,,,,,546,546,546',
'546,546,546,546,,,546,,,,,,,546,,,546,546,546,546,546,546,546,546,546',
'546,546,546,,546,546,,546,546,546,,,,,,,,,,,,,,,,,,,,546,,,546,,,546',
'546,,,546,,,,,,546,,,,,,,,546,,,,,546,546,546,546,546,546,,,,546,546',
',,,,,,546,,546,546,546,546,,,546,546,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,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,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,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,,,700,,700,',
',,700,,,,,,,,700,,,,,700,700,700,700,700,700,,,,700,700,,,,,,,700,,',
'700,700,700,,,700,700,1011,1011,1011,,1011,,,,1011,1011,,,,1011,,1011',
'1011,1011,1011,1011,1011,1011,,,,,,1011,1011,1011,1011,1011,1011,1011',
',,1011,,,,,,,1011,,,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011',
'1011,1011,,1011,1011,,1011,1011,1011,,,,,,,,,,,,,,,,,,,,1011,,,1011',
',,1011,1011,,,1011,,1011,,1011,,1011,,,,,,,,1011,,,,,1011,1011,1011',
'1011,1011,1011,,,,1011,1011,,,,,,,1011,,1011,1011,1011,1011,,,1011,1011',
'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,419,419,419,,419,,,,419',
'419,,,,419,,419,419,419,419,419,419,419,,,,,,419,419,419,419,419,419',
'419,,,419,,,,,,,419,,,419,419,419,419,419,419,419,419,,419,419,419,',
'419,419,,419,419,419,,,,,,,,,,,,,,,,,,,,419,,,419,,,419,419,,,419,,',
',,,419,,,,,,,,419,,,,,419,419,419,419,419,419,,,,419,419,,,,,,,419,',
',419,419,419,,,419,419,460,460,460,,460,,,,460,460,,,,460,,460,460,460',
'460,460,460,460,,,,,,460,460,460,460,460,460,460,,,460,,,,,,,460,,,460',
'460,460,460,460,460,460,460,,460,460,460,,460,460,,460,460,460,,,,,',
',,,,,,,,,,,,,,460,,,460,,,460,460,,,460,,,,,,460,,,,,,,,460,,,,,460',
'460,460,460,460,460,,,,460,460,,,,,,,460,,,460,460,460,,,460,460,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,899,899,899',
',899,,,,899,899,,,,899,,899,899,899,899,899,899,899,,,,,,899,899,899',
'899,899,899,899,,,899,,,,,,,899,,,899,899,899,899,899,899,899,899,,899',
'899,899,,899,899,,,,899,,,,,,,,,,,,,,,,,,,,899,,,899,,,899,899,,,899',
',,,,,,,,,,,,,,,,,,899,899,899,899,899,899,,,,899,899,,,,,,,899,,,899',
'899,899,,,899,899,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,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,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,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,461,461,461,,461',
',,,461,461,,,,461,,461,461,461,461,461,461,461,,,,,,461,461,461,461',
'461,461,461,,,461,,,,,,,461,,,461,461,461,461,461,461,461,461,,461,461',
'461,,461,461,,461,461,461,,,,,,,,,,,,,,,,,,,,461,,,461,,,461,461,,,461',
',,,,,461,,,,,,,,461,,,,,461,461,461,461,461,461,,,,461,461,,,,,,,461',
',,461,461,461,,,461,461,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,537,537,537,,537,,,,537,537,,,,537,,537,537,537,537',
'537,537,537,,,,,,537,537,537,537,537,537,537,,,537,,,,,,,537,,,537,537',
'537,537,537,537,537,537,,537,537,537,,537,537,,537,537,537,,,,,,,,,',
',,,,,,,,,,537,,,537,,,537,537,,,537,,,,,,537,,,,,,,,537,,,,,537,537',
'537,537,537,537,,,,537,537,,,,,,,537,,,537,537,537,,,537,537,884,884',
'884,,884,,,,884,884,,,,884,,884,884,884,884,884,884,884,,,,,,884,884',
'884,884,884,884,884,,,884,,,,,,,884,,,884,884,884,884,884,884,884,884',
',884,884,884,,884,884,,884,884,884,,,,,,,,,,,,,,,,,,,,884,,,884,,,884',
'884,,,884,,,,,,884,,,,,,,,884,,,,,884,884,884,884,884,884,,,,884,884',
',,,,,,884,,,884,884,884,,,884,884,571,571,571,,571,,,,571,571,,,,571',
',571,571,571,571,571,571,571,,,,,,571,571,571,571,571,571,571,,,571',
',,,,,,571,,,571,571,571,571,571,571,571,571,,571,571,571,,571,571,,571',
'571,571,,,,,,,,,,,,,,,,,,,,571,,,571,,,571,571,,,571,,,,,,571,,,,,,',
',571,,,,,571,571,571,571,571,571,,,,571,571,,,,,,,571,,,571,571,571',
',,571,571,883,883,883,,883,,,,883,883,,,,883,,883,883,883,883,883,883',
'883,,,,,,883,883,883,883,883,883,883,,,883,,,,,,,883,,,883,883,883,883',
'883,883,883,883,883,883,883,883,,883,883,,883,883,883,,,,,,,,,,,,,,',
',,,,,883,,,883,,,883,883,,,883,,,,883,,883,,,,,,,,883,,,,,883,883,883',
'883,883,883,,,,883,883,,,,,,,883,,883,883,883,883,,,883,883,805,805',
'805,,805,,,,805,805,,,,805,,805,805,805,805,805,805,805,,,,,,805,805',
'805,805,805,805,805,,,805,,,,,,,805,,,805,805,805,805,805,805,805,805',
',805,805,805,,805,805,,,,805,,,,,,,,,,,,,,,,,,,,805,,,805,,,805,805',
',,805,,,,,,,,,,,,,,,,,,,805,805,805,805,805,805,,,,805,805,,,,,,,805',
',,805,805,805,,,805,805,793,793,793,,793,,,,793,793,,,,793,,793,793',
'793,793,793,793,793,,,,,,793,793,793,793,793,793,793,,,793,,,,,,,793',
',,793,793,793,793,793,793,793,793,,793,793,793,,793,793,,793,793,793',
',,,,,,,,,,,,,,,,,,,793,,,793,,,793,793,,,793,,,,,,793,,,,,,,,793,,,',
',793,793,793,793,793,793,,,,793,793,,,,,,,793,,,793,793,793,,,793,793',
'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,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,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,718,718,718,,718,,,,718,718,,,,718,,718,718,718,718,718,718',
'718,,,,,,718,718,718,718,718,718,718,,,718,,,,,,,718,,,718,718,718,718',
'718,718,718,718,,718,718,718,,718,718,,718,718,718,,,,,,,,,,,,,,,,,',
',,718,,,718,,,718,718,,,718,,,,,,718,,,,,,,,718,,,,,718,718,718,718',
'718,718,,,,718,718,,,,,,,718,,,718,718,718,,,718,718,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,911,911,911,,911,,,,911,911,,,,911,,911,911,911,911,911,911,911',
',,,,,911,911,911,911,911,911,911,,,911,,,,,,,911,,,911,911,911,911,911',
'911,911,911,,911,911,911,,911,911,,,,911,,,,,,,,,,,,,,,,,,,,911,,,911',
',,911,911,,,911,,,,,,,,,,,,,,,,,,,911,911,911,911,911,911,,,,911,911',
',,,,,,911,,,911,911,911,,,911,911,532,532,532,,532,,,,532,532,,,,532',
',532,532,532,532,532,532,532,,,,,,532,532,532,532,532,532,532,,,532',
',,,,,,532,,,532,532,532,532,532,532,532,532,,532,532,532,,532,532,,532',
'532,532,,,,,,,,,,,,,,,,,,,,532,,,532,,,532,532,,,532,,,,,,532,,,,,,',
',532,,,,,532,532,532,532,532,532,,,,532,532,,,,,,,532,,,532,532,532',
',,532,532,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,684',
'684,684,,684,,,,684,684,,,,684,,684,684,684,684,684,684,684,,,,,,684',
'684,684,684,684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684',
'684,,684,684,684,,684,684,,,,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684',
'684,,,684,,,,,,,,,,,,,,,,,,,684,684,684,684,684,684,,,,684,684,,,,,',
',684,,,684,684,684,,,684,684,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,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,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,744,744,,,744,744,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,681,681,681,,681,,,,681,681,,,,681,,681,681,681,681,681',
'681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681,681,681',
'681,681,681,681,681,,681,681,681,,681,681,,681,681,681,,,,,,,,,,,,,',
',,,,,,681,,,681,,,681,681,,,681,,,,,,681,,,,,,,,681,,,,,681,681,681',
'681,681,681,,,,681,681,,,,,,,681,,,681,681,681,,,681,681,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,678,678,678,,678,,,,678,678',
',,,678,,678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678,678',
',,678,,,,,,,678,,,678,678,678,678,678,678,678,678,,678,678,678,,678',
'678,,678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,,,678',
',,,,,,,678,,,,,678,678,678,678,678,678,,,,678,678,,,,,,,678,,,678,678',
'678,,,678,678,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,,,,,,,,,,,,,',
',,,,,,285,,,285,,,285,285,,,285,,,,,,285,,,,,,,,285,,,,,285,285,285',
'285,285,285,,,,285,285,,,,,,,285,,,285,285,285,,,285,285,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,289,289,289,,289,,,,289,289,,,,289,,289',
'289,289,289,289,289,289,,,,,,289,289,289,289,289,289,289,,,289,,,,,',
',289,,,289,289,289,289,289,289,289,289,,289,289,289,,289,289,,289,289',
'289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289,,,,,,289,,,,,,,,289',
',,,,289,289,289,289,289,289,,,,289,289,,,,,,,289,,,289,289,289,,,289',
'289,290,290,290,,290,,,,290,290,,,,290,,290,290,290,290,290,290,290',
',,,,,290,290,290,290,290,290,290,,,290,,,,,,,290,,,290,290,290,290,290',
'290,290,290,,290,290,290,,290,290,,290,290,290,,,,,,,,,,,,,,,,,,,,290',
',,290,,,290,290,,,290,,,,,,290,,,,,,,,290,,,,,290,290,290,290,290,290',
',,,290,290,,,,,,,290,,,290,290,290,,,290,290,791,791,791,,791,,,,791',
'791,,,,791,,791,791,791,791,791,791,791,,,,,,791,791,791,791,791,791',
'791,,,791,,,,,,,791,,,791,791,791,791,791,791,791,791,,791,791,791,',
'791,791,,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791,,,791,,',
',,,791,,,,,,,,791,,,,,791,791,791,791,791,791,,,,791,791,,,,,,,791,',
',791,791,791,,,791,791,523,523,523,,523,,,,523,523,,,,523,,523,523,523',
'523,523,523,523,,,,,,523,523,523,523,523,523,523,,,523,,,,,,,523,,,523',
'523,523,523,523,523,523,523,523,523,523,523,,523,523,,523,523,523,,',
',,,,,,,,,,,,,,,,,523,,,523,,,523,523,,,523,,523,,523,,523,,,,,,,,523',
',,,,523,523,523,523,523,523,,,,523,523,,,,,,,523,,523,523,523,523,,',
'523,523,296,296,296,296,296,,,,296,296,,,,296,,296,296,296,296,296,296',
'296,,,,,,296,296,296,296,296,296,296,,,296,,,,,,296,296,,296,296,296',
'296,296,296,296,296,296,,296,296,296,,296,296,,296,296,296,,,,,,,,,',
',,,,,,,,,,296,,,296,,,296,296,,,296,,296,,,,296,,,,,,,,296,,,,,296,296',
'296,296,296,296,,,,296,296,,,,,,,296,,,296,296,296,,,296,296,738,738',
'738,,738,,,,738,738,,,,738,,738,738,738,738,738,738,738,,,,,,738,738',
'738,738,738,738,738,,,738,,,,,,,738,,,738,738,738,738,738,738,738,738',
',738,738,738,,738,738,,738,738,738,,,,,,,,,,,,,,,,,,,,738,,,738,,,738',
'738,,,738,,738,,,,738,,,,,,,,738,,,,,738,738,738,738,738,738,,,,738',
'738,,,,,,,738,,,738,738,738,,,738,738,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,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,,,521,521',
'790,790,790,,790,,,,790,790,,,,790,,790,790,790,790,790,790,790,,,,',
',790,790,790,790,790,790,790,,,790,,,,,,,790,,,790,790,790,790,790,790',
'790,790,,790,790,790,,790,790,,790,790,790,,,,,,,,,,,,,,,,,,,,790,,',
'790,,,790,790,,,790,,,,,,790,,,,,,,,790,,,,,790,790,790,790,790,790',
',,,790,790,,,,,,,790,,,790,790,790,,,790,790,772,772,772,,772,,,,772',
'772,,,,772,,772,772,772,772,772,772,772,,,,,,772,772,772,772,772,772',
'772,,,772,,,,,,,772,,,772,772,772,772,772,772,772,772,,772,772,772,',
'772,772,,772,772,772,,,,,,,,,,,,,,,,,,,,772,,,772,,,772,772,,,772,,',
',,,772,,,,,,,,772,,,,,772,772,772,772,772,772,,,,772,772,,,,,,,772,',
',772,772,772,,,772,772,789,789,789,,789,,,,789,789,,,,789,,789,789,789',
'789,789,789,789,,,,,,789,789,789,789,789,789,789,,,789,,,,,,,789,,,789',
'789,789,789,789,789,789,789,,789,789,789,,789,789,,789,789,789,,,,,',
',,,,,,,,,,,,,,789,,,789,,,789,789,,,789,,,,,,789,,,,,,,,789,,,,,789',
'789,789,789,789,789,,,,789,789,,,,,,,789,,,789,789,789,,,789,789,302',
'302,302,,302,,,,302,302,,,,302,,302,302,302,302,302,302,302,,,,,,302',
'302,302,302,302,302,302,,,302,,,,,,,302,,,302,302,302,302,302,302,302',
'302,,302,302,302,,302,302,,,,302,,,,,,,,,,,,,,,,,,,,302,,,302,,,302',
'302,,,302,,,,,,,,,,,,,,,,,,,302,302,302,302,302,302,,,,302,302,,,,302',
',,302,,,302,302,302,,,302,302,514,514,514,514,514,,,,514,514,,,,514',
',514,514,514,514,514,514,514,,,,,,514,514,514,514,514,514,514,,,514',
',,,,,514,514,,514,514,514,514,514,514,514,514,514,,514,514,514,,514',
'514,,514,514,514,,,,,,,,,,,,,,,,,,,,514,,,514,,,514,514,,,514,,514,',
',,514,,,,,,,,514,,,,,514,514,514,514,514,514,,,,514,514,,,,,,514,514',
',,514,514,514,,,514,514,507,507,507,,507,,,,507,507,,,,507,,507,507',
'507,507,507,507,507,,,,,,507,507,507,507,507,507,507,,,507,,,,,,,507',
',,507,507,507,507,507,507,507,507,,507,507,507,,507,507,,507,507,507',
',,,,,,,,,,,,,,,,,,,507,,,507,,,507,507,,,507,,,,,,507,,,,,,,,507,,,',
',507,507,507,507,507,507,,,,507,507,,,,,,,507,,,507,507,507,,,507,507',
'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,505,,,505,505,654,654,654,,654',
',,,654,654,,,,654,,654,654,654,654,654,654,654,,,,,,654,654,654,654',
'654,654,654,,,654,,,,,,,654,,,654,654,654,654,654,654,654,654,,654,654',
'654,,654,654,,654,654,654,,,,,,,,,,,,,,,,,,,,654,,,654,,,654,654,,,654',
',,,,,654,,,,,,,,654,,,,,654,654,654,654,654,654,,,,654,654,,,,,,,654',
',,654,654,654,,,654,654,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,653,653,653,,653,,,,653,653,,,,653,,653,653',
'653,653,653,653,653,,,,,,653,653,653,653,653,653,653,,,653,,,,,,,653',
',,653,653,653,653,653,653,653,653,,653,653,653,,653,653,,653,653,653',
',,,,,,,,,,,,,,,,,,,653,,,653,,,653,653,,,653,,,,,,653,,,,,,,,653,,,',
',653,653,653,653,653,653,,,,653,653,,,,,,,653,,,653,653,653,,,653,653',
'592,592,592,,592,,,,592,592,,,,592,,592,592,592,592,592,592,592,,,,',
',592,592,592,592,592,592,592,,,592,,,,,,,592,,,592,592,592,592,592,592',
'592,592,592,592,592,592,,592,592,,592,592,592,,,,,,,,,,,,,,,,,,,,592',
',,592,,,592,592,,,592,,592,,592,,592,,,,,,,,592,,,,,592,592,592,592',
'592,592,,,,592,592,,,,,,,592,,592,592,592,592,,,592,592,774,774,774',
',774,,,,774,774,,,,774,,774,774,774,774,774,774,774,,,,,,774,774,774',
'774,774,774,774,,,774,,,,,,,774,,,774,774,774,774,774,774,774,774,,774',
'774,774,,774,774,,774,774,774,,,,,,,,,,,,,,,,,,,,774,,,774,,,774,774',
',,774,,,,,,774,,,,,,,,774,,,,,774,774,774,774,774,774,,,,774,774,,,',
',,,774,,,774,774,774,,,774,774,361,361,361,,361,,,,361,361,,,,361,,361',
'361,361,361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,',
',361,,,361,361,361,361,361,361,361,361,,361,361,361,,361,361,,,,361',
',,,,,,,,,,,,,,,,,,,361,,,361,,,361,361,,,361,,,,,,,,,,,,,,,,,,,361,361',
'361,361,361,361,,,,361,361,,,,,,,361,,,361,361,361,,,361,361,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,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,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,319,319,319,,319,,,,319,319,,',
',319,,319,319,319,319,319,319,319,,,,,,319,319,319,319,319,319,319,',
',319,,,,,,,319,,,319,319,319,319,319,319,319,319,,319,319,319,,319,319',
',,,319,,,,,,,,,,,,,,,,,,,,319,,,319,,,319,319,,,319,,,,,,,,,,,,,,,,',
',,319,319,319,319,319,319,,,,319,319,,,,,,,319,,,319,319,319,,,319,319',
'644,644,644,,644,,,,644,644,,,,644,,644,644,644,644,644,644,644,,,,',
',644,644,644,644,644,644,644,,,644,,,,,,,644,,,644,644,644,644,644,644',
'644,644,,644,644,644,,644,644,,644,644,644,,,,,,,,,,,,,,,,,,,,644,,',
'644,,,644,644,,,644,,,,,,644,,,,,,,,644,,,,,644,644,644,644,644,644',
',,,644,644,,,,,,,644,,,644,644,644,,,644,644,643,643,643,,643,,,,643',
'643,,,,643,,643,643,643,643,643,643,643,,,,,,643,643,643,643,643,643',
'643,,,643,,,,,,,643,,,643,643,643,643,643,643,643,643,,643,643,643,',
'643,643,,643,643,643,,,,,,,,,,,,,,,,,,,,643,,,643,,,643,643,,,643,,',
',,,643,,,,,,,,643,,,,,643,643,643,643,643,643,,,,643,643,,,,,,,643,',
',643,643,643,,,643,643,642,642,642,,642,,,,642,642,,,,642,,642,642,642',
'642,642,642,642,,,,,,642,642,642,642,642,642,642,,,642,,,,,,,642,,,642',
'642,642,642,642,642,642,642,642,642,642,642,,642,642,,642,642,642,,',
',,,,,,,,,,,,,,,,,642,,,642,,,642,642,,,642,,,,642,,642,,,,,,,,642,,',
',,642,642,642,642,642,642,,,,642,642,,,,,,,642,,642,642,642,642,,,642',
'642,502,502,502,,502,,,,502,502,,,,502,,502,502,502,502,502,502,502',
',,,,,502,502,502,502,502,502,502,,,502,,,,,,,502,,,502,502,502,502,502',
'502,502,502,502,502,502,502,,502,502,,502,502,502,,,,,,,,,,,,,,,,,,',
',502,,,502,,,502,502,,,502,,502,,502,,502,,,,,,,,502,,,,,502,502,502',
'502,502,502,,,,502,502,,,,,,,502,,502,502,502,502,,,502,502,327,327',
'327,,327,,,,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327',
'327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327',
',327,327,327,,327,327,,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,327',
',327,327,,,327,,,,,,327,,,,,,,,327,,,,,327,327,327,327,327,327,,,,327',
'327,,,,,,,327,,,327,327,327,,,327,327,865,865,865,,865,,,,865,865,,',
',865,,865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,',
',865,,,,,,,865,,,865,865,865,865,865,865,865,865,,865,865,865,,865,865',
',865,865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865,,,,,,865,',
',,,,,,865,,,,,865,865,865,865,865,865,,,,865,865,,,,,,,865,,,865,865',
'865,,,865,865,641,641,641,,641,,,,641,641,,,,641,,641,641,641,641,641',
'641,641,,,,,,641,641,641,641,641,641,641,,,641,,,,,,,641,,,641,641,641',
'641,641,641,641,641,641,641,641,641,,641,641,,641,641,641,,,,,,,,,,',
',,,,,,,,,641,,,641,,,641,641,,,641,,641,,641,,641,,,,,,,,641,,,,,641',
'641,641,641,641,641,,,,641,641,,,,,,,641,,641,641,641,641,,,641,641',
'936,936,936,,936,,,,936,936,,,,936,,936,936,936,936,936,936,936,,,,',
',936,936,936,936,936,936,936,,,936,,,,,,,936,,,936,936,936,936,936,936',
'936,936,,936,936,936,,936,936,,936,936,936,,,,,,,,,,,,,,,,,,,,936,,',
'936,,,936,936,,,936,,936,,,,936,,,,,,,,936,,,,,936,936,936,936,936,936',
',,,936,936,,,,,,,936,,,936,936,936,,,936,936,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,346,346,346,,346,,,,346,346,,,,346,,346,346,346',
'346,346,346,346,,,,,,346,346,346,346,346,346,346,,,346,,,,,,,346,,,346',
'346,346,346,346,346,346,346,,346,346,346,,346,346,,346,346,346,,,,,',
',,,,,,,,,,,,,,346,,,346,,,346,346,,,346,,,,,,346,,,,,,,,346,,,,,346',
'346,346,346,346,346,,,,346,346,,,,,,,346,,,346,346,346,,,346,346,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,347,347,347,,347,,,,347,347,,',
',347,,347,347,347,347,347,347,347,,,,,,347,347,347,347,347,347,347,',
',347,,,,,,,347,,,347,347,347,347,347,347,347,347,,347,347,347,,347,347',
',347,347,347,,,,,,,,,,,,,,,,,,,,347,,,347,,,347,347,,,347,,,,,,347,',
',,,,,,347,,,,,347,347,347,347,347,347,,,,347,347,,,,,,,347,,,347,347',
'347,,,347,347,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,608,608,608',
',608,,,,608,608,,,,608,,608,608,608,608,608,608,608,,,,,,608,608,608',
'608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,,608',
'608,608,,608,608,,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608,608',
',,608,,,,,,608,,,,,,,,608,,,,,608,608,608,608,608,608,,,,608,608,,,',
',,,608,,,608,608,608,,,608,608,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,59',
',637,637,,,,59,59,59,,,59,59,59,892,59,892,892,892,892,892,,,,,59,59',
'59,,,892,,,,,59,59,,59,59,59,59,59,,,,,,,,,,892,,,,,,,,,892,892,892',
'892,,59,59,59,59,59,59,59,59,59,59,59,59,59,59,,,59,59,59,,,59,,,59',
',,59,59,,59,892,59,,59,,59,59,59,59,59,59,59,,59,,59,,,,,,,,,,,,,59',
'59,59,59,440,59,,59,,,,440,440,440,,,440,440,440,894,440,894,894,894',
'894,894,,,,440,440,440,440,,,894,,,,,440,440,,440,440,440,440,440,,',
',,,,,,,894,,,,,,,,,,,894,894,,440,440,440,440,440,440,440,440,440,440',
'440,440,440,440,,,440,440,440,,,440,,,440,,,440,440,,440,894,440,,440',
',440,440,440,440,440,440,440,,440,440,440,,,,,,,,,,,,,440,440,440,440',
'441,440,,440,,,,441,441,441,,,441,441,441,1002,441,1002,1002,1002,1002',
'1002,,,,441,441,441,441,,,1002,,,,,441,441,,441,441,441,441,441,,,,',
',,,,,1002,,,,,,,,,,,1002,1002,,441,441,441,441,441,441,441,441,441,441',
'441,441,441,441,,,441,441,441,,,441,,,441,,,441,441,,441,1002,441,,441',
',441,441,441,441,441,441,441,,441,441,441,,,,,,,,,,,,,441,441,441,441',
',441,,441,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,634,,634,634,634,634,634,634,634,634,634,634,634,,,634,634,,',
',,,,,,,634,,,,,,,,,634,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,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,760,760,760,760,760',
'760,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760',
'760,760,,,,760,760,760,760,760,760,760,760,760,760,,,,,,760,760,760',
'760,760,760,760,760,760,,,760,,,,,,,,,760,760,,760,760,760,760,760,760',
'760,,,760,760,,,,760,760,760,760,,,,,,,,,,,,,,760,760,,760,760,760,760',
'760,760,760,760,760,760,760,,,760,,,,,,,,,,,,,,,,,,,,760,410,410,410',
'410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410',
'410,410,410,410,,,,410,410,410,410,410,410,410,410,410,410,,,,,,410',
'410,410,410,410,410,410,410,410,,,410,,,,,,,,,410,410,,410,410,410,410',
'410,410,410,,,410,410,,,,410,410,410,410,,,,,,,,,,,,,,410,410,,410,410',
'410,410,410,410,410,410,410,410,410,,,410,410,,,,,,,,,,410,,,,,,,,,410',
'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,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,30',
',91,,,,,30,30,30,,,30,30,30,1015,30,1015,1015,1015,1015,1015,91,,,30',
'30,30,,,,1015,,,,,30,30,,30,30,30,30,30,,,,,,,,,,1015,,,,,,,,,,,1015',
'1015,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30,,,30,,30',
'30,,,30,30,,30,1015,30,,30,,30,30,30,30,30,30,30,,30,30,30,,,,,,,,,',
',,31,30,30,,30,,30,31,31,31,,,31,31,31,712,31,712,712,712,712,712,,',
',,31,31,,,,712,,,,,31,31,,31,31,31,31,31,,,,,,,,,,712,,,,,,,,,712,712',
'712,712,,31,31,31,31,31,31,31,31,31,31,31,31,31,31,,,31,31,31,,,31,',
'31,31,,,31,31,,31,712,31,,31,,31,31,31,31,31,31,31,,31,,31,,,,,,,,,',
',,489,31,31,,31,,31,489,489,489,,,489,489,489,1000,489,1000,1000,1000',
'1000,1000,,,,489,489,,,,,1000,,,,,489,489,,489,489,489,489,489,,,998',
',998,998,998,998,998,1000,,,,,,,,,998,,1000,1000,,431,,,,,,,431,431',
'431,,489,431,431,431,,431,998,489,,,,,489,489,431,431,431,998,998,,1000',
',,,,431,431,,431,431,431,431,431,,489,489,,,,,,,,,,,,,489,,,998,,489',
',,431,431,431,431,431,431,431,431,431,431,431,431,431,431,,,431,431',
'431,,,431,,431,431,,,431,431,,431,,431,,431,,431,431,431,431,431,431',
'431,,431,431,431,,,,,,1013,1013,,,1013,,,431,431,,431,,431,1013,1013',
',1013,1013,1013,1013,1013,1013,1013,,,1013,1013,,,,1013,1013,1013,1013',
',,,,,1013,,,,,,,,1013,1013,,1013,1013,1013,1013,1013,1013,1013,1013',
'1013,1013,1013,,,1013,,,,,1012,1012,,,1012,,,,,,,,,1012,1012,1013,1012',
'1012,1012,1012,1012,1012,1012,,,1012,1012,,,,1012,1012,1012,1012,,,',
',,1012,,,,,,,,1012,1012,,1012,1012,1012,1012,1012,1012,1012,1012,1012',
'1012,1012,,,1012,,,,,455,455,,,455,,,,,,,,,455,455,1012,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,,,,,456,456,,,456',
',,,,,,,,456,456,455,456,456,456,456,456,456,456,,,456,456,,,,456,456',
'456,456,,,,,,456,,,,,,,,456,456,,456,456,456,456,456,456,456,456,456',
'456,456,,,456,,,,,749,749,,,749,,,,,,,,,749,749,456,749,749,749,749',
'749,749,749,,,749,749,,,,749,749,749,749,,,,,,749,,,,,,,,749,749,,749',
'749,749,749,749,749,749,749,749,749,749,,,749,,,,,213,213,,,213,,,,',
',,,,213,213,749,213,213,213,213,213,213,213,,,213,213,,,,213,213,213',
'213,,,,,,213,,,,,,,,213,213,,213,213,213,213,213,213,213,213,213,213',
'213,,,213,,,,,214,214,,,214,,,,,,,,,214,214,213,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,,,,,535,535,,,535,,,,,,,,',
'535,535,214,535,535,535,535,535,535,535,,,535,535,,,,535,535,535,535',
',,,,,535,,,,,,,,535,535,,535,535,535,535,535,535,535,535,535,535,535',
',,535,,,,,534,534,,,534,,,,,,,,,534,534,535,534,534,534,534,534,534',
'534,,,534,534,,,,534,534,534,534,,,,,,534,,,,,,,,534,534,,534,534,534',
'534,534,534,534,534,534,534,534,,714,534,714,714,714,714,714,716,,716',
'716,716,716,716,,,714,,,,,534,,716,,,,,,,,,,,,,,,714,,,,,,,716,,714',
'714,714,714,,,,748,748,716,716,748,,,,,,,,,748,748,,748,748,748,748',
'748,748,748,,,748,748,,,714,748,748,748,748,,,716,,,748,,,,,,,,748,748',
',748,748,748,748,748,748,748,748,748,748,748,,758,748,758,758,758,758',
'758,996,,996,996,996,996,996,,,758,,,,,748,,996,,,,,1046,,1046,1046',
'1046,1046,1046,,,,758,,,,,,1046,996,,758,758,758,758,,,,996,996,996',
'996,,,,,,,,665,1046,665,665,665,665,665,,,,263,263,1046,1046,263,,665',
',758,,,,,263,263,996,263,263,263,263,263,263,263,,,263,263,,665,,263',
'263,263,263,,,1046,665,665,665,665,,,,,,,263,263,,263,263,263,263,263',
'263,263,263,263,263,263,,,263,,665,,,525,525,,,525,665,,,,,,,,525,525',
'263,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,,',
',,524,524,,,524,,,,,,,,,524,524,525,524,524,524,524,524,524,524,,,524',
'524,,,,524,524,524,524,,,,,,524,,,,,,,,524,524,,524,524,524,524,524',
'524,524,524,524,524,524,,,524,,,,,963,963,,,963,,,,,,,,,963,963,524',
'963,963,963,963,963,963,963,,,963,963,,,,963,963,963,963,,,,,,963,,',
',,,,,963,963,,963,963,963,963,963,963,963,963,963,963,963,,,963,,,,',
'593,593,,,593,,,,,,,,,593,593,963,593,593,593,593,593,593,593,,,593',
'593,,,,593,593,593,593,,,,,,593,,,,,,,,593,593,,593,593,593,593,593',
'593,593,593,593,593,593,,,593,,,,,594,594,,,594,,,,,,,,,594,594,593',
'594,594,594,594,594,594,594,,,594,594,,,,594,594,594,594,,,,,,594,,',
',,,,,594,594,,594,594,594,594,594,594,594,594,594,594,594,,917,594,917',
'917,917,917,917,919,,919,919,919,919,919,,,917,,,,,594,,919,921,,921',
'921,921,921,921,,,,,,,,917,,921,,,,,919,,917,917,917,917,,,,,,919,919',
',,,923,921,923,923,923,923,923,,,,,,921,921,,342,923,342,342,342,342',
'342,917,,,,,,,919,,342,,,,,,,923,606,,606,606,606,606,606,921,,,923',
'923,,,342,342,606,,,,,,,342,342,342,342,946,,946,946,946,946,946,,,',
',606,606,,,,946,923,,,606,606,606,606,,,,,,,,,342,,,,,,946,946,,,,,',
',,946,946,946,946,,,,,,606,,,,,,,,,,,,,,,,,,,,,,,,,,,946' ]
        racc_action_check = arr = ::Array.new(26495, 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,     4,  4869,  1353,   nil,   645,   nil,   nil, 19989,  1329,
   nil, 24005, 24404,  1240,   nil,  1198,  1250,   816,   481,  1193,
   529,   nil,   -78, 12149,  2613,  1307,   nil,   518,   nil,     2,
 24649, 24774,  9909,  9349,  9209,   nil,  3600,  9069,  7949,   nil,
  1186,   429,   221,  1243,   156,  7109,  6829, 17329,  1168,   965,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23347,
   nil,  5569,  5709,  5849,     9,   nil,  6129,  6269,   nil,   nil,
  6409,  6549,  1207,   nil, 23872,   nil,   nil,   nil,   nil,   nil,
    66,   nil,   nil,   nil,   nil,   nil,   nil,  1155,  1136,  1133,
  1109, 24537,   nil,   nil,   nil,   nil,   nil,   nil,   250,   nil,
   nil,   382,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  8089,   nil,   nil,   nil,   nil,  8229,
  8369,  8509,  8649,  8789,  1119,   nil,   516,   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,  1101,   nil,  3318,
  9489,  9629,  9769, 25374, 25442,   nil, 10189, 10329, 10469, 10609,
 10749, 10889,   nil,   nil,  1134,   222,   229,  1174,   226,  1084,
  1130,   nil, 12009,  2190,  1126, 12429, 12569, 12709, 12849, 12989,
 13129, 13269, 13409, 13549, 13689, 13829, 13969, 14109, 14249, 14389,
 14529, 14669, 14809, 14949, 15089, 15229, 15369, 15509, 15649, 15789,
 15929,   nil,   nil, 25831,   nil,   nil,  1118, 16349,   nil,  1121,
   nil,   nil,   nil, 16629,   nil,   nil, 16769,   nil,  2190,   nil,
  1081,  1072,   nil,  5009,  1107, 17609,   nil, 17749,   nil, 17889,
 18029,   nil,   nil,   564,   nil,   765, 18449,  1031,  1062,  1031,
  1062,  1023, 19289,   921,  1206,   957,   852,  1094,   322,   nil,
  1035,   996,   -14,   nil,   nil,   nil,  1028,   159,   969, 21109,
   nil,   284,  1023,   458,   nil,  1021,   nil, 21809,  4728,   350,
   nil,   995,   nil,   285,   156,   979,   956,   nil,   291,   972,
   nil,   nil, 26309,   511,    -9,    21, 22509, 22789,   553,  1039,
   923,   106,    -6,   684,   997,    -5,  1025,   nil,   nil, 20969,
   nil, 20549,   282,   386,   551,   216,   314,   -61,   416,   459,
   461,   nil,   485,   nil,   nil,   nil,   nil,   nil,   439,   nil,
   384,   nil,   -25,   nil,   924,   325,   nil,   921,   -58,   nil,
   911,   146,   nil,   893,   120,   nil,   375,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  3459,
 24271,   nil,   nil,   nil,   nil,   890,   nil,   nil,   855,  7669,
   852,   nil,   nil,   921,   841,   nil,   nil,   834,   833,   508,
   395, 24966,   nil,   nil,   nil,   125,     0,   871,   nil,   nil,
 23477, 23607,   nil,  3036,   nil,   817,   nil,   nil,   780,   nil,
   nil,   nil,   nil,    52,   nil, 25170, 25238,  5429,   127,  7529,
  7809, 10049,  3318,  4869,   689,   -46,   891,   890,   882,   866,
  5289,  5429,  3200,  3459,  3600,  3741,  5149,  4305,  4728,  4587,
  5009,  4023,  4164,   661,  3152,  4446,  3882,  1203,    -9, 24899,
   nil,   nil,   nil,   nil,   nil,   nil,   113,   -47,   803,   802,
   nil,   nil, 21669,   nil,   nil, 19709,   nil, 19569,   nil,   125,
   nil,   nil,   nil,   nil, 19429,  1344,   792,   785,   nil,   nil,
   784, 18729,   785, 18309, 25967, 25899,   993,   818,   nil, 17049,
   777,   nil, 16209, 11869, 25578, 25510,  2895, 11029,   896,   884,
   745,   nil,   nil,  5989,   nil,   nil,  6689,   nil,   nil,   nil,
    22,   478,   nil,   711,   598,   nil,   581,   577,   573,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   550,   610,   nil,
   nil, 11309,   nil,   nil,   nil,   641,   nil,   nil,   nil,   563,
   nil,   nil,   555,  1626,   592,   nil,  1344,    55,   153,   533,
   511,   nil, 20269, 26103, 26171,    62,   nil,   390,   258,    -6,
   nil,   702,   nil,     9, 22649,   nil, 26333,   nil, 23069,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   282,   nil,   nil,   182,   nil,   nil,   nil,   362,   nil,   nil,
   348,   nil,   361,   nil, 23739,   nil,   343, 23209, 22369,   430,
   368, 22089, 21529, 21389, 21249,   336,   nil,   nil,   nil, 20829,
 20689,   308,   nil, 20129, 19849,   nil,   188,   168,   646,   514,
   275,  1062,   269,   nil,   nil, 25821,   nil,   nil,   347,    65,
   -53,   nil,   nil,   nil,   nil,   237,   nil,   274, 17469,   nil,
   nil, 17189,  1470,    82, 16489,   159,   nil,   135,    28,    27,
   159,   290,   921,   150,    98,  6969,  2331,   156,    10,   175,
  7249,   nil,   nil,   374,   nil,  4446,  4305,    47,   239,   nil,
   nil,   418, 24738,   nil, 25640,   nil, 25647,   nil, 12289,   nil,
   650,   nil,    -1,   375,   -65,   nil,   nil,   nil,   nil,   259,
   nil,    15,   nil,   nil,   nil,   nil,    11,   nil, 18589,   220,
    78,   152,   151,    58, 16909,   nil,   522,   nil, 25694, 25306,
  5289,   nil,   nil,   nil,   176,   612,  4164,  2754, 25756,   637,
 24138,   -31,   763,  1203,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   259, 19009,  2049, 20409,   nil,   302,   nil,  1908,   nil,
  1767,   nil,   nil,  1626,   nil,  1485,   nil,  1344, 22929, 19149,
 18869, 18169,    96, 11729,   497,   510,   nil,   521,   523,   527,
   nil,   561,   554,   550,   548, 11589,   nil,   nil,  3036,   nil,
   nil,   nil,  3177,  3741,   nil,   nil,   nil,   580,   159,   nil,
   nil,   704,   nil,  4587,   606,   648,   nil,   nil,   nil,   625,
   733,   618,   617,   nil,   nil,   nil,   632,   641,   nil,   665,
   690,   nil,   697,   nil,   nil,   710,  3163,   714,  3535,   nil,
   883,   nil,  5149,   893,  2895,  1767,   nil,    43,    30,   134,
   220,  1203,   nil,   793,  4023, 21949,   nil,   749,   925,   926,
   819,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   834,
   819,   nil,  2472, 11449, 11169,  2754,   -41,   nil,   nil,   577,
   nil,   nil, 23311,   nil, 23441,   nil,   nil,   868,  1189,  8929,
   486,   953,  1003,  2613,   908,  1024,   nil,   780,   nil,   nil,
    19, 16069,   nil,   nil,   nil,   nil,   nil, 26233,   nil, 26240,
   nil, 26257,   nil, 26294,   nil,   nil,   nil,   nil,   383,  3193,
   941,   nil,   -11,   nil,  1066,  1067, 22229,  3882,   nil,   nil,
  1080,   736,   nil,   nil,   nil,   nil, 26360,   nil,   970,   nil,
   nil,   972,   973,   974,   975,   nil,   979,   nil,   509,   nil,
   nil,   nil,   783, 26035,   nil,   nil,  1031,   nil,   nil,   nil,
  2472,  1062,  1065,  1098,  1107,  1106,   nil,  1046,  1056,  1059,
  1061,  1064,   643,  1067,  3445,  1485,   nil,   nil,   nil,   199,
  1908,   nil,   nil,  2049,  2331,   nil, 25763,   nil, 24894,   nil,
 24863,   nil, 23571,   nil,   nil,   nil,   388,  1155,  1159,   nil,
  1252,  7389, 25102, 25034,   924, 24613,   nil,   nil,   nil,   nil,
  3394,  1174,   655,   nil,   nil,   nil,  1307,  1308,  1315,  1196,
  1197,  1202,  1203,   nil,   nil,  1207,    11,    18,    20,   780,
  1213,  1222,   nil,   nil,   nil,   nil, 25784,   nil,   nil,   nil,
   nil,    32,   nil,  1227,   nil ]

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

clist = [
'6,220,213,371,431,437,262,699,424,340,590,19,504,130,130,447,274,19',
'559,493,398,838,280,280,280,4,117,327,539,135,135,530,125,208,315,315',
'263,329,679,757,133,133,343,343,114,19,343,344,345,583,586,348,333,322',
'489,747,9,421,639,301,332,337,9,724,444,279,279,279,315,498,542,545',
'552,821,850,549,130,799,318,679,357,379,378,381,383,386,389,392,395',
'381,113,117,297,130,798,343,343,343,343,927,404,405,406,407,930,853',
'266,272,275,713,715,717,959,732,735,801,277,291,292,118,709,710,961',
'19,837,955,839,841,676,634,380,676,19,604,620,299,396,623,667,603,867',
'605,281,281,281,993,671,672,361,756,606,760,946,359,410,349,990,831',
'744,504,800,417,358,207,855,802,567,906,9,347,854,346,334,338,958,679',
'540,408,223,328,550,704,342,372,124,983,488,808,496,812,497,813,1023',
'738,450,451,452,453,838,432,420,825,910,377,862,864,751,420,382,455',
'425,385,356,670,388,845,441,391,19,394,1033,874,762,763,397,402,445',
'559,17,955,961,865,838,685,17,341,903,927,1021,836,336,694,19,375,2',
'279,431,437,833,224,736,949,897,660,669,495,335,280,224,224,224,608',
'17,306,306,1,280,676,676,,,425,,,,,1041,,503,503,,707,559,,379,509,',
'224,,,527,524,224,224,792,,224,353,,315,279,952,274,,953,19,279,19,534',
'279,,838,19,,117,690,315,,951,687,811,818,343,343,,690,528,587,588,977',
'841,,514,,,,,19,593,,17,531,520,,,224,224,224,224,17,515,494,,,297,',
'315,,315,297,499,887,888,1024,,416,422,1042,,117,,442,446,858,,567,',
'281,513,994,,607,,,690,938,281,,739,918,920,,922,924,,925,817,516,781',
'916,,,522,640,786,,814,6,1029,,,,130,,,,679,647,19,,,,,652,,503,503',
',135,646,567,633,632,589,559,17,224,224,224,133,828,432,224,224,224',
'224,224,224,,,,447,,,,425,868,869,441,17,615,,617,9,,621,662,,621,330',
',,,,,647,615,,,1034,,,,,,,663,646,870,804,279,,,224,663,663,,939,,224',
',,224,,,,,814,645,676,432,,,698,651,995,,,315,,432,425,17,19,17,,315',
'441,306,17,1016,1017,1018,1019,,,567,441,567,,690,,,531,,306,863,826',
',,,531,,,17,,279,,796,,,,937,,940,,668,,682,,,,224,224,,,,,,432,755',
',567,,761,601,,601,,,425,,19,1052,,19,441,,,,,834,,,834,,,,733,733,',
',675,,810,970,,,,,,,559,,752,279,,,,454,,,,,,17,130,985,,640,29,,,,803',
',29,,,809,1025,,135,703,,770,,,,,,29,445,133,,,640,,663,1051,29,29,29',
'503,29,,647,,,652,,315,,224,500,,803,,646,872,420,,315,1027,1028,,,822',
'827,29,765,,,765,29,29,531,517,29,,719,,,804,19,19,804,819,640,,343',
',,,,859,,822,857,822,,,,,,432,,,,,17,567,,,,,,306,425,224,441,776,29',
',,306,,29,29,29,29,29,130,224,,19,19,,,,567,,19,,503,866,,,,834,871',
'803,796,279,,796,,796,,,,,,,,890,890,890,777,779,,,315,690,782,784,',
'1035,446,17,,,17,,,,,19,224,908,804,19,19,912,,,,,343,,224,,19,932,224',
',,,,,,343,640,,,805,941,29,29,29,29,,,,29,29,29,29,29,29,,655,719,19',
'19,847,,,,224,224,29,,19,,224,224,,,224,733,,,,,,300,,942,796,,796,18',
'796,,796,315,,18,,,,,,,29,673,674,315,,306,29,19,,29,,19,795,,,976,306',
',,683,,18,308,308,881,686,17,17,,29,,29,1005,,796,,29,,,,,19,,702,890',
'890,890,890,,890,,,,1012,,832,355,992,16,,441,29,,,16,224,,,,,797,224',
',,19,,,17,17,29,29,,822,719,17,719,,,,19,,,16,432,19,224,,19,19,18,',
',,,425,,,,18,640,441,,,,,822,,,,840,,842,890,890,890,890,900,,,17,,',
',17,17,,,,,279,,,29,,17,,890,,,,,,,,415,,,,,,,805,,,805,981,719,805',
',805,16,,,224,,17,17,,300,16,,,,,,17,224,,,,29,,,,18,,,,,,,820,,,,,',
',891,893,895,,,,,,,,18,719,962,719,,,17,,,849,17,,,,973,948,,,795,,',
'795,,795,,300,,,,29,300,,,,,,,,29,719,17,,,,,,873,16,,,,,29,805,,805',
',805,,805,,,,18,,18,,,,308,18,16,,17,,,,,,954,,956,,,,,308,,17,,,,,17',
',18,17,17,29,,,29,,805,978,,979,29,980,339,,,,,224,,915,,,29,,,,29,',
'795,602,795,602,795,926,795,,,16,,16,,,,,16,,,997,999,1001,1003,,1004',
',,,,,945,,,29,29,,,,,29,29,16,,29,,,,,,,795,18,,,,,,,1030,,1031,,1032',
',,,,,,,41,,,,,,41,1040,,,,,,,,,,,,,,,,,,29,29,1047,1048,1049,1050,,',
',41,304,304,,1053,,,,,,,,,,,,,1054,16,,,,,,,,,418,,,29,,,,449,351,29',
',373,,,42,29,29,,,,42,,29,,,18,,,,,,,308,29,,,,,,,308,,,,,,,,42,305',
'305,41,,,729,,,731,,,41,,,,,,,29,,,,29,29,506,,508,,510,,511,512,,29',
'352,,,374,,,,,,,,18,,16,18,,,,,,,,,,,,,,29,,29,29,,,,,,,,,29,29,,42',
',,,,,,,,42,,,,,,,,,,,41,,,,,,,,,,,,,,,,29,,,16,29,,16,,41,,,,,,829,830',
',,,,,,,,,,,,,,,,,308,29,,,,,,,,,,308,,,636,,,,,,,18,18,,,,42,,,,,,,',
'29,,,,41,879,41,,,,304,41,,,,29,42,,,,29,,,29,29,,,304,,,,,,,,,41,,18',
'18,,29,,,878,18,,,,,902,,,,904,905,,,16,16,,,,677,,909,339,373,680,373',
',,,,,,,,,42,,42,,,,305,42,602,,,18,,,,18,18,934,935,,,,,305,,677,18',
',339,,16,16,42,,,,,16,41,,,,,,,,,,,,,,,725,,,,18,18,,,,,374,,374,966',
'18,,,969,,,,,,,,,,,,16,,,,16,16,,,,,,,,,,16,,,989,,602,,,,18,,,,18,',
',42,975,,,,,771,,,,677,339,,,,16,16,,,,1010,,,,,16,,18,,,41,,,,,1022',
',304,,,1026,,,,,304,,815,,,816,,,,,,,,,,18,,,,16,,,,16,824,,,,,,18,',
',,,18,,,18,18,,,844,,,,,,,,,,,16,41,,,41,,,42,,449,,,,,305,,,,,,,,305',
',,,,,,,,,,16,,,,,,,,,,880,,,,,16,,,,,16,,,16,16,,,,,,,,,,,,,,,,,,,42',
',,42,,,,,,,,,,,,,,,,,,,,,,,304,,,,,,,,,,,304,,,,,,,,,,41,41,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,339,,,,,,,,,,,,,,,,,,,,41,41,,305,,,,41,,,,,,,305',
',,,,,,,,,42,42,,,,,,,,988,,,,,,,,,,,,,,,,373,,,41,,,,41,41,,,,,,,,,',
'41,,,,,,,,42,42,,,,,,42,,,,,,,,,,,,,,,,41,41,,,,,,,231,,41,,,,,,,278',
'278,278,,,,,,,374,,,42,324,325,326,42,42,,,,,,,,,,42,373,,278,278,41',
',,,41,,,,971,,,,,,,,,,,,,,,,,,42,42,,,,,,,41,,42,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,41,,,,374,,,,42,,,,42,,,41,972,,,,41,,,41,41,,,,,,,,,,,,',
',,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,278,423,278,,,,443,448',
',,,42,,,,,42,,,42,42,,231,,,462,463,464,465,466,467,468,469,470,471',
'472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,,,,',
',,278,,,,,,278,,,278,,,,,,,278,,278,,278,,278,278,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,536,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,278,,443,661,423,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,278,,,278,,278,,,,,,,,,,,,,,,,278,,,,,,,,,696,697,,,,,,,,,,278',
',,278,,,,,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,773,,,278,278,778,780,,,,,783',
'785,,,661,787,,,,,,,,,,,,,,,,,,,,,,,,278,,,278,,,,,,,,,,,,,,,,,,,278',
',,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,278,,,,,,,,,',
',,,,,,,,,,,,278,,882,,,,,,,,,,,,,,778,780,785,783,,885,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,278,882,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,278' ]
        racc_goto_table = arr = ::Array.new(3167, 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,27,60,40,40,153,13,25,89,95,29,76,61,61,20,74,29,183,42,60,188',
'71,71,71,2,98,34,10,65,65,55,17,17,68,68,39,32,198,99,64,64,32,32,8',
'29,32,19,19,92,92,19,71,67,40,58,9,30,26,53,6,6,9,132,30,36,36,36,68',
'25,72,72,152,14,93,72,61,143,54,198,29,6,169,6,6,6,6,6,6,6,5,98,49,61',
'142,32,32,32,32,130,19,19,19,19,133,14,41,41,41,185,185,185,147,94,94',
'145,48,48,48,7,137,137,148,29,143,194,143,193,77,66,170,77,29,111,173',
'50,170,173,43,59,112,59,73,73,73,113,43,43,114,115,116,117,118,109,33',
'5,108,145,107,76,134,31,21,18,106,140,187,15,9,105,104,103,73,73,146',
'198,102,9,22,101,149,150,151,100,11,133,154,155,158,159,160,161,162',
'163,32,32,32,32,188,74,71,164,165,168,58,110,97,71,171,27,6,172,96,45',
'175,132,61,176,29,177,147,178,179,180,181,7,29,183,24,194,148,182,188',
'55,24,91,46,130,133,186,88,55,29,87,3,36,40,40,190,24,95,191,145,25',
'75,74,70,71,24,24,24,197,24,24,24,1,71,77,77,,,6,,,,,133,,6,6,,152,183',
',6,169,,24,,,34,27,24,24,26,,24,24,,68,36,143,74,,143,29,36,29,27,36',
',188,29,,98,40,68,,142,25,43,26,32,32,,40,67,19,19,143,193,,8,,,,,29',
'27,,24,53,54,,,24,24,24,24,24,9,48,,,49,,68,,68,49,48,137,137,14,,22',
'22,93,,98,,22,22,26,,187,,73,5,99,,39,,,40,94,73,,25,185,185,,185,185',
',185,55,50,42,137,,,50,34,42,,76,6,143,,,,61,,,,198,74,29,,,,,74,,6',
'6,,65,6,187,17,2,5,183,24,24,24,24,64,72,74,24,24,24,24,24,24,,,,20',
',,,6,10,10,61,24,174,,174,9,,174,34,,174,51,,,,,,74,174,,,13,,,,,,,6',
'6,152,187,36,,,24,6,6,,26,,24,,,24,,,,,76,41,77,74,,,32,41,137,,,68',
',74,6,24,29,24,,68,61,24,24,185,185,185,185,,,187,61,187,,40,,,53,,24',
'25,30,,,,53,,,24,,36,,138,,,,92,,10,,41,,9,,,,24,24,,,,,,74,32,,187',
',32,24,,24,,,6,,29,185,,29,61,,,,,138,,,138,,,,98,98,,,73,,89,92,,,',
',,,183,,98,36,,,,51,,,,,,24,61,92,,34,44,,,,34,,44,,,153,95,,65,73,',
'17,,,,,,44,29,64,,,34,,6,26,44,44,44,6,44,,74,,,74,,68,,24,51,,34,,6',
'60,71,,68,10,10,,,6,6,44,174,,,174,44,44,53,51,44,,131,,,187,29,29,187',
'53,34,,32,,,,,19,,6,71,6,,,,,,74,,,,,24,187,,,,,,24,6,24,61,73,44,,',
'24,,44,44,44,44,44,61,24,,29,29,,,,187,,29,,6,98,,,,138,98,34,138,36',
',138,,138,,,,,,,,6,6,6,22,22,,,68,40,22,22,,25,22,24,,,24,,,,,29,24',
'6,187,29,29,6,,,,,32,,24,,29,19,24,,,,,,,32,34,,,189,19,44,44,44,44',
',,,44,44,44,44,44,44,,51,131,29,29,131,,,,24,24,44,,29,,24,24,,,24,98',
',,,,,12,,98,138,,138,28,138,,138,68,,28,,,,,,,44,51,51,68,,24,44,29',
',44,,29,136,,,29,24,,,51,,28,28,28,22,51,24,24,,44,,44,34,,138,,44,',
',,,29,,51,6,6,6,6,,6,,,,27,,136,28,98,23,,61,44,,,23,24,,,,,141,24,',
',29,,,24,24,44,44,,6,131,24,131,,,,29,,,23,74,29,24,,29,29,28,,,,,6',
',,,28,34,61,,,,,6,,,,141,,141,6,6,6,6,24,,,24,,,,24,24,,,,,36,,,44,',
'24,,6,,,,,,,,12,,,,,,,189,,,189,131,131,189,,189,23,,,24,,24,24,,12',
'23,,,,,,24,24,,,,44,,,,28,,,,,,,51,,,,,,,139,139,139,,,,,,,,28,131,24',
'131,,,24,,,51,24,,,,24,136,,,136,,,136,,136,,12,,,,44,12,,,,,,,,44,131',
'24,,,,,,51,23,,,,,44,189,,189,,189,,189,,,,28,,28,,,,28,28,23,,24,,',
',,,141,,141,,,,,28,,24,,,,,24,,28,24,24,44,,,44,,189,141,,141,44,141',
'69,,,,,24,,51,,,44,,,,44,,136,28,136,28,136,51,136,,,23,,23,,,,,23,',
',139,139,139,139,,139,,,,,,51,,,44,44,,,,,44,44,23,,44,,,,,,,136,28',
',,,,,,141,,141,,141,,,,,,,,56,,,,,,56,141,,,,,,,,,,,,,,,,,,44,44,139',
'139,139,139,,,,56,56,56,,141,,,,,,,,,,,,,139,23,,,,,,,,,69,,,44,,,,69',
'56,44,,56,,,57,44,44,,,,57,,44,,,28,,,,,,,28,44,,,,,,,28,,,,,,,,57,57',
'57,56,,,12,,,12,,,56,,,,,,,44,,,,44,44,69,,69,,69,,69,69,,44,57,,,57',
',,,,,,,28,,23,28,,,,,,,,,,,,,,44,,44,44,,,,,,,,,44,44,,57,,,,,,,,,57',
',,,,,,,,,,56,,,,,,,,,,,,,,,,44,,,23,44,,23,,56,,,,,,12,12,,,,,,,,,,',
',,,,,,,28,44,,,,,,,,,,28,,,69,,,,,,,28,28,,,,57,,,,,,,,44,,,,56,12,56',
',,,56,56,,,,44,57,,,,44,,,44,44,,,56,,,,,,,,,56,,28,28,,44,,,28,28,',
',,,12,,,,12,12,,,23,23,,,,69,,12,69,56,69,56,,,,,,,,,,57,,57,,,,57,57',
'28,,,28,,,,28,28,12,12,,,,,57,,69,28,,69,,23,23,57,,,,,23,56,,,,,,,',
',,,,,,,69,,,,28,28,,,,,57,,57,12,28,,,12,,,,,,,,,,,,23,,,,23,23,,,,',
',,,,,23,,,12,,28,,,,28,,,,28,,,57,28,,,,,69,,,,69,69,,,,23,23,,,,12',
',,,,23,,28,,,56,,,,,12,,56,,,12,,,,,56,,69,,,69,,,,,,,,,,28,,,,23,,',
',23,69,,,,,,28,,,,,28,,,28,28,,,69,,,,,,,,,,,23,56,,,56,,,57,,69,,,',
',57,,,,,,,,57,,,,,,,,,,,23,,,,,,,,,,69,,,,,23,,,,,23,,,23,23,,,,,,,',
',,,,,,,,,,,57,,,57,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,,,,,56,,,,,,,,,,56',
'56,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,69,,,,,,,,,,,,,,,,,,,,56,56,,57,,,,56',
',,,,,,57,,,,,,,,,,57,57,,,,,,,,69,,,,,,,,,,,,,,,,56,,,56,,,,56,56,,',
',,,,,,,56,,,,,,,,57,57,,,,,,57,,,,,,,,,,,,,,,,56,56,,,,,,,35,,56,,,',
',,,35,35,35,,,,,,,57,,,57,35,35,35,57,57,,,,,,,,,,57,56,,35,35,56,,',
',56,,,,56,,,,,,,,,,,,,,,,,,57,57,,,,,,,56,,57,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,56,,,,57,,,,57,,,,57,,,56,57,,,,56,,,56,56,,,,,,,,,,,,,,,,,',
'57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,57,,,,35,35,35,,,,35,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,,,,,,,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,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(3167, 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,   265,    23,   244,   nil,    85,    -2,   111,    39,    54,
  -300,   174,   850,  -531,  -626,  -654,   nil,    21,   151,   -19,
  -202,    91,   155,   961,   226,  -204,  -366,   -15,   890,     9,
  -153,   -49,   -24,    29,   -21,  2155,    33,   nil,   nil,     9,
  -209,    77,  -247,  -350,   638,  -279,  -575,   nil,    84,    56,
    99,   408,   nil,    22,    40,  -288,  1316,  1391,  -544,  -220,
   -71,     2,   nil,   nil,    29,    18,  -285,     9,    -3,  1169,
   194,   -10,  -263,   110,   -14,  -235,  -269,  -374,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   169,   177,   -55,
   nil,   170,  -295,  -655,  -474,  -339,   141,  -397,    21,  -567,
   109,   119,  -153,   103,  -562,   100,  -571,  -438,  -782,    81,
  -546,  -227,  -615,  -797,    75,  -456,  -221,  -456,  -720,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  -747,   142,  -505,  -744,  -505,   nil,   252,  -433,  -107,   316,
  -500,   310,  -571,  -588,   nil,  -550,  -724,  -786,  -776,  -162,
  -369,   117,  -270,   -19,   -75,  -480,   nil,   nil,   -82,  -482,
   -81,  -481,  -797,  -398,  -499,  -623,   nil,   nil,   123,    -1,
    45,   122,   124,  -251,    80,   126,   128,   129,  -541,  -390,
  -390,   133,  -522,  -324,   nil,  -447,  -473,  -176,  -691,   180,
  -460,  -635,   nil,  -587,  -767,   nil,   nil,  -115,  -467 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   294,     7,   350,   295,
   nil,   nil,   538,   nil,   851,   nil,   293,   nil,   nil,   nil,
    14,    15,    21,   230,   323,   nil,   nil,   749,   228,   229,
   nil,   nil,    20,   nil,   331,    24,    25,    26,    27,   nil,
   693,   nil,   nil,   nil,   312,   nil,   nil,    28,   426,    35,
   nil,   nil,    37,    40,    39,   nil,   225,   226,   600,   nil,
   132,   434,   131,   134,    78,    79,   nil,    93,    49,   284,
   nil,   427,   nil,   428,   439,   648,   501,   282,   267,    50,
    51,    52,    53,    54,    55,    56,    57,    58,   nil,   268,
    64,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   584,   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,
   721,   566,   nil,   722,   950,   794,   554,   nil,   555,   nil,
   nil,   556,   nil,   558,   664,   nil,   nil,   nil,   564,   nil,
   nil,   nil,   759,   nil,   nil,   nil,   438,   269,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    77,    80,    82,   nil,
   nil,   nil,   nil,   nil,   610,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   835,   553,   nil,   557,   843,   569,   571,
   572,   806,   575,   576,   807,   579,   582,   nil,   288 ]

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,
  4, 343, :_reduce_597,
  2, 343, :_reduce_598,
  2, 343, :_reduce_599,
  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_622,
  1, 243, :_reduce_none,
  1, 153, :_reduce_none,
  2, 153, :_reduce_625,
  0, 151, :_reduce_626 ]

racc_reduce_n = 627

racc_shift_n = 1055

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)
                      _, sym, _, value = val
                      sym[0] = :dsym
                      result = s(:array, sym, value)
                    
    result
end

def _reduce_598(val, _values, result)
                      raise "not yet: #{val.inspect}"
                      # result = s(:array, s(:lit, val[1].to_sym), val[1])
                    
    result
end

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

# 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

# reduce 620 omitted

# reduce 621 omitted

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

# reduce 623 omitted

# reduce 624 omitted

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

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

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

end   # class Ruby22Parser
