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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-289,578,578,620,-103,578,636,-289,-289,-289,3,748,-289,-289,-289,268',
'-289,-106,218,848,-103,239,215,216,-85,-507,-289,-289,-289,-107,-104',
'578,-507,-104,-101,-71,-289,-289,816,-289,-289,-289,-289,-289,-105,578',
'-102,-515,-93,219,-100,739,83,236,219,740,-99,238,237,-102,84,215,216',
'728,215,216,619,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,-289,-101,-594,-289,-289,-289,-594,785,-289,699,728,-289,215',
'216,-289,-289,268,-289,268,-289,-99,-289,267,-289,-289,-289,-289,-289',
'-289,-289,-595,-289,219,-289,-95,113,113,747,-103,113,112,112,-97,-103',
'112,-94,-289,-289,-289,-289,-504,-289,838,-289,-98,-95,113,-504,-504',
'-504,-105,112,-504,-504,-504,113,-504,-104,-101,-96,112,219,-104,-101',
'-504,-91,-504,-504,-504,113,-102,-90,928,113,112,-102,-504,-504,112',
'-504,-504,-504,-504,-504,-102,-93,219,623,728,268,816,-95,219,267,604',
'267,-92,609,113,659,113,113,659,112,698,112,112,-504,-504,-504,-504',
'-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,239,-516,-504,-504',
'-504,-95,-504,-504,-95,604,-504,526,658,-504,-504,658,-504,659,-504',
'-95,-504,239,-504,-504,-504,-504,-504,-504,-504,622,-504,-93,-504,-417',
'606,605,717,604,557,556,555,687,558,-598,-598,-504,-504,-504,-504,-598',
'-504,658,-504,-97,-100,267,-598,-598,-598,-504,270,-598,-598,-598,-106',
'-598,-93,113,-93,-93,606,605,112,270,-598,-598,-598,-598,407,758,-93',
'219,-426,409,408,-598,-598,687,-598,-598,-598,-598,-598,-504,564,219',
'-598,-598,606,605,-504,113,604,-598,-598,566,112,760,-594,-594,502,659',
'-598,-598,974,876,-598,-598,-598,-598,-598,-598,-598,-598,-598,-598',
'-598,-598,-598,-598,-598,-598,-598,-598,-598,-426,784,-598,574,573,-598',
'500,-426,-598,-598,658,-598,604,-598,526,-598,-426,-598,-598,-598,-598',
'-598,-598,-598,213,-598,-598,-598,606,605,617,113,604,-101,-426,454',
'112,567,-591,-592,-598,-598,-598,-598,-501,-598,258,-598,-281,783,787',
'-501,-501,-501,-103,-281,-501,-501,-501,717,-501,557,556,555,-281,558',
'-98,-106,-501,-510,-501,-501,-501,606,605,612,-510,-107,-267,219,-501',
'-501,998,-501,-501,-501,-501,-501,-107,799,219,-501,-504,606,605,607',
'487,604,-501,-504,566,604,-104,-591,-592,113,539,-501,-504,538,112,-501',
'-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-591',
'-592,-501,-501,-501,487,-501,-501,574,573,-501,875,840,-501,-501,816',
'-501,584,-501,768,-501,782,-501,-501,-501,-501,-501,-501,-501,637,-501',
'-516,-501,606,605,624,-511,606,605,602,769,-515,567,-511,-513,-501,-501',
'-501,-501,-289,-501,-513,-501,317,318,-266,-289,-289,-289,-501,-513',
'-92,-289,-289,717,-289,557,556,555,564,558,-95,-101,-91,-102,952,763',
'557,556,555,566,558,-104,-90,-100,-289,-289,762,-289,-289,-289,-289',
'-289,539,-99,761,541,717,261,557,556,555,562,558,717,262,557,556,555',
'239,558,731,539,574,573,541,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,-289,-289,-289,-289,-508,-501,-289,-289,-289,713,642,-508',
'-501,584,-289,236,713,-289,716,238,237,567,-289,724,-289,920,-289,-289',
'-289,-289,-289,-289,-289,-512,-289,539,-289,-513,541,717,-512,557,556',
'555,-513,558,215,216,-598,-289,-289,-290,-96,-513,-289,-598,-598,-598',
'-290,-514,722,-598,-598,-105,-598,239,-514,-290,721,-509,720,261,-506',
'-598,239,-514,-509,713,262,-506,878,253,254,704,-598,-598,716,-598,-598',
'-598,-598,-598,717,881,557,556,555,236,558,242,113,238,237,234,235,112',
'236,240,884,241,238,237,234,235,886,-598,-598,-598,-598,-598,-598,-598',
'-598,-598,-598,-598,-598,-598,-598,450,713,-598,-598,-598,239,643,451',
'888,113,-598,844,816,-598,112,219,452,239,-598,890,-598,891,-598,-598',
'-598,-598,-598,-598,-598,711,-598,-598,-598,253,254,844,816,236,215',
'216,709,238,237,234,235,-598,-598,707,-94,236,-598,215,216,238,237,234',
'235,521,522,-103,174,185,175,198,171,191,181,180,201,202,196,179,178',
'173,199,203,204,183,172,186,190,192,184,177,574,573,705,193,200,195',
'194,187,197,182,170,189,188,116,117,118,119,120,169,176,167,168,164',
'165,166,124,126,123,687,125,704,952,239,557,556,555,899,558,158,159',
'701,154,136,137,138,145,142,144,253,254,139,140,-265,903,905,161,162',
'146,147,717,906,557,556,555,236,558,242,219,238,237,234,235,151,150',
'704,135,157,153,152,148,149,143,141,133,156,134,909,911,163,91,913,1004',
'915,915,-514,219,219,713,1005,92,717,-514,557,556,555,921,558,1003,155',
'694,-514,923,693,160,174,185,175,198,171,191,181,180,201,202,196,179',
'178,173,199,203,204,183,172,186,190,192,184,177,713,925,687,193,200',
'195,194,187,197,182,170,189,188,116,117,118,119,120,169,176,167,168',
'164,165,166,124,126,532,219,125,867,868,239,676,869,107,108,-85,158',
'159,219,154,136,137,138,145,142,144,253,254,139,140,219,219,219,161',
'162,146,147,717,239,557,556,555,236,558,242,239,238,237,234,235,151',
'150,935,135,157,153,152,148,149,143,141,133,156,134,936,219,163,91,939',
'743,-268,239,211,239,646,713,742,92,717,212,557,556,555,270,558,744',
'155,635,210,634,219,160,174,185,175,198,171,191,181,180,201,202,196',
'179,178,173,199,203,204,183,172,186,190,192,184,177,713,630,949,193',
'200,195,194,187,197,182,170,189,188,116,117,118,119,120,169,176,167',
'168,164,165,166,124,126,396,395,125,-265,397,628,-290,621,956,957,618',
'158,159,-290,154,136,137,138,145,142,144,959,-290,139,140,-289,-289',
'743,161,162,146,147,-289,-289,955,960,615,-595,-595,611,589,-289,-289',
'744,588,151,150,399,135,157,153,152,148,149,143,141,133,156,134,743',
'-336,163,586,-281,-290,584,955,-336,502,587,-281,-290,543,542,976,744',
'-336,536,585,-281,-290,155,978,979,239,528,160,174,185,175,198,171,191',
'181,180,201,202,196,179,178,173,199,203,204,183,172,186,190,192,184',
'177,983,527,523,193,200,195,194,187,197,182,170,189,188,116,117,118',
'119,120,169,176,167,168,164,165,166,124,126,704,988,125,990,992,994',
'517,994,270,219,273,158,159,518,154,136,137,138,145,142,144,1001,516',
'139,140,-289,529,519,161,162,146,147,-289,530,512,511,219,-595,1006',
'-70,1007,-289,452,915,915,151,150,915,135,157,153,152,148,149,143,141',
'133,156,134,1012,502,163,976,500,497,270,487,218,456,455,453,410,405',
'389,-595,-594,693,386,383,380,356,155,219,316,976,315,160,174,185,175',
'198,171,191,181,180,201,202,196,179,178,173,199,203,204,183,172,186',
'190,192,184,177,1035,1036,1037,193,200,195,194,187,197,182,170,189,188',
'1038,994,994,994,219,169,176,167,168,164,165,166,124,126,258,214,125',
'209,208,915,976,207,109,994,,158,159,,154,136,137,138,145,142,144,,',
'139,140,,,,161,162,146,147,,,,,,,,,,,,,,151,150,,135,157,153,152,148',
'149,143,141,133,156,134,,,163,91,,,,,,,,,,92,,,,,,,,,155,,,,,160,174',
'185,175,198,171,191,181,180,201,202,196,179,178,173,199,203,204,183',
'172,186,190,192,184,177,,,,193,200,195,194,187,197,182,170,189,188,',
',,,,169,176,167,168,164,165,166,124,126,,,125,,,,,,,,,158,159,,154,136',
'137,138,145,142,144,,,139,140,,,,161,162,146,147,,,,,,,,,,,,,,151,150',
',135,157,153,152,148,149,143,141,133,156,134,,,163,91,,,,,,,,,,92,,',
',,,,,,155,,,,,160,174,185,175,198,171,191,181,180,201,202,196,179,178',
'173,199,203,204,183,172,186,190,192,184,177,,,,193,200,195,365,364,366',
'363,170,189,188,,,,,,169,176,167,168,360,361,362,358,126,97,96,359,',
'99,,,,,,,158,159,,154,136,137,138,145,142,144,,,139,140,,,,161,162,146',
'147,,,,,,372,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156',
'134,,,163,,,,,,,,,,,,291,72,73,74,12,60,,,155,66,67,,,160,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,647,11,48,,13',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248',
'249,250,245,247,255,256,251,252,,232,233,,,253,254,,43,,,36,,,61,62',
',,63,,38,236,,242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85',
'86,87,89,,,,84,92,,257,,-242,,,65,,,81,88,90,291,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,647,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,239,243,248,249,250,245,247,255,256,251,252,,232,233,,,253,254,,43',
',,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240,23,241',
',,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,631,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,239,243,248,249,250,245,247,255,256,251,252,,232,233,,,253',
'254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240',
'23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,239,243,248,249,250,245,247,255,256,251,252,,232,233',
',,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246',
'244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,219,257,,,,,65,,,81,88',
'90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,256,251,252',
',232,233,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234',
'235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81',
'88,90,8,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,256',
'251,252,,232,233,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238',
'237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,',
',,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245,247',
'255,256,251,252,,232,233,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242',
'47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92',
',257,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245',
'247,255,256,251,252,,232,233,,,253,254,,43,,,36,,,61,62,,,63,,38,236',
',242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84',
'92,,257,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250',
'245,247,255,256,251,252,,232,233,,,253,254,,43,,,36,,,61,62,,,63,,38',
'236,,242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89',
',,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248',
'249,250,245,247,255,256,251,252,,232,233,,,253,254,,43,,,36,,,61,62',
',,63,,38,236,,242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85',
'86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,',
'11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239',
'243,248,249,250,245,247,255,256,251,252,,232,233,,,253,254,,43,,,36',
',,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240,23,241,,,,91',
'83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74,12,60,,',
',66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22',
',,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,239,243,248,249,250,245,247,255,256,251,252,,232,233,,,253,254,,43',
',,293,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240,23,241',
',,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,239,243,248,249,250,245,247,255,256,251,252,,232,233,,,253,254',
',43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240,23',
'241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,239,243,248,249,250,245,247,255,256,251,252,,232,233,,,253',
'254,,43,,,293,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246,244,240',
'23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90,291,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,239,243,248,249,250,245,247,255,256,251,252,,232,233',
',,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,246',
'244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88,90',
'291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,256,251,252,,232',
'233,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235',
'246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81,88',
'90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,256,251,252',
',232,233,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234',
'235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,257,,,,,65,,,81',
'88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,239,-617,-617,-617,-617,245,247,,,-617',
'-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234',
'235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,239,,,,,,,,,,,,,,,,253,254,,43,,,36,,,61,62',
',,63,,38,236,,242,47,238,237,234,235,,,240,23,241,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,-617,-617',
'-617,-617,245,247,,,-617,-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38',
'236,,242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,-617,-617,-617',
'-617,245,247,,,-617,-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236',
',242,47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,-617,-617,-617,-617',
'245,247,,,-617,-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242',
'47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,,,,,,,,,,,,,,,,253,254',
',43,,,36,,,61,62,,,63,,38,236,,242,47,238,237,234,235,,,240,23,241,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,291,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,',
',22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,239,,,,,,,,,,,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242',
'47,238,237,234,235,,,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255',
'256,251,252,,-617,-617,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242',
'47,238,237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245',
'247,,,251,252,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238',
'237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,',
',,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,256',
'251,252,,-617,-617,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238',
'237,234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,8,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,',
',,32,31,30,101,100,102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,239,-617,-617,-617,-617,245,247,',
',-617,-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237',
'234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,',
',,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,239,243,248,249,250,245,247,255,',
'251,252,,,,,,253,254,,43,,,293,,,61,62,,,63,,38,236,,242,47,238,237',
'234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,291,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,',
',,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,239,-617,-617,-617,-617,245,247,',
',-617,-617,,,,,,253,254,,43,,,36,,,61,62,,,63,,38,236,,242,47,238,237',
'234,235,246,244,240,23,241,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98',
'284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62',
',717,63,557,556,555,564,558,47,,,,,,,,229,566,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,562,285,81,88,90,72,73,74,,60,,574,573,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,567,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,717,63,557,556,555,799,558,47,,,,,,,,23',
'566,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,562,,81,88,90,72,73,74,,60',
',574,573,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,22,,,,567,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,717,63,557,556,555,799',
'558,47,,,,,,,,23,566,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,562,,81',
'88,90,72,73,74,,60,,574,573,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,567,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,717',
'63,557,556,555,799,558,47,,,,,,,,23,566,,,,91,83,85,86,87,89,,,,84,92',
'113,,,,,112,65,562,,81,88,90,72,73,74,,60,,574,573,66,67,,,,70,,68,69',
'71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,567,,,306',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,',
',,,,,,350,,,36,,,61,62,,,63,,38,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,717,63,557,556,555,564,558,47,,,,,,,,229,566,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,562,,81,88,90,72,73,74,,60,,574,573,66',
'67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,',
'231,,,,567,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,,,47,,,,,,',
',229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,717,63,557,556,555,564,558',
'47,,,,,,,,23,566,,,,91,83,85,86,87,89,,,,84,92,219,,,,,,65,562,,81,88',
'90,72,73,74,,60,,574,573,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,567,,,48,,,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62',
',717,63,557,556,555,799,558,47,,,,,,,,229,566,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,562,,81,88,90,72,73,74,,60,,574,573,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,567,,',
'48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,',
',,,,,,,,,,,,224,,,230,,,61,62,,717,63,557,556,555,799,558,47,,,,,,,',
'229,566,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,562,,81,88,90,72,73,74',
',60,,574,573,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,231,,,,567,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280',
',47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,717,63,557,556',
'555,564,558,47,,,,,,,,229,566,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
'562,,81,88,90,72,73,74,,60,,574,573,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,567,,,48,,,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,',
',230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230',
',,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,',
',,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,',
',63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,399,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,',
',,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,',
',230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,415,,,,47,,',
',,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,',
',,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,',
',91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,',
',,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,',
',105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,',
',,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,',
',230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,415,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,',
',,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87',
'89,,,,84,92,219,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,',
',,,,,,224,,,230,,,61,62,,,63,,,,280,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,',
',,,,,,224,,,230,,,61,62,,,63,,671,,280,,47,,,,,,,,229,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,766,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,306,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,302',
',,298,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,',
',,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62',
',,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,306,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,893,,,230,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,',
',,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102',
'103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,',
'231,,,,,,,306,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312',
',,,,,,,,,,,,,,,,,,,302,,,230,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85',
'86,87,89,,,,84,92,,,,314,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230',
',,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,',
',,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,',
'63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,',
',,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,',
',,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102',
'103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,',
'231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231',
',,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,',
',,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230',
',,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,',
',,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,',
'63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,',
',,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,',
',,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102',
'103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,',
',,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,306',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,',
',,,,,,302,,,298,,,61,62,,,63,,297,,,,,,,,,,,,,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,282,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,',
',84,92,219,,,,,,65,,285,81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,10,13,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104,106',
'95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230',
',,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,',
',,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61',
'62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,',
'63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
',,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,',
',,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280,,47,,,,,,',
',229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280,,47,,,,,,',
',229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280,,47,,,,,,',
',229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,',
',,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102',
'103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,',
'231,,,,,,,306,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312',
',,,,,,,,,,,,,,,,,,,302,,,230,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85',
'86,87,89,,,,84,92,,,,514,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224',
',,230,,,61,62,,,63,,,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75',
'76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,306,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,302,,,298,',
',61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304',
'305,311,101,100,102,103,,,231,,,,,,,306,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,893,,,230,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,282,,280',
',47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,415,,,,47',
',,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,',
'231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,280,,47,,,,,,,,229',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,',
',,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103',
',,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,229,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,',
',66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103',
',,231,,,,,,,306,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312',
',,,,,,,,,,,,,,,,,,,302,,,298,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,48',
',,105,104,106,95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,',
',,,,,,,,,,,,224,,,230,,,61,62,,,63,,671,,,,47,,,,,,,,229,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,',
',,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230',
',,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,',
'63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,',
'671,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,532,,61,62,,,63',
',,,,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,',
',,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100',
'102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,671,,280',
',47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311',
'101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,',
'47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305,311,101',
'100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,',
',,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,',
'11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,399,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,',
',,,,,306,,,105,104,106,590,59,97,96,591,,99,107,108,,93,94,,,,312,,',
',,,,,,,,,,,,,,,,,592,,,230,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,231,,,,,,,48,,,105,104',
'106,95,59,97,96,98,284,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,',
',,224,,,230,,,61,62,,,63,,282,,280,,47,,,,,,,,229,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,285,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,306,,',
'105,104,106,590,59,97,96,591,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,',
',,,,,,592,,,230,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,',
'84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308',
'309,75,76,,,,,,304,305,311,101,100,102,103,,,231,,,,,,,306,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,302',
',,298,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76',
',,,,,304,305,311,101,100,102,103,,,231,,,,,,,306,,,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,,,312,,,,,,,,,,,,,,,,,,,,966,,,230,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,308,309,75,76,,,,,,304,305',
'311,101,100,102,103,,,231,,,,,,,48,,,105,104,106,95,59,97,96,98,284',
'99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63',
',,,280,,47,,,,,,,,229,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,285,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,224,,,230,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,308,309,75,76,,,,,,304,305,311,101,100,102,103,,,231,',
',,,,,306,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,312,,,,',
'-282,,,,,,,-282,-282,-282,,,-282,-282,-282,302,-282,,298,,,61,62,,,63',
'-282,-282,-282,,,,,,,,-282,-282,,-282,-282,-282,-282,-282,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,-282,-282,-282,-282,-282,-282,-282',
'-282,-282,-282,-282,-282,-282,-282,,,-282,-282,-282,,,-282,,,-282,,',
'-282,-282,,-282,,-282,,-282,,-282,-282,-282,-282,-282,-282,-282,,-282',
',-282,,,,,,,,,,,,,-282,-282,-282,-282,-600,-282,,-282,,,,-600,-600,-600',
',,-600,-600,-600,560,-600,557,556,555,564,558,,,,-600,-600,-600,-600',
',,566,,,,,-600,-600,,-600,-600,-600,-600,-600,,,,,,,,,,562,,,,,,,,,571',
'570,574,573,,-600,-600,-600,-600,-600,-600,-600,-600,-600,-600,-600',
'-600,-600,-600,,,-600,-600,-600,,,-600,,,-600,,,-600,-600,,-600,567',
'-600,,-600,,-600,-600,-600,-600,-600,-600,-600,,-600,-600,-600,,,,,',
',,,,,,,-600,-600,-600,-600,-599,-600,,-600,,,,-599,-599,-599,,,-599',
'-599,-599,560,-599,557,556,555,564,558,,,,-599,-599,-599,-599,,,566',
',,,,-599,-599,,-599,-599,-599,-599,-599,,,,,,,,,,562,546,,,,,,,,571',
'570,574,573,,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599',
'-599,-599,-599,,,-599,-599,-599,,,-599,,,-599,,,-599,-599,,-599,567',
'-599,,-599,,-599,-599,-599,-599,-599,-599,-599,,-599,-599,-599,,,,,',
',,,,,,,-599,-599,-599,-599,-616,-599,,-599,,,,-616,-616,-616,,,-616',
'-616,-616,560,-616,557,556,555,564,558,,,,-616,-616,-616,,,,566,,,,',
'-616,-616,,-616,-616,-616,-616,-616,,,,,,,,,,562,,,,,,,,,571,570,574',
'573,,-616,-616,-616,-616,-616,-616,-616,-616,-616,-616,-616,-616,-616',
'-616,,,-616,-616,-616,,,-616,,270,-616,,,-616,-616,,-616,567,-616,,-616',
',-616,-616,-616,-616,-616,-616,-616,,-616,-616,-616,,,,,,,,,,,,-296',
'-616,-616,,-616,,-616,-296,-296,-296,,,-296,-296,-296,560,-296,557,556',
'555,564,558,,,,,-296,-296,,,,566,,,,,-296,-296,,-296,-296,-296,-296',
'-296,,,,,,,,,,562,752,,,,,,,,571,570,574,573,,-296,-296,-296,-296,-296',
'-296,-296,-296,-296,-296,-296,-296,-296,-296,,,-296,-296,-296,,,-296',
',273,-296,,,-296,-296,,-296,567,-296,,-296,,-296,-296,-296,-296,-296',
'-296,-296,,-296,,-296,,,,,,,,,,,,-616,-296,-296,,-296,,-296,-616,-616',
'-616,,,-616,-616,-616,560,-616,557,556,555,564,558,,,,-616,-616,,,,',
'566,,,,,-616,-616,,-616,-616,-616,-616,-616,,,,,,,,,,562,,,,,,,,,571',
'570,574,573,,-425,,,,,,,-425,-425,-425,,-616,-425,-425,-425,,-425,,-616',
',,,,270,-616,-425,-425,-425,,,,567,,,,,-425,-425,,-425,-425,-425,-425',
'-425,,-616,-616,,,,,,,,,,,,,-616,,,,,-616,,,-425,-425,-425,-425,-425',
'-425,-425,-425,-425,-425,-425,-425,-425,-425,,,-425,-425,-425,,,-425',
',270,-425,,,-425,-425,,-425,,-425,,-425,,-425,-425,-425,-425,-425,-425',
'-425,,-425,-425,-425,,,,,,424,428,,,425,,,-425,-425,,-425,,-425,158',
'159,,154,136,137,138,145,142,144,,,139,140,,,,161,162,146,147,,,,,,270',
',,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134,,798,163',
'557,556,555,799,558,,,,,485,428,,,486,566,,,,,155,,,158,159,160,154',
'136,137,138,145,142,144,,,139,140,562,,,161,162,146,147,,,571,570,574',
'573,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134,,,163',
',,,,,,,,567,736,435,,,737,,,,,,155,,,158,159,160,154,136,137,138,145',
'142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135,157',
'153,152,148,149,143,141,133,156,134,,,163,,,,,,,,,,485,428,,,486,,,',
',,155,,,158,159,160,154,136,137,138,145,142,144,,,139,140,,,,161,162',
'146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133',
'156,134,,,163,,,,,,,,,,734,428,,,735,,,,,,155,,,158,159,160,154,136',
'137,138,145,142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151',
'150,,135,157,153,152,148,149,143,141,133,156,134,,,163,,,,,,,,,,1028',
'428,,,1029,,,,,,155,,,158,159,160,154,136,137,138,145,142,144,,,139',
'140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152,148',
'149,143,141,133,156,134,,,163,,,,,,,,,,852,435,,,853,,,,,,155,,,158',
'159,160,154,136,137,138,145,142,144,,,139,140,,,,161,162,146,147,,,',
',,270,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134,,',
'163,,,,,,,,,,1030,435,,,1031,,,,,,155,,,158,159,160,154,136,137,138',
'145,142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135',
'157,153,152,148,149,143,141,133,156,134,,,163,,,,,,,,,,1000,435,,,999',
',,,,,155,,,158,159,160,154,136,137,138,145,142,144,,,139,140,,,,161',
'162,146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152,148,149,143,141',
'133,156,134,,,163,,,,,,,,,,651,435,,,652,,,,,,155,,,158,159,160,154',
'136,137,138,145,142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,',
',151,150,,135,157,153,152,148,149,143,141,133,156,134,,,163,,,,,,,,',
',649,428,,,650,,,,,,155,,,158,159,160,154,136,137,138,145,142,144,,',
'139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,,163,,,,,,,,,,680,428,,,681,,,,,,155,,',
'158,159,160,154,136,137,138,145,142,144,,,139,140,,,,161,162,146,147',
',,,,,270,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134',
',,163,,,,,,,,,,649,428,,,650,,,,,,155,,,158,159,160,154,136,137,138',
'145,142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135',
'157,153,152,148,149,143,141,133,156,134,,,163,,,,,,,,,,431,435,,,430',
',,,,,155,,,158,159,160,154,136,137,138,145,142,144,,,139,140,,,,161',
'162,146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152,148,149,143,141',
'133,156,134,,,163,,,,,,,,,,651,435,,,652,,,,,,155,,,158,159,160,154',
'136,137,138,145,142,144,,,139,140,,,,161,162,146,147,,,,,,270,,,,,,',
',151,150,,135,157,153,152,148,149,143,141,133,156,134,,,163,,,,,,,,',
',683,435,,,684,,,,,,155,,,158,159,160,154,136,137,138,145,142,144,,',
'139,140,,,,161,162,146,147,,,,,,270,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,560,163,557,556,555,564,558,560,,557,556',
'555,564,558,,,566,,,,,155,,566,,798,160,557,556,555,799,558,,,,,,,562',
',,566,,,,562,752,571,570,574,573,,,,571,570,574,573,,,,,798,562,557',
'556,555,799,558,,,,571,570,574,573,,,566,,,,798,567,557,556,555,799',
'558,,567,,,,,,,,566,,562,560,,557,556,555,564,558,567,571,570,574,573',
',,,,566,,,562,,,,,,,,,571,570,574,573,,,,,219,,562,,,,,,567,,,571,570',
'574,573,,,,,,,,,,,,,,567,,,,,,,,,,,,,,,,,,,567' ]
        racc_action_table = arr = ::Array.new(25629, 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,902,924,387,1030,341,424,652,652,652,1,596,652,652,652,307,652,588',
'22,730,736,459,755,755,675,365,652,652,652,351,735,340,365,1029,1043',
'675,652,652,725,652,652,652,652,652,737,849,1028,222,424,718,348,592',
'80,459,22,592,347,459,459,424,80,448,448,581,749,749,387,652,652,652',
'652,652,652,652,652,652,652,652,652,652,652,850,1030,652,652,652,736',
'652,652,545,580,652,691,691,652,652,662,652,64,652,222,652,307,652,652',
'652,652,652,652,652,737,652,755,652,681,902,924,596,1030,341,902,924',
'588,1030,341,736,652,652,652,652,98,652,715,652,351,735,596,98,98,98',
'652,596,98,98,98,340,98,1029,1043,737,340,448,1029,1043,98,348,98,98',
'98,849,1028,347,849,581,849,1028,98,98,581,98,98,98,98,98,734,680,700',
'390,851,29,692,681,691,662,378,64,850,378,748,491,580,5,663,748,545',
'580,5,98,98,98,98,98,98,98,98,98,98,98,98,98,98,690,223,98,98,98,681',
'98,98,681,613,98,316,491,98,98,663,98,483,98,681,98,689,98,98,98,98',
'98,98,98,390,98,680,98,29,378,378,920,616,920,920,920,686,920,683,852',
'98,98,98,98,651,98,483,98,316,223,29,651,651,651,98,685,651,651,651',
'316,651,680,851,734,680,613,613,851,682,651,651,651,651,123,613,680',
'679,811,123,123,651,651,677,651,651,651,651,651,359,701,733,683,852',
'616,616,359,288,384,683,852,701,288,616,683,852,670,492,683,852,920',
'786,651,651,651,651,651,651,651,651,651,651,651,651,651,651,683,852',
'651,651,651,811,651,651,701,701,651,668,811,651,651,492,651,381,651',
'453,651,811,651,651,651,651,651,651,651,18,651,651,651,384,384,384,753',
'376,786,811,225,753,701,590,591,651,651,651,651,95,651,661,651,967,650',
'655,95,95,95,651,967,95,95,95,716,95,716,716,716,967,716,18,453,95,361',
'95,95,95,381,381,381,361,18,765,950,95,95,950,95,95,95,95,95,225,878',
'653,590,591,376,376,376,644,392,590,591,878,374,650,590,591,344,329',
'590,591,329,344,95,95,95,95,95,95,95,95,95,95,95,95,95,95,590,591,95',
'95,95,638,95,95,878,878,95,770,716,95,95,981,95,981,95,632,95,649,95',
'95,95,95,95,95,95,425,95,42,95,392,392,392,360,374,374,374,633,41,878',
'360,299,95,95,95,95,430,95,299,95,44,44,629,430,430,430,95,299,632,430',
'430,709,430,709,709,709,709,709,425,632,42,649,998,625,998,998,998,709',
'998,425,41,42,430,430,623,430,430,430,430,430,696,41,620,696,562,368',
'562,562,562,709,562,838,368,838,838,838,460,838,583,330,709,709,330',
'430,430,430,430,430,430,430,430,430,430,430,430,430,430,366,358,430',
'430,430,562,430,366,358,582,430,460,838,430,562,460,460,709,430,577',
'430,838,430,430,430,430,430,430,430,362,430,334,430,963,334,713,362',
'713,713,713,963,713,339,339,431,430,430,740,430,963,430,431,431,431',
'740,964,575,431,431,430,431,469,964,740,572,363,568,27,364,431,479,964',
'363,713,27,364,788,469,469,789,431,431,713,431,431,431,431,431,976,791',
'976,976,976,469,976,469,933,469,469,469,469,933,479,469,792,469,479',
'479,479,479,793,431,431,431,431,431,431,431,431,431,431,431,431,431',
'431,221,976,431,431,431,478,431,221,795,859,431,1014,1014,431,859,796',
'221,467,431,797,431,798,431,431,431,431,431,431,431,560,431,431,431',
'467,467,723,723,478,325,325,553,478,478,478,478,431,431,552,431,467',
'431,20,20,467,467,467,467,312,312,431,11,11,11,11,11,11,11,11,11,11',
'11,11,11,11,11,11,11,11,11,11,11,11,11,11,704,704,551,11,11,11,11,11',
'11,11,11,11,11,674,674,674,674,674,11,11,11,11,11,11,11,11,11,11,810',
'11,549,890,465,890,890,890,814,890,11,11,548,11,11,11,11,11,11,11,465',
'465,11,11,817,818,822,11,11,11,11,840,823,840,840,840,465,840,465,824',
'465,465,465,465,11,11,825,11,11,11,11,11,11,11,11,11,11,11,829,830,11',
'11,832,965,833,835,300,837,535,840,965,11,921,300,921,921,921,839,921',
'965,11,534,300,842,533,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,12,921,845,524,12,12,12,12,12,12,12,12,12',
'12,508,508,508,508,508,12,12,12,12,12,12,12,12,12,520,515,12,756,756',
'466,513,756,756,756,510,12,12,509,12,12,12,12,12,12,12,466,466,12,12',
'494,855,493,12,12,12,12,974,464,974,974,974,466,974,466,463,466,466',
'466,466,12,12,860,12,12,12,12,12,12,12,12,12,12,12,861,862,12,12,871',
'594,872,462,17,461,440,974,594,12,1012,17,1012,1012,1012,432,1012,594',
'12,423,17,422,419,12,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91',
'91,91,91,91,91,91,91,91,1012,416,889,91,91,91,91,91,91,91,91,91,91,290',
'290,290,290,290,91,91,91,91,91,91,91,91,91,91,91,91,413,91,411,519,389',
'893,894,386,91,91,519,91,91,91,91,91,91,91,896,519,91,91,684,1031,892',
'91,91,91,91,684,1031,892,897,383,684,1031,380,352,684,1031,892,350,91',
'91,346,91,91,91,91,91,91,91,91,91,91,91,954,49,91,349,303,1006,345,954',
'49,335,349,303,1006,332,331,922,954,49,327,349,303,1006,91,926,927,321',
'318,91,754,754,754,754,754,754,754,754,754,754,754,754,754,754,754,754',
'754,754,754,754,754,754,754,754,932,317,313,754,754,754,754,754,754',
'754,754,754,754,9,9,9,9,9,754,754,754,754,754,754,754,754,754,940,943',
'754,944,945,946,301,948,311,306,305,754,754,301,754,754,754,754,754',
'754,754,958,301,754,754,853,319,302,754,754,754,754,853,319,296,295',
'294,853,966,292,969,853,319,970,971,754,754,972,754,754,754,754,754',
'754,754,754,754,754,754,973,281,754,975,278,277,266,263,231,227,226',
'224,205,121,90,999,1000,1002,89,88,87,72,754,48,43,1013,40,754,406,406',
'406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406',
'406,406,406,406,406,1018,1019,1020,406,406,406,406,406,406,406,406,406',
'406,1021,1022,1023,1024,1027,406,406,406,406,406,406,406,406,406,25',
'19,406,16,15,1032,1033,13,3,1045,,406,406,,406,406,406,406,406,406,406',
',,406,406,,,,406,406,406,406,,,,,,,,,,,,,,406,406,,406,406,406,406,406',
'406,406,406,406,406,406,,,406,406,,,,,,,,,,406,,,,,,,,,406,,,,,406,627',
'627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627',
'627,627,627,627,627,627,,,,627,627,627,627,627,627,627,627,627,627,',
',,,,627,627,627,627,627,627,627,627,627,,,627,,,,,,,,,627,627,,627,627',
'627,627,627,627,627,,,627,627,,,,627,627,627,627,,,,,,,,,,,,,,627,627',
',627,627,627,627,627,627,627,627,627,627,627,,,627,627,,,,,,,,,,627',
',,,,,,,,627,,,,,627,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74',
'74,74,74,74,74,74,74,74,,,,74,74,74,74,74,74,74,74,74,74,,,,,,74,74',
'74,74,74,74,74,74,74,74,74,74,,74,,,,,,,74,74,,74,74,74,74,74,74,74',
',,74,74,,,,74,74,74,74,,,,,,74,,,,,,,,74,74,,74,74,74,74,74,74,74,74',
'74,74,74,,,74,,,,,,,,,,,,929,929,929,929,929,929,,,74,929,929,,,74,929',
',929,929,929,929,929,929,929,,,,,,929,929,929,929,929,929,929,,,929',
',,,,443,929,929,,929,929,929,929,929,929,929,929,929,,929,929,929,,929',
'929,,929,929,929,443,443,443,443,443,443,443,443,443,443,443,,443,443',
',,443,443,,929,,,929,,,929,929,,,929,,929,443,,443,929,443,443,443,443',
'443,443,443,929,443,,,,929,929,929,929,929,929,,,,929,929,,443,,443',
',,929,,,929,929,929,699,699,699,699,699,699,,,,699,699,,,,699,,699,699',
'699,699,699,699,699,,,,,,699,699,699,699,699,699,699,,,699,,,,,654,699',
'699,,699,699,699,699,699,699,699,699,699,,699,699,699,,699,699,,699',
'699,699,654,654,654,654,654,654,654,654,654,654,654,,654,654,,,654,654',
',699,,,699,,,699,699,,,699,,699,654,,654,699,654,654,654,654,654,654',
'654,699,654,,,,699,699,699,699,699,699,,,,699,699,,654,,,,,699,,,699',
'699,699,698,698,698,698,698,698,,,,698,698,,,,698,,698,698,698,698,698',
'698,698,,,,,,698,698,698,698,698,698,698,,,698,,,,,418,698,698,,698',
'698,698,698,698,698,698,698,698,,698,698,698,,698,698,,698,698,698,418',
'418,418,418,418,418,418,418,418,418,418,,418,418,,,418,418,,698,,,698',
',,698,698,,,698,,698,418,,418,698,418,418,418,418,418,418,418,698,418',
',,,698,698,698,698,698,698,,,,698,698,,418,,,,,698,,,698,698,698,816',
'816,816,816,816,816,,,,816,816,,,,816,,816,816,816,816,816,816,816,',
',,,,816,816,816,816,816,816,816,,,816,,,,,,816,816,,816,816,816,816',
'816,816,816,816,816,,816,816,816,,816,816,,816,816,816,482,482,482,482',
'482,482,482,482,482,482,482,,482,482,,,482,482,,816,,,816,,,816,816',
',,816,,816,482,,482,816,482,482,482,482,482,482,482,816,482,,,,816,816',
'816,816,816,816,,,,816,816,482,482,,,,,816,,,816,816,816,807,807,807',
'807,807,807,,,,807,807,,,,807,,807,807,807,807,807,807,807,,,,,,807',
'807,807,807,807,807,807,,,807,,,,,,807,807,,807,807,807,807,807,807',
'807,807,807,,807,807,807,,807,807,,807,807,807,779,779,779,779,779,779',
'779,779,779,779,779,,779,779,,,779,779,,807,,,807,,,807,807,,,807,,807',
'779,,779,807,779,779,779,779,779,779,779,807,779,,,,807,807,807,807',
'807,807,,,,807,807,,779,,,,,807,,,807,807,807,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,688,688,688,688,688,688,688,688,688',
'688,688,,688,688,,,688,688,,405,,,405,,,405,405,,,405,,405,688,,688',
'405,688,688,688,688,688,688,688,405,688,,,,405,405,405,405,405,405,',
',,405,405,,688,,,,,405,,,405,405,405,802,802,802,802,802,802,,,,802',
'802,,,,802,,802,802,802,802,802,802,802,,,,,,802,802,802,802,802,802',
'802,,,802,,,,,,802,802,,802,802,802,802,802,802,802,802,802,,802,802',
'802,,802,802,,802,802,802,874,874,874,874,874,874,874,874,874,874,874',
',874,874,,,874,874,,802,,,802,,,802,802,,,802,,802,874,,874,802,874',
'874,874,874,874,874,874,802,874,,,,802,802,802,802,802,802,,,,802,802',
',874,,,,,802,,,802,802,802,962,962,962,962,962,962,,,,962,962,,,,962',
',962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962,,,962',
',,,,,962,962,,962,962,962,962,962,962,962,962,962,,962,962,962,,962',
'962,,962,962,962,24,24,24,24,24,24,24,24,24,24,24,,24,24,,,24,24,,962',
',,962,,,962,962,,,962,,962,24,,24,962,24,24,24,24,24,24,24,962,24,,',
',962,962,962,962,962,962,,,,962,962,,24,,,,,962,,,962,962,962,324,324',
'324,324,324,324,,,,324,324,,,,324,,324,324,324,324,324,324,324,,,,,',
'324,324,324,324,324,324,324,,,324,,,,,,324,324,,324,324,324,324,324',
'324,324,324,324,,324,324,324,,324,324,,324,324,324,774,774,774,774,774',
'774,774,774,774,774,774,,774,774,,,774,774,,324,,,324,,,324,324,,,324',
',324,774,,774,324,774,774,774,774,774,774,774,324,774,,,,324,324,324',
'324,324,324,,,,324,324,,774,,,,,324,,,324,324,324,576,576,576,576,576',
'576,,,,576,576,,,,576,,576,576,576,576,576,576,576,,,,,,576,576,576',
'576,576,576,576,,,576,,,,,,576,576,,576,576,576,576,576,576,576,576',
'576,,576,576,576,,576,576,,576,576,576,275,275,275,275,275,275,275,275',
'275,275,275,,275,275,,,275,275,,576,,,576,,,576,576,,,576,,576,275,',
'275,576,275,275,275,275,275,275,275,576,275,,,,576,576,576,576,576,576',
',,,576,576,,275,,,,,576,,,576,576,576,579,579,579,579,579,579,,,,579',
'579,,,,579,,579,579,579,579,579,579,579,,,,,,579,579,579,579,579,579',
'579,,,579,,,,,,579,579,,579,579,579,579,579,579,579,579,579,,579,579',
'579,,579,579,,579,579,579,767,767,767,767,767,767,767,767,767,767,767',
',767,767,,,767,767,,579,,,579,,,579,579,,,579,,579,767,,767,579,767',
'767,767,767,767,767,767,579,767,,,,579,579,579,579,579,579,,,,579,579',
',767,,,,,579,,,579,579,579,293,293,293,293,293,293,,,,293,293,,,,293',
',293,293,293,293,293,293,293,,,,,,293,293,293,293,293,293,293,,,293',
',,,,,293,293,,293,293,293,293,293,293,293,293,293,,293,293,293,,293',
'293,,293,293,293,777,777,777,777,777,777,777,777,777,777,777,,777,777',
',,777,777,,293,,,293,,,293,293,,,293,,293,777,,777,293,777,777,777,777',
'777,777,777,293,777,,,,293,293,293,293,293,293,,,,293,293,,777,,,,,293',
',,293,293,293,977,977,977,977,977,977,,,,977,977,,,,977,,977,977,977',
'977,977,977,977,,,,,,977,977,977,977,977,977,977,,,977,,,,,,977,977',
',977,977,977,977,977,977,977,977,977,,977,977,977,,977,977,,977,977',
'977,877,877,877,877,877,877,877,877,877,877,877,,877,877,,,877,877,',
'977,,,977,,,977,977,,,977,,977,877,,877,977,877,877,877,877,877,877',
'877,977,877,,,,977,977,977,977,977,977,,,,977,977,,877,,,,,977,,,977',
'977,977,36,36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,',
'36,36,36,36,36,36,36,,,36,,,,,,36,36,,36,36,36,36,36,36,36,36,36,,36',
'36,36,,36,36,,36,36,36,781,781,781,781,781,781,781,781,781,781,781,',
'781,781,,,781,781,,36,,,36,,,36,36,,,36,,36,781,,781,36,781,781,781',
'781,781,781,781,36,781,,,,36,36,36,36,36,36,,,,36,36,,781,,,,,36,,,36',
'36,36,982,982,982,982,982,982,,,,982,982,,,,982,,982,982,982,982,982',
'982,982,,,,,,982,982,982,982,982,982,982,,,982,,,,,,982,982,,982,982',
'982,982,982,982,982,982,982,,982,982,982,,982,982,,982,982,982,772,772',
'772,772,772,772,772,772,772,772,772,,772,772,,,772,772,,982,,,982,,',
'982,982,,,982,,982,772,,772,982,772,772,772,772,772,772,772,982,772',
',,,982,982,982,982,982,982,,,,982,982,,772,,,,,982,,,982,982,982,985',
'985,985,985,985,985,,,,985,985,,,,985,,985,985,985,985,985,985,985,',
',,,,985,985,985,985,985,985,985,,,985,,,,,,985,985,,985,985,985,985',
'985,985,985,985,985,,985,985,985,,985,985,,985,985,985,531,531,531,531',
'531,531,531,531,531,531,531,,531,531,,,531,531,,985,,,985,,,985,985',
',,985,,985,531,,531,985,531,531,531,531,531,531,531,985,531,,,,985,985',
'985,985,985,985,,,,985,985,,531,,,,,985,,,985,985,985,750,750,750,750',
'750,750,,,,750,750,,,,750,,750,750,750,750,750,750,750,,,,,,750,750',
'750,750,750,750,750,,,750,,,,,,750,750,,750,750,750,750,750,750,750',
'750,750,,750,750,750,,750,750,,750,750,750,438,438,438,438,438,438,438',
'438,438,438,438,,438,438,,,438,438,,750,,,750,,,750,750,,,750,,750,438',
',438,750,438,438,438,438,438,438,438,750,438,,,,750,750,750,750,750',
'750,,,,750,750,,438,,,,,750,,,750,750,750,230,230,230,230,230,230,,',
',230,230,,,,230,,230,230,230,230,230,230,230,,,,,,230,230,230,230,230',
'230,230,,,230,,,,,,230,230,,230,230,230,230,230,230,230,230,230,,230',
'230,230,,230,230,,230,230,230,473,473,473,473,473,473,473,,,473,473',
',,,,,473,473,,230,,,230,,,230,230,,,230,,230,473,,473,230,473,473,473',
'473,473,473,473,230,473,,,,230,230,230,230,230,230,,,,230,230,,,,,,',
'230,,,230,230,230,986,986,986,986,986,986,,,,986,986,,,,986,,986,986',
'986,986,986,986,986,,,,,,986,986,986,986,986,986,986,,,986,,,,,,986',
'986,,986,986,986,986,986,986,986,986,986,,986,986,986,,986,986,,986',
'986,986,472,,,,,,,,,,,,,,,,472,472,,986,,,986,,,986,986,,,986,,986,472',
',472,986,472,472,472,472,,,472,986,472,,,,986,986,986,986,986,986,,',
',986,986,,,,,,,986,,,986,986,986,751,751,751,751,751,751,,,,751,751',
',,,751,,751,751,751,751,751,751,751,,,,,,751,751,751,751,751,751,751',
',,751,,,,,,751,751,,751,751,751,751,751,751,751,751,751,,751,751,751',
',751,751,,751,751,751,474,474,474,474,474,474,474,,,474,474,,,,,,474',
'474,,751,,,751,,,751,751,,,751,,751,474,,474,751,474,474,474,474,474',
'474,474,751,474,,,,751,751,751,751,751,751,,,,751,751,,,,,,,751,,,751',
'751,751,846,846,846,846,846,846,,,,846,846,,,,846,,846,846,846,846,846',
'846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,846,846,,846,846',
'846,846,846,846,846,846,846,,846,846,846,,846,846,,846,846,846,475,475',
'475,475,475,475,475,,,475,475,,,,,,475,475,,846,,,846,,,846,846,,,846',
',846,475,,475,846,475,475,475,475,475,475,475,846,475,,,,846,846,846',
'846,846,846,,,,846,846,,,,,,,846,,,846,846,846,207,207,207,207,207,207',
',,,207,207,,,,207,,207,207,207,207,207,207,207,,,,,,207,207,207,207',
'207,207,207,,,207,,,,,,207,207,,207,207,207,207,207,207,207,207,207',
',207,207,207,,207,207,,207,207,207,477,477,477,477,477,477,477,,,477',
'477,,,,,,477,477,,207,,,207,,,207,207,,,207,,207,477,,477,207,477,477',
'477,477,477,477,477,207,477,,,,207,207,207,207,207,207,,,,207,207,,',
',,,,207,,,207,207,207,847,847,847,847,847,847,,,,847,847,,,,847,,847',
'847,847,847,847,847,847,,,,,,847,847,847,847,847,847,847,,,847,,,,,',
'847,847,,847,847,847,847,847,847,847,847,847,,847,847,847,,847,847,',
'847,847,847,471,,,,,,,,,,,,,,,,471,471,,847,,,847,,,847,847,,,847,,847',
'471,,471,847,471,471,471,471,,,471,847,471,,,,847,847,847,847,847,847',
',,,847,847,,,,,,,847,,,847,847,847,757,757,757,757,757,757,,,,757,757',
',,,757,,757,757,757,757,757,757,757,,,,,,757,757,757,757,757,757,757',
',,757,,,,,,757,757,,757,757,757,757,757,757,757,757,757,,757,757,757',
',757,757,,757,757,757,470,,,,,,,,,,,,,,,,470,470,,757,,,757,,,757,757',
',,757,,757,470,,470,757,470,470,470,470,,,470,757,470,,,,757,757,757',
'757,757,757,,,,757,757,,,,,,,757,,,757,757,757,856,856,856,856,856,856',
',,,856,856,,,,856,,856,856,856,856,856,856,856,,,,,,856,856,856,856',
'856,856,856,,,856,,,,,,856,856,,856,856,856,856,856,856,856,856,856',
',856,856,856,,856,856,,856,856,856,457,457,457,457,457,457,457,457,457',
'457,457,,457,457,,,457,457,,856,,,856,,,856,856,,,856,,856,457,,457',
'856,457,457,457,457,457,457,457,856,457,,,,856,856,856,856,856,856,',
',,856,856,,,,,,,856,,,856,856,856,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,480,480,480,480,480,480,480,,,480,480,,,,,,480',
'480,,899,,,899,,,899,899,,,899,,899,480,,480,899,480,480,480,480,480',
'480,480,899,480,,,,899,899,899,899,899,899,,,,899,899,,,,,,,899,,,899',
'899,899,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,458,458',
'458,458,458,458,458,458,458,458,458,,458,458,,,458,458,,895,,,895,,',
'895,895,,,895,,895,458,,458,895,458,458,458,458,458,458,458,895,458',
',,,895,895,895,895,895,895,,,,895,895,,,,,,,895,,,895,895,895,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,468,468,468,468,468,468,468,,,468',
'468,,,,,,468,468,,2,,,2,,,2,2,,,2,,2,468,,468,2,468,468,468,468,468',
'468,468,2,468,,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,298,298,298,298',
'298,298,,,,298,298,,,,298,,298,298,298,298,298,298,298,,,,,,298,298',
'298,298,298,298,298,,,298,,,,,,298,298,,298,298,298,298,298,298,298',
'298,298,,298,298,298,,298,298,,298,298,298,481,481,481,481,481,481,481',
'481,,481,481,,,,,,481,481,,298,,,298,,,298,298,,,298,,298,481,,481,298',
'481,481,481,481,481,481,481,298,481,,,,298,298,298,298,298,298,,,,298',
'298,,,,,,,298,,,298,298,298,806,806,806,806,806,806,,,,806,806,,,,806',
',806,806,806,806,806,806,806,,,,,,806,806,806,806,806,806,806,,,806',
',,,,,806,806,,806,806,806,806,806,806,806,806,806,,806,806,806,,806',
'806,,806,806,806,476,476,476,476,476,476,476,,,476,476,,,,,,476,476',
',806,,,806,,,806,806,,,806,,806,476,,476,806,476,476,476,476,476,476',
'476,806,476,,,,806,806,806,806,806,806,,,,806,806,,,,,,,806,,,806,806',
'806,63,63,63,,63,,,,63,63,,,,63,,63,63,63,63,63,63,63,,,,,,63,63,63',
'63,63,63,63,,,63,,,,,,,63,,,63,63,63,63,63,63,63,63,63,63,63,63,,63',
'63,,63,63,63,,,,,,,,,,,,,,,,,,,,63,,,63,,,63,63,,915,63,915,915,915',
'915,915,63,,,,,,,,63,915,,,,63,63,63,63,63,63,,,,63,63,,,,,,,63,915',
'63,63,63,63,66,66,66,,66,,915,915,66,66,,,,66,,66,66,66,66,66,66,66',
',,,,,66,66,66,66,66,66,66,,,66,,,,915,,,66,,,66,66,66,66,66,66,66,66',
',66,66,66,,66,66,,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,994,66',
'994,994,994,994,994,66,,,,,,,,66,994,,,,66,66,66,66,66,66,,,,66,66,',
',,,,,66,994,,66,66,66,67,67,67,,67,,994,994,67,67,,,,67,,67,67,67,67',
'67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,994,,,67,,,67,67,67,67,67',
'67,67,67,,67,67,67,,67,67,,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67',
'67,,992,67,992,992,992,992,992,67,,,,,,,,67,992,,,,67,67,67,67,67,67',
',,,67,67,,,,,,,67,992,,67,67,67,70,70,70,,70,,992,992,70,70,,,,70,,70',
'70,70,70,70,70,70,,,,,,70,70,70,70,70,70,70,,,70,,,,992,,,70,,,70,70',
'70,70,70,70,70,70,,70,70,70,,70,70,,70,70,70,,,,,,,,,,,,,,,,,,,,70,',
',70,,,70,70,,990,70,990,990,990,990,990,70,,,,,,,,70,990,,,,70,70,70',
'70,70,70,,,,70,70,70,,,,,70,70,990,,70,70,70,71,71,71,,71,,990,990,71',
'71,,,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,990',
',,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,766,766,766,,766,,,,766,766,,,,766,,766,766,766',
'766,766,766,766,,,,,,766,766,766,766,766,766,766,,,766,,,,,,,766,,,766',
'766,766,766,766,766,766,766,,766,766,766,,766,766,,766,766,766,,,,,',
',,,,,,,,,,,,,,766,,,766,,,766,766,,913,766,913,913,913,913,913,766,',
',,,,,,766,913,,,,766,766,766,766,766,766,,,,766,766,,,,,,,766,913,,766',
'766,766,62,62,62,,62,,913,913,62,62,,,,62,,62,62,62,62,62,62,62,,,,',
',62,62,62,62,62,62,62,,,62,,,,913,,,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',
'61,61,61,,61,,,,61,61,,,,61,,61,61,61,61,61,61,61,,,,,,61,61,61,61,61',
'61,61,,,61,,,,,,,61,,,61,61,61,61,61,61,61,61,,61,61,61,,61,61,,61,61',
'61,,,,,,,,,,,,,,,,,,,,61,,,61,,,61,61,,911,61,911,911,911,911,911,61',
',,,,,,,61,911,,,,61,61,61,61,61,61,,,,61,61,61,,,,,,61,911,,61,61,61',
'502,502,502,,502,,911,911,502,502,,,,502,,502,502,502,502,502,502,502',
',,,,,502,502,502,502,502,502,502,,,502,,,,911,,,502,,,502,502,502,502',
'502,502,502,502,,502,502,502,,502,502,,502,502,502,,,,,,,,,,,,,,,,,',
',,502,,,502,,,502,502,,886,502,886,886,886,886,886,502,,,,,,,,502,886',
',,,502,502,502,502,502,502,,,,502,502,,,,,,,502,886,,502,502,502,647',
'647,647,,647,,886,886,647,647,,,,647,,647,647,647,647,647,647,647,,',
',,,647,647,647,647,647,647,647,,,647,,,,886,,,647,,,647,647,647,647',
'647,647,647,647,,647,647,647,,647,647,,647,647,647,,,,,,,,,,,,,,,,,',
',,647,,,647,,,647,647,,1038,647,1038,1038,1038,1038,1038,647,,,,,,,',
'647,1038,,,,647,647,647,647,647,647,,,,647,647,,,,,,,647,1038,,647,647',
'647,1003,1003,1003,,1003,,1038,1038,1003,1003,,,,1003,,1003,1003,1003',
'1003,1003,1003,1003,,,,,,1003,1003,1003,1003,1003,1003,1003,,,1003,',
',,1038,,,1003,,,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003',
'1003,,1003,1003,,1003,1003,1003,,,,,,,,,,,,,,,,,,,,1003,,,1003,,,1003',
'1003,,,1003,,1003,,1003,,1003,,,,,,,,1003,,,,,1003,1003,1003,1003,1003',
'1003,,,,1003,1003,,,,,,,1003,,1003,1003,1003,1003,646,646,646,,646,',
',,646,646,,,,646,,646,646,646,646,646,646,646,,,,,,646,646,646,646,646',
'646,646,,,646,,,,,,,646,,,646,646,646,646,646,646,646,646,,646,646,646',
',646,646,,646,646,646,,,,,,,,,,,,,,,,,,,,646,,,646,,,646,646,,1007,646',
'1007,1007,1007,1007,1007,646,,,,,,,,646,1007,,,,646,646,646,646,646',
'646,,,,646,646,,,,,,,646,1007,,646,646,646,671,671,671,,671,,1007,1007',
'671,671,,,,671,,671,671,671,671,671,671,671,,,,,,671,671,671,671,671',
'671,671,,,671,,,,1007,,,671,,,671,671,671,671,671,671,671,671,,671,671',
'671,,671,671,,671,671,671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671',
',,,,,671,,,,,,,,671,,,,,671,671,671,671,671,671,,,,671,671,,,,,,,671',
',,671,671,671,47,47,47,,47,,,,47,47,,,,47,,47,47,47,47,47,47,47,,,,',
',47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47',
'47,,47,47,,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47',
',,,,,,,47,,,,,47,47,47,47,47,47,,,,47,47,,,,,,,47,,,47,47,47,46,46,46',
',46,,,,46,46,,,,46,,46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46,46,',
',46,,,,,,,46,,,46,46,46,46,46,46,46,46,,46,46,46,,46,46,,46,46,46,,',
',,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,46,,,,,46,46,46',
'46,46,46,,,,46,46,,,,,,,46,,,46,46,46,111,111,111,111,111,,,,111,111',
',,,111,,111,111,111,111,111,111,111,,,,,,111,111,111,111,111,111,111',
',,111,,,,,,111,111,111,111,111,111,111,111,111,111,111,111,,111,111',
'111,,111,111,,111,111,111,,,,,,,,,,,,,,,,,,,,111,,,111,,,111,111,,,111',
',111,,,,111,,,,,,,,111,,,,,111,111,111,111,111,111,,,,111,111,,,,,,111',
'111,,,111,111,111,116,116,116,,116,,,,116,116,,,,116,,116,116,116,116',
'116,116,116,,,,,,116,116,116,116,116,116,116,,,116,,,,,,,116,,,116,116',
'116,116,116,116,116,116,,116,116,116,,116,116,,116,116,116,,,,,,,,,',
',,,,,,,,,,116,,,116,,,116,116,,,116,,,,,,116,,,,,,,,116,,,,,116,116',
'116,116,116,116,,,,116,116,,,,,,,116,,,116,116,116,117,117,117,,117',
',,,117,117,,,,117,,117,117,117,117,117,117,117,,,,,,117,117,117,117',
'117,117,117,,,117,,,,,,,117,,,117,117,117,117,117,117,117,117,,117,117',
'117,,117,117,,117,117,117,,,,,,,,,,,,,,,,,,,,117,,,117,,,117,117,,,117',
',,,,,117,,,,,,,,117,,,,,117,117,117,117,117,117,,,,117,117,,,,,,,117',
',,117,117,117,118,118,118,,118,,,,118,118,,,,118,,118,118,118,118,118',
'118,118,,,,,,118,118,118,118,118,118,118,,,118,,,,,,,118,,,118,118,118',
'118,118,118,118,118,,118,118,118,,118,118,,118,118,118,,,,,,,,,,,,,',
',,,,,,118,,,118,,,118,118,,,118,,,,,,118,,,,,,,,118,,,,,118,118,118',
'118,118,118,,,,118,118,,,,,,,118,,,118,118,118,119,119,119,,119,,,,119',
'119,,,,119,,119,119,119,119,119,119,119,,,,,,119,119,119,119,119,119',
'119,,,119,,,,,,,119,,,119,119,119,119,119,119,119,119,,119,119,119,',
'119,119,,119,119,119,,,,,,,,,,,,,,,,,,,,119,,,119,,,119,119,,,119,,',
',,,119,,,,,,,,119,,,,,119,119,119,119,119,119,,,,119,119,,,,,,,119,',
',119,119,119,120,120,120,120,120,,,,120,120,,,,120,,120,120,120,120',
'120,120,120,,,,,,120,120,120,120,120,120,120,,,120,,,,,,120,120,,120',
'120,120,120,120,120,120,120,120,,120,120,120,,120,120,,120,120,120,',
',,,,,,,,,,,,,,,,,,120,,,120,,,120,120,,,120,,120,,,,120,,,,,,,,120,',
',,,120,120,120,120,120,120,,,,120,120,,,,,,,120,,,120,120,120,643,643',
'643,,643,,,,643,643,,,,643,,643,643,643,643,643,643,643,,,,,,643,643',
'643,643,643,643,643,,,643,,,,,,,643,,,643,643,643,643,643,643,643,643',
',643,643,643,,643,643,,643,643,643,,,,,,,,,,,,,,,,,,,,643,,,643,,,643',
'643,,,643,,,,,,643,,,,,,,,643,,,,,643,643,643,643,643,643,,,,643,643',
',,,,,,643,,,643,643,643,642,642,642,,642,,,,642,642,,,,642,,642,642',
'642,642,642,642,642,,,,,,642,642,642,642,642,642,642,,,642,,,,,,,642',
',,642,642,642,642,642,642,642,642,,642,642,642,,642,642,,642,642,642',
',,,,,,,,,,,,,,,,,,,642,,,642,,,642,642,,,642,,,,,,642,,,,,,,,642,,,',
',642,642,642,642,642,642,,,,642,642,,,,,,,642,,,642,642,642,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,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',
'208,208,208,,208,,,,208,208,,,,208,,208,208,208,208,208,208,208,,,,',
',208,208,208,208,208,208,208,,,208,,,,,,,208,,,208,208,208,208,208,208',
'208,208,,208,208,208,,208,208,,208,208,208,,,,,,,,,,,,,,,,,,,,208,,',
'208,,,208,208,,,208,,208,,,,208,,,,,,,,208,,,,,208,208,208,208,208,208',
',,,208,208,,,,,,,208,,,208,208,208,209,209,209,,209,,,,209,209,,,,209',
',209,209,209,209,209,209,209,,,,,,209,209,209,209,209,209,209,,,209',
',,,,,,209,,,209,209,209,209,209,209,209,209,,209,209,209,,209,209,,209',
'209,209,,,,,,,,,,,,,,,,,,,,209,,,209,,,209,209,,,209,,,,,,209,,,,,,',
',209,,,,,209,209,209,209,209,209,,,,209,209,,,,,,,209,,,209,209,209',
'210,210,210,,210,,,,210,210,,,,210,,210,210,210,210,210,210,210,,,,',
',210,210,210,210,210,210,210,,,210,,,,,,,210,,,210,210,210,210,210,210',
'210,210,210,210,210,210,,210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210',
',,210,,,210,210,,,210,,210,,210,,210,,,,,,,,210,,,,,210,210,210,210',
'210,210,,,,210,210,,,,,,,210,,210,210,210,210,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,213,213,213,,213,,,,213',
'213,,,,213,,213,213,213,213,213,213,213,,,,,,213,213,213,213,213,213',
'213,,,213,,,,,,,213,,,213,213,213,213,213,213,213,213,,213,213,213,',
'213,213,,213,213,213,,,,,,,,,,,,,,,,,,,,213,,,213,,,213,213,,,213,,',
',,,213,,,,,,,,213,,,,,213,213,213,213,213,213,,,,213,213,,,,,,,213,',
',213,213,213,214,214,214,,214,,,,214,214,,,,214,,214,214,214,214,214',
'214,214,,,,,,214,214,214,214,214,214,214,,,214,,,,,,,214,,,214,214,214',
'214,214,214,214,214,,214,214,214,,214,214,,214,214,214,,,,,,,,,,,,,',
',,,,,,214,,,214,,,214,214,,,214,,214,,,,214,,,,,,,,214,,,,,214,214,214',
'214,214,214,,,,214,214,,,,,,,214,,,214,214,214,215,215,215,,215,,,,215',
'215,,,,215,,215,215,215,215,215,215,215,,,,,,215,215,215,215,215,215',
'215,,,215,,,,,,,215,,,215,215,215,215,215,215,215,215,,215,215,215,',
'215,215,,215,215,215,,,,,,,,,,,,,,,,,,,,215,,,215,,,215,215,,,215,,',
',,,215,,,,,,,,215,,,,,215,215,215,215,215,215,,,,215,215,,,,,,,215,',
',215,215,215,216,216,216,,216,,,,216,216,,,,216,,216,216,216,216,216',
'216,216,,,,,,216,216,216,216,216,216,216,,,216,,,,,,,216,,,216,216,216',
'216,216,216,216,216,,216,216,216,,216,216,,216,216,216,,,,,,,,,,,,,',
',,,,,,216,,,216,,,216,216,,,216,,,,,,216,,,,,,,,216,,,,,216,216,216',
'216,216,216,,,,216,216,,,,,,,216,,,216,216,216,217,217,217,,217,,,,217',
'217,,,,217,,217,217,217,217,217,217,217,,,,,,217,217,217,217,217,217',
'217,,,217,,,,,,,217,,,217,217,217,217,217,217,217,217,,217,217,217,',
'217,217,,217,217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,',
',,,217,,,,,,,,217,,,,,217,217,217,217,217,217,,,,217,217,,,,,,,217,',
',217,217,217,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,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,634,634,634,,634,,,,634,634,,,,634,,634,634,634',
'634,634,634,634,,,,,,634,634,634,634,634,634,634,,,634,,,,,,,634,,,634',
'634,634,634,634,634,634,634,634,634,634,634,,634,634,,634,634,634,,',
',,,,,,,,,,,,,,,,,634,,,634,,,634,634,,,634,,634,,634,,634,,,,,,,,634',
',,,,634,634,634,634,634,634,,,,634,634,,,,,,,634,,634,634,634,634,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,630,630,630,,630,,,,630,630,,,,630,,630',
'630,630,630,630,630,630,,,,,,630,630,630,630,630,630,630,,,630,,,,,',
',630,,,630,630,630,630,630,630,630,630,,630,630,630,,630,630,,630,630',
'630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,630,,,,630,,,,,,,',
'630,,,,,630,630,630,630,630,630,,,,630,630,,,,,,,630,,,630,630,630,676',
'676,676,,676,,,,676,676,,,,676,,676,676,676,676,676,676,676,,,,,,676',
'676,676,676,676,676,676,,,676,,,,,,,676,,,676,676,676,676,676,676,676',
'676,,676,676,676,,676,676,,,,676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676',
'676,,,676,,,,,,,,,,,,,,,,,,,676,676,676,676,676,676,,,,676,676,,,,,',
',676,,,676,676,676,601,601,601,,601,,,,601,601,,,,601,,601,601,601,601',
'601,601,601,,,,,,601,601,601,601,601,601,601,,,601,,,,,,,601,,,601,601',
'601,601,601,601,601,601,,601,601,601,,601,601,,601,601,601,,,,,,,,,',
',,,,,,,,,,601,,,601,,,601,601,,,601,,,,,,601,,,,,,,,601,,,,,601,601',
'601,601,601,601,,,,601,601,,,,,,,601,,,601,601,601,891,891,891,,891',
',,,891,891,,,,891,,891,891,891,891,891,891,891,,,,,,891,891,891,891',
'891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891,891,,891,891',
'891,,891,891,,,,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,,',
',,,,,,,,,,,,,,,891,891,891,891,891,891,,,,891,891,,,,,,,891,,,891,891',
'891,229,229,229,,229,,,,229,229,,,,229,,229,229,229,229,229,229,229',
',,,,,229,229,229,229,229,229,229,,,229,,,,,,,229,,,229,229,229,229,229',
'229,229,229,,229,229,229,,229,229,,229,229,229,,,,,,,,,,,,,,,,,,,,229',
',,229,,,229,229,,,229,,,,,,229,,,,,,,,229,,,,,229,229,229,229,229,229',
',,,229,229,,,,,,,229,,,229,229,229,415,415,415,,415,,,,415,415,,,,415',
',415,415,415,415,415,415,415,,,,,,415,415,415,415,415,415,415,,,415',
',,,,,,415,,,415,415,415,415,415,415,415,415,,415,415,415,,415,415,,415',
'415,415,,,,,,,,,,,,,,,,,,,,415,,,415,,,415,415,,,415,,,,,,415,,,,,,',
',415,,,,,415,415,415,415,415,415,,,,415,415,,,,,,,415,,,415,415,415',
'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,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,233,233,233,,233,,,,233,233,,,,233,,233,233,233,233,233,233,233',
',,,,,233,233,233,233,233,233,233,,,233,,,,,,,233,,,233,233,233,233,233',
'233,233,233,,233,233,233,,233,233,,233,233,233,,,,,,,,,,,,,,,,,,,,233',
',,233,,,233,233,,,233,,,,,,233,,,,,,,,233,,,,,233,233,233,233,233,233',
',,,233,233,,,,,,,233,,,233,233,233,234,234,234,,234,,,,234,234,,,,234',
',234,234,234,234,234,234,234,,,,,,234,234,234,234,234,234,234,,,234',
',,,,,,234,,,234,234,234,234,234,234,234,234,,234,234,234,,234,234,,234',
'234,234,,,,,,,,,,,,,,,,,,,,234,,,234,,,234,234,,,234,,,,,,234,,,,,,',
',234,,,,,234,234,234,234,234,234,,,,234,234,,,,,,,234,,,234,234,234',
'235,235,235,,235,,,,235,235,,,,235,,235,235,235,235,235,235,235,,,,',
',235,235,235,235,235,235,235,,,235,,,,,,,235,,,235,235,235,235,235,235',
'235,235,,235,235,235,,235,235,,235,235,235,,,,,,,,,,,,,,,,,,,,235,,',
'235,,,235,235,,,235,,,,,,235,,,,,,,,235,,,,,235,235,235,235,235,235',
',,,235,235,,,,,,,235,,,235,235,235,236,236,236,,236,,,,236,236,,,,236',
',236,236,236,236,236,236,236,,,,,,236,236,236,236,236,236,236,,,236',
',,,,,,236,,,236,236,236,236,236,236,236,236,,236,236,236,,236,236,,236',
'236,236,,,,,,,,,,,,,,,,,,,,236,,,236,,,236,236,,,236,,,,,,236,,,,,,',
',236,,,,,236,236,236,236,236,236,,,,236,236,,,,,,,236,,,236,236,236',
'237,237,237,,237,,,,237,237,,,,237,,237,237,237,237,237,237,237,,,,',
',237,237,237,237,237,237,237,,,237,,,,,,,237,,,237,237,237,237,237,237',
'237,237,,237,237,237,,237,237,,237,237,237,,,,,,,,,,,,,,,,,,,,237,,',
'237,,,237,237,,,237,,,,,,237,,,,,,,,237,,,,,237,237,237,237,237,237',
',,,237,237,,,,,,,237,,,237,237,237,238,238,238,,238,,,,238,238,,,,238',
',238,238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238',
',,,,,,238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,,238',
'238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,',
',238,,,,,238,238,238,238,238,238,,,,238,238,,,,,,,238,,,238,238,238',
'239,239,239,,239,,,,239,239,,,,239,,239,239,239,239,239,239,239,,,,',
',239,239,239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239',
'239,239,,239,239,239,,239,239,,239,239,239,,,,,,,,,,,,,,,,,,,,239,,',
'239,,,239,239,,,239,,,,,,239,,,,,,,,239,,,,,239,239,239,239,239,239',
',,,239,239,,,,,,,239,,,239,239,239,240,240,240,,240,,,,240,240,,,,240',
',240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240',
',,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,,240',
'240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,',
',240,,,,,240,240,240,240,240,240,,,,240,240,,,,,,,240,,,240,240,240',
'241,241,241,,241,,,,241,241,,,,241,,241,241,241,241,241,241,241,,,,',
',241,241,241,241,241,241,241,,,241,,,,,,,241,,,241,241,241,241,241,241',
'241,241,,241,241,241,,241,241,,241,241,241,,,,,,,,,,,,,,,,,,,,241,,',
'241,,,241,241,,,241,,,,,,241,,,,,,,,241,,,,,241,241,241,241,241,241',
',,,241,241,,,,,,,241,,,241,241,241,242,242,242,,242,,,,242,242,,,,242',
',242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242,242,,,242',
',,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,,242,242,,242',
'242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,,,,242,,,,,,',
',242,,,,,242,242,242,242,242,242,,,,242,242,,,,,,,242,,,242,242,242',
'243,243,243,,243,,,,243,243,,,,243,,243,243,243,243,243,243,243,,,,',
',243,243,243,243,243,243,243,,,243,,,,,,,243,,,243,243,243,243,243,243',
'243,243,,243,243,243,,243,243,,243,243,243,,,,,,,,,,,,,,,,,,,,243,,',
'243,,,243,243,,,243,,,,,,243,,,,,,,,243,,,,,243,243,243,243,243,243',
',,,243,243,,,,,,,243,,,243,243,243,244,244,244,,244,,,,244,244,,,,244',
',244,244,244,244,244,244,244,,,,,,244,244,244,244,244,244,244,,,244',
',,,,,,244,,,244,244,244,244,244,244,244,244,,244,244,244,,244,244,,244',
'244,244,,,,,,,,,,,,,,,,,,,,244,,,244,,,244,244,,,244,,,,,,244,,,,,,',
',244,,,,,244,244,244,244,244,244,,,,244,244,,,,,,,244,,,244,244,244',
'245,245,245,,245,,,,245,245,,,,245,,245,245,245,245,245,245,245,,,,',
',245,245,245,245,245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245',
'245,245,,245,245,245,,245,245,,245,245,245,,,,,,,,,,,,,,,,,,,,245,,',
'245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,,,245,245,245,245,245,245',
',,,245,245,,,,,,,245,,,245,245,245,246,246,246,,246,,,,246,246,,,,246',
',246,246,246,246,246,246,246,,,,,,246,246,246,246,246,246,246,,,246',
',,,,,,246,,,246,246,246,246,246,246,246,246,,246,246,246,,246,246,,246',
'246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,',
',246,,,,,246,246,246,246,246,246,,,,246,246,,,,,,,246,,,246,246,246',
'247,247,247,,247,,,,247,247,,,,247,,247,247,247,247,247,247,247,,,,',
',247,247,247,247,247,247,247,,,247,,,,,,,247,,,247,247,247,247,247,247',
'247,247,,247,247,247,,247,247,,247,247,247,,,,,,,,,,,,,,,,,,,,247,,',
'247,,,247,247,,,247,,,,,,247,,,,,,,,247,,,,,247,247,247,247,247,247',
',,,247,247,,,,,,,247,,,247,247,247,248,248,248,,248,,,,248,248,,,,248',
',248,248,248,248,248,248,248,,,,,,248,248,248,248,248,248,248,,,248',
',,,,,,248,,,248,248,248,248,248,248,248,248,,248,248,248,,248,248,,248',
'248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248,248,,,248,,,,,,248,,,,,,',
',248,,,,,248,248,248,248,248,248,,,,248,248,,,,,,,248,,,248,248,248',
'249,249,249,,249,,,,249,249,,,,249,,249,249,249,249,249,249,249,,,,',
',249,249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249,249,249,249',
'249,249,,249,249,249,,249,249,,249,249,249,,,,,,,,,,,,,,,,,,,,249,,',
'249,,,249,249,,,249,,,,,,249,,,,,,,,249,,,,,249,249,249,249,249,249',
',,,249,249,,,,,,,249,,,249,249,249,250,250,250,,250,,,,250,250,,,,250',
',250,250,250,250,250,250,250,,,,,,250,250,250,250,250,250,250,,,250',
',,,,,,250,,,250,250,250,250,250,250,250,250,,250,250,250,,250,250,,250',
'250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,',
',250,,,,,250,250,250,250,250,250,,,,250,250,,,,,,,250,,,250,250,250',
'251,251,251,,251,,,,251,251,,,,251,,251,251,251,251,251,251,251,,,,',
',251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251',
'251,251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,,,,251,,',
'251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251,251,251',
',,,251,251,,,,,,,251,,,251,251,251,252,252,252,,252,,,,252,252,,,,252',
',252,252,252,252,252,252,252,,,,,,252,252,252,252,252,252,252,,,252',
',,,,,,252,,,252,252,252,252,252,252,252,252,,252,252,252,,252,252,,252',
'252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252,,,,,,252,,,,,,',
',252,,,,,252,252,252,252,252,252,,,,252,252,,,,,,,252,,,252,252,252',
'253,253,253,,253,,,,253,253,,,,253,,253,253,253,253,253,253,253,,,,',
',253,253,253,253,253,253,253,,,253,,,,,,,253,,,253,253,253,253,253,253',
'253,253,,253,253,253,,253,253,,253,253,253,,,,,,,,,,,,,,,,,,,,253,,',
'253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253,253,253,253,253,253',
',,,253,253,,,,,,,253,,,253,253,253,254,254,254,,254,,,,254,254,,,,254',
',254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254',
',,,,,,254,,,254,254,254,254,254,254,254,254,,254,254,254,,254,254,,254',
'254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,',
',254,,,,,254,254,254,254,254,254,,,,254,254,,,,,,,254,,,254,254,254',
'255,255,255,,255,,,,255,255,,,,255,,255,255,255,255,255,255,255,,,,',
',255,255,255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255',
'255,255,,255,255,255,,255,255,,255,255,255,,,,,,,,,,,,,,,,,,,,255,,',
'255,,,255,255,,,255,,,,,,255,,,,,,,,255,,,,,255,255,255,255,255,255',
',,,255,255,,,,,,,255,,,255,255,255,256,256,256,,256,,,,256,256,,,,256',
',256,256,256,256,256,256,256,,,,,,256,256,256,256,256,256,256,,,256',
',,,,,,256,,,256,256,256,256,256,256,256,256,,256,256,256,,256,256,,256',
'256,256,,,,,,,,,,,,,,,,,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,',
',256,,,,,256,256,256,256,256,256,,,,256,256,,,,,,,256,,,256,256,256',
'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,597,597,597,,597,,,,597,597,,,,597',
',597,597,597,597,597,597,597,,,,,,597,597,597,597,597,597,597,,,597',
',,,,,,597,,,597,597,597,597,597,597,597,597,,597,597,597,,597,597,,597',
'597,597,,,,,,,,,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,597,,,,,,',
',597,,,,,597,597,597,597,597,597,,,,597,597,,,,,,,597,,,597,597,597',
'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,264,264,264,,264,,,,264,264,,',
',264,,264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264,',
',264,,,,,,,264,,,264,264,264,264,264,264,264,264,264,264,264,264,,264',
'264,,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,264,',
'264,,264,,,,,,,,264,,,,,264,264,264,264,264,264,,,,264,264,,,,,,,264',
',264,264,264,264,732,732,732,,732,,,,732,732,,,,732,,732,732,732,732',
'732,732,732,,,,,,732,732,732,732,732,732,732,,,732,,,,,,,732,,,732,732',
'732,732,732,732,732,732,,732,732,732,,732,732,,732,732,732,,,,,,,,,',
',,,,,,,,,,732,,,732,,,732,732,,,732,,732,,,,732,,,,,,,,732,,,,,732,732',
'732,732,732,732,,,,732,732,,,,,,,732,,,732,732,732,270,270,270,,270',
',,,270,270,,,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270',
'270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,270,270',
'270,270,,270,270,,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270',
',,270,,270,,270,,270,,,,,,,,270,,,,,270,270,270,270,270,270,,,,270,270',
',,,,,,270,,270,270,270,270,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,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,34,34,34,,34,,,,34,34,,,,34,,34,34,34,34,34,34,34,,,,,,34,34,34,34',
'34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34,,34,34',
',34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,34,,34,,,,,,',
',34,,,,,34,34,34,34,34,34,,,,34,34,,,,,,,34,,34,34,34,34,585,585,585',
',585,,,,585,585,,,,585,,585,585,585,585,585,585,585,,,,,,585,585,585',
'585,585,585,585,,,585,,,,,,,585,,,585,585,585,585,585,585,585,585,585',
'585,585,585,,585,585,,585,585,585,,,,,,,,,,,,,,,,,,,,585,,,585,,,585',
'585,,,585,,585,,585,,585,,,,,,,,585,,,,,585,585,585,585,585,585,,,,585',
'585,,,,,,,585,,585,585,585,585,280,280,280,,280,,,,280,280,,,,280,,280',
'280,280,280,280,280,280,,,,,,280,280,280,280,280,280,280,,,280,,,,,',
',280,,,280,280,280,280,280,280,280,280,,280,280,280,,280,280,,280,280',
'280,,,,,,,,,,,,,,,,,,,,280,,,280,,,280,280,,,280,,,,,,280,,,,,,,,280',
',,,,280,280,280,280,280,280,,,,280,280,,,,,,,280,,,280,280,280,782,782',
'782,,782,,,,782,782,,,,782,,782,782,782,782,782,782,782,,,,,,782,782',
'782,782,782,782,782,,,782,,,,,,,782,,,782,782,782,782,782,782,782,782',
',782,782,782,,782,782,,782,782,782,,,,,,,,,,,,,,,,,,,,782,,,782,,,782',
'782,,,782,,,,,,782,,,,,,,,782,,,,,782,782,782,782,782,782,,,,782,782',
',,,,,,782,,,782,782,782,282,282,282,,282,,,,282,282,,,,282,,282,282',
'282,282,282,282,282,,,,,,282,282,282,282,282,282,282,,,282,,,,,,,282',
',,282,282,282,282,282,282,282,282,,282,282,282,,282,282,,282,282,282',
',,,,,,,,,,,,,,,,,,,282,,,282,,,282,282,,,282,,,,,,282,,,,,,,,282,,,',
',282,282,282,282,282,282,,,,282,282,,,,,,,282,,,282,282,282,284,284',
'284,,284,,,,284,284,,,,284,,284,284,284,284,284,284,284,,,,,,284,284',
'284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284,284',
',284,284,284,,284,284,,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284',
'284,,,284,,,,,,284,,,,,,,,284,,,,,284,284,284,284,284,284,,,,284,284',
',,,,,,284,,,284,284,284,285,285,285,,285,,,,285,285,,,,285,,285,285',
'285,285,285,285,285,,,,,,285,285,285,285,285,285,285,,,285,,,,,,,285',
',,285,285,285,285,285,285,285,285,,285,285,285,,285,285,,285,285,285',
',,,,,,,,,,,,,,,,,,,285,,,285,,,285,285,,,285,,,,,,285,,,,,,,,285,,,',
',285,285,285,285,285,285,,,,285,285,,,,,,,285,,,285,285,285,783,783',
'783,,783,,,,783,783,,,,783,,783,783,783,783,783,783,783,,,,,,783,783',
'783,783,783,783,783,,,783,,,,,,,783,,,783,783,783,783,783,783,783,783',
',783,783,783,,783,783,,783,783,783,,,,,,,,,,,,,,,,,,,,783,,,783,,,783',
'783,,,783,,,,,,783,,,,,,,,783,,,,,783,783,783,783,783,783,,,,783,783',
',,,,,,783,,,783,783,783,876,876,876,,876,,,,876,876,,,,876,,876,876',
'876,876,876,876,876,,,,,,876,876,876,876,876,876,876,,,876,,,,,,,876',
',,876,876,876,876,876,876,876,876,,876,876,876,,876,876,,876,876,876',
',,,,,,,,,,,,,,,,,,,876,,,876,,,876,876,,,876,,,,,,876,,,,,,,,876,,,',
',876,876,876,876,876,876,,,,876,876,,,,,,,876,,,876,876,876,291,291',
'291,291,291,,,,291,291,,,,291,,291,291,291,291,291,291,291,,,,,,291',
'291,291,291,291,291,291,,,291,,,,,,291,291,,291,291,291,291,291,291',
'291,291,291,,291,291,291,,291,291,,291,291,291,,,,,,,,,,,,,,,,,,,,291',
',,291,,,291,291,,,291,,291,,,,291,,,,,,,,291,,,,,291,291,291,291,291',
'291,,,,291,291,,,,,,,291,,,291,291,291,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,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,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,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,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,297,297,297,',
'297,,,,297,297,,,,297,,297,297,297,297,297,297,297,,,,,,297,297,297',
'297,297,297,297,,,297,,,,,,,297,,,297,297,297,297,297,297,297,297,,297',
'297,297,,297,297,,,,297,,,,,,,,,,,,,,,,,,,,297,,,297,,,297,297,,,297',
',,,,,,,,,,,,,,,,,,297,297,297,297,297,297,,,,297,297,,,,297,,,297,,',
'297,297,297,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,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,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,564,564,564,,564,,,,564',
'564,,,,564,,564,564,564,564,564,564,564,,,,,,564,564,564,564,564,564',
'564,,,564,,,,,,,564,,,564,564,564,564,564,564,564,564,,564,564,564,',
'564,564,,564,564,564,,,,,,,,,,,,,,,,,,,,564,,,564,,,564,564,,,564,,',
',,,564,,,,,,,,564,,,,,564,564,564,564,564,564,,,,564,564,,,,,,,564,',
',564,564,564,687,687,687,,687,,,,687,687,,,,687,,687,687,687,687,687',
'687,687,,,,,,687,687,687,687,687,687,687,,,687,,,,,,,687,,,687,687,687',
'687,687,687,687,687,,687,687,687,,687,687,,,,687,,,,,,,,,,,,,,,,,,,',
'687,,,687,,,687,687,,,687,,,,,,,,,,,,,,,,,,,687,687,687,687,687,687',
',,,687,687,,,,,,,687,,,687,687,687,799,799,799,,799,,,,799,799,,,,799',
',799,799,799,799,799,799,799,,,,,,799,799,799,799,799,799,799,,,799',
',,,,,,799,,,799,799,799,799,799,799,799,799,,799,799,799,,799,799,,',
',799,,,,,,,,,,,,,,,,,,,,799,,,799,,,799,799,,,799,,,,,,,,,,,,,,,,,,',
'799,799,799,799,799,799,,,,799,799,,,,,,,799,,,799,799,799,744,744,744',
',744,,,,744,744,,,,744,,744,744,744,744,744,744,744,,,,,,744,744,744',
'744,744,744,744,,,744,,,,,,,744,,,744,744,744,744,744,744,744,744,744',
'744,744,744,,744,744,,744,744,744,,,,,,,,,,,,,,,,,,,,744,,,744,,,744',
'744,,,744,,744,,744,,744,,,,,,,,744,,,,,744,744,744,744,744,744,,,,744',
'744,,,,,,,744,,744,744,744,744,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,693,693',
'693,,693,,,,693,693,,,,693,,693,693,693,693,693,693,693,,,,,,693,693',
'693,693,693,693,693,,,693,,,,,,,693,,,693,693,693,693,693,693,693,693',
',693,693,693,,693,693,,693,693,693,,,,,,,,,,,,,,,,,,,,693,,,693,,,693',
'693,,,693,,693,,,,693,,,,,,,,693,,,,,693,693,693,693,693,693,,,,693',
'693,,,,,,,693,,,693,693,693,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,875,875,875,,875,,,,875,875,,,,875,,875,875,875,875,875,875,875',
',,,,,875,875,875,875,875,875,875,,,875,,,,,,,875,,,875,875,875,875,875',
'875,875,875,875,875,875,875,,875,875,,875,875,875,,,,,,,,,,,,,,,,,,',
',875,,,875,,,875,875,,,875,,,,875,,875,,,,,,,,875,,,,,875,875,875,875',
'875,875,,,,875,875,,,,,,,875,,875,875,875,875,541,541,541,,541,,,,541',
'541,,,,541,,541,541,541,541,541,541,541,,,,,,541,541,541,541,541,541',
'541,,,541,,,,,,,541,,,541,541,541,541,541,541,541,541,541,541,541,541',
',541,541,,541,541,541,,,,,,,,,,,,,,,,,,,,541,,,541,,,541,541,,,541,',
',,,,541,,,,,,,,541,,,,,541,541,541,541,541,541,,,,541,541,,,,,,,541',
',541,541,541,541,314,314,314,,314,,,,314,314,,,,314,,314,314,314,314',
'314,314,314,,,,,,314,314,314,314,314,314,314,,,314,,,,,,,314,,,314,314',
'314,314,314,314,314,314,,314,314,314,,314,314,,,,314,,,,,,,,,,,,,,,',
',,,,314,,,314,,,314,314,,,314,,,,,,,,,,,,,,,,,,,314,314,314,314,314',
'314,,,,314,314,,,,,,,314,,,314,314,314,538,538,538,,538,,,,538,538,',
',,538,,538,538,538,538,538,538,538,,,,,,538,538,538,538,538,538,538',
',,538,,,,,,,538,,,538,538,538,538,538,538,538,538,538,538,538,538,,538',
'538,,538,538,538,,,,,,,,,,,,,,,,,,,,538,,,538,,,538,538,,,538,,538,',
',,538,,,,,,,,538,,,,,538,538,538,538,538,538,,,,538,538,,,,,,,538,,538',
'538,538,538,844,844,844,,844,,,,844,844,,,,844,,844,844,844,844,844',
'844,844,,,,,,844,844,844,844,844,844,844,,,844,,,,,,,844,,,844,844,844',
'844,844,844,844,844,,844,844,844,,844,844,,844,844,844,,,,,,,,,,,,,',
',,,,,,844,,,844,,,844,844,,,844,,,,,,844,,,,,,,,844,,,,,844,844,844',
'844,844,844,,,,844,844,,,,,,,844,,,844,844,844,857,857,857,,857,,,,857',
'857,,,,857,,857,857,857,857,857,857,857,,,,,,857,857,857,857,857,857',
'857,,,857,,,,,,,857,,,857,857,857,857,857,857,857,857,,857,857,857,',
'857,857,,857,857,857,,,,,,,,,,,,,,,,,,,,857,,,857,,,857,857,,,857,,',
',,,857,,,,,,,,857,,,,,857,857,857,857,857,857,,,,857,857,,,,,,,857,',
',857,857,857,532,532,532,,532,,,,532,532,,,,532,,532,532,532,532,532',
'532,532,,,,,,532,532,532,532,532,532,532,,,532,,,,,,,532,,,532,532,532',
'532,532,532,532,532,,532,532,532,,532,532,,532,532,532,,,,,,,,,,,,,',
',,,,,,532,,,532,,,532,532,,,532,,,,,,532,,,,,,,,532,,,,,532,532,532',
'532,532,532,,,,532,532,,,,,,,532,,,532,532,532,928,928,928,,928,,,,928',
'928,,,,928,,928,928,928,928,928,928,928,,,,,,928,928,928,928,928,928',
'928,,,928,,,,,,,928,,,928,928,928,928,928,928,928,928,,928,928,928,',
'928,928,,928,928,928,,,,,,,,,,,,,,,,,,,,928,,,928,,,928,928,,,928,,928',
',,,928,,,,,,,,928,,,,,928,928,928,928,928,928,,,,928,928,,,,,,,928,',
',928,928,928,323,323,323,,323,,,,323,323,,,,323,,323,323,323,323,323',
'323,323,,,,,,323,323,323,323,323,323,323,,,323,,,,,,,323,,,323,323,323',
'323,323,323,323,323,,323,323,323,,323,323,,323,323,323,,,,,,,,,,,,,',
',,,,,,323,,,323,323,,323,323,,,323,,,,,,323,,,,,,,,323,,,,,323,323,323',
'323,323,323,,,,323,323,,,,,,,323,,,323,323,323,711,711,711,,711,,,,711',
'711,,,,711,,711,711,711,711,711,711,711,,,,,,711,711,711,711,711,711',
'711,,,711,,,,,,,711,,,711,711,711,711,711,711,711,711,,711,711,711,',
'711,711,,711,711,711,,,,,,,,,,,,,,,,,,,,711,,,711,,,711,711,,,711,,',
',,,711,,,,,,,,711,,,,,711,711,711,711,711,711,,,,711,711,,,,,,,711,',
',711,711,711,528,528,528,,528,,,,528,528,,,,528,,528,528,528,528,528',
'528,528,,,,,,528,528,528,528,528,528,528,,,528,,,,,,,528,,,528,528,528',
'528,528,528,528,528,,528,528,528,,528,528,,528,528,528,,,,,,,,,,,,,',
',,,,,,528,,,528,,,528,528,,,528,,,,,,528,,,,,,,,528,,,,,528,528,528',
'528,528,528,,,,528,528,,,,,,,528,,,528,528,528,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,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,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,,,,,,,527,,,527,527,527,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,738,738,738,,738,,,,738,738,,,,738,,738,738,738',
'738,738,738,738,,,,,,738,738,738,738,738,738,738,,,738,,,,,,,738,,,738',
'738,738,738,738,738,738,738,,738,738,738,,738,738,,738,738,738,,,,,',
',,,,,,,,,,,,,,738,,,738,,,738,738,,,738,,,,,,738,,,,,,,,738,,,,,738',
'738,738,738,738,738,,,,738,738,,,,,,,738,,,738,738,738,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,357,357,357,,357,,,,357,357,,,',
'357,,357,357,357,357,357,357,357,,,,,,357,357,357,357,357,357,357,,',
'357,,,,,,,357,,,357,357,357,357,357,357,357,357,,357,357,357,,357,357',
',,,357,,,,,,,,,,,,,,,,,,,,357,,,357,,,357,357,,,357,,,,,,,,,,,,,,,,',
',,357,357,357,357,357,357,,,,357,357,,,,,,,357,,,357,357,357,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,355,355,355,,355,,,,355,355,,',
',355,,355,355,355,355,355,355,355,,,,,,355,355,355,355,355,355,355,',
',355,,,,,,,355,,,355,355,355,355,355,355,355,355,,355,355,355,,355,355',
',,,355,,,,,,,,,,,,,,,,,,,,355,,,355,,,355,355,,,355,,,,,,,,,,,,,,,,',
',,355,355,355,355,355,355,,,,355,355,,,,,,,355,,,355,355,355,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,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,903,903,903,903,903',
',,,903,903,,,,,,,903,,,903,903,903,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,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,343,343,343,,343,,,,343,343',
',,,343,,343,343,343,343,343,343,343,,,,,,343,343,343,343,343,343,343',
',,343,,,,,,,343,,,343,343,343,343,343,343,343,343,,343,343,343,,343',
'343,,343,343,343,,,,,,,,,,,,,,,,,,,,343,,,343,,,343,343,,,343,,,,,,343',
',,,,,,,343,,,,,343,343,343,343,343,343,,,,343,343,,,,,,,343,,,343,343',
'343,523,523,523,,523,,,,523,523,,,,523,,523,523,523,523,523,523,523',
',,,,,523,523,523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523',
'523,523,523,,523,523,523,,523,523,,,,523,,,,,59,,,,,,,59,59,59,,,59',
'59,59,523,59,,523,,,523,523,,,523,59,59,59,,,,,,,,59,59,,59,59,59,59',
'59,523,523,523,523,523,523,,,,523,523,,,,,,,523,,,523,523,523,59,59',
'59,59,59,59,59,59,59,59,59,59,59,59,,,59,59,59,,,59,,,59,,,59,59,,59',
',59,,59,,59,59,59,59,59,59,59,,59,,59,,,,,,,,,,,,,59,59,59,59,436,59',
',59,,,,436,436,436,,,436,436,436,705,436,705,705,705,705,705,,,,436',
'436,436,436,,,705,,,,,436,436,,436,436,436,436,436,,,,,,,,,,705,,,,',
',,,,705,705,705,705,,436,436,436,436,436,436,436,436,436,436,436,436',
'436,436,,,436,436,436,,,436,,,436,,,436,436,,436,705,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,338,435,338,338,338,338,338,,,,435',
'435,435,435,,,338,,,,,435,435,,435,435,435,435,435,,,,,,,,,,338,338',
',,,,,,,338,338,338,338,,435,435,435,435,435,435,435,435,435,435,435',
'435,435,435,,,435,435,435,,,435,,,435,,,435,435,,435,338,435,,435,,435',
'435,435,435,435,435,435,,435,435,435,,,,,,,,,,,,,435,435,435,435,426',
'435,,435,,,,426,426,426,,,426,426,426,707,426,707,707,707,707,707,,',
',426,426,426,,,,707,,,,,426,426,,426,426,426,426,426,,,,,,,,,,707,,',
',,,,,,707,707,707,707,,426,426,426,426,426,426,426,426,426,426,426,426',
'426,426,,,426,426,426,,,426,,426,426,,,426,426,,426,707,426,,426,,426',
'426,426,426,426,426,426,,426,426,426,,,,,,,,,,,,31,426,426,,426,,426',
'31,31,31,,,31,31,31,938,31,938,938,938,938,938,,,,,31,31,,,,938,,,,',
'31,31,,31,31,31,31,31,,,,,,,,,,938,938,,,,,,,,938,938,938,938,,31,31',
'31,31,31,31,31,31,31,31,31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,',
'31,938,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,,30,,,,,,,30,30,30,,484,30,30,30,,30,,484,,,,,484,484,30,30',
'30,,,,546,,,,,30,30,,30,30,30,30,30,,484,484,,,,,,,,,,,,,484,,,,,484',
',,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30,,,30,,30,30,',
',30,30,,30,,30,,30,,30,30,30,30,30,30,30,,30,30,30,,,,,,211,211,,,211',
',,30,30,,30,,30,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,,988,211,988,988,988,988,988,,,,,260,260,,,260,988,,,,,211',
',,260,260,211,260,260,260,260,260,260,260,,,260,260,988,,,260,260,260',
'260,,,988,988,988,988,,,,,,,,260,260,,260,260,260,260,260,260,260,260',
'260,260,260,,,260,,,,,,,,,988,587,587,,,587,,,,,,260,,,587,587,260,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,,,,,,,,',
',743,743,,,743,,,,,,587,,,743,743,587,743,743,743,743,743,743,743,,',
'743,743,,,,743,743,743,743,,,,,,743,,,,,,,,743,743,,743,743,743,743',
'743,743,743,743,743,743,743,,,743,,,,,,,,,,586,586,,,586,,,,,,743,,',
'586,586,743,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,,,,,,,,,,1004,1004,,,1004,,,,,,586,,,1004,1004,586,1004,1004,1004',
'1004,1004,1004,1004,,,1004,1004,,,,1004,1004,1004,1004,,,,,,1004,,,',
',,,,1004,1004,,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004',
',,1004,,,,,,,,,,742,742,,,742,,,,,,1004,,,742,742,1004,742,742,742,742',
'742,742,742,,,742,742,,,,742,742,742,742,,,,,,742,,,,,,,,742,742,,742',
'742,742,742,742,742,742,742,742,742,742,,,742,,,,,,,,,,1005,1005,,,1005',
',,,,,742,,,1005,1005,742,1005,1005,1005,1005,1005,1005,1005,,,1005,1005',
',,,1005,1005,1005,1005,,,,,,1005,,,,,,,,1005,1005,,1005,1005,1005,1005',
'1005,1005,1005,1005,1005,1005,1005,,,1005,,,,,,,,,,955,955,,,955,,,',
',,1005,,,955,955,1005,955,955,955,955,955,955,955,,,955,955,,,,955,955',
'955,955,,,,,,955,,,,,,,,955,955,,955,955,955,955,955,955,955,955,955',
'955,955,,,955,,,,,,,,,,451,451,,,451,,,,,,955,,,451,451,955,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,,,,,,,,,,450',
'450,,,450,,,,,,451,,,450,450,451,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,,,,,,,,,,517,517,,,517,,,,,,450,,,517,517',
'450,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,,',
',,,,,,,529,529,,,529,,,,,,517,,,529,529,517,529,529,529,529,529,529',
'529,,,529,529,,,,529,529,529,529,,,,,,529,,,,,,,,529,529,,529,529,529',
'529,529,529,529,529,529,529,529,,,529,,,,,,,,,,212,212,,,212,,,,,,529',
',,212,212,529,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,,,,,,,,,,530,530,,,530,,,,,,212,,,530,530,212,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,,,,,,,,,,518,518,,,518',
',,,,,530,,,518,518,530,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,,909,518,909,909,909,909,909,599,,599,599,599,599,599,,',
'909,,,,,518,,599,,881,518,881,881,881,881,881,,,,,,,909,,,881,,,,599',
'599,909,909,909,909,,,,599,599,599,599,,,,,658,881,658,658,658,658,658',
',,,881,881,881,881,,,658,,,,884,909,884,884,884,884,884,,599,,,,,,,',
'884,,658,752,,752,752,752,752,752,881,658,658,658,658,,,,,752,,,884',
',,,,,,,,884,884,884,884,,,,,658,,752,,,,,,658,,,752,752,752,752,,,,',
',,,,,,,,,884,,,,,,,,,,,,,,,,,,,752' ]
        racc_action_check = arr = ::Array.new(25629, 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,    10,  5436,  1397,   nil,    65,   nil,   nil, 16454,  1198,
   nil,   784,   922,  1284,   nil,  1253,  1305,   964,   283,  1250,
   741,   nil,   -72, 19990,  2696,  1362,   nil,   590,   nil,   154,
 24168, 23976, 18222, 18086, 16590,   nil,  3518, 15774, 11966,   nil,
  1207,   425,   415,  1279,   463,  9110,  7750,  7614,  1207,  1095,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23461,
   nil,  6798,  6662,  5846,    73,   nil,  5982,  6118,   nil,   nil,
  6254,  6390,  1248,   nil,  1612,   nil,   nil,   nil,   nil,   nil,
   -64,   nil,   nil,   nil,   nil,   nil,   nil,  1200,  1199,  1198,
  1194,  1060,   nil,   nil,   nil,   390,   nil,   nil,   130,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  7886,   nil,   nil,   nil,   nil,  8022,  8158,  8294,  8430,
  8566,  1211,   nil,   236,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  1193,   nil,  4614,  9246,  9382,
  9518, 24236, 25185,  9926, 10062, 10198, 10334, 10470, 10606,   nil,
   nil,   648,   -40,   125,  1266,   294,  1180,  1232,   nil, 11694,
  4066,  1228, 12102, 12238, 12374, 12510, 12646, 12782, 12918, 13054,
 13190, 13326, 13462, 13598, 13734, 13870, 14006, 14142, 14278, 14414,
 14550, 14686, 14822, 14958, 15094, 15230, 15366, 15502,   nil,   nil,
 24309,   nil,   nil,  1220, 15910,   nil,  1226,   nil,   nil,   nil,
 16182,   nil,   nil, 16318,   nil,  2970,   nil,  1186,  1185,   nil,
 16862,  1223, 17134,   nil, 17270, 17406,   nil,   nil,   186,   nil,
  1060, 17814,  1150,  3244,  1161,  1195,  1156, 18630,  5573,   437,
   826,  1179,  1223,  1098,   nil,  1171,  1134,   -10,   nil,   nil,
   nil,  1169,   722,  1097, 20398,   nil,   135,  1158,  1131,  1199,
   nil,  1130,   nil, 21214,  2833,   728,   nil,  1099,   nil,   326,
   457,  1091,  1072,   nil,   506,  1093,   nil,   nil, 23685,   607,
    19,    -7, 23118, 23254,   325,  1162,  1029,    32,    26,  1097,
  1102,     5,  1129,   nil,   nil, 22574,   nil, 22302,   524,   226,
   429,   337,   552,   588,   591,   -53,   523,   nil,   491,   nil,
   nil,   nil,   nil,   nil,   387,   nil,   318,   nil,   124,   nil,
  1029,   298,   nil,  1026,   253,   nil,  1000,   -57,   nil,   997,
   117,   nil,   383,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  2422,  1336,   nil,   nil,   nil,
   nil,  1005,   nil,   987,   nil, 11830,   958,   nil,  2011,   934,
   nil,   nil,   930,   928,   -81,   413, 23851,   nil,   nil,   nil,
   520,   645,   963,   nil,   nil, 23721, 23591,   nil,  3929,   nil,
   904,   nil,   nil,  1737,   nil,   nil,   nil,   nil,    25,   nil,
 24966, 24893, 17950,   273, 18494, 18766, 19718,  5025,  5299,   -46,
   513,   976,   974,   948,   941,   775,   913,   676,  5436,   595,
  4888,  4751,  4203,  4066,  4340,  4477,  5710,  4614,   664,   604,
  5162,  5573,  2148,   153, 24101,   nil,   nil,   nil,   nil,   nil,
   nil,   114,   247,   876,   874,   nil,   nil, 21622,   nil,   nil,
 22982,   nil,  6934,   nil,   nil,   nil,   nil, 22166,   922,   862,
   856,   nil,   nil,   852, 22710,   850, 22438, 25039, 25331,  1041,
   885,   nil,   nil, 23390,   821,   nil, 21894, 21758, 21486, 25112,
 25258,  3792, 20942,   915,   910,   780,   nil,   nil, 20534,   nil,
   nil, 20262,   nil,   nil,   nil,    61, 24065,   nil,   721,   711,
   nil,   683,   644,   637,   nil,   nil,   nil,   nil,   nil,   nil,
   615,   nil,   517,   nil, 19174,   nil,   nil,   nil,   616,   nil,
   nil,   nil,   614,   nil,   nil,   606,  2970,   608,   nil,  3107,
    64,    37,   594,   573,   nil, 16726, 24528, 24382,    -7,   nil,
   359,   360,     0,   nil,   961,   nil,    10, 15638,   nil, 25400,
   nil, 11422,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   160,   nil,   nil,   188,   nil,   nil,   nil,
   436,   nil,   nil,   428,   nil,   434,   nil,  1474,   nil,   397,
 11150, 11014,   403,   416, 10878, 10742,  9790,  9654,   379,   nil,
   nil,   nil,  8838,  8702,   345,   nil,  7342,  7070,   nil,   405,
   308,   260,     0,   310,  1874,   268,   nil,   nil, 25455,   nil,
   nil,   365,    71,   117,   nil,   nil,   nil,   nil,   223,   nil,
   233,  7478,   nil,   nil,   784,  -105, 11286,   169,   nil,   166,
   151,    90,   194,   229,  1060,   181,   123, 19310,  2422,   165,
   144,    56,   166, 19854,   nil,   nil,   438,   nil,  2011,  1874,
    50,   249,   nil,   nil,   710, 23555,   nil, 23815,   nil,   484,
   nil, 21350,   nil,   585,   nil,     3,   354,   nil,   -77,   nil,
   nil,   nil,   nil,   748,   nil,    24,   nil,   nil,   nil,   nil,
    10,   nil, 16046,   180,   150,     6,    -4,    20, 22030,   nil,
   570,   nil, 24674, 24455, 19582,   nil,   nil,   nil,    62,    28,
  3929,  4340, 25494,   251,  1198,   -14,   925,  4888,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   295,  6526,  3107,  8974,   nil,
   353,   nil,  3655,   nil,  2833,   nil,   nil,  3244,   nil,  2285,
   nil,  3518, 16998, 17542, 18358, 18902,   239, 19038,   548,   551,
   nil,   561,   576,   582,   nil,   625,   615,   614,   607, 19446,
   nil,   nil,  2559,   nil,   nil,   nil,  5710,  2285,   nil,   nil,
   709,   268,   nil,   nil,   838,   nil,  2148,   733,   775,   nil,
   nil,   nil,   751,   861,   751,   755,   nil,   nil,   nil,   767,
   768,   nil,   771,   773,   nil,   774,   nil,   779,   524,   786,
   818,   nil,   912,   nil, 20670,   940,  4477,  4751,   nil,    33,
    57,   152,   230,  1198,   nil,   875,  5025, 20806,   nil,   609,
  1013,  1025,   909,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   925,   911,   nil,  2559, 20126, 17678,  3381,   379,   nil,
   nil, 25418,   nil,   nil, 25475,   nil,  6978,   nil,   nil,   979,
   790, 11558,  1062,  1066,  1113,  5299,  1021,  1139,   nil,  5162,
   nil,   nil,   -11, 22846,   nil,   nil,   nil,   nil,   nil, 25393,
   nil,  6842,   nil,  6570,   nil,  5890,   nil,   nil,   nil,   nil,
   196,   859,  1058,   nil,   -10,   nil,  1186,  1187, 21078,  1737,
   nil,   nil,  1215,   571,   nil,   nil,   nil,   nil, 23940,   nil,
  1122,   nil,   nil,  1123,  1125,  1126,  1127,   nil,  1129,   nil,
   299,   nil,   nil,   nil,  1094, 24820,   nil,   nil,  1159,   nil,
   nil,   nil,  2696,   556,   578,   823,  1234,   316,   nil,  1162,
  1165,  1166,  1169,  1181,   956,  1184,   638,  3381,   nil,   nil,
   nil,   472,  3655,   nil,   nil,  3792,  4203,   nil, 24298,   nil,
  6298,   nil,  6162,   nil,  6026,   nil,   nil,   nil,   495,  1235,
  1236,   nil,  1320,  7206, 24601, 24747,  1099,  7386,   nil,   nil,
   nil,   nil,   997,  1206,   724,   nil,   nil,   nil,  1353,  1354,
  1355,  1246,  1247,  1248,  1249,   nil,   nil,  1253,    34,    21,
    -8,  1061,  1265,  1266,   nil,   nil,   nil,   nil,  7114,   nil,
   nil,   nil,   nil,    22,   nil,  1269,   nil ]

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

