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

###### racc/parser.rb begin
unless $".index 'racc/parser.rb'
$".push 'racc/parser.rb'
self.class.module_eval(<<'...end racc/parser.rb/module_eval...', 'racc/parser.rb', 1)
#
# $Id: parser.rb 2169 2006-11-06 21:39:00Z aamine $
#
# Copyright (c) 1999-2006 Minero Aoki
#
# This program is free software.
# You can distribute/modify this program under the same terms of ruby.
#
# As a special exception, when this code is copied by Racc
# into a Racc output file, you may use that output file
# without restriction.
#

unless defined?(NotImplementedError)
  NotImplementedError = NotImplementError
end

module Racc
  class ParseError < StandardError; end
end
unless defined?(::ParseError)
  ParseError = Racc::ParseError
end

module Racc

  unless defined?(Racc_No_Extentions)
    Racc_No_Extentions = false
  end

  class Parser

    Racc_Runtime_Version = '1.4.5'
    Racc_Runtime_Revision = '$Revision: 2169 $'.split[1]

    Racc_Runtime_Core_Version_R = '1.4.5'
    Racc_Runtime_Core_Revision_R = '$Revision: 2169 $'.split[1]
    begin
      require 'racc/cparse'
    # Racc_Runtime_Core_Version_C  = (defined in extention)
      Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2]
      unless new.respond_to?(:_racc_do_parse_c, true)
        raise LoadError, 'old cparse.so'
      end
      if Racc_No_Extentions
        raise LoadError, 'selecting ruby version of racc runtime core'
      end

      Racc_Main_Parsing_Routine    = :_racc_do_parse_c
      Racc_YY_Parse_Method         = :_racc_yyparse_c
      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_C
      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_C
      Racc_Runtime_Type            = 'c'
    rescue LoadError
      Racc_Main_Parsing_Routine    = :_racc_do_parse_rb
      Racc_YY_Parse_Method         = :_racc_yyparse_rb
      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_R
      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_R
      Racc_Runtime_Type            = 'ruby'
    end

    def Parser.racc_runtime_type
      Racc_Runtime_Type
    end

    private

    def _racc_setup
      @yydebug = false unless self.class::Racc_debug_parser
      @yydebug = false unless defined?(@yydebug)
      if @yydebug
        @racc_debug_out = $stderr unless defined?(@racc_debug_out)
        @racc_debug_out ||= $stderr
      end
      arg = self.class::Racc_arg
      arg[13] = true if arg.size < 14
      arg
    end

    def _racc_init_sysvars
      @racc_state  = [0]
      @racc_tstack = []
      @racc_vstack = []

      @racc_t = nil
      @racc_val = nil

      @racc_read_next = true

      @racc_user_yyerror = false
      @racc_error_status = 0
    end

    ###
    ### do_parse
    ###

    def do_parse
      __send__(Racc_Main_Parsing_Routine, _racc_setup(), false)
    end

    def next_token
      raise NotImplementedError, "#{self.class}\#next_token is not defined"
    end

    def _racc_do_parse_rb(arg, in_debug)
      action_table, action_check, action_default, action_pointer,
      goto_table,   goto_check,   goto_default,   goto_pointer,
      nt_base,      reduce_table, token_table,    shift_n,
      reduce_n,     use_result,   * = arg

      _racc_init_sysvars
      tok = act = i = nil
      nerr = 0

      catch(:racc_end_parse) {
        while true
          if i = action_pointer[@racc_state[-1]]
            if @racc_read_next
              if @racc_t != 0   # not EOF
                tok, @racc_val = next_token()
                unless tok      # EOF
                  @racc_t = 0
                else
                  @racc_t = (token_table[tok] or 1)   # error token
                end
                racc_read_token(@racc_t, tok, @racc_val) if @yydebug
                @racc_read_next = false
              end
            end
            i += @racc_t
            unless i >= 0 and
                   act = action_table[i] and
                   action_check[i] == @racc_state[-1]
              act = action_default[@racc_state[-1]]
            end
          else
            act = action_default[@racc_state[-1]]
          end
          while act = _racc_evalact(act, arg)
            ;
          end
        end
      }
    end

    ###
    ### yyparse
    ###

    def yyparse(recv, mid)
      __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true)
    end

    def _racc_yyparse_rb(recv, mid, arg, c_debug)
      action_table, action_check, action_default, action_pointer,
      goto_table,   goto_check,   goto_default,   goto_pointer,
      nt_base,      reduce_table, token_table,    shift_n,
      reduce_n,     use_result,   * = arg

      _racc_init_sysvars
      nerr = 0

      catch(:racc_end_parse) {
        until i = action_pointer[@racc_state[-1]]
          while act = _racc_evalact(action_default[@racc_state[-1]], arg)
            ;
          end
        end
        recv.__send__(mid) do |tok, val|
          unless tok
            @racc_t = 0
          else
            @racc_t = (token_table[tok] or 1)   # error token
          end
          @racc_val = val
          @racc_read_next = false

          i += @racc_t
          unless i >= 0 and
                 act = action_table[i] and
                 action_check[i] == @racc_state[-1]
            act = action_default[@racc_state[-1]]
          end
          while act = _racc_evalact(act, arg)
            ;
          end

          while not (i = action_pointer[@racc_state[-1]]) or
                not @racc_read_next or
                @racc_t == 0   # $
            unless i and i += @racc_t and
                   i >= 0 and
                   act = action_table[i] and
                   action_check[i] == @racc_state[-1]
              act = action_default[@racc_state[-1]]
            end
            while act = _racc_evalact(act, arg)
              ;
            end
          end
        end
      }
    end

    ###
    ### common
    ###

    def _racc_evalact(act, arg)
      action_table, action_check, action_default, action_pointer,
      goto_table,   goto_check,   goto_default,   goto_pointer,
      nt_base,      reduce_table, token_table,    shift_n,
      reduce_n,     use_result,   * = arg
      nerr = 0   # tmp

      if act > 0 and act < shift_n
        #
        # shift
        #
        if @racc_error_status > 0
          @racc_error_status -= 1 unless @racc_t == 1   # error token
        end
        @racc_vstack.push @racc_val
        @racc_state.push act
        @racc_read_next = true
        if @yydebug
          @racc_tstack.push @racc_t
          racc_shift @racc_t, @racc_tstack, @racc_vstack
        end

      elsif act < 0 and act > -reduce_n
        #
        # reduce
        #
        code = catch(:racc_jump) {
          @racc_state.push _racc_do_reduce(arg, act)
          false
        }
        if code
          case code
          when 1 # yyerror
            @racc_user_yyerror = true   # user_yyerror
            return -reduce_n
          when 2 # yyaccept
            return shift_n
          else
            raise '[Racc Bug] unknown jump code'
          end
        end

      elsif act == shift_n
        #
        # accept
        #
        racc_accept if @yydebug
        throw :racc_end_parse, @racc_vstack[0]

      elsif act == -reduce_n
        #
        # error
        #
        case @racc_error_status
        when 0
          unless arg[21]    # user_yyerror
            nerr += 1
            on_error @racc_t, @racc_val, @racc_vstack
          end
        when 3
          if @racc_t == 0   # is $
            throw :racc_end_parse, nil
          end
          @racc_read_next = true
        end
        @racc_user_yyerror = false
        @racc_error_status = 3
        while true
          if i = action_pointer[@racc_state[-1]]
            i += 1   # error token
            if  i >= 0 and
                (act = action_table[i]) and
                action_check[i] == @racc_state[-1]
              break
            end
          end
          throw :racc_end_parse, nil if @racc_state.size <= 1
          @racc_state.pop
          @racc_vstack.pop
          if @yydebug
            @racc_tstack.pop
            racc_e_pop @racc_state, @racc_tstack, @racc_vstack
          end
        end
        return act

      else
        raise "[Racc Bug] unknown action #{act.inspect}"
      end

      racc_next_state(@racc_state[-1], @racc_state) if @yydebug

      nil
    end

    def _racc_do_reduce(arg, act)
      action_table, action_check, action_default, action_pointer,
      goto_table,   goto_check,   goto_default,   goto_pointer,
      nt_base,      reduce_table, token_table,    shift_n,
      reduce_n,     use_result,   * = arg
      state = @racc_state
      vstack = @racc_vstack
      tstack = @racc_tstack

      i = act * -3
      len       = reduce_table[i]
      reduce_to = reduce_table[i+1]
      method_id = reduce_table[i+2]
      void_array = []

      tmp_t = tstack[-len, len] if @yydebug
      tmp_v = vstack[-len, len]
      tstack[-len, len] = void_array if @yydebug
      vstack[-len, len] = void_array
      state[-len, len]  = void_array

      # tstack must be updated AFTER method call
      if use_result
        vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
      else
        vstack.push __send__(method_id, tmp_v, vstack)
      end
      tstack.push reduce_to

      racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug

      k1 = reduce_to - nt_base
      if i = goto_pointer[k1]
        i += state[-1]
        if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1
          return curstate
        end
      end
      goto_default[k1]
    end

    def on_error(t, val, vstack)
      raise ParseError, sprintf("\nparse error on value %s (%s)",
                                val.inspect, token_to_str(t) || '?')
    end

    def yyerror
      throw :racc_jump, 1
    end

    def yyaccept
      throw :racc_jump, 2
    end

    def yyerrok
      @racc_error_status = 0
    end

    #
    # for debugging output
    #

    def racc_read_token(t, tok, val)
      @racc_debug_out.print 'read    '
      @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
      @racc_debug_out.puts val.inspect
      @racc_debug_out.puts
    end

    def racc_shift(tok, tstack, vstack)
      @racc_debug_out.puts "shift   #{racc_token2str tok}"
      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_reduce(toks, sim, tstack, vstack)
      out = @racc_debug_out
      out.print 'reduce '
      if toks.empty?
        out.print ' <none>'
      else
        toks.each {|t| out.print ' ', racc_token2str(t) }
      end
      out.puts " --> #{racc_token2str(sim)}"
          
      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_accept
      @racc_debug_out.puts 'accept'
      @racc_debug_out.puts
    end

    def racc_e_pop(state, tstack, vstack)
      @racc_debug_out.puts 'error recovering mode: pop token'
      racc_print_states state
      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_next_state(curstate, state)
      @racc_debug_out.puts  "goto    #{curstate}"
      racc_print_states state
      @racc_debug_out.puts
    end

    def racc_print_stacks(t, v)
      out = @racc_debug_out
      out.print '        ['
      t.each_index do |i|
        out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
      end
      out.puts ' ]'
    end

    def racc_print_states(s)
      out = @racc_debug_out
      out.print '        ['
      s.each {|st| out.print ' ', st }
      out.puts ' ]'
    end

    def racc_token2str(tok)
      self.class::Racc_token_to_s_table[tok] or
          raise "[Racc Bug] can't convert token #{tok} to string"
    end

    def token_to_str(t)
      self.class::Racc_token_to_s_table[t]
    end

  end

end
...end racc/parser.rb/module_eval...
end
###### racc/parser.rb end
class RubyParser < Racc::Parser

module_eval(<<'...end ruby_parser.y/module_eval...', 'ruby_parser.y', 1655)

require 'ruby_lexer'
...end ruby_parser.y/module_eval...
##### State transition tables begin ###

