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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-284,552,593,-101,552,552,259,-284,-284,-284,207,208,210,-284,-284,715',
'-284,500,-495,630,-85,3,672,79,501,-106,-71,259,-102,-104,107,80,775',
'499,558,106,-284,-284,832,-284,-284,-284,-284,-284,552,800,775,804,211',
'-104,695,-102,-101,629,-107,-100,552,259,-103,521,-91,775,523,630,-99',
'592,-100,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284',
'-284,-284,695,695,-284,-284,-284,-101,612,207,208,211,-284,-405,258',
'-284,207,208,629,437,-284,211,-284,794,-284,-284,-284,-284,-284,-284',
'-284,-103,-284,-93,-284,258,107,-95,-101,107,107,106,714,-101,106,106',
'-483,-284,-284,671,-96,-97,-284,-483,-483,-483,-105,-556,-483,-483,-483',
'107,-483,-102,-104,258,106,-107,-102,-104,-483,107,-483,-483,-483,-95',
'106,-93,-92,107,-98,-91,-483,-483,106,-483,-483,-483,-483,-483,-90,107',
'-105,-103,880,760,106,-556,-103,211,-93,775,107,107,-95,580,211,106',
'106,-414,207,208,630,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483',
'-483,-483,-483,-483,630,231,-483,-483,-483,580,-483,-483,-93,-94,-483',
'-93,-95,-483,-483,-95,-483,-93,-483,629,-483,-95,-483,-483,-483,-483',
'-483,-483,-483,231,-483,-557,-483,580,629,-414,585,580,660,582,581,578',
'-414,-553,-560,-483,-483,-483,-483,-284,-483,-414,-495,-483,-483,107',
'-284,-284,-284,261,106,-284,-284,-284,-492,-284,582,581,583,-414,-96',
'-492,-489,261,-480,-284,-284,-284,231,-489,-492,-480,-554,706,211,-284',
'-284,707,-284,-284,-284,-284,-284,748,582,581,-480,-560,582,581,-100',
'747,521,-480,-560,520,660,725,-553,-556,228,509,-480,-560,230,229,-284',
'-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-553',
'-560,-284,-284,-284,-483,750,-284,-485,211,-284,-104,-483,-284,-284',
'-485,-284,-554,-284,-102,-284,-483,-284,-284,-284,-284,-284,-284,-284',
'-106,-284,761,-284,536,535,534,-494,537,521,-554,-265,523,486,-560,580',
'-284,-284,-284,-284,-560,-284,484,580,-284,-105,107,-560,-560,-560,752',
'106,-560,-560,-560,686,-560,536,535,534,541,537,207,208,831,-560,-560',
'-560,-560,545,544,548,547,504,505,-99,-560,-560,-487,-560,-560,-560',
'-560,-560,-494,-487,686,-560,536,535,534,211,537,575,-560,471,582,581',
'594,-556,576,471,760,-560,582,581,588,-560,-560,-560,-560,-560,-560',
'-560,-560,-560,-560,-560,-560,-560,-560,-560,433,-560,-560,-560,-90',
'749,-560,434,734,-560,-99,919,-560,-560,-264,-560,435,-560,728,-560',
'727,-560,-560,-560,-560,-560,-560,-560,698,-560,-560,-560,686,-486,536',
'535,534,558,537,231,-486,691,796,-277,-560,-560,-560,-560,-560,-560',
'-277,252,-560,-103,689,-560,-560,-560,253,-277,834,-560,-560,686,-560',
'536,535,534,836,537,541,228,839,-560,840,230,229,226,227,560,521,548',
'547,523,-560,-560,561,-560,-560,-560,-560,-560,800,775,760,559,539,-490',
'536,535,534,541,537,686,-490,536,535,534,688,537,207,208,548,547,846',
'-560,-560,-560,-560,-560,-560,-560,-560,-560,-560,-560,-560,-560,-560',
'-491,509,-560,-560,-560,541,613,-491,207,208,-560,680,682,-560,545,544',
'548,547,-560,679,-560,685,-560,-560,-560,-560,-560,-560,-560,-488,-560',
'-560,-560,-483,607,686,-488,536,535,534,-483,537,231,-97,-480,-560,-560',
'733,-94,-106,-560,-480,-480,-480,-103,676,-480,-480,-480,539,-480,536',
'535,534,107,537,307,308,-480,106,-480,-480,-480,682,228,660,-95,674',
'230,229,-480,-480,-104,-480,-480,-480,-480,-480,606,-92,852,107,205',
'211,-263,-101,106,541,719,686,856,536,535,534,858,537,545,544,548,547',
'859,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480',
'-480,211,-285,-480,-480,-480,-93,-480,-480,-285,-98,-480,-102,682,-480',
'-480,-107,-480,-285,-480,861,-480,872,-480,-480,-480,-480,-480,-480',
'-480,864,-480,539,-480,536,535,534,710,537,110,111,112,113,114,941,-493',
'-480,-480,-480,-480,-561,-480,-493,711,-480,-480,866,-561,-561,-561',
'868,-493,-561,-561,-561,686,-561,536,535,534,541,537,868,211,667,-561',
'-561,-561,-561,545,544,548,547,873,666,875,-561,-561,-285,-561,-561',
'-561,-561,-561,686,-285,536,535,534,660,537,107,877,541,-285,686,106',
'536,535,534,515,537,211,649,548,547,-85,-561,-561,-561,-561,-561,-561',
'-561,-561,-561,-561,-561,-561,-561,-561,389,682,-561,-561,-561,391,390',
'-561,211,211,-561,211,682,-561,-561,211,-561,231,-561,231,-561,685,-561',
'-561,-561,-561,-561,-561,-561,107,-561,-561,-561,686,106,536,535,534',
'231,537,887,888,211,891,710,-561,-561,-561,-561,-562,-561,709,-266,-561',
'231,619,-562,-562,-562,616,711,-562,-562,-562,539,-562,536,535,534,231',
'537,541,261,605,-562,-562,-562,-562,604,211,898,899,548,547,600,-562',
'-562,-492,-562,-562,-562,-562,-562,686,-492,536,535,534,902,537,-263',
'228,541,-492,904,230,229,226,227,905,598,545,544,548,547,591,-562,-562',
'-562,-562,-562,-562,-562,-562,-562,-562,-562,-562,-562,-562,587,682',
'-562,-562,-562,-284,563,-562,562,381,-562,558,-284,-562,-562,486,-562',
'-557,-562,525,-562,-284,-562,-562,-562,-562,-562,-562,-562,921,-562',
'-562,-562,761,524,536,535,534,923,537,924,231,511,928,512,-562,-562',
'-562,-562,-278,-562,513,510,-562,506,932,-278,-278,-278,935,435,-278',
'-278,-278,761,-278,536,535,534,937,537,541,868,868,261,-278,-278,-278',
'211,942,545,544,548,547,943,-278,-278,264,-278,-278,-278,-278,-278,686',
'502,536,535,534,495,537,494,686,541,536,535,534,948,537,211,950,868',
'545,544,548,547,868,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278',
'-278,-278,-278,-278,868,682,-278,-278,-278,-284,954,-278,-70,682,-278',
'921,-284,-278,-278,486,-278,-557,-278,484,-278,-284,-278,-278,-278,-278',
'-278,-278,-278,481,-278,686,-278,536,535,534,-331,537,110,111,112,113',
'114,-331,-493,-278,-278,-278,-278,261,-278,-493,-331,-278,281,69,70',
'71,12,57,-493,823,824,63,64,825,101,102,67,541,65,66,68,32,33,72,73',
'471,210,439,548,547,31,30,29,95,94,96,97,438,844,22,536,535,534,436',
'537,11,47,392,13,99,98,100,89,56,91,90,92,946,93,101,102,666,87,88,947',
'44,45,43,-285,387,371,368,344,945,686,-285,536,535,534,-284,537,211',
'-277,306,-285,203,-284,42,921,-277,35,-557,204,58,59,-284,305,60,-277',
'37,978,202,686,46,536,535,534,979,537,980,982,23,541,868,868,868,85',
'79,81,82,83,84,-557,548,547,80,86,281,69,70,71,12,57,-556,62,211,63',
'64,250,206,541,67,201,65,66,68,32,33,72,73,200,548,547,868,921,31,30',
'29,95,94,96,97,199,844,22,536,535,534,103,537,11,47,868,13,99,98,100',
'89,56,91,90,92,,93,101,102,,87,88,,44,45,43,110,111,112,113,114,,686',
',536,535,534,,537,110,111,112,113,114,,42,,,35,,,58,59,,,60,,37,,,686',
'46,536,535,534,,537,,,23,541,,,,85,79,81,82,83,84,,548,547,80,86,281',
'69,70,71,12,57,,62,,63,64,,,541,67,,65,66,68,32,33,72,73,,548,547,,',
'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,539,,536,535,534,,537,23,,,,,85,79,81,82,83,84,,,,80,86,281,69',
'70,71,12,57,,62,,63,64,,,,67,541,65,66,68,32,33,72,73,,545,544,548,547',
'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,761,,536,535,534,,537,23,,,,,85,79,81,82,83,84,,,,80,86,281,69',
'70,71,12,57,,62,,63,64,,,,67,541,65,66,68,32,33,72,73,,545,544,548,547',
'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,539,,536,535,534,,537,23,,,,,85,79,81,82,83,84,,,,80,86,281,69',
'70,71,12,57,,62,,63,64,,,,67,541,65,66,68,32,33,72,73,,545,544,548,547',
'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,,,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',
',,,,,,,,,,,,,,,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,-579,-579,-579,-579,237,239,,,-579,-579,,,,,,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,-579,-579,-579,-579',
'237,239,,,-579,-579,,,,,,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,-579,-579,-579,-579,237,239,,,-579,-579,,,',
',,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',
'-579,-579,-579,-579,237,239,,,-579,-579,,,,,,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,-579,-579,-579,-579,237,239',
',,-579,-579,,,,,,245,246,,42,,,283,,,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,248,243,244,,-579,-579',
',,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,248,243,244,,-579,-579,,,245,246,,42,,,283',
',,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,-579,-579,-579,-579',
'237,239,,,-579,-579,,,,,,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,,,283,,,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,,,',
',,,,,,,,,,,,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,,,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,,,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,,,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,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,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,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,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,,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,,,,,601,,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,,,,,,,,,,,,,,,,,,,,338,,,35,,,58,59,,,60',
',37,,,,,,,,,,,,,,,,,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,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,,,,,,,,,,,,,,,,,,,,901',
',,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,539,,536,535,534',
'46,537,,,,,,,221,,,,-578,85,79,81,82,83,84,-578,-578,-578,80,86,-578',
'-578,-578,,-578,,,62,,541,528,,,-578,-578,-578,,,545,544,548,547,,,-578',
'-578,,-578,-578,-578,-578,-578,,,,,,,,,,,,,,,,,,,,,,,,-578,-578,-578',
'-578,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578,,,-578,-578,-578',
',,-578,,261,-578,,,-578,-578,,-578,,-578,,-578,,-578,-578,-578,-578',
'-578,-578,-578,,-578,-578,-578,,,,,,,,,,,,,-578,-578,,-578,,-578,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,381,,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,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,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,,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,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',
',397,,,,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,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,,,,,,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,,397,,,,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,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,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,275,93,101,102',
',87,88,,44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,644,,271',
',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,381,,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,,731,,,,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,,,,,,,,,,,,,,,,,,,,911,,,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,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,,,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,,,,,,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,,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,,,,,,,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,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,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,,,,,,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,,,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,,,,,,,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,,,,,,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,,,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,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,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,,-291,,,,,,,-291,-291,-291,,,-291,-291,-291,,-291,,292',
',,222,,,58,59,-291,-291,60,,,,,,,,-291,-291,,-291,-291,-291,-291,-291',
',,,85,79,81,82,83,84,,,,80,86,,,,497,,,,62,,-291,-291,-291,-291,-291',
'-291,-291,-291,-291,-291,-291,-291,-291,-291,,,-291,-291,-291,,,-291',
',264,-291,,,-291,-291,,-291,,-291,,-291,,-291,-291,-291,-291,-291,-291',
'-291,,-291,,-291,,,,,,,,,,,,-413,-291,-291,,-291,,-291,-413,-413,-413',
',,-413,-413,-413,539,-413,536,535,534,,537,,,,-413,-413,-413,,,,,,,',
',-413,-413,,-413,-413,-413,-413,-413,,,,,,,,,,541,719,,,,,,,,545,544',
'548,547,,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413',
'-413,-413,,,-413,-413,-413,,,-413,,261,-413,,,-413,-413,,-413,,-413',
',-413,,-413,-413,-413,-413,-413,-413,-413,,-413,-413,-413,,,,,,,,,,',
',,-413,-413,,-413,,-413,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,,93,101,102,,87,88',
',44,45,43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,397,,,,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,,,,,,,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,,,,,,,47,,,99,98',
'100,89,56,91,90,92,275,93,101,102,,87,88,,44,45,43,,,,,,,,,,,,,,,,,',
',,216,,,222,,,58,59,,,60,,644,,,,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,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,,,,,,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,,93,101,102,,87,88,,44,45',
'43,,,,,,,,,,,,,,,,,,,,216,,,222,,,58,59,,,60,,644,,,,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,515,,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,,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,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,,-578,,302,,,,,-578,-578,-578,,,-578,-578,-578,,-578',
',,,,,292,,,288,-578,,58,59,,,60,,,,-578,-578,,-578,-578,-578,-578,-578',
',,,,,,,85,79,81,82,83,84,,,,80,86,,,,,,,,62,,,,,,,,,-578,,,,,,,-578',
',,,,261,-578,,,,,,,,,,,,,,,,,,,,,,-578,,,,,,69,70,71,,57,,,-578,63,64',
',,-578,67,,65,66,68,298,299,72,73,,,,,,294,295,301,95,94,96,97,,,223',
',,,,,,296,,,99,98,100,564,56,91,90,565,,93,101,102,,87,88,,,,302,,,',
',,,,,,,,,,,,,,,,566,,,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,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,,,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,,,,,,,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,564,56,91,90,565,,93,101,102,,87,88,,-578,,302',
',,,,-578,-578,-578,,,-578,-578,-578,,-578,,,,,,566,,,222,-578,,58,59',
',,60,,,,-578,-578,,-578,-578,-578,-578,-578,,,,,,,,85,79,81,82,83,84',
',,,80,86,,,,,,,,62,,,,,,,,,-578,,,,,,,-578,,,,,261,-578,,,,,,,,,,,,',
',,,,,,,,,-578,,,,,,69,70,71,,57,,,-578,63,64,,,-578,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,,644,,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,',
',,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,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,,,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,,,,,617,,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,,-240,,,,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,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,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,353,352',
'354,351,162,181,180,,,,,,161,168,159,160,348,349,350,346,120,91,90,347',
',93,,,,,,,151,152,,148,130,131,132,139,136,138,,,133,134,,,,153,154',
'140,141,,,,,,360,,,,,,,,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,378,377,119,,379',
',,,,,,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,,,,,,,617,',
',,,,,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,622,417,,,623,,,,,,',
',,151,152,249,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',
'620,410,155,,621,,,,,,,,,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,971,410,155,,972,,,,,,,,,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,968,417,155,,967,,,,,,',
',,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',
'406,410,155,,407,,,,,,,,,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,413,417,155,,412,,,,,,,,,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,468,410,155,,469,,,,,,',
',,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,973',
'417,155,,974,,,,,,,,,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,468,410,155,,469,,,,,,,,,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,703,417,155,,704,,,,,,,,,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,701,410,155',
',702,,,,,,,,,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,468,410,155,,469,,,,,,,,,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,808,417,155,,809,,,,,,,,,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,622,417,155,,623,,',
',,,,,,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,620,410,155,,621,,,,,,,,,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,656,417,155,,657,,,,,,,,,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,653,410,155,,654,,',
',,,,,,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,,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,,,,,,,,,,,',
',,,,249' ]
        racc_action_table = arr = ::Array.new(23674, 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 = [
'412,328,372,986,329,876,297,412,412,412,664,664,22,412,412,570,412,291',
'41,475,648,1,527,77,291,562,648,28,971,972,332,77,926,291,926,332,412',
'412,751,412,412,412,412,412,855,690,690,697,22,702,555,701,806,475,339',
'336,805,61,973,669,41,692,669,476,335,372,41,412,412,412,412,412,412',
'412,412,412,412,412,412,412,412,554,807,412,412,412,751,412,722,722',
'687,412,28,297,412,430,430,476,217,412,664,412,684,412,412,412,412,412',
'412,412,703,412,653,412,28,328,654,986,329,876,328,570,986,329,876,92',
'412,412,527,412,562,412,92,92,92,412,973,92,92,92,570,92,971,972,61',
'570,217,971,972,92,555,92,92,92,702,555,701,806,855,339,336,92,92,855',
'92,92,92,92,92,335,805,704,973,805,673,805,703,973,722,653,665,554,807',
'654,362,430,554,807,770,20,20,636,92,92,92,92,92,92,92,92,92,92,92,92',
'92,92,466,663,92,92,92,364,92,92,653,703,92,653,654,92,92,654,92,653',
'92,636,92,654,92,92,92,92,92,92,92,662,92,704,92,366,466,770,366,589',
'659,362,362,362,770,564,656,92,92,92,92,623,92,770,215,92,92,5,623,623',
'623,658,5,623,623,623,908,623,364,364,364,770,704,908,349,655,346,623',
'623,623,442,349,908,346,565,566,652,623,623,566,623,623,623,623,623',
'621,366,366,564,656,589,589,215,620,317,564,656,317,650,589,564,656',
'442,436,564,656,442,442,623,623,623,623,623,623,623,623,623,623,623',
'623,623,623,564,656,623,623,623,565,623,623,352,700,623,621,565,623',
'623,352,623,565,623,620,623,565,623,623,623,623,623,623,623,436,623',
'629,623,629,629,629,214,629,318,565,730,318,643,808,374,623,623,623',
'623,622,623,641,369,623,623,885,622,622,622,626,885,622,622,622,872',
'622,872,872,872,629,872,315,315,735,622,622,622,622,629,629,629,629',
'302,302,214,622,622,354,622,622,622,622,622,40,354,685,808,685,685,685',
'624,685,356,808,614,374,374,374,808,356,608,629,808,369,369,369,622',
'622,622,622,622,622,622,622,622,622,622,622,622,622,808,213,622,622',
'622,40,622,622,213,603,622,40,872,622,622,599,622,213,622,595,622,593',
'622,622,622,622,622,622,622,557,622,622,622,864,353,864,864,864,556',
'864,462,353,551,685,293,622,622,622,622,413,622,293,27,622,622,549,413',
'413,413,27,293,753,413,413,679,413,679,679,679,754,679,864,462,755,413',
'757,462,462,462,462,337,322,864,864,322,413,413,337,413,413,413,413',
'413,956,956,758,337,861,348,861,861,861,679,861,682,348,682,682,682',
'546,682,716,716,679,679,761,413,413,413,413,413,413,413,413,413,413',
'413,413,413,413,350,306,413,413,413,861,413,350,327,327,413,539,682',
'413,861,861,861,861,413,532,413,682,413,413,413,413,413,413,413,351',
'413,413,413,347,407,796,351,796,796,796,347,796,443,306,89,413,413,602',
'413,306,413,89,89,89,413,531,89,89,89,573,89,573,573,573,278,573,43',
'43,89,278,89,89,89,796,443,769,407,530,443,443,89,89,407,89,89,89,89',
'89,406,602,773,815,18,518,776,602,815,573,573,794,777,794,794,794,781',
'794,573,573,573,573,782,89,89,89,89,89,89,89,89,89,89,89,89,89,89,783',
'502,89,89,89,406,89,89,502,18,89,406,794,89,89,18,89,502,89,784,89,794',
'89,89,89,89,89,89,89,785,89,676,89,676,676,676,900,676,647,647,647,647',
'647,900,290,89,89,89,89,417,89,290,900,89,89,788,417,417,417,789,290',
'417,417,417,866,417,866,866,866,676,866,791,793,517,417,417,417,417',
'676,676,676,676,795,516,798,417,417,707,417,417,417,417,417,954,707',
'954,954,954,507,954,720,801,866,707,541,720,541,541,541,503,541,498',
'496,866,866,493,417,417,417,417,417,417,417,417,417,417,417,417,417',
'417,117,954,417,417,417,117,117,417,492,478,417,477,541,417,417,811',
'417,447,417,446,417,541,417,417,417,417,417,417,417,715,417,417,417',
'868,715,868,868,868,445,868,816,817,818,827,568,417,417,417,417,418',
'417,568,828,417,444,432,418,418,418,422,568,418,418,418,674,418,674',
'674,674,461,674,868,414,405,418,418,418,418,404,401,841,842,868,868',
'398,418,418,289,418,418,418,418,418,919,289,919,919,919,847,919,395',
'461,674,289,849,461,461,461,461,850,393,674,674,674,674,371,418,418',
'418,418,418,418,418,418,418,418,418,418,418,418,368,919,418,418,418',
'809,340,418,338,334,418,333,809,418,418,323,418,809,418,320,418,809',
'418,418,418,418,418,418,418,874,418,418,418,834,319,834,834,834,878',
'834,879,311,308,884,309,418,418,418,418,56,418,309,307,418,303,892,56',
'56,56,893,309,56,56,56,836,56,836,836,836,894,836,834,895,897,301,56',
'56,56,296,901,834,834,834,834,903,56,56,295,56,56,56,56,56,921,292,921',
'921,921,286,921,285,873,836,873,873,873,911,873,284,914,915,836,836',
'836,836,916,56,56,56,56,56,56,56,56,56,56,56,56,56,56,917,921,56,56',
'56,657,918,56,282,873,56,920,657,56,56,272,56,657,56,269,56,657,56,56',
'56,56,56,56,56,268,56,839,56,839,839,839,48,839,491,491,491,491,491',
'48,909,56,56,56,56,257,56,909,48,56,763,763,763,763,763,763,909,723',
'723,763,763,723,723,723,763,839,763,763,763,763,763,763,763,254,223',
'219,839,839,763,763,763,763,763,763,763,218,899,763,899,899,899,216',
'899,763,763,197,763,763,763,763,763,763,763,763,763,910,763,763,763',
'944,763,763,910,763,763,763,948,115,84,83,69,910,982,948,982,982,982',
'974,982,47,912,42,948,17,974,763,955,912,763,974,17,763,763,974,39,763',
'912,763,960,17,937,763,937,937,937,961,937,962,963,763,982,964,965,966',
'763,763,763,763,763,763,967,982,982,763,763,802,802,802,802,802,802',
'968,763,970,802,802,25,19,937,802,16,802,802,802,802,802,802,802,15',
'937,937,975,976,802,802,802,802,802,802,802,13,760,802,760,760,760,3',
'760,802,802,988,802,802,802,802,802,802,802,802,802,,802,802,802,,802',
'802,,802,802,802,9,9,9,9,9,,950,,950,950,950,,950,280,280,280,280,280',
',802,,,802,,,802,802,,,802,,802,,,935,802,935,935,935,,935,,,802,950',
',,,802,802,802,802,802,802,,950,950,802,802,314,314,314,314,314,314',
',802,,314,314,,,935,314,,314,314,314,314,314,314,314,,935,935,,,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,719,,719,719,719,,719,314,,,,,314',
'314,314,314,314,314,,,,314,314,881,881,881,881,881,881,,314,,881,881',
',,,881,719,881,881,881,881,881,881,881,,719,719,719,719,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,932,,932,932,932,,932,881,,,,,881,881,881',
'881,881,881,,,,881,881,775,775,775,775,775,775,,881,,775,775,,,,775',
'932,775,775,775,775,775,775,775,,932,932,932,932,775,775,775,775,775',
'775,775,,,775,,,,,,775,775,,775,775,775,775,775,775,775,775,775,,775',
'775,775,,775,775,,775,775,775,,,,,,,,,,,,,,,,,,,,775,,,775,,,775,775',
',,775,,775,,,,775,528,,528,528,528,,528,775,,,,,775,775,775,775,775',
'775,,,,775,775,907,907,907,907,907,907,,775,,907,907,,,,907,528,907',
'907,907,907,907,907,907,,528,528,528,528,907,907,907,907,907,907,907',
',,907,,,,,,907,907,,907,907,907,907,907,907,907,907,907,,907,907,907',
',907,907,,907,907,907,454,,,,,,,,,,,,,,,,454,454,,907,,,907,,,907,907',
',,907,,907,454,,454,907,454,454,454,454,,,454,907,454,,,,907,907,907',
'907,907,907,,,,907,907,672,672,672,672,672,672,,907,,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,463,463,463,463,463,463,463,,,463,463,,,,,,463,463',
',672,,,672,,,672,672,,,672,,672,463,,463,672,463,463,463,463,463,463',
'463,672,463,,,,672,672,672,672,672,672,,,,672,672,766,766,766,766,766',
'766,,672,,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,453,,,,,,,,,,,,,,,,453,453,,766',
',,766,,,766,766,,,766,,766,453,,453,766,453,453,453,453,,,453,766,453',
',,,766,766,766,766,766,766,,,,766,766,671,671,671,671,671,671,,766,',
'671,671,,,,671,,671,671,671,671,671,671,671,,,,,,671,671,671,671,671',
'671,671,,,671,,,,,,671,671,,671,671,671,671,671,671,671,671,671,,671',
'671,671,,671,671,,671,671,671,460,460,460,460,460,460,460,,,460,460',
',,,,,460,460,,671,,,671,,,671,671,,,671,,671,460,,460,671,460,460,460',
'460,460,460,460,671,460,,,,671,671,671,671,671,671,,,,671,671,765,765',
'765,765,765,765,,671,,765,765,,,,765,,765,765,765,765,765,765,765,,',
',,,765,765,765,765,765,765,765,,,765,,,,,,765,765,,765,765,765,765,765',
'765,765,765,765,,765,765,765,,765,765,,765,765,765,452,,,,,,,,,,,,,',
',,452,452,,765,,,765,,,765,765,,,765,,765,452,,452,765,452,452,452,452',
',,452,765,452,,,,765,765,765,765,765,765,,,,765,765,803,803,803,803',
'803,803,,765,,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,451,451,451,451,451,451,451',
',,451,451,,,,,,451,451,,803,,,803,,,803,803,,,803,,803,451,,451,803',
'451,451,451,451,451,451,451,803,451,,,,803,803,803,803,803,803,,,,803',
'803,717,717,717,717,717,717,,803,,717,717,,,,717,,717,717,717,717,717',
'717,717,,,,,,717,717,717,717,717,717,717,,,717,,,,,,717,717,,717,717',
'717,717,717,717,717,717,717,,717,717,717,,717,717,,717,717,717,459,459',
'459,459,459,459,459,,,459,459,,,,,,459,459,,717,,,717,,,717,717,,,717',
',717,459,,459,717,459,459,459,459,459,459,459,717,459,,,,717,717,717',
'717,717,717,,,,717,717,550,550,550,550,550,550,,717,,550,550,,,,550',
',550,550,550,550,550,550,550,,,,,,550,550,550,550,550,550,550,,,550',
',,,,,550,550,,550,550,550,550,550,550,550,550,550,,550,550,550,,550',
'550,,550,550,550,458,458,458,458,458,458,458,,,458,458,,,,,,458,458',
',550,,,550,,,550,550,,,550,,550,458,,458,550,458,458,458,458,458,458',
'458,550,458,,,,550,550,550,550,550,550,,,,550,550,288,288,288,288,288',
'288,,550,,288,288,,,,288,,288,288,288,288,288,288,288,,,,,,288,288,288',
'288,288,288,288,,,288,,,,,,288,288,,288,288,288,288,288,288,288,288',
'288,,288,288,288,,288,288,,288,288,288,457,457,457,457,457,457,457,',
',457,457,,,,,,457,457,,288,,,288,,,288,288,,,288,,288,457,,457,288,457',
'457,457,457,457,457,457,288,457,,,,288,288,288,288,288,288,,,,288,288',
'553,553,553,553,553,553,,288,,553,553,,,,553,,553,553,553,553,553,553',
'553,,,,,,553,553,553,553,553,553,553,,,553,,,,,,553,553,,553,553,553',
'553,553,553,553,553,553,,553,553,553,,553,553,,553,553,553,440,440,440',
'440,440,440,440,440,440,440,440,,440,440,,,440,440,,553,,,553,,,553',
'553,,,553,,553,440,,440,553,440,440,440,440,440,440,440,553,440,,,,553',
'553,553,553,553,553,,,,553,553,283,283,283,283,283,283,,553,,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,441,441,441,441,441,441,441,441,441,441,441,,441',
'441,,,441,441,,283,,,283,,,283,283,,,283,,283,441,,441,283,441,441,441',
'441,441,441,441,283,441,,,,283,283,283,283,283,283,,,,283,283,922,922',
'922,922,922,922,,283,,922,922,,,,922,,922,922,922,922,922,922,922,,',
',,,922,922,922,922,922,922,922,,,922,,,,,,922,922,,922,922,922,922,922',
'922,922,922,922,,922,922,922,,922,922,,922,922,922,456,456,456,456,456',
'456,456,,,456,456,,,,,,456,456,,922,,,922,,,922,922,,,922,,922,456,',
'456,922,456,456,456,456,456,456,456,922,456,,,,922,922,922,922,922,922',
',,,922,922,35,35,35,35,35,35,,922,,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,464,464,464,464,464,464,464,464,,464,464',
',,,,,464,464,,35,,,35,,,35,35,,,35,,35,464,,464,35,464,464,464,464,464',
'464,464,35,464,,,,35,35,35,35,35,35,,,,35,35,927,927,927,927,927,927',
',35,,927,927,,,,927,,927,927,927,927,927,927,927,,,,,,927,927,927,927',
'927,927,927,,,927,,,,,,927,927,,927,927,927,927,927,927,927,927,927',
',927,927,927,,927,927,,927,927,927,455,,,,,,,,,,,,,,,,455,455,,927,',
',927,,,927,927,,,927,,927,455,,455,927,455,455,455,455,,,455,927,455',
',,,927,927,927,927,927,927,,,,927,927,930,930,930,930,930,930,,927,',
'930,930,,,,930,,930,930,930,930,930,930,930,,,,,,930,930,930,930,930',
'930,930,,,930,,,,,,930,930,,930,930,930,930,930,930,930,930,930,,930',
'930,930,,930,930,,930,930,930,448,,,,,,,,,,,,,,,,448,448,,930,,,930',
',,930,930,,,930,,930,448,,448,930,448,448,448,448,,,,930,,,,,930,930',
'930,930,930,930,,,,930,930,718,718,718,718,718,718,,930,,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,450,,,,,,,,,,,,,,,,450,450,,718,,,718,,,718,718',
',,718,,718,450,,,718,450,450,450,450,,,,718,,,,,718,718,718,718,718',
'718,,,,718,718,931,931,931,931,931,931,,718,,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,449,,,,,,,,,,,,,,,,449,449,,931,,,931,,,931,931,,,931,,931,449',
',449,931,449,449,449,449,,,,931,,,,,931,931,931,931,931,931,,,,931,931',
'222,222,222,222,222,222,,931,,222,222,,,,222,,222,222,222,222,222,222',
'222,,,,,,222,222,222,222,222,222,222,,,222,,,,,,222,222,,222,222,222',
'222,222,222,222,222,222,,222,222,222,,222,222,,222,222,222,,,,,,,,,',
',,,,,,,,,,222,,,222,,,222,222,,,222,,222,,,,222,,,,,,,,222,,,,,222,222',
'222,222,222,222,,,,222,222,199,199,199,199,199,199,,222,,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,,,,,,,,,,,,,,,,,,,,199,,,199,,,199,199,,,199,,199',
',,,199,,,,,,,,199,,,,,199,199,199,199,199,199,,,,199,199,812,812,812',
'812,812,812,,199,,812,812,,,,812,,812,812,812,812,812,812,812,,,,,,812',
'812,812,812,812,812,812,,,812,,,,,,812,812,,812,812,812,812,812,812',
'812,812,812,,812,812,812,,812,812,,812,812,812,,,,,,,,,,,,,,,,,,,,812',
',,812,,,812,812,,,812,,812,,,,812,,,,,,,,812,,,,,812,812,812,812,812',
'812,,,,812,812,848,848,848,848,848,848,,812,,848,848,,,,848,,848,848',
'848,848,848,848,848,,,,,,848,848,848,848,848,848,848,,,848,,,,,,848',
'848,,848,848,848,848,848,848,848,848,848,,848,848,848,,848,848,,848',
'848,848,,,,,,,,,,,,,,,,,,,,848,,,848,,,848,848,,,848,,848,,,,848,,,',
',,,,848,,,,,848,848,848,848,848,848,,,,848,848,387,387,387,387,387,387',
',848,,387,387,,,,387,,387,387,387,387,387,387,387,,,,,,387,387,387,387',
'387,387,387,,,387,,,,,,387,387,387,387,387,387,387,387,387,387,387,387',
',387,387,387,,387,387,,387,387,387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387',
'387,,,387,,387,,,,387,,,,,,,,387,,,,,387,387,387,387,387,387,,,,387',
'387,852,852,852,852,852,852,,387,,852,852,,,,852,,852,852,852,852,852',
'852,852,,,,,,852,852,852,852,852,852,852,,,852,,,,,,852,852,,852,852',
'852,852,852,852,852,852,852,,852,852,852,,852,852,,852,852,852,,,,,',
',,,,,,,,,,,,,,852,,,852,,,852,852,,,852,,852,,,,852,,,,,,,,852,,,,,852',
'852,852,852,852,852,,,,852,852,2,2,2,2,2,2,,852,,2,2,,,,2,,2,2,2,2,2',
'2,2,,,,,,2,2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2',
',2,2,2,,,,,,,,,,,,,,,,,,,,2,,,2,,,2,2,,,2,,2,,,,2,,,,,,,,2,,,,,2,2,2',
'2,2,2,,,,2,2,724,724,724,724,724,724,,2,,724,724,,,,724,,724,724,724',
'724,724,724,724,,,,,,724,724,724,724,724,724,724,,,724,,,,,,724,724',
',724,724,724,724,724,724,724,724,724,,724,724,724,,724,724,,724,724',
'724,,,,,,,,,,,,,,,,,,,,724,,,724,,,724,724,,,724,,724,,,,724,,,,,,,',
'724,,,,,724,724,724,724,724,724,,,,724,724,275,275,275,,275,,,724,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,58,58,58,,58',
',,275,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,60,60,60,,60,,,59,60',
'60,,,,60,,60,60,60,60,60,60,60,,,,,,60,60,60,60,60,60,60,,,60,,,,,,',
'60,,,60,60,60,60,60,60,60,60,60,60,60,60,,60,60,,60,60,60,,,,,,,,,,',
',,,,,,,,,60,,,60,,,60,60,,,60,,,,,,60,,,,,,,,60,,,,,60,60,60,60,60,60',
',,,60,60,731,731,731,,731,,,60,731,731,,,,731,,731,731,731,731,731,731',
'731,,,,,,731,731,731,731,731,731,731,,,731,,,,,,,731,,,731,731,731,731',
'731,731,731,731,,731,731,731,,731,731,,731,731,731,,,,,,,,,,,,,,,,,',
',,731,,,731,,,731,731,,,731,,,,,,731,,,,,,,,731,,,,,731,731,731,731',
'731,731,,,,731,731,63,63,63,,63,,,731,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,,,,,400,,67,,,67,67,67,67,67,67,67,67,,67,67',
'67,,67,67,,67,67,67,400,400,400,400,400,400,400,400,400,400,400,,400',
'400,,,400,400,,67,,,67,,,67,67,,,67,,,400,,400,67,400,400,400,400,400',
'400,400,67,400,,,,67,67,67,67,67,67,,,,67,67,67,400,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,733,733,733,,733,,,68,733,733,,,,733,,733,733,733,733,733,733',
'733,,,,,,733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733',
'733,733,733,733,,733,733,733,,733,733,,733,733,733,,,,,,,,,,,,,,,,,',
',,733,,,733,,,733,733,,,733,,,,,,733,,,,,,,,733,,,,,733,733,733,733',
'733,733,,,,733,733,644,644,644,,644,,,733,644,644,,,,644,,644,644,644',
'644,644,644,644,,,,,,644,644,644,644,644,644,644,,,644,,,,,,,644,,,644',
'644,644,644,644,644,644,644,,644,644,644,,644,644,,644,644,644,,,,,',
',,,,,,,,,,,,,,644,,,644,,,644,644,,,644,,,,,,644,,,,,,,,644,,,,,644',
'644,644,644,644,644,,,,644,644,46,46,46,,46,,,644,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,45,45,45',
',45,,,46,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,617,617,617,,617,,,45,617,617,,,,617,,617,617,617',
'617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617,,,,,,,617,,,617',
'617,617,617,617,617,617,617,,617,617,617,,617,617,,617,617,617,,,,,',
',,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,,,,,,617,,,,,617',
'617,617,617,617,617,,,,617,617,846,846,846,,846,,,617,846,846,,,,846',
',846,846,846,846,846,846,846,,,,,,846,846,846,846,846,846,846,,,846',
',,,,,,846,,,846,846,846,846,846,846,846,846,,846,846,846,,846,846,,',
',846,,,,,,,,,,,,,,,,,,,,846,,,846,,,846,846,,,846,,,,,,,,,,,,,,,,,,',
'846,846,846,846,846,846,,,,846,846,44,44,44,,44,,,846,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,326,,326,326,326,44,326,,,,,,,44,,,,408,44,44,44,44,44',
'44,408,408,408,44,44,408,408,408,,408,,,44,,326,326,,,408,408,408,,',
'326,326,326,326,,,408,408,,408,408,408,408,408,,,,,,,,,,,,,,,,,,,,,',
',,408,408,408,408,408,408,408,408,408,408,408,408,408,408,,,408,408',
'408,,,408,,408,408,,,408,408,,408,,408,,408,,408,408,408,408,408,408',
'408,,408,408,408,,,,,,,,,,,,,408,408,,408,,408,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,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,112,112,112,,112,,,111,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,945,945,945,,945,,,114,945,945,,,,945,,945,945,945,945,945',
'945,945,,,,,,945,945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,945',
'945,945,945,945,945,945,945,945,945,,945,945,,945,945,945,,,,,,,,,,',
',,,,,,,,,945,,,945,,,945,945,,,945,,945,,945,,945,,,,,,,,945,,,,,945',
'945,945,945,945,945,,,,945,945,616,616,616,,616,,,945,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,613,613,613,,613,,,616,613',
'613,,,,613,,613,613,613,613,613,613,613,,,,,,613,613,613,613,613,613',
'613,,,613,,,,,,,613,,,613,613,613,613,613,613,613,613,,613,613,613,',
'613,613,,613,613,613,,,,,,,,,,,,,,,,,,,,613,,,613,,,613,613,,,613,,',
',,,613,,,,,,,,613,,,,,613,613,613,613,613,613,,,,613,613,397,397,397',
',397,,,613,397,397,,,,397,,397,397,397,397,397,397,397,,,,,,397,397',
'397,397,397,397,397,,,397,,,,,,,397,,,397,397,397,397,397,397,397,397',
',397,397,397,,397,397,,397,397,397,,,,,,,,,,,,,,,,,,,,397,,,397,,,397',
'397,,,397,,,,,,397,,,,,,,,397,,,,,397,397,397,397,397,397,,,,397,397',
'200,200,200,,200,,,397,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,612,612,612,,612,',
',202,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,607,607,607',
',607,,,612,607,607,,,,607,,607,607,607,607,607,607,607,,,,,,607,607',
'607,607,607,607,607,,,607,,,,,,,607,,,607,607,607,607,607,607,607,607',
',607,607,607,,607,607,,607,607,607,,,,,,,,,,,,,,,,,,,,607,,,607,,,607',
'607,,,607,,,,,,607,,,,,,,,607,,,,,607,607,607,607,607,607,,,,607,607',
'205,205,205,,205,,,607,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,606,606,606,,606,,210,,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,605,605,605,,605,,,606,605,605,,,,605,,605,605,605,605,605',
'605,605,,,,,,605,605,605,605,605,605,605,,,605,,,,,,,605,,,605,605,605',
'605,605,605,605,605,605,605,605,605,,605,605,,605,605,605,,,,,,,,,,',
',,,,,,,,,605,,,605,,,605,605,,,605,,,,605,,605,,,,,,,,605,,,,,605,605',
'605,605,605,605,,,,605,605,604,604,604,,604,,,605,604,604,,,,604,,604',
'604,604,604,604,604,604,,,,,,604,604,604,604,604,604,604,,,604,,,,,',
',604,,,604,604,604,604,604,604,604,604,604,604,604,604,,604,604,,604',
'604,604,,,,,,,,,,,,,,,,,,,,604,,,604,,,604,604,,,604,,604,,604,,604',
',,,,,,,604,,,,,604,604,604,604,604,604,,,,604,604,490,490,490,490,490',
',,604,490,490,,,,490,,490,490,490,490,490,490,490,,,,,,490,490,490,490',
'490,490,490,,,490,,,,,,490,490,,490,490,490,490,490,490,490,490,490',
',490,490,490,,490,490,,490,490,490,,,,,,,,,,,,,,,,,,,,490,,,490,,,490',
'490,,,490,,490,,,,490,,,,,,,,490,,,,,490,490,490,490,490,490,,,,490',
'490,600,600,600,,600,490,,490,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,856,856,856,,856,,,600,856,856,,,,856,,856,856,856',
'856,856,856,856,,,,,,856,856,856,856,856,856,856,,,856,,,,,,,856,,,856',
'856,856,856,856,856,856,856,,856,856,856,,856,856,,,,856,,,,,,,,,,,',
',,,,,,,,856,,,856,,,856,856,,,856,,,,,,,,,,,,,,,,,,,856,856,856,856',
'856,856,,,,856,856,747,747,747,,747,,,856,747,747,,,,747,,747,747,747',
'747,747,747,747,,,,,,747,747,747,747,747,747,747,,,747,,,,,,,747,,,747',
'747,747,747,747,747,747,747,,747,747,747,,747,747,,747,747,747,,,,,',
',,,,,,,,,,,,,,747,,,747,,,747,747,,,747,,,,,,747,,,,,,,,747,,,,,747',
'747,747,747,747,747,,,,747,747,221,221,221,,221,,,747,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,8,8,8,8,8,,,221,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,660,660,660,,660,,,8,660,660,,,,660,,660,660',
'660,660,660,660,660,,,,,,660,660,660,660,660,660,660,,,660,,,,,,,660',
',,660,660,660,660,660,660,660,660,,660,660,660,,660,660,,,,660,,,,,',
',,,,,,,,,,,,,,660,,,660,,,660,660,,,660,,,,,,,,,,,,,,,,,,,660,660,660',
'660,660,660,,,,660,660,224,224,224,,224,,,660,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,748,748,748,,748,',
',249,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,577,577,577',
',577,,,748,577,577,,,,577,,577,577,577,577,577,577,577,,,,,,577,577',
'577,577,577,577,577,,,577,,,,,,,577,,,577,577,577,577,577,577,577,577',
',577,577,577,,577,577,,577,577,577,,,,,,,,,,,,,,,,,,,,577,,,577,,,577',
'577,,,577,,,,,,577,,,,,,,,577,,,,,577,577,577,577,577,577,,,,577,577',
'37,37,37,,37,,,577,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,255,255,255,37,255,,,37,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,36,36,36,,36,,,255,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,261,261,261,,261,,,36,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,571,571,571,,571,',
'264,,571,571,,,,571,,571,571,571,571,571,571,571,,,,,,571,571,571,571',
'571,571,571,,,571,,,,,,,571,,,571,571,571,571,571,571,571,571,,571,571',
'571,,571,571,,571,571,571,,,,,,,,,,,,,,,,,,,,571,,,571,,,571,571,,,571',
',,,,,571,,,,,,,,571,,,,,571,571,571,571,571,571,,,,571,571,832,832,832',
',832,,,571,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',
'33,33,33,,33,,,832,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,271,271,271,,271,,,33,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,,,,271,271,831,831,831,,831,,',
'271,831,831,,,,831,,831,831,831,831,831,831,831,,,,,,831,831,831,831',
'831,831,831,,,831,,,,,,,831,,,831,831,831,831,831,831,831,831,831,831',
'831,831,,831,831,,831,831,831,,,,,,,,,,,,,,,,,,,,831,,,831,,,831,831',
',,831,,,,831,,831,,,,,,,,831,,,,,831,831,831,831,831,831,,,,831,831',
'273,273,273,,273,,,831,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,649,649,649,,649,,,273,649,649,,,,649,,649,649,649,649,649',
'649,649,,,,,,649,649,649,649,649,649,649,,,649,,,,,,,649,,,649,649,649',
'649,649,649,649,649,,649,649,649,,649,649,,,,649,,,,,,,,,,,,,,,,,,,',
'649,,,649,,,649,649,,,649,,,,,,,,,,,,,,,,,,,649,649,649,649,649,649',
',,,649,649,559,559,559,,559,,,649,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,559,,559,559,,559,559,559,,,,,,,,,,',
',,,,,,,,,559,,,559,,,559,559,,,559,,559,,559,,559,,,,,,,,559,,,,,559',
'559,559,559,559,559,,,,559,559,749,749,749,,749,,,559,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,281,281,281,281,281,,,749',
'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',
'750,750,750,,750,,,281,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,32,32,32,,32,,,750,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,435,435,435,,435,,,32',
'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,435,,,,435,435,437',
'437,437,,437,,,435,437,437,,,,437,,437,437,437,437,437,437,437,,,,,',
'437,437,437,437,437,437,437,,,437,,,,,,,437,,,437,437,437,437,437,437',
'437,437,,437,437,437,,437,437,,437,437,437,,,,,,,,,,,,,,,,,,,,437,,',
'437,,,437,437,,,437,,,,,,437,,,,,,,,437,,,,,437,437,437,437,437,437',
',,,437,437,31,31,31,,31,,,437,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,287,287,287,,287,,,31',
'287,287,,,,287,,287,287,287,287,287,287,287,,,,,,287,287,287,287,287',
'287,287,,,287,,,,,,,287,,,287,287,287,287,287,287,287,287,,287,287,287',
',287,287,,,,287,,30,,,,,,,30,30,30,,,30,30,30,,30,,287,,,287,,,287,287',
'30,30,287,,,,,,,,30,30,,30,30,30,30,30,,,,287,287,287,287,287,287,,',
',287,287,,,,287,,,,287,,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,,,,,,,,,,,,29,30,30,,30,,30,29,29,29,,,29,29,29,890,29,890,890,890',
',890,,,,29,29,29,,,,,,,,,29,29,,29,29,29,29,29,,,,,,,,,,890,890,,,,',
',,,890,890,890,890,,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,752,752,752,,752,,,,752,752,,,,752,,752,752',
'752,752,752,752,752,,,,,,752,752,752,752,752,752,752,,,752,,,,,,,752',
',,752,752,752,752,752,752,752,752,,752,752,752,,752,752,,752,752,752',
',,,,,,,,,,,,,,,,,,,752,,,752,,,752,752,,,752,,,,,,752,,,,,,,,752,,,',
',752,752,752,752,752,752,,,,752,752,666,666,666,,666,,,752,666,666,',
',,666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666,666,666',
',,666,,,,,,,666,,,666,666,666,666,666,666,666,666,,666,666,666,,666',
'666,,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666,,,666,,666,',
',,666,,,,,,,,666,,,,,666,666,666,666,666,666,,,,666,666,438,438,438',
',438,,,666,438,438,,,,438,,438,438,438,438,438,438,438,,,,,,438,438',
'438,438,438,438,438,,,438,,,,,,,438,,,438,438,438,438,438,438,438,438',
',438,438,438,,438,438,,438,438,438,,,,,,,,,,,,,,,,,,,,438,,,438,,,438',
'438,,,438,,,,,,438,,,,,,,,438,,,,,438,438,438,438,438,438,,,,438,438',
'23,23,23,,23,,,438,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,680,680,680,,680,,,23,680,680,,,,680,,680',
'680,680,680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,',
',680,,,680,680,680,680,680,680,680,680,,680,680,680,,680,680,,680,680',
'680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,680',
',,,,680,680,680,680,680,680,,,,680,680,439,439,439,,439,,,680,439,439',
',,,439,,439,439,439,439,439,439,439,,,,,,439,439,439,439,439,439,439',
',,439,,,,,,,439,,,439,439,439,439,439,439,439,439,,439,439,439,,439',
'439,,439,439,439,,,,,,,,,,,,,,,,,,,,439,,,439,,,439,439,,,439,,,,,,439',
',,,,,,,439,,,,,439,439,439,439,439,439,,,,439,439,523,523,523,,523,',
',439,523,523,,,,523,,523,523,523,523,523,523,523,,,,,,523,523,523,523',
'523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523,523,523',
'523,523,,523,523,,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523,523',
',,523,,,,,,523,,,,,,,,523,,,,,523,523,523,523,523,523,,,,523,523,520',
'520,520,,520,,,523,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,520,813,813,813,,813,,,520,813,813,,,,813,,813,813,813,813',
'813,813,813,,,,,,813,813,813,813,813,813,813,,,813,,,,,,,813,,,813,813',
'813,813,813,813,813,813,,813,813,813,,813,813,,813,813,813,,,,,,,,,',
',,,,,,,,,,813,,,813,,,813,813,,,813,,,,,,813,,,,,,,,813,,,,,813,813',
'813,813,813,813,,,,813,813,515,515,515,,515,,,813,515,515,,,,515,,515',
'515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515,,,515,,,,,',
',515,,,515,515,515,515,515,515,515,515,,515,515,515,,515,515,,515,515',
'515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515,,,,,,,,515',
',,,,515,515,515,515,515,515,,,,515,515,304,304,304,,304,,,515,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,511,511,511,,511,,,304,511',
'511,,,,511,,511,511,511,511,511,511,511,,,,,,511,511,511,511,511,511',
'511,,,511,,,,,,,511,,,511,511,511,511,511,511,511,511,,511,511,511,',
'511,511,,511,511,511,,,,,,,,,,,,,,,,,,,,511,,,511,,,511,511,,,511,,',
',,,511,,,,,,,,511,,,,,511,511,511,511,511,511,,,,511,511,510,510,510',
',510,,,511,510,510,,,,510,,510,510,510,510,510,510,510,,,,,,510,510',
'510,510,510,510,510,,,510,,,,,,,510,,,510,510,510,510,510,510,510,510',
',510,510,510,,510,510,,510,510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510',
'510,,,510,,,,,,510,,,,,,,,510,,,,,510,510,510,510,510,510,,,,510,510',
'711,711,711,,711,,,510,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,711,,711,711,,711,711,711,,,,,,,,,,,,,,,,,,',
',711,,,711,,,711,711,,,711,,711,,711,,711,,,,,,,,711,,,,,711,711,711',
'711,711,711,,,,711,711,509,509,509,,509,,,711,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,,509,509,,509,509,509',
',,,,,,,,,,,,,,,,,,,509,,,509,,,509,509,,,509,,,,,,509,,,,,,,,509,,,',
',509,509,509,509,509,509,,,,509,509,880,880,880,,880,,,509,880,880,',
',,880,,880,880,880,880,880,880,880,,,,,,880,880,880,880,880,880,880',
',,880,,,,,,,880,,,880,880,880,880,880,880,880,880,,880,880,880,,880',
'880,,880,880,880,,,,,,,,,,,,,,,,,,,,880,,,880,,,880,880,,,880,,880,',
',,880,,,,,,,,880,,,,,880,880,880,880,880,880,,,,880,880,313,313,313',
',313,,,880,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,,,,,313,313,313,313,313,313,,,,313',
'313,699,699,699,,699,,,313,699,699,,,,699,,699,699,699,699,699,699,699',
',,,,,699,699,699,699,699,699,699,,,699,,,,,,,699,,,699,699,699,699,699',
'699,699,699,,699,699,699,,699,699,,699,699,699,,,,,,,,,,,,,,,,,,,,699',
',,699,,,699,699,,,699,,699,,,,699,,,,,,,,699,,,,,699,699,699,699,699',
'699,,,,699,699,800,800,800,,800,,,699,800,800,,,,800,,800,800,800,800',
'800,800,800,,,,,,800,800,800,800,800,800,800,,,800,,,,,,,800,,,800,800',
'800,800,800,800,800,800,,800,800,800,,800,800,,800,800,800,,,,,,,,,',
',,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800,,,,,,,,800,,,,,800,800',
'800,800,800,800,,,,800,800,506,506,506,,506,,,800,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,,467,,506',
',,,,467,467,467,,,467,467,467,,467,,,,,,506,,,506,467,,506,506,,,506',
',,,467,467,,467,467,467,467,467,,,,,,,,506,506,506,506,506,506,,,,506',
'506,,,,,,,,506,,,,,,,,,467,,,,,,,467,,,,,467,467,,,,,,,,,,,,,,,,,,,',
',,467,,,,,,345,345,345,,345,,,467,345,345,,,467,345,,345,345,345,345',
'345,345,345,,,,,,345,345,345,345,345,345,345,,,345,,,,,,,345,,,345,345',
'345,345,345,345,345,345,,345,345,345,,345,345,,,,345,,,,,,,,,,,,,,,',
',,,,345,,,345,,,345,345,,,345,,,,,,,,,,,,,,,,,,,345,345,345,345,345',
'345,,,,345,345,499,499,499,,499,,,345,499,499,,,,499,,499,499,499,499',
'499,499,499,,,,,,499,499,499,499,499,499,499,,,499,,,,,,,499,,,499,499',
'499,499,499,499,499,499,499,499,499,499,,499,499,,499,499,499,,,,,,',
',,,,,,,,,,,,,499,,,499,,,499,499,,,499,,499,,499,,499,,,,,,,,499,,,',
',499,499,499,499,499,499,,,,499,499,705,705,705,,705,,,499,705,705,',
',,705,,705,705,705,705,705,705,705,,,,,,705,705,705,705,705,705,705',
',,705,,,,,,,705,,,705,705,705,705,705,705,705,705,,705,705,705,,705',
'705,,705,705,705,,,,,,,,,,,,,,,,,,,,705,,,705,,,705,705,,,705,,,,,,705',
',,,,,,,705,,,,,705,705,705,705,705,705,,,,705,705,497,497,497,,497,',
',705,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,,497,497,,,,497,,,,,,,,,,,,,,,,,,,,497,,,497,,,497,497,,,497,,,',
',,,,,,,,,,,,,,,497,497,497,497,497,497,,,,497,497,343,343,343,,343,',
',497,343,343,,,,343,,343,343,343,343,343,343,343,,,,,,343,343,343,343',
'343,343,343,,,343,,,,,,,343,,,343,343,343,343,343,343,343,343,,343,343',
'343,,343,343,,470,,343,,,,,470,470,470,,,470,470,470,,470,,,,,,343,',
',343,470,,343,343,,,343,,,,470,470,,470,470,470,470,470,,,,,,,,343,343',
'343,343,343,343,,,,343,343,,,,,,,,343,,,,,,,,,470,,,,,,,470,,,,,470',
'470,,,,,,,,,,,,,,,,,,,,,,470,,,,,,481,481,481,,481,,,470,481,481,,,470',
'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,484,484,484',
',484,,,481,484,484,,,,484,,484,484,484,484,484,484,484,,,,,,484,484',
'484,484,484,484,484,,,484,,,,,,,484,,,484,484,484,484,484,484,484,484',
'484,484,484,484,,484,484,,484,484,484,,,,,,,,,,,,,,,,,,,,484,,,484,',
',484,484,,,484,,,,484,,484,,,,,,,,484,,,,,484,484,484,484,484,484,,',
',484,484,330,330,330,,330,,,484,330,330,,,,330,,330,330,330,330,330',
'330,330,,,,,,330,330,330,330,330,330,330,,,330,,,,,,,330,,,330,330,330',
'330,330,330,330,330,,330,330,330,,330,330,,330,330,330,,,,,,,,,,,,,',
',,,,,,330,,,330,,,330,330,,,330,,,,,,330,,,,,,,,330,,,,,330,330,330',
'330,330,330,,,,330,330,331,331,331,,331,,,330,331,331,,,,331,,331,331',
'331,331,331,331,331,,,,,,331,331,331,331,331,331,331,,,331,,,,,,,331',
',,331,331,331,331,331,331,331,331,,331,331,331,,331,331,,331,331,331',
',,,,,,,,,,,,,,,,,,,331,,,331,,,331,331,,,331,,,,,,331,,,,,,,,331,,,',
',331,331,331,331,331,331,,,,331,331,486,486,486,,486,,,331,486,486,',
',,486,,486,486,486,486,486,486,486,,,,,,486,486,486,486,486,486,486',
',,486,,,,,,,486,,,486,486,486,486,486,486,486,486,,486,486,486,,486',
'486,,486,486,486,,,,,,,,,,,,,,,,,,,,486,,,486,,,486,486,,,486,,,,,,486',
',,,,,,,486,,,,,486,486,486,486,486,486,,,,486,486,601,601,601,,601,',
',486,601,601,,,,601,,601,601,601,601,601,601,601,,,,,,601,601,601,601',
'601,601,601,,,601,,,,,425,,601,,,601,601,601,601,601,601,601,601,,601',
'601,601,,601,601,,601,601,601,425,425,425,425,425,425,425,425,425,425',
'425,,425,425,,,425,425,,601,,,601,,,601,601,,,601,,,425,,425,601,425',
'425,425,425,425,425,425,601,425,,,,601,601,601,601,601,601,,,,601,601',
',425,,425,,,,601,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11',
'11,11,11,11,11,11,11,,11,,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11',
',,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11',
',,11,11,,,,,,,,,,11,388,388,388,388,388,388,388,388,388,388,388,388',
'388,388,388,388,388,388,388,388,388,388,388,388,,,,388,388,388,388,388',
'388,388,388,388,388,,,,,,388,388,388,388,388,388,388,388,388,,,388,',
',,,,,,,388,388,,388,388,388,388,388,388,388,,,388,388,,,,388,388,388',
'388,,,,,,,,,,,,,,388,388,,388,388,388,388,388,388,388,388,388,388,388',
',,388,388,,,,,,,,,,388,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,,,,12,12,12,12,12,12,12,12,12,12,,,,,,12',
'12,12,12,12,12,12,12,12,,,12,,,,,,,,,12,12,,12,12,12,12,12,12,12,,,12',
'12,,,,12,12,12,12,,,,,,,,,,,,,,12,12,,12,12,12,12,12,12,12,12,12,12',
'12,,,12,12,,,,,,,,,,12,597,597,597,597,597,597,597,597,597,597,597,597',
'597,597,597,597,597,597,597,597,597,597,597,597,,,,597,597,597,597,597',
'597,597,597,597,597,,,,,,597,597,597,597,597,597,597,597,597,,,597,',
',,,,,,,597,597,,597,597,597,597,597,597,597,,,597,597,,,,597,597,597',
'597,,,,,,,,,,,,,,597,597,,597,597,597,597,597,597,597,597,597,597,597',
',,597,597,,,,,,,,,,597,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,721,721,721,721,721,721,721,721,721,721,721,721,721,721,721',
'721,721,721,721,721,721,721,721,721,,,,721,721,721,721,721,721,721,721',
'721,721,,,,,,721,721,721,721,721,721,721,721,721,,,721,,,,,,,,,721,721',
',721,721,721,721,721,721,721,,,721,721,,,,721,721,721,721,,,,,,,625',
',,,,,,721,721,,721,721,721,721,721,721,721,721,721,721,721,,,721,625',
'625,625,625,625,625,625,625,625,625,625,,625,625,,,625,625,,,,,,,,,',
',,,,,625,,625,,625,625,625,625,625,625,625,,625,434,434,,,434,,,,,,',
',,434,434,625,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',
'433,433,434,,433,,,,,,,,,433,433,,433,433,433,433,433,433,433,,,433',
'433,,,,433,433,433,433,,,,,,433,,,,,,,,433,433,,433,433,433,433,433',
'433,433,433,433,433,433,946,946,433,,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,941,941,946,,941,,,,,,',
',,941,941,,941,941,941,941,941,941,941,,,941,941,,,,941,941,941,941',
',,,,,941,,,,,,,,941,941,,941,941,941,941,941,941,941,941,941,941,941',
'203,203,941,,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,252,252,204,,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,947',
'947,252,,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,253,253,947,,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,561,561,253,,561,,,,,,,,,561,561',
',561,561,561,561,561,561,561,,,561,561,,,,561,561,561,561,,,,,,561,',
',,,,,,561,561,,561,561,561,561,561,561,561,561,561,561,561,560,560,561',
',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,710,710,560,,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,709,709,710,,709,,,,,,,,,709,709,,709,709',
'709,709,709,709,709,,,709,709,,,,709,709,709,709,,,,,,709,,,,,,,,709',
'709,,709,709,709,709,709,709,709,709,709,709,709,513,513,709,,513,,',
',,,,,,513,513,,513,513,513,513,513,513,513,,,513,513,,,,513,513,513',
'513,,,,,,513,,,,,,,,513,513,,513,513,513,513,513,513,513,513,513,513',
'513,512,512,513,,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,501,501,512,,501,,,,,,,,,501,501,,501,501',
'501,501,501,501,501,,,501,501,,,,501,501,501,501,,,,,,501,,,,,,,,501',
'501,,501,501,501,501,501,501,501,501,501,501,501,500,500,501,,500,,',
',,,,,,500,500,,500,500,500,500,500,500,500,,,500,500,,,,500,500,500',
'500,,,,,,500,,,,,,,,500,500,,500,500,500,500,500,500,500,500,500,500',
'500,,,500,737,737,737,737,737,737,737,737,737,737,737,,737,737,,,737',
'737,,,,,,,,,,,,,,,737,,737,,737,737,737,737,737,737,737,,737,266,266',
'266,266,266,266,266,266,266,266,266,,266,266,,737,266,266,,,,,,,,,,',
',,,,266,,266,,266,266,266,266,266,266,266,,266,830,830,830,830,830,830',
'830,830,830,830,830,,830,830,,266,830,830,,,,,,,,,,,,,,,830,,830,,830',
'830,830,830,830,830,830,,830,746,746,746,746,746,746,746,746,746,746',
'746,,746,746,,830,746,746,,,,,,,,,,,,,,,746,,746,,746,746,746,746,746',
'746,746,,746,732,732,732,732,732,732,732,732,732,732,732,,732,732,,746',
'732,732,,,,,,,,,,,,,,,732,,732,,732,732,732,732,732,732,732,,732,661',
'661,661,661,661,661,661,661,661,661,661,,661,661,,732,661,661,,,,,,',
',,,,,,,,661,,661,,661,661,661,661,661,661,661,,661,514,514,514,514,514',
'514,514,514,514,514,514,,514,514,,661,514,514,,,,,,,,,,,,,,,514,,514',
',514,514,514,514,514,514,514,,514,744,744,744,744,744,744,744,744,744',
'744,744,,744,744,,514,744,744,,,,,,,,,,,,,,,744,,744,,744,744,744,744',
'744,744,744,,744,742,742,742,742,742,742,742,742,742,742,742,,742,742',
',744,742,742,,,,,,,,,,,,,,,742,,742,,742,742,742,742,742,742,742,,742',
'465,465,465,465,465,465,465,465,465,465,465,,465,465,,742,465,465,,',
',,,,,,,,,,,,465,,465,,465,465,465,465,465,465,465,,465,420,420,420,420',
'420,420,420,420,420,420,420,,420,420,465,465,420,420,,,,,,,,,,,,,,,420',
',420,,420,420,420,420,420,420,420,,420,24,24,24,24,24,24,24,24,24,24',
'24,,24,24,,420,24,24,,,,,,,,,,,,,,,24,,24,,24,24,24,24,24,24,24,,24',
'739,739,739,739,739,739,739,739,739,739,739,,739,739,,24,739,739,,,',
',,,,,,,,,,,739,,739,,739,739,739,739,739,739,739,,739,833,833,833,833',
'833,833,833,833,833,833,833,,833,833,,739,833,833,,,,,,,,,,,,,,,833',
',833,,833,833,833,833,833,833,833,,833,,,,,,,,,,,,,,,,833' ]
        racc_action_check = arr = ::Array.new(23674, 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,    21,  4664,  1331,   nil,   135,   nil,   nil, 10616,  1317,
   nil, 21106, 21354,  1213,   nil,  1178,  1218,  1170,   601,  1167,
   153,   nil,   -78, 17512, 23456,  1274,   nil,   440,     2, 17010,
 16885, 16693, 16321, 15205,   nil,  3289, 14584, 14336,   nil,  1130,
   342,   -69,  1191,   601,  6775,  6403,  6279,  1118,  1069,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  1030,   nil,  5037,  5161,
  5285,    32,   nil,  5533,  5657,   nil,   nil,  5781,  5907,  1152,
   nil, 21602,   nil,   nil,   nil,   nil,   nil,   -93,   nil,   nil,
   nil,   nil,   nil,  1104,  1103, 21715,   nil,   nil,   nil,   640,
   nil,   nil,   125,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  7019,   nil,   nil,   nil,   nil,
  7143,  7267,  7391,  7515,  7639,  1120,   nil,   798,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1081,   nil,  4039,
  8259,  8383,  8507, 22181, 22242,  8879,  9003,  9127,  9251,  9375,
  9499,   nil,   nil,   389,   285,   171,  1151,    11,  1065,  1103,
   nil, 10492,  3914,  1099, 10864, 10988, 11112, 11236, 11360, 11484,
 11608, 11732, 11856, 11980, 12104, 12228, 12352, 12476, 12600, 12724,
 12848, 12972, 13096, 13220, 13344, 13468, 13592, 13716, 13840, 13964,
   nil,   nil, 22303, 22425,  1091, 14460,   nil,  1070,   nil,   nil,
   nil, 14708,   nil,   nil, 14832,   nil, 23006,   nil,  1011,  1001,
   nil, 15329,  1038, 15577,   nil,  4913,   nil,   nil,   534,   nil,
  1330, 16073,   984,  3039,   963,   990,   950, 16817,  2789,   860,
   687,   -61,  1020,   432,   nil,   978,   933,   -19,   nil,   nil,
   nil,   965,   357,   906, 18380,   nil,   510,   966,   956,   947,
   nil,   955,   nil, 19124,  1414,   371,   nil,   182,   248,   920,
   887,   nil,   421,   908,   nil,   nil,  6821,   568,   -11,    -8,
 20602, 20726,   -96,   976,   859,    40,    31,   468,   934,    30,
   963,   nil,   nil, 20173,   nil, 19677,   202,   551,   486,   200,
   518,   547,   266,   422,   345,   nil,   360,   nil,   nil,   nil,
   nil,   nil,   124,   nil,   151,   nil,   179,   nil,   858,   328,
   nil,   843,   -58,   nil,   320,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  4414, 21230,   nil,
   nil,   nil,   nil,   848,   nil,   822,   nil,  8135,   806,   nil,
  5781,   804,   nil,   nil,   800,   795,   597,   543,  6889,   nil,
   nil,   nil,     0,   515,   833,   nil,   nil,   770,   900,   nil,
 23411,   nil,   775,   nil,   nil, 20974,   nil,   nil,   nil,   nil,
    59,   nil,   815, 21998, 21937, 16445,   230, 16569, 17388, 17760,
  2914,  3039,   217,   571,   838,   822,   803,   801,  3539,  3789,
  3664,  2414,  2289,  2039,  1789,  3414,  3164,  2789,  2664,  2539,
  2164,   853,   439,  1914,  3289, 23366,   131, 19560,   nil,   nil,
 20237,   nil,   nil,   nil,   nil,   -56,   -12,   736,   734,   nil,
   nil, 20354,   nil,   nil, 20478,   nil, 20850,   nil,   nil,   nil,
  9996,  1110,   733,   707,   nil,   nil,   704, 20049,   706, 19801,
 22913, 22852,   644,   740,   nil,   nil, 19496,   690,   nil, 18876,
 18628, 18504, 22791, 22730, 23231, 18256,   797,   785,   563,   nil,
 18008,   nil,   nil, 17884,   nil,   nil,   nil,    -6,  1716,   nil,
   544,   522,   486,   nil,   nil,   nil,   nil,   nil,   nil,   472,
   nil,   774,   nil,   nil,   nil,   nil,   524,   nil,   nil,   470,
  2664,   496,   nil,  2914,    55,    24,   488,   486,   nil, 15825,
 22547, 22486,     1,   nil,   224,   263,   238,   nil,   817,   nil,
    14, 14957,   nil,   604,   nil,   nil,   nil, 14212,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   183,
   nil,   nil,   nil,   357,   nil,   372,   nil, 21478,   nil,   352,
 10120, 20974,   556,   380,  9872,  9748,  9624,  8755,   349,   nil,
   nil,   nil,  8631,  8011,   343,   nil,  7887,  6527,   nil,   nil,
   220,   212,   385,   255,   310, 21876,   267,   nil,   nil,   316,
   nil,   nil,   nil,   nil,   nil,   nil,   116,   nil,   nil,   nil,
   nil,   258,   nil,   290,  6155,   nil,   nil,   720,  -109, 15701,
   183,   nil,   164,    88,    92,   189,   225,  1038,   175,   115,
 10740, 23186,   168,   140,   -26,   166, 17264,   nil,   nil,   -67,
   nil,  2164,  1914,    43,   864,   nil,   701,   nil,   nil,   479,
 17636,   nil,   519,   nil,   -27,   380,   nil,   -36,   nil,   nil,
    32,   nil,    47,   nil,   nil,   nil,   nil,    38,   nil, 19248,
   219,    27,    25,    86,   147, 19925,   nil,   730,   nil, 22669,
 22608, 18752,   nil,   nil,   nil,   754,   541,  2539,  3664,  1466,
   695, 21828,    52,  1119,  4789,   nil,   nil,   nil,   nil,   nil,
   247,  5409, 23141,  6031,   nil,   280,   nil, 22961,   nil, 23501,
   nil,   nil, 23321,   nil, 23276,   nil, 23096, 10368, 14088, 15949,
 16197,   -49, 17140,   398,   406,   410,   nil,   432,   430,   nil,
  1275,   446,   nil,  1164,   nil,  2289,  2039,   nil,   nil,   542,
   163,   nil,   nil,   678,   nil,  1664,   561,   608,   nil,   nil,
   nil,   587,   697,   595,   611,   621,   nil,   nil,   647,   651,
   nil,   663,   nil,   667,   644,   674,   580,   nil,   796,   nil,
 19372,   813,  1289,  2414,   nil,    44,    28,    56,   354,   908,
   nil,   740,  4164, 18132,   nil,   561,   882,   883,   767,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   781,   774,   nil,
 23051, 15453, 15081, 23546,   963,   nil,   994,   nil,   nil,  1091,
   nil,   822,   803,   nil,   nil,   nil,  6651,   940,  4289,   842,
   951,   nil,  4539,   nil,   nil,    32, 10244,   nil,   nil,   nil,
   nil,   512,   nil,   nil,   448,   nil,   734,   nil,   833,   nil,
   nil,   nil,   349,  1031,   881,   nil,    -7,   nil,  1010,  1012,
 19000,  1539,   nil,   nil,  1015,   265,   nil,   nil,   nil,   nil,
 16974,   nil,   907,   911,   921,   924,   nil,   925,   nil,  1150,
   679,  1005,   nil,   952,   nil,   nil,   nil,  1789,   192,  1077,
  1142,  1032,  1167,   nil,   961,   962,   967,   982,   988,   893,
   993,  1023,  3164,   nil,   nil,   nil,    18,  3414,   nil,   nil,
  3539,  3789,  1591,   nil,   nil,  1339,   nil,  1214,   nil,   nil,
   nil, 22120,   nil,   nil,  1217,  7763, 22059, 22364,  1153,   nil,
  1311,   nil,   nil,   nil,   763,  1122,   546,   nil,   nil,   nil,
  1254,  1261,  1263,  1144,  1147,  1148,  1149,  1195,  1206,   nil,
  1172,    16,    17,    46,  1164,  1187,  1188,   nil,   nil,   nil,
   nil,   nil,  1186,   nil,   nil,   nil,    -9,   nil,  1206,   nil ]

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

clist = [
'6,209,401,557,517,424,116,198,355,286,665,212,124,124,483,472,550,553',
'105,602,408,414,376,126,126,396,313,121,121,718,786,421,529,28,798,4',
'790,104,303,28,773,754,687,262,254,260,263,533,642,645,284,642,507,874',
'28,708,282,316,321,109,845,477,28,28,28,843,28,801,757,467,470,519,522',
'755,328,329,526,363,332,365,367,370,373,365,693,696,579,121,645,28,586',
'871,108,590,28,28,896,633,28,333,635,121,267,267,267,300,300,265,276',
'277,364,570,783,572,374,855,518,330,785,802,788,382,383,384,385,331',
'803,268,268,268,920,705,927,343,812,571,28,300,631,815,681,28,28,28',
'28,28,930,637,638,345,483,717,573,721,108,317,380,269,269,269,9,890',
'574,356,597,712,9,758,848,636,645,642,642,388,342,197,955,340,842,285',
'319,324,527,793,670,318,322,326,394,399,786,851,896,419,423,251,466',
'841,810,845,402,763,475,765,940,476,766,957,699,777,314,976,361,362',
'359,366,369,409,871,589,418,790,115,372,786,822,697,723,724,375,28,28',
'28,28,673,624,28,28,28,28,28,28,751,813,784,650,892,320,2,533,408,414',
'325,28,659,577,1,,,402,,,,9,,,482,482,,,770,474,386,267,,503,,508,893',
',894,681,,,795,,28,,496,,,490,28,,533,28,398,,492,652,977,958,398,498',
'282,914,,,764,282,489,,28,726,28,262,,655,806,28,,,,,,,267,,,655,,473',
'267,,,267,,882,,,478,554,555,393,,28,931,,,,756,268,,,,,300,,,700,268',
'28,28,,556,108,285,,,740,,,,300,,745,963,655,,,603,269,315,596,,6,767',
'327,327,124,269,327,,681,,681,645,769,642,,126,,482,482,121,,609,816',
'817,,,,300,,300,424,,,28,108,595,,610,780,608,818,,285,615,883,614,',
'285,402,327,327,327,327,969,491,533,,,,626,,,409,,,418,,,,,,,,,,,,,',
'627,609,28,,609,,508,918,681,627,627,,,,,508,767,610,,632,610,,634,',
',,,778,,881,,,,402,,,,,884,,,,267,17,,,,811,,17,409,,,418,681,,681,28',
',,,,409,655,213,418,28,427,428,429,430,,213,213,213,,17,291,291,907',
',9,28,,,,,,,681,,,,402,,,,,,213,922,,300,,213,213,267,,213,337,409,300',
',418,,19,,28,,,28,19,,,986,,28,,729,,736,738,959,,124,,741,743,28,603',
'423,,,641,28,126,17,533,19,121,,213,213,213,213,17,961,962,508,,,,,759',
',,267,603,,771,627,,,28,28,482,,694,694,28,28,341,669,28,647,,,,,609',
'327,327,,713,820,,,,,774,779,,,,,610,,759,615,,,,,,,603,,,19,,,,,,774',
',774,19,,,690,,,692,,,,,28,28,17,213,213,213,,402,213,213,213,213,213',
'213,807,,300,,,829,,,409,418,,17,,300,735,,,482,,,28,121,,,,,28,,,970',
',,28,28,,16,,,431,28,759,16,,,213,,398,655,28,,213,,,213,,853,,,,857',
'19,,,,,,267,422,16,,17,,17,,603,,291,17,28,805,28,28,,19,,,814,,,,28',
'819,479,291,,876,,,,781,782,,,17,,,,,885,,,,493,,,28,,28,28,213,213',
'753,,664,,,,28,28,,,,568,,568,,,,16,,,,19,,19,,,16,,19,,,827,,,,,,,',
',,,28,,,,28,789,,,791,,,,19,17,,694,716,,,,,40,722,886,,,,40,847,,849',
'850,,28,,,300,,,,854,,,,,774,300,,,,,,,,40,289,289,,,28,,213,,,402,',
',878,879,16,603,,,,28,774,,,418,28,,409,28,28,418,19,,335,,,357,,16',
'929,,618,,28,,,,,,,,,,,,,,,,903,,,17,906,,,,,,291,40,213,,,,,,,291,40',
',,,267,,,,213,639,640,,,926,,,,327,16,,16,,,,648,16,,,,,651,,895,,,897',
',,,944,,,,17,,,17,,,,668,16,213,,956,19,,915,,960,916,,917,,213,,,,',
',213,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,213,213,,,,,213,213,,40,213,,,327',
',,19,,,19,,,,,,16,327,,,964,,,965,,966,,,,,,,,,291,,,,975,,,,,,,291',
',,,,,,,,,,17,17,,40,,40,,,,289,40,,,,988,,,422,,,,,,,,,289,,,,,,772',
',213,,40,,,,213,,,,,,17,17,,,,,,17,,797,,,,,,,213,16,,357,,357,41,,',
',19,19,41,,,,,,,,,,,,,18,,,821,,17,18,17,17,,,,,,41,290,290,17,,,,,40',
',,,,,,,,19,19,18,293,293,16,,19,16,,,213,,17,17,,336,,,358,,,,17,213',
',,,,,,,,860,,339,,,,,,,,870,,,19,,19,19,,,,41,,,,900,19,17,,,41,17,',
',,910,889,,,,18,,,,,,,,,18,,,,19,19,,,,,,17,,40,19,,,,,,289,,,,,,,,',
'289,,,,,,,,17,,,,,,,,16,16,,,,19,,17,,19,,,17,913,,17,17,,,,,41,,,,',
',,40,,213,40,,,,,,,19,,18,,,,41,,16,16,,,,,,16,,,,,,,,,,18,19,,,,,,',
',,,323,,,,,19,,,,,19,,,19,19,,,,16,,16,16,,,,,,,,41,16,41,,,,290,41',
',,,,,,,,,,,18,,18,,290,289,293,18,,16,16,,,,41,,289,,,16,,,,293,,,,40',
'40,,,,,18,,,,,,,,,,358,,358,,,,,,,,,,16,,,,16,,,569,,569,,,,,,,,,40',
'40,,,,,,40,,,675,677,678,,41,16,,,,395,,,,,,426,,,,,,,,18,,,,,,,,16',
',,,,40,,40,40,,,,,,,16,,40,,,16,,,16,16,,,,,,,,,,,,,,,,,,,,40,40,,,',
'485,,487,,488,40,,,,,,,,,,,,,,,,,,,,,,41,,,,,,,290,,,,,357,,40,,290',
',40,18,,,908,,,,293,,,,,,,,,293,,,,,,,,,,,,40,,,,,,,,,,,,,41,,,41,,',
',,,,,,,40,,,,,,18,,,18,,,,,,40,,,,,40,,,40,40,,599,,,,,,,,,,,,,,,,,835',
'837,838,,,,,,,,,,,,,,,,,,,,,,,,,,,,,862,863,,,865,867,,869,,,,,290,',
',,,,,,,,,290,,,,,,,,293,,,41,41,643,,,323,,646,293,,,,,,,,,,,18,18,',
',,,,,,,,,,,,,,,,,,,643,,,323,,41,41,,,,,,41,,,,,,,,,,,,18,18,,,,,826',
'18,,933,934,936,938,,939,,,,,,,,,,,,,41,,41,41,949,951,952,953,,,,,41',
',,220,,,,18,,18,18,266,266,266,,,,730,,18,,643,323,,310,311,312,41,41',
',,,,,,,,41,,266,266,981,983,984,985,,18,18,,,,,,987,,,18,,,,,768,,,',
',989,,,,,358,,41,,,,41,,,,909,,776,,,,,,,569,,18,,,,18,792,,,912,,,',
',,41,,,,,,,,,,426,,,,,,,,,18,,,,,,,41,,,,,,,,,,,,,,,41,828,,,18,41,',
',41,41,,,,,,,,,,18,,,,,18,,,18,18,,,,,266,400,266,,,420,425,,,,,,,,',
',,,,,,220,,,440,441,442,443,444,445,446,447,448,449,450,451,452,453',
'454,455,456,457,458,459,460,461,462,463,464,465,,,,,,266,,,,,,266,,',
'266,,,,323,,,266,,266,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,514',
',,,925,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266,,420',
'625,400,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266,,,266,,266,,,,',
',,,,,,,,266,,,,,,,,,,661,662,663,,,,,,,,,266,,,266,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266,732',
',,266,266,737,739,,,,,742,744,,,625,746,,,,,,,,,,,,,,,,,,,,,,,,,,,266',
',,,,,,,,,,,,,,,,,,,,,266,,,,,,,,,,,,,,266,,,,,,,,,,,,,,,,,,,266,,,,',
',,,,,,,266,,,,,,,,,,,,,,,,,,,,266,,830,,,,,,,,,,,,,,737,739,744,742',
',833,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,266,830,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,266' ]
        racc_goto_table = arr = ::Array.new(2943, 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,25,88,10,20,17,17,57,50,13,22,61,61,71,40,85,85,8,26,38,38,57,62',
'62,29,33,58,58,92,172,29,142,44,86,2,173,5,51,44,14,130,126,69,39,39',
'39,133,72,178,47,72,52,127,44,55,46,6,6,7,138,25,44,44,44,137,44,14',
'135,38,38,67,67,131,19,19,67,6,19,6,6,6,6,6,87,87,164,58,178,44,164',
'124,91,164,44,44,174,70,44,5,70,58,35,35,35,64,64,45,45,45,160,56,135',
'56,160,155,96,97,131,98,131,19,19,19,19,99,100,66,66,66,127,101,102',
'103,104,105,44,64,41,106,125,44,44,44,44,44,107,41,41,108,71,109,110',
'111,91,66,7,68,68,68,9,112,94,93,63,90,9,128,43,42,178,72,72,32,21,18',
'127,89,136,12,65,82,139,126,140,68,68,141,22,22,172,15,174,22,22,143',
'144,135,55,138,6,145,148,149,137,150,151,152,153,154,95,127,158,159',
'80,161,162,69,124,163,58,173,11,165,172,166,88,167,168,169,44,44,44',
'44,142,25,44,44,44,44,44,44,26,170,171,52,130,81,3,133,38,38,84,44,52',
'177,1,,,6,,,,9,,,6,6,,,26,69,9,35,,33,,50,131,,131,125,,,125,,44,,51',
',,8,44,,133,44,66,,47,25,86,14,66,47,46,131,,,41,46,5,,44,164,44,69',
',38,26,44,,,,,,,35,,,38,,45,35,,,35,,87,,,45,19,19,12,,44,92,,,,133',
'66,,,,,64,,,25,66,44,44,,5,91,12,,,40,,,,64,,40,131,38,,,33,68,31,17',
',6,71,31,31,61,68,31,,125,,125,178,52,72,,62,,6,6,58,,6,10,10,,,,64',
',64,20,,,44,91,2,,69,67,39,142,,12,69,26,39,,12,6,31,31,31,31,13,9,133',
',,,33,,,69,,,58,,,,,,,,,,,,,,6,6,44,,6,,50,125,125,6,6,,,,,50,71,69',
',39,69,,39,,,,,29,,85,,,,6,,,,,10,,,,35,24,,,,25,,24,69,,,58,125,,125',
'44,,,,,69,38,24,58,44,31,31,31,31,,24,24,24,,24,24,24,85,,9,44,,,,,',
',125,,,,6,,,,,,24,85,,64,,24,24,35,,24,24,69,64,,58,,28,,44,,,44,28',
',,26,,44,,17,,22,22,88,,61,,22,22,44,33,22,,,68,44,62,24,133,28,58,',
'24,24,24,24,24,10,10,50,,,,,6,,,35,33,,50,6,,,44,44,6,,91,91,44,44,28',
'68,44,9,,,,,6,31,31,,91,57,,,,,6,6,,,,,69,,6,69,,,,,,,33,,,28,,,,,,6',
',6,28,,,12,,,12,,,,,44,44,24,24,24,24,,6,24,24,24,24,24,24,19,,64,,',
'22,,,69,58,,24,,64,68,,,6,,,44,58,,,,,44,,,25,,,44,44,,23,,,48,44,6',
'23,,,24,,66,38,44,,24,,,24,,6,,,,6,28,,,,,,35,28,23,,24,,24,,33,,24',
'24,44,66,44,44,,28,,,91,,,,44,91,48,24,,19,,,,12,12,,,24,,,,,19,,,,48',
',,44,,44,44,24,24,129,,31,,,,44,44,,,,24,,24,,,,23,,,,28,,28,,,23,,28',
',,12,,,,,,,,,,,44,,,,44,129,,,129,,,,28,24,,91,31,,,,,53,31,91,,,,53',
'12,,12,12,,44,,,64,,,,12,,,,,6,64,,,,,,,,53,53,53,,,44,,24,,,6,,,12',
'12,23,33,,,,44,6,,,58,44,,69,44,44,58,28,,53,,,53,,23,91,,48,,44,,,',
',,,,,,,,,,,,12,,,24,12,,,,,,24,53,24,,,,,,,24,53,,,,35,,,,24,48,48,',
',12,,,,31,23,,23,,,,48,23,,,,,48,,129,,,129,,,,12,,,,24,,,24,,,,48,23',
'24,,12,28,,129,,12,129,,129,,24,,,,,,24,,,,,,,,,,,,,,,53,,,,,,,,,,,',
',,24,24,,,,,24,24,,53,24,,,31,,,28,,,28,,,,,,23,31,,,129,,,129,,129',
',,,,,,,,24,,,,129,,,,,,,24,,,,,,,,,,,24,24,,53,,53,,,,53,53,,,,129,',
',28,,,,,,,,,53,,,,,,48,,24,,53,,,,24,,,,,,24,24,,,,,,24,,48,,,,,,,24',
'23,,53,,53,54,,,,28,28,54,,,,,,,,,,,,,27,,,48,,24,27,24,24,,,,,,54,54',
'54,24,,,,,53,,,,,,,,,28,28,27,27,27,23,,28,23,,,24,,24,24,,54,,,54,',
',,24,24,,,,,,,,,48,,27,,,,,,,,48,,,28,,28,28,,,,54,,,,24,28,24,,,54',
'24,,,,24,48,,,,27,,,,,,,,,27,,,,28,28,,,,,,24,,53,28,,,,,,53,,,,,,,',
',53,,,,,,,,24,,,,,,,,23,23,,,,28,,24,,28,,,24,28,,24,24,,,,,54,,,,,',
',53,,24,53,,,,,,,28,,27,,,,54,,23,23,,,,,,23,,,,,,,,,,27,28,,,,,,,,',
',30,,,,,28,,,,,28,,,28,28,,,,23,,23,23,,,,,,,,54,23,54,,,,54,54,,,,',
',,,,,,,27,,27,,54,53,27,27,,23,23,,,,54,,53,,,23,,,,27,,,,53,53,,,,',
'27,,,,,,,,,,54,,54,,,,,,,,,,23,,,,23,,,27,,27,,,,,,,,,53,53,,,,,,53',
',,132,132,132,,54,23,,,,30,,,,,,30,,,,,,,,27,,,,,,,,23,,,,,53,,53,53',
',,,,,,23,,53,,,23,,,23,23,,,,,,,,,,,,,,,,,,,,53,53,,,,30,,30,,30,53',
',,,,,,,,,,,,,,,,,,,,,54,,,,,,,54,,,,,53,,53,,54,,53,27,,,53,,,,27,,',
',,,,,,27,,,,,,,,,,,,53,,,,,,,,,,,,,54,,,54,,,,,,,,,,53,,,,,,27,,,27',
',,,,,53,,,,,53,,,53,53,,30,,,,,,,,,,,,,,,,,132,132,132,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,132,132,,,132,132,,132,,,,,54,,,,,,,,,,,54,,,,,,,,27',
',,54,54,30,,,30,,30,27,,,,,,,,,,,27,27,,,,,,,,,,,,,,,,,,,,,30,,,30,',
'54,54,,,,,,54,,,,,,,,,,,,27,27,,,,,27,27,,132,132,132,132,,132,,,,,',
',,,,,,,54,,54,54,132,132,132,132,,,,,54,,,34,,,,27,,27,27,34,34,34,',
',,30,,27,,30,30,,34,34,34,54,54,,,,,,,,,54,,34,34,132,132,132,132,,27',
'27,,,,,,132,,,27,,,,,30,,,,,132,,,,,54,,54,,,,54,,,,54,,30,,,,,,,27',
',27,,,,27,30,,,27,,,,,,54,,,,,,,,,,30,,,,,,,,,27,,,,,,,54,,,,,,,,,,',
',,,,54,30,,,27,54,,,54,54,,,,,,,,,,27,,,,,27,,,27,27,,,,,34,34,34,,',
'34,34,,,,,,,,,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34',
'34,34,34,34,34,34,34,34,34,34,34,,,,,,34,,,,,,34,,,34,,,,30,,,34,,34',
',34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,30,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,34,34,34,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,34,,,34,,34,,,,,,,,,,,,,34,,,,,,,,,,34,34,34,,,,',
',,,,34,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,34,34,,,34,34,34,34,,,,,34,34,,,34,34,,,,,,,,',
',,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,34,,,,,,,',
',,,,,,,,,,,34,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,34,,34,,,,,,,,,,,,,,34',
'34,34,34,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,34' ]
        racc_goto_check = arr = ::Array.new(2943, 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,    33,   248,   nil,    32,    -2,    51,    13,   158,
  -310,   212,   144,  -506,  -625,  -582,   nil,    -5,   163,    11,
  -201,   106,   -12,   749,   505,  -200,  -382,  1261,   577,  -175,
  1434,   324,    57,   -21,  1997,    71,   nil,   nil,  -183,    16,
  -239,  -328,  -302,  -596,    31,    76,    21,    15,   544,   nil,
   -27,     1,  -252,   898,  1242,  -511,  -232,   -63,    16,   nil,
   nil,     1,    12,  -228,    69,   121,    96,  -246,   126,    14,
  -370,  -255,  -433,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   143,   187,   120,   nil,   190,  -312,  -656,  -470,  -330,   109,
  -405,    87,  -544,    92,  -194,   153,  -199,    52,  -574,    59,
  -570,  -432,  -750,    64,  -578,  -209,  -577,  -740,    79,  -421,
  -203,  -421,  -659,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  -703,  -401,  -499,  -743,  -462,   208,
  -588,  -556,  1095,  -279,   nil,  -561,  -582,  -695,  -700,  -144,
  -343,   125,  -294,   170,   -54,  -430,   nil,   nil,   -56,  -434,
   -54,  -432,  -719,  -350,  -457,  -662,   nil,   nil,   135,   134,
    29,   133,   133,  -150,  -276,   139,  -498,  -354,  -354,   144,
  -471,  -430,  -644,  -640,  -740,   nil,   nil,  -105,  -435 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   279,     7,   334,   280,
   nil,   nil,   516,   nil,   799,   nil,   278,   nil,   nil,   nil,
    14,    15,    21,   219,   309,   nil,   nil,   217,   218,   nil,
   272,    20,   nil,   432,    24,    25,    26,    27,   658,   nil,
   nil,   nil,   nil,   nil,   297,   403,    34,   nil,   nil,    36,
    39,    38,   nil,   214,   215,   567,   nil,   123,   411,   122,
   125,    75,    76,   nil,    48,   nil,   404,   nil,   405,   416,
   611,   480,   270,   255,    49,    50,    51,    52,    53,    54,
    55,   nil,   256,    61,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   551,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   683,   540,   nil,   684,   nil,   530,
   nil,   532,   nil,   787,   628,   nil,   nil,   nil,   538,   nil,
   nil,   nil,   720,   nil,   nil,   nil,   415,   257,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    74,    77,    78,   nil,
   nil,   nil,   nil,   nil,   584,   nil,   nil,   nil,   nil,   nil,
   nil,   531,   542,   543,   762,   546,   549,   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,
  3, 201, :_reduce_287,
  1, 201, :_reduce_288,
  4, 201, :_reduce_289,
  3, 201, :_reduce_290,
  1, 201, :_reduce_291,
  5, 201, :_reduce_292,
  4, 201, :_reduce_293,
  3, 201, :_reduce_294,
  2, 201, :_reduce_295,
  1, 201, :_reduce_none,
  2, 201, :_reduce_297,
  2, 201, :_reduce_298,
  6, 201, :_reduce_299,
  6, 201, :_reduce_300,
  0, 234, :_reduce_301,
  0, 235, :_reduce_302,
  7, 201, :_reduce_303,
  0, 236, :_reduce_304,
  0, 237, :_reduce_305,
  7, 201, :_reduce_306,
  5, 201, :_reduce_307,
  4, 201, :_reduce_308,
  0, 238, :_reduce_309,
  0, 239, :_reduce_310,
  9, 201, :_reduce_311,
  0, 240, :_reduce_312,
  0, 241, :_reduce_313,
  7, 201, :_reduce_314,
  0, 242, :_reduce_315,
  0, 243, :_reduce_316,
  0, 244, :_reduce_317,
  9, 201, :_reduce_318,
  0, 245, :_reduce_319,
  0, 246, :_reduce_320,
  6, 201, :_reduce_321,
  0, 247, :_reduce_322,
  6, 201, :_reduce_323,
  0, 248, :_reduce_324,
  0, 249, :_reduce_325,
  9, 201, :_reduce_326,
  1, 201, :_reduce_327,
  1, 201, :_reduce_328,
  1, 201, :_reduce_329,
  1, 201, :_reduce_330,
  1, 161, :_reduce_331,
  1, 250, :_reduce_none,
  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, 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_349,
  1, 151, :_reduce_none,
  2, 151, :_reduce_351,
  1, 226, :_reduce_none,
  1, 226, :_reduce_353,
  1, 261, :_reduce_none,
  3, 261, :_reduce_355,
  1, 264, :_reduce_356,
  3, 264, :_reduce_357,
  1, 263, :_reduce_358,
  4, 263, :_reduce_359,
  6, 263, :_reduce_360,
  3, 263, :_reduce_361,
  5, 263, :_reduce_362,
  2, 263, :_reduce_363,
  4, 263, :_reduce_364,
  1, 263, :_reduce_365,
  3, 263, :_reduce_366,
  6, 265, :_reduce_367,
  8, 265, :_reduce_368,
  4, 265, :_reduce_369,
  6, 265, :_reduce_370,
  4, 265, :_reduce_371,
  2, 265, :_reduce_372,
  6, 265, :_reduce_373,
  2, 265, :_reduce_374,
  4, 265, :_reduce_375,
  6, 265, :_reduce_376,
  2, 265, :_reduce_377,
  4, 265, :_reduce_378,
  2, 265, :_reduce_379,
  4, 265, :_reduce_380,
  1, 265, :_reduce_381,
  1, 178, :_reduce_382,
  1, 178, :_reduce_none,
  3, 271, :_reduce_384,
  1, 271, :_reduce_385,
  4, 271, :_reduce_386,
  1, 272, :_reduce_none,
  2, 272, :_reduce_388,
  1, 273, :_reduce_389,
  3, 273, :_reduce_390,
  1, 274, :_reduce_391,
  1, 274, :_reduce_none,
  0, 278, :_reduce_393,
  3, 221, :_reduce_394,
  4, 276, :_reduce_395,
  1, 276, :_reduce_396,
  3, 277, :_reduce_397,
  3, 277, :_reduce_398,
  0, 281, :_reduce_399,
  0, 282, :_reduce_400,
  6, 280, :_reduce_401,
  2, 174, :_reduce_402,
  4, 174, :_reduce_403,
  4, 174, :_reduce_404,
  0, 284, :_reduce_405,
  3, 220, :_reduce_406,
  4, 220, :_reduce_407,
  4, 220, :_reduce_408,
  3, 220, :_reduce_409,
  3, 220, :_reduce_410,
  3, 220, :_reduce_411,
  2, 220, :_reduce_412,
  1, 220, :_reduce_413,
  4, 220, :_reduce_414,
  0, 285, :_reduce_415,
  0, 286, :_reduce_416,
  6, 219, :_reduce_417,
  0, 287, :_reduce_418,
  0, 288, :_reduce_419,
  6, 219, :_reduce_420,
  0, 290, :_reduce_421,
  6, 225, :_reduce_422,
  1, 289, :_reduce_none,
  1, 289, :_reduce_none,
  6, 150, :_reduce_425,
  0, 150, :_reduce_426,
  1, 291, :_reduce_427,
  1, 291, :_reduce_none,
  1, 291, :_reduce_none,
  2, 292, :_reduce_430,
  1, 292, :_reduce_none,
  2, 152, :_reduce_432,
  1, 152, :_reduce_none,
  1, 211, :_reduce_434,
  1, 211, :_reduce_435,
  1, 211, :_reduce_none,
  1, 212, :_reduce_437,
  1, 294, :_reduce_none,
  2, 294, :_reduce_439,
  3, 295, :_reduce_440,
  1, 295, :_reduce_441,
  3, 213, :_reduce_442,
  3, 214, :_reduce_443,
  3, 215, :_reduce_444,
  3, 215, :_reduce_445,
  1, 299, :_reduce_446,
  3, 299, :_reduce_447,
  1, 300, :_reduce_none,
  2, 300, :_reduce_449,
  3, 216, :_reduce_450,
  3, 216, :_reduce_451,
  1, 302, :_reduce_452,
  3, 302, :_reduce_453,
  1, 296, :_reduce_454,
  2, 296, :_reduce_455,
  1, 297, :_reduce_456,
  2, 297, :_reduce_457,
  1, 298, :_reduce_458,
  2, 298, :_reduce_459,
  1, 301, :_reduce_460,
  0, 304, :_reduce_461,
  3, 301, :_reduce_462,
  0, 305, :_reduce_463,
  4, 301, :_reduce_464,
  1, 303, :_reduce_465,
  1, 303, :_reduce_466,
  1, 303, :_reduce_467,
  1, 303, :_reduce_none,
  2, 198, :_reduce_469,
  1, 198, :_reduce_470,
  1, 306, :_reduce_none,
  1, 306, :_reduce_none,
  1, 306, :_reduce_none,
  1, 306, :_reduce_none,
  3, 199, :_reduce_475,
  1, 293, :_reduce_none,
  1, 293, :_reduce_none,
  2, 293, :_reduce_478,
  2, 293, :_reduce_479,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 191, :_reduce_485,
  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, 217, :_reduce_492,
  1, 217, :_reduce_493,
  1, 160, :_reduce_494,
  1, 160, :_reduce_495,
  1, 164, :_reduce_496,
  1, 164, :_reduce_497,
  1, 227, :_reduce_498,
  0, 307, :_reduce_499,
  4, 227, :_reduce_500,
  2, 227, :_reduce_501,
  3, 229, :_reduce_502,
  2, 229, :_reduce_503,
  6, 279, :_reduce_504,
  8, 279, :_reduce_505,
  4, 279, :_reduce_506,
  6, 279, :_reduce_507,
  4, 279, :_reduce_508,
  6, 279, :_reduce_509,
  2, 279, :_reduce_510,
  4, 279, :_reduce_511,
  6, 279, :_reduce_512,
  2, 279, :_reduce_513,
  4, 279, :_reduce_514,
  2, 279, :_reduce_515,
  4, 279, :_reduce_516,
  1, 279, :_reduce_517,
  0, 279, :_reduce_518,
  1, 275, :_reduce_519,
  1, 275, :_reduce_520,
  1, 275, :_reduce_521,
  1, 275, :_reduce_522,
  1, 262, :_reduce_none,
  1, 262, :_reduce_524,
  1, 309, :_reduce_none,
  3, 309, :_reduce_526,
  1, 266, :_reduce_527,
  3, 266, :_reduce_528,
  3, 310, :_reduce_529,
  3, 311, :_reduce_530,
  1, 267, :_reduce_531,
  3, 267, :_reduce_532,
  1, 308, :_reduce_533,
  3, 308, :_reduce_534,
  1, 312, :_reduce_none,
  1, 312, :_reduce_none,
  2, 268, :_reduce_537,
  1, 268, :_reduce_538,
  1, 313, :_reduce_none,
  1, 313, :_reduce_none,
  2, 270, :_reduce_541,
  2, 269, :_reduce_542,
  0, 269, :_reduce_543,
  1, 230, :_reduce_none,
  0, 314, :_reduce_545,
  4, 230, :_reduce_546,
  1, 218, :_reduce_547,
  2, 218, :_reduce_548,
  1, 205, :_reduce_none,
  3, 205, :_reduce_550,
  3, 315, :_reduce_551,
  2, 315, :_reduce_552,
  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, 283, :_reduce_none,
  1, 283, :_reduce_none,
  1, 283, :_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_574,
  1, 228, :_reduce_none,
  1, 145, :_reduce_none,
  2, 145, :_reduce_577,
  0, 143, :_reduce_578 ]

racc_reduce_n = 579

racc_shift_n = 990

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",
  "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",
  "@26",
  "f_args",
  "do_block",
  "@27",
  "@28",
  "operation3",
  "@29",
  "@30",
  "@31",
  "@32",
  "@33",
  "cases",
  "@34",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "qword_list",
  "string_dvar",
  "@35",
  "@36",
  "sym",
  "@37",
  "f_optarg",
  "f_arg_item",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "@38",
  "assoc" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

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

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

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

# reduce 4 omitted

# reduce 5 omitted

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

# reduce 7 omitted

# 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 = self.node_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 = self.node_assign val[0], val[2]
                    
    result
end

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

# reduce 44 omitted

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

def _reduce_46(val, _values, result)
                      result = logop(: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][1..-1]
                      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][1..-1]
                      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][1..-1]
                      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][1..-1]
                      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 = self.node_assign val[0], val[2]
                    
    result