clist = [
'6,217,276,276,276,426,432,259,367,534,17,220,336,271,576,579,17,583',
'692,127,127,499,442,130,130,394,414,323,9,554,326,221,439,296,9,488',
'114,260,4,547,221,221,221,842,17,301,301,122,206,751,672,419,669,110',
'484,669,295,132,132,831,328,333,313,294,814,524,310,310,792,221,951',
'111,795,632,221,221,726,729,221,349,292,375,127,377,379,382,385,388',
'391,377,718,672,340,341,922,834,344,845,741,127,310,114,263,269,272',
'702,703,537,540,947,373,493,544,712,824,596,115,598,345,17,277,277,277',
'919,221,221,221,221,17,376,355,953,278,278,278,392,856,9,274,286,287',
'597,400,401,402,403,404,859,660,613,329,603,616,985,357,610,664,665',
'614,750,599,614,330,334,754,938,499,738,406,847,343,794,354,205,898',
'975,846,796,1025,342,276,535,324,368,950,672,663,449,745,669,669,545',
'697,338,427,121,412,417,352,483,802,437,441,491,806,492,793,807,420',
'1015,889,732,818,947,902,17,221,221,221,398,436,221,221,221,221,221',
'221,411,1013,982,374,895,378,381,276,831,337,554,17,953,276,837,495',
'276,426,432,332,700,854,490,295,384,387,830,730,832,390,866,756,757',
'393,919,857,510,712,677,1033,839,420,831,371,2,221,829,686,498,498,662',
'221,826,941,221,331,325,627,520,601,1,339,339,554,943,339,653,271,,416',
'834,,17,,17,416,,,301,17,786,,,525,682,,295,,,,508,295,114,509,513,301',
'682,,515,310,,805,,,,17,811,1034,,506,292,339,339,339,339,292,310,,879',
'880,930,831,,221,221,277,1016,507,,,679,,,,277,,594,278,594,,,580,581',
'489,,,278,,114,,,600,494,682,,908,,310,,310,850,986,712,759,712,582',
'759,,,,,633,,,,,6,,,,,,640,775,808,,17,127,645,780,648,130,,498,498',
'276,,639,672,733,810,,944,669,9,945,427,,860,861,445,446,447,448,625',
'626,554,,,,,,,420,,132,862,442,,,969,,436,221,655,666,667,,,,640,,,',
'973,712,,821,,,,675,,,656,639,,678,,276,1026,,656,656,,,,,,,987,,638',
'427,,,,695,644,,,,931,525,819,427,808,420,17,,,,525,,,301,929,221,712',
'436,712,,,,301,,674,,,1021,682,436,,221,932,,310,,,,,,,,,310,,,276,',
'661,,,,,,712,339,339,,,,427,,,,,,,962,,,,,,,420,17,855,,17,,,,,,221',
',436,723,668,977,725,,,,,,221,,,,221,804,727,727,,,,,,,,,,,,771,773',
',746,,554,776,778,633,,441,127,,797,696,130,,,,803,221,221,,883,885',
'887,221,221,,1017,221,,,,633,,813,656,,764,,640,498,,645,,1019,1020',
'525,132,,,,,,797,639,1043,,812,301,,,841,864,,815,820,,,,301,,,789,706',
'708,710,,,,310,17,17,,,,,633,,276,,310,,822,823,,815,,815,865,,427,',
',,,,,,770,,,,,,,825,420,,,,221,,,,436,,221,,691,,873,,17,17,,,127,,851',
'17,,,498,,,,,,,797,221,871,,858,,416,,,863,,,,,882,882,882,,907,,,,',
'682,989,991,993,995,,996,,918,892,,,17,,900,,17,17,904,,,749,849,,894',
'755,17,,896,897,310,,,937,,,633,,901,,,,,29,,,1027,,,29,,,,,221,,17',
'17,,16,,,,,29,16,17,221,926,927,,,924,29,29,29,,29,,1039,1040,1041,1042',
',727,933,,790,,,,,934,16,,,,,,,,954,29,1046,,17,,29,29,17,,29,,965,',
',,958,,42,940,961,310,789,,42,789,,789,,827,997,,827,310,,,,,17,,,,882',
'882,882,882,,882,791,,981,29,42,300,300,,29,29,29,29,29,339,,,436,984',
',16,,,,17,,,276,,16,,910,912,815,914,916,1002,917,,17,348,427,,370,17',
',,17,17,,833,1014,835,,,420,1018,,,,633,,,,,221,815,436,,,,,,882,882',
'882,882,,,,42,,789,,789,,789,,789,42,,,,,,,,882,,,29,29,29,29,,,29,29',
'29,29,29,29,,,,,16,,,,339,,,29,,,,,,,,,789,339,,,,,,16,,,,,,,,,,,,,',
',,,,29,,827,,,790,29,,790,29,790,,,,1008,1009,1010,1011,,42,,,,,,,,29',
',29,,,,,29,,,,,,,,42,16,,16,,,,,16,,,,,,,,,,29,,,,,,,,,,946,,948,,,',
'16,1044,29,29,,,,,,,,,,,,,,,,970,,971,,972,,,,42,,42,,,,300,42,41,790',
',790,,790,41,790,,,,,,,,300,,,,,,,,,,42,,,,,29,,,,41,299,299,,,,,,,',
',,16,,,,,790,,,,,370,,370,,,,,1022,,1023,,1024,,347,,,369,,,,,29,,,',
',1032,,,,,,,,,,,,,,,,335,,,,,,,,42,,,41,,,,1045,,,,,41,,,,,,18,,,,,',
'18,,29,,,,,,,,,29,,,,,,,16,,,,,,,,,29,18,303,303,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,351,,,,,,,,29,,,29,41,,,42,,29,,,,,300,,16,,,16,,29,,300',
',29,,41,,,,,18,,,,,,,,,18,413,,,,,,444,,,,,,,,,,,,29,29,,,,,29,29,,',
'29,,,,,,42,,,42,,,,,,,,,41,,41,,,,299,41,,,,,,,,,,,,,,,,299,,,501,,503',
',504,505,,41,29,29,,,,,18,,,,,,,,,,16,16,,,,,,,,,,,,18,369,,369,,,,',
',,,29,,,,,,29,,,,,,29,29,300,,,,,29,,,,,,300,,,16,16,29,,,,,16,42,42',
',,41,,,,,,,,,,18,,18,,,,303,18,,,,,,,29,,,,29,29,,,,303,,,,,29,,16,',
',18,16,16,19,629,42,42,,,19,,16,42,,,,,,,,,,,29,,29,29,,,,,595,,595',
',29,29,19,,,,16,16,,,,,,,,,16,,,370,,,42,,41,,42,42,,,,299,,,,,42,353',
',29,299,,,29,,,18,,,,,670,,,335,16,673,,,16,,,,,,,42,42,,,,,,29,,,42',
'19,,,,,,,,,19,,,16,,,670,41,,335,41,,,,,,,,,,29,,,,,370,,,,42,,,719',
'42,,29,16,964,,,29,,,29,29,,,,,,,16,,,,,16,,,16,16,29,18,42,,,,,,303',
',,,,,,,,303,,,,,,,,,19,,,,,,,440,,42,,765,,,,670,335,,,,299,,,19,42',
',,,,42,,299,42,42,,,,,,,,,41,41,18,,,18,,,,,809,,,,,,,,,,,,,,,,,,,,',
',817,,,,,,,,,,19,,19,,,,,19,836,,41,41,,,,,,41,,,,,,,,,,,,444,,,,19',
',,,,,,,,,,,,,,,,,,,,,,,,,369,303,,41,872,,,41,41,,,,303,,,,,41,,,,,',
'18,18,,,,,,,,,,,,,,,,,,,,,,,41,41,,,,,,,19,,41,,,,,,,,,,,,,,,,,,18,18',
',,,,870,18,,,,,,,,,,369,,,,41,,,,41,,,,963,,,,,,,,,335,,,,,,,,,,,595',
',,18,,,41,18,18,,,,,,,,,18,,,,,,,,,,,,,,,,19,,,,,,41,,,980,,,,,18,18',
',,,,,41,,,18,,41,,,41,41,,,,,,,,,,,,,,,,,,,,,228,,,,,,,,595,275,275',
'275,18,,,,18,,19,,967,19,320,321,322,,,,,,,,,,,,,,,275,275,,,,,,18,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,,,,,,,,,440,,,,,,18,,,,,18,,,18,18',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,19,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,275,418,275,,,438,443,19,19,,,,,,19,,,,,,,228,,,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,,,,,,,275,,,19,,,275,19,19,275,,,,,',
',275,19,275,,275,275,,,,,,,,,,,,,,,,,,,,,,,,,,19,19,,,,,,,,,19,,531',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,19,,,,968,,,,,,,,,,,,,,,,',
',,,,,,,,,19,,,,,,,,,,,,,,,,,,,,,275,,,,,,,,,,,,19,,,,,,,,,,,,,,,19,',
',,,19,,,19,19,275,,438,654,418,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,275,,,275,,275,,,,,,,,,,,,,,275,,,,,,,,,,688,689,690,,,,,,,,,,275',
',,275,,,,,,,,,,,,,,,,,,,,,,,275,,,,,,,,,,,,,,,,,,,,,275,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,275,767,,,275,275,772,774,,,,,777,779',
',,654,781,,,,,,,,,,,,,,,,,,,,,,,,275,,,,,,,,,,,,,,,,,,,,,,275,,,,,,',
',,,,,,,,,,,275,,,,,,,,,,,,,,,,,,,,,275,,,,,,,,,,,,275,,,,,,,,,,,,,,',
',,,,,,,275,,874,,,,,,,,,,,,,,772,774,779,777,,877,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',275,874,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,275,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,275' ]
        racc_goto_table = arr = ::Array.new(3200, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'6,33,35,35,35,39,39,150,59,10,24,22,86,71,89,89,24,92,13,60,60,73,20',
'63,63,59,29,33,9,180,50,24,29,52,9,41,95,38,2,149,24,24,24,90,24,24',
'24,17,17,96,193,25,74,5,39,74,12,64,64,184,6,6,53,49,14,54,66,66,139',
'24,144,8,142,26,24,24,91,91,24,24,48,6,60,6,6,6,6,6,6,6,129,193,19,19',
'130,188,19,14,57,60,66,95,40,40,40,134,134,69,69,189,165,25,69,128,142',
'58,7,58,5,24,68,68,68,127,24,24,24,24,24,167,106,145,70,70,70,167,107',
'9,47,47,47,108,19,19,19,19,9,109,42,170,68,171,170,110,111,171,42,42',
'171,112,113,171,70,70,114,115,73,104,32,103,102,131,21,18,15,130,101',
'137,144,100,35,99,98,97,143,193,44,50,94,74,74,146,147,148,71,11,22',
'22,93,151,152,22,22,155,156,157,140,158,6,159,142,160,161,189,162,24',
'24,24,24,7,60,24,24,24,24,24,24,12,130,105,166,45,168,169,35,184,88',
'180,24,145,35,129,50,35,39,39,85,149,57,71,12,172,173,140,92,140,174',
'175,176,177,178,127,179,50,128,54,130,128,6,184,84,3,24,183,54,6,6,72',
'24,185,186,24,67,31,65,33,192,1,31,31,180,139,31,25,71,,68,188,,24,',
'24,68,,,24,24,26,,,52,39,,12,,,,9,12,95,49,53,24,39,,49,66,,42,,,,24',
'26,90,,5,48,31,31,31,31,48,66,,134,134,91,184,,24,24,68,14,8,,,25,,',
',68,,24,70,24,,,19,19,47,,,70,,95,,,38,47,39,,134,,66,,66,26,96,128',
'171,128,5,171,,,,,33,,,,,6,,,,,,71,41,73,,24,60,71,41,50,63,,6,6,35',
',6,193,25,54,,140,74,9,140,71,,10,10,31,31,31,31,2,17,180,,,,,,,6,,64',
'149,20,,,140,,60,24,33,50,50,,,,71,,,,128,128,,69,,,,50,,,6,6,,50,,35',
'13,,6,6,,,,,,,134,,40,71,,,,50,40,,,,26,52,29,71,73,6,24,,,,52,,,24',
'89,24,128,60,128,,,,24,,9,,,140,39,60,,24,10,,66,,,,,,,,,66,,,35,,40',
',,,,,128,31,31,,,,71,,,,,,,89,,,,,,,6,24,25,,24,,,,,,24,,60,12,70,89',
'12,,,,,,24,,,,24,86,95,95,,,,,,,,,,,,22,22,,95,,180,22,22,33,,22,60',
',33,70,63,,,,150,24,24,,136,136,136,24,24,,92,24,,,,33,,50,6,,17,,71',
'6,,71,,10,10,52,64,,,,,,33,6,26,,52,24,,,50,59,,6,6,,,,24,,,133,182',
'182,182,,,,66,24,24,,,,,33,,35,,66,,12,12,,6,,6,50,,71,,,,,,,,70,,,',
',,,133,6,,,,24,,,,60,,24,,31,,22,,24,24,,,60,,19,24,,,6,,,,,,,33,24',
'12,,95,,68,,,95,,,,,6,6,6,,50,,,,,39,136,136,136,136,,136,,50,24,,,24',
',6,,24,24,6,,,31,68,,12,31,24,,12,12,66,,,50,,,33,,12,,,,,43,,,25,,',
'43,,,,,24,,24,24,,23,,,,,43,23,24,24,12,12,,,19,43,43,43,,43,,136,136',
'136,136,,95,19,,135,,,,,95,23,,,,,,,,24,43,136,,24,,43,43,24,,43,,24',
',,,12,,56,133,12,66,133,,56,133,,133,,135,33,,135,66,,,,,24,,,,6,6,6',
'6,,6,138,,12,43,56,56,56,,43,43,43,43,43,31,,,60,95,,23,,,,24,,,35,',
'23,,182,182,6,182,182,12,182,,24,56,71,,56,24,,,24,24,,138,12,138,,',
'6,12,,,,33,,,,,24,6,60,,,,,,6,6,6,6,,,,56,,133,,133,,133,,133,56,,,',
',,,,6,,,43,43,43,43,,,43,43,43,43,43,43,,,,,23,,,,31,,,43,,,,,,,,,133',
'31,,,,,,23,,,,,,,,,,,,,,,,,,43,,135,,,135,43,,135,43,135,,,,182,182',
'182,182,,56,,,,,,,,43,,43,,,,,43,,,,,,,,56,23,,23,,,,,23,,,,,,,,,,43',
',,,,,,,,,138,,138,,,,23,182,43,43,,,,,,,,,,,,,,,,138,,138,,138,,,,56',
',56,,,,56,56,55,135,,135,,135,55,135,,,,,,,,56,,,,,,,,,,56,,,,,43,,',
',55,55,55,,,,,,,,,,23,,,,,135,,,,,56,,56,,,,,138,,138,,138,,55,,,55',
',,,,43,,,,,138,,,,,,,,,,,,,,,,30,,,,,,,,56,,,55,,,,138,,,,,55,,,,,,27',
',,,,,27,,43,,,,,,,,,43,,,,,,,23,,,,,,,,,43,27,27,27,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,27,,,,,,,,43,,,43,55,,,56,,43,,,,,56,,23,,,23,,43,,56',
',43,,55,,,,,27,,,,,,,,,27,30,,,,,,30,,,,,,,,,,,,43,43,,,,,43,43,,,43',
',,,,,56,,,56,,,,,,,,,55,,55,,,,55,55,,,,,,,,,,,,,,,,55,,,30,,30,,30',
'30,,55,43,43,,,,,27,,,,,,,,,,23,23,,,,,,,,,,,,27,55,,55,,,,,,,,43,,',
',,,43,,,,,,43,43,56,,,,,43,,,,,,56,,,23,23,43,,,,,23,56,56,,,55,,,,',
',,,,,27,,27,,,,27,27,,,,,,,43,,,,43,43,,,,27,,,,,43,,23,,,27,23,23,28',
'30,56,56,,,28,,23,56,,,,,,,,,,,43,,43,43,,,,,27,,27,,43,43,28,,,,23',
'23,,,,,,,,,23,,,56,,,56,,55,,56,56,,,,55,,,,,56,28,,43,55,,,43,,,27',
',,,,30,,,30,23,30,,,23,,,,,,,56,56,,,,,,43,,,56,28,,,,,,,,,28,,,23,',
',30,55,,30,55,,,,,,,,,,43,,,,,56,,,,56,,,30,56,,43,23,56,,,43,,,43,43',
',,,,,,23,,,,,23,,,23,23,43,27,56,,,,,,27,,,,,,,,,27,,,,,,,,,28,,,,,',
',28,,56,,30,,,,30,30,,,,55,,,28,56,,,,,56,,55,56,56,,,,,,,,,55,55,27',
',,27,,,,,30,,,,,,,,,,,,,,,,,,,,,,30,,,,,,,,,,28,,28,,,,,28,30,,55,55',
',,,,,55,,,,,,,,,,,,30,,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,55,27,,55,30,,',
'55,55,,,,27,,,,,55,,,,,,27,27,,,,,,,,,,,,,,,,,,,,,,,55,55,,,,,,,28,',
'55,,,,,,,,,,,,,,,,,,27,27,,,,,27,27,,,,,,,,,,55,,,,55,,,,55,,,,55,,',
',,,,,,30,,,,,,,,,,,27,,,27,,,55,27,27,,,,,,,,,27,,,,,,,,,,,,,,,,28,',
',,,,55,,,30,,,,,27,27,,,,,,55,,,27,,55,,,55,55,,,,,,,,,,,,,,,,,,,,,34',
',,,,,,,27,34,34,34,27,,,,27,,28,,27,28,34,34,34,,,,,,,,,,,,,,,34,34',
',,,,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,,,,,,,,,28,,,,,,27,,,,,27',
',,27,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,28,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,34,34,34,,,34,34,28,28,,,,,,28,,,,,,,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,,,28,,,34,28,28,34,,,,,,,34,28,34,,34,34,,,,,,,,,,,,',
',,,,,,,,,,,,,28,28,,,,,,,,,28,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,28,,,,28,,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,28,,,,,,,,,,,,,,,,,,,,,34',
',,,,,,,,,,,28,,,,,,,,,,,,,,,28,,,,,28,,,28,28,34,,34,34,34,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,34,,34,,,,,,,,,,,,,,34,,,,,,,,,',
'34,34,34,,,,,,,,,,34,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,',
',,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,34,34,34,34',
',,,,34,34,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,34',
',,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,34,,,,,,,,,,,',
',,,,,,,,,,34,,34,,,,,,,,,,,,,,34,34,34,34,,34,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34',
'34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34' ]
        racc_goto_check = arr = ::Array.new(3200, 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,   287,    36,   271,   nil,    48,    -2,   108,    66,    26,
  -315,   185,    20,  -515,  -628,  -640,   nil,    36,   161,    26,
  -192,   101,   -12,   855,     8,  -159,  -346,  1336,  1661,  -182,
  1249,   222,    46,   -21,  2196,   -30,   nil,   nil,    10,  -206,
    73,  -228,  -335,   839,  -301,  -574,   nil,   106,    44,    27,
   -31,   nil,    -4,    24,  -249,  1212,   915,  -494,  -240,   -66,
     8,   nil,   nil,    12,    46,  -126,    29,   220,    88,  -222,
   100,   -17,  -207,  -257,  -445,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   196,   183,   -52,   nil,   171,  -326,
  -680,  -504,  -328,   127,  -408,    31,  -550,   109,   122,  -144,
   111,  -550,   101,  -560,  -422,  -701,    58,  -609,  -215,  -602,
  -781,    81,  -439,  -207,  -436,  -699,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -715,  -449,  -472,
  -746,  -487,   nil,    40,  -443,   227,  -144,  -481,   289,  -590,
  -452,   nil,  -586,  -706,  -820,  -759,  -147,  -353,   128,  -299,
   -18,   -59,  -460,   nil,   nil,   -64,  -460,   -63,  -458,  -772,
  -373,  -481,  -604,   nil,   nil,    30,   147,    44,   146,   146,
  -232,  -223,   163,   163,   166,  -499,  -347,  -347,   169,  -485,
  -309,   nil,   148,  -432,  -646,  -422,  -598,   nil,  -612,  -775,
   nil,   nil,   -86,  -450 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   289,     7,   346,   290,
   nil,   nil,   533,   nil,   843,   nil,   288,   nil,   nil,   nil,
    14,    15,    21,   227,   319,   nil,   nil,   225,   226,   nil,
   281,    20,   nil,   327,    24,    25,    26,    27,   nil,   685,
   nil,   nil,   nil,   307,   nil,   nil,    28,   421,    35,   nil,
   nil,    37,    40,    39,   nil,   222,   223,   593,   nil,   129,
   429,   128,   131,    78,    79,   nil,    49,   nil,   422,   nil,
   423,   434,   641,   496,   279,   264,    50,    51,    52,    53,
    54,    55,    56,    57,    58,   nil,   265,    64,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   577,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   714,   561,   nil,
   715,   942,   788,   549,   nil,   550,   nil,   nil,   551,   nil,
   553,   657,   nil,   nil,   nil,   559,   nil,   nil,   nil,   753,
   nil,   nil,   nil,   433,   266,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    77,    80,    82,   nil,   nil,   nil,   nil,
   nil,   608,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   828,   548,   nil,   552,   563,   565,   800,   568,   569,   801,
   572,   575,   nil,   283 ]

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

racc_reduce_n = 617

racc_shift_n = 1047

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,
  :tEQL => 140,
  :tLOWEST => 141 }

