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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-502,628,586,219,220,-105,-84,-502,-502,-502,219,220,-502,-502,-502',
'-94,-502,755,243,223,3,-70,1007,222,-502,-508,-502,-502,-502,219,220',
'272,-508,-100,746,631,-502,-502,747,-502,-502,-502,-502,-502,83,586',
'-102,-92,857,-101,240,586,84,-106,242,241,735,735,-93,223,116,824,586',
'-106,627,115,-105,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502',
'-502,-502,-502,-502,-99,-94,-502,-502,-502,707,-502,-502,-98,-103,-502',
'735,223,-502,-502,272,-502,630,-502,223,-502,223,-502,-502,-502,-502',
'-502,-502,-502,-96,-502,-603,-502,-92,-104,116,-94,271,223,-94,115,-91',
'754,-603,-93,-502,-502,-502,-502,-100,-502,-288,-502,-99,-94,-102,-103',
'-91,-288,-288,-288,116,-502,-502,-288,-288,115,-288,-92,667,-93,-92',
'-98,-92,586,116,116,-97,116,-93,115,115,-93,115,116,-101,-92,-288,-288',
'115,-288,-288,-288,-288,-288,116,-106,-93,937,-105,115,-106,271,666',
'-105,-90,219,220,-91,272,706,116,-604,-89,-94,-104,115,667,-288,-288',
'-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,265,-603',
'-288,-288,-288,272,650,266,-516,460,-288,-91,612,-288,-91,612,-104,847',
'-288,666,-288,-104,-288,-288,-288,-288,-288,-288,-288,-91,-288,-100',
'-288,790,612,-99,-100,-102,-103,223,-99,-517,-102,-103,-607,-288,-288',
'612,-95,-604,-288,-607,-607,-607,-98,824,116,-607,-607,-98,-607,115',
'-288,-104,271,-98,-106,-101,533,-607,-416,612,-101,614,613,610,614,613',
'610,789,-607,-607,243,-607,-607,-607,-607,-607,-95,885,-103,824,271',
'592,682,614,613,612,-99,-512,94,95,116,612,767,696,-512,115,614,613',
'620,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607',
'-607,-105,274,-607,-607,-607,-509,651,614,613,667,-607,-101,-509,-607',
'94,95,765,217,-607,533,-607,-100,-607,-607,-607,-607,-607,-607,-607',
'265,-607,-607,-607,614,613,625,266,274,-607,614,613,615,-505,666,-505',
'-607,-607,223,-93,-505,-607,-505,-505,-505,96,97,-505,-505,-505,-97',
'-505,-96,-607,-102,571,667,-507,696,-505,223,-505,-505,-505,-507,-106',
'574,-105,116,219,220,-505,-505,115,-505,-505,-505,-505,-505,-510,-514',
'-502,-607,508,96,97,-510,-514,-502,-607,666,506,116,645,-603,262,-514',
'115,-607,582,581,-264,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505',
'-505,-505,-505,-505,-607,-511,-505,-505,-505,-513,-505,-505,-511,794',
'-505,223,-513,-505,-505,493,-505,575,-505,-94,-505,-601,-505,-505,-505',
'-505,-505,-505,-505,-514,-505,-607,-505,566,-103,563,562,561,566,564',
'563,562,561,571,564,-505,-505,-505,-505,644,-505,116,-505,-516,574,545',
'115,-607,547,884,775,493,-505,-505,-607,-607,-607,776,571,-607,-607',
'-607,412,-607,-505,116,569,414,413,574,115,-505,-607,-607,-607,-607',
'-601,582,581,545,-505,-92,544,-607,-607,-89,-607,-607,-607,-607,-607',
'-263,-91,770,116,769,-101,215,-601,115,-98,849,582,581,536,768,566,-100',
'563,562,561,575,564,458,-607,-607,-607,-607,-607,-607,-607,-607,-607',
'-607,-607,-607,-607,-607,738,-505,-607,-607,-607,592,791,-607,575,545',
'-607,-517,547,-607,-607,731,-607,612,-607,729,-607,-600,-607,-607,-607',
'-607,-607,-607,-607,728,-607,-607,-607,961,216,563,562,561,566,564,563',
'562,561,571,564,-607,-607,-607,-607,887,-607,215,-607,-90,574,712,983',
'-288,1014,582,581,890,-607,-102,-288,-288,-288,1012,-99,-288,-288,-288',
'545,-288,-502,547,569,893,614,613,632,-502,895,-288,-288,-288,-600,582',
'581,897,-502,853,824,-288,-288,223,-288,-288,-288,-288,-288,899,-288',
'900,215,727,-289,719,-600,-288,717,595,612,-289,-604,617,216,715,-288',
'696,593,575,-289,713,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-288,908,-502,-288,-288,-288,712,792,-288,853,824,-288',
'219,220,-288,-288,-262,-288,912,-288,914,-288,915,-288,-288,-288,-288',
'-288,-288,-288,-288,-288,216,-288,-289,223,614,613,566,712,563,562,561',
'571,564,-288,-288,-288,-288,-288,918,-288,-288,-288,574,219,220,-604',
'-424,920,922,-288,924,-288,-104,-424,-424,-424,924,223,-424,-424,-424',
'709,-424,-289,569,930,223,932,243,702,-289,-424,-424,-424,-515,582,581',
'215,934,-289,701,-515,-424,-424,457,-424,-424,-424,-424,-424,-515,696',
'538,458,223,-335,215,685,-288,-84,240,223,-335,964,242,241,238,239,223',
'575,223,-335,751,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424',
'-424,-424,-424,223,-289,-424,-424,-424,243,944,-424,945,274,-424,223',
'-515,-424,-424,216,-424,948,-424,-265,-424,243,-424,-424,-424,-424,-424',
'-424,-424,243,-424,-424,-424,-335,216,243,566,654,563,562,561,274,564',
'643,-608,-424,-424,642,-424,223,-424,-608,-608,-608,958,638,-608,-608',
'-608,-262,-608,215,-424,243,636,965,-280,966,214,-608,-608,-608,-608',
'-280,721,629,968,212,969,626,-608,-608,-280,-608,-608,-608,-608,-608',
'623,215,619,597,596,404,215,240,526,592,508,242,241,964,876,877,549',
'524,878,110,111,985,751,-608,-608,-608,-608,-608,-608,-608,-608,-608',
'-608,-608,-608,-608,-608,548,216,-608,-608,-608,215,-280,-608,987,988',
'-608,542,749,-608,-608,243,-608,992,-608,534,-608,751,-608,-608,-608',
'-608,-608,-608,-608,216,-608,-608,-608,566,216,563,562,561,571,564,119',
'120,121,122,123,-608,-608,-608,-608,574,-608,-609,-608,119,120,121,122',
'123,-609,-609,-609,530,-608,-609,-609,-609,712,-609,997,999,216,569',
'1001,243,1003,1003,-609,-609,-609,-609,274,223,582,581,277,1010,527',
'-609,-609,520,-609,-609,-609,-609,-609,566,519,563,562,561,566,564,563',
'562,561,240,564,223,1015,242,241,238,239,-69,1016,924,575,924,-609,-609',
'-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,924,721',
'-609,-609,-609,1021,721,-609,508,985,-609,506,503,-609,-609,724,-609',
'274,-609,493,-609,222,-609,-609,-609,-609,-609,-609,-609,462,-609,-609',
'-609,566,461,563,562,561,571,564,119,120,121,122,123,-609,-609,-609',
'-609,574,-609,-281,-609,119,120,121,122,123,-281,-281,-281,459,-609',
'-281,-281,-281,566,-281,563,562,561,569,564,415,410,394,-604,-281,-281',
'-281,579,578,582,581,-603,701,391,-281,-281,388,-281,-281,-281,-281',
'-281,566,385,563,562,561,361,564,223,322,721,985,566,321,563,562,561',
'1044,564,929,1045,1046,575,1047,-281,-281,-281,-281,-281,-281,-281,-281',
'-281,-281,-281,-281,-281,-281,1003,721,-281,-281,-281,1003,1003,-281',
'223,262,-281,218,721,-281,-281,211,-281,210,-281,924,-281,724,-281,-281',
'-281,-281,-281,-281,-281,985,-281,209,-281,566,112,563,562,561,571,564',
'1003,,,,,-281,-281,-281,-281,574,-281,-627,-281,,,,,,-627,-627,-627',
',-281,-627,-627,-627,,-627,243,,,569,,,,,-627,-627,-627,,579,578,582',
'581,257,258,,-627,-627,,-627,-627,-627,-627,-627,566,,563,562,561,240',
'564,246,,242,241,238,239,,,244,566,245,563,562,561,575,564,-627,-627',
'-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,,721,-627',
'-627,-627,,,-627,,274,-627,,,-627,-627,,-627,721,-627,,-627,,-627,-627',
'-627,-627,-627,-627,-627,,-627,-627,-627,961,,563,562,561,,564,,,,,-295',
'-627,-627,,-627,,-627,-295,-295,-295,,,-295,-295,-295,243,-295,,-627',
',,,,,,,-295,-295,,,,257,258,,,,-295,-295,,-295,-295,-295,-295,-295,',
',,240,,246,,242,241,238,239,,,244,,245,,,,,,,,-295,-295,-295,-295,-295',
'-295,-295,-295,-295,-295,-295,-295,-295,-295,,,-295,-295,-295,,,-295',
',277,-295,,,-295,-295,,-295,,-295,,-295,,-295,-295,-295,-295,-295,-295',
'-295,,-295,,-295,,,,,,,,,,,,,-295,-295,,-295,,-295,297,72,73,74,12,60',
',,,66,67,-295,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,655,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,45,46,44,243,247,252,253,254,249,251,259,260,255,256,,236,237,,',
'257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248',
'244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261,,-239,,,65,,,81,88,90',
',,96,97,297,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,22,,,,,639,11,48,,13,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,243,247,252,253,254,249,251,259',
'260,255,256,,236,237,,,257,258,,43,,,299,,,61,62,,,63,,38,240,,246,47',
'242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261',
',,,,65,,,81,88,90,,,96,97,297,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,655,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,243,247,252,253',
'254,249,251,259,260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63',
',38,240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87',
'89,,,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,260,255,256,,236,237,,,257,258,,43',
',,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245',
',,,91,83,85,86,87,89,,,,84,92,,261,,,,,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,243,247,252,253,254,249,251,259,260,255,256,,236',
'237,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239',
'250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88',
'90,,,96,97,297,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,243,247,252,253,254,249,251,259',
'260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47',
'242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261',
',,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254',
'249,251,259,260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63,,38',
'240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89',
',,,84,92,223,261,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,260,255,256,,236,237,,,257,258,,43',
',,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245',
',,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,260,255,256,,236,237',
',,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250',
'248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90',
',,96,97,297,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,243,247,252,253,254,249,251,259',
'260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47',
'242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261',
',,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254',
'249,251,259,260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63,,38',
'240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89',
',,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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',
'243,247,252,253,254,249,251,259,260,255,256,,236,237,,,257,258,,43,',
',36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245',
',,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,260,255,256,,236,237',
',,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250',
'248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90',
',,96,97,297,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,243,247,252,253,254,249,251,259',
'260,255,256,,236,237,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47',
'242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261',
',,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254',
'249,251,259,260,255,256,,236,237,,,257,258,,43,,,299,,,61,62,,,63,,38',
'240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89',
',,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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',
'243,247,252,253,254,249,251,259,260,255,256,,236,237,,,257,258,,43,',
',36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245',
',,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,260,255,256,,236,237',
',,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250',
'248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,261,,,,,65,,,81,88,90',
',,96,97,297,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,243,247,252,253,254,249,251,259',
'260,255,256,,-628,-628,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246',
'47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,297,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,243,-628,-628',
'-628,-628,249,251,,,-628,-628,,,,,,257,258,,43,,,36,,,61,62,,,63,,38',
'240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,297,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,243',
',,,,,,,,,,,,,,,257,258,,43,,,299,,243,61,62,,,63,,38,240,,246,47,242',
'241,238,239,257,258,244,23,245,,,,91,83,85,86,87,89,,,240,84,92,,242',
'241,238,239,,65,,,81,88,90,,,96,97,297,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,243,-628',
'-628,-628,-628,249,251,,,-628,-628,,,,,,257,258,,43,,,36,,,61,62,,,63',
',38,240,,246,47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,297,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',
'243,-628,-628,-628,-628,249,251,,,-628,-628,,,,,,257,258,,43,,,36,,',
'61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,,,255,256,,,,,,257,258,,43,,,36',
',,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,297,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,243,247,252,253,254,249,251,259,,255,256,,,,,,257,258,,43',
',,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244,23,245',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,297,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,243,-628,-628,-628,-628,249,251,,,-628,-628,,,,,,257',
'258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250,248,244',
'23,245,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,297',
'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,243,-628,-628,-628,-628,249,251,,,-628,-628,,,',
',,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239,250',
'248,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,297,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,243,247,252,253,254,249,251,259,260,255',
'256,,-628,-628,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241',
'238,239,250,248,244,23,245,,,,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,243,-628,-628,-628,-628',
'249,251,,,-628,-628,,,,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246',
'47,242,241,238,239,250,248,244,23,245,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,297,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,243,,,,,,,,,',
',,,,,,257,258,,43,,,36,,,61,62,,,63,,38,240,,246,47,242,241,238,239',
',,244,23,245,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,297,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,243,,,,,,,,,,,,,,,,257,258,,43,,,36,,',
'61,62,,,63,,38,240,,246,47,242,241,238,239,,,,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,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,243',
',,,,,,,,,,,,,,,257,258,,228,,,234,,,61,62,,,63,,,240,,246,47,242,241',
'238,239,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,',
'96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,',
',,,310,311,317,104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,355,,,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,314,315,75,76,,,,,',
'310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61',
'62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76',
',,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59',
'100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,',
',234,,,61,62,,,63,,286,,,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84',
'288,,,,,,,65,,291,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,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,',
',,,,,228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86',
'87,89,,,,84,288,,,,,,,65,,291,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,,,235,,,,',
',,48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,',
',,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,23',
',,,,91,83,85,86,87,89,,,,84,92,223,,,,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286,,284,,47',
',,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,81,88,90,',
',96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310',
'311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,',
',63,,420,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76',
',,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234',
',,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315',
'75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228',
',,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,,,,404,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,,,,,,,',
',,,,,,,,,,,,228,,,234,,,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,,,,,,,',
',,,,,,,,,,,,228,,,234,,,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,,,,,,,',
',,,,,,,,,,,,228,,,234,,,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,,,,,,,',
',,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317,104,103,105,106,,',
'235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,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,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,',
',,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
'679,,,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291',
'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,,,235,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,',
'61,62,,,63,,420,,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,',
',234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86,87',
'89,,,,84,288,,,,,,,65,,291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,',
',,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106',
',,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,',
',,318,,,,,,,,,,,,,,,,,,,,308,,,234,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91',
'83,85,86,87,89,,,,84,92,,,,320,,,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,',
',235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,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',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,420,,,,47,,,,,,,,233',
',,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,223,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,61,62,,,63,,303,,,,,,,',
',,,,,,,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286,,284,,47',
',,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,',
'63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65',
',291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315',
'75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228',
',,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,312,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,902',
',,234,,,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,314,315',
'75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228',
',,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86,87',
'89,,,,84,288,,,,,,,65,,291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,',
',,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,284,,47,,,,,',
',,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,',
'47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310',
'311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,',
',63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,',
',,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,',
'61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75',
'76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,',
',234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,',
',,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,',
'47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310',
'311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,',
',63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,',
',,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,',
'61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75',
'76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,',
',234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,',
',,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,',
'47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310',
'311,317,104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,902,,,234,,,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,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,',
'63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65',
',291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315',
'75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228',
',,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109',
'98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,,,,91,287,85,86,87',
'89,,,,84,288,,,,,,,65,,291,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,,,235,,,,,,',
'48,,,108,107,109,98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,',
',,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,',
',,91,287,85,86,87,89,,,,84,288,223,,,,,,65,,291,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,',
',,,,,233,,,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,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,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,',
'47,,,,,,,,233,,,,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,',
'47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311',
'317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310',
'311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,',
',63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,',
',,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100',
'99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234',
',,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,',
',,,65,,291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286,,,,47',
',,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,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,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,234,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,522,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,286',
',284,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,',
',,,310,311,317,104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,975,,,234,,,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,314,315,75,76,,,,,',
'310,311,317,104,103,105,106,,,235,,,,,,,312,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,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,314,315,75,76,,,,,',
'310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61',
'62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,,',
',404,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,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,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,228,,,234,,,61,62,,,63,,286,,284,,47,,,,,,,,233,,,,,91,287',
'85,86,87,89,,,,84,288,,,,,,,65,,291,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',
',,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317,104,103,105,106,,',
'235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,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,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,312,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,318,,,,,,,,,,,,,,,,,,,,308,,,304,,,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,314,315,75,76,,,,,,310,311,317,104,103',
'105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,',
',,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,',
',,,,,,233,,,,,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,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,',
',,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317',
'104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,',
',,284,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76',
',,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234',
'538,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89,,,,84,92,,',
',,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314',
'315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107',
'109,98,59,100,99,101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,',
',,,,,228,,,234,,,61,62,,,63,,679,,284,,47,,,,,,,,233,,,,,91,287,85,86',
'87,89,,,,84,288,,,,,,,65,,291,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,,,235,,,,',
',,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,',
',,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,',
'235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,679,,,,47,,,,,,,,233',
',,,,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',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,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',
',,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,',
',,,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,,,,,,,,,,,,,,,,,,,,228,,,234,,,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,314,315,75,76,,,,,,310,311,317,104,103,105',
'106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,773,,,,47,,,,,',
',,233,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,,310,311,317,104',
'103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99,101,290,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,284',
',47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288,,,,,,,65,,291,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,314,315,75,76,,,,,',
'310,311,317,104,103,105,106,,,235,,,,,,,48,,,108,107,109,98,59,100,99',
'101,290,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,228,,,234,,',
'61,62,,,63,,679,,284,,47,,,,,,,,233,,,,,91,287,85,86,87,89,,,,84,288',
',,,,,,65,,291,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235,,',
',,,,312,,,108,107,109,598,59,100,99,599,,102,110,111,,94,95,,,,318,',
',,,,,,,,,,,,,,,,,,600,,,234,,,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,314,315,75,76,,,,,,310,311,317,104,103,105,106,,,235',
',,,,,,312,,,108,107,109,598,59,100,99,599,,102,110,111,,94,95,,,,318',
',,,,,,,,,,,,,,,,,,,600,,,234,,,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,,,22,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,228,,,234,,,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,,,',
',,,,,,,,,,,,,,,,228,,,234,,,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,,,235,,,,',
',,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,',
',,,,,,,,,,,,,,,,,228,,,234,,,61,62,,,63,,,,,,47,,,,,,,,233,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,176,187,177,200,173',
'193,183,182,203,204,198,181,180,175,201,205,206,185,174,188,192,194',
'186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178,169',
'170,166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145',
'147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176,187',
'177,200,173,193,183,182,203,204,198,181,180,175,201,205,206,185,174',
'188,192,194,186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,',
'171,178,169,170,166,167,168,127,129,126,,128,,,,,,,,,161,162,,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153',
',138,160,156,155,151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,',
',,,,,,158,176,187,177,200,173,193,183,182,203,204,198,181,180,175,201',
'205,206,185,174,188,192,194,186,179,,,,195,202,197,370,369,371,368,172',
'191,190,,,,,,171,178,169,170,365,366,367,363,129,100,99,364,,102,,,',
',,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150',
',,,,,377,,,,,,,,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,,,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,401,400,128,,402,,,,,,,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,-627,,165,,',
',,-627,-627,-627,,,-627,-627,-627,566,-627,563,562,561,571,564,158,',
',-627,-627,,,,,574,,,,,-627,-627,,-627,-627,-627,-627,-627,,,,,,,,,',
'569,,566,,563,562,561,571,564,579,578,582,581,,,,,,574,,,,,,,-627,,',
',,,,-627,,,,,274,-627,,569,,,,,575,,,,657,434,582,581,658,,,,,,-627',
'-627,,161,162,,157,139,140,141,148,145,147,,-627,142,143,,,-627,163',
'164,149,150,,,575,,,274,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,,,165,,,,,659,441,,,660,,,,,,,,,161,162,158,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154',
'153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,1039,441',
',,1040,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143,,,',
'163,164,149,150,,,,,,274,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,,,165,,,,,430,434,,,431,,,,,,,,,161,162,158,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154',
'153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,437,441,',
',436,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143,,,,163',
'164,149,150,,,,,,274,,,,,,,,154,153,,138,160,156,155,151,152,146,144',
'136,159,137,,,165,,,,,491,434,,,492,,,,,,,,,161,162,158,157,139,140',
'141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154,153',
',138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,1037,434,,,1038',
',,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164',
'149,150,,,,,,274,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136',
'159,137,,566,165,563,562,561,571,564,,,,,,,,,,574,,,,,158,,,,,,,,,566',
',563,562,561,571,564,,569,861,441,,,862,,,574,579,578,582,581,,161,162',
',157,139,140,141,148,145,147,,,142,143,,,569,163,164,149,150,,,,,,274',
'582,581,,,575,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,,,,,659,441,,,660,,575,,,,,,,161,162,158,157,139,140,141,148,145',
'147,,,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154,153,,138,160,156',
'155,151,152,146,144,136,159,137,,,165,,,,,657,434,,,658,,,,,,,,,161',
'162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,',
',,274,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,566',
'165,563,562,561,571,564,566,,563,562,561,571,564,,,574,,,,,158,,574',
',,,,,,,,,,,,,,569,,,,,,,569,,579,578,582,581,,,,579,578,582,581,,,,',
',,566,,563,562,561,571,564,,,,,491,434,,,492,574,,,575,,,,,161,162,575',
'157,139,140,141,148,145,147,,,142,143,569,,,163,164,149,150,,,579,578',
'582,581,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,566,,563,562,561,571,564,,575,692,441,,,693,,,574,,,158,,,161',
'162,,157,139,140,141,148,145,147,,,142,143,,,569,163,164,149,150,,,',
',,274,582,581,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159',
'137,,,165,,,,,689,434,,,690,,575,,,,,,,161,162,158,157,139,140,141,148',
'145,147,,,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154,153,,138,160',
'156,155,151,152,146,144,136,159,137,,566,165,563,562,561,571,564,,,',
',,,,,,574,,,,,158,,,,,,,,,566,,563,562,561,571,564,,569,1009,441,,,1008',
',,574,579,578,582,581,,161,162,,157,139,140,141,148,145,147,,,142,143',
',,569,163,164,149,150,,,223,,,274,582,581,,,575,,,154,153,,138,160,156',
'155,151,152,146,144,136,159,137,,,165,,,,,741,434,,,742,,575,,,,,,,161',
'162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,',
',,274,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,',
'165,,,,,743,441,,,744,,,,,,,,,161,162,158,157,139,140,141,148,145,147',
',,142,143,,,,163,164,149,150,,,,,,274,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,566,165,563,562,561,571,564,566,,563,562',
'561,571,564,,,574,,,,,158,,574,566,,563,562,561,571,564,,,,,,,,569,759',
'574,,,,,569,552,579,578,582,581,,,,579,578,582,581,,,,566,569,563,562',
'561,571,564,,,,579,578,582,581,,566,574,563,562,561,571,564,575,,,,',
',,575,,574,,,,,,,569,566,,563,562,561,571,564,575,,,582,581,,,569,,574',
',,,,,,,,582,581,,,,,,,,,,,,569,759,,,,,575,,,579,578,582,581,,,,,,,',
',575,,,,,,,,,,,,,,,,,,,,,,,,575' ]
        racc_action_table = arr = ::Array.new(26560, 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 = [
'98,392,933,699,699,596,684,98,98,98,454,454,98,98,98,690,98,604,466',
'959,1,684,959,22,98,370,98,98,98,762,762,64,370,859,600,395,98,98,600',
'98,98,98,98,98,80,345,743,689,737,741,466,346,80,356,466,466,860,589',
'692,22,942,732,858,976,392,942,1015,98,98,98,98,98,98,98,98,98,98,98',
'98,98,98,353,690,98,98,98,551,98,98,352,742,98,588,699,98,98,670,98',
'395,98,454,98,725,98,98,98,98,98,98,98,596,98,743,98,689,1040,933,690',
'64,762,690,933,819,604,692,692,98,98,98,98,1052,98,436,98,973,690,1039',
'1038,859,436,436,436,604,98,98,436,436,604,436,689,498,743,689,972,741',
'911,860,589,356,345,692,860,589,692,345,346,1037,689,436,436,346,436',
'436,436,436,436,858,976,692,858,1015,858,976,670,498,1015,353,330,330',
'819,313,551,588,1040,352,742,744,588,489,436,436,436,436,436,436,436',
'436,436,436,436,436,436,436,373,1039,436,436,436,29,436,373,226,229',
'436,819,510,436,819,379,1040,723,436,489,436,1040,436,436,436,436,436',
'436,436,819,436,1052,436,658,624,973,1052,1039,1038,708,973,227,1039',
'1038,437,436,436,386,436,744,436,437,437,437,972,700,911,437,437,972',
'437,911,436,436,313,226,229,1037,459,437,29,621,1037,510,510,510,379',
'379,379,657,437,437,698,437,437,437,437,437,744,793,658,990,29,990,510',
'624,624,389,227,365,318,318,294,381,624,695,365,294,386,386,386,437',
'437,437,437,437,437,437,437,437,437,437,437,437,437,459,694,437,437',
'437,371,437,621,621,671,437,657,371,437,44,44,621,18,437,322,437,793',
'437,437,437,437,437,437,437,27,437,437,437,389,389,389,27,691,861,381',
'381,381,364,671,101,437,437,688,437,364,437,101,101,101,318,318,101',
'101,101,18,101,322,437,437,709,497,369,686,101,740,101,101,101,369,18',
'709,322,755,20,20,101,101,755,101,101,101,101,101,368,305,363,861,678',
'44,44,368,305,363,861,497,676,349,431,861,669,305,349,861,709,709,772',
'101,101,101,101,101,101,101,101,101,101,101,101,101,101,861,366,101',
'101,101,367,101,101,366,663,101,661,367,101,101,652,101,709,101,431',
'101,599,101,101,101,101,101,101,101,305,101,861,101,724,431,724,724',
'724,717,724,717,717,717,717,717,101,101,101,101,430,101,868,101,41,717',
'704,868,659,704,777,640,646,101,101,659,659,659,641,887,659,659,659',
'126,659,599,5,717,126,126,887,5,599,659,659,659,659,599,717,717,334',
'599,430,334,659,659,41,659,659,659,659,659,637,640,633,760,631,430,324',
'599,760,41,724,887,887,324,628,929,640,929,929,929,717,929,324,659,659',
'659,659,659,659,659,659,659,659,659,659,659,659,591,599,659,659,659',
'590,659,659,887,339,659,42,339,659,659,585,659,397,659,583,659,598,659',
'659,659,659,659,659,659,580,659,659,659,899,324,899,899,899,1003,899',
'1003,1003,1003,1003,1003,659,659,659,659,795,659,974,659,42,1003,796',
'929,660,974,712,712,798,659,659,660,660,660,974,42,660,660,660,335,660',
'598,335,1003,799,397,397,397,598,800,660,660,660,598,1003,1003,802,598',
'730,730,660,660,803,660,660,660,660,660,804,862,805,354,576,747,568',
'598,862,559,354,383,747,862,383,974,558,862,818,354,1003,747,557,660',
'660,660,660,660,660,660,660,660,660,660,660,660,660,822,598,660,660',
'660,555,660,660,1023,1023,660,344,344,660,660,825,660,826,660,830,660',
'831,660,660,660,660,660,660,660,862,660,354,660,747,832,383,383,1001',
'833,1001,1001,1001,1001,1001,693,660,660,660,660,837,660,693,660,1001',
'756,756,693,30,838,840,693,841,660,660,30,30,30,843,846,30,30,30,554',
'30,527,1001,848,541,851,484,540,527,30,30,30,306,1001,1001,225,854,527',
'539,306,30,30,225,30,30,30,30,30,306,531,528,225,523,49,963,521,693',
'518,484,517,49,963,484,484,484,484,864,1001,500,49,963,30,30,30,30,30',
'30,30,30,30,30,30,30,30,30,499,527,30,30,30,470,869,30,870,30,30,871',
'306,30,30,225,30,880,30,881,30,469,30,30,30,30,30,30,30,468,30,30,30',
'49,963,467,1021,446,1021,1021,1021,438,1021,429,441,30,30,428,30,425',
'30,441,441,441,898,421,441,441,441,419,441,17,30,465,416,902,309,903',
'17,441,441,441,441,309,1021,394,905,17,906,391,441,441,309,441,441,441',
'441,441,388,307,385,357,355,351,901,465,307,350,340,465,465,901,763',
'763,337,307,763,763,763,931,901,441,441,441,441,441,441,441,441,441',
'441,441,441,441,441,336,17,441,441,441,602,309,441,935,936,441,332,602',
'441,441,326,441,941,441,323,441,602,441,441,441,441,441,441,441,307',
'441,441,441,1016,901,1016,1016,1016,1016,1016,9,9,9,9,9,441,441,441',
'441,1016,441,442,441,683,683,683,683,683,442,442,442,319,441,442,442',
'442,949,442,952,953,602,1016,954,485,955,957,442,442,442,442,317,312',
'1016,1016,311,967,308,442,442,302,442,442,442,442,442,849,301,849,849',
'849,569,849,569,569,569,485,569,300,975,485,485,485,485,298,978,979',
'1016,980,442,442,442,442,442,442,442,442,442,442,442,442,442,442,981',
'849,442,442,442,982,569,442,285,984,442,282,281,442,442,569,442,270',
'442,267,442,235,442,442,442,442,442,442,442,231,442,442,442,552,230',
'552,552,552,552,552,296,296,296,296,296,442,442,442,442,552,442,59,442',
'516,516,516,516,516,59,59,59,228,442,59,59,59,847,59,847,847,847,552',
'847,207,124,90,1008,59,59,59,552,552,552,552,1009,1011,89,59,59,88,59',
'59,59,59,59,930,87,930,930,930,72,930,48,43,847,1022,721,40,721,721',
'721,1027,721,847,1028,1029,552,1030,59,59,59,59,59,59,59,59,59,59,59',
'59,59,59,1031,930,59,59,59,1032,1033,59,1036,25,59,19,721,59,59,16,59',
'15,59,1041,59,721,59,59,59,59,59,59,59,1042,59,13,59,713,3,713,713,713',
'713,713,1054,,,,,59,59,59,59,713,59,432,59,,,,,,432,432,432,,59,432',
'432,432,,432,477,,,713,,,,,432,432,432,,713,713,713,713,477,477,,432',
'432,,432,432,432,432,432,985,,985,985,985,477,985,477,,477,477,477,477',
',,477,983,477,983,983,983,713,983,432,432,432,432,432,432,432,432,432',
'432,432,432,432,432,,985,432,432,432,,,432,,432,432,,,432,432,,432,983',
'432,,432,,432,432,432,432,432,432,432,,432,432,432,1007,,1007,1007,1007',
',1007,,,,,31,432,432,,432,,432,31,31,31,,,31,31,31,476,31,,432,,,,,',
',,31,31,,,,476,476,,,,31,31,,31,31,31,31,31,,,,476,,476,,476,476,476',
'476,,,476,,476,,,,,,,,31,31,31,31,31,31,31,31,31,31,31,31,31,31,,,31',
'31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,31,31,31,31,31,,31,,31',
',,,,,,,,,,,,31,31,,31,,31,865,865,865,865,865,865,,,,865,865,31,,,865',
',865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,,,865',
',,,,449,865,865,,865,865,865,865,865,865,865,865,865,,865,865,865,,865',
'865,,865,865,865,449,449,449,449,449,449,449,449,449,449,449,,449,449',
',,449,449,,865,,,865,,,865,865,,,865,,865,449,,449,865,449,449,449,449',
'449,449,449,865,449,,,,865,865,865,865,865,865,,,,865,865,,449,,449',
',,865,,,865,865,865,,,865,865,299,299,299,299,299,299,,,,299,299,,,',
'299,,299,299,299,299,299,299,299,,,,,,299,299,299,299,299,299,299,,',
'299,,,,,424,299,299,,299,299,299,299,299,299,299,299,299,,299,299,299',
',299,299,,299,299,299,424,424,424,424,424,424,424,424,424,424,424,,424',
'424,,,424,424,,299,,,299,,,299,299,,,299,,299,424,,424,299,424,424,424',
'424,424,424,424,299,424,,,,299,299,299,299,299,299,,,,299,299,,424,',
',,,299,,,299,299,299,,,299,299,584,584,584,584,584,584,,,,584,584,,',
',584,,584,584,584,584,584,584,584,,,,,,584,584,584,584,584,584,584,',
',584,,,,,662,584,584,,584,584,584,584,584,584,584,584,584,,584,584,584',
',584,584,,584,584,584,662,662,662,662,662,662,662,662,662,662,662,,662',
'662,,,662,662,,584,,,584,,,584,584,,,584,,584,662,,662,584,662,662,662',
'662,662,662,662,584,662,,,,584,584,584,584,584,584,,,,584,584,,662,',
',,,584,,,584,584,584,,,584,584,986,986,986,986,986,986,,,,986,986,,',
',986,,986,986,986,986,986,986,986,,,,,,986,986,986,986,986,986,986,',
',986,,,,,,986,986,,986,986,986,986,986,986,986,986,986,,986,986,986',
',986,986,,986,986,986,784,784,784,784,784,784,784,784,784,784,784,,784',
'784,,,784,784,,986,,,986,,,986,986,,,986,,986,784,,784,986,784,784,784',
'784,784,784,784,986,784,,,,986,986,986,986,986,986,,,,986,986,,784,',
',,,986,,,986,986,986,,,986,986,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,886,886,886,886,886,886,886,886,886,886,886,,886',
'886,,,886,886,,410,,,410,,,410,410,,,410,,410,886,,886,410,886,886,886',
'886,886,886,886,410,886,,,,410,410,410,410,410,410,,,,410,410,,886,',
',,,410,,,410,410,410,,,410,410,991,991,991,991,991,991,,,,991,991,,',
',991,,991,991,991,991,991,991,991,,,,,,991,991,991,991,991,991,991,',
',991,,,,,,991,991,,991,991,991,991,991,991,991,991,991,,991,991,991',
',991,991,,991,991,991,444,444,444,444,444,444,444,444,444,444,444,,444',
'444,,,444,444,,991,,,991,,,991,991,,,991,,991,444,,444,991,444,444,444',
'444,444,444,444,991,444,,,,991,991,991,991,991,991,,,,991,991,,444,',
',,,991,,,991,991,991,,,991,991,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,488,488,488,488,488,488,488,488,488,488,488,,488',
'488,,,488,488,,855,,,855,,,855,855,,,855,,855,488,,488,855,488,488,488',
'488,488,488,488,855,488,,,,855,855,855,855,855,855,,,,855,855,488,488',
',,,,855,,,855,855,855,,,855,855,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,774,774,774,774,774,774,774,774,774,774,774,,774',
'774,,,774,774,,994,,,994,,,994,994,,,994,,994,774,,774,994,774,774,774',
'774,774,774,774,994,774,,,,994,994,994,994,994,994,,,,994,994,,774,',
',,,994,,,994,994,994,,,994,994,234,234,234,234,234,234,,,,234,234,,',
',234,,234,234,234,234,234,234,234,,,,,,234,234,234,234,234,234,234,',
',234,,,,,,234,234,,234,234,234,234,234,234,234,234,234,,234,234,234',
',234,234,,234,234,234,779,779,779,779,779,779,779,779,779,779,779,,779',
'779,,,779,779,,234,,,234,,,234,234,,,234,,234,779,,779,234,779,779,779',
'779,779,779,779,234,779,,,,234,234,234,234,234,234,,,,234,234,,779,',
',,,234,,,234,234,234,,,234,234,904,904,904,904,904,904,,,,904,904,,',
',904,,904,904,904,904,904,904,904,,,,,,904,904,904,904,904,904,904,',
',904,,,,,,904,904,,904,904,904,904,904,904,904,904,904,,904,904,904',
',904,904,,904,904,904,781,781,781,781,781,781,781,781,781,781,781,,781',
'781,,,781,781,,904,,,904,,,904,904,,,904,,904,781,,781,904,781,781,781',
'781,781,781,781,904,781,,,,904,904,904,904,904,904,,,,904,904,,781,',
',,,904,,,904,904,904,,,904,904,587,587,587,587,587,587,,,,587,587,,',
',587,,587,587,587,587,587,587,587,,,,,,587,587,587,587,587,587,587,',
',587,,,,,,587,587,,587,587,587,587,587,587,587,587,587,,587,587,587',
',587,587,,587,587,587,786,786,786,786,786,786,786,786,786,786,786,,786',
'786,,,786,786,,587,,,587,,,587,587,,,587,,587,786,,786,587,786,786,786',
'786,786,786,786,587,786,,,,587,587,587,587,587,587,,,,587,587,,786,',
',,,587,,,587,587,587,,,587,587,995,995,995,995,995,995,,,,995,995,,',
',995,,995,995,995,995,995,995,995,,,,,,995,995,995,995,995,995,995,',
',995,,,,,,995,995,,995,995,995,995,995,995,995,995,995,,995,995,995',
',995,995,,995,995,995,788,788,788,788,788,788,788,788,788,788,788,,788',
'788,,,788,788,,995,,,995,,,995,995,,,995,,995,788,,788,995,788,788,788',
'788,788,788,788,995,788,,,,995,995,995,995,995,995,,,,995,995,,788,',
',,,995,,,995,995,995,,,995,995,758,758,758,758,758,758,,,,758,758,,',
',758,,758,758,758,758,758,758,758,,,,,,758,758,758,758,758,758,758,',
',758,,,,,,758,758,,758,758,758,758,758,758,758,758,758,,758,758,758',
',758,758,,758,758,758,883,883,883,883,883,883,883,883,883,883,883,,883',
'883,,,883,883,,758,,,758,,,758,758,,,758,,758,883,,883,758,883,883,883',
'883,883,883,883,758,883,,,,758,758,758,758,758,758,,,,758,758,,883,',
',,,758,,,758,758,758,,,758,758,809,809,809,809,809,809,,,,809,809,,',
',809,,809,809,809,809,809,809,809,,,,,,809,809,809,809,809,809,809,',
',809,,,,,,809,809,,809,809,809,809,809,809,809,809,809,,809,809,809',
',809,809,,809,809,809,697,697,697,697,697,697,697,697,697,697,697,,697',
'697,,,697,697,,809,,,809,,,809,809,,,809,,809,697,,697,809,697,697,697',
'697,697,697,697,809,697,,,,809,809,809,809,809,809,,,,809,809,,697,',
',,,809,,,809,809,809,,,809,809,36,36,36,36,36,36,,,,36,36,,,,36,,36',
'36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,36,36,,36,36,36',
'36,36,36,36,36,36,,36,36,36,,36,36,,36,36,36,24,24,24,24,24,24,24,24',
'24,24,24,,24,24,,,24,24,,36,,,36,,,36,36,,,36,,36,24,,24,36,24,24,24',
'24,24,24,24,36,24,,,,36,36,36,36,36,36,,,,36,36,,24,,,,,36,,,36,36,36',
',,36,36,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,537,537',
'537,537,537,537,537,537,537,537,537,,537,537,,,537,537,,757,,,757,,',
'757,757,,,757,,757,537,,537,757,537,537,537,537,537,537,537,757,537',
',,,757,757,757,757,757,757,,,,757,757,,537,,,,,757,,,757,757,757,,,757',
'757,856,856,856,856,856,856,,,,856,856,,,,856,,856,856,856,856,856,856',
'856,,,,,,856,856,856,856,856,856,856,,,856,,,,,,856,856,,856,856,856',
'856,856,856,856,856,856,,856,856,856,,856,856,,856,856,856,279,279,279',
'279,279,279,279,279,279,279,279,,279,279,,,279,279,,856,,,856,,,856',
'856,,,856,,856,279,,279,856,279,279,279,279,279,279,279,856,279,,,,856',
'856,856,856,856,856,,,,856,856,,279,,,,,856,,,856,856,856,,,856,856',
'908,908,908,908,908,908,,,,908,908,,,,908,,908,908,908,908,908,908,908',
',,,,,908,908,908,908,908,908,908,,,908,,,,,,908,908,,908,908,908,908',
'908,908,908,908,908,,908,908,908,,908,908,,908,908,908,463,463,463,463',
'463,463,463,463,463,463,463,,463,463,,,463,463,,908,,,908,,,908,908',
',,908,,908,463,,463,908,463,463,463,463,463,463,463,908,463,,,,908,908',
'908,908,908,908,,,,908,908,,,,,,,908,,,908,908,908,,,908,908,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,481,481,481,481,481',
'481,481,,,481,481,,,,,,481,481,,209,,,209,,,209,209,,,209,,209,481,',
'481,209,481,481,481,481,481,481,481,209,481,,,,209,209,209,209,209,209',
',,,209,209,,,,,,,209,,,209,209,209,,,209,209,304,304,304,304,304,304',
',,,304,304,,,,304,,304,304,304,304,304,304,304,,,,,,304,304,304,304',
'304,304,304,,,304,,,,,,304,304,,304,304,304,304,304,304,304,304,304',
',304,304,304,,304,304,,304,304,304,475,,,,,,,,,,,,,,,,475,475,,304,',
',304,,473,304,304,,,304,,304,475,,475,304,475,475,475,475,473,473,475',
'304,475,,,,304,304,304,304,304,304,,,473,304,304,,473,473,473,473,,304',
',,304,304,304,,,304,304,707,707,707,707,707,707,,,,707,707,,,,707,,707',
'707,707,707,707,707,707,,,,,,707,707,707,707,707,707,707,,,707,,,,,',
'707,707,,707,707,707,707,707,707,707,707,707,,707,707,707,,707,707,',
'707,707,707,480,480,480,480,480,480,480,,,480,480,,,,,,480,480,,707',
',,707,,,707,707,,,707,,707,480,,480,707,480,480,480,480,480,480,480',
'707,480,,,,707,707,707,707,707,707,,,,707,707,,,,,,,707,,,707,707,707',
',,707,707,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,474',
'474,474,474,474,474,474,,,474,474,,,,,,474,474,,706,,,706,,,706,706',
',,706,,706,474,,474,706,474,474,474,474,474,474,474,706,474,,,,706,706',
'706,706,706,706,,,,706,706,,,,,,,706,,,706,706,706,,,706,706,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,486,486,486,486,486',
'486,486,,,486,486,,,,,,486,486,,813,,,813,,,813,813,,,813,,813,486,',
'486,813,486,486,486,486,486,486,486,813,486,,,,813,813,813,813,813,813',
',,,813,813,,,,,,,813,,,813,813,813,,,813,813,764,764,764,764,764,764',
',,,764,764,,,,764,,764,764,764,764,764,764,764,,,,,,764,764,764,764',
'764,764,764,,,764,,,,,,764,764,,764,764,764,764,764,764,764,764,764',
',764,764,764,,764,764,,764,764,764,487,487,487,487,487,487,487,487,',
'487,487,,,,,,487,487,,764,,,764,,,764,764,,,764,,764,487,,487,764,487',
'487,487,487,487,487,487,764,487,,,,764,764,764,764,764,764,,,,764,764',
',,,,,,764,,,764,764,764,,,764,764,971,971,971,971,971,971,,,,971,971',
',,,971,,971,971,971,971,971,971,971,,,,,,971,971,971,971,971,971,971',
',,971,,,,,,971,971,,971,971,971,971,971,971,971,971,971,,971,971,971',
',971,971,,971,971,971,482,482,482,482,482,482,482,,,482,482,,,,,,482',
'482,,971,,,971,,,971,971,,,971,,971,482,,482,971,482,482,482,482,482',
'482,482,971,482,,,,971,971,971,971,971,971,,,,971,971,,,,,,,971,,,971',
'971,971,,,971,971,938,938,938,938,938,938,,,,938,938,,,,938,,938,938',
'938,938,938,938,938,,,,,,938,938,938,938,938,938,938,,,938,,,,,,938',
'938,,938,938,938,938,938,938,938,938,938,,938,938,938,,938,938,,938',
'938,938,479,479,479,479,479,479,479,,,479,479,,,,,,479,479,,938,,,938',
',,938,938,,,938,,938,479,,479,938,479,479,479,479,479,479,479,938,479',
',,,938,938,938,938,938,938,,,,938,938,,,,,,,938,,,938,938,938,,,938',
'938,329,329,329,329,329,329,,,,329,329,,,,329,,329,329,329,329,329,329',
'329,,,,,,329,329,329,329,329,329,329,,,329,,,,,,329,329,,329,329,329',
'329,329,329,329,329,329,,329,329,329,,329,329,,329,329,329,464,464,464',
'464,464,464,464,464,464,464,464,,464,464,,,464,464,,329,,,329,,,329',
'329,,,329,,329,464,,464,329,464,464,464,464,464,464,464,329,464,,,,329',
'329,329,329,329,329,,,,329,329,,,,,,,329,,,329,329,329,,,329,329,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,483,483,483,483,483,483,483,,,483',
'483,,,,,,483,483,,2,,,2,,,2,2,,,2,,2,483,,483,2,483,483,483,483,483',
'483,483,2,483,,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,,,2,2,814,814,814',
'814,814,814,,,,814,814,,,,814,,814,814,814,814,814,814,814,,,,,,814',
'814,814,814,814,814,814,,,814,,,,,,814,814,,814,814,814,814,814,814',
'814,814,814,,814,814,814,,814,814,,814,814,814,478,,,,,,,,,,,,,,,,478',
'478,,814,,,814,,,814,814,,,814,,814,478,,478,814,478,478,478,478,,,478',
'814,478,,,,814,814,814,814,814,814,,,,814,814,,,,,,,814,,,814,814,814',
',,814,814,824,824,824,824,824,824,,,,824,824,,,,824,,824,824,824,824',
'824,824,824,,,,,,824,824,824,824,824,824,824,,,824,,,,,,824,824,,824',
'824,824,824,824,824,824,824,824,,824,824,824,,824,824,,824,824,824,471',
',,,,,,,,,,,,,,,471,471,,824,,,824,,,824,824,,,824,,824,471,,471,824',
'471,471,471,471,,,,824,,,,,824,824,824,824,824,824,,,,824,824,,,,,,',
'824,,,824,824,824,,,824,824,291,291,291,,291,,,,291,291,,,,291,,291',
'291,291,291,291,291,291,,,,,,291,291,291,291,291,291,291,,,291,,,,,',
',291,,,291,291,291,291,291,291,291,291,,291,291,291,,291,291,,291,291',
'291,472,,,,,,,,,,,,,,,,472,472,,291,,,291,,,291,291,,,291,,,472,,472',
'291,472,472,472,472,,,,291,,,,,291,291,291,291,291,291,,,,291,291,,',
',,,,291,,,291,291,291,,,291,291,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,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,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,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,751,751,751,,751',
',,,751,751,,,,751,,751,751,751,751,751,751,751,,,,,,751,751,751,751',
'751,751,751,,,751,,,,,,,751,,,751,751,751,751,751,751,751,751,751,751',
'751,751,,751,751,,751,751,751,,,,,,,,,,,,,,,,,,,,751,,,751,,,751,751',
',,751,,751,,751,,751,,,,,,,,751,,,,,751,751,751,751,751,751,,,,751,751',
',,,,,,751,,751,751,751,751,,,751,751,458,458,458,,458,,,,458,458,,,',
'458,,458,458,458,458,458,458,458,,,,,,458,458,458,458,458,458,458,,',
'458,,,,,,,458,,,458,458,458,458,458,458,458,458,458,458,458,458,,458',
'458,,458,458,458,,,,,,,,,,,,,,,,,,,,458,,,458,,,458,458,,,458,,458,',
'458,,458,,,,,,,,458,,,,,458,458,458,458,458,458,,,,458,458,,,,,,,458',
',458,458,458,458,,,458,458,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,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,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,1012,,,,,,,1012,,1012,1012,1012,1012,,,1012,1012,701,701,701',
',701,,,,701,701,,,,701,,701,701,701,701,701,701,701,,,,,,701,701,701',
'701,701,701,701,,,701,,,,,,,701,,,701,701,701,701,701,701,701,701,,701',
'701,701,,701,701,,701,701,701,,,,,,,,,,,,,,,,,,,,701,,,701,,,701,701',
',,701,,701,,,,701,,,,,,,,701,,,,,701,701,701,701,701,701,,,,701,701',
',,,,,,701,,,701,701,701,,,701,701,462,462,462,,462,,,,462,462,,,,462',
',462,462,462,462,462,462,462,,,,,,462,462,462,462,462,462,462,,,462',
',,,,,,462,,,462,462,462,462,462,462,462,462,,462,462,462,,462,462,,462',
'462,462,,,,,,,,,,,,,,,,,,,,462,,,462,,,462,462,,,462,,,,,,462,,,,,,',
',462,,,,,462,462,462,462,462,462,,,,462,462,,,,,,,462,,,462,462,462',
',,462,462,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,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,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,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,696,696,696,,696,,,,696,696',
',,,696,,696,696,696,696,696,696,696,,,,,,696,696,696,696,696,696,696',
',,696,,,,,,,696,,,696,696,696,696,696,696,696,696,,696,696,696,,696',
'696,,,,696,,,,,,,,,,,,,,,,,,,,696,,,696,,,696,696,,,696,,,,,,,,,,,,',
',,,,,,696,696,696,696,696,696,,,,696,696,,,,,,,696,,,696,696,696,,,696',
'696,547,547,547,,547,,,,547,547,,,,547,,547,547,547,547,547,547,547',
',,,,,547,547,547,547,547,547,547,,,547,,,,,,,547,,,547,547,547,547,547',
'547,547,547,547,547,547,547,,547,547,,547,547,547,,,,,,,,,,,,,,,,,,',
',547,,,547,,,547,547,,,547,,,,,,547,,,,,,,,547,,,,,547,547,547,547,547',
'547,,,,547,547,,,,,,,547,,547,547,547,547,,,547,547,544,544,544,,544',
',,,544,544,,,,544,,544,544,544,544,544,544,544,,,,,,544,544,544,544',
'544,544,544,,,544,,,,,,,544,,,544,544,544,544,544,544,544,544,544,544',
'544,544,,544,544,,544,544,544,,,,,,,,,,,,,,,,,,,,544,,,544,,,544,544',
',,544,,544,,,,544,,,,,,,,544,,,,,544,544,544,544,544,544,,,,544,544',
',,,,,,544,,544,544,544,544,,,544,544,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,885,885,885,,885,,,,885,885',
',,,885,,885,885,885,885,885,885,885,,,,,,885,885,885,885,885,885,885',
',,885,,,,,,,885,,,885,885,885,885,885,885,885,885,,885,885,885,,885',
'885,,885,885,885,,,,,,,,,,,,,,,,,,,,885,,,885,,,885,885,,,885,,,,,,885',
',,,,,,,885,,,,,885,885,885,885,885,885,,,,885,885,,,,,,,885,,,885,885',
'885,,,885,885,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,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,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',
'222,222,222,,222,,,,222,222,,,,222,,222,222,222,222,222,222,222,,,,',
',222,222,222,222,222,222,222,,,222,,,,,,,222,,,222,222,222,222,222,222',
'222,222,,222,222,222,,222,222,,222,222,222,,,,,,,,,,,,,,,,,,,,222,,',
'222,,,222,222,,,222,,,,,,222,,,,,,,,222,,,,,222,222,222,222,222,222',
',,,222,222,222,,,,,,222,,,222,222,222,,,222,222,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,572,572,572,,572,,,,572,572,,,,572,,572,572,572,572,572,572',
'572,,,,,,572,572,572,572,572,572,572,,,572,,,,,,,572,,,572,572,572,572',
'572,572,572,572,,572,572,572,,572,572,,572,572,572,,,,,,,,,,,,,,,,,',
',,572,,,572,,,572,572,,,572,,,,,,572,,,,,,,,572,,,,,572,572,572,572',
'572,572,,,,572,572,,,,,,,572,,,572,572,572,,,572,572,806,806,806,,806',
',,,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806',
'806,806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806',
'806,,806,806,,,,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,,',
',,,,,,,,,,,,,,,806,806,806,806,806,806,,,,806,806,,,,,,,806,,,806,806',
'806,,,806,806,420,420,420,,420,,,,420,420,,,,420,,420,420,420,420,420',
'420,420,,,,,,420,420,420,420,420,420,420,,,420,,,,,,,420,,,420,420,420',
'420,420,420,420,420,,420,420,420,,420,420,,420,420,420,,,,,,,,,,,,,',
',,,,,,420,,,420,,,420,420,,,420,,,,,,420,,,,,,,,420,,,,,420,420,420',
'420,420,420,,,,420,420,,,,,,,420,,,420,420,420,,,420,420,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,233,233,233,,233',
',,,233,233,,,,233,,233,233,233,233,233,233,233,,,,,,233,233,233,233',
'233,233,233,,,233,,,,,,,233,,,233,233,233,233,233,233,233,233,,233,233',
'233,,233,233,,233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233',
',,,,,233,,,,,,,,233,,,,,233,233,233,233,233,233,,,,233,233,,,,,,,233',
',,233,233,233,,,233,233,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,884',
',,884,884,853,853,853,,853,,,,853,853,,,,853,,853,853,853,853,853,853',
'853,,,,,,853,853,853,853,853,853,853,,,853,,,,,,,853,,,853,853,853,853',
'853,853,853,853,,853,853,853,,853,853,,853,853,853,,,,,,,,,,,,,,,,,',
',,853,,,853,,,853,853,,,853,,,,,,853,,,,,,,,853,,,,,853,853,853,853',
'853,853,,,,853,853,,,,,,,853,,,853,853,853,,,853,853,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,261,261,261,,261,,,,261,261,,,,261,,261',
'261,261,261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,',
',261,,,261,261,261,261,261,261,261,261,,261,261,261,,261,261,,261,261',
'261,,,,,,,,,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,261',
',,,,261,261,261,261,261,261,,,,261,261,,,,,,,261,,,261,261,261,,,261',
'261,900,900,900,,900,,,,900,900,,,,900,,900,900,900,900,900,900,900',
',,,,,900,900,900,900,900,900,900,,,900,,,,,,,900,,,900,900,900,900,900',
'900,900,900,,900,900,900,,900,900,,,,900,,,,,,,,,,,,,,,,,,,,900,,,900',
',,900,900,,,900,,,,,,,,,,,,,,,,,,,900,900,900,900,900,900,,,,900,900',
',,,,,,900,,,900,900,900,,,900,900,719,719,719,,719,,,,719,719,,,,719',
',719,719,719,719,719,719,719,,,,,,719,719,719,719,719,719,719,,,719',
',,,,,,719,,,719,719,719,719,719,719,719,719,,719,719,719,,719,719,,719',
'719,719,,,,,,,,,,,,,,,,,,,,719,,,719,,,719,719,,,719,,,,,,719,,,,,,',
',719,,,,,719,719,719,719,719,719,,,,719,719,,,,,,,719,,,719,719,719',
',,719,719,268,268,268,,268,,,,268,268,,,,268,,268,268,268,268,268,268',
'268,,,,,,268,268,268,268,268,268,268,,,268,,,,,,,268,,,268,268,268,268',
'268,268,268,268,268,268,268,268,,268,268,,268,268,268,,,,,,,,,,,,,,',
',,,,,268,,,268,,,268,268,,,268,,268,,268,,268,,,,,,,,268,,,,,268,268',
'268,268,268,268,,,,268,268,,,,,,,268,,268,268,268,268,,,268,268,794',
'794,794,,794,,,,794,794,,,,794,,794,794,794,794,794,794,794,,,,,,794',
'794,794,794,794,794,794,,,794,,,,,,,794,,,794,794,794,794,794,794,794',
'794,,794,794,794,,794,794,,794,794,794,,,,,,,,,,,,,,,,,,,,794,,,794',
',,794,794,,,794,,,,,,794,,,,,,,,794,,,,,794,794,794,794,794,794,,,,794',
'794,,,,,,,794,,,794,794,794,,,794,794,274,274,274,,274,,,,274,274,,',
',274,,274,274,274,274,274,274,274,,,,,,274,274,274,274,274,274,274,',
',274,,,,,,,274,,,274,274,274,274,274,274,274,274,274,274,274,274,,274',
'274,,274,274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274,,,274,,274,',
'274,,274,,,,,,,,274,,,,,274,274,274,274,274,274,,,,274,274,,,,,,,274',
',274,274,274,274,,,274,274,277,277,277,,277,,,,277,277,,,,277,,277,277',
'277,277,277,277,277,,,,,,277,277,277,277,277,277,277,,,277,,,,,,,277',
',,277,277,277,277,277,277,277,277,277,277,277,277,,277,277,,277,277',
'277,,,,,,,,,,,,,,,,,,,,277,,,277,,,277,277,,,277,,277,,277,,277,,,,',
',,,277,,,,,277,277,277,277,277,277,,,,277,277,277,,,,,,277,,277,277',
'277,277,,,277,277,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,538,538,538,,538,,,,538,538,,,,538,,538,538,538,538,538,538,538,',
',,,,538,538,538,538,538,538,538,,,538,,,,,,,538,,,538,538,538,538,538',
'538,538,538,,538,538,538,,538,538,,538,538,538,,,,,,,,,,,,,,,,,,,,538',
',,538,,,538,538,,,538,,,,,,538,,,,,,,,538,,,,,538,538,538,538,538,538',
',,,538,538,,,,,,,538,,,538,538,538,,,538,538,685,685,685,,685,,,,685',
'685,,,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685',
'685,,,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,',
'685,685,,,,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,,,',
',,,,,,,,,,685,685,685,685,685,685,,,,685,685,,,,,,,685,,,685,685,685',
',,685,685,284,284,284,,284,,,,284,284,,,,284,,284,284,284,284,284,284',
'284,,,,,,284,284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284',
'284,284,284,284,,284,284,284,,284,284,,284,284,284,,,,,,,,,,,,,,,,,',
',,284,,,284,,,284,284,,,284,,,,,,284,,,,,,,,284,,,,,284,284,284,284',
'284,284,,,,284,284,,,,,,,284,,,284,284,284,,,284,284,745,745,745,,745',
',,,745,745,,,,745,,745,745,745,745,745,745,745,,,,,,745,745,745,745',
'745,745,745,,,745,,,,,,,745,,,745,745,745,745,745,745,745,745,,745,745',
'745,,745,745,,745,745,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,745,745,,,745',
',,,,,745,,,,,,,,745,,,,,745,745,745,745,745,745,,,,745,745,,,,,,,745',
',,745,745,745,,,745,745,286,286,286,,286,,,,286,286,,,,286,,286,286',
'286,286,286,286,286,,,,,,286,286,286,286,286,286,286,,,286,,,,,,,286',
',,286,286,286,286,286,286,286,286,,286,286,286,,286,286,,286,286,286',
',,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,,286,,,,,,286,,,,,,,,286,,,',
',286,286,286,286,286,286,,,,286,286,,,,,,,286,,,286,286,286,,,286,286',
'288,288,288,,288,,,,288,288,,,,288,,288,288,288,288,288,288,288,,,,',
',288,288,288,288,288,288,288,,,288,,,,,,,288,,,288,288,288,288,288,288',
'288,288,,288,288,288,,288,288,,288,288,288,,,,,,,,,,,,,,,,,,,,288,,',
'288,,,288,288,,,288,,,,,,288,,,,,,,,288,,,,,288,288,288,288,288,288',
',,,288,288,,,,,,,288,,,288,288,288,,,288,288,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,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,682,682,682,,682,,,,682,682,,,,682,,682,682,682,682,682,682',
'682,,,,,,682,682,682,682,682,682,682,,,682,,,,,,,682,,,682,682,682,682',
'682,682,682,682,,682,682,682,,682,682,,682,682,682,,,,,,,,,,,,,,,,,',
',,682,,,682,,,682,682,,,682,,,,,,682,,,,,,,,682,,,,,682,682,682,682',
'682,682,,,,682,682,,,,,,,682,,,682,682,682,,,682,682,679,679,679,,679',
',,,679,679,,,,679,,679,679,679,679,679,679,679,,,,,,679,679,679,679',
'679,679,679,,,679,,,,,,,679,,,679,679,679,679,679,679,679,679,,679,679',
'679,,679,679,,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679,679,,,679',
',,,,,679,,,,,,,,679,,,,,679,679,679,679,679,679,,,,679,679,,,,,,,679',
',,679,679,679,,,679,679,297,297,297,297,297,,,,297,297,,,,297,,297,297',
'297,297,297,297,297,,,,,,297,297,297,297,297,297,297,,,297,,,,,,297',
'297,,297,297,297,297,297,297,297,297,297,,297,297,297,,297,297,,297',
'297,297,,,,,,,,,,,,,,,,,,,,297,,,297,,,297,297,,,297,,297,,,,297,,,',
',,,,297,,,,,297,297,297,297,297,297,,,,297,297,,,,,,,297,,,297,297,297',
',,297,297,792,792,792,,792,,,,792,792,,,,792,,792,792,792,792,792,792',
'792,,,,,,792,792,792,792,792,792,792,,,792,,,,,,,792,,,792,792,792,792',
'792,792,792,792,,792,792,792,,792,792,,792,792,792,,,,,,,,,,,,,,,,,',
',,792,,,792,,,792,792,,,792,,,,,,792,,,,,,,,792,,,,,792,792,792,792',
'792,792,,,,792,792,,,,,,,792,,,792,792,792,,,792,792,534,534,534,,534',
',,,534,534,,,,534,,534,534,534,534,534,534,534,,,,,,534,534,534,534',
'534,534,534,,,534,,,,,,,534,,,534,534,534,534,534,534,534,534,,534,534',
'534,,534,534,,534,534,534,,,,,,,,,,,,,,,,,,,,534,,,534,,,534,534,,,534',
',,,,,534,,,,,,,,534,,,,,534,534,534,534,534,534,,,,534,534,,,,,,,534',
',,534,534,534,,,534,534,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',
'739,739,739,,739,,,,739,739,,,,739,,739,739,739,739,739,739,739,,,,',
',739,739,739,739,739,739,739,,,739,,,,,,,739,,,739,739,739,739,739,739',
'739,739,,739,739,739,,739,739,,739,739,739,,,,,,,,,,,,,,,,,,,,739,,',
'739,,,739,739,,,739,,739,,,,739,,,,,,,,739,,,,,739,739,739,739,739,739',
',,,739,739,,,,,,,739,,,739,739,739,,,739,739,530,530,530,,530,,,,530',
'530,,,,530,,530,530,530,530,530,530,530,,,,,,530,530,530,530,530,530',
'530,,,530,,,,,,,530,,,530,530,530,530,530,530,530,530,,530,530,530,',
'530,530,,,,530,,,,,,,,,,,,,,,,,,,,530,,,530,,,530,530,,,530,,,,,,,,',
',,,,,,,,,,530,530,530,530,530,530,,,,530,530,,,,,,,530,,,530,530,530',
',,530,530,303,303,303,,303,,,,303,303,,,,303,,303,303,303,303,303,303',
'303,,,,,,303,303,303,303,303,303,303,,,303,,,,,,,303,,,303,303,303,303',
'303,303,303,303,,303,303,303,,303,303,,,,303,,,,,,,,,,,,,,,,,,,,303',
',,303,,,303,303,,,303,,,,,,,,,,,,,,,,,,,303,303,303,303,303,303,,,,303',
'303,,,,303,,,303,,,303,303,303,,,303,303,524,524,524,,524,,,,524,524',
',,,524,,524,524,524,524,524,524,524,,,,,,524,524,524,524,524,524,524',
',,524,,,,,,,524,,,524,524,524,524,524,524,524,524,524,524,524,524,,524',
'524,,524,524,524,,,,,,,,,,,,,,,,,,,,524,,,524,,,524,524,,,524,,524,',
'524,,524,,,,,,,,524,,,,,524,524,524,524,524,524,,,,524,524,,,,,,,524',
',524,524,524,524,,,524,524,912,912,912,,912,,,,912,912,,,,912,,912,912',
'912,912,912,912,912,,,,,,912,912,912,912,912,912,912,,,912,,,,,,,912',
',,912,912,912,912,912,912,912,912,,912,912,912,,912,912,,,,912,,,,,',
',,,,,,,,,,,,,,912,,,912,,,912,912,,,912,,,,,,,,,,,,,,,,,,,912,912,912',
'912,912,912,,,,912,912,,,,,,,912,,,912,912,912,,,912,912,522,522,522',
',522,,,,522,522,,,,522,,522,522,522,522,522,522,522,,,,,,522,522,522',
'522,522,522,522,,,522,,,,,,,522,,,522,522,522,522,522,522,522,522,,522',
'522,522,,522,522,,,,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522',
',,,,,,,,,,,,,,,,,,522,522,522,522,522,522,,,,522,522,,,,,,,522,,,522',
'522,522,,,522,522,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,515,515',
'515,515,515,,,,515,515,,,,515,,515,515,515,515,515,515,515,,,,,,515',
'515,515,515,515,515,515,,,515,,,,,,515,515,,515,515,515,515,515,515',
'515,515,515,,515,515,515,,515,515,,515,515,515,,,,,,,,,,,,,,,,,,,,515',
',,515,,,515,515,,,515,,515,,,,515,,,,,,,,515,,,,,515,515,515,515,515',
'515,,,,515,515,,,,,,515,515,,,515,515,515,,,515,515,773,773,773,,773',
',,,773,773,,,,773,,773,773,773,773,773,773,773,,,,,,773,773,773,773',
'773,773,773,,,773,,,,,,,773,,,773,773,773,773,773,773,773,773,,773,773',
'773,,773,773,,773,773,773,,,,,,,,,,,,,,,,,,,,773,,,773,,,773,773,,,773',
',,,,,773,,,,,,,,773,,,,,773,773,773,773,773,773,,,,773,773,,,,,,,773',
',,773,773,773,,,773,773,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',
'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,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,593,,,,,,,593,,593,593,593,593,,,593,593,605,605,605',
',605,,,,605,605,,,,605,,605,605,605,605,605,605,605,,,,,,605,605,605',
'605,605,605,605,,,605,,,,,,,605,,,605,605,605,605,605,605,605,605,,605',
'605,605,,605,605,,605,605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605',
',,605,,,,,,605,,,,,,,,605,,,,,605,605,605,605,605,605,,,,605,605,,,',
',,,605,,,605,605,605,,,605,605,508,508,508,,508,,,,508,508,,,,508,,508',
'508,508,508,508,508,508,,,,,,508,508,508,508,508,508,508,,,508,,,,,',
',508,,,508,508,508,508,508,508,508,508,,508,508,508,,508,508,,508,508',
'508,,,,,,,,,,,,,,,,,,,,508,,,508,,,508,508,,,508,,,,,,508,,,,,,,,508',
',,,,508,508,508,508,508,508,,,,508,508,,,,,,,508,,,508,508,508,,,508',
'508,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,866,866,866,,866,,,,866,866,,,,866,,866,866,866,866,866,866,866',
',,,,,866,866,866,866,866,866,866,,,866,,,,,,,866,,,866,866,866,866,866',
'866,866,866,,866,866,866,,866,866,,866,866,866,,,,,,,,,,,,,,,,,,,,866',
',,866,,,866,866,,,866,,,,,,866,,,,,,,,866,,,,,866,866,866,866,866,866',
',,,866,866,,,,,,,866,,,866,866,866,,,866,866,320,320,320,,320,,,,320',
'320,,,,320,,320,320,320,320,320,320,320,,,,,,320,320,320,320,320,320',
'320,,,320,,,,,,,320,,,320,320,320,320,320,320,320,320,,320,320,320,',
'320,320,,,,320,,,,,,,,,,,,,,,,,,,,320,,,320,,,320,320,,,320,,,,,,,,',
',,,,,,,,,,320,320,320,320,320,320,,,,320,320,,,,,,,320,,,320,320,320',
',,320,320,655,655,655,,655,,,,655,655,,,,655,,655,655,655,655,655,655',
'655,,,,,,655,655,655,655,655,655,655,,,655,,,,,,,655,,,655,655,655,655',
'655,655,655,655,,655,655,655,,655,655,,655,655,655,,,,,,,,,,,,,,,,,',
',,655,,,655,,,655,655,,,655,,,,,,655,,,,,,,,655,,,,,655,655,655,655',
'655,655,,,,655,655,,,,,,,655,,,655,655,655,,,655,655,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,775,775,775,,775,,,,775,775,,,,775,,775,775',
'775,775,775,775,775,,,,,,775,775,775,775,775,775,775,,,775,,,,,,,775',
',,775,775,775,775,775,775,775,775,,775,775,775,,775,775,,775,775,775',
',,,,,,,,,,,,,,,,,,,775,,,775,,,775,775,,,775,,,,,,775,,,,,,,,775,,,',
',775,775,775,775,775,775,,,,775,775,,,,,,,775,,,775,775,775,,,775,775',
'506,506,506,,506,,,,506,506,,,,506,,506,506,506,506,506,506,506,,,,',
',506,506,506,506,506,506,506,,,506,,,,,,,506,,,506,506,506,506,506,506',
'506,506,506,506,506,506,,506,506,,506,506,506,,,,,,,,,,,,,,,,,,,,506',
',,506,,,506,506,,,506,,,,506,,506,,,,,,,,506,,,,,506,506,506,506,506',
'506,,,,506,506,,,,,,,506,,506,506,506,506,,,506,506,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,328',
',,328,,,,,,328,,,,,,,,328,,,,,328,328,328,328,328,328,,,,328,328,,,',
',,,328,,,328,328,328,,,328,328,503,503,503,,503,,,,503,503,,,,503,,503',
'503,503,503,503,503,503,,,,,,503,503,503,503,503,503,503,,,503,,,,,',
',503,,,503,503,503,503,503,503,503,503,503,503,503,503,,503,503,,503',
'503,503,,,,,,,,,,,,,,,,,,,,503,,,503,,,503,503,,,503,,503,,503,,503',
',,,,,,,503,,,,,503,503,503,503,503,503,,,,503,503,,,,,,,503,,503,503',
'503,503,,,503,503,651,651,651,,651,,,,651,651,,,,651,,651,651,651,651',
'651,651,651,,,,,,651,651,651,651,651,651,651,,,651,,,,,,,651,,,651,651',
'651,651,651,651,651,651,,651,651,651,,651,651,,651,651,651,,,,,,,,,',
',,,,,,,,,,651,,,651,,,651,651,,,651,,,,,,651,,,,,,,,651,,,,,651,651',
'651,651,651,651,,,,651,651,,,,,,,651,,,651,651,651,,,651,651,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,,,937,,937,,,,937,,,,,,,,937,,,,,937,937,937,937,937,937,,,,937',
'937,,,,,,,937,,,937,937,937,,,937,937,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,645,645,645,,645,,,,645,645,,,,645,,645,645,645,645,645',
'645,645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,,645,,,645,645,645',
'645,645,645,645,645,,645,645,645,,645,645,,645,645,645,,,,,,,,,,,,,',
',,,,,,645,,,645,,,645,645,,,645,,,,,,645,,,,,,,,645,,,,,645,645,645',
'645,645,645,,,,645,645,,,,,,,645,,,645,645,645,,,645,645,609,609,609',
',609,,,,609,609,,,,609,,609,609,609,609,609,609,609,,,,,,609,609,609',
'609,609,609,609,,,609,,,,,,,609,,,609,609,609,609,609,609,609,609,,609',
'609,609,,609,609,,609,609,609,,,,,,,,,,,,,,,,,,,,609,,,609,,,609,609',
',,609,,,,,,609,,,,,,,,609,,,,,609,609,609,609,609,609,,,,609,609,,,',
',,,609,,,609,609,609,,,609,609,638,638,638,,638,,,,638,638,,,,638,,638',
'638,638,638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,',
',638,,,638,638,638,638,638,638,638,638,,638,638,638,,638,638,,638,638',
'638,,,,,,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,638,,,,638,,,,,,,',
'638,,,,,638,638,638,638,638,638,,,,638,638,,,,,,,638,,,638,638,638,',
',638,638,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,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,642,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,639,639,639,,639,,,,639,639,,,,639,,639,639',
'639,639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,,639',
',,639,639,639,639,639,639,639,639,,639,639,639,,639,639,,639,639,639',
',,,,,,,,,,,,,,,,,,,639,,,639,,,639,639,,,639,,,,,,639,,,,,,,,639,,,',
',639,639,639,639,639,639,,,,639,639,,,,,,,639,,,639,639,639,,,639,639',
'362,362,362,,362,,,,362,362,,,,362,,362,362,362,362,362,362,362,,,,',
',362,362,362,362,362,362,362,,,362,,,,,,,362,,,362,362,362,362,362,362',
'362,362,,362,362,362,,362,362,,,,362,,,,,,,,,,,,,,,,,,,,362,,,362,,',
'362,362,,,362,,,,,,,,,,,,,,,,,,,362,362,362,362,362,362,,,,362,362,',
',,,,,362,,,362,362,362,,,362,362,360,360,360,,360,,,,360,360,,,,360',
',360,360,360,360,360,360,360,,,,,,360,360,360,360,360,360,360,,,360',
',,,,,,360,,,360,360,360,360,360,360,360,360,,360,360,360,,360,360,,',
',360,,,,,,,,,,,,,,,,,,,,360,,,360,,,360,360,,,360,,,,,,,,,,,,,,,,,,',
'360,360,360,360,360,360,,,,360,360,,,,,,,360,,,360,360,360,,,360,360',
'347,347,347,,347,,,,347,347,,,,347,,347,347,347,347,347,347,347,,,,',
',347,347,347,347,347,347,347,,,347,,,,,,,347,,,347,347,347,347,347,347',
'347,347,,347,347,347,,347,347,,347,347,347,,,,,,,,,,,,,,,,,,,,347,,',
'347,,,347,347,,,347,,,,,,347,,,,,,,,347,,,,,347,347,347,347,347,347',
',,,347,347,,,,,,,347,,,347,347,347,,,347,347,348,348,348,,348,,,,348',
'348,,,,348,,348,348,348,348,348,348,348,,,,,,348,348,348,348,348,348',
'348,,,348,,,,,,,348,,,348,348,348,348,348,348,348,348,,348,348,348,',
'348,348,,348,348,348,,,,,,,,,,,,,,,,,,,,348,,,348,,,348,348,,,348,,',
',,,348,,,,,,,,348,,,,,348,348,348,348,348,348,,,,348,348,,,,,,,348,',
',348,348,348,,,348,348,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,12',
'12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
',,,12,12,12,12,12,12,12,12,12,12,,,,,,12,12,12,12,12,12,12,12,12,,,12',
',,,,,,,,12,12,,12,12,12,12,12,12,12,,,12,12,,,,12,12,12,12,,,,,,,,,',
',,,,12,12,,12,12,12,12,12,12,12,12,12,12,12,,,12,12,,,,,,,,,,12,,,,',
',,,,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11',
'11,11,11,,11,,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11',
'11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,',
',,,,,11,,,,,,,,,11,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,411,411,411,411,411,411,411,411,411,411',
'411,411,411,411,411,411,411,411,411,411,411,411,411,411,,,,411,411,411',
'411,411,411,411,411,411,411,,,,,,411,411,411,411,411,411,411,411,411',
',,411,,,,,,,,,411,411,,411,411,411,411,411,411,411,,,411,411,,,,411',
'411,411,411,,,,,,,,,,,,,,411,411,,411,411,411,411,411,411,411,411,411',
'411,411,,,411,411,,,,,,,,,,411,,,,,,,,,411,635,635,635,635,635,635,635',
'635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635',
',,,635,635,635,635,635,635,635,635,635,635,,,,,,635,635,635,635,635',
'635,635,635,635,,,635,,,,,,,,,635,635,,635,635,635,635,635,635,635,',
',635,635,,,,635,635,635,635,,,,,,,,,,,,,,635,635,,635,635,635,635,635',
'635,635,635,635,635,635,,,635,635,,,,,,,,,,635,,,,,,,,,635,761,761,761',
'761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761',
'761,761,761,761,,,,761,761,761,761,761,761,761,761,761,761,,,,,,761',
'761,761,761,761,761,761,761,761,,,761,,,,,,,,,761,761,,761,761,761,761',
'761,761,761,,,761,761,,,,761,761,761,761,,,,,,,,,,,,,,761,761,,761,761',
'761,761,761,761,761,761,761,761,761,,,761,,,,,,,,,,,,,,,,,,,,761,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,490,,91,,,,,490',
'490,490,,,490,490,490,715,490,715,715,715,715,715,91,,,490,490,,,,,715',
',,,,490,490,,490,490,490,490,490,,,,,,,,,,715,,999,,999,999,999,999',
'999,715,715,715,715,,,,,,999,,,,,,,490,,,,,,,490,,,,,490,490,,999,,',
',,715,,,,456,456,999,999,456,,,,,,490,490,,456,456,,456,456,456,456',
'456,456,456,,490,456,456,,,490,456,456,456,456,,,999,,,456,,,,,,,,456',
'456,,456,456,456,456,456,456,456,456,456,456,456,,,456,,,,,457,457,',
',457,,,,,,,,,457,457,456,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,,,,,1014,1014,,,1014,,,,,,,,,1014,1014,457,1014,1014',
'1014,1014,1014,1014,1014,,,1014,1014,,,,1014,1014,1014,1014,,,,,,1014',
',,,,,,,1014,1014,,1014,1014,1014,1014,1014,1014,1014,1014,1014,1014',
'1014,,,1014,,,,,213,213,,,213,,,,,,,,,213,213,1014,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,,,,,750,750,,,750,,,,,,,,,750,750,214,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,,,,,1013,1013,,,1013,,,,,,,,,1013',
'1013,750,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,,890,1013,890,890,890,890,890,,,,,,,,,,890',
',,,,1013,,,,,,,,,895,,895,895,895,895,895,,890,749,749,,,749,,,895,890',
'890,890,890,,749,749,,749,749,749,749,749,749,749,,,749,749,,,895,749',
'749,749,749,,,,,,749,895,895,,,890,,,749,749,,749,749,749,749,749,749',
'749,749,749,749,749,,,749,,,,,536,536,,,536,,895,,,,,,,536,536,749,536',
'536,536,536,536,536,536,,,536,536,,,,536,536,536,536,,,,,,536,,,,,,',
',536,536,,536,536,536,536,536,536,536,536,536,536,536,,,536,,,,,535',
'535,,,535,,,,,,,,,535,535,536,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,,893,535,893,893,893,893,893,997,,997,997,997,997',
'997,,,893,,,,,535,,997,,,,,,,,,,,,,,,893,,,,,,,997,,893,893,893,893',
',,,997,997,997,997,,,,,,,759,,759,759,759,759,759,,,,,264,264,,,264',
'759,,,893,,,,,264,264,997,264,264,264,264,264,264,264,,,264,264,759',
',,264,264,264,264,,,759,759,759,759,,,,,,,,264,264,,264,264,264,264',
'264,264,264,264,264,264,264,,,264,1047,,1047,1047,1047,1047,1047,,759',
'526,526,,,526,,,1047,,,264,,,526,526,,526,526,526,526,526,526,526,,',
'526,526,,,1047,526,526,526,526,,,,,,526,1047,1047,,,,,,526,526,,526',
'526,526,526,526,526,526,526,526,526,526,,,526,,,,,525,525,,,525,,1047',
',,,,,,525,525,526,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,,666,525,666,666,666,666,666,,,,,,,,,,666,,,,,525,,,,,,,,,920,,920',
'920,920,920,920,,666,964,964,,,964,,,920,666,666,666,666,,964,964,,964',
'964,964,964,964,964,964,,,964,964,,,920,964,964,964,964,,,666,,,964',
'920,920,,,666,,,964,964,,964,964,964,964,964,964,964,964,964,964,964',
',,964,,,,,594,594,,,594,,920,,,,,,,594,594,964,594,594,594,594,594,594',
'594,,,594,594,,,,594,594,594,594,,,,,,594,,,,,,,,594,594,,594,594,594',
'594,594,594,594,594,594,594,594,,,594,,,,,595,595,,,595,,,,,,,,,595',
'595,594,595,595,595,595,595,595,595,,,595,595,,,,595,595,595,595,,,',
',,595,,,,,,,,595,595,,595,595,595,595,595,595,595,595,595,595,595,,607',
'595,607,607,607,607,607,343,,343,343,343,343,343,,,607,,,,,595,,343',
'918,,918,918,918,918,918,,,,,,,,607,607,918,,,,,343,343,607,607,607',
'607,,,,343,343,343,343,,,,922,918,922,922,922,922,922,,,,918,918,918',
'918,,924,922,924,924,924,924,924,607,,,,,,,343,,924,,,,,,,922,947,,947',
'947,947,947,947,918,,,922,922,,,924,,947,,,,,,,,,924,924,,,,,,,,,,,',
'947,947,,,,,922,,,947,947,947,947,,,,,,,,,924,,,,,,,,,,,,,,,,,,,,,,',
',947' ]
        racc_action_check = arr = ::Array.new(26560, 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,    20,  5380,  1300,   nil,   412,   nil,   nil, 20782,  1003,
   nil, 24275, 24142,  1185,   nil,  1139,  1194,   860,   268,  1133,
   380,   nil,   -67, 16862,  3547,  1248,   nil,   289,   nil,   193,
   796,  1442, 11822, 11262, 11122,   nil,  3547, 10982, 10002,   nil,
  1112,   429,   525,  1182,   291,  8882,  7902,  7762,  1110,   767,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1185,
   nil,  7202,  6782, 17982,     6,   nil,  6082,  6222,   nil,   nil,
  6362,  6502,  1151,   nil, 24408,   nil,   nil,   nil,   nil,   nil,
   -72,   nil,   nil,   nil,   nil,   nil,   nil,  1100,  1093,  1090,
  1079, 24940,   nil,   nil,   nil,   nil,   nil,   nil,     0,   nil,
   nil,   382,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  8042,   nil,   nil,   nil,   nil,  8182,
  8322,  8462,  8602,  8742,  1096,   nil,   482,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1078,   nil,  4111,
  9442,  9582,  9722, 25307, 25375,   nil,   nil, 10142, 10282, 10422,
 10562, 10702, 10842,   nil,   nil,   749,   134,   167,  1140,   135,
  1024,  1076,   nil, 11962,  2701,  1065, 12382, 12522, 12662, 12802,
 12942, 13082, 13222, 13362, 13502, 13642, 13782, 13922, 14062, 14202,
 14342, 14482, 14622, 14762, 14902, 15042, 15182, 15322, 15462, 15602,
 15742, 15882,   nil,   nil, 25885,   nil,   nil,  1056, 16302,   nil,
  1061,   nil,   nil,   nil, 16582,   nil,   nil, 16722,   nil,  3829,
   nil,  1017,  1016,   nil, 17282,  1054, 17562,   nil, 17702,   nil,
 17842,  5802,   nil,   nil,   189,   nil,  1135, 18402,   971,  1714,
   983,  1007,   962, 19242,  4252,   349,   746,   888,  1033,   865,
   nil,   996,   957,   165,   nil,   nil,   nil,   992,   252,   934,
 21062,   nil,   270,   954,   492,   nil,   950,   nil, 21762,  5239,
   151,   nil,   922,   nil,   426,   547,   907,   868,   nil,   484,
   887,   nil,   nil, 26332,   714,    33,    39, 23722, 23862,   313,
   958,   839,    65,    57,   627,   914,    29,   944,   nil,   nil,
 23582,   nil, 23442,   350,   302,   234,   386,   390,   348,   326,
   -53,   265,   nil,   135,   nil,   nil,   nil,   nil,   nil,   168,
   nil,   256,   nil,   653,   nil,   844,   200,   nil,   842,   250,
   nil,   833,   -59,   nil,   829,   -25,   nil,   558,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  2137, 24541,   nil,   nil,   nil,   nil,   828,   nil,   nil,   807,
 11682,   803,   nil,   nil,  1714,   800,   nil,   nil,   795,   791,
   425,   353,  1317,   nil,   nil,   nil,   132,   257,   828,   nil,
   nil,   921,  1053,   nil,  2278,   nil,   770,   nil,   nil,  1573,
   nil,   nil,   nil,   nil,   -26,   nil, 25103, 25171,  7062,   194,
  6642,  5942,  7622,  3970,  5239,   873,   -49,   845,   839,   831,
   815,  5662,  5802,  4276,  4534,  4252,  1390,  1267,  5521,  5098,
  4393,  4111,  4957,  5380,   751,  1008,  4675,  4816,  2419,   123,
 25052,   nil,   nil,   nil,   nil,   nil,   nil,   328,    75,   751,
   734,   nil,   nil, 21902,   nil,   nil, 21622,   nil, 20642,   nil,
   165,   nil,   nil,   nil,   nil, 19942,  1148,   725,   720,   nil,
   nil,   718, 19662,   718, 19382, 26026, 25958,   735,   752,   nil,
 19102,   712,   nil, 18822, 18682, 25748, 25680,  3688, 17002,   823,
   810,   690,   nil,   nil,  9302,   nil,   nil,  9162,   nil,   nil,
   nil,    58,  1116,   nil,   682,   615,   nil,   595,   589,   582,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   564,  1051,
   nil,   nil, 11402,   nil,   nil,   nil,   655,   nil,   nil,   nil,
   579,   nil,   nil,   569,  1855,   604,   nil,  2983,    66,    31,
   590,   592,   nil, 20362, 26195, 26263,   -19,   nil,   597,   459,
   -17,   nil,   929,   nil,    16, 20502,   nil, 26325,   nil, 22602,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   224,   nil,   nil,   187,   nil,   nil,   nil,   448,   nil,
   nil,   438,   nil,   453,   nil, 24674,   nil,   435, 22742, 23302,
   436,   435, 23022, 22882, 24002, 22462,   427,   nil,   nil,   nil,
 22322, 22042,   381,   nil, 21342, 21202,   nil,   205,   159,   520,
   658,   348,  1855,   344,   nil,   nil, 26088,   nil,   nil,   415,
    71,   272,   nil,   nil,   nil,   nil,   309,   nil,   342, 18262,
   nil,   nil, 18122,  1016,  -123, 17142,   276,   nil,   259,    23,
    -9,   285,    34,   705,   249,   189,  9022,  3406,   228,   -33,
   254,  7482,   nil,   nil,   392,   nil,  4534,  4393,   126,   346,
   nil,   nil,   560,  1248,   nil, 25016,   nil,   450,   nil, 16162,
   nil,  1189,   nil,   101,   445,   -24,   nil,   nil,   nil,   nil,
   679,   nil,    47,   nil,   nil,   nil,   nil,    39,   nil, 18962,
   281,    25,    66,    22,   172, 17422,   nil,   629,   nil, 25612,
 25443,  6922,   nil,   nil,   nil,   289,   757,  3688,  3265, 25874,
   441, 24807,    -7,   926,  4816,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   319, 20082,  2560, 21482,   nil,   393,   nil,  2701,
   nil,  2842,   nil,   nil,  1996,   nil,  2983,   nil,  3124, 23162,
 20222, 19802, 18542,   215, 16442,   521,   527,   nil,   533,   549,
   554,   nil,   581,   570,   571,   560, 11542,   nil,   nil,  3406,
   nil,   nil,   nil,  4675,  5521,   nil,   nil,   nil,   591,    98,
   nil,   nil,   731,   nil,  5662,   625,   668,   nil,   nil,   nil,
   645,   751,   647,   648,   nil,   nil,   nil,   659,   668,   nil,
   669,   671,   nil,   677,   nil,   nil,   681,  1149,   686,  1046,
   nil,   808,   nil, 12242,   819,  2419,  3829,   nil,    50,     9,
    30,   351,   625,   nil,   732,  1573, 20922,   nil,   388,   874,
   876,   762,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   781,   767,   nil,  3265, 12102,  9862,  2137,   475,   nil,   nil,
 25573,   nil,   nil, 25810,   nil, 25603,   nil,   nil,   822,   583,
 16022,   893,   887,   935,  2842,   840,   946,   nil,  3970,   nil,
   nil,   143, 19522,   nil,   nil,   nil,   nil,   nil, 26349,   nil,
 26118,   nil, 26386,   nil, 26401,   nil,   nil,   nil,   nil,   528,
  1178,   857,   nil,   -10,   nil,  1001,  1002, 22182,  5098,   nil,
   nil,  1010,   -66,   nil,   nil,   nil,   nil, 26425,   nil,   939,
   nil,   nil,   941,   942,   945,   947,   nil,   948,   nil,  -107,
   nil,   nil,   nil,   768, 26127,   nil,   nil,   974,   nil,   nil,
   nil,  4957,   141,   122,   574,  1055,    51,   nil,   987,   988,
   990,  1005,  1010,  1326,  1014,  1310,  1996,   nil,   nil,   nil,
   290,  2278,   nil,   nil,  2560,  3124,   nil, 25817,   nil, 25056,
   nil,   725,   nil,   588,   nil,   nil,   nil,  1380,  1120,  1128,
   nil,  1212,  7342, 25511, 25239,    54,   984,   nil,   nil,   nil,
   nil,   862,  1110,   734,   nil,   nil,   nil,  1236,  1239,  1240,
  1122,  1137,  1142,  1143,   nil,   nil,  1148,   154,   125,   124,
   103,  1156,  1166,   nil,   nil,   nil,   nil, 25949,   nil,   nil,
   nil,   nil,   118,   nil,  1177,   nil ]

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

clist = [
'6,221,432,438,213,280,280,280,425,263,341,19,591,130,130,275,372,19',
'584,587,224,422,302,680,560,540,117,328,448,445,700,9,264,399,316,316',
'494,9,640,281,281,281,135,135,4,19,531,345,346,125,208,349,568,490,758',
'114,505,553,851,323,333,338,133,133,680,113,319,301,316,334,499,298',
'822,379,300,842,130,710,711,799,358,380,748,382,384,387,390,393,396',
'382,725,117,802,130,928,267,273,276,800,118,405,406,407,408,854,733',
'736,282,282,282,330,960,839,962,621,344,344,624,956,344,543,546,604',
'19,606,550,635,278,292,293,350,605,19,381,832,868,994,335,339,397,362',
'757,607,9,761,838,947,840,616,931,618,360,409,622,411,991,622,745,801',
'677,680,418,677,359,616,207,856,803,344,344,344,344,907,668,348,855',
'347,959,541,329,551,672,673,705,343,280,373,124,489,809,497,813,498',
'814,1024,739,826,911,433,714,716,718,378,505,865,403,752,417,423,383',
'426,386,456,357,443,447,442,421,19,1034,671,962,956,389,392,421,395',
'446,17,898,984,863,928,560,17,875,763,764,398,866,416,280,846,19,342',
'432,438,280,686,225,280,904,737,837,661,496,695,337,225,225,225,568',
'17,307,307,301,708,376,451,452,453,454,426,2,793,281,834,510,842,504',
'504,950,670,1022,281,380,336,225,560,839,609,528,225,225,525,1,225,354',
'677,677,316,819,275,952,,532,19,,19,,,535,,19,691,117,568,316,888,889',
'688,1042,953,839,691,954,516,,588,589,301,521,,529,298,301,,517,19,298',
'17,594,523,282,515,225,225,225,225,17,978,1043,282,859,514,812,917,316',
',316,,,1025,495,,,,,,,117,,500,,806,805,,939,608,,,,,691,,,,,766,740',
',766,,,995,,344,344,,,,680,839,,641,,,,6,590,,818,,130,,782,,648,,19',
',787,568,653,568,,504,504,,1030,647,280,,,,17,225,225,225,9,560,433',
'135,225,225,225,225,225,225,634,815,,633,869,870,,426,,,442,17,,133',
',448,,,663,568,,,,996,871,,648,,940,,919,921,,923,925,,926,,664,647',
',829,720,,,225,664,664,280,646,,225,,1035,225,652,,,532,,,433,,827,',
',532,,,,316,433,,426,17,19,17,,316,442,307,17,938,,,,,,,442,691,677',
',,,683,,307,864,,,,815,,,,17,669,,,,,941,,,,,280,,,,,,,225,225,,,,676',
'433,,,,,971,,602,699,602,,,426,,19,,806,19,442,806,805,,806,805,806',
',,986,,,734,734,,,,,730,811,,732,704,1017,1018,1019,1020,,753,,568,560',
',,,,,,,17,130,,,641,778,780,720,,804,848,783,785,1052,,447,1026,810',
'756,,568,,762,,,,,446,,,135,641,,664,532,,,771,504,,648,,,653,,820,316',
'1053,225,331,133,804,,647,1028,1029,,316,,,,,823,828,,,,873,,806,805',
'806,421,806,,806,,,,19,19,777,,641,,,,,280,,860,,823,,823,,,,,433,,830',
'831,,,17,,,,,858,,307,426,225,442,,,,806,307,,,,,,,130,225,,19,19,,720',
',720,882,19,,504,867,,,,,872,804,,,,,,,,,,,,344,880,891,891,891,,,,691',
'316,,,,,1036,,17,,,17,,,,,19,225,909,,19,19,913,,,,,,,225,,19,933,225',
',,,,903,,,641,905,906,455,942,,,,982,720,,,910,,,,,,,,,19,19,,,,,225',
'225,,,19,,225,225,,,225,734,,,,,935,936,,943,,797,,,,,,316,796,,,501',
'344,,,720,,720,,316,,307,,19,,344,,19,,,,977,307,,518,,,,,,,,17,17,835',
'967,,835,1006,970,,833,,720,,,,19,,,891,891,891,891,,891,,,,,,1013,16',
'993,,,442,,16,990,,225,,,,,,225,,,19,,340,17,17,280,,,823,,17,,,,,19',
'16,,433,,19,225,1011,19,19,,,,,,426,,,,,641,442,1023,,,,823,1027,,,',
',,891,891,891,891,901,,,17,29,,,17,17,,29,,,,,,,,17,,891,,,,,29,,,,',
',,,,29,29,29,,29,18,,,16,,,18,656,225,,17,17,16,,,,,,,,17,225,,,29,',
',,,29,29,,,29,18,309,309,,,,,835,,,797,,,797,949,797,,796,674,675,796',
'963,796,,419,17,,,,17,,,450,974,,356,684,,,,,,687,29,,,798,,29,29,29',
'29,29,892,894,896,,,,17,703,,,,16,,,,,,,,,,,,,,18,,,,,,,,,18,,16,,,17',
',,841,,843,507,,509,,511,,512,513,,17,,,,,17,,,17,17,797,,797,,797,',
'797,796,,796,,796,,796,,,225,,,,,29,29,29,29,,,,,29,29,29,29,29,29,16',
',16,,,,,16,,,,29,,,,797,,,,,,18,796,,,,,,,,,,16,,,41,,,,,,41,,,,29,18',
',,,,29,,,29,998,1000,1002,1004,,1005,,,,,,821,,,41,305,305,,,29,,29',
',,,,29,637,,,,,,,,,,850,,,,,,,,,,,,352,,29,374,,18,,18,,16,,309,18,',
',,,955,,957,29,29,,,,874,,,309,1048,1049,1050,1051,,,,,18,,,,,979,41',
'980,,981,,,,,,41,1055,,,,,,,,678,,,340,,681,,603,,603,,,,,,,,,,,,,29',
',,,,,,,,,,,916,,,,,,,678,,,340,,,,927,,,,,16,,,,18,,,1031,,1032,,1033',
',,,,726,29,,,946,,,,41,,1041,,,,,,,,,,,,,,,,,,,,,,,41,,,,,,,,1054,,',
',,,,,,,,,16,,,16,,29,,,,,,,,772,29,,,678,340,,,,,,,,,,29,,,,,,,,,,,',
'18,,,41,,41,,309,,305,41,,,,816,309,,817,,,,,,,,,305,,,,,,,,29,41,825',
'29,,,,,,29,,,,,,,,,,,845,29,,,,29,,,,,,,374,,374,18,,,18,,450,,,,,,',
',16,16,,,,,,,,,,,29,29,,,,,29,29,,,29,,,,881,,,,,,,,41,,,,,,,,,42,,',
',,,42,,16,16,,,,,,16,,,,,,,,,,,,,,,,29,29,,42,306,306,,,,,,,,,309,,',
',,,,,,,,309,,,,16,,,,16,16,18,18,,353,29,,375,,,16,29,,,,,,29,29,,,',
',,29,,,,,340,,41,,,,29,,,305,,,16,16,,,,305,42,,,,16,18,18,,,42,,879',
'18,,,,,,,,,,29,,,,29,29,,,,,,,,989,,29,,,,,,16,,,,16,,,,,,41,603,,41',
'18,,,,18,18,,,,29,,29,29,,,18,,,,,16,29,29,,,,,,,,,,,,,,,,42,,,,,,,',
'18,18,,,,,,16,,,18,,,,29,,,42,29,,,,16,,,,,16,,,16,16,,,,,,,,,,,,,,603',
',,29,18,,305,,18,,,,976,,,,,305,,,,,,,,,,41,41,,,,,,,42,29,42,18,,,306',
'42,,,,,,,,,29,,,,,29,,306,29,29,,,,,,,42,,,,18,,,,,,29,41,41,,,,,,41',
'18,,,,,18,,,18,18,,,375,,375,,,,,,,,,,,,,,,,,,,,,,,,,,,374,,,41,,,,41',
'41,,,,,,,232,,,41,,,42,,,279,279,279,,,,,,,,,,,325,326,327,,,,,,,,,',
'41,41,,,,279,279,,,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,374,,,,41,',
',,41,,,,972,,,,,,,,,,,,,,,,,,,,42,,,,,,41,306,,,,,,,,306,,,,,,,,,,,',
',,,,,,,,,,,,41,,,,,,,,,,,,,,,41,,,,,41,,,41,41,,,,,,42,,,42,,,,279,424',
'279,,,,,444,449,,,,,,,,,,,,,,,232,,,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',
'488,,,,,,,279,,,,,,279,,,279,,,,,,,279,,279,,279,,279,279,,,,,,,,,,',
',,306,,,,,,,,,,,306,,,,,,,,,,42,42,,537,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,42,42,,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',279,,,,,375,,,42,,,,42,42,,,,,,,,,,42,,,,,,,,,,,,,,,279,,444,662,424',
',,,,,,,,,,,42,42,,,,,,,,,42,,,,,,,,,,,,,,,,,,,279,,,279,,279,,,,,,,',
',,,375,,,,42,279,,,42,,,,973,,697,698,,,,,,,,,,279,,,279,,,,,,,,,,42',
',,,,,,,,,,,,,,279,,,,,,,,,,,,,,,,,,42,,,279,,,,,,,,,,,,42,,,,,42,,,42',
'42,,,,,,,,,,,,,,,,,,,,,,,,279,774,,,279,279,779,781,,,,,784,786,,,662',
'788,,,,,,,,,,,,,,,,,,,,,,,,279,,,279,,,,,,,,,,,,,,,,,,,279,,,,,,,,,',
',,,,,,,,279,,,,,,,,,,,,,,,,,,,,279,,,,,,,,,,,,279,,,,,,,,,,,,,,,,,,',
',,,279,,883,,,,,,,,,,,,,,779,781,786,784,,886,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,279',
'883,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,279,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,279' ]
        racc_goto_table = arr = ::Array.new(3101, 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,40,40,27,36,36,36,25,153,89,29,95,61,61,74,60,29,92,92,22,30,53',
'198,183,10,98,34,20,30,13,9,39,60,68,68,42,9,26,71,71,71,65,65,2,29',
'55,19,19,17,17,19,187,40,99,8,76,152,93,67,6,6,64,64,198,5,54,12,68',
'71,25,49,14,169,50,193,61,137,137,142,29,6,58,6,6,6,6,6,6,6,132,98,145',
'61,130,41,41,41,143,7,19,19,19,19,14,94,94,73,73,73,32,147,188,148,173',
'32,32,173,194,32,72,72,59,29,59,72,66,48,48,48,5,111,29,170,145,112',
'113,73,73,170,114,115,116,9,117,143,118,143,174,133,174,109,9,174,33',
'108,174,107,134,77,198,31,77,21,174,18,106,140,32,32,32,32,15,43,105',
'104,103,146,102,101,149,43,43,150,151,36,100,11,154,155,158,159,160',
'161,162,163,164,165,74,185,185,185,168,76,110,7,97,22,22,171,6,172,27',
'96,22,22,61,71,29,147,45,148,194,175,176,71,177,29,24,145,133,58,130',
'183,24,178,179,180,181,182,12,36,132,29,91,40,40,36,55,24,36,46,95,186',
'25,74,55,88,24,24,24,187,24,24,24,12,152,87,32,32,32,32,6,3,26,71,190',
'169,193,6,6,191,75,133,71,6,70,24,183,188,197,34,24,24,27,1,24,24,77',
'77,68,26,74,142,,53,29,,29,,,27,,29,40,98,187,68,137,137,25,133,143',
'188,40,143,9,,19,19,12,54,,67,49,12,,50,29,49,24,27,50,73,8,24,24,24',
'24,24,143,93,73,26,5,43,137,68,,68,,,14,48,,,,,,,98,,48,,189,187,,94',
'39,,,,,40,,,,,174,25,,174,,,99,,32,32,,,,198,188,,34,,,,6,5,,55,,61',
',42,,74,,29,,42,187,74,187,,6,6,,143,6,36,,,,24,24,24,24,9,183,74,65',
'24,24,24,24,24,24,17,76,,2,10,10,,6,,,61,24,,64,,20,,,34,187,,,,137',
'152,,74,,26,,185,185,,185,185,,185,,6,6,,72,131,,,24,6,6,36,41,,24,',
'13,24,41,,,53,,,74,,30,,,53,,,,68,74,,6,24,29,24,,68,61,24,24,92,,,',
',,,61,40,77,,,,9,,24,25,,,,76,,,,24,41,,,,,10,,,,,36,,,,,,,24,24,,,',
'73,74,,,,,92,,24,32,24,,,6,,29,,189,29,61,189,187,,189,187,189,,,92',
',,98,98,,,,,12,89,,12,73,185,185,185,185,,98,,187,183,,,,,,,,24,61,',
',34,22,22,131,,34,131,22,22,26,,22,95,153,32,,187,,32,,,,,29,,,65,34',
',6,53,,,17,6,,74,,,74,,53,68,185,24,51,64,34,,6,10,10,,68,,,,,6,6,,',
',60,,189,187,189,71,189,,189,,,,29,29,73,,34,,,,,36,,19,,6,,6,,,,,74',
',12,12,,,24,,,,,71,,24,6,24,61,,,,189,24,,,,,,,61,24,,29,29,,131,,131',
'22,29,,6,98,,,,,98,34,,,,,,,,,,,,32,12,6,6,6,,,,40,68,,,,,25,,24,,,24',
',,,,29,24,6,,29,29,6,,,,,,,24,,29,19,24,,,,,12,,,34,12,12,51,19,,,,131',
'131,,,12,,,,,,,,,29,29,,,,,24,24,,,29,,24,24,,,24,98,,,,,12,12,,98,',
'138,,,,,,68,136,,,51,32,,,131,,131,,68,,24,,29,,32,,29,,,,29,24,,51',
',,,,,,,24,24,138,12,,138,34,12,,136,,131,,,,29,,,6,6,6,6,,6,,,,,,27',
'23,98,,,61,,23,12,,24,,,,,,24,,,29,,69,24,24,36,,,6,,24,,,,,29,23,,74',
',29,24,12,29,29,,,,,,6,,,,,34,61,12,,,,6,12,,,,,,6,6,6,6,24,,,24,44',
',,24,24,,44,,,,,,,,24,,6,,,,,44,,,,,,,,,44,44,44,,44,28,,,23,,,28,51',
'24,,24,24,23,,,,,,,,24,24,,,44,,,,,44,44,,,44,28,28,28,,,,,138,,,138',
',,138,136,138,,136,51,51,136,24,136,,69,24,,,,24,,,69,24,,28,51,,,,',
',51,44,,,141,,44,44,44,44,44,139,139,139,,,,24,51,,,,23,,,,,,,,,,,,',
',28,,,,,,,,,28,,23,,,24,,,141,,141,69,,69,,69,,69,69,,24,,,,,24,,,24',
'24,138,,138,,138,,138,136,,136,,136,,136,,,24,,,,,44,44,44,44,,,,,44',
'44,44,44,44,44,23,,23,,,,,23,,,,44,,,,138,,,,,,28,136,,,,,,,,,,23,,',
'56,,,,,,56,,,,44,28,,,,,44,,,44,139,139,139,139,,139,,,,,,51,,,56,56',
'56,,,44,,44,,,,,44,69,,,,,,,,,,51,,,,,,,,,,,,56,,44,56,,28,,28,,23,',
'28,28,,,,,141,,141,44,44,,,,51,,,28,139,139,139,139,,,,,28,,,,,141,56',
'141,,141,,,,,,56,139,,,,,,,,69,,,69,,69,,28,,28,,,,,,,,,,,,,44,,,,,',
',,,,,,51,,,,,,,69,,,69,,,,51,,,,,23,,,,28,,,141,,141,,141,,,,,69,44',
',,51,,,,56,,141,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,,141,,,,,,,,,,,,23,,',
'23,,44,,,,,,,,69,44,,,69,69,,,,,,,,,,44,,,,,,,,,,,,28,,,56,,56,,28,',
'56,56,,,,69,28,,69,,,,,,,,,56,,,,,,,,44,56,69,44,,,,,,44,,,,,,,,,,,69',
'44,,,,44,,,,,,,56,,56,28,,,28,,69,,,,,,,,23,23,,,,,,,,,,,44,44,,,,,44',
'44,,,44,,,,69,,,,,,,,56,,,,,,,,,57,,,,,,57,,23,23,,,,,,23,,,,,,,,,,',
',,,,,44,44,,57,57,57,,,,,,,,,28,,,,,,,,,,,28,,,,23,,,,23,23,28,28,,57',
'44,,57,,,23,44,,,,,,44,44,,,,,,44,,,,,69,,56,,,,44,,,56,,,23,23,,,,56',
'57,,,,23,28,28,,,57,,28,28,,,,,,,,,,44,,,,44,44,,,,,,,,69,,44,,,,,,23',
',,,23,,,,,,56,28,,56,28,,,,28,28,,,,44,,44,44,,,28,,,,,23,44,44,,,,',
',,,,,,,,,,,57,,,,,,,,28,28,,,,,,23,,,28,,,,44,,,57,44,,,,23,,,,,23,',
',23,23,,,,,,,,,,,,,,28,,,44,28,,56,,28,,,,28,,,,,56,,,,,,,,,,56,56,',
',,,,,57,44,57,28,,,57,57,,,,,,,,,44,,,,,44,,57,44,44,,,,,,,57,,,,28',
',,,,,44,56,56,,,,,,56,28,,,,,28,,,28,28,,,57,,57,,,,,,,,,,,,,,,,,,,',
',,,,,,,56,,,56,,,,56,56,,,,,,,35,,,56,,,57,,,35,35,35,,,,,,,,,,,35,35',
'35,,,,,,,,,,56,56,,,,35,35,,,,56,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,56',
',,,56,,,,56,,,,56,,,,,,,,,,,,,,,,,,,,57,,,,,,56,57,,,,,,,,57,,,,,,,',
',,,,,,,,,,,,,,,,56,,,,,,,,,,,,,,,56,,,,,56,,,56,56,,,,,,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,,,,,,,,,,,,,57,,,,,,,,,,,57,,,,,,,,,,57,57,,35',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,57,57,,,,,,57,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,57,,,57,,,,57,57,,,,,,,,,,57,,,',
',,,,,,,,,,,35,,35,35,35,,,,,,,,,,,,57,57,,,,,,,,,57,,,,,,,,,,,,,,,,',
',,35,,,35,,35,,,,,,,,,,,57,,,,57,35,,,57,,,,57,,35,35,,,,,,,,,,35,,',
'35,,,,,,,,,,57,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,57,,,35,,,,,,,,,,,',
'57,,,,,57,,,57,57,,,,,,,,,,,,,,,,,,,,,,,,35,35,,,35,35,35,35,,,,,35',
'35,,,35,35,,,,,,,,,,,,,,,,,,,,,,,,35,,,35,,,,,,,,,,,,,,,,,,,35,,,,,',
',,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,',
',,,,35,,35,,,,,,,,,,,,,,35,35,35,35,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35' ]
        racc_goto_check = arr = ::Array.new(3101, 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,   295,    42,   273,   nil,    60,    -2,    91,    50,    29,
  -304,   177,    31,  -509,  -628,  -650,   nil,    38,   153,   -19,
  -190,    92,    -3,   960,   226,  -204,  -387,   -13,  1069,     9,
  -189,   -49,    49,    29,   -21,  2088,   -27,   nil,   nil,     5,
  -211,    66,  -231,  -316,  1034,  -273,  -561,   nil,    95,    35,
    38,   624,   nil,   -15,    28,  -274,  1290,  1707,  -518,  -238,
   -58,     2,   nil,   nil,    51,    31,  -289,    15,    -3,   919,
   224,     7,  -214,    75,   -15,  -208,  -226,  -344,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   193,   194,   -54,
   nil,   179,  -327,  -672,  -483,  -338,   142,  -398,    21,  -553,
   112,   119,  -152,   108,  -558,   105,  -570,  -440,  -784,    79,
  -548,  -230,  -621,  -807,    67,  -465,  -230,  -464,  -727,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
  -753,   -78,  -479,  -700,  -508,   nil,   232,  -477,   225,   360,
  -499,   485,  -587,  -568,   nil,  -574,  -722,  -788,  -786,  -163,
  -368,   119,  -286,   -16,   -74,  -479,   nil,   nil,   -81,  -481,
   -80,  -480,  -796,  -397,  -505,  -629,   nil,   nil,   122,   -10,
    48,   123,   124,  -272,  -233,   135,   135,   136,  -528,  -377,
  -377,   147,  -515,  -319,   nil,  -358,  -460,  -291,  -601,  -292,
  -433,  -606,   nil,  -640,  -775,   nil,   nil,   -87,  -483 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   295,     7,   351,   296,
   nil,   nil,   539,   nil,   852,   nil,   294,   nil,   nil,   nil,
    14,    15,    21,   231,   324,   nil,   nil,   750,   229,   230,
   nil,   nil,    20,   nil,   332,    24,    25,    26,    27,   nil,
   694,   nil,   nil,   nil,   313,   nil,   nil,    28,   427,    35,
   nil,   nil,    37,    40,    39,   nil,   226,   227,   601,   nil,
   132,   435,   131,   134,    78,    79,   nil,    93,    49,   285,
   nil,   428,   nil,   429,   440,   649,   502,   283,   268,    50,
    51,    52,    53,    54,    55,    56,    57,    58,   nil,   269,
    64,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   585,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   722,   567,   nil,   723,   951,   795,   555,   nil,   556,   nil,
   nil,   557,   nil,   559,   665,   nil,   nil,   nil,   565,   nil,
   nil,   nil,   760,   nil,   nil,   nil,   439,   270,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    77,    80,    82,   nil,
   nil,   nil,   nil,   nil,   611,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   836,   554,   nil,   558,   844,   570,   572,
   573,   807,   576,   577,   808,   580,   583,   nil,   289 ]

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

racc_reduce_n = 628

racc_shift_n = 1056

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

racc_nt_base = 146

racc_use_result_var = true

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

Racc_token_to_s_table = [
  "$end",
  "error",
  "kCLASS",
  "kMODULE",
  "kDEF",
  "kUNDEF",
  "kBEGIN",
  "kRESCUE",
  "kENSURE",
  "kEND",
  "kIF",
  "kUNLESS",
  "kTHEN",
  "kELSIF",
  "kELSE",
  "kCASE",
  "kWHEN",
  "kWHILE",
  "kUNTIL",
  "kFOR",
  "kBREAK",
  "kNEXT",
  "kREDO",
  "kRETRY",
  "kIN",
  "kDO",
  "kDO_COND",
  "kDO_BLOCK",
  "kDO_LAMBDA",
  "kRETURN",
  "kYIELD",
  "kSUPER",
  "kSELF",
  "kNIL",
  "kTRUE",
  "kFALSE",
  "kAND",
  "kOR",
  "kNOT",
  "kIF_MOD",
  "kUNLESS_MOD",
  "kWHILE_MOD",
  "kUNTIL_MOD",
  "kRESCUE_MOD",
  "kALIAS",
  "kDEFINED",
  "klBEGIN",
  "klEND",
  "k__LINE__",
  "k__FILE__",
  "k__ENCODING__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tLABEL",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tLBRACK2",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAMBDA",
  "tLAMBEG",
  "tDSTAR",
  "tCHAR",
  "tSYMBOLS_BEG",
  "tQSYMBOLS_BEG",
  "tSTRING_DEND",
  "tUBANG",
  "tRATIONAL",
  "tIMAGINARY",
  "tLABEL_END",
  "tLONELY",
  "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

# reduce 622 omitted

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

# reduce 624 omitted

# reduce 625 omitted

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

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

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

end   # class Ruby23Parser