end

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

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

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

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

def _reduce_200(val, _values, result)
                      result = 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 Fixnum === v1.last and Fixnum === v2.last then
                        result = s(:lit, (v1.last)..(v2.last))
                      else
                        result = s(:dot2, v1, v2)
                      end
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_215(val, _values, result)
                      result = new_call(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 = self.get_match_node val[0], val[2]
                    
    result
end

def _reduce_230(val, _values, result)
                      result = s(:not, self.get_match_node(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 = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_236(val, _values, result)
                      result = logop(: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][1..-1]) # 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 = s(:hash, *val[1].values)
                    
    result
end

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

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

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

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

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

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

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

def _reduce_295(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 296 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_320(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_321(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_322(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_323(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_324(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = :expr_fname
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 332 omitted

# 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

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

# reduce 350 omitted

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

# reduce 352 omitted

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

# reduce 354 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

                      result = block_var args, :*, args2
                    
    result
end

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

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

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

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

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

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

                      result = block_var :*, args
                    
    result
end

def _reduce_367(val, _values, result)
                      result = args val
                    
    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 = 0 
    result
end

# reduce 383 omitted

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

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

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

# reduce 387 omitted

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

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

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

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

# reduce 392 omitted

def _reduce_393(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_394(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_395(val, _values, result)
                      result = args val
                    
    result
end

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

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

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

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

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

def _reduce_401(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_402(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_403(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    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 = self.lexer.lineno
                    
    result
end

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

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

def _reduce_410(val, _values, result)
                      result = new_call val[0], :call, val[2]
                    
    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_super val[1]
                    
    result
end

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

# reduce 423 omitted

# reduce 424 omitted

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

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

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

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

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

# reduce 428 omitted

# reduce 429 omitted

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

# reduce 431 omitted

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

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

# reduce 433 omitted

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

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

# reduce 436 omitted

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

# reduce 438 omitted

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

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

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

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

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

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

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

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

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

# reduce 448 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_463(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_464(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[0]
                        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_465(val, _values, result)
 result = s(:gvar, val[0].to_sym) 
    result
end

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

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

# reduce 468 omitted

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

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

# reduce 471 omitted

# reduce 472 omitted

# reduce 473 omitted

# reduce 474 omitted

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

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

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

# reduce 476 omitted

# reduce 477 omitted

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

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

# reduce 480 omitted

# reduce 481 omitted

# reduce 482 omitted

# reduce 483 omitted

# reduce 484 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_504(val, _values, result)
                      result = args val
                    
    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)
                      yyerror "formal argument cannot be a constant"
                    
    result
end

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

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

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

# reduce 523 omitted

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

                      result = identifier
                    
    result
end

# reduce 525 omitted

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

def _reduce_527(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_528(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_529(val, _values, result)
                      result = self.assignable val[0], val[2]
                      # TODO: detect duplicate names
                    
    result
end

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

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

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

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

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

# reduce 535 omitted

# reduce 536 omitted

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

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

# reduce 539 omitted

# reduce 540 omitted

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

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

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

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

# reduce 544 omitted

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

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

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

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

# reduce 549 omitted

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

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

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

# reduce 553 omitted

# 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

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

# reduce 575 omitted

# reduce 576 omitted

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

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

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

end   # class Ruby19Parser