racc_nt_base = 142

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",
  "tEQL",
  "tLOWEST",
  "$start",
  "program",
  "top_compstmt",
  "@1",
  "top_stmts",
  "opt_terms",
  "none",
  "top_stmt",
  "terms",
  "stmt",
  "bodystmt",
  "@2",
  "compstmt",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "fitem",
  "undef_list",
  "expr_value",
  "command_asgn",
  "mlhs",
  "command_call",
  "var_lhs",
  "primary_value",
  "opt_call_args",
  "rbracket",
  "backref",
  "lhs",
  "mrhs",
  "arg_value",
  "expr",
  "@3",
  "opt_nl",
  "arg",
  "command",
  "block_command",
  "block_call",
  "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",
  "primary",
  "aref_args",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@7",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "symbols",
  "qsymbols",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "then",
  "if_tail",
  "do",
  "case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "@8",
  "@9",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "k_begin",
  "k_if",
  "k_unless",
  "k_while",
  "k_until",
  "k_case",
  "k_for",
  "k_class",
  "k_module",
  "k_def",
  "k_end",
  "f_marg",
  "f_norm_arg",
  "f_margs",
  "f_marg_list",
  "block_args_tail",
  "f_block_kwarg",
  "f_kwrest",
  "opt_f_block_arg",
  "f_block_arg",
  "opt_block_args_tail",
  "block_param",
  "f_arg",
  "f_block_optarg",
  "f_rest_arg",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@26",
  "f_args",
  "do_block",
  "@27",
  "@28",
  "operation3",
  "@29",
  "@30",
  "@31",
  "@32",
  "@33",
  "cases",
  "@34",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@35",
  "@36",
  "sym",
  "@37",
  "args_tail",
  "f_kwarg",
  "opt_args_tail",
  "f_optarg",
  "f_arg_item",
  "f_kw",
  "f_block_kw",
  "kwrest_mark",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "@38",
  "assoc" ]

