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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-281,497,261,261,198,199,833,-281,-281,-281,439,-83,833,-281,-281,647',
'-281,-90,-85,-84,-87,521,538,-447,-64,-77,3,-86,522,567,-447,261,497',
'497,-89,-281,-281,692,-281,-281,-281,-281,-281,497,198,199,638,765,-450',
'402,639,709,665,664,668,667,626,497,665,664,668,667,-72,566,-281,-281',
'-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,626,626',
'-281,-281,-281,-85,557,537,260,260,-281,-77,-499,-281,294,-365,-83,-90',
'-281,724,-281,766,-281,-281,-281,-281,-281,-281,-281,-77,-281,-88,-281',
'693,102,-75,496,260,767,101,646,-82,-77,-76,-79,-281,-281,-503,-80,-77',
'-281,-78,-88,-77,-503,-503,-503,761,-81,102,-503,-503,-79,-503,101,102',
'102,496,496,218,101,101,-503,668,667,102,102,625,496,-87,101,101,-503',
'-503,596,-503,-503,-503,-503,-503,102,597,496,759,-500,101,779,102,102',
'625,625,215,101,101,526,217,216,213,214,198,199,-503,-503,-503,-503',
'-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,567,-79,-503,-503',
'-503,526,554,294,-80,596,-503,745,-503,-503,-497,-503,597,-84,-503,-79',
'-503,741,-503,-503,-503,-503,-503,-503,-503,526,-503,-503,-503,526,566',
'740,531,-448,472,-79,528,527,526,-79,-448,-503,-503,-519,-78,674,-503',
'197,-86,526,-519,-519,-519,294,-263,-519,-519,-519,-503,-519,-441,-503',
'528,527,533,-503,218,-441,-503,-519,-499,727,-497,-499,-503,732,-441',
'-503,-519,-519,-89,-519,-519,-519,-519,-519,528,527,539,-82,528,527',
'-503,-90,-497,-503,682,727,215,528,527,529,217,216,213,214,567,218,-275',
'548,528,527,524,218,549,-275,-275,-275,-519,472,-275,-275,-275,567,-275',
'-519,218,263,102,-274,263,-519,-438,101,-275,-275,-274,263,-76,-438',
'566,-500,-84,-275,-275,-274,-275,-275,-275,-275,-275,-77,503,-519,504',
'-85,-79,566,215,-450,-87,-81,217,216,102,-89,-519,485,-519,101,484,-519',
'-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275',
'75,102,-275,-275,-275,-500,101,-275,76,727,-275,504,-500,-275,-275,-75',
'-275,-500,-275,-83,-275,-500,-275,-275,-275,-275,-275,-275,-275,-441',
'-275,485,-275,723,490,718,-441,-445,661,-500,659,658,657,660,-445,-275',
'-275,-275,-275,717,-275,-500,-500,-500,-444,-500,-496,102,218,-500,-500',
'-444,101,764,-500,780,-500,-500,-500,-500,-500,-500,-500,198,199,713',
'651,-500,-500,-500,-500,-500,-500,-500,665,664,668,667,485,485,215,487',
'487,-500,217,216,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-438',
'-500,-500,-443,-500,-500,-500,-438,195,102,-443,-446,-496,254,101,196',
'-438,102,-446,-499,255,-503,101,711,194,788,-500,557,246,-500,-500,577',
'-500,-500,-496,439,-500,-281,-500,577,-500,365,-500,439,-281,367,366',
'736,727,-500,-500,198,199,-281,-519,-500,-500,-500,-500,-500,-500,-519',
'-519,-519,-500,-500,-519,-519,-519,-499,-519,-503,-327,-88,706,-283',
'-499,577,-503,-327,-519,-499,-283,-499,800,-499,695,-503,-327,-519,-519',
'-283,-519,-519,-519,-519,-519,771,772,444,773,96,97,-499,263,-503,104',
'105,106,107,108,218,222,227,228,229,224,226,234,235,230,231,218,211',
'212,287,288,232,233,-519,-283,104,105,106,107,108,-519,-283,232,233',
'263,263,-519,215,444,221,-283,217,216,213,214,225,223,219,215,220,198',
'199,217,216,213,214,-282,661,-519,659,658,657,660,-282,237,236,-499',
'-499,-499,678,-499,-519,-282,-519,-499,-499,-519,470,471,-499,805,-499',
'-499,-499,-499,-499,-499,-499,736,727,676,-262,-499,-499,-499,-499,-499',
'-499,-499,809,629,812,504,665,664,668,667,814,-499,621,294,-499,-499',
'-499,-499,-499,-499,-499,-499,-499,-499,817,-499,-499,615,-499,-499',
'-499,218,222,227,228,229,224,226,234,506,230,231,475,614,478,-282,507',
'232,233,476,-499,694,-282,-499,-499,505,-499,-499,400,601,-499,-282',
'-499,215,-499,221,-499,217,216,213,214,225,223,219,-499,220,-72,600',
'821,-499,-499,-499,-499,-499,-499,599,843,237,-499,-499,65,66,67,844',
'54,598,825,-86,59,60,826,294,842,63,294,61,62,64,26,27,68,69,593,577',
'218,837,25,31,30,91,90,92,93,838,218,20,218,218,263,547,544,845,44,-262',
'846,95,94,85,53,87,86,88,89,96,97,847,83,84,848,41,42,40,218,222,227',
'228,229,224,226,234,235,230,231,-281,211,212,643,545,232,233,-281,203',
'543,641,207,-500,852,55,56,-281,536,57,642,855,215,532,221,43,217,216',
'213,214,225,223,219,21,220,857,858,398,81,75,77,78,79,80,399,859,509',
'76,82,102,236,508,-218,400,101,65,66,67,10,54,358,492,-449,59,60,864',
'865,489,63,-449,61,62,64,26,27,68,69,294,-449,869,218,25,31,30,91,90',
'92,93,872,873,20,104,105,106,107,108,9,44,11,12,95,94,85,53,87,86,88',
'89,96,97,764,83,84,764,41,42,40,218,222,227,228,229,224,226,234,235',
'230,231,-274,-520,-520,466,765,232,233,-274,39,474,467,33,473,263,55',
'56,-274,294,57,465,35,215,266,221,43,217,216,213,214,225,223,219,21',
'220,468,462,886,81,75,77,78,79,80,461,-449,460,76,82,65,66,67,-449,54',
'358,889,-282,59,60,-63,577,-449,63,-282,61,62,64,249,250,68,69,263,-282',
'577,444,248,278,282,91,90,92,93,439,436,433,404,403,401,369,905,906',
'279,907,368,95,94,85,53,87,86,88,89,96,97,348,83,84,345,-281,661,283',
'659,658,657,660,-281,324,294,286,911,-500,285,614,237,-281,915,916,764',
'918,919,783,193,192,207,577,191,55,56,577,190,57,98,577,,,,661,,659',
'658,657,660,,,,665,664,668,667,81,75,77,78,79,80,,,,76,82,65,66,67,786',
'54,,,,59,60,,,,63,651,61,62,64,249,250,68,69,665,664,668,667,248,278',
'282,91,90,92,93,,,,,,,,544,,279,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,,,283,218,222,227,228,229,224,226,234,235,230,231,,211,212,,,232',
'233,,783,,,207,,,55,56,,,57,,,215,,221,,217,216,213,214,225,223,219',
',220,,,,81,75,77,78,79,80,,,,76,82,,236,,880,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,222,227',
'228,229,224,226,234,235,230,231,,-520,-520,,,232,233,,39,,,33,,,55,56',
',,57,,35,215,,221,43,217,216,213,214,225,223,219,21,220,,,,81,75,77',
'78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68',
'69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88',
'89,96,97,,83,84,,41,42,40,218,-520,-520,-520,-520,224,226,,,-520,-520',
',,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221,43,217,216,213,214,225',
'223,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,222,227',
'228,229,224,226,,,230,231,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215',
',221,43,217,216,213,214,225,223,219,21,220,,,,81,75,77,78,79,80,,,,76',
'82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30',
'91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,218,-520,-520,-520,-520,224,226,,,-520,-520,,,,,,232,233,',
'39,,,33,,,55,56,,,57,,35,215,,221,43,217,216,213,214,225,223,219,21',
'220,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61',
'62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,-520,-520,-520,-520,224',
'226,,,-520,-520,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221,43,217',
'216,213,214,225,223,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8,65,66',
'67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92',
'93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,218,-520,-520,-520,-520,224,226,,,-520,-520,,,,,,232,233,,39,,,33',
',,55,56,,,57,,35,215,,221,43,217,216,213,214,225,223,219,21,220,,,,81',
'75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26',
'27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87',
'86,88,89,96,97,,83,84,,41,42,40,218,-520,-520,-520,-520,224,226,,,-520',
'-520,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221,43,217,216,213',
'214,225,223,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54',
',,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,',
',,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,,',
',,,,,,,,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221,43,217,216,213',
'214,,,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,-520,-520',
'-520,-520,224,226,,,-520,-520,,,,,,232,233,,39,,,33,,,55,56,,,57,,35',
'215,,221,43,217,216,213,214,225,223,219,21,220,,,,81,75,77,78,79,80',
',,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25',
'31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,218,,,,,,,,,,,,,,,,232,233,,39,,,33,,,55,56,,,57,,35',
'215,,221,43,217,216,213,214,,,219,21,220,,,,81,75,77,78,79,80,,,,76',
'82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30',
'91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,218,,,,,,,,,,,,,,,,232,233,,39,,,268,,,55,56,,,57,,35,215',
',221,43,217,216,213,214,,,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8',
'65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91',
'90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,',
'41,42,40,218,,,,,,,,,,,,,,,,232,233,,39,,,268,,,55,56,,,57,,35,215,',
'221,43,217,216,213,214,,,219,21,220,,,,81,75,77,78,79,80,,,,76,82,8',
'65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91',
'90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,',
'41,42,40,218,,,,,,,,,,,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221',
'43,217,216,213,214,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10',
'54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20',
',,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,218,',
',,,,,,,,,,,,,,232,233,,39,,,33,,,55,56,,,57,,35,215,,221,43,217,216',
'213,214,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,',
',,,,,,,39,,,268,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79',
'80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,',
',,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,',
',,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,',
',,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80',
',,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25',
'31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,',
',,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,',
',63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11',
'12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,',
',39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76',
'82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30',
'91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21',
',,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62',
'64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85',
'53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55',
'56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67',
'10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93',
',,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40',
',,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75',
'77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27',
'68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57',
',35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54',
',,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,',
',,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,',
',,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78',
'79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69',
',,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,',
',,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59',
'60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9',
'44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,',
',,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80',
',,,76,82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25',
'31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,',
',,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,8,65,66,67,10,54,,,,59,60,,',
',63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11',
'12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,',
',39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76',
'82,8,65,66,67,10,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30',
'91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53',
'87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55',
'56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,',
'54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93',
',,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,',
',,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,',
',25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207',
',,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91,90,92',
'93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,',
',,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,301,,,,43,,,,,,,,210,,,,,81,75',
'77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68',
'69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,318,,,33,,,55,56,,,57,,35,,,',
',,,,,,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207',
',,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90',
'92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,',
',,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75',
'77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68',
'69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,',
',,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,',
',95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203',
',,207,,,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,744,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,-496,-496,-496',
',-496,,,,-496,-496,,,,-496,,-496,-496,-496,-496,-496,-496,-496,,-496',
',,-496,-496,-496,-496,-496,-496,-496,,,,,,,,,,-496,,,-496,-496,-496',
'-496,-496,-496,-496,-496,-496,-496,,-496,-496,,-496,-496,-496,,,,,,',
',,,,,,,,,,,,,-496,,,-496,-496,,-496,-496,,,-496,,-496,,-496,,-496,,',
',,,,,-496,,-496,,,-496,-496,-496,-496,-496,-496,,,,-496,-496,-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,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90',
'92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,',
',,,,,,,,,,,,,,,,783,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,',
',25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207',
',,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93',
',,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,',
',,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77',
'78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69',
',,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43',
',,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,10,54,,,,59,60,,,',
'63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11',
'12,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,',
',39,,,33,,,55,56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76',
'82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26',
'27,68,69,,,,,25,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88',
'89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57',
',,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59',
'60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,',
',,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,',
',,,,,203,,,207,,,55,56,,,57,,617,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90',
'92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,',
',,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,376,,,,43,,,,,,,,210,,,,,81',
'75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27',
'68,69,,,,,25,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,376',
',,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91',
'90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40',
',,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,301,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25',
'31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87',
'86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56',
',,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,',
',,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,',
',,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,',
',,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80',
',,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248',
'278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,376,,,,43,,',
',,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,569,,246',
',43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44',
',,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,',
'203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76',
'82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,279,,,95,94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,',
',,,,,,,276,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78,79,80,,',
',76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278',
'282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,',
'41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53',
'87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55',
'56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,',
'54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93',
',,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,',
',,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,',
',,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43',
',,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,276,,,273',
',,55,56,,,57,,272,,,,,,,,,,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67',
',54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92',
'93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,',
',,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77',
'78,79,80,,,,76,82,-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,266,,-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,263,,-252,-252,,,-252',
',-252,,-252,,-252,,,,,,,,-252,,,,,-252,-252,-252,-252,-252,-252,,,,-252',
'-252,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31',
'30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41',
'42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,448,56,,,57,,244,,246,,43,,,,,',
',,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207',
',,55,56,,,57,,893,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91',
'90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40',
',,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,244,,246,,43,,,,,,,,210,',
',,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'249,250,68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87',
'86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,458,55',
'56,,,57,,244,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90',
'92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,',
',,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,890,,246,,43,,,,,,,,210,,',
',,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,573,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67',
',54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92',
'93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,',
',,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77',
'78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69',
',,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,783,,,207,,,55,56,,,57,,,,,,,,,',
',,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,249,250,68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85',
'53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,',
',55,56,,,57,,569,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89,96,97,,83,84,,,,283',
',,,,,,,,,,,,,,,,,,,276,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77',
'78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69',
',,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43',
',,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,276,,,273',
',,55,56,,,57,,841,,840,,,,,,,,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91,90,92',
'93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,',
',,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,244,,246,,43,,,,,,,,210,,,,,81',
'75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250',
'68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,301',
',,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44',
',,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,',
'203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76',
'82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,301,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54',
',,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,',
',,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,',
',,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,',
',,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,244,,246',
',43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44',
',,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,',
'203,,,207,,,55,56,,,57,,244,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80',
',,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248',
'278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,',
',,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,783,,,207,',
',55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54',
',,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,',
',,,,,,,,279,,,95,94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,',
',,,,,,,,,783,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78,79,80',
',,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31',
'30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84',
',41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,21',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'26,27,68,69,,,,,25,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,478,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,',
',25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,791,,246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,',
'76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31',
'30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41',
'42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,301,,,,43,,,,,,,,210',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64',
'249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53',
'87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55',
'56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,',
'54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93',
',,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,',
',,,,,,,,,,,,203,,,207,,,55,56,,,57,,796,,246,,43,,,,,,,,210,,,,,81,75',
'77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68',
'69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,',
',,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44',
',,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,',
'203,,,207,,,55,56,,,57,,866,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,',
',,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248',
'278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,798,,246,,43',
',,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95',
'94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,',
',207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82',
'65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94,85,53,87',
'86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,276,,,273,,,55,56,,',
'57,,699,,700,,,,,,,,,701,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54',
',,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,31,30,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,301,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,-502,-502,-502,,-502,,,,-502,-502,,,,-502,,-502,-502',
'-502,-502,-502,-502,-502,,,,,-502,-502,-502,-502,-502,-502,-502,,,,',
',,,,,-502,,,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,,-502',
'-502,,-502,-502,-502,,,,,,,,,,,,,,,,,,,,-502,,,-502,-502,,-502,-502',
',,-502,,-502,,-502,,-502,,,,,,,,-502,,,,,-502,-502,-502,-502,-502,-502',
',,,-502,-502,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25',
'31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,',
',,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85',
'53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,',
',55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67',
',54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92',
'93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,',
',,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77',
'78,79,80,,,,76,82,-501,-501,-501,,-501,,,,-501,-501,,,,-501,,-501,-501',
'-501,-501,-501,-501,-501,,,,,-501,-501,-501,-501,-501,-501,-501,,,,',
',,,,,-501,,,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,,-501',
'-501,,-501,-501,-501,,,,,,,,,,,,,,,,,,,,-501,,,-501,-501,,-501,-501',
',,-501,,-501,,-501,,-501,,,,,,,,-501,,,,,-501,-501,-501,-501,-501,-501',
',,,-501,-501,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,',
',248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,,,283,,,,,,,,,,,,,,,,,,,,783,,,207,,,55,56,,,57,,,,,,,,,,,,',
',,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62',
'64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53',
'87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55',
'56,,,57,,587,,246,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66',
'67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90',
'92,93,,,,,,,,,,279,,,95,94,85,53,87,86,88,89,96,97,,83,84,,,,283,,,',
',,,,,,,,,,,,,,,,783,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,',
',,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,922,',
'246,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,-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,263,,-252,-252,,,-252,,-252,,-252,,-252,,,,,,,,-252,,,,,-252',
'-252,-252,-252,-252,-252,,,,-252,-252,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,279,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,,,283,,,,,,,,,,,,,,,,,,,,783,,,207,',
',55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54',
',,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,',
',,,,,,,,279,,,95,94,510,53,87,86,511,89,96,97,,83,84,,,,283,,,,,,,,',
',,,,,,,,,,,512,,,207,,,55,56,,,57,,,,,,,,,,,,,,,,,,,81,75,77,78,79,80',
',,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248',
'278,282,91,90,92,93,,,,,,,,,,279,,,95,94,510,53,87,86,511,89,96,97,',
'83,84,,,,283,,,,,,,,,,,,,,,,,,,,512,,,207,,,55,56,,,57,,,,,,,,,,,,,',
',,,,,81,75,77,78,79,80,,,,76,82,156,167,157,180,153,173,163,162,183',
'184,178,161,160,155,181,185,186,165,154,168,172,174,166,159,,,175,182',
'177,176,169,179,164,152,171,170,,,,,,151,158,149,150,147,148,112,114',
',,113,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132',
'133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,',
',146,81,,,,,,,,,,82,156,167,157,180,153,173,163,162,183,184,178,161',
'160,155,181,185,186,165,154,168,172,174,166,159,,,175,182,177,176,169',
'179,164,152,171,170,,,,,,151,158,149,150,147,148,112,114,111,,113,,',
',,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,',
',,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,,,146,81',
',,65,66,67,,54,,,82,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278',
'282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,',
'41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210',
',,,,81,75,77,78,79,80,,,,76,82,65,66,67,10,54,,,,59,60,,,,63,,61,62',
'64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,9,44,11,12,95,94,85',
'53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,39,,,33,,,55',
'56,,,57,,35,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67',
',54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,',
',,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,',
',,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78',
'79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,',
',25,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83',
'84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,',
',,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61',
'62,64,26,27,68,69,,,,,25,31,30,91,90,92,93,,,,,,,,,,44,,,95,94,85,53',
'87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55',
'56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,',
'54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93',
',,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,',
',,,,,,,,,,,,203,,,207,,,55,56,,,57,,681,,,,43,,,,,,,,210,,,,,81,75,77',
'78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69',
',,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96',
'97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43',
',,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63',
',61,62,64,249,250,68,69,,,,,248,31,30,91,90,92,93,,,,,,,,,,44,,,95,94',
'85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207',
',,55,56,,,57,,301,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65',
'66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91,90,92',
'93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,',
',,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81,75',
'77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27,68',
'69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89',
'96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,',
',,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60',
',,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44',
',,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,',
'203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76',
'82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282',
'91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,',
'81,75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249',
'250,68,69,,,,,248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86',
'88,89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,',
'57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,65,66,67,,54,,',
',59,60,,,,63,,61,62,64,249,250,68,69,,,,,248,278,282,91,90,92,93,,,',
',,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42,40,,,,,,,,,,',
',,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,210,,,,,81,75,77,78,79',
'80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,249,250,68,69,,,,',
'248,278,282,91,90,92,93,,,,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97',
',83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,',
',,,,,,210,,,,,81,75,77,78,79,80,,,,76,82,156,167,157,180,153,173,163',
'162,183,184,178,161,160,155,181,185,186,165,154,168,172,174,166,159',
',,175,182,177,176,169,179,164,152,171,170,,,,,,151,158,149,150,147,148',
'112,114,,,113,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144',
'145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121',
',122,,,146,81,,,,,,,,,,82,156,167,157,180,153,173,163,162,183,184,178',
'161,160,155,181,185,186,165,154,168,172,174,166,159,,,175,182,177,176',
'169,179,164,152,171,170,,,,,,151,158,149,150,147,148,112,114,,,113,',
',,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,',
',,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,,,146,81',
',,65,66,67,,54,,,82,59,60,,,,63,,61,62,64,26,27,68,69,,,,,25,31,30,91',
'90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88,89,96,97,,83,84,,41,42',
'40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57,,,,,,43,,,,,,,,21,,,,,81',
'75,77,78,79,80,,,,76,82,65,66,67,,54,,,,59,60,,,,63,,61,62,64,26,27',
'68,69,,,,,25,31,30,91,90,92,93,,,20,,,,,,,44,,,95,94,85,53,87,86,88',
'89,96,97,,83,84,,41,42,40,,,,,,,,,,,,,,,,,,,,203,,,207,,,55,56,,,57',
',,,,,43,,,,,,,,21,,,,,81,75,77,78,79,80,,,,76,82,156,167,157,180,153',
'173,163,162,183,184,178,161,160,155,181,185,186,165,154,168,172,174',
'166,159,,,175,182,177,176,169,179,164,152,171,170,,,,,,151,158,149,150',
'147,148,112,114,355,354,113,356,,,,,,,142,143,,140,124,125,126,,129',
'131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138',
'134,135,130,128,121,,122,,,146,156,167,157,180,153,173,163,162,183,184',
'178,161,160,155,181,185,186,165,154,168,172,174,166,159,,,175,182,177',
'176,169,179,164,152,171,170,,,,,,151,158,149,150,147,148,112,114,,,113',
',,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,',
',,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,,,146',
'156,167,157,180,153,173,163,162,183,184,178,161,160,155,181,185,186',
'165,154,168,172,174,166,159,,,175,182,177,332,331,333,330,152,171,170',
',,,,,151,158,149,150,328,329,326,114,87,86,327,89,,,,,,,142,143,,140',
'124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,338,,,,,,,,137,136',
',123,141,139,138,134,135,130,128,121,,122,558,386,146,,559,,,,,,,,142',
'143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,',
',137,136,,123,141,139,138,134,135,130,128,121,,122,,,146,218,222,227',
'228,229,224,226,234,235,230,231,,211,212,,,232,233,,,,,,,,,,,,,,,215',
',221,,217,216,213,214,225,223,219,,220,,,,,,,560,392,,,561,,,,,236,',
'577,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,',
',,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,558,386,146',
',559,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132',
'133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,441',
'386,146,,442,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144',
'145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121',
',122,635,392,146,,636,,,,,,,,142,143,,140,124,125,126,,129,131,,,127',
',,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130',
'128,121,,122,441,386,146,,442,,,,,,,,142,143,,140,124,125,126,,129,131',
',,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134',
'135,130,128,121,,122,441,386,146,,442,,,,,,,,142,143,,140,124,125,126',
',129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139',
'138,134,135,130,128,121,,122,606,392,146,,607,,,,,,,,142,143,,140,124',
'125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123',
'141,139,138,134,135,130,128,121,,122,441,386,146,,442,,,,,,,,142,143',
',140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137',
'136,,123,141,139,138,134,135,130,128,121,,122,603,386,146,,604,,,,,',
',,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,',
',,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,882,386,146',
',883,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132',
'133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,383',
'386,146,,384,,,,,,,,142,143,,140,124,125,126,,129,131,,,127,,,,,144',
'145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130,128,121',
',122,747,392,146,,748,,,,,,,,142,143,,140,124,125,126,,129,131,,,127',
',,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134,135,130',
'128,121,,122,441,386,146,,442,,,,,,,,142,143,,140,124,125,126,,129,131',
',,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139,138,134',
'135,130,128,121,,122,388,392,146,,390,,,,,,,,142,143,,140,124,125,126',
',129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123,141,139',
'138,134,135,130,128,121,,122,560,392,146,,561,,,,,,,,142,143,,140,124',
'125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137,136,,123',
'141,139,138,134,135,130,128,121,,122,884,392,146,,885,,,,,,,,142,143',
',140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,,,,,,,,,137',
'136,,123,141,139,138,134,135,130,128,121,,122,633,386,146,,634,,,,,',
',,142,143,,140,124,125,126,,129,131,,,127,,,,,144,145,132,133,,,,,,',
',,,,,,,137,136,,123,141,139,138,134,135,130,128,121,,122,,,146,218,222',
'227,228,229,224,226,234,235,230,231,,211,212,,,232,233,,,,-218,,,,,',
',,,,,215,,221,,217,216,213,214,225,223,219,,220,,,,,,,,,,,,,,,,236,',
'-218,218,222,227,228,229,224,226,234,235,230,231,,211,212,,,232,233',
',,,,,,,,,,,,,,215,,221,,217,216,213,214,225,223,219,,220,,218,222,227',
'228,229,224,226,234,235,230,231,,211,212,236,564,232,233,,,,,,,,,,,',
',,,215,,221,,217,216,213,214,225,223,219,,220,218,222,227,228,229,224',
'226,234,235,230,231,,211,212,,236,232,233,,,,,,,,,,,,,,,215,,221,,217',
'216,213,214,225,223,219,,220,218,222,227,228,229,224,226,234,235,230',
'231,,211,212,,236,232,233,,,,,,,,,,,,,,,215,,221,,217,216,213,214,225',
'223,219,,220,218,222,227,228,229,224,226,234,235,230,231,,211,212,,236',
'232,233,,,,,,,,,,,,,,,215,,221,,217,216,213,214,225,223,219,,220,218',
'222,227,228,229,224,226,234,235,230,231,,211,212,,236,232,233,,,,,,',
',,,,,,,,215,,221,,217,216,213,214,225,223,219,,220,218,222,227,228,229',
'224,226,234,235,230,231,,211,212,,236,232,233,,,,,,,,,,,,,,,215,,221',
',217,216,213,214,225,223,219,,220,218,222,227,228,229,224,226,234,235',
'230,231,,211,212,,236,232,233,,,,,,,,,,,,,,,215,,221,,217,216,213,214',
'225,223,219,,220,218,222,227,228,229,224,226,234,235,230,231,,211,212',
',236,232,233,,,,,,,,,,,,,,,215,,221,,217,216,213,214,225,223,219,,220',
'218,222,227,228,229,224,226,234,235,230,231,,211,212,,236,232,233,,',
',,,,,,,,,,,,215,,221,,217,216,213,214,225,223,219,,220,218,222,227,228',
'229,224,226,234,235,230,231,,211,212,,236,232,233,,,,,,,,,,,,,,,215',
',221,,217,216,213,214,225,223,219,,220,218,222,227,228,229,224,226,234',
'235,230,231,,211,212,,236,232,233,,,,,,,,,,,,,,,215,,221,,217,216,213',
'214,225,223,219,,220,218,222,227,228,229,224,226,234,235,230,231,,211',
'212,294,236,232,233,,,,,,,,,,,,,,,215,,221,,217,216,213,214,225,223',
'219,,220,218,222,227,228,229,224,226,234,235,230,231,,211,212,,236,232',
'233,,,,,,,,,,,,,,,215,,221,,217,216,213,214,225,223,219,,220,218,222',
'227,228,229,224,226,234,235,230,231,,211,212,294,236,232,233,,,,,,,',
',,,,,,,215,,221,,217,216,213,214,225,223,219,,220,,,,,,,,,,,,,,,,236' ]
        racc_action_table = arr = ::Array.new(25056, 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 = [
'390,808,58,280,671,671,873,390,390,390,585,316,761,390,390,516,390,319',
'633,745,634,335,349,329,600,603,1,635,335,451,329,29,813,309,508,390',
'390,558,390,390,390,390,390,743,612,612,512,661,202,204,512,585,873',
'873,873,873,499,310,761,761,761,761,600,451,390,390,390,390,390,390',
'390,390,390,390,390,390,390,390,500,746,390,390,390,558,390,349,58,280',
'390,603,635,390,671,29,202,204,390,612,390,666,390,390,390,390,390,390',
'390,603,390,636,390,559,808,316,808,29,669,808,516,319,633,745,634,390',
'390,388,390,603,390,635,390,603,388,388,388,654,508,516,388,388,604',
'388,516,813,309,813,309,426,813,309,388,764,764,499,743,499,743,559',
'499,743,388,388,721,388,388,388,388,388,310,721,310,653,636,310,695',
'500,746,500,746,426,500,746,534,426,426,426,426,18,18,388,388,388,388',
'388,388,388,388,388,388,388,388,388,388,431,604,388,388,388,346,388',
'721,636,454,388,632,747,388,511,606,454,695,388,604,388,630,388,388',
'388,388,388,388,388,351,388,388,388,344,431,628,344,328,401,604,534',
'534,342,604,328,388,388,443,388,534,388,17,388,340,443,443,443,454,680',
'443,443,443,747,443,511,606,346,346,346,747,427,511,606,443,747,622',
'511,606,747,616,511,606,443,443,401,443,443,443,443,443,351,351,351',
'17,344,344,747,17,511,606,547,613,427,342,342,342,427,427,427,427,583',
'611,53,383,340,340,340,610,384,53,53,53,443,286,53,53,53,450,53,443',
'407,608,313,784,443,443,326,313,53,53,784,605,547,326,583,883,547,53',
'53,784,53,53,53,53,53,383,314,443,314,383,384,450,407,38,384,286,407',
'407,647,286,443,299,443,647,299,443,53,53,53,53,53,53,53,53,53,53,53',
'53,53,53,73,652,53,53,53,883,652,53,73,867,53,867,883,53,53,38,53,883',
'53,38,53,883,53,53,53,53,53,53,53,327,53,303,53,602,303,595,327,333',
'836,883,836,836,836,836,333,53,53,53,53,594,53,561,561,561,332,561,510',
'823,408,561,561,332,823,655,561,698,561,561,561,561,561,561,561,648',
'648,589,836,561,561,561,561,561,561,561,836,836,836,836,306,300,408',
'306,300,561,408,408,561,561,561,561,561,561,561,561,561,561,510,561',
'561,331,561,561,561,510,16,5,331,330,510,28,5,16,510,754,330,882,28',
'884,754,586,16,702,561,561,577,561,561,704,561,561,510,575,561,885,561',
'707,561,111,561,572,885,111,111,896,896,885,561,308,308,885,440,561',
'561,561,561,561,561,440,440,440,561,561,440,440,440,882,440,884,45,561',
'570,723,882,712,884,45,440,882,723,884,714,882,562,884,45,440,440,723',
'440,440,440,440,440,672,672,555,672,672,672,882,719,884,357,357,357',
'357,357,691,691,691,691,691,691,691,691,691,691,691,415,691,691,40,40',
'691,691,440,907,109,109,109,109,109,440,907,415,415,720,440,440,691',
'550,691,907,691,691,691,691,691,691,691,415,691,296,296,415,415,415',
'415,639,651,440,651,651,651,651,639,722,691,560,560,560,542,560,440',
'639,440,560,560,440,283,283,560,725,560,560,560,560,560,560,560,620',
'620,538,728,560,560,560,560,560,560,560,729,502,734,501,651,651,651',
'651,737,560,495,481,560,560,560,560,560,560,560,560,560,560,742,560',
'560,480,560,560,560,429,429,429,429,429,429,429,429,317,429,429,289',
'479,469,468,317,429,429,289,560,560,468,560,560,317,560,560,289,464',
'560,468,560,429,560,429,560,429,429,429,429,429,429,429,560,429,460',
'459,750,560,560,560,560,560,560,457,782,456,560,560,63,63,63,782,63',
'455,755,560,63,63,756,757,782,63,453,63,63,63,63,63,63,63,452,437,412',
'769,63,63,63,63,63,63,63,775,411,63,410,409,389,382,373,783,63,378,785',
'63,63,63,63,63,63,63,63,63,63,786,63,63,789,63,63,63,373,373,373,373',
'373,373,373,373,373,373,373,607,373,373,514,375,373,373,607,63,370,514',
'63,607,794,63,63,607,348,63,514,797,373,345,373,63,373,373,373,373,373',
'373,373,63,373,801,802,201,63,63,63,63,63,63,201,803,320,63,63,63,373',
'318,373,201,63,100,100,100,100,100,315,304,781,100,100,815,816,302,100',
'781,100,100,100,100,100,100,100,298,781,822,291,100,100,100,100,100',
'100,100,827,828,100,7,7,7,7,7,100,100,100,100,100,100,100,100,100,100',
'100,100,100,100,829,100,100,832,100,100,100,405,405,405,405,405,405',
'405,405,405,405,405,277,405,405,275,833,405,405,277,100,288,275,100',
'287,282,100,100,277,279,100,275,100,405,278,405,100,405,405,405,405',
'405,405,405,100,405,276,271,846,100,100,100,100,100,100,270,274,269',
'100,100,699,699,699,274,699,100,850,845,699,699,267,853,274,699,845',
'699,699,699,699,699,699,699,259,845,856,256,699,699,699,699,699,699',
'699,247,243,242,206,205,203,189,879,880,699,881,187,699,699,699,699',
'699,699,699,699,699,699,80,699,699,79,748,759,699,759,759,759,759,748',
'65,44,39,891,748,37,895,23,748,901,902,903,904,905,699,15,14,699,909',
'13,699,699,912,12,699,3,925,,,,519,,519,519,519,519,,,,759,759,759,759',
'699,699,699,699,699,699,,,,699,699,841,841,841,699,841,,,,841,841,,',
',841,519,841,841,841,841,841,841,841,519,519,519,519,841,841,841,841',
'841,841,841,,,,,,,,563,,841,,,841,841,841,841,841,841,841,841,841,841',
',841,841,,,,841,563,563,563,563,563,563,563,563,563,563,563,,563,563',
',,563,563,,841,,,841,,,841,841,,,841,,,563,,563,,563,563,563,563,563',
'563,563,,563,,,,841,841,841,841,841,841,,,,841,841,,563,,841,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,406,406,406,406,406,406,406',
'406,406,406,406,,406,406,,,406,406,,751,,,751,,,751,751,,,751,,751,406',
',406,751,406,406,406,406,406,406,406,751,406,,,,751,751,751,751,751',
'751,,,,751,751,818,818,818,818,818,818,,,,818,818,,,,818,,818,818,818',
'818,818,818,818,,,,,818,818,818,818,818,818,818,,,818,,,,,,818,818,818',
'818,818,818,818,818,818,818,818,818,818,818,,818,818,,818,818,818,425',
'425,425,425,425,425,425,,,425,425,,,,,,425,425,,818,,,818,,,818,818',
',,818,,818,425,,425,818,425,425,425,425,425,425,425,818,425,,,,818,818',
'818,818,818,818,,,,818,818,649,649,649,649,649,649,,,,649,649,,,,649',
',649,649,649,649,649,649,649,,,,,649,649,649,649,649,649,649,,,649,',
',,,,649,649,649,649,649,649,649,649,649,649,649,649,649,649,,649,649',
',649,649,649,428,428,428,428,428,428,428,,,428,428,,,,,,428,428,,649',
',,649,,,649,649,,,649,,649,428,,428,649,428,428,428,428,428,428,428',
'649,428,,,,649,649,649,649,649,649,,,,649,649,295,295,295,295,295,295',
',,,295,295,,,,295,,295,295,295,295,295,295,295,,,,,295,295,295,295,295',
'295,295,,,295,,,,,,295,295,295,295,295,295,295,295,295,295,295,295,295',
'295,,295,295,,295,295,295,424,424,424,424,424,424,424,,,424,424,,,,',
',424,424,,295,,,295,,,295,295,,,295,,295,424,,424,295,424,424,424,424',
'424,424,424,295,424,,,,295,295,295,295,295,295,,,,295,295,703,703,703',
'703,703,703,,,,703,703,,,,703,,703,703,703,703,703,703,703,,,,,703,703',
'703,703,703,703,703,,,703,,,,,,703,703,703,703,703,703,703,703,703,703',
'703,703,703,703,,703,703,,703,703,703,423,423,423,423,423,423,423,,',
'423,423,,,,,,423,423,,703,,,703,,,703,703,,,703,,703,423,,423,703,423',
'423,423,423,423,423,423,703,423,,,,703,703,703,703,703,703,,,,703,703',
'805,805,805,805,805,805,,,,805,805,,,,805,,805,805,805,805,805,805,805',
',,,,805,805,805,805,805,805,805,,,805,,,,,,805,805,805,805,805,805,805',
'805,805,805,805,805,805,805,,805,805,,805,805,805,422,422,422,422,422',
'422,422,,,422,422,,,,,,422,422,,805,,,805,,,805,805,,,805,,805,422,',
'422,805,422,422,422,422,422,422,422,805,422,,,,805,805,805,805,805,805',
',,,805,805,716,716,716,716,716,716,,,,716,716,,,,716,,716,716,716,716',
'716,716,716,,,,,716,716,716,716,716,716,716,,,716,,,,,,716,716,716,716',
'716,716,716,716,716,716,716,716,716,716,,716,716,,716,716,716,421,421',
'421,421,421,421,421,,,421,421,,,,,,421,421,,716,,,716,,,716,716,,,716',
',716,421,,421,716,421,421,421,421,421,421,421,716,421,,,,716,716,716',
'716,716,716,,,,716,716,650,650,650,650,650,650,,,,650,650,,,,650,,650',
'650,650,650,650,650,650,,,,,650,650,650,650,650,650,650,,,650,,,,,,650',
'650,650,650,650,650,650,650,650,650,650,650,650,650,,650,650,,650,650',
'650,420,,,,,,,,,,,,,,,,420,420,,650,,,650,,,650,650,,,650,,650,420,',
'420,650,420,420,420,420,,,420,650,420,,,,650,650,650,650,650,650,,,',
'650,650,715,715,715,715,715,715,,,,715,715,,,,715,,715,715,715,715,715',
'715,715,,,,,715,715,715,715,715,715,715,,,715,,,,,,715,715,715,715,715',
'715,715,715,715,715,715,715,715,715,,715,715,,715,715,715,416,416,416',
'416,416,416,416,,,416,416,,,,,,416,416,,715,,,715,,,715,715,,,715,,715',
'416,,416,715,416,416,416,416,416,416,416,715,416,,,,715,715,715,715',
'715,715,,,,715,715,503,503,503,503,503,503,,,,503,503,,,,503,,503,503',
'503,503,503,503,503,,,,,503,503,503,503,503,503,503,,,503,,,,,,503,503',
'503,503,503,503,503,503,503,503,503,503,503,503,,503,503,,503,503,503',
'419,,,,,,,,,,,,,,,,419,419,,503,,,503,,,503,503,,,503,,503,419,,419',
'503,419,419,419,419,,,419,503,419,,,,503,503,503,503,503,503,,,,503',
'503,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,418,,,,,,,,,,',
',,,,,418,418,,273,,,273,,,273,273,,,273,,273,418,,418,273,418,418,418',
'418,,,418,273,418,,,,273,273,273,273,273,273,,,,273,273,268,268,268',
'268,268,268,,,,268,268,,,,268,,268,268,268,268,268,268,268,,,,,268,268',
'268,268,268,268,268,,,268,,,,,,268,268,268,268,268,268,268,268,268,268',
'268,268,268,268,,268,268,,268,268,268,417,,,,,,,,,,,,,,,,417,417,,268',
',,268,,,268,268,,,268,,268,417,,417,268,417,417,417,417,,,417,268,417',
',,,268,268,268,268,268,268,,,,268,268,861,861,861,861,861,861,,,,861',
'861,,,,861,,861,861,861,861,861,861,861,,,,,861,861,861,861,861,861',
'861,,,861,,,,,,861,861,861,861,861,861,861,861,861,861,861,861,861,861',
',861,861,,861,861,861,414,,,,,,,,,,,,,,,,414,414,,861,,,861,,,861,861',
',,861,,861,414,,414,861,414,414,414,414,,,,861,,,,,861,861,861,861,861',
'861,,,,861,861,793,793,793,793,793,793,,,,793,793,,,,793,,793,793,793',
'793,793,793,793,,,,,793,793,793,793,793,793,793,,,793,,,,,,793,793,793',
'793,793,793,793,793,793,793,793,793,793,793,,793,793,,793,793,793,413',
',,,,,,,,,,,,,,,413,413,,793,,,793,,,793,793,,,793,,793,413,,413,793',
'413,413,413,413,,,,793,,,,,793,793,793,793,793,793,,,,793,793,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,863,863,863,863,863,863,,,,863,863,,,,863',
',863,863,863,863,863,863,863,,,,,863,863,863,863,863,863,863,,,863,',
',,,,863,863,863,863,863,863,863,863,863,863,863,863,863,863,,863,863',
',863,863,863,,,,,,,,,,,,,,,,,,,,863,,,863,,,863,863,,,863,,863,,,,863',
',,,,,,,863,,,,,863,863,863,863,863,863,,,,863,863,498,498,498,498,498',
'498,,,,498,498,,,,498,,498,498,498,498,498,498,498,,,,,498,498,498,498',
'498,498,498,,,498,,,,,,498,498,498,498,498,498,498,498,498,498,498,498',
'498,498,,498,498,,498,498,498,,,,,,,,,,,,,,,,,,,,498,,,498,,,498,498',
',,498,,498,,,,498,,,,,,,,498,,,,,498,498,498,498,498,498,,,,498,498',
'207,207,207,207,207,207,,,,207,207,,,,207,,207,207,207,207,207,207,207',
',,,,207,207,207,207,207,207,207,,,207,,,,,,207,207,207,207,207,207,207',
'207,207,207,207,207,207,207,,207,207,,207,207,207,,,,,,,,,,,,,,,,,,',
',207,,,207,,,207,207,,,207,,207,,,,207,,,,,,,,207,,,,,207,207,207,207',
'207,207,,,,207,207,868,868,868,868,868,868,,,,868,868,,,,868,,868,868',
'868,868,868,868,868,,,,,868,868,868,868,868,868,868,,,868,,,,,,868,868',
'868,868,868,868,868,868,868,868,868,868,868,868,,868,868,,868,868,868',
',,,,,,,,,,,,,,,,,,,868,,,868,,,868,868,,,868,,868,,,,868,,,,,,,,868',
',,,,868,868,868,868,868,868,,,,868,868,871,871,871,871,871,871,,,,871',
'871,,,,871,,871,871,871,871,871,871,871,,,,,871,871,871,871,871,871',
'871,,,871,,,,,,871,871,871,871,871,871,871,871,871,871,871,871,871,871',
',871,871,,871,871,871,,,,,,,,,,,,,,,,,,,,871,,,871,,,871,871,,,871,',
'871,,,,871,,,,,,,,871,,,,,871,871,871,871,871,871,,,,871,871,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,738,494,494,494,494,494,494,,,,494,494,,,,494,,494,494,494,494',
'494,494,494,,,,,494,494,494,494,494,494,494,,,494,,,,,,494,494,494,494',
'494,494,494,494,494,494,494,494,494,494,,494,494,,494,494,494,,,,,,',
',,,,,,,,,,,,,494,,,494,,,494,494,,,494,,494,,,,494,,,,,,,,494,,,,,494',
'494,494,494,494,494,,,,494,494,190,190,190,190,190,190,,,,190,190,,',
',190,,190,190,190,190,190,190,190,,,,,190,190,190,190,190,190,190,,',
'190,,,,,,190,190,190,190,190,190,190,190,190,190,190,190,190,190,,190',
'190,,190,190,190,,,,,,,,,,,,,,,,,,,,190,,,190,,,190,190,,,190,,190,',
',,190,,,,,,,,190,,,,,190,190,190,190,190,190,,,,190,190,877,877,877',
'877,877,877,,,,877,877,,,,877,,877,877,877,877,877,877,877,,,,,877,877',
'877,877,877,877,877,,,877,,,,,,877,877,877,877,877,877,877,877,877,877',
'877,877,877,877,,877,877,,877,877,877,,,,,,,,,,,,,,,,,,,,877,,,877,',
',877,877,,,877,,877,,,,877,,,,,,,,877,,,,,877,877,877,877,877,877,,',
',877,877,727,727,727,727,727,727,,,,727,727,,,,727,,727,727,727,727',
'727,727,727,,,,,727,727,727,727,727,727,727,,,727,,,,,,727,727,727,727',
'727,727,727,727,727,727,727,727,727,727,,727,727,,727,727,727,,,,,,',
',,,,,,,,,,,,,727,,,727,,,727,727,,,727,,727,,,,727,,,,,,,,727,,,,,727',
'727,727,727,727,727,,,,727,727,739,739,739,739,739,739,,,,739,739,,',
',739,,739,739,739,739,739,739,739,,,,,739,739,739,739,739,739,739,,',
'739,,,,,,739,739,739,739,739,739,739,739,739,739,739,739,739,739,,739',
'739,,739,739,739,,,,,,,,,,,,,,,,,,,,739,,,739,,,739,739,,,739,,739,',
',,739,,,,,,,,739,,,,,739,739,739,739,739,739,,,,739,739,2,2,2,2,2,2',
',,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,2,2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2',
'2,2,2,2,2,2,2,,2,2,,2,2,2,,,,,,,,,,,,,,,,,,,,2,,,2,,,2,2,,,2,,2,,,,2',
',,,,,,,2,,,,,2,2,2,2,2,2,,,,2,2,673,673,673,673,673,673,,,,673,673,',
',,673,,673,673,673,673,673,673,673,,,,,673,673,673,673,673,673,673,',
',673,,,,,,673,673,673,673,673,673,673,673,673,673,673,673,673,673,,673',
'673,,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,',
',,673,,,,,,,,673,,,,,673,673,673,673,673,673,,,,673,673,369,369,369',
'369,369,369,,,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,369,369',
'369,369,369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369',
'369,369,369,369,,369,369,,369,369,369,,,,,,,,,,,,,,,,,,,,369,,,369,',
',369,369,,,369,,369,,,,369,,,,,,,,369,,,,,369,369,369,369,369,369,,',
',369,369,57,57,57,,57,,,,57,57,,,,57,,57,57,57,57,57,57,57,,,,,57,57',
'57,57,57,57,57,,,,,,,,,,57,,,57,57,57,57,57,57,57,57,57,57,,57,57,,57',
'57,57,,,,,,,,,,,,,,,,,,,,57,,,57,,,57,57,,,57,,,,,,57,,,,,,,,57,,,,',
'57,57,57,57,57,57,,,,57,57,473,473,473,,473,,,,473,473,,,,473,,473,473',
'473,473,473,473,473,,,,,473,473,473,473,473,473,473,,,,,,,,,,473,,,473',
'473,473,473,473,473,473,473,473,473,,473,473,,473,473,473,,,,,,,,,,',
',,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,473,,,,,473,473,473',
'473,473,473,,,,473,473,59,59,59,,59,,,,59,59,,,,59,,59,59,59,59,59,59',
'59,,,,,59,59,59,59,59,59,59,,,59,,,,,,,59,,,59,59,59,59,59,59,59,59',
'59,59,,59,59,,59,59,59,,,,,,,,,,,,,,,,,,,,59,,,59,,,59,59,,,59,,,,,',
'59,,,,,,,,59,,,,,59,59,59,59,59,59,,,,59,59,60,60,60,,60,,,,60,60,,',
',60,,60,60,60,60,60,60,60,,,,,60,60,60,60,60,60,60,,,60,,,,,,,60,,,60',
'60,60,60,60,60,60,60,60,60,,60,60,,60,60,60,,,,,,,,,,,,,,,,,,,,60,,',
'60,,,60,60,,,60,,,,,,60,,,,,,,,60,,,,,60,60,60,60,60,60,,,,60,60,56',
'56,56,,56,,,,56,56,,,,56,,56,56,56,56,56,56,56,,,,,56,56,56,56,56,56',
'56,,,,,,,,,,56,,,56,56,56,56,56,56,56,56,56,56,,56,56,,56,56,56,,,,',
',,,,,,,,,,,,,,,56,,,56,,,56,56,,,56,,56,,,,56,,,,,,,,56,,,,,56,56,56',
'56,56,56,,,,56,56,64,64,64,,64,,,,64,64,,,,64,,64,64,64,64,64,64,64',
',,,,64,64,64,64,64,64,64,,,,,,,,,,64,,,64,64,64,64,64,64,64,64,64,64',
',64,64,,,,64,,,,,,,,,,,,,,,,,,,,64,,,64,,,64,64,,,64,,64,,,,,,,,,,,',
',,,,,64,64,64,64,64,64,,,,64,64,55,55,55,,55,,,,55,55,,,,55,,55,55,55',
'55,55,55,55,,,,,55,55,55,55,55,55,55,,,55,,,,,,,55,,,55,55,55,55,55',
'55,55,55,55,55,,55,55,,55,55,55,,,,,,,,,,,,,,,,,,,,55,,,55,,,55,55,',
',55,,,,,,55,,,,,,,,55,,,,,55,55,55,55,55,55,,,,55,55,474,474,474,,474',
',,,474,474,,,,474,,474,474,474,474,474,474,474,,,,,474,474,474,474,474',
'474,474,,,,,,,,,,474,,,474,474,474,474,474,474,474,474,474,474,,474',
'474,,474,474,474,,,,,,,,,,,,,,,,,,,,474,,,474,,,474,474,,,474,,,,,,474',
',,,,,,,474,,,,,474,474,474,474,474,474,,,,474,474,681,681,681,,681,',
',,681,681,,,,681,,681,681,681,681,681,681,681,,,,,681,681,681,681,681',
'681,681,,,,,,,,,,681,,,681,681,681,681,681,681,681,681,681,681,,681',
'681,,681,681,681,,,,,,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,,,681',
',,,,,,,681,,,,,681,681,681,681,681,681,,,,681,681,478,478,478,,478,',
',,478,478,,,,478,,478,478,478,478,478,478,478,,,,,478,478,478,478,478',
'478,478,,,478,,,,,,,478,,,478,478,478,478,478,478,478,478,478,478,,478',
'478,,478,478,478,,,,,,,,,,,,,,,,,,,,478,,,478,,,478,478,,,478,,,,,,478',
',,,,,,,478,,,,,478,478,478,478,478,478,,,,478,478,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,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,85,85,85,,85',
',,,85,85,,,,85,,85,85,85,85,85,85,85,,85,,,85,85,85,85,85,85,85,,,,',
',,,,,85,,,85,85,85,85,85,85,85,85,85,85,,85,85,,85,85,85,,,,,,,,,,,',
',,,,,,,,85,,,85,85,,85,85,,,85,,85,,85,,85,,,,,,,,85,,85,,,85,85,85',
'85,85,85,,,,85,85,88,88,88,,88,,,,88,88,,,,88,,88,88,88,88,88,88,88',
',88,,,88,88,88,88,88,88,88,,,,,,,,,,88,,,88,88,88,88,88,88,88,88,88',
'88,,88,88,,88,88,88,,,,,,,,,,,,,,,,,,,,88,,,88,88,,88,88,,,88,,88,,88',
',88,,,,,,,,88,,88,,,88,88,88,88,88,88,,,,88,88,886,886,886,,886,,,,886',
'886,,,,886,,886,886,886,886,886,886,886,,,,,886,886,886,886,886,886',
'886,,,,,,,,,,886,,,886,886,886,886,886,886,886,886,886,886,,886,886',
',,,886,,,,,,,,,,,,,,,,,,,,886,,,886,,,886,886,,,886,,,,,,,,,,,,,,,,',
',,886,886,886,886,886,886,,,,886,886,104,104,104,,104,,,,104,104,,,',
'104,,104,104,104,104,104,104,104,,,,,104,104,104,104,104,104,104,,,104',
',,,,,,104,,,104,104,104,104,104,104,104,104,104,104,,104,104,,104,104',
'104,,,,,,,,,,,,,,,,,,,,104,,,104,,,104,104,,,104,,,,,,104,,,,,,,,104',
',,,,104,104,104,104,104,104,,,,104,104,105,105,105,,105,,,,105,105,',
',,105,,105,105,105,105,105,105,105,,,,,105,105,105,105,105,105,105,',
',105,,,,,,,105,,,105,105,105,105,105,105,105,105,105,105,,105,105,,105',
'105,105,,,,,,,,,,,,,,,,,,,,105,,,105,,,105,105,,,105,,,,,,105,,,,,,',
',105,,,,,105,105,105,105,105,105,,,,105,105,106,106,106,,106,,,,106',
'106,,,,106,,106,106,106,106,106,106,106,,,,,106,106,106,106,106,106',
'106,,,106,,,,,,,106,,,106,106,106,106,106,106,106,106,106,106,,106,106',
',106,106,106,,,,,,,,,,,,,,,,,,,,106,,,106,,,106,106,,,106,,,,,,106,',
',,,,,,106,,,,,106,106,106,106,106,106,,,,106,106,107,107,107,,107,,',
',107,107,,,,107,,107,107,107,107,107,107,107,,,,,107,107,107,107,107',
'107,107,,,107,,,,,,,107,,,107,107,107,107,107,107,107,107,107,107,,107',
'107,,107,107,107,,,,,,,,,,,,,,,,,,,,107,,,107,,,107,107,,,107,,,,,,107',
',,,,,,,107,,,,,107,107,107,107,107,107,,,,107,107,108,108,108,108,108',
',,,108,108,,,,108,,108,108,108,108,108,108,108,,,,,108,108,108,108,108',
'108,108,,,108,,,,,,108,108,108,108,108,108,108,108,108,108,108,108,108',
'108,,108,108,,108,108,108,,,,,,,,,,,,,,,,,,,,108,,,108,,,108,108,,,108',
',108,,,,108,,,,,,,,108,,,,,108,108,108,108,108,108,,,,108,108,617,617',
'617,,617,,,,617,617,,,,617,,617,617,617,617,617,617,617,,,,,617,617',
'617,617,617,617,617,,,,,,,,,,617,,,617,617,617,617,617,617,617,617,617',
'617,,617,617,,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617',
',,,,,617,,,,,,,,617,,,,,617,617,617,617,617,617,,,,617,617,682,682,682',
',682,,,,682,682,,,,682,,682,682,682,682,682,682,682,,,,,682,682,682',
'682,682,682,682,,,,,,,,,,682,,,682,682,682,682,682,682,682,682,682,682',
',682,682,,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,',
',,,,682,,,,,,,,682,,,,,682,682,682,682,682,682,,,,682,682,484,484,484',
',484,,,,484,484,,,,484,,484,484,484,484,484,484,484,,,,,484,484,484',
'484,484,484,484,,,,,,,,,,484,,,484,484,484,484,484,484,484,484,484,484',
',484,484,,484,484,484,,,,,,,,,,,,,,,,,,,,484,,,484,,,484,484,,,484,',
'484,,,,484,,,,,,,,484,,,,,484,484,484,484,484,484,,,,484,484,43,43,43',
',43,,,,43,43,,,,43,,43,43,43,43,43,43,43,,,,,43,43,43,43,43,43,43,,',
',,,,,,,43,,,43,43,43,43,43,43,43,43,43,43,,43,43,,43,43,43,,,,,,,,,',
',,,,,,,,,,43,,,43,,,43,43,,,43,,,,,,43,,,,,,,,43,,,,,43,43,43,43,43',
'43,,,,43,43,42,42,42,,42,,,,42,42,,,,42,,42,42,42,42,42,42,42,,,,,42',
'42,42,42,42,42,42,,,,,,,,,,42,,,42,42,42,42,42,42,42,42,42,42,,42,42',
',42,42,42,,,,,,,,,,,,,,,,,,,,42,,,42,,,42,42,,,42,,,,,,42,,,,,,,,42',
',,,,42,42,42,42,42,42,,,,42,42,191,191,191,,191,,,,191,191,,,,191,,191',
'191,191,191,191,191,191,,,,,191,191,191,191,191,191,191,,,,,,,,,,191',
',,191,191,191,191,191,191,191,191,191,191,,191,191,,191,191,191,,,,',
',,,,,,,,,,,,,,,191,,,191,,,191,191,,,191,,191,,,,191,,,,,,,,191,,,,',
'191,191,191,191,191,191,,,,191,191,192,192,192,,192,,,,192,192,,,,192',
',192,192,192,192,192,192,192,,,,,192,192,192,192,192,192,192,,,,,,,',
',,192,,,192,192,192,192,192,192,192,192,192,192,,192,192,,192,192,192',
',,,,,,,,,,,,,,,,,,,192,,,192,,,192,192,,,192,,192,,,,192,,,,,,,,192',
',,,,192,192,192,192,192,192,,,,192,192,193,193,193,,193,,,,193,193,',
',,193,,193,193,193,193,193,193,193,,,,,193,193,193,193,193,193,193,',
',,,,,,,,193,,,193,193,193,193,193,193,193,193,193,193,,193,193,,193',
'193,193,,,,,,,,,,,,,,,,,,,,193,,,193,,,193,193,,,193,,,,,,193,,,,,,',
',193,,,,,193,193,193,193,193,193,,,,193,193,194,194,194,,194,,,,194',
'194,,,,194,,194,194,194,194,194,194,194,,,,,194,194,194,194,194,194',
'194,,,,,,,,,,194,,,194,194,194,194,194,194,194,194,194,194,,194,194',
',194,194,194,,,,,,,,,,,,,,,,,,,,194,,,194,,,194,194,,,194,,194,,,,194',
',,,,,,,194,,,,,194,194,194,194,194,194,,,,194,194,487,487,487,,487,',
',,487,487,,,,487,,487,487,487,487,487,487,487,,,,,487,487,487,487,487',
'487,487,,,,,,,,,,487,,,487,487,487,487,487,487,487,487,487,487,,487',
'487,,487,487,487,,,,,,,,,,,,,,,,,,,,487,,,487,,,487,487,,,487,,,,,,487',
',,,,,,,487,,,,,487,487,487,487,487,487,,,,487,487,490,490,490,,490,',
',,490,490,,,,490,,490,490,490,490,490,490,490,,,,,490,490,490,490,490',
'490,490,,,,,,,,,,490,,,490,490,490,490,490,490,490,490,490,490,,490',
'490,,490,490,490,,,,,,,,,,,,,,,,,,,,490,,,490,,,490,490,,,490,,,,,,490',
',,,,,,,490,,,,,490,490,490,490,490,490,,,,490,490,197,197,197,,197,',
',,197,197,,,,197,,197,197,197,197,197,197,197,,,,,197,197,197,197,197',
'197,197,,,,,,,,,,197,,,197,197,197,197,197,197,197,197,197,197,,197',
'197,,197,197,197,,,,,,,,,,,,,,,,,,,,197,,,197,,,197,197,,,197,,,,,,197',
',,,,,,,197,,,,,197,197,197,197,197,197,,,,197,197,198,198,198,,198,',
',,198,198,,,,198,,198,198,198,198,198,198,198,,,,,198,198,198,198,198',
'198,198,,,198,,,,,,,198,,,198,198,198,198,198,198,198,198,198,198,,198',
'198,,198,198,198,,,,,,,,,,,,,,,,,,,,198,,,198,,,198,198,,,198,,,,,,198',
',,,,,,,198,,,,,198,198,198,198,198,198,,,,198,198,199,199,199,,199,',
',,199,199,,,,199,,199,199,199,199,199,199,199,,,,,199,199,199,199,199',
'199,199,,,199,,,,,,,199,,,199,199,199,199,199,199,199,199,199,199,,199',
'199,,199,199,199,,,,,,,,,,,,,,,,,,,,199,,,199,,,199,199,,,199,,,,,,199',
',,,,,,,199,,,,,199,199,199,199,199,199,,,,199,199,614,614,614,,614,',
',,614,614,,,,614,,614,614,614,614,614,614,614,,,,,614,614,614,614,614',
'614,614,,,,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,,614',
'614,,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,614,',
',,614,,,,,,,,614,,,,,614,614,614,614,614,614,,,,614,614,41,41,41,,41',
',,,41,41,,,,41,,41,41,41,41,41,41,41,,,,,41,41,41,41,41,41,41,,,,,,',
',,,41,,,41,41,41,41,41,41,41,41,41,41,,41,41,,41,41,41,,,,,,,,,,,,,',
',,,,,,41,,,41,,,41,41,,,41,,,,,,41,,,,,,,,41,,,,,41,41,41,41,41,41,',
',,41,41,692,692,692,,692,,,,692,692,,,,692,,692,692,692,692,692,692',
'692,,,,,692,692,692,692,692,692,692,,,,,,,,,,692,,,692,692,692,692,692',
'692,692,692,692,692,,692,692,,692,692,692,,,,,,,,,,,,,,,,,,,,692,,,692',
',,692,692,,,692,,,,,,692,,,,,,,,692,,,,,692,692,692,692,692,692,,,,692',
'692,472,472,472,,472,,,,472,472,,,,472,,472,472,472,472,472,472,472',
',,,,472,472,472,472,472,472,472,,,,,,,,,,472,,,472,472,472,472,472,472',
'472,472,472,472,,472,472,,472,472,472,,,,,,,,,,,,,,,,,,,,472,,,472,',
',472,472,,,472,,,,,,472,,,,,,,,472,,,,,472,472,472,472,472,472,,,,472',
'472,890,890,890,,890,,,,890,890,,,,890,,890,890,890,890,890,890,890',
',,,,890,890,890,890,890,890,890,,,,,,,,,,890,,,890,890,890,890,890,890',
'890,890,890,890,,890,890,,890,890,890,,,,,,,,,,,,,,,,,,,,890,,,890,',
',890,890,,,890,,,,,,890,,,,,,,,890,,,,,890,890,890,890,890,890,,,,890',
'890,433,433,433,,433,,,,433,433,,,,433,,433,433,433,433,433,433,433',
',,,,433,433,433,433,433,433,433,,,,,,,,,,433,,,433,433,433,433,433,433',
'433,433,433,433,,433,433,,433,433,433,,,,,,,,,,,,,,,,,,,,433,,,433,',
',433,433,,,433,,433,,433,,433,,,,,,,,433,,,,,433,433,433,433,433,433',
',,,433,433,893,893,893,,893,,,,893,893,,,,893,,893,893,893,893,893,893',
'893,,,,,893,893,893,893,893,893,893,,,,,,,,,,893,,,893,893,893,893,893',
'893,893,893,893,893,,893,893,,893,893,893,,,,,,,,,,,,,,,,,,,,893,,,893',
',,893,893,,,893,,,,,,893,,,,,,,,893,,,,,893,893,893,893,893,893,,,,893',
'893,210,210,210,,210,,,,210,210,,,,210,,210,210,210,210,210,210,210',
',,,,210,210,210,210,210,210,210,,,,,,,,,,210,,,210,210,210,210,210,210',
'210,210,210,210,,210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210,,,210,',
',210,210,,,210,,,,,,210,,,,,,,,210,,,,,210,210,210,210,210,210,,,,210',
'210,211,211,211,,211,,,,211,211,,,,211,,211,211,211,211,211,211,211',
',,,,211,211,211,211,211,211,211,,,,,,,,,,211,,,211,211,211,211,211,211',
'211,211,211,211,,211,211,,211,211,211,,,,,,,,,,,,,,,,,,,,211,,,211,',
',211,211,,,211,,,,,,211,,,,,,,,211,,,,,211,211,211,211,211,211,,,,211',
'211,212,212,212,,212,,,,212,212,,,,212,,212,212,212,212,212,212,212',
',,,,212,212,212,212,212,212,212,,,,,,,,,,212,,,212,212,212,212,212,212',
'212,212,212,212,,212,212,,212,212,212,,,,,,,,,,,,,,,,,,,,212,,,212,',
',212,212,,,212,,,,,,212,,,,,,,,212,,,,,212,212,212,212,212,212,,,,212',
'212,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,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,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,219,219,219,,219,,,,219,219,,,,219,,219,219,219,219,219,219,219',
',,,,219,219,219,219,219,219,219,,,,,,,,,,219,,,219,219,219,219,219,219',
'219,219,219,219,,219,219,,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,',
',219,219,,,219,,,,,,219,,,,,,,,219,,,,,219,219,219,219,219,219,,,,219',
'219,220,220,220,,220,,,,220,220,,,,220,,220,220,220,220,220,220,220',
',,,,220,220,220,220,220,220,220,,,,,,,,,,220,,,220,220,220,220,220,220',
'220,220,220,220,,220,220,,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220,',
',220,220,,,220,,,,,,220,,,,,,,,220,,,,,220,220,220,220,220,220,,,,220',
'220,221,221,221,,221,,,,221,221,,,,221,,221,221,221,221,221,221,221',
',,,,221,221,221,221,221,221,221,,,,,,,,,,221,,,221,221,221,221,221,221',
'221,221,221,221,,221,221,,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,',
',221,221,,,221,,,,,,221,,,,,,,,221,,,,,221,221,221,221,221,221,,,,221',
'221,222,222,222,,222,,,,222,222,,,,222,,222,222,222,222,222,222,222',
',,,,222,222,222,222,222,222,222,,,,,,,,,,222,,,222,222,222,222,222,222',
'222,222,222,222,,222,222,,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,',
',222,222,,,222,,,,,,222,,,,,,,,222,,,,,222,222,222,222,222,222,,,,222',
'222,223,223,223,,223,,,,223,223,,,,223,,223,223,223,223,223,223,223',
',,,,223,223,223,223,223,223,223,,,,,,,,,,223,,,223,223,223,223,223,223',
'223,223,223,223,,223,223,,223,223,223,,,,,,,,,,,,,,,,,,,,223,,,223,',
',223,223,,,223,,,,,,223,,,,,,,,223,,,,,223,223,223,223,223,223,,,,223',
'223,224,224,224,,224,,,,224,224,,,,224,,224,224,224,224,224,224,224',
',,,,224,224,224,224,224,224,224,,,,,,,,,,224,,,224,224,224,224,224,224',
'224,224,224,224,,224,224,,224,224,224,,,,,,,,,,,,,,,,,,,,224,,,224,',
',224,224,,,224,,,,,,224,,,,,,,,224,,,,,224,224,224,224,224,224,,,,224',
'224,225,225,225,,225,,,,225,225,,,,225,,225,225,225,225,225,225,225',
',,,,225,225,225,225,225,225,225,,,,,,,,,,225,,,225,225,225,225,225,225',
'225,225,225,225,,225,225,,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,',
',225,225,,,225,,,,,,225,,,,,,,,225,,,,,225,225,225,225,225,225,,,,225',
'225,226,226,226,,226,,,,226,226,,,,226,,226,226,226,226,226,226,226',
',,,,226,226,226,226,226,226,226,,,,,,,,,,226,,,226,226,226,226,226,226',
'226,226,226,226,,226,226,,226,226,226,,,,,,,,,,,,,,,,,,,,226,,,226,',
',226,226,,,226,,,,,,226,,,,,,,,226,,,,,226,226,226,226,226,226,,,,226',
'226,227,227,227,,227,,,,227,227,,,,227,,227,227,227,227,227,227,227',
',,,,227,227,227,227,227,227,227,,,,,,,,,,227,,,227,227,227,227,227,227',
'227,227,227,227,,227,227,,227,227,227,,,,,,,,,,,,,,,,,,,,227,,,227,',
',227,227,,,227,,,,,,227,,,,,,,,227,,,,,227,227,227,227,227,227,,,,227',
'227,228,228,228,,228,,,,228,228,,,,228,,228,228,228,228,228,228,228',
',,,,228,228,228,228,228,228,228,,,,,,,,,,228,,,228,228,228,228,228,228',
'228,228,228,228,,228,228,,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228,',
',228,228,,,228,,,,,,228,,,,,,,,228,,,,,228,228,228,228,228,228,,,,228',
'228,229,229,229,,229,,,,229,229,,,,229,,229,229,229,229,229,229,229',
',,,,229,229,229,229,229,229,229,,,,,,,,,,229,,,229,229,229,229,229,229',
'229,229,229,229,,229,229,,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,',
',229,229,,,229,,,,,,229,,,,,,,,229,,,,,229,229,229,229,229,229,,,,229',
'229,230,230,230,,230,,,,230,230,,,,230,,230,230,230,230,230,230,230',
',,,,230,230,230,230,230,230,230,,,,,,,,,,230,,,230,230,230,230,230,230',
'230,230,230,230,,230,230,,230,230,230,,,,,,,,,,,,,,,,,,,,230,,,230,',
',230,230,,,230,,,,,,230,,,,,,,,230,,,,,230,230,230,230,230,230,,,,230',
'230,231,231,231,,231,,,,231,231,,,,231,,231,231,231,231,231,231,231',
',,,,231,231,231,231,231,231,231,,,,,,,,,,231,,,231,231,231,231,231,231',
'231,231,231,231,,231,231,,231,231,231,,,,,,,,,,,,,,,,,,,,231,,,231,',
',231,231,,,231,,,,,,231,,,,,,,,231,,,,,231,231,231,231,231,231,,,,231',
'231,232,232,232,,232,,,,232,232,,,,232,,232,232,232,232,232,232,232',
',,,,232,232,232,232,232,232,232,,,,,,,,,,232,,,232,232,232,232,232,232',
'232,232,232,232,,232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232,',
',232,232,,,232,,,,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,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,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,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,35,35,35,,35,,,,35,35,,,,35,,35,35,35,35,35,35,35,,,,,35,35,35,35',
'35,35,35,,,,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,,35,35,,,,35,,',
',,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,,,,,,,,,,,,,,,,,,35,35,35,35',
'35,35,,,,35,35,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,866,866,866,,866,,,,866,866,,,,866,,866,866,866,866,866,866',
'866,,,,,866,866,866,866,866,866,866,,,,,,,,,,866,,,866,866,866,866,866',
'866,866,866,866,866,,866,866,,866,866,866,,,,,,,,,,,,,,,,,,,,866,,,866',
',,866,866,,,866,,,,,,866,,,,,,,,866,,,,,866,866,866,866,866,866,,,,866',
'866,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,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,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,765,765,765,,765,,,,765,765,,,,765,,765,765,765,765,765',
'765,765,,,,,765,765,765,765,765,765,765,,,,,,,,,,765,,,765,765,765,765',
'765,765,765,765,765,765,,765,765,,765,765,765,,,,,,,,,,,,,,,,,,,,765',
',,765,,,765,765,,,765,,,,,,765,,,,,,,,765,,,,,765,765,765,765,765,765',
',,,765,765,31,31,31,,31,,,,31,31,,,,31,,31,31,31,31,31,31,31,,,,,31',
'31,31,31,31,31,31,,,,,,,,,,31,,,31,31,31,31,31,31,31,31,31,31,,31,31',
',31,31,31,,,,,,,,,,,,,,,,,,,,31,,,31,31,,31,31,,,31,,31,,31,,31,,,,',
',,,31,,,,,31,31,31,31,31,31,,,,31,31,30,30,30,,30,,,,30,30,,,,30,,30',
'30,30,30,30,30,30,,,,,30,30,30,30,30,30,30,,,,,,,,,,30,,,30,30,30,30',
'30,30,30,30,30,30,,30,30,,30,30,30,,,,,,,,,,,,,,,,,,,,30,,,30,30,,30',
'30,,,30,,30,,30,,30,,,,,,,,30,,,,,30,30,30,30,30,30,,,,30,30,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,855',
'855,855,,855,,,,855,855,,,,855,,855,855,855,855,855,855,855,,,,,855',
'855,855,855,855,855,855,,,,,,,,,,855,,,855,855,855,855,855,855,855,855',
'855,855,,855,855,,855,855,855,,,,,,,,,,,,,,,,,,,,855,,,855,,,855,855',
',,855,,855,,855,,855,,,,,,,,855,,,,,855,855,855,855,855,855,,,,855,855',
'263,263,263,,263,,,,263,263,,,,263,,263,263,263,263,263,263,263,,,,',
'263,263,263,263,263,263,263,,,,,,,,,,263,,,263,263,263,263,263,263,263',
'263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263',
'263,,,263,,263,,263,,263,,,,,,,,263,,,,,263,263,263,263,263,263,,,,263',
'263,266,266,266,,266,,,,266,266,,,,266,,266,266,266,266,266,266,266',
',,,,266,266,266,266,266,266,266,,,,,,,,,,266,,,266,266,266,266,266,266',
'266,266,266,266,,266,266,,266,266,266,,,,,,,,,,,,,,,,,,,,266,,,266,',
'266,266,266,,,266,,266,,266,,266,,,,,,,,266,,,,,266,266,266,266,266',
'266,,,,266,266,852,852,852,,852,,,,852,852,,,,852,,852,852,852,852,852',
'852,852,,,,,852,852,852,852,852,852,852,,,,,,,,,,852,,,852,852,852,852',
'852,852,852,852,852,852,,852,852,,852,852,852,,,,,,,,,,,,,,,,,,,,852',
',,852,,,852,852,,,852,,852,,852,,852,,,,,,,,852,,,,,852,852,852,852',
'852,852,,,,852,852,436,436,436,,436,,,,436,436,,,,436,,436,436,436,436',
'436,436,436,,,,,436,436,436,436,436,436,436,,,,,,,,,,436,,,436,436,436',
'436,436,436,436,436,436,436,,436,436,,436,436,436,,,,,,,,,,,,,,,,,,',
',436,,,436,,,436,436,,,436,,436,,436,,436,,,,,,,,436,,,,,436,436,436',
'436,436,436,,,,436,436,779,779,779,,779,,,,779,779,,,,779,,779,779,779',
'779,779,779,779,,,,,779,779,779,779,779,779,779,,,,,,,,,,779,,,779,779',
'779,779,779,779,779,779,779,779,,779,779,,779,779,779,,,,,,,,,,,,,,',
',,,,,779,,,779,,,779,779,,,779,,,,,,779,,,,,,,,779,,,,,779,779,779,779',
'779,779,,,,779,779,847,847,847,,847,,,,847,847,,,,847,,847,847,847,847',
'847,847,847,,,,,847,847,847,847,847,847,847,,,,,,,,,,847,,,847,847,847',
'847,847,847,847,847,847,847,,847,847,,,,847,,,,,,,,,,,,,,,,,,,,847,',
',847,,,847,847,,,847,,,,,,,,,,,,,,,,,,,847,847,847,847,847,847,,,,847',
'847,598,598,598,,598,,,,598,598,,,,598,,598,598,598,598,598,598,598',
',,,,598,598,598,598,598,598,598,,,,,,,,,,598,,,598,598,598,598,598,598',
'598,598,598,598,,598,598,,598,598,598,,,,,,,,,,,,,,,,,,,,598,,,598,',
',598,598,,,598,,598,,598,,598,,,,,,,,598,,,,,598,598,598,598,598,598',
',,,598,598,272,272,272,,272,,,,272,272,,,,272,,272,272,272,272,272,272',
'272,,,,,272,272,272,272,272,272,272,,,,,,,,,,272,,,272,272,272,272,272',
'272,272,272,272,272,,272,272,,,,272,,,,,,,,,,,,,,,,,,,,272,,,272,,,272',
'272,,,272,,,,,,,,,,,,,,,,,,,272,272,272,272,272,272,,,,272,272,439,439',
'439,,439,,,,439,439,,,,439,,439,439,439,439,439,439,439,,,,,439,439',
'439,439,439,439,439,,,,,,,,,,439,,,439,439,439,439,439,439,439,439,439',
'439,,439,439,,439,439,439,,,,,,,,,,,,,,,,,,,,439,,,439,,,439,439,,,439',
',,,,,439,,,,,,,,439,,,,,439,439,439,439,439,439,,,,439,439,780,780,780',
',780,,,,780,780,,,,780,,780,780,780,780,780,780,780,,,,,780,780,780',
'780,780,780,780,,,,,,,,,,780,,,780,780,780,780,780,780,780,780,780,780',
',780,780,,,,780,,,,,,,,,,,,,,,,,,,,780,,,780,,,780,780,,,780,,780,,780',
',,,,,,,,,,,,,,780,780,780,780,780,780,,,,780,780,27,27,27,,27,,,,27',
'27,,,,27,,27,27,27,27,27,27,27,,,,,27,27,27,27,27,27,27,,,,,,,,,,27',
',,27,27,27,27,27,27,27,27,27,27,,27,27,,27,27,27,,,,,,,,,,,,,,,,,,,',
'27,,,27,,,27,27,,,27,,27,,27,,27,,,,,,,,27,,,,,27,27,27,27,27,27,,,',
'27,27,505,505,505,,505,,,,505,505,,,,505,,505,505,505,505,505,505,505',
',,,,505,505,505,505,505,505,505,,,,,,,,,,505,,,505,505,505,505,505,505',
'505,505,505,505,,505,505,,505,505,505,,,,,,,,,,,,,,,,,,,,505,,,505,',
',505,505,,,505,,505,,,,505,,,,,,,,505,,,,,505,505,505,505,505,505,,',
',505,505,694,694,694,,694,,,,694,694,,,,694,,694,694,694,694,694,694',
'694,,,,,694,694,694,694,694,694,694,,,,,,,,,,694,,,694,694,694,694,694',
'694,694,694,694,694,,694,694,,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694',
',,694,694,,,694,,,,,,694,,,,,,,,694,,,,,694,694,694,694,694,694,,,,694',
'694,404,404,404,,404,,,,404,404,,,,404,,404,404,404,404,404,404,404',
',,,,404,404,404,404,404,404,404,,,,,,,,,,404,,,404,404,404,404,404,404',
'404,404,404,404,,404,404,,404,404,404,,,,,,,,,,,,,,,,,,,,404,,,404,',
',404,404,,,404,,,,,,404,,,,,,,,404,,,,,404,404,404,404,404,404,,,,404',
'404,842,842,842,,842,,,,842,842,,,,842,,842,842,842,842,842,842,842',
',,,,842,842,842,842,842,842,842,,,,,,,,,,842,,,842,842,842,842,842,842',
'842,842,842,842,,842,842,,842,842,842,,,,,,,,,,,,,,,,,,,,842,,,842,',
',842,842,,,842,,842,,,,842,,,,,,,,842,,,,,842,842,842,842,842,842,,',
',842,842,403,403,403,,403,,,,403,403,,,,403,,403,403,403,403,403,403',
'403,,,,,403,403,403,403,403,403,403,,,,,,,,,,403,,,403,403,403,403,403',
'403,403,403,403,403,,403,403,,403,403,403,,,,,,,,,,,,,,,,,,,,403,,,403',
',,403,403,,,403,,,,,,403,,,,,,,,403,,,,,403,403,403,403,403,403,,,,403',
'403,26,26,26,,26,,,,26,26,,,,26,,26,26,26,26,26,26,26,,,,,26,26,26,26',
'26,26,26,,,,,,,,,,26,,,26,26,26,26,26,26,26,26,26,26,,26,26,,26,26,26',
',,,,,,,,,,,,,,,,,,,26,,,26,,,26,26,,,26,,26,,26,,26,,,,,,,,26,,,,,26',
'26,26,26,26,26,,,,26,26,25,25,25,,25,,,,25,25,,,,25,,25,25,25,25,25',
'25,25,,,,,25,25,25,25,25,25,25,,,,,,,,,,25,,,25,25,25,25,25,25,25,25',
'25,25,,25,25,,25,25,25,,,,,,,,,,,,,,,,,,,,25,,,25,,,25,25,,,25,,25,',
'25,,25,,,,,,,,25,,,,,25,25,25,25,25,25,,,,25,25,587,587,587,,587,,,',
'587,587,,,,587,,587,587,587,587,587,587,587,,,,,587,587,587,587,587',
'587,587,,,,,,,,,,587,,,587,587,587,587,587,587,587,587,587,587,,587',
'587,,587,587,587,,,,,,,,,,,,,,,,,,,,587,,,587,,,587,587,,,587,,,,,,587',
',,,,,,,587,,,,,587,587,587,587,587,587,,,,587,587,840,840,840,,840,',
',,840,840,,,,840,,840,840,840,840,840,840,840,,,,,840,840,840,840,840',
'840,840,,,,,,,,,,840,,,840,840,840,840,840,840,840,840,840,840,,840',
'840,,,,840,,,,,,,,,,,,,,,,,,,,840,,,840,,,840,840,,,840,,,,,,,,,,,,',
',,,,,,840,840,840,840,840,840,,,,840,840,700,700,700,,700,,,,700,700',
',,,700,,700,700,700,700,700,700,700,,,,,700,700,700,700,700,700,700',
',,,,,,,,,700,,,700,700,700,700,700,700,700,700,700,700,,700,700,,,,700',
',,,,,,,,,,,,,,,,,,,700,,,700,,,700,700,,,700,,,,,,,,,,,,,,,,,,,700,700',
'700,700,700,700,,,,700,700,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,21,21,21,,21,,,,21,21,,,,21,,21,21,21',
'21,21,21,21,,,,,21,21,21,21,21,21,21,,,,,,,,,,21,,,21,21,21,21,21,21',
'21,21,21,21,,21,21,,21,21,21,,,,,,,,,,,,,,,,,,,,21,,,21,,,21,21,,,21',
',,,,,21,,,,,,,,21,,,,,21,21,21,21,21,21,,,,21,21,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,,,',
',,293,,,,,,,,293,,,,,293,293,293,293,293,293,,,,293,293,20,20,20,,20',
',,,20,20,,,,20,,20,20,20,20,20,20,20,,,,,20,20,20,20,20,20,20,,,20,',
',,,,,20,,,20,20,20,20,20,20,20,20,20,20,,20,20,,20,20,20,,,,,,,,,,,',
',,,,,,,,20,,,20,,,20,20,,,20,,,,,,20,,,,,,,,20,,,,,20,20,20,20,20,20',
',,,20,20,706,706,706,,706,,,,706,706,,,,706,,706,706,706,706,706,706',
'706,,,,,706,706,706,706,706,706,706,,,,,,,,,,706,,,706,706,706,706,706',
'706,706,706,706,706,,706,706,,706,706,706,,,,,,,,,,,,,,,,,,,,706,,,706',
',,706,706,,,706,,706,,706,,706,,,,,,,,706,,,,,706,706,706,706,706,706',
',,,706,706,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,573,573,573,,573,,,,573,573,,,,573,,573,573,573,573,573,573',
'573,,,,,573,573,573,573,573,573,573,,,,,,,,,,573,,,573,573,573,573,573',
'573,573,573,573,573,,573,573,,573,573,573,,,,,,,,,,,,,,,,,,,,573,,,573',
',,573,573,,,573,,,,,,573,,,,,,,,573,,,,,573,573,573,573,573,573,,,,573',
'573,709,709,709,,709,,,,709,709,,,,709,,709,709,709,709,709,709,709',
',,,,709,709,709,709,709,709,709,,,,,,,,,,709,,,709,709,709,709,709,709',
'709,709,709,709,,709,709,,709,709,709,,,,,,,,,,,,,,,,,,,,709,,,709,',
',709,709,,,709,,709,,709,,709,,,,,,,,709,,,,,709,709,709,709,709,709',
',,,709,709,301,301,301,,301,,,,301,301,,,,301,,301,301,301,301,301,301',
'301,,,,,301,301,301,301,301,301,301,,,,,,,,,,301,,,301,301,301,301,301',
'301,301,301,301,301,,301,301,,301,301,301,,,,,,,,,,,,,,,,,,,,301,,,301',
',,301,301,,,301,,,,,,301,,,,,,,,301,,,,,301,301,301,301,301,301,,,,301',
'301,817,817,817,,817,,,,817,817,,,,817,,817,817,817,817,817,817,817',
',,,,817,817,817,817,817,817,817,,,,,,,,,,817,,,817,817,817,817,817,817',
'817,817,817,817,,817,817,,817,817,817,,,,,,,,,,,,,,,,,,,,817,,,817,',
',817,817,,,817,,817,,,,817,,,,,,,,817,,,,,817,817,817,817,817,817,,',
',817,817,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,402,402,402,,402,,,,402,402,,,,402,,402,402,402,402,402,402',
'402,,,,,402,402,402,402,402,402,402,,,,,,,,,,402,,,402,402,402,402,402',
'402,402,402,402,402,,402,402,,402,402,402,,,,,,,,,,,,,,,,,,,,402,,,402',
',,402,402,,,402,,,,,,402,,,,,,,,402,,,,,402,402,402,402,402,402,,,,402',
'402,569,569,569,,569,,,,569,569,,,,569,,569,569,569,569,569,569,569',
',,,,569,569,569,569,569,569,569,,,,,,,,,,569,,,569,569,569,569,569,569',
'569,569,569,569,,569,569,,569,569,569,,,,,,,,,,,,,,,,,,,,569,,,569,',
',569,569,,,569,,,,,,569,,,,,,,,569,,,,,569,569,569,569,569,569,,,,569',
'569,566,566,566,,566,,,,566,566,,,,566,,566,566,566,566,566,566,566',
',,,,566,566,566,566,566,566,566,,,,,,,,,,566,,,566,566,566,566,566,566',
'566,566,566,566,,566,566,,,,566,,,,,,,,,,,,,,,,,,,,566,,,566,,,566,566',
',,566,,566,,566,,,,,,,,,566,,,,,,566,566,566,566,566,566,,,,566,566',
'400,400,400,,400,,,,400,400,,,,400,,400,400,400,400,400,400,400,,,,',
'400,400,400,400,400,400,400,,,,,,,,,,400,,,400,400,400,400,400,400,400',
'400,400,400,,400,400,,400,400,400,,,,,,,,,,,,,,,,,,,,400,,,400,,,400',
'400,,,400,,400,,,,400,,,,,,,,400,,,,,400,400,400,400,400,400,,,,400',
'400,393,393,393,,393,,,,393,393,,,,393,,393,393,393,393,393,393,393',
',,,,393,393,393,393,393,393,393,,,,,,,,,,393,,,393,393,393,393,393,393',
'393,393,393,393,,393,393,,393,393,393,,,,,,,,,,,,,,,,,,,,393,,,393,393',
',393,393,,,393,,393,,393,,393,,,,,,,,393,,,,,393,393,393,393,393,393',
',,,393,393,311,311,311,,311,,,,311,311,,,,311,,311,311,311,311,311,311',
'311,,,,,311,311,311,311,311,311,311,,,311,,,,,,,311,,,311,311,311,311',
'311,311,311,311,311,311,,311,311,,311,311,311,,,,,,,,,,,,,,,,,,,,311',
',,311,,,311,311,,,311,,,,,,311,,,,,,,,311,,,,,311,311,311,311,311,311',
',,,311,311,312,312,312,,312,,,,312,312,,,,312,,312,312,312,312,312,312',
'312,,,,,312,312,312,312,312,312,312,,,312,,,,,,,312,,,312,312,312,312',
'312,312,312,312,312,312,,312,312,,312,312,312,,,,,,,,,,,,,,,,,,,,312',
',,312,,,312,312,,,312,,,,,,312,,,,,,,,312,,,,,312,312,312,312,312,312',
',,,312,312,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,392,392,392,,392,,,,392,392,,,,392,,392,392,392,392,392,392,392',
',,,,392,392,392,392,392,392,392,,,,,,,,,,392,,,392,392,392,392,392,392',
'392,392,392,392,,392,392,,392,392,392,,,,,,,,,,,,,,,,,,,,392,,,392,392',
',392,392,,,392,,392,,392,,392,,,,,,,,392,,,,,392,392,392,392,392,392',
',,,392,392,809,809,809,,809,,,,809,809,,,,809,,809,809,809,809,809,809',
'809,,,,,809,809,809,809,809,809,809,,,,,,,,,,809,,,809,809,809,809,809',
'809,809,809,809,809,,809,809,,,,809,,,,,,,,,,,,,,,,,,,,809,,,809,,,809',
'809,,,809,,,,,,,,,,,,,,,,,,,809,809,809,809,809,809,,,,809,809,448,448',
'448,,448,,,,448,448,,,,448,,448,448,448,448,448,448,448,,,,,448,448',
'448,448,448,448,448,,,448,,,,,,,448,,,448,448,448,448,448,448,448,448',
'448,448,,448,448,,448,448,448,,,,,,,,,,,,,,,,,,,,448,,,448,,,448,448',
',,448,,448,,448,,448,,,,,,,,448,,,,,448,448,448,448,448,448,,,,448,448',
'906,906,906,,906,,,,906,906,,,,906,,906,906,906,906,906,906,906,,,,',
'906,906,906,906,906,906,906,,,,,,,,,,906,,,906,906,906,906,906,906,906',
'906,906,906,,906,906,,,,906,,,,,,,,,,,,,,,,,,,,906,,,906,,,906,906,',
',906,,,,,,,,,,,,,,,,,,,906,906,906,906,906,906,,,,906,906,911,911,911',
',911,,,,911,911,,,,911,,911,911,911,911,911,911,911,,,,,911,911,911',
'911,911,911,911,,,,,,,,,,911,,,911,911,911,911,911,911,911,911,911,911',
',911,911,,911,911,911,,,,,,,,,,,,,,,,,,,,911,,,911,,,911,911,,,911,',
'911,,911,,911,,,,,,,,911,,,,,911,911,911,911,911,911,,,,911,911,385',
'385,385,,385,,,,385,385,,,,385,,385,385,385,385,385,385,385,,,,,385',
'385,385,385,385,385,385,,,,,,,,,,385,,,385,385,385,385,385,385,385,385',
'385,385,,385,385,,385,385,385,,,,,,,,,,,,,,,,,,,,385,,,385,385,,385',
'385,,,385,,385,,385,,385,,,,,,,,385,,,,,385,385,385,385,385,385,,,,385',
'385,919,919,919,,919,,,,919,919,,,,919,,919,919,919,919,919,919,919',
',,,,919,919,919,919,919,919,919,,,,,,,,,,919,,,919,919,919,919,919,919',
'919,919,919,919,,919,919,,,,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919,919',
',,919,,,,,,,,,,,,,,,,,,,919,919,919,919,919,919,,,,919,919,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,325,325,325,,325,,,,325',
'325,,,,325,,325,325,325,325,325,325,325,,,,,325,325,325,325,325,325',
'325,,,,,,,,,,325,,,325,325,325,325,325,325,325,325,325,325,,325,325',
',,,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,,,,,,,,,,,',
',,325,325,325,325,325,325,,,,325,325,10,10,10,10,10,10,10,10,10,10,10',
'10,10,10,10,10,10,10,10,10,10,10,10,10,,,10,10,10,10,10,10,10,10,10',
'10,,,,,,10,10,10,10,10,10,10,10,,,10,,,,,,,,10,10,,10,10,10,10,,10,10',
',,10,,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10',
',10,,,10,10,,,,,,,,,,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9',
'9,9,,,9,9,9,9,9,9,9,9,9,9,,,,,,9,9,9,9,9,9,9,9,9,,9,,,,,,,,9,9,,9,9',
'9,9,,9,9,,,9,,,,,9,9,9,9,,,,,,,,,,,,,,9,9,,9,9,9,9,9,9,9,9,9,,9,,,9',
'9,,,557,557,557,,557,,,9,557,557,,,,557,,557,557,557,557,557,557,557',
',,,,557,557,557,557,557,557,557,,,,,,,,,,557,,,557,557,557,557,557,557',
'557,557,557,557,,557,557,,557,557,557,,,,,,,,,,,,,,,,,,,,557,,,557,',
',557,557,,,557,,,,,,557,,,,,,,,557,,,,,557,557,557,557,557,557,,,,557',
'557,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,554,554,554,,554,,,,554',
'554,,,,554,,554,554,554,554,554,554,554,,,,,554,554,554,554,554,554',
'554,,,,,,,,,,554,,,554,554,554,554,554,554,554,554,554,554,,554,554',
',554,554,554,,,,,,,,,,,,,,,,,,,,554,,,554,,,554,554,,,554,,,,,,554,',
',,,,,,554,,,,,554,554,554,554,554,554,,,,554,554,549,549,549,,549,,',
',549,549,,,,549,,549,549,549,549,549,549,549,,,,,549,549,549,549,549',
'549,549,,,,,,,,,,549,,,549,549,549,549,549,549,549,549,549,549,,549',
'549,,549,549,549,,,,,,,,,,,,,,,,,,,,549,,,549,,,549,549,,,549,,,,,,549',
',,,,,,,549,,,,,549,549,549,549,549,549,,,,549,549,548,548,548,,548,',
',,548,548,,,,548,,548,548,548,548,548,548,548,,,,,548,548,548,548,548',
'548,548,,,,,,,,,,548,,,548,548,548,548,548,548,548,548,548,548,,548',
'548,,548,548,548,,,,,,,,,,,,,,,,,,,,548,,,548,,,548,548,,,548,,,,,,548',
',,,,,,,548,,,,,548,548,548,548,548,548,,,,548,548,545,545,545,,545,',
',,545,545,,,,545,,545,545,545,545,545,545,545,,,,,545,545,545,545,545',
'545,545,,,,,,,,,,545,,,545,545,545,545,545,545,545,545,545,545,,545',
'545,,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545,,,545,,545,',
',,545,,,,,,,,545,,,,,545,545,545,545,545,545,,,,545,545,544,544,544',
',544,,,,544,544,,,,544,,544,544,544,544,544,544,544,,,,,544,544,544',
'544,544,544,544,,,,,,,,,,544,,,544,544,544,544,544,544,544,544,544,544',
',544,544,,544,544,544,,,,,,,,,,,,,,,,,,,,544,,,544,,,544,544,,,544,',
',,,,544,,,,,,,,544,,,,,544,544,544,544,544,544,,,,544,544,465,465,465',
',465,,,,465,465,,,,465,,465,465,465,465,465,465,465,,,,,465,465,465',
'465,465,465,465,,,,,,,,,,465,,,465,465,465,465,465,465,465,465,465,465',
',465,465,,465,465,465,,,,,,,,,,,,,,,,,,,,465,,,465,,,465,465,,,465,',
'465,,,,465,,,,,,,,465,,,,,465,465,465,465,465,465,,,,465,465,517,517',
'517,,517,,,,517,517,,,,517,,517,517,517,517,517,517,517,,,,,517,517',
'517,517,517,517,517,,,517,,,,,,,517,,,517,517,517,517,517,517,517,517',
'517,517,,517,517,,517,517,517,,,,,,,,,,,,,,,,,,,,517,,,517,,,517,517',
',,517,,,,,,517,,,,,,,,517,,,,,517,517,517,517,517,517,,,,517,517,523',
'523,523,,523,,,,523,523,,,,523,,523,523,523,523,523,523,523,,,,,523',
'523,523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523',
'523,523,523,,523,523,,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523',
'523,,,523,,,,,,523,,,,,,,,523,,,,,523,523,523,523,523,523,,,,523,523',
'798,798,798,,798,,,,798,798,,,,798,,798,798,798,798,798,798,798,,,,',
'798,798,798,798,798,798,798,,,,,,,,,,798,,,798,798,798,798,798,798,798',
'798,798,798,,798,798,,798,798,798,,,,,,,,,,,,,,,,,,,,798,,,798,,,798',
'798,,,798,,,,,,798,,,,,,,,798,,,,,798,798,798,798,798,798,,,,798,798',
'922,922,922,,922,,,,922,922,,,,922,,922,922,922,922,922,922,922,,,,',
'922,922,922,922,922,922,922,,,,,,,,,,922,,,922,922,922,922,922,922,922',
'922,922,922,,922,922,,922,922,922,,,,,,,,,,,,,,,,,,,,922,,,922,,,922',
'922,,,922,,,,,,922,,,,,,,,922,,,,,922,922,922,922,922,922,,,,922,922',
'796,796,796,,796,,,,796,796,,,,796,,796,796,796,796,796,796,796,,,,',
'796,796,796,796,796,796,796,,,,,,,,,,796,,,796,796,796,796,796,796,796',
'796,796,796,,796,796,,796,796,796,,,,,,,,,,,,,,,,,,,,796,,,796,,,796',
'796,,,796,,,,,,796,,,,,,,,796,,,,,796,796,796,796,796,796,,,,796,796',
'376,376,376,,376,,,,376,376,,,,376,,376,376,376,376,376,376,376,,,,',
'376,376,376,376,376,376,376,,,,,,,,,,376,,,376,376,376,376,376,376,376',
'376,376,376,,376,376,,376,376,376,,,,,,,,,,,,,,,,,,,,376,,,376,,,376',
'376,,,376,,,,,,376,,,,,,,,376,,,,,376,376,376,376,376,376,,,,376,376',
'791,791,791,,791,,,,791,791,,,,791,,791,791,791,791,791,791,791,,,,',
'791,791,791,791,791,791,791,,,,,,,,,,791,,,791,791,791,791,791,791,791',
'791,791,791,,791,791,,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791',
'791,,,791,,,,,,791,,,,,,,,791,,,,,791,791,791,791,791,791,,,,791,791',
'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',
'541,541,541,541,541,541,541,,541,,,541,541,,,,,,,,,,541,364,364,364',
'364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364',
'364,364,364,364,,,364,364,364,364,364,364,364,364,364,364,,,,,,364,364',
'364,364,364,364,364,364,,,364,,,,,,,,364,364,,364,364,364,364,,364,364',
',,364,,,,,364,364,364,364,,,,,,,,,,,,,,364,364,,364,364,364,364,364',
'364,364,364,364,,364,,,364,364,,,752,752,752,,752,,,364,752,752,,,,752',
',752,752,752,752,752,752,752,,,,,752,752,752,752,752,752,752,,,752,',
',,,,,752,,,752,752,752,752,752,752,752,752,752,752,,752,752,,752,752',
'752,,,,,,,,,,,,,,,,,,,,752,,,752,,,752,752,,,752,,,,,,752,,,,,,,,752',
',,,,752,752,752,752,752,752,,,,752,752,736,736,736,,736,,,,736,736,',
',,736,,736,736,736,736,736,736,736,,,,,736,736,736,736,736,736,736,',
',736,,,,,,,736,,,736,736,736,736,736,736,736,736,736,736,,736,736,,736',
'736,736,,,,,,,,,,,,,,,,,,,,736,,,736,,,736,736,,,736,,,,,,736,,,,,,',
',736,,,,,736,736,736,736,736,736,,,,736,736,81,81,81,81,81,81,81,81',
'81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,,,81,81,81,81,81,81',
'81,81,81,81,,,,,,81,81,81,81,81,81,81,81,81,81,81,81,,,,,,,81,81,,81',
'81,81,81,,81,81,,,81,,,,,81,81,81,81,,,,,,,,,,,,,,81,81,,81,81,81,81',
'81,81,81,81,81,,81,,,81,670,670,670,670,670,670,670,670,670,670,670',
'670,670,670,670,670,670,670,670,670,670,670,670,670,,,670,670,670,670',
'670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,670,,,670,',
',,,,,,670,670,,670,670,670,670,,670,670,,,670,,,,,670,670,670,670,,',
',,,,,,,,,,,670,670,,670,670,670,670,670,670,670,670,670,,670,,,670,67',
'67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67',
',,67,67,67,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,67,67,67,67',
'67,,,,,,,67,67,,67,67,67,67,,67,67,,,67,,,,,67,67,67,67,,,,,,67,,,,',
',,,67,67,,67,67,67,67,67,67,67,67,67,,67,398,398,67,,398,,,,,,,,398',
'398,,398,398,398,398,,398,398,,,398,,,,,398,398,398,398,,,,,,,,,,,,',
',398,398,,398,398,398,398,398,398,398,398,398,,398,,,398,849,849,849',
'849,849,849,849,849,849,849,849,,849,849,,,849,849,,,,,,,,,,,,,,,849',
',849,,849,849,849,849,849,849,849,,849,,,,,,,476,476,,,476,,,,,849,',
'849,476,476,,476,476,476,476,,476,476,,,476,,,,,476,476,476,476,,,,',
',,,,,,,,,476,476,,476,476,476,476,476,476,476,476,476,,476,475,475,476',
',475,,,,,,,,475,475,,475,475,475,475,,475,475,,,475,,,,,475,475,475',
'475,,,,,,,,,,,,,,475,475,,475,475,475,475,475,475,475,475,475,,475,597',
'597,475,,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,507,507,597,,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,255,255,507,,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,254,254,255,,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,467,467,254,,467,,,,,,,,467,467,,467,467',
'467,467,,467,467,,,467,,,,,467,467,467,467,,,,,,,,,,,,,,467,467,,467',
'467,467,467,467,467,467,467,467,,467,596,596,467,,596,,,,,,,,596,596',
',596,596,596,596,,596,596,,,596,,,,,596,596,596,596,,,,,,,,,,,,,,596',
'596,,596,596,596,596,596,596,596,596,596,,596,466,466,596,,466,,,,,',
',,466,466,,466,466,466,466,,466,466,,,466,,,,,466,466,466,466,,,,,,',
',,,,,,,466,466,,466,466,466,466,466,466,466,466,466,,466,843,843,466',
',843,,,,,,,,843,843,,843,843,843,843,,843,843,,,843,,,,,843,843,843',
'843,,,,,,,,,,,,,,843,843,,843,843,843,843,843,843,843,843,843,,843,195',
'195,843,,195,,,,,,,,195,195,,195,195,195,195,,195,195,,,195,,,,,195',
'195,195,195,,,,,,,,,,,,,,195,195,,195,195,195,195,195,195,195,195,195',
',195,641,641,195,,641,,,,,,,,641,641,,641,641,641,641,,641,641,,,641',
',,,,641,641,641,641,,,,,,,,,,,,,,641,641,,641,641,641,641,641,641,641',
'641,641,,641,643,643,641,,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,196,196,643,,196,,,,,,,,196,196,,196,196,196,196',
',196,196,,,196,,,,,196,196,196,196,,,,,,,,,,,,,,196,196,,196,196,196',
'196,196,196,196,196,196,,196,399,399,196,,399,,,,,,,,399,399,,399,399',
'399,399,,399,399,,,399,,,,,399,399,399,399,,,,,,,,,,,,,,399,399,,399',
'399,399,399,399,399,399,399,399,,399,844,844,399,,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,506,506,844,,506,,,,,',
',,506,506,,506,506,506,506,,506,506,,,506,,,,,506,506,506,506,,,,,,',
',,,,,,,506,506,,506,506,506,506,506,506,506,506,506,,506,,,506,584,584',
'584,584,584,584,584,584,584,584,584,,584,584,,,584,584,,,,584,,,,,,',
',,,,584,,584,,584,584,584,584,584,584,584,,584,,,,,,,,,,,,,,,,584,,584',
'430,430,430,430,430,430,430,430,430,430,430,,430,430,,,430,430,,,,,',
',,,,,,,,,430,,430,,430,430,430,430,430,430,430,,430,,679,679,679,679',
'679,679,679,679,679,679,679,,679,679,430,430,679,679,,,,,,,,,,,,,,,679',
',679,,679,679,679,679,679,679,679,,679,684,684,684,684,684,684,684,684',
'684,684,684,,684,684,,679,684,684,,,,,,,,,,,,,,,684,,684,,684,684,684',
'684,684,684,684,,684,686,686,686,686,686,686,686,686,686,686,686,,686',
'686,,684,686,686,,,,,,,,,,,,,,,686,,686,,686,686,686,686,686,686,686',
',686,689,689,689,689,689,689,689,689,689,689,689,,689,689,,686,689,689',
',,,,,,,,,,,,,,689,,689,,689,689,689,689,689,689,689,,689,609,609,609',
'609,609,609,609,609,609,609,609,,609,609,,689,609,609,,,,,,,,,,,,,,',
'609,,609,,609,609,609,609,609,609,609,,609,22,22,22,22,22,22,22,22,22',
'22,22,,22,22,,609,22,22,,,,,,,,,,,,,,,22,,22,,22,22,22,22,22,22,22,',
'22,240,240,240,240,240,240,240,240,240,240,240,,240,240,,22,240,240',
',,,,,,,,,,,,,,240,,240,,240,240,240,240,240,240,240,,240,381,381,381',
'381,381,381,381,381,381,381,381,,381,381,,240,381,381,,,,,,,,,,,,,,',
'381,,381,,381,381,381,381,381,381,381,,381,696,696,696,696,696,696,696',
'696,696,696,696,,696,696,,381,696,696,,,,,,,,,,,,,,,696,,696,,696,696',
'696,696,696,696,696,,696,395,395,395,395,395,395,395,395,395,395,395',
',395,395,,696,395,395,,,,,,,,,,,,,,,395,,395,,395,395,395,395,395,395',
'395,,395,733,733,733,733,733,733,733,733,733,733,733,,733,733,,395,733',
'733,,,,,,,,,,,,,,,733,,733,,733,733,733,733,733,733,733,,733,477,477',
'477,477,477,477,477,477,477,477,477,,477,477,733,733,477,477,,,,,,,',
',,,,,,,477,,477,,477,477,477,477,477,477,477,,477,488,488,488,488,488',
'488,488,488,488,488,488,,488,488,,477,488,488,,,,,,,,,,,,,,,488,,488',
',488,488,488,488,488,488,488,,488,778,778,778,778,778,778,778,778,778',
'778,778,,778,778,488,488,778,778,,,,,,,,,,,,,,,778,,778,,778,778,778',
'778,778,778,778,,778,,,,,,,,,,,,,,,,778' ]
        racc_action_check = arr = ::Array.new(25056, 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,    26,  4457,  1132,   nil,   385,   nil,   917, 20665, 20431,
 20310,   nil,  1021,   996,   993,  1038,   432,   170,   152,   nil,
 17285, 17043, 24571,  1087,   nil, 16438, 16317, 15591,   437,     6,
 14018, 13897,   nil,  2993, 13655, 13050,   nil,   986,   282,  1056,
   566,  9057,  7726,  7605,   985,   496,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   315,   nil,  5548,  5306,  4822,   -23,  5064,
  5185,   nil,   nil,   790,  5427,  1027,   nil, 23055,   nil,   nil,
   nil,   nil,   nil,   280,   nil,   nil,   nil,   nil,   nil,   971,
   968, 22835,   nil,   nil,   nil,  6274,   nil,   nil,  6395,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   917,   nil,   nil,   nil,  6637,  6758,  6879,  7000,  7121,   592,
   nil,   489,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   958,   nil,   970,
  3969,  7847,  7968,  8089,  8210, 23829, 24009,  8573,  8694,  8815,
   nil,   826,   -36,  1025,   -35,   947,   992,  3359,   nil,   nil,
  9783,  9904, 10025, 10146, 10267, 10388, 10509, 10630, 10751, 10872,
 10993, 11114, 11235, 11356, 11477, 11598, 11719, 11840, 11961, 12082,
 12203, 12324, 12445, 12566, 12687, 12808, 12929,   nil,   nil,   nil,
 24616,   nil,   949,   948, 13413,   nil, 13534,   988,   nil,   nil,
   nil,   nil,   nil,   nil, 23529, 23469,   971, 14139,   nil,   975,
   nil,   nil,   nil, 14381,   nil,   nil, 14502,   962,  2627,   949,
   947,   901, 15228,  2505,   961,   920,   973,   917,   927,   886,
   -22,   nil,   918,   624,   nil,   nil,   242,   940,   937,   669,
   nil,   880,   nil, 17164,   nil,  1651,   620,   nil,   818,   251,
   359, 17890,   839,   301,   815,   nil,   358,   nil,   515,    21,
    45, 18858, 18979,   212,   345,   796,   -13,   666,   862,    -7,
   886,   nil,   nil, 20068,   nil, 20189,   264,   347,   165,   -52,
   435,   427,   372,   355,   nil,   -54,   nil,   nil,   nil,   nil,
   199,   nil,   188,   nil,   179,   767,   151,   nil,   762,   -35,
   nil,   175,   nil,   nil,   nil,   nil,   nil,   567,   nil,   nil,
   nil,   nil,   nil,   nil, 22480,   nil,   nil,   nil,   nil,  4701,
   764,   nil,   nil,   790,   nil,   743, 22117,   nil,   709,   nil,
   nil, 24661,   739,   232,   237, 19826,   nil,   nil,   125,   743,
     0,   nil, 19221, 18737,   nil, 24751,   nil,   nil, 23115, 24069,
 18616,   157, 18253, 16196, 15954,   917,  1285,   269,   387,   765,
   764,   762,   752,  2871,  2749,   557,  2261,  2627,  2505,  2383,
  2139,  2017,  1895,  1773,  1651,  1407,    83,   209,  1529,   669,
 24300,   131,   nil,  9541,   nil,   nil, 14744,   689,   nil, 15349,
   553,   nil,   nil,   250,   nil,   nil,   nil,   nil, 19463,   nil,
   258,   -43,   726,   683,   137,   671,   762,   699,   nil,   691,
   652,   nil,   nil,   nil,   673, 21391, 23709, 23589,   672,   659,
   nil,   nil,  9299,  4943,  5669, 23289, 23229, 24841,  5911,   738,
   720,   592,   nil,   nil,  7484,   nil,   nil,  8331, 24886,   nil,
  8452,   nil,   nil,   nil,  3847,   702,   nil,   nil,  3237,    30,
    52,   691,   696,  2383,   nil, 15712, 24189, 23409,    10,   nil,
   424,   192,    -3,   nil,   793,   nil,    14, 21512,   nil,  1088,
   nil,   nil,   nil, 21633,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   125,   nil,   nil,   nil,   568,   nil,
   nil, 22359,   564,   nil, 21270, 21149,   nil,   219, 21028, 20907,
   549,   nil,   nil,   nil, 20786,   504,   nil, 20544,   -47,    27,
   669,   442,   493,  1159, 19100,   nil, 18495,   nil,   nil, 18374,
   447,   nil,   457, 17648,   nil,   449,   nil,   430,   nil,   nil,
   nil,   nil,   nil,   241, 24237,   -75,   396, 16559,   nil,   380,
   nil,   nil,   nil,   nil,   354,   340, 23649, 23349, 15107,   nil,
   -64,   nil,   334,     1,   116,   257,   193,   790,   247, 24526,
   256,   250,     9,   290,  8936,   nil,   194,  7242,   nil,   nil,
   680,   nil,   264,   nil,   nil,   nil,   nil,   nil,   229,   nil,
   215,  6153,   122,    -6,    -4,     3,    85, 16922,   nil,   586,
   nil, 23889, 17527, 23949,   nil,   nil,   nil,   248,   431,  1529,
  2139,   613,   271,    45,     9,   330,   nil,   nil,   nil,   nil,
   nil,   -83,   nil,   nil,   nil,   nil,    50,   nil,   nil,    67,
 22945,   -31,   545,  4579,   nil,   nil,   nil,   nil,   nil, 24346,
   135,  5790,  7363,   nil, 24391,   nil, 24436,   nil,   nil, 24481,
   nil,   546,  9178, 13171, 15833,    90, 24706,   nil,   332,  1038,
 16801,   nil,   418,  1773,   404,   nil, 17406,   412,   nil, 17769,
   nil, 18132,   450,   nil,   495,  2261,  2017,   nil,   nil,   516,
   552,    87,   642,   499,   nil,   677,   nil,  4213,   570,   619,
   nil,   nil,   nil, 24796,   697,   nil, 22714,   703,  3725,  4335,
   nil,   nil,   600,    31,  6032,    -5,    53,   190,  1024,   nil,
   688,  1285, 22593,   nil,   393,   789,   793,   680,   nil,  1051,
   nil,   -37,   nil,   nil,    54, 13776,   nil,   nil,   nil,   729,
   nil,   nil,   nil,   nil,   nil,   715,   nil,   nil, 24931, 14865,
 15470,   851,   713,   780,   261,   710,   750,   nil,   nil,   841,
   nil, 22238,   nil,  2871,   752,   nil, 21996,   759, 21754,   nil,
   nil,   789,   891,   821,   nil,  1895,   nil,   nil,   -11, 19342,
   nil,   nil,   nil,    20,   nil,   920,   921, 18011,  1407,   nil,
   nil,   nil,   934,   327,   nil,   nil,   nil,   864,   827,   848,
   nil,   nil,   851,   866,   nil,   nil,   382,   nil,   nil,   nil,
 16680,  1159, 16075, 23769, 24129,   972,   931, 14986,   nil, 23163,
   936,   nil, 14623,   925,   nil, 14260,   938,   nil,   nil,   nil,
   nil,  2749,   nil,  3115,   nil,   nil, 13292,   388,  3481,   nil,
   nil,  3603,   nil,   -43,   nil,   nil,   nil,  4091,   nil,   954,
   984,   991,   493,   323,   495,   461,  6516,   nil,   nil,   nil,
  9420,   984,   nil,  9662,   nil,  1106,   533,   nil,   nil,   nil,
   nil,  1107,  1108,   992,  1110,  1023, 19584,   554,   nil,   999,
   nil, 19705,  1003,   nil,   nil,   nil,   nil,   nil,   nil, 19947,
   nil,   nil, 21875,   nil,   nil,  1007,   nil ]

racc_action_default = [
    -1,  -520,  -519,  -520,    -2,  -508,    -5,    -6,  -520,  -520,
  -520,   -20,  -520,  -520,  -520,  -520,  -520,  -274,   -34,   -35,
  -520,  -520,   -40,   -42,   -43,  -286,  -323,  -324,   -47,  -252,
  -371,  -289,   -61,  -519,   -65,   -70,   -71,  -520,  -449,  -520,
  -520,  -520,  -520,  -520,  -510,  -217,  -267,  -268,  -269,  -270,
  -271,  -272,  -273,  -498,  -276,  -520,  -519,  -519,  -292,  -520,
  -520,  -296,  -299,  -508,  -520,  -308,  -315,  -520,  -325,  -326,
  -394,  -395,  -396,  -397,  -398,  -519,  -401,  -519,  -519,  -519,
  -519,  -519,  -428,  -434,  -435,  -438,  -439,  -440,  -441,  -442,
  -443,  -444,  -445,  -446,  -447,  -448,  -451,  -452,   927,    -4,
  -509,  -515,  -516,  -517,  -520,  -520,  -520,  -520,  -520,    -8,
    -9,  -520,   -96,   -97,   -98,   -99,  -100,  -101,  -102,  -103,
  -104,  -108,  -109,  -110,  -111,  -112,  -113,  -114,  -115,  -116,
  -117,  -118,  -119,  -120,  -121,  -122,  -123,  -124,  -125,  -126,
  -127,  -128,  -129,  -130,  -131,  -132,  -133,  -134,  -135,  -136,
  -137,  -138,  -139,  -140,  -141,  -142,  -143,  -144,  -145,  -146,
  -147,  -148,  -149,  -150,  -151,  -152,  -153,  -154,  -155,  -156,
  -157,  -158,  -159,  -160,  -161,  -162,  -163,  -164,  -165,  -166,
  -167,  -168,  -169,  -170,  -171,  -172,  -173,   -14,  -105,  -520,
  -519,  -520,  -520,  -520,  -519,  -520,  -520,  -520,  -520,  -520,
   -38,  -520,  -449,  -520,  -274,  -520,  -520,  -519,   -39,  -209,
  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,
  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -520,
  -520,  -520,  -520,  -520,  -520,  -520,  -520,  -359,  -362,   -44,
  -218,  -231,  -519,  -519,  -520,  -239,  -520,  -262,  -286,  -323,
  -324,  -493,   -45,   -46,  -520,  -520,   -53,  -520,  -291,  -520,
  -372,  -375,   -59,  -519,  -370,   -60,  -520,   -61,  -519,  -520,
  -520,   -66,   -68,  -519,   -75,  -520,  -520,   -82,  -289,  -510,
  -365,  -327,  -371,  -520,   -69,   -73,  -282,  -436,  -437,  -520,
  -194,  -195,  -210,  -520,  -511,  -519,  -278,  -219,  -510,  -512,
  -512,  -520,  -520,  -512,  -520,  -490,  -512,  -293,   -41,  -520,
  -520,  -520,  -520,  -508,  -520,  -509,  -449,  -520,  -520,  -274,
  -520,  -339,  -340,  -520,  -311,  -520,   -96,   -97,  -134,  -135,
  -151,  -156,  -163,  -166,  -318,  -520,  -449,  -487,  -488,  -399,
  -520,  -414,  -520,  -416,  -520,  -520,  -520,  -406,  -520,  -520,
  -412,  -520,  -427,  -429,  -430,  -431,  -432,    -7,  -518,   -15,
   -16,   -17,   -18,   -19,  -520,   -11,   -12,   -13,  -106,  -519,
  -520,   -23,   -31,  -174,  -262,  -520,  -520,   -24,   -32,   -33,
   -25,  -176,  -520,  -499,  -500,  -519,  -501,  -502,  -499,  -252,
  -500,  -369,  -504,  -505,   -30,  -183,   -36,   -37,  -520,  -520,
  -519,  -282,  -520,  -520,  -520,  -184,  -185,  -186,  -187,  -188,
  -189,  -190,  -191,  -196,  -197,  -198,  -199,  -200,  -201,  -202,
  -203,  -204,  -205,  -206,  -207,  -208,  -211,  -212,  -213,  -214,
  -520,  -519,  -232,  -520,  -261,  -234,  -520,  -519,  -259,  -520,
  -252,  -499,  -500,  -252,   -50,   -54,  -253,  -254,  -255,  -366,
  -519,  -519,  -520,  -510,  -510,  -519,  -231,  -520,  -288,  -520,
   -62,  -280,   -74,   -67,  -520,  -519,  -520,  -520,   -81,  -520,
  -436,  -437,  -520,  -520,  -520,  -520,  -520,  -215,  -520,  -386,
  -520,  -510,  -220,  -221,  -514,  -513,  -223,  -514,  -510,  -284,
  -514,  -492,  -285,  -491,  -519,  -328,  -329,  -330,  -519,  -520,
  -520,  -520,  -520,  -519,  -378,  -519,  -520,  -520,  -282,  -305,
   -91,   -92,  -520,   -94,  -520,  -274,  -520,  -520,  -316,  -467,
  -320,  -506,  -507,  -520,  -400,  -415,  -418,  -419,  -421,  -402,
  -417,  -403,  -404,  -405,  -520,  -408,  -410,  -411,  -520,  -433,
   -10,  -520,  -520,   -22,  -520,  -520,  -266,  -283,  -520,  -520,
   -55,  -229,  -230,  -367,  -520,   -57,  -368,  -520,  -499,  -500,
  -503,  -281,  -520,  -174,  -520,  -355,  -520,  -357,  -360,  -520,
  -519,  -260,  -263,  -520,  -494,  -520,  -238,  -520,  -495,   -48,
  -363,   -49,  -364,  -519,   -40,  -520,  -519,  -520,  -251,  -520,
  -257,  -373,  -376,  -225,  -520,  -520,  -520,  -520,  -520,  -287,
   -62,   -72,  -520,  -499,  -500,  -519,   -78,   -80,  -520,  -182,
  -192,  -193,  -520,  -519,  -519,  -277,  -520,  -520,  -263,  -224,
  -519,  -331,  -519,  -297,  -332,  -333,  -334,  -300,  -520,  -303,
  -520,  -520,  -520,  -499,  -500,  -503,  -281,  -520,   -91,   -92,
   -93,  -520,  -519,  -520,  -309,  -453,  -454,  -520,  -312,  -519,
  -519,  -467,  -520,  -486,  -486,  -486,  -466,  -468,  -469,  -470,
  -471,  -472,  -473,  -476,  -478,  -479,  -481,  -482,  -483,  -520,
  -520,  -510,  -520,  -519,  -407,  -409,  -413,  -107,   -21,  -175,
  -264,  -520,  -520,   -27,  -178,   -28,  -179,   -56,   -29,  -180,
   -58,  -181,  -520,  -520,  -520,  -283,  -216,  -341,  -343,  -353,
  -520,  -356,  -520,  -519,  -519,  -236,  -520,  -519,   -51,  -520,
  -244,  -520,  -519,  -256,  -520,  -519,  -519,  -226,  -227,  -519,
  -519,  -510,  -520,   -76,  -290,  -519,  -337,  -519,  -387,  -519,
  -388,  -389,  -279,  -510,  -520,  -335,  -520,  -520,  -519,  -519,
  -302,  -304,  -380,  -520,  -520,  -283,  -520,   -91,   -92,   -95,
  -520,  -519,  -520,  -456,  -520,  -520,  -520,  -510,  -458,  -520,
  -462,  -520,  -464,  -465,  -520,  -520,  -480,  -484,  -321,  -520,
  -420,  -423,  -424,  -425,  -426,  -520,  -265,   -26,  -177,  -520,
  -344,   -83,  -520,  -520,   -90,  -352,  -520,  -354,  -358,  -520,
  -233,  -520,  -235,  -519,  -519,  -241,  -520,  -519,  -520,  -250,
  -258,  -520,  -520,  -520,    -3,  -519,  -393,  -338,  -520,  -520,
  -391,  -222,  -294,  -520,  -295,  -520,  -520,  -520,  -519,  -382,
  -306,  -283,  -520,  -520,  -313,  -317,  -319,  -520,  -486,  -486,
  -474,  -485,  -486,  -520,  -477,  -475,  -467,  -489,  -422,  -342,
  -520,  -349,  -519,  -520,  -520,   -89,  -520,  -520,  -361,  -519,
  -520,  -240,  -520,  -519,  -246,  -520,  -519,  -374,  -377,  -228,
  -392,  -519,  -390,  -519,  -298,  -301,  -520,  -519,  -519,  -310,
  -455,  -519,  -457,  -520,  -460,  -461,  -463,  -519,  -345,  -348,
  -520,  -520,   -85,   -87,   -86,   -88,  -520,  -351,  -237,   -52,
  -520,  -519,  -242,  -520,  -245,  -386,  -519,  -381,  -379,  -383,
  -384,  -520,  -520,  -486,  -520,  -520,  -520,   -84,  -350,  -519,
  -247,  -520,  -519,  -385,  -336,  -307,  -314,  -459,  -322,  -520,
  -347,  -243,  -520,  -248,  -346,  -519,  -249 ]

clist = [
'13,208,613,243,243,243,13,271,115,115,502,334,302,103,650,241,241,241',
'454,293,372,379,309,310,99,353,313,734,656,480,445,13,640,109,4,306',
'623,627,264,120,120,110,188,494,498,574,298,245,245,245,118,118,725',
'834,760,762,763,256,262,265,580,737,321,582,284,270,115,359,360,361',
'362,103,829,702,832,342,344,385,389,351,115,714,314,200,525,337,304',
'239,252,253,535,568,307,483,486,446,574,491,13,516,493,518,267,242,242',
'242,13,590,269,541,591,592,793,320,644,583,189,335,296,281,281,16,308',
'308,520,357,308,16,295,481,311,738,312,363,739,303,440,443,637,201,201',
'868,323,751,201,201,201,517,754,281,382,871,16,275,275,325,649,519,670',
'836,656,749,698,589,431,834,703,308,308,308,308,371,377,380,201,201',
'450,394,201,201,715,451,201,317,298,716,903,743,13,898,631,729,808,339',
'340,393,364,628,346,534,322,349,770,672,673,13,352,752,757,828,187,100',
'804,830,2,523,1,,,16,,,370,201,201,201,201,16,,874,875,,17,876,,243',
',,17,270,,243,,708,243,,,241,,,,,,456,469,,241,,,,,396,397,17,277,277',
'13,449,,375,375,13,,482,499,500,,,675,245,385,389,,820,,245,,,245,,264',
',,13,319,,,,,,270,463,,914,917,270,899,,,16,201,201,201,201,,574,201',
'201,201,447,574,103,,,687,453,16,,457,690,17,877,501,,,242,,267,17,580',
'582,455,267,459,242,656,,,464,608,,,,721,,,562,281,608,,,,,115,,,,13',
',,,,,,308,308,201,,,,,,201,755,756,201,,16,,608,298,275,16,,120,,540',
'556,393,,,542,,,,118,,,281,,281,570,,550,16,,,555,913,,17,602,,,,,586',
',594,595,201,201,,,,,,17,,,,,514,730,514,,,,,,,,,,,298,616,,,,,632,',
'619,574,,393,,579,,588,581,,,,393,,818,719,720,,,,,,822,,,16,,,,13,',
',298,13,,17,,,13,277,17,,,393,624,624,,,296,,,,,,,,201,574,,,608,645',
'17,620,,683,685,622,,,,688,630,,,,697,115,612,861,,,,,863,,,,,,515,',
'515,,,,,,,,900,,,,201,,,,120,,677,,,570,,,,648,,118,,201,,671,,722,',
',,,,,,,201,750,17,746,,,,,902,,,,,,904,,16,768,,556,16,,,,38,16,,201',
',,38,,,,,298,,,,201,,,,393,,201,,,,769,13,13,,,281,38,274,274,753,,',
',,758,,777,,,,,201,201,115,,13,,201,,,,,,,,,,316,,275,336,797,,,,,375',
',,,803,785,787,813,308,13,,,,775,,,811,742,,,,13,13,823,,201,,38,,,',
',17,13,608,38,17,,,795,827,17,,789,13,13,,,,,,,,,,801,802,13,,,,839',
'624,,201,,,807,,201,824,,,,,,16,16,815,816,,,,,,,,,,,,,281,281,,794',
',,,13,16,,,,277,,881,308,,201,,13,,,,862,,38,,,,,,308,13,,782,782,435',
',16,,,850,38,,,,891,870,298,,16,16,,860,878,879,,,,393,,887,16,,,,867',
',,,,201,,16,16,13,,13,,,,281,13,,,13,16,201,,,,13,,,,17,17,,,,908,,',
'38,,,,274,38,895,281,896,,,,275,901,,774,17,920,,,,,,,,16,,38,,,924',
',,,,,,16,281,281,,782,784,784,,281,17,,,,16,,,,,336,,336,17,17,,,,,',
',,,,,17,,782,782,201,,,,,782,,17,17,,281,,,,,,,,,16,17,16,,,,,16,38',
',16,281,,,,,16,,,,,,,,281,782,,,,,277,,,,576,,,,,,,,,17,,782,,,,,,,',
',,17,,,782,784,209,,,,240,240,240,,17,,,,,,,,,,,,290,291,292,,,,,,,',
'784,784,,,,240,240,784,,,,,,,,,,,,15,,17,,17,,15,,,17,,,17,,,,,,17,',
',,,,38,,,784,38,,,15,,38,,,,,,,,,,,,,,784,,,,,,,,,,,705,,784,,,,,,,',
',,,,,,710,,,,,,,,,,,,,,,,,,,,,,274,,15,,,,,,,,15,,,,,,,,,,,,,,,373,240',
'381,240,,,395,,,,,,,,,,,,,209,405,406,407,408,409,410,411,412,413,414',
'415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,,,,',
',,,240,,240,,,38,38,,,,,,,240,15,,,,790,240,,792,240,,,,799,,,38,,15',
',,,,,,,,,,,,,,,,,477,,,,,,781,781,488,,38,,,,,,,,,,,,38,38,,,,,,,,,',
',38,,,,,,,,,15,,38,38,,15,,,,,,,,,,38,851,,,854,,,,,,,,15,,,,,,,,,,',
',,240,,,,274,,,,,,,,,,,,,38,,,,,,,240,,395,563,381,38,,888,,781,,892',
',,894,,,,38,,,,,,,,,,,,,,,240,,,240,15,,240,781,781,,,,,,781,584,910',
',,,,,,,,,,,38,,38,,240,,921,38,,923,38,609,610,611,,,38,,29,,,,926,240',
'29,781,240,,,240,,,,,,,29,29,,,,29,29,29,240,781,,,,29,,,,,,,,,781,',
',,,,374,378,,,,,,29,29,,,29,29,,,29,,,,679,240,,,684,686,,,,,689,,,691',
',,,,15,,696,,15,,,240,,15,,240,,,,29,437,,438,29,29,29,29,29,,240,,',
',,,,,,,,240,,,,,,,,,,,,,,,,240,297,305,733,,,,,,,,,,,,,,240,,,341,,343',
'343,347,350,343,,240,,,,,,,,,,,,,,,,,,,,,,,,,29,29,29,29,29,,,29,29',
'29,,,,,240,778,,29,,,,,,,,684,686,689,,,,,,,,,,,,240,,,240,546,240,',
',,,,15,15,,,,,,,,,,,,,,,,29,,,,,,29,15,,29,240,29,,,,,29,,,297,,,,,',
',,,,,,240,,572,,,575,15,29,578,,,,,,778,,,585,15,15,,,,29,29,,849,,',
',15,240,,240,,,434,434,,,,15,15,,,,,,,,,,240,618,15,,575,452,,618,,',
',,,,,,,,,,,,,,,240,,,,29,,,,,,240,,,240,,,,,,15,,,,,240,,,,,,,15,,,',
'29,,680,,,,,,,15,,,,240,,,240,,,,,,,,,,704,,,,707,,,,240,,,,,,,,,,712',
'240,,,29,,,,15,,15,572,,,,15,,,15,,,29,,551,15,,,728,,,,,,,29,,,,297',
',,,,,374,,,,,,29,,,,29,,,,,29,,29,,,,,,,,565,,,,29,,434,,,551,29,,551',
',,,,,,565,565,,,,434,776,,,,,,,,,297,29,29,,,,,29,,,,,,,,,575,,,,,575',
',,,,,,,,,,,,,,,,,,297,,,,,,,,,,,29,,,819,,,,,,,,,,,,,,,,,,,,,835,,,',
',,,,,,,,,,,29,,,,,29,,,,,,,29,29,,434,853,,856,,,,,,,,,,565,,,434,,',
',,29,618,,,,,,,,29,,,,,551,,,,,,,,726,731,,,,,,726,29,726,,,,,572,,',
'575,,,29,29,,,,,,,897,297,,,29,,,,,,,,,29,,29,29,,,,,,,,909,,,912,29',
'29,,,,,,,,,,,,,,,,575,,,,,,,,,,,925,,,,,,,434,,,434,,,,29,434,,,,,,',
'551,551,,,29,,806,,,,810,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,29,,,,,,,,',
',,,,,,,,,,29,,29,,,,,29,,,29,,,,,434,29,,434,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,297,,,,,,,434,,,,434,,,434,,,,,,,,,,,726,,,,,,',
',,,,,,,,,,,,,,,,,434,,,,,726,,,,,,,,,,,,,434,,,434,,,,,,,,,,,,,434' ]
        racc_goto_table = arr = ::Array.new(2504, 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 = [
'16,17,5,59,59,59,16,43,49,49,82,48,21,85,86,29,29,29,32,55,23,23,15',
'15,9,48,15,80,142,3,35,16,46,11,2,59,81,81,60,53,53,13,13,79,79,148',
'29,63,63,63,52,52,6,144,141,141,141,34,34,34,61,6,16,61,44,2,49,15,15',
'15,15,85,140,108,140,127,127,33,33,127,49,68,9,25,130,75,76,31,31,31',
'130,36,77,58,58,65,148,58,16,47,58,47,40,57,57,57,16,64,41,54,36,36',
'38,83,84,37,27,87,25,56,56,20,25,25,88,11,25,20,89,90,91,92,93,11,94',
'57,33,33,95,20,20,96,97,98,20,20,20,99,100,56,21,101,20,20,20,102,103',
'104,105,106,142,46,107,67,110,144,111,25,25,25,25,17,17,17,20,20,114',
'17,20,20,115,116,20,20,29,117,140,118,16,119,120,121,122,125,126,49',
'26,82,128,129,18,131,132,133,134,16,135,136,137,139,14,12,7,143,4,147',
'1,,,20,,,2,20,20,20,20,20,,141,141,,22,141,,59,,,22,2,,59,,36,59,,,29',
',,,,,29,55,,29,,,,,25,25,22,22,22,16,60,,57,57,16,,55,15,15,,,130,63',
'33,33,,81,,63,,,63,,60,,,16,22,,,,,,2,44,,80,141,2,6,,,20,20,20,20,20',
',148,20,20,20,31,148,85,,,35,31,20,,31,35,22,86,9,,,57,,40,22,61,61',
'57,40,41,57,142,,,41,33,,,,32,,,21,56,33,,,,,49,,,,16,,,,,,,25,25,20',
',,,,,20,3,3,20,,20,,33,29,20,20,,53,,13,60,49,,,2,,,,52,,,56,,56,59',
',34,20,,,34,5,,22,21,,,,,59,,55,55,20,20,,,,,,22,,,,,20,23,20,,,,,,',
',,,,29,55,,,,,21,,55,148,,49,,34,,63,34,,,,49,,79,33,33,,,,,,3,,,20',
',,,16,,,29,16,,22,,,16,22,22,,,49,85,85,,,25,,,,,,,,20,148,,,33,85,22',
'2,,17,17,2,,,,17,2,,,,43,49,25,79,,,,,79,,,,,,22,,22,,,,,,,,82,,,,20',
',,,53,,13,,,59,,,,25,,52,,20,,25,,29,,,,,,,,,20,21,22,15,,,,,3,,,,,',
'3,,20,48,,60,20,,,,45,20,,20,,,45,,,,,29,,,,20,,,,49,,20,,,,55,16,16',
',,56,45,45,45,85,,,,,85,,17,,,,,20,20,49,,16,,20,,,,,,,,,,45,,20,45',
'59,,,,,57,,,,55,16,16,15,25,16,,,,2,,,55,57,,,,16,16,15,,20,,45,,,,',
'22,16,33,45,22,,,63,55,22,,2,16,16,,,,,,,,,,2,2,16,,,,43,85,,20,,,2',
',20,85,,,,,,20,20,2,2,,,,,,,,,,,,,56,56,,57,,,,16,20,,,,22,,21,25,,20',
',16,,,,16,,45,,,,,,25,16,,20,20,62,,20,,,2,45,,,,59,85,29,,20,20,,2',
'16,16,,,,49,,16,20,,,,2,,,,,20,,20,20,16,,16,,,,56,16,,,16,20,20,,,',
'16,,,,22,22,,,,16,,,45,,,,45,45,2,56,2,,,,20,2,,22,22,16,,,,,,,,20,',
'45,,,16,,,,,,,20,56,56,,20,22,22,,56,22,,,,20,,,,,45,,45,22,22,,,,,',
',,,,,22,,20,20,20,,,,,20,,22,22,,56,,,,,,,,,20,22,20,,,,,20,45,,20,56',
',,,,20,,,,,,,,56,20,,,,,22,,,,62,,,,,,,,,22,,20,,,,,,,,,,22,,,20,22',
'28,,,,28,28,28,,22,,,,,,,,,,,,28,28,28,,,,,,,,22,22,,,,28,28,22,,,,',
',,,,,,,19,,22,,22,,19,,,22,,,22,,,,,,22,,,,,,45,,,22,45,,,19,,45,,,',
',,,,,,,,,,22,,,,,,,,,,,62,,22,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,45',
',19,,,,,,,,19,,,,,,,,,,,,,,,28,28,28,28,,,28,,,,,,,,,,,,,28,28,28,28',
'28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28',
',,,,,,,28,,28,,,45,45,,,,,,,28,19,,,,62,28,,62,28,,,,62,,,45,,19,,,',
',,,,,,,,,,,,,,28,,,,,,45,45,28,,45,,,,,,,,,,,,45,45,,,,,,,,,,,45,,,',
',,,,,19,,45,45,,19,,,,,,,,,,45,62,,,62,,,,,,,,19,,,,,,,,,,,,,28,,,,45',
',,,,,,,,,,,,45,,,,,,,28,,28,28,28,45,,62,,45,,62,,,62,,,,45,,,,,,,,',
',,,,,,28,,,28,19,,28,45,45,,,,,,45,28,62,,,,,,,,,,,,45,,45,,28,,62,45',
',62,45,28,28,28,,,45,,39,,,,62,28,39,45,28,,,28,,,,,,,39,39,,,,39,39',
'39,28,45,,,,39,,,,,,,,,45,,,,,,24,24,,,,,,39,39,,,39,39,,,39,,,,28,28',
',,28,28,,,,,28,,,28,,,,,19,,28,,19,,,28,,19,,28,,,,39,24,,24,39,39,39',
'39,39,,28,,,,,,,,,,,28,,,,,,,,,,,,,,,,28,10,10,28,,,,,,,,,,,,,,28,,',
'10,,10,10,10,10,10,,28,,,,,,,,,,,,,,,,,,,,,,,,,39,39,39,39,39,,,39,39',
'39,,,,,28,28,,39,,,,,,,,28,28,28,,,,,,,,,,,,28,,,28,24,28,,,,,,19,19',
',,,,,,,,,,,,,,,39,,,,,,39,19,,39,28,39,,,,,39,,,10,,,,,,,,,,,,28,,24',
',,24,19,39,24,,,,,,28,,,24,19,19,,,,39,39,,28,,,,19,28,,28,,,10,10,',
',,19,19,,,,,,,,,,28,24,19,,24,10,,24,,,,,,,,,,,,,,,,,,28,,,,39,,,,,',
'28,,,28,,,,,,19,,,,,28,,,,,,,19,,,,39,,24,,,,,,,19,,,,28,,,28,,,,,,',
',,,24,,,,24,,,,28,,,,,,,,,,24,28,,,39,,,,19,,19,24,,,,19,,,19,,,39,',
'10,19,,,24,,,,,,,39,,,,10,,,,,,24,,,,,,39,,,,39,,,,,39,,39,,,,,,,,10',
',,,39,,10,,,10,39,,10,,,,,,,10,10,,,,10,24,,,,,,,,,10,39,39,,,,,39,',
',,,,,,,24,,,,,24,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,39,,,24,,,,,,,,,,,,',
',,,,,,,,24,,,,,,,,,,,,,,,39,,,,,39,,,,,,,39,39,,10,24,,24,,,,,,,,,,10',
',,10,,,,,39,24,,,,,,,,39,,,,,10,,,,,,,,10,10,,,,,,10,39,10,,,,,24,,',
'24,,,39,39,,,,,,,24,10,,,39,,,,,,,,,39,,39,39,,,,,,,,24,,,24,39,39,',
',,,,,,,,,,,,,,24,,,,,,,,,,,24,,,,,,,10,,,10,,,,39,10,,,,,,,10,10,,,39',
',10,,,,10,,,,,,,39,,,,,,,,,,,,,,,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,39,,39',
',,,,39,,,39,,,,,10,39,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,10,,,,,,,10,,,,10,,,10,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,,,,,10,,,,',
'10,,,,,,,,,,,,,10,,,10,,,,,,,,,,,,,10' ]
        racc_goto_check = arr = ::Array.new(2504, 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,   216,    32,  -266,   214,  -477,  -561,  -513,   nil,    19,
  1578,    25,   206,    32,   200,   -37,    -2,   -20,   136,  1087,
   119,   -44,   230,  -171,  1353,    63,    86,   105,  1019,   -10,
   nil,    62,  -245,  -118,    28,  -226,  -340,  -329,  -596,  1496,
    69,    75,   nil,   -27,    29,   619,  -480,  -224,   -56,    -1,
   nil,   nil,    41,    30,  -259,   -25,    85,    78,  -206,   -22,
     8,  -380,   577,    22,  -341,  -162,   nil,  -285,  -509,   nil,
   nil,   nil,   nil,   nil,   nil,    18,    29,    34,   nil,  -266,
  -593,  -463,  -304,    49,  -402,     8,  -505,    50,  -211,    74,
  -167,    69,  -492,    70,  -493,  -371,  -679,    77,  -501,  -177,
  -500,  -673,    89,  -362,  -177,  -362,  -609,  -404,  -493,   nil,
   -73,  -402,   nil,   nil,   -84,  -411,   -80,  -407,  -444,  -678,
  -314,  -423,  -537,   nil,   nil,   120,   119,    -2,   119,  -147,
  -256,   121,  -470,  -324,  -324,   125,  -439,  -443,   nil,  -550,
  -687,  -599,  -491,  -546,  -708,   nil,   nil,  -123,  -391 ]

racc_goto_default = [
   nil,   nil,   479,   nil,   nil,   nil,   735,   nil,     5,   nil,
     6,     7,   315,   nil,   nil,   nil,   205,    19,    14,   206,
   289,   nil,   204,   nil,   247,    18,   nil,   nil,    22,    23,
    24,   nil,    28,   605,   nil,   nil,   nil,   nil,   nil,   280,
    32,   nil,    34,    37,    36,   202,   513,   nil,   117,   387,
   116,   119,    71,    72,   nil,   nil,    45,   299,   nil,   300,
   552,   553,   432,   571,   nil,   nil,   257,   nil,   nil,    46,
    47,    48,    49,    50,    51,    52,   nil,   258,    58,   nil,
   nil,   nil,   nil,   nil,   nil,   495,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   238,
   nil,   nil,   391,   259,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    70,    73,    74,   nil,   nil,   nil,   nil,
   530,   nil,   nil,   nil,   nil,   nil,   nil,   652,   653,   654,
   655,   nil,   831,   662,   663,   666,   669,   nil,   251 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 136, :_reduce_1,
  2, 133, :_reduce_2,
  4, 135, :_reduce_3,
  2, 134, :_reduce_4,
  1, 140, :_reduce_none,
  1, 140, :_reduce_none,
  3, 140, :_reduce_7,
  2, 140, :_reduce_8,
  0, 158, :_reduce_9,
  4, 143, :_reduce_10,
  3, 143, :_reduce_11,
  3, 143, :_reduce_12,
  3, 143, :_reduce_13,
  2, 143, :_reduce_14,
  3, 143, :_reduce_15,
  3, 143, :_reduce_16,
  3, 143, :_reduce_17,
  3, 143, :_reduce_18,
  3, 143, :_reduce_19,
  0, 159, :_reduce_20,
  5, 143, :_reduce_21,
  4, 143, :_reduce_22,
  3, 143, :_reduce_23,
  3, 143, :_reduce_24,
  3, 143, :_reduce_25,
  6, 143, :_reduce_26,
  5, 143, :_reduce_27,
  5, 143, :_reduce_28,
  5, 143, :_reduce_29,
  3, 143, :_reduce_30,
  3, 143, :_reduce_31,
  3, 143, :_reduce_32,
  3, 143, :_reduce_33,
  1, 143, :_reduce_none,
  1, 157, :_reduce_none,
  3, 157, :_reduce_36,
  3, 157, :_reduce_37,
  2, 157, :_reduce_38,
  2, 157, :_reduce_39,
  1, 157, :_reduce_none,
  1, 147, :_reduce_41,
  1, 149, :_reduce_none,
  1, 149, :_reduce_none,
  2, 149, :_reduce_44,
  2, 149, :_reduce_45,
  2, 149, :_reduce_46,
  1, 162, :_reduce_none,
  4, 162, :_reduce_48,
  4, 162, :_reduce_49,
  0, 169, :_reduce_50,
  0, 170, :_reduce_51,
  6, 167, :_reduce_52,
  2, 161, :_reduce_53,
  3, 161, :_reduce_54,
  4, 161, :_reduce_55,
  5, 161, :_reduce_56,
  4, 161, :_reduce_57,
  5, 161, :_reduce_58,
  2, 161, :_reduce_59,
  2, 161, :_reduce_60,
  1, 150, :_reduce_none,
  3, 150, :_reduce_62,
  1, 173, :_reduce_none,
  3, 173, :_reduce_64,
  1, 172, :_reduce_65,
  2, 172, :_reduce_66,
  3, 172, :_reduce_67,
  2, 172, :_reduce_68,
  2, 172, :_reduce_69,
  1, 172, :_reduce_70,
  1, 175, :_reduce_none,
  3, 175, :_reduce_72,
  2, 174, :_reduce_73,
  3, 174, :_reduce_74,
  1, 176, :_reduce_75,
  4, 176, :_reduce_76,
  3, 176, :_reduce_77,
  3, 176, :_reduce_78,
  3, 176, :_reduce_79,
  3, 176, :_reduce_80,
  2, 176, :_reduce_81,
  1, 176, :_reduce_82,
  1, 148, :_reduce_83,
  4, 148, :_reduce_84,
  3, 148, :_reduce_85,
  3, 148, :_reduce_86,
  3, 148, :_reduce_87,
  3, 148, :_reduce_88,
  2, 148, :_reduce_89,
  1, 148, :_reduce_90,
  1, 178, :_reduce_91,
  1, 178, :_reduce_none,
  2, 179, :_reduce_93,
  1, 179, :_reduce_94,
  3, 179, :_reduce_95,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_99,
  1, 180, :_reduce_100,
  1, 183, :_reduce_none,
  1, 183, :_reduce_none,
  1, 145, :_reduce_103,
  1, 145, :_reduce_none,
  1, 146, :_reduce_105,
  0, 186, :_reduce_106,
  4, 146, :_reduce_107,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 181, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  1, 182, :_reduce_none,
  3, 160, :_reduce_174,
  5, 160, :_reduce_175,
  3, 160, :_reduce_176,
  6, 160, :_reduce_177,
  5, 160, :_reduce_178,
  5, 160, :_reduce_179,
  5, 160, :_reduce_180,
  5, 160, :_reduce_181,
  4, 160, :_reduce_182,
  3, 160, :_reduce_183,
  3, 160, :_reduce_184,
  3, 160, :_reduce_185,
  3, 160, :_reduce_186,
  3, 160, :_reduce_187,
  3, 160, :_reduce_188,
  3, 160, :_reduce_189,
  3, 160, :_reduce_190,
  3, 160, :_reduce_191,
  4, 160, :_reduce_192,
  4, 160, :_reduce_193,
  2, 160, :_reduce_194,
  2, 160, :_reduce_195,
  3, 160, :_reduce_196,
  3, 160, :_reduce_197,
  3, 160, :_reduce_198,
  3, 160, :_reduce_199,
  3, 160, :_reduce_200,
  3, 160, :_reduce_201,
  3, 160, :_reduce_202,
  3, 160, :_reduce_203,
  3, 160, :_reduce_204,
  3, 160, :_reduce_205,
  3, 160, :_reduce_206,
  3, 160, :_reduce_207,
  3, 160, :_reduce_208,
  2, 160, :_reduce_209,
  2, 160, :_reduce_210,
  3, 160, :_reduce_211,
  3, 160, :_reduce_212,
  3, 160, :_reduce_213,
  3, 160, :_reduce_214,
  3, 160, :_reduce_215,
  5, 160, :_reduce_216,
  1, 160, :_reduce_none,
  1, 156, :_reduce_218,
  1, 153, :_reduce_none,
  2, 153, :_reduce_220,
  2, 153, :_reduce_221,
  5, 153, :_reduce_222,
  2, 153, :_reduce_223,
  3, 153, :_reduce_224,
  3, 192, :_reduce_225,
  4, 192, :_reduce_226,
  4, 192, :_reduce_227,
  6, 192, :_reduce_228,
  1, 193, :_reduce_none,
  1, 193, :_reduce_none,
  1, 163, :_reduce_231,
  2, 163, :_reduce_232,
  5, 163, :_reduce_233,
  2, 163, :_reduce_234,
  5, 163, :_reduce_235,
  4, 163, :_reduce_236,
  7, 163, :_reduce_237,
  3, 163, :_reduce_238,
  1, 163, :_reduce_none,
  4, 196, :_reduce_240,
  3, 196, :_reduce_241,
  5, 196, :_reduce_242,
  7, 196, :_reduce_243,
  2, 196, :_reduce_244,
  5, 196, :_reduce_245,
  4, 196, :_reduce_246,
  6, 196, :_reduce_247,
  7, 196, :_reduce_248,
  9, 196, :_reduce_249,
  3, 196, :_reduce_250,
  1, 196, :_reduce_none,
  0, 198, :_reduce_252,
  2, 166, :_reduce_253,
  1, 197, :_reduce_none,
  0, 199, :_reduce_255,
  3, 197, :_reduce_256,
  0, 200, :_reduce_257,
  4, 197, :_reduce_258,
  2, 195, :_reduce_259,
  2, 194, :_reduce_260,
  1, 194, :_reduce_none,
  1, 189, :_reduce_262,
  3, 189, :_reduce_263,
  3, 155, :_reduce_264,
  4, 155, :_reduce_265,
  2, 155, :_reduce_266,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_none,
  1, 188, :_reduce_275,
  0, 221, :_reduce_276,
  4, 188, :_reduce_277,
  0, 222, :_reduce_278,
  5, 188, :_reduce_279,
  3, 188, :_reduce_280,
  3, 188, :_reduce_281,
  2, 188, :_reduce_282,
  4, 188, :_reduce_283,
  3, 188, :_reduce_284,
  3, 188, :_reduce_285,
  1, 188, :_reduce_286,
  4, 188, :_reduce_287,
  3, 188, :_reduce_288,
  1, 188, :_reduce_289,
  5, 188, :_reduce_290,
  2, 188, :_reduce_291,
  1, 188, :_reduce_none,
  2, 188, :_reduce_293,
  6, 188, :_reduce_294,
  6, 188, :_reduce_295,
  0, 223, :_reduce_296,
  0, 224, :_reduce_297,
  7, 188, :_reduce_298,
  0, 225, :_reduce_299,
  0, 226, :_reduce_300,
  7, 188, :_reduce_301,
  5, 188, :_reduce_302,
  4, 188, :_reduce_303,
  5, 188, :_reduce_304,
  0, 227, :_reduce_305,
  0, 228, :_reduce_306,
  9, 188, :_reduce_307,
  0, 229, :_reduce_308,
  0, 230, :_reduce_309,
  7, 188, :_reduce_310,
  0, 231, :_reduce_311,
  0, 232, :_reduce_312,
  0, 233, :_reduce_313,
  9, 188, :_reduce_314,
  0, 234, :_reduce_315,
  0, 235, :_reduce_316,
  6, 188, :_reduce_317,
  0, 236, :_reduce_318,
  6, 188, :_reduce_319,
  0, 237, :_reduce_320,
  0, 238, :_reduce_321,
  9, 188, :_reduce_322,
  1, 188, :_reduce_323,
  1, 188, :_reduce_324,
  1, 188, :_reduce_325,
  1, 188, :_reduce_326,
  1, 152, :_reduce_327,
  1, 211, :_reduce_none,
  1, 211, :_reduce_none,
  1, 211, :_reduce_none,
  2, 211, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 212, :_reduce_none,
  5, 212, :_reduce_336,
  1, 138, :_reduce_none,
  2, 138, :_reduce_338,
  1, 215, :_reduce_none,
  1, 215, :_reduce_340,
  1, 239, :_reduce_341,
  3, 239, :_reduce_342,
  1, 240, :_reduce_343,
  2, 240, :_reduce_344,
  4, 240, :_reduce_345,
  7, 240, :_reduce_346,
  6, 240, :_reduce_347,
  4, 240, :_reduce_348,
  3, 240, :_reduce_349,
  5, 240, :_reduce_350,
  4, 240, :_reduce_351,
  2, 240, :_reduce_352,
  1, 240, :_reduce_353,
  2, 240, :_reduce_354,
  1, 168, :_reduce_355,
  2, 168, :_reduce_356,
  1, 168, :_reduce_357,
  3, 168, :_reduce_358,
  0, 242, :_reduce_359,
  0, 243, :_reduce_360,
  6, 241, :_reduce_361,
  2, 164, :_reduce_362,
  4, 164, :_reduce_363,
  4, 164, :_reduce_364,
  0, 245, :_reduce_365,
  3, 210, :_reduce_366,
  4, 210, :_reduce_367,
  4, 210, :_reduce_368,
  3, 210, :_reduce_369,
  2, 210, :_reduce_370,
  1, 210, :_reduce_371,
  0, 246, :_reduce_372,
  0, 247, :_reduce_373,
  6, 209, :_reduce_374,
  0, 248, :_reduce_375,
  0, 249, :_reduce_376,
  6, 209, :_reduce_377,
  0, 252, :_reduce_378,
  6, 214, :_reduce_379,
  1, 250, :_reduce_none,
  4, 250, :_reduce_381,
  2, 250, :_reduce_382,
  1, 251, :_reduce_none,
  1, 251, :_reduce_none,
  6, 137, :_reduce_385,
  0, 137, :_reduce_386,
  1, 253, :_reduce_387,
  1, 253, :_reduce_none,
  1, 253, :_reduce_none,
  2, 254, :_reduce_390,
  1, 254, :_reduce_none,
  2, 139, :_reduce_392,
  1, 139, :_reduce_none,
  1, 201, :_reduce_394,
  1, 201, :_reduce_395,
  1, 201, :_reduce_none,
  1, 202, :_reduce_397,
  1, 256, :_reduce_none,
  2, 256, :_reduce_399,
  3, 257, :_reduce_400,
  1, 257, :_reduce_401,
  3, 203, :_reduce_402,
  3, 204, :_reduce_403,
  3, 205, :_reduce_404,
  3, 205, :_reduce_405,
  1, 260, :_reduce_406,
  3, 260, :_reduce_407,
  1, 261, :_reduce_none,
  2, 261, :_reduce_409,
  3, 206, :_reduce_410,
  3, 206, :_reduce_411,
  1, 263, :_reduce_412,
  3, 263, :_reduce_413,
  1, 258, :_reduce_414,
  2, 258, :_reduce_415,
  1, 259, :_reduce_416,
  2, 259, :_reduce_417,
  1, 262, :_reduce_418,
  0, 265, :_reduce_419,
  3, 262, :_reduce_420,
  0, 266, :_reduce_421,
  4, 262, :_reduce_422,
  1, 264, :_reduce_423,
  1, 264, :_reduce_424,
  1, 264, :_reduce_425,
  1, 264, :_reduce_none,
  2, 184, :_reduce_427,
  1, 184, :_reduce_428,
  1, 267, :_reduce_none,
  1, 267, :_reduce_none,
  1, 267, :_reduce_none,
  1, 267, :_reduce_none,
  3, 185, :_reduce_433,
  1, 255, :_reduce_none,
  1, 255, :_reduce_none,
  2, 255, :_reduce_436,
  2, 255, :_reduce_437,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_443,
  1, 177, :_reduce_444,
  1, 177, :_reduce_445,
  1, 177, :_reduce_446,
  1, 177, :_reduce_447,
  1, 177, :_reduce_448,
  1, 207, :_reduce_449,
  1, 151, :_reduce_450,
  1, 154, :_reduce_451,
  1, 154, :_reduce_452,
  1, 216, :_reduce_453,
  0, 268, :_reduce_454,
  4, 216, :_reduce_455,
  2, 216, :_reduce_456,
  4, 218, :_reduce_457,
  2, 218, :_reduce_458,
  6, 269, :_reduce_459,
  4, 269, :_reduce_460,
  4, 269, :_reduce_461,
  2, 269, :_reduce_462,
  4, 269, :_reduce_463,
  2, 269, :_reduce_464,
  2, 269, :_reduce_465,
  1, 269, :_reduce_466,
  0, 269, :_reduce_467,
  1, 275, :_reduce_468,
  1, 275, :_reduce_469,
  1, 275, :_reduce_470,
  1, 275, :_reduce_471,
  1, 275, :_reduce_472,
  1, 270, :_reduce_473,
  3, 270, :_reduce_474,
  3, 276, :_reduce_475,
  1, 271, :_reduce_476,
  3, 271, :_reduce_477,
  1, 277, :_reduce_none,
  1, 277, :_reduce_none,
  2, 272, :_reduce_480,
  1, 272, :_reduce_481,
  1, 278, :_reduce_none,
  1, 278, :_reduce_none,
  2, 274, :_reduce_484,
  2, 273, :_reduce_485,
  0, 273, :_reduce_486,
  1, 219, :_reduce_none,
  0, 279, :_reduce_488,
  5, 219, :_reduce_489,
  1, 208, :_reduce_490,
  2, 208, :_reduce_491,
  2, 208, :_reduce_492,
  1, 191, :_reduce_none,
  3, 191, :_reduce_494,
  3, 280, :_reduce_495,
  1, 171, :_reduce_none,
  1, 171, :_reduce_none,
  1, 171, :_reduce_none,
  1, 165, :_reduce_none,
  1, 165, :_reduce_none,
  1, 165, :_reduce_none,
  1, 165, :_reduce_none,
  1, 244, :_reduce_none,
  1, 244, :_reduce_none,
  1, 244, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  0, 141, :_reduce_none,
  1, 141, :_reduce_none,
  0, 187, :_reduce_none,
  1, 187, :_reduce_none,
  0, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 190, :_reduce_none,
  1, 217, :_reduce_515,
  1, 217, :_reduce_none,
  1, 144, :_reduce_none,
  2, 144, :_reduce_518,
  0, 142, :_reduce_519 ]

racc_reduce_n = 520

racc_shift_n = 927

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,
  :kRETURN => 28,
  :kYIELD => 29,
  :kSUPER => 30,
  :kSELF => 31,
  :kNIL => 32,
  :kTRUE => 33,
  :kFALSE => 34,
  :kAND => 35,
  :kOR => 36,
  :kNOT => 37,
  :kIF_MOD => 38,
  :kUNLESS_MOD => 39,
  :kWHILE_MOD => 40,
  :kUNTIL_MOD => 41,
  :kRESCUE_MOD => 42,
  :kALIAS => 43,
  :kDEFINED => 44,
  :klBEGIN => 45,
  :klEND => 46,
  :k__LINE__ => 47,
  :k__FILE__ => 48,
  :tIDENTIFIER => 49,
  :tFID => 50,
  :tGVAR => 51,
  :tIVAR => 52,
  :tCONSTANT => 53,
  :tCVAR => 54,
  :tNTH_REF => 55,
  :tBACK_REF => 56,
  :tSTRING_CONTENT => 57,
  :tINTEGER => 58,
  :tFLOAT => 59,
  :tREGEXP_END => 60,
  :tUPLUS => 61,
  :tUMINUS => 62,
  :tUMINUS_NUM => 63,
  :tPOW => 64,
  :tCMP => 65,
  :tEQ => 66,
  :tEQQ => 67,
  :tNEQ => 68,
  :tGEQ => 69,
  :tLEQ => 70,
  :tANDOP => 71,
  :tOROP => 72,
  :tMATCH => 73,
  :tNMATCH => 74,
  :tDOT => 75,
  :tDOT2 => 76,
  :tDOT3 => 77,
  :tAREF => 78,
  :tASET => 79,
  :tLSHFT => 80,
  :tRSHFT => 81,
  :tCOLON2 => 82,
  :tCOLON3 => 83,
  :tOP_ASGN => 84,
  :tASSOC => 85,
  :tLPAREN => 86,
  :tLPAREN2 => 87,
  :tRPAREN => 88,
  :tLPAREN_ARG => 89,
  :tLBRACK => 90,
  :tLBRACK2 => 91,
  :tRBRACK => 92,
  :tLBRACE => 93,
  :tLBRACE_ARG => 94,
  :tSTAR => 95,
  :tSTAR2 => 96,
  :tAMPER => 97,
  :tAMPER2 => 98,
  :tTILDE => 99,
  :tPERCENT => 100,
  :tDIVIDE => 101,
  :tPLUS => 102,
  :tMINUS => 103,
  :tLT => 104,
  :tGT => 105,
  :tPIPE => 106,
  :tBANG => 107,
  :tCARET => 108,
  :tLCURLY => 109,
  :tRCURLY => 110,
  :tBACK_REF2 => 111,
  :tSYMBEG => 112,
  :tSTRING_BEG => 113,
  :tXSTRING_BEG => 114,
  :tREGEXP_BEG => 115,
  :tWORDS_BEG => 116,
  :tQWORDS_BEG => 117,
  :tSTRING_DBEG => 118,
  :tSTRING_DVAR => 119,
  :tSTRING_END => 120,
  :tSTRING => 121,
  :tSYMBOL => 122,
  :tNL => 123,
  :tEH => 124,
  :tCOLON => 125,
  :tCOMMA => 126,
  :tSPACE => 127,
  :tSEMI => 128,
  :tLAST_TOKEN => 129,
  :tEQL => 130,
  :tLOWEST => 131 }

racc_nt_base = 132

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",
  "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__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tLBRACK2",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAST_TOKEN",
  "tEQL",
  "tLOWEST",
  "$start",
  "program",
  "compstmt",
  "bodystmt",
  "@1",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "opt_terms",
  "none",
  "stmt",
  "terms",
  "fitem",
  "undef_list",
  "expr_value",
  "lhs",
  "command_call",
  "mlhs",
  "var_lhs",
  "primary_value",
  "aref_args",
  "backref",
  "mrhs",
  "arg_value",
  "expr",
  "@2",
  "@3",
  "arg",
  "command",
  "block_command",
  "call_args",
  "block_call",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_var",
  "@4",
  "@5",
  "operation",
  "mlhs_basic",
  "mlhs_entry",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "variable",
  "cname",
  "cpath",
  "fname",
  "op",
  "reswords",
  "fsym",
  "symbol",
  "dsym",
  "@6",
  "opt_nl",
  "primary",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "call_args2",
  "open_args",
  "@7",
  "@8",
  "@9",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "then",
  "if_tail",
  "do",
  "case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "dot_or_colon",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "@27",
  "block_par",
  "block_var",
  "do_block",
  "@28",
  "@29",
  "operation3",
  "@30",
  "@31",
  "@32",
  "@33",
  "@34",
  "when_args",
  "cases",
  "@35",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "word_list",
  "word",
  "string_content",
  "qword_list",
  "string_dvar",
  "@36",
  "@37",
  "sym",
  "@38",
  "f_args",
  "f_arg",
  "f_optarg",
  "f_rest_arg",
  "opt_f_block_arg",
  "f_block_arg",
  "f_norm_arg",
  "f_opt",
  "restarg_mark",
  "blkarg_mark",
  "@39",
  "assoc" ]

