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

require 'racc/parser.rb'
class Ruby19Parser < RubyParser::Parser


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-561,551,210,-101,551,551,259,-561,-561,-561,207,208,434,-561,-561,716',
'-561,497,79,629,801,776,673,629,498,-561,80,259,551,551,-104,518,231',
'496,520,592,-561,-561,211,-561,-561,-561,-561,-561,-102,110,111,112',
'113,114,-102,-107,-99,628,696,-104,629,628,-103,707,-107,207,208,708',
'-103,-101,-106,-561,-561,-561,-561,-561,-561,-561,-561,-561,-561,-561',
'-561,-561,-561,696,696,-561,-561,-561,-100,612,207,208,628,-561,-406',
'258,-561,207,208,259,591,-561,211,-561,618,-561,-561,-561,-561,-561',
'-561,-561,-105,-561,-561,-561,258,107,-95,-101,107,107,106,715,-101',
'106,106,-561,-561,-561,672,-94,-557,-561,-561,-561,-561,-103,-557,-561',
'-561,-561,107,-561,107,107,-104,106,881,106,106,-104,-561,-561,-561',
'-561,107,-93,-98,-90,-102,106,-95,-561,-561,-102,-561,-561,-561,-561',
'-561,-94,-92,-97,-103,-93,107,749,-558,-103,211,106,629,107,107,-95',
'258,211,106,106,776,615,557,-91,-561,-561,-561,-561,-561,-561,-561,-561',
'-561,-561,-561,-561,-561,-561,207,208,-561,-561,-561,579,750,-561,628',
'-96,-561,-415,-95,-561,-561,-95,-561,-104,-561,261,-561,-95,-561,-561',
'-561,-561,-561,-561,-561,604,-561,-561,-561,687,-93,535,534,533,579',
'536,579,584,-265,-555,-554,-561,-561,-561,-561,-284,-561,801,776,-561',
'-103,107,-284,-284,-284,-496,106,-284,-284,-284,-415,-284,581,580,587',
'-93,603,-415,-93,-85,-489,-284,-284,-284,-93,-71,-415,-489,-561,501',
'502,-284,-284,-492,-284,-284,-284,-284,-284,833,-492,211,-484,-481,-415',
'581,580,581,580,-484,-481,207,208,-100,-555,-554,726,920,-484,-481,207',
'208,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284',
'-284,-555,-554,-284,-284,-284,-561,751,-284,-484,599,-284,-101,-561',
'-284,-284,-484,-284,-557,-284,832,-284,-561,-284,-284,-284,-284,-284',
'-284,-284,-263,-284,762,-284,535,534,533,579,536,518,-561,597,520,590',
'-561,579,-284,-284,-284,-284,-481,-284,586,579,-284,-105,107,-481,-481',
'-481,835,106,-481,-481,-481,687,-481,535,534,533,540,536,518,837,-481',
'520,-481,-481,-481,544,543,547,546,840,748,841,-481,-481,-490,-481,-481',
'-481,-481,-481,506,-490,-486,-561,581,580,577,761,506,-486,-561,386',
'581,580,582,-557,388,387,761,-561,581,580,593,-481,-481,-481,-481,-481',
'-481,-481,-481,-481,-481,-481,-481,-481,-481,-561,-102,-481,-481,-481',
'-97,-481,-481,-491,847,-481,-106,797,-481,-481,-491,-481,659,-481,-106',
'-481,562,-481,-481,-481,-481,-481,-481,-481,853,-481,538,-481,535,534',
'533,-495,536,845,561,535,534,533,-263,536,-481,-481,-481,-481,-484,-481',
'605,205,-481,-481,107,-484,-484,-484,-496,106,-484,-484,-484,538,-484',
'535,534,533,540,536,518,231,-484,517,-484,-484,-484,544,543,547,546',
'107,857,-99,-484,-484,106,-484,-484,-484,-484,-484,-93,-98,307,308,-495',
'-481,-102,-107,-91,540,527,228,-481,859,-100,230,229,107,544,543,547',
'546,106,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484',
'-484,-484,860,203,-484,-484,-484,-332,-484,-484,204,-90,-484,211,-332',
'-484,-484,-99,-484,202,-484,862,-484,-332,-484,-484,-484,-484,-484,-484',
'-484,606,-484,538,-484,535,534,533,687,536,535,534,533,865,536,867,430',
'-484,-484,-484,-484,-284,-484,431,-488,-484,-484,869,-284,-284,-284',
'-488,432,869,-284,-284,762,-284,535,534,533,540,536,-95,211,378,683',
'-487,874,-104,544,543,547,546,-487,686,557,-284,-284,252,-284,-284,-284',
'-284,-284,876,253,878,521,762,574,535,534,533,540,536,687,575,535,534',
'533,231,536,544,543,547,546,199,-284,-284,-284,-284,-284,-284,-284,-284',
'-284,-284,-284,-284,-284,-284,211,734,-284,-284,-284,540,611,508,507',
'888,-284,889,683,-284,544,543,547,546,-284,211,-284,873,-284,-284,-284',
'-284,-284,-284,-284,107,-284,892,-284,-266,106,687,503,535,534,533,261',
'536,231,-92,-562,-284,-284,211,-96,-101,-284,-562,-562,-562,-105,264',
'-562,-562,-562,687,-562,535,534,533,231,536,499,3,899,-562,-562,-562',
'-562,683,228,900,492,903,230,229,-562,-562,686,-562,-562,-562,-562,-562',
'687,491,535,534,533,905,536,906,228,540,211,-70,230,229,226,227,483',
'481,478,261,547,546,468,-562,-562,-562,-562,-562,-562,-562,-562,-562',
'-562,-562,-562,-562,-562,922,683,-562,-562,-562,-493,210,-562,924,925',
'-562,436,-493,-562,-562,435,-562,929,-562,433,-562,-493,-562,-562,-562',
'-562,-562,-562,-562,933,-562,-562,-562,538,936,535,534,533,938,536,869',
'869,943,944,-494,-562,-562,-562,-562,-563,-562,-494,389,-562,869,869',
'-563,-563,-563,922,-494,-563,-563,-563,687,-563,535,534,533,231,536',
'540,949,951,-563,-563,-563,-563,869,869,544,543,547,546,869,-563,-563',
'-277,-563,-563,-563,-563,-563,687,-277,535,534,533,955,536,922,228,540',
'-277,384,230,229,226,227,368,365,341,211,547,546,306,-563,-563,-563',
'-563,-563,-563,-563,-563,-563,-563,-563,-563,-563,-563,305,683,-563',
'-563,-563,509,665,-563,250,103,-563,206,510,-563,-563,201,-563,922,-563',
'979,-563,432,-563,-563,-563,-563,-563,-563,-563,980,-563,-563,-563,687',
'981,535,534,533,983,536,869,869,869,-558,559,-563,-563,-563,-563,-278',
'-563,560,-557,-563,468,468,-278,-278,-278,735,558,-278,-278,-278,687',
'-278,535,534,533,-264,536,540,211,729,753,-278,-278,-278,728,483,481',
'699,547,546,557,-278,-278,659,-278,-278,-278,-278,-278,687,211,535,534',
'533,692,536,690,687,540,535,534,533,845,536,535,534,533,261,536,547',
'546,689,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278',
'-278,-278,211,683,-278,-278,-278,-285,261,-278,659,683,-278,681,-285',
'-278,-278,680,-278,231,-278,231,-278,-285,-278,-278,-278,-278,-278,-278',
'-278,677,-278,687,-278,535,534,533,711,536,110,111,112,113,114,710,-285',
'-278,-278,-278,-278,776,-278,-285,712,-278,281,69,70,71,12,57,-285,824',
'825,63,64,826,101,102,67,540,65,66,68,32,33,72,73,675,483,761,547,546',
'31,30,29,95,94,96,97,669,211,22,110,111,112,113,114,11,47,666,13,99',
'98,100,89,56,91,90,92,-284,93,101,102,665,87,88,-284,44,45,43,659,-558',
'795,512,-284,-284,687,711,535,534,533,-284,536,211,942,776,-558,-493',
'805,42,-284,-494,35,712,-493,58,59,211,-494,60,211,37,648,-493,-85,46',
'538,-494,535,534,533,211,536,23,540,211,200,211,85,79,81,82,83,84,231',
'547,546,80,86,281,69,70,71,12,57,231,62,231,63,64,,,,67,540,65,66,68',
'32,33,72,73,,544,543,547,546,31,30,29,95,94,96,97,,,22,110,111,112,113',
'114,11,47,,13,99,98,100,89,56,91,90,92,947,93,101,102,,87,88,948,44',
'45,43,-277,,,,-285,946,687,-277,535,534,533,-285,536,,,,-277,,,42,-285',
'-284,35,,,58,59,,-284,60,,37,,-558,,46,538,-284,535,534,533,,536,23',
'540,,,,85,79,81,82,83,84,,547,546,80,86,281,69,70,71,12,57,,62,,63,64',
',,,67,540,65,66,68,32,33,72,73,,544,543,547,546,31,30,29,95,94,96,97',
',,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44',
'45,43,,,,,,,687,,535,534,533,,536,,,,,,,42,,,283,,,58,59,,,60,,37,,',
',46,762,,535,534,533,,536,23,540,,,,85,79,81,82,83,84,,547,546,80,86',
'281,69,70,71,12,57,,62,,63,64,,,,67,540,65,66,68,32,33,72,73,,544,543',
'547,546,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,44,45,43,231,,,,,,687,,535,534,533,,536,,',
',245,246,,42,,,35,,,58,59,,,60,,37,228,,,46,230,229,226,227,,,,23,540',
',,,85,79,81,82,83,84,,547,546,80,86,281,69,70,71,12,57,,62,,63,64,,',
',67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47',
',13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,235,240',
'241,242,237,239,247,248,243,244,,-580,-580,,,245,246,,42,,,35,,,58,59',
',,60,,37,228,,234,46,230,229,226,227,238,236,232,23,233,,,,85,79,81',
'82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,687,22,535,534,533,,536,11,47,,13,99',
'98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,,,,,,,,683,,',
',,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,',
',232,23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63',
'64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11',
'47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,,,',
',,,,,,,,,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226',
'227,,,232,23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62',
',63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,',
',,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231',
',,,,,,,,,,,,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229',
'226,227,,,232,23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57',
',62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22',
',,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43',
'231,235,240,241,242,237,239,247,248,243,244,,-580,-580,,,245,246,,42',
',,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,238,236,232,23,233',
',,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65',
'66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,,,,,,,,,,,,,,,,245',
'246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,,,232,23,233',
',,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65',
'66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,-580,-580,-580,-580',
'237,239,,,-580,-580,,,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234',
'46,230,229,226,227,238,236,232,23,233,,,,85,79,81,82,83,84,,,,80,86',
'281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30',
'29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101',
'102,,87,88,,44,45,43,231,235,240,241,242,237,239,,,243,244,,,,,,245',
'246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,238,236,232',
'23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,',
',,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47',
',13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,235,240',
'241,242,237,239,247,,243,244,,,,,,245,246,,42,,,35,,,58,59,,,60,,37',
'228,,234,46,230,229,226,227,238,236,232,23,233,,,,85,79,81,82,83,84',
',,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,',
',,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,231,-580,-580,-580,-580,237,239,,,-580',
'-580,,,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226',
'227,238,236,232,23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12',
'57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97',
',,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44',
'45,43,231,-580,-580,-580,-580,237,239,,,-580,-580,,,,,,245,246,,42,',
',35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,238,236,232,23,233',
',,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65',
'66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231,-580,-580,-580,-580',
'237,239,,,-580,-580,,,,,,245,246,,42,,,35,,,58,59,,,60,,37,228,,234',
'46,230,229,226,227,238,236,232,23,233,,,,85,79,81,82,83,84,,,,80,86',
'281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30',
'29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101',
'102,,87,88,,44,45,43,231,-580,-580,-580,-580,237,239,,,-580,-580,,,',
',,245,246,,42,,,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,238',
'236,232,23,233,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62',
',63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,',
',,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,231',
'-580,-580,-580,-580,237,239,,,-580,-580,,,,,,245,246,,42,,,35,,,58,59',
',,60,,37,228,,234,46,230,229,226,227,238,236,232,23,233,,,,85,79,81',
'82,83,84,,,,80,86,8,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,10,13,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,231,,,,,,,,,,,,,,,,245,246,,42',
',,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,,,,23,,,,,85,79,81',
'82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,231,,,,,,,,,,,,,,,,245,246,,42',
',,35,,,58,59,,,60,,37,228,,234,46,230,229,226,227,,,,23,,,,,85,79,81',
'82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,283,,',
'58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,281,69',
'70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,,,,,',
',,23,,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,',
',67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47',
',13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,',
',,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83',
'84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73',
',,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90',
'92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,',
',60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,8,69,70,71,12',
'57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97',
',,22,,,,,,11,47,10,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44',
'45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,',
',,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65',
'66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42',
',,35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86',
'281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30',
'29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101',
'102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,',
'46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,',
'63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,',
',,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,',
',,,,,,,,,,,,,,,,,42,,,283,,,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79',
'81,82,83,84,,,,80,86,281,69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32',
'33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89',
'56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35',
',,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,281',
'69,70,71,12,57,,62,,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29',
'95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102',
',87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,',
',,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67',
',65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,12,57,,,62,63,64,,,,67,,65,66',
'68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100',
'89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,',
'35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69',
'70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,394,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46',
',,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,',
',67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,',
',47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,',
',,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82',
'83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73',
',,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90',
'92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59',
',,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57',
',,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72',
'73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90',
'92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59',
',,60,,394,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,',
'57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97',
',,22,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43',
',,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72',
'73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,',
'60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62',
'63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,',
',,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,',
',,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82',
'83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,',
',,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
',,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,211,69,70,71,,57,,62',
',63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,',
'223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43',
',,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85',
'79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298',
'299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,296,,,99,98,100,89',
'56,91,90,92,,93,101,102,,87,88,,,,302,,,,,,,,,,,,,,,,,,,,292,,,288,',
',58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57',
',,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43',
',,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46,,,,,,,,221,',
',,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68',
'298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100',
'89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,',
',222,,,58,59,,,60,,273,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80',
'86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295',
'301,95,94,96,97,,,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102',
',87,88,,,,302,,,,,,,,,,,,,,,,,,,,292,,,288,,,58,59,,,60,,,,,,,,,,,,',
',,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,643,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80',
'86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295',
'301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102',
',87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,',
',,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,',
'67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,',
'47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,',
',,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,271,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,',
'294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
',,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63',
'64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,',
'294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
',,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63',
'64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,',
'294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
',,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63',
'64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,12,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,',
'31,30,29,95,94,96,97,,,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37',
',,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,378,,62',
'63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222',
',,58,59,,,60,,,,271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69',
'70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94',
'96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46,,',
',,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67',
',65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47',
',,99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,',
',,,,,,,,,,216,,,222,,,58,59,,,60,,643,,271,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72',
'73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90',
'92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58',
'59,,,60,,273,,271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96',
'97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87,88,',
'44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46,,,',
',,,,221,,,,,85,79,81,82,83,84,,,,80,86,211,69,70,71,,57,,62,,63,64,',
',,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,538,,535,534,533,46,536,,,,,,,23,,,,-579',
'85,79,81,82,83,84,-579,-579,-579,80,86,-579,-579,-579,,-579,,,62,,540',
'720,,,,-579,,,,544,543,547,546,,,-579,-579,,-579,-579,-579,-579,-579',
',,,,,,,,,,,,-579,,,,,,,-579,-579,-579,,,-579,-579,-579,538,-579,535',
'534,533,,536,-579,,,,-579,,,-579,,,,,261,-579,-579,-579,,-579,-579,-579',
'-579,-579,,,,,,,,,,540,720,,,-579,,,,,544,543,547,546,,,,,-579,,,,,-579',
',,-579,,,,,,,-579,,,,,261,-579,,,,,,,,,,,,,,,,,,,,,,-579,,,,,,69,70',
'71,,57,,,-579,63,64,,,-579,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,',
',,216,,,222,,,58,59,,,60,,273,,271,,46,,,,,,,,221,,,,,85,79,81,82,83',
'84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,',
',,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,',
'60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,',
'62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97',
',,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45',
'43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,',
'85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298',
'299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,296,,,99,98,100,89',
'56,91,90,92,,93,101,102,,87,88,,,,302,,,,,,,,,,,,,,,,,,,,912,,,222,',
',58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,12',
'57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97',
',,22,,,,,,11,47,,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44',
'45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,',
',,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68',
'32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89',
'56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222',
',,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,,,302,,,,,,,,,,,,,,,,,,,,902,,,222,,,58,59,,,60,,,,,,,,,,,,,,,,',
',,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68',
'298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,616,296,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,,,302,,231,235,240,241,242,237',
'239,247,248,243,244,,224,225,,,245,246,292,,,222,,,58,59,,,60,,,,228',
',234,,230,229,226,227,238,236,232,,233,,,85,79,81,82,83,84,,,,80,86',
',,249,494,-240,,,62,69,70,71,12,57,,,,63,64,,,,67,,65,66,68,32,33,72',
'73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,11,47,10,13,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59',
',,60,,37,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57',
',,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46',
',,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,',
',67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,',
',47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,',
',,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82',
'83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73',
',,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90',
'92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58',
'59,,,60,,,,271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71',
',57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94',
'96,97,,,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',,,302,,,,,,,,,,,,,,,,,,,,292,,,288,,,58,59,,,60,,,,,,,,,,,,,,,,,,,85',
'79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90',
'92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59',
',,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,',
',62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97',
',,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45',
'43,,,,,,,,,,,,,,,,,,,,216,,,222,512,,58,59,,,60,,,,,,46,,,,,,,,221,',
',,-579,85,79,81,82,83,84,-579,-579,-579,80,86,-579,-579,-579,,-579,',
',62,,,,,,-579,-579,-579,,,,,,,,,-579,-579,,-579,-579,-579,-579,-579',
',,,,,,,,,,,,,,,,,,,,,,,-579,-579,-579,-579,-579,-579,-579,-579,-579',
'-579,-579,-579,-579,-579,,,-579,-579,-579,,,-579,,261,-579,,,-579,-579',
',-579,,-579,,-579,,-579,-579,-579,-579,-579,-579,-579,,-579,-579,-579',
',,,,,,,,,,,,-579,-579,,-579,,-579,69,70,71,,57,,,,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102',
',87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,',
',,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,',
'67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,',
'296,,,99,98,100,563,56,91,90,564,,93,101,102,,87,88,,,,302,,,,,,,,,',
',,,,,,,,,,565,,,222,,,58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,',
'294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
',,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63',
'64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,732,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80',
'86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,',
',,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84',
',,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31',
'30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102',
',87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,',
',,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67',
',65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100',
'89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,273,,271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,',
',80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30',
'29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101',
'102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273',
',271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62',
'63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,-414,85',
'79,81,82,83,84,-414,-414,-414,80,86,-414,-414,-414,,-414,,,62,,,,,,-414',
'-414,-414,,,,,,,,,-414,-414,,-414,-414,-414,-414,-414,,,,,,,,,,,,,,',
',,,,,,,,,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414',
'-414,-414,,,-414,-414,-414,,,-414,,261,-414,,,-414,-414,,-414,,-414',
',-414,,-414,-414,-414,-414,-414,-414,-414,,-414,-414,-414,,,,,,,,,,',
',-292,-414,-414,,-414,,-414,-292,-292,-292,,,-292,-292,-292,,-292,,',
',,,,,,,-292,-292,,,,,,,,,-292,-292,,-292,-292,-292,-292,-292,,,,,,,',
',,,,,,,,,,,,,,,,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292',
'-292,-292,-292,,,-292,-292,-292,,,-292,,264,-292,,,-292,-292,,-292,',
'-292,,-292,,-292,-292,-292,-292,-292,-292,-292,,-292,,-292,,,,,,,,,',
',,,-292,-292,,-292,,-292,69,70,71,,57,,,,63,64,,,,67,,65,66,68,32,33',
'72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91',
'90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,273,,271,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46',
',,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,',
',67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,',
',,,,,,,,,216,,,222,,,58,59,,,60,,273,,271,,46,,,,,,,,221,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72',
'73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,296,,,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,,,302,,,,,,,,,,,,,,,,,,,,292,,,288,,,58,59',
',,60,,287,,,,,,,,,,,,,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,',
'62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97',
',,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,,,302',
',,,,,,,,,,,,,,,,,,,292,,,222,,,58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,304,57,,,62,63,64,,,,67,,65,66,68,298,299',
'72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,296,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,,,302,,,,,,,,,,,,,,,,,,,,292,,,288,,,58',
'59,,,60,,,,,,,,,,,,,,,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,',
'62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97',
',,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,,,302',
',,,,,,,,,,,,,,,,,,,292,,,288,,,58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72',
'73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58',
'59,,,60,,394,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71',
',57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94',
'96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,',
'44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216',
',,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86',
'69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87',
'88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,',
',,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,',
'65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,',
',99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,',
',,,,,,,,,216,,,222,,,58,59,,,60,,643,,271,,46,,,,,,,,221,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73',
',,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92,',
'93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60',
',,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63',
'64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,47,,,99,98,100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43',
',,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,273,,,,46,,,,,,,,221,,,,',
'85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32',
'33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58',
'59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57',
',,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73',
',,,,,31,30,29,95,94,96,97,,,22,,,,,600,,47,,,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,231,235,240,241,242,237,239,247,248,243',
'244,,224,225,,,245,246,,216,,,222,,,58,59,,,60,,,228,,234,46,230,229',
'226,227,238,236,232,23,233,,,,85,79,81,82,83,84,,,,80,86,107,249,69',
'70,71,106,57,62,,,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301',
'95,94,96,97,,,223,,,,,,,296,,,99,98,100,89,56,91,90,92,,93,101,102,',
'87,88,,,,302,,,,,,,,,,,,,,,,,,,,335,,,35,,,58,59,,,60,,37,,,,,,,,,,',
',,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,47,,,99,98',
'100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,',
',,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,',
',80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294',
'295,301,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,275,93',
'101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,',
'643,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,12,57,',
',62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22',
',,,,,11,47,10,13,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45',
'43,,,,,,,,,,,,,,,,,,,,42,,,35,,,58,59,,,60,,37,,,,46,,,,,,,,23,,,,,85',
'79,81,82,83,84,,,,80,86,69,70,71,,57,378,,62,63,64,,,,67,,65,66,68,32',
'33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91',
'90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58',
'59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57',
',,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22',
',,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43,,,',
',,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81',
'82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73',
',,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,',
'60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,',
'62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97',
',,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45',
'43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,,,,',
'85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32',
'33,72,73,,,,,,31,30,29,95,94,96,97,,,223,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,221,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95',
'94,96,97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221',
',,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66',
'68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223,,,,,,,296,,,99,98',
'100,563,56,91,90,564,,93,101,102,,87,88,,,,302,,,,,,,,,,,,,,,,,,,,565',
',,222,,,58,59,,,60,,,,,,,,,,,,,,,,,,,85,79,81,82,83,84,,,,80,86,69,70',
'71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96',
'97,,,223,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44',
'45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,221,',
',,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68',
'32,33,72,73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56',
'91,90,92,,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,',
',58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71',
',57,,,62,63,64,,,,67,,65,66,68,32,33,72,73,,,,,,31,30,29,95,94,96,97',
',,22,,,,,,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43',
',,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,,,,,46,,,,,,,,23,,,,,85,79',
'81,82,83,84,,,,80,86,69,70,71,,57,,,62,63,64,,,,67,,65,66,68,32,33,72',
'73,,,,,,31,30,29,95,94,96,97,,,22,,,,,,,47,,,99,98,100,89,56,91,90,92',
',93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,',
'60,,,,,,46,,,,,,,,23,,,,,85,79,81,82,83,84,,,,80,86,69,70,71,,57,,,62',
'63,64,,,,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,616,,47,,,99,98,100,89,56,91,90,92,,93,101,102,,87,88,,44,45,43',
'231,235,240,241,242,237,239,247,248,243,244,,224,225,,,245,246,,216',
',,222,,,58,59,,,60,,,228,,234,46,230,229,226,227,238,236,232,221,233',
',,,85,79,81,82,83,84,,,,80,86,,249,,,,,,62,166,177,167,190,163,183,173',
'172,193,194,188,171,170,165,191,195,196,175,164,178,182,184,176,169',
',,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159,160,156',
'157,158,118,120,,,119,,,,,,,,,151,152,,148,130,131,132,139,136,138,',
',133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150,147,146,142',
'143,137,135,127,149,128,,,155,85,,,,,,,,,,86,166,177,167,190,163,183',
'173,172,193,194,188,171,170,165,191,195,196,175,164,178,182,184,176',
'169,,,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159,160',
'156,157,158,118,120,117,,119,,,,,,,,,151,152,,148,130,131,132,139,136',
'138,,,133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,,,155,85,,,,,,,,,,86,166,177,167,190,163',
'183,173,172,193,194,188,171,170,165,191,195,196,175,164,178,182,184',
'176,169,,,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159',
'160,156,157,158,118,120,,,119,,,,,,,,,151,152,,148,130,131,132,139,136',
'138,,,133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,,,155,85,,,,,,,,,,86,166,177,167,190,163',
'183,173,172,193,194,188,171,170,165,191,195,196,175,164,178,182,184',
'176,169,,,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159',
'160,156,157,158,118,120,,,119,,,,,,,,,151,152,,148,130,131,132,139,136',
'138,,,133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,,,155,85,,,,,,,,,,86,166,177,167,190,163',
'183,173,172,193,194,188,171,170,165,191,195,196,175,164,178,182,184',
'176,169,,,,185,192,187,350,349,351,348,162,181,180,,,,,,161,168,159',
'160,345,346,347,343,120,91,90,344,,93,,,,,,,151,152,,148,130,131,132',
'139,136,138,,,133,134,,,,153,154,140,141,,,,,,357,,,,,,,,145,144,,129',
'150,147,146,142,143,137,135,127,149,128,,,155,166,177,167,190,163,183',
'173,172,193,194,188,171,170,165,191,195,196,175,164,178,182,184,176',
'169,,,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159,160',
'156,157,158,118,120,375,374,119,,376,,,,,,,151,152,,148,130,131,132',
'139,136,138,,,133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150',
'147,146,142,143,137,135,127,149,128,,,155,166,177,167,190,163,183,173',
'172,193,194,188,171,170,165,191,195,196,175,164,178,182,184,176,169',
',,,185,192,187,186,179,189,174,162,181,180,,,,,,161,168,159,160,156',
'157,158,118,120,,,119,,,,,,,,,151,152,,148,130,131,132,139,136,138,',
',133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129,150,147,146,142',
'143,137,135,127,149,128,465,407,155,,466,,,,,,,,,151,152,,148,130,131',
'132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,,,,,,,,,145,144,,129',
'150,147,146,142,143,137,135,127,149,128,465,407,155,,466,,,,,,,,,151',
'152,,148,130,131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,',
',,,,,,,145,144,,129,150,147,146,142,143,137,135,127,149,128,655,414',
'155,,656,,,,,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153',
'154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147,146,142,143,137,135',
'127,149,128,652,407,155,,653,,,,,,,,,151,152,,148,130,131,132,139,136',
'138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147',
'146,142,143,137,135,127,149,128,974,414,155,,975,,,,,,,,,151,152,,148',
'130,131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,',
',145,144,,129,150,147,146,142,143,137,135,127,149,128,619,407,155,,620',
',,,,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153,154,140',
'141,,,,,,261,,,,,,,,145,144,,129,150,147,146,142,143,137,135,127,149',
'128,621,414,155,,622,,,,,,,,,151,152,,148,130,131,132,139,136,138,,',
'133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,704,414,155,,705,,,,,,,,,151,152,,148,130',
'131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145',
'144,,129,150,147,146,142,143,137,135,127,149,128,702,407,155,,703,,',
',,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153,154,140',
'141,,,,,,261,,,,,,,,145,144,,129,150,147,146,142,143,137,135,127,149',
'128,465,407,155,,466,,,,,,,,,151,152,,148,130,131,132,139,136,138,,',
'133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,972,407,155,,973,,,,,,,,,151,152,,148,130',
'131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145',
'144,,129,150,147,146,142,143,137,135,127,149,128,969,414,155,,968,,',
',,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153,154,140',
'141,,,,,,261,,,,,,,,145,144,,129,150,147,146,142,143,137,135,127,149',
'128,621,414,155,,622,,,,,,,,,151,152,,148,130,131,132,139,136,138,,',
'133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,619,407,155,,620,,,,,,,,,151,152,,148,130',
'131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145',
'144,,129,150,147,146,142,143,137,135,127,149,128,403,407,155,,404,,',
',,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153,154,140',
'141,,,,,,261,,,,,,,,145,144,,129,150,147,146,142,143,137,135,127,149',
'128,410,414,155,,409,,,,,,,,,151,152,,148,130,131,132,139,136,138,,',
'133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145,144,,129,150,147,146',
'142,143,137,135,127,149,128,809,414,155,,810,,,,,,,,,151,152,,148,130',
'131,132,139,136,138,,,133,134,,,,153,154,140,141,,,,,,261,,,,,,,,145',
'144,,129,150,147,146,142,143,137,135,127,149,128,,,155,231,235,240,241',
'242,237,239,247,248,243,244,,224,225,,,245,246,,,,,,,,,,,,,,,228,,234',
',230,229,226,227,238,236,232,,233,231,235,240,241,242,237,239,247,248',
'243,244,,224,225,,249,245,246,,,,,,,,,,,,,,,228,,234,,230,229,226,227',
'238,236,232,,233,231,235,240,241,242,237,239,247,248,243,244,,224,225',
',249,245,246,,,,,,,,,,,,,,,228,,234,,230,229,226,227,238,236,232,,233',
'231,235,240,241,242,237,239,247,248,243,244,,224,225,,249,245,246,,',
',,,,,,,,,,,,228,,234,,230,229,226,227,238,236,232,,233,231,235,240,241',
'242,237,239,247,248,243,244,,224,225,,249,245,246,,,,,,,,,,,,,,,228',
',234,,230,229,226,227,238,236,232,,233,231,235,240,241,242,237,239,247',
'248,243,244,,224,225,,249,245,246,,,,,,,,,,,,,,,228,,234,,230,229,226',
'227,238,236,232,,233,231,235,240,241,242,237,239,247,248,243,244,,224',
'225,,249,245,246,,,,,,,,,,,,,,,228,,234,,230,229,226,227,238,236,232',
',233,231,235,240,241,242,237,239,247,248,243,244,,224,225,211,249,245',
'246,,,,,,,,,,,,,,,228,,234,,230,229,226,227,238,236,232,,233,231,235',
'240,241,242,237,239,247,248,243,244,,224,225,,249,245,246,,,,,,,,,,',
',,,,228,,234,,230,229,226,227,238,236,232,,233,231,235,240,241,242,237',
'239,247,248,243,244,,224,225,,249,245,246,,,,,,,,,,,,,,,228,,234,,230',
'229,226,227,238,236,232,,233,231,235,240,241,242,237,239,247,248,243',
'244,,224,225,,249,245,246,,,,,,,,,,,,,,,228,,234,,230,229,226,227,238',
'236,232,,233,231,235,240,241,242,237,239,247,248,243,244,,224,225,,249',
'245,246,,,,,,,,,,,,,,,228,,234,,230,229,226,227,238,236,232,,233,231',
'235,240,241,242,237,239,247,248,243,244,,224,225,,249,245,246,,,,,,',
',,,,,,,,228,,234,,230,229,226,227,238,236,232,,233,231,235,240,241,242',
'237,239,247,248,243,244,,224,225,,249,245,246,,,,,,,,,,,,,,,228,,234',
',230,229,226,227,238,236,232,,233,,,,,,,,,,,,,,,,249' ]
        racc_action_table = arr = ::Array.new(23729, 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 = [
'410,326,22,987,877,856,61,410,410,410,427,427,217,410,410,569,410,291',
'77,635,957,957,526,463,291,410,77,28,325,806,973,668,441,291,668,369',
'410,410,22,410,410,410,410,410,972,280,280,280,280,280,702,336,332,635',
'553,703,473,463,974,565,217,20,20,565,704,807,561,410,410,410,410,410',
'410,410,410,410,410,410,410,410,410,554,808,410,410,410,333,410,723',
'723,473,410,28,61,410,663,663,297,369,410,427,410,429,410,410,410,410',
'410,410,410,705,410,410,410,28,326,653,987,877,856,326,569,987,877,856',
'621,410,410,526,410,704,410,621,621,621,410,974,621,621,621,569,621',
'325,806,973,569,806,325,806,973,621,621,621,621,553,702,336,332,972',
'553,703,621,621,972,621,621,621,621,621,704,807,561,974,652,716,620',
'705,974,723,716,472,554,808,653,297,663,554,808,927,419,927,333,621',
'621,621,621,621,621,621,621,621,621,621,621,621,621,324,324,621,621',
'621,366,621,621,472,705,621,771,653,621,621,653,621,620,621,411,621',
'653,621,621,621,621,621,621,621,402,621,621,621,873,652,873,873,873',
'363,873,588,363,731,564,563,621,621,621,621,622,621,691,691,621,621',
'278,622,622,622,215,278,622,622,622,771,622,366,366,366,652,401,771',
'652,647,348,622,622,622,652,647,771,348,809,302,302,622,622,347,622',
'622,622,622,622,752,347,398,564,563,771,363,363,588,588,564,563,717',
'717,215,564,563,588,873,564,563,315,315,622,622,622,622,622,622,622',
'622,622,622,622,622,622,622,564,563,622,622,622,809,622,622,344,395',
'622,752,809,622,622,344,622,809,622,736,622,809,622,622,622,622,622',
'622,622,392,622,628,622,628,628,628,359,628,524,809,390,524,368,655',
'361,622,622,622,622,89,622,365,371,622,622,721,89,89,89,754,721,89,89',
'89,686,89,686,686,686,628,686,318,755,89,318,89,89,89,628,628,628,628',
'756,619,758,89,89,346,89,89,89,89,89,306,346,349,655,359,359,359,759',
'433,349,655,117,361,361,361,655,117,117,628,655,371,371,371,89,89,89',
'89,89,89,89,89,89,89,89,89,89,89,655,619,89,89,89,306,89,89,345,762',
'89,306,686,89,89,345,89,770,89,433,89,337,89,89,89,89,89,89,89,774,89',
'527,89,527,527,527,214,527,900,335,900,900,900,777,900,89,89,89,89,92',
'89,403,18,89,89,5,92,92,92,41,5,92,92,92,323,92,323,323,323,527,323',
'317,439,92,317,92,92,92,527,527,527,527,329,778,214,92,92,329,92,92',
'92,92,92,403,18,43,43,40,343,403,18,41,323,323,439,343,782,41,439,439',
'816,323,323,323,323,816,92,92,92,92,92,92,92,92,92,92,92,92,92,92,783',
'17,92,92,92,48,92,92,17,40,92,784,48,92,92,40,92,17,92,785,92,48,92',
'92,92,92,92,92,92,404,92,720,92,720,720,720,540,720,540,540,540,786',
'540,789,213,92,92,92,92,409,92,213,351,92,92,790,409,409,409,351,213',
'792,409,409,835,409,835,835,835,720,835,404,794,331,540,350,796,404',
'720,720,720,720,350,540,330,409,409,27,409,409,409,409,409,799,27,802',
'319,837,353,837,837,837,835,837,795,353,795,795,795,311,795,835,835',
'835,835,13,409,409,409,409,409,409,409,409,409,409,409,409,409,409,812',
'601,409,409,409,837,409,308,307,817,409,818,795,409,837,837,837,837',
'409,819,409,795,409,409,409,409,409,409,409,886,409,828,409,829,886',
'683,303,683,683,683,301,683,440,601,414,409,409,296,409,601,409,414',
'414,414,409,295,414,414,414,840,414,840,840,840,459,840,292,1,842,414',
'414,414,414,683,440,843,286,848,440,440,414,414,683,414,414,414,414',
'414,955,285,955,955,955,850,955,851,459,840,284,282,459,459,459,459',
'272,269,268,257,840,840,254,414,414,414,414,414,414,414,414,414,414',
'414,414,414,414,875,955,414,414,414,289,223,414,879,880,414,219,289',
'414,414,218,414,885,414,216,414,289,414,414,414,414,414,414,414,893',
'414,414,414,862,894,862,862,862,895,862,896,898,902,904,290,414,414',
'414,414,415,414,290,197,414,989,976,415,415,415,977,290,415,415,415',
'865,415,865,865,865,458,865,862,912,915,415,415,415,415,916,917,862',
'862,862,862,918,415,415,293,415,415,415,415,415,920,293,920,920,920',
'919,920,921,458,865,293,115,458,458,458,458,84,83,69,47,865,865,42,415',
'415,415,415,415,415,415,415,415,415,415,415,415,415,39,920,415,415,415',
'309,945,415,25,3,415,19,309,415,415,16,415,956,415,961,415,309,415,415',
'415,415,415,415,415,962,415,415,415,867,963,867,867,867,964,867,965',
'966,967,968,334,415,415,415,415,56,415,334,969,415,613,607,56,56,56',
'602,334,56,56,56,869,56,869,869,869,598,869,867,623,594,625,56,56,56',
'592,642,640,556,867,867,555,56,56,649,56,56,56,56,56,922,651,922,922',
'922,550,922,548,797,869,797,797,797,761,797,761,761,761,654,761,869',
'869,545,56,56,56,56,56,56,56,56,56,56,56,56,56,56,971,922,56,56,56,499',
'657,56,658,797,56,538,499,56,56,531,56,661,56,662,56,499,56,56,56,56',
'56,56,56,530,56,983,56,983,983,983,567,983,488,488,488,488,488,567,708',
'56,56,56,56,664,56,708,567,56,673,673,673,673,673,673,708,724,724,673',
'673,724,724,724,673,983,673,673,673,673,673,673,673,529,525,674,983',
'983,673,673,673,673,673,673,673,522,515,673,9,9,9,9,9,673,673,514,673',
'673,673,673,673,673,673,673,673,656,673,673,673,513,673,673,656,673',
'673,673,504,656,685,500,810,656,680,901,680,680,680,810,680,688,901',
'693,810,909,698,673,810,910,673,901,909,673,673,495,910,673,701,673',
'493,909,490,673,677,910,677,677,677,489,677,673,680,475,15,474,673,673',
'673,673,673,673,444,680,680,673,673,222,222,222,222,222,222,443,673',
'442,222,222,,,,222,677,222,222,222,222,222,222,222,,677,677,677,677',
'222,222,222,222,222,222,222,,,222,646,646,646,646,646,222,222,,222,222',
'222,222,222,222,222,222,222,911,222,222,222,,222,222,911,222,222,222',
'913,,,,949,911,936,913,936,936,936,949,936,,,,913,,,222,949,975,222',
',,222,222,,975,222,,222,,975,,222,675,975,675,675,675,,675,222,936,',
',,222,222,222,222,222,222,,936,936,222,222,288,288,288,288,288,288,',
'222,,288,288,,,,288,675,288,288,288,288,288,288,288,,675,675,675,675',
'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,,,,,,,938,,938,938',
'938,,938,,,,,,,288,,,288,,,288,288,,,288,,288,,,,288,933,,933,933,933',
',933,288,938,,,,288,288,288,288,288,288,,938,938,288,288,552,552,552',
'552,552,552,,288,,552,552,,,,552,933,552,552,552,552,552,552,552,,933',
'933,933,933,552,552,552,552,552,552,552,,,552,,,,,,552,552,,552,552',
'552,552,552,552,552,552,552,,552,552,552,,552,552,,552,552,552,447,',
',,,,951,,951,951,951,,951,,,,447,447,,552,,,552,,,552,552,,,552,,552',
'447,,,552,447,447,447,447,,,,552,951,,,,552,552,552,552,552,552,,951',
'951,552,552,908,908,908,908,908,908,,552,,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,437,437,437,437,437,437,437,437,437,437,437,,437,437,,,437,437,',
'908,,,908,,,908,908,,,908,,908,437,,437,908,437,437,437,437,437,437',
'437,908,437,,,,908,908,908,908,908,908,,,,908,908,719,719,719,719,719',
'719,,908,,719,719,,,,719,,719,719,719,719,719,719,719,,,,,,719,719,719',
'719,719,719,719,,874,719,874,874,874,,874,719,719,,719,719,719,719,719',
'719,719,719,719,,719,719,719,,719,719,,719,719,719,452,,,,,,,,874,,',
',,,,,452,452,,719,,,719,,,719,719,,,719,,719,452,,452,719,452,452,452',
'452,,,452,719,452,,,,719,719,719,719,719,719,,,,719,719,199,199,199',
'199,199,199,,719,,199,199,,,,199,,199,199,199,199,199,199,199,,,,,,199',
'199,199,199,199,199,199,,,199,,,,,,199,199,,199,199,199,199,199,199',
'199,199,199,,199,199,199,,199,199,,199,199,199,451,,,,,,,,,,,,,,,,451',
'451,,199,,,199,,,199,199,,,199,,199,451,,451,199,451,451,451,451,,,451',
'199,451,,,,199,199,199,199,199,199,,,,199,199,549,549,549,549,549,549',
',199,,549,549,,,,549,,549,549,549,549,549,549,549,,,,,,549,549,549,549',
'549,549,549,,,549,,,,,,549,549,,549,549,549,549,549,549,549,549,549',
',549,549,549,,549,549,,549,549,549,450,,,,,,,,,,,,,,,,450,450,,549,',
',549,,,549,549,,,549,,549,450,,450,549,450,450,450,450,,,450,549,450',
',,,549,549,549,549,549,549,,,,549,549,764,764,764,764,764,764,,549,',
'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,438,438,438,438,438,438,438,438,438,438',
'438,,438,438,,,438,438,,764,,,764,,,764,764,,,764,,764,438,,438,764',
'438,438,438,438,438,438,438,764,438,,,,764,764,764,764,764,764,,,,764',
'764,767,767,767,767,767,767,,764,,767,767,,,,767,,767,767,767,767,767',
'767,767,,,,,,767,767,767,767,767,767,767,,,767,,,,,,767,767,,767,767',
'767,767,767,767,767,767,767,,767,767,767,,767,767,,767,767,767,449,',
',,,,,,,,,,,,,,449,449,,767,,,767,,,767,767,,,767,,767,449,,449,767,449',
'449,449,449,,,449,767,449,,,,767,767,767,767,767,767,,,,767,767,932',
'932,932,932,932,932,,767,,932,932,,,,932,,932,932,932,932,932,932,932',
',,,,,932,932,932,932,932,932,932,,,932,,,,,,932,932,,932,932,932,932',
'932,932,932,932,932,,932,932,932,,932,932,,932,932,932,448,448,448,448',
'448,448,448,,,448,448,,,,,,448,448,,932,,,932,,,932,932,,,932,,932,448',
',448,932,448,448,448,448,448,448,448,932,448,,,,932,932,932,932,932',
'932,,,,932,932,776,776,776,776,776,776,,932,,776,776,,,,776,,776,776',
'776,776,776,776,776,,,,,,776,776,776,776,776,776,776,,,776,,,,,,776',
'776,,776,776,776,776,776,776,776,776,776,,776,776,776,,776,776,,776',
'776,776,460,460,460,460,460,460,460,,,460,460,,,,,,460,460,,776,,,776',
',,776,776,,,776,,776,460,,460,776,460,460,460,460,460,460,460,776,460',
',,,776,776,776,776,776,776,,,,776,776,931,931,931,931,931,931,,776,',
'931,931,,,,931,,931,931,931,931,931,931,931,,,,,,931,931,931,931,931',
'931,931,,,931,,,,,,931,931,,931,931,931,931,931,931,931,931,931,,931',
'931,931,,931,931,,931,931,931,461,461,461,461,461,461,461,461,,461,461',
',,,,,461,461,,931,,,931,,,931,931,,,931,,931,461,,461,931,461,461,461',
'461,461,461,461,931,461,,,,931,931,931,931,931,931,,,,931,931,928,928',
'928,928,928,928,,931,,928,928,,,,928,,928,928,928,928,928,928,928,,',
',,,928,928,928,928,928,928,928,,,928,,,,,,928,928,,928,928,928,928,928',
'928,928,928,928,,928,928,928,,928,928,,928,928,928,455,455,455,455,455',
'455,455,,,455,455,,,,,,455,455,,928,,,928,,,928,928,,,928,,928,455,',
'455,928,455,455,455,455,455,455,455,928,455,,,,928,928,928,928,928,928',
',,,928,928,813,813,813,813,813,813,,928,,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,454,454,454,454,454,454,454,,,454,454,,,,,,454,454,,813,,,813,,',
'813,813,,,813,,813,454,,454,813,454,454,454,454,454,454,454,813,454',
',,,813,813,813,813,813,813,,,,813,813,803,803,803,803,803,803,,813,',
'803,803,,,,803,,803,803,803,803,803,803,803,,,,,,803,803,803,803,803',
'803,803,,,803,,,,,,803,803,,803,803,803,803,803,803,803,803,803,,803',
'803,803,,803,803,,803,803,803,453,453,453,453,453,453,453,,,453,453',
',,,,,453,453,,803,,,803,,,803,803,,,803,,803,453,,453,803,453,453,453',
'453,453,453,453,803,453,,,,803,803,803,803,803,803,,,,803,803,923,923',
'923,923,923,923,,803,,923,923,,,,923,,923,923,923,923,923,923,923,,',
',,,923,923,923,923,923,923,923,,,923,,,,,,923,923,,923,923,923,923,923',
'923,923,923,923,,923,923,923,,923,923,,923,923,923,457,457,457,457,457',
'457,457,,,457,457,,,,,,457,457,,923,,,923,,,923,923,,,923,,923,457,',
'457,923,457,457,457,457,457,457,457,923,457,,,,923,923,923,923,923,923',
',,,923,923,314,314,314,314,314,314,,923,,314,314,,,,314,,314,314,314',
'314,314,314,314,,,,,,314,314,314,314,314,314,314,,,314,,,,,,314,314',
',314,314,314,314,314,314,314,314,314,,314,314,314,,314,314,,314,314',
'314,456,456,456,456,456,456,456,,,456,456,,,,,,456,456,,314,,,314,,',
'314,314,,,314,,314,456,,456,314,456,456,456,456,456,456,456,314,456',
',,,314,314,314,314,314,314,,,,314,314,2,2,2,2,2,2,,314,,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,445,,,,,,,,,,,,,,,,445,445,,2,,,2,,,2,2,,,2,,2,445,,445',
'2,445,445,445,445,,,,2,,,,,2,2,2,2,2,2,,,,2,2,804,804,804,804,804,804',
',2,,804,804,,,,804,,804,804,804,804,804,804,804,,,,,,804,804,804,804',
'804,804,804,,,804,,,,,,804,804,,804,804,804,804,804,804,804,804,804',
',804,804,804,,804,804,,804,804,804,446,,,,,,,,,,,,,,,,446,446,,804,',
',804,,,804,804,,,804,,804,446,,446,804,446,446,446,446,,,,804,,,,,804',
'804,804,804,804,804,,,,804,804,35,35,35,35,35,35,,804,,35,35,,,,35,',
'35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35,,,,,,35,35,,35,35',
'35,35,35,35,35,35,35,,35,35,35,,35,35,,35,35,35,,,,,,,,,,,,,,,,,,,,35',
',,35,,,35,35,,,35,,35,,,,35,,,,,,,,35,,,,,35,35,35,35,35,35,,,,35,35',
'725,725,725,725,725,725,,35,,725,725,,,,725,,725,725,725,725,725,725',
'725,,,,,,725,725,725,725,725,725,725,,,725,,,,,,725,725,,725,725,725',
'725,725,725,725,725,725,,725,725,725,,725,725,,725,725,725,,,,,,,,,',
',,,,,,,,,,725,,,725,,,725,725,,,725,,725,,,,725,,,,,,,,725,,,,,725,725',
'725,725,725,725,,,,725,725,672,672,672,672,672,672,,725,,672,672,,,',
'672,,672,672,672,672,672,672,672,,,,,,672,672,672,672,672,672,672,,',
'672,,,,,,672,672,,672,672,672,672,672,672,672,672,672,,672,672,672,',
'672,672,,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672,,672',
',,,672,,,,,,,,672,,,,,672,672,672,672,672,672,,,,672,672,718,718,718',
'718,718,718,,672,,718,718,,,,718,,718,718,718,718,718,718,718,,,,,,718',
'718,718,718,718,718,718,,,718,,,,,,718,718,,718,718,718,718,718,718',
'718,718,718,,718,718,718,,718,718,,718,718,718,,,,,,,,,,,,,,,,,,,,718',
',,718,,,718,718,,,718,,718,,,,718,,,,,,,,718,,,,,718,718,718,718,718',
'718,,,,718,718,384,384,384,384,384,384,,718,,384,384,,,,384,,384,384',
'384,384,384,384,384,,,,,,384,384,384,384,384,384,384,,,384,,,,,,384',
'384,384,384,384,384,384,384,384,384,384,384,,384,384,384,,384,384,,384',
'384,384,,,,,,,,,,,,,,,,,,,,384,,,384,,,384,384,,,384,,384,,,,384,,,',
',,,,384,,,,,384,384,384,384,384,384,,,,384,384,882,882,882,882,882,882',
',384,,882,882,,,,882,,882,882,882,882,882,882,882,,,,,,882,882,882,882',
'882,882,882,,,882,,,,,,882,882,,882,882,882,882,882,882,882,882,882',
',882,882,882,,882,882,,882,882,882,,,,,,,,,,,,,,,,,,,,882,,,882,,,882',
'882,,,882,,882,,,,882,,,,,,,,882,,,,,882,882,882,882,882,882,,,,882',
'882,766,766,766,766,766,766,,882,,766,766,,,,766,,766,766,766,766,766',
'766,766,,,,,,766,766,766,766,766,766,766,,,766,,,,,,766,766,,766,766',
'766,766,766,766,766,766,766,,766,766,766,,766,766,,766,766,766,,,,,',
',,,,,,,,,,,,,,766,,,766,,,766,766,,,766,,766,,,,766,,,,,,,,766,,,,,766',
'766,766,766,766,766,,,,766,766,283,283,283,283,283,283,,766,,283,283',
',,,283,,283,283,283,283,283,283,283,,,,,,283,283,283,283,283,283,283',
',,283,,,,,,283,283,,283,283,283,283,283,283,283,283,283,,283,283,283',
',283,283,,283,283,283,,,,,,,,,,,,,,,,,,,,283,,,283,,,283,283,,,283,',
'283,,,,283,,,,,,,,283,,,,,283,283,283,283,283,283,,,,283,283,853,853',
'853,853,853,853,,283,,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,849,849,849,849,849,849,,853,,849,849,,,,849,,849',
'849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,',
'849,849,,849,849,849,849,849,849,849,849,849,,849,849,849,,849,849,',
'849,849,849,,,,,,,,,,,,,,,,,,,,849,,,849,,,849,849,,,849,,849,,,,849',
',,,,,,,849,,,,,849,849,849,849,849,849,,,,849,849,112,112,112,,112,',
',849,112,112,,,,112,,112,112,112,112,112,112,112,,,,,,112,112,112,112',
'112,112,112,,,112,,,,,,,112,,,112,112,112,112,112,112,112,112,,112,112',
'112,,112,112,,112,112,112,,,,,,,,,,,,,,,,,,,,112,,,112,,,112,112,,,112',
',,,,,112,,,,,,,,112,,,,,112,112,112,112,112,112,,,,112,112,113,113,113',
',113,,,112,113,113,,,,113,,113,113,113,113,113,113,113,,,,,,113,113',
'113,113,113,113,113,,,113,,,,,,,113,,,113,113,113,113,113,113,113,113',
',113,113,113,,113,113,,113,113,113,,,,,,,,,,,,,,,,,,,,113,,,113,,,113',
'113,,,113,,,,,,113,,,,,,,,113,,,,,113,113,113,113,113,113,,,,113,113',
'114,114,114,114,114,,,113,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,681,681,681,,681,,,114,681,681,,,,681,,681,681',
'681,681,681,681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681',
',,681,681,681,681,681,681,681,681,,681,681,681,,681,681,,681,681,681',
',,,,,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,,,681,,,,,,,,681,,,',
',681,681,681,681,681,681,,,,681,681,512,512,512,,512,,,681,512,512,',
',,512,,512,512,512,512,512,512,512,,,,,,512,512,512,512,512,512,512',
',,512,,,,,,,512,,,512,512,512,512,512,512,512,512,,512,512,512,,512',
'512,,512,512,512,,,,,,,,,,,,,,,,,,,,512,,,512,,,512,512,,,512,,,,,,512',
',,,,,,,512,,,,,512,512,512,512,512,512,,,,512,512,200,200,200,,200,',
',512,200,200,,,,200,,200,200,200,200,200,200,200,,,,,,200,200,200,200',
'200,200,200,,,200,,,,,,,200,,,200,200,200,200,200,200,200,200,,200,200',
'200,,200,200,,200,200,200,,,,,,,,,,,,,,,,,,,,200,,,200,,,200,200,,,200',
',200,,,,200,,,,,,,,200,,,,,200,200,200,200,200,200,,,,200,200,201,201',
'201,,201,,,200,201,201,,,,201,,201,201,201,201,201,201,201,,,,,,201',
'201,201,201,201,201,201,,,201,,,,,,,201,,,201,201,201,201,201,201,201',
'201,,201,201,201,,201,201,,201,201,201,,,,,,,,,,,,,,,,,,,,201,,,201',
',,201,201,,,201,,,,,,201,,,,,,,,201,,,,,201,201,201,201,201,201,,,,201',
'201,202,202,202,,202,,,201,202,202,,,,202,,202,202,202,202,202,202,202',
',,,,,202,202,202,202,202,202,202,,,202,,,,,,,202,,,202,202,202,202,202',
'202,202,202,202,202,202,202,,202,202,,202,202,202,,,,,,,,,,,,,,,,,,',
',202,,,202,,,202,202,,,202,,202,,202,,202,,,,,,,,202,,,,,202,202,202',
'202,202,202,,,,202,202,508,508,508,,508,,,202,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,507,507,507,,507,,,508,507,507,',
',,507,,507,507,507,507,507,507,507,,,,,,507,507,507,507,507,507,507',
',,507,,,,,,,507,,,507,507,507,507,507,507,507,507,,507,507,507,,507',
'507,,507,507,507,,,,,,,,,,,,,,,,,,,,507,,,507,,,507,507,,,507,,,,,,507',
',,,,,,,507,,,,,507,507,507,507,507,507,,,,507,507,205,205,205,,205,',
',507,205,205,,,,205,,205,205,205,205,205,205,205,,,,,,205,205,205,205',
'205,205,205,,,205,,,,,,,205,,,205,205,205,205,205,205,205,205,,205,205',
'205,,205,205,,205,205,205,,,,,,,,,,,,,,,,,,,,205,,,205,,,205,205,,,205',
',,,,,205,,,,,,,,205,,,,,205,205,205,205,205,205,,,,205,205,206,206,206',
',206,,,205,206,206,,,,206,,206,206,206,206,206,206,206,,,,,,206,206',
'206,206,206,206,206,,,206,,,,,,,206,,,206,206,206,206,206,206,206,206',
',206,206,206,,206,206,,206,206,206,,,,,,,,,,,,,,,,,,,,206,,,206,,,206',
'206,,,206,,206,,,,206,,,,,,,,206,,,,,206,206,206,206,206,206,,,,206',
'206,207,207,207,,207,,,206,207,207,,,,207,,207,207,207,207,207,207,207',
',,,,,207,207,207,207,207,207,207,,,207,,,,,,,207,,,207,207,207,207,207',
'207,207,207,,207,207,207,,207,207,,207,207,207,,,,,,,,,,,,,,,,,,,,207',
',,207,,,207,207,,,207,,,,,,207,,,,,,,,207,,,,,207,207,207,207,207,207',
',,,207,207,208,208,208,,208,,,207,208,208,,,,208,,208,208,208,208,208',
'208,208,,,,,,208,208,208,208,208,208,208,,,208,,,,,,,208,,,208,208,208',
'208,208,208,208,208,,208,208,208,,208,208,,208,208,208,,,,,,,,,,,,,',
',,,,,,208,,,208,,,208,208,,,208,,,,,,208,,,,,,,,208,,,,,208,208,208',
'208,208,208,,,,208,208,209,209,209,,209,,,208,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,209,209,209,209,209,,,,209,209,210,210,210,,210,,,209,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,506,506,506,,506',
',210,,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,503,503,503',
',503,,,506,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,496,496,496',
',496,,,503,496,496,,,,496,,496,496,496,496,496,496,496,,,,,,496,496',
'496,496,496,496,496,,,496,,,,,,,496,,,496,496,496,496,496,496,496,496',
'496,496,496,496,,496,496,,496,496,496,,,,,,,,,,,,,,,,,,,,496,,,496,',
',496,496,,,496,,496,,496,,496,,,,,,,,496,,,,,496,496,496,496,496,496',
',,,496,496,700,700,700,,700,,,496,700,700,,,,700,,700,700,700,700,700',
'700,700,,,,,,700,700,700,700,700,700,700,,,700,,,,,,,700,,,700,700,700',
'700,700,700,700,700,,700,700,700,,700,700,,700,700,700,,,,,,,,,,,,,',
',,,,,,700,,,700,,,700,700,,,700,,700,,,,700,,,,,,,,700,,,,,700,700,700',
'700,700,700,,,,700,700,494,494,494,,494,,,700,494,494,,,,494,,494,494',
'494,494,494,494,494,,,,,,494,494,494,494,494,494,494,,,494,,,,,,,494',
',,494,494,494,494,494,494,494,494,,494,494,494,,494,494,,,,494,,,,,',
',,,,,,,,,,,,,,494,,,494,,,494,494,,,494,,,,,,,,,,,,,,,,,,,494,494,494',
'494,494,494,,,,494,494,881,881,881,,881,,,494,881,881,,,,881,,881,881',
'881,881,881,881,881,,,,,,881,881,881,881,881,881,881,,,881,,,,,,,881',
',,881,881,881,881,881,881,881,881,,881,881,881,,881,881,,881,881,881',
',,,,,,,,,,,,,,,,,,,881,,,881,,,881,881,,,881,,881,,,,881,,,,,,,,881',
',,,,881,881,881,881,881,881,,,,881,881,221,221,221,,221,,,881,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,604,604,604,,604,',
',221,604,604,,,,604,,604,604,604,604,604,604,604,,,,,,604,604,604,604',
'604,604,604,,,604,,,,,,,604,,,604,604,604,604,604,604,604,604,604,604',
'604,604,,604,604,,604,604,604,,,,,,,,,,,,,,,,,,,,604,,,604,,,604,604',
',,604,,,,604,,604,,,,,,,,604,,,,,604,604,604,604,604,604,,,,604,604',
'224,224,224,,224,,,604,224,224,,,,224,,224,224,224,224,224,224,224,',
',,,,224,224,224,224,224,224,224,,,224,,,,,,,224,,,224,224,224,224,224',
'224,224,224,,224,224,224,,224,224,,224,224,224,,,,,,,,,,,,,,,,,,,,224',
',,224,,,224,224,,,224,,,,,,224,,,,,,,,224,,,,,224,224,224,224,224,224',
',,,224,224,225,225,225,,225,,,224,225,225,,,,225,,225,225,225,225,225',
'225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,225',
'225,225,225,225,225,,225,225,225,,225,225,,225,225,225,,,,,,,,,,,,,',
',,,,,,225,,,225,,,225,225,,,225,,,,,,225,,,,,,,,225,,,,,225,225,225',
'225,225,225,,,,225,225,226,226,226,,226,,,225,226,226,,,,226,,226,226',
'226,226,226,226,226,,,,,,226,226,226,226,226,226,226,,,226,,,,,,,226',
',,226,226,226,226,226,226,226,226,,226,226,226,,226,226,,226,226,226',
',,,,,,,,,,,,,,,,,,,226,,,226,,,226,226,,,226,,,,,,226,,,,,,,,226,,,',
',226,226,226,226,226,226,,,,226,226,227,227,227,,227,,,226,227,227,',
',,227,,227,227,227,227,227,227,227,,,,,,227,227,227,227,227,227,227',
',,227,,,,,,,227,,,227,227,227,227,227,227,227,227,,227,227,227,,227',
'227,,227,227,227,,,,,,,,,,,,,,,,,,,,227,,,227,,,227,227,,,227,,,,,,227',
',,,,,,,227,,,,,227,227,227,227,227,227,,,,227,227,228,228,228,,228,',
',227,228,228,,,,228,,228,228,228,228,228,228,228,,,,,,228,228,228,228',
'228,228,228,,,228,,,,,,,228,,,228,228,228,228,228,228,228,228,,228,228',
'228,,228,228,,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228,,,228,228,,,228',
',,,,,228,,,,,,,,228,,,,,228,228,228,228,228,228,,,,228,228,229,229,229',
',229,,,228,229,229,,,,229,,229,229,229,229,229,229,229,,,,,,229,229',
'229,229,229,229,229,,,229,,,,,,,229,,,229,229,229,229,229,229,229,229',
',229,229,229,,229,229,,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229',
'229,,,229,,,,,,229,,,,,,,,229,,,,,229,229,229,229,229,229,,,,229,229',
'230,230,230,,230,,,229,230,230,,,,230,,230,230,230,230,230,230,230,',
',,,,230,230,230,230,230,230,230,,,230,,,,,,,230,,,230,230,230,230,230',
'230,230,230,,230,230,230,,230,230,,230,230,230,,,,,,,,,,,,,,,,,,,,230',
',,230,,,230,230,,,230,,,,,,230,,,,,,,,230,,,,,230,230,230,230,230,230',
',,,230,230,231,231,231,,231,,,230,231,231,,,,231,,231,231,231,231,231',
'231,231,,,,,,231,231,231,231,231,231,231,,,231,,,,,,,231,,,231,231,231',
'231,231,231,231,231,,231,231,231,,231,231,,231,231,231,,,,,,,,,,,,,',
',,,,,,231,,,231,,,231,231,,,231,,,,,,231,,,,,,,,231,,,,,231,231,231',
'231,231,231,,,,231,231,232,232,232,,232,,,231,232,232,,,,232,,232,232',
'232,232,232,232,232,,,,,,232,232,232,232,232,232,232,,,232,,,,,,,232',
',,232,232,232,232,232,232,232,232,,232,232,232,,232,232,,232,232,232',
',,,,,,,,,,,,,,,,,,,232,,,232,,,232,232,,,232,,,,,,232,,,,,,,,232,,,',
',232,232,232,232,232,232,,,,232,232,233,233,233,,233,,,232,233,233,',
',,233,,233,233,233,233,233,233,233,,,,,,233,233,233,233,233,233,233',
',,233,,,,,,,233,,,233,233,233,233,233,233,233,233,,233,233,233,,233',
'233,,233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233,,,,,,233',
',,,,,,,233,,,,,233,233,233,233,233,233,,,,233,233,234,234,234,,234,',
',233,234,234,,,,234,,234,234,234,234,234,234,234,,,,,,234,234,234,234',
'234,234,234,,,234,,,,,,,234,,,234,234,234,234,234,234,234,234,,234,234',
'234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,,,,234,,,234,,,234,234,,,234',
',,,,,234,,,,,,,,234,,,,,234,234,234,234,234,234,,,,234,234,235,235,235',
',235,,,234,235,235,,,,235,,235,235,235,235,235,235,235,,,,,,235,235',
'235,235,235,235,235,,,235,,,,,,,235,,,235,235,235,235,235,235,235,235',
',235,235,235,,235,235,,235,235,235,,,,,,,,,,,,,,,,,,,,235,,,235,,,235',
'235,,,235,,,,,,235,,,,,,,,235,,,,,235,235,235,235,235,235,,,,235,235',
'236,236,236,,236,,,235,236,236,,,,236,,236,236,236,236,236,236,236,',
',,,,236,236,236,236,236,236,236,,,236,,,,,,,236,,,236,236,236,236,236',
'236,236,236,,236,236,236,,236,236,,236,236,236,,,,,,,,,,,,,,,,,,,,236',
',,236,,,236,236,,,236,,,,,,236,,,,,,,,236,,,,,236,236,236,236,236,236',
',,,236,236,237,237,237,,237,,,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,238,238,238,,238,,,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,239,239,239,,239,,,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,240,240,240,,240,',
',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,241,241,241',
',241,,,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',
'242,242,242,,242,,,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,243,243,243,,243,,,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,244,244,244,,244,,,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,245,245,245,,245,,,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,246,246,246,,246,',
',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,247,247,247',
',247,,,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',
'248,248,248,,248,,,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,249,249,249,,249,,,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,487,487,487,487,487,,,249,487,487,,,,487,,487',
'487,487,487,487,487,487,,,,,,487,487,487,487,487,487,487,,,487,,,,,',
'487,487,,487,487,487,487,487,487,487,487,487,,487,487,487,,487,487,',
'487,487,487,,,,,,,,,,,,,,,,,,,,487,,,487,,,487,487,,,487,,487,,,,487',
',,,,,,,487,,,,,487,487,487,487,487,487,,,,487,487,483,483,483,,483,487',
',487,483,483,,,,483,,483,483,483,483,483,483,483,,,,,,483,483,483,483',
'483,483,483,,,483,,,,,,,483,,,483,483,483,483,483,483,483,483,,483,483',
'483,,483,483,,483,483,483,,,,,,,,,,,,,,,,,,,,483,,,483,,,483,483,,,483',
',,,,,483,,,,,,,,483,,,,,483,483,483,483,483,483,,,,483,483,481,481,481',
',481,,,483,481,481,,,,481,,481,481,481,481,481,481,481,,,,,,481,481',
'481,481,481,481,481,,,481,,,,,,,481,,,481,481,481,481,481,481,481,481',
'481,481,481,481,,481,481,,481,481,481,,,,,,,,,,,,,,,,,,,,481,,,481,',
',481,481,,,481,,,,481,,481,,,,,,,,481,,,,,481,481,481,481,481,481,,',
',481,481,255,255,255,,255,,,481,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,478,478,478,,478,,,255,478,478,,,,478',
',478,478,478,478,478,478,478,,,,,,478,478,478,478,478,478,478,,,478',
',,,,,,478,,,478,478,478,478,478,478,478,478,478,478,478,478,,478,478',
',478,478,478,,,,,,,,,,,,,,,,,,,,478,,,478,,,478,478,,,478,,478,,478',
',478,,,,,,,,478,,,,,478,478,478,478,478,478,,,,478,478,261,261,261,',
'261,,,478,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,264,264,264,,264,,,261,264,264,,,,264,,264,264,264,264,264,264,264',
',,,,,264,264,264,264,264,264,264,,,264,,,,,,,264,,,264,264,264,264,264',
'264,264,264,264,264,264,264,,264,264,,264,264,264,,,,,,,,,,,,,,,,,,',
',264,,,264,,,264,264,,,264,,264,,264,,264,,,,,,,,264,,,,,264,264,264',
'264,264,264,,,,264,264,264,706,706,706,,706,,264,,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,891,,891,891,891,706',
'891,,,,,,,706,,,,467,706,706,706,706,706,706,467,467,467,706,706,467',
'467,467,,467,,,706,,891,891,,,,467,,,,891,891,891,891,,,467,467,,467',
'467,467,467,467,,,,,,,,,,,,,464,,,,,,,464,464,464,,,464,464,464,572',
'464,572,572,572,,572,467,,,,464,,,467,,,,,467,467,464,464,,464,464,464',
'464,464,,,,,,,,,,572,572,,,467,,,,,572,572,572,572,,,,,467,,,,,467,',
',464,,,,,,,464,,,,,464,464,,,,,,,,,,,,,,,,,,,,,,464,,,,,,271,271,271',
',271,,,464,271,271,,,464,271,,271,271,271,271,271,271,271,,,,,,271,271',
'271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271,271,271,271',
',271,271,271,,271,271,,271,271,271,,,,,,,,,,,,,,,,,,,,271,,,271,,,271',
'271,,,271,,,,,,271,,,,,,,,271,,,,,271,271,271,271,271,271,,,,271,271',
'712,712,712,,712,,,271,712,712,,,,712,,712,712,712,712,712,712,712,',
',,,,712,712,712,712,712,712,712,,,712,,,,,,,712,,,712,712,712,712,712',
'712,712,712,712,712,712,712,,712,712,,712,712,712,,,,,,,,,,,,,,,,,,',
',712,,,712,,,712,712,,,712,,712,,712,,712,,,,,,,,712,,,,,712,712,712',
'712,712,712,,,,712,712,273,273,273,,273,,,712,273,273,,,,273,,273,273',
'273,273,273,273,273,,,,,,273,273,273,273,273,273,273,,,273,,,,,,,273',
',,273,273,273,273,273,273,273,273,,273,273,273,,273,273,,273,273,273',
',,,,,,,,,,,,,,,,,,,273,,,273,,,273,273,,,273,,,,,,273,,,,,,,,273,,,',
',273,273,273,273,273,273,,,,273,273,275,275,275,,275,,,273,275,275,',
',,275,,275,275,275,275,275,275,275,,,,,,275,275,275,275,275,275,275',
',,275,,,,,,,275,,,275,275,275,275,275,275,275,275,,275,275,275,,275',
'275,,275,275,275,,,,,,,,,,,,,,,,,,,,275,,,275,,,275,275,,,275,,,,,,275',
',,,,,,,275,,,,,275,275,275,275,275,275,,,,275,275,857,857,857,,857,',
',275,857,857,,,,857,,857,857,857,857,857,857,857,,,,,,857,857,857,857',
'857,857,857,,,857,,,,,,,857,,,857,857,857,857,857,857,857,857,,857,857',
'857,,857,857,,,,857,,,,,,,,,,,,,,,,,,,,857,,,857,,,857,857,,,857,,,',
',,,,,,,,,,,,,,,857,857,857,857,857,857,,,,857,857,281,281,281,281,281',
',,857,281,281,,,,281,,281,281,281,281,281,281,281,,,,,,281,281,281,281',
'281,281,281,,,281,,,,,,281,281,,281,281,281,281,281,281,281,281,281',
',281,281,281,,281,281,,281,281,281,,,,,,,,,,,,,,,,,,,,281,,,281,,,281',
'281,,,281,,281,,,,281,,,,,,,,281,,,,,281,281,281,281,281,281,,,,281',
'281,605,605,605,,605,,,281,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,847,847,847,,847,,,605,847,847,,,,847,,847,847,847,847,847',
'847,847,,,,,,847,847,847,847,847,847,847,,,847,,,,,,,847,,,847,847,847',
'847,847,847,847,847,,847,847,847,,847,847,,,,847,,,,,,,,,,,,,,,,,,,',
'847,,,847,,,847,847,,,847,,,,,,,,,,,,,,,,,,,847,847,847,847,847,847',
',,,847,847,287,287,287,,287,,,847,287,287,,,,287,,287,287,287,287,287',
'287,287,,,,,,287,287,287,287,287,287,287,,,287,,,,,,422,287,,,287,287',
'287,287,287,287,287,287,,287,287,287,,287,287,,,,287,,422,422,422,422',
'422,422,422,422,422,422,422,,422,422,,,422,422,287,,,287,,,287,287,',
',287,,,,422,,422,,422,422,422,422,422,422,422,,422,,,287,287,287,287',
'287,287,,,,287,287,,,422,287,422,,,287,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,606,606,606,,606,,,8,606,606,,,,606,,606,606,606,606',
'606,606,606,,,,,,606,606,606,606,606,606,606,,,606,,,,,,,606,,,606,606',
'606,606,606,606,606,606,,606,606,606,,606,606,,606,606,606,,,,,,,,,',
',,,,,,,,,,606,,,606,,,606,606,,,606,,,,,,606,,,,,,,,606,,,,,606,606',
'606,606,606,606,,,,606,606,436,436,436,,436,,,606,436,436,,,,436,,436',
'436,436,436,436,436,436,,,,,,436,436,436,436,436,436,436,,,436,,,,,',
',436,,,436,436,436,436,436,436,436,436,,436,436,436,,436,436,,436,436',
'436,,,,,,,,,,,,,,,,,,,,436,,,436,,,436,436,,,436,,,,,,436,,,,,,,,436',
',,,,436,436,436,436,436,436,,,,436,436,435,435,435,,435,,,436,435,435',
',,,435,,435,435,435,435,435,435,435,,,,,,435,435,435,435,435,435,435',
',,435,,,,,,,435,,,435,435,435,435,435,435,435,435,,435,435,435,,435',
'435,,435,435,435,,,,,,,,,,,,,,,,,,,,435,,,435,,,435,435,,,435,,,,,,435',
',,,,,,,435,,,,,435,435,435,435,435,435,,,,435,435,434,434,434,,434,',
',435,434,434,,,,434,,434,434,434,434,434,434,434,,,,,,434,434,434,434',
'434,434,434,,,434,,,,,,,434,,,434,434,434,434,434,434,434,434,,434,434',
'434,,434,434,,434,434,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,,434',
',,,,,434,,,,,,,,434,,,,,434,434,434,434,434,434,,,,434,434,432,432,432',
',432,,,434,432,432,,,,432,,432,432,432,432,432,432,432,,,,,,432,432',
'432,432,432,432,432,,,432,,,,,,,432,,,432,432,432,432,432,432,432,432',
'432,432,432,432,,432,432,,432,432,432,,,,,,,,,,,,,,,,,,,,432,,,432,',
',432,432,,,432,,432,,432,,432,,,,,,,,432,,,,,432,432,432,432,432,432',
',,,432,432,833,833,833,,833,,,432,833,833,,,,833,,833,833,833,833,833',
'833,833,,,,,,833,833,833,833,833,833,833,,,833,,,,,,,833,,,833,833,833',
'833,833,833,833,833,,833,833,833,,833,833,,833,833,833,,,,,,,,,,,,,',
',,,,,,833,,,833,,,833,833,,,833,,,,,,833,,,,,,,,833,,,,,833,833,833',
'833,833,833,,,,833,833,832,832,832,,832,,,833,832,832,,,,832,,832,832',
'832,832,832,832,832,,,,,,832,832,832,832,832,832,832,,,832,,,,,,,832',
',,832,832,832,832,832,832,832,832,832,832,832,832,,832,832,,832,832',
'832,,,,,,,,,,,,,,,,,,,,832,,,832,,,832,832,,,832,,,,832,,832,,,,,,,',
'832,,,,,832,832,832,832,832,832,,,,832,832,304,304,304,,304,,,832,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,304,,,,304,304,814,814,814,,814,,,304',
'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,814,814,814,814,814,,,,814,814,313,313,313',
',313,,,814,313,313,,,,313,,313,313,313,313,313,313,313,,,,,,313,313',
'313,313,313,313,313,,,313,,,,,,,313,,,313,313,313,313,313,313,313,313',
',313,313,313,,313,313,,313,313,313,,,,,,,,,,,,,,,,,,,,313,,,313,313',
',313,313,,,313,,,,,,313,,,,,,,,313,,,,405,313,313,313,313,313,313,405',
'405,405,313,313,405,405,405,,405,,,313,,,,,,405,405,405,,,,,,,,,405',
'405,,405,405,405,405,405,,,,,,,,,,,,,,,,,,,,,,,,405,405,405,405,405',
'405,405,405,405,405,405,405,405,405,,,405,405,405,,,405,,405,405,,,405',
'405,,405,,405,,405,,405,405,405,405,405,405,405,,405,405,405,,,,,,,',
',,,,,405,405,,405,,405,600,600,600,,600,,,,600,600,,,,600,,600,600,600',
'600,600,600,600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600',
'600,600,600,600,600,600,600,,600,600,600,,600,600,,600,600,600,,,,,',
',,,,,,,,,,,,,,600,,,600,,,600,600,,,600,,,,,,600,,,,,,,,600,,,,,600',
'600,600,600,600,600,,,,600,600,320,320,320,,320,,,600,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,340,340,340,,340,,',
'320,340,340,,,,340,,340,340,340,340,340,340,340,,,,,,340,340,340,340',
'340,340,340,,,340,,,,,,,340,,,340,340,340,340,340,340,340,340,,340,340',
'340,,340,340,,,,340,,,,,,,,,,,,,,,,,,,,340,,,340,,,340,340,,,340,,,',
',,,,,,,,,,,,,,,340,340,340,340,340,340,,,,340,340,753,753,753,,753,',
',340,753,753,,,,753,,753,753,753,753,753,753,753,,,,,,753,753,753,753',
'753,753,753,,,753,,,,,,,753,,,753,753,753,753,753,753,753,753,,753,753',
'753,,753,753,,753,753,753,,,,,,,,,,,,,,,,,,,,753,,,753,,,753,753,,,753',
',,,,,753,,,,,,,,753,,,,,753,753,753,753,753,753,,,,753,753,749,749,749',
',749,,,753,749,749,,,,749,,749,749,749,749,749,749,749,,,,,,749,749',
'749,749,749,749,749,,,749,,,,,,,749,,,749,749,749,749,749,749,749,749',
',749,749,749,,749,749,,749,749,749,,,,,,,,,,,,,,,,,,,,749,,,749,,,749',
'749,,,749,,,,,,749,,,,,,,,749,,,,,749,749,749,749,749,749,,,,749,749',
'751,751,751,,751,,,749,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,750,750,750,,750,,,751,750,750,,,,750,,750,750,750,750,750',
'750,750,,,,,,750,750,750,750,750,750,750,,,750,,,,,,,750,,,750,750,750',
'750,750,750,750,750,,750,750,750,,750,750,,750,750,750,,,,,,,,,,,,,',
',,,,,,750,,,750,,,750,750,,,750,,,,,,750,,,,,,,,750,,,,,750,750,750',
'750,750,750,,,,750,750,599,599,599,,599,,,750,599,599,,,,599,,599,599',
'599,599,599,599,599,,,,,,599,599,599,599,599,599,599,,,599,,,,,,,599',
',,599,599,599,599,599,599,599,599,,599,599,599,,599,599,,599,599,599',
',,,,,,,,,,,,,,,,,,,599,,,599,,,599,599,,,599,,599,,,,599,,,,,,,,599',
',,,,599,599,599,599,599,599,,,,599,599,615,615,615,,615,,,599,615,615',
',,,615,,615,615,615,615,615,615,615,,,,,,615,615,615,615,615,615,615',
',,615,,,,,,,615,,,615,615,615,615,615,615,615,615,,615,615,615,,615',
'615,,615,615,615,,,,,,,,,,,,,,,,,,,,615,,,615,,,615,615,,,615,,,,,,615',
',,,,,,,615,,,,,615,615,615,615,615,615,,,,615,615,616,616,616,,616,',
',615,616,616,,,,616,,616,616,616,616,616,616,616,,,,,,616,616,616,616',
'616,616,616,,,616,,,,,,,616,,,616,616,616,616,616,616,616,616,,616,616',
'616,,616,616,,616,616,616,,,,,,,,,,,,,,,,,,,,616,,,616,,,616,616,,,616',
',,,,,616,,,,,,,,616,,,,,616,616,616,616,616,616,,,,616,616,576,576,576',
',576,,,616,576,576,,,,576,,576,576,576,576,576,576,576,,,,,,576,576',
'576,576,576,576,576,,,576,,,,,,,576,,,576,576,576,576,576,576,576,576',
',576,576,576,,576,576,,576,576,576,,,,,,,,,,,,,,,,,,,,576,,,576,,,576',
'576,,,576,,,,,,576,,,,,,,,576,,,,,576,576,576,576,576,576,,,,576,576',
'570,570,570,,570,,,576,570,570,,,,570,,570,570,570,570,570,570,570,',
',,,,570,570,570,570,570,570,570,,,570,,,,,,,570,,,570,570,570,570,570',
'570,570,570,,570,570,570,,570,570,,570,570,570,,,,,,,,,,,,,,,,,,,,570',
',,570,,,570,570,,,570,,,,,,570,,,,,,,,570,,,,,570,570,570,570,570,570',
',,,570,570,23,23,23,,23,,,570,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,558,558,558,,558,,,23,558,558',
',,,558,,558,558,558,558,558,558,558,,,,,,558,558,558,558,558,558,558',
',,558,,,,,,,558,,,558,558,558,558,558,558,558,558,558,558,558,558,,558',
'558,,558,558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558,,,558,,558,',
'558,,558,,,,,,,,558,,,,,558,558,558,558,558,558,,,,558,558,946,946,946',
',946,,,558,946,946,,,,946,,946,946,946,946,946,946,946,,,,,,946,946',
'946,946,946,946,946,,,946,,,,,,,946,,,946,946,946,946,946,946,946,946',
'946,946,946,946,,946,946,,946,946,946,,,,,,,,,,,,,,,,,,,,946,,,946,',
',946,946,,,946,,946,,946,,946,,,,,,,,946,,,,,946,946,946,946,946,946',
',,,946,946,643,643,643,,643,,,946,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,,,,29,643,643,643',
'643,643,643,29,29,29,643,643,29,29,29,,29,,,643,,,,,,29,29,29,,,,,,',
',,29,29,,29,29,29,29,29,,,,,,,,,,,,,,,,,,,,,,,,29,29,29,29,29,29,29',
'29,29,29,29,29,29,29,,,29,29,29,,,29,,29,29,,,29,29,,29,,29,,29,,29',
'29,29,29,29,29,29,,29,29,29,,,,,,,,,,,,30,29,29,,29,,29,30,30,30,,,30',
'30,30,,30,,,,,,,,,,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,,,,,,,,,',
',,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30,,,30',
',30,30,,,30,30,,30,,30,,30,,30,30,30,30,30,30,30,,30,,30,,,,,,,,,,,',
',30,30,,30,,30,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,31,31,,,,,,,,,,,,,,,,,,,,31,,,31,,,31,31,,,31,,31,',
'31,,31,,,,,,,,31,,,,,31,31,31,31,31,31,,,,31,31,32,32,32,,32,,,31,32',
'32,,,,32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,',
'32,,,32,32,32,32,32,32,32,32,32,32,32,32,,32,32,,32,32,32,,,,,,,,,,',
',,,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,,,,,,32,,,,,32,32,32,32',
'32,32,,,,32,32,33,33,33,,33,,,32,33,33,,,,33,,33,33,33,33,33,33,33,',
',,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33,33,33,33',
'33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33,,,33,,33',
',33,,33,,,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,36,36,36,,36,,,33,36',
'36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,',
'36,,,36,36,36,36,36,36,36,36,,36,36,36,,36,36,,,,36,,,,,,,,,,,,,,,,',
',,,36,,,36,,,36,36,,,36,,36,,,,,,,,,,,,,,,,,36,36,36,36,36,36,,,,36',
'36,37,37,37,,37,,,36,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,648,648,648,37,648,,,37,648,648,,,,648,,648,648',
'648,648,648,648,648,,,,,,648,648,648,648,648,648,648,,,648,,,,,,,648',
',,648,648,648,648,648,648,648,648,,648,648,648,,648,648,,,,648,,,,,',
',,,,,,,,,,,,,,648,,,648,,,648,648,,,648,,,,,,,,,,,,,,,,,,,648,648,648',
'648,648,648,,,,648,648,659,659,659,,659,,,648,659,659,,,,659,,659,659',
'659,659,659,659,659,,,,,,659,659,659,659,659,659,659,,,659,,,,,,,659',
',,659,659,659,659,659,659,659,659,,659,659,659,,659,659,,,,659,,,,,',
',,,,,,,,,,,,,,659,,,659,,,659,659,,,659,,,,,,,,,,,,,,,,,,,659,659,659',
'659,659,659,,,,659,659,665,665,665,,665,,,659,665,665,,,,665,,665,665',
'665,665,665,665,665,,,,,,665,665,665,665,665,665,665,,,665,,,,,,,665',
',,665,665,665,665,665,665,665,665,,665,665,665,,665,665,,665,665,665',
',,,,,,,,,,,,,,,,,,,665,,,665,,,665,665,,,665,,665,,,,665,,,,,,,,665',
',,,,665,665,665,665,665,665,,,,665,665,44,44,44,,44,,,665,44,44,,,,44',
',44,44,44,44,44,44,44,,,,,,44,44,44,44,44,44,44,,,44,,,,,,,44,,,44,44',
'44,44,44,44,44,44,,44,44,44,,44,44,,44,44,44,,,,,,,,,,,,,,,,,,,,44,',
',44,,,44,44,,,44,,,,,,44,,,,,,,,44,,,,,44,44,44,44,44,44,,,,44,44,45',
'45,45,,45,,,44,45,45,,,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45,45',
'45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,,45,45',
'45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45',
'45,45,45,45,45,,,,45,45,46,46,46,,46,,,45,46,46,,,,46,,46,46,46,46,46',
'46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46,46,46,46,46,46',
'46,,46,46,46,,46,46,,46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46',
',,,,,46,,,,,,,,46,,,,,46,46,46,46,46,46,,,,46,46,603,603,603,,603,,',
'46,603,603,,,,603,,603,603,603,603,603,603,603,,,,,,603,603,603,603',
'603,603,603,,,603,,,,,,,603,,,603,603,603,603,603,603,603,603,603,603',
'603,603,,603,603,,603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603',
',,603,,603,,603,,603,,,,,,,,603,,,,,603,603,603,603,603,603,,,,603,603',
'58,58,58,,58,,,603,58,58,,,,58,,58,58,58,58,58,58,58,,,,,,58,58,58,58',
'58,58,58,,,58,,,,,,,58,,,58,58,58,58,58,58,58,58,,58,58,58,,58,58,,58',
'58,58,,,,,,,,,,,,,,,,,,,,58,,,58,,,58,58,,,58,,,,,,58,,,,,,,,58,,,,',
'58,58,58,58,58,58,,,,58,58,59,59,59,,59,,,58,59,59,,,,59,,59,59,59,59',
'59,59,59,,,,,,59,59,59,59,59,59,59,,,59,,,,,,,59,,,59,59,59,59,59,59',
'59,59,59,59,59,59,,59,59,,59,59,59,,,,,,,,,,,,,,,,,,,,59,,,59,,,59,59',
',,59,,59,,,,59,,,,,,,,59,,,,,59,59,59,59,59,59,,,,59,59,63,63,63,,63',
',,59,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,64,64,64,,64,,,63,64,64,,,,64,,64,64,64,64,64,64,64,',
',,,,64,64,64,64,64,64,64,,,64,,,,,,,64,,,64,64,64,64,64,64,64,64,,64',
'64,64,,64,64,,64,64,64,,,,,,,,,,,,,,,,,,,,64,,,64,,,64,64,,,64,,,,,',
'64,,,,,,,,64,,,,,64,64,64,64,64,64,,,,64,64,67,67,67,,67,,,64,67,67',
',,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,,397,',
'67,,,67,67,67,67,67,67,67,67,,67,67,67,,67,67,,67,67,67,397,397,397',
'397,397,397,397,397,397,397,397,,397,397,,,397,397,,67,,,67,,,67,67',
',,67,,,397,,397,67,397,397,397,397,397,397,397,67,397,,,,67,67,67,67',
'67,67,,,,67,67,67,397,68,68,68,67,68,67,,,68,68,,,,68,,68,68,68,68,68',
'68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68,68,68',
'68,,68,68,68,,68,68,,,,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,68',
',,,,,,,,,,,,,,,,68,68,68,68,68,68,,,,68,68,520,520,520,,520,,,68,520',
'520,,,,520,,520,520,520,520,520,520,520,,,,,,520,520,520,520,520,520',
'520,,,520,,,,,,,520,,,520,520,520,520,520,520,520,520,520,520,520,520',
',520,520,,520,520,520,,,,,,,,,,,,,,,,,,,,520,,,520,,,520,520,,,520,',
',,,,520,,,,,,,,520,,,,,520,520,520,520,520,520,,,,520,520,517,517,517',
',517,,,520,517,517,,,,517,,517,517,517,517,517,517,517,,,,,,517,517',
'517,517,517,517,517,,,517,,,,,,,517,,,517,517,517,517,517,517,517,517',
'517,517,517,517,,517,517,,517,517,517,,,,,,,,,,,,,,,,,,,,517,,,517,',
',517,517,,,517,,517,,,,517,,,,,,,,517,,,,,517,517,517,517,517,517,,',
',517,517,105,105,105,105,105,,,517,105,105,,,,105,,105,105,105,105,105',
'105,105,,,,,,105,105,105,105,105,105,105,,,105,,,,,,105,105,105,105',
'105,105,105,105,105,105,105,105,,105,105,105,,105,105,,105,105,105,',
',,,,,,,,,,,,,,,,,,105,,,105,,,105,105,,,105,,105,,,,105,,,,,,,,105,',
',,,105,105,105,105,105,105,,,,105,105,110,110,110,,110,105,,105,110',
'110,,,,110,,110,110,110,110,110,110,110,,,,,,110,110,110,110,110,110',
'110,,,110,,,,,,,110,,,110,110,110,110,110,110,110,110,,110,110,110,',
'110,110,,110,110,110,,,,,,,,,,,,,,,,,,,,110,,,110,,,110,110,,,110,,',
',,,110,,,,,,,,110,,,,,110,110,110,110,110,110,,,,110,110,111,111,111',
',111,,,110,111,111,,,,111,,111,111,111,111,111,111,111,,,,,,111,111',
'111,111,111,111,111,,,111,,,,,,,111,,,111,111,111,111,111,111,111,111',
',111,111,111,,111,111,,111,111,111,,,,,,,,,,,,,,,,,,,,111,,,111,,,111',
'111,,,111,,,,,,111,,,,,,,,111,,,,,111,111,111,111,111,111,,,,111,111',
'734,734,734,,734,,,111,734,734,,,,734,,734,734,734,734,734,734,734,',
',,,,734,734,734,734,734,734,734,,,734,,,,,,,734,,,734,734,734,734,734',
'734,734,734,,734,734,734,,734,734,,734,734,734,,,,,,,,,,,,,,,,,,,,734',
',,734,,,734,734,,,734,,,,,,734,,,,,,,,734,,,,,734,734,734,734,734,734',
',,,734,734,394,394,394,,394,,,734,394,394,,,,394,,394,394,394,394,394',
'394,394,,,,,,394,394,394,394,394,394,394,,,394,,,,,,,394,,,394,394,394',
'394,394,394,394,394,,394,394,394,,394,394,,394,394,394,,,,,,,,,,,,,',
',,,,,,394,,,394,,,394,394,,,394,,,,,,394,,,,,,,,394,,,,,394,394,394',
'394,394,394,,,,394,394,612,612,612,,612,,,394,612,612,,,,612,,612,612',
'612,612,612,612,612,,,,,,612,612,612,612,612,612,612,,,612,,,,,,,612',
',,612,612,612,612,612,612,612,612,,612,612,612,,612,612,,612,612,612',
',,,,,,,,,,,,,,,,,,,612,,,612,,,612,612,,,612,,,,,,612,,,,,,,,612,,,',
',612,612,612,612,612,612,,,,612,612,748,748,748,,748,,,612,748,748,',
',,748,,748,748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748',
',,748,,,,,,,748,,,748,748,748,748,748,748,748,748,,748,748,748,,748',
'748,,748,748,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748,,,,,,748',
',,,,,,,748,,,,,748,748,748,748,748,748,,,,748,748,342,342,342,,342,',
',748,342,342,,,,342,,342,342,342,342,342,342,342,,,,,,342,342,342,342',
'342,342,342,,,342,,,,,,,342,,,342,342,342,342,342,342,342,342,,342,342',
'342,,342,342,,,,342,,,,,,,,,,,,,,,,,,,,342,,,342,,,342,342,,,342,,,',
',,,,,,,,,,,,,,,342,342,342,342,342,342,,,,342,342,611,611,611,,611,',
',342,611,611,,,,611,,611,611,611,611,611,611,611,,,,,,611,611,611,611',
'611,611,611,,,611,,,,,,,611,,,611,611,611,611,611,611,611,611,,611,611',
'611,,611,611,,611,611,611,,,,,,,,,,,,,,,,,,,,611,,,611,,,611,611,,,611',
',,,,,611,,,,,,,,611,,,,,611,611,611,611,611,611,,,,611,611,327,327,327',
',327,,,611,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327',
'327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327',
',327,327,327,,327,327,,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327',
'327,,,327,,,,,,327,,,,,,,,327,,,,,327,327,327,327,327,327,,,,327,327',
'328,328,328,,328,,,327,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,801,801,801,,801,,,328,801,801,,,,801,,801,801,801,801,801',
'801,801,,,,,,801,801,801,801,801,801,801,,,801,,,,,,,801,,,801,801,801',
'801,801,801,801,801,,801,801,801,,801,801,,801,801,801,,,,,,,,,,,,,',
',,,,,,801,,,801,,,801,801,,,801,,,,,,801,,,,,,,,801,,,,,801,801,801',
'801,801,801,,,,801,801,732,732,732,,732,,,801,732,732,,,,732,,732,732',
'732,732,732,732,732,,,,,,732,732,732,732,732,732,732,,,732,,,,,624,',
'732,,,732,732,732,732,732,732,732,732,,732,732,732,,732,732,,732,732',
'732,624,624,624,624,624,624,624,624,624,624,624,,624,624,,,624,624,',
'732,,,732,,,732,732,,,732,,,624,,624,732,624,624,624,624,624,624,624',
'732,624,,,,732,732,732,732,732,732,,,,732,732,,624,,,,,,732,12,12,12',
'12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,,,,12',
'12,12,12,12,12,12,12,12,12,,,,,,12,12,12,12,12,12,12,12,12,,,12,,,,',
',,,,12,12,,12,12,12,12,12,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,385,385',
'385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385',
'385,385,385,385,385,,,,385,385,385,385,385,385,385,385,385,385,,,,,',
'385,385,385,385,385,385,385,385,385,,,385,,,,,,,,,385,385,,385,385,385',
'385,385,385,385,,,385,385,,,,385,385,385,385,,,,,,,,,,,,,,385,385,,385',
'385,385,385,385,385,385,385,385,385,385,,,385,385,,,,,,,,,,385,596,596',
'596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596',
'596,596,596,596,596,,,,596,596,596,596,596,596,596,596,596,596,,,,,',
'596,596,596,596,596,596,596,596,596,,,596,,,,,,,,,596,596,,596,596,596',
'596,596,596,596,,,596,596,,,,596,596,596,596,,,,,,,,,,,,,,596,596,,596',
'596,596,596,596,596,596,596,596,596,596,,,596,596,,,,,,,,,,596,71,71',
'71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,,',
',71,71,71,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,71,71,71,71',
'71,,71,,,,,,,71,71,,71,71,71,71,71,71,71,,,71,71,,,,71,71,71,71,,,,',
',71,,,,,,,,71,71,,71,71,71,71,71,71,71,71,71,71,71,,,71,85,85,85,85',
'85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,,,,85,85',
'85,85,85,85,85,85,85,85,,,,,,85,85,85,85,85,85,85,85,85,85,85,85,,85',
',,,,,,85,85,,85,85,85,85,85,85,85,,,85,85,,,,85,85,85,85,,,,,,,,,,,',
',,85,85,,85,85,85,85,85,85,85,85,85,85,85,,,85,722,722,722,722,722,722',
'722,722,722,722,722,722,722,722,722,722,722,722,722,722,722,722,722',
'722,,,,722,722,722,722,722,722,722,722,722,722,,,,,,722,722,722,722',
'722,722,722,722,722,,,722,,,,,,,,,722,722,,722,722,722,722,722,722,722',
',,722,722,,,,722,722,722,722,,,,,,,,,,,,,,722,722,,722,722,722,722,722',
'722,722,722,722,722,722,253,253,722,,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,252,252,253,,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,498,498',
'252,,498,,,,,,,,,498,498,,498,498,498,498,498,498,498,,,498,498,,,,498',
'498,498,498,,,,,,498,,,,,,,,498,498,,498,498,498,498,498,498,498,498',
'498,498,498,497,497,498,,497,,,,,,,,,497,497,,497,497,497,497,497,497',
'497,,,497,497,,,,497,497,497,497,,,,,,497,,,,,,,,497,497,,497,497,497',
'497,497,497,497,497,497,497,497,948,948,497,,948,,,,,,,,,948,948,,948',
'948,948,948,948,948,948,,,948,948,,,,948,948,948,948,,,,,,948,,,,,,',
',948,948,,948,948,948,948,948,948,948,948,948,948,948,430,430,948,,430',
',,,,,,,,430,430,,430,430,430,430,430,430,430,,,430,430,,,,430,430,430',
'430,,,,,,430,,,,,,,,430,430,,430,430,430,430,430,430,430,430,430,430',
'430,431,431,430,,431,,,,,,,,,431,431,,431,431,431,431,431,431,431,,',
'431,431,,,,431,431,431,431,,,,,,431,,,,,,,,431,431,,431,431,431,431',
'431,431,431,431,431,431,431,560,560,431,,560,,,,,,,,,560,560,,560,560',
'560,560,560,560,560,,,560,560,,,,560,560,560,560,,,,,,560,,,,,,,,560',
'560,,560,560,560,560,560,560,560,560,560,560,560,559,559,560,,559,,',
',,,,,,559,559,,559,559,559,559,559,559,559,,,559,559,,,,559,559,559',
'559,,,,,,559,,,,,,,,559,559,,559,559,559,559,559,559,559,559,559,559',
'559,711,711,559,,711,,,,,,,,,711,711,,711,711,711,711,711,711,711,,',
'711,711,,,,711,711,711,711,,,,,,711,,,,,,,,711,711,,711,711,711,711',
'711,711,711,711,711,711,711,947,947,711,,947,,,,,,,,,947,947,,947,947',
'947,947,947,947,947,,,947,947,,,,947,947,947,947,,,,,,947,,,,,,,,947',
'947,,947,947,947,947,947,947,947,947,947,947,947,942,942,947,,942,,',
',,,,,,942,942,,942,942,942,942,942,942,942,,,942,942,,,,942,942,942',
'942,,,,,,942,,,,,,,,942,942,,942,942,942,942,942,942,942,942,942,942',
'942,510,510,942,,510,,,,,,,,,510,510,,510,510,510,510,510,510,510,,',
'510,510,,,,510,510,510,510,,,,,,510,,,,,,,,510,510,,510,510,510,510',
'510,510,510,510,510,510,510,509,509,510,,509,,,,,,,,,509,509,,509,509',
'509,509,509,509,509,,,509,509,,,,509,509,509,509,,,,,,509,,,,,,,,509',
'509,,509,509,509,509,509,509,509,509,509,509,509,203,203,509,,203,,',
',,,,,,203,203,,203,203,203,203,203,203,203,,,203,203,,,,203,203,203',
'203,,,,,,203,,,,,,,,203,203,,203,203,203,203,203,203,203,203,203,203',
'203,204,204,203,,204,,,,,,,,,204,204,,204,204,204,204,204,204,204,,',
'204,204,,,,204,204,204,204,,,,,,204,,,,,,,,204,204,,204,204,204,204',
'204,204,204,204,204,204,204,710,710,204,,710,,,,,,,,,710,710,,710,710',
'710,710,710,710,710,,,710,710,,,,710,710,710,710,,,,,,710,,,,,,,,710',
'710,,710,710,710,710,710,710,710,710,710,710,710,,,710,747,747,747,747',
'747,747,747,747,747,747,747,,747,747,,,747,747,,,,,,,,,,,,,,,747,,747',
',747,747,747,747,747,747,747,,747,733,733,733,733,733,733,733,733,733',
'733,733,,733,733,,747,733,733,,,,,,,,,,,,,,,733,,733,,733,733,733,733',
'733,733,733,,733,738,738,738,738,738,738,738,738,738,738,738,,738,738',
',733,738,738,,,,,,,,,,,,,,,738,,738,,738,738,738,738,738,738,738,,738',
'740,740,740,740,740,740,740,740,740,740,740,,740,740,,738,740,740,,',
',,,,,,,,,,,,740,,740,,740,740,740,740,740,740,740,,740,511,511,511,511',
'511,511,511,511,511,511,511,,511,511,,740,511,511,,,,,,,,,,,,,,,511',
',511,,511,511,511,511,511,511,511,,511,266,266,266,266,266,266,266,266',
'266,266,266,,266,266,,511,266,266,,,,,,,,,,,,,,,266,,266,,266,266,266',
'266,266,266,266,,266,462,462,462,462,462,462,462,462,462,462,462,,462',
'462,,266,462,462,,,,,,,,,,,,,,,462,,462,,462,462,462,462,462,462,462',
',462,743,743,743,743,743,743,743,743,743,743,743,,743,743,462,462,743',
'743,,,,,,,,,,,,,,,743,,743,,743,743,743,743,743,743,743,,743,745,745',
'745,745,745,745,745,745,745,745,745,,745,745,,743,745,745,,,,,,,,,,',
',,,,745,,745,,745,745,745,745,745,745,745,,745,834,834,834,834,834,834',
'834,834,834,834,834,,834,834,,745,834,834,,,,,,,,,,,,,,,834,,834,,834',
'834,834,834,834,834,834,,834,417,417,417,417,417,417,417,417,417,417',
'417,,417,417,,834,417,417,,,,,,,,,,,,,,,417,,417,,417,417,417,417,417',
'417,417,,417,660,660,660,660,660,660,660,660,660,660,660,,660,660,,417',
'660,660,,,,,,,,,,,,,,,660,,660,,660,660,660,660,660,660,660,,660,24',
'24,24,24,24,24,24,24,24,24,24,,24,24,,660,24,24,,,,,,,,,,,,,,,24,,24',
',24,24,24,24,24,24,24,,24,831,831,831,831,831,831,831,831,831,831,831',
',831,831,,24,831,831,,,,,,,,,,,,,,,831,,831,,831,831,831,831,831,831',
'831,,831,,,,,,,,,,,,,,,,831' ]
        racc_action_check = arr = ::Array.new(23729, 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,   793,  3414,   990,   nil,   395,   nil,   nil, 13394,  1164,
   nil, 21333, 21209,   599,   nil,  1142,   909,   519,   431,   857,
    25,   nil,   -88, 16366, 23556,   962,   nil,   605,     2, 16852,
 16977, 17107, 17231, 17355,   nil,  3664, 17479, 17603,   nil,   852,
   476,   438,   911,   500, 18099, 18223, 18347,   837,   523,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  1030,   nil, 18595, 18719,
   nil,   -19,   nil, 18843, 18967,   nil,   nil, 19091, 19217,   879,
   nil, 21705,   nil,   nil,   nil,   nil,   nil,   -98,   nil,   nil,
   nil,   nil,   nil,   831,   830, 21818,   nil,   nil,   nil,   385,
   nil,   nil,   515,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil, 19589,   nil,   nil,   nil,   nil,
 19713, 19837,  4913,  5037,  5161,   843,   nil,   387,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   774,   nil,  1914,
  5533,  5657,  5781, 22846, 22907,  6153,  6277,  6401,  6525,  6649,
  6773,   nil,   nil,   562,   415,   178,   815,   -75,   731,   775,
   nil,  7642,  1289,   767,  7890,  8014,  8138,  8262,  8386,  8510,
  8634,  8758,  8882,  9006,  9130,  9254,  9378,  9502,  9626,  9750,
  9874,  9998, 10122, 10246, 10370, 10494, 10618, 10742, 10866, 10990,
   nil,   nil, 22053, 21992,   739, 11486,   nil,   743,   nil,   nil,
   nil, 11734,   nil,   nil, 11858,   nil, 23241,   nil,   703,   702,
   nil, 12270,   742, 12518,   nil, 12642,   nil,   nil,   135,   nil,
     6, 12890,   690,  4539,   698,   724,   673, 13262,  1414,   778,
   817,   -61,   737,   860,   nil,   691,   647,    72,   nil,   nil,
   nil,   676,   228,   633, 14386,   nil,   342,   667,   666,   908,
   nil,   638,   nil, 14634,  3289,   284,   nil,   411,   281,   597,
 15002,   nil,   nil,   479,   170,    16,   -11, 20705, 20829,   422,
   664,   538,    28,    62,   947,   450,    27,   463,   nil,   nil,
 15126,   nil, 20457,   486,   266,   396,   345,   215,   202,   353,
   593,   570,   nil,   616,   nil,   nil,   nil,   nil,   nil,   312,
   nil,   320,   nil,   184,   nil,   264,   151,   nil,   255,   -25,
   nil,   328,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  4164, 21457,   nil,   nil,   nil,   nil,
   263,   nil,   236,   nil, 20085,   216,   nil, 19091,   175,   nil,
   nil,   147,   106,   430,   538, 14748,   nil,   nil,   nil,   645,
     0,   135,   nil,   nil,   770,   900,   nil, 23466,   nil,    54,
   nil,   nil, 13263,   nil,   nil,   nil,   nil,   -26,   nil,    11,
 22297, 22358, 14014,   350, 13890, 13766, 13642,  1664,  2164,   471,
   701,   -35,  1231,  1229,  1218,  3414,  3539,  1539,  2414,  2289,
  2039,  1914,  1789,  3039,  2914,  2789,  3289,  3164,   853,   723,
  2539,  2664, 23286,   -52, 12153,   nil,   nil, 12097,   nil,   nil,
   nil,   nil,   105,   -19,  1152,  1150,   nil,   nil, 11610,   nil,
   nil, 11362,   nil, 11238,   nil,   nil,   nil, 11114,  1110,  1146,
  1136,   nil,   nil,  1134,  7394,  1132,  7146, 22175, 22114,  1038,
  1144,   nil,   nil,  7022,  1102,   nil,  6898,  6029,  5905, 22785,
 22724, 23196,  5409,  1217,  1201,  1075,   nil, 19465,   nil,   nil,
 19341,   nil,  1087,   nil,   248,  1101,    -6,   446,   nil,  1059,
  1011,   997,   nil,   nil,   nil,   nil,   nil,   nil,   987,   nil,
   581,   nil,   nil,   nil,   nil,  1045,   nil,   nil,  1030,  2039,
  1067,   nil,  1539,    28,    55,  1049,  1053,   nil, 16490, 22480,
 22419,    42,   nil,   225,   224,     8,   nil,  1069,   nil,    14,
 16242,   nil, 12117,   nil,   nil,   nil, 16118,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   186,   nil,
   nil,   nil,   929,   nil,   941,   nil, 21581,   nil,   921, 15746,
 14878,   640,   945, 18471,  7766, 13014, 13518,   939,   nil,   nil,
   nil, 20581, 20209,   938,   nil, 15870, 15994,   nil,   nil,   332,
    88,   125,   255,   927, 21077,   927,   nil,   nil,   316,   nil,
   nil,   nil,   nil,   nil,   nil,   -56,   nil,   nil,   nil,   nil,
   932,   nil,   972, 16738,   nil,   nil,  1289,   150, 17727,   939,
   nil,   949,   149,    92,  1002,   354,  1142,  1027,   990, 17851,
 23511,  1061,  1063,    59,  1146, 17975,   nil,   nil,   -95,   nil,
   nil,   nil,  3914,  1164,  1059,  1341,   nil,  1216,   nil,   nil,
  1186,  5285,   nil,   710,   nil,  1104,   349,   nil,  1118,   nil,
   nil,   244,   nil,  1232,   nil,   nil,   nil,   nil,  1240,   nil,
  7270,  1135,    26,    31,    40,    86, 11983,   nil,  1077,   nil,
 22968, 22541, 12394,   nil,   nil,   nil,    48,   275,  4039,  1789,
   576,   265, 21931,    52,  1119,  3789,   nil,   nil,   nil,   nil,
   nil,   119, 21077, 23061, 19961,   nil,   226,   nil, 23106,   nil,
 23151,   nil,   nil, 23331,   nil, 23376,   nil, 23016, 20333, 15374,
 15622, 15498,   212, 15250,   266,   279,   289,   nil,   311,   305,
   nil,  1036,   340,   nil,  2164,   nil,  4414,  2289,   nil,   nil,
   354,   192,   nil,   nil,   487,   nil,  2539,   380,   461,   nil,
   nil,   nil,   459,   587,   481,   486,   508,   nil,   nil,   510,
   522,   nil,   528,   nil,   542,   649,   543,  1031,   nil,   680,
   nil, 20953,   682,  3039,  3539,   nil,    17,    41,    56,   263,
  1157,   nil,   600,  2914, 14510,   nil,   450,   726,   728,   619,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   644,   630,
   nil, 23601, 14262, 14138, 23421,   609,   nil,   642,   nil,   nil,
   734,   nil,   685,   672,   nil,   nil,   nil, 13138,   794,  4789,
   706,   812,   nil,  4664,   nil,   nil,    -7, 12766,   nil,   nil,
   nil,   nil,   833,   nil,   nil,   864,   nil,   963,   nil,   994,
   nil,   nil,   nil,   188,  1775,   722,   nil,    -8,   nil,   850,
   851,  7518,  4289,   nil,   nil,   859,   629,   nil,   nil,   nil,
   nil, 12029,   nil,   751,   756,   760,   762,   nil,   763,   nil,
   453,  1160,   838,   nil,   781,   nil,   nil,   nil,  1664,  1170,
  1174,  1267,   868,  1278,   nil,   795,   800,   801,   806,   820,
   893,   822,  1023,  3164,   nil,   nil,   nil,   174,  2789,   nil,
   nil,  2664,  2414,  1466,   nil,   nil,  1311,   nil,  1436,   nil,
   nil,   nil, 22663,   nil,   nil,   980, 16614, 22602, 22236,  1282,
   nil,  1561,   nil,   nil,   nil,   763,   869,     7,   nil,   nil,
   nil,   991,  1001,  1006,   890,   892,   893,   894,   934,   943,
   nil,   985,    32,    18,    46,  1299,   777,   781,   nil,   nil,
   nil,   nil,   nil,  1091,   nil,   nil,   nil,    -9,   nil,   776,
   nil ]

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

clist = [
'6,209,286,352,664,4,514,126,126,556,124,124,121,121,480,9,262,373,421',
'116,198,9,532,601,528,393,313,267,267,267,212,418,682,28,549,552,469',
'104,398,28,268,268,268,325,326,644,303,329,269,269,269,108,719,284,28',
'641,105,316,641,799,846,791,28,28,28,709,28,774,317,315,405,411,121',
'755,324,324,318,360,324,362,364,367,370,362,644,787,121,694,697,28,379',
'380,381,382,28,28,802,474,28,330,504,300,300,282,688,254,260,263,516',
'519,265,276,277,108,109,844,872,358,9,464,467,324,324,324,324,578,875',
'383,630,585,758,897,589,300,2,361,28,636,637,371,756,28,28,28,28,28',
'632,480,569,634,571,115,852,197,339,385,635,849,596,319,356,522,321',
'322,337,713,353,573,644,314,515,16,320,327,803,682,784,16,796,328,641',
'641,804,706,928,340,813,786,570,789,406,816,931,342,718,572,722,891',
'267,846,399,759,843,921,16,415,526,391,396,395,811,377,416,420,671,395',
'323,251,424,425,426,427,463,764,472,766,532,897,674,473,28,28,28,28',
'698,767,28,28,28,28,28,28,958,872,471,787,791,794,752,956,700,267,778',
'28,941,856,1,267,359,399,267,842,363,366,268,588,479,479,623,369,505',
'532,269,268,16,500,771,823,724,787,893,269,725,16,977,372,28,682,262',
'682,649,814,28,785,488,28,493,405,411,658,765,489,576,,,,495,553,554',
',486,,28,,28,670,,,523,28,,,,,108,978,807,757,,487,959,,651,,470,,,524',
'324,324,,,883,475,,28,,894,,895,,282,300,,727,,282,,28,28,,555,,,654',
'919,682,,16,300,,932,,,915,108,654,602,,,,126,6,,124,768,121,594,,741',
',16,609,595,701,746,644,9,614,479,479,,,608,,300,,300,,641,817,818,682',
',682,28,,406,,532,,819,,,,,654,421,267,,399,,415,,,,970,884,,,,625,',
',770,964,,682,,,16,609,16,,609,,,16,,781,505,626,608,28,,608,,,,505',
'626,626,,18,,,,,,18,,768,607,16,406,,,,613,,779,,267,,399,640,406,,',
'415,646,,,,,885,18,293,293,,,415,,,,882,,,28,,,,,663,,,,28,,,,,,,668',
',,,,336,,631,,28,633,,406,,812,,,,,16,267,,399,,,300,,415,,,,908,,,300',
',,,,,,,18,,654,,28,717,,28,,18,923,723,,28,532,,126,,,124,987,121,,695',
'695,28,602,,730,,960,28,,,,,737,739,505,714,,,742,744,736,,420,962,963',
'772,760,,,,602,,,626,,,28,28,479,,,609,28,28,614,,28,,,,,,608,,821,',
'16,,,,,,775,780,,,,,,,18,,760,,395,,,,,,602,,,,,,808,,,775,,775,,18',
',,,,406,,,,,28,28,,,,267,806,399,415,,300,,,,324,16,,,16,,121,300,,',
',,,,,,,479,,,28,,,,830,,28,,,,,,28,28,,18,,18,,28,760,293,18,,,815,',
',28,,820,,,,,854,,,293,858,,,,,877,971,,,18,,17,,,,602,,17,886,28,,28',
'28,,,,,,19,,,28,213,,19,568,324,568,654,,213,213,213,,17,291,291,,754',
'324,,,,,,,28,,28,28,,19,,,,16,16,213,28,28,,,213,213,285,,213,334,695',
'18,,,,,,,887,,,,,,,,338,,,790,,,792,,,,28,,,,28,,,16,16,,17,,,428,16',
'213,213,213,213,17,,,,,,,,19,,,,,300,28,,,19,,,,,,300,,,775,,,,,,,930',
'16,406,16,16,,,28,,,267,415,399,16,,476,,415,602,,,,28,775,,,18,28,',
',28,28,,293,,490,,,,,16,16,293,,,28,,,,,16,,17,213,213,213,,,213,213',
'213,213,213,213,,,,,,19,,,,,,17,419,,,,,,390,,,,16,,18,,16,18,19,,,',
',,,,,896,,,898,285,,,213,,,,,,213,,,213,,16,,,,,,,916,,,917,,918,,,17',
',17,,,,291,17,,,,16,,,,,,19,,19,,,,291,19,,16,,,,,16,285,17,16,16,41',
'285,,,,,41,,617,,213,213,,,19,,,293,,,,,,567,,567,,965,293,,966,,967',
'41,290,290,,,,,,18,18,,,976,,,,,,,,,,638,639,,,,,,,,,,333,17,,355,647',
',,,,,650,989,,,,,,,19,,,18,18,,,,,827,18,,667,,,,,,,41,,,,,,,,,41,,',
'213,,,,,,,,,,,,,,,,,,18,,18,18,,,,,,,,,18,,,,,,,,,,,,,,,,,,,,,,,,,17',
',18,18,,,,291,,213,,,18,,,,291,19,,,,,,,,213,,41,,,,,,,,,,,,,,,,,,,568',
',18,,41,,18,,,,913,,,,,,17,,,17,,,,,40,213,,,773,,40,,,19,392,18,19',
'213,,,423,,,213,,,691,,,693,,,,798,,,,40,289,289,,18,,41,,41,,,,290',
'41,,213,213,,,18,,213,213,,18,213,,18,18,290,,822,,332,,,354,,,41,,',
'419,,,,,,482,,484,,485,,,,,,291,,,,,,,355,,355,,291,40,,,,,,,,,40,,',
'17,17,,,,,,,,,861,,,,,525,,19,19,,871,,,,,,,41,,,782,783,,,213,,,,,',
'213,,,,,890,17,17,,,,,,17,,,,,,,,,213,19,19,,,,,,19,,,,,,,,,,,,40,828',
',,,,,598,,,17,,17,17,,,,,,,,,17,40,,,,19,,19,19,,,,,,,,,19,848,,850',
'851,,,,213,41,17,17,,855,,,290,,,,17,213,,,,290,,19,19,,,,,,,,,19,,',
'879,880,,40,,40,,,,289,40,,642,,901,525,17,645,,,17,,,,911,,289,,,,',
'41,,19,41,,40,19,,,,914,,,,,904,,,17,907,642,,,525,,,,,,,,354,,354,',
'19,,,,,,,,,17,,,,927,,,,,,,,,,,17,,19,,,17,,,17,17,,,,,,945,40,19,,',
',,19,213,,19,19,,,,957,,,,,961,,,,,290,,,731,,,,642,525,,,290,,,,,,',
',,,,,,41,41,,,,,,,,,,,,,,,,,,,,,,769,,,,,,,,,,,,,,,,,,,,,,777,41,41',
',,,,,41,,40,,,,,,793,289,,,,,,,,,289,,,,,,,,,423,,,,,,,,,,,,41,,41,41',
',,,,,220,,,41,,,,,266,266,266,829,,,,,40,,,40,,310,311,312,,,,,,,41',
'41,,,,,266,,,,41,,,,,,,,,,,,676,678,679,,,,,,,,,,,,,,,,,,,,355,,41,',
',,41,,,,910,,,,,,,,,,,,,,,,,,,,,,,,,41,,525,,,,289,,,,,,,,,,,289,,,',
',,,,,41,,,,40,40,,,,,,,,,,41,,,,,41,,,41,41,926,,,,,,,,,,,,,,,,,266',
'397,266,,,417,422,,40,40,,,,,,40,,,,,,220,,,437,438,439,440,441,442',
'443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459',
'460,461,462,,,,,40,266,40,40,,,,266,,,266,,40,,,,,266,,266,,266,,,,',
',,,,,,,,,,,,,40,40,,,,,,836,838,839,40,,,,,,,,,,511,,,,,,,266,,,,,,',
',,,,863,864,,,866,868,354,870,40,,,,40,,,,909,,,,,,,,,,,,,,,,,,,,,,',
',,40,,,,,,,,,,,,,,,,,,,,,,266,,,,40,,,,,,,,,,,,,,,40,,,,,40,,,40,40',
',,,,,,,,,266,,417,624,397,,,934,935,937,939,,940,,,,,,,,,,,,,,,,,950',
'952,953,954,,,,,,,,,,,,,,266,,,266,,266,,,,,,,,,,,,,266,,,,,,,,,,660',
'661,662,,982,984,985,986,,,,266,,,266,,988,,,,,,,,,,,,,990,,,,,,,,,',
',,,,,,,,,,,,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266,733,,,266',
'266,738,740,,,,,743,745,,,624,747,,,,,,,,,,,,,,,,,,,,,,,,,,,266,,,,',
',,,,,,,,,,,,,,,,,266,,,,,,,,,,,,,,,,266,,,,,,,,,,,,,,,,,,,266,,,,,,',
',,,,,266,,,,,,,,,,,,,,,,,,,,266,,831,,,,,,,,,,,,,,738,740,745,743,,834',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,266,831,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266' ]
        racc_goto_table = arr = ::Array.new(2797, 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,33,50,57,13,2,10,62,62,88,61,61,58,58,71,9,69,57,20,17,17,9,134,26',
'143,29,33,35,35,35,22,29,126,44,85,85,40,5,25,44,66,66,66,19,19,179',
'51,19,68,68,68,91,92,47,44,72,8,6,72,86,139,174,44,44,44,55,44,14,66',
'31,38,38,58,131,31,31,68,6,31,6,6,6,6,6,179,173,58,87,87,44,19,19,19',
'19,44,44,14,25,44,5,52,64,64,46,127,39,39,39,67,67,45,45,45,91,7,138',
'125,159,9,38,38,31,31,31,31,165,128,9,41,165,136,175,165,64,3,161,44',
'41,41,161,132,44,44,44,44,44,70,71,56,70,56,11,15,18,21,32,42,43,63',
'65,80,81,82,84,89,90,93,94,179,95,96,23,97,98,99,126,136,23,126,100',
'72,72,101,102,103,104,105,132,106,132,69,107,108,109,110,111,112,113',
'35,139,6,129,137,128,23,58,140,22,22,66,55,7,22,22,141,66,142,144,31',
'31,31,31,145,146,149,150,134,175,143,151,44,44,44,44,88,152,44,44,44',
'44,44,44,153,125,69,173,174,127,26,128,154,35,155,44,138,156,1,35,160',
'6,35,136,162,163,66,164,6,6,25,166,50,134,68,66,23,33,26,167,168,173',
'131,68,169,23,128,170,44,126,69,126,52,171,44,172,9,44,51,38,38,52,41',
'47,178,,,,47,19,19,,5,,44,,44,67,,,6,44,,,,,91,86,26,134,,8,14,,25,',
'45,,,68,31,31,,,87,45,,44,,132,,132,,46,64,,165,,46,,44,44,,5,,,38,126',
'126,,23,64,,92,,,132,91,38,33,,,,62,6,,61,71,58,2,,40,,23,69,17,25,40',
'179,9,69,6,6,,,6,,64,,64,,72,10,10,126,,126,44,,69,,134,,143,,,,,38',
'20,35,,6,,58,,,,13,26,,,,33,,,52,132,,126,,,23,69,23,,69,,,23,,67,50',
'6,6,44,,6,,,,50,6,6,,27,,,,,,27,,71,39,23,69,,,,39,,29,,35,,6,68,69',
',,58,9,,,,,10,27,27,27,,,58,,,,85,,,44,,,,,31,,,,44,,,,,,,68,,,,,27',
',39,,44,39,,69,,25,,,,,23,35,,6,,,64,,58,,,,85,,,64,,,,,,,,27,,38,,44',
'31,,44,,27,85,31,,44,134,,62,,,61,26,58,,91,91,44,33,,17,,88,44,,,,',
'22,22,50,91,,,22,22,68,,22,10,10,50,6,,,,33,,,6,,,44,44,6,,,69,44,44',
'69,,44,,,,,,6,,57,,23,,,,,,6,6,,,,,,,27,,6,,66,,,,,,33,,,,,,19,,,6,',
'6,,27,,,,,69,,,,,44,44,,,,35,66,6,58,,64,,,,31,23,,,23,,58,64,,,,,,',
',,,6,,,44,,,,22,,44,,,,,,44,44,,27,,27,,44,6,27,27,,,91,,,44,,91,,,',
',6,,,27,6,,,,,19,25,,,27,,24,,,,33,,24,19,44,,44,44,,,,,,28,,,44,24',
',28,27,31,27,38,,24,24,24,,24,24,24,,130,31,,,,,,,44,,44,44,,28,,,,23',
'23,24,44,44,,,24,24,12,,24,24,91,27,,,,,,,91,,,,,,,,28,,,130,,,130,',
',,44,,,,44,,,23,23,,24,,,48,23,24,24,24,24,24,,,,,,,,28,,,,,64,44,,',
'28,,,,,,64,,,6,,,,,,,91,23,69,23,23,,,44,,,35,58,6,23,,48,,58,33,,,',
'44,6,,,27,44,,,44,44,,27,,48,,,,,23,23,27,,,44,,,,,23,,24,24,24,24,',
',24,24,24,24,24,24,,,,,,28,,,,,,24,28,,,,,,12,,,,23,,27,,23,27,28,,',
',,,,,,130,,,130,12,,,24,,,,,,24,,,24,,23,,,,,,,130,,,130,,130,,,24,',
'24,,,,24,24,,,,23,,,,,,28,,28,,,,24,28,,23,,,,,23,12,24,23,23,54,12',
',,,,54,,48,,24,24,,,28,,,27,,,,,,24,,24,,130,27,,130,,130,54,54,54,',
',,,,27,27,,,130,,,,,,,,,,48,48,,,,,,,,,,54,24,,54,48,,,,,,48,130,,,',
',,,28,,,27,27,,,,,27,27,,48,,,,,,,54,,,,,,,,,54,,,24,,,,,,,,,,,,,,,',
',,27,,27,27,,,,,,,,,27,,,,,,,,,,,,,,,,,,,,,,,,,24,,27,27,,,,24,,24,',
',27,,,,24,28,,,,,,,,24,,54,,,,,,,,,,,,,,,,,,,27,,27,,54,,27,,,,27,,',
',,,24,,,24,,,,,53,24,,,48,,53,,,28,30,27,28,24,,,30,,,24,,,12,,,12,',
',,48,,,,53,53,53,,27,,54,,54,,,,54,54,,24,24,,,27,,24,24,,27,24,,27',
'27,54,,48,,53,,,53,,,54,,,28,,,,,,30,,30,,30,,,,,,24,,,,,,,54,,54,,24',
'53,,,,,,,,,53,,,24,24,,,,,,,,,48,,,,,30,,28,28,,48,,,,,,,54,,,12,12',
',,24,,,,,,24,,,,,48,24,24,,,,,,24,,,,,,,,,24,28,28,,,,,,28,,,,,,,,,',
',,53,12,,,,,,30,,,24,,24,24,,,,,,,,,24,53,,,,28,,28,28,,,,,,,,,28,12',
',12,12,,,,24,54,24,24,,12,,,54,,,,24,24,,,,54,,28,28,,,,,,,,,28,,,12',
'12,,53,,53,,,,53,53,,30,,24,30,24,30,,,24,,,,24,,53,,,,,54,,28,54,,53',
'28,,,,28,,,,,12,,,24,12,30,,,30,,,,,,,,53,,53,,28,,,,,,,,,24,,,,12,',
',,,,,,,,,24,,28,,,24,,,24,24,,,,,,12,53,28,,,,,28,24,,28,28,,,,12,,',
',,12,,,,,54,,,30,,,,30,30,,,54,,,,,,,,,,,,,54,54,,,,,,,,,,,,,,,,,,,',
',,30,,,,,,,,,,,,,,,,,,,,,,30,54,54,,,,,,54,,53,,,,,,30,53,,,,,,,,,53',
',,,,,,,,30,,,,,,,,,,,,54,,54,54,,,,,,34,,,54,,,,,34,34,34,30,,,,,53',
',,53,,34,34,34,,,,,,,54,54,,,,,34,,,,54,,,,,,,,,,,,133,133,133,,,,,',
',,,,,,,,,,,,,,54,,54,,,,54,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,54,,30,,,,53',
',,,,,,,,,,53,,,,,,,,,54,,,,53,53,,,,,,,,,,54,,,,,54,,,54,54,30,,,,,',
',,,,,,,,,,,34,34,34,,,34,34,,53,53,,,,,,53,,,,,,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,,,,,53',
'34,53,53,,,,34,,,34,,53,,,,,34,,34,,34,,,,,,,,,,,,,,,,,,53,53,,,,,,133',
'133,133,53,,,,,,,,,,34,,,,,,,34,,,,,,,,,,,133,133,,,133,133,53,133,53',
',,,53,,,,53,,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,,,,,,,,,,,,,,,,,,34,,,,53',
',,,,,,,,,,,,,,53,,,,,53,,,53,53,,,,,,,,,,34,,34,34,34,,,133,133,133',
'133,,133,,,,,,,,,,,,,,,,,133,133,133,133,,,,,,,,,,,,,,34,,,34,,34,,',
',,,,,,,,,,34,,,,,,,,,,34,34,34,,133,133,133,133,,,,34,,,34,,133,,,,',
',,,,,,,,133,,,,,,,,,,,,,,,,,,,,,,,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' ]
        racc_goto_check = arr = ::Array.new(2797, 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,   256,     3,   134,   nil,    32,    -2,   106,    51,    13,
  -308,   141,   815,  -509,  -597,  -622,   nil,     8,   141,   -20,
  -188,    86,     7,   169,   785,  -164,  -375,   471,   802,  -175,
  1152,    11,    39,   -21,  1850,    -4,   nil,   nil,  -133,    77,
  -218,  -335,  -312,  -608,    31,    79,    68,    18,   683,   nil,
   -34,     9,  -204,  1340,  1100,  -500,  -192,   -68,     1,   nil,
   nil,    -1,    -4,  -231,    65,   100,     9,  -209,    17,   -13,
  -318,  -255,  -423,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    89,  -159,   101,   nil,   101,  -291,  -632,  -466,  -321,    96,
  -404,    46,  -520,    95,  -186,   112,  -145,   112,   108,  -520,
   113,  -515,  -379,  -699,   116,  -527,  -153,  -526,  -695,   123,
  -377,  -157,  -377,  -624,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  -679,  -508,  -436,  -671,  -427,
   196,  -555,  -488,  1396,  -301,   nil,  -498,  -559,  -646,  -701,
  -117,  -312,   154,  -299,   192,   -28,  -407,   nil,   nil,   -34,
  -411,   -30,  -402,  -685,  -307,  -413,  -523,   nil,   nil,    40,
   179,    54,   180,   180,  -101,  -234,   185,  -447,  -302,  -299,
   200,  -424,  -382,  -590,  -616,  -706,   nil,   nil,   -55,  -436 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   279,     7,   331,   280,
   nil,   nil,   513,   nil,   800,   nil,   278,   nil,   nil,   nil,
    14,    15,    21,   219,   309,   nil,   nil,   217,   218,   nil,
   272,    20,   nil,   429,    24,    25,    26,    27,   657,   nil,
   nil,   nil,   nil,   nil,   297,   400,    34,   nil,   nil,    36,
    39,    38,   nil,   214,   215,   566,   nil,   123,   408,   122,
   125,    75,    76,   nil,    48,   nil,   401,   nil,   402,   413,
   610,   477,   270,   255,    49,    50,    51,    52,    53,    54,
    55,   nil,   256,    61,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   550,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   684,   539,   nil,   685,   nil,
   529,   nil,   531,   nil,   788,   627,   nil,   nil,   nil,   537,
   nil,   nil,   nil,   721,   nil,   nil,   nil,   412,   257,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    74,    77,    78,
   nil,   nil,   nil,   nil,   nil,   583,   nil,   nil,   nil,   nil,
   nil,   nil,   530,   541,   542,   763,   545,   548,   nil,   274 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 140, :_reduce_1,
  2, 138, :_reduce_2,
  2, 139, :_reduce_3,
  1, 141, :_reduce_none,
  1, 141, :_reduce_none,
  3, 141, :_reduce_6,
  2, 141, :_reduce_none,
  1, 144, :_reduce_none,
  0, 148, :_reduce_9,
  5, 144, :_reduce_10,
  4, 147, :_reduce_11,
  2, 149, :_reduce_12,
  1, 153, :_reduce_none,
  1, 153, :_reduce_none,
  3, 153, :_reduce_15,
  2, 153, :_reduce_16,
  0, 169, :_reduce_17,
  4, 146, :_reduce_18,
  3, 146, :_reduce_19,
  3, 146, :_reduce_20,
  3, 146, :_reduce_21,
  2, 146, :_reduce_22,
  3, 146, :_reduce_23,
  3, 146, :_reduce_24,
  3, 146, :_reduce_25,
  3, 146, :_reduce_26,
  3, 146, :_reduce_27,
  4, 146, :_reduce_28,
  1, 146, :_reduce_none,
  3, 146, :_reduce_30,
  3, 146, :_reduce_31,
  6, 146, :_reduce_32,
  5, 146, :_reduce_33,
  5, 146, :_reduce_34,
  5, 146, :_reduce_35,
  5, 146, :_reduce_36,
  3, 146, :_reduce_37,
  3, 146, :_reduce_38,
  3, 146, :_reduce_39,
  3, 146, :_reduce_40,
  1, 146, :_reduce_none,
  3, 157, :_reduce_42,
  3, 157, :_reduce_43,
  1, 168, :_reduce_none,
  3, 168, :_reduce_45,
  3, 168, :_reduce_46,
  3, 168, :_reduce_47,
  2, 168, :_reduce_48,
  1, 168, :_reduce_none,
  1, 156, :_reduce_50,
  1, 159, :_reduce_none,
  1, 159, :_reduce_none,
  1, 173, :_reduce_none,
  4, 173, :_reduce_54,
  4, 173, :_reduce_55,
  0, 179, :_reduce_56,
  0, 180, :_reduce_57,
  6, 177, :_reduce_58,
  2, 172, :_reduce_59,
  3, 172, :_reduce_60,
  4, 172, :_reduce_61,
  5, 172, :_reduce_62,
  4, 172, :_reduce_63,
  5, 172, :_reduce_64,
  2, 172, :_reduce_65,
  2, 172, :_reduce_66,
  2, 172, :_reduce_67,
  2, 172, :_reduce_68,
  2, 172, :_reduce_69,
  1, 158, :_reduce_none,
  3, 158, :_reduce_71,
  1, 184, :_reduce_none,
  3, 184, :_reduce_73,
  1, 183, :_reduce_74,
  2, 183, :_reduce_75,
  3, 183, :_reduce_76,
  5, 183, :_reduce_77,
  2, 183, :_reduce_78,
  4, 183, :_reduce_79,
  2, 183, :_reduce_80,
  4, 183, :_reduce_81,
  1, 183, :_reduce_82,
  3, 183, :_reduce_83,
  1, 187, :_reduce_none,
  3, 187, :_reduce_85,
  2, 186, :_reduce_86,
  3, 186, :_reduce_87,
  1, 189, :_reduce_88,
  3, 189, :_reduce_89,
  1, 188, :_reduce_90,
  1, 188, :_reduce_91,
  4, 188, :_reduce_92,
  3, 188, :_reduce_93,
  3, 188, :_reduce_94,
  3, 188, :_reduce_95,
  3, 188, :_reduce_96,
  2, 188, :_reduce_97,
  1, 188, :_reduce_98,
  1, 165, :_reduce_99,
  1, 165, :_reduce_100,
  4, 165, :_reduce_101,
  3, 165, :_reduce_102,
  3, 165, :_reduce_103,
  3, 165, :_reduce_104,
  3, 165, :_reduce_105,
  2, 165, :_reduce_106,
  1, 165, :_reduce_107,
  1, 192, :_reduce_108,
  1, 192, :_reduce_none,
  2, 193, :_reduce_110,
  1, 193, :_reduce_111,
  3, 193, :_reduce_112,
  1, 194, :_reduce_none,
  1, 194, :_reduce_none,
  1, 194, :_reduce_none,
  1, 194, :_reduce_116,
  1, 194, :_reduce_117,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 154, :_reduce_120,
  1, 154, :_reduce_none,
  1, 155, :_reduce_122,
  0, 200, :_reduce_123,
  4, 155, :_reduce_124,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  1, 196, :_reduce_none,
  3, 171, :_reduce_195,
  5, 171, :_reduce_196,
  3, 171, :_reduce_197,
  5, 171, :_reduce_198,
  6, 171, :_reduce_199,
  5, 171, :_reduce_200,
  5, 171, :_reduce_201,
  5, 171, :_reduce_202,
  5, 171, :_reduce_203,
  4, 171, :_reduce_204,
  3, 171, :_reduce_205,
  3, 171, :_reduce_206,
  3, 171, :_reduce_207,
  3, 171, :_reduce_208,
  3, 171, :_reduce_209,
  3, 171, :_reduce_210,
  3, 171, :_reduce_211,
  3, 171, :_reduce_212,
  3, 171, :_reduce_213,
  4, 171, :_reduce_214,
  4, 171, :_reduce_215,
  2, 171, :_reduce_216,
  2, 171, :_reduce_217,
  3, 171, :_reduce_218,
  3, 171, :_reduce_219,
  3, 171, :_reduce_220,
  3, 171, :_reduce_221,
  3, 171, :_reduce_222,
  3, 171, :_reduce_223,
  3, 171, :_reduce_224,
  3, 171, :_reduce_225,
  3, 171, :_reduce_226,
  3, 171, :_reduce_227,
  3, 171, :_reduce_228,
  3, 171, :_reduce_229,
  3, 171, :_reduce_230,
  2, 171, :_reduce_231,
  2, 171, :_reduce_232,
  3, 171, :_reduce_233,
  3, 171, :_reduce_234,
  3, 171, :_reduce_235,
  3, 171, :_reduce_236,
  3, 171, :_reduce_237,
  6, 171, :_reduce_238,
  1, 171, :_reduce_none,
  1, 167, :_reduce_240,
  1, 202, :_reduce_none,
  2, 202, :_reduce_242,
  4, 202, :_reduce_243,
  2, 202, :_reduce_244,
  3, 206, :_reduce_245,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 162, :_reduce_248,
  1, 162, :_reduce_249,
  2, 162, :_reduce_250,
  4, 162, :_reduce_251,
  2, 162, :_reduce_252,
  1, 182, :_reduce_253,
  2, 182, :_reduce_254,
  2, 182, :_reduce_255,
  4, 182, :_reduce_256,
  1, 182, :_reduce_none,
  0, 210, :_reduce_258,
  2, 176, :_reduce_259,
  2, 209, :_reduce_260,
  2, 208, :_reduce_261,
  1, 208, :_reduce_none,
  1, 203, :_reduce_263,
  2, 203, :_reduce_264,
  3, 203, :_reduce_265,
  4, 203, :_reduce_266,
  3, 166, :_reduce_267,
  4, 166, :_reduce_268,
  2, 166, :_reduce_269,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_278,
  0, 232, :_reduce_279,
  4, 201, :_reduce_280,
  0, 233, :_reduce_281,
  4, 201, :_reduce_282,
  3, 201, :_reduce_283,
  3, 201, :_reduce_284,
  2, 201, :_reduce_285,
  3, 201, :_reduce_286,
  0, 234, :_reduce_287,
  4, 201, :_reduce_288,
  1, 201, :_reduce_289,
  4, 201, :_reduce_290,
  3, 201, :_reduce_291,
  1, 201, :_reduce_292,
  5, 201, :_reduce_293,
  4, 201, :_reduce_294,
  3, 201, :_reduce_295,
  2, 201, :_reduce_296,
  1, 201, :_reduce_none,
  2, 201, :_reduce_298,
  2, 201, :_reduce_299,
  6, 201, :_reduce_300,
  6, 201, :_reduce_301,
  0, 235, :_reduce_302,
  0, 236, :_reduce_303,
  7, 201, :_reduce_304,
  0, 237, :_reduce_305,
  0, 238, :_reduce_306,
  7, 201, :_reduce_307,
  5, 201, :_reduce_308,
  4, 201, :_reduce_309,
  0, 239, :_reduce_310,
  0, 240, :_reduce_311,
  9, 201, :_reduce_312,
  0, 241, :_reduce_313,
  0, 242, :_reduce_314,
  7, 201, :_reduce_315,
  0, 243, :_reduce_316,
  0, 244, :_reduce_317,
  0, 245, :_reduce_318,
  9, 201, :_reduce_319,
  0, 246, :_reduce_320,
  0, 247, :_reduce_321,
  6, 201, :_reduce_322,
  0, 248, :_reduce_323,
  6, 201, :_reduce_324,
  0, 249, :_reduce_325,
  0, 250, :_reduce_326,
  9, 201, :_reduce_327,
  1, 201, :_reduce_328,
  1, 201, :_reduce_329,
  1, 201, :_reduce_330,
  1, 201, :_reduce_331,
  1, 161, :_reduce_332,
  1, 251, :_reduce_none,
  1, 252, :_reduce_none,
  1, 253, :_reduce_none,
  1, 254, :_reduce_none,
  1, 255, :_reduce_none,
  1, 256, :_reduce_none,
  1, 257, :_reduce_none,
  1, 258, :_reduce_none,
  1, 259, :_reduce_none,
  1, 260, :_reduce_none,
  1, 261, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  2, 222, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 223, :_reduce_none,
  5, 223, :_reduce_350,
  1, 151, :_reduce_none,
  2, 151, :_reduce_352,
  1, 226, :_reduce_none,
  1, 226, :_reduce_354,
  1, 262, :_reduce_none,
  3, 262, :_reduce_356,
  1, 265, :_reduce_357,
  3, 265, :_reduce_358,
  1, 264, :_reduce_359,
  4, 264, :_reduce_360,
  6, 264, :_reduce_361,
  3, 264, :_reduce_362,
  5, 264, :_reduce_363,
  2, 264, :_reduce_364,
  4, 264, :_reduce_365,
  1, 264, :_reduce_366,
  3, 264, :_reduce_367,
  6, 266, :_reduce_368,
  8, 266, :_reduce_369,
  4, 266, :_reduce_370,
  6, 266, :_reduce_371,
  4, 266, :_reduce_372,
  2, 266, :_reduce_373,
  6, 266, :_reduce_374,
  2, 266, :_reduce_375,
  4, 266, :_reduce_376,
  6, 266, :_reduce_377,
  2, 266, :_reduce_378,
  4, 266, :_reduce_379,
  2, 266, :_reduce_380,
  4, 266, :_reduce_381,
  1, 266, :_reduce_382,
  1, 178, :_reduce_383,
  1, 178, :_reduce_none,
  3, 272, :_reduce_385,
  1, 272, :_reduce_386,
  4, 272, :_reduce_387,
  1, 273, :_reduce_none,
  2, 273, :_reduce_389,
  1, 274, :_reduce_390,
  3, 274, :_reduce_391,
  1, 275, :_reduce_392,
  1, 275, :_reduce_none,
  0, 279, :_reduce_394,
  3, 221, :_reduce_395,
  4, 277, :_reduce_396,
  1, 277, :_reduce_397,
  3, 278, :_reduce_398,
  3, 278, :_reduce_399,
  0, 282, :_reduce_400,
  0, 283, :_reduce_401,
  6, 281, :_reduce_402,
  2, 174, :_reduce_403,
  4, 174, :_reduce_404,
  4, 174, :_reduce_405,
  0, 285, :_reduce_406,
  3, 220, :_reduce_407,
  4, 220, :_reduce_408,
  4, 220, :_reduce_409,
  3, 220, :_reduce_410,
  3, 220, :_reduce_411,
  3, 220, :_reduce_412,
  2, 220, :_reduce_413,
  1, 220, :_reduce_414,
  4, 220, :_reduce_415,
  0, 286, :_reduce_416,
  0, 287, :_reduce_417,
  6, 219, :_reduce_418,
  0, 288, :_reduce_419,
  0, 289, :_reduce_420,
  6, 219, :_reduce_421,
  0, 291, :_reduce_422,
  6, 225, :_reduce_423,
  1, 290, :_reduce_none,
  1, 290, :_reduce_none,
  6, 150, :_reduce_426,
  0, 150, :_reduce_427,
  1, 292, :_reduce_428,
  1, 292, :_reduce_none,
  1, 292, :_reduce_none,
  2, 293, :_reduce_431,
  1, 293, :_reduce_none,
  2, 152, :_reduce_433,
  1, 152, :_reduce_none,
  1, 211, :_reduce_435,
  1, 211, :_reduce_436,
  1, 211, :_reduce_none,
  1, 212, :_reduce_438,
  1, 295, :_reduce_none,
  2, 295, :_reduce_440,
  3, 296, :_reduce_441,
  1, 296, :_reduce_442,
  3, 213, :_reduce_443,
  3, 214, :_reduce_444,
  3, 215, :_reduce_445,
  3, 215, :_reduce_446,
  1, 300, :_reduce_447,
  3, 300, :_reduce_448,
  1, 301, :_reduce_none,
  2, 301, :_reduce_450,
  3, 216, :_reduce_451,
  3, 216, :_reduce_452,
  1, 303, :_reduce_453,
  3, 303, :_reduce_454,
  1, 297, :_reduce_455,
  2, 297, :_reduce_456,
  1, 298, :_reduce_457,
  2, 298, :_reduce_458,
  1, 299, :_reduce_459,
  2, 299, :_reduce_460,
  1, 302, :_reduce_461,
  0, 305, :_reduce_462,
  3, 302, :_reduce_463,
  0, 306, :_reduce_464,
  4, 302, :_reduce_465,
  1, 304, :_reduce_466,
  1, 304, :_reduce_467,
  1, 304, :_reduce_468,
  1, 304, :_reduce_none,
  2, 198, :_reduce_470,
  1, 198, :_reduce_471,
  1, 307, :_reduce_none,
  1, 307, :_reduce_none,
  1, 307, :_reduce_none,
  1, 307, :_reduce_none,
  3, 199, :_reduce_476,
  1, 294, :_reduce_none,
  1, 294, :_reduce_none,
  2, 294, :_reduce_479,
  2, 294, :_reduce_480,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 191, :_reduce_486,
  1, 191, :_reduce_487,
  1, 191, :_reduce_488,
  1, 191, :_reduce_489,
  1, 191, :_reduce_490,
  1, 191, :_reduce_491,
  1, 191, :_reduce_492,
  1, 217, :_reduce_493,
  1, 217, :_reduce_494,
  1, 160, :_reduce_495,
  1, 160, :_reduce_496,
  1, 164, :_reduce_497,
  1, 164, :_reduce_498,
  1, 227, :_reduce_499,
  0, 308, :_reduce_500,
  4, 227, :_reduce_501,
  2, 227, :_reduce_502,
  3, 229, :_reduce_503,
  2, 229, :_reduce_504,
  6, 280, :_reduce_505,
  8, 280, :_reduce_506,
  4, 280, :_reduce_507,
  6, 280, :_reduce_508,
  4, 280, :_reduce_509,
  6, 280, :_reduce_510,
  2, 280, :_reduce_511,
  4, 280, :_reduce_512,
  6, 280, :_reduce_513,
  2, 280, :_reduce_514,
  4, 280, :_reduce_515,
  2, 280, :_reduce_516,
  4, 280, :_reduce_517,
  1, 280, :_reduce_518,
  0, 280, :_reduce_519,
  1, 276, :_reduce_520,
  1, 276, :_reduce_521,
  1, 276, :_reduce_522,
  1, 276, :_reduce_523,
  1, 263, :_reduce_none,
  1, 263, :_reduce_525,
  1, 310, :_reduce_none,
  3, 310, :_reduce_527,
  1, 267, :_reduce_528,
  3, 267, :_reduce_529,
  3, 311, :_reduce_530,
  3, 312, :_reduce_531,
  1, 268, :_reduce_532,
  3, 268, :_reduce_533,
  1, 309, :_reduce_534,
  3, 309, :_reduce_535,
  1, 313, :_reduce_none,
  1, 313, :_reduce_none,
  2, 269, :_reduce_538,
  1, 269, :_reduce_539,
  1, 314, :_reduce_none,
  1, 314, :_reduce_none,
  2, 271, :_reduce_542,
  2, 270, :_reduce_543,
  0, 270, :_reduce_544,
  1, 230, :_reduce_none,
  0, 315, :_reduce_546,
  4, 230, :_reduce_547,
  1, 218, :_reduce_548,
  2, 218, :_reduce_549,
  1, 205, :_reduce_none,
  3, 205, :_reduce_551,
  3, 316, :_reduce_552,
  2, 316, :_reduce_553,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 284, :_reduce_none,
  1, 284, :_reduce_none,
  1, 284, :_reduce_none,
  1, 231, :_reduce_none,
  1, 231, :_reduce_none,
  0, 142, :_reduce_none,
  1, 142, :_reduce_none,
  0, 170, :_reduce_none,
  1, 170, :_reduce_none,
  2, 185, :_reduce_none,
  2, 163, :_reduce_none,
  0, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 228, :_reduce_575,
  1, 228, :_reduce_none,
  1, 145, :_reduce_none,
  2, 145, :_reduce_578,
  0, 143, :_reduce_579 ]

racc_reduce_n = 580

racc_shift_n = 991

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,
  :tLAST_TOKEN => 132,
  :tLAMBDA => 133,
  :tLAMBEG => 134,
  :tEQL => 135,
  :tLOWEST => 136 }

racc_nt_base = 137

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",
  "tLAST_TOKEN",
  "tLAMBDA",
  "tLAMBEG",
  "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",
  "backref",
  "lhs",
  "mrhs",
  "arg_value",
  "expr",
  "@3",
  "opt_nl",
  "arg",
  "command",
  "block_command",
  "block_call",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_param",
  "@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",
  "primary",
  "aref_args",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@7",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "then",
  "if_tail",
  "do",
  "case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "dot_or_colon",
  "@8",
  "@9",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "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_param",
  "f_arg",
  "f_block_optarg",
  "f_rest_arg",
  "opt_f_block_arg",
  "f_block_arg",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@27",
  "f_args",
  "do_block",
  "@28",
  "@29",
  "operation3",
  "@30",
  "@31",
  "@32",
  "@33",
  "@34",
  "cases",
  "@35",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "qword_list",
  "string_dvar",
  "@36",
  "@37",
  "sym",
  "@38",
  "f_optarg",
  "f_arg_item",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "@39",
  "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

# reduce 8 omitted

def _reduce_9(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        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]
                    
    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
                        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)
                    
    result
