#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.5.1
# 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 = [
'-526,598,598,644,598,598,284,-526,-526,-526,3,598,-526,-526,-526,284',
'-526,234,-93,647,225,226,95,-110,-526,255,-526,-526,-526,-107,96,-108',
'-79,128,225,226,-526,-526,127,-526,-526,-526,-526,-526,232,-101,-115',
'-103,-112,-114,853,-109,-110,235,422,124,-112,252,-109,424,423,254,253',
'225,226,222,643,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526',
'-526,-526,-526,757,646,-526,-526,-526,-106,-526,-526,225,226,-526,769',
'286,-526,-526,770,-526,284,-526,-115,-526,286,-526,-526,-526,-526,-526',
'-526,-526,235,-526,-101,-526,-103,128,128,-111,128,128,127,127,959,127',
'127,128,-526,-526,-526,-526,127,-526,-529,-526,-98,-111,-99,-110,-526',
'-529,-529,-529,-110,-526,-529,-529,-529,-101,-529,-103,-101,-106,-103',
'235,-105,852,-529,-101,-529,-529,-529,-103,-112,-100,-101,-109,-103',
'-112,-529,-529,-109,-529,-529,-529,-529,-529,-113,231,223,235,825,128',
'284,-622,280,286,127,825,106,107,628,-526,-540,633,879,224,605,-619',
'-526,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529',
'-529,-622,824,-529,-529,-529,-540,-529,-529,824,-102,-529,628,-529,-529',
'-529,227,-529,-620,-529,-529,-529,-98,-529,-529,-529,-529,-529,-529',
'-529,-623,-529,583,-529,-541,-435,-107,-111,-526,630,629,628,-111,586',
'-541,-526,-529,-529,-529,-529,-619,-529,-303,-529,-526,108,109,286,-529',
'-303,-303,-303,-107,-529,583,-303,-303,723,-303,-104,722,-529,-619,630',
'629,586,594,593,-529,842,-626,-444,787,-620,275,843,-99,-529,-303,-303',
'-108,-303,-303,-303,-303,-303,106,107,476,128,-108,336,630,629,127,-620',
'-212,-536,594,593,587,905,723,232,-536,725,-212,-626,337,-303,-303,-303',
'-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-626,-444,-303',
'-303,-303,235,670,-626,-444,587,-303,371,-622,-303,628,-105,-626,-444',
'-303,628,-303,-115,-303,-303,-303,-303,-303,-303,-303,-114,-303,395',
'-303,398,-626,-444,-115,-626,628,-114,816,628,108,109,-626,-303,-303',
'-626,-104,-622,-303,-535,817,-626,-626,-626,-626,-303,-535,400,-626',
'-626,-113,-626,579,403,576,575,574,420,577,-626,-626,664,628,630,629',
'626,-537,425,630,629,631,-626,-626,-537,-626,-626,-626,-626,-626,579',
'475,576,575,574,-110,577,477,630,629,636,630,629,648,664,665,665,-112',
'912,803,225,226,478,-626,-626,-626,-626,-626,-626,-626,-626,-626,-626',
'-626,-626,-626,-626,234,-110,-626,-626,-626,-534,671,630,629,790,-626',
'803,-534,-626,872,507,272,273,-626,-101,-626,-103,-626,-626,-626,-626',
'-626,-626,-626,-531,-626,-626,-626,-110,-112,-112,-531,-109,-109,289',
'723,1007,231,725,255,-626,-626,-626,-102,230,-626,271,270,-100,-626',
'-626,-626,-626,228,-626,-626,-626,-111,-626,128,723,517,-109,725,127',
'-532,255,-626,-626,-626,-626,252,-532,-533,235,254,253,1038,-626,-626',
'-533,-626,-626,-626,-626,-626,579,623,576,575,574,520,577,579,624,576',
'575,574,252,577,522,128,254,253,250,251,127,594,593,-626,-626,-626,-626',
'-626,-626,-626,-626,-626,-626,-626,-626,-626,-626,-78,743,-626,-626',
'-626,-347,818,-626,743,235,-626,531,-347,-626,-626,532,-626,746,-626',
'539,-626,-347,-626,-626,-626,-626,-626,-626,-626,128,-626,-626,-626',
'579,127,576,575,574,583,577,131,132,133,134,135,-626,-626,-626,-626',
'586,-626,-303,-626,292,231,875,879,-626,-303,-303,-303,473,-111,-303',
'-303,-303,235,-303,128,-538,474,581,565,127,289,255,-538,-303,-303,-303',
'591,590,594,593,542,-538,546,-303,-303,255,-303,-303,-303,-303,-303',
'579,235,576,575,574,605,577,579,413,576,575,574,252,577,225,226,254',
'253,250,251,610,587,611,-303,-303,-303,-303,-303,-303,-303,-303,-303',
'-303,-303,-303,-303,-303,635,743,-303,-303,-303,-539,819,-303,743,639',
'-303,642,-539,-303,-303,645,-303,746,-303,652,-303,-539,-303,-303,-303',
'-303,-303,-303,-303,-276,-303,654,-303,579,655,576,575,574,583,577,131',
'132,133,134,135,-303,-303,-303,-303,586,-303,-303,-303,875,879,235,662',
'-303,-303,-303,-303,663,-113,289,-303,-303,579,-303,576,575,574,581',
'577,579,675,576,575,574,255,577,591,590,594,593,255,255,255,-303,-303',
'682,-303,-303,-303,-303,-303,579,235,576,575,574,235,577,235,579,743',
'576,575,574,-93,577,700,743,235,952,551,711,587,712,-303,-303,-303,-303',
'-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,231,743,-303,-303',
'-303,-294,670,538,716,743,-303,719,-294,-303,235,726,536,727,-303,522',
'-303,-294,-303,-303,-303,-303,-303,-303,-303,731,-303,734,-303,231,735',
'231,231,-304,737,739,548,741,609,658,-304,-303,-303,-626,-303,474,-303',
'607,656,-304,-626,-626,-626,-303,749,750,-626,-626,-113,-626,255,-648',
'-648,-648,-648,272,273,751,-626,-648,-648,231,753,719,-304,719,265,266',
'772,-626,-626,-304,-626,-626,-626,-626,-626,774,605,719,-304,776,252',
'781,258,791,254,253,250,251,271,270,256,1000,257,576,575,574,792,577',
'-626,-626,-626,-626,-626,-626,-626,-626,-626,-626,-626,-626,-626,-626',
'-303,231,-626,-626,-626,-277,671,-303,1029,804,-626,507,-623,-626,507',
'235,-303,774,-626,821,-626,275,-626,-626,-626,-626,-626,-626,-626,830',
'-626,-626,-626,-538,832,520,522,900,901,711,-538,902,122,123,235,-626',
'-626,289,-626,-538,-626,8,85,86,87,12,78,-626,289,-539,79,80,-111,711',
'255,83,-539,81,82,84,33,34,76,77,235,-539,870,235,879,88,31,30,116,115',
'117,118,719,235,22,906,-278,235,911,659,11,49,10,13,120,119,121,110',
'60,112,111,113,928,114,122,123,711,106,107,-276,45,46,44,255,259,260',
'261,262,272,273,267,268,263,264,-303,248,249,231,933,265,266,-303,43',
'938,1035,36,-623,235,62,63,-303,734,64,1033,38,252,941,258,48,254,253',
'250,251,271,270,256,23,257,943,945,-294,103,95,97,98,99,101,-294,947',
'947,96,104,235,269,953,-251,-294,719,66,719,719,93,100,102,235,719,108',
'109,310,85,86,87,12,78,235,971,231,79,80,-279,972,734,83,1029,81,82',
'84,33,34,76,77,975,774,978,980,982,88,31,30,116,115,117,118,235,984',
'22,996,997,1009,719,659,11,49,312,13,120,119,121,110,60,112,111,113',
'719,114,122,123,781,106,107,1027,45,46,44,255,259,260,261,262,272,273',
'267,268,263,264,-304,248,249,1030,842,265,266,-304,43,1036,1039,314',
'947,947,62,63,-304,947,64,1044,38,252,1009,258,48,254,253,250,251,271',
'270,256,23,257,734,1053,-303,103,95,97,98,99,101,-303,1055,1057,96,104',
'-623,269,1059,1059,-303,716,66,1009,719,93,100,102,719,-623,108,109',
'310,85,86,87,12,78,-622,235,947,79,80,1009,1082,1059,83,1059,81,82,84',
'33,34,76,77,131,132,133,134,135,88,31,30,116,115,117,118,1059,1000,22',
'576,575,574,1059,577,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,131,132,133,134,135,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,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,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,,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,',
'-648,-648,,,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,,-648,-648,,,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,-648,-648,-648,-648,272,273,,,-648,-648,,,,,,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,-648,-648,-648,-648,272,273,,,-648',
'-648,,,,,,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,-648,-648,-648',
'-648,272,273,,,-648,-648,,,,,,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,-648,-648,-648,-648,272,273,,,-648,-648,,,,,,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,-648,-648,-648,-648,272,273,,,-648,-648',
',,,,,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,,,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,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,,,,,,,,,,,,,,,,265,266,,43,,,36,,255,62,63,,,64,,38,252',
',258,48,254,253,250,251,265,266,256,23,257,,,,103,95,97,98,99,101,,',
'252,96,104,,254,253,250,251,,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,,,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,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,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,12,78',
',,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30,116,115,117,118,',
',22,,,,,,11,49,10,13,120,119,121,110,60,112,111,113,,114,122,123,,106',
'107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62,63,,,64,,38,,,,48,,,,',
',,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108',
'109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88,31,30',
'116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111,113,,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,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,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,',
',,,,,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,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,,,,,,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,12,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,,,88',
'31,30,116,115,117,118,,,22,,,,,,11,49,,13,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,62',
'63,,,64,,38,,,,48,,,,,,,,23,,,,,103,95,97,98,99,101,,,,96,104,,,,,,',
'66,,,93,100,102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34',
'76,77,,,,,,88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110',
'60,112,111,113,,114,122,123,,106,107,,45,46,44,,,,,,,,,,,,,,,,,,,,240',
',,246,,,62,63,,,64,,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,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,,,,,,,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,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,,,,,,,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',
',,,,,,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,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,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,,,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,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,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,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,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,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,,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,,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,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,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,,,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,,,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,,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,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,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,,,,,,,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,,,,,,,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,,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,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,,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,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',
'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,,,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,,,,,,,327',
',,120,119,121,110,60,112,111,113,,114,122,123,,106,107,,,,333,,,,,,',
',,,,,,,,,,,,,986,,,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,,,,,,,,,,,,,,,,,,,,993,,,246,,,62,63,,,64,,,,,,,,,,,,,,,,,,,103',
'95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100,102,,,108,109,85,86,87,',
'78,,,,79,80,,,,83,,81,82,84,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,,,,,,,327,,,120,119,121,110,60,112,111',
'113,,114,122,123,,106,107,,,,333,,,,,,,,,,,,,,,,,,,,986,,,246,,,62,63',
',,64,,,,,,,,,,,,,,,,,,,103,95,97,98,99,101,,,,96,104,,,,,,,66,,,93,100',
'102,,,108,109,85,86,87,,78,,,,79,80,,,,83,,81,82,84,33,34,76,77,,,,',
',88,31,30,116,115,117,118,,,247,,,,,,,49,,,120,119,121,110,60,112,111',
'113,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,-443,,108,109,,,,-443,-443,-443,,,-443',
'-443,-443,579,-443,576,575,574,583,577,,,,-443,-443,-443,,,,586,,,,',
'-443,-443,,-443,-443,-443,-443,-443,,,,,,,,,,581,,,,,,,,,591,590,594',
'593,,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443',
'-443,,,-443,-443,-443,,,-443,,289,-443,,,-443,-443,,-443,587,-443,,-443',
',-443,-443,-443,-443,-443,-443,-443,,-443,-443,-443,,,,,,,,,,,,,-443',
'-443,-312,-443,,-443,,,,-312,-312,-312,-443,,-312,-312,-312,579,-312',
'576,575,574,583,577,,,,,-312,-312,,,,586,,,,,-312,-312,,-312,-312,-312',
'-312,-312,,,,,,,,,,581,,,,,,,,,591,590,594,593,,-312,-312,-312,-312',
'-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,,,-312,-312,-312,',
',-312,,292,-312,,,-312,-312,,-312,587,-312,,-312,,-312,-312,-312,-312',
'-312,-312,-312,,-312,,-312,,,,,,,,,,,,,-312,-312,-295,-312,,-312,,,',
'-295,-295,-295,-312,,-295,-295,-295,579,-295,576,575,574,583,577,,,',
',-295,-295,-295,,,586,,,,,-295,-295,,-295,-295,-295,-295,-295,,,,,,',
',,,581,,,,,,,,,,,594,593,,-295,-295,-295,-295,-295,-295,-295,-295,-295',
'-295,-295,-295,-295,-295,,,-295,-295,-295,,,-295,,,-295,,,-295,-295',
',-295,587,-295,,-295,,-295,-295,-295,-295,-295,-295,-295,,-295,,-295',
'579,,576,575,574,583,577,,,,,,-295,-295,-295,-295,586,-295,-647,-295',
',,,,-295,-647,-647,-647,,,-647,-647,-647,,-647,,,,581,,,,,-647,-647',
'-647,,591,590,594,593,,,,-647,-647,,-647,-647,-647,-647,-647,,,,,,,',
',,,,,,,,,,,,,,587,,-647,-647,-647,-647,-647,-647,-647,-647,-647,-647',
'-647,-647,-647,-647,,,-647,-647,-647,,,-647,,289,-647,,,-647,-647,,-647',
',-647,,-647,,-647,-647,-647,-647,-647,-647,-647,,-647,-647,-647,,,,',
',,,,,,,,-647,-647,-627,-647,,-647,,,,-627,-627,-627,-647,,-627,-627',
'-627,579,-627,576,575,574,583,577,,,,-627,-627,-627,-627,,,586,,,,,-627',
'-627,,-627,-627,-627,-627,-627,,,,,,,,,,581,,,,,,,,,591,590,594,593',
',-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627,-627',
',,-627,-627,-627,,,-627,,,-627,,,-627,-627,,-627,587,-627,,-627,,-627',
'-627,-627,-627,-627,-627,-627,,-627,-627,-627,579,,576,575,574,583,577',
',,,,,-627,-627,-627,-627,586,-627,-628,-627,,,,,-627,-628,-628,-628',
',,-628,-628,-628,,-628,,,,581,,,,,-628,-628,-628,-628,591,590,594,593',
',,,-628,-628,,-628,-628,-628,-628,-628,,,,,,,,,,,,,,235,,,,,,,,587,',
'-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628,-628',
',,-628,-628,-628,,,-628,,,-628,,,-628,-628,,-628,,-628,,-628,,-628,-628',
'-628,-628,-628,-628,-628,,-628,-628,-628,579,,576,575,574,583,577,,',
',,,-628,-628,-628,-628,586,-628,-647,-628,,,,,-628,-647,-647,-647,,',
'-647,-647,-647,,-647,,,,581,,,,,-647,-647,,,591,590,594,593,,,,-647',
'-647,,-647,-647,-647,-647,-647,579,,576,575,574,583,577,579,,576,575',
'574,583,577,,,586,,,,,587,,586,,,,,,,,,,,-647,,,,581,,,-647,,,,581,289',
'-647,,594,593,,,,,,594,593,,,,,,,,,,,-647,-647,,,,,,,,,,,,,-647,587',
',,,-647,,,587,,,,-647,189,200,190,213,186,206,196,195,216,217,211,194',
'193,188,214,218,219,198,187,201,205,207,199,192,,,,208,215,210,209,202',
'212,197,185,204,203,,,,,,184,191,182,183,179,180,181,139,141,138,,140',
',,,,,,,,173,174,,169,151,152,153,160,157,159,,,154,155,,,,175,176,161',
'162,,,,,,,,,,,,,,166,165,,150,172,168,167,163,164,158,156,148,171,149',
',,177,103,,,,,,,,,,104,,,,,,,,,170,,,,,178,189,200,190,213,186,206,196',
'195,216,217,211,194,193,188,214,218,219,198,187,201,205,207,199,192',
',,,208,215,210,209,202,212,197,185,204,203,,,,,,184,191,182,183,179',
'180,181,139,141,,,140,,,,,,,,,173,174,,169,151,152,153,160,157,159,',
',154,155,,,,175,176,161,162,,,,,,,,,,,,,,166,165,,150,172,168,167,163',
'164,158,156,148,171,149,,,177,103,,,,,,,,,,104,,,,,,,,,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,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',
'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,,,,,,,,,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,,,,,,,,,,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,,,,,,,,,,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,,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,,,,,594,593,,,,,,,,166,165,,150,172,168,167,163,164,158',
'156,148,171,149,,,177,,,,,,,,,587,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,,,177,,,,,,,,,,704,457,,,705,,,,,,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,,,,,,,,,,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,,,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,,,,,,,,,,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,,,,,,,,,,801,464,,,800',
',,,,,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,,,,,,,,,,886,464,,,887,,,,,,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,,,,,,,,,,1063,464,,,1062,,,,,,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,,,,,,,,,,1066,457,,,1067,,,,,,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,464,,,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,,579,177,576,575,574,583,577,579,,576,575,574,583,577,,',
'586,,,,,170,,586,,579,178,576,575,574,583,577,,,,,,,581,,,586,,,,581',
',591,590,594,593,,,,591,590,594,593,,,,,579,581,576,575,574,583,577',
',,,,,594,593,,,586,,,,579,587,576,575,574,583,577,579,587,576,575,574',
'583,577,,,586,,581,,,,,586,,,587,,,594,593,,,,,,,579,581,576,575,574',
'583,577,,581,,591,590,594,593,,,586,,,594,593,,,,,579,587,576,575,574',
'583,577,,,,,,,581,,,586,,,,,587,,,594,593,,579,587,576,575,574,583,577',
',,,,581,,,,,586,,,,,,594,593,,,,,,,,587,,,,,,,581,,,,,,,,,,,594,593',
',,,,,587,,,,,,,,,,,,,,,,,,,,,,,,,,,587' ]
        racc_action_table = arr = ::Array.new(26056, 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 = [
'110,354,355,401,932,883,65,110,110,110,1,956,110,110,110,328,110,22',
'699,404,469,469,92,1066,110,481,110,110,110,362,92,363,699,5,17,17,110',
'110,5,110,110,110,110,110,20,704,366,705,1067,610,729,1080,764,22,138',
'3,765,481,884,138,138,481,481,714,714,13,401,110,110,110,110,110,110',
'110,110,110,110,110,110,110,110,600,404,110,110,110,20,110,110,784,784',
'110,614,65,110,110,614,110,685,110,20,110,328,110,110,110,110,110,110',
'110,469,110,704,110,705,354,355,766,932,883,354,355,883,932,883,956',
'110,110,110,110,956,110,113,110,362,1068,363,1066,110,113,113,113,1066',
'110,113,113,113,704,113,705,704,366,705,714,610,729,113,764,113,113',
'113,765,1067,884,704,1080,705,1067,113,113,1080,113,113,113,113,113',
'767,27,15,784,683,600,29,766,27,685,600,831,44,44,393,373,41,393,1012',
'16,1012,612,373,113,113,113,113,113,113,113,113,113,113,113,113,113',
'113,1068,683,113,113,113,238,113,113,831,766,113,637,374,113,113,18',
'113,613,113,374,113,41,113,113,113,113,113,113,113,767,113,731,113,239',
'29,41,1068,612,393,393,789,1068,731,42,612,113,113,113,113,612,113,459',
'113,612,44,44,29,113,459,459,459,238,113,972,459,459,557,459,767,557',
'613,612,637,637,972,731,731,613,715,707,836,637,613,25,715,42,613,459',
'459,239,459,459,459,459,459,333,333,241,307,42,40,789,789,307,613,337',
'375,972,972,731,789,558,437,375,558,475,886,43,459,459,459,459,459,459',
'459,459,459,459,459,459,459,459,707,836,459,459,459,49,459,707,836,972',
'459,73,707,459,389,337,707,836,459,391,459,241,459,459,459,459,459,459',
'459,337,459,99,459,100,707,836,437,886,396,475,676,406,333,333,886,459',
'459,460,459,886,459,376,677,886,460,460,460,459,376,101,460,460,459',
'460,746,102,746,746,746,136,746,886,460,798,640,389,389,389,377,220',
'391,391,391,460,460,377,460,460,460,460,460,952,240,952,952,952,676',
'952,242,396,396,396,406,406,406,453,799,454,677,820,908,353,353,243',
'460,460,460,460,460,460,460,460,460,460,460,460,460,460,247,798,460',
'460,460,378,460,640,640,640,460,660,378,460,746,281,47,47,460,453,460',
'454,460,460,460,460,460,460,460,379,460,460,460,453,799,454,379,820',
'908,285,562,952,19,562,482,460,460,678,460,19,460,47,47,660,678,678',
'678,460,19,678,678,678,460,678,359,850,296,660,850,359,380,496,678,678',
'678,678,482,380,381,998,482,482,998,678,678,381,678,678,678,678,678',
'872,383,872,872,872,297,872,581,383,581,581,581,496,581,300,892,496',
'496,496,496,892,734,734,678,678,678,678,678,678,678,678,678,678,678',
'678,678,678,313,872,678,678,678,50,678,678,581,315,678,316,50,678,678',
'317,678,581,678,323,678,50,678,678,678,678,678,678,678,896,678,678,678',
'352,896,352,352,352,352,352,9,9,9,9,9,678,678,678,678,352,678,679,678',
'326,237,752,752,678,679,679,679,237,678,679,679,679,327,679,964,320',
'237,352,352,964,332,497,320,679,679,679,352,352,352,352,334,320,338',
'679,679,341,679,679,679,679,679,953,347,953,953,953,360,953,743,361',
'743,743,743,497,743,778,778,497,497,497,497,365,352,367,679,679,679',
'679,679,679,679,679,679,679,679,679,679,679,395,953,679,679,679,321',
'679,679,743,398,679,400,321,679,679,403,679,743,679,426,679,321,679',
'679,679,679,679,679,679,429,679,431,679,565,434,565,565,565,565,565',
'311,311,311,311,311,679,679,679,679,565,679,800,679,1046,1046,448,451',
'679,800,800,800,452,679,461,800,800,870,800,870,870,870,565,870,1007',
'471,1007,1007,1007,483,1007,565,565,565,565,484,485,486,800,800,502',
'800,800,800,800,800,1009,513,1009,1009,1009,514,1009,529,1044,870,1044',
'1044,1044,530,1044,533,1007,535,870,540,543,565,545,800,800,800,800',
'800,800,800,800,800,800,800,800,800,800,322,1009,800,800,800,324,800',
'322,552,1044,800,553,324,800,554,559,322,560,800,563,800,324,800,800',
'800,800,800,800,800,567,800,568,800,339,570,364,436,539,571,572,339',
'580,364,436,539,800,800,801,800,339,800,364,436,539,801,801,801,800',
'588,592,801,801,800,801,490,490,490,490,490,490,490,595,801,490,490',
'616,597,601,770,602,490,490,616,801,801,770,801,801,801,801,801,616',
'603,604,770,618,490,621,490,644,490,490,490,490,490,490,490,938,490',
'938,938,938,647,938,801,801,801,801,801,801,801,801,801,801,801,801',
'801,801,708,985,801,801,801,653,801,708,985,661,801,666,708,801,672',
'680,708,985,801,681,801,684,801,801,801,801,801,801,801,687,801,801',
'801,990,689,692,694,785,785,701,990,785,785,785,703,801,801,706,801',
'990,801,2,2,2,2,2,2,801,709,991,2,2,801,710,713,2,991,2,2,2,2,2,2,2',
'730,991,745,747,754,2,2,2,2,2,2,2,760,763,2,793,795,797,805,441,2,2',
'2,2,2,2,2,2,2,2,2,2,829,2,2,2,835,2,2,846,2,2,2,441,441,441,441,441',
'441,441,441,441,441,441,887,441,441,992,847,441,441,887,2,854,992,2',
'887,855,2,2,887,856,2,992,2,441,860,441,2,441,441,441,441,441,441,441',
'2,441,861,863,994,2,2,2,2,2,2,994,864,866,2,2,869,441,871,441,994,874',
'2,880,885,2,2,2,889,893,2,2,36,36,36,36,36,36,895,904,1028,36,36,907',
'914,915,36,1028,36,36,36,36,36,36,36,917,1028,918,919,921,36,36,36,36',
'36,36,36,922,923,36,936,937,954,963,447,36,36,36,36,36,36,36,36,36,36',
'36,36,967,36,36,36,970,36,36,983,36,36,36,447,447,447,447,447,447,447',
'447,447,447,447,1036,447,447,986,988,447,447,1036,36,993,1002,36,1003',
'1004,36,36,1036,1005,36,1006,36,447,1008,447,36,447,447,447,447,447',
'447,447,36,447,1018,1021,1069,36,36,36,36,36,36,1069,1022,1023,36,36',
'1069,447,1024,1026,1069,1032,36,1045,1050,36,36,36,1051,1062,36,36,222',
'222,222,222,222,222,1063,1065,1071,222,222,1072,1076,1077,222,1078,222',
'222,222,222,222,222,222,346,346,346,346,346,222,222,222,222,222,222',
'222,1079,1038,222,1038,1038,1038,1087,1038,222,222,222,222,222,222,222',
'222,222,222,222,222,,222,222,222,,222,222,,222,222,222,24,24,24,24,24',
'24,24,24,24,24,24,,24,24,,,24,24,,222,,,222,,,222,222,,,222,,222,24',
',24,222,24,24,24,24,24,24,24,222,24,,,,222,222,222,222,222,222,,,,222',
'222,,24,,,,,222,,,222,222,222,,,222,222,246,246,246,246,246,246,,,,246',
'246,,,,246,,246,246,246,246,246,246,246,528,528,528,528,528,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,294,294,294,294,294,294,294',
'294,294,294,294,,294,294,,,294,294,,246,,,246,,,246,246,,,246,,246,294',
',294,246,294,294,294,294,294,294,294,246,294,,,,246,246,246,246,246',
'246,,,,246,246,,294,,,,,246,,,246,246,246,,,246,246,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,500,500,500,500,500,500,500',
'500,500,500,500,,500,500,,,500,500,,314,,,314,,,314,314,,,314,,314,500',
',500,314,500,500,500,500,500,500,500,314,500,,,,314,314,314,314,314',
'314,,,,314,314,500,500,,,,,314,,,314,314,314,,,314,314,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,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,802,802,802,802,802,802,802',
'802,802,802,802,,802,802,,,802,802,,345,,,345,,,345,345,,,345,,345,802',
',802,345,802,802,802,802,802,802,802,345,802,,,,345,345,345,345,345',
'345,,,,345,345,,802,,,,,345,,,345,345,345,,,345,345,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,913,913,913,913,913,913,913',
'913,913,913,913,,913,913,,,913,913,,357,,,357,,,357,357,,,357,,357,913',
',913,357,913,913,913,913,913,913,913,357,913,,,,357,357,357,357,357',
'357,,,,357,357,,913,,,,,357,,,357,357,357,,,357,357,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,479,479,479,479,479,479,479',
'479,479,479,479,,479,479,,,479,479,,358,,,358,,,358,358,,,358,,358,479',
',479,358,479,479,479,479,479,479,479,358,479,,,,358,358,358,358,358',
'358,,,,358,358,,,,,,,358,,,358,358,358,,,358,358,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,480,480,480,480,480,480,480,480',
'480,480,480,,480,480,,,480,480,,596,,,596,,,596,596,,,596,,596,480,',
'480,596,480,480,480,480,480,480,480,596,480,,,,596,596,596,596,596,596',
',,,596,596,,,,,,,596,,,596,596,596,,,596,596,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,491,491,491,491,491,491,491,,,491',
'491,,,,,,491,491,,599,,,599,,,599,599,,,599,,599,491,,491,599,491,491',
'491,491,491,491,491,599,491,,,,599,599,599,599,599,599,,,,599,599,,',
',,,,599,,,599,599,599,,,599,599,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,492,492,492,492,492,492,492,,,492,492,,,,',
',492,492,,649,,,649,,,649,649,,,649,,649,492,,492,649,492,492,492,492',
'492,492,492,649,492,,,,649,649,649,649,649,649,,,,649,649,,,,,,,649',
',,649,649,649,,,649,649,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,493,493,493,493,493,493,493,,,493,493,,,,,,493,493,,768',
',,768,,,768,768,,,768,,768,493,,493,768,493,493,493,493,493,493,493',
'768,493,,,,768,768,768,768,768,768,,,,768,768,,,,,,,768,,,768,768,768',
',,768,768,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',
'494,494,494,494,494,494,494,,,494,494,,,,,,494,494,,779,,,779,,,779',
'779,,,779,,779,494,,494,779,494,494,494,494,494,494,494,779,494,,,,779',
'779,779,779,779,779,,,,779,779,,,,,,,779,,,779,779,779,,,779,779,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,495,495,495,495',
'495,495,495,,,495,495,,,,,,495,495,,780,,,780,,,780,780,,,780,,780,495',
',495,780,495,495,495,495,495,495,495,780,495,,,,780,780,780,780,780',
'780,,,,780,780,,,,,,,780,,,780,780,780,,,780,780,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,498,498,498,498,498,498,498,',
',498,498,,,,,,498,498,,786,,,786,,,786,786,,,786,,786,498,,498,786,498',
'498,498,498,498,498,498,786,498,,,,786,786,786,786,786,786,,,,786,786',
',,,,,,786,,,786,786,786,,,786,786,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,499,499,499,499,499,499,499,499,,499,499,',
',,,,499,499,,826,,,826,,,826,826,,,826,,826,499,,499,826,499,499,499',
'499,499,499,499,826,499,,,,826,826,826,826,826,826,,,,826,826,,,,,,',
'826,,,826,826,826,,,826,826,844,844,844,844,844,844,,,,844,844,,,,844',
',844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844,,,844',
',,,,,844,844,844,844,844,844,844,844,844,844,844,844,,844,844,844,,844',
'844,,844,844,844,501,,,,,,,,,,,,,,,,501,501,,844,,,844,,489,844,844',
',,844,,844,501,,501,844,501,501,501,501,489,489,501,844,501,,,,844,844',
'844,844,844,844,,,489,844,844,,489,489,489,489,,844,,,844,844,844,,',
'844,844,852,852,852,852,852,852,,,,852,852,,,,852,,852,852,852,852,852',
'852,852,,,,,,852,852,852,852,852,852,852,,,852,,,,,,852,852,852,852',
'852,852,852,852,852,852,852,852,,852,852,852,,852,852,,852,852,852,549',
',,,,,,,,,,,,,,,549,549,,852,,,852,,,852,852,,,852,,852,549,,549,852',
'549,549,549,549,,,549,852,549,,,,852,852,852,852,852,852,,,,852,852',
',,,,,,852,,,852,852,852,,,852,852,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,487,,,,,,,,,,,,,,,,487,487,,853,,,853,,,853',
'853,,,853,,853,487,,487,853,487,487,487,487,,,,853,,,,,853,853,853,853',
'853,853,,,,853,853,,,,,,,853,,,853,853,853,,,853,853,879,879,879,879',
'879,879,,,,879,879,,,,879,,879,879,879,879,879,879,879,,,,,,879,879',
'879,879,879,879,879,,,879,,,,,,879,879,879,879,879,879,879,879,879,879',
'879,879,,879,879,879,,879,879,,879,879,879,488,,,,,,,,,,,,,,,,488,488',
',879,,,879,,,879,879,,,879,,879,488,,488,879,488,488,488,488,,,,879',
',,,,879,879,879,879,879,879,,,,879,879,,,,,,,879,,,879,879,879,,,879',
'879,890,890,890,890,890,890,,,,890,890,,,,890,,890,890,890,890,890,890',
'890,,,,,,890,890,890,890,890,890,890,,,890,,,,,,890,890,890,890,890',
'890,890,890,890,890,890,890,,890,890,890,,890,890,,890,890,890,,,,,',
',,,,,,,,,,,,,,890,,,890,,,890,890,,,890,,890,,,,890,,,,,,,,890,,,,,890',
'890,890,890,890,890,,,,890,890,,,,,,,890,,,890,890,890,,,890,890,929',
'929,929,929,929,929,,,,929,929,,,,929,,929,929,929,929,929,929,929,',
',,,,929,929,929,929,929,929,929,,,929,,,,,,929,929,929,929,929,929,929',
'929,929,929,929,929,,929,929,929,,929,929,,929,929,929,,,,,,,,,,,,,',
',,,,,,929,,,929,,,929,929,,,929,,929,,,,929,,,,,,,,929,,,,,929,929,929',
'929,929,929,,,,929,929,,,,,,,929,,,929,929,929,,,929,929,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,960,960,960,960,960',
'960,,,,960,960,,,,960,,960,960,960,960,960,960,960,,,,,,960,960,960',
'960,960,960,960,,,960,,,,,,960,960,960,960,960,960,960,960,960,960,960',
'960,,960,960,960,,960,960,,960,960,960,,,,,,,,,,,,,,,,,,,,960,,,960',
',,960,960,,,960,,960,,,,960,,,,,,,,960,,,,,960,960,960,960,960,960,',
',,960,960,,,,,,,960,,,960,960,960,,,960,960,989,989,989,989,989,989',
',,,989,989,,,,989,,989,989,989,989,989,989,989,,,,,,989,989,989,989',
'989,989,989,,,989,,,,,,989,989,989,989,989,989,989,989,989,989,989,989',
',989,989,989,,989,989,,989,989,989,,,,,,,,,,,,,,,,,,,,989,,,989,,,989',
'989,,,989,,989,,,,989,,,,,,,,989,,,,,989,989,989,989,989,989,,,,989',
'989,,,,,,,989,,,989,989,989,,,989,989,1010,1010,1010,1010,1010,1010',
',,,1010,1010,,,,1010,,1010,1010,1010,1010,1010,1010,1010,,,,,,1010,1010',
'1010,1010,1010,1010,1010,,,1010,,,,,,1010,1010,1010,1010,1010,1010,1010',
'1010,1010,1010,1010,1010,,1010,1010,1010,,1010,1010,,1010,1010,1010',
',,,,,,,,,,,,,,,,,,,1010,,,1010,,,1010,1010,,,1010,,1010,,,,1010,,,,',
',,,1010,,,,,1010,1010,1010,1010,1010,1010,,,,1010,1010,,,,,,,1010,,',
'1010,1010,1010,,,1010,1010,1015,1015,1015,1015,1015,1015,,,,1015,1015',
',,,1015,,1015,1015,1015,1015,1015,1015,1015,,,,,,1015,1015,1015,1015',
'1015,1015,1015,,,1015,,,,,,1015,1015,1015,1015,1015,1015,1015,1015,1015',
'1015,1015,1015,,1015,1015,1015,,1015,1015,,1015,1015,1015,,,,,,,,,,',
',,,,,,,,,1015,,,1015,,,1015,1015,,,1015,,1015,,,,1015,,,,,,,,1015,,',
',,1015,1015,1015,1015,1015,1015,,,,1015,1015,,,,,,,1015,,,1015,1015',
'1015,,,1015,1015,1017,1017,1017,1017,1017,1017,,,,1017,1017,,,,1017',
',1017,1017,1017,1017,1017,1017,1017,,,,,,1017,1017,1017,1017,1017,1017',
'1017,,,1017,,,,,,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017',
'1017,,1017,1017,1017,,1017,1017,,1017,1017,1017,,,,,,,,,,,,,,,,,,,,1017',
',,1017,,,1017,1017,,,1017,,1017,,,,1017,,,,,,,,1017,,,,,1017,1017,1017',
'1017,1017,1017,,,,1017,1017,,,,,,,1017,,,1017,1017,1017,,,1017,1017',
'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',
'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,32,32,32,,32,,,',
'32,32,,,,32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,',
',,,32,,,32,32,32,32,32,32,32,32,32,32,32,32,,32,32,,32,32,32,,,,,,,',
',,,,,,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,,,,,,32,,,,,32,32,32',
'32,32,32,,,,32,32,,,,,,,32,,32,32,32,32,,,32,32,33,33,33,,33,,,,33,33',
',,,33,,33,33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33',
',,33,33,33,33,33,33,33,33,33,33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,',
',,,,,,33,,,33,,,33,33,,,33,,33,,33,,33,,,,,,,,33,,,,,33,33,33,33,33',
'33,,,,33,33,,,,,,,33,,33,33,33,33,,,33,33,34,34,34,,34,,,,34,34,,,,34',
',34,34,34,34,34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34',
'34,34,34,34,34,34,34,34,34,34,,34,34,,34,34,34,,,,,,,,,,,,,,,,,,,,34',
',,34,,,34,34,,,34,,34,,34,,34,,,,,,,,34,,,,,34,34,34,34,34,34,,,,34',
'34,,,,,,,34,,34,34,34,34,,,34,34,37,37,37,,37,,,,37,37,,,,37,,37,37',
'37,37,37,37,37,,,,,,37,37,37,37,37,37,37,,,37,,,,,,,37,,,37,37,37,37',
'37,37,37,37,,37,37,37,,37,37,,,,37,,,,,,,,,,,,,,,,,,,,37,,,37,,,37,37',
',,37,,37,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,37,37,,,,,,,37,,,37,37',
'37,,,37,37,38,38,38,,38,,,,38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38',
'38,38,38,38,38,38,,,38,,,,,,,38,,,38,38,38,38,38,38,38,38,,38,38,38',
',38,38,,,,38,,,,,,,,,,,,,,,,,,,,38,,,38,,,38,38,,,38,,,,,,,,,,,,,,,',
',,,38,38,38,38,38,38,,,,38,38,,,,38,,,38,,,38,38,38,,,38,38,45,45,45',
',45,,,,45,45,,,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45,45,45,45,',
',45,,,,,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,,45,45,45,,',
',,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45,45,45',
'45,45,45,,,,45,45,,,,,,,45,,,45,45,45,,,45,45,46,46,46,,46,,,,46,46',
',,,46,,46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46',
',,46,46,46,46,46,46,46,46,,46,46,46,,46,46,,46,46,46,,,,,,,,,,,,,,,',
',,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,46,,,,,46,46,46,46,46,46,,,',
'46,46,,,,,,,46,,,46,46,46,,,46,46,48,48,48,,48,,,,48,48,,,,48,,48,48',
'48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,,,48,,,48,48,48,48',
'48,48,48,48,,48,48,48,,48,48,,48,48,48,,,,,,,,,,,,,,,,,,,,48,,,48,,',
'48,48,,,48,,,,,,48,,,,,,,,48,,,,,48,48,48,48,48,48,,,,48,48,,,,,,,48',
',,48,48,48,,,48,48,62,62,62,62,62,,,,62,62,,,,62,,62,62,62,62,62,62',
'62,,,,,,62,62,62,62,62,62,62,,,62,,,,,,62,62,,62,62,62,62,62,62,62,62',
'62,,62,62,62,,62,62,,62,62,62,,,,,,,,,,,,,,,,,,,,62,,,62,,,62,62,,,62',
',62,,,,62,,,,,,,,62,,,,,62,62,62,62,62,62,,,,62,62,,,,,,,62,,,62,62',
'62,,,62,62,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,126,126,126,126,126,,,,126,126,,,,126,,126,126,126',
'126,126,126,126,,,,,,126,126,126,126,126,126,126,,,126,,,,,,126,126',
'126,126,126,126,126,126,126,126,126,126,,126,126,126,,126,126,,126,126',
'126,,,,,,,,,,,,,,,,,,,,126,,,126,,,126,126,,,126,,126,,,,126,,,,,,,',
'126,,,,,126,126,126,126,126,126,,,,126,126,,,,,,126,126,,,126,126,126',
',,126,126,131,131,131,,131,,,,131,131,,,,131,,131,131,131,131,131,131',
'131,,,,,,131,131,131,131,131,131,131,,,131,,,,,,,131,,,131,131,131,131',
'131,131,131,131,,131,131,131,,131,131,,131,131,131,,,,,,,,,,,,,,,,,',
',,131,,,131,,,131,131,,,131,,,,,,131,,,,,,,,131,,,,,131,131,131,131',
'131,131,,,,131,131,,,,,,,131,,,131,131,131,,,131,131,132,132,132,,132',
',,,132,132,,,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132',
'132,132,132,,,132,,,,,,,132,,,132,132,132,132,132,132,132,132,,132,132',
'132,,132,132,,132,132,132,,,,,,,,,,,,,,,,,,,,132,,,132,,,132,132,,,132',
',,,,,132,,,,,,,,132,,,,,132,132,132,132,132,132,,,,132,132,,,,,,,132',
',,132,132,132,,,132,132,133,133,133,,133,,,,133,133,,,,133,,133,133',
'133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,,,133',
',,133,133,133,133,133,133,133,133,,133,133,133,,133,133,,133,133,133',
',,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,133,,,',
',133,133,133,133,133,133,,,,133,133,,,,,,,133,,,133,133,133,,,133,133',
'134,134,134,,134,,,,134,134,,,,134,,134,134,134,134,134,134,134,,,,',
',134,134,134,134,134,134,134,,,134,,,,,,,134,,,134,134,134,134,134,134',
'134,134,,134,134,134,,134,134,,134,134,134,,,,,,,,,,,,,,,,,,,,134,,',
'134,,,134,134,,,134,,,,,,134,,,,,,,,134,,,,,134,134,134,134,134,134',
',,,134,134,,,,,,,134,,,134,134,134,,,134,134,135,135,135,135,135,,,',
'135,135,,,,135,,135,135,135,135,135,135,135,,,,,,135,135,135,135,135',
'135,135,,,135,,,,,,135,135,,135,135,135,135,135,135,135,135,135,,135',
'135,135,,135,135,,135,135,135,,,,,,,,,,,,,,,,,,,,135,,,135,,,135,135',
',,135,,135,,,,135,,,,,,,,135,,,,,135,135,135,135,135,135,,,,135,135',
',,,,,,135,,,135,135,135,,,135,135,223,223,223,,223,,,,223,223,,,,223',
',223,223,223,223,223,223,223,,,,,,223,223,223,223,223,223,223,,,223',
',,,,,,223,,,223,223,223,223,223,223,223,223,,223,223,223,,223,223,,223',
'223,223,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,223,,,223,,223,,,,223,,,',
',,,,223,,,,,223,223,223,223,223,223,,,,223,223,,,,,,,223,,,223,223,223',
',,223,223,224,224,224,,224,,,,224,224,,,,224,,224,224,224,224,224,224',
'224,,,,,,224,224,224,224,224,224,224,,,224,,,,,,,224,,,224,224,224,224',
'224,224,224,224,,224,224,224,,224,224,,224,224,224,,,,,,,,,,,,,,,,,',
',,224,,,224,,,224,224,,,224,,224,,,,224,,,,,,,,224,,,,,224,224,224,224',
'224,224,,,,224,224,,,,,,,224,,,224,224,224,,,224,224,225,225,225,,225',
',,,225,225,,,,225,,225,225,225,225,225,225,225,,,,,,225,225,225,225',
'225,225,225,,,225,,,,,,,225,,,225,225,225,225,225,225,225,225,,225,225',
'225,,225,225,,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225',
',,,,,225,,,,,,,,225,,,,,225,225,225,225,225,225,,,,225,225,,,,,,,225',
',,225,225,225,,,225,225,226,226,226,,226,,,,226,226,,,,226,,226,226',
'226,226,226,226,226,,,,,,226,226,226,226,226,226,226,,,226,,,,,,,226',
',,226,226,226,226,226,226,226,226,,226,226,226,,226,226,,226,226,226',
',,,,,,,,,,,,,,,,,,,226,,,226,,,226,226,,,226,,,,,,226,,,,,,,,226,,,',
',226,226,226,226,226,226,,,,226,226,,,,,,,226,,,226,226,226,,,226,226',
'227,227,227,,227,,,,227,227,,,,227,,227,227,227,227,227,227,227,,,,',
',227,227,227,227,227,227,227,,,227,,,,,,,227,,,227,227,227,227,227,227',
'227,227,,227,227,227,,227,227,,227,227,227,,,,,,,,,,,,,,,,,,,,227,,',
'227,,,227,227,,,227,,,,,,227,,,,,,,,227,,,,,227,227,227,227,227,227',
',,,227,227,,,,,,,227,,,227,227,227,,,227,227,228,228,228,,228,,,,228',
'228,,,,228,,228,228,228,228,228,228,228,,,,,,228,228,228,228,228,228',
'228,,,228,,,,,,,228,,,228,228,228,228,228,228,228,228,228,228,228,228',
',228,228,,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228,,,228,228,,,228,',
'228,,228,,228,,,,,,,,228,,,,,228,228,228,228,228,228,,,,228,228,,,,',
',,228,,228,228,228,228,,,228,228,232,232,232,,232,,,,232,232,,,,232',
',232,232,232,232,232,232,232,,,,,,232,232,232,232,232,232,232,,,232',
',,,,,,232,,,232,232,232,232,232,232,232,232,,232,232,232,,232,232,,232',
'232,232,,,,,,,,,,,,,,,,,,,,232,,,232,,,232,232,,,232,,,,,,232,,,,,,',
',232,,,,,232,232,232,232,232,232,,,,232,232,,,,,,,232,,,232,232,232',
',,232,232,233,233,233,,233,,,,233,233,,,,233,,233,233,233,233,233,233',
'233,,,,,,233,233,233,233,233,233,233,,,233,,,,,,,233,,,233,233,233,233',
'233,233,233,233,,233,233,233,,233,233,,233,233,233,,,,,,,,,,,,,,,,,',
',,233,,,233,,,233,233,,,233,,,,,,233,,,,,,,,233,,,,,233,233,233,233',
'233,233,,,,233,233,,,,,,,233,,,233,233,233,,,233,233,234,234,234,,234',
',,,234,234,,,,234,,234,234,234,234,234,234,234,,,,,,234,234,234,234',
'234,234,234,,,234,,,,,,,234,,,234,234,234,234,234,234,234,234,,234,234',
'234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,,,,234,,,234,,,234,234,,,234',
',,,,,234,,,,,,,,234,,,,,234,234,234,234,234,234,,,,234,234,234,,,,,',
'234,,,234,234,234,,,234,234,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,248,248,248,,248,,,,248,248,,,,248,,248,248,248,248,248,248,248',
',,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248,248,248',
'248,248,248,,248,248,248,,248,248,,248,248,248,,,,,,,,,,,,,,,,,,,,248',
',,248,,,248,248,,,248,,,,,,248,,,,,,,,248,,,,,248,248,248,248,248,248',
',,,248,248,,,,,,,248,,,248,248,248,,,248,248,249,249,249,,249,,,,249',
'249,,,,249,,249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249',
'249,,,249,,,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,',
'249,249,,249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,',
',,,249,,,,,,,,249,,,,,249,249,249,249,249,249,,,,249,249,,,,,,,249,',
',249,249,249,,,249,249,250,250,250,,250,,,,250,250,,,,250,,250,250,250',
'250,250,250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,,,250,,,250',
'250,250,250,250,250,250,250,,250,250,250,,250,250,,250,250,250,,,,,',
',,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,250,,,,,250',
'250,250,250,250,250,,,,250,250,,,,,,,250,,,250,250,250,,,250,250,251',
'251,251,,251,,,,251,251,,,,251,,251,251,251,251,251,251,251,,,,,,251',
'251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251',
'251,,251,251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251',
',,251,251,,,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251,251,251,,,,251',
'251,,,,,,,251,,,251,251,251,,,251,251,252,252,252,,252,,,,252,252,,',
',252,,252,252,252,252,252,252,252,,,,,,252,252,252,252,252,252,252,',
',252,,,,,,,252,,,252,252,252,252,252,252,252,252,,252,252,252,,252,252',
',252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252,,,,,,252,',
',,,,,,252,,,,,252,252,252,252,252,252,,,,252,252,,,,,,,252,,,252,252',
'252,,,252,252,253,253,253,,253,,,,253,253,,,,253,,253,253,253,253,253',
'253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,,,253,,,253,253,253',
'253,253,253,253,253,,253,253,253,,253,253,,253,253,253,,,,,,,,,,,,,',
',,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253,253,253',
'253,253,253,,,,253,253,,,,,,,253,,,253,253,253,,,253,253,254,254,254',
',254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254',
'254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254,254,254,254,,254',
'254,254,,254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254',
',,254,,,,,,254,,,,,,,,254,,,,,254,254,254,254,254,254,,,,254,254,,,',
',,,254,,,254,254,254,,,254,254,255,255,255,,255,,,,255,255,,,,255,,255',
'255,255,255,255,255,255,,,,,,255,255,255,255,255,255,255,,,255,,,,,',
',255,,,255,255,255,255,255,255,255,255,,255,255,255,,255,255,,255,255',
'255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255,,,,,,,,255',
',,,,255,255,255,255,255,255,,,,255,255,,,,,,,255,,,255,255,255,,,255',
'255,256,256,256,,256,,,,256,256,,,,256,,256,256,256,256,256,256,256',
',,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256,256,256',
'256,256,256,,256,256,256,,256,256,,256,256,256,,,,,,,,,,,,,,,,,,,,256',
',,256,,,256,256,,,256,,,,,,256,,,,,,,,256,,,,,256,256,256,256,256,256',
',,,256,256,,,,,,,256,,,256,256,256,,,256,256,257,257,257,,257,,,,257',
'257,,,,257,,257,257,257,257,257,257,257,,,,,,257,257,257,257,257,257',
'257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257,257,',
'257,257,,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257,,',
',,,257,,,,,,,,257,,,,,257,257,257,257,257,257,,,,257,257,,,,,,,257,',
',257,257,257,,,257,257,258,258,258,,258,,,,258,258,,,,258,,258,258,258',
'258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258',
'258,258,258,258,258,258,258,,258,258,258,,258,258,,258,258,258,,,,,',
',,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,258,,,,,258',
'258,258,258,258,258,,,,258,258,,,,,,,258,,,258,258,258,,,258,258,259',
'259,259,,259,,,,259,259,,,,259,,259,259,259,259,259,259,259,,,,,,259',
'259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259',
'259,,259,259,259,,259,259,,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259',
',,259,259,,,259,,,,,,259,,,,,,,,259,,,,,259,259,259,259,259,259,,,,259',
'259,,,,,,,259,,,259,259,259,,,259,259,260,260,260,,260,,,,260,260,,',
',260,,260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,',
',260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260',
',260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,',
',,,,,,260,,,,,260,260,260,260,260,260,,,,260,260,,,,,,,260,,,260,260',
'260,,,260,260,261,261,261,,261,,,,261,261,,,,261,,261,261,261,261,261',
'261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261',
'261,261,261,261,261,,261,261,261,,261,261,,261,261,261,,,,,,,,,,,,,',
',,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,261,,,,,261,261,261',
'261,261,261,,,,261,261,,,,,,,261,,,261,261,261,,,261,261,262,262,262',
',262,,,,262,262,,,,262,,262,262,262,262,262,262,262,,,,,,262,262,262',
'262,262,262,262,,,262,,,,,,,262,,,262,262,262,262,262,262,262,262,,262',
'262,262,,262,262,,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262',
',,262,,,,,,262,,,,,,,,262,,,,,262,262,262,262,262,262,,,,262,262,,,',
',,,262,,,262,262,262,,,262,262,263,263,263,,263,,,,263,263,,,,263,,263',
'263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263,,,,,',
',263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,,263,263',
'263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,,,263',
',,,,263,263,263,263,263,263,,,,263,263,,,,,,,263,,,263,263,263,,,263',
'263,264,264,264,,264,,,,264,264,,,,264,,264,264,264,264,264,264,264',
',,,,,264,264,264,264,264,264,264,,,264,,,,,,,264,,,264,264,264,264,264',
'264,264,264,,264,264,264,,264,264,,264,264,264,,,,,,,,,,,,,,,,,,,,264',
',,264,,,264,264,,,264,,,,,,264,,,,,,,,264,,,,,264,264,264,264,264,264',
',,,264,264,,,,,,,264,,,264,264,264,,,264,264,265,265,265,,265,,,,265',
'265,,,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265',
'265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,',
'265,265,,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,',
',,,265,,,,,,,,265,,,,,265,265,265,265,265,265,,,,265,265,,,,,,,265,',
',265,265,265,,,265,265,266,266,266,,266,,,,266,266,,,,266,,266,266,266',
'266,266,266,266,,,,,,266,266,266,266,266,266,266,,,266,,,,,,,266,,,266',
'266,266,266,266,266,266,266,,266,266,266,,266,266,,266,266,266,,,,,',
',,,,,,,,,,,,,,266,,,266,,,266,266,,,266,,,,,,266,,,,,,,,266,,,,,266',
'266,266,266,266,266,,,,266,266,,,,,,,266,,,266,266,266,,,266,266,267',
'267,267,,267,,,,267,267,,,,267,,267,267,267,267,267,267,267,,,,,,267',
'267,267,267,267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267',
'267,,267,267,267,,267,267,,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267',
',,267,267,,,267,,,,,,267,,,,,,,,267,,,,,267,267,267,267,267,267,,,,267',
'267,,,,,,,267,,,267,267,267,,,267,267,268,268,268,,268,,,,268,268,,',
',268,,268,268,268,268,268,268,268,,,,,,268,268,268,268,268,268,268,',
',268,,,,,,,268,,,268,268,268,268,268,268,268,268,,268,268,268,,268,268',
',268,268,268,,,,,,,,,,,,,,,,,,,,268,,,268,,,268,268,,,268,,,,,,268,',
',,,,,,268,,,,,268,268,268,268,268,268,,,,268,268,,,,,,,268,,,268,268',
'268,,,268,268,269,269,269,,269,,,,269,269,,,,269,,269,269,269,269,269',
'269,269,,,,,,269,269,269,269,269,269,269,,,269,,,,,,,269,,,269,269,269',
'269,269,269,269,269,,269,269,269,,269,269,,269,269,269,,,,,,,,,,,,,',
',,,,,,269,,,269,,,269,269,,,269,,,,,,269,,,,,,,,269,,,,,269,269,269',
'269,269,269,,,,269,269,,,,,,,269,,,269,269,269,,,269,269,274,274,274',
',274,,,,274,274,,,,274,,274,274,274,274,274,274,274,,,,,,274,274,274',
'274,274,274,274,,,274,,,,,,,274,,,274,274,274,274,274,274,274,274,,274',
'274,274,,274,274,,274,274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274',
',,274,,,,,,274,,,,,,,,274,,,,,274,274,274,274,274,274,,,,274,274,,,',
',,,274,,,274,274,274,,,274,274,282,282,282,,282,,,,282,282,,,,282,,282',
'282,282,282,282,282,282,,,,,,282,282,282,282,282,282,282,,,282,,,,,',
',282,,,282,282,282,282,282,282,282,282,282,282,282,282,,282,282,,282',
'282,282,,,,,,,,,,,,,,,,,,,,282,,,282,,,282,282,,,282,,282,,282,,282',
',,,,,,,282,,,,,282,282,282,282,282,282,,,,282,282,,,,,,,282,,282,282',
'282,282,,,282,282,289,289,289,,289,,,,289,289,,,,289,,289,289,289,289',
'289,289,289,,,,,,289,289,289,289,289,289,289,,,289,,,,,,,289,,,289,289',
'289,289,289,289,289,289,289,289,289,289,,289,289,,289,289,289,,,,,,',
',,,,,,,,,,,,,289,,,289,,,289,289,,,289,,289,,289,,289,,,,,,,,289,,,',
',289,289,289,289,289,289,,,,289,289,,,,,,,289,,289,289,289,289,,,289',
'289,292,292,292,,292,,,,292,292,,,,292,,292,292,292,292,292,292,292',
',,,,,292,292,292,292,292,292,292,,,292,,,,,,,292,,,292,292,292,292,292',
'292,292,292,292,292,292,292,,292,292,,292,292,292,,,,,,,,,,,,,,,,,,',
',292,,,292,,,292,292,,,292,,292,,292,,292,,,,,,,,292,,,,,292,292,292',
'292,292,292,,,,292,292,292,,,,,,292,,292,292,292,292,,,292,292,299,299',
'299,,299,,,,299,299,,,,299,,299,299,299,299,299,299,299,,,,,,299,299',
'299,299,299,299,299,,,299,,,,,,,299,,,299,299,299,299,299,299,299,299',
',299,299,299,,299,299,,299,299,299,,,,,,,,,,,,,,,,,,,,299,,,299,,,299',
'299,,,299,,,,,,299,,,,,,,,299,,,,,299,299,299,299,299,299,,,,299,299',
',,,,,,299,,,299,299,299,,,299,299,301,301,301,,301,,,,301,301,,,,301',
',301,301,301,301,301,301,301,,,,,,301,301,301,301,301,301,301,,,301',
',,,,,,301,,,301,301,301,301,301,301,301,301,,301,301,301,,301,301,,301',
'301,301,,,,,,,,,,,,,,,,,,,,301,,,301,,,301,301,,,301,,,,,,301,,,,,,',
',301,,,,,301,301,301,301,301,301,,,,301,301,,,,,,,301,,,301,301,301',
',,301,301,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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',
'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,695,695,695,,695,,,,695,695,,,,695,,695,695,695',
'695,695,695,695,,,,,,695,695,695,695,695,695,695,,,695,,,,,,,695,,,695',
'695,695,695,695,695,695,695,,695,695,695,,695,695,,695,695,695,,,,,',
',,,,,,,,,,,,,,695,,,695,,,695,695,,,695,,,,,,695,,,,,,,,695,,,,,695',
'695,695,695,695,695,,,,695,695,,,,,,,695,,,695,695,695,,,695,695,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,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,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,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,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,,,741,741,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,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,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,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,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,877',
'877,877,,877,,,,877,877,,,,877,,877,877,877,877,877,877,877,,,,,,877',
'877,877,877,877,877,877,,,877,,,,,,,877,,,877,877,877,877,877,877,877',
'877,,877,877,877,,877,877,,877,877,877,,,,,,,,,,,,,,,,,,,,877,,,877',
',,877,877,,,877,,,,,,877,,,,,,,,877,,,,,877,877,877,877,877,877,,,,877',
'877,,,,,,,877,,,877,877,877,,,877,877,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,911,911,911,,911,,,,911,911,,,,911,,911,911,911,911,911',
'911,911,,,,,,911,911,911,911,911,911,911,,,911,,,,,,,911,,,911,911,911',
'911,911,911,911,911,911,911,911,911,,911,911,,911,911,911,,,,,,,,,,',
',,,,,,,,,911,,,911,,,911,911,,,911,,,,911,,911,,,,,,,,911,,,,,911,911',
'911,911,911,911,,,,911,911,,,,,,,911,,911,911,911,911,,,911,911,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,924,924,924,,924,,,,924,924,,',
',924,,924,924,924,924,924,924,924,,,,,,924,924,924,924,924,924,924,',
',924,,,,,,,924,,,924,924,924,924,924,924,924,924,,924,924,924,,924,924',
',,,924,,,,,,,,,,,,,,,,,,,,924,,,924,,,924,924,,,924,,,,,,,,,,,,,,,,',
',,924,924,924,924,924,924,,,,924,924,,,,,,,924,,,924,924,924,,,924,924',
'933,933,933,,933,,,,933,933,,,,933,,933,933,933,933,933,933,933,,,,',
',933,933,933,933,933,933,933,,,933,,,,,,,933,,,933,933,933,933,933,933',
'933,933,,933,933,933,,933,933,,,,933,,,,,,,,,,,,,,,,,,,,933,,,933,,',
'933,933,,,933,,,,,,,,,,,,,,,,,,,933,933,933,933,933,933,,,,933,933,',
',,,,,933,,,933,933,933,,,933,933,959,959,959,,959,,,,959,959,,,,959',
',959,959,959,959,959,959,959,,,,,,959,959,959,959,959,959,959,,,959',
',,,,,,959,,,959,959,959,959,959,959,959,959,,959,959,959,,959,959,,959',
'959,959,,,,,,,,,,,,,,,,,,,,959,,,959,,,959,959,,,959,,959,,,,959,,,',
',,,,959,,,,,959,959,959,959,959,959,,,,959,959,,,,,,,959,,,959,959,959',
',,959,959,984,984,984,,984,,,,984,984,,,,984,,984,984,984,984,984,984',
'984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984,984,984,984',
'984,984,984,984,,984,984,984,,984,984,,,,984,,,,,,,,,,,,,,,,,,,,984',
',,984,,,984,984,,,984,,,,,,,,,,,,,,,,,,,984,984,984,984,984,984,,,,984',
'984,,,,,,,984,,,984,984,984,,,984,984,1033,1033,1033,,1033,,,,1033,1033',
',,,1033,,1033,1033,1033,1033,1033,1033,1033,,,,,,1033,1033,1033,1033',
'1033,1033,1033,,,1033,,,,,,,1033,,,1033,1033,1033,1033,1033,1033,1033',
'1033,1033,1033,1033,1033,,1033,1033,,1033,1033,1033,,,,,,,,,,,,,,,,',
',,,1033,,,1033,,,1033,1033,,,1033,,1033,,1033,,1033,,,,,,,,1033,,,,',
'1033,1033,1033,1033,1033,1033,,,,1033,1033,,,,,,,1033,,1033,1033,1033',
'1033,30,,1033,1033,,,,30,30,30,,,30,30,30,735,30,735,735,735,735,735',
',,,30,30,30,,,,735,,,,,30,30,,30,30,30,30,30,,,,,,,,,,735,,,,,,,,,735',
'735,735,735,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30,,',
'30,,30,30,,,30,30,,30,735,30,,30,,30,30,30,30,30,30,30,,30,30,30,,,',
',,,,,,,,,30,30,31,30,,30,,,,31,31,31,30,,31,31,31,737,31,737,737,737',
'737,737,,,,,31,31,,,,737,,,,,31,31,,31,31,31,31,31,,,,,,,,,,737,,,,',
',,,,737,737,737,737,,31,31,31,31,31,31,31,31,31,31,31,31,31,31,,,31',
'31,31,,,31,,31,31,,,31,31,,31,737,31,,31,,31,31,31,31,31,31,31,,31,',
'31,,,,,,,,,,,,,31,31,60,31,,31,,,,60,60,60,31,,60,60,60,739,60,739,739',
'739,739,739,,,,,60,60,60,,,739,,,,,60,60,,60,60,60,60,60,,,,,,,,,,739',
',,,,,,,,,,739,739,,60,60,60,60,60,60,60,60,60,60,60,60,60,60,,,60,60',
'60,,,60,,,60,,,60,60,,60,739,60,,60,,60,60,60,60,60,60,60,,60,,60,781',
',781,781,781,781,781,,,,,,60,60,60,60,781,60,455,60,,,,,60,455,455,455',
',,455,455,455,,455,,,,781,,,,,455,455,455,,781,781,781,781,,,,455,455',
',455,455,455,455,455,,,,,,,,,,,,,,,,,,,,,,781,,455,455,455,455,455,455',
'455,455,455,455,455,455,455,455,,,455,455,455,,,455,,455,455,,,455,455',
',455,,455,,455,,455,455,455,455,455,455,455,,455,455,455,,,,,,,,,,,',
',455,455,464,455,,455,,,,464,464,464,455,,464,464,464,782,464,782,782',
'782,782,782,,,,464,464,464,464,,,782,,,,,464,464,,464,464,464,464,464',
',,,,,,,,,782,,,,,,,,,782,782,782,782,,464,464,464,464,464,464,464,464',
'464,464,464,464,464,464,,,464,464,464,,,464,,,464,,,464,464,,464,782',
'464,,464,,464,464,464,464,464,464,464,,464,464,464,824,,824,824,824',
'824,824,,,,,,464,464,464,464,824,464,465,464,,,,,464,465,465,465,,,465',
'465,465,,465,,,,824,,,,,465,465,465,465,824,824,824,824,,,,465,465,',
'465,465,465,465,465,,,,,,,,,,,,,,824,,,,,,,,824,,465,465,465,465,465',
'465,465,465,465,465,465,465,465,465,,,465,465,465,,,465,,,465,,,465',
'465,,465,,465,,465,,465,465,465,465,465,465,465,,465,465,465,941,,941',
'941,941,941,941,,,,,,465,465,465,465,941,465,504,465,,,,,465,504,504',
'504,,,504,504,504,,504,,,,941,,,,,504,504,,,941,941,941,941,,,,504,504',
',504,504,504,504,504,943,,943,943,943,943,943,945,,945,945,945,945,945',
',,943,,,,,941,,945,,,,,,,,,,,504,,,,943,,,504,,,,945,504,504,,943,943',
',,,,,945,945,,,,,,,,,,,504,504,,,,,,,,,,,,,504,943,,,,504,,,945,,,,504',
'11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11',
'11,,11,,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,',
',,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,',
'11,,,,,,,,,11,,,,,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,,,,12,12,12,12,12,12,12,12,12,12,,,,,,12,12',
'12,12,12,12,12,12,12,,,12,,,,,,,,,12,12,,12,12,12,12,12,12,12,,,12,12',
',,,12,12,12,12,,,,,,,,,,,,,,12,12,,12,12,12,12,12,12,12,12,12,12,12',
',,12,12,,,,,,,,,,12,,,,,,,,,12,,,,,12,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,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,,,,,,,,,421,,,,,421,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,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,,,,,,,,,,229,229',
',,229,,,,,,783,,,229,229,783,229,229,229,229,229,229,229,,,229,229,',
',,229,229,229,229,,,,,,229,,,,,,,,229,229,,229,229,229,229,229,229,229',
'229,229,229,229,,,229,,,,,,,,,,230,230,,,230,,,,,,229,,,230,230,229',
'230,230,230,230,230,230,230,,,230,230,,,,230,230,230,230,,,,,,230,,',
',,,,,230,230,,230,230,230,230,230,230,230,230,230,230,230,,947,230,947',
'947,947,947,947,,,,,278,278,,,278,947,,,,,230,,,278,278,230,278,278',
'278,278,278,278,278,,,278,278,947,,,278,278,278,278,,,,,947,947,,,,',
',,,278,278,,278,278,278,278,278,278,278,278,278,278,278,,,278,,,,,,',
',,947,472,472,,,472,,,,,,278,,,472,472,278,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',
',,473,,,,,,,,,,537,537,,,537,,,,,,473,,,537,537,473,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,,,,,,,,,,538,538,,,538',
',,,,,537,,,538,538,537,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,,,,,,,,,,547,547,,,547,,,,,,538,,,547,547,538,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,,,,,,,,',
',548,548,,,548,,,,,,547,,,548,548,547,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,,,,,,,,,,608,608,,,608,,,,,,548,,',
'608,608,548,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,,,,,,,,,,657,657,,,657',
',,,,,609,,,657,657,609,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,,,,,,,,,,658,658,,,658,,,,,,657,,,658,658,657,658',
'658,658,658,658,658,658,,,658,658,,,,658,658,658,658,,,,,,658,,,,,,',
',658,658,,658,658,658,658,658,658,658,658,658,658,658,,,658,,,,,,,,',
',772,772,,,772,,,,,,658,,,772,772,658,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,,,,,,,,,,773,773,,,773,,,,,,772,,',
'773,773,772,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,,,,,,,,,,1029,1029,,,1029,,,,,,773,,,1029,1029,773,1029,1029,1029',
'1029,1029,1029,1029,,,1029,1029,,,,1029,1029,1029,1029,,,,,,1029,,,',
',,,,1029,1029,,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029',
',,1029,,,,,,,,,,1034,1034,,,1034,,,,,,1029,,,1034,1034,1029,1034,1034',
'1034,1034,1034,1034,1034,,,1034,1034,,,,1034,1034,1034,1034,,,,,,1034',
',,,,,,,1034,1034,,1034,1034,1034,1034,1034,1034,1034,1034,1034,1034',
'1034,,,1034,,,,,,,,,,1035,1035,,,1035,,,,,,1034,,,1035,1035,1034,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,,975,1035,975,975,975,975,975,978,,978,978,978,978,978,,,975',
',,,,1035,,978,,980,1035,980,980,980,980,980,,,,,,,975,,,980,,,,978,',
'975,975,975,975,,,,978,978,978,978,,,,,1039,980,1039,1039,1039,1039',
'1039,,,,,,980,980,,,1039,,,,1053,975,1053,1053,1053,1053,1053,1055,978',
'1055,1055,1055,1055,1055,,,1053,,1039,,,,,1055,,,980,,,1039,1039,,,',
',,,1057,1053,1057,1057,1057,1057,1057,,1055,,1053,1053,1053,1053,,,1057',
',,1055,1055,,,,,1059,1039,1059,1059,1059,1059,1059,,,,,,,1057,,,1059',
',,,,1053,,,1057,1057,,1082,1055,1082,1082,1082,1082,1082,,,,,1059,,',
',,1082,,,,,,1059,1059,,,,,,,,1057,,,,,,,1082,,,,,,,,,,,1082,1082,,,',
',,1059,,,,,,,,,,,,,,,,,,,,,,,,,,,1082' ]
        racc_action_check = arr = ::Array.new(26056, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

racc_action_pointer = [
   nil,    10,  1043,    55,   nil,   -93,   nil,   nil,  5131,   602,
   nil, 23546, 23684,   -47,   nil,    35,    52,    -2,   141,   437,
   -43,   nil,   -73,  5271,  1325,   269,   nil,    99,   nil,   157,
 22629, 22757,  5411,  5551,  5691,   nil,  1184,  5831,  5971,   nil,
   184,   105,   169,   275,   127,  6111,  6251,   417,  6391,   224,
   528,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
 22885,   nil,  6531,   nil,   nil,   -19,   nil,  6671,  6811,   nil,
   nil,  6951,  7091,   273,   nil, 23822,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   -94,   nil,   nil,   nil,   nil,   nil,   nil,   246,
   248,   274,   280, 23960,   nil,   nil,   nil,   nil,   nil,   nil,
     0,   nil,   nil,   132,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  7231,   nil,   nil,   nil,
   nil,  7371,  7511,  7651,  7791,  7931,   302,   nil,     1,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   295,   nil,  1325,  8071,  8211,  8351,  8491,  8631,  8771, 24447,
 24520,   nil,  8911,  9051,  9191,   nil,   nil,   577,   131,   159,
   382,   223,   300,   371,   nil,  9331,  1466,   383,  9471,  9611,
  9751,  9891, 10031, 10171, 10311, 10451, 10591, 10731, 10871, 11011,
 11151, 11291, 11431, 11571, 11711, 11851, 11991, 12131, 12271, 12411,
   nil,   nil,   nil,   nil, 12551,   nil,   nil,   nil, 24593,   nil,
   nil,   391, 12691,   nil,   nil,   422,   nil,   nil,   nil, 12831,
   nil,   nil, 12971,   nil,  1466,   nil,   410,   440,   nil, 13111,
   490, 13251,   nil, 13391, 13531,   nil,   nil,   185,   nil,   nil,
 13671,   734,   nil,   458,  1607,   484,   521,   487, 13811,  1748,
   592,   660,   787,   565,   792,   nil,   564,   541,   -10,   nil,
   nil,   nil,   585,   247,   556, 13951,   nil,   231,   620,   820,
   nil,   623, 14091,   nil, 14231,  1889,  1310,   571, 14371, 14511,
   nil,   nil,   583,   420,   -11,   -10, 14651,  2030,  2171,   411,
   685,   573,     5,     7,   822,   661,    22,   694,   nil,   nil,
 14791,   nil, 14931,   113,   147,   241,   318,   345,   400,   424,
   465,   473,   nil,   487,   nil,   nil,   nil,   nil,   nil,   299,
   nil,   304,   nil,   130,   nil,   610,   323,   nil,   619,   nil,
   621,   -57,   nil,   625,   -41,   nil,   326,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil, 24098,   nil,   nil,   nil,   nil,   639,   nil,   nil,   633,
 15071,   635,   nil,   nil,   624,   nil,   823,   238,   nil,   nil,
   nil,  1043,   nil,   nil,   nil,   nil,   nil,  1184,   662,   nil,
   nil,   660,   665,   363,   365, 23017,   nil,   nil,   nil,   264,
   392,   706,   nil,   nil, 23145, 23277,   nil,   nil,   nil,   -16,
   nil,   716, 24666, 24739, 15211,   241, 15351, 15491, 15631,  2171,
  2312,   -42,   450,   744,   750,   751,   752,  3722,  3863,  3464,
   862,  2453,  2594,  2735,  2876,  3017,   477,   609,  3158,  3299,
  1607,  3440,   813,   nil, 23409,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   703,   707,   nil,   nil, 15771,   nil,   nil,
 15911,   nil, 16051,   nil,   nil,   nil,   nil, 16191,  1451,   709,
   712,   nil,   nil,   714, 16331,   719, 16471, 24812, 24885,   824,
   757,   nil, 16611,   719,   nil,   763, 16751, 24958, 25031,  3581,
  1748, 16891,   866,   867,   753,   nil,   nil,   153,   198,   785,
   769,   nil,   387,   796,   nil,   715,   nil,   765,   767,   nil,
   770,   774,   775,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   763,   520,   nil,   nil, 17031,   nil,   nil,   nil,   872,   nil,
   nil,   nil,   873,   nil,   nil,   885,  2312,   929,   nil,  2453,
    55,   933,   935,   941,   949,   nil,   nil, 17171, 25104, 25177,
    25,   nil,   172,   205,    41,   nil,   862,   nil,   853, 17311,
   nil,   872,   nil,   nil,   nil, 17451,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   164,   nil,   nil,
   359,   nil,   nil,   nil,   834,   nil,   nil,   847,   nil,  2594,
   nil, 24236,   nil,   869, 17591, 17731, 17871, 25250, 25323, 18011,
   397,   907, 18151, 18291, 18431, 18571,   907,   nil,   nil,   nil,
 18711, 18851,   910,   nil,   nil,   nil,   298,   310,   520,   652,
   882,   884,   nil,   105,   987,    73,   nil,   909,   nil,  1018,
   nil,   nil,   899,   nil,   941, 18991,   nil,   nil,   nil,  -111,
 19131,   903,   nil,   911,    21,    23,   950,   267,   915,   961,
   927, 19271, 19411,   990,    27,   283,   nil, 19551,   nil,   nil,
   nil,   nil, 19691,   nil,   nil, 19831,   nil,   nil,   nil,    22,
   941,   188,   nil,   nil,   485, 22593,   nil, 22721,   nil, 22849,
   nil, 19971,   nil,   652,   nil,   940,   358,   944,   nil,   nil,
   nil,   nil,   643,   nil,  1057,   nil,   nil,   nil,   nil,   nil,
  1070,   nil, 20111,   954,    28,    32,    93,   152,  2735,   nil,
   865,   nil, 25396, 25469, 20251,   nil,   nil,   nil,   674,  2876,
  3017, 22948, 23109, 24374,    53,   977,  3158,   nil,   nil,   193,
   nil,   nil,   nil,   969,   nil,   954, 20391,   958,   331,   364,
   784,   912,  1889, 20531,   nil,   956,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil, 20671, 20811, 20951, 21091,
   367, 21231,   nil,   nil, 23208,   nil,  3299,   nil,   nil,   986,
   nil,   112,   nil,   nil,   nil,   974,   268,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  3440,   nil,   977,  1037,   nil,   nil,
   412,   nil,  3581,  3722,   999,  1008,  1009,   nil,   nil,   nil,
  1014,  1026,   nil,  1027,  1036,   nil,  1037,   nil,   nil,  1043,
   748,  1042,   513,   nil,  1165,   nil,   nil, 21371,   nil,  3863,
  1167,   nil,   nil,    -7,    34,  1168,   304,  1043,   nil,  1055,
  4004, 21511,   453,  1173,   nil,  1065,   504,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  1054,   nil,   nil,  1067,   368,   nil,
   nil, 21651, 21791,  2030,  1068,  1069,   nil,  1079,  1081,  1082,
   nil,  1103,  1094,  1078, 21931,   nil,   nil,   nil,   nil,  4145,
  4286,   nil,    -8, 22071,   nil,   nil,  1110,  1215,   921,   nil,
   nil, 23340,   nil, 23402,   nil, 23409,   nil, 24582,   nil,   nil,
   nil,   nil,   385,   645,  1096,   nil,    -1,   nil,   nil, 22211,
  4427,   nil,   nil,  1217,   543,   nil,   nil,  1231,   nil,   nil,
  1154,   nil,   220,   nil,   nil, 25750,   nil,   nil, 25757,   nil,
 25775,   nil,   nil,  1138, 22351,   916,  1210,   nil,  1258,  4568,
   948,   974,  1046,  1216,  1079,   nil,   nil,   nil,   426,   nil,
   nil,   nil,  1143,  1145,  1146,  1150,  1152,   755,  1155,   777,
  4709,   nil,   180,   nil,   nil,  4850,   nil,  4991,  1167,   nil,
   nil,  1168,  1177,  1178,  1183,   nil,  1184,   nil,  1115, 25542,
   nil,   nil,  1308, 22491, 25615, 25688,  1184,   nil,  1311, 25812,
   nil,   nil,   nil,   nil,   785,  1188,   773,   nil,   nil,   nil,
  1309,  1313,   nil, 25832,   nil, 25839,   nil, 25869,   nil, 25894,
   nil,   nil,  1233,  1242,   nil,  1207,    11,    36,   123,  1220,
   nil,  1205,  1208,   nil,   nil,   nil,  1209,  1210,  1212,  1232,
    39,   nil, 25921,   nil,   nil,   nil,   nil,  1238,   nil ]

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

clist = [
'6,290,233,448,382,350,129,296,296,296,19,277,317,519,4,604,19,354,355',
'137,221,359,780,553,338,295,295,295,229,344,715,237,408,126,145,145',
'279,334,432,433,237,237,237,862,19,322,322,357,358,147,147,596,599,439',
'142,142,439,331,331,566,445,439,9,508,513,466,573,125,9,696,19,693,129',
'313,693,237,237,543,874,237,364,414,415,416,417,353,353,732,733,353',
'841,880,331,390,502,392,394,397,637,402,405,392,687,747,771,315,951',
'660,297,297,297,865,429,442,1025,281,288,291,142,918,855,826,346,736',
'738,740,1,293,305,306,721,724,236,360,19,728,2,419,391,237,237,237,237',
'19,406,130,142,999,1001,353,353,353,353,618,136,620,954,649,455,461',
'840,930,698,220,369,428,421,627,519,755,881,634,278,686,638,651,342',
'559,685,386,560,351,367,775,383,622,9,345,521,1025,523,347,524,525,554',
'418,348,349,431,431,456,370,890,619,892,1015,372,504,779,621,967,783',
'696,970,921,920,693,693,922,998,564,295,851,352,729,511,449,512,831',
'683,19,237,436,237,237,436,237,1008,563,1047,436,237,237,443,444,951',
'472,1070,1001,680,762,468,469,847,19,862,510,296,760,932,388,389,888',
'412,393,869,396,296,640,929,1021,399,730,465,696,295,701,829,401,573',
'404,899,295,862,710,295,785,449,786,407,237,1045,891,860,518,518,857',
'237,1019,625,237,,,290,,,600,540,129,,544,703,983,541,,865,,533,19,653',
'316,,19,557,,,322,19,1072,,689,537,427,438,,527,438,,331,820,,438,789',
'322,,,556,561,547,1048,,313,,19,,331,313,,297,,129,,836,1031,237,19',
'19,862,297,526,528,1017,1073,608,353,,940,509,616,861,616,863,763,529',
',,,514,535,,331,,331,,,,,641,,446,,455,461,,467,,694,,833,563,,697,',
'942,944,788,946,948,638,949,,603,884,935,558,562,668,,661,650,,797,673',
',973,974,,,,,,,835,456,145,657,,,810,518,518,,,667,815,,908,893,894',
'147,696,,,,142,693,706,295,919,,,,449,748,,668,706,,,,681,,237,,439',
',,,895,896,,,,439,439,573,573,806,808,439,439,,667,811,813,,426,,456',
'544,1064,,,,,,465,544,456,,,833,,,,,,,,295,316,937,848,,449,19,,706',
'1052,,,666,322,795,237,,,672,962,889,322,694,563,,331,1040,1041,1042',
'1043,237,,,331,,,,,788,963,714,,,,,,,,,,456,960,465,,,834,1002,455,461',
',768,684,465,,692,,,,,316,,295,756,,316,19,449,846,19,,,,694,,,563,237',
'777,,,1022,,,1023,,1081,828,,237,456,989,868,,439,237,,,909,778,,,,601',
'602,784,,,,6,467,295,446,442,465,1010,449,,,19,,794,661,793,,436,237',
',,1049,,,827,,436,436,145,544,,668,436,436,673,822,,661,,907,837,,,147',
'518,,431,1050,142,1051,,1076,,,,465,706,,667,,,,322,9,854,,897,845,580',
'849,,,,322,331,,,,1080,,29,,,,,331,29,,,,,883,805,,,,,661,456,,,29,',
',878,,878,,,,29,29,29,,29,977,979,981,438,,,295,,,,,449,438,438,,19',
'661,,438,438,,237,,,,29,19,19,,,29,29,,19,29,,,850,,563,,,518,854,,',
',1065,,,436,,,,465,,,,,,,,,,,142,956,718,822,,,,,19,,807,809,,,,964',
'812,814,,934,,,1011,,29,,19,,,29,29,29,29,29,19,19,,,,1054,1056,1058',
'1060,661,1061,,,,,,758,759,,761,752,,,754,838,237,,19,,,864,,866,965',
',353,,969,19,237,,856,854,,,,,,,353,,,438,,,976,976,976,,,1083,1084',
'1085,1086,,,,580,,,,1088,985,,,,,19,19,,,992,,742,331,,29,29,29,29,29',
'29,29,331,,,29,29,29,,,,,706,,1014,,,19,,29,,,,,910,,917,1037,,,,,,',
',845,,807,809,814,812,1028,,915,,16,19,,,,1034,16,,331,456,29,,,,878',
',,29,,,29,,19,976,976,976,976,19,976,19,295,,,,16,449,,,29,882,,,29',
',,237,,29,878,661,,,,,,,885,,,,16,,32,,,,,,32,,368,,,29,904,,465,,976',
'976,976,976,465,32,29,29,29,470,910,976,,,32,32,32,,32,,1003,,1004,580',
'1005,580,,,,,,742,858,,871,858,927,,,,,,,,32,,16,,,32,32,,,32,931,16',
',1024,,1026,,,936,,,,,515,1018,580,580,915,,,915,955,915,,,,,958,,,',
',961,,,957,530,,,,966,,,,,,,,,,,,,,32,,,,923,32,32,32,32,32,1071,,,',
'555,,29,916,,,,,,,1077,,1078,,1079,,,987,988,,16,,434,,,434,,915,,915',
'434,915,,915,,,742,,742,1087,,,1013,,16,,1016,,1012,,,,,,,29,915,,,',
',18,,,29,,,18,,,,,,,,,,1032,,29,,,32,32,32,32,32,32,32,924,,,32,32,32',
'18,,,1046,,,,,,,,32,580,16,,,,16,,,,,16,1006,742,,18,674,,29,,,29,,1074',
'1075,,,,,29,,,,,,923,32,16,923,,,29,,32,,858,32,29,916,16,16,916,,916',
',,,,,,690,691,,,32,,,742,32,742,,29,,32,,,699,29,29,18,,,702,,,,29,29',
'18,,,,29,29,,,,,,32,,720,,,742,,,,,,32,32,32,923,20,,,,,,20,,,,,,916',
',916,,916,924,916,,924,,,924,,924,,,,,,,,,20,324,324,,,,,916,,,,,,,',
',,,,,,,,,,,20,18,,18,,,18,,,,366,18,,,,,29,,,,,,29,,,18,,29,29,,,,,',
'29,,,,924,,924,,924,,924,16,,,,,,29,,,32,,,,,,,,,,20,,,924,,,,,,20,29',
',,,,,,,,,,,,839,,18,,,29,18,,,,,18,,29,29,,,,,,32,,,,,,,16,,32,16,,',
'873,,,,18,29,,29,,,,32,,,,,18,18,29,29,,,,,,,,,,,,,,,,,,898,,,20,,437',
',,437,,16,,,437,,,434,,,32,29,29,32,,,434,434,20,,,32,434,434,,,,,,',
',,,32,,,,,,32,,,29,,,,,,,,,,,,,,,,,,,,939,32,,,,,,32,32,29,,,,,950,',
'32,32,,,20,,32,32,20,,,,324,20,29,,,,,29,,29,,,968,,,,,324,,,,,,,,29',
',20,,,16,,,,,,,,,20,20,16,16,,,,,,16,,18,,617,,617,,,,,,,,,,,434,,,',
',,,,41,,,,,,41,,,,,,,,,16,,,,32,,,,,,32,,,,,32,32,,16,41,320,320,32',
',,,16,16,,,,18,,,18,,,,,32,,,,,,41,,,,,,,,16,,362,,,384,,,,32,,16,,',
',,,,,,,,,,,,,32,,,,18,,,,32,32,18,,,,,,,,,18,18,,,16,16,18,18,995,,41',
',,,32,,32,,,41,,,20,,,,,32,32,324,,,,,,16,,324,,,,,,,,,,,,,,,,,,,,,',
',,,,,16,,32,32,,,,,,,,,,,,,,,,,,16,,,,,16,20,16,,20,,,32,,,,,,,18,,41',
',,,,,,,,18,18,,,,,,18,,,,32,,,,41,,,,,,,,,18,,,,,20,,,32,,,437,,32,',
'32,,,,,437,437,,18,,,437,437,,,,32,,,42,,,,,,42,18,,,,,,,,18,18,,,,',
'41,324,,,41,,,,320,41,,,324,42,321,321,,,,,,18,,,,320,,,,,,,18,,,41',
',,,42,,,,,,,,41,41,363,,,385,,,,,,,,384,,384,,,,,,,20,,18,18,,,,,,,',
'20,20,,,,,903,20,,,,,,,,,,,,,,,18,42,437,,,,,,,,42,,,,,,,,,,,,,,,20',
',,,18,,,,,,,,,,,,,,20,,,,,,,18,20,20,,,18,,18,,,,,,,,,,,,,,,,,,,,,20',
',,,,,,,,,,20,,,,,,,,42,,,,,,,,,,,,,,,,,,41,,,,,,42,320,617,,,,,20,20',
'320,,994,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,,,,,,,,,,,,,,,,,617,41',
'42,,41,20,42,,,,321,42,,,,,,,,,,,,,,,20,321,,,,20,,20,,,,42,,,,,,,,',
',,,42,42,,,,41,,,,,,,,385,,385,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,320,,,,,,,,,,,320,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,41,,,,,,,,,,,41,41,,,,,,41,,,,,,,,,,,,,,,,244,,,,,,,,,294,294',
'294,42,,,,,,,321,,,340,341,41,343,,321,,,,,,,,,,,,,,,41,,,,,,,,41,41',
',,,,,,,,,,,,,,,,,,,,,,,,,41,,,,42,,,42,,,,41,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,384,,,,,41,41,,,990,,,42,,,,,,,,,,,,,,,,,,,,,,,,41,,,,,,,',
',,,,,,,,,,,,,,,,384,,,321,,41,,,,,,,,,321,,,,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,,42,,,,,,294,,,',
',42,42,294,,,294,,42,,,,,294,,294,,294,294,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,42,,,,,,,,549,,550,,,,294,294,,,42,,,,,,,,42,42,,,,,,,,,,,,,,,,',
',,,,,,,,,42,,,,,,,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,385,,,',
',42,42,,,991,,,,,,,,,,,,,,,,,,,,,,,,,,,42,,,,,,294,,447,447,447,,,,',
',,,,,,,,,385,,,,,42,,,,,,,,,,,,,,,,,,,,294,42,,294,,294,42,,42,,,,,',
',,,,,294,,,,,,,,,,713,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,',
',,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294',
'447,294,,,802,,,294,294,447,447,,,,,447,447,,,,,,,,,,,,,,,,,,,,,,,,294',
',,,,,,,,,,,,,,,,447,,,,,294,,,,,294,,,294,,,,,,,,,,,,,,,,294,,,,,,,',
',,,,,,,,,,,,,294,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,447,',
',,,,,,,,,,,447,447,447,447,,913,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,447,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,294' ]
        racc_goto_table = arr = ::Array.new(3616, 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,87,39,35,69,104,120,84,84,84,34,173,62,89,2,115,34,23,23,21,21,23',
'123,12,77,45,45,45,37,39,15,34,69,8,73,73,37,63,28,28,34,34,34,210,34',
'34,34,41,41,74,74,108,108,24,70,70,24,79,79,172,32,24,9,51,35,32,205',
'5,9,220,34,90,120,58,90,34,34,64,109,34,34,23,23,23,23,30,30,155,155',
'30,17,111,79,6,174,6,6,6,194,6,6,6,52,150,67,59,148,36,86,86,86,215',
'82,82,216,50,50,50,70,160,164,162,9,208,208,208,1,57,57,57,85,85,26',
'5,34,85,3,10,191,34,34,34,34,34,191,7,70,166,167,30,30,30,30,68,11,68',
'151,13,49,49,16,18,20,22,25,29,31,195,89,42,44,195,48,54,195,75,80,83',
'88,100,103,106,117,119,124,125,9,126,82,216,82,127,82,82,128,9,129,130',
'84,84,87,131,132,133,134,135,136,49,137,138,139,140,220,141,164,152',
'90,90,158,165,168,45,169,170,171,177,6,178,180,182,34,34,34,34,34,34',
'34,151,82,183,34,34,34,30,30,148,37,166,167,35,184,30,30,185,34,210',
'87,84,115,186,189,190,67,7,192,150,193,84,196,162,160,197,172,70,220',
'45,64,52,198,205,199,200,45,210,64,45,201,6,202,203,34,151,204,209,6',
'6,212,34,213,219,34,,,87,,,23,39,120,,62,35,164,77,,215,,63,34,82,14',
',34,84,,,34,34,151,,174,37,26,26,,8,26,,79,36,,26,194,34,,,6,6,37,111',
',58,,34,,79,58,,86,,120,,36,17,34,34,34,210,86,5,9,123,109,37,30,,155',
'57,34,161,34,161,35,59,,,,57,59,,79,,79,,,,,6,,76,,49,49,,76,,82,,89',
'82,,82,,208,208,195,208,208,195,208,,5,36,85,86,86,87,,39,21,,35,87',
',155,155,,,,,,,64,87,73,37,,,51,6,6,,,6,51,,36,12,12,74,220,,,,70,90',
'49,45,161,,,,6,82,,87,49,,,,39,,34,,24,,,,172,172,,,,24,24,205,205,32',
'32,24,24,,6,32,32,,14,,87,62,15,,,,,,70,62,87,,,89,,,,,,,,45,14,12,28',
',6,34,,49,155,,,50,34,82,34,,,50,36,35,34,82,82,,79,208,208,208,208',
'34,,,79,,,,,195,12,30,,,,,,,,,,87,108,70,,,82,161,49,49,,41,50,70,,86',
',,,,14,,45,120,,14,34,6,82,34,,,,82,,,82,34,6,,,161,,,161,,208,104,',
'34,87,108,82,,24,34,,,32,30,,,,14,14,30,,,,6,76,45,76,82,70,108,6,,',
'34,,21,39,2,,34,34,,,115,,,173,,34,34,73,62,,87,34,34,87,6,,39,,82,62',
',,74,6,,84,12,70,12,,161,,,,70,49,,6,,,,34,9,39,,69,6,149,6,,,,34,79',
',,,36,,53,,,,,79,53,,,,,84,86,,,,,39,87,,,53,,,6,,6,,,,53,53,53,,53',
'157,157,157,26,,,45,,,,,6,26,26,,34,39,,26,26,,34,,,,53,34,34,,,53,53',
',34,53,,,86,,82,,,6,39,,,,35,,,34,,,,70,,,,,,,,,,,70,23,102,6,,,,,34',
',76,76,,,,23,76,76,,6,,,82,,53,,34,,,53,53,53,53,53,34,34,,,,157,157',
'157,157,39,157,,,,,,102,102,,102,14,,,14,76,34,,34,,,159,,159,120,,30',
',120,34,34,,154,39,,,,,,,30,,,26,,,6,6,6,,,157,157,157,157,,,,149,,',
',157,34,,,,,34,34,,,34,,149,79,,53,53,53,53,53,53,53,79,,,53,53,53,',
',,,49,,120,,,34,,53,,,,,76,,159,39,,,,,,,,6,,76,76,76,76,34,,154,,27',
'34,,,,37,27,,79,87,53,,,,6,,,53,,,53,,34,6,6,6,6,34,6,34,45,,,,27,6',
',,53,102,,,53,,,34,,53,6,39,,,,,,,14,,,,27,,56,,,,,,56,,27,,,53,14,',
'70,,6,6,6,6,70,56,53,53,53,60,76,6,,,56,56,56,,56,,159,,159,149,159',
'149,,,,,,149,156,,149,156,14,,,,,,,,56,,27,,,56,56,,,56,14,27,,159,',
'159,,,14,,,,,60,154,149,149,154,,,154,102,154,,,,,102,,,,,102,,,14,60',
',,,102,,,,,,,,,,,,,,56,,,,149,56,56,56,56,56,159,,,,60,,53,156,,,,,',
',159,,159,,159,,,14,14,,27,,27,,,27,,154,,154,27,154,,154,,,149,,149',
'159,,,102,,27,,102,,14,,,,,,,53,154,,,,,33,,,53,,,33,,,,,,,,,,14,,53',
',,56,56,56,56,56,56,56,211,,,56,56,56,33,,,14,,,,,,,,56,149,27,,,,27',
',,,,27,149,149,,33,60,,53,,,53,,102,102,,,,,53,,,,,,149,56,27,149,,',
'53,,56,,156,56,53,156,27,27,156,,156,,,,,,,60,60,,,56,,,149,56,149,',
'53,,56,,,60,53,53,33,,,60,,,,53,53,33,,,,53,53,,,,,,56,,60,,,149,,,',
',,56,56,56,149,38,,,,,,38,,,,,,156,,156,,156,211,156,,211,,,211,,211',
',,,,,,,,38,38,38,,,,,156,,,,,,,,,,,,,,,,,,,38,33,,33,,,33,,,,38,33,',
',,,53,,,,,,53,,,33,,53,53,,,,,,53,,,,211,,211,,211,,211,27,,,,,,53,',
',56,,,,,,,,,,38,,,211,,,,,,38,53,,,,,,,,,,,,,60,,33,,,53,33,,,,,33,',
'53,53,,,,,,56,,,,,,,27,,56,27,,,60,,,,33,53,,53,,,,56,,,,,33,33,53,53',
',,,,,,,,,,,,,,,,,60,,,38,,38,,,38,,27,,,38,,,27,,,56,53,53,56,,,27,27',
'38,,,56,27,27,,,,,,,,,,56,,,,,,56,,,53,,,,,,,,,,,,,,,,,,,,60,56,,,,',
',56,56,53,,,,,60,,56,56,,,38,,56,56,38,,,,38,38,53,,,,,53,,53,,,60,',
',,,38,,,,,,,,53,,38,,,27,,,,,,,,,38,38,27,27,,,,,,27,,33,,38,,38,,,',
',,,,,,,27,,,,,,,,65,,,,,,65,,,,,,,,,27,,,,56,,,,,,56,,,,,56,56,,27,65',
'65,65,56,,,,27,27,,,,33,,,33,,,,,56,,,,,,65,,,,,,,,27,,65,,,65,,,,56',
',27,,,,,,,,,,,,,,,,56,,,,33,,,,56,56,33,,,,,,,,,33,33,,,27,27,33,33',
'27,,65,,,,56,,56,,,65,,,38,,,,,56,56,38,,,,,,27,,38,,,,,,,,,,,,,,,,',
',,,,,,,,,,27,,56,56,,,,,,,,,,,,,,,,,,27,,,,,27,38,27,,38,,,56,,,,,,',
'33,,65,,,,,,,,,33,33,,,,,,33,,,,56,,,,65,,,,,,,,,33,,,,,38,,,56,,,38',
',56,,56,,,,,38,38,,33,,,38,38,,,,56,,,66,,,,,,66,33,,,,,,,,33,33,,,',
',65,38,,,65,,,,65,65,,,38,66,66,66,,,,,,33,,,,65,,,,,,,33,,,65,,,,66',
',,,,,,,65,65,66,,,66,,,,,,,,65,,65,,,,,,,38,,33,33,,,,,,,,38,38,,,,',
'38,38,,,,,,,,,,,,,,,33,66,38,,,,,,,,66,,,,,,,,,,,,,,,38,,,,33,,,,,,',
',,,,,,,38,,,,,,,33,38,38,,,33,,33,,,,,,,,,,,,,,,,,,,,,38,,,,,,,,,,,38',
',,,,,,,66,,,,,,,,,,,,,,,,,,65,,,,,,66,65,38,,,,,38,38,65,,38,,,,,,,',
',,,,,,,,,,,,,,,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,38,65,66,,65,38,66,,,,66',
'66,,,,,,,,,,,,,,,38,66,,,,38,,38,,,,66,,,,,,,,,,,,66,66,,,,65,,,,,,',
',66,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,65,,,,,,,,,,,65,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,65,,,,,,,,,,,65',
'65,,,,,,65,,,,,,,,,,,,,,,,40,,,,,,,,,40,40,40,66,,,,,,,66,,,40,40,65',
'40,,66,,,,,,,,,,,,,,,65,,,,,,,,65,65,,,,,,,,,,,,,,,,,,,,,,,,,,65,,,',
'66,,,66,,,,65,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,65,,,,,65,65,,,65,,,66',
',,,,,,,,,,,,,,,,,,,,,,,65,,,,,,,,,,,,,,,,,,,,,,,,65,,,66,,65,,,,,,,',
',66,,,,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,,66,,,,,,40,',
',,,66,66,40,,,40,,66,,,,,40,,40,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'66,,,,,,,,40,,40,,,,40,40,,,66,,,,,,,,66,66,,,,,,,,,,,,,,,,,,,,,,,,',
',66,,,,,,,,,,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,,66,,,,,66,66,,,66',
',,,,,,,,,,,,,,,,,,,,,,,,,,66,,,,,,40,,40,40,40,,,,,,,,,,,,,,66,,,,,66',
',,,,,,,,,,,,,,,,,,,40,66,,40,,40,66,,66,,,,,,,,,,,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' ]
        racc_goto_check = arr = ::Array.new(3616, 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,   126,    12,   136,   nil,    62,    -2,   137,    28,    60,
     1,   144,  -322,  -263,   284,  -522,  -555,  -625,  -679,   nil,
  -365,     8,   151,   -50,  -171,    92,   109,   994,  -185,   -58,
    18,    29,  -167,  1255,     8,  -225,  -341,     9,  1414,   -20,
  2582,   -22,  -431,   nil,  -585,    -7,   nil,   nil,   145,   -71,
    86,  -218,  -409,   724,  -334,   nil,  1056,    95,    37,    69,
   849,   nil,   -25,    -1,  -258,  1803,  2090,  -510,  -217,   -71,
    43,   nil,   nil,    23,    38,  -250,   172,   -20,   nil,    20,
   129,   nil,  -111,  -171,   -25,  -427,    76,   -29,  -326,  -284,
  -446,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   104,   nil,   275,  -169,   -60,   nil,   115,   nil,  -303,  -674,
   nil,  -663,   nil,   nil,   nil,  -345,   nil,   110,   nil,  -435,
     1,   nil,   nil,  -599,   109,  -198,   126,   129,  -152,   133,
   133,   128,  -573,  -168,  -574,  -760,   132,  -412,  -173,  -684,
  -411,  -684,   nil,   nil,   nil,   nil,   nil,   nil,  -764,   362,
  -478,  -716,  -609,   nil,   170,  -480,   375,  -156,  -606,   153,
  -705,  -356,  -562,   nil,  -610,  -719,  -791,  -790,  -132,  -507,
   157,  -340,  -293,   -14,  -182,   nil,   nil,   -61,   -60,   nil,
  -460,   nil,  -274,  -773,  -356,  -464,  -588,   nil,   nil,   168,
   166,    41,   166,   167,  -298,  -222,  -131,   171,   177,   178,
  -504,  -343,  -342,   186,  -484,  -286,   nil,   nil,  -447,  -442,
  -692,   461,  -435,  -674,   nil,  -626,  -864,   nil,   nil,   -88,
  -451 ]

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,    51,    52,    53,    54,    55,    56,    57,    58,
    59,    61,   nil,   nil,   283,    65,   nil,    67,   nil,   nil,
    68,   876,    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,   287,   276,   717,   844,   606,   877,   744,   867,
   nil,   745,  1020,   914,   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,   859,   782,   567,   nil,   571,
   582,   584,   585,   925,   588,   589,   926,   592,   595,   nil,
   302 ]

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

racc_reduce_n = 648

racc_shift_n = 1089

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,
  :tBDOT2 => 144,
  :tBDOT3 => 145 }