Racc_debug_parser = false

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

# reduce 0 omitted

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

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

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

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

# reduce 5 omitted

# reduce 6 omitted

def _reduce_7(val, _values, result)
                      result = block_append val[0], val[2]
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_30(val, _values, result)
                      backref_assign_error val[0]
                    
    result
end

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

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

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

# reduce 34 omitted

# reduce 35 omitted

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

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

def _reduce_38(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

def _reduce_39(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

# reduce 40 omitted

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

# reduce 42 omitted

# reduce 43 omitted

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

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

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

# reduce 47 omitted

def _reduce_48(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

def _reduce_49(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

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

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

def _reduce_52(val, _values, result)
                      result = new_iter nil, val[2], val[4]
                      self.env.unextend
                    
    result
end

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

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

                      if val[2] then
                        block_dup_check result, val[2]

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

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

def _reduce_56(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                      raise "no2"

                      if val[4] then
                        block_dup_check result, val[4]

                        val[2] << result
                        result = val[2]
                      end
                    
    result
end

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

def _reduce_58(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                      raise "no3"

                      if val[4] then
                        block_dup_check result, val[4]

                        val[2] << result
                        result = val[2]
                      end
                    
    result
end

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

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

# reduce 61 omitted

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

# reduce 63 omitted

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

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

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

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

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

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

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

# reduce 71 omitted

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

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

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

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

def _reduce_76(val, _values, result)
                      result = aryset val[0], val[2]
                    
    result
end

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

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

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

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

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

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

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

def _reduce_82(val, _values, result)
                      backref_assign_error val[0]
                    
    result
end

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

def _reduce_84(val, _values, result)
                      result = aryset val[0], val[2]
                    
    result
end

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

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

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

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

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

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

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

def _reduce_90(val, _values, result)
                      backref_assign_error val[0]
                    
    result
end

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

# reduce 92 omitted

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

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

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

# reduce 96 omitted

# reduce 97 omitted

# reduce 98 omitted

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

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

# reduce 101 omitted

# reduce 102 omitted

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

# reduce 104 omitted

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

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

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

# reduce 108 omitted

# reduce 109 omitted

# reduce 110 omitted

# reduce 111 omitted

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

# reduce 116 omitted

# reduce 117 omitted

# reduce 118 omitted

# reduce 119 omitted

# reduce 120 omitted

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

def _reduce_174(val, _values, result)
                      result = node_assign val[0], val[2]
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_183(val, _values, result)
                      backref_assign_error val[0]
                    
    result
end

def _reduce_184(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_185(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_186(val, _values, result)
                      result = new_call val[0], :+, argl(val[2])
                    
    result
end

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

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

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

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

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

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

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

def _reduce_194(val, _values, result)
                      if val[1][0] == :lit then
                        result = val[1]
                      else
                        result = new_call val[1], :"+@"
                      end
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

def _reduce_206(val, _values, result)
                      val[0] = value_expr val[0] # TODO: port call_op and clean these
                      val[2] = value_expr val[2]
                      result = s(:not, new_call(val[0], :"==", argl(val[2])))
                    
    result
end

def _reduce_207(val, _values, result)
                      result = get_match_node val[0], val[2]
                    
    result
end

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

def _reduce_209(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

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

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

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

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

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

# reduce 217 omitted

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

# reduce 219 omitted

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

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

def _reduce_222(val, _values, result)
                      result = arg_concat val[0], val[3]
                    
    result
end

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

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

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

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

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

def _reduce_228(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = val[1].add val[3]
                    
    result
end

# reduce 229 omitted

# reduce 230 omitted

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

def _reduce_232(val, _values, result)
                      result = arg_blk_pass val[0], val[1]
                    
    result
end

def _reduce_233(val, _values, result)
                      result = arg_concat val[0], val[3]
                      result = arg_blk_pass result, val[4]
                    
    result
end

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

def _reduce_235(val, _values, result)
                      result = arg_concat s(:array, s(:hash, *val[0].values)), val[3]
                      result = arg_blk_pass result, val[4]
                    
    result
end

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

def _reduce_237(val, _values, result)
                      val[0] << s(:hash, *val[2].values)
                      result = arg_concat val[0], val[5]
                      result = arg_blk_pass result, val[6]
                    
    result
end

def _reduce_238(val, _values, result)
                      result = arg_blk_pass s(:splat, val[1]), val[2]
                    
    result
end

# reduce 239 omitted

def _reduce_240(val, _values, result)
                      args = list_prepend val[0], val[2]
                      result = arg_blk_pass args, val[3]
                    
    result
end

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

def _reduce_242(val, _values, result)
                      result = arg_concat s(:array, val[0]), val[3]
                      result = arg_blk_pass result, val[4]
                    
    result
end

def _reduce_243(val, _values, result)
                      result = arg_concat s(:array, val[0], s(:hash, *val[2].values)), val[5]
                      result = arg_blk_pass result, val[6]
                    
    result
end

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

def _reduce_245(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values), val[3])
                      result = arg_blk_pass result, val[4]
                    
    result
end

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

def _reduce_247(val, _values, result)
                      arg_value, _, args, _, assocs, opt_block = val
                      result = s(:array, arg_value).add_all(args)
                      result.add(s(:hash, *assocs.sexp_body))
                      result = arg_blk_pass result, opt_block
                    
    result
end

def _reduce_248(val, _values, result)
                      result = arg_concat s(:array, val[0]).add(s(:hash, *val[2].sexp_body)), val[5]
                      result = arg_blk_pass result, val[6]
                    
    result
end

def _reduce_249(val, _values, result)
                      result = arg_concat s(:array, val[0]).add_all(val[2]).add(s(:hash, *val[4].values)), val[7]
                      result = arg_blk_pass result, val[8]
                    
    result
end

def _reduce_250(val, _values, result)
                      result = arg_blk_pass s(:splat, val[1]), val[2]
                    
    result
end

# reduce 251 omitted

def _reduce_252(val, _values, result)
                      result = lexer.cmdarg.stack.dup
                      lexer.cmdarg.push true
                    
    result
end

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

# reduce 254 omitted

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

def _reduce_256(val, _values, result)
                      warning "don't put space before argument parentheses"
                      result = nil
                    
    result
end

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

def _reduce_258(val, _values, result)
                      warning "don't put space before argument parentheses"
                      result = val[1]
                    
    result
end

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

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

# reduce 261 omitted

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

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

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

def _reduce_265(val, _values, result)
                      result = arg_concat val[0], val[3]
                    
    result
end

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

# reduce 267 omitted

# reduce 268 omitted

# reduce 269 omitted

# reduce 270 omitted

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 292 omitted

def _reduce_293(val, _values, result)
                      call, iter = val[0], val[1]
                      block_dup_check call, iter

                      iter.insert 1, call
                      result = iter
                    
    result
end

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

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

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

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

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

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

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

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

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

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

def _reduce_304(val, _values, result)
                      (_, line), _, _, elsebody, _ = val
                      result = new_case nil, elsebody, line
                    
    result
end

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

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

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

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

def _reduce_309(val, _values, result)
                      self.comments.push self.lexer.comments
                      if (in_def || in_single > 0) then
                        yyerror "class definition in method body"
                      end
                      self.env.extend
                    
    result
end

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

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

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

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

def _reduce_316(val, _values, result)
                      self.comments.push self.lexer.comments
                      yyerror "module definition in method body" if
                        in_def or in_single > 0

                      self.env.extend
                    
    result
end

def _reduce_317(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_318(val, _values, result)
                      result = self.in_def

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

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

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

def _reduce_322(val, _values, result)
                      result = new_defs val

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

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

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

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

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

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

# reduce 328 omitted

# reduce 329 omitted

# reduce 330 omitted

# reduce 331 omitted

# reduce 332 omitted

# reduce 333 omitted

# reduce 334 omitted

# reduce 335 omitted

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

# reduce 337 omitted

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

# reduce 339 omitted

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

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

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

def _reduce_343(val, _values, result)
                      result = block_var18 val[0], nil, nil
                    
    result
end

def _reduce_344(val, _values, result)
                      result = block_var18 val[0], nil, nil
                    
    result
end

def _reduce_345(val, _values, result)
                      result = block_var18 val[0], nil, val[3]
                    
    result
end

def _reduce_346(val, _values, result)
                      result = block_var18 val[0], val[3], val[6]
                    
    result
end

def _reduce_347(val, _values, result)
                      result = block_var18 val[0], s(:splat), val[5]
                    
    result
end

def _reduce_348(val, _values, result)
                      result = block_var18 val[0], val[3], nil
                    
    result
end

def _reduce_349(val, _values, result)
                      result = block_var18 val[0], s(:splat), nil
                    
    result
end

def _reduce_350(val, _values, result)
                      result = block_var18 nil, val[1], val[4]
                    
    result
end

def _reduce_351(val, _values, result)
                      result = block_var18 nil, s(:splat), val[3]
                    
    result
end

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

def _reduce_353(val, _values, result)
                      result = block_var18 nil, s(:splat), nil
                    
    result
end

def _reduce_354(val, _values, result)
                      result = block_var18 nil, nil, val[1]
                    
    result
end

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

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

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

def _reduce_358(val, _values, result)
                      result = val[1]
                      self.lexer.command_start = true
                    
    result
end

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

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

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

                      self.env.unextend
                    
    result
end

def _reduce_362(val, _values, result)
                      block_dup_check val[0], val[1]

                      result = val[1]
                      result.insert 1, val[0]
                    
    result
end

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

def _reduce_364(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

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

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

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

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

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

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

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

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

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

def _reduce_374(val, _values, result)
                      # REFACTOR
                      args   = val[2]
                      body   = val[4]
                      result = new_iter nil, args, body
                      self.env.unextend
                      result.line = val[1]
                    
    result
end

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

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

def _reduce_377(val, _values, result)
                      args = val[2]
                      body = val[4]
                      result = new_iter nil, args, body
                      self.env.unextend
                      result.line = val[1]
                    
    result
end

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

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

# reduce 380 omitted

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

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

# reduce 383 omitted

# reduce 384 omitted

def _reduce_385(val, _values, result)
                      klasses, var, body, rest = val[1], val[2], val[4], val[5]

                      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_386(val, _values, result)
                      result = nil
                    
    result
end

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

# reduce 388 omitted

# reduce 389 omitted

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

# reduce 391 omitted

def _reduce_392(val, _values, result)
                      if (val[1] != nil) then
                        result = val[1]
                      else
                        result = s(:nil)
                      end
                    
    result
end

# reduce 393 omitted

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

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

# reduce 396 omitted

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

# reduce 398 omitted

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

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

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

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

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

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

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

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

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

# reduce 408 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_421(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_422(val, _values, result)
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg = memo

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

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

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

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

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

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

# reduce 426 omitted

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

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

# reduce 429 omitted

# reduce 430 omitted

# reduce 431 omitted

# reduce 432 omitted

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

                      yyerror "empty symbol literal" if
                        result.nil? or result.empty?

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

# reduce 434 omitted

# reduce 435 omitted

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

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

# reduce 438 omitted

# reduce 439 omitted

# reduce 440 omitted

# reduce 441 omitted

# reduce 442 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      result = val[0]
                    
    result
end

def _reduce_473(val, _values, result)
                      result = s(:args)
                      result << val[0].to_sym
                    
    result
end

def _reduce_474(val, _values, result)
                      val[0] << val[2].to_sym
                      result = val[0]
                    
    result
end

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

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

def _reduce_477(val, _values, result)
                      result = block_append val[0], val[2]
                    
    result
end

# reduce 478 omitted

# reduce 479 omitted

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

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

# reduce 482 omitted

# reduce 483 omitted

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

                      self.env[identifier] = :lvar
                      result = s(:block_arg, identifier.to_sym)
                    
    result
end

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

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

# reduce 487 omitted

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

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

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

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

def _reduce_492(val, _values, result)
                      size = val[0].size
                      if (size % 2 != 1) then # != 1 because of leading :array
                        yyerror "Odd number (#{size}) list for Hash. #{val[0].inspect}"
                      end
                      result = val[0]
                    
    result
end

# reduce 493 omitted

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

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

# reduce 496 omitted

# reduce 497 omitted

# reduce 498 omitted

# reduce 499 omitted

# reduce 500 omitted

# reduce 501 omitted

# reduce 502 omitted

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

# reduce 506 omitted

# reduce 507 omitted

# reduce 508 omitted

# reduce 509 omitted

# reduce 510 omitted

# reduce 511 omitted

# reduce 512 omitted

# reduce 513 omitted

# reduce 514 omitted

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

# reduce 516 omitted

# reduce 517 omitted

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

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

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

end   # class Ruby18Parser