clist = [
'-279,472,342,158,159,-280,403,-279,-279,-279,-89,-273,-280,-279,-279',
'779,-279,673,-273,379,-87,399,472,463,698,854,358,308,515,359,516,726',
'358,472,307,-279,-279,650,-279,-279,-279,-279,-279,472,648,-85,-421',
'472,294,295,296,297,298,-421,-84,-280,-85,158,159,-77,737,-273,-89,-87',
'-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279',
'-261,-86,-279,-279,-279,400,670,344,360,361,-279,679,288,-89,360,361',
'518,-279,288,-279,738,-279,-279,-279,-279,-279,-279,-279,-479,-279,404',
'-279,728,473,-81,-479,-479,-479,-87,252,254,-479,-479,-279,-479,-88',
'723,-279,-80,740,-279,-279,-87,-479,473,252,254,-86,-87,-87,252,254',
'679,-479,-479,473,-479,-479,-479,-479,-479,252,254,285,408,473,-475',
'-85,409,473,-77,252,254,-85,-85,252,254,-427,679,507,-85,505,-479,-479',
'-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-90,677',
'-479,-479,-479,-86,669,252,254,650,-479,-86,-86,-87,-475,742,648,-479',
'342,-479,-83,-479,-479,-479,-479,-479,-479,-479,-495,-479,-479,-479',
'-86,-83,-79,-495,-495,-495,-77,285,-495,-495,-495,-479,-495,-86,342',
'-479,-78,-79,-479,-479,677,-78,-495,-77,-64,-88,252,254,-84,377,288',
'-495,-495,-85,-495,-495,-495,-495,-495,624,358,-77,744,-422,-77,-472',
'677,715,313,-90,-422,-495,252,254,-77,697,713,463,-495,-495,-495,358',
'-72,-495,-495,-495,420,-495,-90,344,-82,-495,625,418,358,761,313,-495',
'-495,624,358,-79,-83,313,-495,613,-495,-495,-476,-495,-495,-495,-495',
'-495,-85,-415,-89,344,-79,-81,360,361,-415,-75,390,-495,-88,-472,-279',
'-84,554,389,625,285,-84,-279,-79,-76,-495,-79,-476,360,361,375,-495',
'-495,-495,-80,-472,711,-76,285,97,-495,360,361,525,708,313,-495,360',
'361,542,-279,281,-415,-420,752,264,267,-279,401,-281,-420,388,-476,-280',
'397,-279,-281,-495,754,281,-280,396,707,264,267,16,19,24,-90,31,-495',
'-82,-415,47,56,756,-495,-495,74,-415,85,90,6,9,14,21,25,158,159,-427',
'-279,43,50,53,57,60,66,71,347,-281,93,-281,-425,-280,395,346,624,33',
'-281,-425,42,45,52,58,61,67,72,75,80,87,-279,7,12,-280,23,27,30,-279',
'-83,624,-280,-75,-476,706,-418,412,372,-273,-424,625,-426,-418,411,371',
'-273,-424,123,-426,345,126,758,-281,65,70,426,79,-423,791,424,425,704',
'17,625,-423,-426,504,507,505,505,54,-279,-426,703,-280,76,81,88,3,8',
'13,16,19,24,29,31,410,370,-273,47,56,-426,252,254,74,393,85,90,6,9,14',
'21,25,595,598,600,603,43,50,53,57,60,66,71,-322,-426,93,676,613,541',
'516,-322,26,33,37,40,42,45,52,58,61,67,72,75,80,87,839,7,12,414,23,27',
'30,838,285,285,413,685,686,541,688,80,87,521,392,505,-87,252,254,-79',
'252,254,35,429,-322,48,600,603,65,70,774,79,430,91,431,281,387,17,571',
'264,267,269,272,571,791,54,837,158,159,388,76,81,88,3,8,13,-476,-476',
'-476,699,-476,158,159,385,-476,-476,366,367,428,-476,383,-476,-476,-476',
'-476,-476,-476,-476,252,254,252,254,-476,-476,-476,-476,-476,-476,-476',
'595,598,600,603,285,258,259,252,254,-476,158,159,-476,-476,-476,-476',
'-476,-476,-476,-476,-476,-476,381,-476,-476,117,-476,-476,-476,285,294',
'295,296,297,298,281,734,613,432,264,267,269,272,252,254,270,273,782',
'-476,670,380,-476,-476,785,-476,-476,434,-476,695,-476,281,-476,284',
'-476,264,267,269,272,734,613,594,-476,379,601,604,606,-476,-476,-476',
'-476,-476,-476,-475,-475,-475,288,-475,794,-88,465,-475,-475,692,379',
'379,-475,476,-475,-475,-475,-475,-475,-475,-475,803,804,313,806,-475',
'-475,-475,-475,-475,-475,-475,595,598,600,603,294,295,296,297,298,-475',
'373,-63,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,571,-475,-475',
'313,-475,-475,-475,285,286,263,266,268,271,274,276,278,280,282,313,-497',
'-497,292,478,270,273,814,-475,696,313,-475,-475,-262,-475,-475,313,-475',
'690,-475,281,-475,284,-475,264,267,269,272,275,277,279,-475,283,310',
'369,288,-475,-475,-475,-475,-475,-475,11,16,19,24,29,31,-86,288,365',
'47,56,313,509,428,74,668,85,90,6,9,14,21,25,516,-479,357,81,43,50,53',
'57,60,66,71,523,336,93,660,830,715,708,715,26,33,37,40,42,45,52,58,61',
'67,72,75,80,87,834,7,12,326,23,27,30,285,-497,-497,-497,-497,271,274',
'836,-261,-497,-497,-479,288,654,840,318,270,273,-479,35,843,845,48,-475',
'541,65,70,651,79,848,91,281,288,284,17,264,267,269,272,275,277,279,54',
'283,-479,299,853,76,81,88,3,8,13,11,16,19,24,29,31,732,292,-479,47,56',
'855,646,857,74,292,85,90,6,9,14,21,25,645,-473,860,290,43,50,53,57,60',
'66,71,462,434,93,631,288,-72,629,628,26,33,37,40,42,45,52,58,61,67,72',
'75,80,87,285,7,12,285,23,27,30,285,286,263,266,268,271,274,276,571,280',
'282,-418,571,875,876,877,270,273,-418,35,715,879,48,-473,285,65,70,285',
'79,613,91,281,145,284,17,264,267,269,272,275,277,279,54,283,-473,571',
'882,76,81,88,3,8,13,11,16,19,24,29,31,143,114,-418,47,56,572,578,571',
'74,571,85,90,6,9,14,21,25,95,-479,571,,43,50,53,57,60,66,71,,,93,,,',
',,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,-497',
'-497,-497,-497,271,274,,,-497,-497,-479,,,,,270,273,-479,35,,,304,-475',
',65,70,,79,,91,281,,284,17,264,267,269,272,275,277,279,54,283,-479,',
',76,81,88,3,8,13,11,16,19,24,29,31,,,-479,47,56,,,,74,,85,90,6,9,14',
'21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,285,-497,-497,-497,-497,271,274,,,-497',
'-497,,,,,,270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272',
'275,277,279,54,283,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,',
'74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40',
'42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,,,,,,,,,,,,,,,,270',
'273,,35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,,,279,54,283',
',,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21',
'25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,285,-497,-497,-497,-497,271,274,,,-497,-497',
',,,,,270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,275',
'277,279,54,283,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,',
'85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,,,,,,,,,,,,,,,,270,273',
',35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,,,279,54,283,,',
',76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25',
',,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72',
'75,80,87,,7,12,,23,27,30,285,286,263,266,268,271,274,,,280,282,,,,,',
'270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,275,277',
'279,54,283,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90',
'6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,285,,,,,,,,,,,,,,,,270,273,,35',
',,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,,,279,54,283,,,,76',
'81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,',
',,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75',
'80,87,,7,12,,23,27,30,285,-497,-497,-497,-497,271,274,,,-497,-497,,',
',,,270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264,267,269,272,275',
'277,279,54,283,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,',
'85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,-497,-497,-497,-497,271',
'274,,,-497,-497,,,,,,270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264',
'267,269,272,275,277,279,54,283,,,,76,81,88,3,8,13,11,16,19,24,29,31',
',,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,',
',,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,286',
'263,266,268,271,274,276,278,280,282,,-497,-497,,,270,273,,35,,,48,,',
'65,70,,79,,91,281,,284,17,264,267,269,272,275,277,279,54,283,,,,76,81',
'88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43',
'50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,285,,,,,,,,,,,,,,,,270,273,,35,,,48,,,65,70,,79,,91',
'281,,284,17,264,267,269,272,,,279,54,283,,,,76,81,88,3,8,13,11,16,19',
'24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71',
',,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
'285,,,,,,,,,,,,,,,,270,273,,35,,,48,,,65,70,,79,,91,281,,284,17,264',
'267,269,272,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,',
'74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40',
'42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,285,,,,,,,,,,,,,,,,270',
'273,,35,,,304,,,65,70,,79,,91,281,,,17,264,267,269,272,,,,54,,,,,76',
'81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,',
',,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75',
'80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,304,,,65,70,,79,,91,,',
',17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,',
'85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48',
',,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31',
',,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,',
',,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,',
',,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8',
'13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53',
'57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54',
',,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21',
'25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,',
'91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,',
',74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37',
'40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,',
'35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19',
'24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71',
',,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81',
'88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43',
'50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,',
',,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6',
'9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70',
',79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47',
'56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33',
'37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,',
',,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16',
'19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66',
'71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76',
'81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,',
',,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75',
'80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,',
'17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31,,,,47,56,,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45',
'52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,',
',65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,11,16,19,24,29,31',
',,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,',
',,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,',
',,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,594,54,,601,604,606,76',
'81,88,3,8,13,-473,-473,-473,,-473,,,,-473,-473,,,,-473,,-473,-473,-473',
'-473,-473,-473,-473,,-473,,,-473,-473,-473,-473,-473,-473,-473,595,598',
'600,603,,,,,,-473,,,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473',
',-473,-473,,-473,-473,-473,,,,,,,,,,,,,,,,,,,,-473,,,-473,-473,,-473',
'-473,,-473,,-473,,-473,,-473,,,,,,,,-473,,-473,,,-473,-473,-473,-473',
'-473,-473,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,325,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,325,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,',
'31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71',
',,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,',
',,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8',
'13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60',
'66,71,,,93,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,653,104,,,42,45,52,58,61,67,72,75',
'80,87,,7,12,,,,103,,285,286,263,266,268,271,274,276,278,280,282,,287',
'265,,,270,273,137,,,126,,,65,70,,79,,,,281,,284,,264,267,269,272,275',
'277,279,,283,,,76,81,88,3,8,13,16,19,24,,31,262,,,47,56,-217,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,',
',,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,',
',,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,',
',,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,',
',,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107',
'108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,',
',,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,',
',,43,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,',
'7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,',
',,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100',
'21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72',
'75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,',
',,,17,,,,,,,,127,,,,,76,81,88,3,8,13,-474,-474,-474,,-474,,,,-474,-474',
',,,-474,,-474,-474,-474,-474,-474,-474,-474,,-474,,,-474,-474,-474,-474',
'-474,-474,-474,,,,,,,,,,-474,,,-474,-474,-474,-474,-474,-474,-474,-474',
'-474,-474,,-474,-474,,-474,-474,-474,,,,,,,,,,,,,,,,,,,,-474,,,-474',
'-474,,-474,-474,,-474,,-474,,-474,,-474,,,,,,,,-474,,-474,,,-474,-474',
'-474,-474,-474,-474,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25',
',,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99',
'100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',818,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74',
',85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,',
'65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47',
'56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,',
'33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,',
',,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19',
'24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,811,,117,,17,,,,,,,,127,,,,,76',
'81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,501,,,,17,,,,,,',
',127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100',
'21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72',
'75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,810',
',117,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74',
',85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,',
'65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,-251,-251,-251,,-251',
',,,-251,-251,,,,-251,,-251,-251,-251,-251,-251,-251,-251,,,,,-251,-251',
'-251,-251,-251,-251,-251,,,,,,,,,,-251,,,-251,-251,-251,-251,-251,-251',
'-251,-251,-251,-251,,-251,-251,,-251,-251,-251,,,,,,,,,,,,,,,,,,,,-251',
',,-251,313,,-251,-251,,-251,,-251,,-251,,-251,,,,,,,,-251,,,,,-251,-251',
'-251,-251,-251,-251,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,653,104,,,42,45,52',
'58,61,67,72,75,80,87,,7,12,,,,103,,285,286,263,266,268,271,274,276,278',
'280,282,,287,265,,,270,273,798,,,126,,,65,70,,79,,,,281,,284,,264,267',
'269,272,275,277,279,,283,,,76,81,88,3,8,13,-472,-472,-472,,-472,262',
',,-472,-472,,,,-472,,-472,-472,-472,-472,-472,-472,-472,,-472,,,-472',
'-472,-472,-472,-472,-472,-472,,,,,,,,,,-472,,,-472,-472,-472,-472,-472',
'-472,-472,-472,-472,-472,,-472,-472,,-472,-472,-472,,,,,,,,,,,,,,,,',
',,,-472,,,-472,-472,,-472,-472,,-472,,-472,,-472,,-472,,,,,,,,-472,',
'-472,,,-472,-472,-472,-472,-472,-472,-251,-251,-251,,-251,,,,-251,-251',
',,,-251,,-251,-251,-251,-251,-251,-251,-251,,,,,-251,-251,-251,-251',
'-251,-251,-251,,,,,,,,,,-251,,,-251,-251,-251,-251,-251,-251,-251,-251',
'-251,-251,,-251,-251,,-251,-251,-251,,,,,,,,,,,,,,,,,,,,-251,,,-251',
'310,,-251,-251,,-251,,-251,,-251,,-251,,,,,,,,-251,,,,,-251,-251,-251',
'-251,-251,-251,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,',
',106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,',
',,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99',
'100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,',
'85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45',
'52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126',
',,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47',
'56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,',
'33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,',
',,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19',
'24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107',
'108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,',
',,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,776,,117',
',17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90',
'6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,325,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56',
',,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33',
',,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123',
',,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,564,,117,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53',
'57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76',
'81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43',
'50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,104,,',
'42,45,52,58,61,67,72,75,80,87,,7,12,,,,103,,285,286,263,266,268,271',
'274,276,278,280,282,,287,265,,,270,273,137,,,126,,,65,70,,79,,,,281',
',284,,264,267,269,272,275,277,279,,283,,,76,81,88,3,8,13,16,19,24,,31',
'262,,,47,56,,,288,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50',
'53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,133,,117,,17,,,,,,,',
'127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100',
'21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72',
'75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,',
',,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,',
',,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,',
',42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123',
',,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,751,,,,17,,,,,,,,127,,,,,76,81,88,3,8',
'13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108',
'57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76',
'81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,561,,117,,17,,,',
',,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99',
'100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,',
'85,90,6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,',
'65,70,,79,,561,,117,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,',
',,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,',
',,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16',
'19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71',
',,93,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,',
',,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3',
'8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108',
'57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76',
'81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,104,,,42,45,52,58,61,67,72,75,80,87,,7',
'12,,594,,103,601,604,606,,,,,,,,,,,,,,,,,105,,,48,,,65,70,,79,,91,,',
',,607,,,,,,731,595,598,600,603,,76,81,88,3,8,13,16,19,24,,31,,,,47,56',
',,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33',
',,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123',
',,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,',
',,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,',
',,,,,,123,,,126,,,65,70,,79,,325,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57',
'60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50',
'53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,',
'23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,871,,117',
',17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90',
'6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56',
',,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33',
',,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123',
',,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57',
'60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50',
'53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,',
'23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,872,,117',
',17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90',
'6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,885,,117,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,',
'47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,,,,',
',33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,',
',,,123,,,126,,,65,70,,79,,325,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16',
'19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60',
'66,71,,,,,,,,,,104,,,42,45,52,58,61,67,72,75,80,87,,7,12,,,,103,,285',
'286,263,266,268,271,274,276,278,280,282,,287,265,,,270,273,105,,,48',
',,65,70,,79,,91,,281,,284,,264,267,269,272,275,277,279,,283,,,76,81',
'88,3,8,13,16,19,24,,31,262,,,47,56,,,288,74,,85,90,6,99,100,21,25,,',
',,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,',
',,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99',
'100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,',
'85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45',
'52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126',
',,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47',
'56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,',
'33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,',
',,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19',
'24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107',
'108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,',
',,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57',
'60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85',
'90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,',
'65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47',
'56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,',
'33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,',
',,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19',
'24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107',
'108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,',
',,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57',
'60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31',
',,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,',
',,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,',
',,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13',
'16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57',
'60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,123,,,126,462,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76',
'81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67',
'72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79',
',,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,',
',,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,',
',,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,',
',,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,',
',,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19',
'24,29,31,,,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71',
',,93,,,,,,26,33,37,40,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30',
',,,,,,,,,,,,,,,,,,,35,,,48,,,65,70,,79,,91,,,,17,,,,,,,,54,,,,,76,81',
'88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106',
'107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12',
',23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,325,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,104,,,42,45,152,58',
'61,67,153,75,80,87,,7,12,,,,103,,285,286,263,266,268,271,274,276,278',
'280,282,,287,265,,,270,273,151,,,126,,,65,70,,79,,,,281,,284,,264,267',
'269,272,275,277,279,,283,,,76,81,88,3,8,13,16,19,24,,31,262,,,47,56',
'571,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33',
',,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123',
',,126,,,65,70,,79,,644,,117,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19',
'24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66',
'71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,',
',,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88',
'3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50',
'53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,133,,117,,17,,,,,,,',
'127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,9,14,21',
'25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42,45,52,58,61,67,72,75',
'80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,',
'17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90',
'6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58',
'61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65',
'70,,79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56',
',,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,16,19,24,,31,',
',,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50,53,57,60,66,71,,,,,,',
',,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,',
',,,,,123,,,126,,,487,70,,79,,133,,117,,17,,,,,,,,127,,,,,76,81,88,3',
'8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50,53',
'57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,123,,,126,,489,65,70,,79,,133,,117,,17,,,,,,,',
'127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100',
'21,25,,,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75',
'80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,133',
',117,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74',
',85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,104,,,42',
'45,152,58,61,67,153,75,80,87,,7,12,,,,103,,285,286,263,266,268,271,274',
'276,278,280,282,,287,265,,148,270,273,151,,,126,,,65,70,,79,,,,281,',
'284,,264,267,269,272,275,277,279,,283,,,76,81,88,3,8,13,16,19,24,,31',
'262,620,,47,56,,,,74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,',
',,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,',
',,,,,,,,,123,,,126,,,65,70,,79,,501,,,,17,,,,,,,,127,,,,,76,81,88,3',
'8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,50,53',
'57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23,27',
'30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,133,,117,,17,,,,,,,,127',
',,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87',
',7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,325,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,658,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,-251,-251,-251,,-251,',
',,-251,-251,,,,-251,,-251,-251,-251,-251,-251,-251,-251,,,,,-251,-251',
'-251,-251,-251,-251,-251,,,,,,,,,,-251,,,-251,-251,-251,-251,-251,-251',
'-251,-251,-251,-251,,-251,-251,,-251,-251,-251,,,,,,,,,,,,,,,,,,,,-251',
',,-251,313,,-251,-251,,-251,,-251,,-251,,-251,,,,,,,,-251,,,,,-251,-251',
'-251,-251,-251,-251,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100,21,25',
',,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80',
'87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17',
',,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85,90,6',
'99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,,,,,,,,33,,,42,45',
'52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126',
',,65,70,,79,,501,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,-477,-477,-477',
',-477,,,,-477,-477,,,,-477,,-477,-477,-477,-477,-477,-477,-477,,,,,-477',
'-477,-477,-477,-477,-477,-477,,,,,,,,,,-477,,,-477,-477,-477,-477,-477',
'-477,-477,-477,-477,-477,,-477,-477,,-477,-477,-477,,,,,,,,,,,,,,,,',
',,,-477,,,-477,-477,,-477,-477,,-477,,-477,,-477,,-477,,,,,,,,-477,',
',,,-477,-477,-477,-477,-477,-477,16,19,24,29,31,,,,47,56,,,,74,,85,90',
'6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,93,,,,,,26,33,37,40,42,45,52',
'58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,35,,,48,,,65',
'70,,79,,91,,,,17,,,,,,,,54,,,,,76,81,88,3,8,13,-478,-478,-478,,-478',
',,,-478,-478,,,,-478,,-478,-478,-478,-478,-478,-478,-478,,,,,-478,-478',
'-478,-478,-478,-478,-478,,,,,,,,,,-478,,,-478,-478,-478,-478,-478,-478',
'-478,-478,-478,-478,,-478,-478,,-478,-478,-478,,,,,,,,,,,,,,,,,,,,-478',
',,-478,-478,,-478,-478,,-478,,-478,,-478,,-478,,,,,,,,-478,,,,,-478',
'-478,-478,-478,-478,-478,16,19,24,,31,,,,47,56,,,,74,,85,90,6,99,100',
'21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72',
'75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,',
',,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,,74,,85',
'90,6,9,14,21,25,,,,,43,50,53,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61',
'67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70',
',79,,,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,,31,,,,47,56,,,',
'74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71,,,,,,,,,,33,,,42',
'45,52,58,61,67,72,75,80,87,,7,12,,23,27,30,,,,,,,,,,,,,,,,,,,,123,,',
'126,,,65,70,,79,,664,,,,17,,,,,,,,127,,,,,76,81,88,3,8,13,16,19,24,',
'31,,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107,108,57,60,66,71',
',,,,,,,,,104,,,42,45,52,58,61,67,72,75,80,87,,7,12,,,,103,,285,286,263',
'266,268,271,274,276,278,280,282,,287,265,,,270,273,137,,,138,,,65,70',
',79,,140,,281,,284,,264,267,269,272,275,277,279,,283,,,76,81,88,3,8',
'13,16,19,24,,31,262,,,47,56,,,,74,,85,90,6,99,100,21,25,,,,,106,107',
'108,57,60,66,71,,,,,,,,,,33,,,42,45,52,58,61,67,72,75,80,87,,7,12,,23',
'27,30,,,,,,,,,,,,,,,,,,,,123,,,126,,,65,70,,79,,,,,,17,,,,,,,,127,,',
',,76,81,88,3,8,13,169,173,178,184,188,195,199,203,,,220,223,225,228',
'232,,,162,165,167,175,180,186,189,,,204,209,214,243,244,246,248,233',
'234,236,161,164,166,171,176,182,191,197,202,238,240,242,218,,,247,,',
',,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,,',
',,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217,,,230,249',
'169,173,178,184,188,195,199,203,,,220,223,225,228,232,,,162,165,167',
'175,180,186,189,,,204,209,214,243,244,246,248,233,234,236,161,164,166',
'171,176,182,191,197,202,238,240,242,218,245,,247,,,,,,,,177,183,,194',
'198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,',
'168,172,181,187,190,196,200,205,210,,217,,,230,249,169,173,178,184,188',
'195,199,203,,,220,223,225,228,232,,,162,165,167,175,180,186,189,,,204',
'209,214,243,244,246,248,233,234,236,161,164,166,171,176,182,191,197',
'202,238,240,242,218,,,247,,,,,,,,177,183,,194,198,208,212,,219,222,',
',231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196',
'200,205,210,,217,,,230,249,169,173,178,184,188,195,199,203,,,220,223',
'225,228,232,,,162,165,167,175,180,186,189,,,204,209,214,243,244,246',
'248,233,234,236,161,164,166,171,176,182,191,197,202,238,240,242,218',
',,247,,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179',
'185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217,,',
'230,249,169,173,178,184,188,195,199,203,,,220,223,225,228,232,,,162',
'165,167,175,180,186,189,,,204,209,214,243,244,246,248,233,234,236,161',
'164,166,171,176,182,191,197,202,238,240,242,218,,,247,,,,,,,,177,183',
',194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235',
'163,,168,172,181,187,190,196,200,205,210,,217,,,230,169,173,178,184',
'188,195,199,203,,,220,223,225,228,232,,,162,165,167,175,180,186,189',
',,204,209,214,243,244,246,248,233,234,236,161,164,166,171,176,182,191',
'197,202,238,240,242,218,333,334,247,335,,,,,,,177,183,,194,198,208,212',
',219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181',
'187,190,196,200,205,210,,217,,,230,169,173,178,184,188,195,199,203,',
',220,223,225,228,232,,,162,165,167,175,180,186,189,,,204,209,214,243',
'244,246,248,233,234,236,161,164,166,171,176,182,191,197,202,238,240',
'242,218,333,334,247,335,,,,,,,177,183,,194,198,208,212,,219,222,,,231',
',,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200',
'205,210,,217,,,230,169,173,178,184,188,195,199,203,,,220,223,225,228',
'232,,,162,165,167,175,180,186,189,,,204,209,214,216,221,226,229,233',
'234,236,161,164,166,171,176,182,191,197,202,207,211,215,218,61,67,227',
'75,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179,185',
',,,,,213,594,,,601,604,606,235,163,,168,172,181,187,190,196,200,205',
'210,,217,,,230,285,286,263,266,268,271,274,276,278,280,282,,287,265',
',607,270,273,,,,-217,595,598,600,603,,,,,,281,,284,,264,267,269,272',
'275,277,279,,283,,,,,548,533,,,550,,,,,262,,,177,183,-217,194,198,208',
'212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172',
'181,187,190,196,200,205,210,,217,568,481,230,,569,,,,,,,,177,183,,194',
'198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,',
'168,172,181,187,190,196,200,205,210,,217,566,533,230,,567,,,,,,,,177',
'183,,194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,',
'235,163,,168,172,181,187,190,196,200,205,210,,217,865,533,230,,866,',
',,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,',
',,,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217,574,533',
'230,,575,,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174',
'179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217',
'568,481,230,,569,,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,',
'170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200,205',
'210,,217,867,481,230,,868,,,,,,,,177,183,,194,198,208,212,,219,222,',
',231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196',
'200,205,210,,217,566,533,230,,567,,,,,,,,177,183,,194,198,208,212,,219',
'222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190',
'196,200,205,210,,217,551,481,230,,553,,,,,,,,177,183,,194,198,208,212',
',219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181',
'187,190,196,200,205,210,,217,480,481,230,,482,,,,,,,,177,183,,194,198',
'208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168',
'172,181,187,190,196,200,205,210,,217,585,533,230,,586,,,,,,,,177,183',
',194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235',
'163,,168,172,181,187,190,196,200,205,210,,217,576,481,230,,577,,,,,',
',,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179,185,,,,,,',
',,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217,480,481,230',
',482,,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170,174,179',
'185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210,,217,480',
'481,230,,482,,,,,,,,177,183,,194,198,208,212,,219,222,,,231,,,,,170',
'174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200,205,210',
',217,480,481,230,,482,,,,,,,,177,183,,194,198,208,212,,219,222,,,231',
',,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196,200',
'205,210,,217,480,481,230,,482,,,,,,,,177,183,,194,198,208,212,,219,222',
',,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190,196',
'200,205,210,,217,532,533,230,,534,,,,,,,,177,183,,194,198,208,212,,219',
'222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181,187,190',
'196,200,205,210,,217,536,481,230,,538,,,,,,,,177,183,,194,198,208,212',
',219,222,,,231,,,,,170,174,179,185,,,,,,,,,,,,,235,163,,168,172,181',
'187,190,196,200,205,210,,217,,,230,285,286,263,266,268,271,274,276,278',
'280,282,,287,265,,,270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275',
'277,279,,283,,,285,286,263,266,268,271,274,276,278,280,282,262,287,265',
',,270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275,277,279,,283,,',
'285,286,263,266,268,271,274,276,278,280,282,262,287,265,,,270,273,,',
',,,,,,,,,,,281,,284,,264,267,269,272,275,277,279,,283,,,285,286,263',
'266,268,271,274,276,278,280,282,262,287,265,,,270,273,,,,,,,,,,,,,,281',
',284,,264,267,269,272,275,277,279,,283,,,285,286,263,266,268,271,274',
'276,278,280,282,262,287,265,,,270,273,,,,,,,,,,,,,,281,,284,,264,267',
'269,272,275,277,279,,283,,,285,286,263,266,268,271,274,276,278,280,282',
'262,287,265,,,270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275,277',
'279,,283,,,285,286,263,266,268,271,274,276,278,280,282,262,287,265,',
',270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275,277,279,,283,,,285',
'286,263,266,268,271,274,276,278,280,282,262,287,265,,,270,273,,,,,,',
',,,,,,,281,,284,,264,267,269,272,275,277,279,,283,,,285,286,263,266',
'268,271,274,276,278,280,282,262,287,265,,,270,273,,,,,,,,,,,,,,281,',
'284,,264,267,269,272,275,277,279,,283,,,285,286,263,266,268,271,274',
'276,278,280,282,262,287,265,,,270,273,,,,,,,,,,,,,,281,,284,,264,267',
'269,272,275,277,279,,283,,,285,286,263,266,268,271,274,276,278,280,282',
'262,287,265,,,270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275,277',
'279,,283,,,285,286,263,266,268,271,274,276,278,280,282,262,287,265,',
',270,273,,,,,,,,,,,,,,281,,284,,264,267,269,272,275,277,279,,283,,,',
',,,,,,,,,,262' ]
        racc_action_table = arr = Array.new(22746, 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 = [
'534,317,83,608,608,393,150,534,534,534,369,134,393,534,534,695,534,536',
'134,640,868,142,662,380,569,820,96,49,327,96,327,619,330,805,49,534',
'534,493,534,534,534,534,534,302,493,867,216,724,38,38,38,38,38,216,695',
'393,536,621,621,536,640,134,380,569,534,534,534,534,534,534,534,534',
'534,534,534,534,534,534,617,865,534,534,534,142,534,83,96,96,534,543',
'493,369,330,330,330,534,608,534,641,534,534,534,534,534,534,534,532',
'534,150,534,621,317,369,532,532,532,553,317,317,532,532,534,532,534',
'614,534,534,643,534,534,868,532,662,150,150,548,868,868,662,662,689',
'532,532,805,532,532,532,532,532,805,805,612,151,302,865,867,151,724',
'576,302,302,867,867,724,724,121,539,323,551,323,532,532,532,532,532',
'532,532,532,532,532,532,532,532,532,98,543,532,532,532,865,532,543,543',
'747,532,865,865,553,548,647,747,532,113,532,121,532,532,532,532,532',
'532,532,483,532,532,532,548,102,553,483,483,483,576,611,483,483,483',
'532,483,532,86,532,532,577,532,532,689,548,483,576,631,550,689,689,690',
'116,747,483,483,551,483,483,483,483,483,464,374,576,649,226,576,152',
'539,605,113,98,226,484,539,539,551,568,602,290,484,484,484,115,631,484',
'484,484,192,484,116,113,98,483,464,192,341,668,86,484,483,681,352,577',
'102,483,483,652,484,484,550,484,484,484,484,484,568,152,290,86,577,290',
'374,374,152,102,132,483,550,152,575,690,374,132,681,442,668,575,577',
'668,483,577,575,115,115,115,483,483,484,550,152,599,690,445,5,484,341',
'341,341,594,484,484,352,352,352,866,442,152,221,656,442,442,866,143',
'699,221,132,866,836,139,575,699,484,661,445,836,139,593,445,445,74,74',
'74,5,74,484,5,215,74,74,663,484,484,74,215,74,74,74,74,74,74,74,402',
'402,22,866,74,74,74,74,74,74,74,84,699,74,879,207,836,139,84,527,74',
'879,207,74,74,74,74,74,74,74,74,74,74,586,74,74,409,74,74,74,586,22',
'528,409,22,586,592,227,154,112,800,211,527,136,227,154,112,800,211,74',
'136,84,74,665,879,74,74,245,74,229,713,245,245,587,74,528,229,801,322',
'340,322,340,74,586,801,583,409,74,74,74,74,74,74,255,255,255,255,255',
'154,112,800,255,255,136,74,74,255,137,255,255,255,255,255,255,255,713',
'713,713,713,255,255,255,255,255,255,255,62,801,255,538,817,672,817,62',
'255,255,255,255,255,255,255,255,255,255,255,255,255,255,799,255,255',
'156,255,255,255,799,446,250,156,545,545,675,545,545,545,338,135,338',
'538,579,579,538,701,701,255,257,62,255,715,715,255,255,683,255,258,255',
'259,446,131,255,693,446,446,446,446,694,830,255,799,301,301,156,255',
'255,255,255,255,255,567,567,567,573,567,319,319,130,567,567,103,103',
'255,567,129,567,567,567,567,567,567,567,329,329,596,596,567,567,567',
'567,567,567,567,830,830,830,830,443,30,30,28,28,567,20,20,567,567,567',
'567,567,567,567,567,567,567,128,567,567,571,567,567,567,452,427,427',
'427,427,427,443,869,869,260,443,443,443,443,403,403,452,452,702,567',
'567,123,567,567,710,567,567,261,567,565,567,452,567,452,567,452,452',
'452,452,630,630,607,567,562,607,607,607,567,567,567,567,567,567,566',
'566,566,717,566,718,567,293,566,566,560,119,559,566,303,566,566,566',
'566,566,566,566,730,733,552,736,566,566,566,566,566,566,566,607,607',
'607,607,141,141,141,141,141,566,114,305,566,566,566,566,566,566,566',
'566,566,566,741,566,566,743,566,566,566,460,460,460,460,460,460,460',
'460,460,460,460,745,460,460,746,306,460,460,748,566,566,549,566,566',
'750,566,566,108,566,547,566,460,566,460,566,460,460,460,460,460,460',
'460,566,460,107,105,104,566,566,566,566,566,566,597,597,597,597,597',
'597,566,321,101,597,597,535,324,328,597,529,597,597,597,597,597,597',
'597,517,585,95,89,597,597,597,597,597,597,597,339,78,597,514,788,789',
'791,792,597,597,597,597,597,597,597,597,597,597,597,597,597,597,793',
'597,597,73,597,597,597,439,439,439,439,439,439,439,798,512,439,439,585',
'502,499,802,64,439,439,585,597,808,809,597,585,351,597,597,494,597,813',
'597,439,492,439,597,439,439,439,439,439,439,439,597,439,585,40,819,597',
'597,597,597,597,597,299,299,299,299,299,299,627,491,585,299,299,823',
'490,825,299,36,299,299,299,299,299,299,299,488,153,828,35,299,299,299',
'299,299,299,299,368,835,299,477,33,476,474,471,299,299,299,299,299,299',
'299,299,299,299,299,299,299,299,458,299,299,454,299,299,299,451,451',
'451,451,451,451,451,451,846,451,451,153,847,856,858,861,451,451,153',
'299,862,864,299,153,440,299,299,437,299,433,299,451,15,451,299,451,451',
'451,451,451,451,451,299,451,153,391,870,299,299,299,299,299,299,304',
'304,304,304,304,304,13,8,153,304,304,394,399,883,304,884,304,304,304',
'304,304,304,304,2,574,888,,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,441,441,441,441,441,441,441,,,441,441,574,,,,,441,441,574,304,,',
'304,574,,304,304,,304,,304,441,,441,304,441,441,441,441,441,441,441',
'304,441,574,,,304,304,304,304,304,304,544,544,544,544,544,544,,,574',
'544,544,,,,544,,544,544,544,544,544,544,544,,,,,544,544,544,544,544',
'544,544,,,544,,,,,,544,544,544,544,544,544,544,544,544,544,544,544,544',
'544,,544,544,,544,544,544,459,459,459,459,459,459,459,,,459,459,,,,',
',459,459,,544,,,544,,,544,544,,544,,544,459,,459,544,459,459,459,459',
'459,459,459,544,459,,,,544,544,544,544,544,544,582,582,582,582,582,582',
',,,582,582,,,,582,,582,582,582,582,582,582,582,,,,,582,582,582,582,582',
'582,582,,,582,,,,,,582,582,582,582,582,582,582,582,582,582,582,582,582',
'582,,582,582,,582,582,582,444,,,,,,,,,,,,,,,,444,444,,582,,,582,,,582',
'582,,582,,582,444,,444,582,444,444,444,444,,,444,582,444,,,,582,582',
'582,582,582,582,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,453',
'453,453,453,453,453,453,,,453,453,,,,,,453,453,,796,,,796,,,796,796',
',796,,796,453,,453,796,453,453,453,453,453,453,453,796,453,,,,796,796',
'796,796,796,796,31,31,31,31,31,31,,,,31,31,,,,31,,31,31,31,31,31,31',
'31,,,,,31,31,31,31,31,31,31,,,31,,,,,,31,31,31,31,31,31,31,31,31,31',
'31,31,31,31,,31,31,,31,31,31,448,,,,,,,,,,,,,,,,448,448,,31,,,31,,,31',
'31,,31,,31,448,,448,31,448,448,448,448,,,448,31,448,,,,31,31,31,31,31',
'31,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,449,449,449,449',
'449,449,449,,,449,449,,,,,,449,449,,841,,,841,,,841,841,,841,,841,449',
',449,841,449,449,449,449,449,449,449,841,449,,,,841,841,841,841,841',
'841,613,613,613,613,613,613,,,,613,613,,,,613,,613,613,613,613,613,613',
'613,,,,,613,613,613,613,613,613,613,,,613,,,,,,613,613,613,613,613,613',
'613,613,613,613,613,613,613,613,,613,613,,613,613,613,450,,,,,,,,,,',
',,,,,450,450,,613,,,613,,,613,613,,613,,613,450,,450,613,450,450,450',
'450,,,450,613,450,,,,613,613,613,613,613,613,829,829,829,829,829,829',
',,,829,829,,,,829,,829,829,829,829,829,829,829,,,,,829,829,829,829,829',
'829,829,,,829,,,,,,829,829,829,829,829,829,829,829,829,829,829,829,829',
'829,,829,829,,829,829,829,455,455,455,455,455,455,455,,,455,455,,,,',
',455,455,,829,,,829,,,829,829,,829,,829,455,,455,829,455,455,455,455',
'455,455,455,829,455,,,,829,829,829,829,829,829,826,826,826,826,826,826',
',,,826,826,,,,826,,826,826,826,826,826,826,826,,,,,826,826,826,826,826',
'826,826,,,826,,,,,,826,826,826,826,826,826,826,826,826,826,826,826,826',
'826,,826,826,,826,826,826,436,436,436,436,436,436,436,,,436,436,,,,',
',436,436,,826,,,826,,,826,826,,826,,826,436,,436,826,436,436,436,436',
'436,436,436,826,436,,,,826,826,826,826,826,826,824,824,824,824,824,824',
',,,824,824,,,,824,,824,824,824,824,824,824,824,,,,,824,824,824,824,824',
'824,824,,,824,,,,,,824,824,824,824,824,824,824,824,824,824,824,824,824',
'824,,824,824,,824,824,824,438,438,438,438,438,438,438,438,438,438,438',
',438,438,,,438,438,,824,,,824,,,824,824,,824,,824,438,,438,824,438,438',
'438,438,438,438,438,824,438,,,,824,824,824,824,824,824,515,515,515,515',
'515,515,,,,515,515,,,,515,,515,515,515,515,515,515,515,,,,,515,515,515',
'515,515,515,515,,,515,,,,,,515,515,515,515,515,515,515,515,515,515,515',
'515,515,515,,515,515,,515,515,515,447,,,,,,,,,,,,,,,,447,447,,515,,',
'515,,,515,515,,515,,515,447,,447,515,447,447,447,447,,,447,515,447,',
',,515,515,515,515,515,515,495,495,495,495,495,495,,,,495,495,,,,495',
',495,495,495,495,495,495,495,,,,,495,495,495,495,495,495,495,,,495,',
',,,,495,495,495,495,495,495,495,495,495,495,495,495,495,495,,495,495',
',495,495,495,456,,,,,,,,,,,,,,,,456,456,,495,,,495,,,495,495,,495,,495',
'456,,456,495,456,456,456,456,,,,495,,,,,495,495,495,495,495,495,138',
'138,138,138,138,138,,,,138,138,,,,138,,138,138,138,138,138,138,138,',
',,,138,138,138,138,138,138,138,,,138,,,,,,138,138,138,138,138,138,138',
'138,138,138,138,138,138,138,,138,138,,138,138,138,457,,,,,,,,,,,,,,',
',457,457,,138,,,138,,,138,138,,138,,138,457,,,138,457,457,457,457,,',
',138,,,,,138,138,138,138,138,138,48,48,48,48,48,48,,,,48,48,,,,48,,48',
'48,48,48,48,48,48,,,,,48,48,48,48,48,48,48,,,48,,,,,,48,48,48,48,48',
'48,48,48,48,48,48,48,48,48,,48,48,,48,48,48,,,,,,,,,,,,,,,,,,,,48,,',
'48,,,48,48,,48,,48,,,,48,,,,,,,,48,,,,,48,48,48,48,48,48,126,126,126',
'126,126,126,,,,126,126,,,,126,,126,126,126,126,126,126,126,,,,,126,126',
'126,126,126,126,126,,,126,,,,,,126,126,126,126,126,126,126,126,126,126',
'126,126,126,126,,126,126,,126,126,126,,,,,,,,,,,,,,,,,,,,126,,,126,',
',126,126,,126,,126,,,,126,,,,,,,,126,,,,,126,126,126,126,126,126,723',
'723,723,723,723,723,,,,723,723,,,,723,,723,723,723,723,723,723,723,',
',,,723,723,723,723,723,723,723,,,723,,,,,,723,723,723,723,723,723,723',
'723,723,723,723,723,723,723,,723,723,,723,723,723,,,,,,,,,,,,,,,,,,',
',723,,,723,,,723,723,,723,,723,,,,723,,,,,,,,723,,,,,723,723,723,723',
'723,723,475,475,475,475,475,475,,,,475,475,,,,475,,475,475,475,475,475',
'475,475,,,,,475,475,475,475,475,475,475,,,475,,,,,,475,475,475,475,475',
'475,475,475,475,475,475,475,475,475,,475,475,,475,475,475,,,,,,,,,,',
',,,,,,,,,475,,,475,,,475,475,,475,,475,,,,475,,,,,,,,475,,,,,475,475',
'475,475,475,475,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,729,729,729,729,729,,729,729,,729,729,729,,',
',,,,,,,,,,,,,,,,,729,,,729,,,729,729,,729,,729,,,,729,,,,,,,,729,,,',
',729,729,729,729,729,729,755,755,755,755,755,755,,,,755,755,,,,755,',
'755,755,755,755,755,755,755,,,,,755,755,755,755,755,755,755,,,755,,',
',,,755,755,755,755,755,755,755,755,755,755,755,755,755,755,,755,755',
',755,755,755,,,,,,,,,,,,,,,,,,,,755,,,755,,,755,755,,755,,755,,,,755',
',,,,,,,755,,,,,755,755,755,755,755,755,759,759,759,759,759,759,,,,759',
'759,,,,759,,759,759,759,759,759,759,759,,,,,759,759,759,759,759,759',
'759,,,759,,,,,,759,759,759,759,759,759,759,759,759,759,759,759,759,759',
',759,759,,759,759,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759,759,,759,,759',
',,,759,,,,,,,,759,,,,,759,759,759,759,759,759,760,760,760,760,760,760',
',,,760,760,,,,760,,760,760,760,760,760,760,760,,,,,760,760,760,760,760',
'760,760,,,760,,,,,,760,760,760,760,760,760,760,760,760,760,760,760,760',
'760,,760,760,,760,760,760,,,,,,,,,,,,,,,,,,,,760,,,760,,,760,760,,760',
',760,,,,760,,,,,,,,760,,,,,760,760,760,760,760,760,771,771,771,771,771',
'771,,,,771,771,,,,771,,771,771,771,771,771,771,771,,,,,771,771,771,771',
'771,771,771,,,771,,,,,,771,771,771,771,771,771,771,771,771,771,771,771',
'771,771,,771,771,,771,771,771,,,,,,,,,,,,,,,,,,,,771,,,771,,,771,771',
',771,,771,,,,771,,,,,,,,771,,,,,771,771,771,771,771,771,465,465,465',
'465,465,465,,,,465,465,,,,465,,465,465,465,465,465,465,465,,,,,465,465',
'465,465,465,465,465,,,465,,,,,,465,465,465,465,465,465,465,465,465,465',
'465,465,465,465,,465,465,,465,465,465,,,,,,,,,,,,,,,,,,,,465,,,465,',
',465,465,,465,,465,,,,465,,,,,,,,465,,,,,465,465,465,465,465,465,773',
'773,773,773,773,773,,,,773,773,,,,773,,773,773,773,773,773,773,773,',
',,,773,773,773,773,773,773,773,,,773,,,,,,773,773,773,773,773,773,773',
'773,773,773,773,773,773,773,,773,773,,773,773,773,,,,,,,,,,,,,,,,,,',
',773,,,773,,,773,773,,773,,773,,,,773,,,,,,,,773,,,,,773,773,773,773',
'773,773,780,780,780,780,780,780,,,,780,780,,,,780,,780,780,780,780,780',
'780,780,,,,,780,780,780,780,780,780,780,,,780,,,,,,780,780,780,780,780',
'780,780,780,780,780,780,780,780,780,,780,780,,780,780,780,,,,,,,,,,',
',,,,,,,,,780,,,780,,,780,780,,780,,780,,,,780,,,,,,,,780,,,,,780,780',
'780,780,780,780,1,1,1,1,1,1,,,,1,1,,,,1,,1,1,1,1,1,1,1,,,,,1,1,1,1,1',
'1,1,,,1,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,,1,1,1,,,,,,,,,,,,,,,',
',,,,1,,,1,,,1,1,,1,,1,,,,1,,,,,,,,1,,,,,1,1,1,1,1,1,415,415,415,415',
'415,415,,,,415,415,,,,415,,415,415,415,415,415,415,415,,,,,415,415,415',
'415,415,415,415,,,415,,,,,,415,415,415,415,415,415,415,415,415,415,415',
'415,415,415,,415,415,,415,415,415,,,,,,,,,,,,,,,,,,,,415,,,415,,,415',
'415,,415,,415,,,,415,,,,,,,711,415,,711,711,711,415,415,415,415,415',
'415,72,72,72,,72,,,,72,72,,,,72,,72,72,72,72,72,72,72,,72,,,72,72,72',
'72,72,72,72,711,711,711,711,,,,,,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,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,70,70,70,,70,,,,70,70,,,,70,,70,70,70,70,70',
'70,70,,,,,70,70,70,70,70,70,70,,,,,,,,,,70,,,70,70,70,70,70,70,70,70',
'70,70,,70,70,,70,70,70,,,,,,,,,,,,,,,,,,,,70,,,70,,,70,70,,70,,70,,',
',70,,,,,,,,70,,,,,70,70,70,70,70,70,79,79,79,,79,,,,79,79,,,,79,,79',
'79,79,79,79,79,79,,,,,79,79,79,79,79,79,79,,,,,,,,,,79,,,79,79,79,79',
'79,79,79,79,79,79,,79,79,,79,79,79,,,,,,,,,,,,,,,,,,,,79,,,79,,,79,79',
',79,,,,,,79,,,,,,,,79,,,,,79,79,79,79,79,79,395,395,395,,395,,,,395',
'395,,,,395,,395,395,395,395,395,395,395,,,,,395,395,395,395,395,395',
'395,,,,,,,,,,395,,,395,395,395,395,395,395,395,395,395,395,,395,395',
',395,395,395,,,,,,,,,,,,,,,,,,,,395,,,395,,,395,395,,395,,395,,,,395',
',,,,,,,395,,,,,395,395,395,395,395,395,779,779,779,,779,,,,779,779,',
',,779,,779,779,779,779,779,779,779,,,,,779,779,779,779,779,779,779,',
',,,,,,,,779,,,779,779,779,779,779,779,779,779,779,779,,779,779,,779',
'779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779,779,,779,,,,,,779,,,,,,,',
'779,,,,,779,779,779,779,779,779,422,422,422,,422,,,,422,422,,,,422,',
'422,422,422,422,422,422,422,,,,,422,422,422,422,422,422,422,,,422,,',
',,,,422,,,422,422,422,422,422,422,422,422,422,422,,422,422,,422,422',
'422,,,,,,,,,,,,,,,,,,,,422,,,422,,,422,422,,422,,,,,,422,,,,,,,,422',
',,,,422,422,422,422,422,422,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,91,91,91,,91,,,,91,91,,,,91,,91,91,91,91,91,91,91',
',,,,91,91,91,91,91,91,91,,,,,,,,,498,91,,,91,91,91,91,91,91,91,91,91',
'91,,91,91,,,,91,,498,498,498,498,498,498,498,498,498,498,498,,498,498',
',,498,498,91,,,91,,,91,91,,91,,,,498,,498,,498,498,498,498,498,498,498',
',498,,,91,91,91,91,91,91,93,93,93,,93,498,,,93,93,498,,,93,,93,93,93',
'93,93,93,93,,,,,93,93,93,93,93,93,93,,,93,,,,,,,93,,,93,93,93,93,93',
'93,93,93,93,93,,93,93,,93,93,93,,,,,,,,,,,,,,,,,,,,93,,,93,,,93,93,',
'93,,,,,,93,,,,,,,,93,,,,,93,93,93,93,93,93,65,65,65,,65,,,,65,65,,,',
'65,,65,65,65,65,65,65,65,,,,,65,65,65,65,65,65,65,,,65,,,,,,,65,,,65',
'65,65,65,65,65,65,65,65,65,,65,65,,65,65,65,,,,,,,,,,,,,,,,,,,,65,,',
'65,,,65,65,,65,,,,,,65,,,,,,,,65,,,,,65,65,65,65,65,65,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,810,810,97,97,97,,97,,,,97,97,',
',,97,,97,97,97,97,97,97,97,,,,,97,97,97,97,97,97,97,,,,,,,,,,97,,,97',
'97,97,97,97,97,97,97,97,97,,97,97,,97,97,97,,,,,,,,,,,,,,,,,,,,97,,',
'97,,,97,97,,97,,,,,,97,,,,,,,,97,,,,,97,97,97,97,97,97,430,430,430,',
'430,,,,430,430,,,,430,,430,430,430,430,430,430,430,,,,,430,430,430,430',
'430,430,430,,,,,,,,,,430,,,430,430,430,430,430,430,430,430,430,430,',
'430,430,,430,430,430,,,,,,,,,,,,,,,,,,,,430,,,430,,,430,430,,430,,,',
',,430,,,,,,,,430,,,,,430,430,430,430,430,430,761,761,761,,761,,,,761',
'761,,,,761,,761,761,761,761,761,761,761,,,,,761,761,761,761,761,761',
'761,,,,,,,,,,761,,,761,761,761,761,761,761,761,761,761,761,,761,761',
',761,761,761,,,,,,,,,,,,,,,,,,,,761,,,761,,,761,761,,761,,,,,,761,,',
',,,,,761,,,,,761,761,761,761,761,761,431,431,431,,431,,,,431,431,,,',
'431,,431,431,431,431,431,431,431,,,,,431,431,431,431,431,431,431,,,',
',,,,,,431,,,431,431,431,431,431,431,431,431,431,431,,431,431,,431,431',
'431,,,,,,,,,,,,,,,,,,,,431,,,431,,,431,431,,431,,,,,,431,,,,,,,,431',
',,,,431,431,431,431,431,431,58,58,58,,58,,,,58,58,,,,58,,58,58,58,58',
'58,58,58,,58,,,58,58,58,58,58,58,58,,,,,,,,,,58,,,58,58,58,58,58,58',
'58,58,58,58,,58,58,,58,58,58,,,,,,,,,,,,,,,,,,,,58,,,58,58,,58,58,,58',
',58,,58,,58,,,,,,,,58,,58,,,58,58,58,58,58,58,56,56,56,,56,,,,56,56',
',,,56,,56,56,56,56,56,56,56,,,,,56,56,56,56,56,56,56,,,56,,,,,,,56,',
',56,56,56,56,56,56,56,56,56,56,,56,56,,56,56,56,,,,,,,,,,,,,,,,,,,,56',
',,56,,,56,56,,56,,,,,,56,,,,,,,,56,,,,,56,56,56,56,56,56,756,756,756',
',756,,,,756,756,,,,756,,756,756,756,756,756,756,756,,,,,756,756,756',
'756,756,756,756,,,,,,,,,,756,,,756,756,756,756,756,756,756,756,756,756',
',756,756,,756,756,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,756,756,,756,,756',
',,,756,,,,,,,,756,,,,,756,756,756,756,756,756,54,54,54,,54,,,,54,54',
',,,54,,54,54,54,54,54,54,54,,,,,54,54,54,54,54,54,54,,,,,,,,,,54,,,54',
'54,54,54,54,54,54,54,54,54,,54,54,,54,54,54,,,,,,,,,,,,,,,,,,,,54,,',
'54,,,54,54,,54,,,,,,54,,,,,,,,54,,,,,54,54,54,54,54,54,751,751,751,',
'751,,,,751,751,,,,751,,751,751,751,751,751,751,751,,,,,751,751,751,751',
'751,751,751,,,,,,,,,,751,,,751,751,751,751,751,751,751,751,751,751,',
'751,751,,751,751,751,,,,,,,,,,,,,,,,,,,,751,,,751,,,751,751,,751,,,',
',,751,,,,,,,,751,,,,,751,751,751,751,751,751,740,740,740,,740,,,,740',
'740,,,,740,,740,740,740,740,740,740,740,,,,,740,740,740,740,740,740',
'740,,,,,,,,,,740,,,740,740,740,740,740,740,740,740,740,740,,740,740',
',740,740,740,,,,,,,,,,,,,,,,,,,,740,,,740,,,740,740,,740,,740,,740,',
'740,,,,,,,,740,,,,,740,740,740,740,740,740,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,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,434,,434,,,,434,,,,',
',,,434,,,,,434,434,434,434,434,434,737,737,737,,737,,,,737,737,,,,737',
',737,737,737,737,737,737,737,,,,,737,737,737,737,737,737,737,,,,,,,',
',,737,,,737,737,737,737,737,737,737,737,737,737,,737,737,,737,737,737',
',,,,,,,,,,,,,,,,,,,737,,,737,,,737,737,,737,,737,,737,,737,,,,,,,,737',
',,,,737,737,737,737,737,737,734,734,734,,734,,,,734,734,,,,734,,734',
'734,734,734,734,734,734,,,,,734,734,734,734,734,734,734,,,734,,,,,,',
'734,,,734,734,734,734,734,734,734,734,734,734,,734,734,,734,734,734',
',,,,,,,,,,,,,,,,,,,734,,,734,,,734,734,,734,,,,,,734,,,,,,,,734,,,,',
'734,734,734,734,734,734,53,53,53,,53,,,,53,53,,,,53,,53,53,53,53,53',
'53,53,,,,,53,53,53,53,53,53,53,,,,,,,,,,53,,,53,53,53,53,53,53,53,53',
'53,53,,53,53,,53,53,53,,,,,,,,,,,,,,,,,,,,53,,,53,53,,53,53,,53,,53',
',53,,53,,,,,,,,53,,,,,53,53,53,53,53,53,117,117,117,,117,,,,117,117',
',,,117,,117,117,117,117,117,117,117,,,,,117,117,117,117,117,117,117',
',,,,,,,,,117,,,117,117,117,117,117,117,117,117,117,117,,117,117,,117',
'117,117,,,,,,,,,,,,,,,,,,,,117,,,117,,,117,117,,117,,,,,,117,,,,,,,',
'117,,,,,117,117,117,117,117,117,726,726,726,,726,,,,726,726,,,,726,',
'726,726,726,726,726,726,726,,,,,726,726,726,726,726,726,726,,,,,,,,',
'557,726,,,726,726,726,726,726,726,726,726,726,726,,726,726,,,,726,,557',
'557,557,557,557,557,557,557,557,557,557,,557,557,,,557,557,726,,,726',
',,726,726,,726,,,,557,,557,,557,557,557,557,557,557,557,,557,,,726,726',
'726,726,726,726,52,52,52,,52,557,,,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,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,50,50,50,708,708,708,,708',
',,,708,708,,,,708,,708,708,708,708,708,708,708,,,,,708,708,708,708,708',
'708,708,,,,,,,,,,708,,,708,708,708,708,708,708,708,708,708,708,,708',
'708,,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708,708,,708,,,,,,708',
',,,,,,,708,,,,,708,708,708,708,708,708,811,811,811,,811,,,,811,811,',
',,811,,811,811,811,811,811,811,811,,,,,811,811,811,811,811,811,811,',
',,,,,,,,811,,,811,811,811,811,811,811,811,811,811,811,,811,811,,811',
'811,811,,,,,,,,,,,,,,,,,,,,811,,,811,,,811,811,,811,,,,,,811,,,,,,,',
'811,,,,,811,811,811,811,811,811,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,698,698,698,,698,,,,698,698,,,,698,,698,698',
'698,698,698,698,698,,,,,698,698,698,698,698,698,698,,,,,,,,,,698,,,698',
'698,698,698,698,698,698,698,698,698,,698,698,,698,698,698,,,,,,,,,,',
',,,,,,,,,698,,,698,,,698,698,,698,,,,,,698,,,,,,,,698,,,,,698,698,698',
'698,698,698,697,697,697,,697,,,,697,697,,,,697,,697,697,697,697,697',
'697,697,,,,,697,697,697,697,697,697,697,,,,,,,,,,697,,,697,697,697,697',
'697,697,697,697,697,697,,697,697,,697,697,697,,,,,,,,,,,,,,,,,,,,697',
',,697,,,697,697,,697,,,,,,697,,,,,,,,697,,,,,697,697,697,697,697,697',
'696,696,696,,696,,,,696,696,,,,696,,696,696,696,696,696,696,696,,,,',
'696,696,696,696,696,696,696,,,,,,,,,,696,,,696,696,696,696,696,696,696',
'696,696,696,,696,696,,696,696,696,,,,,,,,,,,,,,,,,,,,696,,,696,,,696',
'696,,696,,,,,,696,,,,,,,,696,,,,,696,696,696,696,696,696,692,692,692',
',692,,,,692,692,,,,692,,692,692,692,692,692,692,692,,,,,692,692,692',
'692,692,692,692,,,,,,,,,,692,,,692,692,692,692,692,692,692,692,692,692',
',692,692,,692,692,692,,,,,,,,,,,,,,,,,,,,692,,,692,,,692,692,,692,,692',
',692,,692,,,,,,,,692,,,,,692,692,692,692,692,692,388,388,388,,388,,',
',388,388,,,,388,,388,388,388,388,388,388,388,,,,,388,388,388,388,388',
'388,388,,,,,,,,,,388,,,388,388,388,388,388,388,388,388,388,388,,388',
'388,,388,388,388,,,,,,,,,,,,,,,,,,,,388,,,388,,,388,388,,388,,388,,',
',388,,,,,,,,388,,,,,388,388,388,388,388,388,133,133,133,,133,,,,133',
'133,,,,133,,133,133,133,133,133,133,133,,,,,133,133,133,133,133,133',
'133,,,,,,,,,,133,,,133,133,133,133,133,133,133,133,133,133,,133,133',
',133,133,133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,133,,,,,,133,,',
',,,,,133,,,,,133,133,133,133,133,133,387,387,387,,387,,,,387,387,,,',
'387,,387,387,387,387,387,387,387,,,,,387,387,387,387,387,387,387,,,',
',,,,,,387,,,387,387,387,387,387,387,387,387,387,387,,387,387,,387,387',
'387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387,387,,387,,387,,387,,387,,,,,',
',,387,,,,,387,387,387,387,387,387,676,676,676,,676,,,,676,676,,,,676',
',676,676,676,676,676,676,676,,,,,676,676,676,676,676,676,676,,,,,,,',
',,676,,,676,676,676,676,676,676,676,676,676,676,,676,676,,676,676,676',
',,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,676,,,,,,676,,,,,,,,676,,,,',
'676,676,676,676,676,676,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,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',
'47,47,47,,47,,,,47,47,,,,47,,47,47,47,47,47,47,47,,,,,47,47,47,47,47',
'47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,47,47,,47,47,,47,47,47',
',,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,47,,,,,,47,,,,,,,,47,,,,,47,47,47',
'47,47,47,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,140,140',
'140,,140,,,,140,140,,,,140,,140,140,140,140,140,140,140,,,,,140,140',
'140,140,140,140,140,,,,,,,,,,140,,,140,140,140,140,140,140,140,140,140',
'140,,140,140,,,,140,,510,510,510,510,510,510,510,510,510,510,510,,510',
'510,,,510,510,140,,,140,,,140,140,,140,,,,510,,510,,510,510,510,510',
'510,510,510,,510,,,140,140,140,140,140,140,664,664,664,,664,510,,,664',
'664,,,510,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,43,43,43,,43,,,,43,43,,,,43,,43',
'43,43,43,43,43,43,,,,,43,43,43,43,43,43,43,,,,,,,,,,43,,,43,43,43,43',
'43,43,43,43,43,43,,43,43,,43,43,43,,,,,,,,,,,,,,,,,,,,43,,,43,,,43,43',
',43,,43,,43,,43,,,,,,,,43,,,,,43,43,43,43,43,43,658,658,658,,658,,,',
'658,658,,,,658,,658,658,658,658,658,658,658,,,,,658,658,658,658,658',
'658,658,,,,,,,,,,658,,,658,658,658,658,658,658,658,658,658,658,,658',
'658,,658,658,658,,,,,,,,,,,,,,,,,,,,658,,,658,,,658,658,,658,,,,,,658',
',,,,,,,658,,,,,658,658,658,658,658,658,148,148,148,,148,,,,148,148,',
',,148,,148,148,148,148,148,148,148,,,,,148,148,148,148,148,148,148,',
',148,,,,,,,148,,,148,148,148,148,148,148,148,148,148,148,,148,148,,148',
'148,148,,,,,,,,,,,,,,,,,,,,148,,,148,,,148,148,,148,,,,,,148,,,,,,,',
'148,,,,,148,148,148,148,148,148,818,818,818,,818,,,,818,818,,,,818,',
'818,818,818,818,818,818,818,,,,,818,818,818,818,818,818,818,,,,,,,,',
',818,,,818,818,818,818,818,818,818,818,818,818,,818,818,,818,818,818',
',,,,,,,,,,,,,,,,,,,818,,,818,,,818,818,,818,,,,,,818,,,,,,,,818,,,,',
'818,818,818,818,818,818,654,654,654,,654,,,,654,654,,,,654,,654,654',
'654,654,654,654,654,,,,,654,654,654,654,654,654,654,,,,,,,,,,654,,,654',
'654,654,654,654,654,654,654,654,654,,654,654,,654,654,654,,,,,,,,,,',
',,,,,,,,,654,,,654,,,654,654,,654,,654,,,,654,,,,,,,,654,,,,,654,654',
'654,654,654,654,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,,,,,385,385,385,385,385',
'385,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,383,383',
'653,653,653,,653,,,,653,653,,,,653,,653,653,653,653,653,653,653,,,,',
'653,653,653,653,653,653,653,,,,,,,,,,653,,,653,653,653,653,653,653,653',
'653,653,653,,653,653,,653,653,653,,,,,,,,,,,,,,,,,,,,653,,,653,,,653',
'653,,653,,,,,,653,,,,,,,,653,,,,,653,653,653,653,653,653,651,651,651',
',651,,,,651,651,,,,651,,651,651,651,651,651,651,651,,,,,651,651,651',
'651,651,651,651,,,,,,,,,,651,,,651,651,651,651,651,651,651,651,651,651',
',651,651,,651,651,651,,,,,,,,,,,,,,,,,,,,651,,,651,,,651,651,,651,,651',
',651,,651,,,,,,,,651,,,,,651,651,651,651,651,651,158,158,158,,158,,',
',158,158,,,,158,,158,158,158,158,158,158,158,,,,,158,158,158,158,158',
'158,158,,,158,,,,,,,158,,,158,158,158,158,158,158,158,158,158,158,,158',
'158,,158,158,158,,,,,,,,,,,,,,,,,,,,158,,,158,,,158,158,,158,,,,,,158',
',,,,,,,158,,,,,158,158,158,158,158,158,159,159,159,,159,,,,159,159,',
',,159,,159,159,159,159,159,159,159,,,,,159,159,159,159,159,159,159,',
',159,,,,,,,159,,,159,159,159,159,159,159,159,159,159,159,,159,159,,159',
'159,159,,,,,,,,,,,,,,,,,,,,159,,,159,,,159,159,,159,,,,,,159,,,,,,,',
'159,,,,,159,159,159,159,159,159,644,644,644,,644,,,,644,644,,,,644,',
'644,644,644,644,644,644,644,,,,,644,644,644,644,644,644,644,,,,,,,,',
',644,,,644,644,644,644,644,644,644,644,644,644,,644,644,,644,644,644',
',,,,,,,,,,,,,,,,,,,644,,,644,,,644,644,,644,,,,,,644,,,,,,,,644,,,,',
'644,644,644,644,644,644,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,,421,,625,421,421,421,',
',,,,,,,,,,,,,,,625,,,625,,,625,625,,625,,625,,,,,421,,,,,,625,421,421',
'421,421,,625,625,625,625,625,625,620,620,620,,620,,,,620,620,,,,620',
',620,620,620,620,620,620,620,,,,,620,620,620,620,620,620,620,,,,,,,',
',,620,,,620,620,620,620,620,620,620,620,620,620,,620,620,,620,620,620',
',,,,,,,,,,,,,,,,,,,620,,,620,,,620,620,,620,,,,,,620,,,,,,,,620,,,,',
'620,620,620,620,620,620,837,837,837,,837,,,,837,837,,,,837,,837,837',
'837,837,837,837,837,,,,,837,837,837,837,837,837,837,,,,,,,,,,837,,,837',
'837,837,837,837,837,837,837,837,837,,837,837,,837,837,837,,,,,,,,,,',
',,,,,,,,,837,,,837,,,837,837,,837,,837,,,,837,,,,,,,,837,,,,,837,837',
'837,837,837,837,381,381,381,,381,,,,381,381,,,,381,,381,381,381,381',
'381,381,381,,,,,381,381,381,381,381,381,381,,,,,,,,,,381,,,381,381,381',
'381,381,381,381,381,381,381,,381,381,,381,381,381,,,,,,,,,,,,,,,,,,',
',381,,,381,,,381,381,,381,,,,,,381,,,,,,,,381,,,,,381,381,381,381,381',
'381,462,462,462,,462,,,,462,462,,,,462,,462,462,462,462,462,462,462',
',,,,462,462,462,462,462,462,462,,,462,,,,,,,462,,,462,462,462,462,462',
'462,462,462,462,462,,462,462,,462,462,462,,,,,,,,,,,,,,,,,,,,462,,,462',
',,462,462,,462,,,,,,462,,,,,,,,462,,,,,462,462,462,462,462,462,843,843',
'843,,843,,,,843,843,,,,843,,843,843,843,843,843,843,843,,,,,843,843',
'843,843,843,843,843,,,,,,,,,,843,,,843,843,843,843,843,843,843,843,843',
'843,,843,843,,843,843,843,,,,,,,,,,,,,,,,,,,,843,,,843,,,843,843,,843',
',843,,843,,843,,,,,,,,843,,,,,843,843,843,843,843,843,379,379,379,,379',
',,,379,379,,,,379,,379,379,379,379,379,379,379,,,,,379,379,379,379,379',
'379,379,,,,,,,,,,379,,,379,379,379,379,379,379,379,379,379,379,,379',
'379,,379,379,379,,,,,,,,,,,,,,,,,,,,379,,,379,,,379,379,,379,,,,,,379',
',,,,,,,379,,,,,379,379,379,379,379,379,377,377,377,,377,,,,377,377,',
',,377,,377,377,377,377,377,377,377,,,,,377,377,377,377,377,377,377,',
',,,,,,,,377,,,377,377,377,377,377,377,377,377,377,377,,377,377,,377',
'377,377,,,,,,,,,,,,,,,,,,,,377,,,377,,,377,377,,377,,,,,,377,,,,,,,',
'377,,,,,377,377,377,377,377,377,463,463,463,,463,,,,463,463,,,,463,',
'463,463,463,463,463,463,463,,,,,463,463,463,463,463,463,463,,,,,,,,',
',463,,,463,463,463,463,463,463,463,463,463,463,,463,463,,463,463,463',
',,,,,,,,,,,,,,,,,,,463,,,463,,,463,463,,463,,,,,,463,,,,,,,,463,,,,',
'463,463,463,463,463,463,885,885,885,,885,,,,885,885,,,,885,,885,885',
'885,885,885,885,885,,,,,885,885,885,885,885,885,885,,,,,,,,,,885,,,885',
'885,885,885,885,885,885,885,885,885,,885,885,,885,885,885,,,,,,,,,,',
',,,,,,,,,885,,,885,,,885,885,,885,,,,,,885,,,,,,,,885,,,,,885,885,885',
'885,885,885,581,581,581,,581,,,,581,581,,,,581,,581,581,581,581,581',
'581,581,,,,,581,581,581,581,581,581,581,,,581,,,,,,,581,,,581,581,581',
'581,581,581,581,581,581,581,,581,581,,581,581,581,,,,,,,,,,,,,,,,,,',
',581,,,581,,,581,581,,581,,,,,,581,,,,,,,,581,,,,,581,581,581,581,581',
'581,845,845,845,,845,,,,845,845,,,,845,,845,845,845,845,845,845,845',
',,,,845,845,845,845,845,845,845,,,,,,,,,,845,,,845,845,845,845,845,845',
'845,845,845,845,,845,845,,845,845,845,,,,,,,,,,,,,,,,,,,,845,,,845,',
',845,845,,845,,845,,845,,845,,,,,,,,845,,,,,845,845,845,845,845,845',
'882,882,882,,882,,,,882,882,,,,882,,882,882,882,882,882,882,882,,,,',
'882,882,882,882,882,882,882,,,,,,,,,,882,,,882,882,882,882,882,882,882',
'882,882,882,,882,882,,882,882,882,,,,,,,,,,,,,,,,,,,,882,,,882,,,882',
'882,,882,,882,,882,,882,,,,,,,,882,,,,,882,882,882,882,882,882,370,370',
'370,,370,,,,370,370,,,,370,,370,370,370,370,370,370,370,,,,,370,370',
'370,370,370,370,370,,,,,,,,,,370,,,370,370,370,370,370,370,370,370,370',
'370,,370,370,,370,370,370,,,,,,,,,,,,,,,,,,,,370,,,370,,,370,370,,370',
',370,,,,370,,,,,,,,370,,,,,370,370,370,370,370,370,6,6,6,,6,,,,6,6,',
',,6,,6,6,6,6,6,6,6,,,,,6,6,6,6,6,6,6,,,,,,,,,,6,,,6,6,6,6,6,6,6,6,6',
'6,,6,6,,,,6,,753,753,753,753,753,753,753,753,753,753,753,,753,753,,',
'753,753,6,,,6,,,6,6,,6,,6,,753,,753,,753,753,753,753,753,753,753,,753',
',,6,6,6,6,6,6,27,27,27,,27,753,,,27,27,,,753,27,,27,27,27,27,27,27,27',
',,,,27,27,27,27,27,27,27,,,,,,,,,,27,,,27,27,27,27,27,27,27,27,27,27',
',27,27,,27,27,27,,,,,,,,,,,,,,,,,,,,27,,,27,,,27,27,,27,,,,,,27,,,,',
',,,27,,,,,27,27,27,27,27,27,872,872,872,,872,,,,872,872,,,,872,,872',
'872,872,872,872,872,872,,,,,872,872,872,872,872,872,872,,,,,,,,,,872',
',,872,872,872,872,872,872,872,872,872,872,,872,872,,872,872,872,,,,',
',,,,,,,,,,,,,,,872,,,872,,,872,872,,872,,,,,,872,,,,,,,,872,,,,,872',
'872,872,872,872,872,262,262,262,,262,,,,262,262,,,,262,,262,262,262',
'262,262,262,262,,,,,262,262,262,262,262,262,262,,,,,,,,,,262,,,262,262',
'262,262,262,262,262,262,262,262,,262,262,,262,262,262,,,,,,,,,,,,,,',
',,,,,262,,,262,,,262,262,,262,,,,,,262,,,,,,,,262,,,,,262,262,262,262',
'262,262,263,263,263,,263,,,,263,263,,,,263,,263,263,263,263,263,263',
'263,,,,,263,263,263,263,263,263,263,,,,,,,,,,263,,,263,263,263,263,263',
'263,263,263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263',
',,263,263,,263,,,,,,263,,,,,,,,263,,,,,263,263,263,263,263,263,264,264',
'264,,264,,,,264,264,,,,264,,264,264,264,264,264,264,264,,,,,264,264',
'264,264,264,264,264,,,,,,,,,,264,,,264,264,264,264,264,264,264,264,264',
'264,,264,264,,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,264',
',,,,,264,,,,,,,,264,,,,,264,264,264,264,264,264,265,265,265,,265,,,',
'265,265,,,,265,,265,265,265,265,265,265,265,,,,,265,265,265,265,265',
'265,265,,,,,,,,,,265,,,265,265,265,265,265,265,265,265,265,265,,265',
'265,,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,265,,,,,,265',
',,,,,,,265,,,,,265,265,265,265,265,265,266,266,266,,266,,,,266,266,',
',,266,,266,266,266,266,266,266,266,,,,,266,266,266,266,266,266,266,',
',,,,,,,,266,,,266,266,266,266,266,266,266,266,266,266,,266,266,,266',
'266,266,,,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,266,,,,,,266,,,,,,,',
'266,,,,,266,266,266,266,266,266,267,267,267,,267,,,,267,267,,,,267,',
'267,267,267,267,267,267,267,,,,,267,267,267,267,267,267,267,,,,,,,,',
',267,,,267,267,267,267,267,267,267,267,267,267,,267,267,,267,267,267',
',,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,267,,,,,,267,,,,,,,,267,,,,',
'267,267,267,267,267,267,268,268,268,,268,,,,268,268,,,,268,,268,268',
'268,268,268,268,268,,,,,268,268,268,268,268,268,268,,,,,,,,,,268,,,268',
'268,268,268,268,268,268,268,268,268,,268,268,,268,268,268,,,,,,,,,,',
',,,,,,,,,268,,,268,,,268,268,,268,,,,,,268,,,,,,,,268,,,,,268,268,268',
'268,268,268,269,269,269,,269,,,,269,269,,,,269,,269,269,269,269,269',
'269,269,,,,,269,269,269,269,269,269,269,,,,,,,,,,269,,,269,269,269,269',
'269,269,269,269,269,269,,269,269,,269,269,269,,,,,,,,,,,,,,,,,,,,269',
',,269,,,269,269,,269,,,,,,269,,,,,,,,269,,,,,269,269,269,269,269,269',
'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,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,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,354,354,354,,354,,,,354,354,,,',
'354,,354,354,354,354,354,354,354,,,,,354,354,354,354,354,354,354,,,354',
',,,,,,354,,,354,354,354,354,354,354,354,354,354,354,,354,354,,354,354',
'354,,,,,,,,,,,,,,,,,,,,354,,,354,,,354,354,,354,,,,,,354,,,,,,,,354',
',,,,354,354,354,354,354,354,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,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,276,276,276,,276,,,,276,276,,,,276,,276,276,276,276,276,276',
'276,,,,,276,276,276,276,276,276,276,,,,,,,,,,276,,,276,276,276,276,276',
'276,276,276,276,276,,276,276,,276,276,276,,,,,,,,,,,,,,,,,,,,276,,,276',
',,276,276,,276,,,,,,276,,,,,,,,276,,,,,276,276,276,276,276,276,277,277',
'277,,277,,,,277,277,,,,277,,277,277,277,277,277,277,277,,,,,277,277',
'277,277,277,277,277,,,,,,,,,,277,,,277,277,277,277,277,277,277,277,277',
'277,,277,277,,277,277,277,,,,,,,,,,,,,,,,,,,,277,,,277,,,277,277,,277',
',,,,,277,,,,,,,,277,,,,,277,277,277,277,277,277,278,278,278,,278,,,',
'278,278,,,,278,,278,278,278,278,278,278,278,,,,,278,278,278,278,278',
'278,278,,,,,,,,,,278,,,278,278,278,278,278,278,278,278,278,278,,278',
'278,,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,278,,,,,,278',
',,,,,,,278,,,,,278,278,278,278,278,278,279,279,279,,279,,,,279,279,',
',,279,,279,279,279,279,279,279,279,,,,,279,279,279,279,279,279,279,',
',,,,,,,,279,,,279,279,279,279,279,279,279,279,279,279,,279,279,,279',
'279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,279,,,,,,279,,,,,,,',
'279,,,,,279,279,279,279,279,279,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,281,281,281,,281,,,,281,281,,,,281,,281,281',
'281,281,281,281,281,,,,,281,281,281,281,281,281,281,,,,,,,,,,281,,,281',
'281,281,281,281,281,281,281,281,281,,281,281,,281,281,281,,,,,,,,,,',
',,,,,,,,,281,,,281,,,281,281,,281,,,,,,281,,,,,,,,281,,,,,281,281,281',
'281,281,281,282,282,282,,282,,,,282,282,,,,282,,282,282,282,282,282',
'282,282,,,,,282,282,282,282,282,282,282,,,,,,,,,,282,,,282,282,282,282',
'282,282,282,282,282,282,,282,282,,282,282,282,,,,,,,,,,,,,,,,,,,,282',
',,282,,,282,282,,282,,,,,,282,,,,,,,,282,,,,,282,282,282,282,282,282',
'283,283,283,,283,,,,283,283,,,,283,,283,283,283,283,283,283,283,,,,',
'283,283,283,283,283,283,283,,,,,,,,,,283,,,283,283,283,283,283,283,283',
'283,283,283,,283,283,,283,283,283,,,,,,,,,,,,,,,,,,,,283,,,283,,,283',
'283,,283,,,,,,283,,,,,,,,283,,,,,283,283,283,283,283,283,284,284,284',
',284,,,,284,284,,,,284,,284,284,284,284,284,284,284,,,,,284,284,284',
'284,284,284,284,,,,,,,,,,284,,,284,284,284,284,284,284,284,284,284,284',
',284,284,,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,284,,',
',,,284,,,,,,,,284,,,,,284,284,284,284,284,284,285,285,285,,285,,,,285',
'285,,,,285,,285,285,285,285,285,285,285,,,,,285,285,285,285,285,285',
'285,,,,,,,,,,285,,,285,285,285,285,285,285,285,285,285,285,,285,285',
',285,285,285,,,,,,,,,,,,,,,,,,,,285,,,285,,,285,285,,285,,,,,,285,,',
',,,,,285,,,,,285,285,285,285,285,285,286,286,286,,286,,,,286,286,,,',
'286,,286,286,286,286,286,286,286,,,,,286,286,286,286,286,286,286,,,',
',,,,,,286,,,286,286,286,286,286,286,286,286,286,286,,286,286,,286,286',
'286,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,286,,,,,,286,,,,,,,,286',
',,,,286,286,286,286,286,286,287,287,287,,287,,,,287,287,,,,287,,287',
'287,287,287,287,287,287,,,,,287,287,287,287,287,287,287,,,,,,,,,,287',
',,287,287,287,287,287,287,287,287,287,287,,287,287,,287,287,287,,,,',
',,,,,,,,,,,,,,,287,,,287,,,287,287,,287,,,,,,287,,,,,,,,287,,,,,287',
'287,287,287,287,287,289,289,289,,289,,,,289,289,,,,289,,289,289,289',
'289,289,289,289,,,,,289,289,289,289,289,289,289,,,,,,,,,,289,,,289,289',
'289,289,289,289,289,289,289,289,,289,289,,289,289,289,,,,,,,,,,,,,,',
',,,,,289,,,289,289,,289,289,,289,,,,,,289,,,,,,,,289,,,,,289,289,289',
'289,289,289,564,564,564,,564,,,,564,564,,,,564,,564,564,564,564,564',
'564,564,,,,,564,564,564,564,564,564,564,,,,,,,,,,564,,,564,564,564,564',
'564,564,564,564,564,564,,564,564,,564,564,564,,,,,,,,,,,,,,,,,,,,564',
',,564,,,564,564,,564,,,,,,564,,,,,,,,564,,,,,564,564,564,564,564,564',
'561,561,561,,561,,,,561,561,,,,561,,561,561,561,561,561,561,561,,,,',
'561,561,561,561,561,561,561,,,,,,,,,,561,,,561,561,561,561,561,561,561',
'561,561,561,,561,561,,561,561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561',
'561,,561,,,,,,561,,,,,,,,561,,,,,561,561,561,561,561,561,294,294,294',
',294,,,,294,294,,,,294,,294,294,294,294,294,294,294,,,,,294,294,294',
'294,294,294,294,,,294,,,,,,,294,,,294,294,294,294,294,294,294,294,294',
'294,,294,294,,294,294,294,,,,,,,,,,,,,,,,,,,,294,,,294,,,294,294,,294',
',,,,,294,,,,,,,,294,,,,,294,294,294,294,294,294,295,295,295,,295,,,',
'295,295,,,,295,,295,295,295,295,295,295,295,,,,,295,295,295,295,295',
'295,295,,,295,,,,,,,295,,,295,295,295,295,295,295,295,295,295,295,,295',
'295,,295,295,295,,,,,,,,,,,,,,,,,,,,295,,,295,,,295,295,,295,,,,,,295',
',,,,,,,295,,,,,295,295,295,295,295,295,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,296,297,297,297,,297,,,,297,297,,,,297,',
'297,297,297,297,297,297,297,,,,,297,297,297,297,297,297,297,,,297,,',
',,,,297,,,297,297,297,297,297,297,297,297,297,297,,297,297,,297,297',
'297,,,,,,,,,,,,,,,,,,,,297,,,297,,,297,297,,297,,,,,,297,,,,,,,,297',
',,,,297,297,297,297,297,297,298,298,298,298,298,,,,298,298,,,,298,,298',
'298,298,298,298,298,298,,,,,298,298,298,298,298,298,298,,,298,,,,,,298',
'298,298,298,298,298,298,298,298,298,298,298,298,298,,298,298,,298,298',
'298,,,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,298,,298,,,,298,,,,,,,,298',
',,,,298,298,298,298,298,298,23,23,23,,23,,,,23,23,,,,23,,23,23,23,23',
'23,23,23,,,,,23,23,23,23,23,23,23,,,,,,,,,,23,,,23,23,23,23,23,23,23',
'23,23,23,,23,23,,23,23,23,,,,,,,,,,,,,,,,,,,,23,,,23,,,23,23,,23,,,',
',,23,,,,,,,,23,,,,,23,23,23,23,23,23,410,410,410,,410,,,,410,410,,,',
'410,,410,410,410,410,410,410,410,,,,,410,410,410,410,410,410,410,,,',
',,,,,,410,,,410,410,410,410,410,410,410,410,410,410,,410,410,,410,410',
'410,,,,,,,,,,,,,,,,,,,,410,,,410,,,410,410,,410,,410,,,,410,,,,,,,,410',
',,,,410,410,410,410,410,410,19,19,19,,19,,,,19,19,,,,19,,19,19,19,19',
'19,19,19,,,,,19,19,19,19,19,19,19,,,,,,,,,,19,,,19,19,19,19,19,19,19',
'19,19,19,,19,19,,,,19,,827,827,827,827,827,827,827,827,827,827,827,',
'827,827,,,827,827,19,,,19,,,19,19,,19,,,,827,,827,,827,827,827,827,827',
'827,827,,827,,,19,19,19,19,19,19,487,487,487,,487,827,,,487,487,827',
',,487,,487,487,487,487,487,487,487,,,,,487,487,487,487,487,487,487,',
',487,,,,,,,487,,,487,487,487,487,487,487,487,487,487,487,,487,487,,487',
'487,487,,,,,,,,,,,,,,,,,,,,487,,,487,,,487,487,,487,,487,,487,,487,',
',,,,,,487,,,,,487,487,487,487,487,487,17,17,17,,17,,,,17,17,,,,17,,17',
'17,17,17,17,17,17,,,,,17,17,17,17,17,17,17,,,,,,,,,,17,,,17,17,17,17',
'17,17,17,17,17,17,,17,17,,17,17,17,,,,,,,,,,,,,,,,,,,,17,,,17,,,17,17',
',17,,,,,,17,,,,,,,,17,,,,,17,17,17,17,17,17,9,9,9,,9,,,,9,9,,,,9,,9',
'9,9,9,9,9,9,,,,,9,9,9,9,9,9,9,,,,,,,,,,9,,,9,9,9,9,9,9,9,9,9,9,,9,9',
',9,9,9,,,,,,,,,,,,,,,,,,,,9,,,9,,,9,9,,9,,9,,9,,9,,,,,,,,9,,,,,9,9,9',
'9,9,9,348,348,348,,348,,,,348,348,,,,348,,348,348,348,348,348,348,348',
',,,,348,348,348,348,348,348,348,,,348,,,,,,,348,,,348,348,348,348,348',
'348,348,348,348,348,,348,348,,348,348,348,,,,,,,,,,,,,,,,,,,,348,,,348',
',,348,348,,348,,,,,,348,,,,,,,,348,,,,,348,348,348,348,348,348,501,501',
'501,,501,,,,501,501,,,,501,,501,501,501,501,501,501,501,,,,,501,501',
'501,501,501,501,501,,,,,,,,,,501,,,501,501,501,501,501,501,501,501,501',
'501,,501,501,,501,501,501,,,,,,,,,,,,,,,,,,,,501,,,501,,,501,501,,501',
',,,,,501,,,,,,,,501,,,,,501,501,501,501,501,501,546,546,546,,546,,,',
'546,546,,,,546,,546,546,546,546,546,546,546,,,,,546,546,546,546,546',
'546,546,,,546,,,,,,,546,,,546,546,546,546,546,546,546,546,546,546,,546',
'546,,546,546,546,,,,,,,,,,,,,,,,,,,,546,,,546,,,546,546,,546,,,,,,546',
',,,,,,,546,,,,,546,546,546,546,546,546,309,309,309,,309,,,,309,309,',
',,309,,309,309,309,309,309,309,309,,,,,309,309,309,309,309,309,309,',
',,,,,,,,309,,,309,309,309,309,309,309,309,309,309,309,,309,309,,309',
'309,309,,,,,,,,,,,,,,,,,,,,309,,,309,,,309,309,,309,,309,,309,,309,',
',,,,,,309,,,,,309,309,309,309,309,309,310,310,310,,310,,,,310,310,,',
',310,,310,310,310,310,310,310,310,,,,,310,310,310,310,310,310,310,,',
',,,,,,,310,,,310,310,310,310,310,310,310,310,310,310,,310,310,,310,310',
'310,,,,,,,,,,,,,,,,,,,,310,,,310,,310,310,310,,310,,310,,310,,310,,',
',,,,,310,,,,,310,310,310,310,310,310,313,313,313,,313,,,,313,313,,,',
'313,,313,313,313,313,313,313,313,,,,,313,313,313,313,313,313,313,,,',
',,,,,,313,,,313,313,313,313,313,313,313,313,313,313,,313,313,,313,313',
'313,,,,,,,,,,,,,,,,,,,,313,,,313,,,313,313,,313,,313,,313,,313,,,,,',
',,313,,,,,313,313,313,313,313,313,16,16,16,,16,,,,16,16,,,,16,,16,16',
'16,16,16,16,16,,,,,16,16,16,16,16,16,16,,,,,,,,,,16,,,16,16,16,16,16',
'16,16,16,16,16,,16,16,,,,16,,435,435,435,435,435,435,435,435,435,435',
'435,,435,435,,16,435,435,16,,,16,,,16,16,,16,,,,435,,435,,435,435,435',
'435,435,435,435,,435,,,16,16,16,16,16,16,318,318,318,,318,435,435,,318',
'318,,,,318,,318,318,318,318,318,318,318,,,,,318,318,318,318,318,318',
'318,,,,,,,,,,318,,,318,318,318,318,318,318,318,318,318,318,,318,318',
',318,318,318,,,,,,,,,,,,,,,,,,,,318,,,318,,,318,318,,318,,318,,,,318',
',,,,,,,318,,,,,318,318,318,318,318,318,14,14,14,,14,,,,14,14,,,,14,',
'14,14,14,14,14,14,14,,,,,14,14,14,14,14,14,14,,,,,,,,,,14,,,14,14,14',
'14,14,14,14,14,14,14,,14,14,,14,14,14,,,,,,,,,,,,,,,,,,,,14,,,14,,,14',
'14,,14,,14,,14,,14,,,,,,,,14,,,,,14,14,14,14,14,14,345,345,345,,345',
',,,345,345,,,,345,,345,345,345,345,345,345,345,,,,,345,345,345,345,345',
'345,345,,,,,,,,,,345,,,345,345,345,345,345,345,345,345,345,345,,345',
'345,,345,345,345,,,,,,,,,,,,,,,,,,,,345,,,345,,,345,345,,345,,345,,',
',345,,,,,,,,345,,,,,345,345,345,345,345,345,504,504,504,,504,,,,504',
'504,,,,504,,504,504,504,504,504,504,504,,,,,504,504,504,504,504,504',
'504,,,,,,,,,,504,,,504,504,504,504,504,504,504,504,504,504,,504,504',
',504,504,504,,,,,,,,,,,,,,,,,,,,504,,,504,,,504,504,,504,,504,,,,504',
',,,,,,,504,,,,,504,504,504,504,504,504,537,537,537,,537,,,,537,537,',
',,537,,537,537,537,537,537,537,537,,,,,537,537,537,537,537,537,537,',
',,,,,,,,537,,,537,537,537,537,537,537,537,537,537,537,,537,537,,537',
'537,537,,,,,,,,,,,,,,,,,,,,537,,,537,537,,537,537,,537,,537,,537,,537',
',,,,,,,537,,,,,537,537,537,537,537,537,871,871,871,,871,,,,871,871,',
',,871,,871,871,871,871,871,871,871,,,,,871,871,871,871,871,871,871,',
',,,,,,,,871,,,871,871,871,871,871,871,871,871,871,871,,871,871,,871',
'871,871,,,,,,,,,,,,,,,,,,,,871,,,871,,,871,871,,871,,,,,,871,,,,,,,',
'871,,,,,871,871,871,871,871,871,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,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,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,326,533,533,533,,533,,,,533,533,,,,533,,533,533,533,533',
'533,533,533,,,,,533,533,533,533,533,533,533,,,,,,,,,,533,,,533,533,533',
'533,533,533,533,533,533,533,,533,533,,533,533,533,,,,,,,,,,,,,,,,,,',
',533,,,533,533,,533,533,,533,,533,,533,,533,,,,,,,,533,,,,,533,533,533',
'533,533,533,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,530,530,530,,530,,,,530,530,,,,530,',
'530,530,530,530,530,530,530,,,,,530,530,530,530,530,530,530,,,,,,,,',
',530,,,530,530,530,530,530,530,530,530,530,530,,530,530,,530,530,530',
',,,,,,,,,,,,,,,,,,,530,,,530,530,,530,530,,530,,530,,530,,530,,,,,,',
',530,,,,,530,530,530,530,530,530,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,336,336,336,,336,,,,336,336,,,,336,,336,336',
'336,336,336,336,336,,,,,336,336,336,336,336,336,336,,,,,,,,,,336,,,336',
'336,336,336,336,336,336,336,336,336,,336,336,,336,336,336,,,,,,,,,,',
',,,,,,,,,336,,,336,,,336,336,,336,,,,,,336,,,,,,,,336,,,,,336,336,336',
'336,336,336,516,516,516,,516,,,,516,516,,,,516,,516,516,516,516,516',
'516,516,,,,,516,516,516,516,516,516,516,,,,,,,,,,516,,,516,516,516,516',
'516,516,516,516,516,516,,516,516,,516,516,516,,,,,,,,,,,,,,,,,,,,516',
',,516,,,516,516,,516,,516,,,,516,,,,,,,,516,,,,,516,516,516,516,516',
'516,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,,727',
'727,727,727,727,727,727,727,727,727,727,,727,727,,,727,727,10,,,10,',
',10,10,,10,,10,,727,,727,,727,727,727,727,727,727,727,,727,,,10,10,10',
'10,10,10,670,670,670,,670,727,,,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',
'29,29,29,29,29,29,29,29,,,29,29,29,29,29,,,29,29,29,29,29,29,29,,,29',
'29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,,',
'29,,,,,,,,29,29,,29,29,29,29,,29,29,,,29,,,,,29,29,29,29,,,,,,,,,,,',
',29,29,,29,29,29,29,29,29,29,29,29,,29,,,29,29,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,423,423,423,423,423,423,423,423,,,423,423',
'423,423,423,,,423,423,423,423,423,423,423,,,423,423,423,423,423,423',
'423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423',
',,423,,,,,,,,423,423,,423,423,423,423,,423,423,,,423,,,,,423,423,423',
'423,,,,,,,,,,,,,423,423,,423,423,423,423,423,423,423,423,423,,423,,',
'423,423,610,610,610,610,610,610,610,610,,,610,610,610,610,610,,,610',
'610,610,610,610,610,610,,,610,610,610,610,610,610,610,610,610,610,610',
'610,610,610,610,610,610,610,610,610,610,610,610,,,610,,,,,,,,610,610',
',610,610,610,610,,610,610,,,610,,,,,610,610,610,610,,,,,,,,,,,,,610',
'610,,610,610,610,610,610,610,610,610,610,,610,,,610,610,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,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,588,588',
'588,588,588,588,,588,,,588,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,,,,,,,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,249,249,249,249,249,249,249,249,,,249,249,249,249,249,,,249',
'249,249,249,249,249,249,,,249,249,249,249,249,249,249,249,249,249,249',
'249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,,,,',
',,249,249,,249,249,249,249,,249,249,,,249,,,,,249,249,249,249,,,,,,',
',,,,,,249,249,,249,249,249,249,249,249,249,249,249,,249,,,249,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,24,24,24,,24,24,,,24,,,,,24,24,24,24,,,,,,24,783',
',,783,783,783,24,24,,24,24,24,24,24,24,24,24,24,,24,,,24,642,642,642',
'642,642,642,642,642,642,642,642,,642,642,,783,642,642,,,,642,783,783',
'783,783,,,,,,642,,642,,642,642,642,642,642,642,642,,642,,,,,371,371',
',,371,,,,,642,,,371,371,642,371,371,371,371,,371,371,,,371,,,,,371,371',
'371,371,,,,,,,,,,,,,371,371,,371,371,371,371,371,371,371,371,371,,371',
'414,414,371,,414,,,,,,,,414,414,,414,414,414,414,,414,414,,,414,,,,',
'414,414,414,414,,,,,,,,,,,,,414,414,,414,414,414,414,414,414,414,414',
'414,,414,413,413,414,,413,,,,,,,,413,413,,413,413,413,413,,413,413,',
',413,,,,,413,413,413,413,,,,,,,,,,,,,413,413,,413,413,413,413,413,413',
'413,413,413,,413,838,838,413,,838,,,,,,,,838,838,,838,838,838,838,,838',
'838,,,838,,,,,838,838,838,838,,,,,,,,,,,,,838,838,,838,838,838,838,838',
'838,838,838,838,,838,396,396,838,,396,,,,,,,,396,396,,396,396,396,396',
',396,396,,,396,,,,,396,396,396,396,,,,,,,,,,,,,396,396,,396,396,396',
'396,396,396,396,396,396,,396,390,390,396,,390,,,,,,,,390,390,,390,390',
'390,390,,390,390,,,390,,,,,390,390,390,390,,,,,,,,,,,,,390,390,,390',
'390,390,390,390,390,390,390,390,,390,839,839,390,,839,,,,,,,,839,839',
',839,839,839,839,,839,839,,,839,,,,,839,839,839,839,,,,,,,,,,,,,839',
'839,,839,839,839,839,839,839,839,839,839,,839,389,389,839,,389,,,,,',
',,389,389,,389,389,389,389,,389,389,,,389,,,,,389,389,389,389,,,,,,',
',,,,,,389,389,,389,389,389,389,389,389,389,389,389,,389,372,372,389',
',372,,,,,,,,372,372,,372,372,372,372,,372,372,,,372,,,,,372,372,372',
'372,,,,,,,,,,,,,372,372,,372,372,372,372,372,372,372,372,372,,372,412',
'412,372,,412,,,,,,,,412,412,,412,412,412,412,,412,412,,,412,,,,,412',
'412,412,412,,,,,,,,,,,,,412,412,,412,412,412,412,412,412,412,412,412',
',412,411,411,412,,411,,,,,,,,411,411,,411,411,411,411,,411,411,,,411',
',,,,411,411,411,411,,,,,,,,,,,,,411,411,,411,411,411,411,411,411,411',
'411,411,,411,397,397,411,,397,,,,,,,,397,397,,397,397,397,397,,397,397',
',,397,,,,,397,397,397,397,,,,,,,,,,,,,397,397,,397,397,397,397,397,397',
'397,397,397,,397,308,308,397,,308,,,,,,,,308,308,,308,308,308,308,,308',
'308,,,308,,,,,308,308,308,308,,,,,,,,,,,,,308,308,,308,308,308,308,308',
'308,308,308,308,,308,650,650,308,,650,,,,,,,,650,650,,650,650,650,650',
',650,650,,,650,,,,,650,650,650,650,,,,,,,,,,,,,650,650,,650,650,650',
'650,650,650,650,650,650,,650,307,307,650,,307,,,,,,,,307,307,,307,307',
'307,307,,307,307,,,307,,,,,307,307,307,307,,,,,,,,,,,,,307,307,,307',
'307,307,307,307,307,307,307,307,,307,648,648,307,,648,,,,,,,,648,648',
',648,648,648,648,,648,648,,,648,,,,,648,648,648,648,,,,,,,,,,,,,648',
'648,,648,648,648,648,648,648,648,648,648,,648,346,346,648,,346,,,,,',
',,346,346,,346,346,346,346,,346,346,,,346,,,,,346,346,346,346,,,,,,',
',,,,,,346,346,,346,346,346,346,346,346,346,346,346,,346,347,347,346',
',347,,,,,,,,347,347,,347,347,347,347,,347,347,,,347,,,,,347,347,347',
'347,,,,,,,,,,,,,347,347,,347,347,347,347,347,347,347,347,347,,347,,',
'347,363,363,363,363,363,363,363,363,363,363,363,,363,363,,,363,363,',
',,,,,,,,,,,,363,,363,,363,363,363,363,363,363,363,,363,,,122,122,122',
'122,122,122,122,122,122,122,122,363,122,122,,,122,122,,,,,,,,,,,,,,122',
',122,,122,122,122,122,122,122,122,,122,,,622,622,622,622,622,622,622',
'622,622,622,622,122,622,622,,,622,622,,,,,,,,,,,,,,622,,622,,622,622',
'622,622,622,622,622,,622,,,32,32,32,32,32,32,32,32,32,32,32,622,32,32',
',,32,32,,,,,,,,,,,,,,32,,32,,32,32,32,32,32,32,32,,32,,,821,821,821',
'821,821,821,821,821,821,821,821,32,821,821,,,821,821,,,,,,,,,,,,,,821',
',821,,821,821,821,821,821,821,821,,821,,,762,762,762,762,762,762,762',
'762,762,762,762,821,762,762,,,762,762,,,,,,,,,,,,,,762,,762,,762,762',
'762,762,762,762,762,,762,,,764,764,764,764,764,764,764,764,764,764,764',
'762,764,764,,,764,764,,,,,,,,,,,,,,764,,764,,764,764,764,764,764,764',
'764,,764,,,766,766,766,766,766,766,766,766,766,766,766,764,766,766,',
',766,766,,,,,,,,,,,,,,766,,766,,766,766,766,766,766,766,766,,766,,,519',
'519,519,519,519,519,519,519,519,519,519,766,519,519,,,519,519,,,,,,',
',,,,,,,519,,519,,519,519,519,519,519,519,519,,519,,,769,769,769,769',
'769,769,769,769,769,769,769,519,769,769,,,769,769,,,,,,,,,,,,,,769,',
'769,,769,769,769,769,769,769,769,,769,,,461,461,461,461,461,461,461',
'461,461,461,461,769,461,461,,,461,461,,,,,,,,,,,,,,461,,461,,461,461',
'461,461,461,461,461,,461,,,749,749,749,749,749,749,749,749,749,749,749',
'461,749,749,,,749,749,,,,,,,,,,,,,,749,,749,,749,749,749,749,749,749',
'749,,749,,,,,,,,,,,,,,749' ]
        racc_action_check = arr = Array.new(22746, 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,  3975,  1099,   nil,   nil,   264, 12601,   nil,   956, 17431,
 19961, 19386,   nil,   955, 18466,   929, 18236, 17316,   nil, 17086,
   622,   nil,   324, 16856, 20958,   nil, 20301, 12716,   526, 20191,
   594,  1539, 22256,   870,   nil,   933,   948,   nil,    10,   nil,
   844,   nil,   nil,  9611,   nil,   nil,   nil,  9151,  2583,   -48,
  7541,   nil,  7426,  7081,  6391,   nil,  6161,   nil,  6046,   nil,
   nil,   nil,   457,   nil,   799,  5356,   nil,   nil,   nil,   nil,
  4436,   nil,  4206,   780,   382,   nil, 20740,   nil,   795,  4551,
   nil,   nil,   nil,   -23,   342,   nil,   205,   nil,   nil,   758,
   nil,  5126,   nil,  5241,   nil,   869,   -31,  5586,   160,   nil,
   nil,   828,   193,   566,   709,   783,   nil,   748,   731,   nil,
   nil,   nil,   380,   177,   653,   220,   161,  7196,   nil,   655,
   nil,    81, 22164,   644,   nil,   nil,  2699,  7886,   546,   502,
   537,   468,   245,  8576,   -64,   446,   384,   460,  2467,   298,
  9381,   728,   -36,   248,   nil,   nil,   nil,   nil,  9841,   nil,
     5,   103,   236,   959,   379,   nil,   482,   nil, 10646, 10761,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   207,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   346,   nil,   nil,
   nil,   382,   nil,   nil,   nil,   316,   -29,   nil,   nil,   nil,
   nil,   287,   nil,   nil,   nil,   nil,   184,   378,   nil,   400,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   422,   nil,   nil,   nil, 20849,
   499,   nil,   nil,   nil,   nil,   497,   nil,   455,   526,   528,
   676,   696, 12946, 13061, 13176, 13291, 13406, 13521, 13636, 13751,
 13866, 13981, 14096,  4321, 14326, 14441, 14556, 14671, 14786, 14901,
 15016, 15131, 15246, 15361, 15476, 15591, 15706, 15821,   nil, 15936,
   189,   nil,   nil,   628, 16281, 16396, 16511, 16626, 16741,   959,
   nil,   570,    31,   655,  1075,   685,   718, 21894, 21776, 17891,
 18006,   nil,   nil, 18121,   nil,   nil,   nil,   -11, 18351,   584,
   nil,   723,   358,    41,   765, 19041, 19156,    14,   728,   508,
   -25,   nil,   nil,   nil,   nil,   nil, 19731,   nil,   445,   769,
   359,   233,   nil,   nil,   nil, 18581, 22012, 22071, 17546,   nil,
   nil,   838,   239,   nil, 14211,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil, 22118,   nil,   nil,   nil,   nil,   907,   -14,
 12486, 21068, 21540,   nil,   199,   nil,   nil, 11796,   nil, 11681,
   -61, 11336,   nil, 10301,   nil, 10186,   nil,  8691,  8461, 21481,
 21363,   942,   nil,   -70,   999,  4666, 21304, 21717,   nil,   961,
   nil,   nil,   371,   562,   nil,   nil,   nil,   nil,   nil,   367,
 16971, 21658, 21599, 21186, 21127,  4091,   nil,   nil,   nil,   nil,
   nil, 11003,  4896, 20411,   nil,   nil,   nil,   639,   nil,   nil,
  5701,  5931,   nil,  1038,  6736, 18237,  2003,   986,  2119,   843,
   983,  1075,   265,   587,  1307,   283,   498,  2235,  1539,  1655,
  1771,   959,   612,  1423,   955,  1887,  2351,  2467,   952,  1191,
   727, 22578, 11451, 11911,   183,  3627,   nil,   nil,   nil,   nil,
   nil,   892,   nil,   nil,   988,  2931,   873,   909,   nil,   nil,
   nil,   nil,   nil,   212,   267,   nil,   nil, 17201,   895,   nil,
   884,   940,   811,   -38,   808,  2351,   nil,   nil,  5127,   794,
   nil, 17661,   791,   nil, 18696,   nil,   nil,  9036,   nil,   nil,
  9382,   nil,   789,   nil,   872,  2235, 19846,   851,   nil, 22486,
   nil, 19616,   nil,   nil,   nil,   nil,   nil,   353,   376,   768,
 19501,   nil,   106, 19271,     0,   768,   -67, 18811,   451,   140,
   nil,   nil,   nil,    63,  1191,   514, 17776,   729,   111,   725,
   217,   144,   666,    92,   nil,   nil,   nil,  7312,   nil,   656,
   613, 16166,   634,   nil, 16051,   614,   727,   612,   187,   -60,
   nil,   576,   nil,   526,  1075,   249,   134,   209,   nil,   447,
   nil, 12141,  1307,   400,   nil,   843,   364,   470, 20631,   nil,
   nil,   nil,   403,   332,   230,   nil,   510,   843,   nil,   219,
   nil,   nil,   146,   nil,   nil,   137,   nil,   668,   -32,   nil,
 20521,   159,    87,  1771,   116,   nil,   nil,   -48,   nil,   -54,
 11106,    22, 22210,   nil,   nil, 10991,   nil,   857,   nil,   nil,
   702,   152,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   -66,    10, 21005,     1, 10876,   nil,   nil,   111, 21953,   170,
 21835, 10531,   287, 10416, 10071,   nil,   275,   nil,  9726,   nil,
   nil,   368,    10,   268,  9496,   460,   nil,   nil,   207,  9266,
 20076,   nil,   444,  8921,   nil,   474,  8806,   nil,   nil,   nil,
   nil,   223,   nil,   479,   nil,   nil,   nil,   nil,   nil,   114,
   220,   nil,  8346,   470,   475,   -69,  8231,  8116,  8001,   293,
   nil,   450,   685,   nil,   nil,   nil,   nil,   nil,  7656,   nil,
   691,  4147,   nil,   427,   nil,   488,   nil,   604,   646,   nil,
   nil,   nil,   nil,  2815,    35,   nil,  7311, 19962,   nil,  3047,
   646,   nil,   nil,   743,  6966,   nil,   666,  6851,   nil,   nil,
  6621,   658,   nil,   700,   nil,   715,   778,   118,   800, 22624,
   689,  6506,   nil, 12602,   nil,  3163,  6276,   nil,   nil,  3279,
  3395,  5816, 22348,   nil, 22394,   nil, 22440,   nil,   nil, 22532,
   nil,  3511,   nil,  3743,   nil,   nil,  5011,   nil,   nil,  4781,
  3859,   nil,   nil, 20997,   nil,   nil,   nil,   nil,   756,   757,
   nil,   761,   759,   812,   nil,   nil,  1423,   nil,   861,   479,
   381,   408,   912,   nil,   nil,    21,   nil,   nil,   801,   802,
  5471,  7771,   nil,   848,   nil,   nil,   nil,   522,  9956,   944,
   -84, 22302,   nil,   962,  2119,   964,  2003, 17087,   976,  1887,
   553,   nil,   nil,   nil,   nil,   988,   297, 11221, 21245, 21422,
   nil,  1655,   nil, 11566,   nil, 12256,   905,   909,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   927,   nil,  1028,   nil,
   nil,  1029,   917,   nil,   953,    67,   284,    33,     8,   670,
   943, 18926, 12831,   nil,   nil,   nil,   nil,   nil,   nil,   345,
   nil,   nil, 12371,   963,   965, 12026,   nil,   nil,   975,   nil ]

racc_action_default = [
    -1,  -495,  -497,  -394,  -377,  -273,  -497,  -411,  -384,  -318,
   -65,  -497,  -412,  -390,  -319,  -497,  -497,  -497,   -71,  -497,
   -34,  -320,  -426,  -497,  -497,  -321,  -497,  -497,  -484,  -497,
  -497,  -495,   -40,  -486,    -5,  -497,   -42,   -20,    -6,   -43,
  -497,  -266,  -425,  -284,  -267,  -424,  -374,  -497,  -495,   -47,
  -287,  -268,  -415,  -351,  -497,  -269,  -497,  -421,  -274,  -270,
  -420,  -417,  -216,  -271,  -497,  -497,  -422,  -416,  -272,   -35,
  -495,  -423,  -418,  -497,  -484,  -419,  -394,  -373,  -497,  -495,
  -428,  -392,  -375,  -290,  -497,  -294,  -251,  -429,  -394,  -376,
  -297,   -70,   -61,  -497,    -2,  -497,  -497,  -497,  -273,  -318,
  -319,  -497,  -426,  -497,  -486,  -497,  -284,  -287,  -351,  -322,
  -334,  -335,  -497,  -497,  -497,  -497,  -273,  -497,  -238,  -261,
  -469,  -426,  -217,  -497,  -230,   -45,  -495,  -497,  -497,  -496,
  -497,  -496,  -497,  -497,   -82,   -66,   -75,  -497,  -495,  -497,
   -68,    -8,  -497,  -497,   -46,   -73,  -273,  -426,  -497,   -94,
  -497,  -497,   -91,   -92,  -497,  -209,  -497,  -311,  -497,  -497,
  -193,  -168,  -150,  -121,  -169,  -139,  -170,  -153,  -108,  -141,
  -129,  -171,  -126,  -152,  -130,  -157,  -172,  -127,  -142,  -117,
  -159,  -124,  -136,  -128,  -165,  -118,  -151,  -123,  -138,  -144,
  -119,  -143,  -497,  -313,  -125,  -158,  -120,  -134,  -109,  -148,
  -115,   -99,  -135,  -147,  -160,  -113,  -100,  -132,  -110,  -167,
  -106,  -133,  -111,  -464,  -162,   -96,  -161,  -107,   -98,  -114,
  -163,  -154,  -116,  -146,  -463,  -145,  -164,   -97,  -140,  -149,
  -131,  -112,  -166,  -137,  -156,  -122,  -155,  -101,  -132,  -102,
  -133,    -9,   -96,  -161,  -154,  -497,  -164,   -97,  -149,  -497,
  -194,  -493,  -492,    -4,  -491,  -485,  -103,   -14,  -413,  -414,
  -497,  -365,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -487,  -497,
  -280,  -343,  -340,  -497,  -497,  -497,  -497,  -497,  -497,  -495,
   -44,   -41,  -497,  -497,  -495,   -61,  -497,  -497,  -497,  -497,
  -497,   -60,  -350,  -495,   -59,  -208,   -39,  -497,  -497,  -276,
  -218,  -486,  -488,  -488,  -497,  -497,  -497,  -497,  -485,  -484,
  -497,  -406,  -405,  -408,  -407,  -409,  -497,  -466,  -488,  -497,
  -488,  -497,  -355,  -291,  -352,  -495,  -497,  -497,  -497,  -346,
  -289,   -53,  -497,  -378,  -497,   -69,   -38,   890,  -396,  -381,
  -399,  -397,  -395,  -182,   -30,  -303,  -413,  -414,  -497,  -280,
  -495,  -497,  -497,  -382,  -497,  -383,  -386,  -497,  -258,  -497,
  -280,  -497,  -231,  -497,  -260,  -497,  -233,  -497,  -495,  -497,
  -497,  -496,   -74,   -81,  -497,  -495,  -497,  -497,   -67,  -497,
  -389,  -388,  -308,  -497,  -431,  -306,  -430,   -93,   -91,   -92,
  -495,  -497,  -497,  -497,  -497,  -495,   -36,   -37,  -483,  -315,
  -482,  -444,  -497,  -497,   -13,   -12,   -11,    -7,  -494,  -104,
  -497,  -497,  -275,  -495,  -495,  -497,  -203,  -189,  -184,  -204,
  -188,  -205,  -185,  -210,  -200,  -186,  -211,  -202,  -201,  -212,
  -199,  -213,  -195,  -206,  -187,  -207,  -196,  -197,  -190,  -198,
  -183,  -214,  -497,  -497,  -495,  -495,   -15,   -16,   -17,   -18,
   -19,  -497,  -325,  -324,  -323,  -495,   -62,  -497,  -278,  -478,
  -475,  -477,  -476,  -251,  -251,  -252,  -253,  -254,  -497,  -286,
  -497,  -230,  -486,  -486,  -496,  -495,   -31,  -261,  -173,  -497,
   -23,  -497,  -486,  -219,  -490,  -489,  -220,  -490,  -222,  -282,
  -486,   -33,   -32,   -24,  -497,  -495,  -497,  -497,  -410,  -175,
   -25,  -490,  -468,  -283,  -467,  -379,  -393,  -495,  -495,  -497,
  -481,  -349,  -475,  -480,  -476,  -251,  -475,  -495,  -476,  -497,
   -54,   -50,  -380,  -497,  -495,  -497,  -497,  -497,  -479,  -497,
  -279,  -475,  -495,  -476,  -385,  -387,  -471,  -173,  -259,  -262,
  -496,  -497,  -497,  -470,  -497,  -497,  -479,  -279,  -475,  -476,
  -237,  -497,   -72,  -497,   -78,   -80,  -475,  -476,  -391,  -497,
  -433,  -497,  -495,  -497,   -95,   -91,   -92,  -497,  -497,  -443,
  -449,  -452,  -457,  -497,  -448,  -455,  -497,  -495,  -454,  -462,
  -459,  -446,  -462,  -458,  -445,  -462,  -447,  -444,  -486,   -10,
  -497,  -191,  -192,  -495,  -495,  -332,  -367,  -366,  -368,  -495,
  -497,  -497,  -181,  -341,  -338,  -497,  -336,  -497,   -22,  -326,
  -495,   -62,  -229,  -345,  -228,   -49,  -344,   -48,  -250,  -256,
  -497,  -497,   -40,  -496,  -497,  -285,  -224,  -497,  -497,  -497,
  -497,  -497,  -495,  -497,  -497,  -265,  -497,  -262,  -497,  -223,
  -301,  -497,  -497,  -359,  -497,  -497,  -356,  -353,  -281,  -497,
  -497,  -348,   -57,  -497,  -347,   -55,  -497,  -328,  -295,  -329,
  -327,  -495,  -298,  -497,  -398,  -401,  -402,  -404,  -403,  -497,
  -281,  -235,  -497,  -496,  -496,  -281,  -497,  -497,  -497,   -76,
  -309,  -497,  -497,  -281,  -312,  -316,  -456,  -460,  -497,  -435,
  -497,  -497,  -439,  -497,  -441,  -497,  -442,  -486,  -497,  -105,
  -333,    -3,  -372,  -495,  -497,  -370,  -497,  -215,  -288,  -495,
  -497,  -337,   -21,  -497,  -497,  -330,  -497,  -497,  -255,  -243,
  -497,  -496,  -225,  -495,  -226,  -495,  -497,  -486,  -497,  -174,
  -263,  -497,  -277,  -486,  -302,  -495,  -497,  -361,  -300,  -495,
  -495,  -497,  -179,   -29,  -180,   -58,  -177,   -27,   -56,  -178,
   -28,  -495,   -51,  -495,  -400,  -304,  -497,  -232,  -234,  -497,
  -495,  -432,  -307,  -444,  -451,  -314,  -461,  -450,  -462,  -462,
  -453,  -497,  -462,  -497,  -465,  -371,  -495,  -369,  -497,  -497,
   -90,   -83,  -497,  -339,  -292,  -497,  -257,  -240,  -496,  -496,
  -497,  -497,  -249,  -497,  -293,  -264,  -221,  -495,  -497,  -497,
  -497,  -176,   -26,  -497,  -495,  -497,  -495,  -496,  -497,  -495,
  -497,  -437,  -438,  -440,  -434,  -365,   -89,  -495,  -497,  -497,
  -342,  -495,  -239,  -497,  -245,  -497,  -496,  -496,  -227,  -363,
  -362,  -358,  -360,  -357,  -354,  -296,  -497,  -299,  -497,  -236,
  -310,  -497,  -462,  -364,  -497,  -479,   -88,  -475,  -476,  -495,
  -496,  -497,  -497,  -241,  -244,   -52,  -305,  -317,  -436,   -84,
  -331,  -246,  -497,  -496,  -496,  -497,  -242,  -247,  -496,  -248 ]

clist = [
'122,101,111,597,514,122,289,193,155,563,433,589,324,260,160,614,493',
'253,250,540,109,131,239,407,109,239,131,475,790,312,109,124,241,109',
'122,256,124,141,96,464,305,118,495,733,355,315,118,316,224,636,712,311',
'303,714,314,131,716,483,484,331,339,122,349,327,376,124,496,789,678',
'792,122,623,682,150,511,118,157,368,343,641,485,639,506,508,312,610',
'94,351,363,349,364,340,321,398,135,405,535,537,522,824,524,681,674,192',
'419,109,502,129,122,348,771,330,129,354,201,773,201,674,315,201,546',
'826,552,352,122,582,579,125,780,563,305,415,144,306,666,667,421,588',
'783,535,537,129,394,736,729,790,528,552,760,527,759,662,851,619,109',
'724,353,341,293,115,64,300,552,374,552,110,201,423,142,684,64,545,544',
'581,717,788,257,338,255,721,787,1,616,386,422,2,862,,,,64,,,,665,,,589',
',,,,,,,,,64,,,,306,,,,,,,775,,,,,306,,,,,,,,,331,,748,,,,,831,832,,',
'833,,,,,,,,,,435,436,437,438,439,440,441,442,443,444,445,446,447,448',
'449,450,451,452,453,454,455,456,457,458,459,460,,461,427,880,584,,64',
',529,772,,526,,,,503,,305,64,,,122,122,,,122,,,,477,498,636,500,547',
'878,563,,510,122,517,513,,131,131,555,470,131,,519,,520,565,124,124',
',,491,122,573,,201,765,118,118,768,,118,,,,,,,583,,747,,,,,,,122,563',
',,829,,321,363,,122,,557,589,122,,519,,122,122,251,,,,471,,122,755,',
'306,,,321,,,560,,587,743,850,745,122,,,,,,129,129,,321,494,,,64,,499',
'321,,239,,611,612,,499,122,251,486,488,609,,492,321,,,,530,,,,,,,570',
',,,,,796,,,,,622,,,64,64,,,530,,64,302,647,649,563,,,,,,317,,656,,,642',
'530,86,,,659,635,637,530,,86,,86,329,122,86,849,122,,,122,643,,530,406',
'530,563,,,122,,,86,671,122,201,,,,,,638,,,86,,,671,86,86,,,841,,499',
'86,,86,672,,675,,,,,,86,,,,,86,627,,122,86,,122,,,,,630,,,,702,,,,22',
',,705,86,102,64,,86,136,22,710,652,718,,147,863,,147,,,552,,147,,,,',
',,22,,661,,,,,86,239,,,,,727,691,,663,22,719,86,,,730,111,,,64,,,86',
',683,,,,,64,122,,86,86,109,,,122,,749,122,,,,753,,,,,64,122,,,136,,762',
'764,763,560,766,,767,769,,770,,,,746,64,,,,201,,,251,,122,,,,762,766',
'769,793,,78,22,,739,,,720,122,201,,78,64,,22,,136,,,,466,467,468,469',
',,,,,813,,78,,,,816,,122,,,122,,,86,,,,,78,109,64,122,,,777,778,122',
',809,,,821,,822,580,64,,,,,,828,,,539,,827,,807,821,543,64,86,86,86',
'86,86,86,864,,,,86,110,,,,86,86,,,86,812,,,,86,,,,122,122,,,86,,,795',
'122,,861,,,802,86,,78,,,,,22,,86,,,86,122,78,,,,86,122,808,122,,,,817',
',,,819,820,,,,86,,,,,,870,823,,825,321,842,844,122,122,,22,22,86,,,',
'22,,122,86,,122,,,859,,835,64,,,797,,5,64,86,,680,98,,86,680,134,5,873',
'874,,86,146,,,146,,,,856,,858,,,64,,,5,64,64,,,881,,,,869,,530,,64,700',
'64,,5,886,887,,,64,889,86,,,86,,78,,709,,,,,,86,64,,,,,,,,689,,,86,',
',,,,,,86,,,134,,,,,22,64,,64,,,64,78,78,,,,86,78,,,701,,64,,,,,,,,,',
',,5,,,,,,,,,,,86,5,86,134,,,,,,22,,,,,,,,,680,22,,,,,,,,,,,781,,,,,',
',86,86,22,,,,,,,,,,,,,,86,,,,,,22,,,,,,,,,,86,,,,,,,,,,,,,,78,,,,,22',
',,,,,,,,,,,,,,,,,,86,,,,,,,,,,,5,,,,,,,86,22,,805,86,,,86,78,,,,,,,',
'22,,78,,,,,,,320,,,,,,,22,,337,,5,5,78,,,,5,,102,,,,,,,,,,86,,,,78,',
'86,,,,,86,,,,,,,,,,,,,,,,,,,,,86,78,,,86,86,86,,,,,,,,,,86,,86,,,,,',
',86,,,,,,,,,,,,,,78,,86,,,,,,,,,,,,,78,,22,,,801,,,22,,,,,5,,86,78,86',
',,86,,,,,,,,86,,,,86,,22,,,,22,22,,,,,,,,,,,22,,22,,,,,,,22,,,,5,,,',
'378,,,,,,5,,22,,,,,,,,391,,,,,,,,,,5,,,,,,,,,,22,,22,84,,22,,,112,,5',
'132,139,84,,,132,22,154,,,154,,78,,490,,,,78,,,,84,,,,,,5,687,,,,,132',
',,,132,84,,,,,78,132,320,132,78,78,,,,,,,132,,,,78,132,78,,,132,5,,',
'78,,320,,,,,,,,,,5,139,,132,78,,,132,320,,,,,,,320,5,,,,,,,,,,,,98,',
'320,,78,,78,,84,78,,,,,,301,,,,,84,78,139,,301,615,618,,,,132,,,319',
',,,,,,132,132,301,,,497,,,,,,,,512,,,626,,,,,356,,,,,,,,,,,,,,634,634',
',,,,,,,,,,,,,,,,,,,,,5,,,800,,,5,,556,,,,559,,,,562,,402,,,626,626,',
',,,,416,417,,634,5,,,,5,5,,84,,,,,,,634,,5,,5,,,,,,,5,,,,,,617,,,,,',
',,,,5,,,,,132,132,132,132,84,84,,,,,84,,,,,132,132,,,132,,,,5,132,5',
',,5,,722,,132,,,725,,,640,,5,,132,,,,615,,,,,132,655,,132,657,,,562',
',132,,,,,,,497,615,,,,657,,,,132,,,,,,,,,,301,301,301,301,,,,,132,,',
'626,,,,132,,,,,,,,,,,693,,,694,132,,,,,84,,,,,,,132,,,,,,,,,,,,301,',
',,,,301,,,,,,,,,,,,,634,,634,,,,,,,132,,,84,,,,,,,,,,84,,,,,,,,,,,,132',
',741,,,,,,84,559,,,750,,,,,,,,,608,757,,,,,,84,,,,,,,,,,,,615,,,,,,',
',,,562,,,,,,,84,,132,320,621,,,,,784,,,,,,,,,,,,,,,,,,,,319,,,,,,615',
',132,84,,,562,,,,,,,,,,,815,84,,,,657,,,,,,,,,,,,84,,,,,,,,,,,,112,',
',,,,,301,,,,,,,,,,,,,,,,,,,132,,,,846,847,,,,,,,852,,,,301,,132,,,,132',
',,132,,,,,,,,,,,,559,,562,,,,,,,,,,,,,,,,,,,,,,,,,,883,884,,,,,,84,',
',799,562,,84,888,,,,132,,,,,,,,,,,,,,,,,,,,,84,,,,84,84,132,,,,,,,,',
',84,,84,,,,,,,84,,,,,,,,,,,,,,,,84,,,,,,,,,,,,,,,,,,,,,,,,301,,,,84',
',84,,,84,,,,,,,,132,,,,84' ]
        racc_goto_table = arr = Array.new(2235, 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 = [
'28,82,18,85,81,28,53,48,28,140,5,134,21,3,28,6,32,9,28,35,54,57,51,46',
'54,51,57,78,136,58,54,29,13,54,28,13,29,11,119,103,40,61,78,79,44,28',
'61,17,74,59,133,34,41,133,34,57,133,33,33,48,75,28,58,9,122,29,23,132',
'80,132,28,36,80,47,23,61,47,53,76,65,63,62,56,56,58,52,2,34,28,58,17',
'57,29,44,43,83,33,33,56,38,56,37,59,86,87,54,88,55,28,89,90,119,55,91',
'49,92,49,59,28,49,93,94,33,119,28,95,96,31,97,140,40,98,31,2,36,36,99',
'100,101,33,33,55,41,66,104,136,106,33,107,108,109,110,111,112,54,113',
'117,118,27,120,16,31,33,121,33,16,49,26,123,124,16,125,126,128,129,131',
'14,55,12,7,135,4,23,60,139,1,132,,,,16,,,,81,,,134,,,,,,,,,,16,,,,2',
',,,,,,80,,,,,2,,,,,,,,,48,,6,,,,,133,133,,,133,,,,,,,,,,28,28,28,28',
'28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,,28',
'11,79,46,,16,,21,36,,122,,,,53,,40,16,,,28,28,,,28,,,,41,28,59,17,21',
'133,140,,28,28,9,17,,57,57,122,11,57,,28,,17,21,29,29,,,29,28,21,,49',
'35,61,61,35,,61,,,,,,,21,,32,,,,,,,28,140,,,85,,29,28,,28,,28,134,28',
',28,,28,28,84,,,,2,,28,78,,2,,,29,,,57,,3,33,6,33,28,,,,,,55,55,,29',
'55,,,16,,55,29,,51,,28,28,,55,28,84,31,31,13,,31,29,,,,49,,,,,,,60,',
',,,,78,,,,,28,,,16,16,,,49,,16,15,53,53,140,,,,,,15,,53,,,28,49,39,',
',53,34,34,49,,39,,39,15,28,39,81,28,,,28,57,,49,84,49,140,,,28,,,39',
'58,28,49,,,,,,61,,,39,,,58,39,39,,,78,,55,39,,39,34,,34,,,,,,39,,,,',
'39,2,,28,39,,28,,,,,2,,,,3,,,,45,,,48,39,45,16,,39,45,45,3,2,53,,45',
'5,,45,,,33,,45,,,,,,,45,,2,,,,,39,51,,,,,28,60,,55,45,13,39,,,82,18',
',,16,,,39,,2,,,,,16,28,,39,39,54,,,28,,28,28,,,,28,,,,,16,28,,,45,,28',
'28,17,57,28,,17,28,,17,,,,29,16,,,,49,,,84,,28,,,,28,28,28,53,,19,45',
',60,,,2,28,49,,19,16,,45,,45,,,,15,15,15,15,,,,,,53,,19,,,,53,,28,,',
'28,,,39,,,,,19,54,16,28,,,60,60,28,,57,,,28,,17,84,16,,,,,,3,,,15,,28',
',61,28,15,16,39,39,39,39,39,39,21,,,,39,16,,,,39,39,,,39,60,,,,39,,',
',28,28,,,39,,,2,28,,3,,,2,39,,19,,,,,45,,39,,,39,28,19,,,,39,28,55,28',
',,,2,,,,2,2,,,,39,,,,,,57,2,,2,29,60,60,28,28,,45,45,39,,,,45,,28,39',
',28,,,60,,2,16,,,16,,22,16,39,,84,22,,39,84,22,22,60,60,,39,22,,,22',
',,,2,,2,,,16,,,22,16,16,,,60,,,,2,,49,,16,84,16,,22,60,60,,,16,60,39',
',,39,,19,,84,,,,,,39,16,,,,,,,,15,,,39,,,,,,,,39,,,22,,,,,45,16,,16',
',,16,19,19,,,,39,19,,,15,,16,,,,,,,,,,,,22,,,,,,,,,,,39,22,39,22,,,',
',,45,,,,,,,,,84,45,,,,,,,,,,,84,,,,,,,39,39,45,,,,,,,,,,,,,,39,,,,,',
'45,,,,,,,,,,39,,,,,,,,,,,,,,19,,,,,45,,,,,,,,,,,,,,,,,,,39,,,,,,,,,',
',22,,,,,,,39,45,,15,39,,,39,19,,,,,,,,45,,19,,,,,,,10,,,,,,,45,,10,',
'22,22,19,,,,22,,45,,,,,,,,,,39,,,,19,,39,,,,,39,,,,,,,,,,,,,,,,,,,,',
'39,19,,,39,39,39,,,,,,,,,,39,,39,,,,,,,39,,,,,,,,,,,,,,19,,39,,,,,,',
',,,,,,19,,45,,,45,,,45,,,,,22,,39,19,39,,,39,,,,,,,,39,,,,39,,45,,,',
'45,45,,,,,,,,,,,45,,45,,,,,,,45,,,,22,,,,24,,,,,,22,,45,,,,,,,,24,,',
',,,,,,,22,,,,,,,,,,45,,45,20,,45,,,20,,22,20,20,20,,,20,45,20,,,20,',
'19,,10,,,,19,,,,20,,,,,,22,22,,,,,20,,,,20,20,,,,,19,20,10,20,19,19',
',,,,,,20,,,,19,20,19,,,20,22,,,19,,10,,,,,,,,,,22,20,,20,19,,,20,10',
',,,,,,10,22,,,,,,,,,,,,22,,10,,19,,19,,20,19,,,,,,25,,,,,20,19,20,,25',
'10,10,,,,20,,,25,,,,,,,20,20,25,,,24,,,,,,,,24,,,10,,,,,25,,,,,,,,,',
',,,,10,10,,,,,,,,,,,,,,,,,,,,,,22,,,22,,,22,,24,,,,24,,,,24,,25,,,10',
'10,,,,,,25,25,,10,22,,,,22,22,,20,,,,,,,10,,22,,22,,,,,,,22,,,,,,24',
',,,,,,,,,22,,,,,20,20,20,20,20,20,,,,,20,,,,,20,20,,,20,,,,22,20,22',
',,22,,10,,20,,,10,,,24,,22,,20,,,,10,,,,,20,24,,20,24,,,24,,20,,,,,',
',24,10,,,,24,,,,20,,,,,,,,,,25,25,25,25,,,,,20,,,10,,,,20,,,,,,,,,,',
'24,,,24,20,,,,,20,,,,,,,20,,,,,,,,,,,,25,,,,,,25,,,,,,,,,,,,,10,,10',
',,,,,,20,,,20,,,,,,,,,,20,,,,,,,,,,,,20,,24,,,,,,20,24,,,24,,,,,,,,',
'25,24,,,,,,20,,,,,,,,,,,,10,,,,,,,,,,24,,,,,,,20,,20,10,25,,,,,24,,',
',,,,,,,,,,,,,,,,,25,,,,,,10,,20,20,,,24,,,,,,,,,,,24,20,,,,24,,,,,,',
',,,,,20,,,,,,,,,,,,20,,,,,,,25,,,,,,,,,,,,,,,,,,,20,,,,24,24,,,,,,,24',
',,,25,,20,,,,20,,,20,,,,,,,,,,,,24,,24,,,,,,,,,,,,,,,,,,,,,,,,,,24,24',
',,,,,20,,,20,24,,20,24,,,,20,,,,,,,,,,,,,,,,,,,,,20,,,,20,20,20,,,,',
',,,,,20,,20,,,,,,,20,,,,,,,,,,,,,,,,20,,,,,,,,,,,,,,,,,,,,,,,,25,,,',
'20,,20,,,20,,,,,,,,20,,,,20' ]
        racc_goto_check = arr = Array.new(2235, 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,   185,    85,   -18,   181,  -251,  -418,  -435,   nil,   -11,
  1103,    26,   150,     6,   147,   417,   159,    -7,    -4,   691,
  1393,   -58,   886,  -252,  1238,  1479,   -74,   121,    -9,    22,
   nil,   118,  -297,  -250,     1,  -332,  -393,  -440,  -673,   479,
    -8,     4,   nil,    84,   -47,   567,  -128,    57,   -17,    90,
   nil,    -4,  -344,   -27,    14,    98,  -240,    12,   -24,  -435,
    52,    32,  -406,  -229,   nil,  -408,  -496,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    24,   -19,    -5,   nil,  -275,  -587,
  -471,  -323,    -5,   -55,   352,  -418,    79,   -88,  -213,    24,
  -568,    23,  -567,  -245,  -654,  -280,  -276,  -572,   -26,   -57,
  -282,  -567,   nil,  -253,  -479,   nil,  -198,  -519,  -193,  -516,
  -365,  -665,  -281,  -464,   nil,   nil,   nil,    67,    76,    35,
   151,    48,   -51,   155,  -376,  -190,  -188,   nil,  -231,  -433,
   nil,  -536,  -644,  -549,  -410,  -531,  -685,   nil,   nil,   -29,
  -378 ]

racc_goto_default = [
   nil,   nil,   261,   nil,   nil,   nil,   735,   nil,    28,   nil,
    34,    38,   328,   nil,   nil,   nil,   128,    69,    73,   130,
   156,   nil,   116,   nil,   119,    20,   nil,   nil,    32,    36,
    39,   nil,    49,   549,   nil,   nil,   nil,   nil,   nil,   113,
    92,   nil,    10,    15,    18,   121,   149,   nil,   237,   479,
   206,    46,   nil,   nil,    62,   322,   nil,   323,   632,   633,
   382,   558,   nil,   nil,   309,   nil,   nil,   384,    41,    44,
    51,    55,    59,    63,    68,   nil,   350,    83,   nil,   nil,
   nil,   nil,   nil,   nil,   474,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   291,   nil,   nil,   531,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    77,    82,    89,     4,   nil,   nil,
   nil,   nil,   362,   nil,   nil,   nil,   nil,   332,   nil,   596,
   599,   602,   605,   nil,   786,   590,   591,   592,   593,   nil,
   120 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 134, :_reduce_1,
  2, 131, :_reduce_2,
  4, 133, :_reduce_3,
  2, 132, :_reduce_4,
  1, 138, :_reduce_none,
  1, 138, :_reduce_none,
  3, 138, :_reduce_7,
  2, 138, :_reduce_8,
  0, 156, :_reduce_9,
  4, 141, :_reduce_10,
  3, 141, :_reduce_11,
  3, 141, :_reduce_12,
  3, 141, :_reduce_13,
  2, 141, :_reduce_14,
  3, 141, :_reduce_15,
  3, 141, :_reduce_16,
  3, 141, :_reduce_17,
  3, 141, :_reduce_18,
  3, 141, :_reduce_19,
  0, 157, :_reduce_20,
  5, 141, :_reduce_21,
  4, 141, :_reduce_22,
  3, 141, :_reduce_23,
  3, 141, :_reduce_24,
  3, 141, :_reduce_25,
  6, 141, :_reduce_26,
  5, 141, :_reduce_27,
  5, 141, :_reduce_28,
  5, 141, :_reduce_29,
  3, 141, :_reduce_30,
  3, 141, :_reduce_31,
  3, 141, :_reduce_32,
  3, 141, :_reduce_33,
  1, 141, :_reduce_none,
  1, 155, :_reduce_none,
  3, 155, :_reduce_36,
  3, 155, :_reduce_37,
  2, 155, :_reduce_38,
  2, 155, :_reduce_39,
  1, 155, :_reduce_none,
  1, 145, :_reduce_41,
  1, 147, :_reduce_none,
  1, 147, :_reduce_none,
  2, 147, :_reduce_44,
  2, 147, :_reduce_45,
  2, 147, :_reduce_46,
  1, 160, :_reduce_none,
  4, 160, :_reduce_48,
  4, 160, :_reduce_49,
  0, 167, :_reduce_50,
  0, 168, :_reduce_51,
  6, 165, :_reduce_52,
  2, 159, :_reduce_53,
  3, 159, :_reduce_54,
  4, 159, :_reduce_55,
  5, 159, :_reduce_56,
  4, 159, :_reduce_57,
  5, 159, :_reduce_58,
  2, 159, :_reduce_59,
  2, 159, :_reduce_60,
  1, 148, :_reduce_none,
  3, 148, :_reduce_62,
  1, 171, :_reduce_none,
  3, 171, :_reduce_64,
  1, 170, :_reduce_65,
  2, 170, :_reduce_66,
  3, 170, :_reduce_67,
  2, 170, :_reduce_68,
  2, 170, :_reduce_69,
  1, 170, :_reduce_70,
  1, 173, :_reduce_none,
  3, 173, :_reduce_72,
  2, 172, :_reduce_73,
  3, 172, :_reduce_74,
  1, 174, :_reduce_75,
  4, 174, :_reduce_76,
  3, 174, :_reduce_77,
  3, 174, :_reduce_78,
  3, 174, :_reduce_79,
  3, 174, :_reduce_80,
  2, 174, :_reduce_81,
  1, 174, :_reduce_82,
  1, 146, :_reduce_83,
  4, 146, :_reduce_84,
  3, 146, :_reduce_85,
  3, 146, :_reduce_86,
  3, 146, :_reduce_87,
  3, 146, :_reduce_88,
  2, 146, :_reduce_89,
  1, 146, :_reduce_90,
  1, 176, :_reduce_91,
  1, 176, :_reduce_none,
  2, 177, :_reduce_93,
  1, 177, :_reduce_94,
  3, 177, :_reduce_95,
  1, 178, :_reduce_none,
  1, 178, :_reduce_none,
  1, 178, :_reduce_none,
  1, 178, :_reduce_99,
  1, 178, :_reduce_100,
  1, 143, :_reduce_101,
  1, 143, :_reduce_102,
  1, 144, :_reduce_103,
  0, 182, :_reduce_104,
  4, 144, :_reduce_105,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 179, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  1, 180, :_reduce_none,
  3, 158, :_reduce_173,
  5, 158, :_reduce_174,
  3, 158, :_reduce_175,
  6, 158, :_reduce_176,
  5, 158, :_reduce_177,
  5, 158, :_reduce_178,
  5, 158, :_reduce_179,
  5, 158, :_reduce_180,
  4, 158, :_reduce_181,
  3, 158, :_reduce_182,
  3, 158, :_reduce_183,
  3, 158, :_reduce_184,
  3, 158, :_reduce_185,
  3, 158, :_reduce_186,
  3, 158, :_reduce_187,
  3, 158, :_reduce_188,
  3, 158, :_reduce_189,
  3, 158, :_reduce_190,
  4, 158, :_reduce_191,
  4, 158, :_reduce_192,
  2, 158, :_reduce_193,
  2, 158, :_reduce_194,
  3, 158, :_reduce_195,
  3, 158, :_reduce_196,
  3, 158, :_reduce_197,
  3, 158, :_reduce_198,
  3, 158, :_reduce_199,
  3, 158, :_reduce_200,
  3, 158, :_reduce_201,
  3, 158, :_reduce_202,
  3, 158, :_reduce_203,
  3, 158, :_reduce_204,
  3, 158, :_reduce_205,
  3, 158, :_reduce_206,
  3, 158, :_reduce_207,
  2, 158, :_reduce_208,
  2, 158, :_reduce_209,
  3, 158, :_reduce_210,
  3, 158, :_reduce_211,
  3, 158, :_reduce_212,
  3, 158, :_reduce_213,
  3, 158, :_reduce_214,
  5, 158, :_reduce_215,
  1, 158, :_reduce_none,
  1, 154, :_reduce_217,
  1, 151, :_reduce_none,
  2, 151, :_reduce_219,
  2, 151, :_reduce_220,
  5, 151, :_reduce_221,
  2, 151, :_reduce_222,
  3, 151, :_reduce_223,
  3, 188, :_reduce_224,
  4, 188, :_reduce_225,
  4, 188, :_reduce_226,
  6, 188, :_reduce_227,
  1, 189, :_reduce_none,
  1, 189, :_reduce_none,
  1, 161, :_reduce_230,
  2, 161, :_reduce_231,
  5, 161, :_reduce_232,
  2, 161, :_reduce_233,
  5, 161, :_reduce_234,
  4, 161, :_reduce_235,
  7, 161, :_reduce_236,
  3, 161, :_reduce_237,
  1, 161, :_reduce_none,
  4, 192, :_reduce_239,
  3, 192, :_reduce_240,
  5, 192, :_reduce_241,
  7, 192, :_reduce_242,
  2, 192, :_reduce_243,
  5, 192, :_reduce_244,
  4, 192, :_reduce_245,
  6, 192, :_reduce_246,
  7, 192, :_reduce_247,
  9, 192, :_reduce_248,
  3, 192, :_reduce_249,
  1, 192, :_reduce_none,
  0, 194, :_reduce_251,
  2, 164, :_reduce_252,
  1, 193, :_reduce_none,
  0, 195, :_reduce_254,
  3, 193, :_reduce_255,
  0, 196, :_reduce_256,
  4, 193, :_reduce_257,
  2, 191, :_reduce_258,
  2, 190, :_reduce_259,
  1, 190, :_reduce_none,
  1, 185, :_reduce_261,
  3, 185, :_reduce_262,
  3, 153, :_reduce_263,
  4, 153, :_reduce_264,
  2, 153, :_reduce_265,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_274,
  3, 184, :_reduce_275,
  0, 218, :_reduce_276,
  5, 184, :_reduce_277,
  3, 184, :_reduce_278,
  3, 184, :_reduce_279,
  2, 184, :_reduce_280,
  4, 184, :_reduce_281,
  3, 184, :_reduce_282,
  3, 184, :_reduce_283,
  1, 184, :_reduce_284,
  4, 184, :_reduce_285,
  3, 184, :_reduce_286,
  1, 184, :_reduce_287,
  5, 184, :_reduce_288,
  2, 184, :_reduce_289,
  1, 184, :_reduce_none,
  2, 184, :_reduce_291,
  6, 184, :_reduce_292,
  6, 184, :_reduce_293,
  0, 219, :_reduce_294,
  0, 220, :_reduce_295,
  7, 184, :_reduce_296,
  0, 221, :_reduce_297,
  0, 222, :_reduce_298,
  7, 184, :_reduce_299,
  5, 184, :_reduce_300,
  4, 184, :_reduce_301,
  5, 184, :_reduce_302,
  0, 223, :_reduce_303,
  0, 224, :_reduce_304,
  9, 184, :_reduce_305,
  0, 225, :_reduce_306,
  6, 184, :_reduce_307,
  0, 226, :_reduce_308,
  0, 227, :_reduce_309,
  8, 184, :_reduce_310,
  0, 228, :_reduce_311,
  5, 184, :_reduce_312,
  0, 229, :_reduce_313,
  6, 184, :_reduce_314,
  0, 230, :_reduce_315,
  0, 231, :_reduce_316,
  9, 184, :_reduce_317,
  1, 184, :_reduce_318,
  1, 184, :_reduce_319,
  1, 184, :_reduce_320,
  1, 184, :_reduce_321,
  1, 150, :_reduce_322,
  1, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 208, :_reduce_none,
  2, 208, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 210, :_reduce_none,
  1, 209, :_reduce_none,
  5, 209, :_reduce_331,
  1, 136, :_reduce_none,
  2, 136, :_reduce_333,
  1, 212, :_reduce_none,
  1, 212, :_reduce_335,
  1, 166, :_reduce_none,
  2, 166, :_reduce_337,
  1, 166, :_reduce_338,
  3, 166, :_reduce_339,
  0, 233, :_reduce_340,
  0, 234, :_reduce_341,
  6, 232, :_reduce_342,
  2, 162, :_reduce_343,
  4, 162, :_reduce_344,
  4, 162, :_reduce_345,
  2, 207, :_reduce_346,
  4, 207, :_reduce_347,
  4, 207, :_reduce_348,
  3, 207, :_reduce_349,
  2, 207, :_reduce_350,
  1, 207, :_reduce_351,
  0, 236, :_reduce_352,
  0, 237, :_reduce_353,
  6, 206, :_reduce_354,
  0, 238, :_reduce_355,
  0, 239, :_reduce_356,
  6, 206, :_reduce_357,
  5, 211, :_reduce_358,
  1, 240, :_reduce_none,
  4, 240, :_reduce_360,
  2, 240, :_reduce_361,
  1, 241, :_reduce_none,
  1, 241, :_reduce_none,
  6, 135, :_reduce_364,
  0, 135, :_reduce_365,
  1, 242, :_reduce_366,
  1, 242, :_reduce_none,
  1, 242, :_reduce_none,
  2, 243, :_reduce_369,
  1, 243, :_reduce_none,
  2, 137, :_reduce_371,
  1, 137, :_reduce_none,
  1, 198, :_reduce_373,
  1, 198, :_reduce_374,
  1, 198, :_reduce_none,
  1, 199, :_reduce_376,
  1, 246, :_reduce_none,
  2, 246, :_reduce_378,
  3, 247, :_reduce_379,
  3, 200, :_reduce_380,
  3, 201, :_reduce_381,
  3, 202, :_reduce_382,
  3, 202, :_reduce_383,
  0, 250, :_reduce_384,
  3, 250, :_reduce_385,
  1, 251, :_reduce_none,
  2, 251, :_reduce_387,
  3, 203, :_reduce_388,
  3, 203, :_reduce_389,
  0, 253, :_reduce_390,
  3, 253, :_reduce_391,
  0, 248, :_reduce_392,
  2, 248, :_reduce_393,
  0, 249, :_reduce_394,
  2, 249, :_reduce_395,
  1, 252, :_reduce_none,
  0, 255, :_reduce_397,
  3, 252, :_reduce_398,
  0, 256, :_reduce_399,
  4, 252, :_reduce_400,
  1, 254, :_reduce_401,
  1, 254, :_reduce_402,
  1, 254, :_reduce_403,
  1, 254, :_reduce_none,
  2, 181, :_reduce_405,
  1, 257, :_reduce_none,
  1, 257, :_reduce_none,
  1, 257, :_reduce_none,
  1, 257, :_reduce_none,
  3, 245, :_reduce_410,
  1, 244, :_reduce_none,
  1, 244, :_reduce_none,
  2, 244, :_reduce_413,
  2, 244, :_reduce_414,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_none,
  1, 175, :_reduce_420,
  1, 175, :_reduce_421,
  1, 175, :_reduce_422,
  1, 175, :_reduce_423,
  1, 175, :_reduce_424,
  1, 175, :_reduce_425,
  1, 204, :_reduce_426,
  1, 149, :_reduce_427,
  1, 152, :_reduce_none,
  1, 152, :_reduce_none,
  1, 213, :_reduce_430,
  0, 258, :_reduce_431,
  4, 213, :_reduce_432,
  2, 213, :_reduce_433,
  4, 215, :_reduce_434,
  2, 215, :_reduce_435,
  6, 259, :_reduce_436,
  4, 259, :_reduce_437,
  4, 259, :_reduce_438,
  2, 259, :_reduce_439,
  4, 259, :_reduce_440,
  2, 259, :_reduce_441,
  2, 259, :_reduce_442,
  1, 259, :_reduce_443,
  0, 259, :_reduce_444,
  1, 265, :_reduce_445,
  1, 265, :_reduce_446,
  1, 265, :_reduce_447,
  1, 265, :_reduce_448,
  1, 260, :_reduce_449,
  3, 260, :_reduce_450,
  3, 266, :_reduce_451,
  1, 261, :_reduce_452,
  3, 261, :_reduce_453,
  1, 267, :_reduce_none,
  1, 267, :_reduce_none,
  2, 262, :_reduce_456,
  1, 262, :_reduce_457,
  1, 268, :_reduce_none,
  1, 268, :_reduce_none,
  2, 264, :_reduce_460,
  2, 263, :_reduce_461,
  0, 263, :_reduce_462,
  1, 216, :_reduce_none,
  0, 269, :_reduce_464,
  5, 216, :_reduce_465,
  1, 205, :_reduce_466,
  2, 205, :_reduce_467,
  2, 205, :_reduce_468,
  1, 187, :_reduce_none,
  3, 187, :_reduce_470,
  3, 270, :_reduce_471,
  1, 169, :_reduce_none,
  1, 169, :_reduce_none,
  1, 169, :_reduce_none,
  1, 163, :_reduce_none,
  1, 163, :_reduce_none,
  1, 163, :_reduce_none,
  1, 163, :_reduce_none,
  1, 235, :_reduce_none,
  1, 235, :_reduce_none,
  1, 235, :_reduce_none,
  1, 217, :_reduce_none,
  1, 217, :_reduce_none,
  0, 139, :_reduce_none,
  1, 139, :_reduce_none,
  0, 183, :_reduce_none,
  1, 183, :_reduce_none,
  0, 186, :_reduce_none,
  1, 186, :_reduce_none,
  1, 186, :_reduce_none,
  1, 214, :_reduce_491,
  1, 214, :_reduce_none,
  1, 142, :_reduce_none,
  2, 142, :_reduce_494,
  0, 140, :_reduce_495,
  0, 197, :_reduce_496 ]

racc_reduce_n = 497

racc_shift_n = 890

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,
  :kRETURN => 28,
  :kYIELD => 29,
  :kSUPER => 30,
  :kSELF => 31,
  :kNIL => 32,
  :kTRUE => 33,
  :kFALSE => 34,
  :kAND => 35,
  :kOR => 36,
  :kNOT => 37,
  :kIF_MOD => 38,
  :kUNLESS_MOD => 39,
  :kWHILE_MOD => 40,
  :kUNTIL_MOD => 41,
  :kRESCUE_MOD => 42,
  :kALIAS => 43,
  :kDEFINED => 44,
  :klBEGIN => 45,
  :klEND => 46,
  :k__LINE__ => 47,
  :k__FILE__ => 48,
  :tIDENTIFIER => 49,
  :tFID => 50,
  :tGVAR => 51,
  :tIVAR => 52,
  :tCONSTANT => 53,
  :tCVAR => 54,
  :tNTH_REF => 55,
  :tBACK_REF => 56,
  :tSTRING_CONTENT => 57,
  :tINTEGER => 58,
  :tFLOAT => 59,
  :tREGEXP_END => 60,
  :tUPLUS => 61,
  :tUMINUS => 62,
  :tUMINUS_NUM => 63,
  :tPOW => 64,
  :tCMP => 65,
  :tEQ => 66,
  :tEQQ => 67,
  :tNEQ => 68,
  :tGEQ => 69,
  :tLEQ => 70,
  :tANDOP => 71,
  :tOROP => 72,
  :tMATCH => 73,
  :tNMATCH => 74,
  :tDOT => 75,
  :tDOT2 => 76,
  :tDOT3 => 77,
  :tAREF => 78,
  :tASET => 79,
  :tLSHFT => 80,
  :tRSHFT => 81,
  :tCOLON2 => 82,
  :tCOLON3 => 83,
  :tOP_ASGN => 84,
  :tASSOC => 85,
  :tLPAREN => 86,
  :tLPAREN2 => 87,
  :tRPAREN => 88,
  :tLPAREN_ARG => 89,
  :tLBRACK => 90,
  :tRBRACK => 91,
  :tLBRACE => 92,
  :tLBRACE_ARG => 93,
  :tSTAR => 94,
  :tSTAR2 => 95,
  :tAMPER => 96,
  :tAMPER2 => 97,
  :tTILDE => 98,
  :tPERCENT => 99,
  :tDIVIDE => 100,
  :tPLUS => 101,
  :tMINUS => 102,
  :tLT => 103,
  :tGT => 104,
  :tPIPE => 105,
  :tBANG => 106,
  :tCARET => 107,
  :tLCURLY => 108,
  :tRCURLY => 109,
  :tBACK_REF2 => 110,
  :tSYMBEG => 111,
  :tSTRING_BEG => 112,
  :tXSTRING_BEG => 113,
  :tREGEXP_BEG => 114,
  :tWORDS_BEG => 115,
  :tAWORDS_BEG => 116,
  :tSTRING_DBEG => 117,
  :tSTRING_DVAR => 118,
  :tSTRING_END => 119,
  :tLAST_TOKEN => 120,
  "?" => 121,
  ":" => 122,
  "=" => 123,
  :tLOWEST => 124,
  "[" => 125,
  "," => 126,
  " " => 127,
  "\n" => 128,
  ";" => 129 }

racc_nt_base = 130

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",
  "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__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tAWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tLAST_TOKEN",
  "\"?\"",
  "\":\"",
  "\"=\"",
  "tLOWEST",
  "\"[\"",
  "\",\"",
  "\" \"",
  "\"\\n\"",
  "\";\"",
  "$start",
  "program",
  "compstmt",
  "bodystmt",
  "@1",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "opt_terms",
  "none",
  "stmt",
  "terms",
  "fitem",
  "undef_list",
  "expr_value",
  "lhs",
  "command_call",
  "mlhs",
  "var_lhs",
  "primary_value",
  "aref_args",
  "backref",
  "mrhs",
  "arg_value",
  "expr",
  "@2",
  "@3",
  "arg",
  "command",
  "block_command",
  "call_args",
  "block_call",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_var",
  "@4",
  "@5",
  "operation",
  "mlhs_basic",
  "mlhs_entry",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "variable",
  "cname",
  "cpath",
  "fname",
  "op",
  "reswords",
  "symbol",
  "@6",
  "opt_nl",
  "primary",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "call_args2",
  "open_args",
  "@7",
  "@8",
  "@9",
  "none_block_pass",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "awords",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "then",
  "if_tail",
  "do",
  "case_body",
  "block_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "dot_or_colon",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "do_block",
  "@24",
  "@25",
  "operation3",
  "@26",
  "@27",
  "@28",
  "@29",
  "when_args",
  "cases",
  "exc_list",
  "exc_var",
  "numeric",
  "dsym",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "word_list",
  "word",
  "string_content",
  "qword_list",
  "string_dvar",
  "@30",
  "@31",
  "sym",
  "@32",
  "f_args",
  "f_arg",
  "f_optarg",
  "f_rest_arg",
  "opt_f_block_arg",
  "f_block_arg",
  "f_norm_arg",
  "f_opt",
  "restarg_mark",
  "blkarg_mark",
  "@33",
  "assoc" ]