racc_nt_base = 146

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",
  "tBDOT2",
  "tBDOT3",
  "$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",
  "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",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "@27",
  "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",
  "@28",
  "@29",
  "f_args",
  "do_block",
  "do_body",
  "operation3",
  "@30",
  "@31",
  "@32",
  "@33",
  "@34",
  "@35",
  "@36",
  "cases",
  "@37",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "@38",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@39",
  "@40",
  "sym",
  "@41",
  "args_tail",
  "@42",
  "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",
  "@43",
  "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

                      lexer.cond.pop # local_pop
                      lexer.cmdarg.pop

    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)
                      lhs1, _, lhs2, op, rhs = val

                      result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)

    result
end

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

                      result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)

    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)
                      # parse26.y line 2200

                      # If call_args starts with a open paren '(' or
                      # '[', look-ahead reading of the letters calls
                      # CMDARG_PUSH(0), but the push must be done
                      # after CMDARG_PUSH(1). So this code makes them
                      # consistent by first cancelling the premature
                      # CMDARG_PUSH(0), doing CMDARG_PUSH(1), and
                      # finally redoing CMDARG_PUSH(0).

                      result = yychar = self.last_token_type.first
                      lookahead = [:tLPAREN, :tLPAREN_ARG, :tLPAREN2, :tLBRACK, :tLBRACK2].include?(yychar)
                      lexer.cmdarg.pop if lookahead
                      lexer.cmdarg.push true
                      lexer.cmdarg.push false if lookahead

    result
