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

require 'racc/parser.rb'
class Ruby21Parser < 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 = [
'-531,-112,598,-111,598,598,803,-531,-531,-531,817,598,-531,-531,-531',
'284,-531,234,-93,647,225,226,825,-110,-531,-299,-531,-531,-531,854,-112',
'-108,-79,128,1061,644,-531,-531,127,-531,-531,-531,-531,-531,598,-103',
'-109,-101,-107,-115,95,757,-110,235,-114,842,824,-109,96,422,-299,843',
'-109,124,424,423,-112,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531',
'-531,-531,-531,-531,-624,646,-531,-531,-531,222,-531,-531,-113,284,-531',
'225,226,-531,-531,284,-531,643,-531,223,-531,286,-531,-531,-531,-531',
'-531,-531,-531,235,-531,-103,-531,-101,-112,128,-111,128,128,-112,127',
'-111,127,127,128,-531,-531,-531,-531,127,-531,-305,-531,853,-103,-99',
'-110,-531,-305,-305,-305,-110,-531,224,-305,-305,-103,-305,-101,-103',
'128,-101,-98,-106,-625,127,-101,128,-105,-109,961,-100,127,-103,-109',
'-101,284,-305,-305,227,-305,-305,-305,-305,-305,-111,286,-212,128,225',
'226,235,286,127,106,107,225,226,-531,628,-212,723,664,-104,725,-531',
'-621,275,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,106,107,-305,-305,-305,-628,670,-105,-538,128,-305,665,336',
'-305,127,-538,-622,-543,-305,-437,-305,-114,-305,-305,-305,-305,-305',
'-305,-305,-624,-305,880,-305,605,-114,803,-110,-528,630,629,631,286',
'-628,628,-528,-305,-305,-628,-305,-621,-305,108,109,-528,-628,-628,-628',
'-305,-628,-99,-628,-628,-113,-628,235,-628,337,-112,-102,-531,-624,-621',
'-628,-108,-628,-446,-531,-100,825,108,109,-622,235,-628,-628,-531,-628',
'-628,-628,-628,-628,-109,-628,476,579,-628,576,575,574,-528,577,-537',
'-628,-622,630,629,-528,-624,-537,628,371,-628,824,787,-628,-628,-628',
'-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-446,-628,-628',
'-628,-628,628,671,-446,-543,628,-628,769,231,-628,628,770,-446,628,-628',
'280,-628,-115,-628,-628,-628,-628,-628,-628,-628,583,-628,-628,-628',
'579,-446,576,575,574,628,577,586,633,630,629,873,-628,-628,-305,-628',
'232,-628,906,665,664,-305,-305,-305,-628,583,395,-305,-305,-111,-305',
'-108,398,630,629,790,586,630,629,636,594,593,630,629,648,630,629,626',
'816,400,-305,-305,623,-305,-305,-305,-305,-305,-106,624,232,-103,-101',
'403,231,420,630,629,913,594,593,1031,-115,-542,587,-112,-110,425,1009',
'475,774,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-535,477,-305,-305,-305,-534,670,-535,587,-110,-305,-542,-534',
'-305,128,478,272,273,-305,127,-305,-115,-305,-305,-305,-305,-305,-305',
'-305,-109,-305,234,-305,579,-107,576,575,574,579,577,576,575,574,507',
'577,-305,-305,-628,-104,289,-305,271,270,-98,-628,-628,-628,-305,-305',
'128,-628,-628,-113,-628,127,-305,-295,-107,255,517,-625,743,-628,-295',
'-305,579,743,576,575,574,954,577,-295,-628,-628,746,-628,-628,-628,-628',
'-628,128,594,593,520,579,127,576,575,574,252,577,-533,255,254,253,250',
'251,723,-533,522,725,-78,743,-628,-628,-628,-628,-628,-628,-628,-628',
'-628,-628,-628,-628,-628,-628,235,255,-628,-628,-628,743,671,252,-536',
'-539,-628,254,253,-628,746,-536,-539,531,-628,532,-628,539,-628,-628',
'-628,-628,-628,-628,-628,292,-628,-628,-628,252,235,-349,-306,254,253',
'250,251,235,-349,-306,1040,-628,-628,-528,-102,289,-628,-349,-306,542',
'-528,-528,-528,-628,546,-528,-528,-528,-111,-528,255,255,579,235,576',
'575,574,-528,577,-528,-528,-528,723,225,226,725,265,266,723,-528,-528',
'722,-528,-528,-528,-528,-528,579,605,576,575,574,252,577,258,413,254',
'253,250,251,743,610,256,579,257,576,575,574,611,577,-528,-528,-528,-528',
'-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,635,743,-528,-528',
'-528,231,-528,-528,876,880,-528,639,230,-528,-528,642,-528,743,-528',
'645,-528,228,-528,-528,-528,-528,-528,-528,-528,652,-528,-276,-528,579',
'654,576,575,574,583,577,131,132,133,134,135,-528,-528,-528,-528,586',
'-528,-305,-528,225,226,876,880,-528,-305,-305,-305,655,-528,-305,-305',
'-305,235,-305,255,662,579,581,576,575,574,663,577,-305,-305,-305,289',
'675,594,593,265,266,255,-305,-305,255,-305,-305,-305,-305,-305,1002',
'255,576,575,574,252,577,258,255,254,253,250,251,743,682,256,1002,257',
'576,575,574,587,577,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,-305,235,235,-305,-305,-305,-305,819,-305,235,-93,-305',
'700,-305,-305,-305,235,-305,-625,-305,551,-305,-305,-305,-305,-305,-305',
'-305,-305,-305,711,-305,712,-305,579,716,576,575,574,583,577,131,132',
'133,134,135,-305,-305,-305,-305,586,-305,-628,-305,719,-306,726,727',
'-305,-628,-628,-628,-306,-113,-628,-628,-628,255,-628,255,522,-306,581',
'731,734,735,737,-628,-628,-628,-628,591,590,594,593,265,266,739,-628',
'-628,741,-628,-628,-628,-628,-628,749,750,751,252,753,252,-306,254,253',
'254,253,250,251,-306,901,902,719,719,903,122,123,587,-306,-628,-628',
'-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,605,719',
'-628,-628,-628,-295,818,-628,776,781,-628,791,-295,-628,-628,792,-628',
'255,-628,-277,-628,-295,-628,-628,-628,-628,-628,-628,-628,804,-628',
'-628,-628,265,266,131,132,133,134,135,131,132,133,134,135,-628,-628',
'-628,-628,252,-628,258,-628,254,253,250,251,-628,507,507,235,821,-111',
'310,85,86,87,12,78,275,830,231,79,80,832,520,522,83,1037,81,82,84,33',
'34,76,77,711,1035,235,289,289,88,31,30,116,115,117,118,711,255,22,235',
'235,871,235,659,11,49,312,13,120,119,121,110,60,112,111,113,880,114',
'122,123,719,106,107,235,45,46,44,255,259,260,261,262,272,273,267,268',
'263,264,-541,248,249,231,907,265,266,-541,43,-278,772,36,235,912,62',
'63,-541,929,64,774,38,252,711,258,48,254,253,250,251,271,270,256,23',
'257,-276,935,-540,103,95,97,98,99,101,-540,940,235,96,104,734,269,943',
'-251,-540,945,66,947,949,93,100,102,949,235,108,109,310,85,86,87,12',
'78,955,719,231,79,80,719,719,235,83,538,81,82,84,33,34,76,77,719,536',
'235,973,974,88,31,30,116,115,117,118,734,977,22,980,982,984,235,659',
'11,49,312,13,120,119,121,110,60,112,111,113,986,114,122,123,998,106',
'107,999,45,46,44,255,259,260,261,262,272,273,267,268,263,264,231,248',
'249,-541,1011,265,266,473,43,719,-541,36,719,781,62,63,474,1029,64,-541',
'38,252,1032,258,48,254,253,250,251,271,270,256,23,257,842,1038,-305',
'103,95,97,98,99,101,-305,231,1041,96,104,-625,269,949,658,-305,949,66',
'949,1046,93,100,102,656,1011,108,109,310,85,86,87,12,78,734,1055,-540',
'79,80,1057,1059,1061,83,-540,81,82,84,33,34,76,77,1061,-540,716,1011',
'719,88,31,30,116,115,117,118,719,-625,22,-624,235,949,1011,1084,11,49',
'312,13,120,119,121,110,60,112,111,113,1061,114,122,123,1061,106,107',
'1061,45,46,44,255,259,260,261,262,272,273,267,268,263,264,231,248,249',
'231,3,265,266,609,43,,548,36,,,62,63,607,,64,474,38,252,,258,48,254',
'253,250,251,271,270,256,23,257,,,231,103,95,97,98,99,101,1031,,,96,104',
',269,,,774,,66,,,93,100,102,,,108,109,310,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,312,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',
'310,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,312,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,310,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,312',
'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,310,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,312,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,,,314,,,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,310,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,312,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,310,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,312,13,120,119,121,110,60,112,111,113,,114,122,123,',
'106,107,,45,46,44,255,-650,-650,-650,-650,272,273,,,-650,-650,,,,,,265',
'266,,43,,,314,,,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,310,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,312,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,,,314,,,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,310,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,312,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,,,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,310,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,312,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,255,-650,-650,-650,-650,272,273,,,-650,-650,,,,,,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,310',
'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,312,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',
',-650,-650,,,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,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,255,259,260,261,262,272',
'273,267,268,263,264,,-650,-650,,,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,310,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,312,13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45',
'46,44,255,-650,-650,-650,-650,272,273,,,-650,-650,,,,,,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,310',
'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,312,13,120,119,121,110,60,112,111,113,,114',
'122,123,,106,107,,45,46,44,255,-650,-650,-650,-650,272,273,,,-650,-650',
',,,,,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,310,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,312,13,120,119,121,110,60',
'112,111,113,,114,122,123,,106,107,,45,46,44,255,-650,-650,-650,-650',
'272,273,,,-650,-650,,,,,,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,310,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,312',
'13,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,45,46,44,255',
'-650,-650,-650,-650,272,273,,,-650,-650,,,,,,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,310,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,312,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,310,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,312',
'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,310,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,312,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,310,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,312,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,310,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,312',
'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,310,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,312,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,310,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,312,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,310,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,312',
'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,310,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,312,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,310,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,312',
'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,',
',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,303,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76',
'77,,,,,,88,326,332,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,33,34,76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,',
'120,119,121,110,60,112,111,113,303,114,122,123,,106,107,,45,46,44,,',
',,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,',
',103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,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,303,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304',
'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,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,95,97,98,99,101',
',,,96,104,235,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,,79,80',
',,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,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,303,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304',
'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,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,',
',,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,',
',,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,95,97,98',
'99,101,,,,96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,',
'79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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,329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,',
'327,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,333,,',
',,,,,,,,,,,,,,,,,323,,,319,,,62,63,,,64,,318,,,,,,,,,,,,,,,,,103,95',
'97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,,78',
',,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,116,115,117,118',
',,247,,,,,,,327,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,333,,,,,,,,,,,,,,,,,,,,323,,,246,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,335,,,66,,,93,100,102,,,108,109,85,86,87',
',78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,116,115,117',
'118,,,247,,,,,,,327,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,,,333,,,,,,,,,,,,,,,,,,,,323,,,246,,,62,63,,,64,,,,,,,,,,,,,,,',
',,,103,95,97,98,99,101,,,,96,104,,,,534,,,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,329,330,76',
'77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,',
',240,,,246,,,62,63,,,64,,,,299,,48,,,,,,,,245,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88',
'326,332,116,115,117,118,,,247,,,,,,,327,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,323,,,319,,,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,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,327,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,',
',,,,,,,988,,,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,329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,',
'327,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,333,,',
',,,,,,,,,,,,,,,,,995,,,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,,695',
',,,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,329,330,76,77,,',
',,,88,326,332,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
'551,,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',
'329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,116,115,117',
'118,,,247,,,,,,,327,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,,,333,,,,,,,,,,,,,,,,,,,,988,,,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,329,330,76,77,,,,,,88,326,332,116',
'115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,303,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,,304',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76',
'77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,',
',240,,,246,,,62,63,,,64,,,,,,48,,,,,,,,245,,,,,103,95,97,98,99,101,',
',,96,104,,,,,,,66,,304,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,303,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48',
',,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88',
'326,332,116,115,117,118,,,247,,,,,,,327,,,120,119,121,612,60,112,111',
'613,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,614,,,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,329,330,76,77,,',
',,,88,326,332,116,115,117,118,,,247,,,,,,,327,,,120,119,121,612,60,112',
'111,613,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,614,,,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,,,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,329,330,76,77,,,,,,88,326,332,116,115,117',
'118,,,247,,,,,,,327,,,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,,,333,,,,,,,,,,,,,,,,,,,,365,,,36,,,62,63,,,64,,38,,,,,,,,,,,,',
',,,,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,,,,,,,66,,,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88',
'326,332,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,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,,,,103,95,97,98,99,101',
',,,96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,,79,80,',
',,83,,81,82,84,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88',
'326,332,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,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,,,,,,413,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,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,',
',,,88,326,332,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112',
'111,113,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,',
'246,,,62,63,,,64,,695,,299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,',
',96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,',
'83,,81,82,84,329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,',
',,,49,,,120,119,121,110,60,112,111,113,303,114,122,123,,106,107,,45',
'46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,299,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332',
'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,312,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',
',,,,,413,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,329,330,76,77,,,,,,88,326,332,116,115,117,118',
',,247,,,,,,,327,,,120,119,121,110,60,112,111,113,,114,122,123,,106,107',
',,,333,,,,,,,,,,,,,,,,,,,,323,,,319,,,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,,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,303,114,122',
'123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301',
',299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304',
'93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76',
'77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,327,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,323,',
',319,,,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,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,',
',,240,,,246,,,62,63,,,64,,430,,,,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,,430,,,,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,329,330,76,77,,,,,,88,326,332,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,,,,,,,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,303,114,122,123,,106,107,,45,46,44,',
',,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245,,',
',,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,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,235,,,,,,66,,,93',
'100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77',
',,,,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,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,303,114,122,123,,106,107,,45,46',
'44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299,,48,,,,,,,,245',
',,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102,,,108,109',
'85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332',
'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,329,330',
'76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,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,,796,,,,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,303,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,301,,299',
',48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247',
',,,,,,49,,,120,119,121,110,60,112,111,113,303,114,122,123,,106,107,',
'45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,695,,299,,48,,,',
',,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102,',
',108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88',
'326,332,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,303,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246',
',,62,63,,,64,,,,299,,48,,,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104',
',,,,,,66,,304,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,329,330,76,77,,,,,,88,326,332,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,329,330',
'76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,116,115,117,118,,,247,,,,,,,327,,,120,119,121,110,60,112',
'111,113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,323,,,319,,',
'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,329,330',
'76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,',
',,,88,326,332,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',
'329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,327,,,120',
'119,121,110,60,112,111,113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,',
',,,,,,,323,,,319,,,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326',
'332,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,,430,,,,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,329,330',
'76,77,,,,,,88,326,332,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,329,330,76,77,,,,,,88,326,332,116,115,117,118,,,247,,,,,,,49,',
',120,119,121,110,60,112,111,113,303,114,122,123,,106,107,,45,46,44,',
',,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,695,,,,48,,,,,,,,245,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102,,,108,109,85,86,87',
',78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88,326,332,116,115,117',
'118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,303,114,122,123',
',106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240,,,246,,,62,63,,,64,,,,,,48',
',,,,,,,245,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,304,93,100,102',
',,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,329,330,76,77,,,,,,88',
'326,332,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,329,330',
'76,77,,,,,,88,326,332,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,-630,,108,109,,,,-630,-630,-630,,,-630,-630',
'-630,579,-630,576,575,574,583,577,,,,-630,-630,-630,-630,,,586,,,,,-630',
'-630,,-630,-630,-630,-630,-630,,,,,,,,,,581,,,,,,,,,,,594,593,,-630',
'-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,-630,,,-630',
'-630,-630,,,-630,,,-630,,,-630,-630,,-630,587,-630,,-630,,-630,-630',
'-630,-630,-630,-630,-630,,-630,-630,-630,579,,576,575,574,583,577,,',
',,,-630,-630,-630,-630,586,-630,-314,-630,,,,,-630,-314,-314,-314,,',
'-314,-314,-314,,-314,,,,581,,,,,,-314,-314,,,,594,593,,,,-314,-314,',
'-314,-314,-314,-314,-314,,,,,,,,,,,,,,,,,,,,,,587,,-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,-296,-314,,-314,,,,-296',
'-296,-296,-314,,-296,-296,-296,579,-296,576,575,574,583,577,,,,,-296',
'-296,-296,,,586,,,,,-296,-296,,-296,-296,-296,-296,-296,,,,,,,,,,581',
',,,,,,,,,,594,593,,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296',
'-296,-296,-296,-296,,,-296,-296,-296,,,-296,,,-296,,,-296,-296,,-296',
'587,-296,,-296,,-296,-296,-296,-296,-296,-296,-296,,-296,,-296,579,',
'576,575,574,583,577,,,,,,-296,-296,-296,-296,586,-296,-649,-296,,,,',
'-296,-649,-649,-649,,,-649,-649,-649,,-649,,,,581,,,,,-649,-649,,,,',
'594,593,,,,-649,-649,,-649,-649,-649,-649,-649,,,,,,,,,,,,,,,,,,,,,',
'587,,,,,,,,,,,,,-649,,-445,,,,,-649,,-445,-445,-445,289,-649,-445,-445',
'-445,579,-445,576,575,574,583,577,,,,-445,-445,-445,,,,586,-649,-649',
',,-445,-445,,-445,-445,-445,-445,-445,,,-649,,,,,-649,,581,,,,,-649',
',,,591,590,594,593,,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445',
'-445,-445,-445,-445,,,-445,-445,-445,,,-445,,289,-445,,,-445,-445,,-445',
'587,-445,,-445,,-445,-445,-445,-445,-445,-445,-445,,-445,-445,-445,',
',,,,,,,,,,,-445,-445,-649,-445,,-445,,,,-649,-649,-649,-445,,-649,-649',
'-649,579,-649,576,575,574,583,577,,,,-649,-649,-649,,,,586,,,,,-649',
'-649,,-649,-649,-649,-649,-649,,,,,,,,,,581,,,,,,,,,591,590,594,593',
',-649,-649,-649,-649,-649,-649,-649,-649,-649,-649,-649,-649,-649,-649',
',,-649,-649,-649,,,-649,,289,-649,,,-649,-649,,-649,587,-649,,-649,',
'-649,-649,-649,-649,-649,-649,-649,,-649,-649,-649,,,,,,,,,,,,,-649',
'-649,-629,-649,,-649,,,,-629,-629,-629,-649,,-629,-629,-629,579,-629',
'576,575,574,583,577,,,,-629,-629,-629,-629,,,586,,,,,-629,-629,,-629',
'-629,-629,-629,-629,,,,,,,,,,581,,,,,,,,,591,590,594,593,,-629,-629',
'-629,-629,-629,-629,-629,-629,-629,-629,-629,-629,-629,-629,,,-629,-629',
'-629,,,-629,,,-629,,,-629,-629,,-629,587,-629,,-629,,-629,-629,-629',
'-629,-629,-629,-629,,-629,-629,-629,,,,,,,,,,,,,-629,-629,-629,-629',
',-629,,-629,,,,,-629,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,380,379',
'381,378,185,204,203,,,,,,184,191,182,183,375,376,377,373,141,112,111',
'374,,114,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175',
'176,161,162,,,,,,387,,,,,,,,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,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,,,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,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,410,409,140,,411,,,,,,,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,103,,,,,,,,,,104,,704,457,,,705,,,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,,,,,,,,,,798',
'457,,,799,,,,,,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,,,,,,,,,,505,457,,,506,,,,,,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,464,,,1071,,,,,,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,,,,,,,,,,1068,457,,,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,,,,,,,,,,1065,464,,,1064,,,,,,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,,,,,,,,,,764,457',
',,765,,,,,,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,,,,,,,,,,766,464,,,767,,,,,,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,,,,',
',,,,,460,464,,,459,,,,,,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,,,,,,,,,,453,457,,,454,,,,,,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,,,,,,,,,,676,457,,,677,,,,,,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,,,,,,,,,,678,464,,,679',
',,,,,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,,579,177,576,575,574,583,577,,,,,505,457,,,506,586,,,,,170',
',,173,174,178,169,151,152,153,160,157,159,,,154,155,581,,,175,176,161',
'162,,,591,590,594,593,,,,,,,,166,165,,150,172,168,167,163,164,158,156',
'148,171,149,,,177,,,,,,,,,587,678,464,,,679,,,,,,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,,,,,,,,',
',676,457,,,677,,,,,,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,,,,,,,,,,887,464,,,888,,,,,,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,,,,,,,,,,707,464,,,708,,,,,,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,579,,576,575,574,583,577',
',,801,464,,,800,,,586,,,170,,,173,174,178,169,151,152,153,160,157,159',
',,154,155,,,581,175,176,161,162,,,,,,289,594,593,,,,,,166,165,,150,172',
'168,167,163,164,158,156,148,171,149,,579,177,576,575,574,583,577,,,',
',,587,,,,586,,,,,170,,,,579,178,576,575,574,583,577,,,,,,,581,,579,586',
'576,575,574,583,577,591,590,594,593,,,,,579,586,576,575,574,583,577',
',581,579,,576,575,574,583,577,586,591,590,594,593,,,581,,586,,,587,',
',,591,590,594,593,,,581,,,,,,,235,,581,,594,593,,,587,,,,,594,593,579',
',576,575,574,583,577,,587,,,,,,,579,586,576,575,574,583,577,,587,,,',
',,,,586,587,,,,,,581,579,,576,575,574,583,577,,591,590,594,593,,,581',
'579,586,576,575,574,583,577,,591,590,594,593,,,,579,586,576,575,574',
'583,577,,581,,,,,,587,,586,,,594,593,,,581,565,,,,,587,,,591,590,594',
'593,,,581,,,,,,,,,,,594,593,,,587,,,,,,,,,,,,,,,587,,,,,,,,,,,,,,,587' ]
        racc_action_table = arr = ::Array.new(26028, 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 = [
'113,1069,958,1070,934,355,909,113,113,113,677,354,113,113,113,65,113',
'22,699,404,469,469,683,1068,113,62,113,113,113,729,765,363,699,307,1089',
'401,113,113,307,113,113,113,113,113,884,705,1082,704,362,366,92,600',
'764,22,610,715,683,885,92,138,62,715,909,3,138,138,677,113,113,113,113',
'113,113,113,113,113,113,113,113,113,113,1070,404,113,113,113,13,113',
'113,767,685,113,784,784,113,113,328,113,401,113,15,113,65,113,113,113',
'113,113,113,113,469,113,705,113,704,1069,958,1070,934,355,1069,958,1070',
'934,355,354,113,113,113,113,354,113,800,113,729,765,363,1068,113,800',
'800,800,1068,113,16,800,800,705,800,704,705,600,704,362,366,767,600',
'764,884,610,1082,884,885,884,705,1082,704,29,800,800,18,800,800,800',
'800,800,766,685,337,966,353,353,784,328,966,44,44,714,714,374,391,475',
'851,798,767,851,374,612,25,800,800,800,800,800,800,800,800,800,800,800',
'800,800,800,333,333,800,800,800,707,800,337,375,5,800,799,40,800,5,375',
'613,42,800,29,800,337,800,800,800,800,800,800,800,766,800,1014,800,1014',
'475,660,798,612,391,391,391,29,887,637,612,800,800,801,800,612,800,44',
'44,612,801,801,801,800,707,42,801,801,800,801,714,707,43,799,766,613',
'707,612,801,42,707,836,613,660,831,333,333,613,49,801,801,613,801,801',
'801,801,801,660,707,241,746,887,746,746,746,373,746,376,887,613,637',
'637,373,887,376,789,73,887,831,637,801,801,801,801,801,801,801,801,801',
'801,801,801,801,801,836,887,801,801,801,640,801,836,239,396,801,614',
'27,801,406,614,836,389,801,27,801,241,801,801,801,801,801,801,801,731',
'801,801,801,954,836,954,954,954,393,954,731,393,789,789,746,801,801',
'459,801,20,801,789,454,453,459,459,459,801,974,99,459,459,801,459,239',
'100,640,640,640,974,396,396,396,731,731,406,406,406,389,389,389,676',
'101,459,459,383,459,459,459,459,459,20,383,437,454,453,102,1030,136',
'393,393,820,974,974,1030,20,238,731,454,453,220,954,240,1030,459,459',
'459,459,459,459,459,459,459,459,459,459,459,459,381,242,459,459,459',
'380,459,381,974,676,459,41,380,459,893,243,47,47,459,893,459,437,459',
'459,459,459,459,459,459,820,459,247,459,871,238,871,871,871,743,871',
'743,743,743,281,743,459,459,460,459,285,459,47,47,41,460,460,460,459',
'1071,897,460,460,459,460,897,1071,324,41,496,296,1071,871,460,324,1071',
'955,743,955,955,955,871,955,324,460,460,743,460,460,460,460,460,359',
'734,734,297,581,359,581,581,581,496,581,379,481,496,496,496,496,562',
'379,300,562,313,955,460,460,460,460,460,460,460,460,460,460,460,460',
'460,460,315,497,460,460,460,581,460,481,378,377,460,481,481,460,581',
'378,377,316,460,317,460,323,460,460,460,460,460,460,460,326,460,460',
'460,497,327,50,539,497,497,497,497,1000,50,539,1000,460,460,110,460',
'332,460,50,539,334,110,110,110,460,338,110,110,110,460,110,549,341,873',
'346,873,873,873,110,873,110,110,110,558,17,17,558,549,549,557,110,110',
'557,110,110,110,110,110,1011,360,1011,1011,1011,549,1011,549,361,549',
'549,549,549,873,365,549,1009,549,1009,1009,1009,367,1009,110,110,110',
'110,110,110,110,110,110,110,110,110,110,110,395,1011,110,110,110,19',
'110,110,1048,1048,110,398,19,110,110,400,110,1009,110,403,110,19,110',
'110,110,110,110,110,110,426,110,429,110,947,431,947,947,947,947,947',
'555,555,555,555,555,110,110,110,110,947,110,679,110,778,778,752,752',
'110,679,679,679,434,110,679,679,679,448,679,501,451,1046,947,1046,1046',
'1046,452,1046,679,679,679,461,471,947,947,501,501,483,679,679,484,679',
'679,679,679,679,940,485,940,940,940,501,940,501,486,501,501,501,501',
'1046,502,501,1040,501,1040,1040,1040,947,1040,679,679,679,679,679,679',
'679,679,679,679,679,679,679,679,513,514,679,679,679,708,679,679,529',
'530,679,533,708,679,679,535,679,708,679,540,679,708,679,679,679,679',
'679,679,679,543,679,545,679,1055,552,1055,1055,1055,1055,1055,9,9,9',
'9,9,679,679,679,679,1055,679,678,679,553,770,559,560,679,678,678,678',
'770,679,678,678,678,482,678,489,563,770,1055,567,568,570,571,678,678',
'678,678,1055,1055,1055,1055,489,489,572,678,678,580,678,678,678,678',
'678,588,592,595,482,597,489,1038,482,482,489,489,489,489,1038,785,785',
'601,602,785,785,785,1055,1038,678,678,678,678,678,678,678,678,678,678',
'678,678,678,678,603,604,678,678,678,996,678,678,618,621,678,644,996',
'678,678,647,678,488,678,653,678,996,678,678,678,678,678,678,678,661',
'678,678,678,488,488,528,528,528,528,528,311,311,311,311,311,678,678',
'678,678,488,678,488,678,488,488,488,488,678,666,672,680,681,678,844',
'844,844,844,844,844,684,687,994,844,844,689,692,694,844,994,844,844',
'844,844,844,844,844,701,994,703,706,709,844,844,844,844,844,844,844',
'710,713,844,720,730,745,747,441,844,844,844,844,844,844,844,844,844',
'844,844,844,754,844,844,844,760,844,844,763,844,844,844,441,441,441',
'441,441,441,441,441,441,441,441,993,441,441,616,793,441,441,993,844',
'795,616,844,797,805,844,844,993,829,844,616,844,441,835,441,844,441',
'441,441,441,441,441,441,844,441,846,847,992,844,844,844,844,844,844',
'992,855,856,844,844,857,441,861,441,992,862,844,864,865,844,844,844',
'867,870,844,844,1019,1019,1019,1019,1019,1019,872,875,322,1019,1019',
'881,886,890,1019,322,1019,1019,1019,1019,1019,1019,1019,894,322,896',
'905,915,1019,1019,1019,1019,1019,1019,1019,916,918,1019,919,920,922',
'923,447,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019',
'924,1019,1019,1019,938,1019,1019,939,1019,1019,1019,447,447,447,447',
'447,447,447,447,447,447,447,237,447,447,321,956,447,447,237,1019,965',
'321,1019,969,972,1019,1019,237,985,1019,321,1019,447,988,447,1019,447',
'447,447,447,447,447,447,1019,447,990,995,888,1019,1019,1019,1019,1019',
'1019,888,436,1004,1019,1019,888,447,1005,436,888,1006,1019,1007,1008',
'1019,1019,1019,436,1010,1019,1019,880,880,880,880,880,880,1020,1023',
'320,880,880,1024,1025,1026,880,320,880,880,880,880,880,880,880,1028',
'320,1034,1047,1052,880,880,880,880,880,880,880,1053,1064,880,1065,1067',
'1073,1074,1078,880,880,880,880,880,880,880,880,880,880,880,880,1079',
'880,880,880,1080,880,880,1081,880,880,880,24,24,24,24,24,24,24,24,24',
'24,24,364,24,24,339,1,24,24,364,880,,339,880,,,880,880,364,,880,339',
'880,24,,24,880,24,24,24,24,24,24,24,880,24,,,987,880,880,880,880,880',
'880,987,,,880,880,,24,,,987,,880,,,880,880,880,,,880,880,853,853,853',
'853,853,853,,,,853,853,,,,853,,853,853,853,853,853,853,853,,,,,,853',
'853,853,853,853,853,853,,,853,,,,,,853,853,853,853,853,853,853,853,853',
'853,853,853,,853,853,853,,853,853,,853,853,853,914,914,914,914,914,914',
'914,914,914,914,914,,914,914,,,914,914,,853,,,853,,,853,853,,,853,,853',
'914,,914,853,914,914,914,914,914,914,914,853,914,,,,853,853,853,853',
'853,853,,,,853,853,,914,,,,,853,,,853,853,853,,,853,853,854,854,854',
'854,854,854,,,,854,854,,,,854,,854,854,854,854,854,854,854,,,,,,854',
'854,854,854,854,854,854,,,854,,,,,,854,854,854,854,854,854,854,854,854',
'854,854,854,,854,854,854,,854,854,,854,854,854,802,802,802,802,802,802',
'802,802,802,802,802,,802,802,,,802,802,,854,,,854,,,854,854,,,854,,854',
'802,,802,854,802,802,802,802,802,802,802,854,802,,,,854,854,854,854',
'854,854,,,,854,854,,802,,,,,854,,,854,854,854,,,854,854,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,294,294,294,294,294,294,294,294,294,294,294,,294,294',
',,294,294,,1017,,,1017,,,1017,1017,,,1017,,1017,294,,294,1017,294,294',
'294,294,294,294,294,1017,294,,,,1017,1017,1017,1017,1017,1017,,,,1017',
'1017,,294,,,,,1017,,,1017,1017,1017,,,1017,1017,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,550,550,550,550,550,550,550,550',
'550,550,550,,550,550,,,550,550,,319,,,319,,,319,319,,,319,,319,550,',
'550,319,550,550,550,550,550,550,550,319,550,,,,319,319,319,319,319,319',
',,,319,319,,550,,,,,319,,,319,319,319,,,319,319,1012,1012,1012,1012',
'1012,1012,,,,1012,1012,,,,1012,,1012,1012,1012,1012,1012,1012,1012,',
',,,,1012,1012,1012,1012,1012,1012,1012,,,1012,,,,,,1012,1012,1012,1012',
'1012,1012,1012,1012,1012,1012,1012,1012,,1012,1012,1012,,1012,1012,',
'1012,1012,1012,500,500,500,500,500,500,500,500,500,500,500,,500,500',
',,500,500,,1012,,,1012,,,1012,1012,,,1012,,1012,500,,500,1012,500,500',
'500,500,500,500,500,1012,500,,,,1012,1012,1012,1012,1012,1012,,,,1012',
'1012,500,500,,,,,1012,,,1012,1012,1012,,,1012,1012,314,314,314,314,314',
'314,,,,314,314,,,,314,,314,314,314,314,314,314,314,,,,,,314,314,314',
'314,314,314,314,,,314,,,,,,314,314,314,314,314,314,314,314,314,314,314',
'314,,314,314,314,,314,314,,314,314,314,492,492,492,492,492,492,492,',
',492,492,,,,,,492,492,,314,,,314,,,314,314,,,314,,314,492,,492,314,492',
'492,492,492,492,492,492,314,492,,,,314,314,314,314,314,314,,,,314,314',
',,,,,,314,,,314,314,314,,,314,314,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,498,498,498,498,498',
'498,498,,,498,498,,,,,,498,498,,36,,,36,,,36,36,,,36,,36,498,,498,36',
'498,498,498,498,498,498,498,36,498,,,,36,36,36,36,36,36,,,,36,36,,,',
',,,36,,,36,36,36,,,36,36,786,786,786,786,786,786,,,,786,786,,,,786,',
'786,786,786,786,786,786,786,,,,,,786,786,786,786,786,786,786,,,786,',
',,,,786,786,786,786,786,786,786,786,786,786,786,786,,786,786,786,,786',
'786,,786,786,786,499,499,499,499,499,499,499,499,,499,499,,,,,,499,499',
',786,,,786,,,786,786,,,786,,786,499,,499,786,499,499,499,499,499,499',
'499,786,499,,,,786,786,786,786,786,786,,,,786,786,,,,,,,786,,,786,786',
'786,,,786,786,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,493,493,493,493,493,493,493,,,493,493,,,,,,493,493,,358,,,358,,',
'358,358,,,358,,358,493,,493,358,493,493,493,493,493,493,493,358,493',
',,,358,358,358,358,358,358,,,,358,358,,,,,,,358,,,358,358,358,,,358',
'358,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,479,479',
'479,479,479,479,479,479,479,479,479,,479,479,,,479,479,,357,,,357,,',
'357,357,,,357,,357,479,,479,357,479,479,479,479,479,479,479,357,479',
',,,357,357,357,357,357,357,,,,357,357,,,,,,,357,,,357,357,357,,,357',
'357,649,649,649,649,649,649,,,,649,649,,,,649,,649,649,649,649,649,649',
'649,,,,,,649,649,649,649,649,649,649,,,649,,,,,,649,649,649,649,649',
'649,649,649,649,649,649,649,,649,649,649,,649,649,,649,649,649,480,480',
'480,480,480,480,480,480,480,480,480,,480,480,,,480,480,,649,,,649,,',
'649,649,,,649,,649,480,,480,649,480,480,480,480,480,480,480,649,480',
',,,649,649,649,649,649,649,,,,649,649,,,,,,,649,,,649,649,649,,,649',
'649,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,494,494',
'494,494,494,494,494,,,494,494,,,,,,494,494,,246,,,246,,,246,246,,,246',
',246,494,,494,246,494,494,494,494,494,494,494,246,494,,,,246,246,246',
'246,246,246,,,,246,246,,,,,,,246,,,246,246,246,,,246,246,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,490,490,490,490,490,490',
'490,,,490,490,,,,,,490,490,,991,,,991,,,991,991,,,991,,991,490,,490',
'991,490,490,490,490,490,490,490,991,490,,,,991,991,991,991,991,991,',
',,991,991,,,,,,,991,,,991,991,991,,,991,991,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,491,491,491,491,491,491,491,,,491',
'491,,,,,,491,491,,345,,,345,,,345,345,,,345,,345,491,,491,345,491,491',
'491,491,491,491,491,345,491,,,,345,345,345,345,345,345,,,,345,345,,',
',,,,345,,,345,345,345,,,345,345,962,962,962,962,962,962,,,,962,962,',
',,962,,962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962',
',,962,,,,,,962,962,962,962,962,962,962,962,962,962,962,962,,962,962',
'962,,962,962,,962,962,962,495,495,495,495,495,495,495,,,495,495,,,,',
',495,495,,962,,,962,,,962,962,,,962,,962,495,,495,962,495,495,495,495',
'495,495,495,962,495,,,,962,962,962,962,962,962,,,,962,962,,,,,,,962',
',,962,962,962,,,962,962,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,487,,,,,,,,,,,,,,,,487,487,,599,,,599,,,599,599,,,599,',
'599,487,,487,599,487,487,487,487,,,,599,,,,,599,599,599,599,599,599',
',,,599,599,,,,,,,599,,,599,599,599,,,599,599,768,768,768,768,768,768',
',,,768,768,,,,768,,768,768,768,768,768,768,768,,,,,,768,768,768,768',
'768,768,768,,,768,,,,,,768,768,768,768,768,768,768,768,768,768,768,768',
',768,768,768,,768,768,,768,768,768,,,,,,,,,,,,,,,,,,,,768,,,768,,,768',
'768,,,768,,768,,,,768,,,,,,,,768,,,,,768,768,768,768,768,768,,,,768',
'768,,,,,,,768,,,768,768,768,,,768,768,596,596,596,596,596,596,,,,596',
'596,,,,596,,596,596,596,596,596,596,596,,,,,,596,596,596,596,596,596',
'596,,,596,,,,,,596,596,596,596,596,596,596,596,596,596,596,596,,596',
'596,596,,596,596,,596,596,596,,,,,,,,,,,,,,,,,,,,596,,,596,,,596,596',
',,596,,596,,,,596,,,,,,,,596,,,,,596,596,596,596,596,596,,,,596,596',
',,,,,,596,,,596,596,596,,,596,596,222,222,222,222,222,222,,,,222,222',
',,,222,,222,222,222,222,222,222,222,,,,,,222,222,222,222,222,222,222',
',,222,,,,,,222,222,222,222,222,222,222,222,222,222,222,222,,222,222',
'222,,222,222,,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,,,222,222,,,222',
',222,,,,222,,,,,,,,222,,,,,222,222,222,222,222,222,,,,222,222,,,,,,',
'222,,,222,222,222,,,222,222,932,932,932,932,932,932,,,,932,932,,,,932',
',932,932,932,932,932,932,932,,,,,,932,932,932,932,932,932,932,,,932',
',,,,,932,932,932,932,932,932,932,932,932,932,932,932,,932,932,932,,932',
'932,,932,932,932,,,,,,,,,,,,,,,,,,,,932,,,932,,,932,932,,,932,,932,',
',,932,,,,,,,,932,,,,,932,932,932,932,932,932,,,,932,932,,,,,,,932,,',
'932,932,932,,,932,932,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,930,930,,,,930,930,,,,,,,930,,,930,930',
'930,,,930,930,826,826,826,826,826,826,,,,826,826,,,,826,,826,826,826',
'826,826,826,826,,,,,,826,826,826,826,826,826,826,,,826,,,,,,826,826',
'826,826,826,826,826,826,826,826,826,826,,826,826,826,,826,826,,826,826',
'826,,,,,,,,,,,,,,,,,,,,826,,,826,,,826,826,,,826,,826,,,,826,,,,,,,',
'826,,,,,826,826,826,826,826,826,,,,826,826,,,,,,,826,,,826,826,826,',
',826,826,779,779,779,779,779,779,,,,779,779,,,,779,,779,779,779,779',
'779,779,779,,,,,,779,779,779,779,779,779,779,,,779,,,,,,779,779,779',
'779,779,779,779,779,779,779,779,779,,779,779,779,,779,779,,779,779,779',
',,,,,,,,,,,,,,,,,,,779,,,779,,,779,779,,,779,,779,,,,779,,,,,,,,779',
',,,,779,779,779,779,779,779,,,,779,779,,,,,,,779,,,779,779,779,,,779',
'779,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,780,780,780,780,780,780,,,,780,780,,,,780,,780,780,780,780,780',
'780,780,,,,,,780,780,780,780,780,780,780,,,780,,,,,,780,780,780,780',
'780,780,780,780,780,780,780,780,,780,780,780,,780,780,,780,780,780,',
',,,,,,,,,,,,,,,,,,780,,,780,,,780,780,,,780,,780,,,,780,,,,,,,,780,',
',,,780,780,780,780,780,780,,,,780,780,,,,,,,780,,,780,780,780,,,780',
'780,891,891,891,891,891,891,,,,891,891,,,,891,,891,891,891,891,891,891',
'891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,891,891,891,891,891',
'891,891,891,891,891,891,891,,891,891,891,,891,891,,891,891,891,,,,,',
',,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,891,,,,891,,,,,,,,891,,,,,891',
'891,891,891,891,891,,,,891,891,,,,,,,891,,,891,891,891,,,891,891,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,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,762,762,762,,762,,,,762,762,,,,762,,762,762',
'762,762,762,762,762,,,,,,762,762,762,762,762,762,762,,,762,,,,,,,762',
',,762,762,762,762,762,762,762,762,,762,762,762,,762,762,,762,762,762',
',,,,,,,,,,,,,,,,,,,762,,,762,,,762,762,,,762,,762,,,,762,,,,,,,,762',
',,,,762,762,762,762,762,762,,,,762,762,,,,,,,762,,,762,762,762,,,762',
'762,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,774,774',
'774,,774,,,,774,774,,,,774,,774,774,774,774,774,774,774,,,,,,774,774',
'774,774,774,774,774,,,774,,,,,,,774,,,774,774,774,774,774,774,774,774',
'774,774,774,774,,774,774,,774,774,774,,,,,,,,,,,,,,,,,,,,774,,,774,',
',774,774,,,774,,774,,774,,774,,,,,,,,774,,,,,774,774,774,774,774,774',
',,,774,774,,,,,,,774,,774,774,774,774,,,774,774,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,796,796,796,,796,,,,796,796,,,,796',
',796,796,796,796,796,796,796,,,,,,796,796,796,796,796,796,796,,,796',
',,,,,,796,,,796,796,796,796,796,796,796,796,,796,796,796,,796,796,,796',
'796,796,,,,,,,,,,,,,,,,,,,,796,,,796,,,796,796,,,796,,,,,,796,,,,,,',
',796,,,,,796,796,796,796,796,796,,,,796,796,,,,,,,796,,,796,796,796',
',,796,796,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,803,803,803,,803,,,,803,803,,,,803,,803,803,803,803,803,803,803,',
',,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803',
'803,803,803,,803,803,803,,803,803,,803,803,803,,,,,,,,,,,,,,,,,,,,803',
',,803,,,803,803,,,803,,,,,,803,,,,,,,,803,,,,,803,803,803,803,803,803',
',,,803,803,,,,,,,803,,,803,803,803,,,803,803,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,816,816,816,,816,,,,816,816,',
',,816,,816,816,816,816,816,816,816,,,,,,816,816,816,816,816,816,816',
',,816,,,,,,,816,,,816,816,816,816,816,816,816,816,,816,816,816,,816',
'816,,816,816,816,,,,,,,,,,,,,,,,,,,,816,,,816,,,816,816,,,816,,,,,,816',
',,,,,,,816,,,,,816,816,816,816,816,816,,,,816,816,,,,,,,816,,,816,816',
'816,,,816,816,817,817,817,,817,,,,817,817,,,,817,,817,817,817,817,817',
'817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817',
'817,817,817,817,817,,817,817,817,,817,817,,817,817,817,,,,,,,,,,,,,',
',,,,,,817,,,817,,,817,817,,,817,,,,,,817,,,,,,,,817,,,,,817,817,817',
'817,817,817,,,,817,817,,,,,,,817,,,817,817,817,,,817,817,818,818,818',
',818,,,,818,818,,,,818,,818,818,818,818,818,818,818,,,,,,818,818,818',
'818,818,818,818,,,818,,,,,,,818,,,818,818,818,818,818,818,818,818,,818',
'818,818,,818,818,,818,818,818,,,,,,,,,,,,,,,,,,,,818,,,818,,,818,818',
',,818,,,,,,818,,,,,,,,818,,,,,818,818,818,818,818,818,,,,818,818,,,',
',,,818,,,818,818,818,,,818,818,819,819,819,,819,,,,819,819,,,,819,,819',
'819,819,819,819,819,819,,,,,,819,819,819,819,819,819,819,,,819,,,,,',
',819,,,819,819,819,819,819,819,819,819,,819,819,819,,819,819,,819,819',
'819,,,,,,,,,,,,,,,,,,,,819,,,819,,,819,819,,,819,,,,,,819,,,,,,,,819',
',,,,819,819,819,819,819,819,,,,819,819,,,,,,,819,,,819,819,819,,,819',
'819,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,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,834,834,834,,834,,,,834,834,,,,834,,834,834,834',
'834,834,834,834,,,,,,834,834,834,834,834,834,834,,,834,,,,,,,834,,,834',
'834,834,834,834,834,834,834,,834,834,834,,834,834,,834,834,834,,,,,',
',,,,,,,,,,,,,,834,,,834,,,834,834,,,834,,,,,,834,,,,,,,,834,,,,,834',
'834,834,834,834,834,,,,834,834,,,,,,,834,,,834,834,834,,,834,834,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,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,303,303,303,,303,,,,303,303,,,,303,,303',
'303,303,303,303,303,303,,,,,,303,303,303,303,303,303,303,,,303,,,,,',
',303,,,303,303,303,303,303,303,303,303,,303,303,303,,303,303,,303,303',
'303,,,,,,,,,,,,,,,,,,,,303,,,303,,,303,303,,,303,,,,,,303,,,,,,,,303',
',,,,303,303,303,303,303,303,,,,303,303,,,,,,,303,,,303,303,303,,,303',
'303,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,310,310,310,310,310,,,',
'310,310,,,,310,,310,310,310,310,310,310,310,,,,,,310,310,310,310,310',
'310,310,,,310,,,,,,310,310,,310,310,310,310,310,310,310,310,310,,310',
'310,310,,310,310,,310,310,310,,,,,,,,,,,,,,,,,,,,310,,,310,,,310,310',
',,310,,310,,,,310,,,,,,,,310,,,,,310,310,310,310,310,310,,,,310,310',
',,,,,,310,,,310,310,310,,,310,310,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,318,318',
'318,,318,,,,318,318,,,,318,,318,318,318,318,318,318,318,,,,,,318,318',
'318,318,318,318,318,,,318,,,,,,,318,,,318,318,318,318,318,318,318,318',
',318,318,318,,318,318,,,,318,,,,,,,,,,,,,,,,,,,,318,,,318,,,318,318',
',,318,,,,,,,,,,,,,,,,,,,318,318,318,318,318,318,,,,318,318,,,,318,,',
'318,,,318,318,318,,,318,318,878,878,878,,878,,,,878,878,,,,878,,878',
'878,878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,',
',878,,,878,878,878,878,878,878,878,878,,878,878,878,,878,878,,878,878',
'878,,,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,878',
',,,,878,878,878,878,878,878,,,,878,878,,,,,,,878,,,878,878,878,,,878',
'878,892,892,892,,892,,,,892,892,,,,892,,892,892,892,892,892,892,892',
',,,,,892,892,892,892,892,892,892,,,892,,,,,,,892,,,892,892,892,892,892',
'892,892,892,,892,892,892,,892,892,,892,892,892,,,,,,,,,,,,,,,,,,,,892',
',,892,,,892,892,,,892,,,,,,892,,,,,,,,892,,,,,892,892,892,892,892,892',
',,,892,892,,,,,,,892,,,892,892,892,,,892,892,912,912,912,,912,,,,912',
'912,,,,912,,912,912,912,912,912,912,912,,,,,,912,912,912,912,912,912',
'912,,,912,,,,,,,912,,,912,912,912,912,912,912,912,912,912,912,912,912',
',912,912,,912,912,912,,,,,,,,,,,,,,,,,,,,912,,,912,,,912,912,,,912,',
',,912,,912,,,,,,,,912,,,,,912,912,912,912,912,912,,,,912,912,,,,,,,912',
',912,912,912,912,,,912,912,913,913,913,,913,,,,913,913,,,,913,,913,913',
'913,913,913,913,913,,,,,,913,913,913,913,913,913,913,,,913,,,,,,,913',
',,913,913,913,913,913,913,913,913,,913,913,913,,913,913,,913,913,913',
',,,,,,,,,,,,,,,,,,,913,,,913,,,913,913,,,913,,,,,,913,,,,,,,,913,,,',
',913,913,913,913,913,913,,,,913,913,,,,,,,913,,,913,913,913,,,913,913',
'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,335,335,335,,335',
',,,335,335,,,,335,,335,335,335,335,335,335,335,,,,,,335,335,335,335',
'335,335,335,,,335,,,,,,,335,,,335,335,335,335,335,335,335,335,,335,335',
'335,,335,335,,,,335,,,,,,,,,,,,,,,,,,,,335,,,335,,,335,335,,,335,,,',
',,,,,,,,,,,,,,,335,335,335,335,335,335,,,,335,335,,,,,,,335,,,335,335',
'335,,,335,335,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',
'925,925,925,,925,,,,925,925,,,,925,,925,925,925,925,925,925,925,,,,',
',925,925,925,925,925,925,925,,,925,,,,,,,925,,,925,925,925,925,925,925',
'925,925,,925,925,925,,925,925,,,,925,,,,,,,,,,,,,,,,,,,,925,,,925,,',
'925,925,,,925,,,,,,,,,,,,,,,,,,,925,925,925,925,925,925,,,,925,925,',
',,,,,925,,,925,925,925,,,925,925,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,935,935,935,935,,,,935,935,,,,,,,935,,,935,935,935,,,935,935',
'342,342,342,,342,,,,342,342,,,,342,,342,342,342,342,342,342,342,,,,',
',342,342,342,342,342,342,342,,,342,,,,,,,342,,,342,342,342,342,342,342',
'342,342,,342,342,342,,342,342,,342,342,342,,,,,,,,,,,,,,,,,,,,342,,',
'342,,,342,342,,,342,,,,,,342,,,,,,,,342,,,,,342,342,342,342,342,342',
',,,342,342,,,,,,,342,,,342,342,342,,,342,342,961,961,961,,961,,,,961',
'961,,,,961,,961,961,961,961,961,961,961,,,,,,961,961,961,961,961,961',
'961,,,961,,,,,,,961,,,961,961,961,961,961,961,961,961,,961,961,961,',
'961,961,,961,961,961,,,,,,,,,,,,,,,,,,,,961,,,961,,,961,961,,,961,,961',
',,,961,,,,,,,,961,,,,,961,961,961,961,961,961,,,,961,961,,,,,,,961,',
',961,961,961,,,961,961,344,344,344,,344,,,,344,344,,,,344,,344,344,344',
'344,344,344,344,,,,,,344,344,344,344,344,344,344,,,344,,,,,,,344,,,344',
'344,344,344,344,344,344,344,,344,344,344,,344,344,,344,344,344,,,,,',
',,,,,,,,,,,,,,344,,,344,344,,344,344,,,344,,,,,,344,,,,,,,,344,,,,,344',
'344,344,344,344,344,,,,344,344,,,,,,,344,,,344,344,344,,,344,344,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,347,347,347,347,347',
',,,347,347,,,,347,,347,347,347,347,347,347,347,,,,,,347,347,347,347',
'347,347,347,,,347,,,,,,347,347,,347,347,347,347,347,347,347,347,347',
',347,347,347,,347,347,,347,347,347,,,,,,,,,,,,,,,,,,,,347,,,347,,,347',
'347,,,347,,347,,,,347,,,,,,,,347,,,,,347,347,347,347,347,347,,,,347',
'347,,,,,,,347,,,347,347,347,,,347,347,986,986,986,,986,,,,986,986,,',
',986,,986,986,986,986,986,986,986,,,,,,986,986,986,986,986,986,986,',
',986,,,,,,,986,,,986,986,986,986,986,986,986,986,,986,986,986,,986,986',
',,,986,,,,,,,,,,,,,,,,,,,,986,,,986,,,986,986,,,986,,,,,,,,,,,,,,,,',
',,986,986,986,986,986,986,,,,986,986,,,,,,,986,,,986,986,986,,,986,986',
'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,356,356,356,,356,,,,356,356,,,,356',
',356,356,356,356,356,356,356,,,,,,356,356,356,356,356,356,356,,,356',
',,,,,,356,,,356,356,356,356,356,356,356,356,,356,356,356,,356,356,,356',
'356,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356,,,356,,,,,,356,,,,,,',
',356,,,,,356,356,356,356,356,356,,,,356,356,,,,,,,356,,,356,356,356',
',,356,356,1035,1035,1035,,1035,,,,1035,1035,,,,1035,,1035,1035,1035',
'1035,1035,1035,1035,,,,,,1035,1035,1035,1035,1035,1035,1035,,,1035,',
',,,,,1035,,,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035',
',1035,1035,,1035,1035,1035,,,,,,,,,,,,,,,,,,,,1035,,,1035,,,1035,1035',
',,1035,,1035,,1035,,1035,,,,,,,,1035,,,,,1035,1035,1035,1035,1035,1035',
',,,1035,1035,,,,,,,1035,,1035,1035,1035,1035,,,1035,1035,370,370,370',
',370,,,,370,370,,,,370,,370,370,370,370,370,370,370,,,,,,370,370,370',
'370,370,370,370,,,370,,,,,,,370,,,370,370,370,370,370,370,370,370,,370',
'370,370,,370,370,,,,370,,,,,,,,,,,,,,,,,,,,370,,,370,,,370,370,,,370',
',,,,,,,,,,,,,,,,,,370,370,370,370,370,370,,,,370,370,,,,,,,370,,,370',
'370,370,,,370,370,372,372,372,,372,,,,372,372,,,,372,,372,372,372,372',
'372,372,372,,,,,,372,372,372,372,372,372,372,,,372,,,,,,,372,,,372,372',
'372,372,372,372,372,372,,372,372,372,,372,372,,,,372,,,,,,,,,,,,,,,',
',,,,372,,,372,,,372,372,,,372,,,,,,,,,,,,,,,,,,,372,372,372,372,372',
'372,,,,372,372,,,,,,,372,,,372,372,372,,,372,372,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,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,430,430,430',
',430,,,,430,430,,,,430,,430,430,430,430,430,430,430,,,,,,430,430,430',
'430,430,430,430,,,430,,,,,,,430,,,430,430,430,430,430,430,430,430,,430',
'430,430,,430,430,,430,430,430,,,,,,,,,,,,,,,,,,,,430,,,430,,,430,430',
',,430,,,,,,430,,,,,,,,430,,,,,430,430,430,430,430,430,,,,430,430,,,',
',,,430,,,430,430,430,,,430,430,474,474,474,,474,,,,474,474,,,,474,,474',
'474,474,474,474,474,474,,,,,,474,474,474,474,474,474,474,,,474,,,,,',
',474,,,474,474,474,474,474,474,474,474,474,474,474,474,,474,474,,474',
'474,474,,,,,,,,,,,,,,,,,,,,474,,,474,,,474,474,,,474,,474,,474,,474',
',,,,,,,474,,,,,474,474,474,474,474,474,,,,474,474,,,,,,,474,,474,474',
'474,474,,,474,474,476,476,476,,476,,,,476,476,,,,476,,476,476,476,476',
'476,476,476,,,,,,476,476,476,476,476,476,476,,,476,,,,,,,476,,,476,476',
'476,476,476,476,476,476,,476,476,476,,476,476,,476,476,476,,,,,,,,,',
',,,,,,,,,,476,,,476,,,476,476,,,476,,,,,,476,,,,,,,,476,,,,,476,476',
'476,476,476,476,,,,476,476,,,,,,,476,,,476,476,476,,,476,476,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,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,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,517,517,517,,517,,,,517,517,,',
',517,,517,517,517,517,517,517,517,,,,,,517,517,517,517,517,517,517,',
',517,,,,,,,517,,,517,517,517,517,517,517,517,517,517,517,517,517,,517',
'517,,517,517,517,,,,,,,,,,,,,,,,,,,,517,,,517,,,517,517,,,517,,517,',
'517,,517,,,,,,,,517,,,,,517,517,517,517,517,517,,,,517,517,,,,,,,517',
',517,517,517,517,,,517,517,520,520,520,,520,,,,520,520,,,,520,,520,520',
'520,520,520,520,520,,,,,,520,520,520,520,520,520,520,,,520,,,,,,,520',
',,520,520,520,520,520,520,520,520,520,520,520,520,,520,520,,520,520',
'520,,,,,,,,,,,,,,,,,,,,520,,,520,,,520,520,,,520,,,,520,,520,,,,,,,',
'520,,,,,520,520,520,520,520,520,,,,520,520,,,,,,,520,,520,520,520,520',
',,520,520,522,522,522,,522,,,,522,522,,,,522,,522,522,522,522,522,522',
'522,,,,,,522,522,522,522,522,522,522,,,522,,,,,,,522,,,522,522,522,522',
'522,522,522,522,,522,522,522,,522,522,,522,522,522,,,,,,,,,,,,,,,,,',
',,522,,,522,,,522,522,,,522,,,,,,522,,,,,,,,522,,,,,522,522,522,522',
'522,522,,,,522,522,,,,,,,522,,,522,522,522,,,522,522,527,527,527,527',
'527,,,,527,527,,,,527,,527,527,527,527,527,527,527,,,,,,527,527,527',
'527,527,527,527,,,527,,,,,,527,527,527,527,527,527,527,527,527,527,527',
'527,,527,527,527,,527,527,,527,527,527,,,,,,,,,,,,,,,,,,,,527,,,527',
',,527,527,,,527,,527,,,,527,,,,,,,,527,,,,,527,527,527,527,527,527,',
',,527,527,,,,,,527,527,,,527,527,527,,,527,527,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,534,534,534,,534,,,,534,534,,,,534',
',534,534,534,534,534,534,534,,,,,,534,534,534,534,534,534,534,,,534',
',,,,,,534,,,534,534,534,534,534,534,534,534,,534,534,534,,534,534,,',
',534,,,,,,,,,,,,,,,,,,,,534,,,534,,,534,534,,,534,,,,,,,,,,,,,,,,,,',
'534,534,534,534,534,534,,,,534,534,,,,,,,534,,,534,534,534,,,534,534',
'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,536,536,536,,536',
',,,536,536,,,,536,,536,536,536,536,536,536,536,,,,,,536,536,536,536',
'536,536,536,,,536,,,,,,,536,,,536,536,536,536,536,536,536,536,536,536',
'536,536,,536,536,,536,536,536,,,,,,,,,,,,,,,,,,,,536,,,536,,,536,536',
',,536,,536,,536,,536,,,,,,,,536,,,,,536,536,536,536,536,536,,,,536,536',
',,,,,,536,,536,536,536,536,,,536,536,542,542,542,,542,,,,542,542,,,',
'542,,542,542,542,542,542,542,542,,,,,,542,542,542,542,542,542,542,,',
'542,,,,,,,542,,,542,542,542,542,542,542,542,542,,542,542,542,,542,542',
',,,542,,,,,,,,,,,,,,,,,,,,542,,,542,,,542,542,,,542,,,,,,,,,,,,,,,,',
',,542,542,542,542,542,542,,,,542,542,,,,,,,542,,,542,542,542,,,542,542',
'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,546,546,546,,546,,,,546,546,,,,546,,546,546,546',
'546,546,546,546,,,,,,546,546,546,546,546,546,546,,,546,,,,,,,546,,,546',
'546,546,546,546,546,546,546,,546,546,546,,546,546,,546,546,546,,,,,',
',,,,,,,,,,,,,,546,,,546,,,546,546,,,546,,,,,,546,,,,,,,,546,,,,,546',
'546,546,546,546,546,,,,546,546,,,,,,,546,,,546,546,546,,,546,546,551',
'551,551,,551,,,,551,551,,,,551,,551,551,551,551,551,551,551,,,,,,551',
'551,551,551,551,551,551,,,551,,,,,,,551,,,551,551,551,551,551,551,551',
'551,,551,551,551,,551,551,,551,551,551,,,,,,,,,,,,,,,,,,,,551,,,551',
',,551,551,,,551,,,,,,551,,,,,,,,551,,,,,551,551,551,551,551,551,,,,551',
'551,,,,,,,551,,,551,551,551,,,551,551,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,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,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,584,584,584,,584,,,,584,584,,,',
'584,,584,584,584,584,584,584,584,,,,,,584,584,584,584,584,584,584,,',
'584,,,,,,,584,,,584,584,584,584,584,584,584,584,,584,584,584,,584,584',
',584,584,584,,,,,,,,,,,,,,,,,,,,584,,,584,,,584,584,,,584,,,,,,584,',
',,,,,,584,,,,,584,584,584,584,584,584,,,,584,584,,,,,,,584,,,584,584',
'584,,,584,584,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,607,607,607',
',607,,,,607,607,,,,607,,607,607,607,607,607,607,607,,,,,,607,607,607',
'607,607,607,607,,,607,,,,,,,607,,,607,607,607,607,607,607,607,607,607',
'607,607,607,,607,607,,607,607,607,,,,,,,,,,,,,,,,,,,,607,,,607,,,607',
'607,,,607,,607,,607,,607,,,,,,,,607,,,,,607,607,607,607,607,607,,,,607',
'607,,,,,,,607,,607,607,607,607,,,607,607,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,619,619,619,,619,,,,619,619,,,,619,,619,619,619,619,619',
'619,619,,,,,,619,619,619,619,619,619,619,,,619,,,,,,,619,,,619,619,619',
'619,619,619,619,619,,619,619,619,,619,619,,619,619,619,,,,,,,,,,,,,',
',,,,,,619,,,619,,,619,619,,,619,,,,,,619,,,,,,,,619,,,,,619,619,619',
'619,619,619,,,,619,619,,,,,,,619,,,619,619,619,,,619,619,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,625,625,625,,625,,,,625,625,,,,625,,625',
'625,625,625,625,625,625,,,,,,625,625,625,625,625,625,625,,,625,,,,,',
',625,,,625,625,625,625,625,625,625,625,,625,625,625,,625,625,,625,625',
'625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625,625,,,625,,,,,,625,,,,,,,,625',
',,,,625,625,625,625,625,625,,,,625,625,,,,,,,625,,,625,625,625,,,625',
'625,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,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,655,655,655,,655,,,,655',
'655,,,,655,,655,655,655,655,655,655,655,,,,,,655,655,655,655,655,655',
'655,,,655,,,,,,,655,,,655,655,655,655,655,655,655,655,,655,655,655,',
'655,655,,655,655,655,,,,,,,,,,,,,,,,,,,,655,,,655,,,655,655,,,655,,',
',,,655,,,,,,,,655,,,,,655,655,655,655,655,655,,,,655,655,,,,,,,655,',
',655,655,655,,,655,655,656,656,656,,656,,,,656,656,,,,656,,656,656,656',
'656,656,656,656,,,,,,656,656,656,656,656,656,656,,,656,,,,,,,656,,,656',
'656,656,656,656,656,656,656,656,656,656,656,,656,656,,656,656,656,,',
',,,,,,,,,,,,,,,,,656,,,656,,,656,656,,,656,,656,,656,,656,,,,,,,,656',
',,,,656,656,656,656,656,656,,,,656,656,,,,,,,656,,656,656,656,656,,',
'656,656,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,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,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,662',
'662,,,662,662,663,663,663,,663,,,,663,663,,,,663,,663,663,663,663,663',
'663,663,,,,,,663,663,663,663,663,663,663,,,663,,,,,,,663,,,663,663,663',
'663,663,663,663,663,663,663,663,663,,663,663,,663,663,663,,,,,,,,,,',
',,,,,,,,,663,,,663,,,663,663,,,663,,,,663,,663,,,,,,,,663,,,,,663,663',
'663,663,663,663,,,,663,663,,,,,,,663,,663,663,663,663,,,663,663,664',
'664,664,,664,,,,664,664,,,,664,,664,664,664,664,664,664,664,,,,,,664',
'664,664,664,664,664,664,,,664,,,,,,,664,,,664,664,664,664,664,664,664',
'664,,664,664,664,,664,664,,664,664,664,,,,,,,,,,,,,,,,,,,,664,,,664',
',,664,664,,,664,,,,,,664,,,,,,,,664,,,,,664,664,664,664,664,664,,,,664',
'664,,,,,,,664,,,664,664,664,,,664,664,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,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,670,670,670',
',670,,,,670,670,,,,670,,670,670,670,670,670,670,670,,,,,,670,670,670',
'670,670,670,670,,,670,,,,,,,670,,,670,670,670,670,670,670,670,670,,670',
'670,670,,670,670,,670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670',
',,670,,,,,,670,,,,,,,,670,,,,,670,670,670,670,670,670,,,,670,670,,,',
',,,670,,,670,670,670,,,670,670,671,671,671,,671,,,,671,671,,,,671,,671',
'671,671,671,671,671,671,,,,,,671,671,671,671,671,671,671,,,671,,,,,',
',671,,,671,671,671,671,671,671,671,671,,671,671,671,,671,671,,671,671',
'671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671,,,,,,671,,,,,,,,671',
',,,,671,671,671,671,671,671,,,,671,671,,,,,,,671,,,671,671,671,,,671',
'671,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,700,700,700,,700,,,,700,700,,,,700,,700,700,700,700,700,700,700',
',,,,,700,700,700,700,700,700,700,,,700,,,,,,,700,,,700,700,700,700,700',
'700,700,700,,700,700,700,,700,700,,,,700,,,,,,,,,,,,,,,,,,,,700,,,700',
',,700,700,,,700,,,,,,,,,,,,,,,,,,,700,700,700,700,700,700,,,,700,700',
',,,,,,700,,,700,700,700,,,700,700,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,711,711,711,,711,,,,711',
'711,,,,711,,711,711,711,711,711,711,711,,,,,,711,711,711,711,711,711',
'711,,,711,,,,,,,711,,,711,711,711,711,711,711,711,711,,711,711,711,',
'711,711,,,,711,,,,,,,,,,,,,,,,,,,,711,,,711,,,711,711,,,711,,,,,,,,',
',,,,,,,,,,711,711,711,711,711,711,,,,711,711,,,,,,,711,,,711,711,711',
',,711,711,712,712,712,,712,,,,712,712,,,,712,,712,712,712,712,712,712',
'712,,,,,,712,712,712,712,712,712,712,,,712,,,,,,,712,,,712,712,712,712',
'712,712,712,712,,712,712,712,,712,712,,712,712,712,,,,,,,,,,,,,,,,,',
',,712,,,712,,,712,712,,,712,,,,,,712,,,,,,,,712,,,,,712,712,712,712',
'712,712,,,,712,712,,,,,,,712,,,712,712,712,,,712,712,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,717,717,717,,717,,,,717,717,,,,717,,717,717',
'717,717,717,717,717,,,,,,717,717,717,717,717,717,717,,,717,,,,,,,717',
',,717,717,717,717,717,717,717,717,,717,717,717,,717,717,,717,717,717',
',,,,,,,,,,,,,,,,,,,717,,,717,,,717,717,,,717,,717,,,,717,,,,,,,,717',
',,,,717,717,717,717,717,717,,,,717,717,,,,,,,717,,,717,717,717,,,717',
'717,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,,,269,269,722,722,722,,722,,,,722',
'722,,,,722,,722,722,722,722,722,722,722,,,,,,722,722,722,722,722,722',
'722,,,722,,,,,,,722,,,722,722,722,722,722,722,722,722,722,722,722,722',
',722,722,,722,722,722,,,,,,,,,,,,,,,,,,,,722,,,722,,,722,722,,,722,',
'722,,,,722,,,,,,,,722,,,,,722,722,722,722,722,722,,,,722,722,,,,,,,722',
',722,722,722,722,,,722,722,725,725,725,,725,,,,725,725,,,,725,,725,725',
'725,725,725,725,725,,,,,,725,725,725,725,725,725,725,,,725,,,,,,,725',
',,725,725,725,725,725,725,725,725,725,725,725,725,,725,725,,725,725',
'725,,,,,,,,,,,,,,,,,,,,725,,,725,,,725,725,,,725,,,,,,725,,,,,,,,725',
',,,,725,725,725,725,725,725,,,,725,725,,,,,,,725,,725,725,725,725,,',
'725,725,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,741,741,741,,741',
',,,741,741,,,,741,,741,741,741,741,741,741,741,,,,,,741,741,741,741',
'741,741,741,,,741,,,,,,,741,,,741,741,741,741,741,741,741,741,,741,741',
'741,,741,741,,741,741,741,,,,,,,,,,,,,,,,,,,,741,,,741,,,741,741,,,741',
',,,,,741,,,,,,,,741,,,,,741,741,741,741,741,741,,,,741,741,,,,,,,741',
',,741,741,741,465,,741,741,,,,465,465,465,,,465,465,465,1057,465,1057',
'1057,1057,1057,1057,,,,465,465,465,465,,,1057,,,,,465,465,,465,465,465',
'465,465,,,,,,,,,,1057,,,,,,,,,,,1057,1057,,465,465,465,465,465,465,465',
'465,465,465,465,465,465,465,,,465,465,465,,,465,,,465,,,465,465,,465',
'1057,465,,465,,465,465,465,465,465,465,465,,465,465,465,1059,,1059,1059',
'1059,1059,1059,,,,,,465,465,465,465,1059,465,31,465,,,,,465,31,31,31',
',,31,31,31,,31,,,,1059,,,,,,31,31,,,,1059,1059,,,,31,31,,31,31,31,31',
'31,,,,,,,,,,,,,,,,,,,,,,1059,,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,60,31,,31,,,,60,60,60,31,,60,60,60,1061,60',
'1061,1061,1061,1061,1061,,,,,60,60,60,,,1061,,,,,60,60,,60,60,60,60',
'60,,,,,,,,,,1061,,,,,,,,,,,1061,1061,,60,60,60,60,60,60,60,60,60,60',
'60,60,60,60,,,60,60,60,,,60,,,60,,,60,60,,60,1061,60,,60,,60,60,60,60',
'60,60,60,,60,,60,1084,,1084,1084,1084,1084,1084,,,,,,60,60,60,60,1084',
'60,504,60,,,,,60,504,504,504,,,504,504,504,,504,,,,1084,,,,,504,504',
',,,,1084,1084,,,,504,504,,504,504,504,504,504,,,,,,,,,,,,,,,,,,,,,,1084',
',,,,,,,,,,,,504,,30,,,,,504,,30,30,30,504,504,30,30,30,782,30,782,782',
'782,782,782,,,,30,30,30,,,,782,504,504,,,30,30,,30,30,30,30,30,,,504',
',,,,504,,782,,,,,504,,,,782,782,782,782,,30,30,30,30,30,30,30,30,30',
'30,30,30,30,30,,,30,30,30,,,30,,30,30,,,30,30,,30,782,30,,30,,30,30',
'30,30,30,30,30,,30,30,30,,,,,,,,,,,,,30,30,455,30,,30,,,,455,455,455',
'30,,455,455,455,781,455,781,781,781,781,781,,,,455,455,455,,,,781,,',
',,455,455,,455,455,455,455,455,,,,,,,,,,781,,,,,,,,,781,781,781,781',
',455,455,455,455,455,455,455,455,455,455,455,455,455,455,,,455,455,455',
',,455,,455,455,,,455,455,,455,781,455,,455,,455,455,455,455,455,455',
'455,,455,455,455,,,,,,,,,,,,,455,455,464,455,,455,,,,464,464,464,455',
',464,464,464,735,464,735,735,735,735,735,,,,464,464,464,464,,,735,,',
',,464,464,,464,464,464,464,464,,,,,,,,,,735,,,,,,,,,735,735,735,735',
',464,464,464,464,464,464,464,464,464,464,464,464,464,464,,,464,464,464',
',,464,,,464,,,464,464,,464,735,464,,464,,464,464,464,464,464,464,464',
',464,464,464,,,,,,,,,,,,,464,464,464,464,,464,,464,,,,,464,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,651,651,651,651,651,651,651,651,651,651,651,651,651,651',
'651,651,651,651,651,651,651,651,651,651,,,,651,651,651,651,651,651,651',
'651,651,651,,,,,,651,651,651,651,651,651,651,651,651,,,651,,,,,,,,,651',
'651,,651,651,651,651,651,651,651,,,651,651,,,,651,651,651,651,,,,,,',
',,,,,,,651,651,,651,651,651,651,651,651,651,651,651,651,651,,,651,651',
',,,,,,,,,651,,,,,,,,,651,,,,,651,12,12,12,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,12,12,12,,,,12,12,12,12,12,12,12,12,12,12',
',,,,,12,12,12,12,12,12,12,12,12,,,12,,,,,,,,,12,12,,12,12,12,12,12,12',
'12,,,12,12,,,,12,12,12,12,,,,,,,,,,,,,,12,12,,12,12,12,12,12,12,12,12',
'12,12,12,,,12,12,,,,,,,,,,12,,,,,,,,,12,,,,,12,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',
'783,783,783,783,783,783,,,783,,,,,,,,,,,,,,,,,,,,783,,,,,783,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,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,421,421,421,421,421,421,421,421',
'421,421,421,421,421,421,421,421,421,421,421,421,421,421,421,421,,,,421',
'421,421,421,421,421,421,421,421,421,,,,,,421,421,421,421,421,421,421',
'421,421,,,421,,,,,,,,,421,421,,421,421,421,421,421,421,421,,,421,421',
',,,421,421,421,421,,,,,,,,,,,,,,421,421,,421,421,421,421,421,421,421',
'421,421,421,421,,,421,421,,,,,,,,,,421,,537,537,,,537,,,421,,,,,421',
'537,537,,537,537,537,537,537,537,537,,,537,537,,,,537,537,537,537,,',
',,,537,,,,,,,,537,537,,537,537,537,537,537,537,537,537,537,537,537,',
',537,,,,,,,,,,657,657,,,657,,,,,,537,,,657,657,537,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,,,,,,,,,,773,773,,,773,,,',
',,657,,,773,773,657,773,773,773,773,773,773,773,,,773,773,,,,773,773',
'773,773,,,,,,773,,,,,,,,773,773,,773,773,773,773,773,773,773,773,773',
'773,773,,,773,,,,,,,,,,1037,1037,,,1037,,,,,,773,,,1037,1037,773,1037',
'1037,1037,1037,1037,1037,1037,,,1037,1037,,,,1037,1037,1037,1037,,,',
',,1037,,,,,,,,1037,1037,,1037,1037,1037,1037,1037,1037,1037,1037,1037',
'1037,1037,,,1037,,,,,,,,,,1036,1036,,,1036,,,,,,1037,,,1036,1036,1037',
'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,,,,,,,,,,1031,1031,,,1031,,,,,,1036,,,1031,1031',
'1036,1031,1031,1031,1031,1031,1031,1031,,,1031,1031,,,,1031,1031,1031',
'1031,,,,,,1031,,,,,,,,1031,1031,,1031,1031,1031,1031,1031,1031,1031',
'1031,1031,1031,1031,,,1031,,,,,,,,,,608,608,,,608,,,,,,1031,,,608,608',
'1031,608,608,608,608,608,608,608,,,608,608,,,,608,608,608,608,,,,,,608',
',,,,,,,608,608,,608,608,608,608,608,608,608,608,608,608,608,,,608,,',
',,,,,,,609,609,,,609,,,,,,608,,,609,609,608,609,609,609,609,609,609',
'609,,,609,609,,,,609,609,609,609,,,,,,609,,,,,,,,609,609,,609,609,609',
'609,609,609,609,609,609,609,609,,,609,,,,,,,,,,230,230,,,230,,,,,,609',
',,230,230,609,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,,,,,,,,,,229,229,,,229,,,,,,230,,,229,229,230,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,,,,,,,,,,472,472,,,472',
',,,,,229,,,472,472,229,472,472,472,472,472,472,472,,,472,472,,,,472',
'472,472,472,,,,,,472,,,,,,,,472,472,,472,472,472,472,472,472,472,472',
'472,472,472,,,472,,,,,,,,,,473,473,,,473,,,,,,472,,,473,473,472,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,,737,473,737,737',
'737,737,737,,,,,278,278,,,278,737,,,,,473,,,278,278,473,278,278,278',
'278,278,278,278,,,278,278,737,,,278,278,278,278,,,737,737,737,737,,',
',,,,,278,278,,278,278,278,278,278,278,278,278,278,278,278,,,278,,,,',
',,,,737,548,548,,,548,,,,,,278,,,548,548,278,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,,,,,,,,,,547,547,,,547,,,,,,548',
',,547,547,548,547,547,547,547,547,547,547,,,547,547,,,,547,547,547,547',
',,,,,547,,,,,,,,547,547,,547,547,547,547,547,547,547,547,547,547,547',
',,547,,,,,,,,,,772,772,,,772,,,,,,547,,,772,772,547,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,,,,,,,,,,538,538,,,538',
',,,,,772,,,538,538,772,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,739,,739,739,739,739,739,,,658,658,,,658,,,739,,,538',
',,658,658,538,658,658,658,658,658,658,658,,,658,658,,,739,658,658,658',
'658,,,,,,658,739,739,,,,,,658,658,,658,658,658,658,658,658,658,658,658',
'658,658,,565,658,565,565,565,565,565,,,,,,739,,,,565,,,,,658,,,,824',
'658,824,824,824,824,824,,,,,,,565,,943,824,943,943,943,943,943,565,565',
'565,565,,,,,945,943,945,945,945,945,945,,824,949,,949,949,949,949,949',
'945,824,824,824,824,,,943,,949,,,565,,,,943,943,943,943,,,945,,,,,,',
'824,,949,,945,945,,,824,,,,,949,949,977,,977,977,977,977,977,,943,,',
',,,,980,977,980,980,980,980,980,,945,,,,,,,,980,949,,,,,,977,982,,982',
'982,982,982,982,,977,977,977,977,,,980,352,982,352,352,352,352,352,',
'980,980,980,980,,,,1041,352,1041,1041,1041,1041,1041,,982,,,,,,977,',
'1041,,,982,982,,,352,352,,,,,980,,,352,352,352,352,,,1041,,,,,,,,,,',
'1041,1041,,,982,,,,,,,,,,,,,,,352,,,,,,,,,,,,,,,1041' ]
        racc_action_check = arr = ::Array.new(26028, 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,  1415,  4717,    63,   nil,    96,   nil,   nil, 12139,   858,
   nil, 24054, 23778,   -26,   nil,   -43,     1,   638,    83,   652,
   303,   nil,   -73, 14519,  1333,   171,   nil,   275,   nil,   142,
 23109, 22769,  6119,  6399,  7519,   nil,  2320,  8219,  8359,   nil,
    96,   393,   143,   224,   124,  9199,  9479,   413, 10319,   169,
   554,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
 22897,   nil,   -66,   nil,   nil,   -10,   nil, 11579, 11719,   nil,
   nil, 11859, 11999,   240,   nil, 23502,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   -66,   nil,   nil,   nil,   nil,   nil,   nil,   270,
   276,   293,   307, 24192,   nil,   nil,   nil,   nil,   nil,   nil,
   644,   nil,   nil,     0,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil, 12979,   nil,   nil,   nil,
   nil, 13119, 13259, 13399, 13539, 14239,   327,   nil,     6,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   322,   nil,  4012, 14939, 15079, 15499, 15639, 15779, 15919, 25063,
 24990,   nil, 16059,  5139, 16199,   nil,   nil,  1192,   360,   262,
   398,   219,   327,   397,   nil, 16479,  3025,   410, 16759, 17039,
 17319, 17459, 17599, 18299, 18999, 19419, 19559, 19699, 19839, 19979,
 20119, 20259, 20399, 20679, 20819, 20959, 21099, 21239, 21659, 21939,
   nil,   nil,   nil,   nil, 22359,   nil,   nil,   nil, 25282,   nil,
   nil,   415,  5279,   nil,   nil,   428,   nil,   nil,   nil,  5559,
   nil,   nil,  5839,   nil,  1756,   nil,   409,   434,   nil,  7239,
   491,  7659,   nil,  7799,  7939,   nil,   nil,   -93,   nil,   nil,
  8079,   990,   nil,   438,  2179,   471,   523,   487,  8499,  1897,
  1264,  1195,  1123,   563,   457,   nil,   536,   505,    71,   nil,
   nil,   nil,   556,   152,   521,  9339,   nil,    91,   588,  1336,
   nil,   595,  9899,   nil, 10179,  3307,   538, 10459, 10739, 10879,
   nil,   nil, 25878,   144,    -1,    -7, 11019,  2743,  2602,   434,
   673,   565,    24,     7,  1333,   647,    25,   685,   nil,   nil,
 11299,   nil, 11439,   234,   111,   143,   236,   528,   527,   493,
   396,   391,   nil,   348,   nil,   nil,   nil,   nil,   nil,   298,
   nil,   130,   nil,   319,   nil,   602,   290,   nil,   613,   nil,
   617,   -25,   nil,   621,   -41,   nil,   295,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil, 24330,   nil,   nil,   nil,   nil,   641,   nil,   nil,   627,
 12279,   630,   nil,   nil,   643,   nil,  1236,   347,   nil,   nil,
   nil,  1051,   nil,   nil,   nil,   nil,   nil,  1192,   665,   nil,
   nil,   665,   671,   307,   306, 23237,   nil,   nil,   nil,   388,
   516,   715,   nil,   nil, 23365, 22637,   nil,   nil,   nil,   -16,
   nil,   715, 25136, 25209, 12419,   104, 12559, 12699, 12839,  2743,
  2884,   505,   856,   744,   747,   754,   761,  3589,   939,   858,
  3166,  3307,  2179,  2602,  3025,  3448,   470,   531,  2320,  2461,
  2038,   726,   825,   nil, 23029,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   731,   732,   nil,   nil, 13679,   nil,   nil,
 13819,   nil, 13959,   nil,   nil,   nil,   nil, 14099,   985,   739,
   737,   nil,   nil,   739, 14379,   746, 14659, 24406, 25574,   555,
   786,   nil, 14799,   757,   nil,   801, 15219, 25428, 25355,   594,
  1897, 15359,   884,   901,   nil,   726,   nil,   553,   547,   817,
   800,   nil,   451,   838,   nil, 25709,   nil,   800,   801,   nil,
   802,   803,   814,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   803,   513,   nil,   nil, 16339,   nil,   nil,   nil,   901,   nil,
   nil,   nil,   902,   nil,   nil,   903,  3871,   944,   nil,  3589,
    25,   959,   960,   973,   981,   nil,   nil, 16619, 24844, 24917,
    30,   nil,   172,   204,   301,   nil,  1054,   nil,   890, 16899,
   nil,   908,   nil,   nil,   nil, 17179,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   196,   nil,   nil,
   286,   nil,   nil,   nil,   870,   nil,   nil,   874,   nil,  2884,
   nil, 23640,   nil,   879, 17739, 17879, 18019, 24479, 25647, 18159,
   161,   923, 18439, 18579, 18719, 18859,   950,   nil,   nil,   nil,
 19139, 19279,   951,   nil,   nil,   nil,   335,   -77,   908,   776,
   923,   922,   nil,   -53,  1031,    65,   nil,   946,   nil,  1054,
   nil,   nil,   935,   nil,   977,   nil,   nil,   nil,   nil,  -111,
 20539,   946,   nil,   951,    23,    21,   988,   193,   784,   989,
   958, 21379, 21519,  1021,   151,    47,   nil, 21799,   nil,   nil,
   964,   nil, 22079,   nil,   nil, 22219,   nil,   nil,   nil,     1,
   965,   314,   nil,   nil,   461, 23329,   nil, 25271,   nil, 25638,
   nil, 22499,   nil,   456,   nil,   963,   256,   967,   nil,   nil,
   nil,   nil,   767,   nil,  1093,   nil,   nil,   nil,   nil,   nil,
  1102,   nil,  5419,   988,    28,     6,   152,    65,  3730,   nil,
   833,   nil, 25501, 24552,  5699,   nil,   nil,   nil,   742,  4576,
  4858, 23201, 23073, 23916,    56,   913,  2461,   nil,   nil,   262,
   nil,   nil,   nil,  1020,   nil,  1009,  5979,  1015,   106,   137,
   132,   260,  1615,  6259,   nil,  1013,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  6539,  6679,  6819,  6959,
   355,  7099,   nil,   nil, 25734,   nil,  4435,   nil,   nil,  1033,
   nil,   216,   nil,   nil,  7379,  1022,   263,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  1051,   nil,  1034,  1076,   nil,   nil,
   nil,    66,   nil,  1474,  1615,  1042,  1048,  1048,   nil,   nil,
   nil,  1050,  1053,   nil,  1055,  1056,   nil,  1060,   nil,   nil,
  1064,   451,  1070,   612,   nil,  1191,   nil,   nil,  8639,   nil,
  1333,  1195,   nil,   nil,    32,    33,  1196,   230,  1228,   nil,
  1080,  4999,  8779,   357,  1207,   nil,  1092,   402,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  1081,   nil,   nil,   nil,   -81,
   nil,   nil,  8919,  9059,  1474,  1091,  1099,   nil,  1100,  1102,
  1103,   nil,  1124,  1108,  1105,  9619,   nil,   nil,   nil,   nil,
  4294,   nil,  4153,   nil,    -8,  9759,   nil,   nil,  1139,  1246,
   769,   nil,   nil, 25749,   nil, 25764,   nil,   707,   nil, 25773,
   nil,   nil,   nil,   nil,   323,   493,  1145,   nil,   -10,   nil,
   nil, 10039,  3448,   nil,   nil,  1270,    53,   nil,   nil,  1273,
   nil,   nil,  1193,   nil,   343,   nil,   nil, 25824,   nil,   nil,
 25839,   nil, 25863,   nil,   nil,  1178, 10599,  1369,  1237,   nil,
  1296,  3166,  1087,  1051,   982,  1250,   916,   nil,   nil,   nil,
   512,   nil,   nil,   nil,  1186,  1191,  1194,  1196,  1197,   653,
  1202,   637,  2038,   nil,   230,   nil,   nil,  1756,   nil,  1192,
  1211,   nil,   nil,  1212,  1216,  1217,  1218,   nil,  1228,   nil,
   360, 24771,   nil,   nil,  1352, 11159, 24698, 24625,   880,   nil,
   785, 25893,   nil,   nil,   nil,   nil,   744,  1231,   720,   nil,
   nil,   nil,  1352,  1360,   nil,   839,   nil, 22601,   nil, 22700,
   nil, 22861,   nil,   nil,  1280,  1282,   nil,  1247,    11,   -11,
    -9,   449,   nil,  1245,  1246,   nil,   nil,   nil,  1247,  1260,
  1264,  1267,    34,   nil, 22960,   nil,   nil,   nil,   nil,   -95,
   nil ]

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

clist = [
'6,448,233,229,236,350,382,455,461,277,29,279,290,519,129,604,29,693',
'4,317,693,354,355,331,331,359,295,295,295,344,566,29,432,433,408,147',
'147,137,221,508,29,29,29,715,29,145,145,357,358,596,599,9,780,296,296',
'296,504,9,331,696,126,338,513,281,288,291,841,573,637,125,881,875,334',
'660,543,29,29,553,718,29,129,771,866,732,733,414,415,416,417,856,353',
'353,956,390,353,392,394,397,313,402,405,392,502,687,721,724,315,142',
'142,728,297,297,297,747,826,919,580,439,445,953,439,1027,348,466,1001',
'439,758,759,130,761,863,618,391,620,29,360,349,1003,406,29,29,29,29',
'29,370,293,305,306,891,862,619,864,893,1017,353,353,353,353,372,779',
'621,969,693,693,783,627,972,882,519,634,921,142,638,755,1010,9,421,428',
'923,369,220,1000,564,922,418,852,352,729,698,932,511,512,831,683,1049',
'762,1027,847,934,142,388,389,696,393,427,438,396,1,438,840,640,456,399',
'438,401,404,900,785,786,407,892,472,295,649,1072,136,449,861,1047,419',
'29,29,29,29,29,29,29,1003,920,889,29,29,29,730,431,431,412,680,443,444',
'455,461,858,1021,29,625,468,469,760,953,685,2,930,386,696,1074,559,510',
'1023,560,342,351,651,701,686,870,295,367,829,775,573,710,985,295,278',
'883,295,449,866,383,29,622,345,346,518,518,347,29,720,,29,,,296,331',
'820,537,540,,703,600,,789,296,290,706,129,544,29,,,331,29,547,,706,465',
'29,836,580,1050,,,,,,,,689,,,1033,,,863,742,556,561,608,,541,,533,29',
',29,331,1004,331,528,297,,527,,29,29,29,1075,129,557,297,526,863,942',
',,313,,,353,763,313,,,529,,706,,885,535,,1024,,,1025,509,555,641,937',
',957,,,1019,,514,960,,833,,,963,693,788,,,638,,,968,657,,909,603,810',
',558,562,661,797,815,975,976,,,455,461,668,,835,736,738,740,673,,147',
',650,,518,518,696,,667,456,145,863,,,896,897,,,,,,,,295,1078,,,449,',
',,,,,,681,,29,,,,668,,,666,1015,,,,1018,672,573,573,,580,,580,667,,',
',,742,,,872,894,895,,,964,544,142,,456,331,833,,,544,1066,848,,331,456',
'295,,,,449,29,1054,,684,,,,,316,29,580,580,890,439,,,706,,,,806,808',
'439,439,29,,811,813,439,439,788,,446,,465,,,467,,714,,,1076,1077,962',
',,,,,,939,,924,768,456,,,,,692,,,,,,295,,,29,449,,29,,756,,,,,,29,777',
',979,981,983,,,965,,828,,29,,991,,,,29,465,742,438,742,,456,,,778,,465',
'438,438,6,784,,295,438,438,1012,449,,,29,,,661,,,29,29,793,,,827,1051',
',,29,29,,147,,794,29,29,,822,544,661,,145,331,,668,,518,673,1082,837',
'910,,439,331,9,,,,,,667,465,,580,,,855,,,845,898,849,,,1008,742,,,,1056',
'1058,1060,1062,32,1063,426,,944,946,32,948,950,,951,431,,805,924,,661',
'924,,,142,32,1052,879,1053,879,316,465,456,,32,32,32,,32,,,,,,,295,',
',,449,742,,742,29,661,1085,1086,1087,1088,29,884,438,,,29,29,1090,,857',
'32,32,29,,32,,,,851,,,518,855,,,,1067,,742,29,859,,706,859,467,,446',
'924,,316,,,,,316,,,822,,,958,,29,,925,,,,,,,,,936,966,,,,,32,29,,,,32',
'32,32,32,32,29,29,,601,602,,,465,,661,,,470,1042,1043,1044,1045,,142',
',,,,916,,29,,29,,,,865,,867,,,,,29,29,353,967,855,,917,971,,,,,331,',
',,353,978,978,978,,,331,,,,,,,,,,515,,,,,,,29,,29,,,1083,,,,32,32,32',
'32,32,32,32,530,,,32,32,32,,,,,,,,,,,29,32,331,,,1016,,,1036,918,1039',
',,,,554,925,,845,925,,,925,,925,,,,,29,,,,,807,809,,32,,,812,814,879',
',32,,,32,456,,29,978,978,978,978,29,978,29,,295,,,,449,1020,32,,916',
',32,916,,916,29,32,,879,661,,,,,838,,,859,,,917,19,,917,,917,,19,,925',
',925,32,925,32,925,,,978,978,978,978,237,32,32,32,,,,978,,237,237,237',
',19,322,322,925,,1005,,1006,,1007,752,,,754,,674,,,,,,,916,,916,,916',
',916,,,237,237,,465,237,364,,,,465,,1026,917,1028,917,,917,,917,911',
'916,,,,,,,,690,691,,,807,809,814,812,,,,,,917,,,699,,,,,,702,,,,,,,',
',19,,,,,237,237,237,237,19,,,,1073,,,32,,,,,,,,,,,1079,,1080,,1081,',
',,,,,,,,,,,,,,,,,,,,,,,1089,,,,,,,,,,,,,32,911,,,,,,,,32,,,,,,,,,,,',
',,886,32,,,19,237,436,237,237,436,237,,,,436,237,237,,905,,,,,,,,,,19',
',,,,,,,,,,,,,,,,,32,,,32,,,,,,42,,32,928,,,42,,,237,429,442,,,32,,237',
',,237,32,933,,839,,,,,,850,938,,,,42,321,321,19,,,,19,,,32,322,19,,',
',32,32,,,,,874,959,,32,32,,322,,,32,32,,,,363,,19,385,19,,,,,,,,,237',
'19,19,521,,523,,524,525,,899,,,,616,,616,,,,,,,,989,,990,,,,,,,,16,',
',,,,16,42,,,,,,,,,42,,,563,,,1014,,,,,,,,,,,,16,,,,,,,,,,,,32,,941,',
',1034,32,,,,,32,32,,,,952,,32,,,,,,368,,1048,,,,,,,,,32,,,237,,,,970',
',,,,,,,,,,,653,,,42,32,,,,,,,,,,,,,18,,,,,32,18,16,,,42,,,,32,32,16',
',,,19,,,,,,,322,,237,,,,,18,322,,,,32,,32,,,237,,,,,,,,32,32,,,,,,,',
',,,,,,,,,694,,,563,42,697,,,42,,,41,321,42,,,,41,,19,,32,19,32,,,,,',
'321,237,,,16,,434,,,434,42,,42,237,434,,41,320,320,237,,,42,42,32,18',
',,16,,,,,,18,385,,385,748,,,,,19,,,,,,436,237,,362,32,,384,,,436,436',
',,,,436,436,,,,,,,,,32,,,,,32,,32,,,,,,,,,,,16,,322,,16,32,,,,16,,,',
'322,41,,795,,,,,,,41,694,563,,,,18,,18,,,18,16,,16,,18,,,,,,,,16,16',
',,,,18,,,,,,,,,,,,,,,,,19,,,,,,237,,,846,,19,19,,694,,,563,19,,,,,,',
',,,,,42,,,869,,436,,321,,,41,,,,,321,,18,,,,18,,,442,,18,,19,,,,,,41',
',,,,,,,,,,,19,,,,,,18,,18,19,19,,908,,,,,,18,18,,,,42,,,42,,,,,,,,237',
',19,,,,,,,,,,,19,237,,931,,41,,,,41,,,,320,41,,,,,,,,,,16,,,,,42,320',
',,,987,,,,,19,41,19,41,,994,,,,,,,,41,41,,,,,,,,,,,,384,,384,,,,19,',
',,,,,,,321,563,,,,,,,,,,321,,16,,1030,16,,,,19,,,,,,,,,,,,,,,,,,,,,19',
',,,,19,,19,,1013,,,,,,,,,,,18,,,237,,16,,42,,,,434,,,,,,,42,42,434,434',
',,,42,434,434,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,18,,,18,,,',
',,,,,41,,42,,,,,320,,,,42,42,,,320,,,,,,,,,,,,,,,,,,,,,,,42,,,18,,16',
',,,18,,42,,,,,16,16,18,18,,,,16,18,18,,,,,,41,,,41,,,,,,434,,,,,385',
',,,,42,,42,,,993,,,,,20,,,16,,,20,,,,,,,,,,,,,,,16,42,,41,,,,,,16,16',
',,20,324,324,,,,,,,,,,385,,,,,42,,,,,,16,,,,,18,,,,,,16,,366,,42,18',
'18,320,,42,,42,18,,,,,,320,,,,,,,,,,,18,,,,,,,,,,16,,16,,,997,,,,,,',
',18,,,,20,,,,,,,,,20,,,,,18,16,,,,41,,,,18,18,,,,,,41,41,,,,,,41,,,',
',,,16,,,,,,18,,,,,,,244,,,,18,,,,16,294,294,294,,16,,16,,,,,41,,340',
'341,,343,,,,,,,,,,,,,41,20,,437,,18,437,18,,41,41,437,,,,,,,,,,,,,,20',
',,,,,,,,,,41,18,,,,,,,,,,41,,,,,,,,,,,,,,,,,,,18,,,,,,,,,,,,,,,384,',
',,,41,18,41,20,,992,18,20,18,,,324,20,,,,,,,,,,,,,,,,324,,,,41,,,,,',
'20,,20,,,,,,,,,,20,20,,,,,384,,,,,41,,617,,617,,,,,,,,,,,294,441,,,447',
'294,41,,,447,,41,,41,,,,,,,,,244,,,479,480,481,482,483,484,485,486,487',
'488,489,490,491,492,493,494,495,496,497,498,499,500,,,,,501,,,,,,,,294',
',,,,,,294,,,294,,,,,,,294,,294,,294,294,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,549,,550,,,,294,294,,,,,,,,,,,,,,,,,,20,,,,,,,324,,,,,,,,324',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,20,,,20,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,447,447,447,,,,,,,,,,,20,,,,,,437',
',,,,,,,,437,437,,,,,437,437,,,,,,294,,,294,,294,,,,,,,,,,,,,,294,,,',
'324,,,,,,713,,,,,324,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,',
',,,,,,,,,,,294,20,,,,,,,,,,,20,20,,,,,904,20,,,,,,,,,,,,,,,,,437,,,',
',,,,,,,294,447,294,,,802,,,294,294,447,447,20,,,,447,447,,,,,,,,,,,',
',20,,,,,,,,,20,20,,,,,,,,,,,,,,,,,,447,,,,,294,,,20,,294,,,294,,,,,',
'20,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,294,,,617,,,,,20,,20,,294,996,,',
',,,,,,,,,,,,,,,,,,294,,,,,,20,447,,,,,,,,,,,,,447,447,447,447,,914,',
',,,617,,,,,20,,,294,,,,,,,,,,,,,,,,,,20,,,,,20,,20,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,447,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294' ]
        racc_goto_table = arr = ::Array.new(3462, 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,35,39,37,26,105,69,49,49,175,53,37,87,89,121,116,53,90,2,62,90,23',
'23,79,79,23,45,45,45,39,174,53,28,28,69,74,74,21,21,51,53,53,53,15,53',
'73,73,41,41,109,109,9,124,84,84,84,49,9,79,222,8,77,35,50,50,50,17,207',
'196,5,112,110,63,36,64,53,53,12,103,53,121,67,217,157,157,23,23,23,23',
'166,30,30,153,6,30,6,6,6,58,6,6,6,176,52,85,85,59,70,70,85,86,86,86',
'152,164,162,151,24,32,150,24,218,131,32,168,24,103,103,7,103,212,68',
'193,68,53,5,132,169,193,53,53,53,53,53,133,57,57,57,134,163,135,163',
'136,137,30,30,30,30,138,139,140,141,90,90,142,197,143,44,89,197,154',
'70,197,42,153,9,31,29,160,25,22,167,170,166,9,171,172,173,20,18,179',
'180,182,184,185,186,218,187,188,70,191,192,222,194,26,26,195,1,26,16',
'198,87,199,26,200,201,202,203,204,205,206,37,45,13,168,11,6,211,153',
'10,53,53,53,53,53,53,53,169,163,67,53,53,53,174,84,84,7,35,30,30,49',
'49,214,215,53,221,30,30,116,150,88,3,164,101,222,153,83,87,162,104,80',
'107,75,64,54,152,45,118,52,120,207,64,166,45,48,103,45,6,217,125,53',
'126,127,128,6,6,129,53,130,,53,,,84,79,36,37,39,,35,23,,196,84,87,49',
'121,62,53,,,79,53,37,,49,70,53,36,151,112,,,,,,,,176,,,17,,,212,151',
'6,6,37,,77,,63,53,,53,79,163,79,9,86,,8,,53,53,53,110,121,84,86,5,212',
'157,,,58,,,30,35,58,,,59,,49,,36,59,,163,,,163,57,9,6,85,,103,,,124',
',57,103,,89,,,103,90,197,,,197,,,103,37,,36,5,51,,86,86,39,35,51,157',
'157,,,49,49,87,,64,210,210,210,87,,74,,21,,6,6,222,,6,87,73,212,,,174',
'174,,,,,,,,45,163,,,6,,,,,,,,39,,53,,,,87,,,50,103,,,,103,50,207,207',
',151,,151,6,,,,,151,,,151,12,12,,,36,62,70,,87,79,89,,,62,15,28,,79',
'87,45,,,,6,53,157,,50,,,,,14,53,151,151,35,24,,,49,,,,32,32,24,24,53',
',32,32,24,24,197,,76,,70,,,76,,30,,,103,103,109,,,,,,,12,,151,41,87',
',,,,86,,,,,,45,,,53,6,,53,,121,,,,,,53,6,,159,159,159,,,12,,105,,53',
',109,,,,53,70,151,26,151,,87,,,30,,70,26,26,6,30,,45,26,26,109,6,,,53',
',,39,,,53,53,2,,,175,116,,,53,53,,74,,21,53,53,,6,62,39,,73,79,,87,',
'6,87,36,62,32,,24,79,9,,,,,,6,70,,151,,,39,,,6,69,6,,,151,151,,,,159',
'159,159,159,56,159,14,,210,210,56,210,210,,210,84,,86,151,,39,151,,',
'70,56,12,6,12,6,14,70,87,,56,56,56,,56,,,,,,,45,,,,6,151,,151,53,39',
'159,159,159,159,53,84,26,,,53,53,159,,156,56,56,53,,56,,,,86,,,6,39',
',,,35,,151,53,158,,49,158,76,,76,151,,14,,,,,14,,,6,,,23,,53,,213,,',
',,,,,,6,23,,,,,56,53,,,,56,56,56,56,56,53,53,,14,14,,,70,,39,,,60,210',
'210,210,210,,70,,,,,156,,53,,53,,,,161,,161,,,,,53,53,30,121,39,,158',
'121,,,,,79,,,,30,6,6,6,,,79,,,,,,,,,,60,,,,,,,53,,53,,,210,,,,56,56',
'56,56,56,56,56,60,,,56,56,56,,,,,,,,,,,53,56,79,,,121,,,37,161,39,,',
',,60,213,,6,213,,,213,,213,,,,,53,,,,,76,76,,56,,,76,76,6,,56,,,56,87',
',53,6,6,6,6,53,6,53,,45,,,,6,156,56,,156,,56,156,,156,53,56,,6,39,,',
',,76,,,158,,,158,34,,158,,158,,34,,213,,213,56,213,56,213,,,6,6,6,6',
'34,56,56,56,,,,6,,34,34,34,,34,34,34,213,,161,,161,,161,14,,,14,,60',
',,,,,,156,,156,,156,,156,,,34,34,,70,34,34,,,,70,,161,158,161,158,,158',
',158,76,156,,,,,,,,60,60,,,76,76,76,76,,,,,,158,,,60,,,,,,60,,,,,,,',
',34,,,,,34,34,34,34,34,,,,161,,,56,,,,,,,,,,,161,,161,,161,,,,,,,,,',
',,,,,,,,,,,,,,,161,,,,,,,,,,,,,56,76,,,,,,,,56,,,,,,,,,,,,,,14,56,,',
'34,34,34,34,34,34,34,,,,34,34,34,,14,,,,,,,,,,34,,,,,,,,,,,,,,,,,,56',
',,56,,,,,,66,,56,14,,,66,,,34,82,82,,,56,,34,,,34,56,14,,60,,,,,,60',
'14,,,,66,66,66,34,,,,34,,,56,34,34,,,,56,56,,,,,60,14,,56,56,,34,,,56',
'56,,,,66,,34,66,34,,,,,,,,,34,34,34,82,,82,,82,82,,60,,,,34,,34,,,,',
',,,14,,14,,,,,,,,27,,,,,,27,66,,,,,,,,,66,,,82,,,14,,,,,,,,,,,,27,,',
',,,,,,,,,56,,60,,,14,56,,,,,56,56,,,,60,,56,,,,,,27,,14,,,,,,,,,56,',
',34,,,,60,,,,,,,,,,,,82,,,66,56,,,,,,,,,,,,,33,,,,,56,33,27,,,66,,,',
'56,56,27,,,,34,,,,,,,34,,34,,,,,33,34,,,,56,,56,,,34,,,,,,,,56,56,,',
',,,,,,,,,,,,,,82,,,82,66,82,,,66,,,65,66,66,,,,65,,34,,56,34,56,,,,',
',66,34,,,27,,27,,,27,66,,66,34,27,,65,65,65,34,,,66,66,56,33,,,27,,',
',,,33,66,,66,82,,,,,34,,,,,,34,34,,65,56,,65,,,34,34,,,,,34,34,,,,,',
',,,56,,,,,56,,56,,,,,,,,,,,27,,34,,27,56,,,,27,,,,34,65,,82,,,,,,,65',
'82,82,,,,33,,33,,,33,27,,27,,33,,,,,,,,27,27,,,,,33,,,,,,,,,,,,,,,,',
'34,,,,,,34,,,82,,34,34,,82,,,82,34,,,,,,,,,,,,66,,,82,,34,,66,,,65,',
',,,66,,33,,,,33,,,82,,33,,34,,,,,,65,,,,,,,,,,,,34,,,,,,33,,33,34,34',
',82,,,,,,33,33,,,,66,,,66,,,,,,,,34,,34,,,,,,,,,,,34,34,,82,,65,,,,65',
',,,65,65,,,,,,,,,,27,,,,,66,65,,,,34,,,,,34,65,34,65,,34,,,,,,,,65,65',
',,,,,,,,,,,65,,65,,,,34,,,,,,,,,66,82,,,,,,,,,,66,,27,,34,27,,,,34,',
',,,,,,,,,,,,,,,,,,,34,,,,,34,,34,,82,,,,,,,,,,,33,,,34,,27,,66,,,,27',
',,,,,,66,66,27,27,,,,66,27,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,66',
',,,33,,,33,,,,,,,,,65,,66,,,,,65,,,,66,66,,,65,,,,,,,,,,,,,,,,,,,,,',
',66,,,33,,27,,,,33,,66,,,,,27,27,33,33,,,,27,33,33,,,,,,65,,,65,,,,',
',27,,,,,66,,,,,66,,66,,,66,,,,,38,,,27,,,38,,,,,,,,,,,,,,,27,66,,65',
',,,,,27,27,,,38,38,38,,,,,,,,,,66,,,,,66,,,,,,27,,,,,33,,,,,,27,,38',
',66,33,33,65,,66,,66,33,,,,,,65,,,,,,,,,,,33,,,,,,,,,,27,,27,,,27,,',
',,,,,33,,,,38,,,,,,,,,38,,,,,33,27,,,,65,,,,33,33,,,,,,65,65,,,,,,65',
',,,,,,27,,,,,,33,,,,,,,40,,,,33,,,,27,40,40,40,,27,,27,,,,,65,,40,40',
',40,,,,,,,,,,,,,65,38,,38,,33,38,33,,65,65,38,,,,,,,,,,,,,,38,,,,,,',
',,,,65,33,,,,,,,,,,65,,,,,,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,65,,,,,65,33',
'65,38,,65,33,38,33,,,38,38,,,,,,,,,,,,,,,,38,,,,65,,,,,,38,,38,,,,,',
',,,,38,38,,,,,65,,,,,65,,38,,38,,,,,,,,,,,40,40,,,40,40,65,,,40,,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,,,,,40,,,,,,,,40,,,,,,,40,,,40,,,,,,,40,,40,,40,40,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,40,,,,40,40,,,,,,,,,,,,,,,,,',
'38,,,,,,,38,,,,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',40,,,,,,38,,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,40,40,40,,,,',
',,,,,,38,,,,,,38,,,,,,,,,38,38,,,,,38,38,,,,,,40,,,40,,40,,,,,,,,,,',
',,,40,,,,38,,,,,,40,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,,,,',
',,,,,,,,,,,,,,,,40,38,,,,,,,,,,,38,38,,,,,38,38,,,,,,,,,,,,,,,,,38,',
',,,,,,,,,40,40,40,,,40,,,40,40,40,40,38,,,,40,40,,,,,,,,,,,,,38,,,,',
',,,,38,38,,,,,,,,,,,,,,,,,,40,,,,,40,,,38,,40,,,40,,,,,,38,,,,,,,,,',
'40,,,,,,,,,,,,,,,,,,,,,40,,,38,,,,,38,,38,,40,38,,,,,,,,,,,,,,,,,,,',
',40,,,,,,38,40,,,,,,,,,,,,,40,40,40,40,,40,,,,,38,,,,,38,,,40,,,,,,',
',,,,,,,,,,,38,,,,,38,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,40' ]
        racc_goto_check = arr = ::Array.new(3462, 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,   207,    16,   261,   nil,    64,    -2,   120,    55,    49,
    93,   215,  -268,  -197,   507,  -509,  -506,  -649,  -651,   nil,
  -339,    26,   168,   -46,  -107,   107,   -19,  1445,  -191,   -46,
    23,    39,  -109,  1562,  1057,  -227,  -375,   -16,  2266,   -20,
  2426,   -22,  -427,   nil,  -588,    -6,   nil,   nil,   257,  -222,
    34,  -242,  -408,     8,  -233,   nil,   725,   113,    62,    70,
   639,   nil,   -18,    34,  -261,  1643,  1328,  -533,  -239,   -69,
    96,   nil,   nil,    34,    24,  -153,   340,    17,   nil,   -14,
   223,   nil,  1117,   -82,    21,  -453,    78,   -18,  -244,  -284,
  -500,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   188,   nil,  -475,   -80,   -60,   nil,   205,   nil,  -305,
  -681,   nil,  -684,   nil,   nil,   nil,  -345,   nil,   205,   nil,
  -339,     9,   nil,   nil,  -569,   214,   -92,   231,   231,   234,
  -257,    59,    72,    71,  -627,  -221,  -626,  -814,    84,  -461,
  -222,  -734,  -458,  -732,   nil,   nil,   nil,   nil,   nil,   nil,
  -752,  -236,  -468,  -781,  -654,   nil,    60,  -484,    81,  -300,
  -646,   155,  -709,  -586,  -569,   nil,  -641,  -759,  -816,  -803,
  -170,  -544,   120,  -377,  -322,   -16,  -174,   nil,   nil,   -96,
   -96,   nil,  -496,   nil,  -310,  -820,  -411,  -520,  -649,   nil,
   nil,   108,   106,    35,   105,   107,  -328,  -224,  -189,   112,
   113,   113,  -569,  -412,  -412,   116,  -556,  -285,   nil,   nil,
  -130,  -508,  -605,    12,  -479,  -721,   nil,  -655,  -859,   nil,
   nil,  -132,  -461 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   308,     7,   361,   311,
   nil,   nil,   nil,   nil,   552,   nil,   nil,   nil,   nil,   307,
   309,   nil,   nil,   nil,    14,    15,    21,   242,   nil,   nil,
    17,   nil,   435,   243,   339,   nil,   nil,   773,   241,   471,
    24,   nil,   nil,   356,   nil,    25,    26,    27,   nil,   709,
   nil,   nil,   nil,   328,   nil,    28,   325,   450,    35,   nil,
   nil,    37,    40,    39,   nil,   238,   239,   615,   nil,   144,
   458,   143,   146,    90,    91,   nil,   440,   105,    47,    50,
   274,   545,   300,   nil,   451,   nil,   452,   463,   669,   516,
   298,   282,   834,    51,    52,    53,    54,    55,    56,    57,
    58,    59,    61,   nil,   nil,   283,    65,   nil,    67,   nil,
   nil,    68,   877,    69,    70,    71,   nil,    72,   nil,    73,
   nil,   597,    74,    75,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   287,   276,   717,   844,   606,   878,
   744,   868,   nil,   745,  1022,   915,   568,   nil,   569,   nil,
   nil,   570,   nil,   572,   nil,   823,   nil,   nil,   nil,   578,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   462,   285,   nil,
   nil,   688,   nil,   503,   nil,   nil,   nil,   nil,   nil,    89,
    92,    94,   nil,   nil,   nil,   nil,   nil,   632,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   860,   782,   567,
   nil,   571,   582,   584,   585,   926,   588,   589,   927,   592,
   595,   nil,   302 ]

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

racc_reduce_n = 650

racc_shift_n = 1091

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,
  :tLOWEST => 142,
  :tEQL => 143 }

