lib/parser/ruby31.rb



# -*- encoding:utf-8; warn-indent:false; frozen_string_literal: true  -*-
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.15
# from Racc grammer file "".
#

require 'racc/parser.rb'


require 'parser'

module Parser
  class Ruby31 < Parser::Base


  def version
    31
  end

  def default_encoding
    Encoding::UTF_8
  end

  def endless_method_name(name_t)
    if !%w[=== == != <= >=].include?(name_t[0]) && name_t[0].end_with?('=')
      diagnostic :error, :endless_setter, nil, name_t
    end
  end

  def try_declare_numparam(node)
    name = node.children[0]

    if name =~ /\A_[1-9]\z/ && !static_env.declared?(name) && context.in_dynamic_block?
      # definitely an implicit param
      location = node.loc.expression

      if max_numparam_stack.has_ordinary_params?
        diagnostic :error, :ordinary_param_defined, nil, [nil, location]
      end

      raw_context = context.stack.dup
      raw_max_numparam_stack = max_numparam_stack.stack.dup

      # ignore current block scope
      raw_context.pop
      raw_max_numparam_stack.pop

      raw_context.reverse_each do |outer_scope|
        if outer_scope == :block || outer_scope == :lambda
          outer_scope_has_numparams = raw_max_numparam_stack.pop > 0

          if outer_scope_has_numparams
            diagnostic :error, :numparam_used_in_outer_scope, nil, [nil, location]
          else
            # for now it's ok, but an outer scope can also be a block
            # with numparams, so we need to continue
          end
        else
          # found an outer scope that can't have numparams
          # like def/class/etc
          break
        end
      end

      static_env.declare(name)
      max_numparam_stack.register(name[1].to_i)

      true
    else
      false
    end
  end
##### State transition tables begin ###