end

def _reduce_272(val, _values, result)
                      yychar, args = val

                      # call_args can be followed by tLBRACE_ARG (that
                      # does CMDARG_PUSH(0) in the lexer) but the push
                      # must be done after CMDARG_POP() in the parser.
                      # So this code does CMDARG_POP() to pop 0 pushed
                      # by tLBRACE_ARG, CMDARG_POP() to pop 1 pushed
                      # by command_args, and CMDARG_PUSH(0) to restore
                      # back the flag set by tLBRACE_ARG.

                      lookahead = [:tLBRACE_ARG].include?(yychar)
                      lexer.cmdarg.pop if lookahead
                      lexer.cmdarg.pop
                      lexer.cmdarg.push false if lookahead
                      result = args

    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
                      lineno = arg.line || lexer.lineno # HACK

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

    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)
                      # TODO: the line number from tSTAR has been dropped
                      args, _, _, id = val
                      line = lexer.lineno
                      result = self.list_append args, s(:splat, id).line(line)

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_283(val, _values, result)
                      # TODO: make all tXXXX terminals include lexer.lineno
                      arg, _, _, splat = val
                      result = self.arg_concat arg, splat

    result
end

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

    result
end

# reduce 285 omitted

# 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

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

    result
end

def _reduce_296(val, _values, result)
                      lexer.cmdarg.push false
                      result = self.lexer.lineno

    result
