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

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


require "ruby_lexer"
require "ruby_parser_extras"

# :stopdoc:

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

clist = [
'-288,-103,624,-100,579,579,270,-288,-288,-288,747,270,220,-288,-288',
'270,-288,-289,738,660,217,218,739,-100,-289,-98,660,270,660,579,579',
'-101,3,-289,621,782,-288,-288,848,-288,-288,-288,-288,-288,579,876,-84',
'539,221,-105,538,-106,-101,659,699,727,217,218,-102,-70,659,815,659',
'585,-99,623,-103,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-104,727,-288,-288,-288,815,643,217,218,-103,-288,-416',
'269,-288,217,218,620,269,-288,-100,-288,269,-288,-288,-288,-288,-288',
'-288,-288,-102,-288,221,-288,269,-103,746,-100,116,116,-103,928,-100',
'115,115,-288,-288,-288,-91,-95,-89,-288,-288,-288,-288,116,-598,-288',
'-288,-288,115,-288,-104,116,116,-101,221,-599,115,115,-101,-288,-288',
'-288,-96,116,-97,-92,116,698,115,-288,-288,115,-288,-288,-288,-288,-288',
'-90,-94,-94,-102,660,-92,838,-598,-102,221,221,781,727,116,94,95,221',
'-95,115,221,815,-602,998,-288,-288,-288,-288,-288,-288,-288,-288,-288',
'-288,-288,-288,-288,-288,527,659,-288,-288,-288,587,784,-288,-511,-93',
'-288,241,588,-288,-288,-511,-288,-517,-288,-516,-288,586,-288,-288,-288',
'-288,-288,-288,-288,-101,-288,-94,-288,94,95,-92,560,-602,557,556,555',
'605,558,688,-602,-288,-288,-288,-288,-598,-288,-602,-288,-602,456,-105',
'96,97,-602,-602,-602,-104,-517,-602,-602,-602,-94,-602,272,-94,-92,-602',
'-99,-92,-98,116,-602,-602,-602,-602,115,83,-94,272,-596,221,-92,-602',
'-602,84,-602,-602,-602,-602,-602,560,564,557,556,555,688,558,607,606',
'-90,605,504,567,-502,-106,502,759,96,97,840,-502,-595,-99,-602,-602',
'-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,575,574',
'-602,-602,-602,-505,783,-602,575,574,-602,605,-505,-602,-602,-516,-602',
'-596,-602,260,-602,-505,-602,-602,-602,-602,-602,-602,-602,-425,-602',
'-602,-602,116,607,606,786,-502,115,-596,605,974,568,757,-502,-602,-602',
'-602,-602,-595,-602,-502,-602,-502,527,564,-264,-89,-502,-502,-502,-102',
'-509,-502,-502,-502,567,-502,221,-509,-98,-595,607,606,618,-502,241',
'-502,-502,-502,408,489,-425,489,-602,410,409,-502,-502,-425,-502,-502',
'-502,-502,-502,875,-96,768,-425,575,574,607,606,613,605,116,-263,605',
'238,-105,115,605,240,239,605,762,-425,610,-502,-502,-502,-502,-502,-502',
'-502,-502,-502,-502,-502,-502,-502,-502,761,568,-502,-502,-502,-602',
'-502,-502,-510,760,-502,730,-602,-502,-502,-510,-502,-598,-502,585,-502',
'-602,-502,-502,-502,-502,-502,-502,-502,723,-502,638,-502,607,606,603',
'607,606,608,-602,607,606,625,607,606,-502,-502,-502,-502,263,-502,-505',
'-502,215,767,637,264,116,-505,-505,-505,-502,115,-505,-505,-505,560',
'-505,557,556,555,564,558,-94,-507,-505,-513,-505,-505,-505,116,-507',
'567,-513,116,115,-103,-505,-505,115,-505,-505,-505,-505,-505,-97,-91',
'-92,116,-512,-505,217,218,115,562,546,-512,-505,-106,-100,-101,721,116',
'572,571,575,574,115,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505',
'-505,-505,-505,-505,720,-508,-505,-505,-505,-515,-505,-505,-508,719',
'-505,878,-515,-505,-505,704,-505,568,-505,881,-505,-515,-505,-505,-505',
'-505,-505,-505,-505,884,-505,886,-505,888,560,-514,557,556,555,241,558',
'539,-514,221,541,-505,-505,-505,-505,-602,-505,-514,-505,263,844,815',
'-602,-602,-602,890,264,-505,-602,-602,560,-602,557,556,555,564,558,238',
'713,891,-602,240,239,236,237,539,567,716,541,711,539,-602,-602,541,-602',
'-602,-602,-602,-602,217,218,844,815,560,709,557,556,555,562,558,560',
'707,557,556,555,241,558,217,218,575,574,705,-602,-602,-602,-602,-602',
'-602,-602,-602,-602,-602,-602,-602,-602,-602,688,241,-602,-602,-602',
'713,644,704,899,701,-602,238,713,-602,716,240,239,568,-602,-262,-602',
'920,-602,-602,-602,-602,-602,-602,-602,903,-602,-602,-602,238,905,1004',
'-289,240,239,236,237,906,1005,-289,221,-602,-602,704,-93,909,-602,1003',
'-289,293,72,73,74,12,60,911,913,-102,66,67,915,915,221,70,221,68,69',
'71,33,34,75,76,119,120,121,122,123,32,31,30,104,103,105,106,867,868',
'22,921,869,110,111,648,11,48,694,13,108,107,109,98,59,100,99,101,923',
'102,110,111,693,94,95,925,45,46,44,241,245,250,251,252,247,249,257,258',
'253,254,-288,234,235,213,688,255,256,-288,43,532,214,36,-599,221,61',
'62,-288,677,63,212,38,238,-84,244,47,240,239,236,237,248,246,242,23',
'243,221,221,742,91,83,85,86,87,89,955,221,221,84,92,241,259,241,-239',
'743,935,65,936,221,81,88,90,939,-265,96,97,8,72,73,74,12,60,241,241',
'-280,66,67,647,272,636,70,-280,68,69,71,33,34,75,76,635,-280,221,631',
'949,32,31,30,104,103,105,106,-262,629,22,622,956,957,619,648,11,48,10',
'13,108,107,109,98,59,100,99,101,959,102,110,111,960,94,95,616,45,46',
'44,241,245,250,251,252,247,249,257,258,253,254,-280,234,235,-514,612',
'255,256,-280,43,590,-514,36,589,400,61,62,-280,585,63,-514,38,238,504',
'244,47,240,239,236,237,248,246,242,23,243,543,542,-288,91,83,85,86,87',
'89,-288,-288,976,84,92,-599,259,536,-288,-288,978,65,979,-599,81,88',
'90,-288,241,96,97,293,72,73,74,12,60,528,983,742,66,67,524,272,704,70',
'741,68,69,71,33,34,75,76,988,743,990,992,994,32,31,30,104,103,105,106',
'994,221,22,275,521,1001,514,632,11,48,513,13,108,107,109,98,59,100,99',
'101,221,102,110,111,-69,94,95,1006,45,46,44,241,245,250,251,252,247',
'249,257,258,253,254,-289,234,235,529,504,255,256,-289,43,1007,530,36',
'915,915,61,62,-289,915,63,454,38,238,1012,244,47,240,239,236,237,248',
'246,242,23,243,502,976,519,91,83,85,86,87,89,520,742,499,84,92,272,259',
'489,955,518,220,65,458,457,81,88,90,743,455,96,97,293,72,73,74,12,60',
'221,411,-515,66,67,406,390,-599,70,-515,68,69,71,33,34,75,76,-598,-515',
'693,387,384,32,31,30,104,103,105,106,381,952,22,557,556,555,357,558',
'11,48,221,13,108,107,109,98,59,100,99,101,318,102,110,111,976,94,95',
'317,45,46,44,241,245,250,251,252,247,249,257,258,253,254,452,234,235',
'-335,1035,255,256,453,43,1036,-335,36,1037,1038,61,62,454,994,63,-335',
'38,238,994,244,47,240,239,236,237,248,246,242,23,243,994,221,260,91',
'83,85,86,87,89,216,211,210,84,92,915,259,976,209,112,994,65,,,81,88',
'90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,119',
'120,121,122,123,32,31,30,104,103,105,106,,952,22,557,556,555,,558,11',
'48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241',
'245,250,251,252,247,249,257,258,253,254,,234,235,,,255,256,,43,,,36',
',,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91',
'83,85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,119,120,121,122,123,32,31',
'30,104,103,105,106,,,22,119,120,121,122,123,11,48,,13,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,241,245,250,251,252,247',
'249,257,258,253,254,,234,235,,,255,256,,43,,,36,,,61,62,,,63,,38,238',
',244,47,240,239,236,237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84',
'92,221,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11',
'48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241',
'245,250,251,252,247,249,257,258,253,254,,234,235,,,255,256,,43,,,36',
',,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91',
'83,85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105',
'106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94',
'95,,45,46,44,241,245,250,251,252,247,249,257,258,253,254,,234,235,,',
'255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246',
'242,23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96',
'97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,241,245,250,251,252,247,249,257,258,253',
'254,,234,235,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239',
'236,237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65',
',,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,245,250,251,252,247',
'249,257,258,253,254,,234,235,,,255,256,,43,,,36,,,61,62,,,63,,38,238',
',244,47,240,239,236,237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84',
'92,,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48',
',13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,245',
'250,251,252,247,249,257,258,253,254,,234,235,,,255,256,,43,,,295,,,61',
'62,,,63,,38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91,83',
'85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,241,245,250,251,252,247,249,257,258,253,254,,234,235,,,255',
'256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242',
'23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97',
'293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,241,245,250,251,252,247,249,257,258,253,254',
',234,235,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236',
'237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65,,,81',
'88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,241,245,250,251,252,247,249',
'257,258,253,254,,234,235,,,255,256,,43,,,295,,,61,62,,,63,,38,238,,244',
'47,240,239,236,237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92',
',259,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,245,250',
'251,252,247,249,257,258,253,254,,234,235,,,255,256,,43,,,36,,,61,62',
',,63,,38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91,83,85',
'86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,241,245,250,251,252,247,249,257,258,253,254,,234,235,,,255',
'256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242',
'23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65,,,81,88,90,,,96,97',
'293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30',
'104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,241,245,250,251,252,247,249,257,258,253,254',
',234,235,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236',
'237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,259,,,,,65,,,81',
'88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,560,22,557,556,555,,558,11,48,,13,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,-621,-621',
'-621,-621,247,249,,713,-621,-621,,,,,,255,256,,43,,,36,,,61,62,,,63',
',38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91,83,85,86,87',
'89,,,,84,92,,560,,557,556,555,65,558,,81,88,90,,,96,97,293,72,73,74',
'12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,713,,,,,32,31,30,104,103',
'105,106,,560,22,557,556,555,,558,11,48,,13,108,107,109,98,59,100,99',
'101,,102,110,111,,94,95,,45,46,44,241,245,250,251,252,247,249,,713,253',
'254,,,,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237',
'248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,560,,557,556,555,65',
'558,,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,713,,,,,32,31,30,104,103,105,106,,560,22,557,556,555,,558,11',
'48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241',
'245,250,251,252,247,249,257,713,253,254,,,,,,255,256,,43,,,36,,,61,62',
',,63,,38,238,,244,47,240,239,236,237,248,246,242,23,243,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22',
',,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,241,,,,,,,,,,,,,,,,255,256,,43,,,295,,241,61,62,,,63,,38,238,',
'244,47,240,239,236,237,255,256,242,23,243,,,,91,83,85,86,87,89,,,238',
'84,92,,240,239,236,237,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22',
',,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,241,245,250,251,252,247,249,257,258,253,254,,-621,-621,,,255,256',
',43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242,23',
'243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,293,72',
'73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,241,245,250,251,252,247,249,257,258,253,254,,-621,-621',
',,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248',
'246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,241,,,,,,,,,,,,,,,,255,256,,43,,,36,,',
'61,62,,,63,,38,238,,244,47,240,239,236,237,,,242,23,243,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22',
',,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,241,,,,,,,,,,,,,,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244',
'47,240,239,236,237,,,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,,,,,,,,,,,,,,,,255',
'256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,,,242,23,243',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,293,72,73',
'74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103',
'105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,241,-621,-621,-621,-621,247,249,,,-621,-621,,,,,,255',
'256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248,246,242',
'23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,293',
'72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,241,-621,-621,-621,-621,247,249,,,-621,-621,,,',
',,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236,237,248',
'246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,8,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31',
'30,104,103,105,106,,,22,,,,,,11,48,10,13,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,241,-621,-621,-621,-621,247,249,,,-621',
'-621,,,,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239,236',
'237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,293,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,',
',,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,,13,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,241,-621,-621,-621,-621,247,249',
',,-621,-621,,,,,,255,256,,43,,,36,,,61,62,,,63,,38,238,,244,47,240,239',
'236,237,248,246,242,23,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76',
',,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,241,-621,-621,-621,-621,247',
'249,,,-621,-621,,,,,,255,256,,226,,,232,,,61,62,,,63,,,238,,244,47,240',
'239,236,237,248,246,242,231,243,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311',
'75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,241,,,,,,,,,,,,,,,,255',
'256,,226,,,232,,,61,62,,,63,,,238,,244,47,240,239,236,237,,,,231,,,',
',91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94',
'95,,45,46,44,241,,,,,,,,,,,,,,,,255,256,,226,,,232,,,61,62,,,63,,,238',
'282,244,47,240,239,236,237,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,',
',,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,221',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,',
',,,,,226,,,232,,,61,62,,,63,,284,,,,47,,,,,,,,231,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,',
',,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,',
',,91,83,85,86,87,89,,,,84,92,116,,,,,115,65,,,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,308,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,,,314,,,,,,,,,,,,,,,,,,,,351,,,36,,,61,62,,,63,,38,,,,,,,,,',
',,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,',
'47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59,100,99,101,',
'102,110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,300,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306',
'307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,',
',63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99',
'101,286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,284,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226',
',,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33',
'34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,308,,',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,314,,,,,,,,,,,,',
',,,,,,,304,,,232,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,',
',84,92,,,,316,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70',
',68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48',
'10,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,400,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233',
',,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106',
',,233,,,,,,,308,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,',
',,314,,,,,,,,,,,,,,,,,,,,304,,,300,,,61,62,,,63,,299,,,,,,,,,,,,,,,',
',91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,416,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,416,,,,47',
',,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,221,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,',
'63,,,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76',
',,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59',
'100,99,101,286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,672,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,',
'84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,765,,,,47,,,,,,,,231,,,,',
'91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284',
',282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,',
',32,31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99',
'101,286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,284,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,',
',,,,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,286,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,',
'47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306',
'307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,',
',63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,',
',,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75',
'76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106',
',,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,',
'47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306',
'307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,',
',63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,',
',,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75',
'76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,',
'66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106',
',,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45',
'46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,',
'60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,22,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104',
'103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284',
',282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,',
',,,306,307,313,104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,300,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88',
'90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32',
'31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
'286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62',
',,63,,284,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75',
'76,,,,,,32,31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59',
'100,99,101,286,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,284,,282,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,',
'84,92,221,,,,,,65,,287,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,',
',48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,672,,282,,47,,,,,,,,231,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,308,,,108,107,109,591,59,100,99,592,,102,110,111',
',94,95,,,,314,,,,,,,,,,,,,,,,,,,,593,,,232,,,61,62,,,63,,,,,,,,,,,,',
',,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106',
',,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306',
'307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,',
',63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81',
'88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,',
',,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75',
'76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,',
',232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,308',
',,108,107,109,591,59,100,99,592,,102,110,111,,94,95,,,,314,,,,,,,,,',
',,,,,,,,,,593,,,232,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,',
'68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,',
'13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,',
',,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,',
',,,,308,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,314,,',
',,,,,,,,,,,,,,,,,966,,,232,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86',
'87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,',
'70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,286,102,110,111,,94,95,,45,46,44,,,,',
',,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,,,,,,,231,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,',
',233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,282,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
',,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306',
'307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101',
',102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,',
',63,,416,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,',
'81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76',
',,,,,306,307,313,104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,232,',
',61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,516,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100',
'99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,',
'61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65',
',,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75',
'76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,308,,,108,107,109,98',
'59,100,99,101,,102,110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,300',
',,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,',
',81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76',
',,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232',
',,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,',
',65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311',
'75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226',
',,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92',
',,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310',
'311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107',
'109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,',
',,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,308,,',
'108,107,109,98,59,100,99,101,,102,110,111,,94,95,,,,314,,,,,,,,,,,,',
',,,,,,,893,,,232,,,61,62,,,63,,,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,',
',84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69',
'71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89',
',,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68',
'69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48',
',,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,',
',,,,,,,,,,,,226,,,232,,,61,62,,,63,,284,,,,47,,,,,,,,231,,,,,91,83,85',
'86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67',
',,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233',
',,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,282,,47,,,,,,,,231,',
',,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286,102,110,111',
',94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,',
',,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59,100,99,101,',
'102,110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,300,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,286',
'102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,',
'63,,672,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,287',
'81,88,90,,,96,97,72,73,74,12,60,,,,66,67,,,,70,,68,69,71,33,34,75,76',
',,,,,32,31,30,104,103,105,106,,,22,,,,,,11,48,10,13,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,43,,,36',
',,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,',
',,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,33,34',
'75,76,,,,,,32,31,30,104,103,105,106,,,22,,,,,,,48,,,108,107,109,98,59',
'100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232',
',,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83,85,86,87,89,,,,84,92,,,,,,',
'65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311',
'75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108,107,109',
'98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226',
',,232,,,61,62,,,63,,672,,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84',
'92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70,,68,69,71',
'310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,,,48,,,108',
'107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,,,,,,,,,,,',
',,,,,,226,,,232,532,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83,85,86,87',
'89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66,67,,,,70',
',68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105,106,,,233,,,,,',
',48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44,,,',
',,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46,44',
',,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,23,,,,,91,83',
'85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74,12,60,,,,66',
'67,,,,70,,68,69,71,33,34,75,76,,,,,,32,31,30,104,103,105,106,,,22,,',
',,,11,48,,13,108,107,109,98,59,100,99,101,,102,110,111,,94,95,,45,46',
'44,,,,,,,,,,,,,,,,,,,,43,,,36,,,61,62,,,63,,38,,,,47,,,,,,,,23,,,,,91',
'83,85,86,87,89,,,,84,92,,,,,,400,65,,,81,88,90,,,96,97,72,73,74,,60',
',,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103,105',
'106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,,94,95',
',45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,,,,,,,231',
',,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97,72,73,74',
',60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313,104,103',
'105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110,111,',
'94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,,47,,',
',,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,893,,,232,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,308,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,,,314,,,,,,,,,,,,,,,,,,,,304,,,300,,,61,62,,,63,,,,',
',,,,,,,,,,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96,97',
'72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307,313',
'104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102,110',
'111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,,,,,',
'47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90,,,96',
'97,72,73,74,,60,,,,66,67,,,,70,,68,69,71,310,311,75,76,,,,,,306,307',
'313,104,103,105,106,,,233,,,,,,,48,,,108,107,109,98,59,100,99,101,,102',
'110,111,,94,95,,45,46,44,,,,,,,,,,,,,,,,,,,,226,,,232,,,61,62,,,63,',
',,,,47,,,,,,,,231,,,,,91,83,85,86,87,89,,,,84,92,,,,,,,65,,,81,88,90',
'-603,,96,97,,,,-603,-603,-603,,,-603,-603,-603,560,-603,557,556,555',
'564,558,,,,-603,-603,-603,-603,,,567,,,,,-603,-603,,-603,-603,-603,-603',
'-603,,,,,,,,,,562,,,,,,,,,572,571,575,574,,-603,-603,-603,-603,-603',
'-603,-603,-603,-603,-603,-603,-603,-603,-603,,,-603,-603,-603,,,-603',
',,-603,,,-603,-603,,-603,568,-603,,-603,,-603,-603,-603,-603,-603,-603',
'-603,,-603,-603,-603,,,,,,,,,,,,,-603,-603,-603,-603,-604,-603,,-603',
',,,-604,-604,-604,,,-604,-604,-604,560,-604,557,556,555,564,558,,,,-604',
'-604,-604,-604,,,567,,,,,-604,-604,,-604,-604,-604,-604,-604,,,,,,,',
',,562,,,,,,,,,,,575,574,,-604,-604,-604,-604,-604,-604,-604,-604,-604',
'-604,-604,-604,-604,-604,,,-604,-604,-604,,,-604,,,-604,,,-604,-604',
',-604,568,-604,,-604,,-604,-604,-604,-604,-604,-604,-604,,-604,-604',
'-604,,,,,,,,,,,,,-604,-604,-604,-604,-281,-604,,-604,,,,-281,-281,-281',
',,-281,-281,-281,560,-281,557,556,555,564,558,,,,,-281,-281,-281,,,567',
',,,,-281,-281,,-281,-281,-281,-281,-281,,,,,,,,,,562,,,,,,,,,572,571',
'575,574,,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281',
'-281,-281,,,-281,-281,-281,,,-281,,,-281,,,-281,-281,,-281,568,-281',
',-281,,-281,-281,-281,-281,-281,-281,-281,,-281,,-281,,,,,,,,,,,,,-281',
'-281,-281,-281,,-281,,-281,176,187,177,200,173,193,183,182,203,204,198',
'181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,366',
'365,367,364,172,191,190,,,,,,171,178,169,170,361,362,363,359,129,100',
'99,360,,102,,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,',
'163,164,149,150,,,,,,373,,,,,,,,154,153,,138,160,156,155,151,152,146',
'144,136,159,137,,,165,,,,,,,,,,,,,,,,,,,,158,176,187,177,200,173,193',
'183,182,203,204,198,181,180,175,201,205,206,185,174,188,192,194,186',
'179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178,169,170',
'166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145,147',
',,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177',
'200,173,193,183,182,203,204,198,181,180,175,201,205,206,185,174,188',
'192,194,186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171',
'178,169,170,166,167,168,127,129,126,,128,,,,,,,,,161,162,,157,139,140',
'141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138',
'160,156,155,151,152,146,144,136,159,137,,,165,91,,,,,,,,,,92,,,,,,,',
',158,176,187,177,200,173,193,183,182,203,204,198,181,180,175,201,205',
'206,185,174,188,192,194,186,179,,,,195,202,197,196,189,199,184,172,191',
'190,,,,,,171,178,169,170,166,167,168,127,129,,,128,,,,,,,,,161,162,',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,,,,,,',
',,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,91,,,,',
',,,,,92,,,,,,,,,158,176,187,177,200,173,193,183,182,203,204,198,181',
'180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202,197,196,189',
'199,184,172,191,190,,,,,,171,178,169,170,166,167,168,127,129,,,128,',
',,,,,,,161,162,,157,139,140,141,148,145,147,,,142,143,,,,163,164,149',
'150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,91,,,,,,,,,,92,,,,,,,,,158,176,187,177,200,173,193,183,182,203',
'204,198,181,180,175,201,205,206,185,174,188,192,194,186,179,,,,195,202',
'197,196,189,199,184,172,191,190,,,,,,171,178,169,170,166,167,168,127',
'129,397,396,128,,398,,,,,,,161,162,,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,,165,,,,,,,,,,,,,,,,,,,,158,176,187,177,200,173',
'193,183,182,203,204,198,181,180,175,201,205,206,185,174,188,192,194',
'186,179,,,,195,202,197,196,189,199,184,172,191,190,,,,,,171,178,169',
'170,166,167,168,127,129,,,128,,,,,,,,,161,162,,157,139,140,141,148,145',
'147,,,142,143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,-295,,165,,,,,-295,-295,-295,,,-295,-295',
'-295,560,-295,557,556,555,564,558,158,,,,-295,-295,,,,567,,,,,-295,-295',
',-295,-295,-295,-295,-295,,,,,,,,,,562,,,,,,,,,,,575,574,,-295,-295',
'-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,,,-295,-295',
'-295,,,-295,,275,-295,,,-295,-295,,-295,568,-295,,-295,,-295,-295,-295',
'-295,-295,-295,-295,,-295,,-295,,,,,,,,,,,,-620,-295,-295,,-295,,-295',
'-620,-620,-620,,,-620,-620,-620,560,-620,557,556,555,564,558,,,,-620',
'-620,,,,,567,,,,,-620,-620,,-620,-620,-620,-620,-620,,,,,,,,,,562,,',
',,,,,,572,571,575,574,,-620,,,,,,,-620,-620,-620,,-620,-620,-620,-620',
',-620,,-620,,,,,272,-620,-620,-620,-620,,,,568,,,,,-620,-620,,-620,-620',
'-620,-620,-620,,-620,-620,,,,,,,,,,,,,-620,,,,,-620,,,-620,-620,-620',
'-620,-620,-620,-620,-620,-620,-620,-620,-620,-620,-620,,,-620,-620,-620',
',,-620,,272,-620,,,-620,-620,,-620,,-620,,-620,,-620,-620,-620,-620',
'-620,-620,-620,,-620,-620,-620,,,,,,,,,,,,-424,-620,-620,,-620,,-620',
'-424,-424,-424,,,-424,-424,-424,560,-424,557,556,555,564,558,,,,-424',
'-424,-424,,,,567,,,,,-424,-424,,-424,-424,-424,-424,-424,,,,,,,,,,562',
',,,,,,,,,,575,574,,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424',
'-424,-424,-424,-424,,,-424,-424,-424,,,-424,,272,-424,,,-424,-424,,-424',
'568,-424,,-424,,-424,-424,-424,-424,-424,-424,-424,,-424,-424,-424,',
',,,,735,437,,,736,,,-424,-424,,-424,,-424,161,162,,157,139,140,141,148',
'145,147,,,142,143,,,,163,164,149,150,,,,,,272,,,,,,,,154,153,,138,160',
'156,155,151,152,146,144,136,159,137,,,165,,,,,433,437,,,432,,,,,,,,',
'161,162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150',
',,,,,272,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137',
',,165,,,,,487,430,,,488,,,,,,,,,161,162,158,157,139,140,141,148,145',
'147,,,142,143,,,,163,164,149,150,,,,,,272,,,,,,,,154,153,,138,160,156',
'155,151,152,146,144,136,159,137,,,165,,,,,650,430,,,651,,,,,,,,,161',
'162,158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,',
',,272,,,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,',
'165,,,,,652,437,,,653,,,,,,,,,161,162,158,157,139,140,141,148,145,147',
',,142,143,,,,163,164,149,150,,,,,,272,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,,165,,,,,852,437,,,853,,,,,,,,,161,162',
'158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,272',
',,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,',
',,681,430,,,682,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,272,,,,,,,,154,153,,138,160,156,155,151',
'152,146,144,136,159,137,,,165,,,,,684,437,,,685,,,,,,,,,161,162,158',
'157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,272,,',
',,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,560,165,557',
'556,555,564,558,560,,557,556,555,564,558,,,567,,,,,158,,567,560,,557',
'556,555,564,558,,,,,,,,562,,567,,,,,562,,572,571,575,574,,,,572,571',
'575,574,,,,560,562,557,556,555,564,558,,,,572,571,575,574,,,567,,,,',
'221,568,,,,,,,568,,,,,,,,,562,1030,437,,,1031,,,568,,,575,574,,161,162',
',157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,272,',
',,,568,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165',
',,,,1028,430,,,1029,,,,,,,,,161,162,158,157,139,140,141,148,145,147',
',,142,143,,,,163,164,149,150,,,,,,272,,,,,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,560,165,557,556,555,564,558,560,,557,556',
'555,564,558,,,567,,,,,158,,567,,,,,,,,,,,,,,,562,,,,,,,562,,426,430',
'575,574,427,,,,,575,574,,,161,162,,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,568,,,272,,,,568,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,560,165,557,556,555,564,558,560,,557,556',
'555,564,558,,,567,,,,,158,,567,,,,,,,,,,,,,,,562,,,,,,,562,,650,430',
'575,574,651,,,,,575,574,,,161,162,,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,568,,,272,,,,568,,,,154,153,,138,160,156,155',
'151,152,146,144,136,159,137,,,165,,,,,652,437,,,653,,,,,,,,,161,162',
'158,157,139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,272',
',,,,,,,154,153,,138,160,156,155,151,152,146,144,136,159,137,,,165,,',
',,487,430,,,488,,,,,,,,,161,162,158,157,139,140,141,148,145,147,,,142',
'143,,,,163,164,149,150,,,,,,,,,,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,560,165,557,556,555,564,558,560,,557,556,555,564',
'558,,,567,,,,,158,,567,560,,557,556,555,564,558,,,,,,,,562,751,567,',
',,,562,,572,571,575,574,,,,572,571,575,574,,,,,562,751,560,,557,556',
'555,564,558,572,571,575,574,,,,,,567,,560,568,557,556,555,564,558,,568',
',,,,,,,567,,,,562,,,,,568,,,,,,575,574,,,,,,562,,,733,430,,,734,,572',
'571,575,574,,,,161,162,,157,139,140,141,148,145,147,,568,142,143,,,',
'163,164,149,150,,,,,,272,,,568,,,,,154,153,,138,160,156,155,151,152',
'146,144,136,159,137,,,165,,,,,1000,437,,,999,,,,,,,,,161,162,158,157',
'139,140,141,148,145,147,,,142,143,,,,163,164,149,150,,,,,,272,,,,,,',
',154,153,,138,160,156,155,151,152,146,144,136,159,137,,560,165,557,556',
'555,564,558,,,,,,,,,,567,,,,,158,,,,,,,,,,,,,,,,,562,,,,,,,,,572,571',
'575,574,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,568' ]
        racc_action_table = arr = ::Array.new(26268, 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 = [
'432,1029,391,1043,849,902,309,432,432,432,597,663,22,432,432,64,432',
'521,593,493,20,20,593,850,521,348,664,29,494,342,924,1028,1,521,388',
'651,432,432,729,432,432,432,432,432,341,785,676,330,22,589,330,352,733',
'493,545,582,450,450,1030,676,664,981,494,981,349,391,734,432,432,432',
'432,432,432,432,432,432,432,432,432,432,432,736,851,432,432,432,724',
'432,754,754,651,432,29,309,432,691,691,388,663,432,785,432,64,432,432',
'432,432,432,432,432,735,432,717,432,29,1029,597,1043,849,902,1029,849',
'1043,849,902,653,432,432,850,432,348,432,653,653,653,597,1030,653,653',
'653,597,653,432,342,924,1028,450,736,342,924,1028,653,653,653,589,582',
'352,733,341,545,582,653,653,341,653,653,653,653,653,349,682,734,1030',
'485,681,715,735,1030,754,700,650,581,851,44,44,691,736,851,950,692,852',
'950,653,653,653,653,653,653,653,653,653,653,653,653,653,653,455,485',
'653,653,653,350,653,653,362,735,653,690,350,653,653,362,653,225,653',
'224,653,350,653,653,653,653,653,653,653,650,653,682,653,314,314,681',
'716,852,716,716,716,617,716,687,852,653,653,653,653,852,653,652,653',
'852,227,455,44,44,652,652,652,653,42,652,652,652,682,652,686,682,681',
'852,225,681,224,581,652,652,652,652,581,80,682,683,592,680,681,652,652',
'80,652,652,652,652,652,920,701,920,920,920,678,920,617,617,42,614,671',
'701,359,227,669,617,314,314,716,359,591,42,652,652,652,652,652,652,652',
'652,652,652,652,652,652,652,704,704,652,652,652,592,652,652,701,701',
'652,385,592,652,652,41,652,592,652,662,652,592,652,652,652,652,652,652',
'652,810,652,652,652,345,614,614,656,591,345,592,382,920,701,614,591',
'652,652,652,652,591,652,98,652,591,318,878,764,41,98,98,98,652,367,98',
'98,98,878,98,654,367,41,591,385,385,385,98,462,98,98,98,126,645,810',
'639,684,126,126,98,98,810,98,98,98,98,98,769,318,634,810,878,878,382',
'382,382,375,747,630,377,462,318,747,393,462,462,379,626,810,379,98,98',
'98,98,98,98,98,98,98,98,98,98,98,98,624,878,98,98,98,684,98,98,364,621',
'98,584,684,98,98,364,98,684,98,583,98,684,98,98,98,98,98,98,98,578,98',
'427,98,375,375,375,377,377,377,684,393,393,393,379,379,98,98,98,98,27',
'98,101,98,18,633,426,27,290,101,101,101,98,290,101,101,101,339,101,339',
'339,339,339,339,427,365,101,363,101,101,101,752,365,339,363,5,752,427',
'101,101,5,101,101,101,101,101,18,633,426,933,361,360,340,340,933,339',
'339,361,360,18,633,426,576,859,339,339,339,339,859,101,101,101,101,101',
'101,101,101,101,101,101,101,101,101,573,366,101,101,101,964,101,101',
'366,569,101,787,964,101,101,788,101,339,101,790,101,964,101,101,101',
'101,101,101,101,791,101,792,101,794,562,301,562,562,562,481,562,331',
'301,795,331,101,101,101,101,433,101,301,101,369,722,722,433,433,433',
'796,369,101,433,433,911,433,911,911,911,911,911,481,562,797,433,481',
'481,481,481,335,911,562,335,561,696,433,433,696,433,433,433,433,433',
'748,748,1014,1014,713,553,713,713,713,911,713,838,552,838,838,838,461',
'838,326,326,911,911,551,433,433,433,433,433,433,433,433,433,433,433',
'433,433,433,809,480,433,433,433,713,433,549,813,548,433,461,838,433',
'713,461,461,911,433,816,433,838,433,433,433,433,433,433,433,817,433',
'433,433,480,821,965,739,480,480,480,480,822,965,739,823,433,433,824',
'433,828,433,965,739,580,580,580,580,580,580,829,831,433,580,580,832',
'834,837,580,535,580,580,580,580,580,580,580,675,675,675,675,675,580',
'580,580,580,580,580,580,755,755,580,839,755,755,755,445,580,580,534',
'580,580,580,580,580,580,580,580,580,842,580,580,580,533,580,580,845',
'580,580,580,445,445,445,445,445,445,445,445,445,445,445,853,445,445',
'17,525,445,445,853,580,522,17,580,853,517,580,580,853,515,580,17,580',
'445,512,445,580,445,445,445,445,445,445,445,580,445,511,496,954,580',
'580,580,580,580,580,954,855,495,580,580,466,445,465,445,954,860,580',
'861,862,580,580,580,871,872,580,580,2,2,2,2,2,2,464,463,305,2,2,442',
'434,425,2,305,2,2,2,2,2,2,2,424,305,421,417,889,2,2,2,2,2,2,2,415,412',
'2,390,893,894,387,655,2,2,2,2,2,2,2,2,2,2,2,2,896,2,2,2,897,2,2,384',
'2,2,2,655,655,655,655,655,655,655,655,655,655,655,967,655,655,963,381',
'655,655,967,2,353,963,2,351,347,2,2,967,346,2,963,2,655,336,655,2,655',
'655,655,655,655,655,655,2,655,333,332,685,2,2,2,2,2,2,685,1031,922,2',
'2,685,655,328,1031,685,926,2,927,1031,2,2,2,1031,322,2,2,815,815,815',
'815,815,815,319,932,595,815,815,315,313,940,815,595,815,815,815,815',
'815,815,815,943,595,944,945,946,815,815,815,815,815,815,815,948,308',
'815,307,304,958,298,420,815,815,297,815,815,815,815,815,815,815,815',
'815,296,815,815,815,294,815,815,966,815,815,815,420,420,420,420,420',
'420,420,420,420,420,420,1006,420,420,320,283,420,420,1006,815,969,320',
'815,970,971,815,815,1006,972,815,320,815,420,973,420,815,420,420,420',
'420,420,420,420,815,420,280,975,303,815,815,815,815,815,815,303,892',
'279,815,815,268,420,265,892,303,233,815,229,228,815,815,815,892,226',
'815,815,895,895,895,895,895,895,732,207,302,895,895,124,90,999,895,302',
'895,895,895,895,895,895,895,1000,302,1002,89,88,895,895,895,895,895',
'895,895,87,890,895,890,890,890,72,890,895,895,48,895,895,895,895,895',
'895,895,895,895,43,895,895,895,1013,895,895,40,895,895,895,440,440,440',
'440,440,440,440,440,440,440,440,223,440,440,49,1018,440,440,223,895',
'1019,49,895,1020,1021,895,895,223,1022,895,49,895,440,1023,440,895,440',
'440,440,440,440,440,440,895,440,1024,1027,25,895,895,895,895,895,895',
'19,16,15,895,895,1032,440,1033,13,3,1045,895,,,895,895,895,,,895,895',
'806,806,806,806,806,806,,,,806,806,,,,806,,806,806,806,806,806,806,806',
'9,9,9,9,9,806,806,806,806,806,806,806,,998,806,998,998,998,,998,806',
'806,,806,806,806,806,806,806,806,806,806,,806,806,806,,806,806,,806',
'806,806,773,773,773,773,773,773,773,773,773,773,773,,773,773,,,773,773',
',806,,,806,,,806,806,,,806,,806,773,,773,806,773,773,773,773,773,773',
'773,806,773,,,,806,806,806,806,806,806,,,,806,806,,773,,,,,806,,,806',
'806,806,,,806,806,805,805,805,805,805,805,,,,805,805,,,,805,,805,805',
'805,805,805,805,805,510,510,510,510,510,805,805,805,805,805,805,805',
',,805,292,292,292,292,292,805,805,,805,805,805,805,805,805,805,805,805',
',805,805,805,,805,805,,805,805,805,484,484,484,484,484,484,484,484,484',
'484,484,,484,484,,,484,484,,805,,,805,,,805,805,,,805,,805,484,,484',
'805,484,484,484,484,484,484,484,805,484,,,,805,805,805,805,805,805,',
',,805,805,484,484,,,,,805,,,805,805,805,,,805,805,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,776,776,776,776,776,776,776,776',
'776,776,776,,776,776,,,776,776,,801,,,801,,,801,801,,,801,,801,776,',
'776,801,776,776,776,776,776,776,776,801,776,,,,801,801,801,801,801,801',
',,,801,801,,776,,,,,801,,,801,801,801,,,801,801,577,577,577,577,577',
'577,,,,577,577,,,,577,,577,577,577,577,577,577,577,,,,,,577,577,577',
'577,577,577,577,,,577,,,,,,577,577,,577,577,577,577,577,577,577,577',
'577,,577,577,577,,577,577,,577,577,577,874,874,874,874,874,874,874,874',
'874,874,874,,874,874,,,874,874,,577,,,577,,,577,577,,,577,,577,874,',
'874,577,874,874,874,874,874,874,874,577,874,,,,577,577,577,577,577,577',
',,,577,577,,874,,,,,577,,,577,577,577,,,577,577,699,699,699,699,699',
'699,,,,699,699,,,,699,,699,699,699,699,699,699,699,,,,,,699,699,699',
'699,699,699,699,,,699,,,,,,699,699,,699,699,699,699,699,699,699,699',
'699,,699,699,699,,699,699,,699,699,699,877,877,877,877,877,877,877,877',
'877,877,877,,877,877,,,877,877,,699,,,699,,,699,699,,,699,,699,877,',
'877,699,877,877,877,877,877,877,877,699,877,,,,699,699,699,699,699,699',
',,,699,699,,877,,,,,699,,,699,699,699,,,699,699,698,698,698,698,698',
'698,,,,698,698,,,,698,,698,698,698,698,698,698,698,,,,,,698,698,698',
'698,698,698,698,,,698,,,,,,698,698,,698,698,698,698,698,698,698,698',
'698,,698,698,698,,698,698,,698,698,698,771,771,771,771,771,771,771,771',
'771,771,771,,771,771,,,771,771,,698,,,698,,,698,698,,,698,,698,771,',
'771,698,771,771,771,771,771,771,771,698,771,,,,698,698,698,698,698,698',
',,,698,698,,771,,,,,698,,,698,698,698,,,698,698,300,300,300,300,300',
'300,,,,300,300,,,,300,,300,300,300,300,300,300,300,,,,,,300,300,300',
'300,300,300,300,,,300,,,,,,300,300,,300,300,300,300,300,300,300,300',
'300,,300,300,300,,300,300,,300,300,300,24,24,24,24,24,24,24,24,24,24',
'24,,24,24,,,24,24,,300,,,300,,,300,300,,,300,,300,24,,24,300,24,24,24',
'24,24,24,24,300,24,,,,300,300,300,300,300,300,,,,300,300,,24,,,,,300',
',,300,300,300,,,300,300,962,962,962,962,962,962,,,,962,962,,,,962,,962',
'962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962,,,962,,,,,',
'962,962,,962,962,962,962,962,962,962,962,962,,962,962,962,,962,962,',
'962,962,962,689,689,689,689,689,689,689,689,689,689,689,,689,689,,,689',
'689,,962,,,962,,,962,962,,,962,,962,689,,689,962,689,689,689,689,689',
'689,689,962,689,,,,962,962,962,962,962,962,,,,962,962,,689,,,,,962,',
',962,962,962,,,962,962,899,899,899,899,899,899,,,,899,899,,,,899,,899',
'899,899,899,899,899,899,,,,,,899,899,899,899,899,899,899,,,899,,,,,',
'899,899,,899,899,899,899,899,899,899,899,899,,899,899,899,,899,899,',
'899,899,899,766,766,766,766,766,766,766,766,766,766,766,,766,766,,,766',
'766,,899,,,899,,,899,899,,,899,,899,766,,766,899,766,766,766,766,766',
'766,766,899,766,,,,899,899,899,899,899,899,,,,899,899,,766,,,,,899,',
',899,899,899,,,899,899,295,295,295,295,295,295,,,,295,295,,,,295,,295',
'295,295,295,295,295,295,,,,,,295,295,295,295,295,295,295,,,295,,,,,',
'295,295,,295,295,295,295,295,295,295,295,295,,295,295,295,,295,295,',
'295,295,295,778,778,778,778,778,778,778,778,778,778,778,,778,778,,,778',
'778,,295,,,295,,,295,295,,,295,,295,778,,778,295,778,778,778,778,778',
'778,778,295,778,,,,295,295,295,295,295,295,,,,295,295,,778,,,,,295,',
',295,295,295,,,295,295,977,977,977,977,977,977,,,,977,977,,,,977,,977',
'977,977,977,977,977,977,,,,,,977,977,977,977,977,977,977,,,977,,,,,',
'977,977,,977,977,977,977,977,977,977,977,977,,977,977,977,,977,977,',
'977,977,977,277,277,277,277,277,277,277,277,277,277,277,,277,277,,,277',
'277,,977,,,977,,,977,977,,,977,,977,277,,277,977,277,277,277,277,277',
'277,277,977,277,,,,977,977,977,977,977,977,,,,977,977,,277,,,,,977,',
',977,977,977,,,977,977,982,982,982,982,982,982,,,,982,982,,,,982,,982',
'982,982,982,982,982,982,,,,,,982,982,982,982,982,982,982,,,982,,,,,',
'982,982,,982,982,982,982,982,982,982,982,982,,982,982,982,,982,982,',
'982,982,982,780,780,780,780,780,780,780,780,780,780,780,,780,780,,,780',
'780,,982,,,982,,,982,982,,,982,,982,780,,780,982,780,780,780,780,780',
'780,780,982,780,,,,982,982,982,982,982,982,,,,982,982,,780,,,,,982,',
',982,982,982,,,982,982,232,232,232,232,232,232,,,,232,232,,,,232,,232',
'232,232,232,232,232,232,,,,,,232,232,232,232,232,232,232,,,232,,,,,',
'232,232,,232,232,232,232,232,232,232,232,232,,232,232,232,,232,232,',
'232,232,232,531,531,531,531,531,531,531,531,531,531,531,,531,531,,,531',
'531,,232,,,232,,,232,232,,,232,,232,531,,531,232,531,531,531,531,531',
'531,531,232,531,,,,232,232,232,232,232,232,,,,232,232,,531,,,,,232,',
',232,232,232,,,232,232,985,985,985,985,985,985,,,,985,985,,,,985,,985',
'985,985,985,985,985,985,,,,,,985,985,985,985,985,985,985,,974,985,974',
'974,974,,974,985,985,,985,985,985,985,985,985,985,985,985,,985,985,985',
',985,985,,985,985,985,470,470,470,470,470,470,470,,974,470,470,,,,,',
'470,470,,985,,,985,,,985,985,,,985,,985,470,,470,985,470,470,470,470',
'470,470,470,985,470,,,,985,985,985,985,985,985,,,,985,985,,921,,921',
'921,921,985,921,,985,985,985,,,985,985,986,986,986,986,986,986,,,,986',
'986,,,,986,,986,986,986,986,986,986,986,921,,,,,986,986,986,986,986',
'986,986,,840,986,840,840,840,,840,986,986,,986,986,986,986,986,986,986',
'986,986,,986,986,986,,986,986,,986,986,986,482,482,482,482,482,482,482',
',840,482,482,,,,,,482,482,,986,,,986,,,986,986,,,986,,986,482,,482,986',
'482,482,482,482,482,482,482,986,482,,,,986,986,986,986,986,986,,,,986',
'986,,976,,976,976,976,986,976,,986,986,986,,,986,986,856,856,856,856',
'856,856,,,,856,856,,,,856,,856,856,856,856,856,856,856,976,,,,,856,856',
'856,856,856,856,856,,1012,856,1012,1012,1012,,1012,856,856,,856,856',
'856,856,856,856,856,856,856,,856,856,856,,856,856,,856,856,856,483,483',
'483,483,483,483,483,483,1012,483,483,,,,,,483,483,,856,,,856,,,856,856',
',,856,,856,483,,483,856,483,483,483,483,483,483,483,856,483,,,,856,856',
'856,856,856,856,,,,856,856,,,,,,,856,,,856,856,856,,,856,856,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,471,,,,,,,,,,,,,,,,471,471,,36,,,36,,469,36,36,,,36,,36,471,,471',
'36,471,471,471,471,469,469,471,36,471,,,,36,36,36,36,36,36,,,469,36',
'36,,469,469,469,469,,36,,,36,36,36,,,36,36,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,460,460,460,460,460,460,460,460,460,460',
'460,,460,460,,,460,460,,209,,,209,,,209,209,,,209,,209,460,,460,209',
'460,460,460,460,460,460,460,209,460,,,,209,209,209,209,209,209,,,,209',
'209,,,,,,,209,,,209,209,209,,,209,209,929,929,929,929,929,929,,,,929',
'929,,,,929,,929,929,929,929,929,929,929,,,,,,929,929,929,929,929,929',
'929,,,929,,,,,,929,929,,929,929,929,929,929,929,929,929,929,,929,929',
'929,,929,929,,929,929,929,459,459,459,459,459,459,459,459,459,459,459',
',459,459,,,459,459,,929,,,929,,,929,929,,,929,,929,459,,459,929,459',
'459,459,459,459,459,459,929,459,,,,929,929,929,929,929,929,,,,929,929',
',,,,,,929,,,929,929,929,,,929,929,749,749,749,749,749,749,,,,749,749',
',,,749,,749,749,749,749,749,749,749,,,,,,749,749,749,749,749,749,749',
',,749,,,,,,749,749,,749,749,749,749,749,749,749,749,749,,749,749,749',
',749,749,,749,749,749,472,,,,,,,,,,,,,,,,472,472,,749,,,749,,,749,749',
',,749,,749,472,,472,749,472,472,472,472,,,472,749,472,,,,749,749,749',
'749,749,749,,,,749,749,,,,,,,749,,,749,749,749,,,749,749,750,750,750',
'750,750,750,,,,750,750,,,,750,,750,750,750,750,750,750,750,,,,,,750',
'750,750,750,750,750,750,,,750,,,,,,750,750,,750,750,750,750,750,750',
'750,750,750,,750,750,750,,750,750,,750,750,750,473,,,,,,,,,,,,,,,,473',
'473,,750,,,750,,,750,750,,,750,,750,473,,473,750,473,473,473,473,,,473',
'750,473,,,,750,750,750,750,750,750,,,,750,750,,,,,,,750,,,750,750,750',
',,750,750,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,474',
',,,,,,,,,,,,,,,474,474,,325,,,325,,,325,325,,,325,,325,474,,474,325',
'474,474,474,474,,,474,325,474,,,,325,325,325,325,325,325,,,,325,325',
',,,,,,325,,,325,325,325,,,325,325,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,475,475,475,475,475,475,475,,,475,475,,,,,,475',
'475,,846,,,846,,,846,846,,,846,,846,475,,475,846,475,475,475,475,475',
'475,475,846,475,,,,846,846,846,846,846,846,,,,846,846,,,,,,,846,,,846',
'846,846,,,846,846,847,847,847,847,847,847,,,,847,847,,,,847,,847,847',
'847,847,847,847,847,,,,,,847,847,847,847,847,847,847,,,847,,,,,,847',
'847,,847,847,847,847,847,847,847,847,847,,847,847,847,,847,847,,847',
'847,847,477,477,477,477,477,477,477,,,477,477,,,,,,477,477,,847,,,847',
',,847,847,,,847,,847,477,,477,847,477,477,477,477,477,477,477,847,477',
',,,847,847,847,847,847,847,,,,847,847,,,,,,,847,,,847,847,847,,,847',
'847,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,479,479',
'479,479,479,479,479,,,479,479,,,,,,479,479,,406,,,406,,,406,406,,,406',
',406,479,,479,406,479,479,479,479,479,479,479,406,479,,,,406,406,406',
'406,406,406,,,,406,406,,,,,,,406,,,406,406,406,,,406,406,756,756,756',
'756,756,756,,,,756,756,,,,756,,756,756,756,756,756,756,756,,,,,,756',
'756,756,756,756,756,756,,,756,,,,,,756,756,,756,756,756,756,756,756',
'756,756,756,,756,756,756,,756,756,,756,756,756,476,476,476,476,476,476',
'476,,,476,476,,,,,,476,476,,756,,,756,,,756,756,,,756,,756,476,,476',
'756,476,476,476,476,476,476,476,756,476,,,,756,756,756,756,756,756,',
',,756,756,,,,,,,756,,,756,756,756,,,756,756,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,284,284,478,478,478,478,478,478,478,,,478,478,,,,,,478',
'478,,284,,,284,,,284,284,,,284,,,478,,478,284,478,478,478,478,478,478',
'478,284,478,,,,284,284,284,284,284,284,,,,284,284,,,,,,,284,,,284,284',
'284,,,284,284,672,672,672,,672,,,,672,672,,,,672,,672,672,672,672,672',
'672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,,672,,,672,672,672',
'672,672,672,672,672,,672,672,672,,672,672,,672,672,672,468,,,,,,,,,',
',,,,,,468,468,,672,,,672,,,672,672,,,672,,,468,,468,672,468,468,468',
'468,,,,672,,,,,672,672,672,672,672,672,,,,672,672,,,,,,,672,,,672,672',
'672,,,672,672,875,875,875,,875,,,,875,875,,,,875,,875,875,875,875,875',
'875,875,,,,,,875,875,875,875,875,875,875,,,875,,,,,,,875,,,875,875,875',
'875,875,875,875,875,875,875,875,875,,875,875,,875,875,875,467,,,,,,',
',,,,,,,,,467,467,,875,,,875,,,875,875,,,875,,,467,875,467,875,467,467',
'467,467,,,,875,,,,,875,875,875,875,875,875,,,,875,875,,,,,,,875,,875',
'875,875,875,,,875,875,343,343,343,,343,,,,343,343,,,,343,,343,343,343',
'343,343,343,343,,,,,,343,343,343,343,343,343,343,,,343,,,,,,,343,,,343',
'343,343,343,343,343,343,343,,343,343,343,,343,343,,343,343,343,,,,,',
',,,,,,,,,,,,,,343,,,343,,,343,343,,,343,,,,,,343,,,,,,,,343,,,,,343',
'343,343,343,343,343,,,,343,343,,,,,,,343,,,343,343,343,,,343,343,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,,,61,,,,,,61,,,,,,,,61,,,,,61,61',
'61,61,61,61,,,,61,61,61,,,,,,61,,,61,61,61,,,61,61,62,62,62,,62,,,,62',
'62,,,,62,,62,62,62,62,62,62,62,,,,,,62,62,62,62,62,62,62,,,62,,,,,,',
'62,,,62,62,62,62,62,62,62,62,62,62,62,62,,62,62,,62,62,62,,,,,,,,,,',
',,,,,,,,,62,,,62,,,62,62,,,62,,62,,,,62,,,,,,,,62,,,,,62,62,62,62,62',
'62,,,,62,62,,,,,,,62,,62,62,62,62,,,62,62,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,,,63,,,,,,63,,,,,,,,63,,,,,63,63,63,63,63,63,,,,63,63,',
',,,,,63,,63,63,63,63,,,63,63,46,46,46,,46,,,,46,46,,,,46,,46,46,46,46',
'46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46,46,46,46,46',
'46,46,,46,46,46,,46,46,,46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,,46,46',
',,46,,,,,,46,,,,,,,,46,,,,,46,46,46,46,46,46,,,,46,46,,,,,,,46,,,46',
'46,46,,,46,46,66,66,66,,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,',
',66,66,66,66,66,66,66,,,66,,,,,,,66,,,66,66,66,66,66,66,66,66,,66,66',
'66,,66,66,,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,,,,,66',
',,,,,,,66,,,,,66,66,66,66,66,66,,,,66,66,,,,,,,66,,,66,66,66,,,66,66',
'67,67,67,,67,,,,67,67,,,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67',
'67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,,67,67,67,,67,67,,67,67',
'67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,,,,,67,,,,,,,,67,,,,,67',
'67,67,67,67,67,,,,67,67,,,,,,,67,,,67,67,67,,,67,67,70,70,70,,70,,,',
'70,70,,,,70,,70,70,70,70,70,70,70,,,,,,70,70,70,70,70,70,70,,,70,,,',
',,,70,,,70,70,70,70,70,70,70,70,,70,70,70,,70,70,,70,70,70,,,,,,,,,',
',,,,,,,,,,70,,,70,,,70,70,,,70,,,,,,70,,,,,,,,70,,,,,70,70,70,70,70',
'70,,,,70,70,70,,,,,70,70,,,70,70,70,,,70,70,71,71,71,,71,,,,71,71,,',
',71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,',
'71,71,71,71,71,71,71,71,,71,71,71,,71,71,,,,71,,,,,,,,,,,,,,,,,,,,71',
',,71,,,71,71,,,71,,71,,,,,,,,,,,,,,,,,71,71,71,71,71,71,,,,71,71,,,',
',,,71,,,71,71,71,,,71,71,765,765,765,,765,,,,765,765,,,,765,,765,765',
'765,765,765,765,765,,,,,,765,765,765,765,765,765,765,,,765,,,,,,,765',
',,765,765,765,765,765,765,765,765,,765,765,765,,765,765,,765,765,765',
',,,,,,,,,,,,,,,,,,,765,,,765,,,765,765,,,765,,,,,,765,,,,,,,,765,,,',
',765,765,765,765,765,765,,,,765,765,,,,,,,765,,,765,765,765,,,765,765',
'45,45,45,,45,,,,45,45,,,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45,45',
'45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,,45,45',
'45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,45,,,,,45',
'45,45,45,45,45,,,,45,45,,,,,,,45,,,45,45,45,,,45,45,677,677,677,,677',
',,,677,677,,,,677,,677,677,677,677,677,677,677,,,,,,677,677,677,677',
'677,677,677,,,677,,,,,,,677,,,677,677,677,677,677,677,677,677,,677,677',
'677,,677,677,,,,677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,',
',,,,,,,,,,,,,,,677,677,677,677,677,677,,,,677,677,,,,,,,677,,,677,677',
'677,,,677,677,458,458,458,,458,,,,458,458,,,,458,,458,458,458,458,458',
'458,458,,,,,,458,458,458,458,458,458,458,,,458,,,,,,,458,,,458,458,458',
'458,458,458,458,458,,458,458,458,,458,458,,458,458,458,,,,,,,,,,,,,',
',,,,,,458,,,458,,,458,458,,,458,,,,,,458,,,,,,,,458,,,,,458,458,458',
'458,458,458,,,,458,458,,,,,,,458,,,458,458,458,,,458,458,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',
',,648,,,,,,648,,,,,,,,648,,,,,648,648,648,648,648,648,,,,648,648,,,',
',,,648,,,648,648,648,,,648,648,1003,1003,1003,,1003,,,,1003,1003,,,',
'1003,,1003,1003,1003,1003,1003,1003,1003,,,,,,1003,1003,1003,1003,1003',
'1003,1003,,,1003,,,,,,,1003,,,1003,1003,1003,1003,1003,1003,1003,1003',
'1003,1003,1003,1003,,1003,1003,,1003,1003,1003,,,,,,,,,,,,,,,,,,,,1003',
',,1003,,,1003,1003,,,1003,,1003,,1003,,1003,,,,,,,,1003,,,,,1003,1003',
'1003,1003,1003,1003,,,,1003,1003,,,,,,,1003,,1003,1003,1003,1003,,,1003',
'1003,647,647,647,,647,,,,647,647,,,,647,,647,647,647,647,647,647,647',
',,,,,647,647,647,647,647,647,647,,,647,,,,,,,647,,,647,647,647,647,647',
'647,647,647,,647,647,647,,647,647,,647,647,647,,,,,,,,,,,,,,,,,,,,647',
',,647,,,647,647,,,647,,,,,,647,,,,,,,,647,,,,,647,647,647,647,647,647',
',,,647,647,,,,,,,647,,,647,647,647,,,647,647,857,857,857,,857,,,,857',
'857,,,,857,,857,857,857,857,857,857,857,,,,,,857,857,857,857,857,857',
'857,,,857,,,,,,,857,,,857,857,857,857,857,857,857,857,,857,857,857,',
'857,857,,857,857,857,,,,,,,,,,,,,,,,,,,,857,,,857,,,857,857,,,857,,',
',,,857,,,,,,,,857,,,,,857,857,857,857,857,857,,,,857,857,,,,,,,857,',
',857,857,857,,,857,857,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,,,457,457,38',
'38,38,,38,,,,38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38,38,38,38,38,38',
'38,,,38,,,,,,,38,,,38,38,38,38,38,38,38,38,,38,38,38,,38,38,,,,38,,',
',,,,,,,,,,,,,,,,,38,,,38,,,38,38,,,38,,,,,,,,,,,,,,,,,,,38,38,38,38',
'38,38,,,,38,38,,,,38,,,38,,,38,38,38,,,38,38,114,114,114,114,114,,,',
'114,114,,,,114,,114,114,114,114,114,114,114,,,,,,114,114,114,114,114',
'114,114,,,114,,,,,,114,114,114,114,114,114,114,114,114,114,114,114,',
'114,114,114,,114,114,,114,114,114,,,,,,,,,,,,,,,,,,,,114,,,114,,,114',
'114,,,114,,114,,,,114,,,,,,,,114,,,,,114,114,114,114,114,114,,,,114',
'114,,,,,,114,114,,,114,114,114,,,114,114,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,,,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,121,121,121',
',121,,,,121,121,,,,121,,121,121,121,121,121,121,121,,,,,,121,121,121',
'121,121,121,121,,,121,,,,,,,121,,,121,121,121,121,121,121,121,121,,121',
'121,121,,121,121,,121,121,121,,,,,,,,,,,,,,,,,,,,121,,,121,,,121,121',
',,121,,,,,,121,,,,,,,,121,,,,,121,121,121,121,121,121,,,,121,121,,,',
',,,121,,,121,121,121,,,121,121,122,122,122,,122,,,,122,122,,,,122,,122',
'122,122,122,122,122,122,,,,,,122,122,122,122,122,122,122,,,122,,,,,',
',122,,,122,122,122,122,122,122,122,122,,122,122,122,,122,122,,122,122',
'122,,,,,,,,,,,,,,,,,,,,122,,,122,,,122,122,,,122,,,,,,122,,,,,,,,122',
',,,,122,122,122,122,122,122,,,,122,122,,,,,,,122,,,122,122,122,,,122',
'122,123,123,123,123,123,,,,123,123,,,,123,,123,123,123,123,123,123,123',
',,,,,123,123,123,123,123,123,123,,,123,,,,,,123,123,,123,123,123,123',
'123,123,123,123,123,,123,123,123,,123,123,,123,123,123,,,,,,,,,,,,,',
',,,,,,123,,,123,,,123,123,,,123,,123,,,,123,,,,,,,,123,,,,,123,123,123',
'123,123,123,,,,123,123,,,,,,,123,,,123,123,123,,,123,123,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,,,644,644,643,643,643,,643,,,,643,643,,,,643,,643',
'643,643,643,643,643,643,,,,,,643,643,643,643,643,643,643,,,643,,,,,',
',643,,,643,643,643,643,643,643,643,643,,643,643,643,,643,643,,643,643',
'643,,,,,,,,,,,,,,,,,,,,643,,,643,,,643,643,,,643,,,,,,643,,,,,,,,643',
',,,,643,643,643,643,643,643,,,,643,643,,,,,,,643,,,643,643,643,,,643',
'643,767,767,767,,767,,,,767,767,,,,767,,767,767,767,767,767,767,767',
',,,,,767,767,767,767,767,767,767,,,767,,,,,,,767,,,767,767,767,767,767',
'767,767,767,,767,767,767,,767,767,,767,767,767,,,,,,,,,,,,,,,,,,,,767',
',,767,,,767,767,,,767,,,,,,767,,,,,,,,767,,,,,767,767,767,767,767,767',
',,,767,767,,,,,,,767,,,767,767,767,,,767,767,37,37,37,,37,,,,37,37,',
',,37,,37,37,37,37,37,37,37,,,,,,37,37,37,37,37,37,37,,,37,,,,,,,37,',
',37,37,37,37,37,37,37,37,,37,37,37,,37,37,,,,37,,,,,,,,,,,,,,,,,,,,37',
',,37,,,37,37,,,37,,37,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,37,37,,,',
',,,37,,,37,37,37,,,37,37,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,211,211,211,,211,,,,211,211,,,,211,,211,211,211,211,211,211,211',
',,,,,211,211,211,211,211,211,211,,,211,,,,,,,211,,,211,211,211,211,211',
'211,211,211,,211,211,211,,211,211,,211,211,211,,,,,,,,,,,,,,,,,,,,211',
',,211,,,211,211,,,211,,,,,,211,,,,,,,,211,,,,,211,211,211,211,211,211',
',,,211,211,,,,,,,211,,,211,211,211,,,211,211,212,212,212,,212,,,,212',
'212,,,,212,,212,212,212,212,212,212,212,,,,,,212,212,212,212,212,212',
'212,,,212,,,,,,,212,,,212,212,212,212,212,212,212,212,212,212,212,212',
',212,212,,212,212,212,,,,,,,,,,,,,,,,,,,,212,,,212,,,212,212,,,212,',
'212,,212,,212,,,,,,,,212,,,,,212,212,212,212,212,212,,,,212,212,,,,',
',,212,,212,212,212,212,,,212,212,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',
',,638,638,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,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,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,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,,,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,,,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,219,220',
'220,220,,220,,,,220,220,,,,220,,220,220,220,220,220,220,220,,,,,,220',
'220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220',
'220,,220,220,220,,220,220,,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220',
',,220,220,,,220,,,,,,220,,,,,,,,220,,,,,220,220,220,220,220,220,,,,220',
'220,220,,,,,,220,,,220,220,220,,,220,220,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,636,635,635,635,,635,,,,635,635,,,,635,,635,635,635',
'635,635,635,635,,,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635',
'635,635,635,635,635,635,635,635,635,635,635,,635,635,,635,635,635,,',
',,,,,,,,,,,,,,,,,635,,,635,,,635,635,,,635,,635,,635,,635,,,,,,,,635',
',,,,635,635,635,635,635,635,,,,635,635,,,,,,,635,,635,635,635,635,,',
'635,635,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,632,631,631,631,,631',
',,,631,631,,,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631',
'631,631,631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,,631,631',
'631,,631,631,,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631',
',631,,,,631,,,,,,,,631,,,,,631,631,631,631,631,631,,,,631,631,,,,,,',
'631,,,631,631,631,,,631,631,34,34,34,,34,,,,34,34,,,,34,,34,34,34,34',
'34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34',
'34,34,34,34,34,34,,34,34,,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34',
',,34,,34,,34,,34,,,,,,,,34,,,,,34,34,34,34,34,34,,,,34,34,,,,,,,34,',
'34,34,34,34,,,34,34,33,33,33,,33,,,,33,33,,,,33,,33,33,33,33,33,33,33',
',,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33,33,33,33,33,33,33',
'33,33,33,,33,33,,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33,,,33,33,,,33,,33',
',33,,33,,,,,,,,33,,,,,33,33,33,33,33,33,,,,33,33,,,,,,,33,,33,33,33',
'33,,,33,33,32,32,32,,32,,,,32,32,,,,32,,32,32,32,32,32,32,32,,,,,,32',
'32,32,32,32,32,32,,,32,,,,,,,32,,,32,32,32,32,32,32,32,32,32,32,32,32',
',32,32,,32,32,32,,,,,,,,,,,,,,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32',
',,,,,,,32,,,,,32,32,32,32,32,32,,,,32,32,,,,,,,32,,32,32,32,32,,,32',
'32,231,231,231,,231,,,,231,231,,,,231,,231,231,231,231,231,231,231,',
',,,,231,231,231,231,231,231,231,,,231,,,,,,,231,,,231,231,231,231,231',
'231,231,231,,231,231,231,,231,231,,231,231,231,,,,,,,,,,,,,,,,,,,,231',
',,231,,,231,231,,,231,,,,,,231,,,,,,,,231,,,,,231,231,231,231,231,231',
',,,231,231,,,,,,,231,,,231,231,231,,,231,231,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,,,456,456,454,454,454,,454,,,,454,454,,,,454,,454,454,454',
'454,454,454,454,,,,,,454,454,454,454,454,454,454,,,454,,,,,,,454,,,454',
'454,454,454,454,454,454,454,454,454,454,454,,454,454,,454,454,454,,',
',,,,,,,,,,,,,,,,,454,,,454,,,454,454,,,454,,454,,454,,454,,,,,,,,454',
',,,,454,454,454,454,454,454,,,,454,454,,,,,,,454,,454,454,454,454,,',
'454,454,234,234,234,,234,,,,234,234,,,,234,,234,234,234,234,234,234',
'234,,,,,,234,234,234,234,234,234,234,,,234,,,,,,,234,,,234,234,234,234',
'234,234,234,234,,234,234,234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,',
',,234,,,234,,,234,234,,,234,,,,,,234,,,,,,,,234,,,,,234,234,234,234',
'234,234,,,,234,234,,,,,,,234,,,234,234,234,,,234,234,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,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,,,248,248,249,249,249,,249,,,,249,249,,',
',249,,249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,',
',249,,,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249',
',249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,',
',,,,,,249,,,,,249,249,249,249,249,249,,,,249,249,,,,,,,249,,,249,249',
'249,,,249,249,250,250,250,,250,,,,250,250,,,,250,,250,250,250,250,250',
'250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,,,250,,,250,250,250',
'250,250,250,250,250,,250,250,250,,250,250,,250,250,250,,,,,,,,,,,,,',
',,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,250,,,,,250,250,250',
'250,250,250,,,,250,250,,,,,,,250,,,250,250,250,,,250,250,251,251,251',
',251,,,,251,251,,,,251,,251,251,251,251,251,251,251,,,,,,251,251,251',
'251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251,251,,251',
'251,251,,251,251,,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251',
',,251,,,,,,251,,,,,,,,251,,,,,251,251,251,251,251,251,,,,251,251,,,',
',,,251,,,251,251,251,,,251,251,252,252,252,,252,,,,252,252,,,,252,,252',
'252,252,252,252,252,252,,,,,,252,252,252,252,252,252,252,,,252,,,,,',
',252,,,252,252,252,252,252,252,252,252,,252,252,252,,252,252,,252,252',
'252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252,252,,,252,,,,,,252,,,,,,,,252',
',,,,252,252,252,252,252,252,,,,252,252,,,,,,,252,,,252,252,252,,,252',
'252,253,253,253,,253,,,,253,253,,,,253,,253,253,253,253,253,253,253',
',,,,,253,253,253,253,253,253,253,,,253,,,,,,,253,,,253,253,253,253,253',
'253,253,253,,253,253,253,,253,253,,253,253,253,,,,,,,,,,,,,,,,,,,,253',
',,253,,,253,253,,,253,,,,,,253,,,,,,,,253,,,,,253,253,253,253,253,253',
',,,253,253,,,,,,,253,,,253,253,253,,,253,253,254,254,254,,254,,,,254',
'254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254',
'254,,,254,,,,,,,254,,,254,254,254,254,254,254,254,254,,254,254,254,',
'254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,,',
',,,254,,,,,,,,254,,,,,254,254,254,254,254,254,,,,254,254,,,,,,,254,',
',254,254,254,,,254,254,255,255,255,,255,,,,255,255,,,,255,,255,255,255',
'255,255,255,255,,,,,,255,255,255,255,255,255,255,,,255,,,,,,,255,,,255',
'255,255,255,255,255,255,255,,255,255,255,,255,255,,255,255,255,,,,,',
',,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255,,,,,,,,255,,,,,255',
'255,255,255,255,255,,,,255,255,,,,,,,255,,,255,255,255,,,255,255,256',
'256,256,,256,,,,256,256,,,,256,,256,256,256,256,256,256,256,,,,,,256',
'256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256,256,256,256,256',
'256,,256,256,256,,256,256,,256,256,256,,,,,,,,,,,,,,,,,,,,256,,,256',
',,256,256,,,256,,,,,,256,,,,,,,,256,,,,,256,256,256,256,256,256,,,,256',
'256,,,,,,,256,,,256,256,256,,,256,256,257,257,257,,257,,,,257,257,,',
',257,,257,257,257,257,257,257,257,,,,,,257,257,257,257,257,257,257,',
',257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257,257,,257,257',
',257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257,,,,,,257,',
',,,,,,257,,,,,257,257,257,257,257,257,,,,257,257,,,,,,,257,,,257,257',
'257,,,257,257,258,258,258,,258,,,,258,258,,,,258,,258,258,258,258,258',
'258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258',
'258,258,258,258,258,,258,258,258,,258,258,,258,258,258,,,,,,,,,,,,,',
',,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,258,,,,,258,258,258',
'258,258,258,,,,258,258,,,,,,,258,,,258,258,258,,,258,258,259,259,259',
',259,,,,259,259,,,,259,,259,259,259,259,259,259,259,,,,,,259,259,259',
'259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259,259,,259',
'259,259,,259,259,,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259,,,259,259',
',,259,,,,,,259,,,,,,,,259,,,,,259,259,259,259,259,259,,,,259,259,,,',
',,,259,,,259,259,259,,,259,259,602,602,602,,602,,,,602,602,,,,602,,602',
'602,602,602,602,602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,',
',602,,,602,602,602,602,602,602,602,602,,602,602,602,,602,602,,602,602',
'602,,,,,,,,,,,,,,,,,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,602',
',,,,602,602,602,602,602,602,,,,602,602,,,,,,,602,,,602,602,602,,,602',
'602,598,598,598,,598,,,,598,598,,,,598,,598,598,598,598,598,598,598',
',,,,,598,598,598,598,598,598,598,,,598,,,,,,,598,,,598,598,598,598,598',
'598,598,598,,598,598,598,,598,598,,598,598,598,,,,,,,,,,,,,,,,,,,,598',
',,598,,,598,598,,,598,,,,,,598,,,,,,,,598,,,,,598,598,598,598,598,598',
',,,598,598,,,,,,,598,,,598,598,598,,,598,598,266,266,266,,266,,,,266',
'266,,,,266,,266,266,266,266,266,266,266,,,,,,266,266,266,266,266,266',
'266,,,266,,,,,,,266,,,266,266,266,266,266,266,266,266,266,266,266,266',
',266,266,,266,266,266,,,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,,266,',
'266,,266,,266,,,,,,,,266,,,,,266,266,266,266,266,266,,,,266,266,,,,',
',,266,,266,266,266,266,,,266,266,688,688,688,,688,,,,688,688,,,,688',
',688,688,688,688,688,688,688,,,,,,688,688,688,688,688,688,688,,,688',
',,,,,,688,,,688,688,688,688,688,688,688,688,,688,688,688,,688,688,,',
',688,,,,,,,,,,,,,,,,,,,,688,,,688,,,688,688,,,688,,,,,,,,,,,,,,,,,,',
'688,688,688,688,688,688,,,,688,688,,,,,,,688,,,688,688,688,,,688,688',
'272,272,272,,272,,,,272,272,,,,272,,272,272,272,272,272,272,272,,,,',
',272,272,272,272,272,272,272,,,272,,,,,,,272,,,272,272,272,272,272,272',
'272,272,272,272,272,272,,272,272,,272,272,272,,,,,,,,,,,,,,,,,,,,272',
',,272,,,272,272,,,272,,272,,272,,272,,,,,,,,272,,,,,272,272,272,272',
'272,272,,,,272,272,,,,,,,272,,272,272,272,272,,,272,272,275,275,275',
',275,,,,275,275,,,,275,,275,275,275,275,275,275,275,,,,,,275,275,275',
'275,275,275,275,,,275,,,,,,,275,,,275,275,275,275,275,275,275,275,275',
'275,275,275,,275,275,,275,275,275,,,,,,,,,,,,,,,,,,,,275,,,275,,,275',
'275,,,275,,275,,275,,275,,,,,,,,275,,,,,275,275,275,275,275,275,,,,275',
'275,275,,,,,,275,,275,275,275,275,,,275,275,499,499,499,,499,,,,499',
'499,,,,499,,499,499,499,499,499,499,499,,,,,,499,499,499,499,499,499',
'499,,,499,,,,,,,499,,,499,499,499,499,499,499,499,499,499,499,499,499',
',499,499,,499,499,499,,,,,,,,,,,,,,,,,,,,499,,,499,,,499,499,,,499,',
'499,,499,,499,,,,,,,,499,,,,,499,499,499,499,499,499,,,,499,499,,,,',
',,499,,499,499,499,499,,,499,499,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,,,358,358',
'586,586,586,,586,,,,586,586,,,,586,,586,586,586,586,586,586,586,,,,',
',586,586,586,586,586,586,586,,,586,,,,,,,586,,,586,586,586,586,586,586',
'586,586,586,586,586,586,,586,586,,586,586,586,,,,,,,,,,,,,,,,,,,,586',
',,586,,,586,586,,,586,,586,,586,,586,,,,,,,,586,,,,,586,586,586,586',
'586,586,,,,586,586,,,,,,,586,,586,586,586,586,,,586,586,282,282,282',
',282,,,,282,282,,,,282,,282,282,282,282,282,282,282,,,,,,282,282,282',
'282,282,282,282,,,282,,,,,,,282,,,282,282,282,282,282,282,282,282,,282',
'282,282,,282,282,,282,282,282,,,,,,,,,,,,,,,,,,,,282,,,282,,,282,282',
',,282,,,,,,282,,,,,,,,282,,,,,282,282,282,282,282,282,,,,282,282,,,',
',,,282,,,282,282,282,,,282,282,781,781,781,,781,,,,781,781,,,,781,,781',
'781,781,781,781,781,781,,,,,,781,781,781,781,781,781,781,,,781,,,,,',
',781,,,781,781,781,781,781,781,781,781,,781,781,781,,781,781,,781,781',
'781,,,,,,,,,,,,,,,,,,,,781,,,781,,,781,781,,,781,,,,,,781,,,,,,,,781',
',,,,781,781,781,781,781,781,,,,781,781,,,,,,,781,,,781,781,781,,,781',
'781,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',
',47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,47',
',,,,47,47,47,47,47,47,,,,47,47,,,,,,,47,,,47,47,47,,,47,47,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,,,286,286,287,287,287,,287,,,,287,287,,,,287,,287',
'287,287,287,287,287,287,,,,,,287,287,287,287,287,287,287,,,287,,,,,',
',287,,,287,287,287,287,287,287,287,287,,287,287,287,,287,287,,287,287',
'287,,,,,,,,,,,,,,,,,,,,287,,,287,,,287,287,,,287,,,,,,287,,,,,,,,287',
',,,,287,287,287,287,287,287,,,,287,287,,,,,,,287,,,287,287,287,,,287',
'287,782,782,782,,782,,,,782,782,,,,782,,782,782,782,782,782,782,782',
',,,,,782,782,782,782,782,782,782,,,782,,,,,,,782,,,782,782,782,782,782',
'782,782,782,,782,782,782,,782,782,,782,782,782,,,,,,,,,,,,,,,,,,,,782',
',,782,,,782,782,,,782,,,,,,782,,,,,,,,782,,,,,782,782,782,782,782,782',
',,,782,782,,,,,,,782,,,782,782,782,,,782,782,356,356,356,,356,,,,356',
'356,,,,356,,356,356,356,356,356,356,356,,,,,,356,356,356,356,356,356',
'356,,,356,,,,,,,356,,,356,356,356,356,356,356,356,356,,356,356,356,',
'356,356,,,,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356,,,356,,,,,,,,',
',,,,,,,,,,356,356,356,356,356,356,,,,356,356,,,,,,,356,,,356,356,356',
',,356,356,293,293,293,293,293,,,,293,293,,,,293,,293,293,293,293,293',
'293,293,,,,,,293,293,293,293,293,293,293,,,293,,,,,,293,293,,293,293',
'293,293,293,293,293,293,293,,293,293,293,,293,293,,293,293,293,,,,,',
',,,,,,,,,,,,,,293,,,293,,,293,293,,,293,,293,,,,293,,,,,,,,293,,,,,293',
'293,293,293,293,293,,,,293,293,,,,,,,293,,,293,293,293,,,293,293,903',
'903,903,,903,,,,903,903,,,,903,,903,903,903,903,903,903,903,,,,,,903',
'903,903,903,903,903,903,,,903,,,,,,,903,,,903,903,903,903,903,903,903',
'903,,903,903,903,,903,903,,,,903,,,,,,,,,,,,,,,,,,,,903,,,903,,,903',
'903,,,903,,,,,,,,,,,,,,,,,,,903,903,903,903,903,903,,,,903,903,,,,,',
',903,,,903,903,903,,,903,903,743,743,743,,743,,,,743,743,,,,743,,743',
'743,743,743,743,743,743,,,,,,743,743,743,743,743,743,743,,,743,,,,,',
',743,,,743,743,743,743,743,743,743,743,743,743,743,743,,743,743,,743',
'743,743,,,,,,,,,,,,,,,,,,,,743,,,743,,,743,743,,,743,,743,,743,,743',
',,,,,,,743,,,,,743,743,743,743,743,743,,,,743,743,,,,,,,743,,743,743',
'743,743,,,743,743,518,518,518,,518,,,,518,518,,,,518,,518,518,518,518',
'518,518,518,,,,,,518,518,518,518,518,518,518,,,518,,,,,,,518,,,518,518',
'518,518,518,518,518,518,518,518,518,518,,518,518,,518,518,518,,,,,,',
',,,,,,,,,,,,,518,,,518,,,518,518,,,518,,518,,518,,518,,,,,,,,518,,,',
',518,518,518,518,518,518,,,,518,518,,,,,,,518,,518,518,518,518,,,518',
'518,783,783,783,,783,,,,783,783,,,,783,,783,783,783,783,783,783,783',
',,,,,783,783,783,783,783,783,783,,,783,,,,,,,783,,,783,783,783,783,783',
'783,783,783,,783,783,783,,783,783,,783,783,783,,,,,,,,,,,,,,,,,,,,783',
',,783,,,783,783,,,783,,,,,,783,,,,,,,,783,,,,,783,783,783,783,783,783',
',,,783,783,,,,,,,783,,,783,783,783,,,783,783,693,693,693,,693,,,,693',
'693,,,,693,,693,693,693,693,693,693,693,,,,,,693,693,693,693,693,693',
'693,,,693,,,,,,,693,,,693,693,693,693,693,693,693,693,,693,693,693,',
'693,693,,693,693,693,,,,,,,,,,,,,,,,,,,,693,,,693,,,693,693,,,693,,693',
',,,693,,,,,,,,693,,,,,693,693,693,693,693,693,,,,693,693,,,,,,,693,',
',693,693,693,,,693,693,299,299,299,,299,,,,299,299,,,,299,,299,299,299',
'299,299,299,299,,,,,,299,299,299,299,299,299,299,,,299,,,,,,,299,,,299',
'299,299,299,299,299,299,299,,299,299,299,,299,299,,,,299,,,,,,,,,,,',
',,,,,,,,299,,,299,,,299,299,,,299,,,,,,,,,,,,,,,,,,,299,299,299,299',
'299,299,,,,299,299,,,,299,,,299,,,299,299,299,,,299,299,23,23,23,,23',
',,,23,23,,,,23,,23,23,23,23,23,23,23,,,,,,23,23,23,23,23,23,23,,,23',
',,,,,,23,,,23,23,23,23,23,23,23,23,,23,23,23,,23,23,,23,23,23,,,,,,',
',,,,,,,,,,,,,23,,,23,,,23,23,,,23,,,,,,23,,,,,,,,23,,,,,23,23,23,23',
'23,23,,,,23,23,,,,,,,23,,,23,23,23,,,23,23,516,516,516,,516,,,,516,516',
',,,516,,516,516,516,516,516,516,516,,,,,,516,516,516,516,516,516,516',
',,516,,,,,,,516,,,516,516,516,516,516,516,516,516,,516,516,516,,516',
'516,,,,516,,,,,,,,,,,,,,,,,,,,516,,,516,,,516,516,,,516,,,,,,,,,,,,',
',,,,,,516,516,516,516,516,516,,,,516,516,,,,,,,516,,,516,516,516,,,516',
'516,784,784,784,,784,,,,784,784,,,,784,,784,784,784,784,784,784,784',
',,,,,784,784,784,784,784,784,784,,,784,,,,,,,784,,,784,784,784,784,784',
'784,784,784,,784,784,784,,784,784,,784,784,784,,,,,,,,,,,,,,,,,,,,784',
',,784,,,784,784,,,784,,,,,,784,,,,,,,,784,,,,,784,784,784,784,784,784',
',,,784,784,,,,,,,784,,,784,784,784,,,784,784,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,,,786,786,565,565,565,,565,,,,565,565,,,,565,,565,565,565',
'565,565,565,565,,,,,,565,565,565,565,565,565,565,,,565,,,,,,,565,,,565',
'565,565,565,565,565,565,565,,565,565,565,,565,565,,565,565,565,,,,,',
',,,,,,,,,,,,,,565,,,565,,,565,565,,,565,,,,,,565,,,,,,,,565,,,,,565',
'565,565,565,565,565,,,,565,565,,,,,,,565,,,565,565,565,,,565,565,798',
'798,798,,798,,,,798,798,,,,798,,798,798,798,798,798,798,798,,,,,,798',
'798,798,798,798,798,798,,,798,,,,,,,798,,,798,798,798,798,798,798,798',
'798,,798,798,798,,798,798,,,,798,,,,,,,,,,,,,,,,,,,,798,,,798,,,798',
'798,,,798,,,,,,,,,,,,,,,,,,,798,798,798,798,798,798,,,,798,798,,,,,',
',798,,,798,798,798,,,798,798,711,711,711,,711,,,,711,711,,,,711,,711',
'711,711,711,711,711,711,,,,,,711,711,711,711,711,711,711,,,711,,,,,',
',711,,,711,711,711,711,711,711,711,711,,711,711,711,,711,711,,711,711',
'711,,,,,,,,,,,,,,,,,,,,711,,,711,,,711,711,,,711,,,,,,711,,,,,,,,711',
',,,,711,711,711,711,711,711,,,,711,711,,,,,,,711,,,711,711,711,,,711',
'711,737,737,737,,737,,,,737,737,,,,737,,737,737,737,737,737,737,737',
',,,,,737,737,737,737,737,737,737,,,737,,,,,,,737,,,737,737,737,737,737',
'737,737,737,,737,737,737,,737,737,,737,737,737,,,,,,,,,,,,,,,,,,,,737',
',,737,,,737,737,,,737,,,,,,737,,,,,,,,737,,,,,737,737,737,737,737,737',
',,,737,737,,,,,,,737,,,737,737,737,,,737,737,344,344,344,,344,,,,344',
'344,,,,344,,344,344,344,344,344,344,344,,,,,,344,344,344,344,344,344',
'344,,,344,,,,,,,344,,,344,344,344,344,344,344,344,344,,344,344,344,',
'344,344,,344,344,344,,,,,,,,,,,,,,,,,,,,344,,,344,,,344,344,,,344,,',
',,,344,,,,,,,,344,,,,,344,344,344,344,344,344,,,,344,344,,,,,,,344,',
',344,344,344,,,344,344,731,731,731,,731,,,,731,731,,,,731,,731,731,731',
'731,731,731,731,,,,,,731,731,731,731,731,731,731,,,731,,,,,,,731,,,731',
'731,731,731,731,731,731,731,,731,731,731,,731,731,,731,731,731,,,,,',
',,,,,,,,,,,,,,731,,,731,,,731,731,,,731,,731,,,,731,,,,,,,,731,,,,,731',
'731,731,731,731,731,,,,731,731,,,,,,,731,,,731,731,731,,,731,731,502',
'502,502,,502,,,,502,502,,,,502,,502,502,502,502,502,502,502,,,,,,502',
'502,502,502,502,502,502,,,502,,,,,,,502,,,502,502,502,502,502,502,502',
'502,502,502,502,502,,502,502,,502,502,502,,,,,,,,,,,,,,,,,,,,502,,,502',
',,502,502,,,502,,,,502,,502,,,,,,,,502,,,,,502,502,502,502,502,502,',
',,502,502,,,,,,,502,,502,502,502,502,,,502,502,541,541,541,,541,,,,541',
'541,,,,541,,541,541,541,541,541,541,541,,,,,,541,541,541,541,541,541',
'541,,,541,,,,,,,541,,,541,541,541,541,541,541,541,541,541,541,541,541',
',541,541,,541,541,541,,,,,,,,,,,,,,,,,,,,541,,,541,,,541,541,,,541,',
',,,,541,,,,,,,,541,,,,,541,541,541,541,541,541,,,,541,541,,,,,,,541',
',541,541,541,541,,,541,541,316,316,316,,316,,,,316,316,,,,316,,316,316',
'316,316,316,316,316,,,,,,316,316,316,316,316,316,316,,,316,,,,,,,316',
',,316,316,316,316,316,316,316,316,,316,316,316,,316,316,,,,316,,,,,',
',,,,,,,,,,,,,,316,,,316,,,316,316,,,316,,,,,,,,,,,,,,,,,,,316,316,316',
'316,316,316,,,,316,316,,,,,,,316,,,316,316,316,,,316,316,538,538,538',
',538,,,,538,538,,,,538,,538,538,538,538,538,538,538,,,,,,538,538,538',
'538,538,538,538,,,538,,,,,,,538,,,538,538,538,538,538,538,538,538,538',
'538,538,538,,538,538,,538,538,538,,,,,,,,,,,,,,,,,,,,538,,,538,,,538',
'538,,,538,,538,,,,538,,,,,,,,538,,,,,538,538,538,538,538,538,,,,538',
'538,,,,,,,538,,538,538,538,538,,,538,538,8,8,8,8,8,,,,8,8,,,,8,,8,8',
'8,8,8,8,8,,,,,,8,8,8,8,8,8,8,,,8,,,,,,8,8,8,8,8,8,8,8,8,8,8,8,,8,8,8',
',8,8,,8,8,8,,,,,,,,,,,,,,,,,,,,8,,,8,,,8,8,,,8,,8,,,,8,,,,,,,,8,,,,',
'8,8,8,8,8,8,,,,8,8,,,,,,,8,,,8,8,8,,,8,8,844,844,844,,844,,,,844,844',
',,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844',
',,844,,,,,,,844,,,844,844,844,844,844,844,844,844,,844,844,844,,844',
'844,,844,844,844,,,,,,,,,,,,,,,,,,,,844,,,844,,,844,844,,,844,,,,,,844',
',,,,,,,844,,,,,844,844,844,844,844,844,,,,844,844,,,,,,,844,,,844,844',
'844,,,844,844,928,928,928,,928,,,,928,928,,,,928,,928,928,928,928,928',
'928,928,,,,,,928,928,928,928,928,928,928,,,928,,,,,,,928,,,928,928,928',
'928,928,928,928,928,,928,928,928,,928,928,,928,928,928,,,,,,,,,,,,,',
',,,,,,928,,,928,,,928,928,,,928,,928,,,,928,,,,,,,,928,,,,,928,928,928',
'928,928,928,,,,928,928,,,,,,,928,,,928,928,928,,,928,928,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,,,324,324,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',
',,416,416,532,532,532,,532,,,,532,532,,,,532,,532,532,532,532,532,532',
'532,,,,,,532,532,532,532,532,532,532,,,532,,,,,,,532,,,532,532,532,532',
'532,532,532,532,,532,532,532,,532,532,,532,532,532,,,,,,,,,,,,,,,,,',
',,532,,,532,,,532,532,,,532,,,,,,532,,,,,,,,532,,,,,532,532,532,532',
'532,532,,,,532,532,,,,,,,532,,,532,532,532,,,532,532,509,509,509,509',
'509,,,,509,509,,,,509,,509,509,509,509,509,509,509,,,,,,509,509,509',
'509,509,509,509,,,509,,,,,,509,509,,509,509,509,509,509,509,509,509',
'509,,509,509,509,,509,509,,509,509,509,,,,,,,,,,,,,,,,,,,,509,,,509',
',,509,509,,,509,,509,,,,509,,,,,,,,509,,,,,509,509,509,509,509,509,',
',,509,509,,,,,,509,509,,,509,509,509,,,509,509,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,,,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,,,527,527,891',
'891,891,,891,,,,891,891,,,,891,,891,891,891,891,891,891,891,,,,,,891',
'891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891',
'891,,891,891,891,,891,891,,,,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891',
'891,,,891,,,,,,,,,,,,,,,,,,,891,891,891,891,891,891,,,,891,891,,,,,',
',891,,,891,891,891,,,891,891,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',
',,,,,,,,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,,,,,,,,,,,,,,,,524,524',
'524,524,524,524,,,,524,524,,,,,,,524,,,524,524,524,,,524,524,504,504',
'504,,504,,,,504,504,,,,504,,504,504,504,504,504,504,504,,,,,,504,504',
'504,504,504,504,504,,,504,,,,,,,504,,,504,504,504,504,504,504,504,504',
',504,504,504,,504,504,,504,504,504,,,,,,,,,,,,,,,,,,,,504,,,504,,,504',
'504,,,504,,,,,,504,,,,,,,,504,,,,,504,504,504,504,504,504,,,,504,504',
',,,,,,504,,,504,504,504,,,504,504,876,876,876,,876,,,,876,876,,,,876',
',876,876,876,876,876,876,876,,,,,,876,876,876,876,876,876,876,,,876',
',,,,,,876,,,876,876,876,876,876,876,876,876,,876,876,876,,876,876,,876',
'876,876,,,,,,,,,,,,,,,,,,,,876,,,876,,,876,876,,,876,,,,,,876,,,,,,',
',876,,,,,876,876,876,876,876,876,,,,876,876,,,,,,,876,,,876,876,876',
'437,,876,876,,,,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,438',
'437,,437,,,,438,438,438,,,438,438,438,915,438,915,915,915,915,915,,',
',438,438,438,438,,,915,,,,,438,438,,438,438,438,438,438,,,,,,,,,,915',
',,,,,,,,,,915,915,,438,438,438,438,438,438,438,438,438,438,438,438,438',
'438,,,438,438,438,,,438,,,438,,,438,438,,438,915,438,,438,,438,438,438',
'438,438,438,438,,438,438,438,,,,,,,,,,,,,438,438,438,438,59,438,,438',
',,,59,59,59,,,59,59,59,909,59,909,909,909,909,909,,,,,59,59,59,,,909',
',,,,59,59,,59,59,59,59,59,,,,,,,,,,909,,,,,,,,,909,909,909,909,,59,59',
'59,59,59,59,59,59,59,59,59,59,59,59,,,59,59,59,,,59,,,59,,,59,59,,59',
'909,59,,59,,59,59,59,59,59,59,59,,59,,59,,,,,,,,,,,,,59,59,59,59,,59',
',59,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,,,,,',
',,,,,,,,,,,,,,74,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,,,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,11,11,11,11,11,11,11,11,11,11,11,11',
'11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11',
',,,,,11,11,11,11,11,11,11,11,11,11,,11,,,,,,,,,11,11,,11,11,11,11,11',
'11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11',
'11,11,11,11,,,11,11,,,,,,,,,,11,,,,,,,,,11,12,12,12,12,12,12,12,12,12',
'12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,,,,12,12,12,12,12,12,12',
'12,12,12,,,,,,12,12,12,12,12,12,12,12,12,,,12,,,,,,,,,12,12,,12,12,12',
'12,12,12,12,,,12,12,,,,12,12,12,12,,,,,,,,,,,,,,12,12,,12,12,12,12,12',
'12,12,12,12,12,12,,,12,12,,,,,,,,,,12,,,,,,,,,12,628,628,628,628,628',
'628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628',
'628,628,,,,628,628,628,628,628,628,628,628,628,628,,,,,,628,628,628',
'628,628,628,628,628,628,,,628,,,,,,,,,628,628,,628,628,628,628,628,628',
'628,,,628,628,,,,628,628,628,628,,,,,,,,,,,,,,628,628,,628,628,628,628',
'628,628,628,628,628,628,628,,,628,628,,,,,,,,,,628,,,,,,,,,628,91,91',
'91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,,',
',91,91,91,91,91,91,91,91,91,91,,,,,,91,91,91,91,91,91,91,91,91,91,91',
'91,,91,,,,,,,91,91,,91,91,91,91,91,91,91,,,91,91,,,,91,91,91,91,,,,',
',,,,,,,,,91,91,,91,91,91,91,91,91,91,91,91,91,91,,,91,,,,,,,,,,,,,,',
',,,,,91,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,,,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,31,,753,,,,',
'31,31,31,,,31,31,31,709,31,709,709,709,709,709,753,,,,31,31,,,,709,',
',,,31,31,,31,31,31,31,31,,,,,,,,,,709,,,,,,,,,,,709,709,,31,31,31,31',
'31,31,31,31,31,31,31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,709',
'31,,31,,31,31,31,31,31,31,31,,31,,31,,,,,,,,,,,,486,31,31,,31,,31,486',
'486,486,,,486,486,486,751,486,751,751,751,751,751,,,,486,486,,,,,751',
',,,,486,486,,486,486,486,486,486,,,,,,,,,,751,,,,,,,,,751,751,751,751',
',428,,,,,,,428,428,428,,486,428,428,428,,428,,486,,,,,486,486,428,428',
'428,,,,751,,,,,428,428,,428,428,428,428,428,,486,486,,,,,,,,,,,,,486',
',,,,486,,,428,428,428,428,428,428,428,428,428,428,428,428,428,428,,',
'428,428,428,,,428,,428,428,,,428,428,,428,,428,,428,,428,428,428,428',
'428,428,428,,428,428,428,,,,,,,,,,,,30,428,428,,428,,428,30,30,30,,',
'30,30,30,1007,30,1007,1007,1007,1007,1007,,,,30,30,30,,,,1007,,,,,30',
'30,,30,30,30,30,30,,,,,,,,,,1007,,,,,,,,,,,1007,1007,,30,30,30,30,30',
'30,30,30,30,30,30,30,30,30,,,30,30,30,,,30,,30,30,,,30,30,,30,1007,30',
',30,,30,30,30,30,30,30,30,,30,30,30,,,,,,588,588,,,588,,,30,30,,30,',
'30,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,588',
',,588,,,,,214,214,,,214,,,,,,,,,214,214,588,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,,,,,742,742,,,742,,,,,,,,,742',
'742,214,742,742,742,742,742,742,742,,,742,742,,,,742,742,742,742,,,',
',,742,,,,,,,,742,742,,742,742,742,742,742,742,742,742,742,742,742,,',
'742,,,,,452,452,,,452,,,,,,,,,452,452,742,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,,,,,453,453,,,453,,,,,,,,,453,453',
'452,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,,',
',,741,741,,,741,,,,,,,,,741,741,453,741,741,741,741,741,741,741,,,741',
'741,,,,741,741,741,741,,,,,,741,,,,,,,,741,741,,741,741,741,741,741',
'741,741,741,741,741,741,,,741,,,,,519,519,,,519,,,,,,,,,519,519,741',
'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,,,519,,,,',
'520,520,,,520,,,,,,,,,520,520,519,520,520,520,520,520,520,520,,,520',
'520,,,,520,520,520,520,,,,,,520,,,,,,,,520,520,,520,520,520,520,520',
'520,520,520,520,520,520,,881,520,881,881,881,881,881,659,,659,659,659',
'659,659,,,881,,,,,520,,659,884,,884,884,884,884,884,,,,,,,,881,,884',
',,,,659,,881,881,881,881,,,,659,659,659,659,,,,886,884,886,886,886,886',
'886,,,,884,884,884,884,,,886,,,,,659,881,,,,,,,659,,,,,,,,,886,1005',
'1005,,,1005,,,884,,,886,886,,1005,1005,,1005,1005,1005,1005,1005,1005',
'1005,,,1005,1005,,,,1005,1005,1005,1005,,,,,,1005,,,,,886,,,1005,1005',
',1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,,,1005,,,,,1004',
'1004,,,1004,,,,,,,,,1004,1004,1005,1004,1004,1004,1004,1004,1004,1004',
',,1004,1004,,,,1004,1004,1004,1004,,,,,,1004,,,,,,,,1004,1004,,1004',
'1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,,994,1004,994,994',
'994,994,994,992,,992,992,992,992,992,,,994,,,,,1004,,992,,,,,,,,,,,',
',,,994,,,,,,,992,,213,213,994,994,213,,,,,992,992,,,213,213,,213,213',
'213,213,213,213,213,,,213,213,,,,213,213,213,213,,,994,,,213,,,,992',
',,,213,213,,213,213,213,213,213,213,213,213,213,213,213,,990,213,990',
'990,990,990,990,1038,,1038,1038,1038,1038,1038,,,990,,,,,213,,1038,',
',,,,,,,,,,,,,990,,,,,,,1038,,529,529,990,990,529,,,,,1038,1038,,,529',
'529,,529,529,529,529,529,529,529,,,529,529,,,,529,529,529,529,,,990',
',,529,,,,1038,,,,529,529,,529,529,529,529,529,529,529,529,529,529,529',
',,529,,,,,530,530,,,530,,,,,,,,,530,530,529,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,,,,,262,262,,,262,,,,,,,,,262',
'262,530,262,262,262,262,262,262,262,,,262,262,,,,262,262,262,262,,,',
',,,,,,,,,,262,262,,262,262,262,262,262,262,262,262,262,262,262,,600',
'262,600,600,600,600,600,546,,546,546,546,546,546,,,600,,,,,262,,546',
'938,,938,938,938,938,938,,,,,,,,600,600,938,,,,,546,,600,600,600,600',
',,,546,546,546,546,,,,,938,938,913,,913,913,913,913,913,938,938,938',
'938,,,,,,913,,705,600,705,705,705,705,705,,546,,,,,,,,705,,,,913,,,',
',938,,,,,,913,913,,,,,,705,,,587,587,,,587,,705,705,705,705,,,,587,587',
',587,587,587,587,587,587,587,,913,587,587,,,,587,587,587,587,,,,,,587',
',,705,,,,,587,587,,587,587,587,587,587,587,587,587,587,587,587,,,587',
',,,,955,955,,,955,,,,,,,,,955,955,587,955,955,955,955,955,955,955,,',
'955,955,,,,955,955,955,955,,,,,,955,,,,,,,,955,955,,955,955,955,955',
'955,955,955,955,955,955,955,,988,955,988,988,988,988,988,,,,,,,,,,988',
',,,,955,,,,,,,,,,,,,,,,,988,,,,,,,,,988,988,988,988,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,988' ]
        racc_action_check = arr = ::Array.new(26268, 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,    32,   925,  1337,   nil,   428,   nil,   nil, 21253,  1333,
   nil, 23729, 23862,  1224,   nil,  1188,  1242,   787,   436,  1186,
   -16,   nil,   -78, 19293,  2194,  1294,   nil,   441,   nil,     2,
 24690, 24373, 11873, 11733, 11593,   nil,  3604,  9353,  7953,   nil,
  1141,   266,   181,  1208,   122,  6833,  5993, 17613,  1127,  1210,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 23331,
   nil,  5573,  5713,  5853,   -10,   nil,  6133,  6273,   nil,   nil,
  6413,  6553,  1166,   nil, 23463,   nil,   nil,   nil,   nil,   nil,
   171,   nil,   nil,   nil,   nil,   nil,   nil,  1113,  1105,  1104,
  1090, 24128,   nil,   nil,   nil,   nil,   nil,   nil,   389,   nil,
   nil,   521,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  8093,   nil,   nil,   nil,   nil,  8233,
  8373,  8513,  8653,  8793,  1107,   nil,   365,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1086,   nil,  3745,
  9493,  9633,  9773, 25573, 24826, 10193, 10333, 10473, 10613, 10753,
 10893,   nil,   nil,  1207,   138,   136,  1150,   173,  1058,  1112,
   nil, 12013,  3040,  1107, 12433, 12573, 12713, 12853, 12993, 13133,
 13273, 13413, 13553, 13693, 13833, 13973, 14113, 14253, 14393, 14533,
 14673, 14813, 14953, 15093, 15233, 15373, 15513, 15653, 15793, 15933,
   nil,   nil, 25818,   nil,   nil,  1097, 16353,   nil,  1102,   nil,
   nil,   nil, 16633,   nil,   nil, 16773,   nil,  2758,   nil,  1060,
  1049,   nil, 17333,  1060,  5013,   nil, 17753, 17893,   nil,   nil,
   401,   nil,  1489, 18313,   984,  2617,   996,  1021,   979, 19153,
  2194,   559,  1138,  1102,  1051,   856,   nil,  1015,   977,   -19,
   nil,   nil,   nil,   989,   178,   949, 20973,   nil,   305,  1006,
  1069,   nil,   997,   nil, 21673,  4309,   677,   nil,   962,   nil,
   -79,   517,   943,   924,   nil,   555,   937,   nil,   nil,   485,
   535,    32,    17,  5433, 20413,   245,  1004,   885,     1,    40,
   133,   960,    27,   988,   nil,   nil, 18173,   nil, 17053,   236,
   492,   491,   136,   468,   400,   466,   525,   322,   nil,   577,
   nil,   nil,   nil,   nil,   nil,   382,   nil,   385,   nil,   392,
   nil,   884,   318,   nil,   865,   289,   nil,   844,   -26,   nil,
   841,   -58,   nil,   389,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  4732, 23596,   nil,   nil,
   nil,   nil,   849,   nil,   nil,   832, 21813,   823,   nil,   nil,
  1066,   825,   nil,   nil,   820,   810,   438,   414, 24565,   nil,
   nil,   nil,     0,   651,   848,   nil,   nil, 23071, 23201,   nil,
  1207,   nil,   795,   nil,   nil,   784,   nil,   nil,   nil,   nil,
    20,   nil, 24962, 25030, 12293,   119, 12153,  7813,  7113,  3886,
  3745,   644,   347,   866,   865,   845,   843,  5293,  5153,  3628,
  3181,  3604,  4027,  4168,  4309,  4450,  4873,  4591,  5013,  4732,
   666,   574,  3322,  3463,  1489,    98, 24498,   nil,   nil,   nil,
   nil,   nil,   nil,   -56,   -47,   781,   771,   nil,   nil, 16913,
   nil,   nil, 20693,   nil, 22793,   nil,   nil,   nil,   nil, 22093,
  1474,   770,   755,   nil,   nil,   750, 19433,   749, 18733, 25166,
 25234,   -61,   781,   nil, 22653,   737,   nil, 22373, 22233, 25682,
 25750,  3040, 21953,   837,   821,   674,   nil,   nil, 21113,   nil,
   nil, 20833,   nil,   nil,   nil,    26, 25887,   nil,   612,   610,
   nil,   588,   578,   571,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   543,   585,   nil,   nil, 19853,   nil,   nil,   nil,   560,
   nil,   nil,   nil,   551,   nil,   nil,   530,  1771,   487,   nil,
   784,   155,    29,   473,   472,   nil, 17193, 26003, 24758,    25,
   nil,   297,   265,   -33,   nil,   997,   nil,     9, 16213,   nil,
 25880,   nil, 16073,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   251,   nil,   nil,   187,   nil,   nil,
   nil,   349,   nil,   nil,   340,   nil,   340,   nil, 23995,   nil,
   315, 11453, 11313,   437,   340, 11173, 11033, 10053,  9913,   324,
   nil,   nil,   nil,  9073,  8933,   322,   nil,  7533,  7253,   nil,
    93,   -52,   257,   125,   280,   925,   246,   nil,   nil, 25303,
   nil,   nil,   330,   -14,   -49,   nil,   nil,   nil,   nil,   187,
   nil,   224,  5153,   nil,   nil,   769,   -83,  6973,   177,   nil,
   165,   150,   146,   199,   397,   961,   184,   120, 16493,  2335,
   150,    59,   175, 19013,   nil,   nil,   560,   nil,  2053,  1912,
    53,   246,   nil,   nil,   238, 25962,   nil, 23035,   nil, 24337,
   nil, 20133,   nil,   648,   nil,    46,   191,   -14,   nil,   nil,
   nil,   nil,   643,   nil,    72,   nil,   nil,   nil,   nil,    29,
   nil, 20553,  1088,    28,    42,    86,    57, 20273,   nil,   690,
   nil, 25098, 24894, 18593,   nil,   nil,   nil,   317,   659,  4027,
  4168, 24462,   424, 24261,    52,   767,  4873,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   265,  6693,  2476,  9213,   nil,   304,
   nil,  2053,   nil,  1348,   nil,   nil,  1630,   nil,  2617,   nil,
  2899, 17473, 18033, 18873, 19573,   -42, 19713,   484,   488,   nil,
   492,   502,   504,   nil,   526,   519,   530,   533, 19993,   nil,
   nil,  1630,   nil,   nil,   nil,  1489,  1348,   nil,   nil,   603,
   342,   nil,   nil,   732,   nil,  1066,   622,   673,   nil,   nil,
   nil,   653,   764,   650,   650,   nil,   nil,   nil,   652,   662,
   nil,   663,   667,   nil,   668,   nil,   nil,   672,   655,   694,
  3308,   nil,   831,   nil, 21393,   838,  4450,  4591,   nil,    -8,
    -1,    56,   165,   784,   nil,   780,  3463,  7673,   nil,   456,
   906,   908,   792,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   809,   794,   nil,  1771,  5293, 22933,  1912,   337,   nil,
   nil, 25296,   nil,   nil, 25320,   nil, 25357,   nil,   nil,   844,
  1193, 22513,  1110,   910,   957,  1207,   868,   976,   nil,  2476,
   nil,   nil,    -7, 18453,   nil,   nil,   nil,   nil,   nil, 23295,
   nil,   615,   nil, 25944,   nil, 23165,   nil,   nil,   nil,   nil,
   250,  3257,   919,   nil,    18,   nil,  1047,  1049, 21533,  3886,
   nil,   nil,  1065,   442,   nil,   nil,   nil,   nil, 25904,   nil,
   951,   nil,   nil,   961,   963,   964,   965,   nil,   973,   nil,
    62,   nil,   nil,   nil,   820, 26071,   nil,   nil,   994,   nil,
   nil,   nil,  2335,   928,   529,   689,  1074,   925,   nil,  1024,
  1027,  1028,  1032,  1037,  3167,  1050,  3398,  2758,   nil,   nil,
   nil,    47,  2899,   nil,   nil,  3181,  3322,   nil, 26133,   nil,
 25635,   nil, 25533,   nil, 25526,   nil,   nil,   nil,  1334,  1131,
  1141,   nil,  1226,  7393, 25464, 25396,  1066, 24654,   nil,   nil,
   nil,   nil,  3449,  1138,   684,   nil,   nil,   nil,  1280,  1285,
  1288,  1169,  1173,  1178,  1190,   nil,   nil,  1194,    19,   -11,
    46,   969,  1204,  1206,   nil,   nil,   nil,   nil, 25642,   nil,
   nil,   nil,   nil,    -9,   nil,  1209,   nil ]

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

clist = [
'6,219,278,278,278,117,421,298,337,368,17,222,273,428,434,534,17,261',
'584,130,130,692,444,312,312,547,395,324,279,279,279,223,9,133,133,525',
'501,418,9,490,223,223,223,441,17,303,303,125,208,262,341,342,135,135',
'345,4,670,312,330,670,329,334,486,750,842,830,495,294,673,223,117,633',
'537,540,223,223,114,544,223,350,327,376,130,378,380,383,386,389,392',
'378,265,271,274,113,813,833,315,725,728,130,577,580,319,401,402,403',
'404,673,702,703,554,740,280,280,280,792,276,288,289,791,922,717,17,919',
'794,951,845,223,223,223,223,17,661,296,947,614,953,597,617,599,665,666',
'331,335,9,118,377,604,697,356,856,611,393,405,615,598,859,615,346,985',
'358,829,749,831,600,823,753,938,737,847,344,846,793,343,535,325,369',
'795,744,353,338,501,278,333,950,372,663,545,982,339,332,628,670,670',
'485,429,801,493,413,419,805,975,673,439,443,494,417,806,1015,731,422',
'817,417,902,374,375,895,17,223,223,223,379,438,223,223,223,223,223,223',
'382,664,407,700,1025,385,678,278,388,947,451,17,830,278,687,953,278',
'391,866,654,755,492,399,428,434,1013,729,756,394,857,854,889,919,279',
'414,355,828,207,898,825,941,422,279,837,124,223,830,2,500,500,602,223',
'1,,223,,312,526,522,,,117,,1033,,497,273,,833,,,,17,312,17,785,,,303',
'17,,,804,680,,,512,326,554,,683,,340,340,510,303,340,294,581,582,683',
'810,294,,17,,,,944,,,945,943,312,,312,117,280,879,880,798,491,223,223',
',830,280,1034,515,,496,,509,,,595,969,595,930,,,,554,523,,340,340,340',
'340,508,,732,,850,1016,908,,758,683,,758,,601,511,,,,809,517,,,634,986',
',,6,,,,,,641,,,774,17,130,646,,,779,,,500,500,278,807,640,,297,133,',
',670,583,429,,9,862,820,860,861,673,,627,1021,,,,135,,,,422,444,706',
'708,710,,,626,,438,223,656,,,,,641,649,,,447,448,449,450,,,,,,,,657',
'640,,526,,278,639,1026,657,657,,526,645,,,,,987,429,312,,,931,,,,,312',
'429,,,667,668,422,17,,,818,,554,,303,807,223,,438,,676,,303,,,,679,855',
'438,675,223,,683,,,,932,662,,,,,,,695,,278,,,,,,,,,,,,798,429,,798,',
',798,,798,,,669,,726,726,,422,17,,19,17,,,,,19,223,,438,745,340,340',
',412,,,,,223,803,929,,223,,,,,,,,696,,,19,,,297,770,772,,,,,775,777',
'634,,443,130,,796,,,,,,,223,223,526,,,133,223,223,1017,802,223,354,',
'811,634,,962,657,312,763,641,,500,646,135,,,,,312,1019,1020,1043,798',
'796,798,640,798,977,798,303,,297,864,417,814,819,297,,,,303,789,,19',
',,,,,,17,17,19,554,812,634,,278,,769,,,,,814,851,814,,429,,,849,798',
',,910,912,,914,916,841,917,,826,,422,826,,,223,,858,,438,,223,863,,',
'873,,17,17,,,130,,,17,,,500,,,,,,865,796,223,,,,,788,,,,312,,,691,882',
'882,882,,,,19,,,1027,,,,442,,,683,,892,,,17,,900,,17,17,904,,19,,,,',
'824,17,,,41,,924,,,,41,,634,,,29,,,,933,907,29,,,,,,,,726,223,748,17',
'17,918,754,29,934,41,301,301,,17,223,,29,29,29,,29,1008,1009,1010,1011',
',312,19,,19,937,,,,19,,,,312,,,,,,348,29,,370,954,790,29,29,17,,29,',
'17,,,19,965,,,,,826,,,789,,,789,,789,,,,,997,,,,984,,1044,,17,41,,,882',
'882,882,882,,882,41,832,29,834,,,,29,29,29,29,29,,,,,438,,,,,,722,17',
',724,278,,,,,,814,,,,,,17,429,,,,17,19,340,17,17,,,,,940,,422,788,,',
'788,634,788,,,,223,814,438,,,,,,882,882,882,882,,,,789,,789,,789,,789',
'41,,,,,,,,,,882,29,29,29,29,,,29,29,29,29,29,29,41,,,,,,,,,,,29,,,,',
',,,,789,,,,,,,,,,,,,,821,822,,,19,,,,,340,,29,,,,,,29,,788,29,788,340',
'788,,788,,41,,41,,,,301,41,946,,948,29,,29,,561,,,29,,,,,301,,,,883',
'885,887,,871,41,970,42,971,,972,,,42,,788,29,,19,,,19,,,,,,,,,,,,,29',
'29,370,,370,,,42,302,302,,,,,,894,,,,896,897,,,,,,,,,901,,,,,,,,,,,',
',349,,,371,,,,,,1022,41,1023,442,1024,,,,,926,927,,29,,,,,,,1032,,,',
',,,,,,,,,,,42,,,,,,,,,42,,,,,,,1045,,,,19,19,,,958,,29,,961,,,,16,,989',
'991,993,995,16,996,,,,,,,,,,,,,,,,,,,981,,,,,,,,16,,,,41,19,19,,,,561',
'301,19,,,29,,,,301,,,,,29,1002,712,,,42,,,,,,,,,29,,1014,,,,,1018,1039',
'1040,1041,1042,,,42,,,,,19,,336,,19,19,,561,,,,,,1046,19,41,,,41,,,16',
',,,,29,,,29,16,,,,,29,,,,,,,,,,19,19,29,,,,29,,,,19,42,,42,,,,302,42',
',,797,,,,,,,,,,,,,302,,,,,,,29,29,42,,,,29,29,19,,29,,19,,,,968,,,,',
',,,,,561,,561,301,16,,,371,712,371,,839,,,301,,19,,,,,,,,41,41,,16,',
',,,,,,29,29,415,,,,,,446,,,561,,,19,,,,,,,,42,,,,,,,19,18,,,,19,,18',
'19,19,29,41,41,,,,29,,41,,,,29,29,16,,16,,,29,,16,,,,18,305,305,,,29',
',,,,503,,505,,506,507,,,,,,16,,,,370,,,41,,,,41,41,712,352,712,,,29',
',,41,29,29,,,,,,,,,29,,,,,,,,42,,,,,,,302,,,,,41,41,,302,797,18,,797',
',29,41,29,29,,18,,,,,,,29,29,,,,,,,16,,,561,,,,,,,,,,,973,712,370,,',
',41,,,,41,,,42,963,,42,29,561,,,29,,,,,,,630,,,,,,,,,,,,41,,,,,,,,,',
',29,,,712,,712,18,,,,,,,,,,,797,,,,,41,,,,,,,18,,,,29,,,,41,16,,,712',
'41,,,41,41,,29,,,,,29,,,29,29,,,671,,302,336,,674,,,,,,,,302,29,,,,',
',,,,42,42,,,,,,18,,18,,,,305,18,,671,,,336,,,,16,,,16,,,,305,,,,,,,',
',18,,,,718,,,,,,,,42,42,,,,,,42,,,,,,,,,,,,596,,596,,,,,,,,,,,,,,,,',
',,,,,,,,,,,371,,,42,,,,42,42,764,,,,671,336,,,42,,,18,,,,,,,,,,,,,,',
',,,,,,,,,16,16,,,42,42,808,,,,,,,,42,,,,,,,,,,,,,816,,,,,,,,,,,,,,,',
',,836,,,,371,,16,16,42,,,,42,16,,,964,,,,446,,,,,,,,,,,,,,18,,,,,,,305',
'42,,,,,,,305,,,,,872,,,,16,,,,16,16,,,,,,,,,16,,,42,,,,,,,,,,,,,,,42',
',,,,42,,,42,42,,,18,16,16,18,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,16,,,,16,,,,,,,,336,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,',
'305,,,,,,,,,,,305,,,,980,,16,,,,18,18,,,,,,,,,,16,,,,,16,,,16,16,,230',
',,,,,,,,277,277,277,,,,,,,,,,,321,322,323,,,,,18,18,,,,,870,18,,,277',
'277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,596,,,18,,,,18,18,,,,,,,,,18',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,18,,,,,,,,,18,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,596,,,,18,,,,18,,,,967,,,,277,420,277,,,440,445,,,,,,,',
',,,,,,,230,18,,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,484,,,,,,18,277,,,,,,277',
',,277,,,,,18,,277,,277,18,277,277,18,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,531,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,277,,440,655,420,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,',
',277,,277,,,,,,,,,,,,,,277,,,,,,,,,689,690,,,,,,,,,,277,,,277,,,,,,',
',,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,277,766,,,277,277,771,773,,,,,776,778,,,655,780',
',,,,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,',
'277,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,277,,,,,,,,,,,,,,,,,,,,,,277,',
'874,,,,,,,,,,,,,,771,773,778,776,,877,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,874,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277' ]
        racc_goto_table = arr = ::Array.new(3262, 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,33,35,35,35,97,25,52,88,59,24,22,73,39,39,10,24,152,94,60,60,13,20',
'67,67,151,59,33,70,70,70,24,9,63,63,54,75,29,9,41,24,24,24,29,24,24',
'24,17,17,38,19,19,64,64,19,2,76,67,70,76,6,6,39,98,92,186,25,48,196',
'24,97,26,71,71,24,24,8,71,24,24,50,6,60,6,6,6,6,6,6,6,40,40,40,5,14',
'191,53,93,93,60,91,91,66,19,19,19,19,196,136,136,182,57,72,72,72,142',
'47,47,47,141,132,131,24,129,144,146,14,24,24,24,24,24,42,49,192,172',
'147,58,172,58,42,42,72,72,9,7,169,173,149,108,109,173,169,9,173,110',
'111,173,5,112,113,142,114,142,115,144,116,117,106,105,104,103,133,102',
'101,100,99,139,96,95,90,75,35,87,145,86,74,148,107,150,69,65,76,76,153',
'73,154,157,22,22,158,132,196,22,22,159,70,160,161,162,6,163,70,164,167',
'168,45,24,24,24,24,170,60,24,24,24,24,24,24,171,44,32,151,146,174,54',
'35,175,192,50,24,186,35,54,147,35,176,177,25,178,73,7,39,39,132,94,179',
'180,181,57,144,129,70,30,21,185,18,15,188,189,6,70,131,11,24,186,3,6',
'6,195,24,1,,24,,67,52,33,,,97,,132,,50,73,,191,,,,24,67,24,26,,,24,24',
',,42,25,,,50,31,182,,39,,31,31,9,24,31,48,19,19,39,26,48,,24,,,,142',
',,142,141,67,,67,97,72,136,136,187,47,24,24,,186,72,92,53,,47,,8,,,24',
'142,24,93,,,,182,66,,31,31,31,31,5,,25,,26,14,136,,173,39,,173,,38,49',
',,,54,49,,,33,98,,,6,,,,,,73,,,41,24,60,73,,,41,,,6,6,35,75,6,,12,63',
',,76,5,73,,9,151,71,10,10,196,,17,142,,,,64,,,,6,20,184,184,184,,,2',
',60,24,33,,,,,73,50,,,31,31,31,31,,,,,,,,6,6,,52,,35,40,13,6,6,,52,40',
',,,,136,73,67,,,26,,,,,67,73,,,50,50,6,24,,,29,,182,,24,75,24,,60,,50',
',24,,,,50,25,60,9,24,,39,,,,10,40,,,,,,,50,,35,,,,,,,,,,,,187,73,,187',
',,187,,187,,,72,,97,97,,6,24,,28,24,,,,,28,24,,60,97,31,31,,12,,,,,24',
'88,91,,24,,,,,,,,72,,,28,,,12,22,22,,,,,22,22,33,,22,60,,33,,,,,,,24',
'24,52,,,63,24,24,94,152,24,28,,52,33,,91,6,67,17,73,,6,73,64,,,,,67',
'10,10,26,187,33,187,6,187,91,187,24,,12,59,70,6,6,12,,,,24,137,,28,',
',,,,,24,24,28,182,50,33,,35,,72,,,,,6,19,6,,73,,,70,187,,,184,184,,184',
'184,50,184,,137,,6,137,,,24,,97,,60,,24,97,,,22,,24,24,,,60,,,24,,,6',
',,,,,50,33,24,,,,,135,,,,67,,,31,6,6,6,,,,28,,,25,,,,28,,,39,,24,,,24',
',6,,24,24,6,,28,,,,,135,24,,,55,,19,,,,55,,33,,,43,,,,19,50,43,,,,,',
',,97,24,31,24,24,50,31,43,97,55,55,55,,24,24,,43,43,43,,43,184,184,184',
'184,,67,28,,28,50,,,,28,,,,67,,,,,,55,43,,55,24,140,43,43,24,,43,,24',
',,28,24,,,,,137,,,137,,,137,,137,,,,,33,,,,97,,184,,24,55,,,6,6,6,6',
',6,55,140,43,140,,,,43,43,43,43,43,,,,,60,,,,,,12,24,,12,35,,,,,,6,',
',,,,24,73,,,,24,28,31,24,24,,,,,135,,6,135,,,135,33,135,,,,24,6,60,',
',,,,6,6,6,6,,,,137,,137,,137,,137,55,,,,,,,,,,6,43,43,43,43,,,43,43',
'43,43,43,43,55,,,,,,,,,,,43,,,,,,,,,137,,,,,,,,,,,,,,12,12,,,28,,,,',
'31,,43,,,,,,43,,135,43,135,31,135,,135,,55,,55,,,,55,55,140,,140,43',
',43,,130,,,43,,,,,55,,,,138,138,138,,12,55,140,56,140,,140,,,56,,135',
'43,,28,,,28,,,,,,,,,,,,,43,43,55,,55,,,56,56,56,,,,,,12,,,,12,12,,,',
',,,,,12,,,,,,,,,,,,,56,,,56,,,,,,140,55,140,28,140,,,,,12,12,,43,,,',
',,,140,,,,,,,,,,,,,,,56,,,,,,,,,56,,,,,,,140,,,,28,28,,,12,,43,,12,',
',,23,,138,138,138,138,23,138,,,,,,,,,,,,,,,,,,,12,,,,,,,,23,,,,55,28',
'28,,,,130,55,28,,,43,,,,55,,,,,43,12,130,,,56,,,,,,,,,43,,12,,,,,12',
'138,138,138,138,,,56,,,,,28,,68,,28,28,,130,,,,,,138,28,55,,,55,,,23',
',,,,43,,,43,23,,,,,43,,,,,,,,,,28,28,43,,,,43,,,,28,56,,56,,,,56,56',
',,130,,,,,,,,,,,,,56,,,,,,,43,43,56,,,,43,43,28,,43,,28,,,,28,,,,,,',
',,,130,,130,55,23,,,56,130,56,,130,,,55,,28,,,,,,,,55,55,,23,,,,,,,',
'43,43,68,,,,,,68,,,130,,,28,,,,,,,,56,,,,,,,28,27,,,,28,,27,28,28,43',
'55,55,,,,43,,55,,,,43,43,23,,23,,,43,,23,,,,27,27,27,,,43,,,,,68,,68',
',68,68,,,,,,23,,,,55,,,55,,,,55,55,130,27,130,,,43,,,55,43,43,,,,,,',
',,43,,,,,,,,56,,,,,,,56,,,,,55,55,,56,130,27,,130,,43,55,43,43,,27,',
',,,,,43,43,,,,,,,23,,,130,,,,,,,,,,,130,130,55,,,,55,,,,55,,,56,55,',
'56,43,130,,,43,,,,,,,68,,,,,,,,,,,,55,,,,,,,,,,,43,,,130,,130,27,,,',
',,,,,,,130,,,,,55,,,,,,,27,,,,43,,,,55,23,,,130,55,,,55,55,,43,,,,,43',
',,43,43,,,68,,56,68,,68,,,,,,,,56,43,,,,,,,,,56,56,,,,,,27,,27,,,,27',
'27,,68,,,68,,,,23,,,23,,,,27,,,,,,,,,27,,,,68,,,,,,,,56,56,,,,,,56,',
',,,,,,,,,,27,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,56,,,56,,,,56,56,68,,,,68',
'68,,,56,,,27,,,,,,,,,,,,,,,,,,,,,,,,23,23,,,56,56,68,,,,,,,,56,,,,,',
',,,,,,,68,,,,,,,,,,,,,,,,,,68,,,,56,,23,23,56,,,,56,23,,,56,,,,68,,',
',,,,,,,,,,,27,,,,,,,27,56,,,,,,,27,,,,,68,,,,23,,,,23,23,,,,,,,,,23',
',,56,,,,,,,,,,,,,,,56,,,,,56,,,56,56,,,27,23,23,27,,,,,,,,23,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,23,,,,23,,,,,,,,68,,,,,,,,,,,,,,,,,,',
',,,23,,,,,,,,,,,,,,,,27,,,,,,,,,,,27,,,,68,,23,,,,27,27,,,,,,,,,,23',
',,,,23,,,23,23,,34,,,,,,,,,34,34,34,,,,,,,,,,,34,34,34,,,,,27,27,,,',
',27,27,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,,,27,,,,27,27',
',,,,,,,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,27,,,,,,,,,27,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,27,,,,27,,,,27,,,,27,,,,34,34,34,,,34,34,,,',
',,,,,,,,,,,34,27,,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,,,,,,27,34,,,,,,34,,,34,,,,,27,,34,,34,27',
'34,34,27,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,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' ]
        racc_goto_check = arr = ::Array.new(3262, 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,   281,    53,   276,   nil,    88,    -2,   137,    71,    30,
  -310,   263,   392,  -512,  -598,  -546,   nil,    36,   254,   -16,
  -194,   193,   -12,  1293,     8,  -206,  -350,  1561,   585,  -173,
    53,   255,   106,   -21,  2258,   -30,   nil,   nil,    22,  -200,
    61,  -226,  -353,   835,  -259,  -588,   nil,    84,    31,    97,
    19,   nil,   -30,    58,  -281,   824,  1149,  -482,  -219,   -65,
     8,   nil,   nil,    22,    41,  -220,    58,   -14,  1325,   128,
    -4,  -258,    80,   -18,  -300,  -244,  -443,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   111,   120,   -56,   nil,
   115,  -241,  -658,  -484,  -328,   108,  -419,     0,  -537,   102,
   115,  -152,   105,  -554,   101,  -559,  -422,  -742,    77,  -594,
  -202,  -592,  -775,    87,  -437,  -204,  -435,  -697,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -715,
   793,  -441,  -720,  -487,   nil,   121,  -440,    38,   354,  -482,
   241,  -540,  -544,   nil,  -535,  -706,  -765,  -754,  -152,  -397,
   124,  -314,    -8,   -66,  -465,   nil,   nil,   -72,  -465,   -65,
  -459,  -773,  -376,  -482,  -604,   nil,   nil,   134,   132,    61,
   135,   142,  -247,  -228,   146,   148,   156,  -508,  -357,  -351,
   166,  -488,  -229,   nil,   -97,  -440,  -640,  -310,  -433,  -609,
   nil,  -612,  -750,   nil,   nil,   -94,  -434 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,   291,     7,   347,   292,
   nil,   nil,   533,   nil,   843,   nil,   290,   nil,   nil,   nil,
    14,    15,    21,   229,   320,   nil,   nil,   227,   228,   nil,
   nil,    20,   nil,   328,    24,    25,    26,    27,   nil,   686,
   nil,   nil,   nil,   309,   nil,   nil,    28,   423,    35,   nil,
   nil,    37,    40,    39,   nil,   224,   225,   594,   nil,   132,
   431,   131,   134,    78,    79,   nil,    93,    49,   283,   nil,
   424,   nil,   425,   436,   642,   498,   281,   266,    50,    51,
    52,    53,    54,    55,    56,    57,    58,   nil,   267,    64,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   578,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   714,
   835,   nil,   715,   942,   787,   549,   nil,   550,   nil,   nil,
   551,   nil,   553,   658,   nil,   nil,   nil,   559,   nil,   nil,
   nil,   752,   nil,   nil,   nil,   435,   268,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    77,    80,    82,   nil,   nil,
   nil,   nil,   nil,   609,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   827,   548,   nil,   552,   563,   565,   566,   799,
   569,   570,   800,   573,   576,   nil,   285 ]

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

racc_reduce_n = 621

racc_shift_n = 1047

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

racc_nt_base = 144

racc_use_result_var = true

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

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

def _reduce_34(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
                    
    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]
                    
    result
end

# reduce 40 omitted

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

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

# reduce 43 omitted

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

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

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

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

# reduce 48 omitted

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

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

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

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

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

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

                      self.env.unextend
                    
    result
end

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

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

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

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

def _reduce_63(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_64(val, _values, result)
                      result = new_super val[1]
                    
    result
end

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

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

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

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

# reduce 69 omitted

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

# reduce 71 omitted

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

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

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

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

def _reduce_76(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_77(val, _values, result)
                      result = s(:masgn, val[0] << s(:splat))
                    
    result
end

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

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

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

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

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

# reduce 83 omitted

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

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

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

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

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

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

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

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

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

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

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

def _reduce_95(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_96(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_97(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

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

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

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

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

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

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

def _reduce_104(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_105(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_106(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

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

# reduce 108 omitted

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

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

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

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

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

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

# reduce 117 omitted

# reduce 118 omitted

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

# reduce 120 omitted

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

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

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

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# 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

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

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

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

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

def _reduce_199(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_200(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

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

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

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

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

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

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

def _reduce_209(val, _values, result)
                      result = new_call val[0], :-, argl(val[2])
                    
    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(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_223(val, _values, result)
                      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 = self.get_match_node val[0], val[2]
                    
    result
end

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

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

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

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

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

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

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

# reduce 238 omitted

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

# reduce 240 omitted

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

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

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

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

# reduce 245 omitted

# reduce 246 omitted

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

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

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

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

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

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

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

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

def _reduce_255(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_256(val, _values, result)
                      result = call_args val
                    
    result
end

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

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

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

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

# reduce 261 omitted

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

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

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

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

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

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

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

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

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

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

# reduce 278 omitted

# reduce 279 omitted

# reduce 280 omitted

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

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

def _reduce_283(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_284(val, _values, result)
                      debug20 13, val, result
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_299(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 300 omitted

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

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

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

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

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

def _reduce_307(val, _values, result)
                      result = new_while val[5], val[2], true
                    
    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_until val[5], val[2], true
                    
    result
end

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

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

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

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

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

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

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

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

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

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

def _reduce_324(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_325(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_326(val, _values, result)
                      result = self.in_def

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

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

                      result = new_defn val

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

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

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

def _reduce_330(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_331(val, _values, result)
                      result = s(:break)
                    
    result
end

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

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

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

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

# reduce 336 omitted

# reduce 337 omitted

# reduce 338 omitted

# 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

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

# reduce 354 omitted

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

# reduce 356 omitted

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

# reduce 358 omitted

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

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

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

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

                      result = block_var args
                    
    result
end

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

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

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

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

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

                      result = block_var args, :*
                    
    result
end

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

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

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

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

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

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

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

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

                      result = block_var :*, args
                    
    result
end

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

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

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

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

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

# reduce 376 omitted

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

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

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

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

# reduce 392 omitted

# reduce 393 omitted

def _reduce_394(val, _values, result)
                      result = args val
                      result = 0 if result == s(:args)
                    
    result
end

def _reduce_395(val, _values, result)
                      result = 0
                      self.lexer.command_start = true
                    
    result
end

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

# reduce 397 omitted

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

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

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

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

# reduce 402 omitted

def _reduce_403(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_404(val, _values, result)
                      lpar, args, body = val
                      lexer.lpar_beg = lpar

                      args = 0 if args == s(:args)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      self.env.unextend
                    
    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)
                      result = self.lexer.lineno
                    
    result
end

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

# reduce 434 omitted

# reduce 435 omitted

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

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

# reduce 439 omitted

# reduce 440 omitted

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

# reduce 442 omitted

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

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

# reduce 444 omitted

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

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

# reduce 447 omitted

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

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

# reduce 450 omitted

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

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

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

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

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

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

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

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

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

# reduce 460 omitted

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

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

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

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

def _reduce_465(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_466(val, _values, result)
                      result = s(:array)
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      lexer.lex_state   = :expr_beg
                    
    result
end

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

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg = memo

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

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

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

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

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

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

# reduce 488 omitted

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

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

# reduce 491 omitted

# reduce 492 omitted

# reduce 493 omitted

# reduce 494 omitted

def _reduce_495(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 496 omitted

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

# reduce 498 omitted

# reduce 499 omitted

# reduce 500 omitted

# reduce 501 omitted

# reduce 502 omitted

# reduce 503 omitted

# reduce 504 omitted

# reduce 505 omitted

# reduce 506 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 529 omitted

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

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

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

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

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

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

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

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

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

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

# reduce 551 omitted

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

                      result = identifier
                    
    result
end

# reduce 553 omitted

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

def _reduce_555(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_556(val, _values, result)
                      list, _, item = val

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

                      result << item
                    
    result
end

# reduce 557 omitted

def _reduce_558(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_559(val, _values, result)
                      label, _ = val[0] # TODO: fix lineno?
                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      result = s(:array, s(:kwarg, identifier))
                    
    result
end

def _reduce_560(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_561(val, _values, result)
                      raise "fuck 11"
                    
    result
end

# reduce 562 omitted

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

# reduce 564 omitted

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

# reduce 566 omitted

# reduce 567 omitted

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

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

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

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

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

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

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

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

# reduce 576 omitted

# reduce 577 omitted

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

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

# reduce 580 omitted

# reduce 581 omitted

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

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

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

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

# reduce 585 omitted

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

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

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

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

# reduce 590 omitted

def _reduce_591(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_592(val, _values, result)
                      result = s(:array, val[0], val[2])
                    
    result
end

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

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

# reduce 595 omitted

# reduce 596 omitted

# reduce 597 omitted

# reduce 598 omitted

# reduce 599 omitted

# 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

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

# reduce 617 omitted

# reduce 618 omitted

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

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

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

end   # class Ruby21Parser