clist = [
'-319,308,617,995,597,-117,-116,-319,-319,-319,218,219,308,-319,-319',
'919,-319,919,919,-121,-122,617,-725,-118,-319,617,660,624,658,1207,234',
'-123,-119,713,943,828,-319,-319,617,-319,-319,-319,-319,-319,-116,-117',
'-124,617,617,-124,925,714,942,123,236,921,1142,1143,122,922,237,918',
'237,-123,-504,303,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319',
'-319,-319,-319,-319,218,219,-319,-319,-319,-713,684,-319,307,-124,-319',
'-123,659,-319,657,237,218,219,-319,307,-319,119,-319,-319,237,-319,-319',
'-319,-319,-319,-607,-319,994,-319,-108,-107,823,-607,-607,-607,123,-119',
'-607,-607,-607,122,-607,-319,-112,-113,-319,-319,-109,-113,-607,-319',
'-607,-607,-607,123,-114,-110,-319,123,122,-122,-607,-607,122,-607,-607',
'-607,-607,-607,-121,-120,123,-118,-115,984,-109,122,-116,-117,-124,123',
'123,-116,-117,-124,122,122,1117,308,237,132,-607,-607,-607,-607,-607',
'-607,-607,-607,-607,-607,-607,-607,-607,-607,123,-725,-607,-607,-607',
'122,-607,-607,609,215,-607,611,123,-607,-607,-111,-607,122,-607,-123',
'-607,230,-607,-607,-123,-607,-607,-607,-607,-607,123,-607,-610,-607',
'-621,122,-109,237,-622,-610,-610,-610,-712,-122,-610,-610,-610,-607',
'-610,-119,-607,-607,-607,-607,-119,-607,-610,-607,-610,-610,-610,230',
'-607,216,1118,-607,-120,-110,-610,-610,307,-610,-610,-610,-610,-610',
'-109,-737,217,-109,-712,-111,-121,-120,-112,-118,220,-121,-120,519,-118',
'-109,887,-116,624,218,219,-117,-610,-610,-610,-610,-610,-610,-610,-610',
'-610,-610,-610,-610,-610,-610,-725,297,-610,-610,-610,-737,-610,-610',
'-713,-111,-610,870,-111,-610,-610,645,-610,237,-610,-712,-610,-110,-610',
'-610,-111,-610,-610,-610,-610,-610,308,-610,-319,-610,101,102,-124,358',
'-112,-319,-319,-319,101,102,-319,-319,-319,-610,-319,-122,-610,-610',
'-610,-610,-122,-610,-319,-610,-319,-319,-319,-110,-610,-111,-110,-610',
'504,503,-319,-319,-118,-319,-319,-319,-319,-319,-110,237,-112,647,646',
'-112,645,-607,630,645,230,887,954,645,-607,630,359,-112,303,631,1057',
'828,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319',
'-319,103,104,-319,-319,-319,307,916,-319,103,104,-319,913,645,-319,-319',
'645,-319,-614,-319,237,-319,428,-319,-319,-614,-319,-319,-319,-319,-319',
'-737,-319,914,-319,647,646,-607,647,646,643,645,647,646,643,856,645',
'468,-319,645,1029,-319,-319,-319,-319,796,-319,645,-319,1057,-716,679',
'230,-319,-628,680,-122,-716,-716,-716,507,-119,-716,-716,-716,224,-716',
'647,646,648,647,646,627,-614,-716,-716,-716,-716,-716,679,854,625,-121',
'218,219,518,-716,-716,680,-716,-716,-716,-716,-716,520,647,646,661,-110',
'-118,647,646,643,647,646,650,645,-622,-737,521,-119,647,646,656,-121',
'236,-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,-716',
'-716,225,750,-716,-716,-716,-112,915,-716,-119,-102,-716,496,-616,-716',
'-716,555,-716,-121,-716,-616,-716,-88,-716,-716,-108,-716,-716,-716',
'-716,-716,-319,-716,-716,-716,979,887,-117,-319,-319,-319,647,646,652',
'-319,-319,609,-319,-716,611,497,-716,-716,-716,-716,-319,-716,224,-716',
'567,123,569,1050,-716,301,122,-120,-319,-319,571,-319,-319,-319,-319',
'-319,979,887,132,-616,488,224,485,484,483,493,486,425,1181,-610,630',
'-87,427,426,954,496,-610,635,-319,-319,-319,-319,-319,-319,-319,-319',
'-319,-319,-319,-319,-319,-319,237,-617,-319,-319,-319,491,684,-319,-617',
'582,-319,225,224,-319,501,500,504,503,-319,301,-319,497,-319,-319,583',
'-319,-319,-319,-319,-319,123,-319,-716,-319,225,122,590,87,123,-716',
'-716,-716,-610,122,312,-716,-716,-319,-716,88,-319,-319,237,-319,230',
'-319,-716,-716,230,89,609,482,-319,608,609,-122,-617,611,-716,-716,303',
'-716,-716,-716,-716,-716,237,225,594,1190,488,224,485,484,483,493,486',
'-618,1157,597,944,945,218,219,-618,496,600,1155,-716,-716,-716,-716',
'-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,261,-621,-716,-716',
'-716,491,685,-716,237,612,-716,234,-615,-716,501,500,504,503,-716,-615',
'-716,497,-716,-716,-114,-716,-716,-716,-716,-716,613,-716,-716,-716',
'225,870,-123,571,624,488,-618,485,484,483,493,486,417,-716,-107,-612',
'-716,-716,-710,-111,496,-716,-612,-613,-115,-716,-116,482,-716,628,-613',
'-120,-716,-716,-716,493,-124,629,-716,-716,637,-716,491,-615,662,496',
'665,666,-109,-716,-716,501,500,504,503,-292,224,668,497,669,-118,-716',
'-716,672,-716,-716,-716,-716,-716,673,-610,237,670,677,224,678,303,-610',
'504,503,-612,633,-710,497,237,691,-610,692,-613,237,635,-716,-716,-716',
'-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,-716,-710,694,-716',
'-716,-716,697,685,-716,-354,698,-716,700,702,-716,704,-354,225,715,-716',
'716,-716,720,-716,-716,-354,-716,-716,-716,-716,-716,-610,-716,-716',
'-716,225,722,-619,728,729,261,261,224,-620,-619,750,261,261,-716,589',
'-620,-716,-716,-619,-716,496,-716,-320,587,-620,237,784,237,-716,-320',
'237,-120,330,77,78,26,11,65,-320,-354,237,71,72,-102,799,237,75,-716',
'73,74,76,35,36,79,80,603,810,814,497,237,81,33,32,111,110,112,113,-619',
'816,23,1050,819,225,-620,824,10,53,332,12,115,114,116,105,64,107,106',
'108,-320,109,117,118,224,101,102,49,50,48,-320,223,-716,825,224,278',
'279,-320,829,-716,221,599,853,857,-712,858,-320,-293,-716,45,517,871',
'38,555,555,66,67,-310,883,68,887,40,907,908,-310,52,237,-716,911,261',
'237,277,276,-310,24,920,937,938,939,99,87,90,91,956,92,94,93,95,958',
'225,297,964,88,98,966,-320,968,-716,569,225,82,258,89,103,104,260,259',
'46,47,330,77,78,26,11,65,571,810,237,71,72,303,303,-310,75,-709,73,74',
'76,35,36,79,80,126,127,128,129,130,81,33,32,111,110,112,113,810,488',
'23,485,484,483,261,486,10,53,332,12,115,114,116,105,64,107,106,108,887',
'109,117,118,224,101,102,49,50,48,-319,516,-607,981,224,982,237,-319',
'706,-607,517,1181,-713,237,-709,992,-319,710,-607,45,635,237,38,-294',
'237,66,67,-319,1003,68,1007,40,-292,1011,-319,52,697,-709,714,-713,1014',
'848,849,-319,24,850,117,118,1016,99,87,90,91,1018,92,94,93,95,1020,225',
'1020,237,88,98,770,-319,237,-607,237,225,82,1048,89,103,104,1051,919',
'46,47,330,77,78,26,11,65,966,1063,237,71,72,810,1079,-319,75,1081,73',
'74,76,35,36,79,80,253,1086,1087,1092,1093,81,33,32,111,110,112,113,1094',
'488,23,485,484,483,-295,486,10,53,332,12,115,114,116,105,64,107,106',
'108,1107,109,117,118,1108,101,102,49,50,48,261,265,266,267,268,278,279',
'273,274,269,270,1109,254,255,237,237,271,272,237,45,237,252,38,493,237',
'66,67,237,919,68,1116,40,258,496,264,52,260,259,237,256,257,277,276',
'262,24,263,1122,1123,1125,99,87,90,91,697,92,94,93,95,1128,1131,1133',
'1135,88,98,237,275,504,503,1137,1147,82,497,89,103,104,1158,1159,46',
'47,330,77,78,26,11,65,1020,1020,1020,71,72,1166,1179,1182,75,1187,73',
'74,76,35,36,79,80,126,127,128,129,130,81,33,32,111,110,112,113,1188',
'691,23,1108,1198,1198,697,674,10,53,332,12,115,114,116,105,64,107,106',
'108,1201,109,117,118,1203,101,102,49,50,48,261,265,266,267,268,278,279',
'273,274,269,270,1205,254,255,1207,1207,271,272,237,45,1020,948,38,952',
'951,66,67,953,1198,68,-713,40,258,-712,264,52,260,259,1224,256,257,277',
'276,262,24,263,1207,1207,1207,99,87,90,91,3,92,94,93,95,950,,,,88,98',
',275,,-264,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75',
',73,74,76,35,36,79,80,126,127,128,129,130,81,33,32,111,110,112,113,',
',23,,,,,884,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118',
',101,102,49,50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255',
',,271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277',
'276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89',
'103,104,,,46,47,7,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80',
'126,127,128,129,130,81,33,32,111,110,112,113,,,23,,,,,674,10,53,9,12',
'115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265',
'266,267,268,278,279,273,274,269,270,,254,255,,,271,272,,45,,,38,,,66',
'67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89,103,104,,,46,47,330,77',
'78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110',
'112,113,,,23,,,,,912,10,53,332,12,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,49,50,48,261,265,266,267,268,278,279,273,274,269,270',
',254,255,,,271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256',
'257,277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,',
',,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76',
'35,36,79,80,,,,,,81,33,32,111,110,112,113,,1152,23,485,484,483,,486',
'10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49',
'50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255,,,271,272',
',45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24',
'263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89,103,104,,',
'46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81',
'33,32,111,110,112,113,,1152,23,485,484,483,,486,10,53,332,12,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267',
'268,278,279,273,274,269,270,,254,255,,,271,272,,45,,,38,,,66,67,,,68',
',40,258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,',
'92,94,93,95,,,,,88,98,,275,,,,,82,,89,103,104,,,46,47,330,77,78,26,11',
'65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,',
'101,102,49,50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255',
',,271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277',
'276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,237,275,,,,,82',
',89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36',
'79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267,268',
'278,279,273,274,269,270,,254,255,,,271,272,,45,,,38,,,66,67,,,68,,40',
'258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,275,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,',
',,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,',
'23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255,,',
'271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276',
'262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89,103',
'104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267,268,278',
'279,273,274,269,270,,254,255,,,271,272,,45,,,38,,,66,67,,,68,,40,258',
',264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,275,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71',
'72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,',
',,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255,,,271',
'272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262',
'24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89,103,104',
',,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,',
',81,33,32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267,268,278,279',
'273,274,269,270,,254,255,,,271,272,,45,,,38,,,66,67,,,68,,40,258,,264',
'52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,',
',,,88,98,,275,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72',
',,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,',
'10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49',
'50,48,261,265,266,267,268,278,279,273,274,269,270,,254,255,,,271,272',
',45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24',
'263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,275,,,,,82,,89,103,104,,',
'46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81',
'33,32,111,110,112,113,,488,23,485,484,483,,486,10,53,332,12,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,488,,485,484,483',
',486,,706,,488,,485,484,483,,486,710,,45,,,38,,,66,67,,261,68,,40,,',
',52,,706,,261,,,,,24,,710,706,,99,87,90,91,,92,94,93,95,,,258,,88,98',
'260,259,,256,257,,82,258,89,103,104,260,259,46,47,330,77,78,26,11,65',
',,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,',
'488,23,485,484,483,,486,10,53,332,12,115,114,116,105,64,107,106,108',
',109,117,118,,101,102,49,50,48,261,265,266,267,268,278,279,273,706,269',
'270,,,,,,271,272,,45,,,38,,,66,67,,261,68,,40,258,,264,52,260,259,,256',
'257,277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,258,,88,98,260',
'259,,256,257,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,',
'75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,488,23,485,484',
'483,,486,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,261,,,,,,,,706,,,,,,,,271,272,,45,,,38,,,66,67,,,68,,40',
'258,,264,52,260,259,,256,257,,,262,24,263,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72,',
',,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10',
'53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,261,265,266,267,268,278,279,,,269,270,,,,,,271,272,,45,,,38,,,66',
'67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,330,77,78',
'26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110',
'112,113,,,23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,261,265,266,267,268,278,279,273,274,269,270,,-738',
'-738,,,271,272,,45,,,334,,,66,67,,,68,,40,258,,264,52,260,259,,256,257',
'277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89',
'103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79',
'80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,-738,-738,-738',
'-738,278,279,,,-738,-738,,,,,,271,272,,45,,,38,,,66,67,,,68,,40,258',
',264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,,,,71,72',
',,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,',
'10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49',
'50,48,261,-738,-738,-738,-738,278,279,,,-738,-738,,,,,,271,272,,45,',
',334,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24,263',
',,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,330',
'77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,49,50,48,261,-738,-738,-738,-738,278,279,,,-738,-738',
',,,,,271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257',
'277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89',
'103,104,,,46,47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79',
'80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267,268',
'278,279,273,274,269,270,,-738,-738,,,271,272,,45,,,38,,,66,67,,,68,',
'40,258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,330,77,78,26,11,65,',
',,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,',
'23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,261,-738,-738,-738,-738,278,279,,,-738,-738,,,,,,271,272',
',45,,,38,,,66,67,,,68,,40,258,,264,52,260,259,,256,257,277,276,262,24',
'263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46',
'47,330,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33',
'32,111,110,112,113,,,23,,,,,,10,53,332,12,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,261,-738,-738,-738,-738,278,279,',
',-738,-738,,,,,,271,272,,45,,,38,,,66,67,,,68,,40,258,,264,52,260,259',
',256,257,277,276,262,24,263,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,',
',,,,82,,89,103,104,,,46,47,7,77,78,26,11,65,,,,71,72,,,,75,,73,74,76',
'35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,9,12,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265,266,267',
'268,278,279,273,274,269,270,,-738,-738,,,271,272,,45,,,38,,,66,67,,',
'68,,40,258,,264,52,260,259,,256,257,277,276,262,24,263,,,,99,87,90,91',
',92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,330,77,78,26,11',
'65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109,117,118,',
'101,102,49,50,48,261,,,,,,,,,,,,,,,,271,272,,45,,,334,,,66,67,,,68,',
'40,258,,264,52,260,259,,256,257,,,262,24,263,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,-738,-738',
'-738,-738,278,279,,,-738,-738,,,,,,271,272,,242,,,250,,,66,67,,,68,',
',258,,264,52,260,259,,256,257,277,276,262,247,263,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,261,265',
'266,267,268,278,279,273,274,269,270,,-738,-738,,,271,272,,242,,,250',
',,66,67,,,68,,,258,,264,52,260,259,,256,257,277,276,262,247,263,,,,99',
'87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46',
'47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,261,,,,,,,,,,,,,,,,271,272,,242,,,250,,,66,67,,,68,,,258,,264,52',
'260,259,,256,257,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,',
'81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,261,,,,,,,,,,,,,,,,271,272,,242,',
',250,,,66,67,,,68,,,258,,264,52,260,259,,256,257,,,,247,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,',
'75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,',
',,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48',
'261,,,,,,,,,,,,,,,,271,272,,242,,,250,,,66,67,,,68,,,258,,,52,260,259',
',256,257,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354',
'111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68',
',,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78',
'26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81',
'346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80',
',,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,',
'250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,',
',,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,',
',,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,77,78,26,11,65',
',,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,',
',23,,,,,,10,53,,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,',
',,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110',
'112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52',
',,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65',
'89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,433',
',,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26',
'82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346',
'354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108',
',109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67',
',,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,',
'81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,',
',,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,',
'242,,,250,,,66,67,,,68,,,,319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,',
',,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,793,,319,,52,,,325,,,,,,247',
',,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,23,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,',
',,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-434',
',46,47,,,,-434,-434,-434,,,-434,-434,-434,,-434,,,,,,,,-434,-434,-434',
'-434,,,,,,,,,-434,-434,,-434,-434,-434,-434,-434,,,,,,,,,,,,,,,,,,,',
',,,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434',
'-434,,,-434,-434,-434,,,-434,,303,-434,,,-434,-434,,-434,,-434,,-434',
',-434,-434,,-434,-434,-434,-434,-434,-326,-434,-434,-434,,,,-326,-326',
'-326,,,-326,-326,-326,,-326,-434,,,-434,-434,,-434,-326,-434,-326,-326',
',,,,-434,,,,-326,-326,,-326,-326,-326,-326,-326,,,,,,,,,,,,,,,,,,,,',
',,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326',
',,-326,-326,-326,,,-326,,312,-326,,,-326,-326,,-326,,-326,,-326,,-326',
'-326,,-326,-326,-326,-326,-326,,-326,,-326,,,,,,,,,,,,,,-326,,,-326',
'-326,,-326,,-326,77,78,26,,65,,-326,,71,72,,,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35',
'36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,',
',,,,242,,,250,,,66,67,,,68,,321,,319,,52,,,325,,,,,,247,,,,,99,322,90',
'91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,77,78,26,11,65',
',,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,',
',23,,,,,,10,53,,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,',
',,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112',
'113,,,23,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,',
',,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319',
',52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78',
'26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81',
'346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,793,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98',
',,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,',
',,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,862,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,77,78,26,11,65,,,,71,72,,',
',75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10',
'53,,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48',
',,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,99',
'87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46',
'47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,',
',99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71',
'72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118,,101,102,49',
'50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52,,,325',
',,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89',
'103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110',
'112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321',
',319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81',
'33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108',
'324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,321,,319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,',
',,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,',
',,,,242,,,250,,,66,67,,,68,,,,319,,52,,,325,,,,,,247,,,,,99,322,90,91',
',92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75',
',73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,',
',,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52,,,325,,,,,,247',
',,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,,,52,,',
',,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89',
'103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109',
'117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68',
',,,,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,',
'81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,',
',66,67,,,68,,793,,,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35',
'36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,',
',,,88,98,237,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35',
'36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,',
',,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36',
'79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,',
',,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,',
',,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,',
'75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53',
',,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,',
',,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47',
',75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,',
'53,,,115,114,116,105,64,107,106,108,324,109,117,118,,101,102,49,50,48',
',,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52,,,325,,,,,,247',
',,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47',
'77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,23,,,,,,10,53,332,12,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40',
',,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,417,82',
',89,103,104,,,46,47,77,78,26,,65,,,,71,72,,,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,',
',,,,242,,,250,,,66,67,,,68,,,,319,,52,,,325,,,,,,247,,,,,99,322,90,91',
',92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75',
',73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,',
'53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,',
',,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99',
'87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46',
'47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,,,,,,,,,,,,,,,,,,,,242,,,250,603,,66,67,,,68,,,,,,52,,,,,,,,,247',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,793,,319',
',52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78',
'26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81',
'346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80',
',,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,',
'250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,',
',,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-274,,46,47,,,,-274,-274,-274',
',,-274,-274,-274,488,-274,485,484,483,493,486,,,-274,-274,-274,,,,496',
',,,,,-274,-274,,-274,-274,-274,-274,-274,488,,485,484,483,493,486,,491',
'641,,,,,,496,,501,500,504,503,,,,497,,488,,485,484,483,493,486,-274',
',,,491,,,-274,496,,,,303,-274,,504,503,,,,497,,,,,,,,,,491,482,,,,-274',
'-274,,,501,500,504,503,,,,497,,,,-274,,,-274,,77,78,26,-274,65,482,',
',71,72,-274,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52',
',,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,',
',52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,23,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,',
',52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,123,,,,,122,82',
',89,103,104,,,46,47,77,78,26,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,',
',,,,242,,,250,,,66,67,,,68,,,,,,52,,,325,,,,,,247,,,,,99,322,90,91,',
'92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,',
'73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115',
'114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,',
',,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,',
'92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,',
'73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53',
',,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,',
',,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47',
',75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,',
',,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,',
',99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71',
'72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,,',
'52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,',
'89,103,104,,,46,47,77,78,26,11,65,,,,71,72,,,,75,,73,74,76,35,36,79',
'80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,,12,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,45',
',,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35',
'36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,',
',,,88,98,,,,,,,82,,89,103,104,-311,,46,47,,,,-311,-311,-311,,,-311,-311',
'-311,,-311,,,,,,,,-311,,-311,-311,-311,,,,,,,,-311,-311,,-311,-311,-311',
'-311,-311,,,,,,,,,,,,,,,,,,,,,,,-311,-311,-311,-311,-311,-311,-311,-311',
'-311,-311,-311,-311,-311,-311,,,-311,-311,-311,,,-311,,,-311,,,-311',
'-311,,-311,,-311,,-311,,-311,-311,,-311,-311,-311,-311,-311,,-311,,-311',
',,,,,,,,,,,,,-311,,,-311,-311,-311,-311,,-311,,-311,,77,78,26,-311,65',
',,,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,',
',,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112',
'113,,,23,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,',
',,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110',
'112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52',
',,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65',
'89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,',
',52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354',
'111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324',
'109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,',
',68,,793,,319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,557,,75,,73,74,76,35,36,79',
'80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,',
'250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,',
',,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115',
'114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,',
',,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91',
',92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75',
',73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,324,109,117,118,,101,102,49,50,48,,',
',,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52,,,325,,,,,,247',
',,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,557,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52',
',,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109',
'117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68',
',321,,319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98',
'237,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76',
'351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,',
',115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,',
',,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,',
'75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,',
',,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48',
',,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99',
'87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46',
'47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,',
',99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71',
'72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,',
',,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110',
'112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118',
',101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52',
',,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65',
'89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,',
',52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354',
'111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68',
',,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78',
'26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81',
'346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,,,,82,,89,103,104,,,46,47,77,78,26,11,65,,,,71,72,,,,75,,73,74,76',
'35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53,,12,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,',
',,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115',
'114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,',
',,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91',
',92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75',
',73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,,53,,',
'115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,',
',,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,46,47,77,78,26,11,65',
',,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,',
',23,,,,,,10,53,9,12,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,',
',,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,417,82,,89,103,104',
',,46,47,77,78,26,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81,33',
'32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324',
'109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,',
',68,,321,,319,,52,,,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80',
',,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250',
',,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,,,,82,,89,103,104,-718,,46,47,,,,-718,-718,-718,,,-718,-718,-718',
',-718,,,,,,,,-718,-718,-718,-718,-718,,,,,,,,-718,-718,,-718,-718,-718',
'-718,-718,,,,,,,,,,,,,,,,,,,,,,,-718,-718,-718,-718,-718,-718,-718,-718',
'-718,-718,-718,-718,-718,-718,,,-718,-718,-718,,,-718,,,-718,,,-718',
'-718,,-718,,-718,,-718,,-718,-718,,-718,-718,-718,-718,-718,,-718,-718',
'-718,,,,,,,,,,,,,,-718,,,-718,-718,-718,-718,,-718,-717,-718,,,,,-718',
'-717,-717,-717,,,-717,-717,-717,,-717,,,,,,,,-717,-717,-717,-717,-717',
',,,,,,,-717,-717,,-717,-717,-717,-717,-717,,,,,,,,,,,,,,,,,,,,,,,-717',
'-717,-717,-717,-717,-717,-717,-717,-717,-717,-717,-717,-717,-717,,,-717',
'-717,-717,,,-717,,,-717,,,-717,-717,,-717,,-717,,-717,,-717,-717,,-717',
'-717,-717,-717,-717,,-717,-717,-717,,,,,,,,,,,,,,-717,,,-717,-717,-717',
'-717,,-717,,-717,,77,78,26,-717,65,,,,71,72,,,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,,,,82,,89,103,104,,,46,47,77,78,26,11,65,,,,71,72,,,,75',
',73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113,,,23,,,,,,10,53',
'9,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,',
',,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-274,,46,47,,,,-274',
'-274,-274,,,-274,-274,-274,,-274,,,,,,,,-274,-274,-274,-274,,,,,,,,',
'-274,-274,,-274,-274,-274,-274,-274,,,,,,,,,,,,,,,,,,,,,,,-274,-274',
'-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,,,-274,-274',
'-274,,,-274,,303,-274,,,-274,-274,,-274,,-274,,-274,,-274,-274,,-274',
'-274,-274,-274,-274,,-274,-274,-274,,,,,,,,,,,,,,-274,,,-274,-274,,-274',
',-274,77,78,26,,65,,-274,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,81',
'33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105,64,107,106,108',
',109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67',
',,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81',
'33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105,64,107,106,108',
',109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67',
',,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,',
'81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,',
',,,81,33,32,111,110,112,113,,,23,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,,,,,52,,,,,,,,,24,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,',
',77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,',
',,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106',
'108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66',
'67,,,68,,433,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98',
',,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80',
',,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,',
'250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,',
',,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242',
',,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74,76,35',
'36,79,80,,,,,,81,33,32,111,110,112,113,,,251,,,,,,,53,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,',
',242,,,250,,,66,67,,,68,,433,,,,52,,,,,,,,,247,,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75,,73,74',
'76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,53,,,115',
'114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,,,,,,,,,,',
',,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99,87,90,91',
',92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46,47,,75',
',73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,',
'53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50,48,',
',,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,,,99',
'87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,46',
'47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251',
',,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,49,50',
'48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247,,,',
',99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71',
'72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,247',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,23,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102',
'49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,,,52,,,,,,,,,24',
',,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104',
'71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111,110,112,113',
',,251,,,,,,,53,,,115,114,116,105,64,107,106,108,324,109,117,118,,101',
'102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,321,,319,,52',
',,325,,,,,,247,,,,,99,322,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,81,33,32,111',
'110,112,113,,,251,,,,,,,53,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,49,50,48,,,,,,,,,,,,,,,,,,,,242,,,250,,,66,67,,,68,,,,',
',52,,,,,,,,,247,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,46,47,,75,,73,74,76,351,352,79,80,,,,,,81,346,354',
'111,110,112,113,,,251,,,,,,,347,,,115,114,116,105,64,107,106,108,,109',
'117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,343,,,339,,,66,67,,,68,,,',
',,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65',
'89,103,104,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110',
'112,113,,,251,,,,,,,347,,,115,114,116,105,64,107,106,108,,109,117,118',
',101,102,,,355,,,,,,,,,,,,,,,,,,,,1100,,,250,,,66,67,,,68,,,,,,,,,,',
',,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103',
'104,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111,110,112',
'113,,,251,,,,,,,347,,,115,114,116,105,64,107,106,108,,109,117,118,,101',
'102,,,355,,,,,,,,,,,,,,,,,,,,343,,,250,,,66,67,,,68,,,488,,485,484,483',
'493,486,,,,,,,,,496,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,585,,491',
'82,,89,103,104,77,78,26,,65,504,503,,71,72,497,,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,392',
',,38,,,66,67,,,68,,40,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,',
'88,98,,,,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352,79',
'80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114,116,105',
'64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,1139,',
',250,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,,,,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352,79,80',
',,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114,116,105,64',
'107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,343,,,339',
',,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,',
',,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352,79,80,,,,',
',81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114,116,105,64,107',
'106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,343,,,339,,,66',
'67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77',
'78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346',
'354,111,110,112,113,,,251,,,,,,,347,,,115,114,116,397,64,107,106,398',
',109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,404,,,399,,,250,,,66,67',
',,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78',
'26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346',
'354,111,110,112,113,,,251,,,,,,,347,,,115,114,116,397,64,107,106,398',
',109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,399,,,250,,,66,67,,,68',
',,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,26,82',
'65,89,103,104,71,72,,,,75,,73,74,76,351,352,79,80,,,,,,81,346,354,111',
'110,112,113,,,251,,,,,,,347,,,115,114,116,105,64,107,106,108,,109,117',
'118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,343,,,250,,,66,67,,,68,,,488,',
'485,484,483,493,486,,,,,,,,,496,,99,87,90,91,,92,94,93,95,,,,,88,98',
',,,357,,491,82,,89,103,104,77,78,26,,65,504,503,,71,72,497,,,75,,73',
'74,76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347',
',,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,',
',,,,,,,,,,,,1139,,,250,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,',
'92,94,93,95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74',
'76,351,352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115',
'114,116,105,64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,',
',,,,,,343,,,339,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93',
'95,,,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351',
'352,79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114',
'116,105,64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,',
',,343,,,339,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,77,78,26,82,65,89,103,104,71,72,,,,75,,73,74,76,351,352',
'79,80,,,,,,81,346,354,111,110,112,113,,,251,,,,,,,347,,,115,114,116',
'105,64,107,106,108,,109,117,118,,101,102,,,355,,,,,,,,,,,,,,,,,,,,343',
',,339,,,66,67,,,68,,338,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,',
',,88,98,,,,,,,82,,89,103,104,182,193,183,206,179,199,189,188,209,210',
'204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203',
'202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137',
',,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169',
'155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142',
'164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188,209',
'210,204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208',
'203,202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135',
'137,134,,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,',
',,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158',
'152,150,142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199',
'189,188,209,210,204,187,186,181,207,211,212,191,180,194,198,200,192',
'185,,,,201,208,203,202,195,205,190,178,197,196,,,,,,177,184,175,176',
'172,173,174,135,137,,,136,,,,,,,,166,167,,163,145,146,147,154,151,153',
',,148,149,,,,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170',
'157,158,152,150,142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206',
'179,199,189,188,209,210,204,187,186,181,207,211,212,191,180,194,198',
'200,192,185,,,,201,208,203,202,195,205,190,178,197,196,,,,,,177,184',
'175,176,172,173,174,135,137,,,136,,,,,,,,166,167,,163,145,146,147,154',
'151,153,,,148,149,,,,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162',
'161,170,157,158,152,150,142,164,143,,,171,99,111,110,112,113,,,,,,,',
',,98,,,115,114,116,770,,,488,773,485,484,483,493,486,101,102,,,355,',
',,496,,,,,,,,,,,,,,,,772,,,743,,,491,741,,,742,,,,,501,500,504,503,',
',,497,,,,771,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,',
',82,,89,103,104,,,758,759,,115,114,116,770,,,,773,750,,,,,101,102,,',
'355,496,,,,,,,,,,,,,,,,,,,772,,,743,,,,741,,,742,,745,,,,,,,497,,,,',
',,771,,,,99,751,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89',
'103,104,,,758,759,,115,114,116,770,,,488,773,485,484,483,493,486,101',
'102,,,355,,,,496,,,,,,,,,,,,,,,,772,,,743,,,491,741,,,742,,,,,501,500',
'504,503,,,,497,,,,771,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110',
'112,113,,,82,,89,103,104,,,758,759,,115,114,116,770,,,488,773,485,484',
'483,493,486,101,102,,,355,,,,496,,,,,,,,,,,,,,,,772,,,743,,,491,741',
',,742,,,,,,,504,503,,,,497,,,,771,,,,99,87,90,91,,92,94,93,95,,,,,88',
'98,111,110,112,113,,,82,,89,103,104,,,758,759,,115,114,116,770,,,488',
'773,485,484,483,493,486,101,102,,,355,,,,496,,,,,,,,,,,,,,,,772,,,743',
',,491,741,,,742,,1047,,,,,504,503,,,,497,,,,771,,,,99,87,90,91,,92,94',
'93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,758,759,,115,114',
'116,770,,,488,773,485,484,483,493,486,101,102,,,355,,,,496,,,,,,,,,',
',,,,,,772,,,743,,,491,741,,,742,,,,,,,504,503,,,,497,,,,771,,,,99,87',
'90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,758',
'759,,115,114,116,770,,,,773,750,,,,,101,102,,,355,496,,,,,,,,,,,,,,',
',,,,772,,,743,,,,741,,,742,,745,,,,,,,497,,,,,,,771,,,,99,751,90,91',
',92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,758,759,,115',
'114,116,770,,,,773,750,,,,,101,102,,,355,496,,,,,,,,,,,,,,,,,,,772,',
',743,,,,741,,,742,,745,,,,,,,497,,,,,,,771,,,,99,751,90,91,,92,94,93',
'95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,758,759,,115,114,116',
'770,,,,773,,,,,,101,102,,,355,,,,,,,,,,,,,,,,,,,,772,,,743,,,,741,,',
'742,,,,,,,,,,,,,,,,771,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110',
'112,113,,,82,,89,103,104,,,758,759,,115,114,116,770,,,,773,,,,,,101',
'102,,,355,,,,,,,,,,,,,,,,,,,,772,,,743,,,,741,,,742,,745,,,,,,,,,,,',
',,771,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89',
'103,104,,,758,759,,115,114,116,770,,,,773,,,,,,101,102,,,355,,,,,,,',
',,,,,,,,,,,,772,,,743,,,,741,,,742,,745,,,,,,,,,,,,,,771,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,237,,,,,,82,,89,103,104,,,758,759,182,193',
'183,206,179,199,189,188,209,210,204,187,186,181,207,211,212,191,180',
'194,198,200,192,185,,,,201,208,203,291,290,292,289,178,197,196,,,,,',
'177,184,175,176,286,287,288,284,137,107,106,285,,109,,,,,,166,167,,163',
'145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,296,,,,,,',
',160,159,,144,165,162,161,170,157,158,152,150,142,164,143,,,171,111',
'110,112,113,,,488,,485,484,483,493,486,,,,115,114,116,770,,496,,773',
',,,,,101,102,,,355,,,,,,,,,,491,,,,,,,,,,772,504,503,743,,,497,741,',
',742,,,,,,,,,,,,,,,,771,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,482,',
',,,82,,89,103,104,,,758,759,182,193,183,206,179,199,189,188,209,210',
'204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203',
'202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137',
',,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169',
'155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142',
'164,143,,,171,111,110,112,113,,,,,,,,,,,,,115,114,116,770,,,,773,750',
',,,,101,102,,,355,496,,,,,,,,,,,,,,,,,,,772,,,743,,,,741,,,742,,745',
',,,,,,497,,,,,,,771,,,,99,751,90,91,,92,94,93,95,,,,,88,98,111,110,112',
'113,,,82,,89,103,104,,,758,759,,115,114,116,770,,,,773,750,,,,,101,102',
',,355,496,,,,,,,,,,,,,,,,,,,772,,,743,,,,741,,,742,,745,,,,,,,497,,',
',,,,771,,,,99,751,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82',
',89,103,104,,,758,759,,115,114,116,770,,,,773,,,,,,101,102,,,355,,,',
',,,,,,,,,,,,,,,,772,,,743,,,,741,,,742,,,,,,,,,,,,,,,,771,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,758,759',
',115,114,116,770,,,,773,,,,,,101,102,,,355,,,,,,,,,,,,,,,,,,,,772,,',
'743,,,,741,,,742,,,,,,,,,,,,,,,,771,,,,99,87,90,91,,92,94,93,95,,,,',
'88,98,111,110,112,113,,,82,,89,103,104,,,758,759,,115,114,116,770,,',
',773,,,,,,101,102,,,355,,,,,,,,111,110,112,113,,,,,,,,,772,,,743,115',
'114,116,741,,,742,,745,,,,,101,102,,,355,,,,,771,,,,99,87,90,91,,92',
'94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,758,759,,,,,,,,,,,,99,87,90',
'91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,,,,115',
'114,116,,,,,,,,,,,101,102,,,355,111,110,112,113,,,,,,,,,,,,,115,114',
'116,,,,,,,,,,,101,102,,,355,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95',
',,,,88,98,,,,,,,82,,89,103,104,,,,,,,,,99,87,90,91,,92,94,93,95,,,,',
'88,98,111,110,112,113,,,82,,89,103,104,,,,,,115,114,116,488,,485,484',
'483,493,486,,,,101,102,,,355,496,,,,,,,,,,,488,,485,484,483,493,486',
',,,,491,,,,496,,,,,501,500,504,503,,,,497,,,,,,,,,,491,99,87,90,91,',
'92,94,93,95,,504,503,,88,98,497,,,,,,82,,89,103,104,,,488,482,485,484',
'483,493,486,,488,,485,484,483,493,486,496,,,,,,,,496,,,488,482,485,484',
'483,493,486,,,,,491,,,,496,,,,491,501,500,504,503,,,,497,501,500,504',
'503,,,,497,488,491,485,484,483,493,486,,,,,,504,503,,496,,497,488,,485',
'484,483,493,486,,,,,,,482,,496,,,,491,,482,,,,,,,,,504,503,,,,497,,491',
',482,,,,,,,501,500,504,503,,,,497,,,,,,,,,,,,1211,466,,,1210,,,,,,482',
',166,167,,163,145,146,147,154,151,153,,,148,149,,,482,168,169,155,156',
',,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164',
'143,553,459,171,,554,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148',
'149,,,,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157',
'158,152,150,142,164,143,462,466,171,,461,,,,,,,,166,167,,163,145,146',
'147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159',
',144,165,162,161,170,157,158,152,150,142,164,143,1195,466,171,,1196',
',,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155',
'156,,,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142',
'164,143,725,466,171,,726,,,,,,,,166,167,,163,145,146,147,154,151,153',
',,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159,,144,165,162,161',
'170,157,158,152,150,142,164,143,1193,459,171,,1194,,,,,,,,166,167,,163',
'145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,',
',160,159,,144,165,162,161,170,157,158,152,150,142,164,143,867,466,171',
',866,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169',
'155,156,,,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150',
'142,164,143,723,459,171,,724,,,,,,,,166,167,,163,145,146,147,154,151',
'153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159,,144,165,162',
'161,170,157,158,152,150,142,164,143,455,459,171,,456,,,,,,,,166,167',
',163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,303,',
',,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,803,459',
'171,,804,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168',
'169,155,156,,,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152',
'150,142,164,143,806,466,171,,807,,,,,,,,166,167,,163,145,146,147,154',
'151,153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159,,144,165',
'162,161,170,157,158,152,150,142,164,143,832,459,171,,833,,,,,,,,166',
'167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,303',
',,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,864',
'459,171,,865,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,',
',,168,169,155,156,,,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158',
'152,150,142,164,143,834,466,171,,835,,,,,,,,166,167,,163,145,146,147',
'154,151,153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159,,144',
'165,162,161,170,157,158,152,150,142,164,143,553,459,171,,554,,,,,,,',
'166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,',
',,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143',
'837,466,171,,838,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149',
',,,168,169,155,156,,,,,,303,,,,,,,,160,159,,144,165,162,161,170,157',
'158,152,150,142,164,143,723,459,171,,724,,,,,,,,166,167,,163,145,146',
'147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,303,,,,,,,,160,159',
',144,165,162,161,170,157,158,152,150,142,164,143,725,466,171,,726,,',
',,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156',
',,,,,303,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164',
'143,,,171' ]
        racc_action_table = arr = ::Array.new(28951, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'461,348,1010,845,518,390,389,461,461,461,512,512,781,461,461,731,461',
'1052,926,833,835,1080,921,986,461,1082,414,622,413,1229,440,628,832',
'498,752,622,461,461,830,461,461,461,461,461,1097,1098,1101,381,382,393',
'740,498,752,990,23,740,1083,1083,990,740,1052,731,921,518,926,348,461',
'461,461,461,461,461,461,461,461,461,461,461,461,461,550,550,461,461',
'461,835,461,461,348,440,461,1158,414,461,413,23,638,638,461,781,461',
'3,461,461,512,461,461,461,461,461,105,461,845,461,390,389,619,105,105',
'105,1010,1193,105,105,105,1010,105,461,833,835,461,461,986,461,105,461',
'105,105,105,1080,628,832,461,1082,1080,461,105,105,1082,105,105,105',
'105,105,1194,1195,830,1215,393,830,973,830,1097,1098,1101,381,382,1097',
'1098,1101,381,382,1047,69,550,9,105,105,105,105,105,105,105,105,105',
'105,105,105,105,105,638,922,105,105,105,638,105,105,817,12,105,817,386',
'105,105,806,105,386,105,1158,105,19,105,105,1158,105,105,105,105,105',
'619,105,108,105,240,619,973,922,241,108,108,108,1195,1196,108,108,108',
'105,108,1193,105,105,105,105,1193,105,108,105,108,108,108,20,105,14',
'1047,105,834,803,108,108,69,108,108,108,108,108,973,19,15,973,806,806',
'1194,1195,804,1215,17,1194,1195,243,1215,973,1085,240,1085,813,813,241',
'108,108,108,108,108,108,108,108,108,108,108,108,108,108,742,27,108,108',
'108,20,108,108,1196,806,108,1000,806,108,108,1120,108,742,108,834,108',
'803,108,108,806,108,108,108,108,108,31,108,726,108,355,355,243,42,804',
'726,726,726,48,48,726,726,726,108,726,1196,108,108,108,108,1196,108',
'726,108,726,726,726,803,108,834,803,108,697,697,726,726,1000,726,726',
'726,726,726,803,813,804,1120,1120,804,655,284,925,573,249,1213,925,941',
'284,399,45,804,31,399,1120,1213,726,726,726,726,726,726,726,726,726',
'726,726,726,726,726,355,355,726,726,726,31,726,726,48,48,726,723,409',
'726,726,653,726,292,726,53,726,213,726,726,292,726,726,726,726,726,249',
'726,724,726,655,655,284,573,573,573,415,941,941,941,655,408,226,726',
'410,917,726,726,726,726,573,726,412,726,941,725,455,248,726,228,865',
'726,725,725,725,232,723,725,725,725,391,725,409,409,409,653,653,391',
'292,725,725,725,725,725,864,653,391,724,16,16,242,725,725,456,725,725',
'725,725,725,244,415,415,415,455,917,408,408,408,410,410,410,411,44,248',
'245,455,412,412,412,865,251,725,725,725,725,725,725,725,725,725,725',
'725,725,725,725,391,939,725,725,725,456,725,725,864,798,725,939,287',
'725,725,302,725,456,725,287,725,798,725,725,44,725,725,725,725,725,866',
'725,725,725,1183,1183,44,866,866,866,411,411,411,866,866,377,866,725',
'377,939,725,725,725,725,866,725,283,725,316,5,317,939,725,283,5,725',
'866,866,320,866,866,866,866,866,818,818,332,287,231,1180,231,231,231',
'231,231,134,1180,285,772,333,134,134,772,231,285,1180,866,866,866,866',
'866,866,866,866,866,866,866,866,866,866,335,286,866,866,866,231,866',
'866,286,336,866,283,29,866,231,231,231,231,866,29,866,231,866,866,337',
'866,866,866,866,866,328,866,462,866,1180,328,343,85,506,462,462,462',
'285,506,346,462,462,866,462,85,866,866,347,866,349,866,462,462,350,85',
'373,231,866,373,374,866,286,374,462,462,354,462,462,462,462,462,1150',
'29,356,1150,641,1099,641,641,641,641,641,288,1099,359,755,755,380,380',
'288,641,363,1099,462,462,462,462,462,462,462,462,462,462,462,462,462',
'462,365,43,462,462,462,641,462,462,371,375,462,21,289,462,641,641,641',
'641,462,289,462,641,462,462,359,462,462,462,462,462,376,462,462,462',
'1099,675,359,378,387,966,288,966,966,966,966,966,388,462,43,290,462',
'462,398,462,966,462,290,291,21,867,43,641,462,392,291,462,867,867,867',
'694,21,394,867,867,403,867,966,289,423,694,429,431,675,867,867,966,966',
'966,966,432,439,434,966,437,675,867,867,439,867,867,867,867,867,441',
'398,451,439,453,401,454,463,398,694,694,290,401,398,694,966,469,398',
'470,291,473,401,867,867,867,867,867,867,867,867,867,867,867,867,867',
'867,398,474,867,867,867,475,867,867,54,478,867,479,480,867,490,54,439',
'502,867,505,867,508,867,867,54,867,867,867,867,867,398,867,867,867,401',
'514,340,522,523,530,531,342,341,340,933,532,533,867,342,341,867,867',
'340,867,933,867,631,342,341,558,559,560,867,631,564,867,215,215,215',
'215,215,215,631,54,580,215,215,581,584,586,215,837,215,215,215,215,215',
'215,215,591,595,604,933,605,215,215,215,215,215,215,215,340,606,215',
'933,616,342,341,620,215,215,215,215,215,215,215,215,215,215,215,215',
'631,215,215,215,18,215,215,215,215,215,590,18,837,621,360,51,51,590',
'623,837,18,360,650,658,837,660,590,667,837,215,360,676,215,681,686,215',
'215,344,688,215,690,215,708,709,344,215,711,837,718,529,727,51,51,344',
'215,736,744,745,746,215,215,215,215,775,215,215,215,215,778,18,780,786',
'215,215,787,590,788,837,790,360,215,529,215,215,215,529,529,215,215',
'836,836,836,836,836,836,792,800,802,836,836,805,808,344,836,397,836',
'836,836,836,836,836,836,578,578,578,578,578,836,836,836,836,836,836',
'836,809,907,836,907,907,907,812,907,836,836,836,836,836,836,836,836',
'836,836,836,836,820,836,836,836,239,836,836,836,836,836,838,239,397',
'826,1138,827,831,838,907,397,239,1138,838,840,397,844,838,907,397,836',
'1138,846,836,861,863,836,836,807,872,836,885,836,888,889,807,836,892',
'397,894,807,897,646,646,807,836,646,646,646,898,836,836,836,836,900',
'836,836,836,836,901,239,903,906,836,836,919,838,927,397,928,1138,836',
'932,836,836,836,935,940,836,836,233,233,233,233,233,233,959,962,963',
'233,233,972,977,807,233,980,233,233,233,233,233,233,233,25,987,989,996',
'997,233,233,233,233,233,233,233,998,710,233,710,710,710,999,710,233',
'233,233,233,233,233,233,233,233,233,233,233,1025,233,233,233,1026,233',
'233,233,233,233,25,25,25,25,25,25,25,25,25,25,25,1031,25,25,1036,1037',
'25,25,1038,233,1039,25,233,1125,1040,233,233,1041,1045,233,1046,233',
'25,1125,25,233,25,25,1049,25,25,25,25,25,233,25,1053,1060,1065,233,233',
'233,233,1066,233,233,233,233,1068,1069,1070,1072,233,233,1073,25,1125',
'1125,1074,1089,233,1125,233,233,233,1100,1103,233,233,991,991,991,991',
'991,991,1104,1105,1106,991,991,1117,1136,1139,991,1148,991,991,991,991',
'991,991,991,8,8,8,8,8,991,991,991,991,991,991,991,1149,1154,991,1164',
'1165,1167,1170,444,991,991,991,991,991,991,991,991,991,991,991,991,1173',
'991,991,991,1174,991,991,991,991,991,444,444,444,444,444,444,444,444',
'444,444,444,1175,444,444,1176,1178,444,444,1192,991,1197,771,991,771',
'771,991,991,771,1199,991,1210,991,444,1211,444,991,444,444,1217,444',
'444,444,444,444,991,444,1218,1219,1220,991,991,991,991,1,991,991,991',
'991,771,,,,991,991,,444,,444,,,991,,991,991,991,,,991,991,1096,1096',
'1096,1096,1096,1096,,,,1096,1096,,,,1096,,1096,1096,1096,1096,1096,1096',
'1096,331,331,331,331,331,1096,1096,1096,1096,1096,1096,1096,,,1096,',
',,,689,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,',
'1096,1096,1096,,1096,1096,1096,1096,1096,689,689,689,689,689,689,689',
'689,689,689,689,,689,689,,,689,689,,1096,,,1096,,,1096,1096,,,1096,',
'1096,689,,689,1096,689,689,,689,689,689,689,689,1096,689,,,,1096,1096',
'1096,1096,,1096,1096,1096,1096,,,,,1096,1096,,689,,,,,1096,,1096,1096',
'1096,,,1096,1096,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,370,370,370',
'370,370,2,2,2,2,2,2,2,,,2,,,,,450,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2',
'2,2,2,2,450,450,450,450,450,450,450,450,450,450,450,,450,450,,,450,450',
',2,,,2,,,2,2,,,2,,2,450,,450,2,450,450,,450,450,450,450,450,2,450,,',
',2,2,2,2,,2,2,2,2,,,,,2,2,,450,,,,,2,,2,2,2,,,2,2,639,639,639,639,639',
'639,,,,639,639,,,,639,,639,639,639,639,639,639,639,,,,,,639,639,639',
'639,639,639,639,,,639,,,,,719,639,639,639,639,639,639,639,639,639,639',
'639,639,,639,639,639,,639,639,639,639,639,719,719,719,719,719,719,719',
'719,719,719,719,,719,719,,,719,719,,639,,,639,,,639,639,,,639,,639,719',
',719,639,719,719,,719,719,719,719,719,639,719,,,,639,639,639,639,,639',
'639,639,639,,,,,639,639,,719,,,,,639,,639,639,639,,,639,639,1062,1062',
'1062,1062,1062,1062,,,,1062,1062,,,,1062,,1062,1062,1062,1062,1062,1062',
'1062,,,,,,1062,1062,1062,1062,1062,1062,1062,,1190,1062,1190,1190,1190',
',1190,1062,1062,1062,1062,1062,1062,1062,1062,1062,1062,1062,1062,,1062',
'1062,1062,,1062,1062,1062,1062,1062,869,869,869,869,869,869,869,869',
'869,869,869,,869,869,,,869,869,,1062,,,1062,,,1062,1062,,,1062,,1062',
'869,,869,1062,869,869,,869,869,869,869,869,1062,869,,,,1062,1062,1062',
'1062,,1062,1062,1062,1062,,,,,1062,1062,,869,,,,,1062,,1062,1062,1062',
',,1062,1062,967,967,967,967,967,967,,,,967,967,,,,967,,967,967,967,967',
'967,967,967,,,,,,967,967,967,967,967,967,967,,1092,967,1092,1092,1092',
',1092,967,967,967,967,967,967,967,967,967,967,967,967,,967,967,967,',
'967,967,967,967,967,314,314,314,314,314,314,314,314,314,314,314,,314',
'314,,,314,314,,967,,,967,,,967,967,,,967,,967,314,,314,967,314,314,',
'314,314,314,314,314,967,314,,,,967,967,967,967,,967,967,967,967,,,,',
'967,967,,314,,,,,967,,967,967,967,,,967,967,369,369,369,369,369,369',
',,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,,369,369,369,369',
'369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369,369,369',
',369,369,369,,369,369,369,369,369,547,547,547,547,547,547,547,547,547',
'547,547,,547,547,,,547,547,,369,,,369,,,369,369,,,369,,369,547,,547',
'369,547,547,,547,547,547,547,547,369,547,,,,369,369,369,369,,369,369',
'369,369,,,,,369,369,547,547,,,,,369,,369,369,369,,,369,369,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,1061,1061,1061,1061,1061',
'1061,1061,1061,1061,1061,1061,,1061,1061,,,1061,1061,,250,,,250,,,250',
'250,,,250,,250,1061,,1061,250,1061,1061,,1061,1061,1061,1061,1061,250',
'1061,,,,250,250,250,250,,250,250,250,250,,,,,250,250,,1061,,,,,250,',
'250,250,250,,,250,250,852,852,852,852,852,852,,,,852,852,,,,852,,852',
'852,852,852,852,852,852,,,,,,852,852,852,852,852,852,852,,,852,,,,,',
'852,852,852,852,852,852,852,852,852,852,852,852,,852,852,852,,852,852',
'852,852,852,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,',
'1005,1005,,,1005,1005,,852,,,852,,,852,852,,,852,,852,1005,,1005,852',
'1005,1005,,1005,1005,1005,1005,1005,852,1005,,,,852,852,852,852,,852',
'852,852,852,,,,,852,852,,1005,,,,,852,,852,852,852,,,852,852,227,227',
'227,227,227,227,,,,227,227,,,,227,,227,227,227,227,227,227,227,,,,,',
'227,227,227,227,227,227,227,,,227,,,,,,227,227,227,227,227,227,227,227',
'227,227,227,227,,227,227,227,,227,227,227,227,227,602,602,602,602,602',
'602,602,602,602,602,602,,602,602,,,602,602,,227,,,227,,,227,227,,,227',
',227,602,,602,227,602,602,,602,602,602,602,602,227,602,,,,227,227,227',
'227,,227,227,227,227,,,,,227,227,,602,,,,,227,,227,227,227,,,227,227',
'841,841,841,841,841,841,,,,841,841,,,,841,,841,841,841,841,841,841,841',
',,,,,841,841,841,841,841,841,841,,,841,,,,,,841,841,841,841,841,841',
'841,841,841,841,841,841,,841,841,841,,841,841,841,841,841,1028,1028',
'1028,1028,1028,1028,1028,1028,1028,1028,1028,,1028,1028,,,1028,1028',
',841,,,841,,,841,841,,,841,,841,1028,,1028,841,1028,1028,,1028,1028',
'1028,1028,1028,841,1028,,,,841,841,841,841,,841,841,841,841,,,,,841',
'841,,1028,,,,,841,,841,841,841,,,841,841,1007,1007,1007,1007,1007,1007',
',,,1007,1007,,,,1007,,1007,1007,1007,1007,1007,1007,1007,,,,,,1007,1007',
'1007,1007,1007,1007,1007,,,1007,,,,,,1007,1007,1007,1007,1007,1007,1007',
'1007,1007,1007,1007,1007,,1007,1007,1007,,1007,1007,1007,1007,1007,1027',
'1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,,1027,1027,,,1027',
'1027,,1007,,,1007,,,1007,1007,,,1007,,1007,1027,,1027,1007,1027,1027',
',1027,1027,1027,1027,1027,1007,1027,,,,1007,1007,1007,1007,,1007,1007',
'1007,1007,,,,,1007,1007,,1027,,,,,1007,,1007,1007,1007,,,1007,1007,1091',
'1091,1091,1091,1091,1091,,,,1091,1091,,,,1091,,1091,1091,1091,1091,1091',
'1091,1091,,,,,,1091,1091,1091,1091,1091,1091,1091,,,1091,,,,,,1091,1091',
'1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,,1091,1091,1091,,1091',
'1091,1091,1091,1091,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004',
'1004,,1004,1004,,,1004,1004,,1091,,,1091,,,1091,1091,,,1091,,1091,1004',
',1004,1091,1004,1004,,1004,1004,1004,1004,1004,1091,1004,,,,1091,1091',
'1091,1091,,1091,1091,1091,1091,,,,,1091,1091,,1004,,,,,1091,,1091,1091',
'1091,,,1091,1091,1140,1140,1140,1140,1140,1140,,,,1140,1140,,,,1140',
',1140,1140,1140,1140,1140,1140,1140,,,,,,1140,1140,1140,1140,1140,1140',
'1140,,491,1140,491,491,491,,491,1140,1140,1140,1140,1140,1140,1140,1140',
'1140,1140,1140,1140,,1140,1140,1140,,1140,1140,1140,1140,1140,706,,706',
'706,706,,706,,491,,1107,,1107,1107,1107,,1107,491,,1140,,,1140,,,1140',
'1140,,544,1140,,1140,,,,1140,,706,,528,,,,,1140,,706,1107,,1140,1140',
'1140,1140,,1140,1140,1140,1140,,,544,,1140,1140,544,544,,544,544,,1140',
'528,1140,1140,1140,528,528,1140,1140,618,618,618,618,618,618,,,,618',
'618,,,,618,,618,618,618,618,618,618,618,,,,,,618,618,618,618,618,618',
'618,,1108,618,1108,1108,1108,,1108,618,618,618,618,618,618,618,618,618',
'618,618,618,,618,618,618,,618,618,618,618,618,546,546,546,546,546,546',
'546,546,1108,546,546,,,,,,546,546,,618,,,618,,,618,618,,543,618,,618',
'546,,546,618,546,546,,546,546,546,546,546,618,546,,,,618,618,618,618',
',618,618,618,618,,,543,,618,618,543,543,,543,543,,618,,618,618,618,',
',618,618,615,615,615,615,615,615,,,,615,615,,,,615,,615,615,615,615',
'615,615,615,,,,,,615,615,615,615,615,615,615,,908,615,908,908,908,,908',
'615,615,615,615,615,615,615,615,615,615,615,615,,615,615,615,,615,615',
'615,615,615,601,,,,,,,,908,,,,,,,,601,601,,615,,,615,,,615,615,,,615',
',615,601,,601,615,601,601,,601,601,,,601,615,601,,,,615,615,615,615',
',615,615,615,615,,,,,615,615,,,,,,,615,,615,615,615,,,615,615,887,887',
'887,887,887,887,,,,887,887,,,,887,,887,887,887,887,887,887,887,,,,,',
'887,887,887,887,887,887,887,,,887,,,,,,887,887,887,887,887,887,887,887',
'887,887,887,887,,887,887,887,,887,887,887,887,887,545,545,545,545,545',
'545,545,,,545,545,,,,,,545,545,,887,,,887,,,887,887,,,887,,887,545,',
'545,887,545,545,,545,545,545,545,545,887,545,,,,887,887,887,887,,887',
'887,887,887,,,,,887,887,,,,,,,887,,887,887,887,,,887,887,339,339,339',
'339,339,339,,,,339,339,,,,339,,339,339,339,339,339,339,339,,,,,,339',
'339,339,339,339,339,339,,,339,,,,,,339,339,339,339,339,339,339,339,339',
'339,339,339,,339,339,339,,339,339,339,339,339,526,526,526,526,526,526',
'526,526,526,526,526,,526,526,,,526,526,,339,,,339,,,339,339,,,339,,339',
'526,,526,339,526,526,,526,526,526,526,526,339,526,,,,339,339,339,339',
',339,339,339,339,,,,,339,339,,,,,,,339,,339,339,339,,,339,339,1090,1090',
'1090,1090,1090,1090,,,,1090,1090,,,,1090,,1090,1090,1090,1090,1090,1090',
'1090,,,,,,1090,1090,1090,1090,1090,1090,1090,,,1090,,,,,,1090,1090,1090',
'1090,1090,1090,1090,1090,1090,1090,1090,1090,,1090,1090,1090,,1090,1090',
'1090,1090,1090,542,542,542,542,542,542,542,,,542,542,,,,,,542,542,,1090',
',,1090,,,1090,1090,,,1090,,1090,542,,542,1090,542,542,,542,542,542,542',
'542,1090,542,,,,1090,1090,1090,1090,,1090,1090,1090,1090,,,,,1090,1090',
',,,,,,1090,,1090,1090,1090,,,1090,1090,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,541,541,541',
'541,541,541,541,,,541,541,,,,,,541,541,,38,,,38,,,38,38,,,38,,38,541',
',541,38,541,541,,541,541,541,541,541,38,541,,,,38,38,38,38,,38,38,38',
'38,,,,,38,38,,,,,,,38,,38,38,38,,,38,38,985,985,985,985,985,985,,,,985',
'985,,,,985,,985,985,985,985,985,985,985,,,,,,985,985,985,985,985,985',
'985,,,985,,,,,,985,985,985,985,985,985,985,985,985,985,985,985,,985',
'985,985,,985,985,985,985,985,540,540,540,540,540,540,540,,,540,540,',
',,,,540,540,,985,,,985,,,985,985,,,985,,985,540,,540,985,540,540,,540',
'540,540,540,540,985,540,,,,985,985,985,985,,985,985,985,985,,,,,985',
'985,,,,,,,985,,985,985,985,,,985,985,1184,1184,1184,1184,1184,1184,',
',,1184,1184,,,,1184,,1184,1184,1184,1184,1184,1184,1184,,,,,,1184,1184',
'1184,1184,1184,1184,1184,,,1184,,,,,,1184,1184,1184,1184,1184,1184,1184',
'1184,1184,1184,1184,1184,,1184,1184,1184,,1184,1184,1184,1184,1184,361',
'361,361,361,361,361,361,361,361,361,361,,361,361,,,361,361,,1184,,,1184',
',,1184,1184,,,1184,,1184,361,,361,1184,361,361,,361,361,361,361,361',
'1184,361,,,,1184,1184,1184,1184,,1184,1184,1184,1184,,,,,1184,1184,',
',,,,,1184,,1184,1184,1184,,,1184,1184,385,385,385,385,385,385,,,,385',
'385,,,,385,,385,385,385,385,385,385,385,,,,,,385,385,385,385,385,385',
'385,,,385,,,,,,385,385,385,385,385,385,385,385,385,385,385,385,,385',
'385,385,,385,385,385,385,385,539,539,539,539,539,539,539,,,539,539,',
',,,,539,539,,385,,,385,,,385,385,,,385,,385,539,,539,385,539,539,,539',
'539,539,539,539,385,539,,,,385,385,385,385,,385,385,385,385,,,,,385',
'385,,,,,,,385,,385,385,385,,,385,385,384,384,384,384,384,384,,,,384',
'384,,,,384,,384,384,384,384,384,384,384,,,,,,384,384,384,384,384,384',
'384,,,384,,,,,,384,384,384,384,384,384,384,384,384,384,384,384,,384',
'384,384,,384,384,384,384,384,538,538,538,538,538,538,538,,,538,538,',
',,,,538,538,,384,,,384,,,384,384,,,384,,384,538,,538,384,538,538,,538',
'538,538,538,538,384,538,,,,384,384,384,384,,384,384,384,384,,,,,384',
'384,,,,,,,384,,384,384,384,,,384,384,132,132,132,132,132,132,,,,132',
'132,,,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132,132',
'132,,,132,,,,,,132,132,132,132,132,132,132,132,132,132,132,132,,132',
'132,132,,132,132,132,132,132,527,527,527,527,527,527,527,527,527,527',
'527,,527,527,,,527,527,,132,,,132,,,132,132,,,132,,132,527,,527,132',
'527,527,,527,527,527,527,527,132,527,,,,132,132,132,132,,132,132,132',
'132,,,,,132,132,,,,,,,132,,132,132,132,,,132,132,334,334,334,334,334',
'334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334',
'334,334,334,334,,,334,,,,,,334,334,334,334,334,334,334,334,334,334,334',
'334,,334,334,334,,334,334,334,334,334,548,,,,,,,,,,,,,,,,548,548,,334',
',,334,,,334,334,,,334,,334,548,,548,334,548,548,,548,548,,,548,334,548',
',,,334,334,334,334,,334,334,334,334,,,,,334,334,,,,914,914,914,334,914',
'334,334,334,914,914,334,334,,914,,914,914,914,914,914,914,914,,,,,,914',
'914,914,914,914,914,914,,,914,,,,,,,914,,,914,914,914,914,914,914,914',
'914,,914,914,914,,914,914,914,914,914,537,537,537,537,537,537,537,,',
'537,537,,,,,,537,537,,914,,,914,,,914,914,,,914,,,537,,537,914,537,537',
',537,537,537,537,537,914,537,,,,914,914,914,914,,914,914,914,914,,,',
',914,914,,,,915,915,915,914,915,914,914,914,915,915,914,914,,915,,915',
'915,915,915,915,915,915,,,,,,915,915,915,915,915,915,915,,,915,,,,,',
',915,,,915,915,915,915,915,915,915,915,,915,915,915,,915,915,915,915',
'915,362,362,362,362,362,362,362,362,362,362,362,,362,362,,,362,362,',
'915,,,915,,,915,915,,,915,,,362,,362,915,362,362,,362,362,362,362,362',
'915,362,,,,915,915,915,915,,915,915,915,915,,,,,915,915,,,,916,916,916',
'915,916,915,915,915,916,916,915,915,,916,,916,916,916,916,916,916,916',
',,,,,916,916,916,916,916,916,916,,,916,,,,,,,916,,,916,916,916,916,916',
'916,916,916,,916,916,916,,916,916,916,916,916,534,,,,,,,,,,,,,,,,534',
'534,,916,,,916,,,916,916,,,916,,,534,,534,916,534,534,,534,534,,,,916',
',,,,916,916,916,916,,916,916,916,916,,,,,916,916,,,,261,261,261,916',
'261,916,916,916,261,261,916,916,,261,,261,261,261,261,261,261,261,,',
',,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261',
'261,261,261,,261,261,261,,261,261,261,261,261,535,,,,,,,,,,,,,,,,535',
'535,,261,,,261,,,261,261,,,261,,,535,,535,261,535,535,,535,535,,,,261',
',,,,261,261,261,261,,261,261,261,261,,,,,261,261,,,,729,729,729,261',
'729,261,261,261,729,729,261,261,,729,,729,729,729,729,729,729,729,,',
',,,729,729,729,729,729,729,729,,,729,,,,,,,729,,,729,729,729,729,729',
'729,729,729,,729,729,729,,729,729,729,729,729,536,,,,,,,,,,,,,,,,536',
'536,,729,,,729,,,729,729,,,729,,,536,,,729,536,536,,536,536,,,,729,',
',,,729,729,729,729,,729,729,729,729,,,,,729,729,,,,325,325,325,729,325',
'729,729,729,325,325,729,729,,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,325,,325,325,325',
'325,,,,,325,325,,,,728,728,728,325,728,325,325,325,728,728,325,325,',
'728,,728,728,728,728,728,728,728,,,,,,728,728,728,728,728,728,728,,',
'728,,,,,,,728,,,728,728,728,728,728,728,728,728,,728,728,728,,728,728',
'728,728,728,,,,,,,,,,,,,,,,,,,,728,,,728,,,728,728,,,728,,,,,,728,,',
',,,,,,728,,,,,728,728,728,728,,728,728,728,728,,,,,728,728,,,,260,260',
'260,728,260,728,728,728,260,260,728,728,,260,,260,260,260,260,260,260',
'260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260,260',
'260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,',
',260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260,260',
',260,260,260,260,,,,,260,260,,,,259,259,259,260,259,260,260,260,259',
'259,260,260,,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',
',,,258,258,258,259,258,259,259,259,258,258,259,259,,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,,,,257,257,257,258,257,258',
'258,258,257,257,258,258,,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,,,,256,256,256,257,256,257,257,257,256,256,257,257,,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,330,330,330,330,330,,,,330,330,,,,330,,330,330,330',
'330,330,330,330,,,,,,330,330,330,330,330,330,330,,,330,,,,,,330,330',
',330,330,330,330,330,330,330,330,330,,330,330,330,,330,330,330,330,330',
',,,,,,,,,,,,,,,,,,,330,,,330,,,330,330,,,330,,330,,,,330,,,,,,,,,330',
',,,,330,330,330,330,,330,330,330,330,,,,,330,330,,,,704,704,704,330',
'704,330,330,330,704,704,330,330,,704,,704,704,704,704,704,704,704,,',
',,,704,704,704,704,704,704,704,,,704,,,,,,,704,,,704,704,704,704,704',
'704,704,704,,704,704,704,,704,704,704,704,704,,,,,,,,,,,,,,,,,,,,704',
',,704,,,704,704,,,704,,,,,,704,,,,,,,,,704,,,,,704,704,704,704,,704',
'704,704,704,,,,,704,704,,,,691,691,691,704,691,704,704,704,691,691,704',
'704,,691,,691,691,691,691,691,691,691,,,,,,691,691,691,691,691,691,691',
',,691,,,,,,,691,,,691,691,691,691,691,691,691,691,,691,691,691,,691',
'691,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,,691,,',
',691,,,,,,,,,691,,,,,691,691,691,691,,691,691,691,691,,,,,691,691,,',
',255,255,255,691,255,691,691,691,255,255,691,691,,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,,,,254,254,254,255,254,255,255',
'255,254,254,255,255,,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,,,,685,685,685,254,685,254,254,254,685,685,254,254,,685,,685',
'685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685,,,685,,,,,',
',685,,,685,685,685,685,685,685,685,685,,685,685,685,,685,685,685,685',
'685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685,,,,,,,,,685',
',,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,684,684,684,685',
'684,685,685,685,684,684,685,685,,684,,684,684,684,684,684,684,684,,',
',,,684,684,684,684,684,684,684,,,684,,,,,,,684,,,684,684,684,684,684',
'684,684,684,,684,684,684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684',
',,684,,,684,684,,,684,,,,,,684,,,,,,,,,684,,,,,684,684,684,684,,684',
'684,684,684,,,,,684,684,,,,680,680,680,684,680,684,684,684,680,680,684',
'684,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680,680,680,680',
',,680,,,,,,,680,,,680,680,680,680,680,680,680,680,,680,680,680,,680',
'680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680',
',,,,,,,,680,,,,,680,680,680,680,,680,680,680,680,,,,,680,680,,,,679',
'679,679,680,679,680,680,680,679,679,680,680,,679,,679,679,679,679,679',
'679,679,,,,,,679,679,679,679,679,679,679,,,679,,,,,,,679,,,679,679,679',
'679,679,679,679,679,,679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,',
',,,,,679,,,679,,,679,679,,,679,,,,,,679,,,,,,,,,679,,,,,679,679,679',
'679,,679,679,679,679,,,,,679,679,,,,678,678,678,679,678,679,679,679',
'678,678,679,679,,678,,678,678,678,678,678,678,678,,,,,,678,678,678,678',
'678,678,678,,,678,,,,,,,678,,,678,678,678,678,678,678,678,678,678,678',
'678,678,,678,678,678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678',
',,678,,,,678,,678,,,678,,,,,,678,,,,,678,678,678,678,,678,678,678,678',
',,,,678,678,,,,677,677,677,678,677,678,678,678,677,677,678,678,,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',
',,,950,950,950,677,950,677,677,677,950,950,677,677,,950,,950,950,950',
'950,950,950,950,,,,,,950,950,950,950,950,950,950,,,950,,,,,,,950,,,950',
'950,950,950,950,950,950,950,,950,950,950,,950,950,950,950,950,,,,,,',
',,,,,,,,,,,,,950,,,950,,,950,950,,,950,,,,,,950,,,,,,,,,950,,,,,950',
'950,950,950,,950,950,950,950,,,,,950,950,,,,956,956,956,950,956,950',
'950,950,956,956,950,950,,956,,956,956,956,956,956,956,956,,,,,,956,956',
'956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956,956,956,956',
',956,956,956,,956,956,956,956,956,,,,,,,,,,,,,,,,,,,,956,,,956,,,956',
'956,,,956,,,,,,956,,,,,,,,,956,,,,,956,956,956,956,,956,956,956,956',
',,,,956,956,,,,,,,956,,956,956,956,32,,956,956,,,,32,32,32,,,32,32,32',
',32,,,,,,,,32,32,32,32,,,,,,,,,32,32,,32,32,32,32,32,,,,,,,,,,,,,,,',
',,,,,,,32,32,32,32,32,32,32,32,32,32,32,32,32,32,,,32,32,32,,,32,,32',
'32,,,32,32,,32,,32,,32,,32,32,,32,32,32,32,32,33,32,32,32,,,,33,33,33',
',,33,33,33,,33,32,,,32,32,,32,33,32,33,33,,,,,32,,,,33,33,,33,33,33',
'33,33,,,,,,,,,,,,,,,,,,,,,,,33,33,33,33,33,33,33,33,33,33,33,33,33,33',
',,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,,33,33,,33,33,33,33,33,,33',
',33,,,,,,,,,,,,,,33,,,33,33,,33,,33,674,674,674,,674,,33,,674,674,,',
',674,,674,674,674,674,674,674,674,,,,,,674,674,674,674,674,674,674,',
',674,,,,,,,674,,,674,674,674,674,674,674,674,674,,674,674,674,,674,674',
'674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,,,674,674,,,674,,,,,,674,,',
',,,,,,674,,,,,674,674,674,674,,674,674,674,674,,,,,674,674,,,,34,34',
'34,674,34,674,674,674,34,34,674,674,,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,673,673,673,673,673,,,,673,673,,,,673,,673,673,673,673,673',
'673,673,,,,,,673,673,673,673,673,673,673,,,673,,,,,,673,673,,673,673',
'673,673,673,673,673,673,673,,673,673,673,,673,673,673,673,673,,,,,,',
',,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,,,,673,,,,,,,,,673,,,,,673',
'673,673,673,,673,673,673,673,,,,,673,673,,,,979,979,979,673,979,673',
'673,673,979,979,673,673,,979,,979,979,979,979,979,979,979,,,,,,979,979',
'979,979,979,979,979,,,979,,,,,,,979,,,979,979,979,979,979,979,979,979',
',979,979,979,,979,979,979,979,979,,,,,,,,,,,,,,,,,,,,979,,,979,,,979',
'979,,,979,,,,,,979,,,,,,,,,979,,,,,979,979,979,979,,979,979,979,979',
',,,,979,979,,,,670,670,670,979,670,979,979,979,670,670,979,979,,670',
',670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670',
',,,,,,670,,,670,670,670,670,670,670,670,670,670,670,670,670,,670,670',
'670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,670,,670,',
'670,,,670,,,,,,670,,,,,670,670,670,670,,670,670,670,670,,,,,670,670',
',,,984,984,984,670,984,670,670,670,984,984,670,670,,984,,984,984,984',
'984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984',
'984,984,984,984,984,984,984,,984,984,984,,984,984,984,984,984,,,,,,',
',,,,,,,,,,,,,984,,,984,,,984,984,,,984,,984,,,,984,,,,,,,,,984,,,,,984',
'984,984,984,,984,984,984,984,,,,,984,984,,,,669,669,669,984,669,984',
'984,984,669,669,984,984,,669,,669,669,669,669,669,669,669,,,,,,669,669',
'669,669,669,669,669,,,669,,,,,,,669,,,669,669,669,669,669,669,669,669',
',669,669,669,,669,669,669,669,669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669',
'669,,,669,,,,,,669,,,,,,,,,669,,,,,669,669,669,669,,669,669,669,669',
',,,,669,669,,,,668,668,668,669,668,669,669,669,668,668,669,669,,668',
',668,668,668,668,668,668,668,,,,,,668,668,668,668,668,668,668,,,668',
',,,,,,668,,,668,668,668,668,668,668,668,668,,668,668,668,,668,668,668',
'668,668,,,,,,,,,,,,,,,,,,,,668,,,668,,,668,668,,,668,,668,,,,668,,,',
',,,,,668,,,,,668,668,668,668,,668,668,668,668,,,,,668,668,,,,,,,668',
',668,668,668,,,668,668,666,666,666,666,666,,,,666,666,,,,666,,666,666',
'666,666,666,666,666,,,,,,666,666,666,666,666,666,666,,,666,,,,,,666',
'666,,666,666,666,666,666,666,666,666,666,,666,666,666,,666,666,666,666',
'666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666,,,666,,666,,,,666,,,,,,,',
',666,,,,,666,666,666,666,,666,666,666,666,,,,,666,666,,,,247,247,247',
'666,247,666,666,666,247,247,666,666,,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,,,,35,35,35,247,35,247,247,247,35,35,247,247',
',35,,35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35,,,,,,,35,,',
'35,35,35,35,35,35,35,35,35,35,35,35,,35,35,35,35,35,,,,,,,,,,,,,,,,',
',,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35,,,,,,35,,,,,35,35,35,35,,35',
'35,35,35,,,,,35,35,,,,36,36,36,35,36,35,35,35,36,36,35,35,,36,,36,36',
'36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36',
'36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,',
',36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,',
',,36,36,,,,635,635,635,36,635,36,36,36,635,635,36,36,,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,,,,1003,1003,1003',
'635,1003,635,635,635,1003,1003,635,635,,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,,,,625,625,625,1003,625,1003,1003,1003,625,625,1003',
'1003,,625,,625,625,625,625,625,625,625,,,,,,625,625,625,625,625,625',
'625,,,625,,,,,,,625,,,625,625,625,625,625,625,625,625,625,625,625,625',
',625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625,625,,,625,,625',
',625,,625,,,625,,,,,,625,,,,,625,625,625,625,,625,625,625,625,,,,,625',
'625,,,,624,624,624,625,624,625,625,625,624,624,625,625,,624,,624,624',
'624,624,624,624,624,,,,,,624,624,624,624,624,624,624,,,624,,,,,,,624',
',,624,624,624,624,624,624,624,624,,624,624,624,,624,624,624,624,624',
',,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,624,,,,624,,,,,,,,,624',
',,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,611,611,611,624',
'611,624,624,624,611,611,624,624,,611,,611,611,611,611,611,611,611,,',
',,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611,611,611',
'611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,,,,,,,,,',
'611,,,611,,,611,611,,,611,,,,,,611,,,611,,,,,,611,,,,,611,611,611,611',
',611,611,611,611,,,,,611,611,,,,608,608,608,611,608,611,611,611,608',
'608,611,611,,608,,608,608,608,608,608,608,608,,,,,,608,608,608,608,608',
'608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,608,608,608',
'608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608,608,,,608',
',608,,,,608,,,608,,,,,,608,,,,,608,608,608,608,,608,608,608,608,,,,',
'608,608,,,,236,236,236,608,236,608,608,608,236,236,608,608,,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,,,235,235,235,236',
'235,236,236,236,235,235,236,236,,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,,,,603,603,603,235,603,235,235,235,603,603,235',
'235,,603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603',
',,603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603',
'603,603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603',
',,,,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,1029',
'1029,1029,603,1029,603,603,603,1029,1029,603,603,,1029,,1029,1029,1029',
'1029,1029,1029,1029,,,,,,1029,1029,1029,1029,1029,1029,1029,,,1029,',
',,,,,1029,,,1029,1029,1029,1029,1029,1029,1029,1029,,1029,1029,1029',
',1029,1029,1029,1029,1029,,,,,,,,,,,,,,,,,,,,1029,,,1029,,,1029,1029',
',,1029,,,,,,1029,,,,,,,,,1029,,,,,1029,1029,1029,1029,,1029,1029,1029',
'1029,,,,,1029,1029,,,,600,600,600,1029,600,1029,1029,1029,600,600,1029',
'1029,,600,,600,600,600,600,600,600,600,,,,,,600,600,600,600,600,600',
'600,,,600,,,,,,,600,,,600,600,600,600,600,600,600,600,,600,600,600,',
'600,600,600,600,600,,,,,,,,,,,,,,,,,,,,600,,,600,,,600,600,,,600,,,',
',,600,,,,,,,,,600,,,,,600,600,600,600,,600,600,600,600,,,,,600,600,',
',,597,597,597,600,597,600,600,600,597,597,600,600,,597,,597,597,597',
'597,597,597,597,,,,,,597,597,597,597,597,597,597,,,597,,,,,,,597,,,597',
'597,597,597,597,597,597,597,,597,597,597,,597,597,597,597,597,,,,,,',
',,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,597,,,,,,,,,597,,,,,597',
'597,597,597,,597,597,597,597,,,,,597,597,,,,234,234,234,597,234,597',
'597,597,234,234,597,597,,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,,,,587,587,587,234,587,234,234,234,587,587,234,234,,587',
',587,587,587,587,587,587,587,,,,,,587,587,587,587,587,587,587,,,587',
',,,,,,587,,,587,587,587,587,587,587,587,587,587,587,587,587,,587,587',
'587,587,587,,,,,,,,,,,,,,,,,,,,587,,,587,,,587,587,,,587,,587,,587,',
'587,,,587,,,,,,587,,,,,587,587,587,587,,587,587,587,587,,,,,587,587',
',,,,,,587,,587,587,587,,,587,587,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,,,,,,,,,,,,,,,,,,,,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,571,571,571,,571,,,,571,571,,,,571',
',571,571,571,571,571,571,571,,,,,,571,571,571,571,571,571,571,,,571',
',,,,,,571,,,571,571,571,571,571,571,571,571,,571,571,571,,571,571,571',
'571,571,,,,,,,,,,,,,,,,,,,,571,,,571,,,571,571,,,571,,,,,,571,,,,,,',
',,571,,,,,571,571,571,571,,571,571,571,571,,,,,571,571,,,,569,569,569',
'571,569,571,571,571,569,569,571,571,,569,,569,569,569,569,569,569,569',
',,,,,569,569,569,569,569,569,569,,,569,,,,,,,569,,,569,569,569,569,569',
'569,569,569,569,569,569,569,,569,569,569,569,569,,,,,,,,,,,,,,,,,,,',
'569,,,569,,,569,569,,,569,,,,569,,569,,,569,,,,,,569,,,,,569,569,569',
'569,,569,569,569,569,,,,,569,569,,,,366,366,366,569,366,569,569,569',
'366,366,569,569,,366,,366,366,366,366,366,366,366,,,,,,366,366,366,366',
'366,366,366,,,366,,,,,,,366,,,366,366,366,366,366,366,366,366,,366,366',
'366,,366,366,366,366,366,,,,,,,,,,,,,,,,,,,,366,,,366,,,366,366,,,366',
',,,,,366,,,,,,,,,366,,,,,366,366,366,366,,366,366,366,366,,,,,366,366',
',,,368,368,368,366,368,366,366,366,368,368,366,366,,368,,368,368,368',
'368,368,368,368,,,,,,368,368,368,368,368,368,368,,,368,,,,,,,368,,,368',
'368,368,368,368,368,368,368,,368,368,368,,368,368,368,368,368,,,,,,',
',,,,,,,,,,,,,368,,,368,368,,368,368,,,368,,,,,,368,,,,,,,,,368,,,,,368',
'368,368,368,,368,368,368,368,,,,,368,368,,,,567,567,567,368,567,368',
'368,368,567,567,368,368,,567,,567,567,567,567,567,567,567,,,,,,567,567',
'567,567,567,567,567,,,567,,,,,,,567,,,567,567,567,567,567,567,567,567',
'567,567,567,567,,567,567,567,567,567,,,,,,,,,,,,,,,,,,,,567,,,567,,',
'567,567,,,567,,567,,567,,567,,,567,,,,,,567,,,,,567,567,567,567,,567',
'567,567,567,,,,,567,567,,,,46,46,46,567,46,567,567,567,46,46,567,567',
',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,,,,557,557,557,46,557,46,46,46,557,557,46,46,,557,,557,557',
'557,557,557,557,557,,,,,,557,557,557,557,557,557,557,,,557,,,,,,,557',
',,557,557,557,557,557,557,557,557,,557,557,557,,557,557,557,557,557',
',,,,,,,,,,,,,,,,,,,557,,,557,,,557,557,,,557,,,,,,557,,,,,,,,,557,,',
',,557,557,557,557,,557,557,557,557,,,,,557,557,,,,47,47,47,557,47,557',
'557,557,47,47,557,557,,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,,,,280,280,280,47,280,47,47,47,280,280',
'47,47,,280,,280,280,280,280,280,280,280,,,,,,280,280,280,280,280,280',
'280,,,280,,,,,,,280,,,280,280,280,280,280,280,280,280,,280,280,280,',
'280,280,280,280,280,,,,,,,,,,,,,,,,,,,,280,,,280,,,280,280,,,280,,,',
',,280,,,,,,,,,280,,,,,280,280,280,280,,280,280,280,280,,,,,280,280,',
',,275,275,275,280,275,280,280,280,275,275,280,280,,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,552',
',275,275,,,,552,552,552,,,552,552,552,406,552,406,406,406,406,406,,',
'552,552,552,,,,406,,,,,,552,552,,552,552,552,552,552,1159,,1159,1159',
'1159,1159,1159,,406,406,,,,,,1159,,406,406,406,406,,,,406,,1131,,1131',
'1131,1131,1131,1131,552,,,,1159,,,552,1131,,,,552,552,,1159,1159,,,',
'1159,,,,,,,,,,1131,406,,,,552,552,,,1131,1131,1131,1131,,,,1131,,,,552',
',,552,,221,221,221,552,221,1159,,,221,221,552,,,221,,221,221,221,221',
'221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221',
'221,221,221,221,221,221,221,221,221,221,,221,221,221,221,221,,,,,,,',
',,,,,,,,,,,,221,,,221,,,221,221,,,221,,221,,221,,221,,,221,,,,,,221',
',,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,220,220,220,221',
'220,221,221,221,220,220,221,221,,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,,,,75,75,75,220,75,220,220,220,75,75,220,220',
',75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75,75,,,75,,,,,,,75,,',
'75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75,,,,,,,,,,,,,,,,,,',
',75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75,75,75,,75,75,75,75',
',,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,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,,,,433,433,433,71,433,71,71,71,433,433,71,71,,433,,433,433,433',
'433,433,433,433,,,,,,433,433,433,433,433,433,433,,,433,,,,,,,433,,,433',
'433,433,433,433,433,433,433,,433,433,433,,433,433,433,433,433,,,,,,',
',,,,,,,,,,,,,433,,,433,,,433,433,,,433,,,,,,433,,,,,,,,,433,,,,,433',
'433,433,433,,433,433,433,433,,,,,433,433,,,,68,68,68,433,68,433,433',
'433,68,68,433,433,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68',
',,68,,,,,,,68,,,68,68,68,68,68,68,68,68,68,68,68,68,,68,68,68,68,68',
',,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,68,,,,,,68,,,,,68',
'68,68,68,,68,68,68,68,,,,,68,68,,,,842,842,842,68,842,68,68,68,842,842',
'68,68,,842,,842,842,842,842,842,842,842,,,,,,842,842,842,842,842,842',
'842,,,842,,,,,,,842,,,842,842,842,842,842,842,842,842,,842,842,842,',
'842,842,842,842,842,,,,,,,,,,,,,,,,,,,,842,,,842,,,842,842,,,842,,,',
',,842,,,,,,,,,842,,,,,842,842,842,842,,842,842,842,842,,,,,842,842,',
',,793,793,793,842,793,842,842,842,793,793,842,842,,793,,793,793,793',
'793,793,793,793,,,,,,793,793,793,793,793,793,793,,,793,,,,,,,793,,,793',
'793,793,793,793,793,793,793,,793,793,793,,793,793,793,793,793,,,,,,',
',,,,,,,,,,,,,793,,,793,,,793,793,,,793,,,,,,793,,,,,,,,,793,,,,,793',
'793,793,793,,793,793,793,793,,,,,793,793,,,,272,272,272,793,272,793',
'793,793,272,272,793,793,,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,,,,271,271,271,272,271,272,272,272,271,271,272,272,,271',
',271,271,271,271,271,271,271,,,,,,271,271,271,271,271,271,271,,,271',
',,,,,,271,,,271,271,271,271,271,271,271,271,,271,271,271,,271,271,271',
'271,271,,,,,,,,,,,,,,,,,,,,271,,,271,,,271,271,,,271,,,,,,271,,,,,,',
',,271,,,,,271,271,271,271,,271,271,271,271,,,,,271,271,,,,67,67,67,271',
'67,271,271,271,67,67,271,271,,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,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,,,,404,404,404,66,404,66',
'66,66,404,404,66,66,,404,,404,404,404,404,404,404,404,,,,,,404,404,404',
'404,404,404,404,,,404,,,,,,,404,,,404,404,404,404,404,404,404,404,,404',
'404,404,,404,404,404,404,404,,,,,,,,,,,,,,,,,,,,404,,,404,,,404,404',
',,404,,,,,,404,,,,,,,,,404,,,,,404,404,404,404,,404,404,404,404,,,,',
'404,404,,,,,,,404,,404,404,404,64,,404,404,,,,64,64,64,,,64,64,64,,64',
',,,,,,,64,,64,64,64,,,,,,,,64,64,,64,64,64,64,64,,,,,,,,,,,,,,,,,,,',
',,,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64,,,64,,,64,,',
'64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,,,,,,,,,,,,,64,,,64',
'64,64,64,,64,,64,,270,270,270,64,270,,,,270,270,,,,270,,270,270,270',
'270,270,270,270,,,,,,270,270,270,270,270,270,270,,,270,,,,,,,270,,,270',
'270,270,270,270,270,270,270,,270,270,270,,270,270,270,270,270,,,,,,',
',,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270,,,,,,,,,270,,,,,270',
'270,270,270,,270,270,270,270,,,,,270,270,,,,862,862,862,270,862,270',
'270,270,862,862,270,270,,862,,862,862,862,862,862,862,862,,,,,,862,862',
'862,862,862,862,862,,,862,,,,,,,862,,,862,862,862,862,862,862,862,862',
',862,862,862,,862,862,862,862,862,,,,,,,,,,,,,,,,,,,,862,,,862,,,862',
'862,,,862,,,,,,862,,,,,,,,,862,,,,,862,862,862,862,,862,862,862,862',
',,,,862,862,,,,296,296,296,862,296,862,862,862,296,296,862,862,,296',
',296,296,296,296,296,296,296,,,,,,296,296,296,296,296,296,296,,,296',
',,,,,,296,,,296,296,296,296,296,296,296,296,,296,296,296,,296,296,296',
'296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,,296,,,,,,296,,,,,,',
',,296,,,,,296,296,296,296,,296,296,296,296,,,,,296,296,,,,269,269,269',
'296,269,296,296,296,269,269,296,296,,269,,269,269,269,269,269,269,269',
',,,,,269,269,269,269,269,269,269,,,269,,,,,,,269,,,269,269,269,269,269',
'269,269,269,,269,269,269,,269,269,269,269,269,,,,,,,,,,,,,,,,,,,,269',
',,269,,,269,269,,,269,,,,,,269,,,,,,,,,269,,,,,269,269,269,269,,269',
'269,269,269,,,,,269,269,,,,268,268,268,269,268,269,269,269,268,268,269',
'269,,268,,268,268,268,268,268,268,268,,,,,,268,268,268,268,268,268,268',
',,268,,,,,,,268,,,268,268,268,268,268,268,268,268,,268,268,268,,268',
'268,268,268,268,,,,,,,,,,,,,,,,,,,,268,,,268,,,268,268,,,268,,,,,,268',
',,,,,,,,268,,,,,268,268,268,268,,268,268,268,268,,,,,268,268,,,,784',
'784,784,268,784,268,268,268,784,784,268,268,,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,,,,870,870,870,784,870',
'784,784,784,870,870,784,784,,870,,870,870,870,870,870,870,870,,,,,,870',
'870,870,870,870,870,870,,,870,,,,,,,870,,,870,870,870,870,870,870,870',
'870,,870,870,870,,870,870,870,870,870,,,,,,,,,,,,,,,,,,,,870,,,870,',
',870,870,,,870,,,,,,870,,,,,,,,,870,,,,,870,870,870,870,,870,870,870',
'870,,,,,870,870,,,,267,267,267,870,267,870,870,870,267,267,870,870,',
'267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267,,',
'267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267,267',
'267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267,,',
',,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,883,883',
'883,267,883,267,267,267,883,883,267,267,,883,,883,883,883,883,883,883',
'883,,,,,,883,883,883,883,883,883,883,,,883,,,,,,,883,,,883,883,883,883',
'883,883,883,883,,883,883,883,,883,883,883,883,883,,,,,,,,,,,,,,,,,,',
',883,,,883,,,883,883,,,883,,,,,,883,,,,,,,,,883,,,,,883,883,883,883',
',883,883,883,883,,,,,883,883,,,,884,884,884,883,884,883,883,883,884',
'884,883,883,,884,,884,884,884,884,884,884,884,,,,,,884,884,884,884,884',
'884,884,,,884,,,,,,,884,,,884,884,884,884,884,884,884,884,,884,884,884',
',884,884,884,884,884,,,,,,,,,,,,,,,,,,,,884,,,884,,,884,884,,,884,,',
',,,884,,,,,,,,,884,,,,,884,884,884,884,,884,884,884,884,,,,,884,884',
',,,24,24,24,884,24,884,884,884,24,24,884,884,,24,,24,24,24,24,24,24',
'24,,,,,,24,24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24',
',24,24,24,,24,24,24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,',
',,,24,,,,,,,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,303,303,303',
'24,303,24,24,24,303,303,24,24,,303,,303,303,303,303,303,303,303,,,,',
',303,303,303,303,303,303,303,,,303,,,,,,,303,,,303,303,303,303,303,303',
'303,303,303,303,303,303,,303,303,303,303,303,,,,,,,,,,,,,,,,,,,,303',
',,303,,,303,303,,,303,,303,,303,,303,,,303,,,,,,303,,,,,303,303,303',
'303,,303,303,303,303,,,,,303,303,,,,304,304,304,303,304,303,303,303',
'304,304,303,303,,304,,304,304,304,304,304,304,304,,,,,,304,304,304,304',
'304,304,304,,,304,,,,,,,304,,,304,304,304,304,304,304,304,304,304,304',
'304,304,,304,304,304,304,304,,,,,,,,,,,,,,,,,,,,304,,,304,,,304,304',
',,304,,304,,304,,304,,,304,,,,,,304,,,,,304,304,304,304,,304,304,304',
'304,,,,,304,304,,,,312,312,312,304,312,304,304,304,312,312,304,304,',
'312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312,,',
'312,,,,,,,312,,,312,312,312,312,312,312,312,312,312,312,312,312,,312',
'312,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,,312,,312',
',312,,,312,,,,,,312,,,,,312,312,312,312,,312,312,312,312,,,,,312,312',
'312,,,266,266,266,312,266,312,312,312,266,266,312,312,,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,,,,265,265,265,266,265',
'266,266,266,265,265,266,266,,265,,265,265,265,265,265,265,265,,,,,,265',
'265,265,265,265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265',
'265,,265,265,265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,',
',265,265,,,265,,,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265',
'265,,,,,265,265,,,,264,264,264,265,264,265,265,265,264,264,265,265,',
'264,,264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264,,',
'264,,,,,,,264,,,264,264,264,264,264,264,264,264,,264,264,264,,264,264',
'264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,,,,,264,,',
',,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264,264,,,,319,319',
'319,264,319,264,264,264,319,319,264,264,,319,,319,319,319,319,319,319',
'319,,,,,,319,319,319,319,319,319,319,,,319,,,,,,,319,,,319,319,319,319',
'319,319,319,319,,319,319,319,,319,319,319,319,319,,,,,,,,,,,,,,,,,,',
',319,,,319,,,319,319,,,319,,,,,,319,,,,,,,,,319,,,,,319,319,319,319',
',319,319,319,319,,,,,319,319,,,,321,321,321,319,321,319,319,319,321',
'321,319,319,,321,,321,321,321,321,321,321,321,,,,,,321,321,321,321,321',
'321,321,,,321,,,,,,,321,,,321,321,321,321,321,321,321,321,,321,321,321',
',321,321,321,321,321,,,,,,,,,,,,,,,,,,,,321,,,321,,,321,321,,,321,,',
',,,321,,,,,,,,,321,,,,,321,321,321,321,,321,321,321,321,,,,,321,321',
',,,324,324,324,321,324,321,321,321,324,324,321,321,,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,,,,263,263,263,324,263,324',
'324,324,263,263,324,324,,263,,263,263,263,263,263,263,263,,,,,,263,263',
'263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263',
',263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263',
'263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263',
',,,,263,263,,,,262,262,262,263,262,263,263,263,262,262,263,263,,262',
',262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262,,,262',
',,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262,262,262',
'262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262,,,,,,',
',,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,911,911,911',
'262,911,262,262,262,911,911,262,262,,911,,911,911,911,911,911,911,911',
',,,,,911,911,911,911,911,911,911,,,911,,,,,,,911,,,911,911,911,911,911',
'911,911,911,,911,911,911,,911,911,911,911,911,,,,,,,,,,,,,,,,,,,,911',
',,911,,,911,911,,,911,,,,,,911,,,,,,,,,911,,,,,911,911,911,911,,911',
'911,911,911,,,,,911,911,,,,912,912,912,911,912,911,911,911,912,912,911',
'911,,912,,912,912,912,912,912,912,912,,,,,,912,912,912,912,912,912,912',
',,912,,,,,,,912,,,912,912,912,912,912,912,912,912,,912,912,912,,912',
'912,912,912,912,,,,,,,,,,,,,,,,,,,,912,,,912,,,912,912,,,912,,,,,,912',
',,,,,,,,912,,,,,912,912,912,912,,912,912,912,912,,,,,912,912,,,,913',
'913,913,912,913,912,912,912,913,913,912,912,,913,,913,913,913,913,913',
'913,913,,,,,,913,913,913,913,913,913,913,,,913,,,,,,,913,,,913,913,913',
'913,913,913,913,913,,913,913,913,,913,913,913,913,913,,,,,,,,,,,,,,',
',,,,,913,,,913,,,913,913,,,913,,,,,,913,,,,,,,,,913,,,,,913,913,913',
'913,,913,913,913,913,,,,,913,913,,,,494,494,494,913,494,913,913,913',
'494,494,913,913,,494,,494,494,494,494,494,494,494,,,,,,494,494,494,494',
'494,494,494,,,494,,,,,,,494,,,494,494,494,494,494,494,494,494,,494,494',
'494,,494,494,494,494,494,,,,,,,,,,,,,,,,,,,,494,,,494,,,494,494,,,494',
',,,,,494,,,,,,,,,494,,,,,494,494,494,494,,494,494,494,494,,,,,494,494',
',,,,,,494,,494,494,494,,,494,494,130,130,130,130,130,,,,130,130,,,,130',
',130,130,130,130,130,130,130,,,,,,130,130,130,130,130,130,130,,,130',
',,,,,130,130,,130,130,130,130,130,130,130,130,130,,130,130,130,,130',
'130,130,130,130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,130,,',
',130,,,,,,,,,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,',
',129,129,129,130,129,130,130,130,129,129,130,130,,129,,129,129,129,129',
'129,129,129,,,,,,129,129,129,129,129,129,129,,,129,,,,,,,129,,,129,129',
'129,129,129,129,129,129,,129,129,129,,129,129,129,129,129,,,,,,,,,,',
',,,,,,,,,129,,,129,,,129,129,,,129,,,,,,129,,,,,,,,,129,,,,,129,129',
'129,129,,129,129,129,129,,,,,129,129,,,,128,128,128,129,128,129,129',
'129,128,128,129,129,,128,,128,128,128,128,128,128,128,,,,,,128,128,128',
'128,128,128,128,,,128,,,,,,,128,,,128,128,128,128,128,128,128,128,,128',
'128,128,,128,128,128,128,128,,,,,,,,,,,,,,,,,,,,128,,,128,,,128,128',
',,128,,,,,,128,,,,,,,,,128,,,,,128,128,128,128,,128,128,128,128,,,,',
'128,128,,,,1142,1142,1142,128,1142,128,128,128,1142,1142,128,128,,1142',
',1142,1142,1142,1142,1142,1142,1142,,,,,,1142,1142,1142,1142,1142,1142',
'1142,,,1142,,,,,,,1142,,,1142,1142,1142,1142,1142,1142,1142,1142,,1142',
'1142,1142,,1142,1142,1142,1142,1142,,,,,,,,,,,,,,,,,,,,1142,,,1142,',
',1142,1142,,,1142,,,,,,1142,,,,,,,,,1142,,,,,1142,1142,1142,1142,,1142',
'1142,1142,1142,,,,,1142,1142,,,,1143,1143,1143,1142,1143,1142,1142,1142',
'1143,1143,1142,1142,,1143,,1143,1143,1143,1143,1143,1143,1143,,,,,,1143',
'1143,1143,1143,1143,1143,1143,,,1143,,,,,,,1143,,,1143,1143,1143,1143',
'1143,1143,1143,1143,,1143,1143,1143,,1143,1143,1143,1143,1143,,,,,,',
',,,,,,,,,,,,,1143,,,1143,,,1143,1143,,,1143,,,,,,1143,,,,,,,,,1143,',
',,,1143,1143,1143,1143,,1143,1143,1143,1143,,,,,1143,1143,,,,127,127',
'127,1143,127,1143,1143,1143,127,127,1143,1143,,127,,127,127,127,127',
'127,127,127,,,,,,127,127,127,127,127,127,127,,,127,,,,,,,127,,,127,127',
'127,127,127,127,127,127,,127,127,127,,127,127,127,127,127,,,,,,,,,,',
',,,,,,,,,127,,,127,,,127,127,,,127,,,,,,127,,,,,,,,,127,,,,,127,127',
'127,127,,127,127,127,127,,,,,127,127,,,,50,50,50,127,50,127,127,127',
'50,50,127,127,,50,,50,50,50,50,50,50,50,,,,,,50,50,50,50,50,50,50,,',
'50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50,,50,50,50,50,50,,,,',
',,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,,,,,,50,,,,,50,50,50',
'50,,50,50,50,50,,,,,50,50,,,,126,126,126,50,126,50,50,50,126,126,50',
'50,,126,,126,126,126,126,126,126,126,,,,,,126,126,126,126,126,126,126',
',,126,,,,,,,126,,,126,126,126,126,126,126,126,126,,126,126,126,,126',
'126,126,126,126,,,,,,,,,,,,,,,,,,,,126,,,126,,,126,126,,,126,,,,,,126',
',,,,,,,,126,,,,,126,126,126,126,,126,126,126,126,,,,,126,126,,,,,,,126',
',126,126,126,,,126,126,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,121,,,,,,121,121',
',121,121,121,,,121,121,1155,1155,1155,,1155,,,,1155,1155,,,,1155,,1155',
'1155,1155,1155,1155,1155,1155,,,,,,1155,1155,1155,1155,1155,1155,1155',
',,1155,,,,,,,1155,,,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155',
'1155,1155,,1155,1155,1155,1155,1155,,,,,,,,,,,,,,,,,,,,1155,,,1155,',
',1155,1155,,,1155,,1155,,1155,,1155,,,1155,,,,,,1155,,,,,1155,1155,1155',
'1155,,1155,1155,1155,1155,,,,,1155,1155,,,,468,468,468,1155,468,1155',
'1155,1155,468,468,1155,1155,,468,,468,468,468,468,468,468,468,,,,,,468',
'468,468,468,468,468,468,,,468,,,,,,,468,,,468,468,468,468,468,468,468',
'468,,468,468,468,,468,468,468,468,468,,,,,,,,,,,,,,,,,,,,468,,,468,',
',468,468,,,468,,,,,,468,,,,,,,,,468,,,,,468,468,468,468,,468,468,468',
'468,,,,,468,468,,,,,,,468,,468,468,468,467,,468,468,,,,467,467,467,',
',467,467,467,,467,,,,,,,,467,467,467,467,467,,,,,,,,467,467,,467,467',
'467,467,467,,,,,,,,,,,,,,,,,,,,,,,467,467,467,467,467,467,467,467,467',
'467,467,467,467,467,,,467,467,467,,,467,,,467,,,467,467,,467,,467,,467',
',467,467,,467,467,467,467,467,,467,467,467,,,,,,,,,,,,,,467,,,467,467',
'467,467,,467,466,467,,,,,467,466,466,466,,,466,466,466,,466,,,,,,,,466',
'466,466,466,466,,,,,,,,466,466,,466,466,466,466,466,,,,,,,,,,,,,,,,',
',,,,,,466,466,466,466,466,466,466,466,466,466,466,466,466,466,,,466',
'466,466,,,466,,,466,,,466,466,,466,,466,,466,,466,466,,466,466,466,466',
'466,,466,466,466,,,,,,,,,,,,,,466,,,466,466,466,466,,466,,466,,52,52',
'52,466,52,,,,52,52,,,,52,,52,52,52,52,52,52,52,,,,,,52,52,52,52,52,52',
'52,,,52,,,,,,,52,,,52,52,52,52,52,52,52,52,,52,52,52,,52,52,52,52,52',
',,,,,,,,,,,,,,,,,,,52,,,52,,,52,52,,,52,,,,,,52,,,,,,,,,52,,,,,52,52',
'52,52,,52,52,52,52,,,,,52,52,,,,,,,52,,52,52,52,,,52,52,7,7,7,7,7,,',
',7,7,,,,7,,7,7,7,7,7,7,7,,,,,,7,7,7,7,7,7,7,,,7,,,,,,7,7,7,7,7,7,7,7',
'7,7,7,7,,7,7,7,,7,7,7,7,7,,,,,,,,,,,,,,,,,,,,7,,,7,,,7,7,,,7,,7,,,,7',
',,,,,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,,,,7,,7,7,7,457,,7,7,,,,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,72,72,72,,72,,457,,72,72,,,,72,,72,72,72,72,72,72',
'72,,,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72',
',72,72,72,,72,72,72,72,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,',
',,,72,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,219,219,219',
'72,219,72,72,72,219,219,72,72,,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,,,,274,274,274,219,274,219,219,219,274,274,219,219,',
'274,,274,274,274,274,274,274,274,,,,,,274,274,274,274,274,274,274,,',
'274,,,,,,,274,,,274,274,274,274,274,274,274,274,,274,274,274,,274,274',
'274,274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274,,,274,,,,,,274,,',
',,,,,,274,,,,,274,274,274,274,,274,274,274,274,,,,,274,274,,,,218,218',
'218,274,218,274,274,274,218,218,274,274,,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,,,,217,217,217,218,217,218,218,218,217',
'217,218,218,,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',
',,,273,273,273,217,273,217,217,217,273,273,217,217,,273,,273,273,273',
'273,273,273,273,,,,,,273,273,273,273,273,273,273,,,273,,,,,,,273,,,273',
'273,273,273,273,273,273,273,,273,273,273,,273,273,273,273,273,,,,,,',
',,,,,,,,,,,,,273,,,273,,,273,273,,,273,,,,,,273,,,,,,,,,273,,,,,273',
'273,273,273,,273,273,273,273,,,,,273,273,,,,49,49,49,273,49,273,273',
'273,49,49,273,273,,49,,49,49,49,49,49,49,49,,,,,,49,49,49,49,49,49,49',
',,49,,,,,,,49,,,49,49,49,49,49,49,49,49,,49,49,49,,49,49,49,49,49,,',
',,,,,,,,,,,,,,,,,49,,,49,,,49,49,,,49,,,,,,49,,,,,,,,,49,,,,,49,49,49',
'49,,49,49,49,49,,,,,49,49,,,,216,216,216,49,216,49,49,49,216,216,49',
'49,,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,,',
',796,796,796,216,796,216,216,216,796,796,216,216,,796,,796,796,796,796',
'796,796,796,,,,,,796,796,796,796,796,796,796,,,796,,,,,,,796,,,796,796',
'796,796,796,796,796,796,,796,796,796,,796,796,796,796,796,,,,,,,,,,',
',,,,,,,,,796,,,796,,,796,796,,,796,,,,,,796,,,,,,,,,796,,,,,796,796',
'796,796,,796,796,796,796,,,,,796,796,,,,521,521,521,796,521,796,796',
'796,521,521,796,796,,521,,521,521,521,521,521,521,521,,,,,,521,521,521',
'521,521,521,521,,,521,,,,,,,521,,,521,521,521,521,521,521,521,521,,521',
'521,521,,521,521,521,521,521,,,,,,,,,,,,,,,,,,,,521,,,521,,,521,521',
',,521,,,,,,521,,,,,,,,,521,,,,,521,521,521,521,,521,521,521,521,,,,',
'521,521,,,,520,520,520,521,520,521,521,521,520,520,521,521,,520,,520',
'520,520,520,520,520,520,,,,,,520,520,520,520,520,520,520,,,520,,,,,',
',520,,,520,520,520,520,520,520,520,520,,520,520,520,,520,520,520,520',
'520,,,,,,,,,,,,,,,,,,,,520,,,520,,,520,520,,,520,,,,,,520,,,,,,,,,520',
',,,,520,520,520,520,,520,520,520,520,,,,,520,520,,,,519,519,519,520',
'519,520,520,520,519,519,520,520,,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,,519,519,519,519,519,,,,,,,,,,,,,,,,,,,,519',
',,519,,,519,519,,,519,,,,,,519,,,,,,,,,519,,,,,519,519,519,519,,519',
'519,519,519,,,,,519,519,,,,383,383,383,519,383,519,519,519,383,383,519',
'519,,383,,383,383,383,383,383,383,383,,,,,,383,383,383,383,383,383,383',
',,383,,,,,,,383,,,383,383,383,383,383,383,383,383,,383,383,383,,383',
'383,383,383,383,,,,,,,,,,,,,,,,,,,,383,,,383,,,383,383,,,383,,,,,,383',
',,,,,,,,383,,,,,383,383,383,383,,383,383,383,383,,,,,383,383,,,,517',
'517,517,383,517,383,383,383,517,517,383,383,,517,,517,517,517,517,517',
'517,517,,,,,,517,517,517,517,517,517,517,,,517,,,,,,,517,,,517,517,517',
'517,517,517,517,517,517,517,517,517,,517,517,517,517,517,,,,,,,,,,,',
',,,,,,,,517,,,517,,,517,517,,,517,,517,,517,,517,,,517,,,,,,517,,,,',
'517,517,517,517,,517,517,517,517,,,,,517,517,,,,507,507,507,517,507',
'517,517,517,507,507,517,517,,507,,507,507,507,507,507,507,507,,,,,,507',
'507,507,507,507,507,507,,,507,,,,,,,507,,,507,507,507,507,507,507,507',
'507,,507,507,507,,507,507,507,507,507,,,,,,,,,,,,,,,,,,,,507,,,507,',
',507,507,,,507,,,,,,507,,,,,,,,,507,,,,,507,507,507,507,,507,507,507',
'507,,,,,507,507,,,,357,357,357,507,357,507,507,507,357,357,507,507,',
'357,,357,357,357,357,357,357,357,,,,,,357,357,357,357,357,357,357,,',
'357,,,,,,,357,,,357,357,357,357,357,357,357,357,,357,357,357,,357,357',
',,357,,,,,,,,,,,,,,,,,,,,357,,,357,,,357,357,,,357,,,,,,,,,,,,,,,,,',
',,357,357,357,357,,357,357,357,357,,,,,357,357,,,,1011,1011,1011,357',
'1011,357,357,357,1011,1011,,,,1011,,1011,1011,1011,1011,1011,1011,1011',
',,,,,1011,1011,1011,1011,1011,1011,1011,,,1011,,,,,,,1011,,,1011,1011',
'1011,1011,1011,1011,1011,1011,,1011,1011,1011,,1011,1011,,,1011,,,,',
',,,,,,,,,,,,,,,1011,,,1011,,,1011,1011,,,1011,,,,,,,,,,,,,,,,,,,,1011',
'1011,1011,1011,,1011,1011,1011,1011,,,,,1011,1011,,,,338,338,338,1011',
'338,1011,1011,1011,338,338,,,,338,,338,338,338,338,338,338,338,,,,,',
'338,338,338,338,338,338,338,,,338,,,,,,,338,,,338,338,338,338,338,338',
'338,338,,338,338,338,,338,338,,,338,,,,,,,,,,,,,,,,,,,,338,,,338,,,338',
'338,,,338,,,1133,,1133,1133,1133,1133,1133,,,,,,,,,1133,,338,338,338',
'338,,338,338,338,338,,,,,338,338,,,,338,,1133,338,,338,338,338,76,76',
'76,,76,1133,1133,,76,76,1133,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76',
'76,76,76,76,,,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76',
',,76,,,,,,,,,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76',
'76,76,76,,76,76,76,76,,,,,76,76,,,,1075,1075,1075,76,1075,76,76,76,1075',
'1075,,,,1075,,1075,1075,1075,1075,1075,1075,1075,,,,,,1075,1075,1075',
'1075,1075,1075,1075,,,1075,,,,,,,1075,,,1075,1075,1075,1075,1075,1075',
'1075,1075,,1075,1075,1075,,1075,1075,,,1075,,,,,,,,,,,,,,,,,,,,1075',
',,1075,,,1075,1075,,,1075,,,,,,,,,,,,,,,,,,,,1075,1075,1075,1075,,1075',
'1075,1075,1075,,,,,1075,1075,,,,585,585,585,1075,585,1075,1075,1075',
'585,585,,,,585,,585,585,585,585,585,585,585,,,,,,585,585,585,585,585',
'585,585,,,585,,,,,,,585,,,585,585,585,585,585,585,585,585,,585,585,585',
',585,585,,,585,,,,,,,,,,,,,,,,,,,,585,,,585,,,585,585,,,585,,,,,,,,',
',,,,,,,,,,,585,585,585,585,,585,585,585,585,,,,,585,585,,,,594,594,594',
'585,594,585,585,585,594,594,,,,594,,594,594,594,594,594,594,594,,,,',
',594,594,594,594,594,594,594,,,594,,,,,,,594,,,594,594,594,594,594,594',
'594,594,,594,594,594,,594,594,,,594,,,,,,,,,,,,,,,,,,,,594,,,594,,,594',
'594,,,594,,,,,,,,,,,,,,,,,,,,594,594,594,594,,594,594,594,594,,,,,594',
'594,,,,77,77,77,594,77,594,594,594,77,77,,,,77,,77,77,77,77,77,77,77',
',,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77,77,,77',
'77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,',
',,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,78,78,78,77,78,77,77',
'77,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78,78,78,78,78,78,78,,,78',
',,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78,,78,78,,,78,,,,,,,,,,,',
',,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,78,78,78,,78,78,78',
'78,,,,,78,78,,,,40,40,40,78,40,78,78,78,40,40,,,,40,,40,40,40,40,40',
'40,40,,,,,,40,40,40,40,40,40,40,,,40,,,,,,,40,,,40,40,40,40,40,40,40',
'40,,40,40,40,,40,40,,,40,,,,,,,,,,,,,,,,,,,,40,,,40,,,40,40,,,40,,,1207',
',1207,1207,1207,1207,1207,,,,,,,,,1207,,40,40,40,40,,40,40,40,40,,,',
',40,40,,,,40,,1207,40,,40,40,40,1137,1137,1137,,1137,1207,1207,,1137',
'1137,1207,,,1137,,1137,1137,1137,1137,1137,1137,1137,,,,,,1137,1137',
'1137,1137,1137,1137,1137,,,1137,,,,,,,1137,,,1137,1137,1137,1137,1137',
'1137,1137,1137,,1137,1137,1137,,1137,1137,,,1137,,,,,,,,,,,,,,,,,,,',
'1137,,,1137,,,1137,1137,,,1137,,,,,,,,,,,,,,,,,,,,1137,1137,1137,1137',
',1137,1137,1137,1137,,,,,1137,1137,,,,799,799,799,1137,799,1137,1137',
'1137,799,799,,,,799,,799,799,799,799,799,799,799,,,,,,799,799,799,799',
'799,799,799,,,799,,,,,,,799,,,799,799,799,799,799,799,799,799,,799,799',
'799,,799,799,,,799,,,,,,,,,,,,,,,,,,,,799,,,799,,,799,799,,,799,,,,',
',,,,,,,,,,,,,,,799,799,799,799,,799,799,799,799,,,,,799,799,,,,810,810',
'810,799,810,799,799,799,810,810,,,,810,,810,810,810,810,810,810,810',
',,,,,810,810,810,810,810,810,810,,,810,,,,,,,810,,,810,810,810,810,810',
'810,810,810,,810,810,810,,810,810,,,810,,,,,,,,,,,,,,,,,,,,810,,,810',
',,810,810,,,810,,,,,,,,,,,,,,,,,,,,810,810,810,810,,810,810,810,810',
',,,,810,810,,,,39,39,39,810,39,810,810,810,39,39,,,,39,,39,39,39,39',
'39,39,39,,,,,,39,39,39,39,39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39',
'39,39,,39,39,39,,39,39,,,39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39',
',39,,,,,,,,,,,,,,,,,,39,39,39,39,,39,39,39,39,,,,,39,39,,,,,,,39,,39',
'39,39,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424',
'424,424,424,424,424,424,424,424,,,,424,424,424,424,424,424,424,424,424',
'424,,,,,,424,424,424,424,424,424,424,424,424,,,424,,,,,,,,424,424,,424',
'424,424,424,424,424,424,,,424,424,,,,424,424,424,424,,,,,,,,,,,,,,424',
'424,,424,424,424,424,424,424,424,424,424,424,424,424,,,424,424,,,,,',
',,,,,,,,424,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10',
'10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,,10,10,10,10,10',
'10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10,,,10,10,,,,10',
'10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10,10,10,10,,,10',
'10,,,,,,,,,,,,,,10,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,664,664,664,664,664,664,664,664,664,664,664',
'664,664,664,664,664,664,664,664,664,664,664,664,664,,,,664,664,664,664',
'664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664,664,,,664',
',,,,,,,664,664,,664,664,664,664,664,664,664,,,664,664,,,,664,664,664',
'664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664,664,664',
'664,,,664,664,1118,1118,1118,1118,,,,,,,,,,664,,,1118,1118,1118,1118',
',,1201,1118,1201,1201,1201,1201,1201,1118,1118,,,1118,,,,1201,,,,,,',
',,,,,,,,,1118,,,1118,,,1201,1118,,,1118,,,,,1201,1201,1201,1201,,,,1201',
',,,1118,,,,1118,1118,1118,1118,,1118,1118,1118,1118,,,,,1118,1118,983',
'983,983,983,,,1118,,1118,1118,1118,,,1118,1118,,983,983,983,983,,,,983',
'983,,,,,983,983,,,983,983,,,,,,,,,,,,,,,,,,,983,,,983,,,,983,,,983,',
'983,,,,,,,983,,,,,,,983,,,,983,983,983,983,,983,983,983,983,,,,,983',
'983,937,937,937,937,,,983,,983,983,983,,,983,983,,937,937,937,937,,',
'1128,937,1128,1128,1128,1128,1128,937,937,,,937,,,,1128,,,,,,,,,,,,',
',,,937,,,937,,,1128,937,,,937,,,,,1128,1128,1128,1128,,,,1128,,,,937',
',,,937,937,937,937,,937,937,937,937,,,,,937,937,936,936,936,936,,,937',
',937,937,937,,,937,937,,936,936,936,936,,,1205,936,1205,1205,1205,1205',
'1205,936,936,,,936,,,,1205,,,,,,,,,,,,,,,,936,,,936,,,1205,936,,,936',
',,,,,,1205,1205,,,,1205,,,,936,,,,936,936,936,936,,936,936,936,936,',
',,,936,936,930,930,930,930,,,936,,936,936,936,,,936,936,,930,930,930',
'930,,,1203,930,1203,1203,1203,1203,1203,930,930,,,930,,,,1203,,,,,,',
',,,,,,,,,930,,,930,,,1203,930,,,930,,930,,,,,1203,1203,,,,1203,,,,930',
',,,930,930,930,930,,930,930,930,930,,,,,930,930,1198,1198,1198,1198',
',,930,,930,930,930,,,930,930,,1198,1198,1198,1198,,,1224,1198,1224,1224',
'1224,1224,1224,1198,1198,,,1198,,,,1224,,,,,,,,,,,,,,,,1198,,,1198,',
',1224,1198,,,1198,,,,,,,1224,1224,,,,1224,,,,1198,,,,1198,1198,1198',
'1198,,1198,1198,1198,1198,,,,,1198,1198,924,924,924,924,,,1198,,1198',
'1198,1198,,,1198,1198,,924,924,924,924,,,,924,924,,,,,924,924,,,924',
'924,,,,,,,,,,,,,,,,,,,924,,,924,,,,924,,,924,,924,,,,,,,924,,,,,,,924',
',,,924,924,924,924,,924,924,924,924,,,,,924,924,923,923,923,923,,,924',
',924,924,924,,,924,924,,923,923,923,923,,,,923,923,,,,,923,923,,,923',
'923,,,,,,,,,,,,,,,,,,,923,,,923,,,,923,,,923,,923,,,,,,,923,,,,,,,923',
',,,923,923,923,923,,923,923,923,923,,,,,923,923,920,920,920,920,,,923',
',923,923,923,,,923,923,,920,920,920,920,,,,920,,,,,,920,920,,,920,,',
',,,,,,,,,,,,,,,,,920,,,920,,,,920,,,920,,,,,,,,,,,,,,,,920,,,,920,920',
'920,920,,920,920,920,920,,,,,920,920,918,918,918,918,,,920,,920,920',
'920,,,920,920,,918,918,918,918,,,,918,,,,,,918,918,,,918,,,,,,,,,,,',
',,,,,,,,918,,,918,,,,918,,,918,,918,,,,,,,,,,,,,,918,,,,918,918,918',
'918,,918,918,918,918,,,,,918,918,741,741,741,741,,,918,,918,918,918',
',,918,918,,741,741,741,741,,,,741,,,,,,741,741,,,741,,,,,,,,,,,,,,,',
',,,,741,,,741,,,,741,,,741,,741,,,,,,,,,,,,,,741,,,,741,741,741,741',
',741,741,741,741,,,,,741,741,741,,,,,,741,,741,741,741,,,741,741,26',
'26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26',
',,,26,26,26,26,26,26,26,26,26,26,,,,,,26,26,26,26,26,26,26,26,26,26',
'26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26,,,26,26,,,,26,26,26,26,,',
',,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26,26,26,26,26,,,26,749,749',
'749,749,,,702,,702,702,702,702,702,,,,749,749,749,749,,702,,749,,,,',
',749,749,,,749,,,,,,,,,,702,,,,,,,,,,749,702,702,749,,,702,749,,,749',
',,,,,,,,,,,,,,,749,,,,749,749,749,749,,749,749,749,749,,,,,749,749,',
'702,,,,,749,,749,749,749,,,749,749,776,776,776,776,776,776,776,776,776',
'776,776,776,776,776,776,776,776,776,776,776,776,776,776,776,,,,776,776',
'776,776,776,776,776,776,776,776,,,,,,776,776,776,776,776,776,776,776',
'776,,,776,,,,,,,,776,776,,776,776,776,776,776,776,776,,,776,776,,,,776',
'776,776,776,,,,,,,,,,,,,,776,776,,776,776,776,776,776,776,776,776,776',
'776,776,776,,,776,525,525,525,525,,,,,,,,,,,,,525,525,525,525,,,,525',
'525,,,,,525,525,,,525,525,,,,,,,,,,,,,,,,,,,525,,,525,,,,525,,,525,',
'525,,,,,,,525,,,,,,,525,,,,525,525,525,525,,525,525,525,525,,,,,525',
'525,524,524,524,524,,,525,,525,525,525,,,525,525,,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,1166,1166,1166,1166,,,524,,524,524,524,,,524,524,,1166,1166',
'1166,1166,,,,1166,,,,,,1166,1166,,,1166,,,,,,,,,,,,,,,,,,,,1166,,,1166',
',,,1166,,,1166,,,,,,,,,,,,,,,,1166,,,,1166,1166,1166,1166,,1166,1166',
'1166,1166,,,,,1166,1166,1109,1109,1109,1109,,,1166,,1166,1166,1166,',
',1166,1166,,1109,1109,1109,1109,,,,1109,,,,,,1109,1109,,,1109,,,,,,',
',,,,,,,,,,,,,1109,,,1109,,,,1109,,,1109,,,,,,,,,,,,,,,,1109,,,,1109',
'1109,1109,1109,,1109,1109,1109,1109,,,,,1109,1109,1122,1122,1122,1122',
',,1109,,1109,1109,1109,,,1109,1109,,1122,1122,1122,1122,,,,1122,,,,',
',1122,1122,,,1122,,,,,,,,758,758,758,758,,,,,,,,,1122,,,1122,758,758',
'758,1122,,,1122,,1122,,,,,758,758,,,758,,,,,1122,,,,1122,1122,1122,1122',
',1122,1122,1122,1122,,,,,1122,1122,,,,,,,1122,,1122,1122,1122,,,1122',
'1122,,,,,,,,,,,,758,758,758,758,,758,758,758,758,,,,,758,758,945,945',
'945,945,,,758,,758,758,758,,,,,,945,945,945,,,,,,,,,,,945,945,,,945',
'944,944,944,944,,,,,,,,,,,,,944,944,944,,,,,,,,,,,944,944,,,944,,,,',
',,,,,,,,,,,945,945,945,945,,945,945,945,945,,,,,945,945,,,,,,,945,,945',
'945,945,,,,,,,,,944,944,944,944,,944,944,944,944,,,,,944,944,759,759',
'759,759,,,944,,944,944,944,,,,,,759,759,759,700,,700,700,700,700,700',
',,,759,759,,,759,700,,,,,,,,,,,1020,,1020,1020,1020,1020,1020,,,,,700',
',,,1020,,,,,700,700,700,700,,,,700,,,,,,,,,,1020,759,759,759,759,,759',
'759,759,759,,1020,1020,,759,759,1020,,,,,,759,,759,759,759,,,698,700',
'698,698,698,698,698,,230,,230,230,230,230,230,698,,,,,,,,230,,,1018',
'1020,1018,1018,1018,1018,1018,,,,,698,,,,1018,,,,230,698,698,698,698',
',,,698,230,230,230,230,,,,230,1016,1018,1016,1016,1016,1016,1016,,,',
',,1018,1018,,1016,,1018,1014,,1014,1014,1014,1014,1014,,,,,,,698,,1014',
',,,1016,,230,,,,,,,,,1016,1016,,,,1016,,1014,,1018,,,,,,,1014,1014,1014',
'1014,,,,1014,,,,,,,,,,,,1181,1181,,,1181,,,,,,1016,,1181,1181,,1181',
'1181,1181,1181,1181,1181,1181,,,1181,1181,,,1014,1181,1181,1181,1181',
',,,,,1181,,,,,,,,1181,1181,,1181,1181,1181,1181,1181,1181,1181,1181',
'1181,1181,1181,1181,299,299,1181,,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,223,223,299,,223,,,,,,,,223',
'223,,223,223,223,223,223,223,223,,,223,223,,,,223,223,223,223,,,,,,223',
',,,,,,,223,223,,223,223,223,223,223,223,223,223,223,223,223,223,1157',
'1157,223,,1157,,,,,,,,1157,1157,,1157,1157,1157,1157,1157,1157,1157',
',,1157,1157,,,,1157,1157,1157,1157,,,,,,1157,,,,,,,,1157,1157,,1157',
'1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,516,516,1157',
',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,1156,1156,516,,1156,,,,,,,,1156,1156,,1156,1156,1156,1156',
'1156,1156,1156,,,1156,1156,,,,1156,1156,1156,1156,,,,,,1156,,,,,,,,1156',
'1156,,1156,1156,1156,1156,1156,1156,1156,1156,1156,1156,1156,1156,672',
'672,1156,,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,515,515,672,,515,,,,,,,,515,515,,515,515,515',
'515,515,515,515,,,515,515,,,,515,515,515,515,,,,,,515,,,,,,,,515,515',
',515,515,515,515,515,515,515,515,515,515,515,515,222,222,515,,222,,',
',,,,,222,222,,222,222,222,222,222,222,222,,,222,222,,,,222,222,222,222',
',,,,,222,,,,,,,,222,222,,222,222,222,222,222,222,222,222,222,222,222',
'222,588,588,222,,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,588,589,589,588,,589,,,,,,,,589,589,,589,589',
'589,589,589,589,589,,,589,589,,,,589,589,589,589,,,,,,589,,,,,,,,589',
'589,,589,589,589,589,589,589,589,589,589,589,589,589,626,626,589,,626',
',,,,,,,626,626,,626,626,626,626,626,626,626,,,626,626,,,,626,626,626',
'626,,,,,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,626,626,626',
'626,626,671,671,626,,671,,,,,,,,671,671,,671,671,671,671,671,671,671',
',,671,671,,,,671,671,671,671,,,,,,671,,,,,,,,671,671,,671,671,671,671',
'671,671,671,671,671,671,671,671,627,627,671,,627,,,,,,,,627,627,,627',
'627,627,627,627,627,627,,,627,627,,,,627,627,627,627,,,,,,627,,,,,,',
',627,627,,627,627,627,627,627,627,627,627,627,627,627,627,634,634,627',
',634,,,,,,,,634,634,,634,634,634,634,634,634,634,,,634,634,,,,634,634',
'634,634,,,,,,634,,,,,,,,634,634,,634,634,634,634,634,634,634,634,634',
'634,634,634,633,633,634,,633,,,,,,,,633,633,,633,633,633,633,633,633',
'633,,,633,633,,,,633,633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633',
'633,633,633,633,633,633,633,633,633,598,598,633,,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,599,599',
'598,,599,,,,,,,,599,599,,599,599,599,599,599,599,599,,,599,599,,,,599',
'599,599,599,,,,,,599,,,,,,,,599,599,,599,599,599,599,599,599,599,599',
'599,599,599,599,,,599' ]
        racc_action_check = arr = ::Array.new(28951, 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,  1530,  1699,   101,   nil,   482,   nil, 20901,  1396,    63,
 25127, 25255,    87,   nil,   108,   123,   470,   190,   962,   122,
   162,   700,   nil,   -35, 16902,  1267, 26590,   276,   nil,   598,
   nil,   307,  8439,  8549,  8814, 10017, 10148,   nil,  4147, 24860,
 24328,   nil,   206,   690,   444,   339, 12923, 13185,   283, 21962,
 19796,   979, 20758,   303,   845,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil, 15455,   nil, 15183, 15040, 14385,   148,
   nil, 14123, 21176,   nil,   nil, 13980, 23542, 24066, 24197,   nil,
   nil,   nil,   nil,   nil,   nil,   584,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   110,   nil,   nil,   222,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil, 20070,   nil,   nil,   nil,   nil, 19927, 19665, 19272, 19141,
 19010,   nil,  4867,   nil,   585,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   302,   nil,   979, 22093, 21700, 21569, 21307,
 13849, 13718, 28287, 27921,   nil,   nil,   315,  2707,   332,   nil,
 27662,   580,   338,  1267, 11851, 11196, 11065,   nil,   nil,  1106,
   138,   142,   453,   193,   372,   446,   nil,  9886,   386,   299,
  2419,   449,   nil,   nil,  7250,  7119,  6583,  6452,  6321,  6190,
  6059,  5535, 18343, 18212, 17688, 17557, 17426, 16509, 16116, 15985,
 15592, 14909, 14778, 21831, 21438, 13447,   nil,   nil,   nil,   nil,
 13316,   nil,   nil,   532,   308,   563,   587,   488,   673,   710,
   747,   755,   354,   nil,   nil,   nil, 15854,   nil,   nil, 27860,
   nil,   nil,   472, 17033, 17164,   nil,   nil,   nil,   nil,   nil,
   nil,   nil, 17295,   nil,  2131,   nil,   478,   480,   nil, 17819,
   534, 17950,   nil,   nil, 18081,  5797,   nil,   nil,   563,   nil,
  6726,  1540,   517,   497,  5011,   533,   582,   554, 23403,  3859,
   873,   879,   878,   644,   995,   nil,   618,   585,   -24,   628,
   632,   nil,   nil,   nil,   644,   275,   608, 23141,   nil,   666,
   972,  4435,  5273,   693,   nil,   709, 12530,   nil, 12661,  2275,
  1684,   653,   nil,   593,   597,   690,   692,   468,   725,   nil,
   719,    35,    36, 22748,  4723,  4579,    72,   797,   686,   -18,
   -19,   411,   783,    25,   822,   nil,   nil,  1114,   802,   342,
   nil,   806,   nil,   742, 15314,   nil, 13552,   nil,   399,   366,
   402,   469,   410,   -32,   -34,   394,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   740, 24999,   nil,   nil,   nil,   nil,   742,
   nil,   813,   731, 14254,   733,   nil,   nil,   723,   nil,   788,
   -56,   835,   nil,   nil,  1411,   nil,   nil,   nil,   nil,   nil,
  1699,   750,   nil,   749,   751,   388,   425, 21042,   nil,   nil,
   nil,     0,   695,   796,   nil,   nil, 20621, 20485, 20344,   887,
   887,   nil,   nil,   768,   782,   786,   nil,   nil,   790,   792,
   793,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   783,  3269,   nil,   nil, 18867,   nil,   nil,   nil,     0,   nil,
   nil,   nil,   880,   nil,   nil,   882,   571, 23010,   926,   nil,
   nil,   nil,   -26,   nil,   859, 28226, 28043, 22879,   -82, 22617,
 22486, 22355,   806,   807, 26997, 26899,  3859,  4867,  3322,  1018,
   887,   888,   893,   894,  5404,  5535,  5666,  5142,  4723,  4579,
  4291,  4147,  4003,  3455,  3311,  3715,  3427,  2275,  5011,   nil,
    44,   nil, 13588,   nil,   nil,   nil,   nil, 13054,   843,   841,
   845,   nil,   nil,   nil,   848,   nil,   nil, 12792,   nil, 12399,
   nil, 12268,   nil,   327,   nil,   nil,   nil, 12125,  1108,   nil,
   858,   858,   nil,   nil,   859, 23804,   863, 11982, 28348, 28409,
   968,   914,   nil,   nil, 23935,   871,   nil, 11720, 28775, 28836,
 11589,  3571,  2707, 11327,   996,   877,   926,   nil, 10934,   nil,
   nil, 10803,   nil,   nil,   nil,  3571,  1007,   nil,  3427,    90,
  1013,  1039,    11,  1044, 10672, 10541, 28470, 28592,     7,   nil,
   nil,   893,   nil, 28714, 28653, 10279,   nil,   nil,    60,  1843,
   nil,   692,   nil,   nil,   nil,   nil,  1177,   nil,   nil,   nil,
   938,   nil,   nil,   369,   nil,   324,   nil,   nil,   924,   nil,
   926,   nil,   nil,   nil, 25383,   nil,  9755,   929,  9612,  9481,
  9219, 28531, 28165,  8957,  8683,   724,   972,  8036,  7905,  7774,
  7643,   972,   nil,   nil,  7512,  7381,   973,   nil,  1030,  1555,
  1061,  6988,   nil,   nil,   788,   nil,   nil,   269, 27654,   nil,
 27562,   nil, 26660,   nil,  6857,   nil,  3298,   nil,   944,   945,
  1253,   951,   nil,   nil,   nil,   nil,   nil,   nil,  1040,  1843,
   nil,   nil,   nil,   339,   360,   473,   334,   955,  5928,  5666,
   nil,   -72,   nil,   nil,   nil,   nil,   981,   nil,   nil,   nil,
   -34, 26447,   189,   nil,   958,  1041,   960,   nil,   nil, 26673,
   nil,   nil,     1,   nil,   nil,   675,   nil,   nil, 27332, 27562,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  1447,   590,   nil,   nil,   966, 26816,   nil,  1094,   nil,
  1078,   -13,   nil,   nil, 16247,   nil,   993,  1000,  1102,   nil,
   980,   nil,  1043, 14647,   nil,   nil, 22224,   nil,   429, 24598,
   998,   nil,  1002,   233,   250,  1046,   181,  1139,  1047,  1026,
 24729,   nil,  1099,   249,   nil,   nil,   nil,    68,   614,   nil,
  1165,   nil,   nil,   nil,   nil,   nil,  1183,  1185,   nil,   nil,
    26,  1065,     8,    -5,   232,    -4,  1123,   970,  1112,   nil,
  1072,  2851, 14516,   nil,  1195,   -25,  1080,   nil,   nil,   nil,
   nil,   nil,  2563,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  1079, 15723,  1083,   416,   392,   583,   834,   nil,  1987,
 16378,   nil,  1084,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 16640, 16771,  1211,   nil,  3715,  1088,  1135,
   nil,   nil,  1092,   nil,  1176,   nil,   nil,  1096,  1104,   nil,
  1109,  1114,   nil,  1116,   nil,   nil,  1120,  1109,  3557,   nil,
   nil, 18474, 18605, 18736,  5142,  5273,  5404,   377, 26349,  1202,
 26251,   -68,    97, 26153, 26055,   335,   -69,  1125,  1127,   nil,
 25859,   nil,  1127,   902,   nil,  1151, 25761, 25663,   nil,   498,
  1178,   331,   nil,   nil, 27464, 27430,   nil,   nil,   nil,   nil,
  8167,   nil,   nil,   nil,   nil,   nil,  8298,   nil,   nil,  1165,
   nil,   nil,  1162,  1146,   nil,   nil,   763,  2131,   nil,   nil,
   nil,   nil,  1146,   136,   nil,   nil,   nil,  1271,   nil,  9088,
  1274,   nil,   nil, 25565,  9350,  4291,    -1,  1283,   nil,  1284,
   -77,  1411,   nil,   nil,   nil,   nil,  1159,  1205,  1176,  1176,
   227,   nil,   nil, 10410,  3139,  2563,   nil,  2995,   nil,   nil,
   -10, 23272,   nil,   nil, 27734,   nil, 27716,   nil, 27680,   nil,
 27588,   nil,   nil,   nil,   nil,  1190,  1194,  2995,  2851, 11458,
   nil,  1211,   nil,   nil,   nil,   nil,  1217,  1218,  1221,  1223,
  1227,  1230,   nil,   nil,   nil,  1274,  1230,   121,   nil,  1241,
   nil,   nil,   -70,  1246,   nil,   nil,   nil,   nil,   nil,   nil,
  1290,  2419,  1987,   nil,   nil,  1248,  1253,   nil,  1258,  1259,
  1260,   nil,  1285,  1267,  1256, 23673,   nil,   nil,   nil,   nil,
     9,   nil,    13,    17,   nil,   268,   nil,   nil,   nil,  1393,
  4003,  3139,  2117,   nil,   nil,   nil,  1555,    32,    33,   667,
  1353,    34,   nil,  1276,  1285,  1286,  1287,  3308,  3413, 27193,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1290, 25467,   nil,
   257,   nil, 27291,   nil,   nil,  1300,   nil,   nil, 25666,   nil,
   nil, 13607,   nil, 23450,   nil,   nil,  1315, 24467,  1116,  1370,
  3283,   nil, 19403, 19534,   nil,   nil,   nil,   nil,  1314,  1438,
   609,   nil,   nil,   nil,  1441, 20213, 28104, 27982,    79, 13581,
   nil,   nil,   nil,   nil,  1317,  1318, 27095,  1319,   nil,   nil,
  1320,   nil,   nil,  1334,  1338,  1355,  1358,   nil,  1359,   nil,
   555, 27799,   nil,   574,  4435,   nil,   nil,   nil,   nil,   nil,
  1973,   nil,  1365,   109,   142,   143,   221,  1364, 25957,  1372,
   nil, 25470,   nil, 25862,   nil, 25764,   nil, 24375,   nil,   nil,
  1418,  1421,   nil,   375,   nil,   145,   nil,  1382,  1390,  1391,
  1392,   nil,   nil,   nil, 25960,   nil,   nil,   nil,   nil,  -104,
   nil ]

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