end

def _reduce_297(val, _values, result)
                      lexer.cmdarg.pop
                      result = new_begin val

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_301(val, _values, result)
                      _, stmt, _, _, = val
                      # warning "(...) interpreted as grouped expression"
                      result = stmt

    result
end

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

    result
end

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

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

    result
end

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

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

# reduce 317 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

                      self.in_def = true # group = local_push
                      self.env.extend
                      lexer.cmdarg.push false
                      lexer.cond.push false

                      self.comments.push self.lexer.comments

    result
end

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

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

                      result = new_defn val

                      lexer.cond.pop # group = local_pop
                      lexer.cmdarg.pop
                      self.env.unextend
                      self.in_def = in_def

                      self.lexer.comments # we don't care about comments in the body

    result
end

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

    result
end

def _reduce_341(val, _values, result)
                      result = [self.in_def, lexer.lineno]

                      self.in_single += 1 # TODO: remove?

                      self.in_def = true # local_push
                      self.env.extend
                      lexer.cmdarg.push false
                      lexer.cond.push false

                      lexer.lex_state = EXPR_ENDFN|EXPR_LABEL
                      self.comments.push self.lexer.comments

    result
end

def _reduce_342(val, _values, result)
                      _, _recv, _, _, _name, (in_def, _lineno), _args, _body, _ = val

                      result = new_defs val

                      lexer.cond.pop # group = local_pop
                      lexer.cmdarg.pop
                      self.env.unextend
                      self.in_def = in_def

                      self.in_single -= 1

                      # TODO: restore cur_arg ? what's cur_arg?

                      self.lexer.comments # we don't care about comments in the body

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 348 omitted

