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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-604,-101,605,-102,-100,579,271,-604,-604,-604,750,271,-604,-604,-604',
'271,-604,221,660,621,-103,-84,-103,-612,998,-604,-604,-604,-604,-100',
'83,579,660,579,-70,579,-604,-604,84,-604,-604,-604,-604,-604,579,271',
'-98,741,-99,218,219,742,659,222,-106,-102,702,730,222,-105,-101,112',
'660,607,606,618,659,-604,-604,-604,-604,-604,-604,-604,-604,-604,-604',
'-604,-604,-604,-604,-600,620,-604,-604,-604,730,786,-604,730,-104,-604',
'209,270,-604,-604,659,-604,270,-604,210,-604,270,-604,-604,-604,-604',
'-604,-604,-604,-418,-604,-604,-604,-94,-101,749,-102,-100,116,-101,-600',
'-102,-100,115,-94,-604,-604,-604,-604,-604,-604,270,-604,-91,116,-103',
'-604,-604,-604,115,-103,-102,-604,-604,116,-604,116,932,116,115,-89',
'115,-90,115,-604,-601,116,116,-97,-93,701,115,115,-96,-92,-604,-604',
'211,-604,-604,-604,-604,-604,116,218,219,218,219,115,-280,-94,-92,218',
'219,624,116,-280,217,116,605,115,785,660,115,-95,-280,-604,-604,-604',
'-604,-604,-604,-604,-604,-604,-604,-604,-604,-604,-604,637,261,-604',
'-604,-604,-94,644,318,-94,880,-604,94,95,-604,94,95,659,319,-604,-427',
'-604,-94,-604,-604,-604,-604,-604,-604,-604,116,-604,-604,-604,222,115',
'605,-103,623,-92,-597,607,606,-92,355,-289,-604,-604,784,-93,762,-604',
'-289,-289,-289,222,-101,222,-289,-289,379,-289,-102,222,560,-100,557',
'556,555,-512,558,-518,605,-427,-92,610,-512,-92,-598,382,-427,-289,-289',
'385,-289,-289,-289,-289,-289,-427,-92,96,97,-504,96,97,406,607,606,605',
'-504,408,407,-101,-604,-597,760,-427,-519,-504,575,574,-289,-289,-289',
'-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-98,-597,-289',
'-289,-289,-507,643,607,606,-604,-289,388,-507,-289,116,404,844,-598',
'-289,115,-289,-507,-289,-289,-289,-289,-289,-289,-289,409,-289,-604',
'-289,453,607,606,613,-99,-604,-598,605,455,454,-600,-504,-289,-289,-604',
'-95,116,-289,-504,-504,-504,115,564,-504,-504,-504,456,-504,-104,-604',
'221,564,-604,567,487,-504,-604,-504,-504,-504,537,-600,567,539,273,-604',
'525,-504,-504,215,-504,-504,-504,-504,-504,560,1009,557,556,555,818',
'558,585,-604,-106,1007,575,574,607,606,603,638,116,605,497,575,574,115',
'-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504',
'218,219,-504,-504,-504,-509,-504,-504,568,-105,-504,605,-509,-504,-504',
'-519,-504,568,-504,500,-504,-94,-504,-504,-504,-504,-504,-504,-504,502',
'-504,222,-504,560,-103,557,556,555,564,558,-69,978,607,606,608,-504',
'-504,-504,-504,567,-504,-507,-504,216,-518,525,770,-90,-507,-507,-507',
'-504,222,-507,-507,-507,511,-507,242,-517,-99,562,607,606,625,-507,-517',
'-507,-507,-507,512,116,575,574,116,-517,115,-507,-507,115,-507,-507',
'-507,-507,-507,-97,-89,-96,-91,222,239,519,1002,276,241,240,237,238',
'-106,-98,-105,-100,537,222,537,539,568,536,-507,-507,-507,-507,-507',
'-507,-507,-507,-507,-507,-507,-507,-507,-507,273,-290,-507,-507,-507',
'-516,-507,-507,-290,522,-507,526,-516,-507,-507,242,-507,-290,-507,534',
'-507,-516,-507,-507,-507,-507,-507,-507,-507,540,-507,585,-507,560,-510',
'557,556,555,564,558,537,-510,398,539,589,-507,-507,-507,-507,567,-507',
'-289,-507,218,219,-511,848,818,-289,-289,-289,-507,-511,-289,-289,-289',
'560,-289,557,556,555,562,558,848,818,218,219,-289,-289,-289,572,571',
'575,574,590,612,616,-289,-289,264,-289,-289,-289,-289,-289,619,265,622',
'629,560,-507,557,556,555,716,558,560,-507,557,556,555,-262,558,719,631',
'222,568,635,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,636,242,-289,-289,-289,716,787,-289,-504,273,-289,647,716',
'-289,-289,-504,-289,242,-289,242,-289,719,-289,-289,-289,-289,-289,-289',
'-289,-514,-289,242,-289,239,-513,215,-514,241,240,237,238,-513,959,242',
'222,-289,-289,-289,-289,222,-289,746,-289,294,72,73,74,12,60,264,222',
'-104,66,67,-84,678,265,70,222,68,69,71,33,34,75,76,119,120,121,122,123',
'32,31,30,104,103,105,106,871,872,22,-515,873,110,111,648,11,48,-515',
'13,108,107,109,98,59,100,99,101,530,102,110,111,689,94,95,694,45,46',
'44,242,246,251,252,253,248,250,258,259,254,255,695,235,236,-337,698',
'256,257,502,43,704,-337,36,707,708,61,62,242,710,63,-337,38,239,712',
'245,47,241,240,237,238,249,247,243,23,244,714,722,723,91,83,85,86,87',
'89,724,726,585,84,92,239,260,733,-239,241,240,65,763,764,81,88,90,765',
'-263,96,97,294,72,73,74,12,60,771,487,215,66,67,487,222,789,70,451,68',
'69,71,33,34,75,76,261,452,500,502,689,32,31,30,104,103,105,106,222,273',
'22,273,689,242,818,648,11,48,222,13,108,107,109,98,59,100,99,101,222',
'102,110,111,842,94,95,222,45,46,44,242,246,251,252,253,248,250,258,259',
'254,255,818,235,236,215,852,256,257,222,43,-264,588,296,879,882,61,62',
'242,707,63,586,38,239,885,245,47,241,240,237,238,249,247,243,23,244',
'888,890,892,91,83,85,86,87,89,222,215,894,84,92,239,260,895,528,241',
'240,65,689,903,81,88,90,452,-262,96,97,294,72,73,74,12,60,907,909,-290',
'66,67,910,222,707,70,-290,68,69,71,33,34,75,76,913,-290,915,917,919',
'32,31,30,104,103,105,106,919,222,22,925,927,929,222,632,11,48,939,13',
'108,107,109,98,59,100,99,101,940,102,110,111,222,94,95,943,45,46,44',
'242,246,251,252,253,248,250,258,259,254,255,215,235,236,215,-265,256',
'257,744,43,953,959,36,960,961,61,62,746,963,63,746,38,239,964,245,47',
'241,240,237,238,249,247,243,23,244,980,982,-289,91,83,85,86,87,89,-289',
'-280,983,84,92,-601,260,987,-280,-289,707,65,992,994,81,88,90,-280,996',
'96,97,294,72,73,74,12,60,998,998,215,66,67,1005,1010,1011,70,518,68',
'69,71,33,34,75,76,919,516,919,919,1016,32,31,30,104,103,105,106,980',
'956,22,557,556,555,-601,558,11,48,-600,13,108,107,109,98,59,100,99,101',
'694,102,110,111,980,94,95,1039,45,46,44,242,246,251,252,253,248,250',
'258,259,254,255,-517,235,236,-516,1040,256,257,-517,43,1041,-516,36',
'1042,998,61,62,-517,998,63,-516,38,239,998,245,47,241,240,237,238,249',
'247,243,23,244,222,919,-289,91,83,85,86,87,89,-289,-289,980,84,92,-601',
'260,3,-289,-289,,65,,-601,81,88,90,-289,,96,97,294,72,73,74,12,60,,',
'215,66,67,,,,70,214,68,69,71,33,34,75,76,,212,,,,32,31,30,104,103,105',
'106,,956,22,557,556,555,,558,11,48,,13,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254',
'255,-290,235,236,,,256,257,-290,43,,,36,,,61,62,-290,,63,,38,239,,245',
'47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92',
',260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,119,120,121,122,123,32,31,30,104,103,105,106,,,22',
'119,120,121,122,123,11,48,,13,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235',
'236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238',
'249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,222,260,,,,,65,,,81',
'88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
'119,120,121,122,123,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252',
'253,248,250,258,259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63',
',38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87',
'89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,8,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
'11,48,10,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46',
'44,242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256,257,,43',
',,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72',
'73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236',
',,256,257,,43,,,296,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249',
'247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90',
',,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258',
'259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47',
'241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260',
',,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253',
'248,250,258,259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89',
',,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
'11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256,257,,43,',
',36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72',
'73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236',
',,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249',
'247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90',
',,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258',
'259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47',
'241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260',
',,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253',
'248,250,258,259,254,255,,235,236,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89',
',,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,',
'11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,246,251,252,253,248,250,258,259,254,255,,235,236,,,256,257,,43,',
',36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90,,,96,97,294,72',
'73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,246,251,252,253,248,250,258,259,254,255,,235,236',
',,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249',
'247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,260,,,,,65,,,81,88,90',
',,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,560,22,557,556,555,,558,11,48,,13,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,560,,557,556,555',
',558,560,716,557,556,555,,558,,,,924,,43,,,36,242,,61,62,,,63,,38,,',
',47,,,716,256,257,,,23,,716,,,91,83,85,86,87,89,,239,,84,92,241,240',
'237,238,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,560,22,557,556,555',
',558,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,242,-624,-624,-624,-624,248,250,,716,-624,-624,,,,,,256,257,,43',
',,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,249,247,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,560,,557,556,555,65,558,,81,88,90,,,96',
'97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,716,,,,,32',
'31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,242,-624,-624,-624,-624,248,250,,,-624',
'-624,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,',
',,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258',
'259,254,255,,-624,-624,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245',
'47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,-624,-624',
'-624,-624,248,250,,,-624,-624,,,,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11',
'48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242',
'246,251,252,253,248,250,258,,254,255,,,,,,256,257,,43,,,36,,,61,62,',
',63,,38,239,,245,47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46',
'44,242,,,,,,,,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47',
'241,240,237,238,,,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248',
'250,,,254,255,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241',
'240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,,,,,,,,,,,,,,,,256',
'257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237,238,,,243,23,244',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,8,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,22,,,,,,11,48,10,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38',
'239,,245,47,241,240,237,238,,,243,23,244,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,,,,,',
',,,,,,,,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241,240,237',
'238,,,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,',
',96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,',
'32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,242,246,251,252,253,248,250,258,259',
'254,255,,-624,-624,,,256,257,,43,,,36,,,61,62,,,63,,38,239,,245,47,241',
'240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,294,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242,-624,-624,-624,-624',
'248,250,,,-624,-624,,,,,,256,257,,43,,,296,,,61,62,,,63,,38,239,,245',
'47,241,240,237,238,249,247,243,23,244,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,242,-624,-624,-624',
'-624,248,250,,,-624,-624,,,,,,256,257,,227,,,233,,,61,62,,,63,,285,239',
'283,245,47,241,240,237,238,249,247,243,232,244,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,242',
'-624,-624,-624,-624,248,250,,,-624,-624,,,,,,256,257,,227,,,233,,,61',
'62,,,63,,,239,,245,47,241,240,237,238,249,247,243,232,244,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
'242,,,,,,,,,,,,,,,,256,257,,227,,,233,,,61,62,,,63,,,239,,245,47,241',
'240,237,238,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,242,,,,,,,,,,,,,,,,256,257,,227,,,233',
',,61,62,,,63,,,239,,245,47,241,240,237,238,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48',
',13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,',
',,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,315',
',,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,300,,,,,,,,,,,,,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,',
'234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,',
'315,,,,,,,,,,,,,,,,,,,,305,,,233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83',
'85,86,87,89,,,,84,92,,,,317,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,233,,,61,62,,,63,,,,,,,,,,,,',
',,,,,,91,83,85,86,87,89,,,,84,92,,,,514,,,65,,,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,',
',233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,',
',,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,283,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,',
'102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,897,,,233,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,',
'63,,672,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312',
'75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,',
',,,,,,,,,,,,,,,,,970,,,233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,768,,,,47,,,,,,,,232,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,672,,,,47',
',,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,',
',,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,116,,,,',
'115,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,349',
',,36,,,61,62,,,63,,38,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,',
',,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,10,13,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,',
'84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,414,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76',
',,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233',
',,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312',
'75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305',
',,301,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312',
'75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,',
'47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,222,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106',
',,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,',
',,315,,,,,,,,,,,,,,,,,,,,897,,,233,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47',
',,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308',
'314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,',
'47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38',
',,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,398,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,',
'63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312',
'75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227',
',,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,',
',,,,,,,,,227,,,233,,,61,62,,,63,,,,283,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234',
',,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,672,,283,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,,,47',
',,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285',
',,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307',
'308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,',
',63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101',
'287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62',
',,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75',
'76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,591',
'59,100,99,592,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,593,,,233',
',,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76',
',,,,,307,308,314,104,103,105,106,,,234,,,,,,,309,,,108,107,109,591,59',
'100,99,592,,102,110,111,,94,95,,,,315,,,,,,,,,,,,,,,,,,,,593,,,233,',
',61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,',
',,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61',
'62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,10,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36',
',,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',398,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311',
'312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48',
',,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,530,,61,62,,,63,,,,,,47,,,,,',
',,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,',
',,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,222,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,414,,,,47',
',,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,',
',,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314',
'104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,',
',,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,',
'307,308,314,104,103,105,106,,,234,,,,,,,48,,,108,107,109,98,59,100,99',
'101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,',
'61,62,,,63,,672,,,,47,,,,,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,234,,,,,,,48,,,108,107,109',
'98,59,100,99,101,287,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,',
',227,,,233,,,61,62,,,63,,285,,283,,47,,,,,,,,232,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105,106,,,234,,',
',,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103,105',
'106,,,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,414,,,,47,,,,,,,,232',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,311,312,75,76,,,,,,307,308,314,104,103',
'105,106,,,234,,,,,,,309,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,61,62,,,63,,,,,,,,,,,,',
',,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,234,,,,,,,48,,,108,107,109,98,59,100,99,101,287,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,227,,,233,,,61,62,,,63,,285,,283,,47,,',
',,,,,232,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,288,81,88,90,-606',
',96,97,,,,-606,-606,-606,,,-606,-606,-606,560,-606,557,556,555,564,558',
',,,-606,-606,-606,-606,,,567,,,,,-606,-606,,-606,-606,-606,-606,-606',
',,,,,,,,,562,,,,,,,,,,,575,574,,-606,-606,-606,-606,-606,-606,-606,-606',
'-606,-606,-606,-606,-606,-606,,,-606,-606,-606,,,-606,,,-606,,,-606',
'-606,,-606,568,-606,,-606,,-606,-606,-606,-606,-606,-606,-606,,-606',
'-606,-606,,,,,,,,,,,,,-606,-606,-606,-606,-605,-606,,-606,,,,-605,-605',
'-605,,,-605,-605,-605,560,-605,557,556,555,564,558,,,,-605,-605,-605',
'-605,,,567,,,,,-605,-605,,-605,-605,-605,-605,-605,,,,,,,,,,562,,,,',
',,,,572,571,575,574,,-605,-605,-605,-605,-605,-605,-605,-605,-605,-605',
'-605,-605,-605,-605,,,-605,-605,-605,,,-605,,,-605,,,-605,-605,,-605',
'568,-605,,-605,,-605,-605,-605,-605,-605,-605,-605,,-605,-605,-605,',
',,,,,,,,,,,-605,-605,-605,-605,-281,-605,,-605,,,,-281,-281,-281,,,-281',
'-281,-281,560,-281,557,556,555,564,558,,,,,-281,-281,-281,,,567,,,,',
'-281,-281,,-281,-281,-281,-281,-281,,,,,,,,,,562,,,,,,,,,572,571,575',
'574,,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281',
'-281,,,-281,-281,-281,,,-281,,,-281,,,-281,-281,,-281,568,-281,,-281',
',-281,-281,-281,-281,-281,-281,-281,,-281,,-281,,,,,,,,,,,,,-281,-281',
'-281,-281,,-281,,-281,176,187,177,200,173,193,183,182,203,204,198,181',
'180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,196,189',
'199,184,172,191,190,,,,,,171,178,169,170,166,167,168,127,129,,,128,',
',,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163,164,149',
'150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177,200,173,193,183,182,203',
'204,198,181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202',
'197,196,189,199,184,172,191,190,,,,,,171,178,169,170,166,167,168,127',
'129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,',
'163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146,144',
'136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177,200,173,193',
'183,182,203,204,198,181,180,175,201,205,206,185,174,188,192,194,186',
'179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178,169,170',
'166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145,147',
',,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,,,,,,,,,,,,,,,,158,176,187,177,200',
'173,193,183,182,203,204,198,181,180,175,201,205,206,185,174,188,192',
'194,186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178',
'169,170,166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148',
'145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156',
'155,151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176',
'187,177,200,173,193,183,182,203,204,198,181,180,175,201,205,206,185',
'174,188,192,194,186,179,,,,195,202,197,196,189,199,184,172,191,190,',
',,,,171,178,169,170,166,167,168,127,129,395,394,128,,396,,,,,,,161,162',
',157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,',
',,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,,',
',,,,,,,,,,,,,158,176,187,177,200,173,193,183,182,203,204,198,181,180',
'175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,196,189,199',
'184,172,191,190,,,,,,171,178,169,170,166,167,168,127,129,126,,128,,',
',,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163,164,149',
'150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177,200,173,193,183,182,203',
'204,198,181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202',
'197,364,363,365,362,172,191,190,,,,,,171,178,169,170,359,360,361,357',
'129,100,99,358,,102,,,,,,,161,162,,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,371,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,-426,,165,,,,,-426,-426,-426,,,-426,-426,-426',
'560,-426,557,556,555,564,558,158,,,-426,-426,-426,,,,567,,,,,-426,-426',
',-426,-426,-426,-426,-426,,,,,,,,,,562,,,,,,,,,,,575,574,,-426,-426',
'-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,,,-426,-426',
'-426,,,-426,,273,-426,,,-426,-426,,-426,568,-426,,-426,,-426,-426,-426',
'-426,-426,-426,-426,,-426,-426,-426,,,,,,,,,,,,-297,-426,-426,,-426',
',-426,-297,-297,-297,,,-297,-297,-297,560,-297,557,556,555,564,558,',
',,,-297,-297,,,,567,,,,,-297,-297,,-297,-297,-297,-297,-297,,,,,,,,',
',562,754,,,,,,,,572,571,575,574,,-297,-297,-297,-297,-297,-297,-297',
'-297,-297,-297,-297,-297,-297,-297,,,-297,-297,-297,,,-297,,276,-297',
',,-297,-297,,-297,568,-297,,-297,,-297,-297,-297,-297,-297,-297,-297',
',-297,,-297,,,,,,,,,,,,-623,-297,-297,,-297,,-297,-623,-623,-623,,,-623',
'-623,-623,560,-623,557,556,555,564,558,,,,-623,-623,,,,,567,,,,,-623',
'-623,,-623,-623,-623,-623,-623,,,,,,,,,,562,,,,,,,,,572,571,575,574',
',-623,,,,,,,-623,-623,-623,,-623,-623,-623,-623,,-623,,-623,,,,,273',
'-623,-623,-623,-623,,,,568,,,,,-623,-623,,-623,-623,-623,-623,-623,',
'-623,-623,,,,,,,,,,,,,-623,,,,,-623,,,-623,-623,-623,-623,-623,-623',
'-623,-623,-623,-623,-623,-623,-623,-623,,,-623,-623,-623,,,-623,,273',
'-623,,,-623,-623,,-623,,-623,,-623,,-623,-623,-623,-623,-623,-623,-623',
',-623,-623,-623,,,,,,682,428,,,683,,,-623,-623,,-623,,-623,161,162,',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,',
'685,435,,,686,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,650,428,,,651,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,',
'652,435,,,653,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,485,428,,,486,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,',
',,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,856',
'435,,,857,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143',
',,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,,165,,,,,485,428,,,486,,,,,,,,,161,162,158,157',
'139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,,,,,',
',154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,1004',
'435,,,1003,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143',
',,,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,560,165,557,556,555,564,558,,,431,435,,,430,,,567',
',,,,158,161,162,,157,139,140,141,148,145,147,,,142,143,,,562,163,164',
'149,150,,,,,,273,575,574,,,,,,154,153,,138,160,156,155,151,152,146,144',
'136,159,137,,,165,,,,,1034,435,,,1035,,568,,,,,,,161,162,158,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,,,,,,,154',
'153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,,,,1032,428',
',,1033,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142,143,,,',
'163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,,,165,,,,,424,428,,,425,,,,,,,,,161,162,158,157,139',
'140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,,,,,,,154',
'153,,138,160,156,155,151,152,146,144,136,159,137,,560,165,557,556,555',
'564,558,,,,,,,,,,567,,,,,158,,,,,,,,,,,,,,,,,562,546,652,435,,,653,',
',572,571,575,574,,,161,162,,157,139,140,141,148,145,147,,,142,143,,',
',163,164,149,150,,,,,,273,,,,568,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,,165,,,,,650,428,,,651,,,,,,,,,161,162,158,157',
'139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,273,,,,,,',
',154,153,,138,160,156,155,151,152,146,144,136,159,137,,560,165,557,556',
'555,564,558,560,,557,556,555,564,558,,,567,,,,,158,,567,560,,557,556',
'555,564,558,,,,,,,,562,,567,,,,,562,,572,571,575,574,,,,,,575,574,,',
',560,562,557,556,555,564,558,,,,,,575,574,,560,567,557,556,555,564,558',
'568,,,,,,,568,,567,,,,,,,562,560,,557,556,555,564,558,568,572,571,575',
'574,,,562,560,567,557,556,555,564,558,,572,571,575,574,,,,,567,,,,,222',
',562,,,,,,568,,,572,571,575,574,,560,562,557,556,555,564,558,568,,,',
',575,574,,,567,560,,557,556,555,564,558,560,,557,556,555,564,558,568',
',567,,,,,562,,567,,,,,,568,572,571,575,574,,,,560,562,557,556,555,564',
'558,,562,,,,575,574,,,567,,,575,574,560,,557,556,555,564,558,,568,,',
',,,,,567,562,,,,,,,,568,,,575,574,,,568,,,,,,562,754,,,,,,,,572,571',
'575,574,,,,738,435,,,739,,,,568,,,,,161,162,,157,139,140,141,148,145',
'147,,,142,143,,,568,163,164,149,150,,,,,,273,,,,,,,,154,153,,138,160',
'156,155,151,152,146,144,136,159,137,,,165,,,,,736,428,,,737,,,,,,,,',
'161,162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150',
',,,,,273,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,,,,,,,,,,,,,,,,,,,,158' ]
        racc_action_table = arr = ::Array.new(26218, 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 = [
'652,1032,383,1034,1047,906,64,652,652,652,597,310,652,652,652,663,652',
'22,492,386,737,677,1033,61,1049,652,652,652,652,854,80,853,664,339,677',
'340,652,652,80,652,652,652,652,652,928,29,346,593,347,338,338,593,492',
'22,350,738,545,855,61,589,736,3,483,383,383,383,664,652,652,652,652',
'652,652,652,652,652,652,652,652,652,652,1034,386,652,652,652,581,652',
'652,582,739,652,13,64,652,652,483,652,310,652,15,652,663,652,652,652',
'652,652,652,652,29,652,652,652,683,1032,597,1034,1047,906,1032,738,1034',
'1047,906,737,652,652,652,652,431,652,29,652,854,597,1033,431,431,431',
'597,1033,652,431,431,853,431,339,853,340,853,346,339,347,340,431,739',
'855,928,350,738,545,855,928,589,736,431,431,16,431,431,431,431,431,937',
'692,692,448,448,937,971,683,682,757,757,389,581,971,19,582,617,581,651',
'491,582,739,971,431,431,431,431,431,431,431,431,431,431,431,431,431',
'431,424,25,431,431,431,683,431,40,683,788,431,315,315,431,44,44,491',
'43,431,813,431,683,431,431,431,431,431,431,431,750,431,431,431,48,750',
'614,651,389,682,591,617,617,424,72,430,431,431,650,431,617,431,430,430',
'430,692,424,448,430,430,87,430,431,757,719,788,719,719,719,362,719,225',
'377,813,682,377,362,682,592,88,813,430,430,89,430,430,430,430,430,813',
'682,315,315,591,44,44,126,614,614,380,591,126,126,650,856,591,614,813',
'226,591,707,707,430,430,430,430,430,430,430,430,430,430,430,430,430',
'430,225,591,430,430,430,592,430,377,377,685,430,90,592,430,343,124,719',
'592,430,343,430,592,430,430,430,430,430,430,430,207,430,856,430,227',
'380,380,380,226,856,592,373,229,228,856,98,430,430,856,430,291,430,98',
'98,98,291,704,98,98,98,230,98,430,685,234,882,856,704,266,98,685,98',
'98,98,543,685,882,543,269,685,453,98,98,969,98,98,98,98,98,924,969,924',
'924,924,985,924,985,685,228,969,704,704,373,373,373,425,755,375,280',
'882,882,755,98,98,98,98,98,98,98,98,98,98,98,98,98,98,751,751,98,98',
'98,363,98,98,704,453,98,391,363,98,98,42,98,882,98,281,98,425,98,98',
'98,98,98,98,98,284,98,287,98,998,425,998,998,998,998,998,295,924,375',
'375,375,98,98,98,98,998,98,101,98,18,41,319,633,42,101,101,101,98,297',
'101,101,101,298,101,479,968,42,998,391,391,391,101,968,101,101,101,299',
'5,998,998,863,968,5,101,101,863,101,101,101,101,101,18,41,319,633,954',
'479,305,954,308,479,479,479,479,18,41,319,633,697,309,331,697,998,331',
'101,101,101,101,101,101,101,101,101,101,101,101,101,101,314,1010,101',
'101,101,967,101,101,1010,316,101,320,967,101,101,323,101,1010,101,329',
'101,967,101,101,101,101,101,101,101,333,101,344,101,754,364,754,754',
'754,754,754,332,364,345,332,349,101,101,101,101,754,101,653,101,20,20',
'365,1018,1018,653,653,653,101,365,653,653,653,716,653,716,716,716,754',
'716,725,725,533,533,653,653,653,754,754,754,754,351,379,382,653,653',
'27,653,653,653,653,653,385,27,388,410,925,358,925,925,925,716,925,562',
'358,562,562,562,413,562,716,415,419,754,422,653,653,653,653,653,653',
'653,653,653,653,653,653,653,653,423,478,653,653,653,925,653,653,357',
'432,653,440,562,653,653,357,653,461,653,462,653,562,653,653,653,653',
'653,653,653,359,653,463,653,478,360,958,359,478,478,478,478,360,958',
'464,493,653,653,653,653,494,653,958,653,580,580,580,580,580,580,367',
'509,653,580,580,510,513,367,580,515,580,580,580,580,580,580,580,676',
'676,676,676,676,580,580,580,580,580,580,580,758,758,580,361,758,758',
'758,443,580,580,361,580,580,580,580,580,580,580,580,580,520,580,580',
'580,523,580,580,531,580,580,580,443,443,443,443,443,443,443,443,443',
'443,443,532,443,443,49,541,443,443,544,580,548,49,580,549,551,580,580',
'459,552,580,49,580,443,553,443,580,443,443,443,443,443,443,443,580,443',
'561,569,573,580,580,580,580,580,580,576,578,583,580,580,459,443,584',
'443,459,459,580,621,624,580,580,580,626,630,580,580,36,36,36,36,36,36',
'634,639,224,36,36,645,654,656,36,224,36,36,36,36,36,36,36,662,224,669',
'671,679,36,36,36,36,36,36,36,681,684,36,687,688,691,693,655,36,36,696',
'36,36,36,36,36,36,36,36,36,703,36,36,36,718,36,36,720,36,36,36,655,655',
'655,655,655,655,655,655,655,655,655,727,655,655,348,732,655,655,735',
'36,767,348,36,772,790,36,36,460,791,36,348,36,655,793,655,36,655,655',
'655,655,655,655,655,36,655,794,795,797,36,36,36,36,36,36,798,321,799',
'36,36,460,655,800,321,460,460,36,812,816,36,36,36,321,819,36,36,986',
'986,986,986,986,986,820,825,742,986,986,826,827,828,986,742,986,986',
'986,986,986,986,986,832,742,833,835,836,986,986,986,986,986,986,986',
'838,841,986,843,846,849,859,418,986,986,864,986,986,986,986,986,986',
'986,986,986,865,986,986,986,866,986,986,875,986,986,986,418,418,418',
'418,418,418,418,418,418,418,418,595,418,418,896,876,418,418,595,986',
'893,896,986,897,898,986,986,595,900,986,896,986,418,901,418,986,418',
'418,418,418,418,418,418,986,418,926,930,1035,986,986,986,986,986,986',
'1035,306,931,986,986,1035,418,936,306,1035,944,986,947,948,986,986,986',
'306,949,986,986,753,753,753,753,753,753,950,952,304,753,753,962,970',
'973,753,304,753,753,753,753,753,753,753,974,304,975,976,977,753,753',
'753,753,753,753,753,979,894,753,894,894,894,1003,894,753,753,1004,753',
'753,753,753,753,753,753,753,753,1006,753,753,753,1017,753,753,1022,753',
'753,753,781,781,781,781,781,781,781,781,781,781,781,303,781,781,302',
'1023,781,781,303,753,1024,302,753,1025,1026,753,753,303,1027,753,302',
'753,781,1028,781,753,781,781,781,781,781,781,781,753,781,1031,1036,857',
'753,753,753,753,753,753,857,686,1037,753,753,857,781,1,686,857,,753',
',686,753,753,753,686,,753,753,804,804,804,804,804,804,,,17,804,804,',
',,804,17,804,804,804,804,804,804,804,,17,,,,804,804,804,804,804,804',
'804,,1002,804,1002,1002,1002,,1002,804,804,,804,804,804,804,804,804',
'804,804,804,,804,804,804,,804,804,,804,804,804,438,438,438,438,438,438',
'438,438,438,438,438,519,438,438,,,438,438,519,804,,,804,,,804,804,519',
',804,,804,438,,438,804,438,438,438,438,438,438,438,804,438,,,,804,804',
'804,804,804,804,,,,804,804,,438,,,,,804,,,804,804,804,,,804,804,808',
'808,808,808,808,808,,,,808,808,,,,808,,808,808,808,808,808,808,808,293',
'293,293,293,293,808,808,808,808,808,808,808,,,808,9,9,9,9,9,808,808',
',808,808,808,808,808,808,808,808,808,,808,808,808,,808,808,,808,808',
'808,482,482,482,482,482,482,482,482,482,482,482,,482,482,,,482,482,',
'808,,,808,,,808,808,,,808,,808,482,,482,808,482,482,482,482,482,482',
'482,808,482,,,,808,808,808,808,808,808,,,,808,808,482,482,,,,,808,,',
'808,808,808,,,808,808,809,809,809,809,809,809,,,,809,809,,,,809,,809',
'809,809,809,809,809,809,508,508,508,508,508,809,809,809,809,809,809',
'809,,,809,,,,,,809,809,,809,809,809,809,809,809,809,809,809,,809,809',
'809,,809,809,,809,809,809,529,529,529,529,529,529,529,529,529,529,529',
',529,529,,,529,529,,809,,,809,,,809,809,,,809,,809,529,,529,809,529',
'529,529,529,529,529,529,809,529,,,,809,809,809,809,809,809,,,,809,809',
',529,,,,,809,,,809,809,809,,,809,809,404,404,404,404,404,404,,,,404',
'404,,,,404,,404,404,404,404,404,404,404,,,,,,404,404,404,404,404,404',
'404,,,404,,,,,,404,404,404,404,404,404,404,404,404,404,404,404,,404',
'404,404,,404,404,,404,404,404,24,24,24,24,24,24,24,24,24,24,24,,24,24',
',,24,24,,404,,,404,,,404,404,,,404,,404,24,,24,404,24,24,24,24,24,24',
'24,404,24,,,,404,404,404,404,404,404,,,,404,404,,24,,,,,404,,,404,404',
'404,,,404,404,301,301,301,301,301,301,,,,301,301,,,,301,,301,301,301',
'301,301,301,301,,,,,,301,301,301,301,301,301,301,,,301,,,,,,301,301',
',301,301,301,301,301,301,301,301,301,,301,301,301,,301,301,,301,301',
'301,881,881,881,881,881,881,881,881,881,881,881,,881,881,,,881,881,',
'301,,,301,,,301,301,,,301,,301,881,,881,301,881,881,881,881,881,881',
'881,301,881,,,,301,301,301,301,301,301,,,,301,301,,881,,,,,301,,,301',
'301,301,,,301,301,850,850,850,850,850,850,,,,850,850,,,,850,,850,850',
'850,850,850,850,850,,,,,,850,850,850,850,850,850,850,,,850,,,,,,850',
'850,,850,850,850,850,850,850,850,850,850,,850,850,850,,850,850,,850',
'850,850,878,878,878,878,878,878,878,878,878,878,878,,878,878,,,878,878',
',850,,,850,,,850,850,,,850,,850,878,,878,850,878,878,878,878,878,878',
'878,850,878,,,,850,850,850,850,850,850,,,,850,850,,878,,,,,850,,,850',
'850,850,,,850,850,851,851,851,851,851,851,,,,851,851,,,,851,,851,851',
'851,851,851,851,851,,,,,,851,851,851,851,851,851,851,,,851,,,,,,851',
'851,,851,851,851,851,851,851,851,851,851,,851,851,851,,851,851,,851',
'851,851,278,278,278,278,278,278,278,278,278,278,278,,278,278,,,278,278',
',851,,,851,,,851,851,,,851,,851,278,,278,851,278,278,278,278,278,278',
'278,851,278,,,,851,851,851,851,851,851,,,,851,851,,278,,,,,851,,,851',
'851,851,,,851,851,899,899,899,899,899,899,,,,899,899,,,,899,,899,899',
'899,899,899,899,899,,,,,,899,899,899,899,899,899,899,,,899,,,,,,899',
'899,,899,899,899,899,899,899,899,899,899,,899,899,899,,899,899,,899',
'899,899,783,783,783,783,783,783,783,783,783,783,783,,783,783,,,783,783',
',899,,,899,,,899,899,,,899,,899,783,,783,899,783,783,783,783,783,783',
'783,899,783,,,,899,899,899,899,899,899,,,,899,899,,783,,,,,899,,,899',
'899,899,,,899,899,981,981,981,981,981,981,,,,981,981,,,,981,,981,981',
'981,981,981,981,981,,,,,,981,981,981,981,981,981,981,,,981,,,,,,981',
'981,,981,981,981,981,981,981,981,981,981,,981,981,981,,981,981,,981',
'981,981,690,690,690,690,690,690,690,690,690,690,690,,690,690,,,690,690',
',981,,,981,,,981,981,,,981,,981,690,,690,981,690,690,690,690,690,690',
'690,981,690,,,,981,981,981,981,981,981,,,,981,981,,690,,,,,981,,,981',
'981,981,,,981,981,990,990,990,990,990,990,,,,990,990,,,,990,,990,990',
'990,990,990,990,990,,,,,,990,990,990,990,990,990,990,,,990,,,,,,990',
'990,,990,990,990,990,990,990,990,990,990,,990,990,990,,990,990,,990',
'990,990,779,779,779,779,779,779,779,779,779,779,779,,779,779,,,779,779',
',990,,,990,,,990,990,,,990,,990,779,,779,990,779,779,779,779,779,779',
'779,990,779,,,,990,990,990,990,990,990,,,,990,990,,779,,,,,990,,,990',
'990,990,,,990,990,903,903,903,903,903,903,,,,903,903,,,,903,,903,903',
'903,903,903,903,903,,,,,,903,903,903,903,903,903,903,,,903,,,,,,903',
'903,,903,903,903,903,903,903,903,903,903,,903,903,903,,903,903,,903',
'903,903,776,776,776,776,776,776,776,776,776,776,776,,776,776,,,776,776',
',903,,,903,,,903,903,,,903,,903,776,,776,903,776,776,776,776,776,776',
'776,903,776,,,,903,903,903,903,903,903,,,,903,903,,776,,,,,903,,,903',
'903,903,,,903,903,966,966,966,966,966,966,,,,966,966,,,,966,,966,966',
'966,966,966,966,966,,,,,,966,966,966,966,966,966,966,,,966,,,,,,966',
'966,,966,966,966,966,966,966,966,966,966,,966,966,966,,966,966,,966',
'966,966,774,774,774,774,774,774,774,774,774,774,774,,774,774,,,774,774',
',966,,,966,,,966,966,,,966,,966,774,,774,966,774,774,774,774,774,774',
'774,966,774,,,,966,966,966,966,966,966,,,,966,966,,774,,,,,966,,,966',
'966,966,,,966,966,702,702,702,702,702,702,,,,702,702,,,,702,,702,702',
'702,702,702,702,702,,,,,,702,702,702,702,702,702,702,,,702,,,,,,702',
'702,,702,702,702,702,702,702,702,702,702,,702,702,702,,702,702,,702',
'702,702,769,769,769,769,769,769,769,769,769,769,769,,769,769,,,769,769',
',702,,,702,,,702,702,,,702,,702,769,,769,702,769,769,769,769,769,769',
'769,702,769,,,,702,702,702,702,702,702,,,,702,702,,769,,,,,702,,,702',
'702,702,,,702,702,818,818,818,818,818,818,,,,818,818,,,,818,,818,818',
'818,818,818,818,818,,,,,,818,818,818,818,818,818,818,,842,818,842,842',
'842,,842,818,818,,818,818,818,818,818,818,818,818,818,,818,818,818,',
'818,818,,818,818,818,844,,844,844,844,,844,978,842,978,978,978,,978',
',,,842,,818,,,818,467,,818,818,,,818,,818,,,,818,,,844,467,467,,,818',
',978,,,818,818,818,818,818,818,,467,,818,818,467,467,467,467,,,818,',
',818,818,818,,,818,818,326,326,326,326,326,326,,,,326,326,,,,326,,326',
'326,326,326,326,326,326,,,,,,326,326,326,326,326,326,326,,980,326,980',
'980,980,,980,326,326,,326,326,326,326,326,326,326,326,326,,326,326,326',
',326,326,,326,326,326,475,475,475,475,475,475,475,,980,475,475,,,,,',
'475,475,,326,,,326,,,326,326,,,326,,326,475,,475,326,475,475,475,475',
'475,475,475,326,475,,,,326,326,326,326,326,326,,,,326,326,,1016,,1016',
'1016,1016,326,1016,,326,326,326,,,326,326,233,233,233,233,233,233,,',
',233,233,,,,233,,233,233,233,233,233,233,233,1016,,,,,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,474,474,474,474,474,474,474,,,474',
'474,,,,,,474,474,,233,,,233,,,233,233,,,233,,233,474,,474,233,474,474',
'474,474,474,474,474,233,474,,,,233,233,233,233,233,233,,,,233,233,,',
',,,,233,,,233,233,233,,,233,233,759,759,759,759,759,759,,,,759,759,',
',,759,,759,759,759,759,759,759,759,,,,,,759,759,759,759,759,759,759',
',,759,,,,,,759,759,,759,759,759,759,759,759,759,759,759,,759,759,759',
',759,759,,759,759,759,457,457,457,457,457,457,457,457,457,457,457,,457',
'457,,,457,457,,759,,,759,,,759,759,,,759,,759,457,,457,759,457,457,457',
'457,457,457,457,759,457,,,,759,759,759,759,759,759,,,,759,759,,,,,,',
'759,,,759,759,759,,,759,759,752,752,752,752,752,752,,,,752,752,,,,752',
',752,752,752,752,752,752,752,,,,,,752,752,752,752,752,752,752,,,752',
',,,,,752,752,,752,752,752,752,752,752,752,752,752,,752,752,752,,752',
'752,,752,752,752,473,473,473,473,473,473,473,,,473,473,,,,,,473,473',
',752,,,752,,,752,752,,,752,,752,473,,473,752,473,473,473,473,473,473',
'473,752,473,,,,752,752,752,752,752,752,,,,752,752,,,,,,,752,,,752,752',
'752,,,752,752,860,860,860,860,860,860,,,,860,860,,,,860,,860,860,860',
'860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860,860',
',860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,,860,860',
'860,481,481,481,481,481,481,481,481,,481,481,,,,,,481,481,,860,,,860',
',,860,860,,,860,,860,481,,481,860,481,481,481,481,481,481,481,860,481',
',,,860,860,860,860,860,860,,,,860,860,,,,,,,860,,,860,860,860,,,860',
'860,933,933,933,933,933,933,,,,933,933,,,,933,,933,933,933,933,933,933',
'933,,,,,,933,933,933,933,933,933,933,,,933,,,,,,933,933,,933,933,933',
'933,933,933,933,933,933,,933,933,933,,933,933,,933,933,933,472,,,,,',
',,,,,,,,,,472,472,,933,,,933,,,933,933,,,933,,933,472,,472,933,472,472',
'472,472,,,472,933,472,,,,933,933,933,933,933,933,,,,933,933,,,,,,,933',
',,933,933,933,,,933,933,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,480,480,480,480,480,480,480,,,480,480,,,,,,480,480,,577',
',,577,,,577,577,,,577,,577,480,,480,577,480,480,480,480,480,480,480',
'577,480,,,,577,577,577,577,577,577,,,,577,577,,,,,,,577,,,577,577,577',
',,577,577,989,989,989,989,989,989,,,,989,989,,,,989,,989,989,989,989',
'989,989,989,,,,,,989,989,989,989,989,989,989,,,989,,,,,,989,989,,989',
'989,989,989,989,989,989,989,989,,989,989,989,,989,989,,989,989,989,471',
',,,,,,,,,,,,,,,471,471,,989,,,989,,,989,989,,,989,,989,471,,471,989',
'471,471,471,471,,,471,989,471,,,,989,989,989,989,989,989,,,,989,989',
',,,,,,989,,,989,989,989,,,989,989,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,470,,,,,,,,,,,,,,,,470,470,,2,,,2,,,2,2,,,2,,2,470,,470,2,470',
'470,470,470,,,470,2,470,,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,,,2,2',
'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,469,,,,,,,,,',
',,,,,,469,469,,209,,,209,,,209,209,,,209,,209,469,,469,209,469,469,469',
'469,,,469,209,469,,,,209,209,209,209,209,209,,,,209,209,,,,,,,209,,',
'209,209,209,,,209,209,701,701,701,701,701,701,,,,701,701,,,,701,,701',
'701,701,701,701,701,701,,,,,,701,701,701,701,701,701,701,,,701,,,,,',
'701,701,,701,701,701,701,701,701,701,701,701,,701,701,701,,701,701,',
'701,701,701,458,458,458,458,458,458,458,458,458,458,458,,458,458,,,458',
'458,,701,,,701,,,701,701,,,701,,701,458,,458,701,458,458,458,458,458',
'458,458,701,458,,,,701,701,701,701,701,701,,,,701,701,,,,,,,701,,,701',
'701,701,,,701,701,296,296,296,296,296,296,,,,296,296,,,,296,,296,296',
'296,296,296,296,296,,,,,,296,296,296,296,296,296,296,,,296,,,,,,296',
'296,,296,296,296,296,296,296,296,296,296,,296,296,296,,296,296,,296',
'296,296,477,477,477,477,477,477,477,,,477,477,,,,,,477,477,,296,,,296',
',,296,296,,,296,,296,477,,477,296,477,477,477,477,477,477,477,296,477',
',,,296,296,296,296,296,296,,,,296,296,,,,,,,296,,,296,296,296,,,296',
'296,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,476,476,476,476,476,476,476,,,476,476,,,,,,476,476,,34',
',,34,,,34,34,,,34,,34,476,34,476,34,476,476,476,476,476,476,476,34,476',
',,,34,34,34,34,34,34,,,,34,34,,,,,,,34,,34,34,34,34,,,34,34,285,285',
'285,,285,,,,285,285,,,,285,,285,285,285,285,285,285,285,,,,,,285,285',
'285,285,285,285,285,,,285,,,,,,,285,,,285,285,285,285,285,285,285,285',
',285,285,285,,285,285,,285,285,285,468,468,468,468,468,468,468,,,468',
'468,,,,,,468,468,,285,,,285,,,285,285,,,285,,,468,,468,285,468,468,468',
'468,468,468,468,285,468,,,,285,285,285,285,285,285,,,,285,285,,,,,,',
'285,,,285,285,285,,,285,285,288,288,288,,288,,,,288,288,,,,288,,288',
'288,288,288,288,288,288,,,,,,288,288,288,288,288,288,288,,,288,,,,,',
',288,,,288,288,288,288,288,288,288,288,,288,288,288,,288,288,,288,288',
'288,465,,,,,,,,,,,,,,,,465,465,,288,,,288,,,288,288,,,288,,,465,,465',
'288,465,465,465,465,,,,288,,,,,288,288,288,288,288,288,,,,288,288,,',
',,,,288,,,288,288,288,,,288,288,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,466,,,,,,,,,,,,,,,,466,466,,244,,,244,,,244,244,,,244,,,466',
',466,244,466,466,466,466,,,,244,,,,,244,244,244,244,244,244,,,,244,244',
',,,,,,244,,,244,244,244,,,244,244,294,294,294,294,294,,,,294,294,,,',
'294,,294,294,294,294,294,294,294,,,,,,294,294,294,294,294,294,294,,',
'294,,,,,,294,294,,294,294,294,294,294,294,294,294,294,,294,294,294,',
'294,294,,294,294,294,,,,,,,,,,,,,,,,,,,,294,,,294,,,294,294,,,294,,294',
',,,294,,,,,,,,294,,,,,294,294,294,294,294,294,,,,294,294,,,,,,,294,',
',294,294,294,,,294,294,37,37,37,,37,,,,37,37,,,,37,,37,37,37,37,37,37',
'37,,,,,,37,37,37,37,37,37,37,,,37,,,,,,,37,,,37,37,37,37,37,37,37,37',
',37,37,37,,37,37,,,,37,,,,,,,,,,,,,,,,,,,,37,,,37,,,37,37,,,37,,37,',
',,,,,,,,,,,,,,,37,37,37,37,37,37,,,,37,37,,,,,,,37,,,37,37,37,,,37,37',
'38,38,38,,38,,,,38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38,38,38,38,38',
'38,38,,,38,,,,,,,38,,,38,38,38,38,38,38,38,38,,38,38,38,,38,38,,,,38',
',,,,,,,,,,,,,,,,,,,38,,,38,,,38,38,,,38,,,,,,,,,,,,,,,,,,,38,38,38,38',
'38,38,,,,38,38,,,,38,,,38,,,38,38,38,,,38,38,243,243,243,,243,,,,243',
'243,,,,243,,243,243,243,243,243,243,243,,,,,,243,243,243,243,243,243',
'243,,,243,,,,,,,243,,,243,243,243,243,243,243,243,243,,243,243,243,',
'243,243,,243,243,243,,,,,,,,,,,,,,,,,,,,243,,,243,,,243,243,,,243,,',
',,,243,,,,,,,,243,,,,,243,243,243,243,243,243,,,,243,243,,,,,,,243,',
',243,243,243,,,243,243,678,678,678,,678,,,,678,678,,,,678,,678,678,678',
'678,678,678,678,,,,,,678,678,678,678,678,678,678,,,678,,,,,,,678,,,678',
'678,678,678,678,678,678,678,,678,678,678,,678,678,,,,678,,,,,,,,,,,',
',,,,,,,,678,,,678,,,678,678,,,678,,,,,,,,,,,,,,,,,,,678,678,678,678',
'678,678,,,,678,678,,,,,,,678,,,678,678,678,,,678,678,672,672,672,,672',
',,,672,672,,,,672,,672,672,672,672,672,672,672,,,,,,672,672,672,672',
'672,672,672,,,672,,,,,,,672,,,672,672,672,672,672,672,672,672,,672,672',
'672,,672,672,,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672',
',,,,,672,,,,,,,,672,,,,,672,672,672,672,672,672,,,,672,672,,,,,,,672',
',,672,672,672,,,672,672,300,300,300,,300,,,,300,300,,,,300,,300,300',
'300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300',
',,300,300,300,300,300,300,300,300,,300,300,300,,300,300,,,,300,,,,,',
',,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,,,,,,,,,,,,,,,,,300,300,300',
'300,300,300,,,,300,300,,,,300,,,300,,,300,300,300,,,300,300,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,848',
',,,,,,848,,,848,848,848,,,848,848,740,740,740,,740,,,,740,740,,,,740',
',740,740,740,740,740,740,740,,,,,,740,740,740,740,740,740,740,,,740',
',,,,,,740,,,740,740,740,740,740,740,740,740,,740,740,740,,740,740,,740',
'740,740,,,,,,,,,,,,,,,,,,,,740,,,740,,,740,740,,,740,,,,,,740,,,,,,',
',740,,,,,740,740,740,740,740,740,,,,740,740,,,,,,,740,,,740,740,740',
',,740,740,256,256,256,,256,,,,256,256,,,,256,,256,256,256,256,256,256',
'256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256,256',
'256,256,256,256,,256,256,256,,256,256,,256,256,256,,,,,,,,,,,,,,,,,',
',,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,256,,,,,256,256,256,256',
'256,256,,,,256,256,,,,,,,256,,,256,256,256,,,256,256,242,242,242,,242',
',,,242,242,,,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242',
'242,242,242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242',
'242,,242,242,,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242',
',,,,,242,,,,,,,,242,,,,,242,242,242,242,242,242,,,,242,242,,,,,,,242',
',,242,242,242,,,242,242,241,241,241,,241,,,,241,241,,,,241,,241,241',
'241,241,241,241,241,,,,,,241,241,241,241,241,241,241,,,241,,,,,,,241',
',,241,241,241,241,241,241,241,241,,241,241,241,,241,241,,241,241,241',
',,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,,,,,,241,,,,,,,,241,,,',
',241,241,241,241,241,241,,,,241,241,,,,,,,241,,,241,241,241,,,241,241',
'240,240,240,,240,,,,240,240,,,,240,,240,240,240,240,240,240,240,,,,',
',240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240',
'240,240,,240,240,240,,240,240,,240,240,240,,,,,,,,,,,,,,,,,,,,240,,',
'240,,,240,240,,,240,,,,,,240,,,,,,,,240,,,,,240,240,240,240,240,240',
',,,240,240,,,,,,,240,,,240,240,240,,,240,240,861,861,861,,861,,,,861',
'861,,,,861,,861,861,861,861,861,861,861,,,,,,861,861,861,861,861,861',
'861,,,861,,,,,,,861,,,861,861,861,861,861,861,861,861,,861,861,861,',
'861,861,,861,861,861,,,,,,,,,,,,,,,,,,,,861,,,861,,,861,861,,,861,,',
',,,861,,,,,,,,861,,,,,861,861,861,861,861,861,,,,861,861,,,,,,,861,',
',861,861,861,,,861,861,239,239,239,,239,,,,239,239,,,,239,,239,239,239',
'239,239,239,239,,,,,,239,239,239,239,239,239,239,,,239,,,,,,,239,,,239',
'239,239,239,239,239,239,239,,239,239,239,,239,239,,239,239,239,,,,,',
',,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,,,,,,,,239,,,,,239',
'239,239,239,239,239,,,,239,239,,,,,,,239,,,239,239,239,,,239,239,238',
'238,238,,238,,,,238,238,,,,238,,238,238,238,238,238,238,238,,,,,,238',
'238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238',
'238,,238,238,238,,238,238,,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238',
',,238,238,,,238,,,,,,238,,,,,,,,238,,,,,238,238,238,238,238,238,,,,238',
'238,,,,,,,238,,,238,238,238,,,238,238,648,648,648,,648,,,,648,648,,',
',648,,648,648,648,648,648,648,648,,,,,,648,648,648,648,648,648,648,',
',648,,,,,,,648,,,648,648,648,648,648,648,648,648,,648,648,648,,648,648',
',648,648,648,,,,,,,,,,,,,,,,,,,,648,,,648,,,648,648,,,648,,,,,,648,',
',,,,,,648,,,,,648,648,648,648,648,648,,,,648,648,,,,,,,648,,,648,648',
'648,,,648,648,647,647,647,,647,,,,647,647,,,,647,,647,647,647,647,647',
'647,647,,,,,,647,647,647,647,647,647,647,,,647,,,,,,,647,,,647,647,647',
'647,647,647,647,647,,647,647,647,,647,647,,647,647,647,,,,,,,,,,,,,',
',,,,,,647,,,647,,,647,647,,,647,,,,,,647,,,,,,,,647,,,,,647,647,647',
'647,647,647,,,,647,647,,,,,,,647,,,647,647,647,,,647,647,879,879,879',
',879,,,,879,879,,,,879,,879,879,879,879,879,879,879,,,,,,879,879,879',
'879,879,879,879,,,879,,,,,,,879,,,879,879,879,879,879,879,879,879,879',
'879,879,879,,879,879,,879,879,879,,,,,,,,,,,,,,,,,,,,879,,,879,,,879',
'879,,,879,,,,879,,879,,,,,,,,879,,,,,879,879,879,879,879,879,,,,879',
'879,,,,,,,879,,879,879,879,879,,,879,879,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,880,,,,880,880,,,,,,,880,,,880,880',
'880,,,880,880,237,237,237,,237,,,,237,237,,,,237,,237,237,237,237,237',
'237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,,,237,,,237,237,237',
'237,237,237,237,237,,237,237,237,,237,237,,237,237,237,,,,,,,,,,,,,',
',,,,,,237,,,237,,,237,237,,,237,,,,,,237,,,,,,,,237,,,,,237,237,237',
'237,237,237,,,,237,237,,,,,,,237,,,237,237,237,,,237,237,644,644,644',
',644,,,,644,644,,,,644,,644,644,644,644,644,644,644,,,,,,644,644,644',
'644,644,644,644,,,644,,,,,,,644,,,644,644,644,644,644,644,644,644,,644',
'644,644,,644,644,,644,644,644,,,,,,,,,,,,,,,,,,,,644,,,644,,,644,644',
',,644,,,,,,644,,,,,,,,644,,,,,644,644,644,644,644,644,,,,644,644,,,',
',,,644,,,644,644,644,,,644,644,643,643,643,,643,,,,643,643,,,,643,,643',
'643,643,643,643,643,643,,,,,,643,643,643,643,643,643,643,,,643,,,,,',
',643,,,643,643,643,643,643,643,643,643,,643,643,643,,643,643,,643,643',
'643,,,,,,,,,,,,,,,,,,,,643,,,643,,,643,643,,,643,,,,,,643,,,,,,,,643',
',,,,643,643,643,643,643,643,,,,643,643,,,,,,,643,,,643,643,643,,,643',
'643,236,236,236,,236,,,,236,236,,,,236,,236,236,236,236,236,236,236',
',,,,,236,236,236,236,236,236,236,,,236,,,,,,,236,,,236,236,236,236,236',
'236,236,236,,236,236,236,,236,236,,236,236,236,,,,,,,,,,,,,,,,,,,,236',
',,236,,,236,236,,,236,,,,,,236,,,,,,,,236,,,,,236,236,236,236,236,236',
',,,236,236,,,,,,,236,,,236,236,236,,,236,236,638,638,638,,638,,,,638',
'638,,,,638,,638,638,638,638,638,638,638,,,,,,638,638,638,638,638,638',
'638,,,638,,,,,,,638,,,638,638,638,638,638,638,638,638,,638,638,638,',
'638,638,,638,638,638,,,,,,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,',
',,,638,,,,,,,,638,,,,,638,638,638,638,638,638,,,,638,638,,,,,,,638,',
',638,638,638,,,638,638,637,637,637,,637,,,,637,637,,,,637,,637,637,637',
'637,637,637,637,,,,,,637,637,637,637,637,637,637,,,637,,,,,,,637,,,637',
'637,637,637,637,637,637,637,,637,637,637,,637,637,,637,637,637,,,,,',
',,,,,,,,,,,,,,637,,,637,,,637,637,,,637,,,,,,637,,,,,,,,637,,,,,637',
'637,637,637,637,637,,,,637,637,,,,,,,637,,,637,637,637,,,637,637,636',
'636,636,,636,,,,636,636,,,,636,,636,636,636,636,636,636,636,,,,,,636',
'636,636,636,636,636,636,,,636,,,,,,,636,,,636,636,636,636,636,636,636',
'636,636,636,636,636,,636,636,,636,636,636,,,,,,,,,,,,,,,,,,,,636,,,636',
',,636,636,,,636,,,,636,,636,,,,,,,,636,,,,,636,636,636,636,636,636,',
',,636,636,,,,,,,636,,636,636,636,636,,,636,636,895,895,895,,895,,,,895',
'895,,,,895,,895,895,895,895,895,895,895,,,,,,895,895,895,895,895,895',
'895,,,895,,,,,,,895,,,895,895,895,895,895,895,895,895,,895,895,895,',
'895,895,,,,895,,,,,,,,,,,,,,,,,,,,895,,,895,,,895,895,,,895,,,,,,,,',
',,,,,,,,,,895,895,895,895,895,895,,,,895,895,,,,,,,895,,,895,895,895',
',,895,895,635,635,635,,635,,,,635,635,,,,635,,635,635,635,635,635,635',
'635,,,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635,635,635,635',
'635,635,635,635,635,635,635,635,,635,635,,635,635,635,,,,,,,,,,,,,,',
',,,,,635,,,635,,,635,635,,,635,,635,,635,,635,,,,,,,,635,,,,,635,635',
'635,635,635,635,,,,635,635,,,,,,,635,,635,635,635,635,,,635,635,235',
'235,235,,235,,,,235,235,,,,235,,235,235,235,235,235,235,235,,,,,,235',
'235,235,235,235,235,235,,,235,,,,,,,235,,,235,235,235,235,235,235,235',
'235,,235,235,235,,235,235,,235,235,235,,,,,,,,,,,,,,,,,,,,235,,,235',
',,235,235,,,235,,,,,,235,,,,,,,,235,,,,,235,235,235,235,235,235,,,,235',
'235,,,,,,,235,,,235,235,235,,,235,235,45,45,45,,45,,,,45,45,,,,45,,45',
'45,45,45,45,45,45,,,,,,45,45,45,45,45,45,45,,,45,,,,,,,45,,,45,45,45',
'45,45,45,45,45,,45,45,45,,45,45,,45,45,45,,,,,,,,,,,,,,,,,,,,45,,,45',
',,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45,45,45,45,45,45,,,,45,45,,,,,,',
'45,,,45,45,45,,,45,45,632,632,632,,632,,,,632,632,,,,632,,632,632,632',
'632,632,632,632,,,,,,632,632,632,632,632,632,632,,,632,,,,,,,632,,,632',
'632,632,632,632,632,632,632,,632,632,632,,632,632,,632,632,632,,,,,',
',,,,,,,,,,,,,,632,,,632,,,632,632,,,632,,,,,,632,,,,,,,,632,,,,,632',
'632,632,632,632,632,,,,632,632,,,,,,,632,,,632,632,632,,,632,632,46',
'46,46,,46,,,,46,46,,,,46,,46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46',
'46,,,46,,,,,,,46,,,46,46,46,46,46,46,46,46,,46,46,46,,46,46,,46,46,46',
',,,,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,46,,,,,46,46',
'46,46,46,46,,,,46,46,,,,,,,46,,,46,46,46,,,46,46,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,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',
',,907,907,631,631,631,,631,,,,631,631,,,,631,,631,631,631,631,631,631',
'631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,631,631',
'631,631,631,631,,631,631,631,,631,631,,631,631,631,,,,,,,,,,,,,,,,,',
',,631,,,631,,,631,631,,,631,,631,,,,631,,,,,,,,631,,,,,631,631,631,631',
'631,631,,,,631,631,,,,,,,631,,,631,631,631,,,631,631,232,232,232,,232',
',,,232,232,,,,232,,232,232,232,232,232,232,232,,,,,,232,232,232,232',
'232,232,232,,,232,,,,,,,232,,,232,232,232,232,232,232,232,232,,232,232',
'232,,232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232,,,232,232,,,232',
',,,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,232,232,,,,,,,232',
',,232,232,232,,,232,232,602,602,602,,602,,,,602,602,,,,602,,602,602',
'602,602,602,602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,,,602',
',,602,602,602,602,602,602,602,602,,602,602,602,,602,602,,602,602,602',
',,,,,,,,,,,,,,,,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,602,,,',
',602,602,602,602,602,602,,,,602,602,,,,,,,602,,,602,602,602,,,602,602',
'598,598,598,,598,,,,598,598,,,,598,,598,598,598,598,598,598,598,,,,',
',598,598,598,598,598,598,598,,,598,,,,,,,598,,,598,598,598,598,598,598',
'598,598,,598,598,598,,598,598,,598,598,598,,,,,,,,,,,,,,,,,,,,598,,',
'598,,,598,598,,,598,,,,,,598,,,,,,,,598,,,,,598,598,598,598,598,598',
',,,598,598,,,,,,,598,,,598,598,598,,,598,598,317,317,317,,317,,,,317',
'317,,,,317,,317,317,317,317,317,317,317,,,,,,317,317,317,317,317,317',
'317,,,317,,,,,,,317,,,317,317,317,317,317,317,317,317,,317,317,317,',
'317,317,,,,317,,,,,,,,,,,,,,,,,,,,317,,,317,,,317,317,,,317,,,,,,,,',
',,,,,,,,,,317,317,317,317,317,317,,,,317,317,,,,,,,317,,,317,317,317',
',,317,317,47,47,47,,47,,,,47,47,,,,47,,47,47,47,47,47,47,47,,,,,,47',
'47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47',
',47,47,,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,',
',,,,47,,,,,47,47,47,47,47,47,,,,47,47,,,,,,,47,,,47,47,47,,,47,47,932',
'932,932,,932,,,,932,932,,,,932,,932,932,932,932,932,932,932,,,,,,932',
'932,932,932,932,932,932,,,932,,,,,,,932,,,932,932,932,932,932,932,932',
'932,,932,932,932,,932,932,,932,932,932,,,,,,,,,,,,,,,,,,,,932,,,932',
',,932,932,,,932,,932,,,,932,,,,,,,,932,,,,,932,932,932,932,932,932,',
',,932,932,,,,,,,932,,,932,932,932,,,932,932,586,586,586,,586,,,,586',
'586,,,,586,,586,586,586,586,586,586,586,,,,,,586,586,586,586,586,586',
'586,,,586,,,,,,,586,,,586,586,586,586,586,586,586,586,586,586,586,586',
',586,586,,586,586,586,,,,,,,,,,,,,,,,,,,,586,,,586,,,586,586,,,586,',
'586,,586,,586,,,,,,,,586,,,,,586,586,586,586,586,586,,,,586,586,,,,',
',,586,,586,586,586,586,,,586,586,250,250,250,,250,,,,250,250,,,,250',
',250,250,250,250,250,250,250,,,,,,250,250,250,250,250,250,250,,,250',
',,,,,,250,,,250,250,250,250,250,250,250,250,,250,250,250,,250,250,,250',
'250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,',
',250,,,,,250,250,250,250,250,250,,,,250,250,,,,,,,250,,,250,250,250',
',,250,250,67,67,67,,67,,,,67,67,,,,67,,67,67,67,67,67,67,67,,,,,,67',
'67,67,67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,,67,67,67',
',67,67,,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,,,,,67,,,',
',,,,67,,,,,67,67,67,67,67,67,,,,67,67,,,,,,,67,,,67,67,67,,,67,67,70',
'70,70,,70,,,,70,70,,,,70,,70,70,70,70,70,70,70,,,,,,70,70,70,70,70,70',
'70,,,70,,,,,,,70,,,70,70,70,70,70,70,70,70,,70,70,70,,70,70,,70,70,70',
',,,,,,,,,,,,,,,,,,,70,,,70,,,70,70,,,70,,,,,,70,,,,,,,,70,,,,,70,70',
'70,70,70,70,,,,70,70,70,,,,,70,70,,,70,70,70,,,70,70,71,71,71,,71,,',
',71,71,,,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,',
',,,,71,,,71,71,71,71,71,71,71,71,,71,71,71,,71,71,,,,71,,,,,,,,,,,,',
',,,,,,,71,,,71,,,71,71,,,71,,71,,,,,,,,,,,,,,,,,71,71,71,71,71,71,,',
',71,71,,,,,,,71,,,71,71,71,,,71,71,8,8,8,8,8,,,,8,8,,,,8,,8,8,8,8,8',
'8,8,,,,,,8,8,8,8,8,8,8,,,8,,,,,,8,8,8,8,8,8,8,8,8,8,8,8,,8,8,8,,8,8',
',8,8,8,,,,,,,,,,,,,,,,,,,,8,,,8,,,8,8,,,8,,8,,,,8,,,,,,,,8,,,,,8,8,8',
'8,8,8,,,,8,8,,,,,,,8,,,8,8,8,,,8,8,254,254,254,,254,,,,254,254,,,,254',
',254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254',
',,,,,,254,,,254,254,254,254,254,254,254,254,,254,254,254,,254,254,,254',
'254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,',
',254,,,,,254,254,254,254,254,254,,,,254,254,,,,,,,254,,,254,254,254',
',,254,254,253,253,253,,253,,,,253,253,,,,253,,253,253,253,253,253,253',
'253,,,,,,253,253,253,253,253,253,253,,,253,,,,,,,253,,,253,253,253,253',
'253,253,253,253,,253,253,253,,253,253,,253,253,253,,,,,,,,,,,,,,,,,',
',,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253,253,253,253',
'253,253,,,,253,253,,,,,,,253,,,253,253,253,,,253,253,252,252,252,,252',
',,,252,252,,,,252,,252,252,252,252,252,252,252,,,,,,252,252,252,252',
'252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252,,252,252',
'252,,252,252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252',
',,,,,252,,,,,,,,252,,,,,252,252,252,252,252,252,,,,252,252,,,,,,,252',
',,252,252,252,,,252,252,714,714,714,,714,,,,714,714,,,,714,,714,714',
'714,714,714,714,714,,,,,,714,714,714,714,714,714,714,,,714,,,,,,,714',
',,714,714,714,714,714,714,714,714,,714,714,714,,714,714,,714,714,714',
',,,,,,,,,,,,,,,,,,,714,,,714,,,714,714,,,714,,,,,,714,,,,,,,,714,,,',
',714,714,714,714,714,714,,,,714,714,,,,,,,714,,,714,714,714,,,714,714',
'251,251,251,,251,,,,251,251,,,,251,,251,251,251,251,251,251,251,,,,',
',251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251',
'251,251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,,,,251,,',
'251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251,251,251',
',,,251,251,,,,,,,251,,,251,251,251,,,251,251,257,257,257,,257,,,,257',
'257,,,,257,,257,257,257,257,257,257,257,,,,,,257,257,257,257,257,257',
'257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257,257,',
'257,257,,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257,,',
',,,257,,,,,,,,257,,,,,257,257,257,257,257,257,,,,257,257,,,,,,,257,',
',257,257,257,,,257,257,768,768,768,,768,,,,768,768,,,,768,,768,768,768',
'768,768,768,768,,,,,,768,768,768,768,768,768,768,,,768,,,,,,,768,,,768',
'768,768,768,768,768,768,768,,768,768,768,,768,768,,768,768,768,,,,,',
',,,,,,,,,,,,,,768,,,768,,,768,768,,,768,,,,,,768,,,,,,,,768,,,,,768',
'768,768,768,768,768,,,,768,768,,,,,,,768,,,768,768,768,,,768,768,770',
'770,770,,770,,,,770,770,,,,770,,770,770,770,770,770,770,770,,,,,,770',
'770,770,770,770,770,770,,,770,,,,,,,770,,,770,770,770,770,770,770,770',
'770,,770,770,770,,770,770,,770,770,770,,,,,,,,,,,,,,,,,,,,770,,,770',
',,770,770,,,770,,,,,,770,,,,,,,,770,,,,,770,770,770,770,770,770,,,,770',
'770,,,,,,,770,,,770,770,770,,,770,770,258,258,258,,258,,,,258,258,,',
',258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,',
',258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258',
',258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,',
',,,,,,258,,,,,258,258,258,258,258,258,,,,258,258,,,,,,,258,,,258,258',
'258,,,258,258,414,414,414,,414,,,,414,414,,,,414,,414,414,414,414,414',
'414,414,,,,,,414,414,414,414,414,414,414,,,414,,,,,,,414,,,414,414,414',
'414,414,414,414,414,,414,414,414,,414,414,,414,414,414,,,,,,,,,,,,,',
',,,,,,414,,,414,,,414,414,,,414,,,,,,414,,,,,,,,414,,,,,414,414,414',
'414,414,414,,,,414,414,,,,,,,414,,,414,414,414,,,414,414,694,694,694',
',694,,,,694,694,,,,694,,694,694,694,694,694,694,694,,,,,,694,694,694',
'694,694,694,694,,,694,,,,,,,694,,,694,694,694,694,694,694,694,694,,694',
'694,694,,694,694,,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694,,,694,694',
',,694,,694,,,,694,,,,,,,,694,,,,,694,694,694,694,694,694,,,,694,694',
',,,,,,694,,,694,694,694,,,694,694,249,249,249,,249,,,,249,249,,,,249',
',249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249',
',,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,,249',
'249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,',
',249,,,,,249,249,249,249,249,249,,,,249,249,,,,,,,249,,,249,249,249',
',,249,249,248,248,248,,248,,,,248,248,,,,248,,248,248,248,248,248,248',
'248,,,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248,248',
'248,248,248,248,,248,248,248,,248,248,,248,248,248,,,,,,,,,,,,,,,,,',
',,248,,,248,,,248,248,,,248,,,,,,248,,,,,,,,248,,,,,248,248,248,248',
'248,248,,,,248,248,,,,,,,248,,,248,248,248,,,248,248,689,689,689,,689',
',,,689,689,,,,689,,689,689,689,689,689,689,689,,,,,,689,689,689,689',
'689,689,689,,,689,,,,,,,689,,,689,689,689,689,689,689,689,689,,689,689',
'689,,689,689,,,,689,,,,,,,,,,,,,,,,,,,,689,,,689,,,689,689,,,689,,,',
',,,,,,,,,,,,,,,689,689,689,689,689,689,,,,689,689,,,,,,,689,,,689,689',
'689,,,689,689,784,784,784,,784,,,,784,784,,,,784,,784,784,784,784,784',
'784,784,,,,,,784,784,784,784,784,784,784,,,784,,,,,,,784,,,784,784,784',
'784,784,784,784,784,,784,784,784,,784,784,,784,784,784,,,,,,,,,,,,,',
',,,,,,784,,,784,,,784,784,,,784,,,,,,784,,,,,,,,784,,,,,784,784,784',
'784,784,784,,,,784,784,,,,,,,784,,,784,784,784,,,784,784,785,785,785',
',785,,,,785,785,,,,785,,785,785,785,785,785,785,785,,,,,,785,785,785',
'785,785,785,785,,,785,,,,,,,785,,,785,785,785,785,785,785,785,785,,785',
'785,785,,785,785,,785,785,785,,,,,,,,,,,,,,,,,,,,785,,,785,,,785,785',
',,785,,,,,,785,,,,,,,,785,,,,,785,785,785,785,785,785,,,,785,785,,,',
',,,785,,,785,785,785,,,785,785,786,786,786,,786,,,,786,786,,,,786,,786',
'786,786,786,786,786,786,,,,,,786,786,786,786,786,786,786,,,786,,,,,',
',786,,,786,786,786,786,786,786,786,786,,786,786,786,,786,786,,786,786',
'786,,,,,,,,,,,,,,,,,,,,786,,,786,,,786,786,,,786,,,,,,786,,,,,,,,786',
',,,,786,786,786,786,786,786,,,,786,786,,,,,,,786,,,786,786,786,,,786',
'786,787,787,787,,787,,,,787,787,,,,787,,787,787,787,787,787,787,787',
',,,,,787,787,787,787,787,787,787,,,787,,,,,,,787,,,787,787,787,787,787',
'787,787,787,,787,787,787,,787,787,,787,787,787,,,,,,,,,,,,,,,,,,,,787',
',,787,,,787,787,,,787,,,,,,787,,,,,,,,787,,,,,787,787,787,787,787,787',
',,,787,787,,,,,,,787,,,787,787,787,,,787,787,247,247,247,,247,,,,247',
'247,,,,247,,247,247,247,247,247,247,247,,,,,,247,247,247,247,247,247',
'247,,,247,,,,,,,247,,,247,247,247,247,247,247,247,247,,247,247,247,',
'247,247,,247,247,247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,',
',,,247,,,,,,,,247,,,,,247,247,247,247,247,247,,,,247,247,,,,,,,247,',
',247,247,247,,,247,247,789,789,789,,789,,,,789,789,,,,789,,789,789,789',
'789,789,789,789,,,,,,789,789,789,789,789,789,789,,,789,,,,,,,789,,,789',
'789,789,789,789,789,789,789,,789,789,789,,789,789,,789,789,789,,,,,',
',,,,,,,,,,,,,,789,,,789,,,789,789,,,789,,,,,,789,,,,,,,,789,,,,,789',
'789,789,789,789,789,,,,789,789,,,,,,,789,,,789,789,789,,,789,789,259',
'259,259,,259,,,,259,259,,,,259,,259,259,259,259,259,259,259,,,,,,259',
'259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259',
'259,,259,259,259,,259,259,,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259',
',,259,259,,,259,,,,,,259,,,,,,,,259,,,,,259,259,259,259,259,259,,,,259',
'259,,,,,,,259,,,259,259,259,,,259,259,260,260,260,,260,,,,260,260,,',
',260,,260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,',
',260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260',
',260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,',
',,,,,,260,,,,,260,260,260,260,260,260,,,,260,260,,,,,,,260,,,260,260',
'260,,,260,260,246,246,246,,246,,,,246,246,,,,246,,246,246,246,246,246',
'246,246,,,,,,246,246,246,246,246,246,246,,,246,,,,,,,246,,,246,246,246',
'246,246,246,246,246,,246,246,246,,246,246,,246,246,246,,,,,,,,,,,,,',
',,,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,,,246,,,,,246,246,246',
'246,246,246,,,,246,246,,,,,,,246,,,246,246,246,,,246,246,267,267,267',
',267,,,,267,267,,,,267,,267,267,267,267,267,267,267,,,,,,267,267,267',
'267,267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,267',
'267,267,267,,267,267,,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267',
'267,,,267,,267,,267,,267,,,,,,,,267,,,,,267,267,267,267,267,267,,,,267',
'267,,,,,,,267,,267,267,267,267,,,267,267,273,273,273,,273,,,,273,273',
',,,273,,273,273,273,273,273,273,273,,,,,,273,273,273,273,273,273,273',
',,273,,,,,,,273,,,273,273,273,273,273,273,273,273,273,273,273,273,,273',
'273,,273,273,273,,,,,,,,,,,,,,,,,,,,273,,,273,,,273,273,,,273,,273,',
'273,,273,,,,,,,,273,,,,,273,273,273,273,273,273,,,,273,273,,,,,,,273',
',273,273,273,273,,,273,273,276,276,276,,276,,,,276,276,,,,276,,276,276',
'276,276,276,276,276,,,,,,276,276,276,276,276,276,276,,,276,,,,,,,276',
',,276,276,276,276,276,276,276,276,276,276,276,276,,276,276,,276,276',
'276,,,,,,,,,,,,,,,,,,,,276,,,276,,,276,276,,,276,,276,,276,,276,,,,',
',,,276,,,,,276,276,276,276,276,276,,,,276,276,276,,,,,,276,,276,276',
'276,276,,,276,276,245,245,245,,245,,,,245,245,,,,245,,245,245,245,245',
'245,245,245,,,,,,245,245,245,245,245,245,245,,,245,,,,,,,245,,,245,245',
'245,245,245,245,245,245,,245,245,245,,245,245,,245,245,245,,,,,,,,,',
',,,,,,,,,,245,,,245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,,,245,245',
'245,245,245,245,,,,245,245,,,,,,,245,,,245,245,245,,,245,245,801,801',
'801,,801,,,,801,801,,,,801,,801,801,801,801,801,801,801,,,,,,801,801',
'801,801,801,801,801,,,801,,,,,,,801,,,801,801,801,801,801,801,801,801',
',801,801,801,,801,801,,,,801,,,,,,,,,,,,,,,,,,,,801,,,801,,,801,801',
',,801,,,,,,,,,,,,,,,,,,,801,801,801,801,801,801,,,,801,801,,,,,,,801',
',,801,801,801,,,801,801,32,32,32,,32,,,,32,32,,,,32,,32,32,32,32,32',
'32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,,32,,,32,32,32,32,32,32,32',
'32,32,32,32,32,,32,32,,32,32,32,,,,,,,,,,,,,,,,,,,,32,,,32,,,32,32,',
',32,,32,,32,,32,,,,,,,,32,,,,,32,32,32,32,32,32,,,,32,32,,,,,,,32,,32',
'32,32,32,,,32,32,33,33,33,,33,,,,33,33,,,,33,,33,33,33,33,33,33,33,',
',,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33,33,33,33',
'33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33,,,33,,33',
',33,,33,,,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,,,,,,,33,,33,33,33',
'33,,,33,33,283,283,283,,283,,,,283,283,,,,283,,283,283,283,283,283,283',
'283,,,,,,283,283,283,283,283,283,283,,,283,,,,,,,283,,,283,283,283,283',
'283,283,283,283,,283,283,283,,283,283,,283,283,283,,,,,,,,,,,,,,,,,',
',,283,,,283,,,283,283,,,283,,,,,,283,,,,,,,,283,,,,,283,283,283,283',
'283,283,,,,283,283,,,,,,,283,,,283,283,283,,,283,283,23,23,23,,23,,',
',23,23,,,,23,,23,23,23,23,23,23,23,,,,,,23,23,23,23,23,23,23,,,23,,',
',,,,23,,,23,23,23,23,23,23,23,23,,23,23,23,,23,23,,23,23,23,,,,,,,,',
',,,,,,,,,,,23,,,23,,,23,23,,,23,,,,,,23,,,,,,,,23,,,,,23,23,23,23,23',
'23,,,,23,23,,,,,,,23,,,23,23,23,,,23,23,514,514,514,,514,,,,514,514',
',,,514,,514,514,514,514,514,514,514,,,,,,514,514,514,514,514,514,514',
',,514,,,,,,,514,,,514,514,514,514,514,514,514,514,,514,514,514,,514',
'514,,,,514,,,,,,,,,,,,,,,,,,,,514,,,514,,,514,514,,,514,,,,,,,,,,,,',
',,,,,,514,514,514,514,514,514,,,,514,514,,,,,,,514,,,514,514,514,,,514',
'514,342,342,342,,342,,,,342,342,,,,342,,342,342,342,342,342,342,342',
',,,,,342,342,342,342,342,342,342,,,342,,,,,,,342,,,342,342,342,342,342',
'342,342,342,,342,342,342,,342,342,,342,342,342,,,,,,,,,,,,,,,,,,,,342',
',,342,,,342,342,,,342,,,,,,342,,,,,,,,342,,,,,342,342,342,342,342,342',
',,,342,342,,,,,,,342,,,342,342,342,,,342,342,123,123,123,123,123,,,',
'123,123,,,,123,,123,123,123,123,123,123,123,,,,,,123,123,123,123,123',
'123,123,,,123,,,,,,123,123,,123,123,123,123,123,123,123,123,123,,123',
'123,123,,123,123,,123,123,123,,,,,,,,,,,,,,,,,,,,123,,,123,,,123,123',
',,123,,123,,,,123,,,,,,,,123,,,,,123,123,123,123,123,123,,,,123,123',
',,,,,,123,,,123,123,123,,,123,123,507,507,507,507,507,,,,507,507,,,',
'507,,507,507,507,507,507,507,507,,,,,,507,507,507,507,507,507,507,,',
'507,,,,,,507,507,,507,507,507,507,507,507,507,507,507,,507,507,507,',
'507,507,,507,507,507,,,,,,,,,,,,,,,,,,,,507,,,507,,,507,507,,,507,,507',
',,,507,,,,,,,,507,,,,,507,507,507,507,507,507,,,,507,507,,,,,,507,507',
',,507,507,507,,,507,507,1007,1007,1007,,1007,,,,1007,1007,,,,1007,,1007',
'1007,1007,1007,1007,1007,1007,,,,,,1007,1007,1007,1007,1007,1007,1007',
',,1007,,,,,,,1007,,,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007',
'1007,1007,,1007,1007,,1007,1007,1007,,,,,,,,,,,,,,,,,,,,1007,,,1007',
',,1007,1007,,,1007,,1007,,1007,,1007,,,,,,,,1007,,,,,1007,1007,1007',
'1007,1007,1007,,,,1007,1007,,,,,,,1007,,1007,1007,1007,1007,,,1007,1007',
'504,504,504,,504,,,,504,504,,,,504,,504,504,504,504,504,504,504,,,,',
',504,504,504,504,504,504,504,,,504,,,,,,,504,,,504,504,504,504,504,504',
'504,504,,504,504,504,,504,504,,504,504,504,,,,,,,,,,,,,,,,,,,,504,,',
'504,,,504,504,,,504,,,,,,504,,,,,,,,504,,,,,504,504,504,504,504,504',
',,,504,504,,,,,,,504,,,504,504,504,,,504,504,502,502,502,,502,,,,502',
'502,,,,502,,502,502,502,502,502,502,502,,,,,,502,502,502,502,502,502',
'502,,,502,,,,,,,502,,,502,502,502,502,502,502,502,502,,502,502,502,',
'502,502,,502,502,502,,,,,,,,,,,,,,,,,,,,502,,,502,,,502,502,,,502,,',
',,,502,,,,,,,,502,,,,,502,502,502,502,502,502,,,,502,502,,,,,,,502,',
',502,502,502,,,502,502,500,500,500,,500,,,,500,500,,,,500,,500,500,500',
'500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,,,500,,,500',
'500,500,500,500,500,500,500,500,500,500,500,,500,500,,500,500,500,,',
',,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,,,500,,500,,,,,,,,500,,',
',,500,500,500,500,500,500,,,,500,500,,,,,,,500,,500,500,500,500,,,500',
'500,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,,497,,497,,,,,,,,497,,,,,497,497,497',
'497,497,497,,,,497,497,,,,,,,497,,497,497,497,497,,,497,497,122,122',
'122,,122,,,,122,122,,,,122,,122,122,122,122,122,122,122,,,,,,122,122',
'122,122,122,122,122,,,122,,,,,,,122,,,122,122,122,122,122,122,122,122',
',122,122,122,,122,122,,122,122,122,,,,,,,,,,,,,,,,,,,,122,,,122,,,122',
'122,,,122,,,,,,122,,,,,,,,122,,,,,122,122,122,122,122,122,,,,122,122',
',,,,,,122,,,122,122,122,,,122,122,62,62,62,,62,,,,62,62,,,,62,,62,62',
'62,62,62,62,62,,,,,,62,62,62,62,62,62,62,,,62,,,,,,,62,,,62,62,62,62',
'62,62,62,62,62,62,62,62,,62,62,,62,62,62,,,,,,,,,,,,,,,,,,,,62,,,62',
',,62,62,,,62,,62,,,,62,,,,,,,,62,,,,,62,62,62,62,62,62,,,,62,62,,,,',
',,62,,62,62,62,62,,,62,62,121,121,121,,121,,,,121,121,,,,121,,121,121',
'121,121,121,121,121,,,,,,121,121,121,121,121,121,121,,,121,,,,,,,121',
',,121,121,121,121,121,121,121,121,,121,121,121,,121,121,,121,121,121',
',,,,,,,,,,,,,,,,,,,121,,,121,,,121,121,,,121,,,,,,121,,,,,,,,121,,,',
',121,121,121,121,121,121,,,,121,121,,,,,,,121,,,121,121,121,,,121,121',
'734,734,734,,734,,,,734,734,,,,734,,734,734,734,734,734,734,734,,,,',
',734,734,734,734,734,734,734,,,734,,,,,,,734,,,734,734,734,734,734,734',
'734,734,,734,734,734,,734,734,,734,734,734,,,,,,,,,,,,,,,,,,,,734,,',
'734,,,734,734,,,734,,734,,,,734,,,,,,,,734,,,,,734,734,734,734,734,734',
',,,734,734,,,,,,,734,,,734,734,734,,,734,734,255,255,255,,255,,,,255',
'255,,,,255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255,255',
'255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255,',
'255,255,,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,',
',,,255,,,,,,,,255,,,,,255,255,255,255,255,255,,,,255,255,,,,,,,255,',
',255,255,255,,,255,255,120,120,120,,120,,,,120,120,,,,120,,120,120,120',
'120,120,120,120,,,,,,120,120,120,120,120,120,120,,,120,,,,,,,120,,,120',
'120,120,120,120,120,120,120,,120,120,120,,120,120,,120,120,120,,,,,',
',,,,,,,,,,,,,,120,,,120,,,120,120,,,120,,,,,,120,,,,,,,,120,,,,,120',
'120,120,120,120,120,,,,120,120,,,,,,,120,,,120,120,120,,,120,120,746',
'746,746,,746,,,,746,746,,,,746,,746,746,746,746,746,746,746,,,,,,746',
'746,746,746,746,746,746,,,746,,,,,,,746,,,746,746,746,746,746,746,746',
'746,746,746,746,746,,746,746,,746,746,746,,,,,,,,,,,,,,,,,,,,746,,,746',
',,746,746,,,746,,746,,746,,746,,,,,,,,746,,,,,746,746,746,746,746,746',
',,,746,746,,,,,,,746,,746,746,746,746,,,746,746,66,66,66,,66,,,,66,66',
',,,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,,66',
',,66,66,66,66,66,66,66,66,,66,66,66,,66,66,,66,66,66,,,,,,,,,,,,,,,',
',,,,66,,,66,,,66,66,,,66,,,,,,66,,,,,,,,66,,,,,66,66,66,66,66,66,,,',
'66,66,,,,,,,66,,,66,66,66,,,66,66,354,354,354,,354,,,,354,354,,,,354',
',354,354,354,354,354,354,354,,,,,,354,354,354,354,354,354,354,,,354',
',,,,,,354,,,354,354,354,354,354,354,354,354,,354,354,354,,354,354,,',
',354,,,,,,,,,,,,,,,,,,,,354,,,354,,,354,354,,,354,,,,,,,,,,,,,,,,,,',
'354,354,354,354,354,354,,,,354,354,,,,,,,354,,,354,354,354,,,354,354',
'356,356,356,,356,,,,356,356,,,,356,,356,356,356,356,356,356,356,,,,',
',356,356,356,356,356,356,356,,,356,,,,,,,356,,,356,356,356,356,356,356',
'356,356,,356,356,356,,356,356,,,,356,,,,,,,,,,,,,,,,,,,,356,,,356,,',
'356,356,,,356,,,,,,,,,,,,,,,,,,,356,356,356,356,356,356,,,,356,356,',
',,,,,356,,,356,356,356,,,356,356,119,119,119,,119,,,,119,119,,,,119',
',119,119,119,119,119,119,119,,,,,,119,119,119,119,119,119,119,,,119',
',,,,,,119,,,119,119,119,119,119,119,119,119,,119,119,119,,119,119,,119',
'119,119,,,,,,,,,,,,,,,,,,,,119,,,119,,,119,119,,,119,,,,,,119,,,,,,',
',119,,,,,119,119,119,119,119,119,,,,119,119,,,,,,,119,,,119,119,119',
',,119,119,114,114,114,114,114,,,,114,114,,,,114,,114,114,114,114,114',
'114,114,,,,,,114,114,114,114,114,114,114,,,114,,,,,,114,114,114,114',
'114,114,114,114,114,114,114,114,,114,114,114,,114,114,,114,114,114,',
',,,,,,,,,,,,,,,,,,114,,,114,,,114,114,,,114,,114,,,,114,,,,,,,,114,',
',,,114,114,114,114,114,114,,,,114,114,,,,,,114,114,,,114,114,114,,,114',
'114,456,456,456,,456,,,,456,456,,,,456,,456,456,456,456,456,456,456',
',,,,,456,456,456,456,456,456,456,,,456,,,,,,,456,,,456,456,456,456,456',
'456,456,456,,456,456,456,,456,456,,456,456,456,,,,,,,,,,,,,,,,,,,,456',
',,456,,,456,456,,,456,,,,,,456,,,,,,,,456,,,,,456,456,456,456,456,456',
',,,456,456,,,,,,,456,,,456,456,456,,,456,456,455,455,455,,455,,,,455',
'455,,,,455,,455,455,455,455,455,455,455,,,,,,455,455,455,455,455,455',
'455,,,455,,,,,,,455,,,455,455,455,455,455,455,455,455,,455,455,455,',
'455,455,,455,455,455,,,,,,,,,,,,,,,,,,,,455,,,455,,,455,455,,,455,,',
',,,455,,,,,,,,455,,,,,455,455,455,455,455,455,,,,455,455,,,,,,,455,',
',455,455,455,,,455,455,454,454,454,,454,,,,454,454,,,,454,,454,454,454',
'454,454,454,454,,,,,,454,454,454,454,454,454,454,,,454,,,,,,,454,,,454',
'454,454,454,454,454,454,454,,454,454,454,,454,454,,454,454,454,,,,,',
',,,,,,,,,,,,,,454,,,454,,,454,454,,,454,,,,,,454,,,,,,,,454,,,,,454',
'454,454,454,454,454,,,,454,454,,,,,,,454,,,454,454,454,,,454,454,452',
'452,452,,452,,,,452,452,,,,452,,452,452,452,452,452,452,452,,,,,,452',
'452,452,452,452,452,452,,,452,,,,,,,452,,,452,452,452,452,452,452,452',
'452,452,452,452,452,,452,452,,452,452,452,,,,,,,,,,,,,,,,,,,,452,,,452',
',,452,452,,,452,,452,,452,,452,,,,,,,,452,,,,,452,452,452,452,452,452',
',,,452,452,,,,,,,452,,452,452,452,452,,,452,452,325,325,325,,325,,,',
'325,325,,,,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325',
'325,325,,,325,,,,,,,325,,,325,325,325,325,325,325,325,325,,325,325,325',
',325,325,,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,325,,325,325,,,325',
',,,,,325,,,,,,,,325,,,,,325,325,325,325,325,325,,,,325,325,,,,,,,325',
',,325,325,325,,,325,325,328,328,328,,328,,,,328,328,,,,328,,328,328',
'328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328,,,,,,,328',
',,328,328,328,328,328,328,328,328,,328,328,328,,328,328,,328,328,328',
',,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,,,328,,,',
',328,328,328,328,328,328,,,,328,328,,,,,,,328,,,328,328,328,,,328,328',
'565,565,565,,565,,,,565,565,,,,565,,565,565,565,565,565,565,565,,,,',
',565,565,565,565,565,565,565,,,565,,,,,,,565,,,565,565,565,565,565,565',
'565,565,,565,565,565,,565,565,,565,565,565,,,,,,,,,,,,,,,,,,,,565,,',
'565,,,565,565,,,565,,,,,,565,,,,,,,,565,,,,,565,565,565,565,565,565',
',,,565,565,,,,,,,565,,,565,565,565,,,565,565,221,221,221,,221,,,,221',
'221,,,,221,,221,221,221,221,221,221,221,,,,,,221,221,221,221,221,221',
'221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221,,221,221,221,',
'221,221,,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,',
',,,221,,,,,,,,221,,,,,221,221,221,221,221,221,,,,221,221,221,,,,,,221',
',,221,221,221,,,221,221,220,220,220,,220,,,,220,220,,,,220,,220,220',
'220,220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220',
',,220,220,220,220,220,220,220,220,,220,220,220,,220,220,,220,220,220',
',,,,,,,,,,,,,,,,,,,220,,,220,,,220,220,,,220,,,,,,220,,,,,,,,220,,,',
',220,220,220,220,220,220,,,,220,220,,,,,,,220,,,220,220,220,,,220,220',
'219,219,219,,219,,,,219,219,,,,219,,219,219,219,219,219,219,219,,,,',
',219,219,219,219,219,219,219,,,219,,,,,,,219,,,219,219,219,219,219,219',
'219,219,,219,219,219,,219,219,,219,219,219,,,,,,,,,,,,,,,,,,,,219,,',
'219,,,219,219,,,219,,,,,,219,,,,,,,,219,,,,,219,219,219,219,219,219',
',,,219,219,,,,,,,219,,,219,219,219,,,219,219,218,218,218,,218,,,,218',
'218,,,,218,,218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218',
'218,,,218,,,,,,,218,,,218,218,218,218,218,218,218,218,,218,218,218,',
'218,218,,218,218,218,,,,,,,,,,,,,,,,,,,,218,,,218,,,218,218,,,218,,',
',,,218,,,,,,,,218,,,,,218,218,218,218,218,218,,,,218,218,,,,,,,218,',
',218,218,218,,,218,218,217,217,217,,217,,,,217,217,,,,217,,217,217,217',
'217,217,217,217,,,,,,217,217,217,217,217,217,217,,,217,,,,,,,217,,,217',
'217,217,217,217,217,217,217,,217,217,217,,217,217,,217,217,217,,,,,',
',,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,217,,,,217,,,,,,,,217,,,,,217',
'217,217,217,217,217,,,,217,217,,,,,,,217,,,217,217,217,,,217,217,216',
'216,216,,216,,,,216,216,,,,216,,216,216,216,216,216,216,216,,,,,,216',
'216,216,216,216,216,216,,,216,,,,,,,216,,,216,216,216,216,216,216,216',
'216,,216,216,216,,216,216,,216,216,216,,,,,,,,,,,,,,,,,,,,216,,,216',
',,216,216,,,216,,,,,,216,,,,,,,,216,,,,,216,216,216,216,216,216,,,,216',
'216,,,,,,,216,,,216,216,216,,,216,216,539,539,539,,539,,,,539,539,,',
',539,,539,539,539,539,539,539,539,,,,,,539,539,539,539,539,539,539,',
',539,,,,,,,539,,,539,539,539,539,539,539,539,539,539,539,539,539,,539',
'539,,539,539,539,,,,,,,,,,,,,,,,,,,,539,,,539,,,539,539,,,539,,,,,,539',
',,,,,,,539,,,,,539,539,539,539,539,539,,,,539,539,,,,,,,539,,539,539',
'539,539,,,539,539,536,536,536,,536,,,,536,536,,,,536,,536,536,536,536',
'536,536,536,,,,,,536,536,536,536,536,536,536,,,536,,,,,,,536,,,536,536',
'536,536,536,536,536,536,536,536,536,536,,536,536,,536,536,536,,,,,,',
',,,,,,,,,,,,,536,,,536,,,536,536,,,536,,536,,,,536,,,,,,,,536,,,,,536',
'536,536,536,536,536,,,,536,536,,,,,,,536,,536,536,536,536,,,536,536',
'212,212,212,,212,,,,212,212,,,,212,,212,212,212,212,212,212,212,,,,',
',212,212,212,212,212,212,212,,,212,,,,,,,212,,,212,212,212,212,212,212',
'212,212,212,212,212,212,,212,212,,212,212,212,,,,,,,,,,,,,,,,,,,,212',
',,212,,,212,212,,,212,,212,,212,,212,,,,,,,,212,,,,,212,212,212,212',
'212,212,,,,212,212,,,,,,,212,,212,212,212,212,,,212,212,334,334,334',
',334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334',
'334,334,334,334,,,334,,,,,,,334,,,334,334,334,334,334,334,334,334,334',
'334,334,334,,334,334,,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,,,334',
'334,,,334,,,,,,334,,,,,,,,334,,,,,334,334,334,334,334,334,,,,334,334',
',,,,,,334,,334,334,334,334,,,334,334,211,211,211,,211,,,,211,211,,,',
'211,,211,211,211,211,211,211,211,,,,,,211,211,211,211,211,211,211,,',
'211,,,,,,,211,,,211,211,211,211,211,211,211,211,,211,211,211,,211,211',
',211,211,211,,,,,,,,,,,,,,,,,,,,211,,,211,,,211,211,,,211,,,,,,211,',
',,,,,,211,,,,,211,211,211,211,211,211,,,,211,211,,,,,,,211,,,211,211',
'211,,,211,211,530,530,530,,530,,,,530,530,,,,530,,530,530,530,530,530',
'530,530,,,,,,530,530,530,530,530,530,530,,,530,,,,,,,530,,,530,530,530',
'530,530,530,530,530,,530,530,530,,530,530,,530,530,530,,,,,,,,,,,,,',
',,,,,,530,,,530,,,530,530,,,530,,,,,,530,,,,,,,,530,,,,,530,530,530',
'530,530,530,,,,530,530,,,,,,,530,,,530,530,530,,,530,530,526,526,526',
',526,,,,526,526,,,,526,,526,526,526,526,526,526,526,,,,,,526,526,526',
'526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526',
'526,526,,526,526,,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526',
',,526,,,,,,526,,,,,,,,526,,,,,526,526,526,526,526,526,,,,526,526,,,',
',,,526,,,526,526,526,,,526,526,341,341,341,,341,,,,341,341,,,,341,,341',
'341,341,341,341,341,341,,,,,,341,341,341,341,341,341,341,,,341,,,,,',
',341,,,341,341,341,341,341,341,341,341,,341,341,341,,341,341,,341,341',
'341,,,,,,,,,,,,,,,,,,,,341,,,341,,,341,341,,,341,,,,,,341,,,,,,,,341',
',,,,341,341,341,341,341,341,,,,341,341,,,,,,,341,,,341,341,341,,,341',
'341,525,525,525,,525,,,,525,525,,,,525,,525,525,525,525,525,525,525',
',,,,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525',
'525,525,525,,525,525,525,,525,525,,525,525,525,,,,,,,,,,,,,,,,,,,,525',
',,525,,,525,525,,,525,,,,,,525,,,,,,,,525,,,,,525,525,525,525,525,525',
',,,525,525,,,,,,,525,,,525,525,525,,,525,525,210,210,210,,210,,,,210',
'210,,,,210,,210,210,210,210,210,210,210,,,,,,210,210,210,210,210,210',
'210,,,210,,,,,,,210,,,210,210,210,210,210,210,210,210,,210,210,210,',
'210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210,,,210,,,210,210,,,210,,210',
',,,210,,,,,,,,210,,,,,210,210,210,210,210,210,,,,210,210,,,,,,,210,',
',210,210,210,,,210,210,522,522,522,,522,,,,522,522,,,,522,,522,522,522',
'522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522,,,,,,,522,,,522',
'522,522,522,522,522,522,522,,522,522,522,,522,522,,,,522,,,,,,,,,,,',
',,,,,,,,522,,,522,,,522,522,,,522,,,,,,,,,,,,,,,,,,,522,522,522,522',
'522,522,,,,522,522,,,,,,,522,,,522,522,522,,,522,522,516,516,516,,516',
',,,516,516,,,,516,,516,516,516,516,516,516,516,,,,,,516,516,516,516',
'516,516,516,,,516,,,,,,,516,,,516,516,516,516,516,516,516,516,516,516',
'516,516,,516,516,,516,516,516,,,,,,,,,,,,,,,,,,,,516,,,516,,,516,516',
',,516,,516,,516,,516,,,,,,,,516,,,,,516,516,516,516,516,516,,,,516,516',
',,,,,,516,,516,516,516,516,436,,516,516,,,,436,436,436,,,436,436,436',
'712,436,712,712,712,712,712,,,,436,436,436,436,,,712,,,,,436,436,,436',
'436,436,436,436,,,,,,,,,,712,,,,,,,,,,,712,712,,436,436,436,436,436',
'436,436,436,436,436,436,436,436,436,,,436,436,436,,,436,,,436,,,436',
'436,,436,712,436,,436,,436,436,436,436,436,436,436,,436,436,436,,,,',
',,,,,,,,436,436,436,436,435,436,,436,,,,435,435,435,,,435,435,435,710',
'435,710,710,710,710,710,,,,435,435,435,435,,,710,,,,,435,435,,435,435',
'435,435,435,,,,,,,,,,710,,,,,,,,,710,710,710,710,,435,435,435,435,435',
'435,435,435,435,435,435,435,435,435,,,435,435,435,,,435,,,435,,,435',
'435,,435,710,435,,435,,435,435,435,435,435,435,435,,435,435,435,,,,',
',,,,,,,,435,435,435,435,59,435,,435,,,,59,59,59,,,59,59,59,708,59,708',
'708,708,708,708,,,,,59,59,59,,,708,,,,,59,59,,59,59,59,59,59,,,,,,,',
',,708,,,,,,,,,708,708,708,708,,59,59,59,59,59,59,59,59,59,59,59,59,59',
'59,,,59,59,59,,,59,,,59,,,59,59,,59,708,59,,59,,59,59,59,59,59,59,59',
',59,,59,,,,,,,,,,,,,59,59,59,59,,59,,59,12,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,12,12,12,12,12,,,,12,12,12,12,12,12,12,12',
'12,12,,,,,,12,12,12,12,12,12,12,12,12,,,12,,,,,,,,,12,12,,12,12,12,12',
'12,12,12,,,12,12,,,,12,12,12,12,,,,,,,,,,,,,,12,12,,12,12,12,12,12,12',
'12,12,12,12,12,,,12,12,,,,,,,,,,12,,,,,,,,,12,628,628,628,628,628,628',
'628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628',
'628,,,,628,628,628,628,628,628,628,628,628,628,,,,,,628,628,628,628',
'628,628,628,628,628,,,628,,,,,,,,,628,628,,628,628,628,628,628,628,628',
',,628,628,,,,628,628,628,628,,,,,,,,,,,,,,628,628,,628,628,628,628,628',
'628,628,628,628,628,628,,,628,628,,,,,,,,,,628,,,,,,,,,628,756,756,756',
'756,756,756,756,756,756,756,756,756,756,756,756,756,756,756,756,756',
'756,756,756,756,,,,756,756,756,756,756,756,756,756,756,756,,,,,,756',
'756,756,756,756,756,756,756,756,,,756,,,,,,,,,756,756,,756,756,756,756',
'756,756,756,,,756,756,,,,756,756,756,756,,,,,,,,,,,,,,756,756,,756,756',
'756,756,756,756,756,756,756,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,405',
'405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405',
'405,405,405,405,405,405,,,,405,405,405,405,405,405,405,405,405,405,',
',,,,405,405,405,405,405,405,405,405,405,,,405,,,,,,,,,405,405,,405,405',
'405,405,405,405,405,,,405,405,,,,405,405,405,405,,,,,,,,,,,,,,405,405',
',405,405,405,405,405,405,405,405,405,405,405,,,405,405,,,,,,,,,,405',
',,,,,,,,405,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91',
'91,91,91,91,91,,,,91,91,91,91,91,91,91,91,91,91,,,,,,91,91,91,91,91',
'91,91,91,91,91,91,91,,91,,,,,,,91,91,,91,91,91,91,91,91,91,,,91,91,',
',,91,91,91,91,,,,,,,,,,,,,,91,91,,91,91,91,91,91,91,91,91,91,91,91,',
',91,,,,,,,,,,,,,,,,,,,,91,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,',
'11,11,11,11,11,11,11,11,11,11,,11,,,,,,,,,11,11,,11,11,11,11,11,11,11',
',,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11',
'11,11,,,11,11,,,,,,,,,,11,,,,,,,,,11,74,74,74,74,74,74,74,74,74,74,74',
'74,74,74,74,74,74,74,74,74,74,74,74,74,,,,74,74,74,74,74,74,74,74,74',
'74,,,,,,74,74,74,74,74,74,74,74,74,74,74,74,,74,,,,,,,74,74,,74,74,74',
'74,74,74,74,,,74,74,,,,74,74,74,74,,,,,,74,,,,,,,,74,74,,74,74,74,74',
'74,74,74,74,74,74,74,30,,74,,,,,30,30,30,,,30,30,30,1042,30,1042,1042',
'1042,1042,1042,74,,,30,30,30,,,,1042,,,,,30,30,,30,30,30,30,30,,,,,',
',,,,1042,,,,,,,,,,,1042,1042,,30,30,30,30,30,30,30,30,30,30,30,30,30',
'30,,,30,30,30,,,30,,30,30,,,30,30,,30,1042,30,,30,,30,30,30,30,30,30',
'30,,30,30,30,,,,,,,,,,,,31,30,30,,30,,30,31,31,31,,,31,31,31,942,31',
'942,942,942,942,942,,,,,31,31,,,,942,,,,,31,31,,31,31,31,31,31,,,,,',
',,,,942,942,,,,,,,,942,942,942,942,,31,31,31,31,31,31,31,31,31,31,31',
'31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,942,31,,31,,31,31,31,31',
'31,31,31,,31,,31,,,,,,,,,,,,484,31,31,,31,,31,484,484,484,,,484,484',
'484,546,484,546,546,546,546,546,,,,484,484,,,,,546,,,,,484,484,,484',
'484,484,484,484,,,,,,,,,,546,,,,,,,,,546,546,546,546,,426,,,,,,,426',
'426,426,,484,426,426,426,,426,,484,,,,,484,484,426,426,426,,,,546,,',
',,426,426,,426,426,426,426,426,,484,484,,,,,,,,,,,,,484,,,,,484,,,426',
'426,426,426,426,426,426,426,426,426,426,426,426,426,,,426,426,426,,',
'426,,426,426,,,426,426,,426,,426,,426,,426,426,426,426,426,426,426,',
'426,426,426,,,,,,517,517,,,517,,,426,426,,426,,426,517,517,,517,517',
'517,517,517,517,517,,,517,517,,,,517,517,517,517,,,,,,517,,,,,,,,517',
'517,,517,517,517,517,517,517,517,517,517,517,517,,,517,,,,,518,518,',
',518,,,,,,,,,518,518,517,518,518,518,518,518,518,518,,,518,518,,,,518',
'518,518,518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518',
'518,518,518,,,518,,,,,450,450,,,450,,,,,,,,,450,450,518,450,450,450',
'450,450,450,450,,,450,450,,,,450,450,450,450,,,,,,450,,,,,,,,450,450',
',450,450,450,450,450,450,450,450,450,450,450,,,450,,,,,451,451,,,451',
',,,,,,,,451,451,450,451,451,451,451,451,451,451,,,451,451,,,,451,451',
'451,451,,,,,,451,,,,,,,,451,451,,451,451,451,451,451,451,451,451,451',
'451,451,,,451,,,,,263,263,,,263,,,,,,,,,263,263,451,263,263,263,263',
'263,263,263,,,263,263,,,,263,263,263,263,,,,,,,,,,,,,,263,263,,263,263',
'263,263,263,263,263,263,263,263,263,,,263,,,,,744,744,,,744,,,,,,,,',
'744,744,263,744,744,744,744,744,744,744,,,744,744,,,,744,744,744,744',
',,,,,744,,,,,,,,744,744,,744,744,744,744,744,744,744,744,744,744,744',
',,744,,,,,745,745,,,745,,,,,,,,,745,745,744,745,745,745,745,745,745',
'745,,,745,745,,,,745,745,745,745,,,,,,745,,,,,,,,745,745,,745,745,745',
'745,745,745,745,745,745,745,745,,,745,,,,,959,959,,,959,,,,,,,,,959',
'959,745,959,959,959,959,959,959,959,,,959,959,,,,959,959,959,959,,,',
',,959,,,,,,,,959,959,,959,959,959,959,959,959,959,959,959,959,959,,1011',
'959,1011,1011,1011,1011,1011,,,214,214,,,214,,,1011,,,,,959,214,214',
',214,214,214,214,214,214,214,,,214,214,,,1011,214,214,214,214,,,,,,214',
'1011,1011,,,,,,214,214,,214,214,214,214,214,214,214,214,214,214,214',
',,214,,,,,1009,1009,,,1009,,1011,,,,,,,1009,1009,214,1009,1009,1009',
'1009,1009,1009,1009,,,1009,1009,,,,1009,1009,1009,1009,,,,,,1009,,,',
',,,,1009,1009,,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009',
',,1009,,,,,1008,1008,,,1008,,,,,,,,,1008,1008,1009,1008,1008,1008,1008',
'1008,1008,1008,,,1008,1008,,,,1008,1008,1008,1008,,,,,,1008,,,,,,,,1008',
'1008,,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,,,1008',
',,,,213,213,,,213,,,,,,,,,213,213,1008,213,213,213,213,213,213,213,',
',213,213,,,,213,213,213,213,,,,,,213,,,,,,,,213,213,,213,213,213,213',
'213,213,213,213,213,213,213,,337,213,337,337,337,337,337,,,,,,,,,,337',
',,,,213,,,,,,,,,,,,,,,,,337,337,528,528,,,528,,,337,337,337,337,,,528',
'528,,528,528,528,528,528,528,528,,,528,528,,,,528,528,528,528,,,,,,528',
',,,337,,,,528,528,,528,528,528,528,528,528,528,528,528,528,528,,,528',
',,,,527,527,,,527,,,,,,,,,527,527,528,527,527,527,527,527,527,527,,',
'527,527,,,,527,527,527,527,,,,,,527,,,,,,,,527,527,,527,527,527,527',
'527,527,527,527,527,527,527,,992,527,992,992,992,992,992,994,,994,994',
'994,994,994,,,992,,,,,527,,994,996,,996,996,996,996,996,,,,,,,,992,',
'996,,,,,994,,992,992,992,992,,,,,,994,994,,,,659,996,659,659,659,659',
'659,,,,,,996,996,,885,659,885,885,885,885,885,992,,,,,,,994,,885,,,',
',,,659,888,,888,888,888,888,888,996,659,659,659,659,,,885,890,888,890',
'890,890,890,890,,885,885,885,885,,,,,890,,,,,659,,888,,,,,,659,,,888',
'888,888,888,,913,890,913,913,913,913,913,885,,,,,890,890,,,913,915,',
'915,915,915,915,915,917,,917,917,917,917,917,888,,915,,,,,913,,917,',
',,,,890,913,913,913,913,,,,919,915,919,919,919,919,919,,917,,,,915,915',
',,919,,,917,917,600,,600,600,600,600,600,,913,,,,,,,,600,919,,,,,,,',
'915,,,919,919,,,917,,,,,,600,600,,,,,,,,600,600,600,600,,,,588,588,',
',588,,,,919,,,,,588,588,,588,588,588,588,588,588,588,,,588,588,,,600',
'588,588,588,588,,,,,,588,,,,,,,,588,588,,588,588,588,588,588,588,588',
'588,588,588,588,,,588,,,,,587,587,,,587,,,,,,,,,587,587,588,587,587',
'587,587,587,587,587,,,587,587,,,,587,587,587,587,,,,,,587,,,,,,,,587',
'587,,587,587,587,587,587,587,587,587,587,587,587,,,587,,,,,,,,,,,,,',
',,,,,,587' ]
        racc_action_check = arr = ::Array.new(26218, 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,  1328,  4443,    61,   nil,   416,   nil,   nil, 12006,  1482,
   nil, 24121, 23456,   -20,   nil,   -42,    81,  1272,   427,    46,
   610,   nil,   -73, 16486,  1764,   185,   nil,   604,   nil,    20,
 24366, 24491, 16066, 16206,  5006,   nil,   918,  5706,  5846,   nil,
    89,   428,   389,   173,   164,  9766, 10046, 11026,   118,   780,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23324,
   nil,   -68, 18026,   nil,   -19,   nil, 18866, 11586,   nil,   nil,
 11726, 11866,   171,   nil, 24254,   nil,   nil,   nil,   nil,   nil,
   -86,   nil,   nil,   nil,   nil,   nil,   nil,   140,   159,   163,
   217, 23988,   nil,   nil,   nil,   nil,   nil,   nil,   380,   nil,
   nil,   512,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil, 19426,   nil,   nil,   nil,   nil, 19286,
 18586, 18166, 17886, 16906,   239,   nil,   253,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   236,   nil,  4584,
 22646, 21946, 21666, 25502, 25298,   nil, 21246, 21106, 20966, 20826,
 20686, 20546,   nil,   nil,   849,   194,   231,   314,   291,   235,
   308,   nil, 10466,  3456,   309,  9626,  8786,  8366,  7666,  7526,
  7246,  7106,  6966,  5986,  5426, 15786, 15226, 14666, 13826, 13686,
 11446, 12706, 12426, 12286, 12146, 18446,  6826, 12846, 13266, 14946,
 15086,   nil,   nil, 25023,   nil,   nil,   306, 15366,   nil,   323,
   nil,   nil,   nil, 15506,   nil,   nil, 15646,   nil,  2187,   nil,
   314,   351,   nil, 16346,   402,  5146,   nil,   366,  5286,   nil,
   nil,   259,   nil,  1467,  5566,   359,  4866,   397,   436,   412,
  6406,  1905,  1203,  1200,  1131,   507,  1103,   nil,   474,   448,
   -14,   nil,   nil,   nil,   503,   161,   473, 10886,   nil,   429,
   537,   962,   nil,   541,   nil, 20126,  3315,   nil, 20266,   521,
   nil,   449,   507,   527, 21806,   nil,   nil, 25564,    13,    21,
    23, 22366, 16766,   224,   608,   504,    22,    24,   921,   582,
    30,   653,   nil,   nil, 19006,   nil, 19146,   655,   615,   676,
   681,   738,   201,   388,   549,   570,   nil,   706,   nil,   nil,
   nil,   nil,   nil,   316,   nil,   382,   nil,   222,   nil,   555,
   249,   nil,   556,   -58,   nil,   565,   -41,   nil,   567,   125,
   nil,   412,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  1764, 23855,   nil,   nil,   nil,   nil,
   578,   nil,   nil,   575, 13406,   578,   nil,   nil,  1059,   582,
   nil,   nil,   581,   596,   124,   353, 24683,   nil,   nil,   nil,
   255,   130,   644,   nil,   nil, 23194, 23064,   nil,  1341,   nil,
   594,   nil,   nil,   777,   nil,   nil,   nil,   nil,   141,   nil,
 24887, 24955, 19986,   328, 19846, 19706, 19566,  3597,  4725,   804,
   945,   675,   677,   689,   701,  5286,  5426,  3197,  5146,  4584,
  4443,  4302,  4020,  3738,  3456,  3315,  5006,  4866,   659,   462,
  4161,  3879,  1482,   -13, 24616,   nil,   nil,   nil,   nil,   nil,
   nil,   118,   -57,   643,   648,   nil,   nil, 17746,   nil,   nil,
 17606,   nil, 17466,   nil, 17326,   nil,   nil, 17046,  1608,   659,
   660,   nil,   nil,   661, 16626,   667, 22926, 24751, 24819,  1341,
   743,   nil, 22786,   708,   nil, 22506, 22226, 25672, 25604,  1623,
 22086,   833,   846,   632,   nil,   nil, 21526,   nil,   nil, 21386,
   nil,   746,   nil,   283,   774,    28, 24580,   nil,   735,   738,
   nil,   739,   743,   748,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   747,   648,   nil,   nil, 20406,   nil,   nil,   nil,   839,
   nil,   nil,   nil,   840,   nil,   nil,   847,  4161,   887,   nil,
   777,    60,    63,   884,   896,   nil, 11306, 26083, 26015,    35,
   nil,   225,   263,    -4,   nil,  1059,   nil,     9, 10746,   nil,
 25961,   nil, 10606,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   186,   nil,   nil,   130,   nil,   nil,
   nil,   780,   nil,   nil,   781,   nil,   802,   nil, 23589,   nil,
   787, 10326,  9906,   430,   830,  9486,  9206,  9066,  8926,   829,
   nil,   nil,   nil,  8646,  8506,   833,   nil,  7946,  7806,   nil,
   171,   105,     0,   644,   805,   918,   804,   nil,   nil, 25795,
   nil,   nil,   915,   -10,   -43,   nil,   nil,   nil,   nil,   815,
   nil,   857,  6266,   nil,   nil,   nil,   762,  -108,  6126,   817,
   nil,   828,   158,    90,   865,   320,  1244,   867,   829, 13966,
  2469,   892,   139,   946, 13546,   nil,   838,   447,   nil,   nil,
   nil,  4725,  3033,   848,   335,   nil,   nil,   220, 23288,   nil,
 23158,   nil, 23028,   nil, 12566,   nil,   608,   nil,   849,   223,
   855,   nil,   nil,   nil,   nil,   653,   nil,   982,   nil,   nil,
   nil,   nil,   991,   nil, 18306,   877,    36,    -4,    31,    66,
  6686,   nil,   990,   nil, 25091, 25159, 18726,   nil,   nil,   nil,
   114,   425,  3738,  1200,   575,   315, 23722,   147,   760,  3597,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   876, 12986,  3033,
 13126,   nil,   879,   nil,  2892,   nil,  2751,   nil,   nil,  2610,
   nil,  1200,   nil,  2328, 14106, 14246, 14386, 14526,   133, 14806,
   880,   884,   nil,   889,   901,   902,   nil,   923,   913,   910,
   904, 15926,   nil,   nil,  1341,   nil,   nil,   nil,  1482,  1623,
   nil,   nil,   922,   205,   nil,   nil,  1044,   nil,  3174,   928,
   978,   nil,   nil,   nil,   nil,   954,  1062,   946,   944,   nil,
   nil,   nil,   954,   956,   nil,   957,   958,   nil,   966,   nil,
   nil,   970,  3160,   969,  3190,   nil,  1090,   nil,  6546,  1091,
  2046,  2187,   nil,    19,     5,    31,   289,  1236,   nil,   975,
  3879,  7386,   nil,   419,  1096,  1106,   993,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  1009,  1012,   nil,  2046,  8086,
  8226,  1905,   344,   nil,   nil, 25810,   nil,   nil, 25834,   nil,
 25849,   nil,   nil,  1037,  1186,  9346,  1062,  1094,  1141,  2328,
  1041,  1150,   nil,  2751,   nil,   nil,    -7, 10186,   nil,   nil,
   nil,   nil,   nil, 25886,   nil, 25903,   nil, 25910,   nil, 25940,
   nil,   nil,   nil,   nil,   373,   641,  1042,   nil,    32,   nil,
  1163,  1173, 11166,  4020,   nil,   nil,  1178,    48,   nil,   nil,
   nil,   nil, 24455,   nil,  1061,   nil,   nil,  1063,  1064,  1069,
  1078,   nil,  1079,   nil,   434,   nil,   nil,   nil,   682, 25227,
   nil,   nil,  1099,   nil,   nil,   nil,  2892,   520,   452,   340,
  1158,   102,   nil,  1085,  1095,  1097,  1098,  1099,  3197,  1107,
  3301,  2469,   nil,   nil,   nil,   415,  1059,   nil,   nil,  4302,
  2610,   nil, 25734,   nil, 25741,   nil, 25758,   nil,   443,   nil,
   nil,   nil,  1327,  1152,  1156,   nil,  1249, 17186, 25434, 25366,
   516, 25289,   nil,   nil,   nil,   nil,  3391,  1131,   636,   nil,
   nil,   nil,  1254,  1273,  1278,  1161,  1162,  1166,  1171,   nil,
   nil,  1186,   -11,    10,    -9,  1095,  1184,  1194,   nil,   nil,
   nil,   nil, 24330,   nil,   nil,   nil,   nil,    -8,   nil,  -105,
   nil ]

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

clist = [
'6,299,220,419,366,584,262,280,280,280,135,135,130,130,125,208,327,335',
'488,213,416,393,499,133,133,577,580,439,325,4,693,274,523,279,279,279',
'117,331,442,532,670,547,753,670,705,706,263,633,846,114,339,340,113',
'297,343,673,313,313,316,320,330,743,794,837,493,426,432,338,338,834',
'720,338,9,923,554,130,951,118,9,816,957,374,926,376,378,381,384,387',
'390,376,313,797,130,955,673,266,272,275,728,731,295,117,375,399,400',
'401,402,223,391,535,538,614,851,849,617,484,597,344,599,740,338,338',
'338,338,986,354,604,860,598,661,611,863,989,615,356,827,615,665,666',
'752,600,277,289,290,756,942,850,341,334,696,796,328,281,281,281,326',
'367,747,798,351,336,541,370,979,499,954,663,333,545,700,337,628,483',
'804,491,808,449,492,670,670,951,809,332,397,9,415,1019,734,957,820,906',
'673,415,403,372,373,899,377,380,1,664,1029,383,386,389,870,758,759,392',
'861,420,923,858,279,427,436,1017,405,412,445,446,447,448,832,841,353',
'450,207,17,679,893,495,829,945,17,902,124,688,602,342,2,,280,654,732',
',834,,,224,703,280,510,,1037,,,,224,224,224,,17,304,304,,837,504,279',
',490,420,,,279,,,279,498,498,834,524,788,554,,,883,884,947,520,,,224',
'224,411,417,224,348,,,437,441,426,432,,,517,681,,813,807,,,509,,274',
',,515,313,513,699,117,527,912,581,582,,,533,521,795,542,801,,507,313',
'554,506,,17,1038,338,338,,224,224,224,224,17,587,709,711,713,,,,,,834',
'295,,,854,508,295,,761,,684,761,1020,934,313,117,313,489,735,,684,833',
',835,,990,494,601,281,,,583,777,,812,,16,281,782,,634,,16,6,649,135',
',130,,627,,810,,,,,,,133,,,498,498,670,,640,,,641,,16,,626,,646,673',
'17,224,224,224,684,991,,224,224,224,224,224,224,667,668,420,427,436',
'279,543,,,,866,17,,,656,,677,864,865,,442,,680,,,,9,824,,,524,,,657',
'640,,,641,524,935,,657,657,554,639,224,,,,,645,224,,298,224,,821,1030',
',16,,,,,,810,420,,16,279,427,436,17,,17,,,,304,17,427,436,,692,,313',
',,,859,,933,,313,,304,,,,,,,662,,17,,224,,801,948,,801,949,,801,,801',
',,224,224,,,,,936,,,,676,,,595,,595,,420,973,,279,427,436,,,966,,,,',
'684,,751,,,16,757,791,,,,,,,,729,729,981,,806,669,,,,,,,,,16,135,748',
'130,17,766,914,916,634,918,920,,921,799,133,,524,805,,,1021,815,,828',
',823,,814,,,697,,,1047,,634,657,,1025,,801,498,801,415,801,,801,,410',
'845,,,224,554,,,640,799,,641,868,16,646,16,,817,822,,16,,,313,298,,',
',1023,1024,,,,,313,853,,,869,,,634,801,,,16,,773,775,817,855,817,,778',
'780,,,441,,17,,,,,,,304,338,224,,420,436,427,279,304,,,,,,,772,224,130',
',,,298,,,,,298,,,,498,792,,1012,1013,1014,1015,,799,,,862,911,,,,867',
',,,,886,886,886,,,922,16,1031,,,,,17,,,17,,,,,,224,,904,,830,,908,830',
'313,941,,,224,,,944,224,,791,,928,791,,791,1048,,,634,,,,,29,937,,,',
'338,29,,,,877,,,,,,684,,338,224,224,29,,,,224,224,,,224,29,29,29,,29',
',,,,,,,729,,,,,,,,938,,,,,,16,,,,304,,,,29,29,,,29,,313,304,,,,,,,,',
'793,,313,17,17,,,,,,1001,,,791,,791,,791,,791,,886,886,886,886,,886',
',,,,,29,,,,436,29,29,29,29,29,224,,988,,16,1008,224,16,,836,,838,17',
'17,,,,817,,17,18,791,,,,,18,,830,,224,792,,,792,,792,,,420,,,279,427',
'436,634,,,,,817,,,,18,306,306,886,886,886,886,896,,,17,887,889,891,17',
'17,,,,,,,725,,17,727,,886,,,,29,29,29,29,350,,,29,29,29,29,29,29,,,',
',,,,,,,224,29,17,17,,,,,,,,,17,224,,,,,,,16,16,,,18,,,,,,792,,792,18',
'792,29,792,,,,,29,,,29,,,958,,,,17,,,,17,,,,969,,,29,,29,,,,,29,,16',
'16,,,,,,16,950,792,952,,,,17,,,,,,,825,826,29,42,29,,,,,42,,,974,,975',
',976,29,29,993,995,997,999,,1000,,17,18,,,,16,,,,16,16,42,303,303,,17',
',,,16,17,,,17,17,18,,,,,,,875,,,,,,,,,224,,,,,347,,,369,,16,16,,29,',
',,,,,16,,,,1026,,1027,,1028,,1043,1044,1045,1046,,,898,,,,900,901,,1036',
',18,,18,42,,905,306,18,,1050,,,42,,16,,29,,16,,,,,306,,,,,,1049,,,18',
',,,,930,931,,,,,,,,,,16,,,,,,,,,,,,596,,596,,,,,,,,,29,,,,,,,,,29,16',
'41,,,,962,,41,,965,,,,29,,16,,42,,,16,,,16,16,,,,,18,,,,,,41,302,302',
',985,,42,,,,,,,,,,,,,,,,,,,29,,,29,,,,,,29,346,,1006,368,,,,,,,,29,',
',,29,,1018,,,,,1022,,,,,,,,,,42,,42,,,,303,42,,,,41,,,,,,,29,29,41,',
',303,29,29,,,29,,18,,42,,,,,306,,,,,,,,306,,,,,,,,,,,,,,,369,,369,,',
',,,,,,,,,,,,,,,,,29,29,,,,,19,,,,,,19,,,,,,18,,,18,,,41,,,,42,,,,,,',
',,,,29,19,,,,,29,,,41,,,29,29,,,,,,29,,,,,,,,,,,29,,,,,,352,,,,,,,,',
',,,,,,,,,,,,,,,,,,,29,,,,29,29,41,,41,,,,302,41,29,19,306,,,,,,,,19',
',,306,42,302,,,,,,303,,,41,18,18,,,303,29,,29,29,,,,,,,,,29,29,,,,,',
'413,,,368,,368,,444,,,,561,,,,,,,,,,,,,,,,18,18,,,,29,874,18,42,29,',
'42,,,,,,,,,19,,,,,,41,,440,,,,,,,,,,,29,,,,,19,,501,,503,596,,505,18',
',,,18,18,,,,,,,,,18,,,,,,29,,,,,,,,,,,,,,,29,,,,,29,,,29,29,544,18,18',
',,,,,19,,19,18,303,,,19,29,,,,,,,303,,,,,,,,,41,,,42,42,,,302,19,,,',
',,596,302,,,18,,,,18,,,,971,,,,,,,,,,,,,,,,,,,,,,630,,,,18,,42,42,,',
',,,42,,,561,,,,,,41,,,41,,,,,,,715,,,,,18,19,,,,,,,,,,,,,,18,,,369,',
'18,42,,18,18,42,42,,,,,,,561,,42,,,,,,,,,,,671,,,544,,674,,675,,,,,',
',,,,,,,,42,42,,,,,,,,,42,,,,,,,,671,302,,544,,,,800,,,,,302,,,,,,,19',
',,,,41,41,,369,,721,,42,,,,42,,,,968,,,,,,,,,,,,,,,,,561,,561,,,,,,715',
'42,,843,,,,,,,,41,41,,,,,,41,,,,,,,19,,,19,,,767,,,42,671,544,,561,',
',,,,,,,,,42,,,,,42,,,42,42,,368,,,41,,,,41,41,,,,811,,,,,41,,,,,,,,',
',,,,,,,,819,440,,,,,,,,,,,,,,41,41,,,,840,,,,,41,,,,,,,715,,715,,,,',
',444,,,,,,,,,,,,,,,19,19,,,,368,,,,41,,,,41,,,,967,,876,800,,231,800',
',,,,,,,278,278,278,,,,,,,,,,41,322,323,324,,561,,,19,19,,,,,,19,977',
'715,278,,,,,,,,,,,,,,,41,561,,,,,,,,,,,,,,41,,,,,41,,,41,41,,,19,,,',
'19,19,,,,,715,,715,,19,,,,,,,,,,800,,,544,,,,,,,,,,,,,,,,,,,19,19,715',
',,,,,,,19,,,,,,,,,,,,,,,,,,,,,,,,984,,,,,,,,,,,,,,,19,,,,19,,,,972,',
',278,418,278,,,,438,443,,,,,,,,,,,,,,,231,19,,457,458,459,460,461,462',
'463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479',
'480,481,482,,,,,,19,278,,,,,,278,,,278,,,,,19,,278,,278,19,,278,19,19',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,529,,,,,,,,,278,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,,438,655,418,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,278,,,278,,278,,278,,,,,,,,,,,,278,,,,,,,,,690',
'691,,,,,,,,,,278,,,278,,,,,,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,',
',,,,278,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,769,,,278,278',
'774,776,,,,,779,781,,,655,783,,,,,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,',
',,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,278,,,,,,,,',
',,,278,,,,,,,,,,,,,,,,,,,,,,278,,878,,,,,,,,,,,,,,774,776,781,779,,881',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,278,878,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,278,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,278' ]
        racc_goto_table = arr = ::Array.new(3255, 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,53,34,25,60,95,155,71,71,71,65,65,61,61,17,17,51,89,42,27,30,60,76',
'64,64,92,92,30,34,2,13,74,55,36,36,36,98,71,20,10,77,154,99,77,139,139',
'39,26,93,8,19,19,5,50,19,199,68,68,54,67,6,58,144,194,25,40,40,32,32',
'189,134,32,9,132,185,61,195,7,9,14,150,6,135,6,6,6,6,6,6,6,68,147,61',
'149,199,41,41,41,94,94,49,98,172,19,19,19,19,22,172,72,72,175,108,14',
'175,40,59,5,59,109,32,32,32,32,110,111,176,112,113,43,176,114,115,176',
'116,147,176,43,43,117,118,48,48,48,119,120,106,105,104,103,136,102,73',
'73,73,101,100,97,142,96,91,88,87,135,76,148,75,70,151,152,153,66,156',
'157,160,161,51,162,77,77,195,163,73,7,9,71,164,165,150,166,167,199,71',
'9,170,171,46,173,174,1,45,149,177,178,179,180,181,182,183,184,6,132',
'58,36,74,61,135,33,31,32,32,32,32,188,134,21,27,18,24,55,147,51,191',
'192,24,15,11,55,198,107,3,,71,25,95,,189,,,24,154,71,51,,135,,,,24,24',
'24,,24,24,24,,194,34,36,,74,6,,,36,,,36,6,6,189,53,26,185,,,139,139',
'144,34,,,24,24,22,22,24,24,,,22,22,40,40,,,27,25,,26,43,,,50,,74,,,50',
'68,54,72,98,27,139,19,19,,,32,67,145,6,190,,8,68,185,5,,24,93,32,32',
',24,24,24,24,24,27,187,187,187,,,,,,189,49,,,26,9,49,,176,,40,176,14',
'94,68,98,68,48,25,,40,145,,145,,99,48,39,73,,,5,42,,55,,23,73,42,,34',
',23,6,51,65,,61,,17,,76,,,,,,,64,,,6,6,77,,6,,,74,,23,,2,,74,199,24',
'24,24,24,40,139,,24,24,24,24,24,24,51,51,6,74,61,36,73,,,,154,24,,,34',
',51,10,10,,20,,51,,,,9,72,,,53,,,6,6,,,74,53,26,,6,6,185,41,24,,,,,41',
'24,,12,24,,30,13,,23,,,,,,76,6,,23,36,74,61,24,,24,,,,24,24,74,61,,32',
',68,,,,25,,92,,68,,24,,,,,,,41,,24,,24,,190,145,,190,145,,190,,190,',
',24,24,,,,,10,,,,9,,,24,,24,,6,145,,36,74,61,,,92,,,,,40,,32,,,23,32',
'138,,,,,,,,98,98,92,,89,73,,,,,,,,,23,65,98,61,24,17,187,187,34,187',
'187,,187,34,64,,53,155,,,95,51,,138,,51,,53,,,73,,,26,,34,6,,145,,190',
'6,190,71,190,,190,,12,51,,,24,185,,,6,34,,74,60,23,74,23,,6,6,,23,,',
'68,12,,,,10,10,,,,,68,71,,,51,,,34,190,,,23,,22,22,6,19,6,,22,22,,,22',
',24,,,,,,,24,32,24,,6,61,74,36,24,,,,,,,73,24,61,,,,12,,,,,12,,,,6,140',
',187,187,187,187,,34,,,98,51,,,,98,,,,,6,6,6,,,51,23,25,,,,,24,,,24',
',,,,,24,,6,,140,,6,140,68,51,,,24,,,138,24,,138,,19,138,,138,187,,,34',
',,,,44,19,,,,32,44,,,,22,,,,,,40,,32,24,24,44,,,,24,24,,,24,44,44,44',
',44,,,,,,,,98,,,,,,,,98,,,,,,23,,,,24,,,,44,44,,,44,,68,24,,,,,,,,,143',
',68,24,24,,,,,,34,,,138,,138,,138,,138,,6,6,6,6,,6,,,,,,44,,,,61,44',
'44,44,44,44,24,,98,,23,27,24,23,,143,,143,24,24,,,,6,,24,28,138,,,,',
'28,,140,,24,140,,,140,,140,,,6,,,36,74,61,34,,,,,6,,,,28,28,28,6,6,6',
'6,24,,,24,141,141,141,24,24,,,,,,,12,,24,12,,6,,,,44,44,44,44,28,,,44',
'44,44,44,44,44,,,,,,,,,,,24,44,24,24,,,,,,,,,24,24,,,,,,,23,23,,,28',
',,,,,140,,140,28,140,44,140,,,,,44,,,44,,,24,,,,24,,,,24,,,,24,,,44',
',44,,,,,44,,23,23,,,,,,23,143,140,143,,,,24,,,,,,,12,12,44,57,44,,,',
',57,,,143,,143,,143,44,44,141,141,141,141,,141,,24,28,,,,23,,,,23,23',
'57,57,57,,24,,,,23,24,,,24,24,28,,,,,,,12,,,,,,,,,24,,,,,57,,,57,,23',
'23,,44,,,,,,,23,,,,143,,143,,143,,141,141,141,141,,,12,,,,12,12,,143',
',28,,28,57,,12,28,28,,141,,,57,,23,,44,,23,,,,,28,,,,,,143,,,28,,,,',
'12,12,,,,,,,,,,23,,,,,,,,,,,,28,,28,,,,,,,,,44,,,,,,,,,44,23,56,,,,12',
',56,,12,,,,44,,23,,57,,,23,,,23,23,,,,,28,,,,,,56,56,56,,12,,57,,,,',
',,,,,,,,,,,,,,44,,,44,,,,,,44,56,,12,56,,,,,,,,44,,,,44,,12,,,,,12,',
',,,,,,,,57,,57,,,,57,57,,,,56,,,,,,,44,44,56,,,57,44,44,,,44,,28,,57',
',,,,28,,,,,,,,28,,,,,,,,,,,,,,,57,,57,,,,,,,,,,,,,,,,,,,,44,44,,,,,29',
',,,,,29,,,,,,28,,,28,,,56,,,,57,,,,,,,,,,,44,29,,,,,44,,,56,,,44,44',
',,,,,44,,,,,,,,,,,44,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,44,,,,44,44',
'56,,56,,,,56,56,44,29,28,,,,,,,,29,,,28,57,56,,,,,,57,,,56,28,28,,,57',
'44,,44,44,,,,,,,,,44,44,,,,,,69,,,56,,56,,69,,,,133,,,,,,,,,,,,,,,,28',
'28,,,,44,28,28,57,44,,57,,,,,,,,,29,,,,,,56,,29,,,,,,,,,,,44,,,,,29',
',69,,69,28,,69,28,,,,28,28,,,,,,,,,28,,,,,,44,,,,,,,,,,,,,,,44,,,,,44',
',,44,44,69,28,28,,,,,,29,,29,28,57,,,29,44,,,,,,,57,,,,,,,,,56,,,57',
'57,,,56,29,,,,,,28,56,,,28,,,,28,,,,28,,,,,,,,,,,,,,,,,,,,,,69,,,,28',
',57,57,,,,,,57,,,133,,,,,,56,,,56,,,,,,,133,,,,,28,29,,,,,,,,,,,,,,28',
',,57,,28,57,,28,28,57,57,,,,,,,133,,57,,,,,,,,,,,69,,,69,,69,,69,,,',
',,,,,,,,,,57,57,,,,,,,,,57,,,,,,,,69,56,,69,,,,133,,,,,56,,,,,,,29,',
',,,56,56,,57,,69,,57,,,,57,,,,57,,,,,,,,,,,,,,,,,133,,133,,,,,,133,57',
',133,,,,,,,,56,56,,,,,,56,,,,,,,29,,,29,,,69,,,57,69,69,,133,,,,,,,',
',,,57,,,,,57,,,57,57,,56,,,56,,,,56,56,,,,69,,,,,56,,,,,,,,,,,,,,,,',
'69,29,,,,,,,,,,,,,,56,56,,,,69,,,,,56,,,,,,,133,,133,,,,,,69,,,,,,,',
',,,,,,,29,29,,,,56,,,,56,,,,56,,,,56,,69,133,,35,133,,,,,,,,35,35,35',
',,,,,,,,,56,35,35,35,,133,,,29,29,,,,,,29,133,133,35,,,,,,,,,,,,,,,56',
'133,,,,,,,,,,,,,,56,,,,,56,,,56,56,,,29,,,,29,29,,,,,133,,133,,29,,',
',,,,,,,133,,,69,,,,,,,,,,,,,,,,,,,29,29,133,,,,,,,,29,,,,,,,,,,,,,,',
',,,,,,,,,69,,,,,,,,,,,,,,,29,,,,29,,,,29,,,35,35,35,,,,35,35,,,,,,,',
',,,,,,,35,29,,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,,,,,,29,35,,,,,,35,,,35,,,,,29,,35,,35,29,,35',
'29,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,35,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,35,35,35,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,35,,,35,,35,,35,,,,,,,,,,,,35,,,,,,,,,35,35,,',
',,,,,,,35,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,35,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,,,35,35,35,35,,,,,35',
'35,,,35,35,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,',
',,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,',
',,,,35,,35,,,,,,,,,,,,,,35,35,35,35,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35' ]
        racc_goto_check = arr = ::Array.new(3255, 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,   199,    27,   240,   nil,    47,    -2,    69,    44,    70,
  -287,   226,   465,  -501,  -614,  -581,   nil,     3,   215,   -16,
  -179,   154,    84,   393,   226,  -209,  -372,     2,   984,  1547,
  -190,     8,     1,    92,   -20,  2247,     1,   nil,   nil,    19,
  -148,    66,  -248,  -354,   842,  -287,  -611,   nil,   109,    64,
    17,   -45,   nil,   -36,    20,  -285,  1358,  1167,  -532,  -238,
   -70,     1,   nil,   nil,    12,    -1,  -238,    15,    19,  1499,
   105,   -25,  -222,   120,     1,  -318,  -259,  -457,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,  -173,   -47,
   nil,    95,  -314,  -677,  -483,  -339,    88,  -440,    31,  -558,
    82,    95,    90,  -384,    85,    79,  -582,   170,  -619,  -471,
  -810,    53,  -620,  -227,  -620,  -806,    61,  -460,  -226,  -457,
  -723,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,  -769,  1383,  -492,  -762,  -509,   nil,   -55,  -504,
   112,   238,  -501,   265,  -597,  -328,   nil,  -568,  -729,  -801,
  -814,  -169,  -376,   105,  -296,   -19,   -89,  -488,   nil,   nil,
   -96,  -490,   -94,  -485,  -799,  -398,  -505,  -630,   nil,   nil,
   114,   112,    17,   111,   111,  -269,  -247,   114,   114,   114,
  -553,  -400,  -400,   117,  -540,  -263,   nil,  -200,  -485,  -639,
  -326,  -472,  -649,   nil,  -647,  -812,   nil,   nil,  -133,  -445 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   292,     7,   345,   293,
   nil,   nil,   531,   nil,   847,   nil,   291,   nil,   nil,   nil,
    14,    15,    21,   230,   321,   nil,   nil,   745,   228,   229,
   nil,   nil,    20,   nil,   329,    24,    25,    26,    27,   nil,
   687,   nil,   nil,   nil,   310,   nil,   nil,    28,   421,    35,
   nil,   nil,    37,    40,    39,   nil,   225,   226,   594,   nil,
   132,   429,   131,   134,    78,    79,   nil,    93,    49,   284,
   nil,   422,   nil,   423,   434,   642,   496,   282,   267,    50,
    51,    52,    53,    54,    55,    56,    57,    58,   nil,   268,
    64,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   578,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   717,   839,   nil,   718,   946,   790,   549,   nil,
   550,   nil,   nil,   551,   nil,   553,   658,   nil,   nil,   nil,
   559,   nil,   nil,   nil,   755,   nil,   nil,   nil,   433,   269,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    77,    80,
    82,   nil,   nil,   nil,   nil,   nil,   609,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   831,   548,   nil,   552,   563,
   565,   566,   802,   569,   570,   803,   573,   576,   nil,   286 ]

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

racc_reduce_n = 624

racc_shift_n = 1051

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

racc_nt_base = 144

racc_use_result_var = true

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

Racc_token_to_s_table = [
  "$end",
  "error",
  "kCLASS",
  "kMODULE",
  "kDEF",
  "kUNDEF",
  "kBEGIN",
  "kRESCUE",
  "kENSURE",
  "kEND",
  "kIF",
  "kUNLESS",
  "kTHEN",
  "kELSIF",
  "kELSE",
  "kCASE",
  "kWHEN",
  "kWHILE",
  "kUNTIL",
  "kFOR",
  "kBREAK",
  "kNEXT",
  "kREDO",
  "kRETRY",
  "kIN",
  "kDO",
  "kDO_COND",
  "kDO_BLOCK",
  "kDO_LAMBDA",
  "kRETURN",
  "kYIELD",
  "kSUPER",
  "kSELF",
  "kNIL",
  "kTRUE",
  "kFALSE",
  "kAND",
  "kOR",
  "kNOT",
  "kIF_MOD",
  "kUNLESS_MOD",
  "kWHILE_MOD",
  "kUNTIL_MOD",
  "kRESCUE_MOD",
  "kALIAS",
  "kDEFINED",
  "klBEGIN",
  "klEND",
  "k__LINE__",
  "k__FILE__",
  "k__ENCODING__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tLABEL",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tLBRACK2",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAMBDA",
  "tLAMBEG",
  "tDSTAR",
  "tCHAR",
  "tSYMBOLS_BEG",
  "tQSYMBOLS_BEG",
  "tSTRING_DEND",
  "tUBANG",
  "tRATIONAL",
  "tIMAGINARY",
  "tEQL",
  "tLOWEST",
  "$start",
  "program",
  "top_compstmt",
  "@1",
  "top_stmts",
  "opt_terms",
  "none",
  "top_stmt",
  "terms",
  "stmt",
  "bodystmt",
  "@2",
  "compstmt",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "fitem",
  "undef_list",
  "expr_value",
  "command_asgn",
  "mlhs",
  "command_call",
  "var_lhs",
  "primary_value",
  "opt_call_args",
  "rbracket",
  "call_op",
  "backref",
  "lhs",
  "mrhs",
  "mrhs_arg",
  "expr",
  "@3",
  "opt_nl",
  "arg",
  "command",
  "block_command",
  "block_call",
  "dot_or_colon",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_param",
  "fcall",
  "@4",
  "@5",
  "operation",
  "call_args",
  "mlhs_basic",
  "mlhs_inner",
  "rparen",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "mlhs_post",
  "user_variable",
  "keyword_variable",
  "cname",
  "cpath",
  "fname",
  "op",
  "reswords",
  "fsym",
  "symbol",
  "dsym",
  "@6",
  "simple_numeric",
  "primary",
  "arg_value",
  "aref_args",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@7",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "symbols",
  "qsymbols",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "then",
  "if_tail",
  "do",
  "case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "@8",
  "@9",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "@27",
  "k_begin",
  "k_if",
  "k_unless",
  "k_while",
  "k_until",
  "k_case",
  "k_for",
  "k_class",
  "k_module",
  "k_def",
  "k_end",
  "f_marg",
  "f_norm_arg",
  "f_margs",
  "f_marg_list",
  "block_args_tail",
  "f_block_kwarg",
  "f_kwrest",
  "opt_f_block_arg",
  "f_block_arg",
  "opt_block_args_tail",
  "block_param",
  "f_arg",
  "f_block_optarg",
  "f_rest_arg",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@28",
  "f_args",
  "do_block",
  "@29",
  "@30",
  "operation3",
  "@31",
  "@32",
  "@33",
  "@34",
  "@35",
  "cases",
  "@36",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@37",
  "@38",
  "sym",
  "@39",
  "args_tail",
  "f_kwarg",
  "opt_args_tail",
  "f_optarg",
  "f_arg_item",
  "f_label",
  "f_kw",
  "f_block_kw",
  "kwrest_mark",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "@40",
  "assoc" ]

Racc_debug_parser = false

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

# reduce 0 omitted

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

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

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

# reduce 4 omitted

# reduce 5 omitted

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

# reduce 7 omitted

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

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

def _reduce_9(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 1
                        yyerror "BEGIN in method"
                      end
                      self.env.extend
                    
    result
end

def _reduce_10(val, _values, result)
                      result = new_iter s(:preexe), nil, val[3]
                    
    result
end

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

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

# reduce 13 omitted

# reduce 14 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 29 omitted

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

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

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

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

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

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

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

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

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

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

# reduce 40 omitted

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

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

# reduce 43 omitted

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

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

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

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

# reduce 48 omitted

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

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

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

def _reduce_61(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args, val[1]

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

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

def _reduce_63(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

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

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

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

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

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

# reduce 69 omitted

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

# reduce 71 omitted

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

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

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

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

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

                      result = list_append ary1, s(:splat, splat)
                      result.concat ary2.sexp_body
                      result = s(:masgn, result)
                    
    result
end

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

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

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

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

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

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

# reduce 83 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 108 omitted

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

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

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

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

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

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

# reduce 117 omitted

# reduce 118 omitted

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

# reduce 120 omitted

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

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

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

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_232(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :"\<\<", argl(val[2])
                    
    result
end

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

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

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

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

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

# reduce 238 omitted

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

# reduce 240 omitted

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

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

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

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

# reduce 245 omitted

# reduce 246 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 261 omitted

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

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

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

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

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

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

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

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

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

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

# reduce 278 omitted

# reduce 279 omitted

# reduce 280 omitted

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

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

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

                      result.line = val[1]
                    
    result
end

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

def _reduce_285(val, _values, result)
                      result = self.lexer.cmdarg.stack.dup
                      lexer.cmdarg.stack.replace [false] # TODO add api for these
                    
    result
end

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

def _reduce_287(val, _values, result)
                      warning "(...) interpreted as grouped expression"
                      lexer.cmdarg.stack.replace val[1]
                      result = val[2]
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 302 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_326(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_327(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_328(val, _values, result)
                      result = [self.in_def, self.lexer.cmdarg.stack.dup]

                      self.comments.push self.lexer.comments
                      self.in_def = true
                      self.env.extend
                      # TODO: local->cmdargs = cmdarg_stack;
                      # TODO: port local_push_gen and local_pop_gen
                      lexer.cmdarg.stack.replace [false]
                    
    result
end

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

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

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

                      lexer.cmdarg.stack.replace cmdarg

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

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

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

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

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

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

# reduce 338 omitted

# reduce 339 omitted

# reduce 340 omitted

# reduce 341 omitted

# reduce 342 omitted

# reduce 343 omitted

# reduce 344 omitted

# reduce 345 omitted

# reduce 346 omitted

# reduce 347 omitted

# reduce 348 omitted

# reduce 349 omitted

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

# reduce 353 omitted

# reduce 354 omitted

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

# reduce 356 omitted

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

# reduce 358 omitted

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

# reduce 360 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

                      result = block_var args, :*, args2
                    
    result
end

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

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

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

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

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

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

                      result = block_var :*, args
                    
    result
end

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

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

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

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

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

# reduce 378 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 395 omitted

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

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

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

# reduce 399 omitted

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

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

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

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

# reduce 404 omitted

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

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

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

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

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

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

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

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

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

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

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

def _reduce_416(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2
                    
    result
end

def _reduce_417(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

# reduce 436 omitted

# reduce 437 omitted

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

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

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

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

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

# reduce 441 omitted

# reduce 442 omitted

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

# reduce 444 omitted

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

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

# reduce 446 omitted

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

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

# reduce 449 omitted

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

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

# reduce 452 omitted

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

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

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

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

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

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

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

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

def _reduce_461(val, _values, result)
                      result = val[0].dup << new_word_list_entry(val)
                    
    result
end

# reduce 462 omitted

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

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

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

def _reduce_466(val, _values, result)
                      result = new_symbol_list
                    
    result
end

def _reduce_467(val, _values, result)
                      result = val[0].dup << new_symbol_list_entry(val)
                    
    result
end

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

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

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

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

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

def _reduce_473(val, _values, result)
                      result = val[0].dup << new_qword_list_entry(val)
                    
    result
end

def _reduce_474(val, _values, result)
                      result = new_qsym_list
                    
    result
end

def _reduce_475(val, _values, result)
                      result = val[0].dup << new_qsym_list_entry(val)
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

                      lexer.lex_state   = :expr_value
                    
    result
end

def _reduce_486(val, _values, result)
                      # TODO: tRCURLY -> tSTRING_END
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state = memo

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

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

                      lexer.lex_state = oldlex_state

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

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

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

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

# reduce 490 omitted

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

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

# reduce 493 omitted

# reduce 494 omitted

# reduce 495 omitted

# reduce 496 omitted

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

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

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

# reduce 498 omitted

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

# reduce 500 omitted

# reduce 501 omitted

# reduce 502 omitted

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

# reduce 506 omitted

# reduce 507 omitted

# reduce 508 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 531 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 553 omitted

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

                      result = identifier
                    
    result
end

# reduce 555 omitted

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

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

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

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

                      result << item
                    
    result
end

# reduce 559 omitted

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

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

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

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

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

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

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

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

# reduce 564 omitted

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

# reduce 566 omitted

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

# reduce 568 omitted

# reduce 569 omitted

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

def _reduce_571(val, _values, result)
                      result = :"**"
                    
    result
end

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

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

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

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

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

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

# reduce 578 omitted

# reduce 579 omitted

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

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

# reduce 582 omitted

# reduce 583 omitted

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

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

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

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

# reduce 587 omitted

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

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

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

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

# reduce 592 omitted

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

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

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

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

# reduce 597 omitted

# reduce 598 omitted

# reduce 599 omitted

# reduce 600 omitted

# reduce 601 omitted

# reduce 602 omitted

# reduce 603 omitted

# reduce 604 omitted

# reduce 605 omitted

# reduce 606 omitted

# reduce 607 omitted

# reduce 608 omitted

# reduce 609 omitted

# reduce 610 omitted

# reduce 611 omitted

# reduce 612 omitted

# reduce 613 omitted

# reduce 614 omitted

# reduce 615 omitted

# reduce 616 omitted

# reduce 617 omitted

# reduce 618 omitted

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

# reduce 620 omitted

# reduce 621 omitted

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

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

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

end   # class Ruby21Parser