clist = [
'44,138,138,306,310,44,315,315,315,298,408,282,380,380,457,463,380,138',
'222,281,690,379,415,451,294,15,827,141,141,300,15,560,632,675,229,229',
'44,341,341,470,124,353,353,615,618,508,381,382,384,385,386,623,794,336',
'568,899,337,133,214,238,595,15,885,791,44,791,233,380,380,380,380,977',
'435,436,390,294,294,705,353,353,353,556,372,730,774,299,490,490,120',
'15,902,552,733,733,794,892,699,701,703,395,121,418,419,420,421,558,1053',
'235,607,610,124,131,614,448,481,481,317,317,317,44,1024,934,927,363',
'333,695,696,509,44,997,44,302,309,311,356,711,1069,368,4,1031,752,752',
'8,967,15,1026,335,8,928,374,377,473,506,15,1177,15,786,125,387,446,447',
'794,1151,778,1010,946,947,2,313,326,327,403,405,791,791,788,511,512',
'1006,1153,797,604,213,316,316,316,396,226,232,1038,1041,568,980,315',
'458,592,592,653,655,1049,431,424,524,525,821,283,370,776,782,664,366',
'375,781,44,467,442,373,295,442,376,394,636,1046,369,1177,44,605,371',
'841,1054,429,44,442,991,639,1025,1071,550,15,515,437,1129,1073,437,1150',
'573,640,993,44,1072,15,430,441,406,845,441,15,437,1090,1091,1214,8,490',
'229,229,336,839,449,423,441,422,416,8,15,551,315,315,1153,1165,562,791',
'510,563,300,315,959,826,1167,800,1144,481,1082,705,1221,983,233,909',
'809,1173,1030,1184,1032,1033,923,1036,1039,924,457,463,917,894,933,936',
'1055,1056,1062,949,889,1,727,306,1024,407,929,380,409,310,642,44,410',
'1037,1040,44,411,412,1199,341,44,413,549,353,414,588,1168,1164,638,847',
'852,842,336,906,1058,1059,15,336,341,1136,15,619,353,598,897,15,124',
'893,434,434,44,649,651,654,654,1171,,596,,962,899,,,805,,44,44,973,',
'317,,,802,805,626,15,,317,,233,,,620,621,1054,,,902,955,,15,15,,1054',
'576,,986,1169,138,522,523,805,,333,124,988,577,,333,805,831,1119,682',
'593,591,584,,579,687,1212,840,561,671,688,141,580,,,1000,564,586,,,',
'844,559,316,,606,,1145,1054,,877,316,,457,463,882,,,,622,578,663,863',
',,,,,,718,,,,,,899,794,458,,315,1169,,985,705,705,,,490,,791,,,972,',
'1035,,,467,,1043,1044,,963,,,1015,1017,,1019,1021,,1022,768,768,682',
'481,1170,969,,,,,,731,731,676,,,,752,752,717,1083,1013,813,,898,890',
'900,752,,733,976,,490,752,490,681,1042,315,458,,846,686,899,,510,,449',
',458,,873,875,,44,,878,880,,467,,,341,,1222,,353,,,467,,341,,,,353,315',
'458,752,15,,596,,836,,458,315,,969,,596,855,44,855,,44,1223,467,,,1113',
'1114,1115,467,,,,,,818,775,,820,,,,44,15,,,15,315,458,811,,,,,790,,',
'780,989,822,138,,,,,,,15,467,44,34,,442,,,34,44,1096,843,941,,,442,442',
',,141,442,442,,,,34,,15,817,,437,705,705,,15,34,34,34,,34,437,437,441',
'1191,891,437,437,,,859,,,441,441,1126,1127,,441,441,1160,1161,1162,1163',
',874,876,,34,,879,881,961,34,34,,,34,768,,894,1140,,1141,,,768,,1146',
'926,,895,,,895,768,768,940,872,,957,960,1001,,,,138,,281,,,,830,1215',
',,682,,,687,,,380,34,,901,,903,34,34,34,34,34,,34,,341,,,,353,,1089',
',,860,,341,,,676,353,868,1070,1216,596,990,,,,1200,1074,,,676,935,974',
',1075,,,,,44,,,,,44,434,,,,,,,,,,44,987,,,,,,,,15,,,1103,,15,,872,998',
'442,,490,1066,,,1124,15,,,34,34,34,34,34,34,34,44,676,,,,34,380,,437',
',,34,34,34,34,1008,,1009,1149,1012,441,,,,,15,,,34,,676,768,1002,768',
',380,768,768,,676,1060,,926,768,,996,,926,926,768,768,,,,,,,768,768',
',1052,,676,805,,,,,,1080,,,1192,,34,874,876,881,879,,44,34,34,,,,,,1120',
',34,1174,,,1175,,768,1078,44,1074,,,1074,1075,44,15,1075,731,34,1075',
',1075,34,,,1085,,34,,,44,676,,15,1098,,676,676,353,15,,,,,,,,1095,,1067',
'1088,,,,,15,,34,1066,1102,,1066,,1066,,,,,,,,34,34,34,1217,996,,1068',
',,,,1074,,,44,,,,1075,,1075,34,1075,,1075,,,294,,,1002,353,,,,,,380',
'380,15,,1075,44,44,,,,,44,,,,,1156,1104,,1105,,1106,1148,1066,768,1066',
',1066,1154,1066,15,15,,768,1185,1186,15,768,,,676,676,676,,315,458,1066',
',34,,935,,294,,,44,353,,,,,,31,,,467,,31,,,,,1183,,996,,,,,,15,768,',
',31,,,34,,467,,,,,31,31,31,34,31,44,895,,,1067,,,1067,,1067,,,,,768',
',,1213,,,,,,,,15,513,31,,,,,31,31,,1176,31,1178,,,,,,,,,,,,,378,,1189',
',,,,,34,,,,,1197,1130,1132,1134,,34,,,,,,,,,1067,,1067,,1067,31,1067',
'34,,,31,31,31,31,31,,31,676,,34,,,34,1067,,565,,,1218,34,1219,,1220',
',,,,,,34,,,,34,,,,,581,,,1229,,,,,,,,,,,,,,,,,,,34,,,34,34,,,34,,,,',
',34,34,,,,34,34,,,1202,1204,1206,1208,,1209,,31,31,31,31,31,31,31,,',
'18,,,31,,18,,,,31,31,31,31,432,445,,,,,,,,239,,,,31,,1225,1226,1227',
'1228,239,239,239,,18,342,342,,1230,,,,,,,,,,,,,,,,,,,,,,,,18,,,,,239',
'239,,31,239,391,401,401,,693,31,31,,,,,,,,31,,,,,,,,,,,,760,760,,,,',
'31,,,,31,,,,,31,570,721,572,18,,574,575,,239,239,239,239,18,,18,,34',
',,,,34,34,,,,,,,31,,,34,,,,,,,777,,,,31,31,31,,783,,785,34,,,789,,,',
',,,,,,,31,,,34,,798,,,,,,801,,,,,,,,,,,,,,,,,,,815,,,18,239,439,239',
'239,439,239,,,,,,18,,,,,667,18,439,239,239,,,,,,,,,,31,,34,,18,,,,,',
',,,,,,,,,34,,,,,,,,,,,,34,,,,,,34,,31,,,,34,,,,712,,31,239,,,,,,,239',
'239,34,,,,,,,239,,,,,,910,760,,,,,,,17,760,,,18,17,,,18,,760,760,342',
'18,,,,,,,,,,,,,,,,31,,342,,,34,,17,,,31,792,,378,18,795,,,,769,769,',
',,,,31,,239,18,18,,,34,34,17,,,31,34,,31,,,,,,,31,239,,,792,,,378,,',
'31,,,,31,,,975,,,445,,,,,,,,,,,,,,,34,,34,34,,,31,17,,31,31,,,31,,34',
'17,,17,31,31,,,,31,31,,,,861,239,,,,,,,,792,378,,,,,34,,,,,,,,888,,',
',,,760,,760,,,760,760,905,,,,239,760,,,,,1023,760,760,,239,,,,,760,760',
',,,,1034,,,,,,,,,,,17,,17,,,17,,,,,,,17,,,,,,17,17,,,760,,,,,,,,,1064',
',,,17,,,18,,,,,,792,,342,,239,,,,769,970,,342,971,,,,769,,,,239,,,,',
'769,769,,,,,31,18,,,18,31,31,,,,,239,,,,,31,,,,,239,,,,18,,,,1110,1111',
'1112,,,31,,,,,,17,,,,17,1121,,999,,17,,31,18,,,439,239,,,18,,,,,,439',
'439,,,,439,439,43,760,763,763,,43,,17,,,760,,,,760,,,,,,,,17,17,293',
',,,,,,,,,,,43,340,340,,,,31,,,,,,,,,,,,,,,,760,31,,,,,43,,,,,,,31,,',
'389,293,293,31,,,,,769,31,769,,,769,769,,760,,,,769,,,1084,,31,769,769',
',,,,,,769,769,,,,342,,,378,,,43,,,767,767,342,,,,43,,43,,,,,,,,,,,,',
',,,,769,,,18,,,,31,18,239,,,,,,,,,,18,,,,,,,,,,,,,,,,31,31,439,,,,31',
',,,,,,,,,,,,18,,,,,,,,,,,,43,,17,,,,763,,,,,,43,,763,,,,43,31,,31,31',
'763,763,,,,,,,,,,31,43,,,,,17,,,17,,,,761,761,,,239,,,,,,,,,769,,,31',
'17,,,,18,769,,,,769,,,,,,,239,,,,,,18,,,,,17,18,,17,,,,17,,,,,,17,17',
',,18,17,17,,1099,,,43,,769,,43,,,,340,43,,767,,,,,,,,767,,,,,,,19,340',
'767,767,,19,,,769,,,,,43,,,,,,,,,18,,,,,,43,43,,,,,,1138,19,349,349',
',,,763,,763,,,763,763,,18,18,,,763,,18,,,,763,763,,,19,,,,763,763,,',
',,349,349,349,,,,,,,,,,,,,,,,,,,,,1180,,,18,,239,239,,,,763,,,,,,,,239',
',,,19,17,,,761,,17,,,19,,19,761,,,,,17,,,,761,761,,,18,,,,,,,,,,17,',
',,,,,,767,,767,,,767,767,,,17,,,767,,,,,,767,767,,,,,,,767,767,,,,,',
',,,,,,,,,,,,,,,,,,19,,19,,,19,,,43,,,,19,,767,,340,,19,19,763,,,,,340',
',21,,763,,,21,763,,19,,,17,,,,,,,,43,,,43,,,,,,,17,,,,,,17,21,344,344',
',,,,43,,,,,,,763,17,,,,,,,,,761,,761,,21,761,761,,762,762,43,,761,,393',
'402,402,43,761,761,,,763,,,,761,761,19,,,,19,,,,349,19,,,,,,,,,17,,',
',,,,767,,349,20,,,21,,20,767,,,761,767,19,21,,21,,,,17,17,,,,,17,,19',
'19,,,,,,,,,20,350,350,,,,,,,,,,,,,,,,767,,,,,,,,,,20,,,,17,,,,,,350',
'350,350,,,,,,,,,,767,340,,,,,,,,,,21,340,440,,,440,,,,,,,21,,,17,,,21',
'440,,,20,,,,,43,,,,20,43,20,,21,,,761,,,,,43,,,,761,,,,761,,,,,,,,,',
',,,,,,765,765,,,,762,,,,,,43,,762,,,,,,,,,762,762,,,,,761,,,,,,,,,,',
',,,,,,,,,21,20,,20,21,,20,19,344,21,,,761,20,,349,,,,20,20,,,,349,,',
'344,,,,,,,,,20,,,21,,,,43,,19,,,19,,,,,,21,21,,,,,,43,,,,,,43,,19,,',
',,,,,,,,,,,43,,,,1097,,766,766,,,,,,19,,,19,,,,19,,,,,,19,19,,,,19,19',
'20,,,,20,,,,350,20,,,,,,,,,762,,762,,43,762,762,,,350,,,762,,,,,293',
'762,762,,20,,,,,762,762,,,,,43,43,,765,20,20,43,,,,,765,,,,,,,,,765',
'765,,,,,,,,,,,,762,,,,,,,,,,,,,,293,,,43,,,,,,,,,,,,,349,,,,,,,,,,,349',
',,,,,,21,,,,,,,,344,,,,,43,,,,344,,19,,,,,19,,,,,,,,,,,19,,,21,,,21',
',,,,,,,,,764,764,19,,,,,,766,,,21,,,,,766,,851,19,,,,,,766,766,762,',
',,,,,,,762,,21,,762,440,,,,21,,,765,,765,440,440,765,765,,440,440,,',
'765,,,,,20,765,765,,,,,,350,765,765,,,,,,,350,,762,,,,,,,,,,,,,,,19',
',,,20,,,20,,,,,,,765,,,762,19,,,,,,19,,,,20,,,,,,,,,,,,19,,,,349,,,',
',,,,,,,20,,,20,,,,20,,,,,,20,20,,,344,20,20,,,,,,,,,344,,,766,,766,',
',766,766,,,19,,,766,,,,,,766,766,,,349,21,,,766,766,21,,,,764,,,,,19',
'19,21,764,,,19,,,,,,764,764,,,,765,,,440,,,,,,765,,766,,765,,,,,,,21',
',,,,,,,,,349,,,19,,,,,,,,,,,,,,,350,,,,,246,,,,765,,350,,,,314,314,314',
',,,,,,,,,361,362,19,364,365,,367,,,,20,,,,765,20,,,,,,314,314,,,21,20',
',,,,,,,,,,,,,,,,21,20,,,,,21,,,,,,,,,,,,20,766,,,21,,,,1101,,766,,,',
'766,,,,,764,,764,,,764,764,,,,,,764,,,,,,764,764,,,,,,,764,764,,,,,',
',,,,,,766,21,,,,,,,,,,,,,402,,,,,,,,20,,,,764,,,21,21,,766,,,21,,,,',
'20,,,,,,20,,,,,314,444,,,450,314,,,,,,20,,,,350,,,450,,,,,,,402,,,21',
',,246,,,,,,,526,527,528,529,530,531,532,533,534,535,536,537,538,539',
'540,541,542,543,544,545,546,547,,,,,548,,20,,,,,,21,,,,,,,350,,,,,,',
',314,314,,,,,,20,20,314,,,,20,764,,314,,314,,,314,314,764,,,,764,,,',
',,,,,,,,,,,,,,,,,,,,,,,350,,,20,,,,,,601,,602,,,,,,764,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,20,,764,,,,,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,689,,,,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,,,,,,,719',
',,,,,,,,,314,,450,450,450,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,362,,,',
',,,,,,314,,314,,314,,,,,,,,,,,,,,,,314,,,,,,,,,,450,,,812,,,,,,,,314',
',,314,,,,,,,,,,,,,314,314,,,,,,,,,,314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,314,450,314,,,,869,,,314,314,450,450,,,,450,450,,,,,,314,,,,,,,,',
',,,,314,,,,,,,,,,,,,,,,,,,,,,,,689,719,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,,,314,,,314,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,,450,,,,,,,,,',
',,,1004,1005,,,,,,,,,,,,,,,,,,,,,,,,,,,1027,1028,450,450,450,450,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1061,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'314,,,,,,,,,,,,,,,,,,,314,,,,,,,,,,,,,,,,,,,,,,,,,,450,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,314' ]
        racc_goto_table = arr = ::Array.new(4695, 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 = [
'71,74,74,89,89,71,36,36,36,151,191,46,26,26,54,54,26,74,33,48,12,105',
'191,31,71,23,111,76,76,33,23,90,72,32,85,85,71,71,71,10,114,81,81,108',
'108,10,19,19,44,44,19,110,232,11,92,224,67,17,17,22,69,23,13,93,71,93',
'115,26,26,26,26,109,24,24,71,71,71,123,81,81,81,56,85,41,41,50,223,223',
'5,23,228,54,170,170,232,128,221,221,221,23,7,19,19,19,19,31,185,40,87',
'87,114,9,87,28,218,218,88,88,88,71,122,180,168,79,63,132,132,28,71,142',
'71,55,55,55,68,124,138,40,2,186,193,193,8,140,23,125,64,8,169,88,88',
'150,150,23,229,23,57,6,5,26,26,232,144,154,200,195,195,3,62,62,62,73',
'73,93,93,154,26,26,14,145,16,10,18,86,86,86,21,35,35,171,171,92,13,36',
'89,217,217,207,207,171,25,27,42,43,45,49,8,51,59,77,82,84,91,71,74,20',
'86,103,20,104,112,113,184,116,229,71,117,118,119,184,11,71,20,120,121',
'126,130,26,23,33,23,135,136,23,143,191,146,147,71,142,23,22,22,148,149',
'22,23,23,152,153,144,8,223,85,85,11,72,78,2,22,8,6,8,23,155,36,36,145',
'185,157,93,78,158,33,36,161,110,185,69,162,218,163,123,164,165,115,123',
'69,138,168,166,173,175,176,168,168,177,54,54,32,193,181,182,188,189',
'140,198,199,1,31,89,122,203,32,26,204,89,150,71,205,169,169,71,206,209',
'185,71,71,210,50,81,211,33,186,125,26,212,213,216,11,124,195,195,23',
'11,71,142,23,19,81,33,222,23,114,226,86,86,71,208,208,208,208,227,,67',
',57,224,,,54,,71,71,32,,88,,,31,54,33,23,,88,,115,,,11,11,184,,,228',
'72,,23,23,,184,5,,32,184,74,35,35,54,,63,114,32,7,,63,54,31,180,89,79',
'40,68,,9,89,109,31,62,33,36,76,64,,,32,62,64,,,,10,86,86,,40,,13,184',
',56,86,,54,54,56,,,,5,8,17,31,,,,,,,36,,,,,,224,232,89,,36,184,,108',
'123,123,,,223,,93,,,69,,32,,,74,,32,32,,90,,,221,221,,221,221,,221,71',
'71,89,218,128,92,,,,,,167,167,40,,,,193,193,114,41,132,26,,139,24,139',
'193,,170,87,,223,193,223,55,72,36,89,,150,55,224,,78,,78,,89,,28,28',
',71,,28,28,,74,,,71,,13,,81,,,74,,71,,,,81,36,89,193,23,,67,,44,,89',
'36,,92,,67,208,71,208,,71,111,74,,,32,32,32,74,,,,,,11,40,,11,,,,71',
'23,,,23,36,89,78,,,,,88,,,55,10,114,74,,,,,,,23,74,71,61,,20,,,61,71',
'108,114,191,,,20,20,,,76,20,20,,,,61,,23,88,,23,123,123,,23,61,61,61',
',61,23,23,22,12,85,23,23,,,17,,,22,22,132,132,,22,22,221,221,221,221',
',78,78,,61,,78,78,105,61,61,,,61,71,,193,108,,108,,,71,,110,167,,133',
',,133,71,71,167,88,,46,151,28,,,,74,,48,,,,86,32,,,89,,,89,,,26,61,',
'137,,137,61,61,61,61,61,,61,,71,,,,81,,10,,,8,,71,,,40,81,8,139,221',
'67,19,,,,132,223,,,40,40,67,,225,,,,,71,,,,,71,86,,,,,,,,,,71,11,,,',
',,,,23,,,139,,23,,88,11,20,,223,127,,,10,23,,,61,61,61,61,61,61,61,71',
'40,,,,61,26,,23,,,61,61,61,61,85,,11,10,85,22,,,,,23,,,61,,40,71,78',
'71,,26,71,71,,40,19,,167,71,,40,,167,167,71,71,,,,,,,71,71,,167,,40',
'54,,,,,,19,,,31,,61,78,78,78,78,,71,61,61,,,,,,191,,61,139,,,139,,71',
'11,71,223,,,223,225,71,23,225,167,61,225,,225,61,,,11,,61,,,71,40,,23',
'71,,40,40,81,23,,,,,,,,11,,133,114,,,,,23,,61,127,23,,127,,127,,,,,',
',,61,61,61,139,40,,137,,,,,223,,,71,,,,225,,225,61,225,,225,,,71,,,78',
'81,,,,,,26,26,23,,225,71,71,,,,,71,,,,,33,137,,137,,137,11,127,71,127',
',127,11,127,23,23,,71,19,19,23,71,,,40,40,40,,36,89,127,,61,,40,,71',
',,71,81,,,,,,58,,,74,,58,,,,,11,,40,,,,,,23,71,,,58,,,61,,74,,,,,58',
'58,58,61,58,71,133,,,133,,,133,,133,,,,,71,,,11,,,,,,,,23,65,58,,,,',
'58,58,,137,58,137,,,,,,,,,,,,,83,,40,,,,,,61,,,,,137,134,134,134,,61',
',,,,,,,,133,,133,,133,58,133,61,,,58,58,58,58,58,,58,40,,61,,,61,133',
',65,,,137,61,137,,137,,,,,,,61,,,,61,,,,,65,,,137,,,,,,,,,,,,,,,,,,',
'61,,,61,61,,,61,,,,,,61,61,,,,61,61,,,134,134,134,134,,134,,58,58,58',
'58,58,58,58,,,30,,,58,,30,,,,58,58,58,58,83,83,,,,,,,,30,,,,58,,134',
'134,134,134,30,30,30,,30,30,30,,134,,,,,,,,,,,,,,,,,,,,,,,,30,,,,,30',
'30,,58,30,30,30,30,,65,58,58,,,,,,,,58,,,,,,,,,,,,95,95,,,,,58,,,,58',
',,,,58,83,65,83,30,,83,83,,30,30,30,30,30,,30,,61,,,,,61,61,,,,,,,58',
',,61,,,,,,,65,,,,58,58,58,,65,,65,61,,,65,,,,,,,,,,,58,,,61,,65,,,,',
',65,,,,,,,,,,,,,,,,,,,65,,,30,30,30,30,30,30,30,,,,,,30,,,,,83,30,30',
'30,30,,,,,,,,,,58,,61,,30,,,,,,,,,,,,,,,61,,,,,,,,,,,,61,,,,,,61,,58',
',,,61,,,,83,,58,30,,,,,,,30,30,61,,,,,,,30,,,,,,65,95,,,,,,,29,95,,',
'30,29,,,30,,95,95,30,30,,,,,,,,,,,,,,,,58,,30,,,61,,29,,,58,83,,83,30',
'83,,,,107,107,,,,,,58,,30,30,30,,,61,61,29,,,58,61,,58,,,,,,,58,30,',
',83,,,83,,,58,,,,58,,,65,,,83,,,,,,,,,,,,,,,61,,61,61,,,58,29,,58,58',
',,58,,61,29,,29,58,58,,,,58,58,,,,83,30,,,,,,,,83,83,,,,,61,,,,,,,,83',
',,,,,95,,95,,,95,95,83,,,,30,95,,,,,65,95,95,,30,,,,,95,95,,,,,65,,',
',,,,,,,,29,,29,,,29,,,,,,,29,,,,,,29,29,,,95,,,,,,,,,65,,,,29,,,30,',
',,,,83,,30,,30,,,,107,83,,30,83,,,,107,,,,30,,,,,107,107,,,,,58,30,',
',30,58,58,,,,,30,,,,,58,,,,,30,,,,30,,,,65,65,65,,,58,,,,,,29,,,,29',
'65,,83,,29,,58,30,,,30,30,,,30,,,,,,30,30,,,,30,30,70,95,98,98,,70,',
'29,,,95,,,,95,,,,,,,,29,29,70,,,,,,,,,,,,70,70,70,,,,58,,,,,,,,,,,,',
',,,95,58,,,,,70,,,,,,,58,,,70,70,70,58,,,,,107,58,107,,,107,107,,95',
',,,107,,,83,,58,107,107,,,,,,,107,107,,,,30,,,83,,,70,,,102,102,30,',
',,70,,70,,,,,,,,,,,,,,,,,107,,,30,,,,58,30,30,,,,,,,,,,30,,,,,,,,,,',
',,,,,58,58,30,,,,58,,,,,,,,,,,,,30,,,,,,,,,,,,70,,29,,,,98,,,,,,70,',
'98,,,,70,58,,58,58,98,98,,,,,,,,,,58,70,,,,,29,,,29,,,,96,96,,,30,,',
',,,,,,107,,,58,29,,,,30,107,,,,107,,,,,,,30,,,,,,30,,,,,29,30,,29,,',
',29,,,,,,29,29,,,30,29,29,,30,,,70,,107,,70,,,,70,70,,102,,,,,,,,102',
',,,,,,34,70,102,102,,34,,,107,,,,,70,,,,,,,,,30,,,,,,70,70,,,,,,30,34',
'34,34,,,,98,,98,,,98,98,,30,30,,,98,,30,,,,98,98,,,34,,,,98,98,,,,,34',
'34,34,,,,,,,,,,,,,,,,,,,,,30,,,30,,30,30,,,,98,,,,,,,,30,,,,34,29,,',
'96,,29,,,34,,34,96,,,,,29,,,,96,96,,,30,,,,,,,,,,29,,,,,,,,102,,102',
',,102,102,,,29,,,102,,,,,,102,102,,,,,,,102,102,,,,,,,,,,,,,,,,,,,,',
',,,34,,34,,,34,,,70,,,,34,,102,,70,,34,34,98,,,,,70,,39,,98,,,39,98',
',34,,,29,,,,,,,,70,,,70,,,,,,,29,,,,,,29,39,39,39,,,,,70,,,,,,,98,29',
',,,,,,,,96,,96,,39,96,96,,97,97,70,,96,,39,39,39,70,96,96,,,98,,,,96',
'96,34,,,,34,,,,34,34,,,,,,,,,29,,,,,,,102,,34,38,,,39,,38,102,,,96,102',
'34,39,,39,,,,29,29,,,,,29,,34,34,,,,,,,,,38,38,38,,,,,,,,,,,,,,,,102',
',,,,,,,,,38,,,,29,,,,,,38,38,38,,,,,,,,,,102,70,,,,,,,,,,39,70,39,,',
'39,,,,,,,39,,,29,,,39,39,,,38,,,,,70,,,,38,70,38,,39,,,96,,,,,70,,,',
'96,,,,96,,,,,,,,,,,,,,,,100,100,,,,97,,,,,,70,,97,,,,,,,,,97,97,,,,',
'96,,,,,,,,,,,,,,,,,,,,39,38,,38,39,,38,34,39,39,,,96,38,,34,,,,38,38',
',,,34,,,39,,,,,,,,,38,,,39,,,,70,,34,,,34,,,,,,39,39,,,,,,70,,,,,,70',
',34,,,,,,,,,,,,,,70,,,,70,,101,101,,,,,,34,,,34,,,,34,,,,,,34,34,,,',
'34,34,38,,,,38,,,,38,38,,,,,,,,,97,,97,,70,97,97,,,38,,,97,,,,,70,97',
'97,,38,,,,,97,97,,,,,70,70,,100,38,38,70,,,,,100,,,,,,,,,100,100,,,',
',,,,,,,,97,,,,,,,,,,,,,,70,,,70,,,,,,,,,,,,,34,,,,,,,,,,,34,,,,,,,39',
',,,,,,,39,,,,,70,,,,39,,34,,,,,34,,,,,,,,,,,34,,,39,,,39,,,,,,,,,,99',
'99,34,,,,,,101,,,39,,,,,101,,39,34,,,,,,101,101,97,,,,,,,,,97,,39,,97',
'39,,,,39,,,100,,100,39,39,100,100,,39,39,,,100,,,,,38,100,100,,,,,,38',
'100,100,,,,,,,38,,97,,,,,,,,,,,,,,,34,,,,38,,,38,,,,,,,100,,,97,34,',
',,,,34,,,,38,,,,,,,,,,,,34,,,,34,,,,,,,,,,,38,,,38,,,,38,,,,,,38,38',
',,39,38,38,,,,,,,,,39,,,101,,101,,,101,101,,,34,,,101,,,,,,101,101,',
',34,39,,,101,101,39,,,,99,,,,,34,34,39,99,,,34,,,,,,99,99,,,,100,,,39',
',,,,,100,,101,,100,,,,,,,39,,,,,,,,,,34,,,34,,,,,,,,,,,,,,,38,,,,,37',
',,,100,,38,,,,37,37,37,,,,,,,,,,37,37,34,37,37,,37,,,,38,,,,100,38,',
',,,,37,37,,,39,38,,,,,,,,,,,,,,,,,39,38,,,,,39,,,,,,,,,,,,38,101,,,39',
',,,39,,101,,,,101,,,,,99,,99,,,99,99,,,,,,99,,,,,,99,99,,,,,,,99,99',
',,,,,,,,,,,101,39,,,,,,,,,,,,,39,,,,,,,,38,,,,99,,,39,39,,101,,,39,',
',,,38,,,,,,38,,,,,37,37,,,37,37,,,,,,38,,,,38,,,37,,,,,,,39,,,39,,,37',
',,,,,,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37',
'37,,,,,37,,38,,,,,,39,,,,,,,38,,,,,,,,37,37,,,,,,38,38,37,,,,38,99,',
'37,,37,,,37,37,99,,,,99,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,38,,,,,,37,,37',
',,,,,99,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,99,,,,,,,,,,,,,,,,,,,,,,,,',
',,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' ]
        racc_goto_check = arr = ::Array.new(4695, 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,   318,   136,   167,   nil,    83,   150,    95,   140,   102,
  -188,    15,  -449,  -628,  -707,   nil,  -397,    47,   171,   -25,
    -2,   110,    35,    23,  -144,   -16,   -59,    68,  -107,  1689,
  1365,  -198,  -418,     0,  2403,   168,   -28,  3539,  2759,  2643,
    84,  -441,   -50,   -50,   -25,  -415,   -15,   nil,    -7,   179,
    56,  -342,   nil,   nil,  -208,   100,  -221,  -406,  1143,  -347,
   nil,   663,   134,    86,   108,   972,   nil,    17,    94,  -297,
  2049,    -2,  -367,    94,    -9,   nil,    17,  -219,    47,    75,
   nil,     2,   159,  1164,   144,    15,   149,  -265,    82,   -28,
  -272,  -340,  -263,  -504,   nil,   943,  1787,  2189,  1529,  2747,
  2401,  2538,  1649,   191,   151,   -48,   nil,  1215,  -338,  -747,
  -336,  -596,   144,  -182,    35,    46,   158,  -144,   161,  -408,
  -610,  -171,  -787,  -414,  -356,  -763,  -672,   -95,  -599,   nil,
  -730,   nil,  -349,    58,   178,  -827,  -724,    86,  -830,  -152,
  -644,   nil,  -717,  -848,  -930,  -913,  -160,  -598,   171,  -386,
   -79,   -18,  -736,  -736,  -388,   -23,   nil,   -28,   -26,   nil,
   nil,  -494,  -796,  -692,  -920,  -534,  -841,     9,  -619,  -593,
  -432,  -734,   nil,  -618,   nil,  -618,  -437,  -434,   nil,   nil,
  -621,  -431,  -431,   nil,  -708,  -831,  -779,   nil,  -626,  -625,
   nil,   -77,   nil,  -384,   nil,  -593,   nil,   nil,  -455,  -374,
  -725,   nil,   nil,   237,   235,   238,   241,  -214,   -41,   241,
   244,   246,  -300,  -300,   nil,   nil,  -289,  -154,  -116,   nil,
   nil,  -382,  -337,  -144,  -643,  -137,  -330,  -753,  -610,  -977,
   nil,   nil,  -517 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,   nil,     6,   388,   331,   nil,
   nil,   469,   nil,   978,   nil,   328,   329,   nil,   nil,   nil,
    13,    14,    22,   244,   nil,   nil,    16,   nil,   438,   245,
   360,   nil,   nil,   634,   248,   nil,    27,    25,   249,   243,
   514,   nil,   nil,   nil,   nil,   nil,   nil,   383,   140,   nil,
   nil,   nil,    28,    29,   808,   nil,   nil,   nil,   348,   nil,
    30,   345,   452,    37,   nil,   nil,    39,    42,    41,   nil,
   240,   241,   400,   nil,   460,   139,    84,   nil,   443,   100,
    51,    54,   280,   320,   nil,   886,   453,   nil,   454,   465,
   477,   683,   566,   318,   304,    55,    56,    57,    58,    59,
    60,    61,    62,    63,   nil,   305,    69,    70,   nil,   nil,
   nil,   nil,   nil,   nil,   616,   227,   nil,   nil,   nil,   nil,
   nil,   nil,   707,   489,   nil,   708,   709,   475,   471,   472,
  1172,  1065,   nil,   476,   nil,   nil,   nil,   478,   nil,   480,
   nil,   965,   nil,   nil,   nil,   487,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   464,   nil,   nil,   787,
   779,   nil,   nil,   nil,   nil,   nil,   nil,  1045,   nil,   732,
   931,   734,   735,   739,   736,   737,   nil,   nil,   738,   740,
   nil,   nil,   nil,   930,   932,   nil,   744,   746,   747,   748,
   749,   nil,   753,   498,   754,   755,   756,   757,   nil,   nil,
   nil,    83,    85,    86,   nil,   nil,   nil,   nil,   644,   nil,
   nil,   nil,   nil,   nil,    96,    97,   nil,   228,   896,   231,
   474,   nil,   479,   904,   492,   494,   495,  1076,   499,  1077,
   502,   505,   323 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 150, :_reduce_1,
  2, 148, :_reduce_2,
  2, 149, :_reduce_3,
  0, 151, :_reduce_4,
  1, 151, :_reduce_5,
  3, 151, :_reduce_6,
  2, 151, :_reduce_7,
  1, 153, :_reduce_none,
  2, 153, :_reduce_9,
  3, 156, :_reduce_10,
  4, 157, :_reduce_11,
  2, 158, :_reduce_12,
  0, 162, :_reduce_13,
  1, 162, :_reduce_14,
  3, 162, :_reduce_15,
  2, 162, :_reduce_16,
  1, 163, :_reduce_none,
  2, 163, :_reduce_18,
  0, 174, :_reduce_19,
  4, 155, :_reduce_20,
  3, 155, :_reduce_21,
  3, 155, :_reduce_22,
  3, 155, :_reduce_23,
  2, 155, :_reduce_24,
  3, 155, :_reduce_25,
  3, 155, :_reduce_26,
  3, 155, :_reduce_27,
  3, 155, :_reduce_28,
  3, 155, :_reduce_29,
  4, 155, :_reduce_30,
  1, 155, :_reduce_none,
  3, 155, :_reduce_32,
  3, 155, :_reduce_33,
  5, 155, :_reduce_34,
  3, 155, :_reduce_35,
  1, 155, :_reduce_none,
  3, 167, :_reduce_37,
  3, 167, :_reduce_38,
  6, 167, :_reduce_39,
  5, 167, :_reduce_40,
  5, 167, :_reduce_41,
  5, 167, :_reduce_42,
  5, 167, :_reduce_43,
  4, 167, :_reduce_44,
  6, 167, :_reduce_45,
  4, 167, :_reduce_46,
  6, 167, :_reduce_47,
  3, 167, :_reduce_48,
  1, 175, :_reduce_none,
  3, 175, :_reduce_50,
  1, 175, :_reduce_none,
  1, 173, :_reduce_none,
  3, 173, :_reduce_53,
  3, 173, :_reduce_54,
  3, 173, :_reduce_55,
  2, 173, :_reduce_56,
  0, 189, :_reduce_57,
  4, 173, :_reduce_58,
  0, 190, :_reduce_59,
  4, 173, :_reduce_60,
  1, 173, :_reduce_none,
  1, 166, :_reduce_none,
  0, 194, :_reduce_63,
  3, 191, :_reduce_64,
  1, 193, :_reduce_65,
  2, 181, :_reduce_66,
  0, 198, :_reduce_67,
  5, 185, :_reduce_68,
  1, 169, :_reduce_none,
  1, 169, :_reduce_none,
  1, 199, :_reduce_none,
  4, 199, :_reduce_72,
  0, 206, :_reduce_73,
  4, 203, :_reduce_74,
  1, 205, :_reduce_none,
  2, 183, :_reduce_76,
  3, 183, :_reduce_77,
  4, 183, :_reduce_78,
  5, 183, :_reduce_79,
  4, 183, :_reduce_80,
  5, 183, :_reduce_81,
  2, 183, :_reduce_82,
  2, 183, :_reduce_83,
  2, 183, :_reduce_84,
  2, 183, :_reduce_85,
  2, 183, :_reduce_86,
  1, 168, :_reduce_87,
  3, 168, :_reduce_88,
  1, 211, :_reduce_89,
  3, 211, :_reduce_90,
  1, 210, :_reduce_none,
  2, 210, :_reduce_92,
  3, 210, :_reduce_93,
  5, 210, :_reduce_94,
  2, 210, :_reduce_95,
  4, 210, :_reduce_96,
  2, 210, :_reduce_97,
  4, 210, :_reduce_98,
  1, 210, :_reduce_99,
  3, 210, :_reduce_100,
  1, 214, :_reduce_none,
  3, 214, :_reduce_102,
  2, 213, :_reduce_103,
  3, 213, :_reduce_104,
  1, 216, :_reduce_105,
  3, 216, :_reduce_106,
  1, 215, :_reduce_107,
  1, 215, :_reduce_108,
  4, 215, :_reduce_109,
  3, 215, :_reduce_110,
  3, 215, :_reduce_111,
  3, 215, :_reduce_112,
  3, 215, :_reduce_113,
  2, 215, :_reduce_114,
  1, 215, :_reduce_115,
  1, 170, :_reduce_116,
  1, 170, :_reduce_117,
  4, 170, :_reduce_118,
  3, 170, :_reduce_119,
  3, 170, :_reduce_120,
  3, 170, :_reduce_121,
  3, 170, :_reduce_122,
  2, 170, :_reduce_123,
  1, 170, :_reduce_124,
  1, 219, :_reduce_125,
  1, 219, :_reduce_none,
  2, 220, :_reduce_127,
  1, 220, :_reduce_128,
  3, 220, :_reduce_129,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 195, :_reduce_none,
  1, 164, :_reduce_135,
  1, 164, :_reduce_none,
  1, 165, :_reduce_137,
  0, 224, :_reduce_138,
  4, 165, :_reduce_139,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  1, 222, :_reduce_none,
  3, 184, :_reduce_211,
  3, 184, :_reduce_212,
  6, 184, :_reduce_213,
  5, 184, :_reduce_214,
  5, 184, :_reduce_215,
  5, 184, :_reduce_216,
  5, 184, :_reduce_217,
  4, 184, :_reduce_218,
  3, 184, :_reduce_219,
  3, 184, :_reduce_220,
  3, 184, :_reduce_221,
  2, 184, :_reduce_222,
  2, 184, :_reduce_223,
  2, 184, :_reduce_224,
  2, 184, :_reduce_225,
  3, 184, :_reduce_226,
  3, 184, :_reduce_227,
  3, 184, :_reduce_228,
  3, 184, :_reduce_229,
  3, 184, :_reduce_230,
  3, 184, :_reduce_231,
  4, 184, :_reduce_232,
  2, 184, :_reduce_233,
  2, 184, :_reduce_234,
  3, 184, :_reduce_235,
  3, 184, :_reduce_236,
  3, 184, :_reduce_237,
  3, 184, :_reduce_238,
  1, 184, :_reduce_none,
  3, 184, :_reduce_240,
  3, 184, :_reduce_241,
  3, 184, :_reduce_242,
  3, 184, :_reduce_243,
  3, 184, :_reduce_244,
  2, 184, :_reduce_245,
  2, 184, :_reduce_246,
  3, 184, :_reduce_247,
  3, 184, :_reduce_248,
  3, 184, :_reduce_249,
  3, 184, :_reduce_250,
  3, 184, :_reduce_251,
  6, 184, :_reduce_252,
  4, 184, :_reduce_253,
  6, 184, :_reduce_254,
  4, 184, :_reduce_255,
  6, 184, :_reduce_256,
  1, 184, :_reduce_none,
  1, 229, :_reduce_none,
  1, 229, :_reduce_none,
  1, 229, :_reduce_none,
  1, 229, :_reduce_none,
  3, 227, :_reduce_262,
  3, 227, :_reduce_263,
  1, 230, :_reduce_none,
  1, 231, :_reduce_none,
  2, 231, :_reduce_none,
  4, 231, :_reduce_267,
  2, 231, :_reduce_268,
  1, 225, :_reduce_none,
  3, 225, :_reduce_270,
  3, 236, :_reduce_271,
  5, 236, :_reduce_272,
  3, 236, :_reduce_273,
  0, 238, :_reduce_274,
  1, 238, :_reduce_none,
  0, 178, :_reduce_276,
  1, 178, :_reduce_none,
  2, 178, :_reduce_none,
  4, 178, :_reduce_279,
  2, 178, :_reduce_280,
  1, 209, :_reduce_281,
  2, 209, :_reduce_282,
  2, 209, :_reduce_283,
  4, 209, :_reduce_284,
  1, 209, :_reduce_285,
  0, 241, :_reduce_286,
  2, 202, :_reduce_287,
  2, 240, :_reduce_288,
  1, 240, :_reduce_289,
  2, 239, :_reduce_290,
  0, 239, :_reduce_291,
  1, 233, :_reduce_292,
  2, 233, :_reduce_293,
  3, 233, :_reduce_294,
  4, 233, :_reduce_295,
  1, 172, :_reduce_296,
  1, 172, :_reduce_none,
  3, 171, :_reduce_298,
  4, 171, :_reduce_299,
  2, 171, :_reduce_300,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_311,
  0, 263, :_reduce_312,
  4, 228, :_reduce_313,
  0, 264, :_reduce_314,
  4, 228, :_reduce_315,
  0, 265, :_reduce_316,
  4, 228, :_reduce_317,
  3, 228, :_reduce_318,
  3, 228, :_reduce_319,
  2, 228, :_reduce_320,
  3, 228, :_reduce_321,
  3, 228, :_reduce_322,
  1, 228, :_reduce_323,
  4, 228, :_reduce_324,
  3, 228, :_reduce_325,
  1, 228, :_reduce_326,
  5, 228, :_reduce_327,
  4, 228, :_reduce_328,
  3, 228, :_reduce_329,
  2, 228, :_reduce_330,
  1, 228, :_reduce_none,
  2, 228, :_reduce_332,
  1, 228, :_reduce_none,
  6, 228, :_reduce_334,
  6, 228, :_reduce_335,
  4, 228, :_reduce_336,
  4, 228, :_reduce_337,
  5, 228, :_reduce_338,
  4, 228, :_reduce_339,
  5, 228, :_reduce_340,
  6, 228, :_reduce_341,
  0, 266, :_reduce_342,
  6, 228, :_reduce_343,
  0, 267, :_reduce_344,
  7, 228, :_reduce_345,
  0, 268, :_reduce_346,
  5, 228, :_reduce_347,
  4, 228, :_reduce_348,
  4, 228, :_reduce_349,
  1, 228, :_reduce_350,
  1, 228, :_reduce_351,
  1, 228, :_reduce_352,
  1, 228, :_reduce_353,
  1, 177, :_reduce_none,
  1, 208, :_reduce_355,
  1, 255, :_reduce_none,
  1, 255, :_reduce_none,
  2, 255, :_reduce_358,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 256, :_reduce_none,
  5, 256, :_reduce_362,
  1, 160, :_reduce_none,
  2, 160, :_reduce_364,
  1, 259, :_reduce_none,
  1, 259, :_reduce_none,
  1, 269, :_reduce_367,
  3, 269, :_reduce_368,
  1, 272, :_reduce_369,
  3, 272, :_reduce_370,
  1, 271, :_reduce_none,
  3, 271, :_reduce_372,
  5, 271, :_reduce_373,
  1, 271, :_reduce_374,
  3, 271, :_reduce_375,
  2, 273, :_reduce_376,
  1, 273, :_reduce_377,
  1, 274, :_reduce_none,
  1, 274, :_reduce_none,
  4, 277, :_reduce_380,
  2, 277, :_reduce_381,
  2, 277, :_reduce_382,
  1, 277, :_reduce_383,
  2, 281, :_reduce_384,
  0, 281, :_reduce_385,
  1, 282, :_reduce_none,
  6, 283, :_reduce_387,
  8, 283, :_reduce_388,
  4, 283, :_reduce_389,
  6, 283, :_reduce_390,
  4, 283, :_reduce_391,
  2, 283, :_reduce_none,
  6, 283, :_reduce_393,
  2, 283, :_reduce_394,
  4, 283, :_reduce_395,
  6, 283, :_reduce_396,
  2, 283, :_reduce_397,
  4, 283, :_reduce_398,
  2, 283, :_reduce_399,
  4, 283, :_reduce_400,
  1, 283, :_reduce_none,
  0, 287, :_reduce_402,
  1, 287, :_reduce_403,
  3, 288, :_reduce_404,
  4, 288, :_reduce_405,
  1, 289, :_reduce_406,
  4, 289, :_reduce_407,
  1, 290, :_reduce_408,
  3, 290, :_reduce_409,
  1, 291, :_reduce_410,
  1, 291, :_reduce_none,
  0, 295, :_reduce_412,
  0, 296, :_reduce_413,
  5, 254, :_reduce_414,
  4, 293, :_reduce_415,
  1, 293, :_reduce_416,
  0, 299, :_reduce_417,
  4, 294, :_reduce_418,
  0, 300, :_reduce_419,
  4, 294, :_reduce_420,
  0, 302, :_reduce_421,
  4, 298, :_reduce_422,
  2, 200, :_reduce_423,
  4, 200, :_reduce_424,
  5, 200, :_reduce_425,
  5, 200, :_reduce_426,
  2, 253, :_reduce_427,
  4, 253, :_reduce_428,
  4, 253, :_reduce_429,
  3, 253, :_reduce_430,
  3, 253, :_reduce_431,
  3, 253, :_reduce_432,
  2, 253, :_reduce_433,
  1, 253, :_reduce_434,
  4, 253, :_reduce_435,
  0, 304, :_reduce_436,
  4, 252, :_reduce_437,
  0, 305, :_reduce_438,
  4, 252, :_reduce_439,
  0, 306, :_reduce_440,
  3, 204, :_reduce_441,
  0, 307, :_reduce_442,
  0, 308, :_reduce_443,
  4, 301, :_reduce_444,
  5, 257, :_reduce_445,
  1, 309, :_reduce_446,
  1, 309, :_reduce_none,
  0, 312, :_reduce_448,
  0, 313, :_reduce_449,
  7, 258, :_reduce_450,
  1, 311, :_reduce_451,
  1, 311, :_reduce_none,
  1, 310, :_reduce_453,
  3, 310, :_reduce_454,
  3, 310, :_reduce_455,
  1, 188, :_reduce_none,
  2, 188, :_reduce_457,
  3, 188, :_reduce_458,
  1, 188, :_reduce_459,
  1, 188, :_reduce_460,
  1, 188, :_reduce_461,
  1, 314, :_reduce_none,
  3, 319, :_reduce_463,
  1, 319, :_reduce_none,
  3, 321, :_reduce_465,
  1, 321, :_reduce_none,
  1, 323, :_reduce_467,
  1, 324, :_reduce_468,
  1, 322, :_reduce_none,
  1, 322, :_reduce_none,
  4, 322, :_reduce_471,
  4, 322, :_reduce_472,
  4, 322, :_reduce_473,
  3, 322, :_reduce_474,
  4, 322, :_reduce_475,
  4, 322, :_reduce_476,
  4, 322, :_reduce_477,
  3, 322, :_reduce_478,
  3, 322, :_reduce_479,
  3, 322, :_reduce_480,
  2, 322, :_reduce_481,
  0, 328, :_reduce_482,
  4, 322, :_reduce_483,
  2, 322, :_reduce_484,
  0, 329, :_reduce_485,
  4, 322, :_reduce_486,
  1, 315, :_reduce_487,
  1, 315, :_reduce_488,
  2, 315, :_reduce_489,
  3, 315, :_reduce_490,
  5, 315, :_reduce_491,
  2, 315, :_reduce_492,
  4, 315, :_reduce_493,
  1, 315, :_reduce_none,
  2, 330, :_reduce_495,
  3, 330, :_reduce_496,
  1, 317, :_reduce_497,
  3, 317, :_reduce_498,
  5, 316, :_reduce_499,
  2, 333, :_reduce_500,
  1, 333, :_reduce_501,
  1, 332, :_reduce_502,
  3, 332, :_reduce_503,
  1, 331, :_reduce_none,
  3, 318, :_reduce_505,
  1, 318, :_reduce_506,
  2, 318, :_reduce_507,
  1, 318, :_reduce_508,
  1, 334, :_reduce_509,
  3, 334, :_reduce_510,
  2, 336, :_reduce_511,
  1, 336, :_reduce_512,
  1, 337, :_reduce_513,
  3, 337, :_reduce_514,
  2, 339, :_reduce_515,
  1, 339, :_reduce_516,
  2, 341, :_reduce_517,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 325, :_reduce_none,
  3, 325, :_reduce_521,
  3, 325, :_reduce_522,
  2, 325, :_reduce_523,
  2, 325, :_reduce_524,
  1, 325, :_reduce_none,
  1, 325, :_reduce_none,
  1, 325, :_reduce_none,
  2, 325, :_reduce_528,
  2, 325, :_reduce_529,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_none,
  1, 342, :_reduce_538,
  1, 342, :_reduce_none,
  1, 320, :_reduce_540,
  2, 343, :_reduce_541,
  2, 343, :_reduce_542,
  4, 344, :_reduce_543,
  2, 326, :_reduce_544,
  3, 326, :_reduce_545,
  1, 326, :_reduce_546,
  6, 159, :_reduce_547,
  0, 159, :_reduce_548,
  1, 346, :_reduce_549,
  1, 346, :_reduce_none,
  1, 346, :_reduce_none,
  2, 347, :_reduce_552,
  1, 347, :_reduce_none,
  2, 161, :_reduce_554,
  1, 161, :_reduce_none,
  1, 242, :_reduce_none,
  1, 242, :_reduce_none,
  1, 243, :_reduce_558,
  1, 349, :_reduce_559,
  2, 349, :_reduce_560,
  3, 350, :_reduce_561,
  1, 350, :_reduce_562,
  1, 350, :_reduce_563,
  3, 244, :_reduce_564,
  4, 245, :_reduce_565,
  3, 246, :_reduce_566,
  0, 353, :_reduce_567,
  3, 353, :_reduce_568,
  1, 354, :_reduce_569,
  2, 354, :_reduce_570,
  3, 248, :_reduce_571,
  0, 356, :_reduce_572,
  3, 356, :_reduce_573,
  3, 247, :_reduce_574,
  3, 249, :_reduce_575,
  0, 357, :_reduce_576,
  3, 357, :_reduce_577,
  0, 358, :_reduce_578,
  3, 358, :_reduce_579,
  0, 338, :_reduce_580,
  2, 338, :_reduce_581,
  0, 351, :_reduce_582,
  2, 351, :_reduce_583,
  0, 352, :_reduce_584,
  2, 352, :_reduce_585,
  1, 355, :_reduce_586,
  2, 355, :_reduce_587,
  0, 360, :_reduce_588,
  4, 355, :_reduce_589,
  1, 359, :_reduce_590,
  1, 359, :_reduce_591,
  1, 359, :_reduce_592,
  1, 359, :_reduce_none,
  1, 223, :_reduce_none,
  1, 223, :_reduce_none,
  1, 361, :_reduce_596,
  3, 362, :_reduce_597,
  1, 348, :_reduce_598,
  2, 348, :_reduce_599,
  1, 226, :_reduce_600,
  1, 226, :_reduce_601,
  1, 226, :_reduce_602,
  1, 226, :_reduce_603,
  1, 345, :_reduce_604,
  1, 345, :_reduce_605,
  1, 345, :_reduce_606,
  1, 217, :_reduce_607,
  1, 217, :_reduce_608,
  1, 217, :_reduce_609,
  1, 217, :_reduce_610,
  1, 217, :_reduce_611,
  1, 218, :_reduce_612,
  1, 218, :_reduce_613,
  1, 218, :_reduce_614,
  1, 218, :_reduce_615,
  1, 218, :_reduce_616,
  1, 218, :_reduce_617,
  1, 218, :_reduce_618,
  1, 250, :_reduce_619,
  1, 250, :_reduce_620,
  1, 176, :_reduce_621,
  1, 176, :_reduce_622,
  1, 186, :_reduce_623,
  1, 186, :_reduce_624,
  0, 363, :_reduce_625,
  4, 260, :_reduce_626,
  0, 260, :_reduce_627,
  1, 182, :_reduce_none,
  1, 182, :_reduce_629,
  3, 364, :_reduce_630,
  1, 262, :_reduce_none,
  0, 366, :_reduce_632,
  3, 262, :_reduce_633,
  4, 365, :_reduce_634,
  2, 365, :_reduce_635,
  2, 365, :_reduce_636,
  1, 365, :_reduce_637,
  1, 365, :_reduce_638,
  2, 368, :_reduce_639,
  0, 368, :_reduce_640,
  6, 297, :_reduce_641,
  8, 297, :_reduce_642,
  4, 297, :_reduce_643,
  6, 297, :_reduce_644,
  4, 297, :_reduce_645,
  6, 297, :_reduce_646,
  2, 297, :_reduce_647,
  4, 297, :_reduce_648,
  6, 297, :_reduce_649,
  2, 297, :_reduce_650,
  4, 297, :_reduce_651,
  2, 297, :_reduce_652,
  4, 297, :_reduce_653,
  1, 297, :_reduce_654,
  0, 297, :_reduce_655,
  1, 237, :_reduce_656,
  1, 292, :_reduce_657,
  1, 292, :_reduce_658,
  1, 292, :_reduce_659,
  1, 292, :_reduce_660,
  1, 270, :_reduce_none,
  1, 270, :_reduce_662,
  1, 370, :_reduce_663,
  1, 371, :_reduce_664,
  3, 371, :_reduce_665,
  1, 284, :_reduce_666,
  3, 284, :_reduce_667,
  1, 372, :_reduce_668,
  2, 373, :_reduce_669,
  1, 373, :_reduce_670,
  2, 374, :_reduce_671,
  1, 374, :_reduce_672,
  1, 278, :_reduce_673,
  3, 278, :_reduce_674,
  1, 367, :_reduce_675,
  3, 367, :_reduce_676,
  1, 340, :_reduce_none,
  1, 340, :_reduce_none,
  2, 276, :_reduce_679,
  2, 275, :_reduce_680,
  1, 275, :_reduce_681,
  3, 375, :_reduce_682,
  3, 376, :_reduce_683,
  1, 285, :_reduce_684,
  3, 285, :_reduce_685,
  1, 369, :_reduce_686,
  3, 369, :_reduce_687,
  1, 377, :_reduce_none,
  1, 377, :_reduce_none,
  2, 286, :_reduce_690,
  1, 286, :_reduce_691,
  1, 378, :_reduce_none,
  1, 378, :_reduce_none,
  2, 280, :_reduce_694,
  1, 280, :_reduce_695,
  2, 279, :_reduce_696,
  0, 279, :_reduce_697,
  1, 196, :_reduce_none,
  3, 196, :_reduce_699,
  0, 251, :_reduce_700,
  2, 251, :_reduce_none,
  1, 235, :_reduce_702,
  3, 235, :_reduce_703,
  3, 379, :_reduce_704,
  2, 379, :_reduce_705,
  1, 379, :_reduce_706,
  4, 379, :_reduce_707,
  2, 379, :_reduce_708,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 207, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 201, :_reduce_none,
  1, 303, :_reduce_none,
  1, 303, :_reduce_none,
  1, 303, :_reduce_none,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 180, :_reduce_721,
  1, 180, :_reduce_722,
  0, 152, :_reduce_none,
  1, 152, :_reduce_none,
  0, 187, :_reduce_none,
  1, 187, :_reduce_none,
  2, 212, :_reduce_727,
  2, 179, :_reduce_728,
  2, 327, :_reduce_729,
  0, 234, :_reduce_none,
  1, 234, :_reduce_none,
  1, 234, :_reduce_none,
  1, 261, :_reduce_733,
  1, 261, :_reduce_none,
  1, 154, :_reduce_none,
  2, 154, :_reduce_none,
  0, 232, :_reduce_737 ]

racc_reduce_n = 738

racc_shift_n = 1231

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,
  :tUPLUS => 63,
  :tUMINUS => 64,
  :tUNARY_NUM => 65,
  :tPOW => 66,
  :tCMP => 67,
  :tEQ => 68,
  :tEQQ => 69,
  :tNEQ => 70,
  :tGEQ => 71,
  :tLEQ => 72,
  :tANDOP => 73,
  :tOROP => 74,
  :tMATCH => 75,
  :tNMATCH => 76,
  :tDOT => 77,
  :tDOT2 => 78,
  :tDOT3 => 79,
  :tAREF => 80,
  :tASET => 81,
  :tLSHFT => 82,
  :tRSHFT => 83,
  :tCOLON2 => 84,
  :tCOLON3 => 85,
  :tOP_ASGN => 86,
  :tASSOC => 87,
  :tLPAREN => 88,
  :tLPAREN2 => 89,
  :tRPAREN => 90,
  :tLPAREN_ARG => 91,
  :tLBRACK => 92,
  :tLBRACK2 => 93,
  :tRBRACK => 94,
  :tLBRACE => 95,
  :tLBRACE_ARG => 96,
  :tSTAR => 97,
  :tSTAR2 => 98,
  :tAMPER => 99,
  :tAMPER2 => 100,
  :tTILDE => 101,
  :tPERCENT => 102,
  :tDIVIDE => 103,
  :tDSTAR => 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,
  :tREGEXP_OPT => 119,
  :tWORDS_BEG => 120,
  :tQWORDS_BEG => 121,
  :tSYMBOLS_BEG => 122,
  :tQSYMBOLS_BEG => 123,
  :tSTRING_DBEG => 124,
  :tSTRING_DVAR => 125,
  :tSTRING_END => 126,
  :tSTRING_DEND => 127,
  :tSTRING => 128,
  :tSYMBOL => 129,
  :tNL => 130,
  :tEH => 131,
  :tCOLON => 132,
  :tCOMMA => 133,
  :tSPACE => 134,
  :tSEMI => 135,
  :tLAMBDA => 136,
  :tLAMBEG => 137,
  :tCHARACTER => 138,
  :tRATIONAL => 139,
  :tIMAGINARY => 140,
  :tLABEL_END => 141,
  :tANDDOT => 142,
  :tBDOT2 => 143,
  :tBDOT3 => 144,
  :tEQL => 145,
  :tLOWEST => 146 }

racc_nt_base = 147

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",
  "tUPLUS",
  "tUMINUS",
  "tUNARY_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",
  "tDSTAR",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tREGEXP_OPT",
  "tWORDS_BEG",
  "tQWORDS_BEG",
  "tSYMBOLS_BEG",
  "tQSYMBOLS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING_DEND",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAMBDA",
  "tLAMBEG",
  "tCHARACTER",
  "tRATIONAL",
  "tIMAGINARY",
  "tLABEL_END",
  "tANDDOT",
  "tBDOT2",
  "tBDOT3",
  "tEQL",
  "tLOWEST",
  "$start",
  "program",
  "top_compstmt",
  "@1",
  "top_stmts",
  "opt_terms",
  "top_stmt",
  "terms",
  "stmt",
  "begin_block",
  "bodystmt",
  "compstmt",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "stmt_or_begin",
  "fitem",
  "undef_list",
  "expr_value",
  "command_asgn",
  "mlhs",
  "command_call",
  "lhs",
  "mrhs",
  "mrhs_arg",
  "expr",
  "@2",
  "command_rhs",
  "var_lhs",
  "primary_value",
  "opt_call_args",
  "rbracket",
  "call_op",
  "defn_head",
  "f_opt_paren_args",
  "command",
  "arg",
  "defs_head",
  "backref",
  "opt_nl",
  "p_top_expr_body",
  "@3",
  "@4",
  "expr_value_do",
  "do",
  "def_name",
  "@5",
  "fname",
  "singleton",
  "dot_or_colon",
  "@6",
  "block_command",
  "block_call",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "brace_body",
  "fcall",
  "@7",
  "operation",
  "k_return",
  "call_args",
  "mlhs_basic",
  "mlhs_inner",
  "rparen",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "mlhs_post",
  "user_variable",
  "keyword_variable",
  "cname",
  "cpath",
  "op",
  "reswords",
  "symbol",
  "@8",
  "arg_rhs",
  "simple_numeric",
  "rel_expr",
  "primary",
  "relop",
  "arg_value",
  "aref_args",
  "none",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "args_forward",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "@9",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "qwords",
  "symbols",
  "qsymbols",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "lambda",
  "then",
  "if_tail",
  "case_body",
  "p_case_body",
  "for_var",
  "superclass",
  "term",
  "f_arglist",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "f_marg",
  "f_norm_arg",
  "f_margs",
  "f_marg_list",
  "f_rest_marg",
  "f_any_kwrest",
  "f_kwrest",
  "f_no_kwarg",
  "block_args_tail",
  "f_block_kwarg",
  "opt_f_block_arg",
  "f_block_arg",
  "opt_block_args_tail",
  "excessed_comma",
  "block_param",
  "f_arg",
  "f_block_optarg",
  "f_rest_arg",
  "opt_block_param",
  "block_param_def",
  "opt_bv_decl",
  "bv_decls",
  "bvar",
  "f_bad_arg",
  "f_larglist",
  "lambda_body",
  "@16",
  "@17",
  "f_args",
  "do_block",
  "@18",
  "@19",
  "do_body",
  "@20",
  "operation3",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "cases",
  "p_top_expr",
  "p_cases",
  "@26",
  "@27",
  "p_expr",
  "p_args",
  "p_find",
  "p_args_tail",
  "p_kwargs",
  "p_as",
  "p_variable",
  "p_alt",
  "p_expr_basic",
  "p_lparen",
  "p_lbracket",
  "p_value",
  "p_const",
  "rbrace",
  "@28",
  "@29",
  "p_args_head",
  "p_arg",
  "p_args_post",
  "p_rest",
  "p_kwarg",
  "p_any_kwrest",
  "p_kw",
  "p_kw_label",
  "string_contents",
  "p_kwrest",
  "kwrest_mark",
  "p_kwnorest",
  "p_primitive",
  "p_var_ref",
  "p_expr_ref",
  "nonlocal_var",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "xstring_contents",
  "regexp_contents",
  "word_list",
  "word",
  "string_content",
  "symbol_list",
  "qword_list",
  "qsym_list",
  "string_dvar",
  "@30",
  "ssym",
  "dsym",
  "@31",
  "f_paren_args",
  "args_tail",
  "@32",
  "f_kwarg",
  "opt_args_tail",
  "f_optarg",
  "f_arg_asgn",
  "f_arg_item",
  "f_label",
  "f_kw",
  "f_block_kw",
  "f_opt",
  "f_block_opt",
  "restarg_mark",
  "blkarg_mark",
  "assoc" ]