end

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

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

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

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

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

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

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

# reduce 41 omitted

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

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

# reduce 44 omitted

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

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

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

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

# reduce 49 omitted

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

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 70 omitted

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

# reduce 72 omitted

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

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

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

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

def _reduce_77(val, _values, result)
                      ary = list_append val[0], s(:splat, val[2])
                      ary.concat val[4].sexp_body
                      result = s(:masgn, ary)
                    
    result
end

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

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

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

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

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

def _reduce_83(val, _values, result)
                      ary = s(:array, s(:splat))
                      ary.concat val[2].sexp_body
                      result = s(:masgn, ary)
                    
    result
end

# reduce 84 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 109 omitted

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

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

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

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

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

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

# reduce 118 omitted

# reduce 119 omitted

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

# reduce 121 omitted

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

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

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

# 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 = new_assign val[0], val[2]
                    
    result
end

def _reduce_196(val, _values, result)
                      result = new_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].sexp_type = :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 = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

def _reduce_201(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    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 Integer === v1.last and Integer === 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 Integer === v1.last and Integer === 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(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
                    
    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[1], :"-@"
                    
    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 = new_call val[0], :"!=", argl(val[2])
                    
    result
end

def _reduce_229(val, _values, result)
                      result = new_match val[0], val[2]
                    
    result
end

def _reduce_230(val, _values, result)
                      result = s(:not, new_match(val[0], val[2]))
                    
    result
end

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

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

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

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

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

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

# reduce 239 omitted

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

# reduce 241 omitted

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

def _reduce_243(val, _values, result)
                      result = val[0] << s(:hash, *val[2].values)
                    
    result
end

def _reduce_244(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values))
                    
    result
end

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

# reduce 246 omitted

# reduce 247 omitted

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

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

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

def _reduce_251(val, _values, result)
                      result = val[0] << s(:hash, *val[2].sexp_body) # TODO: self.args
                    
    result
end

def _reduce_252(val, _values, result)
                      result = s(:hash, *val[0].values)
                    
    result
end

def _reduce_253(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = s(:array, val[0])
                    
    result
end

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

def _reduce_255(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values))
                      result = self.arg_blk_pass result, val[1]
                    
    result
end

def _reduce_256(val, _values, result)
                      result = val[0] << s(:hash, *val[2].values)
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

# reduce 257 omitted

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

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

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

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

# reduce 262 omitted

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

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

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

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

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

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

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

# reduce 270 omitted

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

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

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

def _reduce_280(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_281(val, _values, result)
                      lexer.lex_state = :expr_endarg
                    
    result
end

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

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

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

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

def _reduce_286(val, _values, result)
                      result = val[1] || s(:array)
                    
    result
end

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

def _reduce_288(val, _values, result)
                      result = new_hash val
                    
    result
end

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

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

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

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

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

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

def _reduce_295(val, _values, result)
                      raise "no3\non#{val.inspect}"
                    
    result
end

def _reduce_296(val, _values, result)
                      oper, iter = val[0], val[1]
                      call = new_call nil, oper.to_sym
                      iter.insert 1, call
                      result = iter
                      call.line = iter.line
                    
    result
end

# reduce 297 omitted

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

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

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

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

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

def _reduce_304(val, _values, result)
                      result = new_while val[5], val[2], true
                    
    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_until val[5], val[2], true
                    
    result
end

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

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

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

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

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

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

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

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

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

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

def _reduce_321(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_322(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_323(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
                      lexer.cmdarg.stack.replace [false]
                    
    result
end

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

def _reduce_326(val, _values, result)
                      self.in_single += 1
                      self.env.extend
                      lexer.lex_state = :expr_end # force for args
                      result = [lexer.lineno, self.lexer.cmdarg.stack.dup]
                      lexer.cmdarg.stack.replace [false]
                    
    result
end

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

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

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

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

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

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

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

# reduce 333 omitted

# reduce 334 omitted

# reduce 335 omitted

# 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

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

# reduce 351 omitted

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

# reduce 353 omitted

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

# reduce 355 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

                      result = block_var args, :*, args2
                    
    result
end

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

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

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

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

def _reduce_366(val, _values, result)
                      result = block_var :*
                    
    result
end

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

                      result = block_var :*, args
                    
    result
end

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

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

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

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

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

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

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

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

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

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 = 0 
    result
end

# reduce 384 omitted

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

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

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

# reduce 388 omitted

def _reduce_389(val, _values, result)
                      result = val[1]
                    
    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 = s(:shadow, val[0].to_sym)
                    
    result
end

# reduce 393 omitted

def _reduce_394(val, _values, result)
                      # TODO: dyna_push ? hrm
                      result = lexer.lpar_beg
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest
                    
    result
end

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

                      call = new_call nil, :lambda
                      result = new_iter call, args, body
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

# reduce 424 omitted

# reduce 425 omitted

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

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

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

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

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

# reduce 429 omitted

# reduce 430 omitted

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

# reduce 432 omitted

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

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

# reduce 434 omitted

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

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

# reduce 437 omitted

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

# reduce 439 omitted

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

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

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

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

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

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

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

def _reduce_447(val, _values, result)
                      result = new_word_list
                    
    result
end

def _reduce_448(val, _values, result)
                      result = val[0] << new_word_list_entry(val)
                    
    result
end

# reduce 449 omitted

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

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

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

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

def _reduce_454(val, _values, result)
                      result = val[0] << new_qword_list_entry(val)
                    
    result
end

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

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

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

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

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

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

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

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = :expr_beg
                    
    result
end

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

def _reduce_464(val, _values, result)
                      result = [lexer.lex_strterm,
                                lexer.brace_nest,
                                lexer.string_nest, # TODO: remove
                                lexer.cond.store,
                                lexer.cmdarg.store]

                      lexer.lex_strterm = nil
                      lexer.brace_nest  = 0
                      lexer.string_nest = 0

                      lexer.lex_state   = :expr_beg
                    
    result
end

def _reduce_465(val, _values, result)
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg = memo

                      lexer.lex_strterm = lex_strterm
                      lexer.brace_nest  = brace_nest
                      lexer.string_nest = string_nest

                      lexer.cond.restore oldcond
                      lexer.cmdarg.restore oldcmdarg

                      case stmt
                      when Sexp then
                        case stmt.sexp_type
                        when :str, :dstr, :evstr then
                          result = stmt
                        else
                          result = s(:evstr, stmt)
                        end
                      when nil then
                        result = s(:evstr)
                      else
                        raise "unknown string body: #{stmt.inspect}"
                      end
                    
    result
end

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

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

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

# reduce 469 omitted

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

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

# reduce 472 omitted

# reduce 473 omitted

# reduce 474 omitted

# reduce 475 omitted

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

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

                      case result.sexp_type
                      when :dstr then
                        result.sexp_type = :dsym
                      when :str then
                        result = s(:lit, result.last.intern)
                      else
                        result = s(:dsym, "", result)
                      end
                    
    result
end

# reduce 477 omitted

# reduce 478 omitted

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

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

# reduce 481 omitted

# reduce 482 omitted

# reduce 483 omitted

# reduce 484 omitted

# reduce 485 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_502(val, _values, result)
                      yyerrok
                      result = nil
                    
    result
end

def _reduce_503(val, _values, result)
                      result = val[1]
                      lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 524 omitted

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

                      result = identifier
                    
    result
end

# reduce 526 omitted

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

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

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

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

                      result << item
                    
    result
end

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

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

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

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

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

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

# reduce 536 omitted

# reduce 537 omitted

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

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

# reduce 540 omitted

# reduce 541 omitted

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

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

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

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

# reduce 545 omitted

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

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

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

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

# reduce 550 omitted

def _reduce_551(val, _values, result)
                      list = val[0].dup
                      more = val[2].sexp_body
                      list.push(*more) unless more.empty?
                      result = list
                    
    result
end

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

def _reduce_553(val, _values, result)
                      label, _ = val[0] # TODO: fix lineno?
                      result = s(:array, s(:lit, label.to_sym), val[1])
                    
    result
end

# reduce 554 omitted

# reduce 555 omitted

# reduce 556 omitted

# reduce 557 omitted

# reduce 558 omitted

# reduce 559 omitted

# reduce 560 omitted

# reduce 561 omitted

# reduce 562 omitted

# reduce 563 omitted

# reduce 564 omitted

# reduce 565 omitted

# reduce 566 omitted

# reduce 567 omitted

# reduce 568 omitted

# reduce 569 omitted

# reduce 570 omitted

# reduce 571 omitted

# reduce 572 omitted

# reduce 573 omitted

# reduce 574 omitted

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

# reduce 576 omitted

# reduce 577 omitted

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

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

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

end   # class Ruby19Parser