Racc_debug_parser = false

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

# reduce 0 omitted

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

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

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

# reduce 4 omitted

# reduce 5 omitted

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

# reduce 7 omitted

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

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

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

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

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

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

# reduce 13 omitted

# reduce 14 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 29 omitted

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

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

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

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

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

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

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

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

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

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

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

# reduce 41 omitted

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

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

# reduce 44 omitted

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

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

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

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

# reduce 49 omitted

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

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

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

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

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

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

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

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

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

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

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

# reduce 70 omitted

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

# reduce 72 omitted

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

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

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

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

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

                      result = list_append ary1, s(:splat, splat)
                      result.concat ary2[1..-1]
                      result = s(:masgn, result)
                    
    result
end

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

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

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

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

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

def _reduce_83(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat), *val[2][1..-1]))
                    
    result
end

# reduce 84 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 109 omitted

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

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

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

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

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

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

# reduce 118 omitted

# reduce 119 omitted

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

# reduce 121 omitted

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

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

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

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

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

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

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

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

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

def _reduce_202(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

def _reduce_203(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

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

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

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

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

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

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

def _reduce_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 val[0], :"%", argl(val[2])
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_231(val, _values, result)
                      result = self.get_match_node val[0], val[2]
                    
    result
end

def _reduce_232(val, _values, result)
                      result = s(:not, self.get_match_node(val[0], val[2]))
                    
    result
end

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

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

def _reduce_235(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_236(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_237(val, _values, result)
                      result = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_238(val, _values, result)
                      result = logop(:or, val[0], val[2])
                    
    result
end

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

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

# reduce 241 omitted

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

# reduce 243 omitted

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

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

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

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

# reduce 248 omitted

# reduce 249 omitted

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

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

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

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

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

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

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

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

def _reduce_258(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_259(val, _values, result)
                      result = call_args val
                    
    result
end

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

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

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

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

# reduce 264 omitted

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

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

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

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

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

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

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

# 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

# reduce 281 omitted

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

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

def _reduce_284(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_285(val, _values, result)
                      debug20 13, val, result
                    
    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"
                      result = val[1]
                    
    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[0] = :array # aref_args is :args
                    
    result
end

def _reduce_292(val, _values, result)
                      result = s(:hash, *val[1].values) # TODO: array_to_hash?
                    
    result
end

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

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

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

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

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

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

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

def _reduce_300(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 301 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_325(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_326(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_327(val, _values, result)
                      result = self.in_def

                      self.comments.push self.lexer.comments
                      self.in_def = true
                      self.env.extend
                    
    result
end

def _reduce_328(val, _values, result)
                      in_def = val[2]

                      result = new_defn val

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

def _reduce_329(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = :expr_fname
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 337 omitted

# reduce 338 omitted

# reduce 339 omitted

# reduce 340 omitted

# reduce 341 omitted

# reduce 342 omitted

# reduce 343 omitted

# reduce 344 omitted

# reduce 345 omitted

# reduce 346 omitted

# reduce 347 omitted

# reduce 348 omitted

# reduce 349 omitted

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

# reduce 353 omitted

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

# reduce 355 omitted

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

# reduce 357 omitted

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

# reduce 359 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

                      result = block_var args, :*, args2
                      debug20 16, val, result
                    
    result
end

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

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

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

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

def _reduce_370(val, _values, result)
                      result = block_var :*
                      debug20 18, val, result
                    
    result
end

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

                      result = block_var :*, args
                    
    result
end

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

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

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

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

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

# reduce 377 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 393 omitted

# reduce 394 omitted

def _reduce_395(val, _values, result)
                      result = args val
                      result = 0 if result == s(:args)
                    
    result
end

def _reduce_396(val, _values, result)
                      result = 0
                      self.lexer.command_start = true
                    
    result
end

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

# reduce 398 omitted

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

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

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

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

# reduce 403 omitted

def _reduce_404(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_405(val, _values, result)
                      lpar, args, body = val
                      lexer.lpar_beg = lpar

                      args = 0 if args == s(:args)

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

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

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

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

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

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

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

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

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

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

                      result = iter2
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

# reduce 435 omitted

# reduce 436 omitted

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

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

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

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

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

# reduce 440 omitted

# reduce 441 omitted

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

# reduce 443 omitted

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

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

# reduce 445 omitted

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

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

# reduce 448 omitted

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

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

# reduce 451 omitted

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

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

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

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

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

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

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

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

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

# reduce 461 omitted

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

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

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

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

def _reduce_466(val, _values, result)
                      list, sym, _ = val

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

                      result = list.dup << sym
                    
    result
end

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

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

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

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

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

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

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

def _reduce_474(val, _values, result)
                      result = val[0].dup << s(:lit, val[1].to_sym)
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

                      lexer.lex_state   = :expr_beg
                    
    result
end

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

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg = memo

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

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

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

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

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

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

# reduce 489 omitted

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

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

# reduce 492 omitted

# reduce 493 omitted

# reduce 494 omitted

# reduce 495 omitted

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

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

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

# reduce 497 omitted

# reduce 498 omitted

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

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

# reduce 501 omitted

# reduce 502 omitted

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 528 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 550 omitted

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

                      result = identifier
                    
    result
end

# reduce 552 omitted

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

def _reduce_554(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_555(val, _values, result)
                      list, _, item = val

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

                      result << item
                    
    result
end

def _reduce_556(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_557(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

# reduce 558 omitted

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

# reduce 560 omitted

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

# reduce 562 omitted

# reduce 563 omitted

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

def _reduce_565(val, _values, result)
                      debug20 36, val, result
                    
    result
end

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

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

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

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

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

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

# reduce 572 omitted

# reduce 573 omitted

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

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

# reduce 576 omitted

# reduce 577 omitted

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

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

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

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

# reduce 581 omitted

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

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

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

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

# reduce 586 omitted

def _reduce_587(val, _values, result)
                      list = val[0].dup
                      more = val[2][1..-1]
                      list.push(*more) unless more.empty?
                      result = list
                      result[0] = :hash
                      # TODO: shouldn't this be a hash?
                    
    result
end

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

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

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

# reduce 591 omitted

# reduce 592 omitted

# reduce 593 omitted

# reduce 594 omitted

# reduce 595 omitted

# reduce 596 omitted

# 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

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

# reduce 613 omitted

# reduce 614 omitted

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

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

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

end   # class Ruby20Parser