Racc_debug_parser = true

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

# reduce 0 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 48)
  def _reduce_1(val, _values, result)
                      self.lexer.lex_state = :expr_beg
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 50)
  def _reduce_2(val, _values, result)
                      result = val[1]
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 54)
  def _reduce_3(val, _values, result)
                      result = val[0]

                  if val[1] then
                    result = s(:rescue)
                    result << val[0] if val[0]
                    result << val[1] if val[1]
                    result << val[2] if val[2]
                  elsif not val[2].nil? then
                    warning("else without rescue is useless")
                    result = block_append(result, val[2])
                  end

                  result = s(:ensure, result, val[3]).compact if val[3]
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 70)
  def _reduce_4(val, _values, result)
                     result = void_stmts(val[0])
               
    result
  end
.,.,

# reduce 5 omitted

# reduce 6 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 76)
  def _reduce_7(val, _values, result)
                     result = self.block_append(val[0], val[2])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 79)
  def _reduce_8(val, _values, result)
                     result = val[1];
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 82)
  def _reduce_9(val, _values, result)
     lexer.lex_state = :expr_fname 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 83)
  def _reduce_10(val, _values, result)
                      result = s(:alias, val[1], val[3])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 86)
  def _reduce_11(val, _values, result)
                      result = s(:valias, val[1].to_sym, val[2].to_sym)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 89)
  def _reduce_12(val, _values, result)
                     result = s(:valias, val[1].to_sym, :"$#{val[2].last}")
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 92)
  def _reduce_13(val, _values, result)
                      yyerror("can't make alias for the number variables");
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 95)
  def _reduce_14(val, _values, result)
                      result = val[1]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 98)
  def _reduce_15(val, _values, result)
                     val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:if, val[2].last, nil, val[0])
                 else
                   result = s(:if, val[2], val[0], nil)
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 106)
  def _reduce_16(val, _values, result)
                     val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:if, val[2].last, val[0], nil)
                 else
                   result = s(:if, val[2], nil, val[0])
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 114)
  def _reduce_17(val, _values, result)
                     block, pre = val[0], true
                 block, pre = block.last, false if block[0] == :begin

                 val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:until, val[2].last, block, pre)
                 else
                   result = s(:while, val[2], block, pre)
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 124)
  def _reduce_18(val, _values, result)
     # REFACTOR
                 block, pre = val[0], true 
                 block, pre = block.last, false if block[0] == :begin

                 val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:while, val[2].last, block, pre)
                 else
                   result = s(:until, val[2], block, pre)
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 136)
  def _reduce_19(val, _values, result)
                      result = s(:rescue, val[0], s(:resbody, s(:array), val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 139)
  def _reduce_20(val, _values, result)
                     if (self.in_def || self.in_single > 0) then
                   # yyerror("BEGIN in method"); HACK
                 end
                 self.env.extend;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 144)
  def _reduce_21(val, _values, result)
                     result = s(:iter, s(:preexe), nil)
                 result << val[3] if val[3]
                 result = nil # TODO: since it isn't supposed to go in the AST
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 149)
  def _reduce_22(val, _values, result)
                     if (self.in_def || self.in_single > 0) then
                   # yyerror("END in method; use at_exit"); HACK
                 end
                 result = s(:iter, s(:postexe), nil)
                 result << val[2] if val[2]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 156)
  def _reduce_23(val, _values, result)
                      result = self.node_assign(val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 159)
  def _reduce_24(val, _values, result)
                      val[2] = value_expr(val[2])
                  result = val[0] << if val[0][1] then
                                       s(:to_ary, val[2])
                                     else
                                       val[0].delete_at 1 # remove the nil
                                       s(:array, val[2])
                                     end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 168)
  def _reduce_25(val, _values, result)
                      name = val[0].last
                  asgn_op = val[1].to_sym
                  val[2] = value_expr(val[2])

                  case asgn_op
                  when :"||" then
                    val[0][2] = (val[2]);
                    result = s(:op_asgn_or,  self.gettable(name), val[0])
                  when :"&&" then
                    val[0][2] = (val[2]);
                    result = s(:op_asgn_and, self.gettable(name), val[0])
                  else
                    result = val[0]
                    result << s(:call, self.gettable(name), asgn_op,
                                s(:arglist, val[2]))
                end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 186)
  def _reduce_26(val, _values, result)
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 189)
  def _reduce_27(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].value, val[3].value);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 192)
  def _reduce_28(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].value, val[3].value);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 195)
  def _reduce_29(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].value, val[3].value);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 198)
  def _reduce_30(val, _values, result)
                      self.backref_assign_error(val[0]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 201)
  def _reduce_31(val, _values, result)
                      result = self.node_assign(val[0], s(:svalue, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 204)
  def _reduce_32(val, _values, result)
                     result = val[0] << if val[0][1] then
                                      s(:to_ary, val[2])
                                    else
                                      val[0].delete_at 1 if val[0][1].nil?
                                      s(:array, val[2])
                                    end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 212)
  def _reduce_33(val, _values, result)
                     val[0].delete_at 1 if val[0][1].nil?
                 result = val[0] << val[2]
               
    result
  end