Racc_debug_parser = false

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

# reduce 0 omitted

def _reduce_1(val, _values, result)
                      @current_arg_stack.push(nil)
                      @max_numparam_stack.push
                    
    result
end

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

                      @current_arg_stack.pop
                      @max_numparam_stack.pop
                    
    result
end

def _reduce_3(val, _values, result)
                      result = @builder.compstmt(val[0])
                    
    result
end

def _reduce_4(val, _values, result)
                      result = []
                    
    result
end

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

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

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

# reduce 8 omitted

def _reduce_9(val, _values, result)
                      result = @builder.preexe(val[0], *val[1])
                    
    result
end

def _reduce_10(val, _values, result)
                      result = val
                    
    result
end

def _reduce_11(val, _values, result)
                      rescue_bodies     = val[1]
                      else_t,   else_   = val[2]
                      ensure_t, ensure_ = val[3]

                      if rescue_bodies.empty? && !else_t.nil?
                        diagnostic :error, :useless_else, nil, else_t
                      end

                      result = @builder.begin_body(val[0],
                                  rescue_bodies,
                                  else_t,   else_,
                                  ensure_t, ensure_)
                    
    result
end

def _reduce_12(val, _values, result)
                      result = @builder.compstmt(val[0])
                    
    result
end

def _reduce_13(val, _values, result)
                      result = []
                    
    result