racc_nt_base = 144

racc_use_result_var = true

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

Racc_token_to_s_table = [
  "$end",
  "error",
  "kCLASS",
  "kMODULE",
  "kDEF",
  "kUNDEF",
  "kBEGIN",
  "kRESCUE",
  "kENSURE",
  "kEND",
  "kIF",
  "kUNLESS",
  "kTHEN",
  "kELSIF",
  "kELSE",
  "kCASE",
  "kWHEN",
  "kWHILE",
  "kUNTIL",
  "kFOR",
  "kBREAK",
  "kNEXT",
  "kREDO",
  "kRETRY",
  "kIN",
  "kDO",
  "kDO_COND",
  "kDO_BLOCK",
  "kDO_LAMBDA",
  "kRETURN",
  "kYIELD",
  "kSUPER",
  "kSELF",
  "kNIL",
  "kTRUE",
  "kFALSE",
  "kAND",
  "kOR",
  "kNOT",
  "kIF_MOD",
  "kUNLESS_MOD",
  "kWHILE_MOD",
  "kUNTIL_MOD",
  "kRESCUE_MOD",
  "kALIAS",
  "kDEFINED",
  "klBEGIN",
  "klEND",
  "k__LINE__",
  "k__FILE__",
  "k__ENCODING__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tLABEL",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tLBRACK2",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAMBDA",
  "tLAMBEG",
  "tDSTAR",
  "tCHAR",
  "tSYMBOLS_BEG",
  "tQSYMBOLS_BEG",
  "tSTRING_DEND",
  "tUBANG",
  "tRATIONAL",
  "tIMAGINARY",
  "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_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

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

    result
end

def _reduce_581(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_582(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 583 omitted

def _reduce_584(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_585(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_586(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_587(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 588 omitted

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

    result
end

# reduce 590 omitted

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

    result
end

# reduce 592 omitted

# reduce 593 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 602 omitted

# reduce 603 omitted

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

    result
end

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

    result
end

# reduce 606 omitted

# reduce 607 omitted

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

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

    result
end

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

    result
end

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

    result
end

# reduce 611 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 615 omitted

# reduce 616 omitted

def _reduce_617(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_618(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line

    result
end

def _reduce_619(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_620(val, _values, result)
                      _, arg = val
                      line = arg.line
                      result = s(:array, s(:kwsplat, arg).line(line)).line line

    result
end

# reduce 621 omitted

# reduce 622 omitted

# 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

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

# reduce 646 omitted

# reduce 647 omitted

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

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

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

end   # class Ruby21Parser