.,.,

# reduce 34 omitted

# reduce 35 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 220)
  def _reduce_36(val, _values, result)
                      result = logop(:and, val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 223)
  def _reduce_37(val, _values, result)
                      result = logop(:or, val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 226)
  def _reduce_38(val, _values, result)
                      result = s(:not, val[1])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 229)
  def _reduce_39(val, _values, result)
                      result = s(:not, val[1])
                 
    result
  end
.,.,

# reduce 40 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 234)
  def _reduce_41(val, _values, result)
                      result = value_expr(val[0])
                
    result
  end
.,.,

# reduce 42 omitted

# reduce 43 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 240)
  def _reduce_44(val, _values, result)
                     result = s(:return, ret_args(val[1]))
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 243)
  def _reduce_45(val, _values, result)
                     result = s(:break, ret_args(val[1]))
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 246)
  def _reduce_46(val, _values, result)
                     result = s(:next, ret_args(val[1]))
               
    result
  end
.,.,

# reduce 47 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 251)
  def _reduce_48(val, _values, result)
                      result = s(:call, val[0], val[2], val[3])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 254)
  def _reduce_49(val, _values, result)
                      result = s(:call, val[0], val[2], val[3])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 258)
  def _reduce_50(val, _values, result)
                        self.env.extend :dynamic
                  
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 259)
  def _reduce_51(val, _values, result)
     result = self.env.dynamic.keys 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 261)
  def _reduce_52(val, _values, result)
                        result = s(:iter, val[2], val[4])
                    self.env.unextend;
                  
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 266)
  def _reduce_53(val, _values, result)
                     result = new_fcall(val[0].to_sym, val[1])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 269)
  def _reduce_54(val, _values, result)
                     result = new_fcall(val[0].to_sym, val[1])
                 if val[2] then
                   if result[0] == :block_pass then
                      raise "both block arg and actual block given"
                   end
                   val[2] << result
                   result = val[2]
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 279)
  def _reduce_55(val, _values, result)
                     result = new_call(val[0], val[2].to_sym, val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 282)
  def _reduce_56(val, _values, result)
                     result = new_call(val[0], val[2].to_sym, val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 285)
  def _reduce_57(val, _values, result)
                     result = new_call(val[0], val[2].to_sym, val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 288)
  def _reduce_58(val, _values, result)
                     result = new_call(val[0], val[2].to_sym, val[3])
                 if val[4] then
                   if result[0] == :block_pass then # REFACTOR
                     raise "both block arg and actual block given"
                   end
                   val[2] << result
                   result = val[2]
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 298)
  def _reduce_59(val, _values, result)
                     result = self.new_super(val[1]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 301)
  def _reduce_60(val, _values, result)
                     result = self.new_yield(val[1]);
               
    result
  end
