#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.16
# from Racc grammar file "".
#

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


require "ruby_lexer"
require "ruby_parser_extras"
include RubyLexer::State::Values

# :stopdoc:

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

clist = [
'-630,284,225,226,-110,225,226,-630,-630,-630,761,601,-626,-630,-630',
'-101,-630,-112,-111,-103,234,829,235,-113,821,-630,225,226,829,601,647',
'-111,284,820,534,650,-630,-630,601,-630,-630,-630,-630,-630,601,-110',
'859,284,-109,-114,-109,-107,-112,95,222,828,235,-212,847,-108,-115,96',
'828,601,848,-299,533,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630',
'-630,-630,-630,-630,-112,-101,-630,-630,-630,-103,674,286,-627,-110',
'-630,235,646,-630,235,-626,-626,649,-630,-299,-630,235,-630,-630,-630',
'-630,-630,-630,-630,128,-630,-630,-630,-114,127,235,-101,-110,286,-101',
'-103,-103,-110,-103,128,-630,-630,-104,-102,127,-630,-111,-305,286,-101',
'-102,-111,-630,-103,-305,-305,-305,128,-111,-305,-305,-305,127,-305',
'-101,858,128,-78,-105,-100,-98,127,128,-305,-305,-305,-109,127,-99,-106',
'-112,-109,284,-305,-305,-112,-305,-305,-305,-305,-305,128,232,-93,966',
'581,127,578,577,576,631,579,807,727,106,107,729,581,-79,578,577,576',
'-623,579,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,225,226,-305,-305,-305,747,823,-305,-624,-630,-305,597,596',
'-305,-305,-542,-305,747,-305,-437,-305,-115,-305,-305,-305,-305,-305',
'-305,-305,-446,-305,-109,-305,633,632,629,581,-528,578,577,576,286,579',
'723,-528,-305,-305,-305,-305,-623,-305,-630,-305,-528,701,108,109,-305',
'-630,-630,-630,-531,-630,-113,-630,-630,773,-630,-531,-630,774,-623',
'-107,-624,-626,255,-630,-531,-630,-630,-543,885,-446,608,918,608,477',
'-630,-630,-446,-630,-630,-630,-630,-630,-624,-630,581,-446,578,577,576',
'-539,579,523,106,107,252,-536,-539,235,254,253,1045,1014,-536,-446,668',
'-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630',
'-630,521,-630,-630,-630,-108,674,-630,631,-109,-630,-115,-626,-630,631',
'667,-630,518,-630,723,-630,912,-630,-630,-630,-630,-630,-630,-630,586',
'-630,-630,-630,581,-630,578,577,576,586,579,589,631,-112,878,807,-630',
'-630,631,-630,589,-630,-305,108,109,-278,586,668,-630,-305,-305,-305',
'272,273,-111,-305,-305,589,-305,723,633,632,584,-110,597,596,633,632',
'235,791,642,594,593,597,596,911,631,-100,-305,-305,645,-305,-305,-305',
'-305,-305,289,271,270,-103,597,596,-109,633,632,794,231,508,590,633',
'632,639,631,280,-112,631,757,590,636,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,-305,-305,-305,-305,-537,590,-305,-305,-305,667,673,-537',
'881,885,-305,631,232,-305,633,632,634,234,-305,917,-305,479,-305,-305',
'-305,-305,-305,-305,-305,128,-305,478,-305,581,127,578,577,576,586,579',
'633,632,629,633,632,-305,-305,-101,-104,589,-305,755,-528,476,-106,-542',
'-543,-305,-212,-528,-528,-528,-110,-113,-528,-528,-528,754,-528,-115',
'231,584,633,632,651,753,-528,776,-528,-528,-528,727,597,596,726,128',
'778,648,-528,-528,127,-528,-528,-528,-528,-528,727,-98,-99,729,-105',
'231,745,581,626,578,577,576,661,579,934,627,-107,-108,743,-114,590,659',
'715,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528',
'-528,225,226,-528,-528,-528,-306,-528,-528,747,741,-528,426,-306,-528',
'-528,-276,-528,750,-528,255,-528,-306,-528,-528,-528,-528,-528,-528',
'-528,940,-528,421,-528,581,-528,578,577,576,586,579,727,-528,945,729',
'235,-528,-528,-528,-528,589,-528,252,-528,-531,128,254,253,-528,738',
'127,-531,-531,-531,-528,948,-531,-531,-531,255,-531,581,584,578,577',
'576,950,579,-531,952,-531,-531,-531,597,596,265,266,225,226,954,-531',
'-531,-533,-531,-531,-531,-531,-531,954,-533,235,252,739,258,960,254',
'253,250,251,747,423,256,-531,257,738,425,424,590,959,-531,723,-531,-531',
'-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,404,231',
'-531,-531,-531,231,-531,-531,612,401,-531,723,550,-531,-531,399,-531',
'610,-531,396,-531,475,-531,-531,-531,-531,-531,-531,-531,723,-531,1066',
'-531,581,-538,578,577,576,586,579,235,-538,881,885,-535,-531,-531,-531',
'-531,589,-531,-535,-531,-630,128,372,723,-531,235,127,-630,-630,-630',
'-531,978,-630,-630,-630,255,-630,581,584,578,577,576,735,579,523,-630',
'-630,-630,-630,597,596,265,266,255,979,738,-630,-630,-534,-630,-630',
'-630,-630,-630,982,-534,985,252,987,258,989,254,253,250,251,747,128',
'256,235,257,128,127,991,590,750,127,235,-630,-630,-630,-630,-630,-630',
'-630,-630,-630,-630,-630,-630,-630,-630,731,730,-630,-630,-630,-305',
'822,-630,338,1003,-630,1004,-305,-630,-630,723,-630,-627,-630,720,-630',
'-305,-630,-630,-630,-630,-630,-630,-630,655,-630,-630,-630,581,-276',
'578,577,576,586,579,255,1016,716,337,723,-630,-630,-630,-630,589,-630',
'-305,-630,723,-295,785,715,-630,-305,-305,-305,-295,657,-111,-305,-305',
'553,-305,255,658,-295,584,252,1034,275,954,254,253,250,251,594,593,597',
'596,265,266,1037,-305,-305,847,-305,-305,-305,-305,-305,235,1016,906',
'907,1089,252,908,122,123,254,253,250,251,581,255,578,577,576,1043,579',
'678,590,1046,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,954,255,-305,-305,-305,581,673,578,577,576,-305,579,954',
'-305,747,954,1051,704,-305,1016,-305,-93,-305,-305,-305,-305,-305,-305',
'-305,235,-305,289,-305,252,738,1060,1062,254,253,250,251,1064,231,747',
'1066,-305,-305,1066,-305,540,-305,311,85,86,87,12,78,-305,538,-541,79',
'80,255,-113,227,83,-541,81,82,84,33,34,76,77,720,-541,224,223,255,88',
'31,30,116,115,117,118,235,665,22,1016,723,723,808,662,11,49,313,13,120',
'119,121,110,60,112,111,113,614,114,122,123,613,106,107,666,45,46,44',
'255,259,260,261,262,272,273,267,268,263,264,-540,248,249,-306,508,265',
'266,-540,43,414,-306,315,608,508,62,63,-540,-277,64,-306,38,252,825',
'258,48,254,253,250,251,271,270,256,23,257,235,275,231,103,95,97,98,99',
'101,474,1066,834,96,104,836,269,521,-251,475,523,66,796,235,93,100,102',
'715,235,108,109,311,85,86,87,12,78,255,235,-349,79,80,289,124,235,83',
'-349,81,82,84,33,34,76,77,289,-349,715,548,795,88,31,30,116,115,117',
'118,255,544,22,235,289,3,235,662,11,49,313,13,120,119,121,110,60,112',
'111,113,235,114,122,123,785,106,107,780,45,46,44,255,259,260,261,262',
'272,273,267,268,263,264,-305,248,249,231,1066,265,266,-305,43,292,1036',
'36,-627,1066,62,63,-305,876,64,778,38,252,638,258,48,254,253,250,251',
'271,270,256,23,257,235,885,-540,103,95,97,98,99,101,-540,-541,723,96',
'104,685,269,235,-541,-540,541,66,-627,,93,100,102,-541,,108,109,311',
'85,86,87,12,78,,,231,79,80,,,,83,1042,81,82,84,33,34,76,77,,1040,,,',
'88,31,30,116,115,117,118,,1007,22,578,577,576,,579,11,49,313,13,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,255,259,260',
'261,262,272,273,267,268,263,264,-295,248,249,231,,265,266,-295,43,,230',
'36,,,62,63,-295,,64,228,38,252,,258,48,254,253,250,251,271,270,256,23',
'257,,,231,103,95,97,98,99,101,1036,-306,,96,104,,269,,-306,778,,66,',
',93,100,102,-306,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,131,132,133,134,135,88,31,30,116,115,117,118,,1007,22,578',
'577,576,,579,11,49,313,13,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,255,259,260,261,262,272,273,267,268,263,264,-305',
'248,249,,,265,266,-305,43,,,36,-627,,62,63,-305,,64,,38,252,,258,48',
'254,253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104',
',269,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,131,132,133,134,135,88,31,30,116,115,117,118,',
',22,131,132,133,134,135,11,49,313,13,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,255,259,260,261,262,272,273,267,268',
'263,264,,248,249,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254',
'253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104,235',
'269,,,,,66,,,93,100,102,,,108,109,8,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,131,132,133,134,135,88,31,30,116,115,117,118,,,22',
',,,,,11,49,10,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,255,259,260,261,262,272,273,267,268,263,264,,248,249,,,265',
'266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271,270,256',
'23,257,,,,103,95,97,98,99,101,,,,96,104,,269,,,,,66,,,93,100,102,,,108',
'109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,255,259,260,261,262,272,273',
'267,268,263,264,,248,249,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258',
'48,254,253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104',
',269,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49',
'313,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
'255,259,260,261,262,272,273,267,268,263,264,,248,249,,,265,266,,43,',
',315,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271,270,256,23,257',
',,,103,95,97,98,99,101,,,,96,104,,269,,,,,66,,,93,100,102,,,108,109',
'311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,581,22,578,577,576,,579,11,49,313,13,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,255,-652,-652,-652,-652',
'272,273,,747,-652,-652,,,,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258',
'48,254,253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313',
'13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,255',
'259,260,261,262,272,273,267,268,263,264,,-652,-652,,,265,266,,43,,,36',
',,62,63,,,64,,38,252,,258,48,254,253,250,251,271,270,256,23,257,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,255,-652,-652,-652,-652,272,273,,,-652,-652,',
',,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271',
'270,256,23,257,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,255,259,260,261,262,272',
'273,267,268,263,264,,-652,-652,,,265,266,,43,,,36,,,62,63,,,64,,38,252',
',258,48,254,253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,',
',96,104,,,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,',
'11,49,313,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,255,-652,-652,-652,-652,272,273,,,-652,-652,,,,,,265,266,,43,',
',36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271,270,256,23,257',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,255,-652,-652,-652,-652,272,273,,,-652,-652',
',,,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271',
'270,256,23,257,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,255,259,260,261,262,272',
'273,,,263,264,,,,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254',
'253,250,251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104,,,,',
',,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,255,259',
'260,261,262,272,273,267,,263,264,,,,,,265,266,,43,,,315,,,62,63,,,64',
',38,252,,258,48,254,253,250,251,271,270,256,23,257,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,255,-652,-652,-652,-652,272,273,,,-652,-652,,,,,,265,266,',
'43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,271,270,256,23',
'257,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109',
'311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,255,-652,-652,-652,-652,272,273,,,-652',
'-652,,,,,,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250',
'251,271,270,256,23,257,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93',
'100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,255,,,,,,,,,,,,,',
',,265,266,,43,,,36,,,62,63,,,64,,38,252,,258,48,254,253,250,251,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,255,,,,,,,,,,,,,,,,265,266,,43,,,36,,,62',
'63,,,64,,38,252,,258,48,254,253,250,251,,,,23,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,',
'11,49,313,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,',
'38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77',
',,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49',
'313,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
',,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,311,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,',
',,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,',
',,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,',
'36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,311,85,86,87,12,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,11,49,313',
'13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,',
',,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,8,85,86,87,12',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,22,,,,,,11,49,10,13,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,311,85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,22,,,,,,11,49,313,13,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,',
',62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,',
',,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245',
',,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109',
'85,86,87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,22,,,,,,11,49,10,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,',
'38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96',
'104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,',
',,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,328,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,334,,,,,,,,,,,,,,,,,,,,993,,,246,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48',
',,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
'304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104',
',,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,',
',,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,302',
'97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117',
'118,,,247,,,,,,,328,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,,,334,,,,,,,,,,,,,,,,,,,,324,,,320,,,62,63,,,64,,319,,,,,,,,,,',
',,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333',
'116,115,117,118,,,247,,,,,,,328,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,324,,,246,,,62,63,,,64,,',
',,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,336,,,66,,,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88',
'327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,698,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,',
',,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330',
'331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,328,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,',
',,,1000,,,246,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,',
'96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,',
'81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49',
',,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,',
',,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,993,,,246,,',
'62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331',
'76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,304,114,122,123,,106,107,,45,46,44,',
',,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,299,,48,,,,,,,,245,,,,,103',
'302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86',
'87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117',
'118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,128,,,,',
'127,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,328,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,,,334,,,,,,,,,,,,',
',,,,,,,366,,,36,,,62,63,,,64,,38,,,,,,,,,,,,,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,',
',,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86',
'87,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,11,49,10,13,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,',
',,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,414,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,',
'120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,',
',,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,',
',,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,',
'22,,,,,,11,49,,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,431,,',
',48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63',
',,64,,431,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,',
',247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48',
',,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88',
'327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101',
',,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,',
',49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245',
',,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64',
',301,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,235,,,,',
',66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,',
'11,49,,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48',
',,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88',
'327,333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,324,,,246,,,62,63',
',,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,536,,,66,,,93',
'100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77',
',,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,301,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,',
',,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,',
',108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88',
'327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,698,,,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104',
',,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82',
'84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,',
',,,,,,,,,,240,,,246,,,62,63,,,64,,431,,,,48,,,,,,,,245,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,328,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,334,,,,,,,,,,,,,,,,,,,,324,,,320,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117',
'118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,',
',,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327',
'333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,324,,,320,,,62,63,,',
'64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,553,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,328,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,',
'334,,,,,,,,,,,,,,,,,,,,324,,,320,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,22,,,,,,11,49,,13,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327',
'333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
'304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62',
'63,,,64,,301,,,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,',
',,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,',
',,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,302,97,98',
'99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,',
'108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31',
'30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,',
'114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63',
',,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121',
'110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83',
',81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,299,,48,',
',,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88',
'327,333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,615,60,112,111',
'616,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,617,,,246,,,62,63',
',,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,615,60,112',
'111,616,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,617,,,246,,',
'62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331',
'76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,',
',240,,,246,,,62,63,,,64,,698,,299,,48,,,,,,,,245,,,,,103,302,97,98,99',
'101,,,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,800,,,,48,,,,,,,,245,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,',
',,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118',
',,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,304,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76',
'77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,22,,,,,,,49,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,',
',,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,23,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79',
'80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,328,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,,,334,,,,,,,,,,,,,,,,,,,,324,,,320,,',
'62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66',
',,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76',
'77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101',
',,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,',
',,,,,328,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,334',
',,,,,,,,,,,,,,,,,,,324,,,320,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103,95,97',
'98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,12,78,',
',,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,',
'22,,,,,,11,49,313,13,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,414,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327',
'333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63',
',,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331',
'76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,304,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,',
',240,,,246,,,62,63,,,64,,,,299,,48,,,,,,,,245,,,,,103,302,97,98,99,101',
',,,96,104,,,,,,,66,,305,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,',
',,,,,49,,,120,119,121,110,60,112,111,113,304,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,698,,299,,48,,,,,,',
',245,,,,,103,302,97,98,99,101,,,,96,104,,,,,,,66,,305,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327',
'333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63',
',,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331',
'76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,',
',247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115',
'117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48',
',,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,',
'108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31',
'30,116,115,117,118,,,22,,,,,,,49,,,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64',
',,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,235,,,,,,66,,,93',
'100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77',
',,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,',
',246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,',
',,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44',
',,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117',
'118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,',
',,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327',
'333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113',
',114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63',
',,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,',
',93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331',
'76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96',
'104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81',
'82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,',
',,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118',
',,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,',
',,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,',
',,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84',
'330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247,,,,,,,49,,,120,119',
'121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,',
',,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99',
'101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,',
',,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85',
'86,87,,78,,,,79,80,,,,83,,81,82,84,330,331,76,77,,,,,,88,327,333,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,',
',,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,-296,,108,109,,,,-296,-296,-296,,,-296,-296,-296,581,-296,578,577',
'576,586,579,,,,,-296,-296,-296,,,589,,,,,-296,-296,,-296,-296,-296,-296',
'-296,,,,,,,,,,584,,,,,,,,,594,593,597,596,,-296,-296,-296,-296,-296',
'-296,-296,-296,-296,-296,-296,-296,-296,-296,,,-296,-296,-296,,,-296',
',,-296,,,-296,-296,,-296,590,-296,,-296,,-296,-296,-296,-296,-296,-296',
'-296,,-296,,-296,581,,578,577,576,586,579,,,,,,-296,-296,-296,-296,589',
'-296,-445,-296,,,,,-296,-445,-445,-445,,,-445,-445,-445,,-445,,,,584',
',,,,-445,-445,-445,,594,593,597,596,,,,-445,-445,,-445,-445,-445,-445',
'-445,,,,,,,,,,,,,,,,,,,,,,590,,-445,-445,-445,-445,-445,-445,-445,-445',
'-445,-445,-445,-445,-445,-445,,,-445,-445,-445,,,-445,,289,-445,,,-445',
'-445,,-445,,-445,,-445,,-445,-445,-445,-445,-445,-445,-445,,-445,-445',
'-445,,,,,,,,,,,,,-445,-445,-651,-445,,-445,,,,-651,-651,-651,-445,,-651',
'-651,-651,581,-651,578,577,576,586,579,,,,-651,-651,-651,,,,589,,,,',
'-651,-651,,-651,-651,-651,-651,-651,,,,,,,,,,584,,,,,,,,,594,593,597',
'596,,-651,-651,-651,-651,-651,-651,-651,-651,-651,-651,-651,-651,-651',
'-651,,,-651,-651,-651,,,-651,,289,-651,,,-651,-651,,-651,590,-651,,-651',
',-651,-651,-651,-651,-651,-651,-651,,-651,-651,-651,,,,,,,,,,,,,-651',
'-651,-632,-651,,-651,,,,-632,-632,-632,-651,,-632,-632,-632,581,-632',
'578,577,576,586,579,,,,-632,-632,-632,-632,,,589,,,,,-632,-632,,-632',
'-632,-632,-632,-632,,,,,,,,,,584,,,,,,,,,594,593,597,596,,-632,-632',
'-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,-632,,,-632,-632',
'-632,,,-632,,,-632,,,-632,-632,,-632,590,-632,,-632,,-632,-632,-632',
'-632,-632,-632,-632,,-632,-632,-632,581,,578,577,576,586,579,,,,,,-632',
'-632,-632,-632,589,-632,-651,-632,,,,,-632,-651,-651,-651,,,-651,-651',
'-651,,-651,,,,584,,,,,-651,-651,,,,,597,596,,,,-651,-651,,-651,-651',
'-651,-651,-651,,,,,,,,,,,,,,,,,,,,,,590,,,,,,,,,,,,,-651,,-631,,,,,-651',
',-631,-631,-631,289,-651,-631,-631,-631,581,-631,578,577,576,586,579',
',,,-631,-631,-631,-631,,,589,-651,-651,,,-631,-631,,-631,-631,-631,-631',
'-631,,,-651,,,,,-651,,584,,,,,-651,,,,,,597,596,,-631,-631,-631,-631',
'-631,-631,-631,-631,-631,-631,-631,-631,-631,-631,,,-631,-631,-631,',
',-631,,,-631,,,-631,-631,,-631,590,-631,,-631,,-631,-631,-631,-631,-631',
'-631,-631,,-631,-631,-631,581,,578,577,576,586,579,,,,,,-631,-631,-631',
'-631,589,-631,-314,-631,,,,,-631,-314,-314,-314,,,-314,-314,-314,,-314',
',,,584,,,,,,-314,-314,,,,597,596,,,,-314,-314,,-314,-314,-314,-314,-314',
',,,,,,,,,,,,,,,,,,,,,590,,-314,-314,-314,-314,-314,-314,-314,-314,-314',
'-314,-314,-314,-314,-314,,,-314,-314,-314,,,-314,,292,-314,,,-314,-314',
',-314,,-314,,-314,,-314,-314,-314,-314,-314,-314,-314,,-314,,-314,,',
',,,,,,,,,,-314,-314,,-314,,-314,,,,,,,-314,189,200,190,213,186,206,196',
'195,216,217,211,194,193,188,214,218,219,198,187,201,205,207,199,192',
',,,208,215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183,179',
'180,181,139,141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159,',
',154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163',
'164,158,156,148,171,149,,,177,103,,,,,,,,,,104,,,,,,,,,170,,,,,178,189',
'200,190,213,186,206,196,195,216,217,211,194,193,188,214,218,219,198',
'187,201,205,207,199,192,,,,208,215,210,209,202,212,197,185,204,203,',
',,,,184,191,182,183,179,180,181,139,141,,,140,,,,,,,,,173,174,,169,151',
'152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165',
',150,172,168,167,163,164,158,156,148,171,149,,,177,103,,,,,,,,,,104',
',,,,,,,,170,,,,,178,189,200,190,213,186,206,196,195,216,217,211,194',
'193,188,214,218,219,198,187,201,205,207,199,192,,,,208,215,210,209,202',
'212,197,185,204,203,,,,,,184,191,182,183,179,180,181,139,141,411,410',
'140,,412,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148',
'171,149,,,177,,,,,,,,,,,,,,,,,,,,170,,,,,178,189,200,190,213,186,206',
'196,195,216,217,211,194,193,188,214,218,219,198,187,201,205,207,199',
'192,,,,208,215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183',
'179,180,181,139,141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163',
'164,158,156,148,171,149,,,177,,,,,,,,,,,,,,,,,,,,170,,,,,178,189,200',
'190,213,186,206,196,195,216,217,211,194,193,188,214,218,219,198,187',
'201,205,207,199,192,,,,208,215,210,381,380,382,379,185,204,203,,,,,',
'184,191,182,183,376,377,378,374,141,112,111,375,,114,,,,,,,173,174,',
'169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,388,,',
',,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,',
',,,,,,,,,,,,,,,170,,,,,178,189,200,190,213,186,206,196,195,216,217,211',
'194,193,188,214,218,219,198,187,201,205,207,199,192,,,,208,215,210,209',
'202,212,197,185,204,203,,,,,,184,191,182,183,179,180,181,139,141,138',
',140,,,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175,176',
'161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171',
'149,,,177,103,,,,,,,,,,104,,,,,,,,,170,,,,,178,189,200,190,213,186,206',
'196,195,216,217,211,194,193,188,214,218,219,198,187,201,205,207,199',
'192,,,,208,215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183',
'179,180,181,139,141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163',
'164,158,156,148,171,149,,,177,103,,,,,,,,,,104,,1075,465,,,1076,,,170',
',,,,178,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175,176,161',
'162,,,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171',
'149,,,177,,,,,,,,,,681,465,,,682,,,,,,170,,,173,174,178,169,151,152',
'153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165',
',150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,461,465',
',,460,,,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,',
',,175,176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158',
'156,148,171,149,,,177,,,,,,,,,,802,458,,,803,,,,,,170,,,173,174,178',
'169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,',
',,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,',
',,,,,805,465,,,804,,,,,,170,,,173,174,178,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167',
'163,164,158,156,148,171,149,,,177,,,,,,,,,,681,465,,,682,,,,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,892,465,,,893,,,,,,170,,,173,174,178,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,679,458,,,680',
',,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,,679,458,,,680,,,,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,,,,,',
',166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,',
',454,458,,,455,,,,,,170,,,173,174,178,169,151,152,153,160,157,159,,',
'154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167',
'163,164,158,156,148,171,149,,,177,,,,,,,,,,506,458,,,507,,,,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,,,,,,,,,,1070,465,,,1069,,,,,,170,,,173,174,178,169,151,152,153',
'160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165,,150',
'172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,,,768,458,,,769',
',,,,,170,,,173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,,770,465,,,771,,,,,,170,,,173,174,178,169',
'151,152,153,160,157,159,,,154,155,,,,175,176,161,162,,,,,,289,,,,,,',
',166,165,,150,172,168,167,163,164,158,156,148,171,149,,,177,,,,,,,,',
',1073,458,,,1074,,,,,,170,,,173,174,178,169,151,152,153,160,157,159',
',,154,155,,,,175,176,161,162,,,,,,289,,,,,,,,166,165,,150,172,168,167',
'163,164,158,156,148,171,149,,,177,,,,,,,,,,708,458,,,709,,,,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,,175,176,161,162',
',,,,,289,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',581,177,578,577,576,586,579,,,,,506,458,,,507,589,,,,,170,,,173,174',
'178,169,151,152,153,160,157,159,,,154,155,584,,,175,176,161,162,,,594',
'593,597,596,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171',
'149,,,177,581,,578,577,576,586,579,,590,711,465,,,712,,,589,,,170,,',
'173,174,178,169,151,152,153,160,157,159,,,154,155,,,584,175,176,161',
'162,,,,,,289,597,596,,,,,,166,165,,150,172,168,167,163,164,158,156,148',
'171,149,,581,177,578,577,576,586,579,,,,,,590,,,,589,,,,,170,,,,581',
'178,578,577,576,586,579,,,,,,,584,567,581,589,578,577,576,586,579,594',
'593,597,596,,,,,581,589,578,577,576,586,579,,584,,,,,,,,589,,,597,596',
',,584,,,,,590,,,,,,597,596,,,584,581,,578,577,576,586,579,,594,593,597',
'596,,,590,581,589,578,577,576,586,579,,,,,,,,590,,589,,,,,235,,584,',
',,,,590,,,594,593,597,596,,581,584,578,577,576,586,579,,,,594,593,597',
'596,,,589,,,,,,,,,,,,,,,590,,,,,,,584,,,,,,,,590,,,597,596,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,590' ]
        racc_action_table = arr = ::Array.new(26144, 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 = [
'461,329,788,788,1073,718,718,461,461,461,603,963,1070,461,461,708,461',
'769,1075,709,22,835,1072,771,680,461,470,470,686,355,402,770,65,679',
'318,405,461,461,356,461,461,461,461,461,939,768,733,688,1087,613,890',
'363,1074,92,13,835,22,476,719,364,367,92,686,889,719,62,317,461,461',
'461,461,461,461,461,461,461,461,461,461,461,461,680,708,461,461,461',
'709,461,329,771,679,461,788,402,461,718,1075,770,405,461,62,461,316',
'461,461,461,461,461,461,461,603,461,461,461,476,603,470,708,1073,65',
'708,709,769,1073,709,963,461,461,771,461,963,461,1075,682,688,708,770',
'1075,461,709,682,682,682,355,461,682,682,682,355,682,768,733,356,314',
'613,890,363,356,939,682,682,682,1087,939,364,367,1074,1087,29,682,682',
'1074,682,682,682,682,682,889,438,703,889,878,889,878,878,878,525,878',
'914,856,334,334,856,1051,703,1051,1051,1051,615,1051,682,682,682,682',
'682,682,682,682,682,682,682,682,682,682,782,782,682,682,682,878,682',
'682,616,711,682,738,738,682,682,238,682,1051,682,29,682,438,682,682',
'682,682,682,682,682,841,682,914,682,525,525,525,959,615,959,959,959',
'29,959,607,615,682,682,682,682,615,682,805,682,615,525,334,334,682,805',
'805,805,616,711,682,805,805,617,805,616,711,617,615,238,616,711,483',
'805,616,711,892,239,1019,841,1019,824,606,241,805,805,841,805,805,805',
'805,805,616,711,750,841,750,750,750,378,750,300,44,44,483,379,378,1005',
'483,483,1005,959,379,841,803,805,805,805,805,805,805,805,805,805,805',
'805,805,805,805,892,297,805,805,805,239,805,892,640,824,805,241,892',
'805,793,802,892,296,805,605,805,797,805,805,805,805,805,805,805,735',
'805,805,805,982,892,982,982,982,982,982,735,643,803,750,663,805,805',
'397,805,982,805,460,44,44,799,979,455,805,460,460,460,47,47,805,460',
'460,979,460,604,640,640,982,802,735,735,793,793,801,640,399,982,982',
'982,982,793,392,663,460,460,401,460,460,460,460,460,285,47,47,455,979',
'979,663,643,643,643,27,281,735,397,397,397,390,27,455,394,600,982,394',
'460,460,460,460,460,460,460,460,460,460,460,460,460,460,377,979,460',
'460,460,454,460,377,756,756,460,407,20,460,392,392,392,247,460,809,460',
'243,460,460,460,460,460,460,460,902,460,242,460,954,902,954,954,954',
'954,954,390,390,390,394,394,460,460,454,460,954,460,598,110,240,20,41',
'42,460,338,110,110,110,454,460,110,110,110,595,110,20,619,954,407,407',
'407,591,110,619,110,110,110,559,954,954,559,360,619,404,110,110,360',
'110,110,110,110,110,560,41,42,560,338,437,583,747,384,747,747,747,437',
'747,833,384,41,42,574,338,954,437,840,110,110,110,110,110,110,110,110',
'110,110,110,110,110,110,17,17,110,110,110,541,110,110,747,573,110,220',
'541,110,110,851,110,747,110,482,110,541,110,110,110,110,110,110,110',
'852,110,136,110,952,374,952,952,952,952,952,564,374,860,564,861,110',
'110,110,110,952,110,482,110,113,971,482,482,110,862,971,113,113,113',
'110,866,113,113,113,551,113,876,952,876,876,876,867,876,113,869,113',
'113,113,952,952,551,551,354,354,870,113,113,380,113,113,113,113,113',
'872,380,875,551,572,551,877,551,551,551,551,876,138,551,375,551,570',
'138,138,952,876,375,880,113,113,113,113,113,113,113,113,113,113,113',
'113,113,113,102,365,113,113,113,340,113,113,365,101,113,886,340,113',
'113,100,113,365,113,99,113,340,113,113,113,113,113,113,113,891,113,1094',
'113,950,376,950,950,950,950,950,895,376,1053,1053,382,113,113,113,113',
'950,113,382,113,681,5,73,899,113,901,5,681,681,681,113,910,681,681,681',
'502,681,584,950,584,584,584,569,584,565,681,681,681,681,950,950,502',
'502,484,920,921,681,681,381,681,681,681,681,681,923,381,924,502,925',
'502,927,502,502,502,502,584,308,502,928,502,898,308,929,950,584,898',
'49,681,681,681,681,681,681,681,681,681,681,681,681,681,681,562,561,681',
'681,681,712,681,681,43,943,681,944,712,681,681,555,681,712,681,554,681',
'712,681,681,681,681,681,681,681,427,681,681,681,948,430,948,948,948',
'948,948,498,961,547,40,970,681,681,681,681,948,681,804,681,974,325,977',
'545,681,804,804,804,325,432,681,804,804,542,804,490,435,325,948,498',
'990,25,1078,498,498,498,498,948,948,948,948,490,490,993,804,804,995',
'804,804,804,804,804,537,1079,789,789,1083,490,789,789,789,490,490,490',
'490,1014,487,1014,1014,1014,1000,1014,472,948,1009,804,804,804,804,804',
'804,804,804,804,804,804,804,804,804,1010,497,804,804,804,960,804,960',
'960,960,804,960,1011,804,1014,1012,1013,535,804,1015,804,532,804,804',
'804,804,804,804,804,531,804,462,804,497,1025,1028,1029,497,497,497,497',
'1030,323,960,1031,804,804,1033,804,323,804,320,320,320,320,320,320,804',
'323,322,320,320,486,804,18,320,322,320,320,320,320,320,320,320,1039',
'322,16,15,485,320,320,320,320,320,320,320,449,452,320,1052,1057,1058',
'664,442,320,320,320,320,320,320,320,320,320,320,320,320,368,320,320',
'320,366,320,320,453,320,320,320,442,442,442,442,442,442,442,442,442',
'442,442,321,442,442,774,669,442,442,321,320,362,774,320,361,675,320',
'320,321,656,320,774,320,442,684,442,320,442,442,442,442,442,442,442',
'320,442,683,687,237,320,320,320,320,320,320,237,1086,690,320,320,692',
'442,695,442,237,697,320,650,347,320,320,320,705,707,320,320,602,602',
'602,602,602,602,342,515,50,602,602,710,3,514,602,50,602,602,602,602',
'602,602,602,713,50,714,339,647,602,602,602,602,602,602,602,717,335,602',
'724,333,1,328,448,602,602,602,602,602,602,602,602,602,602,602,602,734',
'602,602,602,624,602,602,621,602,602,602,448,448,448,448,448,448,448',
'448,448,448,448,893,448,448,992,1085,448,448,893,602,327,992,602,893',
'1084,602,602,893,749,602,992,602,448,396,448,602,448,448,448,448,448',
'448,448,602,448,751,758,997,602,602,602,602,602,602,997,998,764,602',
'602,503,448,767,998,997,324,602,1069,,602,602,602,998,,602,602,790,790',
'790,790,790,790,,,999,790,790,,,,790,999,790,790,790,790,790,790,790',
',999,,,,790,790,790,790,790,790,790,,945,790,945,945,945,,945,790,790',
'790,790,790,790,790,790,790,790,790,790,,790,790,790,,790,790,,790,790',
'790,294,294,294,294,294,294,294,294,294,294,294,1001,294,294,19,,294',
'294,1001,790,,19,790,,,790,790,1001,,790,19,790,294,,294,790,294,294',
'294,294,294,294,294,790,294,,,1035,790,790,790,790,790,790,1035,1043',
',790,790,,294,,1043,1035,,790,,,790,790,790,1043,,790,790,896,896,896',
'896,896,896,,,,896,896,,,,896,,896,896,896,896,896,896,896,530,530,530',
'530,530,896,896,896,896,896,896,896,,1045,896,1045,1045,1045,,1045,896',
'896,896,896,896,896,896,896,896,896,896,896,,896,896,896,,896,896,,896',
'896,896,552,552,552,552,552,552,552,552,552,552,552,1076,552,552,,,552',
'552,1076,896,,,896,1076,,896,896,1076,,896,,896,552,,552,896,552,552',
'552,552,552,552,552,896,552,,,,896,896,896,896,896,896,,,,896,896,,552',
',,,,896,,,896,896,896,,,896,896,885,885,885,885,885,885,,,,885,885,',
',,885,,885,885,885,885,885,885,885,557,557,557,557,557,885,885,885,885',
'885,885,885,,,885,312,312,312,312,312,885,885,885,885,885,885,885,885',
'885,885,885,885,,885,885,885,,885,885,,885,885,885,501,501,501,501,501',
'501,501,501,501,501,501,,501,501,,,501,501,,885,,,885,,,885,885,,,885',
',885,501,,501,885,501,501,501,501,501,501,501,885,501,,,,885,885,885',
'885,885,885,,,,885,885,501,501,,,,,885,,,885,885,885,,,885,885,652,652',
'652,652,652,652,,,,652,652,,,,652,,652,652,652,652,652,652,652,9,9,9',
'9,9,652,652,652,652,652,652,652,,,652,,,,,,652,652,652,652,652,652,652',
'652,652,652,652,652,,652,652,652,,652,652,,652,652,652,24,24,24,24,24',
'24,24,24,24,24,24,,24,24,,,24,24,,652,,,652,,,652,652,,,652,,652,24',
',24,652,24,24,24,24,24,24,24,652,24,,,,652,652,652,652,652,652,,,,652',
'652,,24,,,,,652,,,652,652,652,,,652,652,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,806,806,806,806,806,806,806,806,806,806',
'806,,806,806,,,806,806,,246,,,246,,,246,246,,,246,,246,806,,806,246',
'806,806,806,806,806,806,806,246,806,,,,246,246,246,246,246,246,,,,246',
'246,,806,,,,,246,,,246,246,246,,,246,246,36,36,36,36,36,36,,,,36,36',
',,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,36,36',
'36,36,36,36,36,36,36,36,36,36,,36,36,36,,36,36,,36,36,36,919,919,919',
'919,919,919,919,919,919,919,919,,919,919,,,919,919,,36,,,36,,,36,36',
',,36,,36,919,,919,36,919,919,919,919,919,919,919,36,919,,,,36,36,36',
'36,36,36,,,,36,36,,919,,,,,36,,,36,36,36,,,36,36,359,359,359,359,359',
'359,,,,359,359,,,,359,,359,359,359,359,359,359,359,,,,,,359,359,359',
'359,359,359,359,,1016,359,1016,1016,1016,,1016,359,359,359,359,359,359',
'359,359,359,359,359,359,,359,359,359,,359,359,,359,359,359,496,496,496',
'496,496,496,496,,1016,496,496,,,,,,496,496,,359,,,359,,,359,359,,,359',
',359,496,,496,359,496,496,496,496,496,496,496,359,496,,,,359,359,359',
'359,359,359,,,,359,359,,,,,,,359,,,359,359,359,,,359,359,358,358,358',
'358,358,358,,,,358,358,,,,358,,358,358,358,358,358,358,358,,,,,,358',
'358,358,358,358,358,358,,,358,,,,,,358,358,358,358,358,358,358,358,358',
'358,358,358,,358,358,358,,358,358,,358,358,358,481,481,481,481,481,481',
'481,481,481,481,481,,481,481,,,481,481,,358,,,358,,,358,358,,,358,,358',
'481,,481,358,481,481,481,481,481,481,481,358,481,,,,358,358,358,358',
'358,358,,,,358,358,,,,,,,358,,,358,358,358,,,358,358,772,772,772,772',
'772,772,,,,772,772,,,,772,,772,772,772,772,772,772,772,,,,,,772,772',
'772,772,772,772,772,,,772,,,,,,772,772,772,772,772,772,772,772,772,772',
'772,772,,772,772,772,,772,772,,772,772,772,492,492,492,492,492,492,492',
',,492,492,,,,,,492,492,,772,,,772,,,772,772,,,772,,772,492,,492,772',
'492,492,492,492,492,492,492,772,492,,,,772,772,772,772,772,772,,,,772',
'772,,,,,,,772,,,772,772,772,,,772,772,859,859,859,859,859,859,,,,859',
'859,,,,859,,859,859,859,859,859,859,859,,,,,,859,859,859,859,859,859',
'859,,,859,,,,,,859,859,859,859,859,859,859,859,859,859,859,859,,859',
'859,859,,859,859,,859,859,859,480,480,480,480,480,480,480,480,480,480',
'480,,480,480,,,480,480,,859,,,859,,,859,859,,,859,,859,480,,480,859',
'480,480,480,480,480,480,480,859,480,,,,859,859,859,859,859,859,,,,859',
'859,,,,,,,859,,,859,859,859,,,859,859,858,858,858,858,858,858,,,,858',
'858,,,,858,,858,858,858,858,858,858,858,,,,,,858,858,858,858,858,858',
'858,,,858,,,,,,858,858,858,858,858,858,858,858,858,858,858,858,,858',
'858,858,,858,858,,858,858,858,493,493,493,493,493,493,493,,,493,493',
',,,,,493,493,,858,,,858,,,858,858,,,858,,858,493,,493,858,493,493,493',
'493,493,493,493,858,493,,,,858,858,858,858,858,858,,,,858,858,,,,,,',
'858,,,858,858,858,,,858,858,849,849,849,849,849,849,,,,849,849,,,,849',
',849,849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849',
',,,,,849,849,849,849,849,849,849,849,849,849,849,849,,849,849,849,,849',
'849,,849,849,849,494,494,494,494,494,494,494,,,494,494,,,,,,494,494',
',849,,,849,,,849,849,,,849,,849,494,,494,849,494,494,494,494,494,494',
'494,849,494,,,,849,849,849,849,849,849,,,,849,849,,,,,,,849,,,849,849',
'849,,,849,849,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,499,499,499,499,499,499,499,,,499,499,,,,,,499,499,,222,,,222,,',
'222,222,,,222,,222,499,,499,222,499,499,499,499,499,499,499,222,499',
',,,222,222,222,222,222,222,,,,222,222,,,,,,,222,,,222,222,222,,,222',
'222,315,315,315,315,315,315,,,,315,315,,,,315,,315,315,315,315,315,315',
'315,,,,,,315,315,315,315,315,315,315,,,315,,,,,,315,315,315,315,315',
'315,315,315,315,315,315,315,,315,315,315,,315,315,,315,315,315,500,500',
'500,500,500,500,500,500,,500,500,,,,,,500,500,,315,,,315,,,315,315,',
',315,,315,500,,500,315,500,500,500,500,500,500,500,315,500,,,,315,315',
'315,315,315,315,,,,315,315,,,,,,,315,,,315,315,315,,,315,315,937,937',
'937,937,937,937,,,,937,937,,,,937,,937,937,937,937,937,937,937,,,,,',
'937,937,937,937,937,937,937,,,937,,,,,,937,937,937,937,937,937,937,937',
'937,937,937,937,,937,937,937,,937,937,,937,937,937,495,495,495,495,495',
'495,495,,,495,495,,,,,,495,495,,937,,,937,,,937,937,,,937,,937,495,',
'495,937,495,495,495,495,495,495,495,937,495,,,,937,937,937,937,937,937',
',,,937,937,,,,,,,937,,,937,937,937,,,937,937,1024,1024,1024,1024,1024',
'1024,,,,1024,1024,,,,1024,,1024,1024,1024,1024,1024,1024,1024,,,,,,1024',
'1024,1024,1024,1024,1024,1024,,,1024,,,,,,1024,1024,1024,1024,1024,1024',
'1024,1024,1024,1024,1024,1024,,1024,1024,1024,,1024,1024,,1024,1024',
'1024,491,491,491,491,491,491,491,,,491,491,,,,,,491,491,,1024,,,1024',
',,1024,1024,,,1024,,1024,491,,491,1024,491,491,491,491,491,491,491,1024',
'491,,,,1024,1024,1024,1024,1024,1024,,,,1024,1024,,,,,,,1024,,,1024',
'1024,1024,,,1024,1024,1022,1022,1022,1022,1022,1022,,,,1022,1022,,,',
'1022,,1022,1022,1022,1022,1022,1022,1022,,,,,,1022,1022,1022,1022,1022',
'1022,1022,,,1022,,,,,,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022',
'1022,1022,,1022,1022,1022,,1022,1022,,1022,1022,1022,489,,,,,,,,,,,',
',,,,489,489,,1022,,,1022,,,1022,1022,,,1022,,1022,489,,489,1022,489',
'489,489,489,,,,1022,,,,,1022,1022,1022,1022,1022,1022,,,,1022,1022,',
',,,,,1022,,,1022,1022,1022,,,1022,1022,935,935,935,935,935,935,,,,935',
'935,,,,935,,935,935,935,935,935,935,935,,,,,,935,935,935,935,935,935',
'935,,,935,,,,,,935,935,935,935,935,935,935,935,935,935,935,935,,935',
'935,935,,935,935,,935,935,935,488,,,,,,,,,,,,,,,,488,488,,935,,,935',
',,935,935,,,935,,935,488,,488,935,488,488,488,488,,,,935,,,,,935,935',
'935,935,935,935,,,,935,935,,,,,,,935,,,935,935,935,,,935,935,1017,1017',
'1017,1017,1017,1017,,,,1017,1017,,,,1017,,1017,1017,1017,1017,1017,1017',
'1017,,,,,,1017,1017,1017,1017,1017,1017,1017,,,1017,,,,,,1017,1017,1017',
'1017,1017,1017,1017,1017,1017,1017,1017,1017,,1017,1017,1017,,1017,1017',
',1017,1017,1017,,,,,,,,,,,,,,,,,,,,1017,,,1017,,,1017,1017,,,1017,,1017',
',,,1017,,,,,,,,1017,,,,,1017,1017,1017,1017,1017,1017,,,,1017,1017,',
',,,,,1017,,,1017,1017,1017,,,1017,1017,830,830,830,830,830,830,,,,830',
'830,,,,830,,830,830,830,830,830,830,830,,,,,,830,830,830,830,830,830',
'830,,,830,,,,,,830,830,830,830,830,830,830,830,830,830,830,830,,830',
'830,830,,830,830,,830,830,830,,,,,,,,,,,,,,,,,,,,830,,,830,,,830,830',
',,830,,830,,,,830,,,,,,,,830,,,,,830,830,830,830,830,830,,,,830,830',
',,,,,,830,,,830,830,830,,,830,830,996,996,996,996,996,996,,,,996,996',
',,,996,,996,996,996,996,996,996,996,,,,,,996,996,996,996,996,996,996',
',,996,,,,,,996,996,996,996,996,996,996,996,996,996,996,996,,996,996',
'996,,996,996,,996,996,996,,,,,,,,,,,,,,,,,,,,996,,,996,,,996,996,,,996',
',996,,,,996,,,,,,,,996,,,,,996,996,996,996,996,996,,,,996,996,,,,,,',
'996,,,996,996,996,,,996,996,783,783,783,783,783,783,,,,783,783,,,,783',
',783,783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,,,783',
',,,,,783,783,783,783,783,783,783,783,783,783,783,783,,783,783,783,,783',
'783,,783,783,783,,,,,,,,,,,,,,,,,,,,783,,,783,,,783,783,,,783,,783,',
',,783,,,,,,,,783,,,,,783,783,783,783,783,783,,,,783,783,,,,,,,783,,',
'783,783,783,,,783,783,599,599,599,599,599,599,,,,599,599,,,,599,,599',
'599,599,599,599,599,599,,,,,,599,599,599,599,599,599,599,,,599,,,,,',
'599,599,599,599,599,599,599,599,599,599,599,599,,599,599,599,,599,599',
',599,599,599,,,,,,,,,,,,,,,,,,,,599,,,599,,,599,599,,,599,,599,,,,599',
',,,,,,,599,,,,,599,599,599,599,599,599,,,,599,599,,,,,,,599,,,599,599',
'599,,,599,599,784,784,784,784,784,784,,,,784,784,,,,784,,784,784,784',
'784,784,784,784,,,,,,784,784,784,784,784,784,784,,,784,,,,,,784,784',
'784,784,784,784,784,784,784,784,784,784,,784,784,784,,784,784,,784,784',
'784,,,,,,,,,,,,,,,,,,,,784,,,784,,,784,784,,,784,,784,,,,784,,,,,,,',
'784,,,,,784,784,784,784,784,784,,,,784,784,,,,,,,784,,,784,784,784,',
',784,784,967,967,967,967,967,967,,,,967,967,,,,967,,967,967,967,967',
'967,967,967,,,,,,967,967,967,967,967,967,967,,,967,,,,,,967,967,967',
'967,967,967,967,967,967,967,967,967,,967,967,967,,967,967,,967,967,967',
',,,,,,,,,,,,,,,,,,,967,,,967,,,967,967,,,967,,967,,,,967,,,,,,,,967',
',,,,967,967,967,967,967,967,,,,967,967,,,,,,,967,,,967,967,967,,,967',
'967,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,2,,,,,,,2,,,2,2,2',
',,2,2,346,346,346,346,346,346,,,,346,346,,,,346,,346,346,346,346,346',
'346,346,,,,,,346,346,346,346,346,346,346,,,346,,,,,,346,346,346,346',
'346,346,346,346,346,346,346,346,,346,346,346,,346,346,,346,346,346,',
',,,,,,,,,,,,,,,,,,346,,,346,,,346,346,,,346,,346,,,,346,,,,,,,,346,',
',,,346,346,346,346,346,346,,,,346,346,,,,,,,346,,,346,346,346,,,346',
'346,821,821,821,,821,,,,821,821,,,,821,,821,821,821,821,821,821,821',
',,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821',
'821,821,821,,821,821,821,,821,821,,821,821,821,,,,,,,,,,,,,,,,,,,,821',
',,821,,,821,821,,,821,,,,,,821,,,,,,,,821,,,,,821,821,821,821,821,821',
',,,821,821,,,,,,,821,,,821,821,821,,,821,821,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,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,475,475,475,,,,475,475,,,,',
',,475,,475,475,475,475,,,475,475,8,8,8,8,8,,,,8,8,,,,8,,8,8,8,8,8,8',
'8,,,,,,8,8,8,8,8,8,8,,,8,,,,,,8,8,8,8,8,8,8,8,8,8,8,8,,8,8,8,,8,8,,8',
'8,8,,,,,,,,,,,,,,,,,,,,8,,,8,,,8,8,,,8,,8,,,,8,,,,,,,,8,,,,,8,8,8,8',
'8,8,,,,8,8,,,,,,,8,,,8,8,8,,,8,8,1040,1040,1040,,1040,,,,1040,1040,',
',,1040,,1040,1040,1040,1040,1040,1040,1040,,,,,,1040,1040,1040,1040',
'1040,1040,1040,,,1040,,,,,,,1040,,,1040,1040,1040,1040,1040,1040,1040',
'1040,1040,1040,1040,1040,,1040,1040,,1040,1040,1040,,,,,,,,,,,,,,,,',
',,,1040,,,1040,,,1040,1040,,,1040,,1040,,1040,,1040,,,,,,,,1040,,,,',
'1040,1040,1040,1040,1040,1040,,,,1040,1040,,,,,,,1040,,1040,1040,1040',
'1040,,,1040,1040,23,23,23,,23,,,,23,23,,,,23,,23,23,23,23,23,23,23,',
',,,,23,23,23,23,23,23,23,,,23,,,,,,,23,,,23,23,23,23,23,23,23,23,,23',
'23,23,,23,23,,23,23,23,,,,,,,,,,,,,,,,,,,,23,,,23,,,23,23,,,23,,,,,',
'23,,,,,,,,23,,,,,23,23,23,23,23,23,,,,23,23,,,,,,,23,,,23,23,23,,,23',
'23,991,991,991,,991,,,,991,991,,,,991,,991,991,991,991,991,991,991,',
',,,,991,991,991,991,991,991,991,,,991,,,,,,,991,,,991,991,991,991,991',
'991,991,991,,991,991,991,,991,991,,,,991,,,,,,,,,,,,,,,,,,,,991,,,991',
',,991,991,,,991,,,,,,,,,,,,,,,,,,,991,991,991,991,991,991,,,,991,991',
',,,,,,991,,,991,991,991,,,991,991,32,32,32,,32,,,,32,32,,,,32,,32,32',
'32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,,32,,,32,32,32,32',
'32,32,32,32,32,32,32,32,,32,32,,32,32,32,,,,,,,,,,,,,,,,,,,,32,,,32',
',,32,32,,,32,,32,,32,,32,,,,,,,,32,,,,,32,32,32,32,32,32,,,,32,32,,',
',,,,32,,32,32,32,32,,,32,32,33,33,33,,33,,,,33,33,,,,33,,33,33,33,33',
'33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33',
'33,33,33,33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33',
',,33,,33,,33,,33,,,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,,,,,,,33,',
'33,33,33,33,,,33,33,34,34,34,,34,,,,34,34,,,,34,,34,34,34,34,34,34,34',
',,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34',
'34,34,34,,34,34,,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34',
',34,,34,,,,,,,,34,,,,,34,34,34,34,34,34,,,,34,34,,,,,,,34,,34,34,34',
'34,,,34,34,37,37,37,,37,,,,37,37,,,,37,,37,37,37,37,37,37,37,,,,,,37',
'37,37,37,37,37,37,,,37,,,,,,,37,,,37,37,37,37,37,37,37,37,,37,37,37',
',37,37,,,,37,,,,,,,,,,,,,,,,,,,,37,,,37,,,37,37,,,37,,37,,,,,,,,,,,',
',,,,,37,37,37,37,37,37,,,,37,37,,,,,,,37,,,37,37,37,,,37,37,38,38,38',
',38,,,,38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38,38,38,38,38,38,38,',
',38,,,,,,,38,,,38,38,38,38,38,38,38,38,,38,38,38,,38,38,,,,38,,,,,,',
',,,,,,,,,,,,,38,,,38,,,38,38,,,38,,,,,,,,,,,,,,,,,,,38,38,38,38,38,38',
',,,38,38,,,,38,,,38,,,38,38,38,,,38,38,966,966,966,,966,,,,966,966,',
',,966,,966,966,966,966,966,966,966,,,,,,966,966,966,966,966,966,966',
',,966,,,,,,,966,,,966,966,966,966,966,966,966,966,,966,966,966,,966',
'966,,966,966,966,,,,,,,,,,,,,,,,,,,,966,,,966,,,966,966,,,966,,966,',
',,966,,,,,,,,966,,,,,966,966,966,966,966,966,,,,966,966,,,,,,,966,,',
'966,966,966,,,966,966,940,940,940,,940,,,,940,940,,,,940,,940,940,940',
'940,940,940,940,,,,,,940,940,940,940,940,940,940,,,940,,,,,,,940,,,940',
'940,940,940,940,940,940,940,,940,940,940,,940,940,,,,940,,,,,,,,,,,',
',,,,,,,,940,,,940,,,940,940,,,940,,,,,,,,,,,,,,,,,,,940,940,940,940',
'940,940,,,,940,940,,,,,,,940,,,940,940,940,,,940,940,45,45,45,,45,,',
',45,45,,,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45,45,45,45,,,45,,',
',,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,,45,45,45,,,,,,,,',
',,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45,45,45,45,45',
'45,,,,45,45,,,,,,,45,,,45,45,45,,,45,45,46,46,46,,46,,,,46,46,,,,46',
',46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46',
'46,46,46,46,46,46,,46,46,46,,46,46,,46,46,46,,,,,,,,,,,,,,,,,,,,46,',
',46,,,46,46,,,46,,,,,,46,,,,,,,,46,,,,,46,46,46,46,46,46,,,,46,46,,',
',,,,46,,,46,46,46,,,46,46,48,48,48,,48,,,,48,48,,,,48,,48,48,48,48,48',
'48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,,,48,,,48,48,48,48,48,48,48',
'48,,48,48,48,,48,48,,48,48,48,,,,,,,,,,,,,,,,,,,,48,,,48,,,48,48,,,48',
',,,,,48,,,,,,,,48,,,,,48,48,48,48,48,48,,,,48,48,,,,,,,48,,,48,48,48',
',,48,48,930,930,930,,930,,,,930,930,,,,930,,930,930,930,930,930,930',
'930,,,,,,930,930,930,930,930,930,930,,,930,,,,,,,930,,,930,930,930,930',
'930,930,930,930,,930,930,930,,930,930,,,,930,,,,,,,,,,,,,,,,,,,,930',
',,930,,,930,930,,,930,,,,,,,,,,,,,,,,,,,930,930,930,930,930,930,,,,930',
'930,,,,,,,930,,,930,930,930,,,930,930,918,918,918,,918,,,,918,918,,',
',918,,918,918,918,918,918,918,918,,,,,,918,918,918,918,918,918,918,',
',918,,,,,,,918,,,918,918,918,918,918,918,918,918,,918,918,918,,918,918',
',918,918,918,,,,,,,,,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,,,918,',
',,,,,,918,,,,,918,918,918,918,918,918,,,,918,918,,,,,,,918,,,918,918',
'918,,,918,918,917,917,917,,917,,,,917,917,,,,917,,917,917,917,917,917',
'917,917,,,,,,917,917,917,917,917,917,917,,,917,,,,,,,917,,,917,917,917',
'917,917,917,917,917,917,917,917,917,,917,917,,917,917,917,,,,,,,,,,',
',,,,,,,,,917,,,917,,,917,917,,,917,,,,917,,917,,,,,,,,917,,,,,917,917',
'917,917,917,917,,,,917,917,,,,,,,917,,917,917,917,917,,,917,917,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,68,68,68,,68,,,,68,68',
',,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68',
',,68,68,68,68,68,68,68,68,,68,68,68,,68,68,,68,68,68,,,,,,,,,,,,,,,',
',,,,68,,,68,,,68,68,,,68,,,,,,68,,,,,,,,68,,,,,68,68,68,68,68,68,,,',
'68,68,,,,,,,68,,,68,68,68,,,68,68,71,71,71,,71,,,,71,71,,,,71,,71,71',
'71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,,71,71,71,71',
'71,71,71,71,,71,71,71,,71,71,,71,71,71,,,,,,,,,,,,,,,,,,,,71,,,71,,',
'71,71,,,71,,,,,,71,,,,,,,,71,,,,,71,71,71,71,71,71,,,,71,71,71,,,,,71',
'71,,,71,71,71,,,71,71,72,72,72,,72,,,,72,72,,,,72,,72,72,72,72,72,72',
'72,,,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72',
',72,72,72,,72,72,,,,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,72,',
',,,,,,,,,,,,,,,72,72,72,72,72,72,,,,72,72,,,,,,,72,,,72,72,72,,,72,72',
'897,897,897,,897,,,,897,897,,,,897,,897,897,897,897,897,897,897,,,,',
',897,897,897,897,897,897,897,,,897,,,,,,,897,,,897,897,897,897,897,897',
'897,897,,897,897,897,,897,897,,897,897,897,,,,,,,,,,,,,,,,,,,,897,,',
'897,,,897,897,,,897,,,,,,897,,,,,,,,897,,,,,897,897,897,897,897,897',
',,,897,897,,,,,,,897,,,897,897,897,,,897,897,883,883,883,,883,,,,883',
'883,,,,883,,883,883,883,883,883,883,883,,,,,,883,883,883,883,883,883',
'883,,,883,,,,,,,883,,,883,883,883,883,883,883,883,883,,883,883,883,',
'883,883,,883,883,883,,,,,,,,,,,,,,,,,,,,883,,,883,,,883,883,,,883,,',
',,,883,,,,,,,,883,,,,,883,883,883,883,883,883,,,,883,883,,,,,,,883,',
',883,883,883,,,883,883,126,126,126,126,126,,,,126,126,,,,126,,126,126',
'126,126,126,126,126,,,,,,126,126,126,126,126,126,126,,,126,,,,,,126',
'126,126,126,126,126,126,126,126,126,126,126,,126,126,126,,126,126,,126',
'126,126,,,,,,,,,,,,,,,,,,,,126,,,126,,,126,126,,,126,,126,,,,126,,,',
',,,,126,,,,,126,126,126,126,126,126,,,,126,126,,,,,,126,126,,,126,126',
'126,,,126,126,131,131,131,,131,,,,131,131,,,,131,,131,131,131,131,131',
'131,131,,,,,,131,131,131,131,131,131,131,,,131,,,,,,,131,,,131,131,131',
'131,131,131,131,131,,131,131,131,,131,131,,131,131,131,,,,,,,,,,,,,',
',,,,,,131,,,131,,,131,131,,,131,,,,,,131,,,,,,,,131,,,,,131,131,131',
'131,131,131,,,,131,131,,,,,,,131,,,131,131,131,,,131,131,132,132,132',
',132,,,,132,132,,,,132,,132,132,132,132,132,132,132,,,,,,132,132,132',
'132,132,132,132,,,132,,,,,,,132,,,132,132,132,132,132,132,132,132,,132',
'132,132,,132,132,,132,132,132,,,,,,,,,,,,,,,,,,,,132,,,132,,,132,132',
',,132,,,,,,132,,,,,,,,132,,,,,132,132,132,132,132,132,,,,132,132,,,',
',,,132,,,132,132,132,,,132,132,133,133,133,,133,,,,133,133,,,,133,,133',
'133,133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,',
',133,,,133,133,133,133,133,133,133,133,,133,133,133,,133,133,,133,133',
'133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,133',
',,,,133,133,133,133,133,133,,,,133,133,,,,,,,133,,,133,133,133,,,133',
'133,134,134,134,,134,,,,134,134,,,,134,,134,134,134,134,134,134,134',
',,,,,134,134,134,134,134,134,134,,,134,,,,,,,134,,,134,134,134,134,134',
'134,134,134,,134,134,134,,134,134,,134,134,134,,,,,,,,,,,,,,,,,,,,134',
',,134,,,134,134,,,134,,,,,,134,,,,,,,,134,,,,,134,134,134,134,134,134',
',,,134,134,,,,,,,134,,,134,134,134,,,134,134,135,135,135,135,135,,,',
'135,135,,,,135,,135,135,135,135,135,135,135,,,,,,135,135,135,135,135',
'135,135,,,135,,,,,,135,135,,135,135,135,135,135,135,135,135,135,,135',
'135,135,,135,135,,135,135,135,,,,,,,,,,,,,,,,,,,,135,,,135,,,135,135',
',,135,,135,,,,135,,,,,,,,135,,,,,135,135,135,135,135,135,,,,135,135',
',,,,,,135,,,135,135,135,,,135,135,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,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,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,,,,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,,,,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',
',,,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,228,228,228,,,,228,228,,,,',
',,228,,228,228,228,228,,,228,228,274,274,274,,274,,,,274,274,,,,274',
',274,274,274,274,274,274,274,,,,,,274,274,274,274,274,274,274,,,274',
',,,,,,274,,,274,274,274,274,274,274,274,274,,274,274,274,,274,274,,274',
'274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274,,,274,,,,,,274,,,,,,',
',274,,,,,274,274,274,274,274,274,,,,274,274,,,,,,,274,,,274,274,274',
',,274,274,282,282,282,,282,,,,282,282,,,,282,,282,282,282,282,282,282',
'282,,,,,,282,282,282,282,282,282,282,,,282,,,,,,,282,,,282,282,282,282',
'282,282,282,282,282,282,282,282,,282,282,,282,282,282,,,,,,,,,,,,,,',
',,,,,282,,,282,,,282,282,,,282,,282,,282,,282,,,,,,,,282,,,,,282,282',
'282,282,282,282,,,,282,282,,,,,,,282,,282,282,282,282,,,282,282,289',
'289,289,,289,,,,289,289,,,,289,,289,289,289,289,289,289,289,,,,,,289',
'289,289,289,289,289,289,,,289,,,,,,,289,,,289,289,289,289,289,289,289',
'289,289,289,289,289,,289,289,,289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289',
',,289,289,,,289,,289,,289,,289,,,,,,,,289,,,,,289,289,289,289,289,289',
',,,289,289,,,,,,,289,,289,289,289,289,,,289,289,292,292,292,,292,,,',
'292,292,,,,292,,292,292,292,292,292,292,292,,,,,,292,292,292,292,292',
'292,292,,,292,,,,,,,292,,,292,292,292,292,292,292,292,292,292,292,292',
'292,,292,292,,292,292,292,,,,,,,,,,,,,,,,,,,,292,,,292,,,292,292,,,292',
',292,,292,,292,,,,,,,,292,,,,,292,292,292,292,292,292,,,,292,292,292',
',,,,,292,,292,292,292,292,,,292,292,800,800,800,,800,,,,800,800,,,,800',
',800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800,,,800',
',,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800,800,,800',
'800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800,,,,,,',
',800,,,,,800,800,800,800,800,800,,,,800,800,,,,,,,800,,,800,800,800',
',,800,800,299,299,299,,299,,,,299,299,,,,299,,299,299,299,299,299,299',
'299,,,,,,299,299,299,299,299,299,299,,,299,,,,,,,299,,,299,299,299,299',
'299,299,299,299,,299,299,299,,299,299,,299,299,299,,,,,,,,,,,,,,,,,',
',,299,,,299,,,299,299,,,299,,,,,,299,,,,,,,,299,,,,,299,299,299,299',
'299,299,,,,299,299,,,,,,,299,,,299,299,299,,,299,299,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,,,,301,301,,,,,,,301',
',,301,301,301,,,301,301,304,304,304,,304,,,,304,304,,,,304,,304,304',
'304,304,304,304,304,,,,,,304,304,304,304,304,304,304,,,304,,,,,,,304',
',,304,304,304,304,304,304,304,304,,304,304,304,,304,304,,304,304,304',
',,,,,,,,,,,,,,,,,,,304,,,304,,,304,304,,,304,,,,,,304,,,,,,,,304,,,',
',304,304,304,304,304,304,,,,304,304,,,,,,,304,,,304,304,304,,,304,304',
'305,305,305,,305,,,,305,305,,,,305,,305,305,305,305,305,305,305,,,,',
',305,305,305,305,305,305,305,,,305,,,,,,,305,,,305,305,305,305,305,305',
'305,305,,305,305,305,,305,305,,305,305,305,,,,,,,,,,,,,,,,,,,,305,,',
'305,,,305,305,,,305,,,,,,305,,,,,,,,305,,,,,305,305,305,305,305,305',
',,,305,305,,,,,,,305,,,305,305,305,,,305,305,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,311,311,311,,,,311,311',
',,,,,,311,,,311,311,311,,,311,311,778,778,778,,778,,,,778,778,,,,778',
',778,778,778,778,778,778,778,,,,,,778,778,778,778,778,778,778,,,778',
',,,,,,778,,,778,778,778,778,778,778,778,778,778,778,778,778,,778,778',
',778,778,778,,,,,,,,,,,,,,,,,,,,778,,,778,,,778,778,,,778,,778,,778',
',778,,,,,,,,778,,,,,778,778,778,778,778,778,,,,778,778,,,,,,,778,,778',
'778,778,778,,,778,778,319,319,319,,319,,,,319,319,,,,319,,319,319,319',
'319,319,319,319,,,,,,319,319,319,319,319,319,319,,,319,,,,,,,319,,,319',
'319,319,319,319,319,319,319,,319,319,319,,319,319,,,,319,,,,,,,,,,,',
',,,,,,,,319,,,319,,,319,319,,,319,,,,,,,,,,,,,,,,,,,319,319,319,319',
'319,319,,,,319,319,,,,319,,,319,,,319,319,319,,,319,319,766,766,766',
',766,,,,766,766,,,,766,,766,766,766,766,766,766,766,,,,,,766,766,766',
'766,766,766,766,,,766,,,,,,,766,,,766,766,766,766,766,766,766,766,,766',
'766,766,,766,766,,766,766,766,,,,,,,,,,,,,,,,,,,,766,,,766,,,766,766',
',,766,,766,,,,766,,,,,,,,766,,,,,766,766,766,766,766,766,,,,766,766',
',,,,,,766,,,766,766,766,,,766,766,745,745,745,,745,,,,745,745,,,,745',
',745,745,745,745,745,745,745,,,,,,745,745,745,745,745,745,745,,,745',
',,,,,,745,,,745,745,745,745,745,745,745,745,,745,745,745,,745,745,,745',
'745,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,745,745,,,745,,,,,,745,,,,,,',
',745,,,,,745,745,745,745,745,745,,,,745,745,,,,,,,745,,,745,745,745',
',,745,745,729,729,729,,729,,,,729,729,,,,729,,729,729,729,729,729,729',
'729,,,,,,729,729,729,729,729,729,729,,,729,,,,,,,729,,,729,729,729,729',
'729,729,729,729,729,729,729,729,,729,729,,729,729,729,,,,,,,,,,,,,,',
',,,,,729,,,729,,,729,729,,,729,,,,,,729,,,,,,,,729,,,,,729,729,729,729',
'729,729,,,,729,729,,,,,,,729,,729,729,729,729,,,729,729,726,726,726',
',726,,,,726,726,,,,726,,726,726,726,726,726,726,726,,,,,,726,726,726',
'726,726,726,726,,,726,,,,,,,726,,,726,726,726,726,726,726,726,726,726',
'726,726,726,,726,726,,726,726,726,,,,,,,,,,,,,,,,,,,,726,,,726,,,726',
'726,,,726,,726,,,,726,,,,,,,,726,,,,,726,726,726,726,726,726,,,,726',
'726,,,,,,,726,,726,726,726,726,,,726,726,721,721,721,,721,,,,721,721',
',,,721,,721,721,721,721,721,721,721,,,,,,721,721,721,721,721,721,721',
',,721,,,,,,,721,,,721,721,721,721,721,721,721,721,,721,721,721,,721',
'721,,721,721,721,,,,,,,,,,,,,,,,,,,,721,,,721,,,721,721,,,721,,721,',
',,721,,,,,,,,721,,,,,721,721,721,721,721,721,,,,721,721,,,,,,,721,,',
'721,721,721,,,721,721,336,336,336,,336,,,,336,336,,,,336,,336,336,336',
'336,336,336,336,,,,,,336,336,336,336,336,336,336,,,336,,,,,,,336,,,336',
'336,336,336,336,336,336,336,,336,336,336,,336,336,,,,336,,,,,,,,,,,',
',,,,,,,,336,,,336,,,336,336,,,336,,,,,,,,,,,,,,,,,,,336,336,336,336',
'336,336,,,,336,336,,,,,,,336,,,336,336,336,,,336,336,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,,,716',
',,,,,716,,,,,,,,716,,,,,716,716,716,716,716,716,,,,716,716,,,,,,,716',
',,716,716,716,,,716,716,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,715,715',
'715,715,715,,,,715,715,,,,,,,715,,,715,715,715,,,715,715,343,343,343',
',343,,,,343,343,,,,343,,343,343,343,343,343,343,343,,,,,,343,343,343',
'343,343,343,343,,,343,,,,,,,343,,,343,343,343,343,343,343,343,343,,343',
'343,343,,343,343,,343,343,343,,,,,,,,,,,,,,,,,,,,343,,,343,,,343,343',
',,343,,,,,,343,,,,,,,,343,,,,,343,343,343,343,343,343,,,,343,343,,,',
',,,343,,,343,343,343,,,343,343,345,345,345,,345,,,,345,345,,,,345,,345',
'345,345,345,345,345,345,,,,,,345,345,345,345,345,345,345,,,345,,,,,',
',345,,,345,345,345,345,345,345,345,345,,345,345,345,,345,345,,345,345',
'345,,,,,,,,,,,,,,,,,,,,345,,,345,345,,345,345,,,345,,,,,,345,,,,,,,',
'345,,,,,345,345,345,345,345,345,,,,345,345,,,,,,,345,,,345,345,345,',
',345,345,704,704,704,,704,,,,704,704,,,,704,,704,704,704,704,704,704',
'704,,,,,,704,704,704,704,704,704,704,,,704,,,,,,,704,,,704,704,704,704',
'704,704,704,704,,704,704,704,,704,704,,,,704,,,,,,,,,,,,,,,,,,,,704',
',,704,,,704,704,,,704,,,,,,,,,,,,,,,,,,,704,704,704,704,704,704,,,,704',
'704,,,,,,,704,,,704,704,704,,,704,704,348,348,348,348,348,,,,348,348',
',,,348,,348,348,348,348,348,348,348,,,,,,348,348,348,348,348,348,348',
',,348,,,,,,348,348,,348,348,348,348,348,348,348,348,348,,348,348,348',
',348,348,,348,348,348,,,,,,,,,,,,,,,,,,,,348,,,348,,,348,348,,,348,',
'348,,,,348,,,,,,,,348,,,,,348,348,348,348,348,348,,,,348,348,,,,,,,348',
',,348,348,348,,,348,348,349,349,349,,349,,,,349,349,,,,349,,349,349',
'349,349,349,349,349,,,,,,349,349,349,349,349,349,349,,,349,,,,,,,349',
',,349,349,349,349,349,349,349,349,349,349,349,349,,349,349,,349,349',
'349,,,,,,,,,,,,,,,,,,,,349,,,349,,,349,349,,,349,,349,,,,349,,,,,,,',
'349,,,,,349,349,349,349,349,349,,,,349,349,,,,,,,349,,349,349,349,349',
',,349,349,350,350,350,,350,,,,350,350,,,,350,,350,350,350,350,350,350',
'350,,,,,,350,350,350,350,350,350,350,,,350,,,,,,,350,,,350,350,350,350',
'350,350,350,350,350,350,350,350,,350,350,,350,350,350,,,,,,,,,,,,,,',
',,,,,350,,,350,,,350,350,,,350,,,,,,350,,,,,,,,350,,,,,350,350,350,350',
'350,350,,,,350,350,,,,,,,350,,350,350,350,350,,,350,350,701,701,701',
',701,,,,701,701,,,,701,,701,701,701,701,701,701,701,,,,,,701,701,701',
'701,701,701,701,,,701,,,,,,,701,,,701,701,701,701,701,701,701,701,,701',
'701,701,,701,701,,701,701,701,,,,,,,,,,,,,,,,,,,,701,,,701,,,701,701',
',,701,,,,,,701,,,,,,,,701,,,,,701,701,701,701,701,701,,,,701,701,,,',
',,,701,,,701,701,701,,,701,701,357,357,357,,357,,,,357,357,,,,357,,357',
'357,357,357,357,357,357,,,,,,357,357,357,357,357,357,357,,,357,,,,,',
',357,,,357,357,357,357,357,357,357,357,,357,357,357,,357,357,,357,357',
'357,,,,,,,,,,,,,,,,,,,,357,,,357,,,357,357,,,357,,,,,,357,,,,,,,,357',
',,,,357,357,357,357,357,357,,,,357,357,,,,,,,357,,,357,357,357,,,357',
'357,674,674,674,,674,,,,674,674,,,,674,,674,674,674,674,674,674,674',
',,,,,674,674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674',
'674,674,674,,674,674,674,,674,674,,674,674,674,,,,,,,,,,,,,,,,,,,,674',
',,674,,,674,674,,,674,,,,,,674,,,,,,,,674,,,,,674,674,674,674,674,674',
',,,674,674,,,,,,,674,,,674,674,674,,,674,674,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,673,668,668,668,,668,,,,668,668,,,,668,,668,668,668',
'668,668,668,668,,,,,,668,668,668,668,668,668,668,,,668,,,,,,,668,,,668',
'668,668,668,668,668,668,668,,668,668,668,,668,668,,668,668,668,,,,,',
',,,,,,,,,,,,,,668,,,668,,,668,668,,,668,,,,,,668,,,,,,,,668,,,,,668',
'668,668,668,668,668,,,,668,668,,,,,,,668,,,668,668,668,,,668,668,667',
'667,667,,667,,,,667,667,,,,667,,667,667,667,667,667,667,667,,,,,,667',
'667,667,667,667,667,667,,,667,,,,,,,667,,,667,667,667,667,667,667,667',
'667,,667,667,667,,667,667,,667,667,667,,,,,,,,,,,,,,,,,,,,667,,,667',
',,667,667,,,667,,,,,,667,,,,,,,,667,,,,,667,667,667,667,667,667,,,,667',
'667,,,,,,,667,,,667,667,667,,,667,667,666,666,666,,666,,,,666,666,,',
',666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666,666,666,',
',666,,,,,,,666,,,666,666,666,666,666,666,666,666,666,666,666,666,,666',
'666,,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666,,,666,,,,666',
',666,,,,,,,,666,,,,,666,666,666,666,666,666,,,,666,666,,,,,,,666,,666',
'666,666,666,,,666,666,371,371,371,,371,,,,371,371,,,,371,,371,371,371',
'371,371,371,371,,,,,,371,371,371,371,371,371,371,,,371,,,,,,,371,,,371',
'371,371,371,371,371,371,371,,371,371,371,,371,371,,,,371,,,,,,,,,,,',
',,,,,,,,371,,,371,,,371,371,,,371,,,,,,,,,,,,,,,,,,,371,371,371,371',
'371,371,,,,371,371,,,,,,,371,,,371,371,371,,,371,371,373,373,373,,373',
',,,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373',
'373,373,373,,,373,,,,,,,373,,,373,373,373,373,373,373,373,373,,373,373',
'373,,373,373,,,,373,,,,,,,,,,,,,,,,,,,,373,,,373,,,373,373,,,373,,,',
',,,,,,,,,,,,,,,373,373,373,373,373,373,,,,373,373,,,,,,,373,,,373,373',
'373,,,373,373,665,665,665,,665,,,,665,665,,,,665,,665,665,665,665,665',
'665,665,,,,,,665,665,665,665,665,665,665,,,665,,,,,,,665,,,665,665,665',
'665,665,665,665,665,665,665,665,665,,665,665,,665,665,665,,,,,,,,,,',
',,,,,,,,,665,,,665,,,665,665,,,665,,665,,665,,665,,,,,,,,665,,,,,665',
'665,665,665,665,665,,,,665,665,,,,,,,665,,665,665,665,665,,,665,665',
'662,662,662,,662,,,,662,662,,,,662,,662,662,662,662,662,662,662,,,,',
',662,662,662,662,662,662,662,,,662,,,,,,,662,,,662,662,662,662,662,662',
'662,662,,662,662,662,,662,662,,662,662,662,,,,,,,,,,,,,,,,,,,,662,,',
'662,,,662,662,,,662,,,,,,662,,,,,,,,662,,,,,662,662,662,662,662,662',
',,,662,662,,,,,,,662,,,662,662,662,,,662,662,659,659,659,,659,,,,659',
'659,,,,659,,659,659,659,659,659,659,659,,,,,,659,659,659,659,659,659',
'659,,,659,,,,,,,659,,,659,659,659,659,659,659,659,659,659,659,659,659',
',659,659,,659,659,659,,,,,,,,,,,,,,,,,,,,659,,,659,,,659,659,,,659,',
'659,,659,,659,,,,,,,,659,,,,,659,659,659,659,659,659,,,,659,659,,,,',
',,659,,659,659,659,659,,,659,659,658,658,658,,658,,,,658,658,,,,658',
',658,658,658,658,658,658,658,,,,,,658,658,658,658,658,658,658,,,658',
',,,,,,658,,,658,658,658,658,658,658,658,658,,658,658,658,,658,658,,658',
'658,658,,,,,,,,,,,,,,,,,,,,658,,,658,,,658,658,,,658,,,,,,658,,,,,,',
',658,,,,,658,658,658,658,658,658,,,,658,658,,,,,,,658,,,658,658,658',
',,658,658,657,657,657,,657,,,,657,657,,,,657,,657,657,657,657,657,657',
'657,,,,,,657,657,657,657,657,657,657,,,657,,,,,,,657,,,657,657,657,657',
'657,657,657,657,,657,657,657,,657,657,,657,657,657,,,,,,,,,,,,,,,,,',
',,657,,,657,,,657,657,,,657,,657,,,,657,,,,,,,,657,,,,,657,657,657,657',
'657,657,,,,657,657,,,,,,,657,,,657,657,657,,,657,657,628,628,628,,628',
',,,628,628,,,,628,,628,628,628,628,628,628,628,,,,,,628,628,628,628',
'628,628,628,,,628,,,,,,,628,,,628,628,628,628,628,628,628,628,,628,628',
'628,,628,628,,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628',
',,,,,628,,,,,,,,628,,,,,628,628,628,628,628,628,,,,628,628,,,,,,,628',
',,628,628,628,,,628,628,622,622,622,,622,,,,622,622,,,,622,,622,622',
'622,622,622,622,622,,,,,,622,622,622,622,622,622,622,,,622,,,,,,,622',
',,622,622,622,622,622,622,622,622,,622,622,622,,622,622,,622,622,622',
',,,,,,,,,,,,,,,,,,,622,,,622,,,622,622,,,622,,,,,,622,,,,,,,,622,,,',
',622,622,622,622,622,622,,,,622,622,,,,,,,622,,,622,622,622,,,622,622',
'610,610,610,,610,,,,610,610,,,,610,,610,610,610,610,610,610,610,,,,',
',610,610,610,610,610,610,610,,,610,,,,,,,610,,,610,610,610,610,610,610',
'610,610,610,610,610,610,,610,610,,610,610,610,,,,,,,,,,,,,,,,,,,,610',
',,610,,,610,610,,,610,,610,,610,,610,,,,,,,,610,,,,,610,610,610,610',
'610,610,,,,610,610,,,,,,,610,,610,610,610,610,,,610,610,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,,,,587,587,,,',
',,,587,,,587,587,587,,,587,587,553,553,553,,553,,,,553,553,,,,553,,553',
'553,553,553,553,553,553,,,,,,553,553,553,553,553,553,553,,,553,,,,,',
',553,,,553,553,553,553,553,553,553,553,,553,553,553,,553,553,,553,553',
'553,,,,,,,,,,,,,,,,,,,,553,,,553,,,553,553,,,553,,,,,,553,,,,,,,,553',
',,,,553,553,553,553,553,553,,,,553,553,,,,,,,553,,,553,553,553,,,553',
'553,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',
',,,548,548,,,,,,,548,,,548,548,548,,,548,548,431,431,431,,431,,,,431',
'431,,,,431,,431,431,431,431,431,431,431,,,,,,431,431,431,431,431,431',
'431,,,431,,,,,,,431,,,431,431,431,431,431,431,431,431,,431,431,431,',
'431,431,,431,431,431,,,,,,,,,,,,,,,,,,,,431,,,431,,,431,431,,,431,,',
',,,431,,,,,,,,431,,,,,431,431,431,431,431,431,,,,431,431,,,,,,,431,',
',431,431,431,,,431,431,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,544,544,,,544,544,538,538,538,,538',
',,,538,538,,,,538,,538,538,538,538,538,538,538,,,,,,538,538,538,538',
'538,538,538,,,538,,,,,,,538,,,538,538,538,538,538,538,538,538,538,538',
'538,538,,538,538,,538,538,538,,,,,,,,,,,,,,,,,,,,538,,,538,,,538,538',
',,538,,538,,538,,538,,,,,,,,538,,,,,538,538,538,538,538,538,,,,538,538',
',,,,,,538,,538,538,538,538,,,538,538,536,536,536,,536,,,,536,536,,,',
'536,,536,536,536,536,536,536,536,,,,,,536,536,536,536,536,536,536,,',
'536,,,,,,,536,,,536,536,536,536,536,536,536,536,,536,536,536,,536,536',
',,,536,,,,,,,,,,,,,,,,,,,,536,,,536,,,536,536,,,536,,,,,,,,,,,,,,,,',
',,536,536,536,536,536,536,,,,536,536,,,,,,,536,,,536,536,536,,,536,536',
'529,529,529,529,529,,,,529,529,,,,529,,529,529,529,529,529,529,529,',
',,,,529,529,529,529,529,529,529,,,529,,,,,,529,529,529,529,529,529,529',
'529,529,529,529,529,,529,529,529,,529,529,,529,529,529,,,,,,,,,,,,,',
',,,,,,529,,,529,,,529,529,,,529,,529,,,,529,,,,,,,,529,,,,,529,529,529',
'529,529,529,,,,529,529,,,,,,529,529,,,529,529,529,,,529,529,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,523',
',,,,,,523,,,523,523,523,,,523,523,521,521,521,,521,,,,521,521,,,,521',
',521,521,521,521,521,521,521,,,,,,521,521,521,521,521,521,521,,,521',
',,,,,,521,,,521,521,521,521,521,521,521,521,521,521,521,521,,521,521',
',521,521,521,,,,,,,,,,,,,,,,,,,,521,,,521,,,521,521,,,521,,,,521,,521',
',,,,,,,521,,,,,521,521,521,521,521,521,,,,521,521,,,,,,,521,,521,521',
'521,521,,,521,521,518,518,518,,518,,,,518,518,,,,518,,518,518,518,518',
'518,518,518,,,,,,518,518,518,518,518,518,518,,,518,,,,,,,518,,,518,518',
'518,518,518,518,518,518,518,518,518,518,,518,518,,518,518,518,,,,,,',
',,,,,,,,,,,,,518,,,518,,,518,518,,,518,,518,,518,,518,,,,,,,,518,,,',
',518,518,518,518,518,518,,,,518,518,,,,,,,518,,518,518,518,518,,,518',
'518,479,479,479,,479,,,,479,479,,,,479,,479,479,479,479,479,479,479',
',,,,,479,479,479,479,479,479,479,,,479,,,,,,,479,,,479,479,479,479,479',
'479,479,479,,479,479,479,,479,479,,479,479,479,,,,,,,,,,,,,,,,,,,,479',
',,479,,,479,479,,,479,,,,,,479,,,,,,,,479,,,,,479,479,479,479,479,479',
',,,479,479,,,,,,,479,,,479,479,479,,,479,479,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,478,,,,,,,478,',
',478,478,478,,,478,478,477,477,477,,477,,,,477,477,,,,477,,477,477,477',
'477,477,477,477,,,,,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477',
'477,477,477,477,477,477,477,,477,477,477,,477,477,,477,477,477,,,,,',
',,,,,,,,,,,,,,477,,,477,,,477,477,,,477,,,,,,477,,,,,,,,477,,,,,477',
'477,477,477,477,477,,,,477,477,,,,,,,477,,,477,477,477,,,477,477,232',
'232,232,,232,,,,232,232,,,,232,,232,232,232,232,232,232,232,,,,,,232',
'232,232,232,232,232,232,,,232,,,,,,,232,,,232,232,232,232,232,232,232',
'232,,232,232,232,,232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232',
',,232,232,,,232,,,,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,232',
'232,,,,,,,232,,,232,232,232,,,232,232,233,233,233,,233,,,,233,233,,',
',233,,233,233,233,233,233,233,233,,,,,,233,233,233,233,233,233,233,',
',233,,,,,,,233,,,233,233,233,233,233,233,233,233,,233,233,233,,233,233',
',233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233,,,,,,233,',
',,,,,,233,,,,,233,233,233,233,233,233,,,,233,233,,,,,,,233,,,233,233',
'233,,,233,233,234,234,234,,234,,,,234,234,,,,234,,234,234,234,234,234',
'234,234,,,,,,234,234,234,234,234,234,234,,,234,,,,,,,234,,,234,234,234',
'234,234,234,234,234,,234,234,234,,234,234,,234,234,234,,,,,,,,,,,,,',
',,,,,,234,,,234,,,234,234,,,234,,,,,,234,,,,,,,,234,,,,,234,234,234',
'234,234,234,,,,234,234,234,,,,,,234,,,234,234,234,,,234,234,838,838',
'838,,838,,,,838,838,,,,838,,838,838,838,838,838,838,838,,,,,,838,838',
'838,838,838,838,838,,,838,,,,,,,838,,,838,838,838,838,838,838,838,838',
',838,838,838,,838,838,,838,838,838,,,,,,,,,,,,,,,,,,,,838,,,838,,,838',
'838,,,838,,,,,,838,,,,,,,,838,,,,,838,838,838,838,838,838,,,,838,838',
',,,,,,838,,,838,838,838,,,838,838,825,825,825,,825,,,,825,825,,,,825',
',825,825,825,825,825,825,825,,,,,,825,825,825,825,825,825,825,,,825',
',,,,,,825,,,825,825,825,825,825,825,825,825,,825,825,825,,825,825,,825',
'825,825,,,,,,,,,,,,,,,,,,,,825,,,825,,,825,825,,,825,,,,,,825,,,,,,',
',825,,,,,825,825,825,825,825,825,,,,825,825,,,,,,,825,,,825,825,825',
',,825,825,823,823,823,,823,,,,823,823,,,,823,,823,823,823,823,823,823',
'823,,,,,,823,823,823,823,823,823,823,,,823,,,,,,,823,,,823,823,823,823',
'823,823,823,823,,823,823,823,,823,823,,823,823,823,,,,,,,,,,,,,,,,,',
',,823,,,823,,,823,823,,,823,,,,,,823,,,,,,,,823,,,,,823,823,823,823',
'823,823,,,,823,823,,,,,,,823,,,823,823,823,,,823,823,822,822,822,,822',
',,,822,822,,,,822,,822,822,822,822,822,822,822,,,,,,822,822,822,822',
'822,822,822,,,822,,,,,,,822,,,822,822,822,822,822,822,822,822,,822,822',
'822,,822,822,,822,822,822,,,,,,,,,,,,,,,,,,,,822,,,822,,,822,822,,,822',
',,,,,822,,,,,,,,822,,,,,822,822,822,822,822,822,,,,822,822,,,,,,,822',
',,822,822,822,,,822,822,820,820,820,,820,,,,820,820,,,,820,,820,820',
'820,820,820,820,820,,,,,,820,820,820,820,820,820,820,,,820,,,,,,,820',
',,820,820,820,820,820,820,820,820,,820,820,820,,820,820,,820,820,820',
',,,,,,,,,,,,,,,,,,,820,,,820,,,820,820,,,820,,,,,,820,,,,,,,,820,,,',
',820,820,820,820,820,820,,,,820,820,,,,,,,820,,,820,820,820,,,820,820',
'245,245,245,,245,,,,245,245,,,,245,,245,245,245,245,245,245,245,,,,',
',245,245,245,245,245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245',
'245,245,,245,245,245,,245,245,,245,245,245,,,,,,,,,,,,,,,,,,,,245,,',
'245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,,,245,245,245,245,245,245',
',,,245,245,,,,,,,245,,,245,245,245,,,245,245,807,807,807,,807,,,,807',
'807,,,,807,,807,807,807,807,807,807,807,,,,,,807,807,807,807,807,807',
'807,,,807,,,,,,,807,,,807,807,807,807,807,807,807,807,,807,807,807,',
'807,807,,807,807,807,,,,,,,,,,,,,,,,,,,,807,,,807,,,807,807,,,807,,',
',,,807,,,,,,,,807,,,,,807,807,807,807,807,807,,,,807,807,,,,,,,807,',
',807,807,807,,,807,807,248,248,248,,248,,,,248,248,,,,248,,248,248,248',
'248,248,248,248,,,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248',
'248,248,248,248,248,248,248,,248,248,248,,248,248,,248,248,248,,,,,',
',,,,,,,,,,,,,,248,,,248,,,248,248,,,248,,,,,,248,,,,,,,,248,,,,,248',
'248,248,248,248,248,,,,248,248,,,,,,,248,,,248,248,248,,,248,248,249',
'249,249,,249,,,,249,249,,,,249,,249,249,249,249,249,249,249,,,,,,249',
'249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249,249,249,249,249',
'249,,249,249,249,,249,249,,249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249',
',,249,249,,,249,,,,,,249,,,,,,,,249,,,,,249,249,249,249,249,249,,,,249',
'249,,,,,,,249,,,249,249,249,,,249,249,250,250,250,,250,,,,250,250,,',
',250,,250,250,250,250,250,250,250,,,,,,250,250,250,250,250,250,250,',
',250,,,,,,,250,,,250,250,250,250,250,250,250,250,,250,250,250,,250,250',
',250,250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,',
',,,,,,250,,,,,250,250,250,250,250,250,,,,250,250,,,,,,,250,,,250,250',
'250,,,250,250,251,251,251,,251,,,,251,251,,,,251,,251,251,251,251,251',
'251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251',
'251,251,251,251,251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,',
',,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251',
'251,251,251,,,,251,251,,,,,,,251,,,251,251,251,,,251,251,252,252,252',
',252,,,,252,252,,,,252,,252,252,252,252,252,252,252,,,,,,252,252,252',
'252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252,,252',
'252,252,,252,252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252',
',,252,,,,,,252,,,,,,,,252,,,,,252,252,252,252,252,252,,,,252,252,,,',
',,,252,,,252,252,252,,,252,252,253,253,253,,253,,,,253,253,,,,253,,253',
'253,253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,',
',253,,,253,253,253,253,253,253,253,253,,253,253,253,,253,253,,253,253',
'253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,253',
',,,,253,253,253,253,253,253,,,,253,253,,,,,,,253,,,253,253,253,,,253',
'253,254,254,254,,254,,,,254,254,,,,254,,254,254,254,254,254,254,254',
',,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254',
'254,254,254,,254,254,254,,254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254',
',,254,,,254,254,,,254,,,,,,254,,,,,,,,254,,,,,254,254,254,254,254,254',
',,,254,254,,,,,,,254,,,254,254,254,,,254,254,255,255,255,,255,,,,255',
'255,,,,255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255,255',
'255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255,',
'255,255,,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,',
',,,255,,,,,,,,255,,,,,255,255,255,255,255,255,,,,255,255,,,,,,,255,',
',255,255,255,,,255,255,256,256,256,,256,,,,256,256,,,,256,,256,256,256',
'256,256,256,256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256',
'256,256,256,256,256,256,256,,256,256,256,,256,256,,256,256,256,,,,,',
',,,,,,,,,,,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,256,,,,,256',
'256,256,256,256,256,,,,256,256,,,,,,,256,,,256,256,256,,,256,256,257',
'257,257,,257,,,,257,257,,,,257,,257,257,257,257,257,257,257,,,,,,257',
'257,257,257,257,257,257,,,257,,,,,,,257,,,257,257,257,257,257,257,257',
'257,,257,257,257,,257,257,,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257',
',,257,257,,,257,,,,,,257,,,,,,,,257,,,,,257,257,257,257,257,257,,,,257',
'257,,,,,,,257,,,257,257,257,,,257,257,258,258,258,,258,,,,258,258,,',
',258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,',
',258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258',
',258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,',
',,,,,,258,,,,,258,258,258,258,258,258,,,,258,258,,,,,,,258,,,258,258',
'258,,,258,258,259,259,259,,259,,,,259,259,,,,259,,259,259,259,259,259',
'259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259',
'259,259,259,259,259,,259,259,259,,259,259,,259,259,259,,,,,,,,,,,,,',
',,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,259,,,,,259,259,259',
'259,259,259,,,,259,259,,,,,,,259,,,259,259,259,,,259,259,260,260,260',
',260,,,,260,260,,,,260,,260,260,260,260,260,260,260,,,,,,260,260,260',
'260,260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260',
'260,260,,260,260,,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260',
',,260,,,,,,260,,,,,,,,260,,,,,260,260,260,260,260,260,,,,260,260,,,',
',,,260,,,260,260,260,,,260,260,261,261,261,,261,,,,261,261,,,,261,,261',
'261,261,261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,',
',261,,,261,261,261,261,261,261,261,261,,261,261,261,,261,261,,261,261',
'261,,,,,,,,,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,261',
',,,,261,261,261,261,261,261,,,,261,261,,,,,,,261,,,261,261,261,,,261',
'261,262,262,262,,262,,,,262,262,,,,262,,262,262,262,262,262,262,262',
',,,,,262,262,262,262,262,262,262,,,262,,,,,,,262,,,262,262,262,262,262',
'262,262,262,,262,262,262,,262,262,,262,262,262,,,,,,,,,,,,,,,,,,,,262',
',,262,,,262,262,,,262,,,,,,262,,,,,,,,262,,,,,262,262,262,262,262,262',
',,,262,262,,,,,,,262,,,262,262,262,,,262,262,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,,,,,,,263,',
',263,263,263,,,263,263,264,264,264,,264,,,,264,264,,,,264,,264,264,264',
'264,264,264,264,,,,,,264,264,264,264,264,264,264,,,264,,,,,,,264,,,264',
'264,264,264,264,264,264,264,,264,264,264,,264,264,,264,264,264,,,,,',
',,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,,,,,264,,,,,,,,264,,,,,264',
'264,264,264,264,264,,,,264,264,,,,,,,264,,,264,264,264,,,264,264,265',
'265,265,,265,,,,265,265,,,,265,,265,265,265,265,265,265,265,,,,,,265',
'265,265,265,265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265',
'265,,265,265,265,,265,265,,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265',
',,265,265,,,265,,,,,,265,,,,,,,,265,,,,,265,265,265,265,265,265,,,,265',
'265,,,,,,,265,,,265,265,265,,,265,265,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,,,266,266',
'266,,,266,266,267,267,267,,267,,,,267,267,,,,267,,267,267,267,267,267',
'267,267,,,,,,267,267,267,267,267,267,267,,,267,,,,,,,267,,,267,267,267',
'267,267,267,267,267,,267,267,267,,267,267,,267,267,267,,,,,,,,,,,,,',
',,,,,,267,,,267,,,267,267,,,267,,,,,,267,,,,,,,,267,,,,,267,267,267',
'267,267,267,,,,267,267,,,,,,,267,,,267,267,267,,,267,267,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',
',,268,,,,,,268,,,,,,,,268,,,,,268,268,268,268,268,268,,,,268,268,,,',
',,,268,,,268,268,268,,,268,268,269,269,269,,269,,,,269,269,,,,269,,269',
'269,269,269,269,269,269,,,,,,269,269,269,269,269,269,269,,,269,,,,,',
',269,,,269,269,269,269,269,269,269,269,,269,269,269,,269,269,,269,269',
'269,,,,,,,,,,,,,,,,,,,,269,,,269,,,269,269,,,269,,,,,,269,,,,,,,,269',
',,,,269,269,269,269,269,269,,,,269,269,,,,,,,269,,,269,269,269,60,,269',
'269,,,,60,60,60,,,60,60,60,567,60,567,567,567,567,567,,,,,60,60,60,',
',567,,,,,60,60,,60,60,60,60,60,,,,,,,,,,567,,,,,,,,,567,567,567,567',
',60,60,60,60,60,60,60,60,60,60,60,60,60,60,,,60,60,60,,,60,,,60,,,60',
'60,,60,567,60,,60,,60,60,60,60,60,60,60,,60,,60,985,,985,985,985,985',
'985,,,,,,60,60,60,60,985,60,30,60,,,,,60,30,30,30,,,30,30,30,,30,,,',
'985,,,,,30,30,30,,985,985,985,985,,,,30,30,,30,30,30,30,30,,,,,,,,,',
',,,,,,,,,,,,985,,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,456,30,,30,,,,456,456,456,30,,456,456,456,739,456,739',
'739,739,739,739,,,,456,456,456,,,,739,,,,,456,456,,456,456,456,456,456',
',,,,,,,,,739,,,,,,,,,739,739,739,739,,456,456,456,456,456,456,456,456',
'456,456,456,456,456,456,,,456,456,456,,,456,,456,456,,,456,456,,456',
'739,456,,456,,456,456,456,456,456,456,456,,456,456,456,,,,,,,,,,,,,456',
'456,466,456,,456,,,,466,466,466,456,,466,466,466,741,466,741,741,741',
'741,741,,,,466,466,466,466,,,741,,,,,466,466,,466,466,466,466,466,,',
',,,,,,,741,,,,,,,,,741,741,741,741,,466,466,466,466,466,466,466,466',
'466,466,466,466,466,466,,,466,466,466,,,466,,,466,,,466,466,,466,741',
'466,,466,,466,466,466,466,466,466,466,,466,466,466,743,,743,743,743',
'743,743,,,,,,466,466,466,466,743,466,505,466,,,,,466,505,505,505,,,505',
'505,505,,505,,,,743,,,,,505,505,,,,,743,743,,,,505,505,,505,505,505',
'505,505,,,,,,,,,,,,,,,,,,,,,,743,,,,,,,,,,,,,505,,465,,,,,505,,465,465',
'465,505,505,465,465,465,1089,465,1089,1089,1089,1089,1089,,,,465,465',
'465,465,,,1089,505,505,,,465,465,,465,465,465,465,465,,,505,,,,,505',
',1089,,,,,505,,,,,,1089,1089,,465,465,465,465,465,465,465,465,465,465',
'465,465,465,465,,,465,465,465,,,465,,,465,,,465,465,,465,1089,465,,465',
',465,465,465,465,465,465,465,,465,465,465,987,,987,987,987,987,987,',
',,,,465,465,465,465,987,465,31,465,,,,,465,31,31,31,,,31,31,31,,31,',
',,987,,,,,,31,31,,,,987,987,,,,31,31,,31,31,31,31,31,,,,,,,,,,,,,,,',
',,,,,,987,,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,654,654,654,654,654,654,654,654,654,654,654',
'654,654,654,654,654,654,654,654,654,654,654,654,654,,,,654,654,654,654',
'654,654,654,654,654,654,,,,,,654,654,654,654,654,654,654,654,654,,,654',
',,,,,,,,654,654,,654,654,654,654,654,654,654,,,654,654,,,,654,654,654',
'654,,,,,,,,,,,,,,654,654,,654,654,654,654,654,654,654,654,654,654,654',
',,654,654,,,,,,,,,,654,,,,,,,,,654,,,,,654,422,422,422,422,422,422,422',
'422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,422',
',,,422,422,422,422,422,422,422,422,422,422,,,,,,422,422,422,422,422',
'422,422,422,422,,,422,,,,,,,,,422,422,,422,422,422,422,422,422,422,',
',422,422,,,,422,422,422,422,,,,,,,,,,,,,,422,422,,422,422,422,422,422',
'422,422,422,422,422,422,,,422,422,,,,,,,,,,422,,,,,,,,,422,,,,,422,103',
'103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103',
'103,103,103,103,103,103,,,,103,103,103,103,103,103,103,103,103,103,',
',,,,103,103,103,103,103,103,103,103,103,103,103,103,,103,,,,,,,103,103',
',103,103,103,103,103,103,103,,,103,103,,,,103,103,103,103,,,,,,,,,,',
',,,103,103,,103,103,103,103,103,103,103,103,103,103,103,,,103,,,,,,',
',,,,,,,,,,,,,103,,,,,103,787,787,787,787,787,787,787,787,787,787,787',
'787,787,787,787,787,787,787,787,787,787,787,787,787,,,,787,787,787,787',
'787,787,787,787,787,787,,,,,,787,787,787,787,787,787,787,787,787,,,787',
',,,,,,,,787,787,,787,787,787,787,787,787,787,,,787,787,,,,787,787,787',
'787,,,,,,,,,,,,,,787,787,,787,787,787,787,787,787,787,787,787,787,787',
',,787,,,,,,,,,,,,,,,,,,,,787,,,,,787,75,75,75,75,75,75,75,75,75,75,75',
'75,75,75,75,75,75,75,75,75,75,75,75,75,,,,75,75,75,75,75,75,75,75,75',
'75,,,,,,75,75,75,75,75,75,75,75,75,75,75,75,,75,,,,,,,75,75,,75,75,75',
'75,75,75,75,,,75,75,,,,75,75,75,75,,,,,,75,,,,,,,,75,75,,75,75,75,75',
'75,75,75,75,75,75,75,,,75,,,,,,,,,,,,,,,,,,,,75,,,,,75,11,11,11,11,11',
'11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11',
'11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11,11,,11,,,,,,,,',
'11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11',
',11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,,11,,,,,,,,,11,,,',
',11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
'12,12,,,,12,12,12,12,12,12,12,12,12,12,,,,,,12,12,12,12,12,12,12,12',
'12,,,12,,,,,,,,,12,12,,12,12,12,12,12,12,12,,,12,12,,,,12,12,12,12,',
',,,,,,,,,,,,12,12,,12,12,12,12,12,12,12,12,12,12,12,,,12,12,,,,,,,,',
',12,,1042,1042,,,1042,,,12,,,,,12,1042,1042,,1042,1042,1042,1042,1042',
'1042,1042,,,1042,1042,,,,1042,1042,1042,1042,,,,,,1042,,,,,,,,1042,1042',
',1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,,,1042,,,,,',
',,,,550,550,,,550,,,,,,1042,,,550,550,1042,550,550,550,550,550,550,550',
',,550,550,,,,550,550,550,550,,,,,,550,,,,,,,,550,550,,550,550,550,550',
'550,550,550,550,550,550,550,,,550,,,,,,,,,,230,230,,,230,,,,,,550,,',
'230,230,550,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,,,,,,,,,,660,660,,,660,,,,,,230,,,660,660,230,660,660,660,660',
'660,660,660,,,660,660,,,,660,660,660,660,,,,,,660,,,,,,,,660,660,,660',
'660,660,660,660,660,660,660,660,660,660,,,660,,,,,,,,,,661,661,,,661',
',,,,,660,,,661,661,660,661,661,661,661,661,661,661,,,661,661,,,,661',
'661,661,661,,,,,,661,,,,,,,,661,661,,661,661,661,661,661,661,661,661',
'661,661,661,,,661,,,,,,,,,,474,474,,,474,,,,,,661,,,474,474,661,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,,,,,,,,',
',776,776,,,776,,,,,,474,,,776,776,474,776,776,776,776,776,776,776,,',
'776,776,,,,776,776,776,776,,,,,,776,,,,,,,,776,776,,776,776,776,776',
'776,776,776,776,776,776,776,,,776,,,,,,,,,,549,549,,,549,,,,,,776,,',
'549,549,776,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,,,,,,,,,,473,473,,,473,,,,,,549,,,473,473,549,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,,,,,,,,,,229,229,,,229',
',,,,,473,,,229,229,473,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,,,,,,,,,,777,777,,,777,,,,,,229,,,777,777,229,777',
'777,777,777,777,777,777,,,777,777,,,,777,777,777,777,,,,,,777,,,,,,',
',777,777,,777,777,777,777,777,777,777,777,777,777,777,,,777,,,,,,,,',
',1036,1036,,,1036,,,,,,777,,,1036,1036,777,1036,1036,1036,1036,1036',
'1036,1036,,,1036,1036,,,,1036,1036,1036,1036,,,,,,1036,,,,,,,,1036,1036',
',1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,,,1036,,,,,',
',,,,611,611,,,611,,,,,,1036,,,611,611,1036,611,611,611,611,611,611,611',
',,611,611,,,,611,611,611,611,,,,,,611,,,,,,,,611,611,,611,611,611,611',
'611,611,611,611,611,611,611,,,611,,,,,,,,,,612,612,,,612,,,,,,611,,',
'612,612,611,612,612,612,612,612,612,612,,,612,612,,,,612,612,612,612',
',,,,,612,,,,,,,,612,612,,612,612,612,612,612,612,612,612,612,612,612',
',,612,,,,,,,,,,1041,1041,,,1041,,,,,,612,,,1041,1041,612,1041,1041,1041',
'1041,1041,1041,1041,,,1041,1041,,,,1041,1041,1041,1041,,,,,,1041,,,',
',,,,1041,1041,,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041',
',,1041,,,,,,,,,,539,539,,,539,,,,,,1041,,,539,539,1041,539,539,539,539',
'539,539,539,,,539,539,,,,539,539,539,539,,,,,,539,,,,,,,,539,539,,539',
'539,539,539,539,539,539,539,539,539,539,,1060,539,1060,1060,1060,1060',
'1060,,,,,278,278,,,278,1060,,,,,539,,,278,278,539,278,278,278,278,278',
'278,278,,,278,278,1060,,,278,278,278,278,,,1060,1060,1060,1060,,,,,',
',,278,278,,278,278,278,278,278,278,278,278,278,278,278,,,278,1046,,1046',
'1046,1046,1046,1046,,1060,540,540,,,540,,,1046,,,278,,,540,540,278,540',
'540,540,540,540,540,540,,,540,540,,,1046,540,540,540,540,,,,,,540,1046',
'1046,,,,,,540,540,,540,540,540,540,540,540,540,540,540,540,540,,353',
'540,353,353,353,353,353,,,,,,1046,,,,353,,,,,540,,,,1064,540,1064,1064',
'1064,1064,1064,,,,,,,353,353,1062,1064,1062,1062,1062,1062,1062,353',
'353,353,353,,,,,828,1062,828,828,828,828,828,,1064,,,,,,,,828,,,1064',
'1064,,,1062,,,,,353,,,,,,1062,1062,,,828,785,,785,785,785,785,785,,828',
'828,828,828,,,1064,786,785,786,786,786,786,786,,,,,,,,1062,,786,,,,',
'828,,785,,,,,,828,,,785,785,785,785,,1066,786,1066,1066,1066,1066,1066',
',,,786,786,786,786,,,1066,,,,,,,,,,,,,,,785,,,,,,,1066,,,,,,,,786,,',
'1066,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066' ]
        racc_action_check = arr = ::Array.new(26144, 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,  1243,  4868,  1215,   nil,   673,   nil,   nil,  5429,  1751,
   nil, 24346, 24484,   -58,   nil,   944,   943,   575,   988,  1346,
   403,   nil,   -70,  5709,  1766,   926,   nil,   373,   nil,   143,
 22919, 23519,  5989,  6129,  6269,   nil,  2048,  6409,  6549,   nil,
   793,   446,   447,   832,   258,  6969,  7109,   335,  7249,   738,
  1133,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
 22787,   nil,   -26,   nil,   nil,     7,   nil,  7809,  7949,   nil,
   nil,  8089,  8229,   717,   nil, 24208,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   -63,   nil,   nil,   nil,   nil,   nil,   nil,   634,
   630,   624,   615, 23932,   nil,   nil,   nil,   nil,   nil,   nil,
   530,   nil,   nil,   664,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  8649,   nil,   nil,   nil,
   nil,  8789,  8929,  9069,  9209,  9349,   530,   nil,   667,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   493,   nil,  3035,  9489,  9629,  9769,  9909, 10049, 10189, 25217,
 24706,   nil, 18309, 18449, 18589,   nil,   nil,  1097,   142,   207,
   476,   213,   365,   412,   nil, 19429,  1907,   405, 19709, 19849,
 19989, 20129, 20269, 20409, 20549, 20689, 20829, 20969, 21109, 21249,
 21389, 21529, 21669, 21809, 21949, 22089, 22229, 22369, 22509, 22649,
   nil,   nil,   nil,   nil, 10329,   nil,   nil,   nil, 25728,   nil,
   nil,   355, 10469,   nil,   nil,   351,   nil,   nil,   nil, 10609,
   nil,   nil, 10749,   nil,  1343,   nil,   234,   218,   nil, 11029,
   230, 11169,   nil,   nil, 11309, 11449,   nil,   nil,   728,   nil,
   nil, 11589,  1625,   nil,     9,  3176,   -24,   -25,   -95, 11869,
  1061,  1061,   992,   975,  1278,   855,   nil,  1199,  1118,   -24,
   nil,   nil,   nil,  1152,   129,  1110, 12709,   nil,   449,  1162,
   672,   nil,  1142, 13129,   nil, 13269,  5009,  1069, 13549, 13689,
 13829,   nil,   nil, 25863,   661,    17,    26, 14109,  2330,  2189,
   437,  1135,  1017,    27,    35,   668,  1066,    36,  1093,   nil,
   nil, 14949,   nil, 15089,   567,   644,   701,   400,   238,   244,
   624,   758,   711,   nil,   504,   nil,   nil,   nil,   nil,   nil,
   397,   nil,   371,   nil,   400,   nil,  1179,   333,   nil,   302,
   nil,   312,   -30,   nil,   442,   -25,   nil,   429,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil, 23794,   nil,   nil,   nil,   nil,   795,   nil,   nil,
   784, 16769,   812,   nil,   nil,   804,   nil,   501,    91,   nil,
   nil,   nil,  1061,   nil,   nil,   nil,   nil,   nil,  1202,   971,
   nil,   nil,   969,   995,   396,   315, 23047,   nil,   nil,   nil,
   397,     0,   952,   nil,   nil, 23387, 23175,   nil,   nil,   nil,
   -10,   nil,   903, 25144, 24925,  5289,   -30, 18169, 18029, 17889,
  2612,  2330,   563,   222,   764,  1022,  1006,   921,  3740,  3599,
   880,  3458,  2471,  2753,  2894,  3317,  2189,   945,   852,  3035,
  3176,  1625,   746,  1319,   nil, 23307,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  1090,  1084,   nil,   nil, 17749,   nil,
   nil, 17609,   nil, 17469,   nil,   126,   nil,   nil,   nil, 17329,
  1469,   914,   903,   nil,   nil,   899, 17189,   848, 17049, 25655,
 25801,   538,   855,   nil, 16909,   806,   nil,   834, 16629, 25071,
 24633,   612,  1484, 16489,   891,   885,   nil,  1610,   nil,   433,
   448,   785,   766,   nil,   525,   734,   nil, 22751,   nil,   691,
   595,   nil,   583,   491,   463,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   436,   764,   nil,   nil, 16349,   nil,   nil,
   nil,   502,   nil,   nil,   nil,   494,   nil,   nil,   478,  4445,
   449,   nil,  1202,   -16,   405,   356,   283,   248,   nil,   nil,
 16209, 25436, 25509,    25,   nil,   173,   197,   229,   nil,   470,
   nil,  1158, 16069,   nil,  1172,   nil,   nil,   nil, 15929,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   294,   nil,   nil,   327,   nil,   nil,   nil,  1100,   nil,   nil,
  1064,   nil,  1766,   nil, 23656,   nil,  1027, 15789, 15649, 15509,
 24779, 24852, 15369,   303,  1008, 15229, 14809, 14669, 14529,  1046,
   nil,   nil,   nil, 14389, 14249,  1055,   nil,   nil,   nil,   -54,
   -63,   798,   133,  1047,  1033,   nil,   -47,  1147,    22,   nil,
  1071,   nil,  1178,   nil,   nil,  1060,   nil,  1104,   nil,   nil,
   nil, 13969,   nil,    50, 13409,  1070,   nil,  1074,    -9,    -5,
  1124,   198,   806,  1136,  1099, 12989, 12849,  1171,   -31,    50,
   nil, 12569,   nil,   nil,  1115,   nil, 12429,   nil,   nil, 12289,
   nil,   nil,   nil,    18,  1132,   319,   nil,   nil,   125, 23011,
   nil, 23139,   nil, 23238,   nil, 12149,   nil,   530,   nil,  1168,
   260,  1188,   nil,   nil,   nil,   nil,   473,   nil,  1301,   nil,
   nil,   nil,   nil,   nil,  1316,   nil, 12009,  1204,    21,    -7,
     7,    -1,  2471,   nil,  1064,   nil, 24998, 25290, 11729,   nil,
   nil,   nil,   178,  4304,  4586, 25957, 25972, 24070,   -34,   923,
  1343,   nil,   nil,   300,   nil,   nil,   nil,   254,   nil,   271,
 10889,   297,   274,   244,   930,   265,  1907, 19569,   nil,   368,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
 19289,  5149, 19149, 19009,   211, 18869,   nil,   nil, 25918,   nil,
  4022,   nil,   nil,   475,   nil,   -54,   nil,   nil, 18729,   nil,
   467,   218,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  2894,
   nil,   497,   552,   nil,   nil,   nil,    63,   nil,  2753,  2612,
   522,   529,   540,   nil,   nil,   nil,   546,   557,   nil,   560,
   570,   nil,   579,   nil,   nil,   584,   630,   585,   130,   nil,
   721,   nil,   nil,  8509,   nil,  1625,   747,   nil,   nil,    51,
    26,   765,   268,  1202,   nil,   659,  1484,  8369,   732,   792,
   nil,   677,   381,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   671,   nil,   nil,   nil,   101,   nil,   nil,  7669,  7529,  2048,
   703,   704,   nil,   713,   715,   717,   nil,   739,   730,   716,
  7389,   nil,   nil,   nil,   nil,  3740,   nil,  3317,   nil,    32,
  6829,   nil,   nil,   775,   881,  1329,   nil,   nil,   861,   nil,
   727,   nil,   593,   nil,   460,   nil,   nil,   nil,   nil,   199,
   965,   791,   nil,    -1,   nil,   nil,  6689,  4727,   nil,   nil,
   914,   539,   nil,   nil,   923,   nil,   nil,   844,   nil,   345,
   nil,   nil,   328,   nil,   nil, 22850,   nil, 23450,   nil,   nil,
   843,  5849,  1205,   910,   nil,   960,  4163,  1238,  1246,  1274,
   937,  1343,   nil,   nil,   nil,   198,   nil,   nil,   nil,   867,
   882,   894,   897,   898,   936,   901,  2175,  3881,   nil,   281,
   nil,   nil,  3599,   nil,  3458,   916,   nil,   nil,   917,   918,
   923,   926,   nil,   929,   nil,  1379, 25363,   nil,   nil,  1078,
  5569, 25582, 24560,  1387,   nil,  1470, 25792,   nil,   nil,   nil,
   nil,   142,   971,   774,   nil,   nil,   nil,  1092,  1093,   nil,
 25717,   nil, 25903,   nil, 25888,   nil, 26009,   nil,   nil,  1245,
   -78,   nil,  -104,    -8,    40,     6,  1484,   nil,   825,   846,
   nil,   nil,   nil,   849,  1164,  1155,  1054,    36,   nil, 23351,
   nil,   nil,   nil,   nil,   647,   nil ]

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

clist = [
'6,236,233,383,449,4,277,229,296,296,296,607,290,129,719,279,351,32,509',
'145,145,599,602,32,358,359,295,295,295,345,520,409,137,221,318,456,462',
'699,32,297,297,297,784,317,880,555,746,32,32,32,9,32,568,355,356,126',
'9,360,736,737,147,147,339,142,142,514,868,640,332,332,316,663,125,696',
'433,434,696,575,886,129,503,335,32,32,505,545,32,690,846,390,740,742',
'744,391,871,393,395,398,861,403,406,393,751,332,354,354,924,583,354',
'130,281,288,291,440,775,1032,440,415,416,417,418,440,624,830,446,392',
'2,142,1008,467,1006,407,420,961,725,728,314,958,361,732,621,32,623,136',
'652,845,32,32,32,32,32,937,702,220,370,142,429,422,759,887,635,278,637',
'689,654,641,343,561,354,354,354,354,688,387,9,635,293,306,307,562,352',
'368,699,419,779,384,520,625,346,347,1032,348,927,724,349,350,371,896',
'622,432,432,428,439,898,1022,439,373,783,1,746,439,457,877,974,787,1015',
'977,926,928,1005,696,696,295,566,857,473,450,413,1008,427,1077,353,733',
'512,513,835,686,32,32,32,32,32,32,32,1054,699,766,32,32,32,852,683,939',
'317,389,867,764,869,296,394,1028,32,444,445,833,875,734,511,296,1052',
'469,470,935,894,397,643,295,958,400,456,462,868,466,295,402,705,295',
'450,405,297,905,575,990,714,519,519,525,32,789,297,391,871,790,408,32',
'824,1079,32,542,868,897,539,866,793,707,290,129,692,863,1026,628,583',
'317,,,559,32,317,549,841,32,,,546,,32,,,746,1055,746,1080,,603,925,710',
',558,563,531,332,947,543,611,537,710,560,564,529,530,,32,535,32,1038',
'604,605,332,129,,,,32,32,32,528,,,,,,430,443,,949,951,767,953,955,890',
'956,,,868,354,1024,557,,644,,,,332,,332,,814,,792,980,981,641,819,,',
'314,,710,,,314,1013,746,914,,660,510,606,837,664,145,942,,699,,801,515',
',671,,,,,653,676,,,,,,519,519,,840,670,457,,522,,524,,,526,527,1009',
',456,462,,295,,147,696,450,142,,746,,746,,,684,899,900,901,902,,671',
',,32,,,583,,583,,,1029,1071,,1030,,670,,,,,565,575,575,,,746,1059,,',
'969,,,,457,,,,695,466,1047,1048,1049,1050,457,295,546,,,450,669,,583',
'583,546,837,675,32,,,440,,,,,,32,895,967,440,440,944,,,792,440,440,810',
'812,,332,32,772,815,817,853,,,332,1083,,,,,,929,710,,,687,,,656,718',
',466,457,,970,1088,,,,,,466,,295,996,756,,450,758,,760,,,32,,,32,,781',
',,,,,32,,,,1017,,,,,,,439,32,,832,,,457,32,,439,439,,,,6,439,439,295',
',797,,450,,782,,,145,664,466,788,,32,831,1056,,,809,32,32,798,697,,',
'565,,700,32,32,826,,,664,32,32,,,671,519,1087,676,440,432,,,9,546,583',
'147,915,,142,,670,,,,842,466,860,903,,850,,854,,1057,,1058,,,,,,,,,',
'856,,332,929,,,929,,,889,,,752,332,664,447,,,,,468,884,,884,,,457,,',
',,,,,,722,,,,295,,,,450,,,891,,664,,,,439,,32,,,,,,32,,,,910,32,32,',
',,,,32,,519,860,,,,,,929,799,1072,762,763,,765,,32,697,565,,,,466,,',
',,826,,,29,933,,142,,,29,,,32,,710,,,941,,,,,,938,29,,839,,,,,32,943',
'29,29,29,963,29,,,32,32,664,,,,851,,,,971,697,,,565,,,862,,964,,,,,',
'32,,32,29,29,874,,29,972,,860,,976,32,32,,,,,,,,354,983,983,983,443',
',864,,,864,,,,471,354,,,,,,,,994,,995,,,,,,32,,32,,,,,,913,,29,332,',
',,29,29,29,29,29,,332,,,1019,,,888,19,1021,,,32,921,19,1044,,1041,,',
',516,,850,,,936,,468,237,447,,,1039,,,,,237,237,237,32,19,323,323,532',
',884,,922,,,332,457,1053,,983,983,983,983,,983,32,,295,,,32,450,32,',
',,237,237,,556,237,365,,,884,664,,,32,29,29,29,29,29,29,29,,,,29,29',
'29,930,,,18,,870,565,872,,18,,29,983,983,983,983,,,,466,,,,983,962,466',
',,,,965,,,19,,968,,18,237,237,237,237,19,973,,,,29,,,,,,,29,1018,,29',
',,,,,,,1025,,,921,,,921,,921,,,29,,,,29,,,,,29,,,,,,,923,,,,,,,,677',
'864,,,922,,,922,,922,,29,,29,1020,,,,1023,811,813,,29,29,29,816,818',
'18,,19,237,437,237,237,437,237,18,,,437,237,237,,,693,694,921,,921,',
'921,930,921,19,930,,,930,,930,,703,,,,,,706,843,,,,,,,921,,,,984,986',
'988,922,,922,,922,,922,237,,,,,,,237,,,237,,1081,1082,,,,,,,,,922,1010',
',1011,,1012,,19,,,,19,18,,18,323,19,18,,,,930,18,930,,930,,930,,29,',
',323,,,,18,,1031,,1033,,19,,19,,,,916,,930,,,237,19,19,,,,,,811,813',
'818,816,,,619,,619,,,,1061,1063,1065,1067,,1068,,,,,29,,,,,,,,,29,,',
',,,,1078,,18,,,,18,,29,,,18,,,1084,,1085,,1086,,,,,,,,,,,1090,1091,1092',
'1093,,,,,18,844,18,1095,,,1094,855,,,,,18,18,,,,29,,,29,,,916,,,,,29',
',,,,,879,237,,,,,29,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,29,904,,,,,29,29',
',,,,,,,29,29,,,19,,29,29,,,,323,,237,,,,,,323,,,,,,,,,237,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,946,,,,,,,,,,,,,,957,19,,,19,,,,,,,,237,,,,,,,,',
',,,237,18,975,,,,237,,29,,,,,,29,,,,,29,29,,,,,,29,,,,19,,,,,,437,237',
',,,,,29,,437,437,,,,,437,437,,,,,,,,,,,,,,29,20,,,,18,,20,18,,,,,,,',
'323,,,29,,,,,,,,323,29,29,,,,,,20,325,325,,,,,,,,,,,,,,,,29,,29,,,18',
',,,,,18,,29,29,,,,367,,18,18,,,,,18,18,,,,19,,,,,,237,,,,,19,19,,,,',
',19,,,29,,29,,,,,,,,,,,,437,,,,,,20,,,,,,,,,20,,,29,,,,,19,,,,,,,42',
',,,,,42,,,,,,19,,,,,29,,,,19,19,,,,,,,18,,,,,42,322,322,,29,,18,18,',
'29,,29,237,18,19,,,,,,,,,,,19,237,29,,,18,,,,,,364,,20,386,438,,,438',
',,,,438,,,,,18,,,,,,992,,,20,,19,,19,,,999,,,18,,,,,,,,,18,18,,,,,,',
',42,,,,,,19,,,42,,,,,,,,,18,,,,,,,,,,,18,1035,,,,,19,,20,,,,20,,,,325',
'20,,,,,,,,,,19,,,,,19,325,19,,,,,18,,18,,20,,20,,,,,237,,,,,20,20,,',
',,,,,,,,42,620,,620,18,,,,,,41,,,,,,41,,,,,,,,42,,,,,,,,,18,,,,,,,,',
',,41,321,321,,,,,,,,18,,,,,18,,18,,,,,,,,,,,,,,,,,,,363,,,385,,,,,,42',
',,,42,,,,322,42,,,,,,,,,,,,,,,,322,,,,,,,,,,42,,42,,,,,,,,41,,42,42',
',,,,,41,,,,,,386,,386,,,,,,,,20,,,,,,,325,,,,,,,,325,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,41,,20,,,,16,,,,,,16,,,,,',
',,,,,,41,,,,,,,,,,,,,,,,16,,,,,,,,,,,,20,,,,,,438,,,,,,,,,438,438,,',
',,438,438,,369,42,,,,,,,322,,,,,41,,,322,41,,,,321,41,,,,,,325,,,,,',
',,,,321,325,,,,,,,,,41,,41,,,,16,,,,,,41,41,,16,,,,,,,,42,,385,42,385',
',,,,,,,,,,,,,,,,,,,,20,,,,,,,,,,,20,20,,,,,909,20,,,,,,,,,,42,,,,,,',
'438,,,,,,,,,,,,,,,,,,,16,,435,,20,435,,,,,435,,,,,,,,,,,,,20,16,,322',
',,,,,20,20,,,,322,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,,,,20,,,,,,,,,,,41',
',,,,,,321,16,,,,16,42,,321,,16,,,,,,620,42,42,,,20,,20,42,,1001,,,,',
',,,,,16,,16,,,,,,,,,,16,16,,,,20,,,,,,,,,,41,42,,41,,,,,,,,,,,620,,',
',,20,42,,,,,,,,,42,42,,,,,,,,,,20,,,,,20,,20,,,,,,41,,,42,,,,,,,,,,',
'42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,386,,,,321,42,,42,,,998,,,,,321',
',,,244,,,,,,,,,294,294,294,,,,,,,42,,,,341,342,,344,,,,,,,,,,,16,,,',
',,386,,,,,42,,,,,,41,,,,,,,,,,,41,41,,,42,,,41,,42,,42,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,16,,,16,,41,,,,,,,,,,,,,,,,,,,41,,,,,,,,,41,41,,,,',
',,,,,,,,,,,,,,16,,,,,,435,41,,,,,,,,435,435,,41,,,435,435,,,,,,,,,,',
',,,,,,,,294,442,,,448,294,,,,448,,385,,,,,41,,41,,,997,244,,,480,481',
'482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498',
'499,500,501,,41,,,502,,,,,,,,294,,,,,,,294,,,294,,,385,,,,294,41,294',
'16,,294,294,,,,,,,,16,16,,,,,,16,41,,,,,41,,41,,,,,,,,,435,,,,,,551',
',552,,,,294,294,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,16,,,,,,,,,16,16,,,,,',
',,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,,16,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,16,,16,,,1002,,,,,294,,448,448,448,,,,,,,,,,,,,,,,,,16,,,,',
',,,,,,,,,,,,,,,,294,,,294,,294,,,16,,,,,,,,,,,,294,,,,,,,,,16,717,,',
',16,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,294',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,448,294,,,806,,,294',
'294,448,448,,,,,448,448,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,',
'448,,,,,294,,,,,294,,,294,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,294',
',,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,448,,,,,,,,,,,,,448,448',
'448,448,,919,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,448,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294' ]
        racc_goto_table = arr = ::Array.new(3778, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'6,26,39,69,35,2,175,37,84,84,84,116,87,121,15,37,105,56,51,73,73,109',
'109,56,41,41,45,45,45,39,89,69,21,21,62,49,49,223,56,86,86,86,124,14',
'110,12,151,56,56,56,9,56,174,23,23,8,9,23,157,157,74,74,77,70,70,35',
'213,196,79,79,59,36,5,90,28,28,90,207,112,121,176,63,56,56,49,64,56',
'52,17,192,210,210,210,6,218,6,6,6,166,6,6,6,152,79,30,30,162,212,30',
'7,50,50,50,24,67,219,24,23,23,23,23,24,140,164,32,193,3,70,169,32,168',
'193,10,153,85,85,58,150,5,85,68,56,68,11,13,16,56,56,56,56,56,18,20',
'22,25,70,29,31,42,44,197,48,197,54,75,197,80,83,30,30,30,30,88,101,9',
'197,57,57,57,104,107,118,223,9,120,125,89,126,127,128,219,129,166,130',
'131,132,133,134,135,84,84,26,26,136,137,26,138,139,1,151,26,87,151,141',
'142,153,143,154,160,167,90,90,45,170,171,37,6,7,169,14,168,172,173,179',
'180,182,184,56,56,56,56,56,56,56,185,223,186,56,56,56,187,35,188,14',
'191,163,116,163,84,194,162,56,30,30,52,152,174,87,84,153,30,30,164,67',
'195,198,45,150,199,49,49,213,70,45,200,64,45,6,201,86,202,207,166,64',
'6,6,192,56,203,86,6,218,204,205,56,36,153,56,39,213,206,37,211,196,35',
'87,121,176,215,216,222,212,14,,,84,56,14,37,36,56,,,62,,56,,,151,112',
'151,110,,23,163,49,,6,6,59,79,157,77,37,59,49,86,86,8,9,,56,63,56,17',
'14,14,79,121,,,,56,56,56,5,,,,,,82,82,,210,210,35,210,210,36,210,,,213',
'30,124,9,,6,,,,79,,79,,51,,197,157,157,197,51,,,58,,49,,,58,151,151',
'36,,37,57,5,89,39,73,85,,223,,35,57,,87,,,,,21,87,,,,,,6,6,,64,6,87',
',82,,82,,,82,82,163,,49,49,,45,,74,90,6,70,,151,,151,,,39,12,12,174',
'174,,87,,,56,,,212,,212,,,163,15,,163,,6,,,,,82,207,207,,,151,157,,',
'36,,,,87,,,,86,70,210,210,210,210,87,45,62,,,6,50,,212,212,62,89,50',
'56,,,24,,,,,,56,35,109,24,24,12,,,197,24,24,32,32,,79,56,41,32,32,28',
',,79,163,,,,,,212,49,,,50,,,82,30,,70,87,,12,210,,,,,,70,,45,109,14',
',6,14,,121,,,56,,,56,,6,,,,,,56,,,,109,,,,,,,26,56,,105,,,87,56,,26',
'26,,,,6,26,26,45,,2,,6,,30,,,73,39,70,30,,56,175,116,,,86,56,56,21,82',
',,82,,82,56,56,6,,,39,56,56,,,87,6,36,87,24,84,,,9,62,212,74,32,,70',
',6,,,,62,70,39,69,,6,,6,,12,,12,,,,,,,,,,86,,79,212,,,212,,,84,,,82',
'79,39,76,,,,,76,6,,6,,,87,,,,,,,,,103,,,,45,,,,6,,,14,,39,,,,26,,56',
',,,,,56,,,,14,56,56,,,,,,56,,6,39,,,,,,212,82,35,103,103,,103,,56,82',
'82,,,,70,,,,,6,,,53,14,,70,,,53,,,56,,49,,,6,,,,,,14,53,,82,,,,,56,14',
'53,53,53,23,53,,,56,56,39,,,,82,,,,23,82,,,82,,,156,,14,,,,,,56,,56',
'53,53,82,,53,121,,39,,121,56,56,,,,,,,,30,6,6,6,82,,158,,,158,,,,60',
'30,,,,,,,,14,,14,,,,,,56,,56,,,,,,82,,53,79,,,,53,53,53,53,53,,79,,',
'14,,,103,34,121,,,56,156,34,39,,37,,,,60,,6,,,82,,76,34,76,,,14,,,,',
'34,34,34,56,34,34,34,60,,6,,158,,,79,87,14,,6,6,6,6,,6,56,,45,,,56,6',
'56,,,,34,34,,60,34,34,,,6,39,,,56,53,53,53,53,53,53,53,,,,53,53,53,214',
',,33,,161,82,161,,33,,53,6,6,6,6,,,,70,,,,6,103,70,,,,,103,,,34,,103',
',33,34,34,34,34,34,103,,,,53,,,,,,,53,82,,53,,,,,,,,156,,,156,,,156',
',156,,,53,,,,53,,,,,53,,,,,,,161,,,,,,,,60,158,,,158,,,158,,158,,53',
',53,103,,,,103,76,76,,53,53,53,76,76,33,,34,34,34,34,34,34,34,33,,,34',
'34,34,,,60,60,156,,156,,156,214,156,34,214,,,214,,214,,60,,,,,,60,76',
',,,,,,156,,,,159,159,159,158,,158,,158,,158,34,,,,,,,34,,,34,,103,103',
',,,,,,,,158,161,,161,,161,,34,,,,34,33,,33,34,34,33,,,,214,33,214,,214',
',214,,53,,,34,,,,33,,161,,161,,34,,34,,,,76,,214,,,34,34,34,,,,,,76',
'76,76,76,,,34,,34,,,,159,159,159,159,,159,,,,,53,,,,,,,,,53,,,,,,,161',
',33,,,,33,,53,,,33,,,161,,161,,161,,,,,,,,,,,159,159,159,159,,,,,33',
'60,33,159,,,161,60,,,,,33,33,,,,53,,,53,,,76,,,,,53,,,,,,60,34,,,,,53',
',,,,,53,,,,,,,,,,,,,,,,,,,,,,,,53,60,,,,,53,53,,,,,,,,53,53,,,34,,53',
'53,,,,34,,34,,,,,,34,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,60,,,',
',,,,,,,,,,60,34,,,34,,,,,,,,34,,,,,,,,,,,,34,33,60,,,,34,,53,,,,,,53',
',,,,53,53,,,,,,53,,,,34,,,,,,34,34,,,,,,53,,34,34,,,,,34,34,,,,,,,,',
',,,,,53,38,,,,33,,38,33,,,,,,,,34,,,53,,,,,,,,34,53,53,,,,,,38,38,38',
',,,,,,,,,,,,,,,53,,53,,,33,,,,,,33,,53,53,,,,38,,33,33,,,,,33,33,,,',
'34,,,,,,34,,,,,34,34,,,,,,34,,,53,,53,,,,,,,,,,,,34,,,,,,38,,,,,,,,',
'38,,,53,,,,,34,,,,,,,66,,,,,,66,,,,,,34,,,,,53,,,,34,34,,,,,,,33,,,',
',66,66,66,,53,,33,33,,53,,53,34,33,34,,,,,,,,,,,34,34,53,,,33,,,,,,66',
',38,66,38,,,38,,,,,38,,,,,33,,,,,,34,,,38,,34,,34,,,34,,,33,,,,,,,,',
'33,33,,,,,,,,66,,,,,,34,,,66,,,,,,,,,33,,,,,,,,,,,33,34,,,,,34,,38,',
',,38,,,,38,38,,,,,,,,,,34,,,,,34,38,34,,,,,33,,33,,38,,38,,,,,34,,,',
',38,38,,,,,,,,,,,66,38,,38,33,,,,,,65,,,,,,65,,,,,,,,66,,,,,,,,,33,',
',,,,,,,,,65,65,65,,,,,,,,33,,,,,33,,33,,,,,,,,,,,,,,,,,,,65,,,65,,,',
',,66,,,,66,,,,66,66,,,,,,,,,,,,,,,,66,,,,,,,,,,66,,66,,,,,,,,65,,66',
'66,,,,,,65,,,,,,66,,66,,,,,,,,38,,,,,,,38,,,,,,,,38,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,65,,38,,,,27,,,,,,27,,,,,,',
',,,,,65,,,,,,,,,,,,,,,,27,,,,,,,,,,,,38,,,,,,38,,,,,,,,,38,38,,,,,38',
'38,,27,66,,,,,,,66,,,,,65,,,66,65,,,,65,65,,,,,,38,,,,,,,,,,65,38,,',
',,,,,,65,,65,,,,27,,,,,,65,65,,27,,,,,,,,66,,65,66,65,,,,,,,,,,,,,,',
',,,,,,38,,,,,,,,,,,38,38,,,,,38,38,,,,,,,,,,66,,,,,,,38,,,,,,,,,,,,',
',,,,,,27,,27,,38,27,,,,,27,,,,,,,,,,,,,38,27,,66,,,,,,38,38,,,,66,,',
',,,,,,,,,,,,,,,,,,,38,,,,,,,,,,,38,,,,,,,,,,,65,,,,,,,65,27,,,,27,66',
',65,,27,,,,,,38,66,66,,,38,,38,66,,38,,,,,,,,,,27,,27,,,,,,,,,,27,27',
',,,38,,,,,,,,,,65,66,,65,,,,,,,,,,,38,,,,,38,66,,,,,,,,,66,66,,,,,,',
',,,38,,,,,38,,38,,,,,,65,,,66,,,,,,,,,,,66,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,66,,,,65,66,,66,,,66,,,,,65,,,,40,,,,,,,,,40,40,40,,,,,,,66',
',,,40,40,,40,,,,,,,,,,,27,,,,,,66,,,,,66,,,,,,65,,,,,,,,,,,65,65,,,66',
',,65,,66,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,,,27,,65,,,,,,,,,,,,,',
',,,,,65,,,,,,,,,65,65,,,,,,,,,,,,,,,,,,,27,,,,,,27,65,,,,,,,,27,27,',
'65,,,27,27,,,,,,,,,,,,,,,,,,,40,40,,,40,40,,,,40,,65,,,,,65,,65,,,65',
'40,,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40',
'40,,65,,,40,,,,,,,,40,,,,,,,40,,,40,,,65,,,,40,65,40,27,,40,40,,,,,',
',,27,27,,,,,,27,65,,,,,65,,65,,,,,,,,,27,,,,,,40,,40,,,,40,40,,,,,,',
',,,27,,,,,,,,,,,,,,,,,,,27,,,,,,,,,27,27,,,,,,,,,,,,,,,,,,,,,,,,,,27',
',,,,,,,,,,27,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,,27,,,27,,,',
',40,,40,40,40,,,,,,,,,,,,,,,,,,27,,,,,,,,,,,,,,,,,,,,,40,,,40,,40,,',
'27,,,,,,,,,,,,40,,,,,,,,,27,40,,,,27,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,40,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,40,40,40,,,40,,,40,40,40,40,,,,,40,40,,,,,,,,,,,,,,,,,,,',
',,,,,,,40,,,,,,,,,,,,,,,40,,,,,40,,,,,40,,,40,,,,,,,,,,,,,,,,40,,,,',
',,,,,,,,,,,,,,,,40,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,40,,',
',,,,,,,,,,40,40,40,40,,40,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,40,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40' ]
        racc_goto_check = arr = ::Array.new(3778, 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,   208,     3,   126,   nil,    67,    -2,   101,    50,    48,
    -4,   133,  -301,  -277,     7,  -540,  -574,  -631,  -694,   nil,
  -377,    21,   141,   -14,  -111,    82,   -22,  2267,  -149,   -67,
    37,    20,  -103,  1070,   976,  -224,  -378,   -12,  1663,   -20,
  2737,   -45,  -445,   nil,  -600,    -6,   nil,   nil,   134,  -194,
    81,  -263,  -425,   834,  -345,   nil,    15,   144,   100,    34,
   699,   nil,    -3,    43,  -251,  2041,  1811,  -503,  -231,   -72,
    52,   nil,   nil,     8,    49,  -262,   521,    18,   nil,    31,
   119,   nil,   158,  -182,   -24,  -425,     7,   -18,  -333,  -267,
  -445,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,    98,   nil,   213,  -171,   -49,   nil,   114,   nil,  -334,
  -712,   nil,  -680,   nil,   nil,   nil,  -350,   nil,   109,   nil,
  -437,     8,   nil,   nil,  -582,   110,  -197,   127,   127,   129,
  -364,   131,   131,   123,  -582,  -174,  -579,  -768,   132,  -416,
  -261,  -687,  -411,  -687,   nil,   nil,   nil,   nil,   nil,   nil,
  -739,  -538,  -482,  -745,  -611,   nil,   155,  -511,   191,   325,
  -610,   333,  -722,  -484,  -563,   nil,  -636,  -726,  -815,  -817,
  -130,  -509,   165,  -334,  -301,   -19,  -196,   nil,   nil,   -53,
   -53,   nil,  -456,   nil,  -268,  -775,  -363,  -471,  -600,   nil,
   nil,   162,    -6,    28,   161,   175,  -330,  -232,  -125,   178,
   183,   186,  -499,  -334,  -331,   200,  -470,  -276,   nil,   nil,
  -482,  -427,  -246,  -673,   241,  -417,  -660,   nil,  -647,  -870,
   nil,   nil,   -68,  -484 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   309,     7,   362,   312,
   nil,   nil,   nil,   nil,   554,   nil,   nil,   nil,   nil,   308,
   310,   nil,   nil,   nil,    14,    15,    21,   242,   nil,   nil,
    17,   nil,   436,   243,   340,   nil,   nil,   777,   241,   472,
    24,   nil,   nil,   357,   nil,    25,    26,    27,   nil,   713,
   nil,   nil,   nil,   329,   nil,    28,   326,   451,    35,   nil,
   nil,    37,    40,    39,   nil,   238,   239,   618,   nil,   144,
   459,   143,   146,    90,    91,   nil,   441,   105,    47,    50,
   274,   547,   300,   nil,   452,   nil,   453,   464,   672,   517,
   298,   282,   838,    51,    52,    53,    54,    55,    56,    57,
    58,    59,    61,   nil,   nil,   283,    65,   nil,    67,   nil,
   nil,    68,   882,    69,    70,    71,   nil,    72,   nil,    73,
   nil,   600,    74,    75,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   287,   276,   721,   849,   609,   883,
   748,   582,   nil,   749,  1027,   920,   570,   nil,   571,   nil,
   nil,   572,   nil,   574,   nil,   827,   nil,   nil,   nil,   580,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   463,   285,   nil,
   nil,   691,   nil,   504,   nil,   nil,   nil,   nil,   nil,    89,
    92,    94,   nil,   nil,   nil,   nil,   nil,   630,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   865,   786,   569,
   nil,   573,   873,   585,   587,   588,   931,   591,   592,   932,
   595,   598,   nil,   303 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 148, :_reduce_1,
  2, 146, :_reduce_2,
  2, 147, :_reduce_3,
  1, 149, :_reduce_none,
  1, 149, :_reduce_none,
  3, 149, :_reduce_6,
  2, 149, :_reduce_none,
  1, 152, :_reduce_none,
  0, 156, :_reduce_9,
  3, 152, :_reduce_10,
  0, 158, :_reduce_11,
  4, 155, :_reduce_12,
  0, 163, :_reduce_13,
  6, 157, :_reduce_14,
  3, 157, :_reduce_15,
  2, 159, :_reduce_16,
  1, 164, :_reduce_none,
  1, 164, :_reduce_none,
  3, 164, :_reduce_19,
  2, 164, :_reduce_20,
  1, 165, :_reduce_none,
  1, 165, :_reduce_22,
  0, 176, :_reduce_23,
  4, 154, :_reduce_24,
  3, 154, :_reduce_25,
  3, 154, :_reduce_26,
  3, 154, :_reduce_27,
  2, 154, :_reduce_28,
  3, 154, :_reduce_29,
  3, 154, :_reduce_30,
  3, 154, :_reduce_31,
  3, 154, :_reduce_32,
  3, 154, :_reduce_33,
  4, 154, :_reduce_34,
  1, 154, :_reduce_none,
  3, 154, :_reduce_36,
  3, 154, :_reduce_37,
  3, 154, :_reduce_38,
  1, 154, :_reduce_none,
  3, 169, :_reduce_40,
  3, 169, :_reduce_41,
  6, 169, :_reduce_42,
  5, 169, :_reduce_43,
  5, 169, :_reduce_44,
  5, 169, :_reduce_45,
  5, 169, :_reduce_46,
  3, 169, :_reduce_47,
  1, 177, :_reduce_48,
  1, 177, :_reduce_none,
  1, 175, :_reduce_none,
  3, 175, :_reduce_51,
  3, 175, :_reduce_52,
  3, 175, :_reduce_53,
  2, 175, :_reduce_54,
  1, 175, :_reduce_none,
  1, 168, :_reduce_56,
  0, 188, :_reduce_57,
  0, 189, :_reduce_58,
  4, 186, :_reduce_59,
  1, 171, :_reduce_none,
  1, 171, :_reduce_none,
  1, 191, :_reduce_none,
  4, 191, :_reduce_63,
  0, 199, :_reduce_64,
  4, 196, :_reduce_65,
  1, 198, :_reduce_66,
  2, 190, :_reduce_67,
  3, 190, :_reduce_68,
  4, 190, :_reduce_69,
  5, 190, :_reduce_70,
  4, 190, :_reduce_71,
  5, 190, :_reduce_72,
  2, 190, :_reduce_73,
  2, 190, :_reduce_74,
  2, 190, :_reduce_75,
  2, 190, :_reduce_76,
  2, 190, :_reduce_77,
  1, 170, :_reduce_none,
  3, 170, :_reduce_79,
  1, 204, :_reduce_none,
  3, 204, :_reduce_81,
  1, 203, :_reduce_82,
  2, 203, :_reduce_83,
  3, 203, :_reduce_84,
  5, 203, :_reduce_85,
  2, 203, :_reduce_86,
  4, 203, :_reduce_87,
  2, 203, :_reduce_88,
  4, 203, :_reduce_89,
  1, 203, :_reduce_90,
  3, 203, :_reduce_91,
  1, 207, :_reduce_none,
  3, 207, :_reduce_93,
  2, 206, :_reduce_94,
  3, 206, :_reduce_95,
  1, 209, :_reduce_96,
  3, 209, :_reduce_97,
  1, 208, :_reduce_98,
  1, 208, :_reduce_99,
  4, 208, :_reduce_100,
  3, 208, :_reduce_101,
  3, 208, :_reduce_102,
  3, 208, :_reduce_103,
  3, 208, :_reduce_104,
  2, 208, :_reduce_105,
  1, 208, :_reduce_106,
  1, 172, :_reduce_107,
  1, 172, :_reduce_108,
  4, 172, :_reduce_109,
  3, 172, :_reduce_110,
  3, 172, :_reduce_111,
  3, 172, :_reduce_112,
  3, 172, :_reduce_113,
  2, 172, :_reduce_114,
  1, 172, :_reduce_115,
  1, 212, :_reduce_116,
  1, 212, :_reduce_none,
  2, 213, :_reduce_118,
  1, 213, :_reduce_119,
  3, 213, :_reduce_120,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_124,
  1, 214, :_reduce_125,
  1, 217, :_reduce_none,
  1, 217, :_reduce_none,
  1, 166, :_reduce_128,
  1, 166, :_reduce_none,
  1, 167, :_reduce_130,
  0, 220, :_reduce_131,
  4, 167, :_reduce_132,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  1, 216, :_reduce_none,
  3, 185, :_reduce_205,
  3, 185, :_reduce_206,
  6, 185, :_reduce_207,
  5, 185, :_reduce_208,
  5, 185, :_reduce_209,
  5, 185, :_reduce_210,
  5, 185, :_reduce_211,
  0, 226, :_reduce_212,
  5, 185, :_reduce_213,
  3, 185, :_reduce_214,
  3, 185, :_reduce_215,
  3, 185, :_reduce_216,
  3, 185, :_reduce_217,
  3, 185, :_reduce_218,
  3, 185, :_reduce_219,
  3, 185, :_reduce_220,
  3, 185, :_reduce_221,
  3, 185, :_reduce_222,
  4, 185, :_reduce_223,
  2, 185, :_reduce_224,
  2, 185, :_reduce_225,
  3, 185, :_reduce_226,
  3, 185, :_reduce_227,
  3, 185, :_reduce_228,
  3, 185, :_reduce_229,
  1, 185, :_reduce_none,
  3, 185, :_reduce_231,
  3, 185, :_reduce_232,
  3, 185, :_reduce_233,
  3, 185, :_reduce_234,
  3, 185, :_reduce_235,
  2, 185, :_reduce_236,
  2, 185, :_reduce_237,
  3, 185, :_reduce_238,
  3, 185, :_reduce_239,
  3, 185, :_reduce_240,
  3, 185, :_reduce_241,
  3, 185, :_reduce_242,
  6, 185, :_reduce_243,
  1, 185, :_reduce_none,
  1, 225, :_reduce_none,
  1, 225, :_reduce_none,
  1, 225, :_reduce_none,
  1, 225, :_reduce_none,
  3, 223, :_reduce_249,
  3, 223, :_reduce_250,
  1, 227, :_reduce_251,
  1, 228, :_reduce_none,
  2, 228, :_reduce_253,
  4, 228, :_reduce_254,
  2, 228, :_reduce_255,
  1, 221, :_reduce_none,
  3, 221, :_reduce_257,
  3, 232, :_reduce_258,
  1, 233, :_reduce_none,
  1, 233, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  2, 180, :_reduce_263,
  4, 180, :_reduce_264,
  2, 180, :_reduce_265,
  1, 202, :_reduce_266,
  2, 202, :_reduce_267,
  2, 202, :_reduce_268,
  4, 202, :_reduce_269,
  1, 202, :_reduce_270,
  0, 236, :_reduce_271,
  2, 195, :_reduce_272,
  2, 235, :_reduce_273,
  2, 234, :_reduce_274,
  1, 234, :_reduce_none,
  1, 229, :_reduce_276,
  2, 229, :_reduce_277,
  3, 229, :_reduce_278,
  0, 237, :_reduce_279,
  5, 229, :_reduce_280,
  1, 174, :_reduce_281,
  1, 174, :_reduce_282,
  3, 173, :_reduce_283,
  4, 173, :_reduce_284,
  2, 173, :_reduce_285,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_none,
  1, 224, :_reduce_296,
  0, 272, :_reduce_297,
  4, 224, :_reduce_298,
  0, 273, :_reduce_299,
  3, 224, :_reduce_300,
  0, 274, :_reduce_301,
  0, 275, :_reduce_302,
  5, 224, :_reduce_303,
  3, 224, :_reduce_304,
  3, 224, :_reduce_305,
  2, 224, :_reduce_306,
  0, 276, :_reduce_307,
  4, 224, :_reduce_308,
  0, 277, :_reduce_309,
  4, 224, :_reduce_310,
  1, 224, :_reduce_311,
  4, 224, :_reduce_312,
  3, 224, :_reduce_313,
  1, 224, :_reduce_314,
  5, 224, :_reduce_315,
  4, 224, :_reduce_316,
  3, 224, :_reduce_317,
  2, 224, :_reduce_318,
  1, 224, :_reduce_none,
  2, 224, :_reduce_320,
  2, 224, :_reduce_321,
  6, 224, :_reduce_322,
  6, 224, :_reduce_323,
  4, 224, :_reduce_324,
  4, 224, :_reduce_325,
  5, 224, :_reduce_326,
  4, 224, :_reduce_327,
  6, 224, :_reduce_328,
  0, 278, :_reduce_329,
  0, 279, :_reduce_330,
  7, 224, :_reduce_331,
  0, 280, :_reduce_332,
  0, 281, :_reduce_333,
  0, 282, :_reduce_334,
  9, 224, :_reduce_335,
  0, 283, :_reduce_336,
  0, 284, :_reduce_337,
  6, 224, :_reduce_338,
  0, 285, :_reduce_339,
  0, 286, :_reduce_340,
  7, 224, :_reduce_341,
  0, 287, :_reduce_342,
  0, 288, :_reduce_343,
  9, 224, :_reduce_344,
  1, 224, :_reduce_345,
  1, 224, :_reduce_346,
  1, 224, :_reduce_347,
  1, 224, :_reduce_348,
  1, 179, :_reduce_349,
  1, 247, :_reduce_none,
  1, 253, :_reduce_none,
  1, 256, :_reduce_none,
  1, 258, :_reduce_none,
  1, 259, :_reduce_none,
  1, 260, :_reduce_none,
  1, 262, :_reduce_none,
  1, 264, :_reduce_none,
  1, 267, :_reduce_none,
  1, 268, :_reduce_none,
  1, 289, :_reduce_none,
  1, 290, :_reduce_none,
  1, 291, :_reduce_none,
  1, 292, :_reduce_none,
  1, 293, :_reduce_none,
  1, 161, :_reduce_none,
  1, 294, :_reduce_none,
  1, 248, :_reduce_none,
  1, 201, :_reduce_none,
  1, 254, :_reduce_none,
  1, 254, :_reduce_none,
  2, 254, :_reduce_none,
  1, 187, :_reduce_none,
  1, 187, :_reduce_none,
  1, 255, :_reduce_none,
  5, 255, :_reduce_375,
  1, 257, :_reduce_none,
  2, 257, :_reduce_377,
  1, 263, :_reduce_none,
  1, 263, :_reduce_379,
  1, 295, :_reduce_none,
  3, 295, :_reduce_381,
  1, 298, :_reduce_382,
  3, 298, :_reduce_383,
  1, 297, :_reduce_384,
  4, 297, :_reduce_385,
  6, 297, :_reduce_386,
  3, 297, :_reduce_387,
  5, 297, :_reduce_388,
  2, 297, :_reduce_389,
  4, 297, :_reduce_390,
  1, 297, :_reduce_391,
  3, 297, :_reduce_392,
  4, 299, :_reduce_393,
  2, 299, :_reduce_394,
  2, 299, :_reduce_395,
  1, 299, :_reduce_396,
  2, 304, :_reduce_397,
  1, 304, :_reduce_none,
  6, 305, :_reduce_399,
  8, 305, :_reduce_400,
  4, 305, :_reduce_401,
  6, 305, :_reduce_402,
  4, 305, :_reduce_403,
  2, 305, :_reduce_404,
  6, 305, :_reduce_405,
  2, 305, :_reduce_406,
  4, 305, :_reduce_407,
  6, 305, :_reduce_408,
  2, 305, :_reduce_409,
  4, 305, :_reduce_410,
  2, 305, :_reduce_411,
  4, 305, :_reduce_412,
  1, 305, :_reduce_413,
  1, 309, :_reduce_414,
  1, 309, :_reduce_415,
  3, 310, :_reduce_416,
  1, 310, :_reduce_417,
  4, 310, :_reduce_418,
  1, 311, :_reduce_none,
  4, 311, :_reduce_420,
  1, 312, :_reduce_421,
  3, 312, :_reduce_422,
  1, 313, :_reduce_423,
  1, 313, :_reduce_none,
  0, 317, :_reduce_425,
  0, 318, :_reduce_426,
  4, 252, :_reduce_427,
  4, 315, :_reduce_428,
  1, 315, :_reduce_429,
  3, 316, :_reduce_430,
  3, 316, :_reduce_431,
  3, 320, :_reduce_432,
  2, 192, :_reduce_433,
  4, 192, :_reduce_434,
  5, 192, :_reduce_435,
  5, 192, :_reduce_436,
  0, 323, :_reduce_437,
  3, 251, :_reduce_438,
  4, 251, :_reduce_439,
  4, 251, :_reduce_440,
  3, 251, :_reduce_441,
  3, 251, :_reduce_442,
  3, 251, :_reduce_443,
  2, 251, :_reduce_444,
  1, 251, :_reduce_445,
  4, 251, :_reduce_446,
  0, 324, :_reduce_447,
  4, 250, :_reduce_448,
  0, 325, :_reduce_449,
  4, 250, :_reduce_450,
  0, 326, :_reduce_451,
  0, 327, :_reduce_452,
  4, 197, :_reduce_453,
  0, 328, :_reduce_454,
  0, 329, :_reduce_455,
  4, 321, :_reduce_456,
  0, 331, :_reduce_457,
  6, 261, :_reduce_458,
  1, 330, :_reduce_none,
  1, 330, :_reduce_none,
  6, 160, :_reduce_461,
  0, 160, :_reduce_462,
  1, 332, :_reduce_463,
  1, 332, :_reduce_none,
  1, 332, :_reduce_none,
  2, 333, :_reduce_466,
  1, 333, :_reduce_none,
  2, 162, :_reduce_468,
  1, 162, :_reduce_none,
  1, 238, :_reduce_470,
  1, 238, :_reduce_471,
  1, 238, :_reduce_none,
  1, 239, :_reduce_473,
  1, 335, :_reduce_474,
  1, 335, :_reduce_none,
  2, 335, :_reduce_476,
  3, 336, :_reduce_477,
  1, 336, :_reduce_478,
  3, 240, :_reduce_479,
  3, 241, :_reduce_480,
  3, 242, :_reduce_481,
  3, 242, :_reduce_482,
  1, 340, :_reduce_483,
  3, 340, :_reduce_484,
  1, 341, :_reduce_none,
  2, 341, :_reduce_486,
  3, 244, :_reduce_487,
  0, 344, :_reduce_488,
  4, 244, :_reduce_489,
  1, 343, :_reduce_490,
  3, 343, :_reduce_491,
  3, 243, :_reduce_492,
  3, 243, :_reduce_493,
  3, 245, :_reduce_494,
  3, 245, :_reduce_495,
  1, 345, :_reduce_496,
  3, 345, :_reduce_497,
  1, 346, :_reduce_498,
  3, 346, :_reduce_499,
  1, 337, :_reduce_500,
  2, 337, :_reduce_501,
  1, 338, :_reduce_502,
  2, 338, :_reduce_503,
  1, 339, :_reduce_504,
  2, 339, :_reduce_505,
  1, 342, :_reduce_506,
  0, 348, :_reduce_507,
  3, 342, :_reduce_508,
  0, 349, :_reduce_509,
  4, 342, :_reduce_510,
  1, 347, :_reduce_511,
  1, 347, :_reduce_512,
  1, 347, :_reduce_513,
  1, 347, :_reduce_none,
  2, 218, :_reduce_515,
  1, 218, :_reduce_516,
  1, 350, :_reduce_none,
  1, 350, :_reduce_none,
  1, 350, :_reduce_none,
  1, 350, :_reduce_none,
  3, 219, :_reduce_521,
  1, 334, :_reduce_none,
  2, 334, :_reduce_523,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 211, :_reduce_533,
  1, 211, :_reduce_534,
  1, 211, :_reduce_535,
  1, 211, :_reduce_536,
  1, 211, :_reduce_537,
  1, 211, :_reduce_538,
  1, 211, :_reduce_539,
  1, 246, :_reduce_540,
  1, 246, :_reduce_541,
  1, 178, :_reduce_542,
  1, 178, :_reduce_543,
  1, 183, :_reduce_544,
  1, 183, :_reduce_545,
  0, 351, :_reduce_546,
  4, 265, :_reduce_547,
  1, 265, :_reduce_548,
  3, 269, :_reduce_549,
  0, 353, :_reduce_550,
  3, 269, :_reduce_551,
  4, 352, :_reduce_552,
  2, 352, :_reduce_553,
  2, 352, :_reduce_554,
  1, 352, :_reduce_none,
  2, 355, :_reduce_556,
  0, 355, :_reduce_557,
  6, 319, :_reduce_558,
  8, 319, :_reduce_559,
  4, 319, :_reduce_560,
  6, 319, :_reduce_561,
  4, 319, :_reduce_562,
  6, 319, :_reduce_563,
  2, 319, :_reduce_564,
  4, 319, :_reduce_565,
  6, 319, :_reduce_566,
  2, 319, :_reduce_567,
  4, 319, :_reduce_568,
  2, 319, :_reduce_569,
  4, 319, :_reduce_570,
  1, 319, :_reduce_571,
  0, 319, :_reduce_572,
  1, 314, :_reduce_573,
  1, 314, :_reduce_574,
  1, 314, :_reduce_575,
  1, 314, :_reduce_576,
  1, 296, :_reduce_none,
  1, 296, :_reduce_578,
  1, 357, :_reduce_none,
  1, 358, :_reduce_none,
  3, 358, :_reduce_581,
  1, 306, :_reduce_582,
  3, 306, :_reduce_583,
  1, 359, :_reduce_none,
  2, 360, :_reduce_585,
  1, 360, :_reduce_586,
  2, 361, :_reduce_587,
  1, 361, :_reduce_588,
  1, 300, :_reduce_none,
  3, 300, :_reduce_590,
  1, 354, :_reduce_none,
  3, 354, :_reduce_592,
  1, 362, :_reduce_none,
  1, 362, :_reduce_none,
  2, 301, :_reduce_595,
  1, 301, :_reduce_596,
  3, 363, :_reduce_597,
  3, 364, :_reduce_598,
  1, 307, :_reduce_599,
  3, 307, :_reduce_600,
  1, 356, :_reduce_601,
  3, 356, :_reduce_602,
  1, 365, :_reduce_none,
  1, 365, :_reduce_none,
  2, 308, :_reduce_605,
  1, 308, :_reduce_606,
  1, 366, :_reduce_none,
  1, 366, :_reduce_none,
  2, 303, :_reduce_609,
  2, 302, :_reduce_610,
  0, 302, :_reduce_611,
  1, 270, :_reduce_none,
  0, 367, :_reduce_613,
  4, 270, :_reduce_614,
  1, 249, :_reduce_615,
  2, 249, :_reduce_none,
  1, 231, :_reduce_none,
  3, 231, :_reduce_618,
  3, 368, :_reduce_619,
  2, 368, :_reduce_620,
  4, 368, :_reduce_621,
  2, 368, :_reduce_622,
  1, 200, :_reduce_none,
  1, 200, :_reduce_none,
  1, 200, :_reduce_none,
  1, 194, :_reduce_none,
  1, 194, :_reduce_none,
  1, 194, :_reduce_none,
  1, 194, :_reduce_none,
  1, 322, :_reduce_none,
  1, 322, :_reduce_none,
  1, 322, :_reduce_none,
  1, 271, :_reduce_none,
  1, 271, :_reduce_none,
  1, 182, :_reduce_none,
  1, 193, :_reduce_none,
  1, 193, :_reduce_none,
  0, 150, :_reduce_none,
  1, 150, :_reduce_none,
  0, 184, :_reduce_none,
  1, 184, :_reduce_none,
  2, 205, :_reduce_none,
  2, 181, :_reduce_none,
  0, 230, :_reduce_none,
  1, 230, :_reduce_none,
  1, 230, :_reduce_none,
  1, 266, :_reduce_647,
  1, 266, :_reduce_none,
  1, 153, :_reduce_none,
  2, 153, :_reduce_650,
  0, 151, :_reduce_651 ]

racc_reduce_n = 652

racc_shift_n = 1096

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

racc_nt_base = 145

racc_use_result_var = true

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

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

Racc_debug_parser = false

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

# reduce 0 omitted

def _reduce_1(val, _values, result)
                      self.lexer.lex_state = EXPR_BEG

    result
end

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

    result
end

def _reduce_3(val, _values, result)
                      stmt, _ = val
                      result = stmt

    result
end

# reduce 4 omitted

# reduce 5 omitted

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

    result
end

# reduce 7 omitted

# reduce 8 omitted

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

    result
end

def _reduce_10(val, _values, result)
                      (_, lineno), _, iter = val
                      iter.line lineno

                      (_, preexe,) = iter
                      preexe.line lineno

                      result = iter

    result
end

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

def _reduce_12(val, _values, result)
                      _, line, stmt, _ = val
                      result = new_iter s(:preexe).line(line), 0, stmt

    result
end

def _reduce_13(val, _values, result)
                      res = _values[-2]
                      yyerror "else without rescue is useless" unless res

    result
end

def _reduce_14(val, _values, result)
                      body, resc, _, _, els, ens = val

                      result = new_body [body, resc, els, ens]

    result
end

def _reduce_15(val, _values, result)
                      body, resc, ens = val

                      result = new_body [body, resc, nil, ens]

    result
end

def _reduce_16(val, _values, result)
                      result = new_compstmt val

    result
end

# reduce 17 omitted

# reduce 18 omitted

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

    result
end

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

    result
end

# reduce 21 omitted

def _reduce_22(val, _values, result)
                      yyerror "BEGIN is permitted only at toplevel"

    result
end

def _reduce_23(val, _values, result)
                      lexer.lex_state = EXPR_FNAME

    result
end

def _reduce_24(val, _values, result)
                      (_, line), lhs, _, rhs = val
                      result = s(:alias, lhs, rhs).line(line).line line

    result
end

def _reduce_25(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, rhs.to_sym).line line

    result
end

def _reduce_26(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, :"$#{rhs}").line line

    result
end

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

    result
end

def _reduce_28(val, _values, result)
                      result = val[1]

    result
end

def _reduce_29(val, _values, result)
                      t, _, c = val
                      result = new_if c, t, nil

    result
end

def _reduce_30(val, _values, result)
                      f, _, c = val
                      result = new_if c, nil, f

    result
end

def _reduce_31(val, _values, result)
                      e, _, c = val
                      result = new_while e, c, true

    result
end

def _reduce_32(val, _values, result)
                      e, _, c = val
                      result = new_until e, c, true

    result
end

def _reduce_33(val, _values, result)
                      body, _, resbody = val

                      resbody = new_resbody s(:array).line(resbody.line), resbody
                      result = new_rescue body, resbody

    result
end

def _reduce_34(val, _values, result)
                      (_, line), _, stmt, _ = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 3
                        yyerror "END in method; use at_exit"
                      end

                      result = new_iter s(:postexe).line(line), 0, stmt

    result
end

# reduce 35 omitted

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

    result
end

def _reduce_37(val, _values, result)
                      lhs, _, rhs = val
                      result = new_assign lhs, s(:svalue, rhs).line(rhs.line)

    result
end

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

    result
end

# reduce 39 omitted

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

    result
end

def _reduce_41(val, _values, result)
                      result = new_op_asgn val

    result
end

def _reduce_42(val, _values, result)
                      result = new_op_asgn1 val

    result
end

def _reduce_43(val, _values, result)
                      prim, _, id, opasgn, rhs = val
                      result = s(:op_asgn, prim, rhs, id.to_sym, opasgn.to_sym)
                      if val[1] == '&.'
                        result.sexp_type = :safe_op_asgn
                      end
                      result.line = val[0].line

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_48(val, _values, result)
                      expr, = val
                      result = value_expr expr

    result
end

# reduce 49 omitted

# reduce 50 omitted

def _reduce_51(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :and, lhs, rhs

    result
end

def _reduce_52(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :or, lhs, rhs

    result
end

def _reduce_53(val, _values, result)
                      (_, line), _, expr = val
                      result = new_call(expr, :"!").line line
                      # REFACTOR: call_uni_op

    result
end

def _reduce_54(val, _values, result)
                      _, cmd = val
                      result = new_call(cmd, :"!").line cmd.line
                      # TODO: fix line number to tBANG... but causes BAD shift/reduce conflict
                      # REFACTOR: call_uni_op -- see parse26.y

    result
end

# reduce 55 omitted

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

    result
end

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

    result
end

def _reduce_58(val, _values, result)
                      lexer.cond.pop

    result
end

def _reduce_59(val, _values, result)
                      _, expr, _, _ = val
                      result = expr

    result
end

# reduce 60 omitted

# reduce 61 omitted

# reduce 62 omitted

def _reduce_63(val, _values, result)
                      blk, _, msg, args = val
                      result = new_call(blk, msg.to_sym, args).line blk.line

    result
end

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

    result
end

def _reduce_65(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      # self.env.unextend

    result
end

def _reduce_66(val, _values, result)
                      msg, = val
                      result = new_call(nil, msg.to_sym).line lexer.lineno

    result
end

def _reduce_67(val, _values, result)
                      call, args = val
                      result = call.concat args.sexp_body

    result
end

def _reduce_68(val, _values, result)
                      call, args, block = val

                      result = call.concat args.sexp_body

                      if block then
                        block_dup_check result, block

                        result, operation = block, result
                        result.insert 1, operation
                      end

    result
end

def _reduce_69(val, _values, result)
                      lhs, callop, op, args = val
                      result = new_call lhs, op.to_sym, args, callop

    result
end

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

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

    result
end

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block

    result
end

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

    result
end

def _reduce_74(val, _values, result)
                      (_, line), args = val
                      result = new_yield args
                      result.line line # TODO: push to new_yield

    result
end

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

    result
end

def _reduce_76(val, _values, result)
                      (_, line), args = val
                      result = s(:break, ret_args(args)).line line

    result
end

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

    result
end

# reduce 78 omitted

def _reduce_79(val, _values, result)
                      result = val[1]

    result
end

# reduce 80 omitted

def _reduce_81(val, _values, result)
                      _, arg, _ = val
                      l = arg.line

                      result = s(:masgn, s(:array, arg).line(l)).line l

    result
end

def _reduce_82(val, _values, result)
                      head, = val
                      result = s(:masgn, head).line head.line

    result
end

def _reduce_83(val, _values, result)
                      lhs, rhs = val
                      result = s(:masgn, lhs << rhs.compact).line lhs.line

    result
end

def _reduce_84(val, _values, result)
                      head, _, tail = val
                      head << s(:splat, tail).line(tail.line)
                      result = s(:masgn, head).line head.line

    result
end

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

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

    result
end

def _reduce_86(val, _values, result)
                      head, _ = val
                      l = head.line
                      result = s(:masgn, head << s(:splat).line(l)).line l

    result
end

def _reduce_87(val, _values, result)
                      head, _, _, post = val
                      ary = list_append head, s(:splat).line(head.line)
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line

    result
end

def _reduce_88(val, _values, result)
                      _, node = val
                      l = node.line
                      splat  = s(:splat, node).line l
                      ary    = s(:array, splat).line l
                      result = s(:masgn, ary).line l

    result
end

def _reduce_89(val, _values, result)
                      _, node, _, post = val

                      splat = s(:splat, node).line node.line
                      ary = s(:array, splat).line splat.line
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line

    result
end

def _reduce_90(val, _values, result)
                      l = lexer.lineno
                      result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l

    result
end

def _reduce_91(val, _values, result)
                      _, _, post = val
                      l = post.line

                      splat = s(:splat).line l
                      ary = s(:array, splat, *post.sexp_body).line l
                      result = s(:masgn, ary).line l

    result
end

# reduce 92 omitted

def _reduce_93(val, _values, result)
                      result = val[1]

    result
end

def _reduce_94(val, _values, result)
                      lhs, _ = val
                      result = s(:array, lhs).line lhs.line

    result
end

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

    result
end

def _reduce_96(val, _values, result)
                      item, = val
                      result = s(:array, item).line item.line

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_102(val, _values, result)
                      recv, _, id = val
                      result = new_attrasgn recv, id

    result
end

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

    result
end

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

                      expr, _, id = val
                      l = expr.line

                      result = s(:const, s(:colon2, expr, id.to_sym).line(l), nil).line l

    result
end

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

                      _, id = val
                      l = lexer.lineno

                      result = s(:const, nil, s(:colon3, id.to_sym).line(l)).line l

    result
end

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

    result
end

def _reduce_107(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line

    result
end

def _reduce_108(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line
                      debug20 9, val, result

    result
end

def _reduce_109(val, _values, result)
                      lhs, _, args, _ = val
                      result = self.aryset lhs, args

    result
end

def _reduce_110(val, _values, result)
                      lhs, op, id = val
                      result = new_attrasgn lhs, id, op

    result
end

def _reduce_111(val, _values, result)
                      lhs, _, id = val
                      result = new_attrasgn lhs, id

    result
end

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

    result
end

def _reduce_113(val, _values, result)
                      expr, _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 10
                        yyerror "dynamic constant assignment"
                      end

                      l = expr.line
                      result = s(:const, s(:colon2, expr, id.to_sym).line(l)).line l

    result
end

def _reduce_114(val, _values, result)
                      _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 11
                        yyerror "dynamic constant assignment"
                      end

                      l = lexer.lineno
                      result = s(:const, s(:colon3, id.to_sym).line(l)).line l

    result
end

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

    result
end

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

    result
end

# reduce 117 omitted

def _reduce_118(val, _values, result)
                      _, name = val
                      result = s(:colon3, name.to_sym).line lexer.lineno

    result
end

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

    result
end

def _reduce_120(val, _values, result)
                      pval, _, name = val

                      result = s(:colon2, pval, name.to_sym)
                      result.line pval.line

    result
end

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

def _reduce_124(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[0]

    result
end

def _reduce_125(val, _values, result)
                      (sym, _line), = val
                      lexer.lex_state = EXPR_END
                      result = sym

    result
end

# reduce 126 omitted

# reduce 127 omitted

def _reduce_128(val, _values, result)
                      id, = val
                      result = s(:lit, id.to_sym).line lexer.lineno

    result
end

# reduce 129 omitted

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

    result
end

def _reduce_131(val, _values, result)
                      lexer.lex_state = EXPR_FNAME

    result
end

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

    result
end

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

# reduce 197 omitted

# reduce 198 omitted

# reduce 199 omitted

# reduce 200 omitted

# reduce 201 omitted

# reduce 202 omitted

# reduce 203 omitted

# reduce 204 omitted

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

    result
end

def _reduce_206(val, _values, result)
                      result = new_op_asgn val

    result
end

def _reduce_207(val, _values, result)
                      result = new_op_asgn1 val

    result
end

def _reduce_208(val, _values, result)
                      result = new_op_asgn2 val

    result
end

def _reduce_209(val, _values, result)
                      result = new_op_asgn2 val

    result
end

def _reduce_210(val, _values, result)
                      lhs, _, id, op, rhs = val

                      result = s(:op_asgn, lhs, rhs, id.to_sym, op.to_sym).line lhs.line

    result
end

def _reduce_211(val, _values, result)
                      lhs1, _, lhs2, op, rhs = val

                      lhs = s(:colon2, lhs1, lhs2.to_sym).line lhs1.line
                      result = new_const_op_asgn [lhs, op, rhs]

    result
end

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

    result
end

def _reduce_213(val, _values, result)
                      _, lhs, line, op, rhs = val

                      lhs = s(:colon3, lhs.to_sym).line line
                      result = new_const_op_asgn [lhs, op, rhs]

    result
end

def _reduce_214(val, _values, result)
                      # TODO: lhs = var_field val[0]
                      asgn = new_op_asgn val
                      result = self.backref_assign_error asgn

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_223(val, _values, result)
                      lit = s(:lit, val[1]).line lexer.lineno
                      result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")


    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 230 omitted

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

    result
end

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

    result
end

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

    result
end

def _reduce_234(val, _values, result)
                      lhs, _, rhs = val
                      result = new_match lhs, rhs

    result
end

def _reduce_235(val, _values, result)
                      lhs, _, rhs = val
                      result = s(:not, new_match(lhs, rhs)).line lhs.line

    result
end

def _reduce_236(val, _values, result)
                      _, arg = val
                      result = new_call arg, :"!"
                      result.line arg.line

    result
end

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

    result
end

def _reduce_238(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_239(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_240(val, _values, result)
                      result = logical_op :and, val[0], val[2]

    result
end

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

    result
end

def _reduce_242(val, _values, result)
                      (_, line), _, arg = val
                      result = s(:defined, arg).line line

    result
end

def _reduce_243(val, _values, result)
                      c, _, t, _, _, f = val
                      result = s(:if, c, t, f).line c.line

    result
end

# reduce 244 omitted

# reduce 245 omitted

# reduce 246 omitted

# reduce 247 omitted

# reduce 248 omitted

def _reduce_249(val, _values, result)
                      lhs, op, rhs = val
                      result = new_call lhs, op.to_sym, argl(rhs)

    result
end

def _reduce_250(val, _values, result)
                      lhs, op, rhs = val
                      warn "comparison '%s' after comparison", op
                      result = new_call lhs, op.to_sym, argl(rhs)

    result
end

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

    result
end

# reduce 252 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 256 omitted

def _reduce_257(val, _values, result)
                      body, (_, line), resbody = val
                      body    = value_expr body
                      resbody = remove_begin resbody

                      ary = s(:array).line line
                      result  = new_rescue(body, new_resbody(ary, resbody))

    result
end

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

    result
end

# reduce 259 omitted

# reduce 260 omitted

# reduce 261 omitted

# reduce 262 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_267(val, _values, result)
                      result = call_args val

    result
end

def _reduce_268(val, _values, result)
                      result = call_args [array_to_hash(val[0]), val[1]]

    result
end

def _reduce_269(val, _values, result)
                      result = call_args [val[0], array_to_hash(val[2]), val[3]]

    result
end

def _reduce_270(val, _values, result)
                      result = call_args val

    result
end

def _reduce_271(val, _values, result)
                      result = lexer.cmdarg.store true

    result
end

def _reduce_272(val, _values, result)
                      lexer.cmdarg.restore val[0]
                      result = val[1]

    result
end

def _reduce_273(val, _values, result)
                      _, arg = val
                      result = s(:block_pass, arg).line arg.line

    result
end

def _reduce_274(val, _values, result)
                      result = val[1]

    result
end

# reduce 275 omitted

def _reduce_276(val, _values, result)
                      arg, = val

                      result = s(:array, arg).line arg.line

    result
end

def _reduce_277(val, _values, result)
                      _, arg = val
                      result = s(:array, s(:splat, arg).line(arg.line)).line arg.line

    result
end

def _reduce_278(val, _values, result)
                      args, _, id = val
                      result = self.list_append args, id

    result
end

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

def _reduce_280(val, _values, result)
                      args, _, _, line, id = val
                      result = self.list_append args, s(:splat, id).line(line)

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_284(val, _values, result)
                      # FIX: bad shift/reduce conflict with rhs' comma star prod
                      # TODO: make all tXXXX terminals include lexer.lineno
                      arg, _, _, splat = val
                      result = self.arg_concat arg, splat

    result
end

def _reduce_285(val, _values, result)
                      _, arg = val
                      result = s(:splat, arg).line arg.line

    result
end

# reduce 286 omitted

# reduce 287 omitted

# reduce 288 omitted

# reduce 289 omitted

# reduce 290 omitted

# reduce 291 omitted

# reduce 292 omitted

# reduce 293 omitted

# reduce 294 omitted

# reduce 295 omitted

def _reduce_296(val, _values, result)
                      msg, = val
                      result = new_call nil, msg.to_sym

    result
end

def _reduce_297(val, _values, result)
                      result = self.lexer.lineno
                      # TODO:
                      # $<val>1 = cmdarg_stack;
                      # CMDARG_SET(0);

    result
end

def _reduce_298(val, _values, result)
                      # TODO: CMDARG_SET($<val>1);
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]

    result
end

def _reduce_299(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG
                      result = lexer.lineno

    result
end

def _reduce_300(val, _values, result)
                      _, line, _ = val
                      result = s(:begin).line line

    result
end

def _reduce_301(val, _values, result)
                      result = lexer.cmdarg.store false

    result
end

def _reduce_302(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG

    result
end

def _reduce_303(val, _values, result)
                      _, cmdarg, stmt, _, _, = val
                      warning "(...) interpreted as grouped expression"
                      lexer.cmdarg.restore cmdarg
                      result = stmt

    result
end

def _reduce_304(val, _values, result)
                      _, stmt, _ = val
                      result = stmt
                      result ||= s(:nil).line lexer.lineno
                      result.paren = true

    result
end

def _reduce_305(val, _values, result)
                      expr, _, id = val

                      result = s(:colon2, expr, id.to_sym).line expr.line

    result
end

def _reduce_306(val, _values, result)
                      _, id = val

                      result = s(:colon3, id.to_sym).line lexer.lineno

    result
end

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

def _reduce_308(val, _values, result)
                      _, line, args, _ = val
                      result = args || s(:array)
                      result.sexp_type = :array # aref_args is :args
                      result.line line

    result
end

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

    result
end

def _reduce_310(val, _values, result)
                      result = new_hash val

    result
end

def _reduce_311(val, _values, result)
                      (_, line), = val
                      result = s(:return).line line

    result
end

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

    result
end

def _reduce_313(val, _values, result)
                      result = new_yield

    result
end

def _reduce_314(val, _values, result)
                      result = new_yield

    result
end

def _reduce_315(val, _values, result)
                      (_, line), _, _, arg, _ = val

                      result = s(:defined, arg).line line

    result
end

def _reduce_316(val, _values, result)
                      _, _, lhs, _ = val
                      result = new_call lhs, :"!"

    result
end

def _reduce_317(val, _values, result)
                      debug20 14, val, result

    result
end

def _reduce_318(val, _values, result)
                      call, iter = val

                      iter.insert 1, call
                      result = iter
                      # FIX: probably not: call.line = iter.line

    result
end

# reduce 319 omitted

def _reduce_320(val, _values, result)
                      call, iter = val[0], val[1]
                      block_dup_check call, iter
                      iter.insert 1, call # FIX
                      result = iter

    result
end

def _reduce_321(val, _values, result)
                      result = val[1] # TODO: fix lineno

    result
end

def _reduce_322(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, t, f

    result
end

def _reduce_323(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, f, t

    result
end

def _reduce_324(val, _values, result)
                      _, cond, body, _ = val
                      result = new_while body, cond, true

    result
end

def _reduce_325(val, _values, result)
                      _, cond, body, _ = val
                      result = new_until body, cond, true

    result
end

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

    result
end

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

    result
end

def _reduce_328(val, _values, result)
                      _, var, _, iter, body, _ = val
                      result = new_for iter, var, body

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

                      self.env.extend

    result
end

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

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

    result
end

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

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

                      result = new_defn val

                      lexer.cmdarg.stack.replace cmdarg
                      self.env.unextend
                      self.in_def = in_def
                      self.lexer.comments # we don't care about comments in the body

    result
end

def _reduce_342(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = EXPR_FNAME

    result
end

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

    result
end

def _reduce_344(val, _values, result)
                      _, cmdarg = val[5]
                      result = new_defs val

                      lexer.cmdarg.stack.replace cmdarg

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

    result
end

def _reduce_345(val, _values, result)
                      (_, line), = val
                      result = s(:break).line line

    result
end

def _reduce_346(val, _values, result)
                      (_, line), = val
                      result = s(:next).line line

    result
end

def _reduce_347(val, _values, result)
                      (_, line), = val
                      result = s(:redo).line line

    result
end

def _reduce_348(val, _values, result)
                      (_, line), = val
                      result = s(:retry).line line

    result
end

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

    result
end

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

# reduce 353 omitted

# reduce 354 omitted

# reduce 355 omitted

# reduce 356 omitted

# reduce 357 omitted

# reduce 358 omitted

# reduce 359 omitted

# reduce 360 omitted

# reduce 361 omitted

# reduce 362 omitted

# reduce 363 omitted

# reduce 364 omitted

# reduce 365 omitted

# reduce 366 omitted

# reduce 367 omitted

# reduce 368 omitted

# reduce 369 omitted

# reduce 370 omitted

# reduce 371 omitted

# reduce 372 omitted

# reduce 373 omitted

# reduce 374 omitted

def _reduce_375(val, _values, result)
                      (_, line), c, _, t, rest = val

                      result = s(:if, c, t, rest).line line

    result
end

# reduce 376 omitted

def _reduce_377(val, _values, result)
                      result = val[1]

    result
end

# reduce 378 omitted

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

    result
end

# reduce 380 omitted

def _reduce_381(val, _values, result)
                      result = val[1]

    result
end

def _reduce_382(val, _values, result)
                      sym, = val

                      result = s(:array, sym).line lexer.lineno

    result
end

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

    result
end

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

                      result = block_var args

    result
end

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

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

    result
end

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

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

    result
end

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

                      result = block_var args, :*

    result
end

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

                      result = block_var args, :*, args2

    result
end

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

                      result = block_var :"*#{splat}"

    result
end

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

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

    result
end

def _reduce_391(val, _values, result)
                      result = block_var :*

    result
end

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

                      result = block_var :*, args

    result
end

def _reduce_393(val, _values, result)
                      result = call_args val

    result
end

def _reduce_394(val, _values, result)
                      result = call_args val

    result
end

def _reduce_395(val, _values, result)
                      result = call_args val

    result
end

def _reduce_396(val, _values, result)
                      line = lexer.lineno
                      result = call_args val # TODO: push line down
                      result.line line

    result
end

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

    result
end

# reduce 398 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_404(val, _values, result)
                      result = args(val) << nil

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

def _reduce_415(val, _values, result)
                      self.lexer.command_start = true

    result
end

def _reduce_416(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val

    result
end

def _reduce_417(val, _values, result)
                      result = s(:args).line lexer.lineno

    result
end

def _reduce_418(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val

    result
end

# reduce 419 omitted

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

    result
end

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

    result
end

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

    result
end

def _reduce_423(val, _values, result)
                      id, = val
                      line = lexer.lineno
                      result = s(:shadow, id.to_sym).line line

    result
end

# reduce 424 omitted

def _reduce_425(val, _values, result)
                      self.env.extend :dynamic
                      result = [lexer.lineno, lexer.lpar_beg]
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest

    result
end

def _reduce_426(val, _values, result)
                      result = lexer.cmdarg.store(false)

    result
end

def _reduce_427(val, _values, result)
                      (line, lpar), args, cmdarg, body = val
                      lexer.lpar_beg = lpar

                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.lexpop

                      call = s(:lambda).line line
                      result = new_iter call, args, body
                      result.line = line
                      self.env.unextend

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_432(val, _values, result)
                      (_, line), iter, _ = val
                      result = iter.line line

    result
end

def _reduce_433(val, _values, result)
                      # TODO:
                      ## if (nd_type($1) == NODE_YIELD) {
                      ##     compile_error(PARSER_ARG "block given to yield");

                      syntax_error "Both block arg and actual block given." if
                        val[0].block_pass?

                      val = invert_block_call val if inverted? val

                      cmd, blk = val

                      result = blk
                      result.insert 1, cmd

    result
end

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

    result
end

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

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

                      result = iter2

    result
end

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

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

                      result = iter2

    result
end

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

    result
end

def _reduce_438(val, _values, result)
                      call, lineno, args = val

                      result = call.concat args.sexp_body if args
                      result.line lineno

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_445(val, _values, result)
                      result = s(:zsuper).line lexer.lineno

    result
end

def _reduce_446(val, _values, result)
                      result = new_aref val

    result
end

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

    result
end

def _reduce_448(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

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

    result
end

def _reduce_450(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

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

def _reduce_452(val, _values, result)
 result = lexer.cmdarg.store(false)
    result
end

def _reduce_453(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_brace_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?

    result
end

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

def _reduce_455(val, _values, result)
 result = lexer.cmdarg.store(false)
    result
end

def _reduce_456(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_do_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg

    result
end

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

    result
end

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

    result
end

# reduce 459 omitted

# reduce 460 omitted

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

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

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

    result
end

def _reduce_462(val, _values, result)
                      result = nil

    result
end

def _reduce_463(val, _values, result)
                      arg, = val
                      result = s(:array, arg).line arg.line

    result
end

# reduce 464 omitted

# reduce 465 omitted

def _reduce_466(val, _values, result)
                      result = val[1]

    result
end

# reduce 467 omitted

def _reduce_468(val, _values, result)
                      (_, line), body = val

                      result = body || s(:nil).line(line)

    result
end

# reduce 469 omitted

def _reduce_470(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line

    result
end

def _reduce_471(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line

    result
end

# reduce 472 omitted

def _reduce_473(val, _values, result)
                      str, = val
                      str = s(:dstr, str.value) if str.sexp_type == :evstr
                      result = str

    result
end

def _reduce_474(val, _values, result)
                      debug20 23, val, result

    result
end

# reduce 475 omitted

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

    result
end

def _reduce_477(val, _values, result)
                      _, str, (_, func) = val

                      str = dedent str if func =~ RubyLexer::STR_FUNC_ICNTNT

                      result = str

    result
end

def _reduce_478(val, _values, result)
                      result = new_string val

    result
end

def _reduce_479(val, _values, result)
                      result = new_xstring val[1]
                      # TODO: dedent?!?! SERIOUSLY?!?

    result
end

def _reduce_480(val, _values, result)
                      result = new_regexp val

    result
end

def _reduce_481(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

def _reduce_482(val, _values, result)
                      result = val[1]

    result
end

def _reduce_483(val, _values, result)
                      result = new_word_list

    result
end

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

    result
end

# reduce 485 omitted

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

    result
end

def _reduce_487(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

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

def _reduce_489(val, _values, result)
                      _, line, list, _, = val
                      list.line = line
                      result = list

    result
end

def _reduce_490(val, _values, result)
                      result = new_symbol_list.line lexer.lineno

    result
end

def _reduce_491(val, _values, result)
                      list, * = val
                      result = list.dup << new_symbol_list_entry(val)

    result
end

def _reduce_492(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

def _reduce_493(val, _values, result)
                      result = val[1]

    result
end

def _reduce_494(val, _values, result)
                      result = s(:array).line lexer.lineno # FIX

    result
end

def _reduce_495(val, _values, result)
                      result = val[1]

    result
end

def _reduce_496(val, _values, result)
                      result = new_qword_list

    result
end

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

    result
end

def _reduce_498(val, _values, result)
                      result = new_qsym_list

    result
end

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

    result
end

def _reduce_500(val, _values, result)
                      result = s(:str, "").line lexer.lineno

    result
end

def _reduce_501(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

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

    result
end

def _reduce_503(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

def _reduce_504(val, _values, result)
                      result = nil

    result
end

def _reduce_505(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

def _reduce_506(val, _values, result)
                      result = new_string val

    result
end

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG

    result
end

def _reduce_508(val, _values, result)
                      _, strterm, str = val
                      lexer.lex_strterm = strterm
                      result = s(:evstr, str).line str.line

    result
end

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

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

                      lexer.lex_state   = EXPR_BEG

    result
end

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

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

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

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

                      lexer.lex_state = oldlex_state

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

    result
end

def _reduce_511(val, _values, result)
 result = s(:gvar, val[0].to_sym).line lexer.lineno
    result
end

def _reduce_512(val, _values, result)
 result = s(:ivar, val[0].to_sym).line lexer.lineno
    result
end

def _reduce_513(val, _values, result)
 result = s(:cvar, val[0].to_sym).line lexer.lineno
    result
end

# reduce 514 omitted

def _reduce_515(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[1].to_sym

    result
end

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

    result
end

# reduce 517 omitted

# reduce 518 omitted

# reduce 519 omitted

# reduce 520 omitted

def _reduce_521(val, _values, result)
                      _, result, _ = val

                      lexer.lex_state = EXPR_END

                      result ||= s(:str, "").line lexer.lineno

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

    result
end

# reduce 522 omitted

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

    result
end

# reduce 524 omitted

# reduce 525 omitted

# reduce 526 omitted

# reduce 527 omitted

# reduce 528 omitted

# reduce 529 omitted

# reduce 530 omitted

# reduce 531 omitted

# reduce 532 omitted

def _reduce_533(val, _values, result)
 result = s(:nil).line lexer.lineno
    result
end

def _reduce_534(val, _values, result)
 result = s(:self).line lexer.lineno
    result
end

def _reduce_535(val, _values, result)
 result = s(:true).line lexer.lineno
    result
end

def _reduce_536(val, _values, result)
 result = s(:false).line lexer.lineno
    result
end

def _reduce_537(val, _values, result)
 result = s(:str, self.file).line lexer.lineno
    result
end

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

def _reduce_539(val, _values, result)
                      l = lexer.lineno
                      result =
                        if defined? Encoding then
                          s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
                        else
                          s(:str, "Unsupported!").line l
                        end

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_544(val, _values, result)
 result = s(:nth_ref,  val[0]).line lexer.lineno
    result
end

def _reduce_545(val, _values, result)
 result = s(:back_ref, val[0]).line lexer.lineno
    result
end

def _reduce_546(val, _values, result)
                      lexer.lex_state = EXPR_BEG
                      lexer.command_start = true

    result
end

def _reduce_547(val, _values, result)
                      result = val[2]

    result
end

def _reduce_548(val, _values, result)
                      result = nil

    result
end

def _reduce_549(val, _values, result)
                      result = val[1]
                      self.lexer.lex_state = EXPR_BEG
                      self.lexer.command_start = true

    result
end

def _reduce_550(val, _values, result)
                      result = self.in_kwarg
                      self.in_kwarg = true
                      self.lexer.lex_state |= EXPR_LABEL

    result
end

def _reduce_551(val, _values, result)
                      kwarg, args, _ = val

                      self.in_kwarg = kwarg
                      result = args
                      lexer.lex_state     = EXPR_BEG
                      lexer.command_start = true

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 555 omitted

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

    result
end

def _reduce_557(val, _values, result)
                      result = nil

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 577 omitted

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

                      result = identifier

    result
end

# reduce 579 omitted

# reduce 580 omitted

def _reduce_581(val, _values, result)
                      result = val[1]

    result
end

def _reduce_582(val, _values, result)
                      arg, = val

                      case arg
                      when Symbol then
                        result = s(:args, arg).line lexer.lineno
                      when Sexp then
                        result = arg
                      else
                        debug20 32
                        raise "Unknown f_arg type: #{val.inspect}"
                      end

    result
end

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

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

                      result << item

    result
end

# reduce 584 omitted

def _reduce_585(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), arg = val

                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      kwarg  = s(:kwarg, identifier, arg).line line
                      result = s(:array, kwarg).line line

    result
end

def _reduce_586(val, _values, result)
                      (label, line), = val

                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id).line(line)).line line

    result
end

def _reduce_587(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), expr = val
                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id, expr).line(line)).line line

    result
end

def _reduce_588(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), = val
                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id).line(line)).line line

    result
end

# reduce 589 omitted

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

    result
end

# reduce 591 omitted

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

    result
end

# reduce 593 omitted

# reduce 594 omitted

def _reduce_595(val, _values, result)
                      name = val[1].to_sym
                      self.assignable name
                      result = :"**#{name}"

    result
end

def _reduce_596(val, _values, result)
                      result = :"**"

    result
end

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

    result
end

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

    result
end

def _reduce_599(val, _values, result)
                      optblk, = val
                      result = s(:block, optblk).line optblk.line

    result
end

def _reduce_600(val, _values, result)
                      optarg, _, optblk = val
                      result = optarg
                      result << optblk

    result
end

def _reduce_601(val, _values, result)
                      opt, = val
                      result = s(:block, opt).line opt.line

    result
end

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

    result
end

# reduce 603 omitted

# reduce 604 omitted

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

    result
end

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

    result
end

# reduce 607 omitted

# reduce 608 omitted

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

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

    result
end

def _reduce_610(val, _values, result)
                      result = val[1]

    result
end

def _reduce_611(val, _values, result)
                      result = nil

    result
end

# reduce 612 omitted

def _reduce_613(val, _values, result)
                      lexer.lex_state = EXPR_BEG

    result
end

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

    result
end

def _reduce_615(val, _values, result)
                      result = s(:array).line lexer.lineno

    result
end

# reduce 616 omitted

# reduce 617 omitted

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

    result
end

def _reduce_619(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line

    result
end

def _reduce_620(val, _values, result)
                      (label, line), arg = val

                      lit = s(:lit, label.to_sym).line line
                      result = s(:array, lit, arg).line line

    result
end

def _reduce_621(val, _values, result)
                      _, sym, _, value = val
                      sym.sexp_type = :dsym
                      result = s(:array, sym, value).line sym.line

    result
end

def _reduce_622(val, _values, result)
                      _, arg = val
                      line = arg.line
                      result = s(:array, s(:kwsplat, arg).line(line)).line line

    result
end

# reduce 623 omitted

# reduce 624 omitted

# reduce 625 omitted

# reduce 626 omitted

# reduce 627 omitted

# reduce 628 omitted

# reduce 629 omitted

# reduce 630 omitted

# reduce 631 omitted

# reduce 632 omitted

# reduce 633 omitted

# reduce 634 omitted

# reduce 635 omitted

# reduce 636 omitted

# reduce 637 omitted

# reduce 638 omitted

# reduce 639 omitted

# reduce 640 omitted

# reduce 641 omitted

# reduce 642 omitted

# reduce 643 omitted

# reduce 644 omitted

# reduce 645 omitted

# reduce 646 omitted

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

# reduce 648 omitted

# reduce 649 omitted

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

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

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

end   # class Ruby22Parser