# reduce 349 omitted

# 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

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

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

    result
end

# reduce 374 omitted

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

    result
end

# reduce 376 omitted

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

    result
end

# reduce 378 omitted

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

    result
end

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

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

    result
end

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

    result
end

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

                      result = block_var args

    result
end

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

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

    result
end

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

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

    result
end

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

                      result = block_var args, :*

    result
end

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

                      result = block_var args, :*, args2

    result
end

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

                      result = block_var :"*#{splat}"

    result
end

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

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

    result
end

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

    result
end

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

                      result = block_var :*, args

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 396 omitted

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

    result
end

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

    result
end

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) << nil

    result
end

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

    result
end

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

    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 = 0
    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 417 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 422 omitted

def _reduce_423(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_424(val, _values, result)
                      lexer.cmdarg.push false

    result
end

def _reduce_425(val, _values, result)
                      (line, lpar), args, _cmdarg, body = val
                      lexer.lpar_beg = lpar

                      lexer.cmdarg.pop

                      call = s(:lambda).line line
                      result = new_iter call, args, body
                      result.line = line
                      self.env.unextend # TODO: dynapush & dynapop

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

                      result = body
                      result.line = line

                      self.env.unextend

    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)
 result = lexer.cmdarg.store(false)
    result
end

def _reduce_451(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_452(val, _values, result)
 self.env.extend :dynamic; result = self.lexer.lineno
    result
end

def _reduce_453(val, _values, result)
 lexer.cmdarg.push false
    result
end

def _reduce_454(val, _values, result)
                      line, _cmdarg, param, cmpstmt = val

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

    result
end

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

    result
end

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

    result
end

# reduce 457 omitted

# reduce 458 omitted

def _reduce_459(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_460(val, _values, result)
                      result = nil

    result
end

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

    result
end

# reduce 462 omitted

# reduce 463 omitted

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

    result
end

# reduce 465 omitted

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

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

    result
end

# reduce 467 omitted

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

    result
end

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

    result
end

# reduce 470 omitted

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

    result
end

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

    result
end

# reduce 473 omitted

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

    result
end

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

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

                      result = str

    result
end

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

    result
end

def _reduce_477(val, _values, result)
                      result = new_xstring val
                      # TODO: dedent?!?! SERIOUSLY?!?

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 483 omitted

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

    result
end

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

    result
end

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    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 = new_string val

    result
end

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG

    result
end

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

    result
end

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

                      lexer.cmdarg.push false
                      lexer.cond.push false

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

                      lexer.lex_state   = EXPR_BEG

    result
end

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

                      lex_strterm, brace_nest, string_nest, oldlex_state, line = memo
                      # TODO: heredoc_indent

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

                      lexer.cmdarg.pop
                      lexer.cond.pop

                      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_509(val, _values, result)
 result = s(:gvar, val[0].to_sym).line lexer.lineno
    result
end

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

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

# reduce 512 omitted

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

    result
end

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

    result
end

# reduce 515 omitted

# reduce 516 omitted

# reduce 517 omitted

# reduce 518 omitted

def _reduce_519(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 520 omitted

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

    result
end

# reduce 522 omitted

# reduce 523 omitted

# reduce 524 omitted

# reduce 525 omitted

# reduce 526 omitted

# reduce 527 omitted

# reduce 528 omitted

# reduce 529 omitted

# reduce 530 omitted

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

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

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

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

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

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

def _reduce_537(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_538(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)

    result
end

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

    result
end

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

    result
end

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

    result
end

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

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

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

def _reduce_549(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_550(val, _values, result)
                      result = args val

    result
end

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

    result
end

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

    result
end

# reduce 553 omitted

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

    result
end

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

    result
end

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

    result
end

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

    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)
                      yyerror "formal argument cannot be a constant"

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 575 omitted

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

                      result = identifier

    result
end

# reduce 577 omitted

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

    result
end

def _reduce_579(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_580(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 581 omitted

def _reduce_582(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_583(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_584(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_585(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 586 omitted

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

    result
end

# reduce 588 omitted

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

    result
end

# reduce 590 omitted

# reduce 591 omitted

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

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

    result
end

# reduce 600 omitted

# reduce 601 omitted

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

    result
end

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

    result
end

# reduce 604 omitted

# reduce 605 omitted

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

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

    result
end

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

    result
end

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

    result
end

# reduce 609 omitted

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

    result
end

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

    result
end

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

    result
end

# reduce 613 omitted

# reduce 614 omitted

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

    result
end

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

    result
end

# reduce 619 omitted

# reduce 620 omitted

# 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

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

# reduce 644 omitted

# reduce 645 omitted

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

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

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

end   # class Ruby21Parser