.,.,

# reduce 61 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 306)
  def _reduce_62(val, _values, result)
                      result = val[1];
                 
    result
  end
.,.,

# reduce 63 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 311)
  def _reduce_64(val, _values, result)
                      result = s(:masgn, s(:array, val[1]));
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 315)
  def _reduce_65(val, _values, result)
                      result = s(:masgn, val[0]);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 318)
  def _reduce_66(val, _values, result)
                      result = s(:masgn, val[0] << val[1].compact);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 321)
  def _reduce_67(val, _values, result)
                      result = s(:masgn, val[0], val[2]);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 324)
  def _reduce_68(val, _values, result)
                      result = s(:masgn, val[0], s(:splat))
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 327)
  def _reduce_69(val, _values, result)
                      result = s(:masgn, nil, val[1]);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 330)
  def _reduce_70(val, _values, result)
                      result = s(:masgn, nil, s(:splat))
                
    result
  end
.,.,

# reduce 71 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 335)
  def _reduce_72(val, _values, result)
                      result = val[1];
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 339)
  def _reduce_73(val, _values, result)
                      result = s(:array, val[0])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 342)
  def _reduce_74(val, _values, result)
                      result = val[0] << val[1].compact
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 346)
  def _reduce_75(val, _values, result)
                     result = self.assignable(val[0])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 349)
  def _reduce_76(val, _values, result)
                     result = self.aryset(val[0], val[2]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 352)
  def _reduce_77(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 355)
  def _reduce_78(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 358)
  def _reduce_79(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 361)
  def _reduce_80(val, _values, result)
                     if (self.in_def || self.in_single > 0) then
                   yyerror("dynamic constant assignment");
                 end

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

