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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-291,580,580,580,638,580,269,-291,-291,-291,3,-104,-291,-291,-291,269',
'-291,750,219,240,216,217,216,217,216,217,-291,-291,-291,701,661,-104',
'-103,-106,-521,580,-291,-291,850,-291,-291,-291,-291,-291,-522,-85,-93',
'-101,-102,83,730,237,-107,818,220,239,238,84,-100,-71,-102,818,661,586',
'660,730,269,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291',
'-291,-291,-99,-101,-291,-291,-291,-102,787,-291,730,-99,-291,220,268',
'-291,-291,660,-291,-603,-291,-100,-291,268,-291,-291,-291,-291,-291',
'-291,-291,220,-291,220,-291,220,113,113,113,606,113,112,112,112,749',
'112,-104,-291,-291,-291,-291,-104,-291,-510,-291,700,-103,-95,-94,-97',
'-510,-510,-510,113,-105,-510,-510,-510,112,-510,113,113,-95,930,268',
'112,112,-510,-98,-510,-510,-510,-101,-102,-91,-105,113,-101,-102,-510',
'-510,112,-510,-510,-510,-510,-510,878,-93,527,608,607,269,216,217,622',
'625,-90,-92,760,113,606,-93,741,611,112,220,742,-607,1000,-510,-510',
'-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-603,840',
'-510,-510,-510,-95,-510,-510,661,540,-510,606,539,-510,-510,-607,-510',
'-604,-510,-101,-510,-106,-510,-510,-510,-510,-510,-510,-510,-428,-510',
'-93,-510,-419,621,624,-103,-607,608,607,-95,-103,660,-95,-607,-510,-510',
'-510,-510,-603,-510,-607,-510,-607,220,268,-96,-95,-607,-607,-607,455',
'-510,-607,-607,-607,-93,-607,-607,-93,818,-607,608,607,240,-607,-607',
'-607,-607,-607,-603,762,-428,-93,-607,318,319,-607,-607,-428,-607,-607',
'-607,-607,-607,240,566,719,-428,558,557,556,-607,559,606,216,217,568',
'719,661,558,557,556,785,559,689,-428,-107,-607,-607,-607,-607,-607,-607',
'-607,-607,-607,-607,-607,-607,-607,-607,784,271,-607,-607,-607,-283',
'786,-607,576,575,-607,660,-283,-607,-607,527,-607,271,-607,606,-607',
'-283,-607,-607,-607,-607,-607,-607,-607,801,-607,-607,-607,608,607,619',
'606,-104,540,606,568,542,569,976,220,-607,-607,-607,-607,606,-607,-507',
'-607,214,842,689,-102,-97,-507,-507,-507,770,-103,-507,-507,-507,719',
'-507,558,557,556,-106,559,576,575,-507,-513,-507,-507,-507,608,607,614',
'-513,-600,846,818,-507,-507,-510,-507,-507,-507,-507,-507,-98,-510,608',
'607,609,608,607,626,-92,715,639,220,569,-516,-107,608,607,604,718,503',
'-516,-601,-101,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507',
'-507,-507,-507,-522,-521,-507,-507,-507,-507,-507,-507,540,501,-507',
'542,-507,-507,-507,-95,-507,-600,-507,259,-507,-507,-507,-507,-507,-507',
'-507,-507,-507,-104,-507,-517,-507,262,846,818,789,-510,-517,-600,263',
'240,-91,-90,-510,-507,-507,-507,-507,-601,-507,-291,-507,-510,-514,-267',
'-100,-99,-291,-291,-291,-514,-507,220,-291,-291,719,-291,558,557,556',
'-601,559,237,-507,488,-518,239,238,235,236,-507,-519,-518,216,217,488',
'-291,-291,-519,-291,-291,-291,-291,-291,216,217,877,-519,719,-519,558',
'557,556,715,559,719,-519,558,557,556,240,559,922,540,771,-519,542,-291',
'-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-515',
'-292,-291,-291,-291,715,644,-515,-292,-266,-291,237,715,-291,718,239',
'238,-292,-291,765,-291,764,-291,-291,-291,-291,-291,-291,-291,240,-291',
'763,-291,719,262,558,557,556,240,559,-512,263,522,523,-607,-291,-291',
'-512,-96,733,-291,-607,-607,-607,254,255,240,-607,-607,113,-607,237',
'-105,586,112,239,238,235,236,-607,237,715,254,255,239,238,235,236,576',
'575,-607,-607,726,-607,-607,-607,-607,-607,237,724,243,408,239,238,235',
'236,410,409,241,719,242,558,557,556,954,559,558,557,556,723,559,-607',
'-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,-607,722',
'880,-607,-607,-607,719,645,558,557,556,-607,559,715,-607,113,706,113',
'240,-607,112,-607,112,-607,-607,-607,-607,-607,-607,-607,883,-607,-607',
'-607,254,255,954,886,558,557,556,888,559,113,715,890,-607,-607,112,-94',
'237,-607,243,113,239,238,235,236,112,220,241,892,242,-103,174,185,175',
'198,171,191,181,180,201,202,196,179,178,173,199,203,204,183,172,186',
'190,192,184,177,893,713,711,193,200,195,194,187,197,182,170,189,188',
'116,117,118,119,120,169,176,167,168,164,165,166,124,126,123,113,125',
'869,870,240,112,871,107,108,709,158,159,707,154,136,137,138,145,142',
'144,254,255,139,140,689,706,901,160,161,146,147,719,703,558,557,556',
'237,559,243,-265,239,238,235,236,151,150,905,135,157,153,152,148,149',
'143,141,133,156,134,-520,213,162,91,113,213,907,-520,452,112,908,715',
'1007,92,220,706,-520,453,911,913,915,1005,155,917,917,220,220,163,174',
'185,175,198,171,191,181,180,201,202,196,179,178,173,199,203,204,183',
'172,186,190,192,184,177,923,696,925,193,200,195,194,187,197,182,170',
'189,188,116,117,118,119,120,169,176,167,168,164,165,166,124,126,695',
'927,125,689,533,240,116,117,118,119,120,158,159,220,154,136,137,138',
'145,142,144,254,255,139,140,678,-85,220,160,161,146,147,116,117,118',
'119,120,237,220,243,220,239,238,235,236,151,150,220,135,157,153,152',
'148,149,143,141,133,156,134,-291,-520,162,91,213,240,240,-291,-520,937',
'938,744,-604,92,220,941,-291,-520,-268,240,746,240,155,648,271,637,636',
'163,174,185,175,198,171,191,181,180,201,202,196,179,178,173,199,203',
'204,183,172,186,190,192,184,177,220,632,951,193,200,195,194,187,197',
'182,170,189,188,-265,630,623,958,959,169,176,167,168,164,165,166,124',
'126,397,396,125,620,398,961,213,962,617,613,591,158,159,212,154,136',
'137,138,145,142,144,590,210,139,140,-292,-291,213,160,161,146,147,-292',
'-291,957,400,586,503,-604,544,543,-292,-291,746,978,151,150,537,135',
'157,153,152,148,149,143,141,133,156,134,213,-338,162,213,-283,-292,980',
'957,-338,981,589,-283,-292,240,529,985,746,-338,528,587,-283,-292,155',
'524,706,990,992,163,174,185,175,198,171,191,181,180,201,202,196,179',
'178,173,199,203,204,183,172,186,190,192,184,177,994,996,996,193,200',
'195,194,187,197,182,170,189,188,271,220,274,1003,520,169,176,167,168',
'164,165,166,124,126,513,512,125,220,1008,-70,213,1009,917,917,917,158',
'159,519,154,136,137,138,145,142,144,1014,517,139,140,-291,213,503,160',
'161,146,147,-291,531,978,501,498,-604,271,488,219,-291,453,457,456,151',
'150,454,135,157,153,152,148,149,143,141,133,156,134,411,406,162,390',
'-604,-603,695,387,384,381,357,220,317,978,316,1037,1038,1039,1040,996',
'996,996,155,220,259,215,209,163,174,185,175,198,171,191,181,180,201',
'202,196,179,178,173,199,203,204,183,172,186,190,192,184,177,208,917',
'978,193,200,195,194,187,197,182,170,189,188,207,109,996,,,169,176,167',
'168,164,165,166,124,126,,,125,,,,,,,,,158,159,,154,136,137,138,145,142',
'144,,,139,140,,,,160,161,146,147,,,,,,,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,,162,91,,,,,,,,,,92,,,,,,,,,155,,,,,163',
'174,185,175,198,171,191,181,180,201,202,196,179,178,173,199,203,204',
'183,172,186,190,192,184,177,,,,193,200,195,194,187,197,182,170,189,188',
',,,,,169,176,167,168,164,165,166,124,126,,,125,,,,,,,,,158,159,,154',
'136,137,138,145,142,144,,,139,140,,,,160,161,146,147,,,,,,,,,,,,,,151',
'150,,135,157,153,152,148,149,143,141,133,156,134,,,162,91,,,,,,,,,,92',
',,,,,,,,155,,,,,163,174,185,175,198,171,191,181,180,201,202,196,179',
'178,173,199,203,204,183,172,186,190,192,184,177,,,,193,200,195,366,365',
'367,364,170,189,188,,,,,,169,176,167,168,361,362,363,359,126,97,96,360',
',99,,,,,,,158,159,,154,136,137,138,145,142,144,,,139,140,,,,160,161',
'146,147,,,,,,373,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133',
'156,134,,,162,,,,,,,,,,,,292,72,73,74,12,60,,,155,66,67,,,163,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,649,11,48,',
'13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,240,244,249',
'250,251,246,248,256,257,252,253,,233,234,,,254,255,,43,,,36,,,61,62',
',,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91,83,85',
'86,87,89,,,,84,92,,258,,-242,,,65,,,81,88,90,292,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,649,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,43',
',,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242',
',,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,633,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254',
'255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241',
'23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,240,244,249,250,251,246,248,256,257,252,253,,233,234',
',,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247',
'245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,220,258,,,,,65,,,81,88',
'90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,240,244,249,250,251,246,248,256,257,252,253',
',233,234,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235',
'236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81',
'88,90,8,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,240,244,249,250,251,246,248,256,257',
'252,253,,233,234,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239',
'238,235,236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,',
',,65,,,81,88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,240,244,249,250,251,246,248',
'256,257,252,253,,233,234,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243',
'47,239,238,235,236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92',
',258,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,240,244,249,250,251,246',
'248,256,257,252,253,,233,234,,,254,255,,43,,,36,,,61,62,,,63,,38,237',
',243,47,239,238,235,236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84',
'92,,258,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,240,244,249,250,251',
'246,248,256,257,252,253,,233,234,,,254,255,,43,,,36,,,61,62,,,63,,38',
'237,,243,47,239,238,235,236,247,245,241,23,242,,,,91,83,85,86,87,89',
',,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,240,244,249',
'250,251,246,248,256,257,252,253,,233,234,,,254,255,,43,,,36,,,61,62',
',,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91,83,85',
'86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66,67',
',,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,',
'11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,240',
'244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,43,,,36',
',,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91',
'83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74,12,60,,',
',66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22',
',,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,43',
',,294,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242',
',,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255',
',43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23',
'242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254',
'255,,43,,,294,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241',
'23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90,292,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,240,244,249,250,251,246,248,256,257,252,253,,233,234',
',,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247',
'245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88,90',
'292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,240,244,249,250,251,246,248,256,257,252,253,,233',
'234,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236',
'247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81,88',
'90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,240,244,249,250,251,246,248,256,257,252,253',
',233,234,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235',
'236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,258,,,,,65,,,81',
'88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,240,-627,-627,-627,-627,246,248,,,-627',
'-627,,,,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235',
'236,247,245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,240,-627,-627,-627,-627,246,248,,,-627,-627',
',,,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247',
'245,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292',
'72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,240,-627,-627,-627,-627,246,248,,,-627,-627,,,,,,254',
'255,,43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241',
'23,242,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,240,-627,-627,-627,-627,246,248,,,-627,-627,,,,,,254,255,',
'43,,,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23',
'242,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,240,,,,,,,,,,,,,,,,254,255,,43,,,36,,,61,62,,,63,,38,237,,243',
'47,239,238,235,236,,,241,23,242,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,292,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,45,46,44,240,,,,,,,,,,,,,,,,254,255,,43',
',,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,,,241,23,242,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
'240,244,249,250,251,246,248,256,257,252,253,,-627,-627,,,254,255,,43',
',,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,',
',22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,240,244,249,250,251,246,248,,,252,253,,,,,,254,255,,43,,,36,,',
'61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
'240,244,249,250,251,246,248,256,257,252,253,,-627,-627,,,254,255,,43',
',,36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,',
',22,,,,,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,240,-627,-627,-627,-627,246,248,,,-627,-627,,,,,,254,255,,43,',
',36,,,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,8,72,73,74,12,60,',
',,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,',
'22,,,,,,11,48,10,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,240,244,249,250,251,246,248,256,,252,253,,,,,,254,255,,43,,,36',
',,61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
'240,-627,-627,-627,-627,246,248,,,-627,-627,,,,,,254,255,,43,,,294,',
',61,62,,,63,,38,237,,243,47,239,238,235,236,247,245,241,23,242,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,292,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,11,48,,13,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
',,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,',
',,,,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558,557,556,566,559,47,,,',
',,,,230,568,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,564,286,81,88,90',
'72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'101,100,102,103,,,22,,,,569,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558',
'557,556,566,559,47,,,,,,,,23,568,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,564,,81,88,90,72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,569,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,719,63,558,557,556,801,559,47,,,,,,,,23,568,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,564,,81,88,90,72,73,74,,60,,576,575,66,67,,',
',70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,569',
',,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,',
',,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558,557,556,801,559,47,,,,,',
',,23,568,,,,91,83,85,86,87,89,,,,84,92,113,,,,,112,65,564,,81,88,90',
'72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,569,,,307,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,351,,,36,,,61,62,,,63,',
'38,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101',
'100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558,557',
'556,801,559,47,,,,,,,,230,568,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
'564,,81,88,90,72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,309,310,75',
'76,,,,,,305,306,312,101,100,102,103,,,232,,,,569,,,48,,,105,104,106',
'95,59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,283,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,719,63,558,557,556,566,559,47,,,,,,,,23,568,,,,91,83,85,86,87',
'89,,,,84,92,220,,,,,,65,564,,81,88,90,72,73,74,,60,,576,575,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,569,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
',,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558,557,556,566,559,47',
',,,,,,,230,568,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,564,,81,88,90',
'72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,569,,,48,,,105,104,106,95,59,97,96,98,',
'99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,719',
'63,558,557,556,801,559,47,,,,,,,,230,568,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,564,,81,88,90,72,73,74,,60,,576,575,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,232,,,,569,,,48,,,105,104',
'106,95,59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,',
',,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,719,63,558,557,556,801,559,47,,,,,,,,230,568,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,564,,81,88,90,72,73,74,,60,,576,575,66',
'67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,',
'232,,,,569,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,719,63,558,557,556,566,559',
'47,,,,,,,,230,568,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,564,,81,88',
'90,72,73,74,,60,,576,575,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305',
'306,312,101,100,102,103,,,232,,,,569,,,48,,,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62',
',,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,',
',,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,',
'47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,400,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,',
',,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,',
',,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62',
',,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,',
'47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,',
',,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,',
',232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232',
',,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,',
',,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,',
',105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,',
',,,,,,,,225,,,231,,,61,62,,,63,,416,,,,47,,,,,,,,230,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97',
'96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,',
'63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,',
',,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,416,,,,47,,,,,,,,230,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,',
',,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,',
',,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,',
'63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,220,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285',
'99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63',
',,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285',
'99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63',
',673,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286',
'81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305',
'306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,',
'63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,',
'768,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,307,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,313,,,,',
',,,,,,,,,,,,,,,895,,,231,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309',
'310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75',
'76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,231,',
',61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,315,,,65',
',,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,',
'305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62',
',,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,',
',,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312',
'101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,',
'47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101',
'100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,',
',,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,',
',,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102',
'103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,',
'232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232',
',,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,',
',,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309',
'310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75',
'76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,',
',,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97',
'96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61',
'62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305',
'306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,',
'63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,',
',,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312',
'101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,',
'47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101',
'100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,',
',,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,',
',,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102',
'103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,',
'232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232',
',,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,',
',,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309',
'310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96',
'98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62',
',,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,61,62,,,63,,298',
',,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102',
'103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94',
',45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,281,,47,,',
',,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,,,47,,',
',,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,',
',230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,',
',230,,,,,91,83,85,86,87,89,,,,84,92,220,,,,,,65,,286,81,88,90,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100',
'102,103,,,22,,,,,,11,48,10,13,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,',
',230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,',
',230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,',
',,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102',
'103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,',
'45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,',
'232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232',
',,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,',
',,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48',
',,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,',
',,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43',
',,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97',
'96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59',
'97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59',
'97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310',
'75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,',
',231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75',
'76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95',
'59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231',
',,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,',
',,,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,231,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,515,,,65,,,81',
'88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,',
',,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312',
'101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107',
'108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,',
'47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72',
'73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101',
'100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108',
',93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,',
',,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,',
',,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102',
'103,,,232,,,,,,,307,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94',
',,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,307,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,,,313,,,,',
',,,,,,,,,,,,,,,895,,,231,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,',
',,225,,,231,,,61,62,,,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,',
',,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309',
'310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225',
',,231,,,61,62,,,63,,416,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59',
'97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,',
',,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97',
'96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,',
',61,62,,,63,,,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,',
',,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75',
'76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95',
'59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,',
',231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310',
'75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299',
',,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305',
'306,312,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98',
'285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62',
',,63,,673,,,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
'286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,',
'32,31,30,101,100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98',
',99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,',
'63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101',
'100,102,103,,,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,',
'93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,',
',,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103',
',,22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46',
'44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,673,,,,47,,,,,,,,230,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,225,,,231,533,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,48',
',,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45,46,44,,,,,,,',
',,,,,,,,,,,,225,,,231,,,61,62,,,63,,673,,281,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74,,60,,,,66,67,,',
',70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,',
',,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,',
',,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,',
',48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,',
',,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,230,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,,105',
'104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,',
',,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,11,48,,13,105,104,106',
'95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,',
'36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,400,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310',
'75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104,106',
'592,59,97,96,593,,99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,594,,',
'231,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,101,100,102,103,,,232,,,,,,,48,,,105,104,106,95,59,97,96,98',
'285,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62',
',,63,,283,,281,,47,,,,,,,,230,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',286,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,',
',,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,592,59',
'97,96,593,,99,107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,594,,,231,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306',
'312,101,100,102,103,,,232,,,,,,,307,,,105,104,106,95,59,97,96,98,,99',
'107,108,,93,94,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100',
'102,103,,,232,,,,,,,307,,,105,104,106,95,59,97,96,98,,99,107,108,,93',
'94,,,,313,,,,,,,,,,,,,,,,,,,,968,,,231,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,309,310,75,76,,,,,,305,306,312,101,100,102,103,,',
'232,,,,,,,48,,,105,104,106,95,59,97,96,98,285,99,107,108,,93,94,,45',
'46,44,,,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,281,,47,,,,,,,,230',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,286,81,88,90,72,73,74,,60,',
',,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,',
'22,,,,,,,48,,,105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44',
',,,,,,,,,,,,,,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,101,100,102,103,,,22,,,,,,,48,,',
'105,104,106,95,59,97,96,98,,99,107,108,,93,94,,45,46,44,,,,,,,,,,,,',
',,,,,,,225,,,231,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,72,73,74,,60,,,,66,67,,,,70,,68,69,71,309',
'310,75,76,,,,,,305,306,312,101,100,102,103,,,232,,,,,,,307,,,105,104',
'106,95,59,97,96,98,,99,107,108,,93,94,,,,313,,,,,-284,,,,,,,-284,-284',
'-284,,,-284,-284,-284,303,-284,,299,,,61,62,,,63,-284,-284,-284,,,,',
',,,-284,-284,,-284,-284,-284,-284,-284,91,83,85,86,87,89,,,,84,92,,',
',,,,65,,,81,88,90,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284',
'-284,-284,-284,-284,,,-284,-284,-284,,,-284,,,-284,,,-284,-284,,-284',
',-284,,-284,,-284,-284,-284,-284,-284,-284,-284,,-284,,-284,,,,,,,,',
',,,,-284,-284,-284,-284,-609,-284,,-284,,,,-609,-609,-609,,,-609,-609',
'-609,561,-609,558,557,556,566,559,,,,-609,-609,-609,-609,,,568,,,,,-609',
'-609,,-609,-609,-609,-609,-609,,,,,,,,,,564,,,,,,,,,573,572,576,575',
',-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609,-609',
',,-609,-609,-609,,,-609,,,-609,,,-609,-609,,-609,569,-609,,-609,,-609',
'-609,-609,-609,-609,-609,-609,,-609,-609,-609,,,,,,,,,,,,,-609,-609',
'-609,-609,-608,-609,,-609,,,,-608,-608,-608,,,-608,-608,-608,561,-608',
'558,557,556,566,559,,,,-608,-608,-608,-608,,,568,,,,,-608,-608,,-608',
'-608,-608,-608,-608,,,,,,,,,,564,547,,,,,,,,573,572,576,575,,-608,-608',
'-608,-608,-608,-608,-608,-608,-608,-608,-608,-608,-608,-608,,,-608,-608',
'-608,,,-608,,,-608,,,-608,-608,,-608,569,-608,,-608,,-608,-608,-608',
'-608,-608,-608,-608,,-608,-608,-608,,,,,,,,,,,,,-608,-608,-608,-608',
'-427,-608,,-608,,,,-427,-427,-427,,,-427,-427,-427,561,-427,558,557',
'556,566,559,,,,-427,-427,-427,,,,568,,,,,-427,-427,,-427,-427,-427,-427',
'-427,,,,,,,,,,564,,,,,,,,,573,572,576,575,,-427,-427,-427,-427,-427',
'-427,-427,-427,-427,-427,-427,-427,-427,-427,,,-427,-427,-427,,,-427',
',271,-427,,,-427,-427,,-427,569,-427,,-427,,-427,-427,-427,-427,-427',
'-427,-427,,-427,-427,-427,,,,,,,,,,,,-626,-427,-427,,-427,,-427,-626',
'-626,-626,,,-626,-626,-626,561,-626,558,557,556,566,559,,,,-626,-626',
'-626,,,,568,,,,,-626,-626,,-626,-626,-626,-626,-626,,,,,,,,,,564,754',
',,,,,,,573,572,576,575,,-626,-626,-626,-626,-626,-626,-626,-626,-626',
'-626,-626,-626,-626,-626,,,-626,-626,-626,,,-626,,271,-626,,,-626,-626',
',-626,569,-626,,-626,,-626,-626,-626,-626,-626,-626,-626,,-626,-626',
'-626,,,,,,,,,,,,-626,-626,-626,,-626,,-626,-626,-626,-626,,,-626,-626',
'-626,561,-626,558,557,556,566,559,,,,-626,-626,,,,,568,,,,,-626,-626',
',-626,-626,-626,-626,-626,,,,,,,,,,564,,,,,,,,,573,572,576,575,,-298',
',,,,,,-298,-298,-298,,-626,-298,-298,-298,,-298,,-626,,,,,271,-626,',
'-298,-298,,,,569,,,,,-298,-298,,-298,-298,-298,-298,-298,,-626,-626',
',,,,,,,,,,,,-626,,,,,-626,,,-298,-298,-298,-298,-298,-298,-298,-298',
'-298,-298,-298,-298,-298,-298,,,-298,-298,-298,,,-298,,274,-298,,,-298',
'-298,,-298,,-298,,-298,,-298,-298,-298,-298,-298,-298,-298,,-298,,-298',
',,,,,425,429,,,426,,,-298,-298,,-298,,-298,158,159,,154,136,137,138',
'145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135',
'157,153,152,148,149,143,141,133,156,134,,800,162,558,557,556,801,559',
',,,,486,429,,,487,568,,,,,155,,,158,159,163,154,136,137,138,145,142',
'144,,,139,140,564,,,160,161,146,147,,,573,572,576,575,,,,,,,,151,150',
',135,157,153,152,148,149,143,141,133,156,134,,,162,,,,,,,,,569,738,436',
',,739,,,,,,155,,,158,159,163,154,136,137,138,145,142,144,,,139,140,',
',,160,161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143',
'141,133,156,134,,,162,,,,,,,,,,486,429,,,487,,,,,,155,,,158,159,163',
'154,136,137,138,145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,',
',,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134,,,162,,,,',
',,,,,736,429,,,737,,,,,,155,,,158,159,163,154,136,137,138,145,142,144',
',,139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,,162,,,,,,,,,,1030,429,,,1031,,,,,,155',
',,158,159,163,154,136,137,138,145,142,144,,,139,140,,,,160,161,146,147',
',,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134',
',,162,,,,,,,,,,854,436,,,855,,,,,,155,,,158,159,163,154,136,137,138',
'145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135',
'157,153,152,148,149,143,141,133,156,134,,,162,,,,,,,,,,1032,436,,,1033',
',,,,,155,,,158,159,163,154,136,137,138,145,142,144,,,139,140,,,,160',
'161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143,141',
'133,156,134,,,162,,,,,,,,,,1002,436,,,1001,,,,,,155,,,158,159,163,154',
'136,137,138,145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,,,,,',
',151,150,,135,157,153,152,148,149,143,141,133,156,134,,,162,,,,,,,,',
',653,436,,,654,,,,,,155,,,158,159,163,154,136,137,138,145,142,144,,',
'139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,,162,,,,,,,,,,651,429,,,652,,,,,,155,,',
'158,159,163,154,136,137,138,145,142,144,,,139,140,,,,160,161,146,147',
',,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134',
',,162,,,,,,,,,,682,429,,,683,,,,,,155,,,158,159,163,154,136,137,138',
'145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135',
'157,153,152,148,149,143,141,133,156,134,,,162,,,,,,,,,,651,429,,,652',
',,,,,155,,,158,159,163,154,136,137,138,145,142,144,,,139,140,,,,160',
'161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143,141',
'133,156,134,,,162,,,,,,,,,,432,436,,,431,,,,,,155,,,158,159,163,154',
'136,137,138,145,142,144,,,139,140,,,,160,161,146,147,,,,,,271,,,,,,',
',151,150,,135,157,153,152,148,149,143,141,133,156,134,,,162,,,,,,,,',
',653,436,,,654,,,,,,155,,,158,159,163,154,136,137,138,145,142,144,,',
'139,140,,,,160,161,146,147,,,,,,271,,,,,,,,151,150,,135,157,153,152',
'148,149,143,141,133,156,134,,,162,,,,,,,,,,685,436,,,686,,,,,,155,,',
'158,159,163,154,136,137,138,145,142,144,,,139,140,,,,160,161,146,147',
',,,,,271,,,,,,,,151,150,,135,157,153,152,148,149,143,141,133,156,134',
',561,162,558,557,556,566,559,561,,558,557,556,566,559,,,568,,,,,155',
',568,,800,163,558,557,556,801,559,,,,,,,564,,,568,,,,564,754,573,572',
'576,575,,,,573,572,576,575,,,,,800,564,558,557,556,801,559,,,,573,572',
'576,575,,,568,,,,800,569,558,557,556,801,559,,569,,,,,,,,568,,564,561',
',558,557,556,566,559,569,573,572,576,575,,,,,568,,,564,,,,,,,,,573,572',
'576,575,,,,,220,,564,,,,,,569,,,573,572,576,575,,,,,,,,,,,,,,569,,,',
',,,,,,,,,,,,,,,569' ]
        racc_action_table = arr = ::Array.new(25640, 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 = [
'654,342,341,926,425,904,308,654,654,654,1,1031,654,654,654,664,654,598',
'22,460,757,757,449,449,693,693,654,654,654,546,492,737,738,590,223,851',
'654,654,732,654,654,654,654,654,224,677,425,1045,1030,80,583,460,352',
'727,22,460,460,80,349,677,425,983,665,983,492,582,64,654,654,654,654',
'654,654,654,654,654,654,654,654,654,654,348,852,654,654,654,736,654',
'654,853,223,654,720,308,654,654,665,654,738,654,224,654,664,654,654',
'654,654,654,654,654,757,654,449,654,693,342,341,926,615,904,342,341',
'926,598,904,1031,654,654,654,654,1031,654,98,654,546,1032,737,738,590',
'98,98,98,598,654,98,98,98,598,98,851,583,683,851,64,851,583,98,352,98',
'98,98,1045,1030,349,739,582,1045,1030,98,98,582,98,98,98,98,98,788,682',
'454,615,615,29,751,751,388,391,348,852,615,853,379,736,594,379,853,952',
'594,685,952,98,98,98,98,98,98,98,98,98,98,98,98,98,98,1032,717,98,98',
'98,683,98,98,484,330,98,618,330,98,98,854,98,739,98,788,98,454,98,98',
'98,98,98,98,98,813,98,682,98,29,388,391,1032,685,379,379,683,1032,484',
'683,685,98,98,98,98,685,98,653,98,685,702,29,739,683,653,653,653,226',
'98,653,653,653,682,653,854,682,694,685,618,618,692,854,653,653,653,653',
'854,618,813,682,854,44,44,653,653,813,653,653,653,653,653,691,703,922',
'813,922,922,922,854,922,385,340,340,703,718,493,718,718,718,652,718',
'688,813,226,653,653,653,653,653,653,653,653,653,653,653,653,653,653',
'651,687,653,653,653,969,653,653,703,703,653,493,969,653,653,317,653',
'684,653,382,653,969,653,653,653,653,653,653,653,880,653,653,653,385',
'385,385,377,652,698,393,880,698,703,922,681,653,653,653,653,375,653',
'95,653,18,718,679,651,317,95,95,95,634,653,95,95,95,564,95,564,564,564',
'317,564,880,880,95,366,95,95,95,382,382,382,366,592,1016,1016,95,95',
'360,95,95,95,95,95,18,360,377,377,377,393,393,393,634,564,426,735,880',
'362,18,375,375,375,564,672,362,593,634,95,95,95,95,95,95,95,95,95,95',
'95,95,95,95,42,41,95,95,95,592,95,95,331,670,95,331,592,95,95,426,95',
'592,95,663,95,592,95,95,95,95,95,95,95,426,95,361,95,369,725,725,657',
'593,361,592,369,480,42,41,593,95,95,95,95,593,95,431,95,593,367,767',
'42,41,431,431,431,367,95,655,431,431,840,431,840,840,840,593,840,480',
'359,646,363,480,480,480,480,359,300,363,326,326,640,431,431,300,431',
'431,431,431,431,20,20,772,300,715,965,715,715,715,840,715,978,965,978',
'978,978,461,978,840,335,635,965,335,431,431,431,431,431,431,431,431',
'431,431,431,431,431,431,364,742,431,431,431,715,431,364,742,631,431',
'461,978,431,715,461,461,742,431,627,431,625,431,431,431,431,431,431',
'431,479,431,622,431,842,27,842,842,842,468,842,365,27,313,313,432,431',
'431,365,431,585,431,432,432,432,468,468,470,432,432,750,432,479,431',
'584,750,479,479,479,479,432,468,842,470,470,468,468,468,468,706,706',
'432,432,579,432,432,432,432,432,470,577,470,123,470,470,470,470,123',
'123,470,923,470,923,923,923,1000,923,1000,1000,1000,574,1000,432,432',
'432,432,432,432,432,432,432,432,432,432,432,432,570,790,432,432,432',
'976,432,976,976,976,432,976,923,432,5,791,289,473,432,5,432,289,432',
'432,432,432,432,432,432,793,432,432,432,473,473,892,794,892,892,892',
'795,892,755,976,797,432,432,755,432,473,432,473,345,473,473,473,473',
'345,798,473,799,473,432,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,11,11,11,11,11,11,800,561,554,11,11,11,11,11,11,11,11,11,11',
'676,676,676,676,676,11,11,11,11,11,11,11,11,11,11,935,11,758,758,466',
'935,758,758,758,553,11,11,552,11,11,11,11,11,11,11,466,466,11,11,812',
'550,816,11,11,11,11,1014,549,1014,1014,1014,466,1014,466,819,466,466',
'466,466,11,11,820,11,11,11,11,11,11,11,11,11,11,11,966,222,11,11,861',
'967,824,966,222,861,825,1014,967,11,826,827,966,222,831,832,834,967',
'11,835,837,839,536,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,841,535,844,12,12,12,12,12,12,12,12,12,12,509',
'509,509,509,509,12,12,12,12,12,12,12,12,12,534,847,12,525,521,467,291',
'291,291,291,291,12,12,516,12,12,12,12,12,12,12,467,467,12,12,514,511',
'510,12,12,12,12,9,9,9,9,9,467,495,467,857,467,467,467,467,12,12,494',
'12,12,12,12,12,12,12,12,12,12,12,686,301,12,12,596,465,464,686,301,862',
'863,596,686,12,864,873,686,301,874,463,596,462,12,441,433,424,423,12',
'91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91',
'91,420,417,891,91,91,91,91,91,91,91,91,91,91,414,412,390,895,896,91',
'91,91,91,91,91,91,91,91,91,91,91,387,91,898,17,899,384,381,353,91,91',
'17,91,91,91,91,91,91,91,351,17,91,91,520,1033,894,91,91,91,91,520,1033',
'894,347,346,336,1033,333,332,520,1033,894,924,91,91,328,91,91,91,91',
'91,91,91,91,91,91,91,956,49,91,350,304,1008,928,956,49,929,350,304,1008',
'322,319,934,956,49,318,350,304,1008,91,314,942,945,946,91,756,756,756',
'756,756,756,756,756,756,756,756,756,756,756,756,756,756,756,756,756',
'756,756,756,756,947,948,950,756,756,756,756,756,756,756,756,756,756',
'312,307,306,960,303,756,756,756,756,756,756,756,756,756,297,296,756',
'295,968,293,302,971,972,973,974,756,756,302,756,756,756,756,756,756',
'756,975,302,756,756,855,320,282,756,756,756,756,855,320,977,279,278',
'855,267,264,232,855,320,228,227,756,756,225,756,756,756,756,756,756',
'756,756,756,756,756,205,121,756,90,1001,1002,1004,89,88,87,72,48,43',
'1015,40,1020,1021,1022,1023,1024,1025,1026,756,1029,25,19,16,756,407',
'407,407,407,407,407,407,407,407,407,407,407,407,407,407,407,407,407',
'407,407,407,407,407,407,15,1034,1035,407,407,407,407,407,407,407,407',
'407,407,13,3,1047,,,407,407,407,407,407,407,407,407,407,,,407,,,,,,',
',,407,407,,407,407,407,407,407,407,407,,,407,407,,,,407,407,407,407',
',,,,,,,,,,,,,407,407,,407,407,407,407,407,407,407,407,407,407,407,,',
'407,407,,,,,,,,,,407,,,,,,,,,407,,,,,407,629,629,629,629,629,629,629',
'629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629',
',,,629,629,629,629,629,629,629,629,629,629,,,,,,629,629,629,629,629',
'629,629,629,629,,,629,,,,,,,,,629,629,,629,629,629,629,629,629,629,',
',629,629,,,,629,629,629,629,,,,,,,,,,,,,,629,629,,629,629,629,629,629',
'629,629,629,629,629,629,,,629,629,,,,,,,,,,629,,,,,,,,,629,,,,,629,74',
'74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74',
',,,74,74,74,74,74,74,74,74,74,74,,,,,,74,74,74,74,74,74,74,74,74,74',
'74,74,,74,,,,,,,74,74,,74,74,74,74,74,74,74,,,74,74,,,,74,74,74,74,',
',,,,74,,,,,,,,74,74,,74,74,74,74,74,74,74,74,74,74,74,,,74,,,,,,,,,',
',,931,931,931,931,931,931,,,74,931,931,,,74,931,,931,931,931,931,931',
'931,931,,,,,,931,931,931,931,931,931,931,,,931,,,,,444,931,931,,931',
'931,931,931,931,931,931,931,931,,931,931,931,,931,931,,931,931,931,444',
'444,444,444,444,444,444,444,444,444,444,,444,444,,,444,444,,931,,,931',
',,931,931,,,931,,931,444,,444,931,444,444,444,444,444,444,444,931,444',
',,,931,931,931,931,931,931,,,,931,931,,444,,444,,,931,,,931,931,931',
'701,701,701,701,701,701,,,,701,701,,,,701,,701,701,701,701,701,701,701',
',,,,,701,701,701,701,701,701,701,,,701,,,,,656,701,701,,701,701,701',
'701,701,701,701,701,701,,701,701,701,,701,701,,701,701,701,656,656,656',
'656,656,656,656,656,656,656,656,,656,656,,,656,656,,701,,,701,,,701',
'701,,,701,,701,656,,656,701,656,656,656,656,656,656,656,701,656,,,,701',
'701,701,701,701,701,,,,701,701,,656,,,,,701,,,701,701,701,700,700,700',
'700,700,700,,,,700,700,,,,700,,700,700,700,700,700,700,700,,,,,,700',
'700,700,700,700,700,700,,,700,,,,,419,700,700,,700,700,700,700,700,700',
'700,700,700,,700,700,700,,700,700,,700,700,700,419,419,419,419,419,419',
'419,419,419,419,419,,419,419,,,419,419,,700,,,700,,,700,700,,,700,,700',
'419,,419,700,419,419,419,419,419,419,419,700,419,,,,700,700,700,700',
'700,700,,,,700,700,,419,,,,,700,,,700,700,700,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,483,483,483,483,483,483,483,483,483',
'483,483,,483,483,,,483,483,,818,,,818,,,818,818,,,818,,818,483,,483',
'818,483,483,483,483,483,483,483,818,483,,,,818,818,818,818,818,818,',
',,818,818,483,483,,,,,818,,,818,818,818,809,809,809,809,809,809,,,,809',
'809,,,,809,,809,809,809,809,809,809,809,,,,,,809,809,809,809,809,809',
'809,,,809,,,,,,809,809,,809,809,809,809,809,809,809,809,809,,809,809',
'809,,809,809,,809,809,809,781,781,781,781,781,781,781,781,781,781,781',
',781,781,,,781,781,,809,,,809,,,809,809,,,809,,809,781,,781,809,781',
'781,781,781,781,781,781,809,781,,,,809,809,809,809,809,809,,,,809,809',
',781,,,,,809,,,809,809,809,406,406,406,406,406,406,,,,406,406,,,,406',
',406,406,406,406,406,406,406,,,,,,406,406,406,406,406,406,406,,,406',
',,,,,406,406,406,406,406,406,406,406,406,406,406,406,,406,406,406,,406',
'406,,406,406,406,690,690,690,690,690,690,690,690,690,690,690,,690,690',
',,690,690,,406,,,406,,,406,406,,,406,,406,690,,690,406,690,690,690,690',
'690,690,690,406,690,,,,406,406,406,406,406,406,,,,406,406,,690,,,,,406',
',,406,406,406,804,804,804,804,804,804,,,,804,804,,,,804,,804,804,804',
'804,804,804,804,,,,,,804,804,804,804,804,804,804,,,804,,,,,,804,804',
',804,804,804,804,804,804,804,804,804,,804,804,804,,804,804,,804,804',
'804,876,876,876,876,876,876,876,876,876,876,876,,876,876,,,876,876,',
'804,,,804,,,804,804,,,804,,804,876,,876,804,876,876,876,876,876,876',
'876,804,876,,,,804,804,804,804,804,804,,,,804,804,,876,,,,,804,,,804',
'804,804,964,964,964,964,964,964,,,,964,964,,,,964,,964,964,964,964,964',
'964,964,,,,,,964,964,964,964,964,964,964,,,964,,,,,,964,964,,964,964',
'964,964,964,964,964,964,964,,964,964,964,,964,964,,964,964,964,24,24',
'24,24,24,24,24,24,24,24,24,,24,24,,,24,24,,964,,,964,,,964,964,,,964',
',964,24,,24,964,24,24,24,24,24,24,24,964,24,,,,964,964,964,964,964,964',
',,,964,964,,24,,,,,964,,,964,964,964,325,325,325,325,325,325,,,,325',
'325,,,,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325,325',
'325,,,325,,,,,,325,325,,325,325,325,325,325,325,325,325,325,,325,325',
'325,,325,325,,325,325,325,776,776,776,776,776,776,776,776,776,776,776',
',776,776,,,776,776,,325,,,325,,,325,325,,,325,,325,776,,776,325,776',
'776,776,776,776,776,776,325,776,,,,325,325,325,325,325,325,,,,325,325',
',776,,,,,325,,,325,325,325,578,578,578,578,578,578,,,,578,578,,,,578',
',578,578,578,578,578,578,578,,,,,,578,578,578,578,578,578,578,,,578',
',,,,,578,578,,578,578,578,578,578,578,578,578,578,,578,578,578,,578',
'578,,578,578,578,276,276,276,276,276,276,276,276,276,276,276,,276,276',
',,276,276,,578,,,578,,,578,578,,,578,,578,276,,276,578,276,276,276,276',
'276,276,276,578,276,,,,578,578,578,578,578,578,,,,578,578,,276,,,,,578',
',,578,578,578,581,581,581,581,581,581,,,,581,581,,,,581,,581,581,581',
'581,581,581,581,,,,,,581,581,581,581,581,581,581,,,581,,,,,,581,581',
',581,581,581,581,581,581,581,581,581,,581,581,581,,581,581,,581,581',
'581,769,769,769,769,769,769,769,769,769,769,769,,769,769,,,769,769,',
'581,,,581,,,581,581,,,581,,581,769,,769,581,769,769,769,769,769,769',
'769,581,769,,,,581,581,581,581,581,581,,,,581,581,,769,,,,,581,,,581',
'581,581,294,294,294,294,294,294,,,,294,294,,,,294,,294,294,294,294,294',
'294,294,,,,,,294,294,294,294,294,294,294,,,294,,,,,,294,294,,294,294',
'294,294,294,294,294,294,294,,294,294,294,,294,294,,294,294,294,779,779',
'779,779,779,779,779,779,779,779,779,,779,779,,,779,779,,294,,,294,,',
'294,294,,,294,,294,779,,779,294,779,779,779,779,779,779,779,294,779',
',,,294,294,294,294,294,294,,,,294,294,,779,,,,,294,,,294,294,294,979',
'979,979,979,979,979,,,,979,979,,,,979,,979,979,979,979,979,979,979,',
',,,,979,979,979,979,979,979,979,,,979,,,,,,979,979,,979,979,979,979',
'979,979,979,979,979,,979,979,979,,979,979,,979,979,979,879,879,879,879',
'879,879,879,879,879,879,879,,879,879,,,879,879,,979,,,979,,,979,979',
',,979,,979,879,,879,979,879,879,879,879,879,879,879,979,879,,,,979,979',
'979,979,979,979,,,,979,979,,879,,,,,979,,,979,979,979,36,36,36,36,36',
'36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,',
'36,,,,,,36,36,,36,36,36,36,36,36,36,36,36,,36,36,36,,36,36,,36,36,36',
'783,783,783,783,783,783,783,783,783,783,783,,783,783,,,783,783,,36,',
',36,,,36,36,,,36,,36,783,,783,36,783,783,783,783,783,783,783,36,783',
',,,36,36,36,36,36,36,,,,36,36,,783,,,,,36,,,36,36,36,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,774,774,774,774,774,774,774',
'774,774,774,774,,774,774,,,774,774,,984,,,984,,,984,984,,,984,,984,774',
',774,984,774,774,774,774,774,774,774,984,774,,,,984,984,984,984,984',
'984,,,,984,984,,774,,,,,984,,,984,984,984,987,987,987,987,987,987,,',
',987,987,,,,987,,987,987,987,987,987,987,987,,,,,,987,987,987,987,987',
'987,987,,,987,,,,,,987,987,,987,987,987,987,987,987,987,987,987,,987',
'987,987,,987,987,,987,987,987,532,532,532,532,532,532,532,532,532,532',
'532,,532,532,,,532,532,,987,,,987,,,987,987,,,987,,987,532,,532,987',
'532,532,532,532,532,532,532,987,532,,,,987,987,987,987,987,987,,,,987',
'987,,532,,,,,987,,,987,987,987,752,752,752,752,752,752,,,,752,752,,',
',752,,752,752,752,752,752,752,752,,,,,,752,752,752,752,752,752,752,',
',752,,,,,,752,752,,752,752,752,752,752,752,752,752,752,,752,752,752',
',752,752,,752,752,752,439,439,439,439,439,439,439,439,439,439,439,,439',
'439,,,439,439,,752,,,752,,,752,752,,,752,,752,439,,439,752,439,439,439',
'439,439,439,439,752,439,,,,752,752,752,752,752,752,,,,752,752,,439,',
',,,752,,,752,752,752,231,231,231,231,231,231,,,,231,231,,,,231,,231',
'231,231,231,231,231,231,,,,,,231,231,231,231,231,231,231,,,231,,,,,',
'231,231,,231,231,231,231,231,231,231,231,231,,231,231,231,,231,231,',
'231,231,231,474,474,474,474,474,474,474,,,474,474,,,,,,474,474,,231',
',,231,,,231,231,,,231,,231,474,,474,231,474,474,474,474,474,474,474',
'231,474,,,,231,231,231,231,231,231,,,,231,231,,,,,,,231,,,231,231,231',
'988,988,988,988,988,988,,,,988,988,,,,988,,988,988,988,988,988,988,988',
',,,,,988,988,988,988,988,988,988,,,988,,,,,,988,988,,988,988,988,988',
'988,988,988,988,988,,988,988,988,,988,988,,988,988,988,475,475,475,475',
'475,475,475,,,475,475,,,,,,475,475,,988,,,988,,,988,988,,,988,,988,475',
',475,988,475,475,475,475,475,475,475,988,475,,,,988,988,988,988,988',
'988,,,,988,988,,,,,,,988,,,988,988,988,753,753,753,753,753,753,,,,753',
'753,,,,753,,753,753,753,753,753,753,753,,,,,,753,753,753,753,753,753',
'753,,,753,,,,,,753,753,,753,753,753,753,753,753,753,753,753,,753,753',
'753,,753,753,,753,753,753,476,476,476,476,476,476,476,,,476,476,,,,',
',476,476,,753,,,753,,,753,753,,,753,,753,476,,476,753,476,476,476,476',
'476,476,476,753,476,,,,753,753,753,753,753,753,,,,753,753,,,,,,,753',
',,753,753,753,848,848,848,848,848,848,,,,848,848,,,,848,,848,848,848',
'848,848,848,848,,,,,,848,848,848,848,848,848,848,,,848,,,,,,848,848',
',848,848,848,848,848,848,848,848,848,,848,848,848,,848,848,,848,848',
'848,478,478,478,478,478,478,478,,,478,478,,,,,,478,478,,848,,,848,,',
'848,848,,,848,,848,478,,478,848,478,478,478,478,478,478,478,848,478',
',,,848,848,848,848,848,848,,,,848,848,,,,,,,848,,,848,848,848,207,207',
'207,207,207,207,,,,207,207,,,,207,,207,207,207,207,207,207,207,,,,,',
'207,207,207,207,207,207,207,,,207,,,,,,207,207,,207,207,207,207,207',
'207,207,207,207,,207,207,207,,207,207,,207,207,207,472,,,,,,,,,,,,,',
',,472,472,,207,,,207,,,207,207,,,207,,207,472,,472,207,472,472,472,472',
',,472,207,472,,,,207,207,207,207,207,207,,,,207,207,,,,,,,207,,,207',
'207,207,849,849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849',
'849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,,849,849',
'849,849,849,849,849,849,849,,849,849,849,,849,849,,849,849,849,471,',
',,,,,,,,,,,,,,471,471,,849,,,849,,,849,849,,,849,,849,471,,471,849,471',
'471,471,471,,,471,849,471,,,,849,849,849,849,849,849,,,,849,849,,,,',
',,849,,,849,849,849,759,759,759,759,759,759,,,,759,759,,,,759,,759,759',
'759,759,759,759,759,,,,,,759,759,759,759,759,759,759,,,759,,,,,,759',
'759,,759,759,759,759,759,759,759,759,759,,759,759,759,,759,759,,759',
'759,759,458,458,458,458,458,458,458,458,458,458,458,,458,458,,,458,458',
',759,,,759,,,759,759,,,759,,759,458,,458,759,458,458,458,458,458,458',
'458,759,458,,,,759,759,759,759,759,759,,,,759,759,,,,,,,759,,,759,759',
'759,858,858,858,858,858,858,,,,858,858,,,,858,,858,858,858,858,858,858',
'858,,,,,,858,858,858,858,858,858,858,,,858,,,,,,858,858,,858,858,858',
'858,858,858,858,858,858,,858,858,858,,858,858,,858,858,858,481,481,481',
'481,481,481,481,,,481,481,,,,,,481,481,,858,,,858,,,858,858,,,858,,858',
'481,,481,858,481,481,481,481,481,481,481,858,481,,,,858,858,858,858',
'858,858,,,,858,858,,,,,,,858,,,858,858,858,901,901,901,901,901,901,',
',,901,901,,,,901,,901,901,901,901,901,901,901,,,,,,901,901,901,901,901',
'901,901,,,901,,,,,,901,901,,901,901,901,901,901,901,901,901,901,,901',
'901,901,,901,901,,901,901,901,459,459,459,459,459,459,459,459,459,459',
'459,,459,459,,,459,459,,901,,,901,,,901,901,,,901,,901,459,,459,901',
'459,459,459,459,459,459,459,901,459,,,,901,901,901,901,901,901,,,,901',
'901,,,,,,,901,,,901,901,901,897,897,897,897,897,897,,,,897,897,,,,897',
',897,897,897,897,897,897,897,,,,,,897,897,897,897,897,897,897,,,897',
',,,,,897,897,,897,897,897,897,897,897,897,897,897,,897,897,897,,897',
'897,,897,897,897,469,469,469,469,469,469,469,,,469,469,,,,,,469,469',
',897,,,897,,,897,897,,,897,,897,469,,469,897,469,469,469,469,469,469',
'469,897,469,,,,897,897,897,897,897,897,,,,897,897,,,,,,,897,,,897,897',
'897,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,,,2,,',
',,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,,2,2,2,482,482,482,482,482,482',
'482,482,,482,482,,,,,,482,482,,2,,,2,,,2,2,,,2,,2,482,,482,2,482,482',
'482,482,482,482,482,2,482,,,,2,2,2,2,2,2,,,,2,2,,,,,,,2,,,2,2,2,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,477,477,477,477',
'477,477,477,,,477,477,,,,,,477,477,,299,,,299,,,299,299,,,299,,299,477',
',477,299,477,477,477,477,477,477,477,299,477,,,,299,299,299,299,299',
'299,,,,299,299,,,,,,,299,,,299,299,299,808,808,808,808,808,808,,,,808',
'808,,,,808,,808,808,808,808,808,808,808,,,,,,808,808,808,808,808,808',
'808,,,808,,,,,,808,808,,808,808,808,808,808,808,808,808,808,,808,808',
'808,,808,808,,808,808,808,,,,,,,,,,,,,,,,,,,,808,,,808,,,808,808,,,808',
',808,,,,808,,,,,,,,808,,,,,808,808,808,808,808,808,,,,808,808,,,,,,',
'808,,,808,808,808,63,63,63,,63,,,,63,63,,,,63,,63,63,63,63,63,63,63',
',,,,,63,63,63,63,63,63,63,,,63,,,,,,,63,,,63,63,63,63,63,63,63,63,63',
'63,63,63,,63,63,,63,63,63,,,,,,,,,,,,,,,,,,,,63,,,63,,,63,63,,711,63',
'711,711,711,711,711,63,,,,,,,,63,711,,,,63,63,63,63,63,63,,,,63,63,',
',,,,,63,711,63,63,63,63,66,66,66,,66,,711,711,66,66,,,,66,,66,66,66',
'66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,711,,,66,,,66,66,66,66',
'66,66,66,66,,66,66,66,,66,66,,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,',
'66,66,,917,66,917,917,917,917,917,66,,,,,,,,66,917,,,,66,66,66,66,66',
'66,,,,66,66,,,,,,,66,917,,66,66,66,67,67,67,,67,,917,917,67,67,,,,67',
',67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,917,,,67,,,67',
'67,67,67,67,67,67,67,,67,67,67,,67,67,,67,67,67,,,,,,,,,,,,,,,,,,,,67',
',,67,,,67,67,,996,67,996,996,996,996,996,67,,,,,,,,67,996,,,,67,67,67',
'67,67,67,,,,67,67,,,,,,,67,996,,67,67,67,70,70,70,,70,,996,996,70,70',
',,,70,,70,70,70,70,70,70,70,,,,,,70,70,70,70,70,70,70,,,70,,,,996,,',
'70,,,70,70,70,70,70,70,70,70,,70,70,70,,70,70,,70,70,70,,,,,,,,,,,,',
',,,,,,,70,,,70,,,70,70,,994,70,994,994,994,994,994,70,,,,,,,,70,994',
',,,70,70,70,70,70,70,,,,70,70,70,,,,,70,70,994,,70,70,70,71,71,71,,71',
',994,994,71,71,,,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71',
',,71,,,,994,,,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,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,,992,768,992,992,992',
'992,992,768,,,,,,,,768,992,,,,768,768,768,768,768,768,,,,768,768,,,',
',,,768,992,,768,768,768,62,62,62,,62,,992,992,62,62,,,,62,,62,62,62',
'62,62,62,62,,,,,,62,62,62,62,62,62,62,,,62,,,,992,,,62,,,62,62,62,62',
'62,62,62,62,62,62,62,62,,62,62,,62,62,62,,,,,,,,,,,,,,,,,,,,62,,,62',
',,62,62,,,62,,62,,,,62,,,,,,,,62,,,,,62,62,62,62,62,62,,,,62,62,,,,',
',,62,,62,62,62,62,61,61,61,,61,,,,61,61,,,,61,,61,61,61,61,61,61,61',
',,,,,61,61,61,61,61,61,61,,,61,,,,,,,61,,,61,61,61,61,61,61,61,61,,61',
'61,61,,61,61,,61,61,61,,,,,,,,,,,,,,,,,,,,61,,,61,,,61,61,,915,61,915',
'915,915,915,915,61,,,,,,,,61,915,,,,61,61,61,61,61,61,,,,61,61,61,,',
',,,61,915,,61,61,61,503,503,503,,503,,915,915,503,503,,,,503,,503,503',
'503,503,503,503,503,,,,,,503,503,503,503,503,503,503,,,503,,,,915,,',
'503,,,503,503,503,503,503,503,503,503,,503,503,503,,503,503,,503,503',
'503,,,,,,,,,,,,,,,,,,,,503,,,503,,,503,503,,913,503,913,913,913,913',
'913,503,,,,,,,,503,913,,,,503,503,503,503,503,503,,,,503,503,,,,,,,503',
'913,,503,503,503,649,649,649,,649,,913,913,649,649,,,,649,,649,649,649',
'649,649,649,649,,,,,,649,649,649,649,649,649,649,,,649,,,,913,,,649',
',,649,649,649,649,649,649,649,649,,649,649,649,,649,649,,649,649,649',
',,,,,,,,,,,,,,,,,,,649,,,649,,,649,649,,888,649,888,888,888,888,888',
'649,,,,,,,,649,888,,,,649,649,649,649,649,649,,,,649,649,,,,,,,649,888',
',649,649,649,1005,1005,1005,,1005,,888,888,1005,1005,,,,1005,,1005,1005',
'1005,1005,1005,1005,1005,,,,,,1005,1005,1005,1005,1005,1005,1005,,,1005',
',,,888,,,1005,,,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005',
'1005,,1005,1005,,1005,1005,1005,,,,,,,,,,,,,,,,,,,,1005,,,1005,,,1005',
'1005,,,1005,,1005,,1005,,1005,,,,,,,,1005,,,,,1005,1005,1005,1005,1005',
'1005,,,,1005,1005,,,,,,,1005,,1005,1005,1005,1005,648,648,648,,648,',
',,648,648,,,,648,,648,648,648,648,648,648,648,,,,,,648,648,648,648,648',
'648,648,,,648,,,,,,,648,,,648,648,648,648,648,648,648,648,,648,648,648',
',648,648,,648,648,648,,,,,,,,,,,,,,,,,,,,648,,,648,,,648,648,,1040,648',
'1040,1040,1040,1040,1040,648,,,,,,,,648,1040,,,,648,648,648,648,648',
'648,,,,648,648,,,,,,,648,1040,,648,648,648,673,673,673,,673,,1040,1040',
'673,673,,,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673,673',
'673,673,,,673,,,,1040,,,673,,,673,673,673,673,673,673,673,673,,673,673',
'673,,673,673,,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,1009',
'673,1009,1009,1009,1009,1009,673,,,,,,,,673,1009,,,,673,673,673,673',
'673,673,,,,673,673,,,,,,,673,1009,,673,673,673,47,47,47,,47,,1009,1009',
'47,47,,,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,',
'1009,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,,47,47,47,,,,,',
',,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,47,,,,,47,47,47,47',
'47,47,,,,47,47,,,,,,,47,,,47,47,47,46,46,46,,46,,,,46,46,,,,46,,46,46',
'46,46,46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46,46,46',
'46,46,46,46,,46,46,46,,46,46,,46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,',
'46,46,,,46,,,,,,46,,,,,,,,46,,,,,46,46,46,46,46,46,,,,46,46,,,,,,,46',
',,46,46,46,111,111,111,111,111,,,,111,111,,,,111,,111,111,111,111,111',
'111,111,,,,,,111,111,111,111,111,111,111,,,111,,,,,,111,111,111,111',
'111,111,111,111,111,111,111,111,,111,111,111,,111,111,,111,111,111,',
',,,,,,,,,,,,,,,,,,111,,,111,,,111,111,,,111,,111,,,,111,,,,,,,,111,',
',,,111,111,111,111,111,111,,,,111,111,,,,,,111,111,,,111,111,111,116',
'116,116,,116,,,,116,116,,,,116,,116,116,116,116,116,116,116,,,,,,116',
'116,116,116,116,116,116,,,116,,,,,,,116,,,116,116,116,116,116,116,116',
'116,,116,116,116,,116,116,,116,116,116,,,,,,,,,,,,,,,,,,,,116,,,116',
',,116,116,,,116,,,,,,116,,,,,,,,116,,,,,116,116,116,116,116,116,,,,116',
'116,,,,,,,116,,,116,116,116,117,117,117,,117,,,,117,117,,,,117,,117',
'117,117,117,117,117,117,,,,,,117,117,117,117,117,117,117,,,117,,,,,',
',117,,,117,117,117,117,117,117,117,117,,117,117,117,,117,117,,117,117',
'117,,,,,,,,,,,,,,,,,,,,117,,,117,,,117,117,,,117,,,,,,117,,,,,,,,117',
',,,,117,117,117,117,117,117,,,,117,117,,,,,,,117,,,117,117,117,118,118',
'118,,118,,,,118,118,,,,118,,118,118,118,118,118,118,118,,,,,,118,118',
'118,118,118,118,118,,,118,,,,,,,118,,,118,118,118,118,118,118,118,118',
',118,118,118,,118,118,,118,118,118,,,,,,,,,,,,,,,,,,,,118,,,118,,,118',
'118,,,118,,,,,,118,,,,,,,,118,,,,,118,118,118,118,118,118,,,,118,118',
',,,,,,118,,,118,118,118,119,119,119,,119,,,,119,119,,,,119,,119,119',
'119,119,119,119,119,,,,,,119,119,119,119,119,119,119,,,119,,,,,,,119',
',,119,119,119,119,119,119,119,119,,119,119,119,,119,119,,119,119,119',
',,,,,,,,,,,,,,,,,,,119,,,119,,,119,119,,,119,,,,,,119,,,,,,,,119,,,',
',119,119,119,119,119,119,,,,119,119,,,,,,,119,,,119,119,119,120,120',
'120,120,120,,,,120,120,,,,120,,120,120,120,120,120,120,120,,,,,,120',
'120,120,120,120,120,120,,,120,,,,,,120,120,,120,120,120,120,120,120',
'120,120,120,,120,120,120,,120,120,,120,120,120,,,,,,,,,,,,,,,,,,,,120',
',,120,,,120,120,,,120,,120,,,,120,,,,,,,,120,,,,,120,120,120,120,120',
'120,,,,120,120,,,,,,,120,,,120,120,120,645,645,645,,645,,,,645,645,',
',,645,,645,645,645,645,645,645,645,,,,,,645,645,645,645,645,645,645',
',,645,,,,,,,645,,,645,645,645,645,645,645,645,645,,645,645,645,,645',
'645,,645,645,645,,,,,,,,,,,,,,,,,,,,645,,,645,,,645,645,,,645,,,,,,645',
',,,,,,,645,,,,,645,645,645,645,645,645,,,,645,645,,,,,,,645,,,645,645',
'645,644,644,644,,644,,,,644,644,,,,644,,644,644,644,644,644,644,644',
',,,,,644,644,644,644,644,644,644,,,644,,,,,,,644,,,644,644,644,644,644',
'644,644,644,,644,644,644,,644,644,,644,644,644,,,,,,,,,,,,,,,,,,,,644',
',,644,,,644,644,,,644,,,,,,644,,,,,,,,644,,,,,644,644,644,644,644,644',
',,,644,644,,,,,,,644,,,644,644,644,770,770,770,,770,,,,770,770,,,,770',
',770,770,770,770,770,770,770,,,,,,770,770,770,770,770,770,770,,,770',
',,,,,,770,,,770,770,770,770,770,770,770,770,,770,770,770,,770,770,,770',
'770,770,,,,,,,,,,,,,,,,,,,,770,,,770,,,770,770,,,770,,,,,,770,,,,,,',
',770,,,,,770,770,770,770,770,770,,,,770,770,,,,,,,770,,,770,770,770',
'45,45,45,,45,,,,45,45,,,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45,45',
'45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,,45,45',
'45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45',
'45,45,45,45,45,,,,45,45,,,,,,,45,,,45,45,45,208,208,208,,208,,,,208',
'208,,,,208,,208,208,208,208,208,208,208,,,,,,208,208,208,208,208,208',
'208,,,208,,,,,,,208,,,208,208,208,208,208,208,208,208,,208,208,208,',
'208,208,,208,208,208,,,,,,,,,,,,,,,,,,,,208,,,208,,,208,208,,,208,,208',
',,,208,,,,,,,,208,,,,,208,208,208,208,208,208,,,,208,208,,,,,,,208,',
',208,208,208,209,209,209,,209,,,,209,209,,,,209,,209,209,209,209,209',
'209,209,,,,,,209,209,209,209,209,209,209,,,209,,,,,,,209,,,209,209,209',
'209,209,209,209,209,,209,209,209,,209,209,,209,209,209,,,,,,,,,,,,,',
',,,,,,209,,,209,,,209,209,,,209,,,,,,209,,,,,,,,209,,,,,209,209,209',
'209,209,209,,,,209,209,,,,,,,209,,,209,209,209,210,210,210,,210,,,,210',
'210,,,,210,,210,210,210,210,210,210,210,,,,,,210,210,210,210,210,210',
'210,,,210,,,,,,,210,,,210,210,210,210,210,210,210,210,210,210,210,210',
',210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210,,,210,,,210,210,,,210,',
'210,,210,,210,,,,,,,,210,,,,,210,210,210,210,210,210,,,,210,210,,,,',
',,210,,210,210,210,210,639,639,639,,639,,,,639,639,,,,639,,639,639,639',
'639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,,639,,,639',
'639,639,639,639,639,639,639,,639,639,639,,639,639,,639,639,639,,,,,',
',,,,,,,,,,,,,,639,,,639,,,639,639,,,639,,,,,,639,,,,,,,,639,,,,,639',
'639,639,639,639,639,,,,639,639,,,,,,,639,,,639,639,639,638,638,638,',
'638,,,,638,638,,,,638,,638,638,638,638,638,638,638,,,,,,638,638,638',
'638,638,638,638,,,638,,,,,,,638,,,638,638,638,638,638,638,638,638,,638',
'638,638,,638,638,,638,638,638,,,,,,,,,,,,,,,,,,,,638,,,638,,,638,638',
',,638,,,,,,638,,,,,,,,638,,,,,638,638,638,638,638,638,,,,638,638,,,',
',,,638,,,638,638,638,214,214,214,,214,,,,214,214,,,,214,,214,214,214',
'214,214,214,214,,,,,,214,214,214,214,214,214,214,,,214,,,,,,,214,,,214',
'214,214,214,214,214,214,214,,214,214,214,,214,214,,214,214,214,,,,,',
',,,,,,,,,,,,,,214,,,214,,,214,214,,,214,,,,,,214,,,,,,,,214,,,,,214',
'214,214,214,214,214,,,,214,214,,,,,,,214,,,214,214,214,215,215,215,',
'215,,,,215,215,,,,215,,215,215,215,215,215,215,215,,,,,,215,215,215',
'215,215,215,215,,,215,,,,,,,215,,,215,215,215,215,215,215,215,215,,215',
'215,215,,215,215,,215,215,215,,,,,,,,,,,,,,,,,,,,215,,,215,,,215,215',
',,215,,215,,,,215,,,,,,,,215,,,,,215,215,215,215,215,215,,,,215,215',
',,,,,,215,,,215,215,215,216,216,216,,216,,,,216,216,,,,216,,216,216',
'216,216,216,216,216,,,,,,216,216,216,216,216,216,216,,,216,,,,,,,216',
',,216,216,216,216,216,216,216,216,,216,216,216,,216,216,,216,216,216',
',,,,,,,,,,,,,,,,,,,216,,,216,,,216,216,,,216,,,,,,216,,,,,,,,216,,,',
',216,216,216,216,216,216,,,,216,216,,,,,,,216,,,216,216,216,217,217',
'217,,217,,,,217,217,,,,217,,217,217,217,217,217,217,217,,,,,,217,217',
'217,217,217,217,217,,,217,,,,,,,217,,,217,217,217,217,217,217,217,217',
',217,217,217,,217,217,,217,217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217',
'217,,,217,,,,,,217,,,,,,,,217,,,,,217,217,217,217,217,217,,,,217,217',
',,,,,,217,,,217,217,217,218,218,218,,218,,,,218,218,,,,218,,218,218',
'218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,,218',
',,218,218,218,218,218,218,218,218,,218,218,218,,218,218,,218,218,218',
',,,,,,,,,,,,,,,,,,,218,,,218,,,218,218,,,218,,,,,,218,,,,,,,,218,,,',
',218,218,218,218,218,218,,,,218,218,,,,,,,218,,,218,218,218,219,219',
'219,,219,,,,219,219,,,,219,,219,219,219,219,219,219,219,,,,,,219,219',
'219,219,219,219,219,,,219,,,,,,,219,,,219,219,219,219,219,219,219,219',
',219,219,219,,219,219,,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,,,219',
'219,,,219,,,,,,219,,,,,,,,219,,,,,219,219,219,219,219,219,,,,219,219',
'219,,,,,,219,,,219,219,219,637,637,637,,637,,,,637,637,,,,637,,637,637',
'637,637,637,637,637,,,,,,637,637,637,637,637,637,637,,,637,,,,,,,637',
',,637,637,637,637,637,637,637,637,637,637,637,637,,637,637,,637,637',
'637,,,,,,,,,,,,,,,,,,,,637,,,637,,,637,637,,,637,,,,637,,637,,,,,,,',
'637,,,,,637,637,637,637,637,637,,,,637,637,,,,,,,637,,637,637,637,637',
'636,636,636,,636,,,,636,636,,,,636,,636,636,636,636,636,636,636,,,,',
',636,636,636,636,636,636,636,,,636,,,,,,,636,,,636,636,636,636,636,636',
'636,636,636,636,636,636,,636,636,,636,636,636,,,,,,,,,,,,,,,,,,,,636',
',,636,,,636,636,,,636,,636,,636,,636,,,,,,,,636,,,,,636,636,636,636',
'636,636,,,,636,636,,,,,,,636,,636,636,636,636,633,633,633,,633,,,,633',
'633,,,,633,,633,633,633,633,633,633,633,,,,,,633,633,633,633,633,633',
'633,,,633,,,,,,,633,,,633,633,633,633,633,633,633,633,,633,633,633,',
'633,633,,633,633,633,,,,,,,,,,,,,,,,,,,,633,,,633,,,633,633,,,633,,',
',,,633,,,,,,,,633,,,,,633,633,633,633,633,633,,,,633,633,,,,,,,633,',
',633,633,633,632,632,632,,632,,,,632,632,,,,632,,632,632,632,632,632',
'632,632,,,,,,632,632,632,632,632,632,632,,,632,,,,,,,632,,,632,632,632',
'632,632,632,632,632,,632,632,632,,632,632,,632,632,632,,,,,,,,,,,,,',
',,,,,,632,,,632,,,632,632,,,632,,632,,,,632,,,,,,,,632,,,,,632,632,632',
'632,632,632,,,,632,632,,,,,,,632,,,632,632,632,678,678,678,,678,,,,678',
'678,,,,678,,678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678',
'678,,,678,,,,,,,678,,,678,678,678,678,678,678,678,678,,678,678,678,',
'678,678,,,,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,,,,,',
',,,,,,,,,,678,678,678,678,678,678,,,,678,678,,,,,,,678,,,678,678,678',
'603,603,603,,603,,,,603,603,,,,603,,603,603,603,603,603,603,603,,,,',
',603,603,603,603,603,603,603,,,603,,,,,,,603,,,603,603,603,603,603,603',
'603,603,,603,603,603,,603,603,,603,603,603,,,,,,,,,,,,,,,,,,,,603,,',
'603,,,603,603,,,603,,,,,,603,,,,,,,,603,,,,,603,603,603,603,603,603',
',,,603,603,,,,,,,603,,,603,603,603,893,893,893,,893,,,,893,893,,,,893',
',893,893,893,893,893,893,893,,,,,,893,893,893,893,893,893,893,,,893',
',,,,,,893,,,893,893,893,893,893,893,893,893,,893,893,893,,893,893,,',
',893,,,,,,,,,,,,,,,,,,,,893,,,893,,,893,893,,,893,,,,,,,,,,,,,,,,,,',
'893,893,893,893,893,893,,,,893,893,,,,,,,893,,,893,893,893,230,230,230',
',230,,,,230,230,,,,230,,230,230,230,230,230,230,230,,,,,,230,230,230',
'230,230,230,230,,,230,,,,,,,230,,,230,230,230,230,230,230,230,230,,230',
'230,230,,230,230,,230,230,230,,,,,,,,,,,,,,,,,,,,230,,,230,,,230,230',
',,230,,,,,,230,,,,,,,,230,,,,,230,230,230,230,230,230,,,,230,230,,,',
',,,230,,,230,230,230,416,416,416,,416,,,,416,416,,,,416,,416,416,416',
'416,416,416,416,,,,,,416,416,416,416,416,416,416,,,416,,,,,,,416,,,416',
'416,416,416,416,416,416,416,,416,416,416,,416,416,,416,416,416,,,,,',
',,,,,,,,,,,,,,416,,,416,,,416,416,,,416,,,,,,416,,,,,,,,416,,,,,416',
'416,416,416,416,416,,,,416,416,,,,,,,416,,,416,416,416,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,233,233,233,,233,,,,233,233,,,,233,,233',
'233,233,233,233,233,233,,,,,,233,233,233,233,233,233,233,,,233,,,,,',
',233,,,233,233,233,233,233,233,233,233,,233,233,233,,233,233,,233,233',
'233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233,,,,,,233,,,,,,,,233',
',,,,233,233,233,233,233,233,,,,233,233,,,,,,,233,,,233,233,233,234,234',
'234,,234,,,,234,234,,,,234,,234,234,234,234,234,234,234,,,,,,234,234',
'234,234,234,234,234,,,234,,,,,,,234,,,234,234,234,234,234,234,234,234',
',234,234,234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,,,,234,,,234,,,234',
'234,,,234,,,,,,234,,,,,,,,234,,,,,234,234,234,234,234,234,,,,234,234',
',,,,,,234,,,234,234,234,235,235,235,,235,,,,235,235,,,,235,,235,235',
'235,235,235,235,235,,,,,,235,235,235,235,235,235,235,,,235,,,,,,,235',
',,235,235,235,235,235,235,235,235,,235,235,235,,235,235,,235,235,235',
',,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235,,,,,,235,,,,,,,,235,,,',
',235,235,235,235,235,235,,,,235,235,,,,,,,235,,,235,235,235,236,236',
'236,,236,,,,236,236,,,,236,,236,236,236,236,236,236,236,,,,,,236,236',
'236,236,236,236,236,,,236,,,,,,,236,,,236,236,236,236,236,236,236,236',
',236,236,236,,236,236,,236,236,236,,,,,,,,,,,,,,,,,,,,236,,,236,,,236',
'236,,,236,,,,,,236,,,,,,,,236,,,,,236,236,236,236,236,236,,,,236,236',
',,,,,,236,,,236,236,236,237,237,237,,237,,,,237,237,,,,237,,237,237',
'237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,,,237',
',,237,237,237,237,237,237,237,237,,237,237,237,,237,237,,237,237,237',
',,,,,,,,,,,,,,,,,,,237,,,237,,,237,237,,,237,,,,,,237,,,,,,,,237,,,',
',237,237,237,237,237,237,,,,237,237,,,,,,,237,,,237,237,237,238,238',
'238,,238,,,,238,238,,,,238,,238,238,238,238,238,238,238,,,,,,238,238',
'238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238,238',
',238,238,238,,238,238,,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238',
'238,,,238,,,,,,238,,,,,,,,238,,,,,238,238,238,238,238,238,,,,238,238',
',,,,,,238,,,238,238,238,239,239,239,,239,,,,239,239,,,,239,,239,239',
'239,239,239,239,239,,,,,,239,239,239,239,239,239,239,,,239,,,,,,,239',
',,239,239,239,239,239,239,239,239,,239,239,239,,239,239,,239,239,239',
',,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,,,,,,,,239,,,',
',239,239,239,239,239,239,,,,239,239,,,,,,,239,,,239,239,239,240,240',
'240,,240,,,,240,240,,,,240,,240,240,240,240,240,240,240,,,,,,240,240',
'240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240,240',
',240,240,240,,240,240,,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240',
'240,,,240,,,,,,240,,,,,,,,240,,,,,240,240,240,240,240,240,,,,240,240',
',,,,,,240,,,240,240,240,241,241,241,,241,,,,241,241,,,,241,,241,241',
'241,241,241,241,241,,,,,,241,241,241,241,241,241,241,,,241,,,,,,,241',
',,241,241,241,241,241,241,241,241,,241,241,241,,241,241,,241,241,241',
',,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,,,,,,241,,,,,,,,241,,,',
',241,241,241,241,241,241,,,,241,241,,,,,,,241,,,241,241,241,242,242',
'242,,242,,,,242,242,,,,242,,242,242,242,242,242,242,242,,,,,,242,242',
'242,242,242,242,242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242',
',242,242,242,,242,242,,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242',
'242,,,242,,,,,,242,,,,,,,,242,,,,,242,242,242,242,242,242,,,,242,242',
',,,,,,242,,,242,242,242,243,243,243,,243,,,,243,243,,,,243,,243,243',
'243,243,243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,,243',
',,243,243,243,243,243,243,243,243,,243,243,243,,243,243,,243,243,243',
',,,,,,,,,,,,,,,,,,,243,,,243,,,243,243,,,243,,,,,,243,,,,,,,,243,,,',
',243,243,243,243,243,243,,,,243,243,,,,,,,243,,,243,243,243,244,244',
'244,,244,,,,244,244,,,,244,,244,244,244,244,244,244,244,,,,,,244,244',
'244,244,244,244,244,,,244,,,,,,,244,,,244,244,244,244,244,244,244,244',
',244,244,244,,244,244,,244,244,244,,,,,,,,,,,,,,,,,,,,244,,,244,,,244',
'244,,,244,,,,,,244,,,,,,,,244,,,,,244,244,244,244,244,244,,,,244,244',
',,,,,,244,,,244,244,244,245,245,245,,245,,,,245,245,,,,245,,245,245',
'245,245,245,245,245,,,,,,245,245,245,245,245,245,245,,,245,,,,,,,245',
',,245,245,245,245,245,245,245,245,,245,245,245,,245,245,,245,245,245',
',,,,,,,,,,,,,,,,,,,245,,,245,,,245,245,,,245,,,,,,245,,,,,,,,245,,,',
',245,245,245,245,245,245,,,,245,245,,,,,,,245,,,245,245,245,246,246',
'246,,246,,,,246,246,,,,246,,246,246,246,246,246,246,246,,,,,,246,246',
'246,246,246,246,246,,,246,,,,,,,246,,,246,246,246,246,246,246,246,246',
',246,246,246,,246,246,,246,246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246',
'246,,,246,,,,,,246,,,,,,,,246,,,,,246,246,246,246,246,246,,,,246,246',
',,,,,,246,,,246,246,246,247,247,247,,247,,,,247,247,,,,247,,247,247',
'247,247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,,,247',
',,247,247,247,247,247,247,247,247,,247,247,247,,247,247,,247,247,247',
',,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,247,,,',
',247,247,247,247,247,247,,,,247,247,,,,,,,247,,,247,247,247,248,248',
'248,,248,,,,248,248,,,,248,,248,248,248,248,248,248,248,,,,,,248,248',
'248,248,248,248,248,,,248,,,,,,,248,,,248,248,248,248,248,248,248,248',
',248,248,248,,248,248,,248,248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248',
'248,,,248,,,,,,248,,,,,,,,248,,,,,248,248,248,248,248,248,,,,248,248',
',,,,,,248,,,248,248,248,249,249,249,,249,,,,249,249,,,,249,,249,249',
'249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249,,,,,,,249',
',,249,249,249,249,249,249,249,249,,249,249,249,,249,249,,249,249,249',
',,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,,,249,,,',
',249,249,249,249,249,249,,,,249,249,,,,,,,249,,,249,249,249,250,250',
'250,,250,,,,250,250,,,,250,,250,250,250,250,250,250,250,,,,,,250,250',
'250,250,250,250,250,,,250,,,,,,,250,,,250,250,250,250,250,250,250,250',
',250,250,250,,250,250,,250,250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250',
'250,,,250,,,,,,250,,,,,,,,250,,,,,250,250,250,250,250,250,,,,250,250',
',,,,,,250,,,250,250,250,251,251,251,,251,,,,251,251,,,,251,,251,251',
'251,251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251',
',,251,251,251,251,251,251,251,251,,251,251,251,,251,251,,251,251,251',
',,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,251,,,',
',251,251,251,251,251,251,,,,251,251,,,,,,,251,,,251,251,251,252,252',
'252,,252,,,,252,252,,,,252,,252,252,252,252,252,252,252,,,,,,252,252',
'252,252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252',
',252,252,252,,252,252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252',
'252,,,252,,,,,,252,,,,,,,,252,,,,,252,252,252,252,252,252,,,,252,252',
',,,,,,252,,,252,252,252,253,253,253,,253,,,,253,253,,,,253,,253,253',
'253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,,,253',
',,253,253,253,253,253,253,253,253,,253,253,253,,253,253,,253,253,253',
',,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,',
',253,253,253,253,253,253,,,,253,253,,,,,,,253,,,253,253,253,254,254',
'254,,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254',
'254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254,254,254,254',
',254,254,254,,254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254',
'254,,,254,,,,,,254,,,,,,,,254,,,,,254,254,254,254,254,254,,,,254,254',
',,,,,,254,,,254,254,254,255,255,255,,255,,,,255,255,,,,255,,255,255',
'255,255,255,255,255,,,,,,255,255,255,255,255,255,255,,,255,,,,,,,255',
',,255,255,255,255,255,255,255,255,,255,255,255,,255,255,,255,255,255',
',,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255,,,,,,,,255,,,',
',255,255,255,255,255,255,,,,255,255,,,,,,,255,,,255,255,255,256,256',
'256,,256,,,,256,256,,,,256,,256,256,256,256,256,256,256,,,,,,256,256',
'256,256,256,256,256,,,256,,,,,,,256,,,256,256,256,256,256,256,256,256',
',256,256,256,,256,256,,256,256,256,,,,,,,,,,,,,,,,,,,,256,,,256,,,256',
'256,,,256,,,,,,256,,,,,,,,256,,,,,256,256,256,256,256,256,,,,256,256',
',,,,,,256,,,256,256,256,257,257,257,,257,,,,257,257,,,,257,,257,257',
'257,257,257,257,257,,,,,,257,257,257,257,257,257,257,,,257,,,,,,,257',
',,257,257,257,257,257,257,257,257,,257,257,257,,257,257,,257,257,257',
',,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257,,,,,,257,,,,,,,,257,,,',
',257,257,257,257,257,257,,,,257,257,,,,,,,257,,,257,257,257,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,599,599,599,,599,,,,599,599,,,,599,,599,599',
'599,599,599,599,599,,,,,,599,599,599,599,599,599,599,,,599,,,,,,,599',
',,599,599,599,599,599,599,599,599,,599,599,599,,599,599,,599,599,599',
',,,,,,,,,,,,,,,,,,,599,,,599,,,599,599,,,599,,,,,,599,,,,,,,,599,,,',
',599,599,599,599,599,599,,,,599,599,,,,,,,599,,,599,599,599,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,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,265,265,734,734,734,,734,,,,734,734,,,,734,,734,734,734,734,734',
'734,734,,,,,,734,734,734,734,734,734,734,,,734,,,,,,,734,,,734,734,734',
'734,734,734,734,734,,734,734,734,,734,734,,734,734,734,,,,,,,,,,,,,',
',,,,,,734,,,734,,,734,734,,,734,,734,,,,734,,,,,,,,734,,,,,734,734,734',
'734,734,734,,,,734,734,,,,,,,734,,,734,734,734,271,271,271,,271,,,,271',
'271,,,,271,,271,271,271,271,271,271,271,,,,,,271,271,271,271,271,271',
'271,,,271,,,,,,,271,,,271,271,271,271,271,271,271,271,271,271,271,271',
',271,271,,271,271,271,,,,,,,,,,,,,,,,,,,,271,,,271,,,271,271,,,271,',
'271,,271,,271,,,,,,,,271,,,,,271,271,271,271,271,271,,,,271,271,,,,',
',,271,,271,271,271,271,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,274,274,274',
'8,8,8,8,8,,,,8,8,,,,8,,8,8,8,8,8,8,8,,,,,,8,8,8,8,8,8,8,,,8,,,,,,8,8',
'8,8,8,8,8,8,8,8,8,8,,8,8,8,,8,8,,8,8,8,,,,,,,,,,,,,,,,,,,,8,,,8,,,8',
'8,,,8,,8,,,,8,,,,,,,,8,,,,,8,8,8,8,8,8,,,,8,8,,,,,,,8,,,8,8,8,34,34',
'34,,34,,,,34,34,,,,34,,34,34,34,34,34,34,34,,,,,,34,34,34,34,34,34,34',
',,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34,,34,34,,34,34,34',
',,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,34,,34,,,,,,,,34,,,,,34',
'34,34,34,34,34,,,,34,34,,,,,,,34,,34,34,34,34,587,587,587,,587,,,,587',
'587,,,,587,,587,587,587,587,587,587,587,,,,,,587,587,587,587,587,587',
'587,,,587,,,,,,,587,,,587,587,587,587,587,587,587,587,587,587,587,587',
',587,587,,587,587,587,,,,,,,,,,,,,,,,,,,,587,,,587,,,587,587,,,587,',
'587,,587,,587,,,,,,,,587,,,,,587,587,587,587,587,587,,,,587,587,,,,',
',,587,,587,587,587,587,281,281,281,,281,,,,281,281,,,,281,,281,281,281',
'281,281,281,281,,,,,,281,281,281,281,281,281,281,,,281,,,,,,,281,,,281',
'281,281,281,281,281,281,281,,281,281,281,,281,281,,281,281,281,,,,,',
',,,,,,,,,,,,,,281,,,281,,,281,281,,,281,,,,,,281,,,,,,,,281,,,,,281',
'281,281,281,281,281,,,,281,281,,,,,,,281,,,281,281,281,784,784,784,',
'784,,,,784,784,,,,784,,784,784,784,784,784,784,784,,,,,,784,784,784',
'784,784,784,784,,,784,,,,,,,784,,,784,784,784,784,784,784,784,784,,784',
'784,784,,784,784,,784,784,784,,,,,,,,,,,,,,,,,,,,784,,,784,,,784,784',
',,784,,,,,,784,,,,,,,,784,,,,,784,784,784,784,784,784,,,,784,784,,,',
',,,784,,,784,784,784,283,283,283,,283,,,,283,283,,,,283,,283,283,283',
'283,283,283,283,,,,,,283,283,283,283,283,283,283,,,283,,,,,,,283,,,283',
'283,283,283,283,283,283,283,,283,283,283,,283,283,,283,283,283,,,,,',
',,,,,,,,,,,,,,283,,,283,,,283,283,,,283,,,,,,283,,,,,,,,283,,,,,283',
'283,283,283,283,283,,,,283,283,,,,,,,283,,,283,283,283,285,285,285,',
'285,,,,285,285,,,,285,,285,285,285,285,285,285,285,,,,,,285,285,285',
'285,285,285,285,,,285,,,,,,,285,,,285,285,285,285,285,285,285,285,,285',
'285,285,,285,285,,285,285,285,,,,,,,,,,,,,,,,,,,,285,,,285,,,285,285',
',,285,,,,,,285,,,,,,,,285,,,,,285,285,285,285,285,285,,,,285,285,,,',
',,,285,,,285,285,285,286,286,286,,286,,,,286,286,,,,286,,286,286,286',
'286,286,286,286,,,,,,286,286,286,286,286,286,286,,,286,,,,,,,286,,,286',
'286,286,286,286,286,286,286,,286,286,286,,286,286,,286,286,286,,,,,',
',,,,,,,,,,,,,,286,,,286,,,286,286,,,286,,,,,,286,,,,,,,,286,,,,,286',
'286,286,286,286,286,,,,286,286,,,,,,,286,,,286,286,286,785,785,785,',
'785,,,,785,785,,,,785,,785,785,785,785,785,785,785,,,,,,785,785,785',
'785,785,785,785,,,785,,,,,,,785,,,785,785,785,785,785,785,785,785,,785',
'785,785,,785,785,,785,785,785,,,,,,,,,,,,,,,,,,,,785,,,785,,,785,785',
',,785,,,,,,785,,,,,,,,785,,,,,785,785,785,785,785,785,,,,785,785,,,',
',,,785,,,785,785,785,878,878,878,,878,,,,878,878,,,,878,,878,878,878',
'878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878,,,878',
'878,878,878,878,878,878,878,,878,878,878,,878,878,,878,878,878,,,,,',
',,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,878,,,,,878',
'878,878,878,878,878,,,,878,878,,,,,,,878,,,878,878,878,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,453,453,453,,453,,,,453,453,,,,453',
',453,453,453,453,453,453,453,,,,,,453,453,453,453,453,453,453,,,453',
',,,,,,453,,,453,453,453,453,453,453,453,453,453,453,453,453,,453,453',
',453,453,453,,,,,,,,,,,,,,,,,,,,453,,,453,,,453,453,,,453,,453,,453',
',453,,,,,,,,453,,,,,453,453,453,453,453,453,,,,453,453,,,,,,,453,,453',
'453,453,453,33,33,33,,33,,,,33,33,,,,33,,33,33,33,33,33,33,33,,,,,,33',
'33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33,33,33,33,33,33,33',
',33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33,,,33,,33,,33,,33',
',,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,,,,,,,33,,33,33,33,33,32,32',
'32,,32,,,,32,32,,,,32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32',
',,32,,,,,,,32,,,32,32,32,32,32,32,32,32,32,32,32,32,,32,32,,32,32,32',
',,,,,,,,,,,,,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,,,,,,32,,,,,32',
'32,32,32,32,32,,,,32,32,,,,,,,32,,32,32,32,32,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,,',
',,,786,,,,,,,,786,,,,,786,786,786,786,786,786,,,,786,786,,,,,,,786,',
',786,786,786,455,455,455,,455,,,,455,455,,,,455,,455,455,455,455,455',
'455,455,,,,,,455,455,455,455,455,455,455,,,455,,,,,,,455,,,455,455,455',
'455,455,455,455,455,,455,455,455,,455,455,,455,455,455,,,,,,,,,,,,,',
',,,,,,455,,,455,,,455,455,,,455,,,,,,455,,,,,,,,455,,,,,455,455,455',
'455,455,455,,,,455,455,,,,,,,455,,,455,455,455,298,298,298,,298,,,,298',
'298,,,,298,,298,298,298,298,298,298,298,,,,,,298,298,298,298,298,298',
'298,,,298,,,,,,,298,,,298,298,298,298,298,298,298,298,,298,298,298,',
'298,298,,,,298,,,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,,298,,,,,,,,',
',,,,,,,,,,298,298,298,298,298,298,,,,298,298,,,,298,,,298,,,298,298',
'298,456,456,456,,456,,,,456,456,,,,456,,456,456,456,456,456,456,456',
',,,,,456,456,456,456,456,456,456,,,456,,,,,,,456,,,456,456,456,456,456',
'456,456,456,,456,456,456,,456,456,,456,456,456,,,,,,,,,,,,,,,,,,,,456',
',,456,,,456,456,,,456,,,,,,456,,,,,,,,456,,,,,456,456,456,456,456,456',
',,,456,456,,,,,,,456,,,456,456,456,787,787,787,,787,,,,787,787,,,,787',
',787,787,787,787,787,787,787,,,,,,787,787,787,787,787,787,787,,,787',
',,,,,,787,,,787,787,787,787,787,787,787,787,,787,787,787,,787,787,,787',
'787,787,,,,,,,,,,,,,,,,,,,,787,,,787,,,787,787,,,787,,,,,,787,,,,,,',
',787,,,,,787,787,787,787,787,787,,,,787,787,,,,,,,787,,,787,787,787',
'789,789,789,,789,,,,789,789,,,,789,,789,789,789,789,789,789,789,,,,',
',789,789,789,789,789,789,789,,,789,,,,,,,789,,,789,789,789,789,789,789',
'789,789,,789,789,789,,789,789,,789,789,789,,,,,,,,,,,,,,,,,,,,789,,',
'789,,,789,789,,,789,,,,,,789,,,,,,,,789,,,,,789,789,789,789,789,789',
',,,789,789,,,,,,,789,,,789,789,789,566,566,566,,566,,,,566,566,,,,566',
',566,566,566,566,566,566,566,,,,,,566,566,566,566,566,566,566,,,566',
',,,,,,566,,,566,566,566,566,566,566,566,566,,566,566,566,,566,566,,566',
'566,566,,,,,,,,,,,,,,,,,,,,566,,,566,,,566,566,,,566,,,,,,566,,,,,,',
',566,,,,,566,566,566,566,566,566,,,,566,566,,,,,,,566,,,566,566,566',
'689,689,689,,689,,,,689,689,,,,689,,689,689,689,689,689,689,689,,,,',
',689,689,689,689,689,689,689,,,689,,,,,,,689,,,689,689,689,689,689,689',
'689,689,,689,689,689,,689,689,,,,689,,,,,,,,,,,,,,,,,,,,689,,,689,,',
'689,689,,,689,,,,,,,,,,,,,,,,,,,689,689,689,689,689,689,,,,689,689,',
',,,,,689,,,689,689,689,801,801,801,,801,,,,801,801,,,,801,,801,801,801',
'801,801,801,801,,,,,,801,801,801,801,801,801,801,,,801,,,,,,,801,,,801',
'801,801,801,801,801,801,801,,801,801,801,,801,801,,,,801,,,,,,,,,,,',
',,,,,,,,801,,,801,,,801,801,,,801,,,,,,,,,,,,,,,,,,,801,801,801,801',
'801,801,,,,801,801,,,,,,,801,,,801,801,801,746,746,746,,746,,,,746,746',
',,,746,,746,746,746,746,746,746,746,,,,,,746,746,746,746,746,746,746',
',,746,,,,,,,746,,,746,746,746,746,746,746,746,746,746,746,746,746,,746',
'746,,746,746,746,,,,,,,,,,,,,,,,,,,,746,,,746,,,746,746,,,746,,746,',
'746,,746,,,,,,,,746,,,,,746,746,746,746,746,746,,,,746,746,,,,,,,746',
',746,746,746,746,457,457,457,,457,,,,457,457,,,,457,,457,457,457,457',
'457,457,457,,,,,,457,457,457,457,457,457,457,,,457,,,,,,,457,,,457,457',
'457,457,457,457,457,457,,457,457,457,,457,457,,457,457,457,,,,,,,,,',
',,,,,,,,,,457,,,457,,,457,457,,,457,,,,,,457,,,,,,,,457,,,,,457,457',
'457,457,457,457,,,,457,457,,,,,,,457,,,457,457,457,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,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,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,877,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,,542,542',
'542,542,315,315,315,,315,,,,315,315,,,,315,,315,315,315,315,315,315',
'315,,,,,,315,315,315,315,315,315,315,,,315,,,,,,,315,,,315,315,315,315',
'315,315,315,315,,315,315,315,,315,315,,,,315,,,,,,,,,,,,,,,,,,,,315',
',,315,,,315,315,,,315,,,,,,,,,,,,,,,,,,,315,315,315,315,315,315,,,,315',
'315,,,,,,,315,,,315,315,315,539,539,539,,539,,,,539,539,,,,539,,539',
'539,539,539,539,539,539,,,,,,539,539,539,539,539,539,539,,,539,,,,,',
',539,,,539,539,539,539,539,539,539,539,539,539,539,539,,539,539,,539',
'539,539,,,,,,,,,,,,,,,,,,,,539,,,539,,,539,539,,,539,,539,,,,539,,,',
',,,,539,,,,,539,539,539,539,539,539,,,,539,539,,,,,,,539,,539,539,539',
'539,846,846,846,,846,,,,846,846,,,,846,,846,846,846,846,846,846,846',
',,,,,846,846,846,846,846,846,846,,,846,,,,,,,846,,,846,846,846,846,846',
'846,846,846,,846,846,846,,846,846,,846,846,846,,,,,,,,,,,,,,,,,,,,846',
',,846,,,846,846,,,846,,,,,,846,,,,,,,,846,,,,,846,846,846,846,846,846',
',,,846,846,,,,,,,846,,,846,846,846,859,859,859,,859,,,,859,859,,,,859',
',859,859,859,859,859,859,859,,,,,,859,859,859,859,859,859,859,,,859',
',,,,,,859,,,859,859,859,859,859,859,859,859,,859,859,859,,859,859,,859',
'859,859,,,,,,,,,,,,,,,,,,,,859,,,859,,,859,859,,,859,,,,,,859,,,,,,',
',859,,,,,859,859,859,859,859,859,,,,859,859,,,,,,,859,,,859,859,859',
'533,533,533,,533,,,,533,533,,,,533,,533,533,533,533,533,533,533,,,,',
',533,533,533,533,533,533,533,,,533,,,,,,,533,,,533,533,533,533,533,533',
'533,533,,533,533,533,,533,533,,533,533,533,,,,,,,,,,,,,,,,,,,,533,,',
'533,,,533,533,,,533,,,,,,533,,,,,,,,533,,,,,533,533,533,533,533,533',
',,,533,533,,,,,,,533,,,533,533,533,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',
'324,324,324,,324,,,,324,324,,,,324,,324,324,324,324,324,324,324,,,,',
',324,324,324,324,324,324,324,,,324,,,,,,,324,,,324,324,324,324,324,324',
'324,324,,324,324,324,,324,324,,324,324,324,,,,,,,,,,,,,,,,,,,,324,,',
'324,324,,324,324,,,324,,,,,,324,,,,,,,,324,,,,,324,324,324,324,324,324',
',,,324,324,,,,,,,324,,,324,324,324,713,713,713,,713,,,,713,713,,,,713',
',713,713,713,713,713,713,713,,,,,,713,713,713,713,713,713,713,,,713',
',,,,,,713,,,713,713,713,713,713,713,713,713,,713,713,713,,713,713,,713',
'713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,,,,,,713,,,,,,',
',713,,,,,713,713,713,713,713,713,,,,713,713,,,,,,,713,,,713,713,713',
'529,529,529,,529,,,,529,529,,,,529,,529,529,529,529,529,529,529,,,,',
',529,529,529,529,529,529,529,,,529,,,,,,,529,,,529,529,529,529,529,529',
'529,529,,529,529,529,,529,529,,529,529,529,,,,,,,,,,,,,,,,,,,,529,,',
'529,,,529,529,,,529,,,,,,529,,,,,,,,529,,,,,529,529,529,529,529,529',
',,,529,529,,,,,,,529,,,529,529,529,498,498,498,,498,,,,498,498,,,,498',
',498,498,498,498,498,498,498,,,,,,498,498,498,498,498,498,498,,,498',
',,,,,,498,,,498,498,498,498,498,498,498,498,498,498,498,498,,498,498',
',498,498,498,,,,,,,,,,,,,,,,,,,,498,,,498,,,498,498,,,498,,498,,498',
',498,,,,,,,,498,,,,,498,498,498,498,498,498,,,,498,498,,,,,,,498,,498',
'498,498,498,528,528,528,,528,,,,528,528,,,,528,,528,528,528,528,528',
'528,528,,,,,,528,528,528,528,528,528,528,,,528,,,,,,,528,,,528,528,528',
'528,528,528,528,528,,528,528,528,,528,528,,528,528,528,,,,,,,,,,,,,',
',,,,,,528,,,528,,,528,528,,,528,,,,,,528,,,,,,,,528,,,,,528,528,528',
'528,528,528,,,,528,528,,,,,,,528,,,528,528,528,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,740,740,740,,740,,,,740,740,,,,740,,740,740,740,740,740',
'740,740,,,,,,740,740,740,740,740,740,740,,,740,,,,,,,740,,,740,740,740',
'740,740,740,740,740,,740,740,740,,740,740,,740,740,740,,,,,,,,,,,,,',
',,,,,,740,,,740,,,740,740,,,740,,,,,,740,,,,,,,,740,,,,,740,740,740',
'740,740,740,,,,740,740,,,,,,,740,,,740,740,740,508,508,508,508,508,',
',,508,508,,,,508,,508,508,508,508,508,508,508,,,,,,508,508,508,508,508',
'508,508,,,508,,,,,,508,508,,508,508,508,508,508,508,508,508,508,,508',
'508,508,,508,508,,508,508,508,,,,,,,,,,,,,,,,,,,,508,,,508,,,508,508',
',,508,,508,,,,508,,,,,,,,508,,,,,508,508,508,508,508,508,,,,508,508',
',,,,,508,508,,,508,508,508,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,358',
'358,358,358,,,,358,358,,,,,,,358,,,358,358,358,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,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,515,515,515,,515,,,,515,515',
',,,515,,515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515',
',,515,,,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515',
'515,,,,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,,,,,,,',
',,,,,,515,515,515,515,515,515,,,,515,515,,,,,,,515,,,515,515,515,905',
'905,905,,905,,,,905,905,,,,905,,905,905,905,905,905,905,905,,,,,,905',
'905,905,905,905,905,905,,,905,,,,,,,905,,,905,905,905,905,905,905,905',
'905,,905,905,905,,905,905,,,,905,,,,,,,,,,,,,,,,,,,,905,,,905,,,905',
'905,,,905,,,,,,,,,,,,,,,,,,,905,905,905,905,905,905,,,,905,905,,,,,',
',905,,,905,905,905,501,501,501,,501,,,,501,501,,,,501,,501,501,501,501',
'501,501,501,,,,,,501,501,501,501,501,501,501,,,501,,,,,,,501,,,501,501',
'501,501,501,501,501,501,501,501,501,501,,501,501,,501,501,501,,,,,,',
',,,,,,,,,,,,,501,,,501,,,501,501,,,501,,,,501,,501,,,,,,,,501,,,,,501',
'501,501,501,501,501,,,,501,501,,,,,,,501,,501,501,501,501,343,343,343',
',343,,,,343,343,,,,343,,343,343,343,343,343,343,343,,,,,,343,343,343',
'343,343,343,343,,,343,,,,,,,343,,,343,343,343,343,343,343,343,343,,343',
'343,343,,343,343,,343,343,343,,,,,,,,,,,,,,,,,,,,343,,,343,,,343,343',
',,343,,,,,,343,,,,,,,,343,,,,,343,343,343,343,343,343,,,,343,343,,,',
',,,343,,,343,343,343,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,524,524,524,',
'524,,,,524,524,,,,524,,524,524,524,524,524,524,524,,,,,,524,524,524',
'524,524,524,524,,,524,,,,,,,524,,,524,524,524,524,524,524,524,524,,524',
'524,524,,524,524,,,,524,,,,,59,,,,,,,59,59,59,,,59,59,59,524,59,,524',
',,524,524,,,524,59,59,59,,,,,,,,59,59,,59,59,59,59,59,524,524,524,524',
'524,524,,,,524,524,,,,,,,524,,,524,524,524,59,59,59,59,59,59,59,59,59',
'59,59,59,59,59,,,59,59,59,,,59,,,59,,,59,59,,59,,59,,59,,59,59,59,59',
'59,59,59,,59,,59,,,,,,,,,,,,,59,59,59,59,437,59,,59,,,,437,437,437,',
',437,437,437,707,437,707,707,707,707,707,,,,437,437,437,437,,,707,,',
',,437,437,,437,437,437,437,437,,,,,,,,,,707,,,,,,,,,707,707,707,707',
',437,437,437,437,437,437,437,437,437,437,437,437,437,437,,,437,437,437',
',,437,,,437,,,437,437,,437,707,437,,437,,437,437,437,437,437,437,437',
',437,437,437,,,,,,,,,,,,,437,437,437,437,436,437,,437,,,,436,436,436',
',,436,436,436,339,436,339,339,339,339,339,,,,436,436,436,436,,,339,',
',,,436,436,,436,436,436,436,436,,,,,,,,,,339,339,,,,,,,,339,339,339',
'339,,436,436,436,436,436,436,436,436,436,436,436,436,436,436,,,436,436',
'436,,,436,,,436,,,436,436,,436,339,436,,436,,436,436,436,436,436,436',
'436,,436,436,436,,,,,,,,,,,,,436,436,436,436,30,436,,436,,,,30,30,30',
',,30,30,30,709,30,709,709,709,709,709,,,,30,30,30,,,,709,,,,,30,30,',
'30,30,30,30,30,,,,,,,,,,709,,,,,,,,,709,709,709,709,,30,30,30,30,30',
'30,30,30,30,30,30,30,30,30,,,30,30,30,,,30,,30,30,,,30,30,,30,709,30',
',30,,30,30,30,30,30,30,30,,30,30,30,,,,,,,,,,,,427,30,30,,30,,30,427',
'427,427,,,427,427,427,940,427,940,940,940,940,940,,,,427,427,427,,,',
'940,,,,,427,427,,427,427,427,427,427,,,,,,,,,,940,940,,,,,,,,940,940',
'940,940,,427,427,427,427,427,427,427,427,427,427,427,427,427,427,,,427',
'427,427,,,427,,427,427,,,427,427,,427,940,427,,427,,427,427,427,427',
'427,427,427,,427,427,427,,,,,,,,,,,,485,427,427,,427,,427,485,485,485',
',,485,485,485,547,485,547,547,547,547,547,,,,485,485,,,,,547,,,,,485',
'485,,485,485,485,485,485,,,,,,,,,,547,,,,,,,,,547,547,547,547,,31,,',
',,,,31,31,31,,485,31,31,31,,31,,485,,,,,485,485,,31,31,,,,547,,,,,31',
'31,,31,31,31,31,31,,485,485,,,,,,,,,,,,,485,,,,,485,,,31,31,31,31,31',
'31,31,31,31,31,31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31',
',31,31,31,31,31,31,31,,31,,31,,,,,,211,211,,,211,,,31,31,,31,,31,211',
'211,,211,211,211,211,211,211,211,,,211,211,,,,211,211,211,211,,,,,,211',
',,,,,,,211,211,,211,211,211,211,211,211,211,211,211,211,211,,990,211',
'990,990,990,990,990,,,,,261,261,,,261,990,,,,,211,,,261,261,211,261',
'261,261,261,261,261,261,,,261,261,990,,,261,261,261,261,,,990,990,990',
'990,,,,,,,,261,261,,261,261,261,261,261,261,261,261,261,261,261,,,261',
',,,,,,,,990,589,589,,,589,,,,,,261,,,589,589,261,589,589,589,589,589',
'589,589,,,589,589,,,,589,589,589,589,,,,,,589,,,,,,,,589,589,,589,589',
'589,589,589,589,589,589,589,589,589,,,589,,,,,,,,,,745,745,,,745,,,',
',,589,,,745,745,589,745,745,745,745,745,745,745,,,745,745,,,,745,745',
'745,745,,,,,,745,,,,,,,,745,745,,745,745,745,745,745,745,745,745,745',
'745,745,,,745,,,,,,,,,,588,588,,,588,,,,,,745,,,588,588,745,588,588',
'588,588,588,588,588,,,588,588,,,,588,588,588,588,,,,,,588,,,,,,,,588',
'588,,588,588,588,588,588,588,588,588,588,588,588,,,588,,,,,,,,,,1006',
'1006,,,1006,,,,,,588,,,1006,1006,588,1006,1006,1006,1006,1006,1006,1006',
',,1006,1006,,,,1006,1006,1006,1006,,,,,,1006,,,,,,,,1006,1006,,1006',
'1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,,,1006,,,,,,,,,,744',
'744,,,744,,,,,,1006,,,744,744,1006,744,744,744,744,744,744,744,,,744',
'744,,,,744,744,744,744,,,,,,744,,,,,,,,744,744,,744,744,744,744,744',
'744,744,744,744,744,744,,,744,,,,,,,,,,1007,1007,,,1007,,,,,,744,,,1007',
'1007,744,1007,1007,1007,1007,1007,1007,1007,,,1007,1007,,,,1007,1007',
'1007,1007,,,,,,1007,,,,,,,,1007,1007,,1007,1007,1007,1007,1007,1007',
'1007,1007,1007,1007,1007,,,1007,,,,,,,,,,957,957,,,957,,,,,,1007,,,957',
'957,1007,957,957,957,957,957,957,957,,,957,957,,,,957,957,957,957,,',
',,,957,,,,,,,,957,957,,957,957,957,957,957,957,957,957,957,957,957,',
',957,,,,,,,,,,452,452,,,452,,,,,,957,,,452,452,957,452,452,452,452,452',
'452,452,,,452,452,,,,452,452,452,452,,,,,,452,,,,,,,,452,452,,452,452',
'452,452,452,452,452,452,452,452,452,,,452,,,,,,,,,,451,451,,,451,,,',
',,452,,,451,451,452,451,451,451,451,451,451,451,,,451,451,,,,451,451',
'451,451,,,,,,451,,,,,,,,451,451,,451,451,451,451,451,451,451,451,451',
'451,451,,,451,,,,,,,,,,518,518,,,518,,,,,,451,,,518,518,451,518,518',
'518,518,518,518,518,,,518,518,,,,518,518,518,518,,,,,,518,,,,,,,,518',
'518,,518,518,518,518,518,518,518,518,518,518,518,,,518,,,,,,,,,,530',
'530,,,530,,,,,,518,,,530,530,518,530,530,530,530,530,530,530,,,530,530',
',,,530,530,530,530,,,,,,530,,,,,,,,530,530,,530,530,530,530,530,530',
'530,530,530,530,530,,,530,,,,,,,,,,212,212,,,212,,,,,,530,,,212,212',
'530,212,212,212,212,212,212,212,,,212,212,,,,212,212,212,212,,,,,,212',
',,,,,,,212,212,,212,212,212,212,212,212,212,212,212,212,212,,,212,,',
',,,,,,,531,531,,,531,,,,,,212,,,531,531,212,531,531,531,531,531,531',
'531,,,531,531,,,,531,531,531,531,,,,,,531,,,,,,,,531,531,,531,531,531',
'531,531,531,531,531,531,531,531,,,531,,,,,,,,,,519,519,,,519,,,,,,531',
',,519,519,531,519,519,519,519,519,519,519,,,519,519,,,,519,519,519,519',
',,,,,519,,,,,,,,519,519,,519,519,519,519,519,519,519,519,519,519,519',
',911,519,911,911,911,911,911,601,,601,601,601,601,601,,,911,,,,,519',
',601,,883,519,883,883,883,883,883,,,,,,,911,,,883,,,,601,601,911,911',
'911,911,,,,601,601,601,601,,,,,660,883,660,660,660,660,660,,,,883,883',
'883,883,,,660,,,,886,911,886,886,886,886,886,,601,,,,,,,,886,,660,754',
',754,754,754,754,754,883,660,660,660,660,,,,,754,,,886,,,,,,,,,886,886',
'886,886,,,,,660,,754,,,,,,660,,,754,754,754,754,,,,,,,,,,,,,,886,,,',
',,,,,,,,,,,,,,,754' ]
        racc_action_check = arr = ::Array.new(25640, 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,  5447,  1387,   nil,   622,   nil,   nil, 16465,   979,
   nil,   795,   933,  1274,   nil,  1230,  1260,  1052,   311,  1203,
   536,   nil,   -72, 20001,  2707,  1318,   nil,   565,   nil,   156,
 23862, 24179, 18233, 18097, 16601,   nil,  3529, 15785, 11977,   nil,
  1206,   391,   390,  1278,   237,  9121,  7761,  7625,  1206,  1106,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23472,
   nil,  6809,  6673,  5857,    41,   nil,  5993,  6129,   nil,   nil,
  6265,  6401,  1248,   nil,  1623,   nil,   nil,   nil,   nil,   nil,
   -67,   nil,   nil,   nil,   nil,   nil,   nil,  1200,  1199,  1198,
  1194,  1071,   nil,   nil,   nil,   396,   nil,   nil,   132,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  7897,   nil,   nil,   nil,   nil,  8033,  8169,  8305,  8441,
  8577,  1210,   nil,   647,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  1192,   nil,  4625,  9257,  9393,
  9529, 24247, 25196,   nil,  9937, 10073, 10209, 10345, 10481, 10617,
   nil,   nil,   830,   -53,   -43,  1254,   187,  1163,  1218,   nil,
 11705,  4077,  1212, 12113, 12249, 12385, 12521, 12657, 12793, 12929,
 13065, 13201, 13337, 13473, 13609, 13745, 13881, 14017, 14153, 14289,
 14425, 14561, 14697, 14833, 14969, 15105, 15241, 15377, 15513,   nil,
   nil, 24320,   nil,   nil,  1204, 15921,   nil,  1210,   nil,   nil,
   nil, 16193,   nil,   nil, 16329,   nil,  2981,   nil,  1169,  1168,
   nil, 16873,  1201, 17145,   nil, 17281, 17417,   nil,   nil,   624,
   nil,   953, 17825,  1124,  3255,  1139,  1172,  1133, 18641,  5584,
   481,   968,  1190,  1197,  1109,   nil,  1160,  1123,   -19,   nil,
   nil,   nil,  1158,   590,  1077, 20409,   nil,   273,  1134,  1130,
  1210,   nil,  1129,   nil, 21225,  2844,   525,   nil,  1080,   nil,
    96,   359,  1069,  1050,   nil,   465,  1073,   nil,   nil, 23696,
   282,   -10,   -11, 23129, 23265,   660,  1144,  1028,    57,    34,
  1108,  1090,    28,  1110,   nil,   nil, 22585,   nil, 22313,   473,
   356,   430,   375,   475,   531,   571,   343,   453,   nil,   432,
   nil,   nil,   nil,   nil,   nil,   334,   nil,   321,   nil,   130,
   nil,  1010,   304,   nil,  1009,   257,   nil,  1004,   124,   nil,
   989,   125,   nil,   324,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  2433,  1347,   nil,   nil,
   nil,   nil,   998,   nil,   981,   nil, 11841,   969,   nil,  2022,
   971,   nil,   nil,   942,   941,   -83,   363, 23987,   nil,   nil,
   nil,   528,   653,   979,   nil,   nil, 23732, 23602,   nil,  3940,
   nil,   925,   nil,   nil,  1748,   nil,   nil,   nil,   nil,   -14,
   nil, 24977, 24904, 17961,    91, 18505, 18777, 19729,  4899,  5173,
   -48,   521,   999,   997,   984,   983,   786,   924,   580,  5310,
   598,  4762,  4625,   684,  4077,  4214,  4351,  5584,  4488,   571,
   451,  5036,  5447,  2159,   146, 24112,   nil,   nil,   nil,   nil,
   nil,   nil,   -45,   247,   907,   898,   nil,   nil, 21633,   nil,
   nil, 22993,   nil,  6945,   nil,   nil,   nil,   nil, 22177,   933,
   887,   883,   nil,   nil,   882, 22721,   873, 22449, 25050, 25342,
  1071,   900,   nil,   nil, 23401,   860,   nil, 21905, 21769, 21497,
 25123, 25269,  3803, 20953,   979,   951,   807,   nil,   nil, 20545,
   nil,   nil, 20273,   nil,   nil,   nil,     1, 24076,   nil,   752,
   745,   nil,   732,   729,   694,   nil,   nil,   nil,   nil,   nil,
   nil,   679,   nil,   nil,   360,   nil, 19185,   nil,   nil,   nil,
   683,   nil,   nil,   nil,   667,   nil,   nil,   647,  2981,   679,
   nil,  3118,    39,    24,   656,   649,   nil, 16737, 24539, 24393,
     9,   nil,   404,   436,   141,   nil,   971,   nil,    16, 15649,
   nil, 25411,   nil, 11433,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    58,   nil,   nil,   164,   nil,
   nil,   nil,   510,   nil,   nil,   500,   nil,   515,   nil,  1485,
   nil,   489, 11161, 11025,   319,   497, 10889, 10753,  9801,  9665,
   466,   nil,   nil,   nil,  8849,  8713,   455,   nil,  7353,  7081,
   nil,   258,   239,   264,     0,   414,  1885,   385,   nil,   nil,
 25466,   nil,   nil,   469,   -10,   -13,   nil,   nil,   nil,   nil,
   357,   nil,   371,  7489,   nil,   nil,   795,   -84, 11297,   271,
   nil,   263,   153,   127,   272,   172,   967,   256,   199, 19321,
  2433,   241,   220,   -12,   269, 19865,   nil,   nil,   257,   nil,
  2022,  1885,   141,   253,   nil,   nil,   587, 23566,   nil, 23826,
   nil,  5901,   nil, 21361,   nil,   525,   nil,    85,   270,   nil,
   -34,   nil,   nil,   nil,   nil,   498,   nil,    39,   nil,   nil,
   nil,   nil,    29,   nil, 16057,   325,    62,     7,     8,   140,
 22041,   nil,   532,   nil, 24685, 24466, 19593,   nil,   nil,   nil,
   542,   146,  3940,  4351, 25505,   650,  1209,   -16,   798,  4899,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   403,  6537,  3118,
  8985,   nil,   445,   nil,  3666,   nil,  2844,   nil,   nil,  3255,
   nil,  2296,   nil,  3529, 17009, 17553, 18369, 18913,    89, 19049,
   606,   620,   nil,   634,   641,   645,   nil,   669,   666,   663,
   678, 19457,   nil,   nil,  2570,   nil,   nil,   nil,  5721,  2296,
   nil,   nil,   744,   217,   nil,   nil,   867,   nil,  2159,   759,
   807,   nil,   nil,   nil,   800,   908,   795,   793,   nil,   nil,
   nil,   796,   797,   nil,   798,   801,   nil,   802,   nil,   806,
   492,   830,   591,   nil,   952,   nil, 20681,   978,  4488,  4762,
   nil,    23,    58,    63,   203,  1209,   nil,   900,  5036, 20817,
   nil,   785,  1045,  1046,   933,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   947,   934,   nil,  2570, 20137, 17689,  3392,
   318,   nil,   nil, 25429,   nil,   nil, 25486,   nil,  7125,   nil,
   nil,   990,   718, 11569,  1073,  1058,  1105,  5310,  1016,  1122,
   nil,  5173,   nil,   nil,    -7, 22857,   nil,   nil,   nil,   nil,
   nil, 25404,   nil,  6989,   nil,  6853,   nil,  6037,   nil,   nil,
   nil,   nil,   259,   657,  1039,   nil,    -9,   nil,  1180,  1183,
 21089,  1748,   nil,   nil,  1189,   723,   nil,   nil,   nil,   nil,
 23951,   nil,  1078,   nil,   nil,  1079,  1080,  1106,  1107,   nil,
  1108,   nil,    69,   nil,   nil,   nil,  1105, 24831,   nil,   nil,
  1138,   nil,   nil,   nil,  2707,   499,   829,   834,  1211,   272,
   nil,  1140,  1141,  1142,  1143,  1154,   688,  1167,   532,  3392,
   nil,   nil,   nil,    47,  3666,   nil,   nil,  3803,  4214,   nil,
 24309,   nil,  6581,   nil,  6309,   nil,  6173,   nil,   nil,   nil,
   662,  1235,  1236,   nil,  1320,  7217, 24612, 24758,  1110,  7533,
   nil,   nil,   nil,   nil,   829,  1205,   417,   nil,   nil,   nil,
  1327,  1328,  1329,  1210,  1211,  1212,  1213,   nil,   nil,  1218,
    36,    -1,   123,  1072,  1245,  1246,   nil,   nil,   nil,   nil,
  7397,   nil,   nil,   nil,   nil,    35,   nil,  1259,   nil ]

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

clist = [
'6,218,277,277,277,211,221,260,368,535,29,420,337,272,500,489,29,443',
'585,127,127,578,581,132,132,395,694,324,4,548,327,29,297,122,206,634',
'415,114,261,753,29,29,29,440,29,671,130,130,671,9,264,270,273,714,295',
'9,844,296,836,674,329,334,704,705,278,278,278,293,795,29,111,743,494',
'555,29,29,816,833,29,924,110,376,127,378,380,383,386,389,392,378,115',
'341,342,314,330,345,728,731,720,127,674,794,114,279,279,279,538,541',
'797,847,921,545,377,525,598,832,600,834,393,29,427,433,311,311,29,29',
'29,29,29,275,287,288,949,331,335,615,546,955,618,356,858,401,402,403',
'404,346,599,605,861,953,826,612,987,662,616,358,311,616,9,500,977,666',
'667,752,601,756,940,405,353,372,485,740,849,796,664,332,629,344,798',
'848,277,897,665,671,671,343,952,536,450,325,984,413,418,399,428,674',
'699,438,442,339,407,355,484,804,714,492,808,841,421,493,451,809,1017',
'1015,734,29,29,29,29,820,437,856,29,29,29,29,29,29,412,904,374,375,369',
'379,382,277,949,702,333,29,417,277,205,496,277,955,891,417,921,839,491',
'1035,296,833,655,385,732,1027,791,388,836,391,868,758,511,759,394,859',
'900,421,788,121,831,29,338,828,499,499,943,29,2,555,29,747,603,1,521',
'833,,,518,946,,,947,272,813,278,,,29,827,29,881,882,,278,29,530,,526',
',510,679,,296,,516,681,971,296,114,688,,945,293,,,,714,293,714,,29,807',
'555,279,326,588,509,910,,340,340,,279,340,1036,,,852,29,29,514,508,',
',,,336,427,433,490,,507,1018,833,932,582,583,,495,,,,,,114,988,,602',
',,311,,,,761,735,,761,777,340,340,340,340,,782,1023,635,311,,,,6,810',
',,,,642,975,714,,29,127,647,,650,132,584,499,499,277,671,641,,684,,628',
',,627,,428,674,862,863,,684,,311,130,311,864,,,,640,,443,421,,9,646',
'989,,,,,437,29,657,668,669,714,,714,642,,,,933,,823,,812,,942,677,,791',
'658,641,791,680,791,277,555,,658,658,446,447,448,449,1028,684,,,,428',
',714,414,697,663,810,,,526,445,,428,,421,29,792,,526,,,,821,,29,,437',
',,,931,,,,,,,,437,,29,934,,,,,857,,,,,,,,676,,277,,,829,,,829,,,,,,670',
',428,,,,,,502,,504,,505,506,,964,421,29,,791,29,791,,791,,791,29,,437',
',725,311,,727,,,,979,29,,311,698,29,806,,729,729,,,,340,340,773,775',
',,,,778,780,,748,442,,,635,,,127,791,799,,132,,,1045,805,29,29,,,,766',
'29,29,684,1019,29,,,,635,,815,658,130,,,642,499,,647,1021,1022,526,555',
',,,,,,799,641,,814,,,,,843,866,,817,822,,,,708,710,712,,,,,,,,772,29',
'29,,,631,,635,,277,,,,,824,825,817,,817,867,417,428,,,,,,,,,829,,,792',
',,792,421,792,,,29,,,,437,875,29,,,,,,29,29,,311,127,853,851,29,,,499',
',,,311,,,799,29,,873,,860,,,,,865,,,,884,884,884,672,909,,336,,675,',
',,,,,1029,,920,693,,,29,,902,,29,29,906,,,,,,,896,29,,,898,899,,,939',
',672,635,,336,903,,,17,,,,,792,17,792,,792,,792,29,19,29,29,,,,19,721',
'222,,,29,29,,928,929,926,222,222,222,751,17,302,302,757,,,,,935,729',
'311,,,19,,,,936,,,,792,,,,222,,,,29,222,222,,29,222,350,,,,684,,,960',
',,,963,,354,,,,767,,,999,672,336,,793,,,,29,,,,884,884,884,884,,884',
',,17,983,,,1006,222,222,222,222,17,,,,19,437,,986,,811,,,29,19,,277',
'912,914,311,916,918,817,919,,835,1004,837,29,,428,311,819,29,,,29,29',
',,,1016,,,421,,1020,41,,635,838,,,41,29,817,437,340,,,16,,884,884,884',
'884,16,,,,,445,,,,,,,,,,41,300,300,,,884,,17,222,222,222,,,16,222,222',
'222,222,222,222,19,,,,874,,,,441,,,17,,,,348,,,370,,,,,,19,,,,,,,,,',
',,,,,,885,887,889,,,222,,,,,,222,,,222,41,1010,1011,1012,1013,,,340',
',41,,,,16,,,,17,,17,340,,16,302,17,,,,,,19,,19,,,,,19,,,302,,,,,,948',
',950,,17,,,,,42,,,336,,,42,,19,1046,,,,222,222,,972,,973,,974,,,,,,596',
',596,,,,,,42,301,301,,,,,41,,,,,,,,,,,,,16,,982,,,,,,,,,41,,,,349,,',
'371,,,,17,,16,,,,991,993,995,997,,998,,19,,,,,,1024,,1025,,1026,,,,',
',,,,,42,,,,,1034,,,,42,,,,,222,,,41,,41,,,,300,41,,,,,,16,,16,,,,1047',
'16,,,300,,,,,,,,,,41,1041,1042,1043,1044,,,,,,,,,16,,,,,,17,,,,,,1048',
'302,,222,,,370,19,370,,302,,,,,,,,,222,,42,,,,,,,,,,,,,,,,,,,,,,,,42',
',,,,,,,,,,41,,,,,,,,17,,,17,,16,,,,222,,,,19,,,19,,,,,222,,,,222,,,',
',,,,,,,,,,,,,42,,42,,,,301,42,,,,,,,,,,,222,222,,,,301,222,222,,,222',
',,,,42,,,,,,,,441,,,,,,,,,,,41,,,,,,302,300,,,,,371,16,371,,300,302',
',,,,,,,,,,17,17,,,,,,,,,,,,19,19,,,,,,,,,,,,,,,,,,,,42,,,,,,222,,41',
',,41,222,,,,,,17,17,,16,,,16,17,,,,,,19,19,,,,222,,19,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,894,,,17,,,,17,17,,,,,,,,19,17,,,19,19,,,,,,,,,19,,,18',
',42,,,,18,,300,301,,,222,,17,17,,,301,300,,,,,17,222,,19,19,,41,41,',
',18,304,304,19,,,,,,16,16,,,,,,,,,,,,,,,956,,,,17,,,,17,,352,,967,42',
',,42,19,,,,19,,41,41,970,,,,,41,,,,,,16,16,17,,,,,16,,,,,,,18,19,,,',
',,,,18,,,,,,,,,,,,17,370,,,41,,,,41,41,,,,19,,17,,16,41,,17,16,16,17',
'17,,,,19,,,16,,19,,,19,19,,,,222,301,,,,,,41,41,,,,301,,,,,41,,,16,16',
',42,42,,,,,,16,,,,18,,,,,,,,,,,,,,,,,,370,,,,41,,18,,41,,,,965,,,,,16',
',,,16,,42,42,,,,,,42,,,,,,,,41,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,18,,18',
',41,371,304,18,42,,,,42,42,,,,16,,41,,,42,304,41,,,41,41,,,,16,18,,',
',16,,,16,16,,,,,,,,,,,42,42,,,,,,,,,42,,597,,597,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,371,,,,42,,,,42,229,,,966,,,,,18,276,276,276,,,,,,,,,,,321',
'322,323,,,,,42,,,,,,,,,,276,276,,,,,,,,,,,,,,,,,,,,,,42,,,,,,,,,,,,',
',,42,,,,,42,,,42,42,,,,,,,,,,,,,,,,,,,,,,,,18,,,,,,,304,,,,,,,,,304',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,,,18,,276,419',
'276,,,,439,444,,,,,,,,,,,,,,,229,,,458,459,460,461,462,463,464,465,466',
'467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483',
',,,,,,276,,,,,,276,,,276,,,,,,,276,,276,,276,276,,,,,,,,,,,,,,,,,304',
',,,,,,,,,,304,,,,,,,,,,532,18,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,18,18,,,,,872,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,',
',,,,,,,,597,,,18,,,,18,18,,,,,,,,,18,,,,,,,,,,276,,439,656,419,,,,,',
',,,,,,,,,,18,18,,,,,,,,,18,,,,,,,,,,,,,,,276,,,276,,276,,,,,,,,,,,,',
',276,597,,,,18,,,,18,690,691,692,969,,,,,,,,,276,,,276,,,,,,,,,,,,,',
'18,,,,,,,,,,276,,,,,,,,,,,,,,,,,,,,,276,,18,,,,,,,,,,,,,,,18,,,,,18',
',,18,18,,,,,,,,,,,,,,,,,,,276,769,,,276,276,774,776,,,,,779,781,,,656',
'783,,,,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,',
',,,,,276,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,276,,,,,,,,,,,,,,,,,,,,',
',276,,876,,,,,,,,,,,,,,774,776,781,779,,879,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,876',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276' ]
        racc_goto_table = arr = ::Array.new(3053, 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,34,36,36,36,27,22,152,60,10,44,25,88,72,74,42,44,20,94,61,61,91,91',
'65,65,60,13,34,2,151,51,44,53,17,17,26,30,97,39,98,44,44,44,30,44,75',
'64,64,75,9,41,41,41,130,50,9,92,12,192,197,6,6,136,136,69,69,69,49,142',
'44,8,58,25,183,44,44,14,188,44,132,5,6,61,6,6,6,6,6,6,6,7,19,19,54,69',
'19,93,93,131,61,197,141,97,71,71,71,70,70,144,14,129,70,169,55,59,142',
'59,142,169,44,40,40,67,67,44,44,44,44,44,48,48,48,193,71,71,172,148',
'147,172,108,109,19,19,19,19,5,110,173,111,146,144,173,112,43,173,113',
'67,173,9,74,132,43,43,114,115,116,117,9,95,86,40,106,105,133,73,68,66',
'104,139,103,36,46,45,75,75,102,145,101,51,100,107,22,22,7,72,197,149',
'22,22,150,33,21,153,154,130,157,158,130,6,159,27,160,161,132,162,44',
'44,44,44,163,61,58,44,44,44,44,44,44,12,164,167,168,99,170,171,36,193',
'151,87,44,69,36,18,51,36,147,144,69,129,131,72,132,12,188,25,174,94',
'146,135,175,192,176,177,178,51,179,180,182,15,6,26,11,186,44,90,189',
'6,6,190,44,3,183,44,96,196,1,34,188,,,27,142,,,142,72,26,69,,,44,135',
'44,136,136,,69,44,27,,53,,50,55,,12,,50,25,142,12,97,55,,141,49,,,,130',
'49,130,,44,43,183,71,32,27,9,136,,32,32,,71,32,92,,,26,44,44,54,8,,',
',,31,40,40,48,,5,14,188,93,19,19,,48,,,,,,97,98,,39,,,67,,,,173,25,',
'173,42,32,32,32,32,,42,142,34,67,,,,6,74,,,,,72,130,130,,44,61,72,,51',
'65,5,6,6,36,75,6,,40,,17,,,2,,72,197,10,10,,40,,67,64,67,151,,,,41,',
'20,6,,9,41,136,,,,,61,44,34,51,51,130,,130,72,,,,26,,70,,55,,135,51',
',135,6,6,135,51,135,36,183,,6,6,32,32,32,32,13,40,,,,72,,130,31,51,41',
'74,,,53,31,,72,,6,44,137,,53,,,,30,,44,,61,,,,91,,,,,,,,61,,44,10,,',
',,25,,,,,,,,9,,36,,,137,,,137,,,,,,71,,72,,,,,,31,,31,,31,31,,91,6,44',
',135,44,135,,135,,135,44,,61,,12,67,,12,,,,91,44,,67,71,44,88,,97,97',
',,,32,32,22,22,,,,,22,22,,97,22,,,34,,,61,135,34,,65,,,26,152,44,44',
',,,17,44,44,40,94,44,,,,34,,51,6,64,,,72,6,,72,10,10,53,183,,,,,,,34',
'6,,53,,,,,51,60,,6,6,,,,185,185,185,,,,,,,,71,44,44,,,31,,34,,36,,,',
',12,12,6,,6,51,69,72,,,,,,,,,137,,,137,,,137,6,137,,,44,,,,61,22,44',
',,,,,44,44,,67,61,19,69,44,,,6,,,,67,,,34,44,,12,,97,,,,,97,,,,6,6,6',
'31,51,,31,,31,,,,,,,25,,51,32,,,44,,6,,44,44,6,,,,,,,12,44,,,12,12,',
',51,,31,34,,31,12,,,24,,,,,137,24,137,,137,,137,44,29,44,44,,,,29,31',
'24,,,44,44,,12,12,19,24,24,24,32,24,24,24,32,,,,,19,97,67,,,29,,,,97',
',,,137,,,,24,,,,44,24,24,,44,24,24,,,,40,,,12,,,,12,,29,,,,31,,,34,31',
'31,,140,,,,44,,,,6,6,6,6,,6,,,24,12,,,27,24,24,24,24,24,,,,29,61,,97',
',31,,,44,29,,36,185,185,67,185,185,6,185,,140,12,140,44,,72,67,31,44',
',,44,44,,,,12,,,6,,12,56,,34,31,,,56,44,6,61,32,,,23,,6,6,6,6,23,,,',
',31,,,,,,,,,,56,56,56,,,6,,24,24,24,24,,,23,24,24,24,24,24,24,29,,,',
'31,,,,29,,,24,,,,56,,,56,,,,,,29,,,,,,,,,,,,,,,,138,138,138,,,24,,,',
',,24,,,24,56,185,185,185,185,,,32,,56,,,,23,,,,24,,24,32,,23,24,24,',
',,,,29,,29,,,,,29,,,24,,,,,,140,,140,,24,,,,,57,,,31,,,57,,29,185,,',
',24,24,,140,,140,,140,,,,,,24,,24,,,,,,57,57,57,,,,,56,,,,,,,,,,,,,23',
',31,,,,,,,,,56,,,,57,,,57,,,,24,,23,,,,138,138,138,138,,138,,29,,,,',
',140,,140,,140,,,,,,,,,,57,,,,,140,,,,57,,,,,24,,,56,,56,,,,56,56,,',
',,,23,,23,,,,140,23,,,56,,,,,,,,,,56,138,138,138,138,,,,,,,,,23,,,,',
',24,,,,,,138,24,,24,,,56,29,56,,24,,,,,,,,,24,,57,,,,,,,,,,,,,,,,,,',
',,,,,57,,,,,,,,,,,56,,,,,,,,24,,,24,,23,,,,24,,,,29,,,29,,,,,24,,,,24',
',,,,,,,,,,,,,,,,57,,57,,,,57,57,,,,,,,,,,,24,24,,,,57,24,24,,,24,,,',
',57,,,,,,,,29,,,,,,,,,,,56,,,,,,24,56,,,,,57,23,57,,56,24,,,,,,,,,,',
'24,24,,,,,,,,,,,,29,29,,,,,,,,,,,,,,,,,,,,57,,,,,,24,,56,,,56,24,,,',
',,24,24,,23,,,23,24,,,,,,29,29,,,,24,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',24,,,24,,,,24,24,,,,,,,,29,24,,,29,29,,,,,,,,,29,,,28,,57,,,,28,,56',
'57,,,24,,24,24,,,57,56,,,,,24,24,,29,29,,56,56,,,28,28,28,29,,,,,,23',
'23,,,,,,,,,,,,,,,24,,,,24,,,,24,,28,,24,57,,,57,29,,,,29,,56,56,29,',
',,,56,,,,,,23,23,24,,,,,23,,,,,,,28,29,,,,,,,,28,,,,,,,,,,,,24,56,,',
'56,,,,56,56,,,,29,,24,,23,56,,24,23,23,24,24,,,,29,,,23,,29,,,29,29',
',,,24,57,,,,,,56,56,,,,57,,,,,56,,,23,23,,57,57,,,,,,23,,,,28,,,,,,',
',,,,,,,,,,,56,,,,56,,28,,56,,,,56,,,,,23,,,,23,,57,57,,,,,,57,,,,,,',
',56,,,,,,,,,,,,,23,,,,,,,,,,,,,,,,28,,28,,56,57,28,28,57,,,,57,57,,',
',23,,56,,,57,28,56,,,56,56,,,,23,28,,,,23,,,23,23,,,,,,,,,,,57,57,,',
',,,,,,57,,28,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,57,,,,57,,,,57,35,,,57',
',,,,28,35,35,35,,,,,,,,,,,35,35,35,,,,,57,,,,,,,,,,35,35,,,,,,,,,,,',
',,,,,,,,,,57,,,,,,,,,,,,,,,57,,,,,57,,,57,57,,,,,,,,,,,,,,,,,,,,,,,',
'28,,,,,,,28,,,,,,,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,28,,,28,,35,35,35,,,,35,35,,,,,,,,,,,,,,,35,,,35,35,35,35,35',
'35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,,,,,',
',35,,,,,,35,,,35,,,,,,,35,,35,,35,35,,,,,,,,,,,,,,,,,28,,,,,,,,,,,28',
',,,,,,,,,35,28,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'28,28,,,,,28,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,28,,,28,',
',,28,28,,,,,,,,,28,,,,,,,,,,35,,35,35,35,,,,,,,,,,,,,,,,28,28,,,,,,',
',,28,,,,,,,,,,,,,,,35,,,35,,35,,,,,,,,,,,,,,35,28,,,,28,,,,28,35,35',
'35,28,,,,,,,,,35,,,35,,,,,,,,,,,,,,28,,,,,,,,,,35,,,,,,,,,,,,,,,,,,',
',,35,,28,,,,,,,,,,,,,,,28,,,,,28,,,28,28,,,,,,,,,,,,,,,,,,,35,35,,,35',
'35,35,35,,,,,35,35,,,35,35,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,',
',,,,,,35,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,35,,',
',,,,,,,,,,,,,,,,,,,35,,35,,,,,,,,,,,,,,35,35,35,35,,35,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,35,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,35' ]
        racc_goto_check = arr = ::Array.new(3053, 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,   285,    26,   280,   nil,    75,    -2,    82,    65,    47,
  -316,   261,    21,  -508,  -618,  -548,   nil,    22,   230,    25,
  -198,   130,   -17,  1017,   840,  -199,  -385,   -12,  1672,   853,
  -172,   296,   276,    78,   -21,  2047,   -30,   nil,   nil,    11,
   -91,    21,  -249,  -331,     8,  -306,  -626,   nil,    97,    31,
    18,   -31,   nil,    -5,    55,  -202,  1004,  1168,  -523,  -242,
   -66,     8,   nil,   nil,    35,    12,  -235,    85,   113,    32,
  -224,    71,   -17,  -311,  -265,  -453,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    95,   175,   -52,   nil,
   209,  -320,  -669,  -486,  -328,    97,  -315,    32,  -562,   158,
   129,  -139,   117,  -549,   108,  -559,  -420,  -742,    67,  -607,
  -211,  -603,  -784,    82,  -437,  -204,  -437,  -700,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -730,
  -511,  -466,  -763,  -487,   nil,  -402,  -487,  -143,   307,  -482,
   275,  -559,  -592,   nil,  -552,  -706,  -743,  -755,  -203,  -350,
   134,  -310,   -18,   -57,  -459,   nil,   nil,   -63,  -460,   -60,
  -456,  -771,  -372,  -476,  -591,   nil,   nil,   150,   148,    27,
   147,   147,  -247,  -228,   167,   170,   171,  -496,  -344,  -343,
   175,   nil,  -482,  -266,   nil,   145,  -435,   nil,  -630,  -428,
  -602,   nil,  -651,  -754,   nil,   nil,   -89,  -442 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   290,     7,   347,   291,
   nil,   nil,   534,   nil,   845,   nil,   289,   nil,   nil,   nil,
    14,    15,    21,   228,   320,   nil,   nil,   745,   226,   227,
   nil,   282,    20,   nil,   328,    24,    25,    26,    27,   nil,
   687,   nil,   nil,   nil,   308,   nil,   nil,    28,   422,    35,
   nil,   nil,    37,    40,    39,   nil,   223,   224,   595,   nil,
   129,   430,   128,   131,    78,    79,   nil,    49,   nil,   423,
   nil,   424,   435,   643,   497,   280,   265,   nil,    50,    51,
    52,    53,    54,    55,    56,    57,    58,   nil,   266,    64,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   579,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   716,
   562,   nil,   717,   944,   790,   550,   nil,   551,   nil,   nil,
   552,   nil,   554,   659,   nil,   nil,   nil,   560,   nil,   nil,
   nil,   755,   nil,   nil,   nil,   434,   267,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    77,    80,    82,   nil,   nil,
   nil,   nil,   nil,   610,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   830,   549,   nil,   553,   563,   565,   567,
   802,   570,   571,   803,   574,   577,   nil,   284 ]

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

racc_reduce_n = 627

racc_shift_n = 1049

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

racc_nt_base = 145

racc_use_result_var = true

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

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

Racc_debug_parser = false

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

# reduce 0 omitted

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

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

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

# reduce 4 omitted

# reduce 5 omitted

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

# reduce 7 omitted

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

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

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

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

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

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

# reduce 13 omitted

# reduce 14 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 29 omitted

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

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

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

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

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

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

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

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

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

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

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

# reduce 41 omitted

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

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

# reduce 44 omitted

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

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

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

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

# reduce 49 omitted

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

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

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

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

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

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

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

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

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

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

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

# reduce 70 omitted

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

# reduce 72 omitted

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 84 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 109 omitted

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

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

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

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

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

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

# reduce 118 omitted

# reduce 119 omitted

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

# reduce 121 omitted

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

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

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

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

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

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

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

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

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

def _reduce_202(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

def _reduce_203(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_217(val, _values, result)
                      result = new_call(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
                      ## TODO: why is this 2.0 only?
                      debug20 12, val, result
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 241 omitted

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

# reduce 243 omitted

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

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

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

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

# reduce 248 omitted

# reduce 249 omitted

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

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

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

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

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

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

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

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

def _reduce_258(val, _values, result)
                      result = call_args [val[0], array_to_hash(val[2])]
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

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

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

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

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

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

# reduce 264 omitted

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

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

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

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

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

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

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

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

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

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

# reduce 278 omitted

# reduce 279 omitted

# reduce 280 omitted

# reduce 281 omitted

# reduce 282 omitted

# reduce 283 omitted

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

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

def _reduce_286(val, _values, result)
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]
                    
    result
end

def _reduce_287(val, _values, result)
                      debug20 13, val, result
                    
    result
end

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

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

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

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

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

def _reduce_293(val, _values, result)
                      result = val[1] || s(:array)
                      result[0] = :array # aref_args is :args
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_302(val, _values, result)
                      oper, iter = val[0], val[1]
                      call = oper # FIX
                      iter.insert 1, call
                      result = iter
                      call.line = iter.line
                    
    result
end

# reduce 303 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      result = new_defn val

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

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

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

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

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

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

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

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

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

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

# reduce 339 omitted

# reduce 340 omitted

# reduce 341 omitted

# reduce 342 omitted

# reduce 343 omitted

# reduce 344 omitted

# reduce 345 omitted

# reduce 346 omitted

# reduce 347 omitted

# reduce 348 omitted

# reduce 349 omitted

# reduce 350 omitted

# reduce 351 omitted

# reduce 352 omitted

# reduce 353 omitted

# reduce 354 omitted

# reduce 355 omitted

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

# reduce 357 omitted

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

# reduce 359 omitted

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

# reduce 361 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

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

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

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

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

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

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

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

                      result = block_var :*, args
                    
    result
end

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

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

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

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

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

# reduce 379 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 396 omitted

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

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

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

# reduce 400 omitted

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

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

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

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

# reduce 405 omitted

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

                      result = lexer.lpar_beg
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest
                    
    result
end

def _reduce_407(val, _values, result)
                      lpar, args, body = val
                      lexer.lpar_beg = lpar

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

                      val = invert_block_call val if inverted? val

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

# reduce 437 omitted

# reduce 438 omitted

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

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

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

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

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

# reduce 442 omitted

# reduce 443 omitted

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

# reduce 445 omitted

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

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

# reduce 447 omitted

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

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

# reduce 450 omitted

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

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

# reduce 453 omitted

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

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

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

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

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

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

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

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

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

# reduce 463 omitted

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

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

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

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

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

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

                      result = list.dup << sym
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = :expr_beg # TODO: expr_value ?
                    
    result
end

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

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

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

                      lexer.lex_state   = :expr_value
                    
    result
end

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

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

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

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

                      lexer.lex_state = oldlex_state

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

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

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

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

# reduce 491 omitted

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

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

# reduce 494 omitted

# reduce 495 omitted

# reduce 496 omitted

# reduce 497 omitted

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

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

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

# reduce 499 omitted

# reduce 500 omitted

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

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

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

# reduce 506 omitted

# reduce 507 omitted

# reduce 508 omitted

# reduce 509 omitted

# reduce 510 omitted

# reduce 511 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_529(val, _values, result)
                      result = val[1]
                      self.lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                      # TODO:
                      # $<num>$ = parser->parser_in_kwarg;
                      # parser->parser_in_kwarg = 1;
                    
    result
end

def _reduce_530(val, _values, result)
                      # TODO: parser->parser_in_kwarg = $<num>1;
                      result = val[0]
                      self.lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                    
    result
end

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

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

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

# reduce 534 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_549(val, _values, result)
                      result = args val
                    
    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)
                      yyerror "formal argument cannot be a constant"
                    
    result
end

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

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

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

# reduce 556 omitted

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

                      result = identifier
                    
    result
end

# reduce 558 omitted

# reduce 559 omitted

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

# reduce 561 omitted

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

def _reduce_563(val, _values, result)
                      case val[0]
                      when Symbol then
                        result = s(:args)
                        result << val[0]
                      when Sexp then
                        result = val[0]
                      else
                        debug20 32
                        raise "Unknown f_arg type: #{val.inspect}"
                      end
                    
    result
end

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

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

                      result << item
                    
    result
end

def _reduce_565(val, _values, result)
                      # TODO: call_args
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier, val[1]))
                    
    result
end

def _reduce_566(val, _values, result)
                      # TODO: call_args
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier, val[1]))
                    
    result
end

# reduce 567 omitted

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

# reduce 569 omitted

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

# reduce 571 omitted

# reduce 572 omitted

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

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

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

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

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

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

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

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

# reduce 581 omitted

# reduce 582 omitted

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

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

# reduce 585 omitted

# reduce 586 omitted

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

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

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

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

# reduce 590 omitted

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

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

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

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

# reduce 595 omitted

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

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

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

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

# reduce 600 omitted

# reduce 601 omitted

# reduce 602 omitted

# reduce 603 omitted

# reduce 604 omitted

# reduce 605 omitted

# reduce 606 omitted

# reduce 607 omitted

# reduce 608 omitted

# reduce 609 omitted

# reduce 610 omitted

# reduce 611 omitted

# reduce 612 omitted

# reduce 613 omitted

# reduce 614 omitted

# reduce 615 omitted

# reduce 616 omitted

# reduce 617 omitted

# reduce 618 omitted

# reduce 619 omitted

# reduce 620 omitted

# reduce 621 omitted

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

# reduce 623 omitted

# reduce 624 omitted

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

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

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

end   # class Ruby20Parser