end

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

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

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

# reduce 17 omitted

def _reduce_18(val, _values, result)
                      diagnostic :error, :begin_in_method, nil, val[0]
                    
    result
end

def _reduce_19(val, _values, result)
                      @lexer.state = :expr_fname
                    
    result
end

def _reduce_20(val, _values, result)
                      result = @builder.alias(val[0], val[1], val[3])
                    
    result
end

def _reduce_21(val, _values, result)
                      result = @builder.alias(val[0],
                                  @builder.gvar(val[1]),
                                  @builder.gvar(val[2]))
                    
    result
end

def _reduce_22(val, _values, result)
                      result = @builder.alias(val[0],
                                  @builder.gvar(val[1]),
                                  @builder.back_ref(val[2]))
                    
    result
end

def _reduce_23(val, _values, result)
                      diagnostic :error, :nth_ref_alias, nil, val[2]
                    
    result
end

def _reduce_24(val, _values, result)
                      result = @builder.undef_method(val[0], val[1])
                    
    result
end

def _reduce_25(val, _values, result)
                      result = @builder.condition_mod(val[0], nil,
                                                      val[1], val[2])
                    
    result
end

def _reduce_26(val, _values, result)
                      result = @builder.condition_mod(nil, val[0],
                                                      val[1], val[2])
                    
    result