module_eval(<<'.,.,', 'ruby_parser.y', 368)
  def _reduce_81(val, _values, result)
                     if (self.in_def || self.in_single > 0) then
                   yyerror("dynamic constant assignment");
                 end

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

module_eval(<<'.,.,', 'ruby_parser.y', 375)
  def _reduce_82(val, _values, result)
                      self.backref_assign_error(val[0]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 379)
  def _reduce_83(val, _values, result)
                     result = self.assignable(val[0])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 382)
  def _reduce_84(val, _values, result)
                     result = self.aryset(val[0], val[2]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 385)
  def _reduce_85(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=")
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 388)
  def _reduce_86(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=")
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 391)
  def _reduce_87(val, _values, result)
                     result = s(:attrasgn, val[0], :"#{val[2].value}=")
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 394)
  def _reduce_88(val, _values, result)
                     if (self.in_def || self.in_single > 0) then
                   yyerror("dynamic constant assignment")
                 end

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

module_eval(<<'.,.,', 'ruby_parser.y', 402)
  def _reduce_89(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                    yyerror("dynamic constant assignment");
                  end

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

module_eval(<<'.,.,', 'ruby_parser.y', 409)
  def _reduce_90(val, _values, result)
                       self.backref_assign_error(val[0]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 413)
  def _reduce_91(val, _values, result)
                      yyerror("class/module name must be CONSTANT");
                 
    result
  end
.,.,

# reduce 92 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 418)
  def _reduce_93(val, _values, result)
                      result = s(:colon3, val[1].to_sym)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 421)
  def _reduce_94(val, _values, result)
                      result = val[0].value.to_sym
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 424)
  def _reduce_95(val, _values, result)
                      result = s(:colon2, val[0], val[2].value.to_sym);
                 
    result
  end
.,.,

# reduce 96 omitted

# reduce 97 omitted

# reduce 98 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 429)
  def _reduce_99(val, _values, result)
                      lexer.lex_state = :expr_end
                  result = val[0];
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 434)
  def _reduce_100(val, _values, result)
                      lexer.lex_state = :expr_end
                  result = val[0];
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 438)
  def _reduce_101(val, _values, result)
     result = s(:lit, val[0].to_sym) 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 439)
  def _reduce_102(val, _values, result)
     result = s(:lit, val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 442)
  def _reduce_103(val, _values, result)
                      result = s(:undef, val[0])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 445)
  def _reduce_104(val, _values, result)
                      lexer.lex_state = :expr_fname
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 447)
  def _reduce_105(val, _values, result)
                      result = self.block_append(val[0], s(:undef, val[3]))
                
    result
  end
.,.,

# reduce 106 omitted

# reduce 107 omitted

# reduce 108 omitted

# reduce 109 omitted

# reduce 110 omitted

# reduce 111 omitted

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

# reduce 116 omitted

# reduce 117 omitted

# reduce 118 omitted

# reduce 119 omitted

# reduce 120 omitted

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 464)
  def _reduce_173(val, _values, result)
                     result = self.node_assign(val[0], val[2])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 467)
  def _reduce_174(val, _values, result)
                     result = self.node_assign(val[0],
                            s(:rescue, val[2], s(:resbody, s(:array), val[4])))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 471)
  def _reduce_175(val, _values, result)
                     name = val[0].value
                 asgn_op = val[1].to_sym

                 val[2] = remove_begin(val[2])

                 case asgn_op
                 when :"||" then
                   val[0] << val[2]
                   result = s(:op_asgn_or, self.gettable(name), val[0]);
                 when :"&&" then
                   val[0] << val[2]
                   result = s(:op_asgn_and, self.gettable(name), val[0]);
                 else
                   # TODO: why [2] ?
                   val[0][2] = s(:call, self.gettable(name), asgn_op,
                                 s(:arglist, val[2]))
                   result = val[0];
                 end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 491)
  def _reduce_176(val, _values, result)
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 494)
  def _reduce_177(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2].value}=", val[3].to_sym, val[4]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 497)
  def _reduce_178(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2].value}=", val[3].to_sym, val[4])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 500)
  def _reduce_179(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].value, val[3].value);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 503)
  def _reduce_180(val, _values, result)
                     yyerror("constant re-assignment");
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 506)
  def _reduce_181(val, _values, result)
                     yyerror("constant re-assignment");
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 509)
  def _reduce_182(val, _values, result)
                      self.backref_assign_error(val[0]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 512)
  def _reduce_183(val, _values, result)
                     v1, v2 = val[0], val[2]
                 if v1.node_type == :lit and v2.node_type == :lit and Fixnum === v1.last and Fixnum === v2.last then
                   result = s(:lit, (v1.last)..(v2.last))
                 else
                   result = s(:dot2, v1, v2)
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 520)
  def _reduce_184(val, _values, result)
                     v1, v2 = val[0], val[2]
                 if v1.node_type == :lit and v2.node_type == :lit and Fixnum === v1.last and Fixnum === v2.last then
                   result = s(:lit, (v1.last)...(v2.last))
                 else
                   result = s(:dot3, v1, v2)
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 528)
  def _reduce_185(val, _values, result)
                      result = s(:call, val[0], :+, s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 531)
  def _reduce_186(val, _values, result)
                      result = s(:call, val[0], :-, s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 534)
  def _reduce_187(val, _values, result)
                      result = s(:call, val[0], :*, s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 537)
  def _reduce_188(val, _values, result)
                      result = s(:call, val[0], :"/", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 540)
  def _reduce_189(val, _values, result)
                      result = s(:call, val[0], :%, s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 543)
  def _reduce_190(val, _values, result)
                     result = s(:call, val[0], :**, s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 546)
  def _reduce_191(val, _values, result)
                      result = s(:call, s(:call, s(:lit, val[1]), :"**", s(:arglist, val[3])), :"-@", s(:arglist));
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 549)
  def _reduce_192(val, _values, result)
                      result = s(:call, s(:call, s(:lit, val[1]), :"**", s(:arglist, val[3])), :"-@", s(:arglist));
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 552)
  def _reduce_193(val, _values, result)
                      if val[1][0] == :lit then
                    result = val[1]
                  else
                    result = s(:call, val[1], :"+@", s(:arglist))
                  end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 559)
  def _reduce_194(val, _values, result)
                      result = s(:call, val[1], :"-@", s(:arglist))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 562)
  def _reduce_195(val, _values, result)
                      result = s(:call, val[0], :"|", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 565)
  def _reduce_196(val, _values, result)
                      result = s(:call, val[0], :"^", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 568)
  def _reduce_197(val, _values, result)
                      result = s(:call, val[0], :"&", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 571)
  def _reduce_198(val, _values, result)
                      result = s(:call, val[0], :"<=>", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 574)
  def _reduce_199(val, _values, result)
                      result = s(:call, val[0], :">", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 577)
  def _reduce_200(val, _values, result)
                      result = s(:call, val[0], :">=", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 580)
  def _reduce_201(val, _values, result)
                      result = s(:call, val[0], :"<", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 583)
  def _reduce_202(val, _values, result)
                      result = s(:call, val[0], :"<=", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 586)
  def _reduce_203(val, _values, result)
                      result = s(:call, val[0], :"==", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 589)
  def _reduce_204(val, _values, result)
                      result = s(:call, val[0], :"===", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 592)
  def _reduce_205(val, _values, result)
                      val[0] = value_expr val[0] # TODO: port call_op and clean these
                  val[2] = value_expr val[2]
                  result = s(:not, s(:call, val[0], :"==", s(:arglist, val[2])))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 597)
  def _reduce_206(val, _values, result)
                      result = self.get_match_node(val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 600)
  def _reduce_207(val, _values, result)
                      result = s(:not, self.get_match_node(val[0], val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 603)
  def _reduce_208(val, _values, result)
                      result = s(:not, val[1])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 606)
  def _reduce_209(val, _values, result)
                      val[2] = value_expr val[2]
                  result = s(:call, val[1], :"~", s(:arglist))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 610)
  def _reduce_210(val, _values, result)
                      val[0] = value_expr val[0]
                  val[2] = value_expr val[2]
                  result = s(:call, val[0], :"<<", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 615)
  def _reduce_211(val, _values, result)
                      val[0] = value_expr val[0]
                  val[2] = value_expr val[2]
                  result = s(:call, val[0], :">>", s(:arglist, val[2]))
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 620)
  def _reduce_212(val, _values, result)
                      result = logop(:and, val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 623)
  def _reduce_213(val, _values, result)
                      result = logop(:or, val[0], val[2])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 626)
  def _reduce_214(val, _values, result)
                      result = s(:defined, val[2]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 629)
  def _reduce_215(val, _values, result)
                     result = s(:if, val[0], val[2], val[4]);
               
    result
  end
.,.,

# reduce 216 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 634)
  def _reduce_217(val, _values, result)
                      result = value_expr(val[0])
                 
    result
  end
.,.,

# reduce 218 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 639)
  def _reduce_219(val, _values, result)
                     warning("parenthesize argument(s) for future version");
                 result = s(:array, val[0]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 643)
  def _reduce_220(val, _values, result)
                     result = val[0];
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 646)
  def _reduce_221(val, _values, result)
                     result = self.arg_concat(val[0], val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 649)
  def _reduce_222(val, _values, result)
                     result = s(:array, s(:hash, *val[0].values))
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 652)
  def _reduce_223(val, _values, result)
                     result = s(:splat, val[1])
                 result.paren = true
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 657)
  def _reduce_224(val, _values, result)
                      result = val[1]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 660)
  def _reduce_225(val, _values, result)
                      result = val[1];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 663)
  def _reduce_226(val, _values, result)
                      warning("parenthesize argument(s) for future version");
                  result = s(:array, val[1]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 667)
  def _reduce_227(val, _values, result)
                      warning("parenthesize argument(s) for future version");
                  result = val[1].add(val[3]);
                 
    result
  end
.,.,

# reduce 228 omitted

# reduce 229 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 674)
  def _reduce_230(val, _values, result)
                      warning("parenthesize argument(s) for future version");
                  result = s(:array, val[0])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 678)
  def _reduce_231(val, _values, result)
                     result = self.arg_blk_pass(val[0], val[1]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 681)
  def _reduce_232(val, _values, result)
                     result = self.arg_concat(val[0], val[3]);
                 result = self.arg_blk_pass(result, val[4]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 685)
  def _reduce_233(val, _values, result)
                     result = s(:array, s(:hash, *val[0].values))
                 result = self.arg_blk_pass(result, val[1]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 689)
  def _reduce_234(val, _values, result)
                     result = self.arg_concat(s(:array, s(:hash, *val[0].values)), val[3])
                 result = self.arg_blk_pass(result, val[4]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 693)
  def _reduce_235(val, _values, result)
                     result = val[0] << s(:hash, *val[2].values)
                 result = self.arg_blk_pass(result, val[3]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 697)
  def _reduce_236(val, _values, result)
                     val[0] << s(:hash, *val[2].values)
                 result = self.arg_concat(val[0], val[5])
                 result = self.arg_blk_pass(result, val[6]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 702)
  def _reduce_237(val, _values, result)
                      result = self.arg_blk_pass(s(:splat, val[1]), val[2])
                 
    result
  end
.,.,

# reduce 238 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 707)
  def _reduce_239(val, _values, result)
                      result = self.arg_blk_pass(s(:array, val[0], val[2]), val[3])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 710)
  def _reduce_240(val, _values, result)
                      result = self.arg_blk_pass(val[0], val[2]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 713)
  def _reduce_241(val, _values, result)
                      result = self.arg_concat(s(:array, val[0]), val[3]);
                  result = self.arg_blk_pass(result, val[4]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 717)
  def _reduce_242(val, _values, result)
                      result = self.arg_concat(s(:array, val[0], s(:hash, *val[2].values)), val[5])
                  result = self.arg_blk_pass(result, val[6]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 721)
  def _reduce_243(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values));
                  result = self.arg_blk_pass(result, val[1]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 725)
  def _reduce_244(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values), val[3])
                  result = self.arg_blk_pass(result, val[4])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 729)
  def _reduce_245(val, _values, result)
                      result = s(:array, val[0], s(:hash, *val[2].values))
                  result = self.arg_blk_pass(result, val[3])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 733)
  def _reduce_246(val, _values, result)
                      result = s(:array, val[0]).add_all(val[2]).add(s(:hash, *val[4].values));
                  result = self.arg_blk_pass(result, val[5]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 737)
  def _reduce_247(val, _values, result)
                      result = self.arg_concat(s(:array, val[0]).add(s(:hash, *val[2].values)), val[5]);
                  result = self.arg_blk_pass(result, val[6]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 741)
  def _reduce_248(val, _values, result)
                      result = self.arg_concat(s(:array, val[0]).add_all(val[2]).add(s(:hash, *val[4].values)), val[7]);
                  result = self.arg_blk_pass(result, val[8]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 745)
  def _reduce_249(val, _values, result)
                      result = self.arg_blk_pass(s(:splat, val[1]), val[2]);
                 
    result
  end
.,.,