end

def _reduce_27(val, _values, result)
                      result = @builder.loop_mod(:while, val[0], val[1], val[2])
                    
    result
end

def _reduce_28(val, _values, result)
                      result = @builder.loop_mod(:until, val[0], val[1], val[2])
                    
    result
end

def _reduce_29(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])
                    
    result
end

def _reduce_30(val, _values, result)
                      result = @builder.postexe(val[0], val[1], val[2], val[3])
                    
    result
end

# reduce 31 omitted

def _reduce_32(val, _values, result)
                      result = @builder.multi_assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_33(val, _values, result)
                      result = @builder.assign(val[0], val[1],
                                  @builder.array(nil, val[2], nil))
                    
    result
end

def _reduce_34(val, _values, result)
                      rescue_body = @builder.rescue_body(val[3],
                                                         nil, nil, nil,
                                                         nil, val[4])
                      begin_body = @builder.begin_body(val[2], [ rescue_body ])

                      result = @builder.multi_assign(val[0], val[1], begin_body)
                    
    result
end

def _reduce_35(val, _values, result)
                      result = @builder.multi_assign(val[0], val[1], val[2])
                    
    result
end

# reduce 36 omitted

def _reduce_37(val, _values, result)
                      result = @builder.assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_38(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_39(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.index(
                                    val[0], val[1], val[2], val[3]),
                                  val[4], val[5])
                    
    result
end

def _reduce_40(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_41(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_42(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                      result = @builder.op_assign(const, val[3], val[4])
                    
    result
end

def _reduce_43(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_44(val, _values, result)
                      _def_t, name_t = val[0]
                      endless_method_name(name_t)

                      result = @builder.def_endless_method(*val[0],
                                 val[1], val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_45(val, _values, result)
                      _def_t, name_t = val[0]
                      endless_method_name(name_t)

                      rescue_body = @builder.rescue_body(val[4],
                                        nil, nil, nil,
                                        nil, val[5])

                      method_body = @builder.begin_body(val[3], [ rescue_body ])

                      result = @builder.def_endless_method(*val[0],
                                 val[1], val[2], method_body)

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_46(val, _values, result)
                      _def_t, _recv, _dot_t, name_t = val[0]
                      endless_method_name(name_t)

                      result = @builder.def_endless_singleton(*val[0],
                                 val[1], val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_47(val, _values, result)
                      _def_t, _recv, _dot_t, name_t = val[0]
                      endless_method_name(name_t)

                      rescue_body = @builder.rescue_body(val[4],
                                        nil, nil, nil,
                                        nil, val[5])

                      method_body = @builder.begin_body(val[3], [ rescue_body ])

                      result = @builder.def_endless_singleton(*val[0],
                                 val[1], val[2], method_body)

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_48(val, _values, result)
                      @builder.op_assign(val[0], val[1], val[2])
                    
    result
end

# reduce 49 omitted

def _reduce_50(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])
                    
    result
end

# reduce 51 omitted

# reduce 52 omitted

def _reduce_53(val, _values, result)
                      result = @builder.logical_op(:and, val[0], val[1], val[2])
                    
    result
end

def _reduce_54(val, _values, result)
                      result = @builder.logical_op(:or, val[0], val[1], val[2])
                    
    result
end

def _reduce_55(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[2], nil)
                    
    result
end

def _reduce_56(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[1], nil)
                    
    result
end

def _reduce_57(val, _values, result)
                      @lexer.state = :expr_beg
                      @lexer.command_start = false
                      @pattern_variables.push

                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = true
                    
    result
end

def _reduce_58(val, _values, result)
                      @pattern_variables.pop
                      @lexer.in_kwarg = val[2]
                      result = @builder.match_pattern(val[0], val[1], val[3])
                    
    result
end

def _reduce_59(val, _values, result)
                      @lexer.state = :expr_beg
                      @lexer.command_start = false
                      @pattern_variables.push

                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = true
                    
    result
end

def _reduce_60(val, _values, result)
                      @pattern_variables.pop
                      @lexer.in_kwarg = val[2]
                      result = @builder.match_pattern_p(val[0], val[1], val[3])
                    
    result
end

# reduce 61 omitted

# reduce 62 omitted

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

def _reduce_64(val, _values, result)
                      @lexer.cond.pop
                      result = [ val[1], val[2] ]
                    
    result
end

def _reduce_65(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                      @current_arg_stack.push(nil)

                      result = val[0]
                    
    result
end

def _reduce_66(val, _values, result)
                      @context.push(:def)

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

def _reduce_67(val, _values, result)
                      @lexer.state = :expr_fname
                    
    result
end

def _reduce_68(val, _values, result)
                      @context.push(:defs)

                      result = [ val[0], val[1], val[2], val[4] ]
                    
    result
end

# reduce 69 omitted

# reduce 70 omitted

# reduce 71 omitted

def _reduce_72(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)
                    
    result
end

def _reduce_73(val, _values, result)
                      @context.push(:block)
                    
    result
end

def _reduce_74(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.pop
                    
    result
end

# reduce 75 omitted

def _reduce_76(val, _values, result)
                      result = @builder.call_method(nil, nil, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_77(val, _values, result)
                      method_call = @builder.call_method(nil, nil, val[0],
                                        nil, val[1], nil)

                      begin_t, args, body, end_t = val[2]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_78(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)
                    
    result
end

def _reduce_79(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                        nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_80(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)
                    
    result
end

def _reduce_81(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                        nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_82(val, _values, result)
                      result = @builder.keyword_cmd(:super, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_83(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_84(val, _values, result)
                      result = @builder.keyword_cmd(:return, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_85(val, _values, result)
                      result = @builder.keyword_cmd(:break, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_86(val, _values, result)
                      result = @builder.keyword_cmd(:next, val[0],
                                  nil, val[1], nil)
                    
    result
end

def _reduce_87(val, _values, result)
                      result = @builder.multi_lhs(nil, val[0], nil)
                    
    result
end

def _reduce_88(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])
                    
    result
end

def _reduce_89(val, _values, result)
                      result = @builder.multi_lhs(nil, val[0], nil)
                    
    result
end

def _reduce_90(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])
                    
    result
end

# reduce 91 omitted

def _reduce_92(val, _values, result)
                      result = val[0].
                                  push(val[1])
                    
    result
end

def _reduce_93(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1], val[2]))
                    
    result
end

def _reduce_94(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1], val[2])).
                                  concat(val[4])
                    
    result
end

def _reduce_95(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1]))
                    
    result
end

def _reduce_96(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1])).
                                  concat(val[3])
                    
    result
end

def _reduce_97(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]
                    
    result
end

def _reduce_98(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]),
                                 *val[3] ]
                    
    result
end

def _reduce_99(val, _values, result)
                      result = [ @builder.splat(val[0]) ]
                    
    result
end

def _reduce_100(val, _values, result)
                      result = [ @builder.splat(val[0]),
                                 *val[2] ]
                    
    result
end

# reduce 101 omitted

def _reduce_102(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])
                    
    result
end

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

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

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

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

def _reduce_107(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_108(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_109(val, _values, result)
                      result = @builder.index_asgn(val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_110(val, _values, result)
                      if (val[1][0] == :anddot)
                        diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
                      end

                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_111(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_112(val, _values, result)
                      if (val[1][0] == :anddot)
                        diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
                      end

                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_113(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                    
    result
end

def _reduce_114(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_global(val[0], val[1]))
                    
    result
end

def _reduce_115(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_116(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_117(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_118(val, _values, result)
                      result = @builder.index_asgn(val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_119(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_120(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_121(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])
                    
    result
end

def _reduce_122(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                    
    result
end

def _reduce_123(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_global(val[0], val[1]))
                    
    result
end

def _reduce_124(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_125(val, _values, result)
                      diagnostic :error, :module_name_const, nil, val[0]
                    
    result
end

# reduce 126 omitted

def _reduce_127(val, _values, result)
                      result = @builder.const_global(val[0], val[1])
                    
    result
end

def _reduce_128(val, _values, result)
                      result = @builder.const(val[0])
                    
    result
end

def _reduce_129(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])
                    
    result
end

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

def _reduce_135(val, _values, result)
                      result = @builder.symbol_internal(val[0])
                    
    result
end

# reduce 136 omitted

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

def _reduce_138(val, _values, result)
                      @lexer.state = :expr_fname
                    
    result
end

def _reduce_139(val, _values, result)
                      result = val[0] << val[3]
                    
    result
end

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

# reduce 195 omitted

# reduce 196 omitted

# reduce 197 omitted

# reduce 198 omitted

# reduce 199 omitted

# reduce 200 omitted

# reduce 201 omitted

# reduce 202 omitted

# reduce 203 omitted

# reduce 204 omitted

# reduce 205 omitted

# reduce 206 omitted

# reduce 207 omitted

# reduce 208 omitted

# reduce 209 omitted

# reduce 210 omitted

def _reduce_211(val, _values, result)
                      result = @builder.assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_212(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_213(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.index(
                                    val[0], val[1], val[2], val[3]),
                                  val[4], val[5])
                    
    result
end

def _reduce_214(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_215(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_216(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

def _reduce_217(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                      result = @builder.op_assign(const, val[3], val[4])
                    
    result
end

def _reduce_218(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_global(val[0], val[1]))
                      result = @builder.op_assign(const, val[2], val[3])
                    
    result
end

def _reduce_219(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])
                    
    result
end

def _reduce_220(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], val[2])
                    
    result
end

def _reduce_221(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], val[2])
                    
    result
end

def _reduce_222(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], nil)
                    
    result
end

def _reduce_223(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], nil)
                    
    result
end

def _reduce_224(val, _values, result)
                      result = @builder.range_inclusive(nil, val[0], val[1])
                    
    result
end

def _reduce_225(val, _values, result)
                      result = @builder.range_exclusive(nil, val[0], val[1])
                    
    result
end

def _reduce_226(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_227(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_228(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_229(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_230(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_231(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_232(val, _values, result)
                      result = @builder.unary_op(val[0],
                                  @builder.binary_op(
                                    val[1], val[2], val[3]))
                    
    result
end

def _reduce_233(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])
                    
    result
end

def _reduce_234(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])
                    
    result
end

def _reduce_235(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_236(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_237(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_238(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

# reduce 239 omitted

def _reduce_240(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_241(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_242(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_243(val, _values, result)
                      result = @builder.match_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_244(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_245(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[1], nil)
                    
    result
end

def _reduce_246(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])
                    
    result
end

def _reduce_247(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_248(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_249(val, _values, result)
                      result = @builder.logical_op(:and, val[0], val[1], val[2])
                    
    result
end

def _reduce_250(val, _values, result)
                      result = @builder.logical_op(:or, val[0], val[1], val[2])
                    
    result
end

def _reduce_251(val, _values, result)
                      result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
                    
    result
end

def _reduce_252(val, _values, result)
                      result = @builder.ternary(val[0], val[1],
                                                val[2], val[4], val[5])
                    
    result
end

def _reduce_253(val, _values, result)
                      _def_t, name_t = val[0]
                      endless_method_name(name_t)

                      result = @builder.def_endless_method(*val[0],
                                 val[1], val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_254(val, _values, result)
                      _def_t, name_t = val[0]
                      endless_method_name(name_t)

                      rescue_body = @builder.rescue_body(val[4],
                                        nil, nil, nil,
                                        nil, val[5])

                      method_body = @builder.begin_body(val[3], [ rescue_body ])

                      result = @builder.def_endless_method(*val[0],
                                 val[1], val[2], method_body)

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_255(val, _values, result)
                      _def_t, _recv, _dot_t, name_t = val[0]
                      endless_method_name(name_t)

                      result = @builder.def_endless_singleton(*val[0],
                                 val[1], val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_256(val, _values, result)
                      _def_t, _recv, _dot_t, name_t = val[0]
                      endless_method_name(name_t)

                      rescue_body = @builder.rescue_body(val[4],
                                        nil, nil, nil,
                                        nil, val[5])

                      method_body = @builder.begin_body(val[3], [ rescue_body ])

                      result = @builder.def_endless_singleton(*val[0],
                                 val[1], val[2], method_body)

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

# reduce 257 omitted

# reduce 258 omitted

# reduce 259 omitted

# reduce 260 omitted

# reduce 261 omitted

def _reduce_262(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

def _reduce_263(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    result
end

# reduce 264 omitted

# reduce 265 omitted

# reduce 266 omitted

def _reduce_267(val, _values, result)
                      result = val[0] << @builder.associate(nil, val[2], nil)
                    
    result
end

def _reduce_268(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]
                    
    result
end

# reduce 269 omitted

def _reduce_270(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])
                    
    result
end

def _reduce_271(val, _values, result)
                      result = val
                    
    result
end

def _reduce_272(val, _values, result)
                      unless @static_env.declared_forward_args?
                        diagnostic :error, :unexpected_token, { :token => 'tBDOT3' } , val[3]
                      end

                      result = [val[0], [*val[1], @builder.forwarded_args(val[3])], val[4]]
                    
    result
end

def _reduce_273(val, _values, result)
                      unless @static_env.declared_forward_args?
                        diagnostic :error, :unexpected_token, { :token => 'tBDOT3' } , val[1]
                      end

                      result = [val[0], [@builder.forwarded_args(val[1])], val[2]]
                    
    result
end

def _reduce_274(val, _values, result)
                      result = [ nil, [], nil ]
                    
    result
end

# reduce 275 omitted

def _reduce_276(val, _values, result)
                      result = []
                    
    result
end

# reduce 277 omitted

# reduce 278 omitted

def _reduce_279(val, _values, result)
                      result = val[0] << @builder.associate(nil, val[2], nil)
                    
    result
end

def _reduce_280(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]
                    
    result
end

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

def _reduce_282(val, _values, result)
                      result = val[0].concat(val[1])
                    
    result
end

def _reduce_283(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]
                      result.concat(val[1])
                    
    result
end

def _reduce_284(val, _values, result)
                      assocs = @builder.associate(nil, val[2], nil)
                      result = val[0] << assocs
                      result.concat(val[3])
                    
    result
end

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

def _reduce_286(val, _values, result)
                      # When branch gets invoked by RACC's lookahead
                      # and command args start with '[' or '('
                      # we need to put `true` to the cmdarg stack
                      # **before** `false` pushed by lexer
                      #   m [], n
                      #     ^
                      # Right here we have cmdarg [...0] because
                      # lexer pushed it on '['
                      # We need to modify cmdarg stack to [...10]
                      #
                      # For all other cases (like `m n` or `m n, []`) we simply put 1 to the stack
                      # and later lexer pushes corresponding bits on top of it.
                      last_token = @last_token[0]
                      lookahead = last_token == :tLBRACK || last_token == :tLPAREN_ARG

                      if lookahead
                        top = @lexer.cmdarg.pop
                        @lexer.cmdarg.push(true)
                        @lexer.cmdarg.push(top)
                      else
                        @lexer.cmdarg.push(true)
                      end
                    
    result
end

def _reduce_287(val, _values, result)
                      # call_args can be followed by tLBRACE_ARG (that does cmdarg.push(0) in the lexer)
                      # but the push must be done after cmdarg.pop() in the parser.
                      # So this code does cmdarg.pop() to pop 0 pushed by tLBRACE_ARG,
                      # cmdarg.pop() to pop 1 pushed by command_args,
                      # and cmdarg.push(0) to restore back the flag set by tLBRACE_ARG.
                      last_token = @last_token[0]
                      lookahead = last_token == :tLBRACE_ARG
                      if lookahead
                        top = @lexer.cmdarg.pop
                        @lexer.cmdarg.pop
                        @lexer.cmdarg.push(top)
                      else
                        @lexer.cmdarg.pop
                      end

                      result = val[1]
                    
    result
end

def _reduce_288(val, _values, result)
                      result = @builder.block_pass(val[0], val[1])
                    
    result
end

def _reduce_289(val, _values, result)
                      if !@static_env.declared_anonymous_blockarg?
                        diagnostic :error, :no_anonymous_blockarg, nil, val[0]
                      end

                      result = @builder.block_pass(val[0], nil)
                    
    result
end

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

def _reduce_291(val, _values, result)
                      result = []
                    
    result
end

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

def _reduce_293(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]
                    
    result
end

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

def _reduce_295(val, _values, result)
                      result = val[0] << @builder.splat(val[2], val[3])
                    
    result
end

def _reduce_296(val, _values, result)
                      result = @builder.array(nil, val[0], nil)
                    
    result
end

# reduce 297 omitted

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

def _reduce_299(val, _values, result)
                      result = val[0] << @builder.splat(val[2], val[3])
                    
    result
end

def _reduce_300(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]
                    
    result
end

# reduce 301 omitted

# reduce 302 omitted

# reduce 303 omitted

# reduce 304 omitted

# reduce 305 omitted

# reduce 306 omitted

# reduce 307 omitted

# reduce 308 omitted

# reduce 309 omitted

# reduce 310 omitted

def _reduce_311(val, _values, result)
                      result = @builder.call_method(nil, nil, val[0])
                    
    result
end

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

def _reduce_313(val, _values, result)
                      @lexer.cmdarg.pop

                      result = @builder.begin_keyword(val[0], val[2], val[3])
                    
    result
end

def _reduce_314(val, _values, result)
                      @lexer.state = :expr_endarg
                    
    result
end

def _reduce_315(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[3])
                    
    result
end

def _reduce_316(val, _values, result)
                      @lexer.state = :expr_endarg
                    
    result
end

def _reduce_317(val, _values, result)
                      result = @builder.begin(val[0], nil, val[3])
                    
    result
end

def _reduce_318(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])
                    
    result
end

def _reduce_319(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])
                    
    result
end

def _reduce_320(val, _values, result)
                      result = @builder.const_global(val[0], val[1])
                    
    result
end

def _reduce_321(val, _values, result)
                      result = @builder.array(val[0], val[1], val[2])
                    
    result
end

def _reduce_322(val, _values, result)
                      result = @builder.associate(val[0], val[1], val[2])
                    
    result
end

def _reduce_323(val, _values, result)
                      result = @builder.keyword_cmd(:return, val[0])
                    
    result
end

def _reduce_324(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_325(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
                    
    result
end

def _reduce_326(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0])
                    
    result
end

def _reduce_327(val, _values, result)
                      result = @builder.keyword_cmd(:defined?, val[0],
                                                    val[2], [ val[3] ], val[4])
                    
    result
end

def _reduce_328(val, _values, result)
                      result = @builder.not_op(val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_329(val, _values, result)
                      result = @builder.not_op(val[0], val[1], nil, val[2])
                    
    result
end

def _reduce_330(val, _values, result)
                      method_call = @builder.call_method(nil, nil, val[0])

                      begin_t, args, body, end_t = val[1]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

# reduce 331 omitted

def _reduce_332(val, _values, result)
                      begin_t, args, body, end_t = val[1]
                      result      = @builder.block(val[0],
                                      begin_t, args, body, end_t)
                    
    result
end

# reduce 333 omitted

def _reduce_334(val, _values, result)
                      else_t, else_ = val[4]
                      result = @builder.condition(val[0], val[1], val[2],
                                                  val[3], else_t,
                                                  else_,  val[5])
                    
    result
end

def _reduce_335(val, _values, result)
                      else_t, else_ = val[4]
                      result = @builder.condition(val[0], val[1], val[2],
                                                  else_,  else_t,
                                                  val[3], val[5])
                    
    result
end

def _reduce_336(val, _values, result)
                      result = @builder.loop(:while, val[0], *val[1], val[2], val[3])
                    
    result
end

def _reduce_337(val, _values, result)
                      result = @builder.loop(:until, val[0], *val[1], val[2], val[3])
                    
    result
end

def _reduce_338(val, _values, result)
                      *when_bodies, (else_t, else_body) = *val[3]

                      result = @builder.case(val[0], val[1],
                                             when_bodies, else_t, else_body,
                                             val[4])
                    
    result
end

def _reduce_339(val, _values, result)
                      *when_bodies, (else_t, else_body) = *val[2]

                      result = @builder.case(val[0], nil,
                                             when_bodies, else_t, else_body,
                                             val[3])
                    
    result
end

def _reduce_340(val, _values, result)
                      *in_bodies, (else_t, else_body) = *val[3]

                      result = @builder.case_match(val[0], val[1],
                                             in_bodies, else_t, else_body,
                                             val[4])
                    
    result
end

def _reduce_341(val, _values, result)
                      result = @builder.for(val[0], val[1], val[2], *val[3], val[4], val[5])
                    
    result
end

def _reduce_342(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                      @context.push(:class)
                    
    result
end

def _reduce_343(val, _values, result)
                      unless @context.class_definition_allowed?
                        diagnostic :error, :class_in_def, nil, val[0]
                      end

                      lt_t, superclass = val[2]
                      result = @builder.def_class(val[0], val[1],
                                                  lt_t, superclass,
                                                  val[4], val[5])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                    
    result
end

def _reduce_344(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                      @context.push(:sclass)
                    
    result
end

def _reduce_345(val, _values, result)
                      result = @builder.def_sclass(val[0], val[1], val[2],
                                                   val[5], val[6])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                    
    result
end

def _reduce_346(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @context.push(:module)
                    
    result
end

def _reduce_347(val, _values, result)
                      unless @context.module_definition_allowed?
                        diagnostic :error, :module_in_def, nil, val[0]
                      end

                      result = @builder.def_module(val[0], val[1],
                                                   val[3], val[4])

                      @lexer.cmdarg.pop
                      @static_env.unextend
                      @context.pop
                    
    result
end

def _reduce_348(val, _values, result)
                      result = @builder.def_method(*val[0], val[1],
                                  val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_349(val, _values, result)
                      result = @builder.def_singleton(*val[0], val[1],
                                  val[2], val[3])

                      @lexer.cmdarg.pop
                      @lexer.cond.pop
                      @static_env.unextend
                      @context.pop
                      @current_arg_stack.pop
                    
    result
end

def _reduce_350(val, _values, result)
                      result = @builder.keyword_cmd(:break, val[0])
                    
    result
end

def _reduce_351(val, _values, result)
                      result = @builder.keyword_cmd(:next, val[0])
                    
    result
end

def _reduce_352(val, _values, result)
                      result = @builder.keyword_cmd(:redo, val[0])
                    
    result
end

def _reduce_353(val, _values, result)
                      result = @builder.keyword_cmd(:retry, val[0])
                    
    result
end

# reduce 354 omitted

def _reduce_355(val, _values, result)
                      if @context.in_class?
                        diagnostic :error, :invalid_return, nil, val[0]
                      end
                    
    result
end

# reduce 356 omitted

# reduce 357 omitted

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

# reduce 359 omitted

# reduce 360 omitted

# reduce 361 omitted

def _reduce_362(val, _values, result)
                      else_t, else_ = val[4]
                      result = [ val[0],
                                 @builder.condition(val[0], val[1], val[2],
                                                    val[3], else_t,
                                                    else_,  nil),
                               ]
                    
    result
end

# reduce 363 omitted

def _reduce_364(val, _values, result)
                      result = val
                    
    result
end

# reduce 365 omitted

# reduce 366 omitted

def _reduce_367(val, _values, result)
                      result = @builder.arg(val[0])
                    
    result
end

def _reduce_368(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])
                    
    result
end

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

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

# reduce 371 omitted

def _reduce_372(val, _values, result)
                      result = val[0].
                                  push(val[2])
                    
    result
end

def _reduce_373(val, _values, result)
                      result = val[0].
                                  push(val[2]).
                                  concat(val[4])
                    
    result
end

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

def _reduce_375(val, _values, result)
                      result = [ val[0], *val[2] ]
                    
    result
end

def _reduce_376(val, _values, result)
                      result = @builder.restarg(val[0], val[1])
                    
    result
end

def _reduce_377(val, _values, result)
                      result = @builder.restarg(val[0])
                    
    result
end

# reduce 378 omitted

# reduce 379 omitted

def _reduce_380(val, _values, result)
                      result = val[0].concat(val[2]).concat(val[3])
                    
    result
end

def _reduce_381(val, _values, result)
                      result = val[0].concat(val[1])
                    
    result
end

def _reduce_382(val, _values, result)
                      result = val[0].concat(val[1])
                    
    result
end

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

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

def _reduce_385(val, _values, result)
                      result = []
                    
    result
end

# reduce 386 omitted

def _reduce_387(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_388(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[6]).
                                  concat(val[7])
                    
    result
end

def _reduce_389(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_390(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_391(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

# reduce 392 omitted

def _reduce_393(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_394(val, _values, result)
                      if val[1].empty? && val[0].size == 1
                        result = [@builder.procarg0(val[0][0])]
                      else
                        result = val[0].concat(val[1])
                      end
                    
    result
end

def _reduce_395(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_396(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_397(val, _values, result)
                      result = val[0].
                                  concat(val[1])
                    
    result
end

def _reduce_398(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_399(val, _values, result)
                      result = val[0].
                                  concat(val[1])
                    
    result
end

def _reduce_400(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

# reduce 401 omitted

def _reduce_402(val, _values, result)
                      result = @builder.args(nil, [], nil)
                    
    result
end

def _reduce_403(val, _values, result)
                      @lexer.state = :expr_value
                    
    result
end

def _reduce_404(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      @current_arg_stack.set(nil)
                      result = @builder.args(val[0], val[1], val[2])
                    
    result
end

def _reduce_405(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      @current_arg_stack.set(nil)
                      result = @builder.args(val[0], val[1].concat(val[2]), val[3])
                    
    result
end

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

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

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

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

def _reduce_410(val, _values, result)
                      @static_env.declare val[0][0]
                      result = @builder.shadowarg(val[0])
                    
    result
end

# reduce 411 omitted

def _reduce_412(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push
                      @context.push(:lambda)
                    
    result
end

def _reduce_413(val, _values, result)
                      @context.pop
                      @lexer.cmdarg.push(false)
                    
    result
end

def _reduce_414(val, _values, result)
                      lambda_call = @builder.call_lambda(val[0])
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[2]
                      begin_t, body, end_t = val[4]

                      @max_numparam_stack.pop
                      @static_env.unextend
                      @lexer.cmdarg.pop

                      result      = @builder.block(lambda_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_415(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      result = @builder.args(val[0], val[1].concat(val[2]), val[3])
                    
    result
end

def _reduce_416(val, _values, result)
                      if val[0].any?
                        @max_numparam_stack.has_ordinary_params!
                      end
                      result = @builder.args(nil, val[0], nil)
                    
    result
end

def _reduce_417(val, _values, result)
                      @context.push(:lambda)
                    
    result
end

def _reduce_418(val, _values, result)
                      result = [ val[0], val[2], val[3] ]
                      @context.pop
                    
    result
end

def _reduce_419(val, _values, result)
                      @context.push(:lambda)
                    
    result
end

def _reduce_420(val, _values, result)
                      result = [ val[0], val[2], val[3] ]
                      @context.pop
                    
    result
end

def _reduce_421(val, _values, result)
                      @context.push(:block)
                    
    result
end

def _reduce_422(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.pop
                    
    result
end

def _reduce_423(val, _values, result)
                      begin_t, block_args, body, end_t = val[1]
                      result      = @builder.block(val[0],
                                      begin_t, block_args, body, end_t)
                    
    result
end

def _reduce_424(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_425(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                      lparen_t, args, rparen_t)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_426(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                      nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)
                    
    result
end

def _reduce_427(val, _values, result)
                      lparen_t, args, rparen_t = val[1]
                      result = @builder.call_method(nil, nil, val[0],
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_428(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_429(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_430(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2])
                    
    result
end

def _reduce_431(val, _values, result)
                      lparen_t, args, rparen_t = val[2]
                      result = @builder.call_method(val[0], val[1], nil,
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_432(val, _values, result)
                      lparen_t, args, rparen_t = val[2]
                      result = @builder.call_method(val[0], val[1], nil,
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_433(val, _values, result)
                      lparen_t, args, rparen_t = val[1]
                      result = @builder.keyword_cmd(:super, val[0],
                                  lparen_t, args, rparen_t)
                    
    result
end

def _reduce_434(val, _values, result)
                      result = @builder.keyword_cmd(:zsuper, val[0])
                    
    result
end

def _reduce_435(val, _values, result)
                      result = @builder.index(val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_436(val, _values, result)
                      @context.push(:block)
                    
    result
end

def _reduce_437(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.pop
                    
    result
end

def _reduce_438(val, _values, result)
                      @context.push(:block)
                    
    result
end

def _reduce_439(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.pop
                    
    result
end

def _reduce_440(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push
                    
    result
end

def _reduce_441(val, _values, result)
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[1]
                      result = [ args, val[2] ]

                      @max_numparam_stack.pop
                      @static_env.unextend
                    
    result
end

def _reduce_442(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push
                    
    result
end

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

def _reduce_444(val, _values, result)
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[2]
                      result = [ args, val[3] ]

                      @max_numparam_stack.pop
                      @static_env.unextend
                      @lexer.cmdarg.pop
                    
    result
end

def _reduce_445(val, _values, result)
                      result = [ @builder.when(val[0], val[1], val[2], val[3]),
                                 *val[4] ]
                    
    result
end

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

# reduce 447 omitted

def _reduce_448(val, _values, result)
                      @lexer.state = :expr_beg
                      @lexer.command_start = false
                      @pattern_variables.push
                      @pattern_hash_keys.push

                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = true
                    
    result
end

def _reduce_449(val, _values, result)
                      @pattern_variables.pop
                      @pattern_hash_keys.pop
                      @lexer.in_kwarg = val[1]
                    
    result
end

def _reduce_450(val, _values, result)
                      result = [ @builder.in_pattern(val[0], *val[2], val[3], val[5]),
                                 *val[6] ]
                    
    result
end

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

# reduce 452 omitted

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

def _reduce_454(val, _values, result)
                      result = [ val[0], @builder.if_guard(val[1], val[2]) ]
                    
    result
end

def _reduce_455(val, _values, result)
                      result = [ val[0], @builder.unless_guard(val[1], val[2]) ]
                    
    result
end

# reduce 456 omitted

def _reduce_457(val, _values, result)
                      # array patterns that end with comma
                      # like 1, 2,
                      # must be emitted as `array_pattern_with_tail`
                      item = @builder.match_with_trailing_comma(val[0], val[1])
                      result = @builder.array_pattern(nil, [ item ], nil)
                    
    result
end

def _reduce_458(val, _values, result)
                      result = @builder.array_pattern(nil, [val[0]].concat(val[2]), nil)
                    
    result
end

def _reduce_459(val, _values, result)
                      result = @builder.find_pattern(nil, val[0], nil)
                    
    result
end

def _reduce_460(val, _values, result)
                      result = @builder.array_pattern(nil, val[0], nil)
                    
    result
end

def _reduce_461(val, _values, result)
                      result = @builder.hash_pattern(nil, val[0], nil)
                    
    result
end

# reduce 462 omitted

def _reduce_463(val, _values, result)
                      result = @builder.match_as(val[0], val[1], val[2])
                    
    result
end

# reduce 464 omitted

def _reduce_465(val, _values, result)
                      result = @builder.match_alt(val[0], val[1], val[2])
                    
    result
end

# reduce 466 omitted

def _reduce_467(val, _values, result)
                      result = val[0]
                      @pattern_hash_keys.push
                    
    result
end

def _reduce_468(val, _values, result)
                      result = val[0]
                      @pattern_hash_keys.push
                    
    result
end

# reduce 469 omitted

# reduce 470 omitted

def _reduce_471(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.array_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_472(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.find_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_473(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.hash_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_474(val, _values, result)
                      pattern = @builder.array_pattern(val[1], nil, val[2])
                      result = @builder.const_pattern(val[0], val[1], pattern, val[2])
                    
    result
end

def _reduce_475(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.array_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_476(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.find_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_477(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.hash_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])
                    
    result
end

def _reduce_478(val, _values, result)
                      pattern = @builder.array_pattern(val[1], nil, val[2])
                      result = @builder.const_pattern(val[0], val[1], pattern, val[2])
                    
    result
end

def _reduce_479(val, _values, result)
                      result = @builder.array_pattern(val[0], val[1], val[2])
                    
    result
end

def _reduce_480(val, _values, result)
                      result = @builder.find_pattern(val[0], val[1], val[2])
                    
    result
end

def _reduce_481(val, _values, result)
                      result = @builder.array_pattern(val[0], [], val[1])
                    
    result
end

def _reduce_482(val, _values, result)
                      @pattern_hash_keys.push
                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = false
                    
    result
end

def _reduce_483(val, _values, result)
                      @pattern_hash_keys.pop
                      @lexer.in_kwarg = val[1]
                      result = @builder.hash_pattern(val[0], val[2], val[3])
                    
    result
end

def _reduce_484(val, _values, result)
                      result = @builder.hash_pattern(val[0], [], val[1])
                    
    result
end

def _reduce_485(val, _values, result)
                      @pattern_hash_keys.push
                    
    result
end

def _reduce_486(val, _values, result)
                      @pattern_hash_keys.pop
                      result = @builder.begin(val[0], val[2], val[3])
                    
    result
end

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

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

def _reduce_489(val, _values, result)
                      result = [ *val[0], val[1] ]
                    
    result
end

def _reduce_490(val, _values, result)
                      match_rest = @builder.match_rest(val[1], val[2])
                      result = [ *val[0], match_rest ]
                    
    result
end

def _reduce_491(val, _values, result)
                      match_rest = @builder.match_rest(val[1], val[2])
                      result = [ *val[0], match_rest, *val[4] ]
                    
    result
end

def _reduce_492(val, _values, result)
                      result = [ *val[0], @builder.match_rest(val[1]) ]
                    
    result
end

def _reduce_493(val, _values, result)
                      result = [ *val[0], @builder.match_rest(val[1]), *val[3] ]
                    
    result
end

# reduce 494 omitted

def _reduce_495(val, _values, result)
                      # array patterns that end with comma
                      # like [1, 2,]
                      # must be emitted as `array_pattern_with_tail`
                      item = @builder.match_with_trailing_comma(val[0], val[1])
                      result = [ item ]
                    
    result
end

def _reduce_496(val, _values, result)
                      # array patterns that end with comma
                      # like [1, 2,]
                      # must be emitted as `array_pattern_with_tail`
                      last_item = @builder.match_with_trailing_comma(val[1], val[2])
                      result = [ *val[0], last_item ]
                    
    result
end

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

def _reduce_498(val, _values, result)
                      result = [ val[0], *val[2] ]
                    
    result
end

def _reduce_499(val, _values, result)
                      result = [ val[0], *val[2], val[4] ]
                    
    result
end

def _reduce_500(val, _values, result)
                      result = @builder.match_rest(val[0], val[1])
                    
    result
end

def _reduce_501(val, _values, result)
                      result = @builder.match_rest(val[0])
                    
    result
end

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

def _reduce_503(val, _values, result)
                      result = [ *val[0], val[2] ]
                    
    result
end

# reduce 504 omitted

def _reduce_505(val, _values, result)
                      result = [ *val[0], *val[2] ]
                    
    result
end

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

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

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

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

def _reduce_510(val, _values, result)
                      result = [ *val[0], val[2] ]
                    
    result
end

def _reduce_511(val, _values, result)
                      result = @builder.match_pair(*val[0], val[1])
                    
    result
end

def _reduce_512(val, _values, result)
                      result = @builder.match_label(*val[0])
                    
    result
end

def _reduce_513(val, _values, result)
                    result = [:label, val[0]]
                  
    result
end

def _reduce_514(val, _values, result)
                    result = [:quoted, [val[0], val[1], val[2]]]
                  
    result
end

def _reduce_515(val, _values, result)
                      result = [ @builder.match_rest(val[0], val[1]) ]
                    
    result
end

def _reduce_516(val, _values, result)
                      result = [ @builder.match_rest(val[0], nil) ]
                    
    result
end

def _reduce_517(val, _values, result)
                      result = [ @builder.match_nil_pattern(val[0], val[1]) ]
                    
    result
end

# reduce 518 omitted

# reduce 519 omitted

# reduce 520 omitted

def _reduce_521(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], val[2])
                    
    result
end

def _reduce_522(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], val[2])
                    
    result
end

def _reduce_523(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], nil)
                    
    result
end

def _reduce_524(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], nil)
                    
    result
end

# reduce 525 omitted

# reduce 526 omitted

# reduce 527 omitted

def _reduce_528(val, _values, result)
                      result = @builder.range_inclusive(nil, val[0], val[1])
                    
    result
end

def _reduce_529(val, _values, result)
                      result = @builder.range_exclusive(nil, val[0], val[1])
                    
    result
end

# reduce 530 omitted

# reduce 531 omitted

# reduce 532 omitted

# reduce 533 omitted

# reduce 534 omitted

# reduce 535 omitted

# reduce 536 omitted

# reduce 537 omitted

def _reduce_538(val, _values, result)
                      result = @builder.accessible(val[0])
                    
    result
end

# reduce 539 omitted

def _reduce_540(val, _values, result)
                      result = @builder.assignable(@builder.match_var(val[0]))
                    
    result
end

def _reduce_541(val, _values, result)
                      name = val[1][0]
                      unless static_env.declared?(name)
                        diagnostic :error, :undefined_lvar, { :name => name }, val[1]
                      end

                      lvar = @builder.accessible(@builder.ident(val[1]))
                      result = @builder.pin(val[0], lvar)
                    
    result
end

def _reduce_542(val, _values, result)
                      non_lvar = @builder.accessible(val[1])
                      result = @builder.pin(val[0], non_lvar)
                    
    result
end

def _reduce_543(val, _values, result)
                      expr = @builder.begin(val[1], val[2], val[3])
                      result = @builder.pin(val[0], expr)
                    
    result
end

def _reduce_544(val, _values, result)
                      result = @builder.const_global(val[0], val[1])
                    
    result
end

def _reduce_545(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])
                    
    result
end

def _reduce_546(val, _values, result)
                      result = @builder.const(val[0])
                   
    result
end

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

                      if val[1]
                        exc_list = @builder.array(nil, val[1], nil)
                      end

                      result = [ @builder.rescue_body(val[0],
                                      exc_list, assoc_t, exc_var,
                                      val[3], val[4]),
                                 *val[5] ]
                    
    result
end

def _reduce_548(val, _values, result)
                      result = []
                    
    result
end

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

# reduce 550 omitted

# reduce 551 omitted

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

# reduce 553 omitted

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

# reduce 555 omitted

# reduce 556 omitted

# reduce 557 omitted

def _reduce_558(val, _values, result)
                      result = @builder.string_compose(nil, val[0], nil)
                    
    result
end

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

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

def _reduce_561(val, _values, result)
                      string = @builder.string_compose(val[0], val[1], val[2])
                      result = @builder.dedent_string(string, @lexer.dedent_level)
                    
    result
end

def _reduce_562(val, _values, result)
                      string = @builder.string(val[0])
                      result = @builder.dedent_string(string, @lexer.dedent_level)
                    
    result
end

def _reduce_563(val, _values, result)
                      result = @builder.character(val[0])
                    
    result
end

def _reduce_564(val, _values, result)
                      string = @builder.xstring_compose(val[0], val[1], val[2])
                      result = @builder.dedent_string(string, @lexer.dedent_level)
                    
    result
end

def _reduce_565(val, _values, result)
                      opts   = @builder.regexp_options(val[3])
                      result = @builder.regexp_compose(val[0], val[1], val[2], opts)
                    
    result
end

def _reduce_566(val, _values, result)
                      result = @builder.words_compose(val[0], val[1], val[2])
                    
    result
end

def _reduce_567(val, _values, result)
                      result = []
                    
    result
end

def _reduce_568(val, _values, result)
                      result = val[0] << @builder.word(val[1])
                    
    result
end

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

def _reduce_570(val, _values, result)
                      result = val[0] << val[1]
                    
    result
end

def _reduce_571(val, _values, result)
                      result = @builder.symbols_compose(val[0], val[1], val[2])
                    
    result
end

def _reduce_572(val, _values, result)
                      result = []
                    
    result
end

def _reduce_573(val, _values, result)
                      result = val[0] << @builder.word(val[1])
                    
    result
end

def _reduce_574(val, _values, result)
                      result = @builder.words_compose(val[0], val[1], val[2])
                    
    result
end

def _reduce_575(val, _values, result)
                      result = @builder.symbols_compose(val[0], val[1], val[2])
                    
    result
end

def _reduce_576(val, _values, result)
                      result = []
                    
    result
end

def _reduce_577(val, _values, result)
                      result = val[0] << @builder.string_internal(val[1])
                    
    result
end

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

def _reduce_579(val, _values, result)
                      result = val[0] << @builder.symbol_internal(val[1])
                    
    result
end

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

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

def _reduce_582(val, _values, result)
                      result = []
                    
    result
end

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

def _reduce_584(val, _values, result)
                      result = []
                    
    result
end

def _reduce_585(val, _values, result)
                      result = val[0] << val[1]
                    
    result
end

def _reduce_586(val, _values, result)
                      result = @builder.string_internal(val[0])
                    
    result
end

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

def _reduce_588(val, _values, result)
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                    
    result
end

def _reduce_589(val, _values, result)
                      @lexer.cmdarg.pop
                      @lexer.cond.pop

                      result = @builder.begin(val[0], val[2], val[3])
                    
    result
end

def _reduce_590(val, _values, result)
                      result = @builder.gvar(val[0])
                    
    result
end

def _reduce_591(val, _values, result)
                      result = @builder.ivar(val[0])
                    
    result
end

def _reduce_592(val, _values, result)
                      result = @builder.cvar(val[0])
                    
    result
end

# reduce 593 omitted

# reduce 594 omitted

# reduce 595 omitted

def _reduce_596(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.symbol(val[0])
                    
    result
end

def _reduce_597(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.symbol_compose(val[0], val[1], val[2])
                    
    result
end

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

def _reduce_599(val, _values, result)
                      if @builder.respond_to? :negate
                        # AST builder interface compatibility
                        result = @builder.negate(val[0], val[1])
                      else
                        result = @builder.unary_num(val[0], val[1])
                      end
                    
    result
end

def _reduce_600(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.integer(val[0])
                    
    result
end

def _reduce_601(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.float(val[0])
                    
    result
end

def _reduce_602(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.rational(val[0])
                    
    result
end

def _reduce_603(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.complex(val[0])
                    
    result
end

def _reduce_604(val, _values, result)
                      result = @builder.ivar(val[0])
                    
    result
end

def _reduce_605(val, _values, result)
                      result = @builder.gvar(val[0])
                    
    result
end

def _reduce_606(val, _values, result)
                      result = @builder.cvar(val[0])
                    
    result
end

def _reduce_607(val, _values, result)
                      result = @builder.ident(val[0])
                    
    result
end

def _reduce_608(val, _values, result)
                      result = @builder.ivar(val[0])
                    
    result
end

def _reduce_609(val, _values, result)
                      result = @builder.gvar(val[0])
                    
    result
end

def _reduce_610(val, _values, result)
                      result = @builder.const(val[0])
                    
    result
end

def _reduce_611(val, _values, result)
                      result = @builder.cvar(val[0])
                    
    result
end

def _reduce_612(val, _values, result)
                      result = @builder.nil(val[0])
                    
    result
end

def _reduce_613(val, _values, result)
                      result = @builder.self(val[0])
                    
    result
end

def _reduce_614(val, _values, result)
                      result = @builder.true(val[0])
                    
    result
end

def _reduce_615(val, _values, result)
                      result = @builder.false(val[0])
                    
    result
end

def _reduce_616(val, _values, result)
                      result = @builder.__FILE__(val[0])
                    
    result
end

def _reduce_617(val, _values, result)
                      result = @builder.__LINE__(val[0])
                    
    result
end

def _reduce_618(val, _values, result)
                      result = @builder.__ENCODING__(val[0])
                    
    result
end

def _reduce_619(val, _values, result)
                      result = @builder.accessible(val[0])
                    
    result
end

def _reduce_620(val, _values, result)
                      result = @builder.accessible(val[0])
                    
    result
end

def _reduce_621(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_622(val, _values, result)
                      result = @builder.assignable(val[0])
                    
    result
end

def _reduce_623(val, _values, result)
                      result = @builder.nth_ref(val[0])
                    
    result
end

def _reduce_624(val, _values, result)
                      result = @builder.back_ref(val[0])
                    
    result
end

def _reduce_625(val, _values, result)
                      @lexer.state = :expr_value
                    
    result
end

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

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

# reduce 628 omitted

def _reduce_629(val, _values, result)
                      result = @builder.args(nil, [], nil)
                    
    result
end

def _reduce_630(val, _values, result)
                      result = @builder.args(val[0], val[1], val[2])

                      @lexer.state = :expr_value
                    
    result
end

# reduce 631 omitted

def _reduce_632(val, _values, result)
                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = true
                      @context.push(:def_open_args)
                    
    result
end

def _reduce_633(val, _values, result)
                      @context.pop
                      @lexer.in_kwarg = val[0]
                      result = @builder.args(nil, val[1], nil)
                    
    result
end

def _reduce_634(val, _values, result)
                      result = val[0].concat(val[2]).concat(val[3])
                    
    result
end

def _reduce_635(val, _values, result)
                      result = val[0].concat(val[1])
                    
    result
end

def _reduce_636(val, _values, result)
                      result = val[0].concat(val[1])
                    
    result
end

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

def _reduce_638(val, _values, result)
                      @static_env.declare_forward_args
                      result = [ @builder.forward_arg(val[0]) ]
                    
    result
end

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

def _reduce_640(val, _values, result)
                      result = []
                    
    result
end

def _reduce_641(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_642(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[6]).
                                  concat(val[7])
                    
    result
end

def _reduce_643(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_644(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_645(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_646(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_647(val, _values, result)
                      result = val[0].
                                  concat(val[1])
                    
    result
end

def _reduce_648(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_649(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])
                    
    result
end

def _reduce_650(val, _values, result)
                      result = val[0].
                                  concat(val[1])
                    
    result
end

def _reduce_651(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

def _reduce_652(val, _values, result)
                      result = val[0].
                                  concat(val[1])
                    
    result
end

def _reduce_653(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

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

def _reduce_655(val, _values, result)
                      result = []
                    
    result
end

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

def _reduce_657(val, _values, result)
                      diagnostic :error, :argument_const, nil, val[0]
                    
    result
end

def _reduce_658(val, _values, result)
                      diagnostic :error, :argument_ivar, nil, val[0]
                    
    result
end

def _reduce_659(val, _values, result)
                      diagnostic :error, :argument_gvar, nil, val[0]
                    
    result
end

def _reduce_660(val, _values, result)
                      diagnostic :error, :argument_cvar, nil, val[0]
                    
    result
end

# reduce 661 omitted

def _reduce_662(val, _values, result)
                      @static_env.declare val[0][0]

                      @max_numparam_stack.has_ordinary_params!

                      result = val[0]
                    
    result
end

def _reduce_663(val, _values, result)
                      @current_arg_stack.set(val[0][0])
                      result = val[0]
                    
    result
end

def _reduce_664(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.arg(val[0])
                    
    result
end

def _reduce_665(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])
                    
    result
end

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

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

def _reduce_668(val, _values, result)
                      check_kwarg_name(val[0])

                      @static_env.declare val[0][0]

                      @max_numparam_stack.has_ordinary_params!

                      @current_arg_stack.set(val[0][0])

                      result = val[0]
                    
    result
end

def _reduce_669(val, _values, result)
                      @current_arg_stack.set(nil)
                      result = @builder.kwoptarg(val[0], val[1])
                    
    result
end

def _reduce_670(val, _values, result)
                      @current_arg_stack.set(nil)
                      result = @builder.kwarg(val[0])
                    
    result
end

def _reduce_671(val, _values, result)
                      result = @builder.kwoptarg(val[0], val[1])
                    
    result
end

def _reduce_672(val, _values, result)
                      result = @builder.kwarg(val[0])
                    
    result
end

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

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

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

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

# reduce 677 omitted

# reduce 678 omitted

def _reduce_679(val, _values, result)
                      result = [ @builder.kwnilarg(val[0], val[1]) ]
                    
    result
end

def _reduce_680(val, _values, result)
                      @static_env.declare val[1][0]

                      result = [ @builder.kwrestarg(val[0], val[1]) ]
                    
    result
end

def _reduce_681(val, _values, result)
                      result = [ @builder.kwrestarg(val[0]) ]
                    
    result
end

def _reduce_682(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.optarg(val[0], val[1], val[2])
                    
    result
end

def _reduce_683(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.optarg(val[0], val[1], val[2])
                    
    result
end

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

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

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

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

# reduce 688 omitted

# reduce 689 omitted

def _reduce_690(val, _values, result)
                      @static_env.declare val[1][0]

                      result = [ @builder.restarg(val[0], val[1]) ]
                    
    result
end

def _reduce_691(val, _values, result)
                      result = [ @builder.restarg(val[0]) ]
                    
    result
end

# reduce 692 omitted

# reduce 693 omitted

def _reduce_694(val, _values, result)
                      @static_env.declare val[1][0]

                      result = @builder.blockarg(val[0], val[1])
                    
    result
end

def _reduce_695(val, _values, result)
                      @static_env.declare_anonymous_blockarg

                      result = @builder.blockarg(val[0], nil)
                    
    result
end

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

def _reduce_697(val, _values, result)
                      result = []
                    
    result
end

# reduce 698 omitted

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

def _reduce_700(val, _values, result)
                      result = []
                    
    result
end

# reduce 701 omitted

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

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

def _reduce_704(val, _values, result)
                      result = @builder.pair(val[0], val[1], val[2])
                    
    result
end

def _reduce_705(val, _values, result)
                      result = @builder.pair_keyword(val[0], val[1])
                    
    result
end

def _reduce_706(val, _values, result)
                      result = @builder.pair_label(val[0])
                    
    result
end

def _reduce_707(val, _values, result)
                      result = @builder.pair_quoted(val[0], val[1], val[2], val[3])
                    
    result
end

def _reduce_708(val, _values, result)
                      result = @builder.kwsplat(val[0], val[1])
                    
    result
end

# reduce 709 omitted

# reduce 710 omitted

# reduce 711 omitted

# reduce 712 omitted

# reduce 713 omitted

# reduce 714 omitted

# reduce 715 omitted

# reduce 716 omitted

# reduce 717 omitted

# reduce 718 omitted

# reduce 719 omitted

# reduce 720 omitted

def _reduce_721(val, _values, result)
                      result = [:dot, val[0][1]]
                    
    result
end

def _reduce_722(val, _values, result)
                      result = [:anddot, val[0][1]]
                    
    result
end

# reduce 723 omitted

# reduce 724 omitted

# reduce 725 omitted

# reduce 726 omitted

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

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

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

# reduce 730 omitted

# reduce 731 omitted

# reduce 732 omitted

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

# reduce 734 omitted

# reduce 735 omitted

# reduce 736 omitted

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

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

  end   # class Ruby31
  end   # module Parser