# reduce 250 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 750)
  def _reduce_251(val, _values, result)
                      result = lexer.cmdarg.stack.dup
                  lexer.cmdarg.push true
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 753)
  def _reduce_252(val, _values, result)
                      lexer.cmdarg.stack.replace val[0]
                  result = val[1]
                
    result
  end
.,.,

# reduce 253 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 759)
  def _reduce_254(val, _values, result)
                     lexer.lex_state = :expr_endarg
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 761)
  def _reduce_255(val, _values, result)
                      warning("don't put space before argument parentheses");
                  result = nil;
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 765)
  def _reduce_256(val, _values, result)
                     lexer.lex_state = :expr_endarg
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 767)
  def _reduce_257(val, _values, result)
                      warning("don't put space before argument parentheses");
                  result = val[1];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 772)
  def _reduce_258(val, _values, result)
                      result = s(:block_pass, val[1]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 776)
  def _reduce_259(val, _values, result)
                      result = val[1];
                 
    result
  end
.,.,

# reduce 260 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 781)
  def _reduce_261(val, _values, result)
                     result = s(:array, val[0])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 784)
  def _reduce_262(val, _values, result)
                     result = val[0] << val[2]
                 # result = self.list_append(val[0], val[2]) # TODO? breaks stuff
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 789)
  def _reduce_263(val, _values, result)
                     result = val[0] << val[2]
                 # result = self.list_append(val[0], val[2]) # TODO? breaks stuff
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 793)
  def _reduce_264(val, _values, result)
                     result = self.arg_concat(val[0], val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 796)
  def _reduce_265(val, _values, result)
                     result = s(:splat, val[1])
               
    result
  end
.,.,

# reduce 266 omitted

# reduce 267 omitted

# reduce 268 omitted

# reduce 269 omitted

# reduce 270 omitted

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 808)
  def _reduce_274(val, _values, result)
                     result = new_fcall(val[0].to_sym)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 811)
  def _reduce_275(val, _values, result)
                     unless val[1] then
                   result = s(:nil)
                 else
                   result = s(:begin, val[1])
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 818)
  def _reduce_276(val, _values, result)
                      lexer.lex_state = :expr_endarg
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 820)
  def _reduce_277(val, _values, result)
                      warning("(...) interpreted as grouped expression");
                  result = val[1];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 824)
  def _reduce_278(val, _values, result)
                     result = val[1];
                 result.paren = true
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 828)
  def _reduce_279(val, _values, result)
                     result = s(:colon2, val[0], val[2].to_sym)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 831)
  def _reduce_280(val, _values, result)
                     result = s(:colon3, val[1].to_sym)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 834)
  def _reduce_281(val, _values, result)
                     val[2] ||= s(:arglist)
                 val[2][0] = :arglist if val[2][0] == :array # REFACTOR
                 if val[0].node_type == :self then
                   result = new_fcall(:"[]", val[2])
                 else
                   result = s(:call, val[0], :"[]", val[2])
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 843)
  def _reduce_282(val, _values, result)
                      result = val[1] || s(:zarray)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 846)
  def _reduce_283(val, _values, result)
                     result = s(:hash, *val[1].values)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 849)
  def _reduce_284(val, _values, result)
                     result = s(:return)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 852)
  def _reduce_285(val, _values, result)
                     result = self.new_yield(val[2]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 855)
  def _reduce_286(val, _values, result)
                     result = s(:yield)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 858)
  def _reduce_287(val, _values, result)
                     result = s(:yield)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 861)
  def _reduce_288(val, _values, result)
                     result = s(:defined, val[3]);
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 864)
  def _reduce_289(val, _values, result)
                     name = val[0].to_sym
                 iter = val[1]
#                 iter[2] = iter[2][1] if iter[2][0] == :block and iter[2].size == 2 # HACK
                 iter.insert 1, new_fcall(name)
                 result = iter
               
    result
  end
.,.,

# reduce 290 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 872)
  def _reduce_291(val, _values, result)
                     call = val[0]
                 iter = val[1]
#                 iter[2] = iter[2][1] if iter[2][0] == :block and iter[2].size == 2 # HACK
                 iter.insert 1, call
                 result = iter
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 879)
  def _reduce_292(val, _values, result)
                     val[1] = cond val[1]
                 if val[1][0] == :not then
                   result = s(:if, val[1].last, val[4], val[3])
                 else
                   result = s(:if, val[1], val[3], val[4])
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 887)
  def _reduce_293(val, _values, result)
                     val[1] = cond val[1]
                 if val[1][0] == :not then
                   result = s(:if, val[1].last, val[3], val[4])
                 else
                   result = s(:if, val[1], val[4], val[3])
                 end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 895)
  def _reduce_294(val, _values, result)
                     lexer.cond.push true
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 897)
  def _reduce_295(val, _values, result)
                     lexer.cond.pop
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 899)
  def _reduce_296(val, _values, result)
                     block = val[5]
                 val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:until, val[2].last, block, true);
                 else
                   result = s(:while, val[2], block, true);
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 908)
  def _reduce_297(val, _values, result)
                     lexer.cond.push true
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 910)
  def _reduce_298(val, _values, result)
                     lexer.cond.pop
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 912)
  def _reduce_299(val, _values, result)
                     block = val[5]
                 val[2] = cond val[2]
                 if val[2][0] == :not then
                   result = s(:while, val[2].last, block, true);
                 else
                   result = s(:until, val[2], block, true);
                 end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 921)
  def _reduce_300(val, _values, result)
                      result = s(:case, val[1]);

                  body = val[3]
                  while body and body.node_type == :when
                    result << body
                    body = body.delete_at 3
                  end

                  els = body

                  if els and els != s(:block) then
                    result << els
                  else
                    result << nil
                  end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 938)
  def _reduce_301(val, _values, result)
                      result = s(:case, nil); # REFACTOR

                  body = val[2]
                  while body and body.first == :when
                    result << body
                    body = body.delete_at 3
                  end

                  els = body

                  if els and els != s(:block) then
                    result << els
                  else
                    result << nil
                  end
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 954)
  def _reduce_302(val, _values, result)
     # TODO: need a test
                 result = s(:case, nil, val[3])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 958)
  def _reduce_303(val, _values, result)
                     lexer.cond.push true
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 960)
  def _reduce_304(val, _values, result)
                     lexer.cond.pop;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 962)
  def _reduce_305(val, _values, result)
                     result = s(:for, val[4], val[1])
                 result << val[7] if val[7]
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 966)
  def _reduce_306(val, _values, result)
                      self.comments.push self.lexer.comments
                  if (self.in_def || self.in_single > 0) then
                    yyerror("class definition in method body");
                  end
                  self.env.extend
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 972)
  def _reduce_307(val, _values, result)
                      scope = s(:scope, val[4]).compact
                  result = s(:class, val[1], val[2], scope)
                  result.comments = self.comments.pop
                  self.env.unextend
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 978)
  def _reduce_308(val, _values, result)
                      result = self.in_def
                  self.in_def = false
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 981)
  def _reduce_309(val, _values, result)
                      result = self.in_single
                  self.in_single = 0
                  self.env.extend;
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 985)
  def _reduce_310(val, _values, result)
                      scope = s(:scope, val[6]).compact
                  result = s(:sclass, val[2], scope)
                  self.env.unextend;
                  self.in_def = val[3]
                  self.in_single = val[5]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 992)
  def _reduce_311(val, _values, result)
                     self.comments.push self.lexer.comments
                 yyerror("module definition in method body") if
                   self.in_def or self.in_single > 0

                 self.env.extend;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 998)
  def _reduce_312(val, _values, result)
                     body = val[3] ? s(:scope, val[3]) : s(:scope)
                 result = s(:module, val[1], body)
                 result.comments = self.comments.pop
                 self.env.unextend;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1004)
  def _reduce_313(val, _values, result)
                     self.comments.push self.lexer.comments
                 self.in_def = true
                 self.env.extend
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1008)
  def _reduce_314(val, _values, result)
                     name, args, body = val[1], val[3], val[4] # TODO: refactor
                 name = name.to_sym
                 body ||= s(:nil)

                 body = s(:block, body) if body && body[0] != :block
                 result = s(:defn, name, args, s(:scope, body))
                 result.comments = self.comments.pop

                 self.env.unextend
                 self.in_def = false
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1019)
  def _reduce_315(val, _values, result)
     # 0-2, 3
                 self.comments.push self.lexer.comments
                 lexer.lex_state = :expr_fname
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1022)
  def _reduce_316(val, _values, result)
                         # 4, 5
                 self.in_single += 1
                 self.env.extend;
                 lexer.lex_state = :expr_end # force for args
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1026)
  def _reduce_317(val, _values, result)
       # 6-8
                 recv, name, args, body = val[1], val[4], val[6], val[7]

                 body = body ? s(:block, body) : s(:block)

                 result = s(:defs, recv, name.to_sym, args, s(:scope, body))
                 result.comments = self.comments.pop

                 self.env.unextend;
                 self.in_single -= 1
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1038)
  def _reduce_318(val, _values, result)
                      result = s(:break)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1041)
  def _reduce_319(val, _values, result)
                      result = s(:next)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1044)
  def _reduce_320(val, _values, result)
                      result = s(:redo)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1047)
  def _reduce_321(val, _values, result)
                      result = s(:retry)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1051)
  def _reduce_322(val, _values, result)
                      result = value_expr(val[0])
                
    result
  end
.,.,

# reduce 323 omitted

# reduce 324 omitted

# reduce 325 omitted

# reduce 326 omitted

# reduce 327 omitted

# reduce 328 omitted

# reduce 329 omitted

# reduce 330 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1065)
  def _reduce_331(val, _values, result)
                      result = s(:if, val[1], val[3], val[4]);
              
    result
  end
.,.,

# reduce 332 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1070)
  def _reduce_333(val, _values, result)
                      result = val[1];
              
    result
  end
.,.,

# reduce 334 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1074)
  def _reduce_335(val, _values, result)
     val[0].delete_at 1 if val[0][1].nil? 
    result
  end
.,.,

# reduce 336 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1078)
  def _reduce_337(val, _values, result)
                      result = 0
              
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1081)
  def _reduce_338(val, _values, result)
                      result = 0
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1084)
  def _reduce_339(val, _values, result)
                      result = val[1];
              
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1088)
  def _reduce_340(val, _values, result)
                      self.env.extend :dynamic
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1089)
  def _reduce_341(val, _values, result)
     result = self.env.dynamic.keys 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1092)
  def _reduce_342(val, _values, result)
                      vars = val[2]
                  body = val[4]

                  result = s(:iter)
                  result << vars
                  result << val[1] if val[1]
                  result << body if body

                  self.env.unextend;
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1104)
  def _reduce_343(val, _values, result)
                    raise SyntaxError, "Both block arg and actual block given." if
                  val[0] && val[0][0] == :blockpass

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

module_eval(<<'.,.,', 'ruby_parser.y', 1111)
  def _reduce_344(val, _values, result)
                      result = s(:call, val[0], val[2]);
                  result << val[3] || s(:arglist)
              
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1115)
  def _reduce_345(val, _values, result)
                      result = s(:call, val[0], val[2]);
                  result << val[3] || s(:arglist)
              
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1120)
  def _reduce_346(val, _values, result)
                      result = new_fcall(val[0].to_sym, val[1])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1123)
  def _reduce_347(val, _values, result)
                      result = new_call(val[0], val[2].to_sym, val[3])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1126)
  def _reduce_348(val, _values, result)
                      result = new_call(val[0], val[2].to_sym, val[3])
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1129)
  def _reduce_349(val, _values, result)
                      result = new_call(val[0], val[2].to_sym)
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1132)
  def _reduce_350(val, _values, result)
                      result = self.new_super(val[1]);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1135)
  def _reduce_351(val, _values, result)
                      result = s(:zsuper)
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1139)
  def _reduce_352(val, _values, result)
                      self.env.extend :dynamic
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1140)
  def _reduce_353(val, _values, result)
     result = self.env.dynamic.keys 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1141)
  def _reduce_354(val, _values, result)
     # REFACTOR
                  args = val[2]
                  body = val[4]
                  result = s(:iter)
                  result << args
                  result << body if body
                  self.env.unextend
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1150)
  def _reduce_355(val, _values, result)
                      self.env.extend :dynamic
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1151)
  def _reduce_356(val, _values, result)
     result = self.env.dynamic.keys 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1153)
  def _reduce_357(val, _values, result)
                      args = val[2]
                  body = val[4]
                  result = s(:iter)
                  result << args
                  result << body if body
                  self.env.unextend
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1162)
  def _reduce_358(val, _values, result)
                      result = s(:when, val[1], val[3])
                  result << val[4] if val[4]
                
    result
  end
.,.,

# reduce 359 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1168)
  def _reduce_360(val, _values, result)
                      result = self.list_append(val[0], s(:when, val[3], nil))
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1171)
  def _reduce_361(val, _values, result)
                      result = s(:array, s(:when, val[1], nil));
                
    result
  end
.,.,

# reduce 362 omitted

# reduce 363 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1177)
  def _reduce_364(val, _values, result)
                      exc_list = val[1] || s(:array)

                  result = s(:resbody, exc_list)
                  if val[2] then
                    exc_list << node_assign(val[2], s(:gvar, :"$!"))

                    val[4] = s(:block, val[4]) if val[4] && val[4][0] != :block
                  end

                  result << val[4]
                  result << val[5] if val[5]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1189)
  def _reduce_365(val, _values, result)
    result = nil;
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1192)
  def _reduce_366(val, _values, result)
                      result = s(:array, val[0]);
                 
    result
  end
.,.,

# reduce 367 omitted

# reduce 368 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1198)
  def _reduce_369(val, _values, result)
                      result = val[1];
                 
    result
  end
.,.,

# reduce 370 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1203)
  def _reduce_371(val, _values, result)
                      if (val[1] != nil) then
                      result = val[1];
                  else
                      result = s(:nil)
                  end
                 
    result
  end
.,.,

# reduce 372 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1211)
  def _reduce_373(val, _values, result)
     result = s(:lit, val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1212)
  def _reduce_374(val, _values, result)
     result = s(:lit, val[0]) 
    result
  end
.,.,

# reduce 375 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1216)
  def _reduce_376(val, _values, result)
                      val[0] = s(:dstr, val[0].value) if val[0][0] == :evstr
                  result = val[0];
                
    result
  end
.,.,

# reduce 377 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1222)
  def _reduce_378(val, _values, result)
                      result = self.literal_concat(val[0], val[1]);
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1226)
  def _reduce_379(val, _values, result)
                      result = val[1];
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1230)
  def _reduce_380(val, _values, result)
                      node = val[1]

                  unless node then
                    node = s(:xstr, '')
                  else
                    case node[0]
                    when :str
                      node[0] = :xstr
                    when :dstr
                      node[0] = :dxstr
                    else
                      node = s(:dxstr, '', node)
                    end
                  end

                  result = node
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1249)
  def _reduce_381(val, _values, result)
                      node = val[1] || s(:str, '')
                  options = val[2]

                  o, k = 0, nil
                  options.split(//).each do |c| # FIX: this has a better home
                    v = {
                         'x' => Regexp::EXTENDED,
                         'i' => Regexp::IGNORECASE,
                         'm' => Regexp::MULTILINE,
                         'o' => Regexp::ONCE,
                         'n' => Regexp::ENC_NONE,
                         'e' => Regexp::ENC_EUC,
                         's' => Regexp::ENC_SJIS,
                         'u' => Regexp::ENC_UTF8,
                         }[c]
                    raise "unknown regexp option: #{c}" unless v
                    o += v
                    k = c if c =~ /[esu]/
                  end

                  case node[0]
                  when :str then
                    node[0] = :lit
                    node[1] = if k then
                                Regexp.new(node[1], o, k)
                              else
                                Regexp.new(node[1], o)
                              end
                  when :dstr then
                    if options =~ /o/ then
                      node[0] = :dregx_once
                    else
                      node[0] = :dregx
                    end
                    node << o if o and o != 0
                  else
                    node = s(:dregx, '', node);
                    node[0] = :dregx_once if options =~ /o/
                    node << o if o and o != 0
                  end

                  result = node
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1294)
  def _reduce_382(val, _values, result)
                       result = s(:zarray);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1297)
  def _reduce_383(val, _values, result)
                     result = val[1];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1301)
  def _reduce_384(val, _values, result)
                       result = s(:array)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1304)
  def _reduce_385(val, _values, result)
                       word = val[1][0] == :evstr ? s(:dstr, '', val[1]) : val[1]
                   result = val[0] << word
                 
    result
  end
.,.,

# reduce 386 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1310)
  def _reduce_387(val, _values, result)
                       result = self.literal_concat(val[0], val[1]);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1314)
  def _reduce_388(val, _values, result)
                       result = s(:zarray)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1317)
  def _reduce_389(val, _values, result)
                       result = val[1]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1321)
  def _reduce_390(val, _values, result)
                       result = s(:array)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1324)
  def _reduce_391(val, _values, result)
                       result = val[0] << val[1]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1327)
  def _reduce_392(val, _values, result)
     result = s(:str, "") 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1329)
  def _reduce_393(val, _values, result)
                         result = literal_concat(val[0], val[1])
                   
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1332)
  def _reduce_394(val, _values, result)
     result = nil 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1334)
  def _reduce_395(val, _values, result)
                        result = literal_concat(val[0], val[1])
                  
    result
  end
.,.,

# reduce 396 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1339)
  def _reduce_397(val, _values, result)
                       result = lexer.lex_strterm;
                   lexer.lex_strterm = nil
                   lexer.lex_state = :expr_beg
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1343)
  def _reduce_398(val, _values, result)
                       lexer.lex_strterm = val[1]
                   result = s(:evstr, val[2]);
                   
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1347)
  def _reduce_399(val, _values, result)
                       result = lexer.lex_strterm;
                   lexer.lex_strterm = nil
                   lexer.lex_state = :expr_beg
                   lexer.cond.push false
                   lexer.cmdarg.push false
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1353)
  def _reduce_400(val, _values, result)
                       lexer.lex_strterm = val[1]
                   lexer.cond.lexpop
                   lexer.cmdarg.lexpop
                   case val[2][0]
                   when :str, :dstr, :evstr then
                     result = val[2]
                   else
                     result = s(:evstr, val[2])
                   end
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1365)
  def _reduce_401(val, _values, result)
                       result = s(:gvar, val[0].to_sym);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1368)
  def _reduce_402(val, _values, result)
                       result = s(:ivar, val[0].to_sym);
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1371)
  def _reduce_403(val, _values, result)
                       result = s(:cvar, val[0].to_sym);
                 
    result
  end
.,.,

# reduce 404 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1377)
  def _reduce_405(val, _values, result)
                       lexer.lex_state = :expr_end
                   result = val[1].to_sym
                 
    result
  end
.,.,

# reduce 406 omitted

# reduce 407 omitted

# reduce 408 omitted

# reduce 409 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1384)
  def _reduce_410(val, _values, result)
                       lexer.lex_state = :expr_end
                   result = val[1]

                   yyerror("empty symbol literal") if result.nil? or result.empty?

                   case result[0]
                   when :dstr then
                     result[0] = :dsym
                   when :str then
                     result = s(:lit, result.last.intern)
                   else
                     result = s(:dsym, '', result)
                   end

                 
    result
  end
.,.,

# reduce 411 omitted

# reduce 412 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1403)
  def _reduce_413(val, _values, result)
                     result = -val[1] # TODO: pt_testcase
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1406)
  def _reduce_414(val, _values, result)
                     result = -val[1] # TODO: pt_testcase
               
    result
  end
.,.,

# reduce 415 omitted

# reduce 416 omitted

# reduce 417 omitted

# reduce 418 omitted

# reduce 419 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1415)
  def _reduce_420(val, _values, result)
                     result = s(:nil)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1418)
  def _reduce_421(val, _values, result)
                     result = s(:self)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1421)
  def _reduce_422(val, _values, result)
                     result = s(:true)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1424)
  def _reduce_423(val, _values, result)
                     result = s(:false)
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1427)
  def _reduce_424(val, _values, result)
                     result = :"__FILE__"
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1430)
  def _reduce_425(val, _values, result)
                     result = :"__LINE__"
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1434)
  def _reduce_426(val, _values, result)
                       result = self.gettable(val[0])
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1438)
  def _reduce_427(val, _values, result)
                       result = self.assignable(val[0]);
                 
    result
  end
.,.,

# reduce 428 omitted

# reduce 429 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1444)
  def _reduce_430(val, _values, result)
                     result = nil;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1447)
  def _reduce_431(val, _values, result)
                     lexer.lex_state = :expr_beg
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1449)
  def _reduce_432(val, _values, result)
                     result = val[2];
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1452)
  def _reduce_433(val, _values, result)
                     yyerrok;
                 result = nil;
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1457)
  def _reduce_434(val, _values, result)
                       result = val[1];
                   lexer.lex_state = :expr_beg
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1461)
  def _reduce_435(val, _values, result)
                       result = val[0];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1465)
  def _reduce_436(val, _values, result)
                     result = val[0]
                 if val[2] then
                   val[2][1..-1].each do |lasgn| # FIX clean sexp iter
                     raise "wtf? #{lasgn.inspect}" unless lasgn[0] == :lasgn
                     result << lasgn[1]
                   end
                 end
                 result << val[4] if val[4]
                 result << val[2] if val[2]
                 result << val[5] if val[5]
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1477)
  def _reduce_437(val, _values, result)
                     result = val[0]
                 if val[2] then
                   val[2][1..-1].each do |lasgn| # FIX clean sexp iter
                     raise "wtf? #{lasgn.inspect}" unless lasgn[0] == :lasgn
                     result << lasgn[1]
                   end
                 end
                 result << val[2] if val[2]
                 result << val[3] if val[3]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1488)
  def _reduce_438(val, _values, result)
                     result = val[0]
                 result << val[2] if val[2]
                 result << val[3] if val[3]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1493)
  def _reduce_439(val, _values, result)
                     result = val[0]
                 result << val[1] if val[1]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1497)
  def _reduce_440(val, _values, result)
                     result = s(:args)
                 if val[0] then
                   val[0][1..-1].each do |lasgn| # FIX clean sexp iter
                     raise "wtf? #{lasgn.inspect}" unless lasgn[0] == :lasgn
                     result << lasgn[1]
                   end
                 end

                 result << val[2] if val[2]
                 result << val[0] if val[0]
                 result << val[3] if val[3]
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1510)
  def _reduce_441(val, _values, result)
                     result = s(:args)
                 if val[0] then
                   val[0][1..-1].each do |lasgn| # FIX clean sexp iter
                     raise "wtf? #{lasgn.inspect}" unless lasgn[0] == :lasgn
                     result << lasgn[1]
                   end
                 end

                 result << val[0] if val[0]
                 result << val[1] if val[1]
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1522)
  def _reduce_442(val, _values, result)
                       result = s(:args, val[0], val[1]).compact
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1525)
  def _reduce_443(val, _values, result)
                       result = s(:args, val[0]).compact
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1528)
  def _reduce_444(val, _values, result)
                       result = s(:args)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1532)
  def _reduce_445(val, _values, result)
                     yyerror("formal argument cannot be a constant");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1535)
  def _reduce_446(val, _values, result)
                     yyerror("formal argument cannot be an instance variable");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1538)
  def _reduce_447(val, _values, result)
                     yyerror("formal argument cannot be a class variable");
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1541)
  def _reduce_448(val, _values, result)
                     identifier = val[0].to_sym
                 self.env[identifier] = :lvar

                 result = val[0];
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1548)
  def _reduce_449(val, _values, result)
                       result = s(:args)
                   result << val[0].to_sym
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1552)
  def _reduce_450(val, _values, result)
                       val[0] << val[2].to_sym
                   result = val[0]
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1557)
  def _reduce_451(val, _values, result)
                       result = self.assignable(val[0], val[2]);
                   # TODO: detect duplicate names
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1562)
  def _reduce_452(val, _values, result)
                     result = s(:block, val[0])
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1565)
  def _reduce_453(val, _values, result)
                     result = self.append_to_block(val[0], val[2]);
               
    result
  end
.,.,

# reduce 454 omitted

# reduce 455 omitted

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

module_eval(<<'.,.,', 'ruby_parser.y', 1576)
  def _reduce_457(val, _values, result)
                     name = :"*"
                 self.env[name] = :lvar
                 result = name
               
    result
  end
.,.,

# reduce 458 omitted

# reduce 459 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1584)
  def _reduce_460(val, _values, result)
                      identifier = val[1].to_sym

                  self.env[identifier] = :lvar
                  result = s(:block_arg, identifier.to_sym)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1591)
  def _reduce_461(val, _values, result)
                      result = val[1];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1594)
  def _reduce_462(val, _values, result)
                     result = nil;
                 
    result
  end
.,.,

# reduce 463 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1599)
  def _reduce_464(val, _values, result)
                     lexer.lex_state = :expr_beg
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1601)
  def _reduce_465(val, _values, result)
                     if (val[2].instanceof ILiteralNode) then
                    yyerror("Can't define single method for literals.");
                 end
                 result = val[2];
               
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1607)
  def _reduce_466(val, _values, result)
     #  [!nil]
                  result = s(:array)
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1610)
  def _reduce_467(val, _values, result)
     #  [!nil]
                  result = val[0];
                 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1614)
  def _reduce_468(val, _values, result)
                      size = val[0].size
                  if (size % 2 != 1) then # != 1 because of leading :array
                    yyerror("Odd number (#{size}) list for Hash. #{val[0].inspect}");
                  end
                  result = val[0];
                 
    result
  end
.,.,

# reduce 469 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1623)
  def _reduce_470(val, _values, result)
                      list = val[0].dup
                  more = val[2][1..-1]
                  list.push(*more) unless more.empty?
                  result = list
                
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1630)
  def _reduce_471(val, _values, result)
                      result = s(:array, val[0], val[2])
                
    result
  end
.,.,

# reduce 472 omitted

# reduce 473 omitted

# reduce 474 omitted

# reduce 475 omitted

# reduce 476 omitted

# reduce 477 omitted

# reduce 478 omitted

# reduce 479 omitted

# reduce 480 omitted

# reduce 481 omitted

# reduce 482 omitted

# reduce 483 omitted

# reduce 484 omitted

# reduce 485 omitted

# reduce 486 omitted

# reduce 487 omitted

# reduce 488 omitted

# reduce 489 omitted

# reduce 490 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1641)
  def _reduce_491(val, _values, result)
     yyerrok 
    result
  end
.,.,

# reduce 492 omitted

# reduce 493 omitted

module_eval(<<'.,.,', 'ruby_parser.y', 1645)
  def _reduce_494(val, _values, result)
     yyerrok 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1647)
  def _reduce_495(val, _values, result)
     result = nil 
    result
  end
.,.,

module_eval(<<'.,.,', 'ruby_parser.y', 1649)
  def _reduce_496(val, _values, result)
     result = nil 
    result
  end
.,.,

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

end   # class RubyParser
