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

require 'racc/parser.rb'


require 'parser'

Parser.check_for_encoding_support

module Parser
  class Ruby20 < Parser::Base


  def version
    20
  end

  def default_encoding
    Encoding::UTF_8
  end
##### State transition tables begin ###

clist = [
'-471,5,69,70,71,9,57,-471,-471,-471,63,64,-471,-471,-471,67,-471,65',
'66,68,30,31,72,73,-471,265,-471,-471,-471,29,28,27,98,97,99,100,-471',
'-471,19,-471,-471,-471,-471,-471,8,45,7,10,102,101,103,92,56,94,93,95',
'-98,96,104,105,584,90,91,42,43,41,-471,-471,-471,-471,-471,-471,-471',
'-471,-471,-471,-471,-471,-471,-471,265,-99,-471,-471,-471,40,-471,-471',
'33,-106,-471,58,59,-471,-471,60,-471,35,-471,265,-471,44,-471,-471,265',
'-471,-471,-471,-471,-471,20,-471,264,-471,214,89,79,82,83,605,84,86',
'85,87,684,106,-105,-471,80,88,-471,-471,-471,-471,-474,-471,62,-471',
'81,-471,-101,-474,-474,-474,260,563,-474,-474,-474,607,-474,118,563',
'-103,110,215,563,-286,-474,109,-474,-474,-474,-100,642,-89,583,264,260',
'-485,-474,-474,563,-474,-474,-474,-474,-474,563,-101,-103,-100,-102',
'-102,713,604,264,110,257,110,-90,264,109,-486,109,258,203,-286,-97,641',
'-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474',
'204,606,-474,-474,-474,-471,-474,-474,-98,-92,-474,440,-471,-474,-474',
'511,-474,713,-474,683,-474,-96,-474,-474,768,-474,-474,-474,-474,-474',
'-289,-474,-99,-474,-563,-92,713,-289,-289,-289,211,212,769,-289,-289',
'-563,-289,-474,-94,110,-474,-474,-474,-474,109,-474,110,-474,-91,-474',
'110,109,-104,837,-106,109,-289,-289,-105,-289,-289,-289,-289,-289,110',
'-92,110,-101,-93,109,-94,109,110,-101,-103,-100,-102,109,-101,-103,-100',
'-102,205,211,212,-103,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,-289,-289,211,212,-289,-289,-289,-92,625,210,-92,209,-289',
'110,855,-289,-92,-84,109,-564,-289,642,-289,-70,-289,-289,215,-289,-289',
'-289,-289,-289,110,-289,-567,-289,254,109,-94,211,212,-567,-567,-567',
'-485,642,-486,-567,-567,-289,-567,524,-289,-289,523,-95,641,-289,-97',
'-567,642,-104,-560,-95,-106,-474,524,-100,312,526,-567,-567,-474,-567',
'-567,-567,-567,-567,-94,110,641,-94,511,803,109,569,702,-94,542,541',
'540,-89,543,-90,592,641,215,-98,-561,-99,-567,-567,-567,-567,-567,-567',
'-567,-567,-567,-567,-567,-567,-567,-567,-471,207,-567,-567,-567,592',
'626,-471,208,313,-567,215,-560,-567,-567,-96,-471,206,-567,215,-567',
'-105,-567,-567,383,-567,-567,-567,-567,-567,592,-567,-567,-567,620,-560',
'-474,110,524,211,212,526,109,-474,594,593,590,-567,-561,-567,-567,-567',
'-474,-93,828,-567,-567,-567,-567,-102,-481,-567,-567,-567,575,-567,-567',
'-481,576,594,593,-561,396,-567,-567,-567,-567,-567,-563,745,524,-92',
'-567,526,439,-567,-567,-101,-567,-567,-567,-567,-567,441,594,593,702',
'621,542,541,540,-567,543,592,747,-480,-482,-567,592,110,314,315,-480',
'-482,109,-567,-567,-567,-567,-567,-567,-567,-567,-567,-567,-567,-567',
'-567,-567,506,507,-567,-567,-567,-479,770,-567,592,442,-567,754,-479',
'-567,-567,-94,-567,-409,-567,110,-567,-103,-567,-567,109,-567,-567,-567',
'-567,-567,-567,-567,-567,-567,592,211,212,-567,594,593,595,592,-563',
'594,593,597,-567,-567,214,948,-567,-567,-567,-567,-289,-567,473,-567',
'-91,-102,482,-289,-289,-289,-100,-567,-289,-289,-289,-409,-289,-332',
'594,593,599,484,-409,-476,-332,-477,-289,-289,-289,393,-476,-409,-477',
'-332,395,394,-289,-289,486,-289,-289,-289,-289,-289,594,593,603,436',
'493,-483,-409,594,593,608,437,702,-483,542,541,540,-69,543,215,438,496',
'-483,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,235,549,-289,-289,-289,497,771,-289,-478,504,-289,551,698,-289',
'-289,-478,-289,269,-289,215,-289,701,-289,-289,785,-289,-289,-289,-289',
'-289,260,-289,232,-289,551,257,234,233,110,230,231,508,258,109,559,558',
'512,-289,513,552,-289,-289,-289,-289,235,-289,215,-289,527,-104,286',
'69,70,71,9,57,528,559,558,63,64,486,552,79,67,569,65,66,68,30,31,72',
'73,215,385,80,971,573,29,28,27,98,97,99,100,81,574,19,211,212,559,558',
'630,8,45,288,10,102,101,103,92,56,94,93,95,609,96,104,105,612,90,91',
'42,43,41,235,239,244,245,246,241,243,251,252,247,248,-484,228,229,502',
'-263,249,250,-484,40,614,503,290,832,803,58,59,-484,215,60,501,35,232',
'618,238,44,234,233,619,230,231,242,240,236,20,237,832,803,260,89,79',
'82,83,-279,84,86,85,87,629,235,-279,514,80,88,632,253,-280,-240,515',
'-279,62,235,81,-280,-280,-280,235,438,-280,-280,-280,702,-280,542,541',
'540,235,543,235,215,215,232,-280,-280,-280,234,233,571,230,231,215,-84',
'-280,-280,572,-280,-280,-280,-280,-280,660,215,517,570,671,235,677,702',
'698,542,541,540,678,543,739,740,680,701,741,104,105,686,-280,-280,-280',
'-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,235,232,-280',
'-280,-280,234,233,-280,698,689,-280,690,692,-280,-280,694,-280,899,-280',
'696,-280,705,-280,-280,706,-280,-280,-280,-280,-280,707,-280,232,-280',
'709,569,234,233,579,716,929,744,542,541,540,578,543,-280,748,-290,-280',
'-280,-280,-280,580,-280,-290,-280,5,69,70,71,9,57,749,-290,-290,63,64',
'-264,755,473,67,-290,65,66,68,30,31,72,73,473,-290,215,773,254,29,28',
'27,98,97,99,100,484,929,19,542,541,540,486,543,8,45,7,10,102,101,103',
'92,56,94,93,95,796,96,104,105,671,90,91,42,43,41,235,239,244,245,246',
'241,243,251,252,247,248,-289,-586,-586,579,215,249,250,-289,40,260,932',
'33,-564,260,58,59,-289,671,60,580,35,232,235,238,44,234,233,235,230',
'231,242,240,236,20,237,803,215,215,89,79,82,83,826,84,86,85,87,215,803',
'836,215,80,88,286,69,70,71,9,57,62,215,81,63,64,845,-265,854,67,857',
'65,66,68,30,31,72,73,113,114,115,116,117,29,28,27,98,97,99,100,689,860',
'19,113,114,115,116,117,8,45,288,10,102,101,103,92,56,94,93,95,862,96',
'104,105,864,90,91,42,43,41,235,239,244,245,246,241,243,251,252,247,248',
'-289,-586,-586,579,866,249,250,-289,40,215,932,33,-564,868,58,59,-289',
'869,60,580,35,232,872,238,44,234,233,874,230,231,242,240,236,20,237',
'875,671,877,89,79,82,83,-263,84,86,85,87,881,883,884,885,80,88,286,69',
'70,71,9,57,62,886,81,63,64,689,888,890,67,892,65,66,68,30,31,72,73,113',
'114,115,116,117,29,28,27,98,97,99,100,894,702,19,542,541,540,894,543',
'8,45,288,10,102,101,103,92,56,94,93,95,215,96,104,105,900,90,91,42,43',
'41,235,-586,-586,-586,-586,241,243,-483,698,-586,-586,-484,902,904,-483',
'910,249,250,-484,40,913,215,33,-483,916,58,59,-484,-266,60,926,35,232',
'933,238,44,234,233,934,230,231,242,240,236,20,237,950,952,953,89,79',
'82,83,958,84,86,85,87,689,961,963,965,80,88,286,69,70,71,9,57,62,967',
'81,63,64,967,978,979,67,894,65,66,68,30,31,72,73,894,894,984,950,-564',
'29,28,27,98,97,99,100,-563,702,19,542,541,540,677,543,8,45,288,10,102',
'101,103,92,56,94,93,95,950,96,104,105,1003,90,91,42,43,41,235,702,1004',
'542,541,540,1005,543,698,702,967,542,541,540,976,543,249,250,967,40',
'967,977,290,215,894,58,59,950,967,60,975,35,232,,238,44,234,233,698',
'230,231,,,236,20,237,698,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69',
'70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98',
'97,99,100,,702,19,542,541,540,,543,8,45,288,10,102,101,103,92,56,94',
'93,95,,96,104,105,-279,90,91,42,43,41,235,-279,-290,,,,,,698,-290,-279',
',,,,,249,250,-290,40,,,290,,,58,59,,,60,,35,232,,238,44,234,233,,230',
'231,,,236,20,237,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71',
'9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,615,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,235,239,244,245,246,241,243,251,252,247,248,-289,228',
'229,,,249,250,-289,40,,,33,-564,,58,59,-289,,60,,35,232,,238,44,234',
'233,,230,231,242,240,236,20,237,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',253,-568,,,,62,,81,-568,-568,-568,,,-568,-568,-568,235,-568,,,,,,,',
',-568,-568,-568,-568,,,249,250,,,,-568,-568,,-568,-568,-568,-568,-568',
',,,232,,238,,234,233,,230,231,,,236,,237,,,,,,-568,-568,-568,-568,-568',
'-568,-568,-568,-568,-568,-568,-568,-568,-568,,,-568,-568,-568,,,-568',
',,-568,,,-568,-568,,-568,,-568,,-568,,-568,-568,,-568,-568,-568,-568',
'-568,,-568,-568,-568,,,,,,,,,,,,,,-568,,,-568,-568,-568,-568,-569,-568',
',-568,,,,-569,-569,-569,,,-569,-569,-569,235,-569,,,,,,,,,-569,-569',
'-569,-569,,,249,250,,,,-569,-569,,-569,-569,-569,-569,-569,,,,232,,238',
',234,233,,230,231,,,236,,237,,,,,,-569,-569,-569,-569,-569,-569,-569',
'-569,-569,-569,-569,-569,-569,-569,,,-569,-569,-569,,,-569,,,-569,,',
'-569,-569,,-569,,-569,,-569,,-569,-569,,-569,-569,-569,-569,-569,,-569',
'-569,-569,,,,,,,,,,,,,,-569,,,-569,-569,-569,-569,,-569,,-569,5,69,70',
'71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,,8,45,7,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,235,-586,-586,-586,-586,241,243,,,-586,-586,,,,,,249,250,,40',
',,33,,,58,59,,,60,,35,232,,238,44,234,233,,230,231,242,240,236,20,237',
',,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64',
',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45',
'288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,-586',
'-586,-586,-586,241,243,,,-586,-586,,,,,,249,250,,40,,,33,,,58,59,,,60',
',35,232,,238,44,234,233,,230,231,242,240,236,20,237,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68',
'30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,-586,-586,-586,-586',
'241,243,,,-586,-586,,,,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,238',
'44,234,233,,230,231,242,240,236,20,237,,,,89,79,82,83,,84,86,85,87,',
',,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73',
',,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94',
'93,95,,96,104,105,,90,91,42,43,41,235,-586,-586,-586,-586,241,243,,',
'-586,-586,,,,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,238,44,234,233',
',230,231,242,240,236,20,237,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286',
'69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,235,-586,-586,-586,-586,241,243,,,-586,-586,,,,',
',249,250,,40,,,33,,,58,59,,,60,,35,232,,238,44,234,233,,230,231,242',
'240,236,20,237,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9',
'57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,235,239,244,245,246,241,243,,,247,248,,,,,,249,250,,40,,,33',
',,58,59,,,60,,35,232,,238,44,234,233,,230,231,242,240,236,20,237,,,',
'89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,',
',67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45',
'288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,239',
'244,245,246,241,243,251,,247,248,,,,,,249,250,,40,,,33,,,58,59,,,60',
',35,232,,238,44,234,233,,230,231,242,240,236,20,237,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68',
'30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,,,,,,,,,,,,,,,,249',
'250,,40,,,33,,,58,59,,,60,,35,232,,238,44,234,233,,230,231,,,,20,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,',
',,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45',
'288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,,',
',,,,,,,,,,,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,238,44,234,233,',
'230,231,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9',
'57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,235,,,,,,,,,,,,,,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,',
'44,234,233,,230,231,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286',
'69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44',
',,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57',
'62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64',
',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45',
'288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,',
',,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66',
'68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85',
'87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72',
'73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58',
'59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
'286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96',
'104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35',
',,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71',
'9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,',
',,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81',
'63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,',
',,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67',
',65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288',
'10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,',
',,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68',
'30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40',
',,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,286,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73',
',,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94',
'93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59',
',,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286',
'69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44',
',,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,286,69,70,71,9,57',
'62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,19,,,,,,8,45,288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,9,57,62,,81,63,64,',
',,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45',
'7,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,',
',,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83',
',84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30',
'31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92',
'56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226',
',,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,',
'276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70',
'71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97',
'99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44',
',,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57',
'62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44,,,281',
',,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,,,309',
',,,,,,,,,,,,,,,,,,,299,,,295,,,58,59,,,60,,294,,,,,,,,,,,,,,,,,,89,79',
'82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66',
'68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,630,,303,,',
'102,101,103,92,56,94,93,95,,96,104,105,,90,91,,,309,235,239,244,245',
'246,241,243,251,252,247,248,,228,229,,,249,250,,299,,,226,,,58,59,,',
'60,,,232,,238,,234,233,,230,231,242,240,236,,237,,,,89,79,82,83,,84',
'86,85,87,,,,,80,88,,253,,311,,,62,,81,69,70,71,,57,,,,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302',
'308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44',
',,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62',
',81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,,,44,,,281,,,',
',,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63',
'64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227',
',,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,281,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85',
'87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73',
',,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95',
',96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60',
',,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71',
',57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42',
'43,41,235,239,244,245,246,241,243,251,252,247,248,,228,229,,,249,250',
',220,,,226,,,58,59,,,60,,,232,,238,44,234,233,,230,231,242,240,236,20',
'237,,,,89,79,82,83,,84,86,85,87,,,,,80,88,110,253,,,,109,62,,81,69,70',
'71,,57,,,,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97',
'99,100,,,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,,,309,,,,,,,,,,,,,,,,,,,,345,,,33,,,58,59,,,60,,35,,,,,,,,,,,,,,',
',,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,',
'67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,',
',303,,,102,101,103,350,56,94,93,351,,96,104,105,,90,91,,,309,,,,,,,',
',,,,,,,,,357,,,352,,,226,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83',
',84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,303,,,102,101,103',
'350,56,94,93,351,,96,104,105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,352,,,226',
',,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
'69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,19,,,,,,8,45,7,10,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,235,239,244,245,246,241,243,251,252,247,248,,228',
'229,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,238,44,234,233,,230,231',
'242,240,236,20,237,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,253,,,,385',
'62,,81,69,70,71,,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,',
',,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,',
',,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68',
'30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92',
'56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226',
',,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,9,57,62,,81',
'63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,',
',,,8,45,,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,',
',,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79',
'82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66',
'68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,401,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,',
',,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95',
',96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60',
',,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71',
',57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91',
'42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44,,,281',
',,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,',
',,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79',
'82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66',
'68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,401,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,',
',,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,',
'96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60',
',,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71',
',57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,',
',,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,',
'67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,',
'102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,',
',,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84',
'86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31',
'72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94',
'93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58',
'59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,215',
'69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302',
'308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44',
',,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62',
',81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43',
'41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,',
',,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,',
',,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302',
'308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44',
',,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62',
',81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43',
'41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,',
',,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,',
',,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302',
'308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44',
',,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62',
',81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43',
'41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,',
',,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,',
',,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,',
'276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70',
'71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97',
'99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44',
',,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57',
'62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44,,,281',
',,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,215,69,70,71,,57,62',
',81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43',
'41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,',
',,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,',
',,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98',
'97,99,100,,,19,,,,,,8,45,,10,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,',
',,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,,,309',
'235,239,244,245,246,241,243,251,252,247,248,,228,229,,,249,250,,299',
',,226,,,58,59,,,60,,,232,,238,,234,233,,230,231,242,240,236,,237,,,',
'89,79,82,83,,84,86,85,87,,,,,80,88,,253,,499,,,62,,81,69,70,71,,57,',
',,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100',
',,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,,,309',
',,,,,,,,,,,,,,,,,,,299,,,295,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68',
'305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,517,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85',
'87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73',
',,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95',
',96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60',
',,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71',
',57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99',
'100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,',
',,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,',
'67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,',
'102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,',
',,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84',
'86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31',
'72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94',
'93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58',
'59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98',
'97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,',
',,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63',
'64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227',
',,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,',
',,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79',
'82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66',
'68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,,,58,59,,,60,,278,,276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84',
'86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306',
'72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92',
'56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226',
',,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301',
'302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96',
'104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,',
',,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,',
'57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97',
'99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,',
',67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,',
',,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,654,,276,,44,,,281,,,,,,225',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,',
',67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,',
',,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,276,,44,,,281,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,9,57,62,,81,63,64,,,,67,,65,66,68,30',
'31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,8,45,288,10,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,239,244,245,246,241,243',
'251,252,247,248,,228,229,,,249,250,,40,,,33,,,58,59,,,60,,35,232,,238',
'44,234,233,,230,231,242,240,236,20,237,,,,89,79,82,83,,84,86,85,87,',
',,,80,88,215,253,,,,385,62,,81,69,70,71,,57,,,,63,64,,,,67,,65,66,68',
'305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,303,,,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,299,',
',295,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,',
'276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70',
'71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98',
'97,99,100,,,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,',
'90,91,,,309,,,,,,,,,,,,,,,,,,,,299,,,295,,,58,59,,,60,,,,,,,,,,,,,,',
',,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,',
',,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,',
',,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,',
',,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68',
'305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,',
',,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98',
'97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,',
',,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63',
'64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227',
',,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,654,,,,44,,,281,,,,,,225',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,',
',67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,',
',,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,281,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,278,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
'27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104',
'105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,',
'276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70',
'71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97',
'99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,280,96,104,105,,90',
'91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,278,,276,,44',
',,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57',
'62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99',
'100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42',
'43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,752,,,,44,,,,,,,,,225',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,',
',67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,',
',,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,',
',,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68',
'305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101',
'103,92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,',
',220,,,226,,,58,59,,,60,,654,,276,,44,,,281,,,,,,225,,,,,89,79,82,83',
',84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,,,58,59,,,60,,,,276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72',
'73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94',
'93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58',
'59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
'69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,',
',,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79',
'82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66',
'68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,',
',,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,',
'29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96',
'104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,',
',,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,',
'57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97',
'99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91',
'42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225',
',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,',
',67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,',
',,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,',
',,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82',
'83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68',
'305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,303,,,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,299,',
',295,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301',
'302,308,98,97,99,100,,,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96',
'104,105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,299,,,295,,,58,59,,,60,,,,,',
',,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,401,,,,44,,,,,,,,,225,,,',
',89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,',
',,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,',
'84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30',
'31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
'98,97,99,100,,,19,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101',
'103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,',
',,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59',
',,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69',
'70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308',
'98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,',
',,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81',
'63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,',
'227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89',
'79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65',
'66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102',
'101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,',
',,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86',
'85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72',
'73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56',
'94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,',
'58,59,,,60,,,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
',69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302',
'308,98,97,99,100,,,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104',
'105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,871,,,226,,,58,59,,,60,,,,,,,,,',
',,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63',
'64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,98,97,99,100,,,19,,,,,',
',45,,,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,',
',,,,,,,,,,,,220,,,226,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83',
',84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305',
'306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,654,,,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87',
',,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,',
',,,,301,302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58',
'59,,,60,,,,276,,44,,,281,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80',
'88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301',
'302,308,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96',
'104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,',
',,,44,,,,,,,,,225,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,',
'57,62,,81,63,64,,,,67,,65,66,68,305,306,72,73,,,,,,301,302,308,98,97',
'99,100,,,227,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,,,309,,,,,,,,,,,,,,,,,,,,871,,,226,,,58,59,,,60,,,,,,,,,,,,,,,,,',
',,89,79,82,83,,84,86,85,87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67',
',65,66,68,305,306,72,73,,,,,,301,302,308,98,97,99,100,,,227,,,,,,,303',
',,102,101,103,92,56,94,93,95,,96,104,105,,90,91,,,309,,,,,,,,,,,,,,',
',,,,,940,,,226,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85',
'87,,,,,80,88,,69,70,71,,57,62,,81,63,64,,,,67,,65,66,68,30,31,72,73',
',,,,,29,28,27,98,97,99,100,,,227,,,,,,,45,,,102,101,103,92,56,94,93',
'95,280,96,104,105,,90,91,42,43,41,235,239,244,245,246,241,243,251,252',
'247,248,,228,229,,,249,250,,220,,,226,,,58,59,,,60,,278,232,276,238',
'44,234,233,281,230,231,242,240,236,225,237,,,,89,79,82,83,,84,86,85',
'87,,,,,80,88,,253,-408,,,,62,,81,-408,-408,-408,,,-408,-408,-408,,-408',
',,,,,,,,-408,-408,-408,,,,,,,,,-408,-408,,-408,-408,-408,-408,-408,',
',,,,,,,,,,,,,,,,,,,,,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408',
'-408,-408,-408,-408,,,-408,-408,-408,,,-408,,260,-408,,,-408,-408,,-408',
',-408,,-408,,-408,-408,,-408,-408,-408,-408,-408,-296,-408,-408,-408',
',,,-296,-296,-296,,,-296,-296,-296,,-296,-408,,,-408,-408,,-408,,-408',
'-296,-296,,,,,,,,,-296,-296,,-296,-296,-296,-296,-296,,,,,,,,,,,,,,',
',,,,,,,,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296',
'-296,-296,,,-296,-296,-296,,,-296,,269,-296,,,-296,-296,,-296,,-296',
',-296,,-296,-296,,-296,-296,-296,-296,-296,,-296,-246,-296,,,,,,-246',
'-246,-246,,,-246,-246,-246,-296,-246,,-296,-296,,-296,,-296,,-246,-246',
'-246,,,,,,,,,-246,-246,,-246,-246,-246,-246,-246,,,,,,,,,,,,,,,,,,,',
',,,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246',
'-246,,,-246,-246,-246,,,-246,,260,-246,,,-246,-246,,-246,,-246,,-246',
',-246,-246,,-246,-246,-246,-246,-246,,-246,-246,-246,,,,,,,,,,,,,,-246',
',-246,-246,-246,,-246,,-246,-246,-246,-246,,,-246,-246,-246,784,-246',
'542,541,540,785,543,,,,-246,-246,,,,551,,,,,,-246,-246,,-246,-246,-246',
'-246,-246,,,,,,,,,547,,545,,542,541,540,549,543,556,555,559,558,,,,552',
'551,,,,,,,,-246,,,,,,,-246,,,,,260,-246,547,531,,215,,,,,,556,555,559',
'558,,,,552,,,,,-246,-246,,,,,,,,,,,,,,-246,,,-246,,,,,-246,170,181,171',
'194,167,187,177,176,197,198,192,175,174,169,195,199,200,179,168,182',
'186,188,180,173,,,,189,196,191,190,183,193,178,166,185,184,,,,,,165',
'172,163,164,160,161,162,121,123,120,,122,,,,,,,,154,155,,151,133,134',
'135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,,,,,,,,,148,147,,132',
'153,150,149,158,145,146,140,138,130,152,131,,,159,89,,,,,,,,,,,,,,88',
'170,181,171,194,167,187,177,176,197,198,192,175,174,169,195,199,200',
'179,168,182,186,188,180,173,,,,189,196,191,190,183,193,178,166,185,184',
',,,,,165,172,163,164,160,161,162,121,123,,,122,,,,,,,,154,155,,151,133',
'134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,,,,,,,,,148,147',
',132,153,150,149,158,145,146,140,138,130,152,131,,,159,89,,,,,,,,,,',
',,,88,170,181,171,194,167,187,177,176,197,198,192,175,174,169,195,199',
'200,179,168,182,186,188,180,173,,,,189,196,191,190,183,193,178,166,185',
'184,,,,,,165,172,163,164,160,161,162,121,123,,,122,,,,,,,,154,155,,151',
'133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,,,,,,,,,148',
'147,,132,153,150,149,158,145,146,140,138,130,152,131,,,159,89,,,,,,',
',,,,,,,88,170,181,171,194,167,187,177,176,197,198,192,175,174,169,195',
'199,200,179,168,182,186,188,180,173,,,,189,196,191,190,183,193,178,166',
'185,184,,,,,,165,172,163,164,160,161,162,121,123,,,122,,,,,,,,154,155',
',151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,,,,,',
',,,148,147,,132,153,150,149,158,145,146,140,138,130,152,131,,,159,89',
',,,,,,,,,,,,,88,170,181,171,194,167,187,177,176,197,198,192,175,174',
'169,195,199,200,179,168,182,186,188,180,173,,,,189,196,191,368,367,369',
'366,166,185,184,,,,,,165,172,163,164,363,364,365,361,123,94,93,362,',
'96,,,,,,154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143',
'144,,,,,,373,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130',
'152,131,,,159,170,181,171,194,167,187,177,176,197,198,192,175,174,169',
'195,199,200,179,168,182,186,188,180,173,,,,189,196,191,190,183,193,178',
'166,185,184,,,,,,165,172,163,164,160,161,162,121,123,,,122,,,,,,,,154',
'155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,',
',,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130,152,131,,,159',
'235,239,244,245,246,241,243,251,252,247,248,,228,229,,,249,250,,,545',
',542,541,540,549,543,,,,,,232,,238,551,234,233,,230,231,242,240,236',
',237,235,239,244,245,246,241,243,251,252,247,248,547,228,229,,,249,250',
',253,556,555,559,558,,,,552,,,,,232,,238,,234,233,,230,231,242,240,236',
',237,235,239,244,245,246,241,243,251,252,247,248,,228,229,,,249,250',
',253,,,,545,,542,541,540,549,543,,,232,,238,,234,233,551,230,231,242',
'240,236,,237,235,239,244,245,246,241,243,251,252,247,248,,228,229,547',
'734,249,250,,253,,,,556,555,559,558,,,,552,,232,,238,,234,233,,230,231',
'242,240,236,,237,235,239,244,245,246,241,243,251,252,247,248,,228,229',
',,249,250,,253,545,,542,541,540,549,543,,,,,,232,,238,551,234,233,,230',
'231,242,240,236,,237,235,239,244,245,246,241,243,251,252,247,248,547',
'228,229,,,249,250,,253,556,555,559,558,,,,552,,,,,232,,238,,234,233',
',230,231,242,240,236,,237,235,239,244,245,246,241,243,251,252,247,248',
',228,229,,,249,250,,253,545,,542,541,540,549,543,,,,,,232,,238,551,234',
'233,,230,231,242,240,236,,237,235,239,244,245,246,241,243,251,252,247',
'248,547,228,229,,,249,250,,253,556,555,559,558,,,,552,,,,,232,,238,',
'234,233,,230,231,242,240,236,,237,235,239,244,245,246,241,243,251,252',
'247,248,,228,229,,,249,250,,253,,,,,,,,,,,,,232,,238,,234,233,,230,231',
'242,240,236,,237,,,,,,409,413,,,410,,,,,,,,154,155,253,151,133,134,135',
'142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132',
'153,150,149,158,145,146,140,138,130,152,131,416,420,159,,415,,,,,,,',
'154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,',
',,,260,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130,152,131',
'471,413,159,,472,,,,,,,,154,155,,151,133,134,135,142,139,141,,,136,137',
',,,156,157,143,144,,,,,,,,,,,,,,148,147,,132,153,150,149,158,145,146',
'140,138,130,152,131,633,413,159,,634,,,,,,,,154,155,,151,133,134,135',
'142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132',
'153,150,149,158,145,146,140,138,130,152,131,635,420,159,,636,,,,,,,',
'154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,',
',,,260,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130,152,131',
'664,413,159,,665,,,,,,,,154,155,,151,133,134,135,142,139,141,,,136,137',
',,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132,153,150,149,158,145',
'146,140,138,130,152,131,667,420,159,,668,,,,,,,,154,155,,151,133,134',
'135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147',
',132,153,150,149,158,145,146,140,138,130,152,131,633,413,159,,634,,',
',,,,,154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144',
',,,,,260,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130,152',
'131,635,420,159,,636,,,,,,,,154,155,,151,133,134,135,142,139,141,,,136',
'137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132,153,150,149,158',
'145,146,140,138,130,152,131,719,413,159,,720,,,,,,,,154,155,,151,133',
'134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148',
'147,,132,153,150,149,158,145,146,140,138,130,152,131,721,420,159,,722',
',,,,,,,154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143',
'144,,,,,,260,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138,130',
'152,131,724,420,159,,725,,,,,,,,154,155,,151,133,134,135,142,139,141',
',,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132,153,150,149',
'158,145,146,140,138,130,152,131,471,413,159,,472,,,,,,,,154,155,,151',
'133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,',
',148,147,,132,153,150,149,158,145,146,140,138,130,152,131,973,420,159',
',972,,,,,,,,154,155,,151,133,134,135,142,139,141,,,136,137,,,,156,157',
'143,144,,,,,,260,,,,,,,,148,147,,132,153,150,149,158,145,146,140,138',
'130,152,131,996,413,159,,997,,,,,,,,154,155,,151,133,134,135,142,139',
'141,,,136,137,,,,156,157,143,144,,,,,,260,,,,,,,,148,147,,132,153,150',
'149,158,145,146,140,138,130,152,131,998,420,159,,999,,,,,,,,154,155',
',151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,260,',
',,,,,,148,147,,132,153,150,149,158,145,146,140,138,130,152,131,,702',
'159,542,541,540,549,543,,545,,542,541,540,549,543,551,,,,,,,,551,,784',
',542,541,540,785,543,,,,,,547,,,551,,,,,547,,,559,558,,,,552,556,555',
'559,558,,,,552,547,,784,,542,541,540,785,543,556,555,559,558,,,,552',
'551,,702,,542,541,540,785,543,,545,,542,541,540,549,543,551,,,,,547',
',,551,,,,,,556,555,559,558,,,,552,547,,,,,,,,547,,,559,558,,,,552,556',
'555,559,558,,,702,552,542,541,540,549,543,702,,542,541,540,549,543,702',
'551,542,541,540,549,543,,551,,,,,,545,551,542,541,540,549,543,,,547',
',,,,,551,547,,,,559,558,,547,,552,,559,558,,,,552,,559,558,,547,734',
'552,,,,,,,556,555,559,558,,,784,552,542,541,540,785,543,702,,542,541',
'540,785,543,702,551,542,541,540,785,543,702,551,542,541,540,785,543',
'702,551,542,541,540,549,543,,551,547,,,,,,551,547,,556,555,559,558,',
'547,,552,,559,558,,547,,552,,559,558,,547,,552,,559,558,,,,552,,559',
'558,,,702,552,542,541,540,785,543,,,,,,,,,551,,,,,,,,,,,,,,,,,,,,,,547',
',,,,,,,,,,559,558,,,,552' ]
        racc_action_table = arr = ::Array.new(24831, 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 = [
'92,0,0,0,0,0,0,92,92,92,0,0,92,92,92,0,92,0,0,0,0,0,0,0,92,61,92,92',
'92,0,0,0,0,0,0,0,92,92,0,92,92,92,92,92,0,0,0,0,0,0,0,0,0,0,0,0,342',
'0,0,0,356,0,0,0,0,0,92,92,92,92,92,92,92,92,92,92,92,92,92,92,26,343',
'92,92,92,0,92,92,0,346,92,0,0,92,92,0,92,0,92,645,92,0,92,92,304,92',
'92,92,92,92,0,92,61,92,19,0,0,0,0,380,0,0,0,0,530,1,573,92,0,0,92,92',
'92,92,95,92,0,92,0,92,719,95,95,95,26,335,95,95,95,381,95,7,336,720',
'3,19,717,58,95,3,95,95,95,839,469,342,356,26,304,218,95,95,880,95,95',
'95,95,95,903,996,997,1010,998,721,565,380,645,284,24,356,343,304,284',
'219,356,24,10,58,346,469,95,95,95,95,95,95,95,95,95,95,95,95,95,95,12',
'381,95,95,95,361,95,95,218,664,95,221,361,95,95,439,95,566,95,530,95',
'573,95,95,633,95,95,95,95,95,415,95,219,95,721,719,840,415,415,415,433',
'433,634,415,415,998,415,95,720,335,95,95,95,95,335,95,336,95,839,95',
'717,336,722,717,221,717,415,415,439,415,415,415,415,415,565,664,880',
'633,721,565,665,880,903,996,997,1010,998,903,996,997,1010,998,13,585',
'585,634,415,415,415,415,415,415,415,415,415,415,415,415,415,415,589',
'589,415,415,415,664,415,16,664,15,415,566,772,415,664,659,566,722,415',
'477,415,659,415,415,433,415,415,415,415,415,840,415,416,415,22,840,665',
'675,675,416,416,416,38,478,39,416,416,415,416,325,415,415,325,415,477',
'415,15,416,646,415,350,722,15,362,326,772,37,326,416,416,362,416,416',
'416,416,416,665,585,478,665,313,908,585,908,701,665,701,701,701,38,701',
'39,375,646,589,38,351,39,416,416,416,416,416,416,416,416,416,416,416',
'416,416,416,350,14,416,416,416,600,416,350,14,40,416,45,350,416,667',
'313,350,14,416,675,416,313,416,416,106,416,416,416,416,416,602,416,416',
'416,409,350,351,339,329,17,17,329,339,351,375,375,375,416,351,635,416',
'416,351,416,701,416,635,635,635,416,363,635,635,635,352,635,667,363',
'352,600,600,351,201,667,635,635,635,635,667,600,681,409,667,681,220',
'635,635,409,635,635,635,635,635,222,602,602,899,410,899,899,899,667',
'899,376,602,364,365,724,377,584,41,41,364,365,584,635,635,635,635,635',
'635,635,635,635,635,635,635,635,635,309,309,635,635,635,366,635,635',
'378,223,635,616,366,635,635,410,635,798,635,735,635,410,635,635,735',
'635,635,635,635,635,724,635,635,635,379,334,334,724,376,376,376,382',
'724,377,377,377,724,635,227,899,635,635,635,635,636,635,259,635,616',
'635,273,636,636,636,616,724,636,636,636,798,636,46,378,378,378,274,798',
'367,46,368,636,636,636,120,367,798,368,46,120,120,636,636,277,636,636',
'636,636,636,379,379,379,217,288,296,798,382,382,382,217,547,296,547',
'547,547,289,547,291,217,292,296,636,636,636,636,636,636,636,636,636',
'636,636,636,636,636,464,686,636,636,636,293,636,636,369,299,636,686',
'547,636,636,369,636,302,636,303,636,547,636,636,857,636,636,636,636',
'636,308,636,464,636,857,371,464,464,843,464,464,310,371,843,686,686',
'314,636,315,686,636,636,636,636,318,636,323,636,327,636,33,33,33,33',
'33,33,328,857,857,33,33,330,857,77,33,340,33,33,33,33,33,33,33,927,341',
'77,927,345,33,33,33,33,33,33,33,77,347,33,520,520,689,689,428,33,33',
'33,33,33,33,33,33,33,33,33,33,391,33,33,33,397,33,33,33,33,33,428,428',
'428,428,428,428,428,428,428,428,428,297,428,428,298,399,428,428,297',
'33,402,298,33,708,708,33,33,297,405,33,298,33,428,407,428,33,428,428',
'408,428,428,428,428,428,33,428,986,986,417,33,33,33,33,300,33,33,33',
'33,425,465,300,316,33,33,435,428,56,428,316,300,33,447,33,56,56,56,448',
'316,56,56,56,698,56,698,698,698,449,698,450,475,479,465,56,56,56,465',
'465,344,465,465,494,495,56,56,344,56,56,56,56,56,498,500,505,344,509',
'445,518,826,698,826,826,826,519,826,593,593,521,698,593,593,593,533',
'56,56,56,56,56,56,56,56,56,56,56,56,56,56,446,445,56,56,56,445,445,56',
'826,534,56,536,537,56,56,538,56,826,56,545,56,553,56,56,557,56,56,56',
'56,56,560,56,446,56,562,567,446,446,354,568,868,597,868,868,868,354',
'868,56,605,504,56,56,56,56,354,56,504,56,118,118,118,118,118,118,607',
'504,576,118,118,613,617,622,118,576,118,118,118,118,118,118,118,627',
'576,637,639,644,118,118,118,118,118,118,118,651,971,118,971,971,971',
'653,971,118,118,118,118,118,118,118,118,118,118,118,118,658,118,118',
'118,661,118,118,118,118,118,443,443,443,443,443,443,443,443,443,443',
'443,668,443,443,870,663,443,443,668,118,666,870,118,668,669,118,118',
'668,670,118,870,118,443,673,443,118,443,443,674,443,443,443,443,443',
'118,443,676,679,685,118,118,118,118,700,118,118,118,118,703,710,715',
'718,118,118,203,203,203,203,203,203,118,727,118,203,203,732,751,756',
'203,774,203,203,203,203,203,203,203,6,6,6,6,6,203,203,203,203,203,203',
'203,775,777,203,287,287,287,287,287,203,203,203,203,203,203,203,203',
'203,203,203,203,778,203,203,203,779,203,203,203,203,203,444,444,444',
'444,444,444,444,444,444,444,444,725,444,444,931,781,444,444,725,203',
'782,931,203,725,783,203,203,725,784,203,931,203,444,788,444,203,444',
'444,792,444,444,444,444,444,203,444,793,797,801,203,203,203,203,804',
'203,203,203,203,805,808,810,811,203,203,226,226,226,226,226,226,203',
'812,203,226,226,813,817,818,226,820,226,226,226,226,226,226,226,492',
'492,492,492,492,226,226,226,226,226,226,226,821,828,226,828,828,828',
'823,828,226,226,226,226,226,226,226,226,226,226,226,226,825,226,226',
'226,827,226,226,226,226,226,454,454,454,454,454,454,454,937,828,454',
'454,938,830,833,937,842,454,454,938,226,846,847,226,937,850,226,226',
'938,851,226,867,226,454,871,454,226,454,454,873,454,454,454,454,454',
'226,454,901,905,906,226,226,226,226,912,226,226,226,226,917,920,921',
'922,226,226,290,290,290,290,290,290,226,923,226,290,290,925,940,943',
'290,944,290,290,290,290,290,290,290,945,946,947,949,972,290,290,290',
'290,290,290,290,973,900,290,900,900,900,974,900,290,290,290,290,290',
'290,290,290,290,290,290,290,985,290,290,290,987,290,290,290,290,290',
'455,948,988,948,948,948,989,948,900,950,990,950,950,950,939,950,455',
'455,991,290,992,939,290,995,1000,290,290,1001,1012,290,939,290,455,',
'455,290,455,455,948,455,455,,,455,290,455,950,,,290,290,290,290,,290',
'290,290,290,,,,,290,290,295,295,295,295,295,295,290,,290,295,295,,,',
'295,,295,295,295,295,295,295,295,,,,,,295,295,295,295,295,295,295,,984',
'295,984,984,984,,984,295,295,295,295,295,295,295,295,295,295,295,295',
',295,295,295,941,295,295,295,295,295,456,941,978,,,,,,984,978,941,,',
',,,456,456,978,295,,,295,,,295,295,,,295,,295,456,,456,295,456,456,',
'456,456,,,456,295,456,,,,295,295,295,295,,295,295,295,295,,,,,295,295',
'321,321,321,321,321,321,295,,295,321,321,,,,321,,321,321,321,321,321',
'321,321,,,,,,321,321,321,321,321,321,321,,,321,,,,,404,321,321,321,321',
'321,321,321,321,321,321,321,321,,321,321,321,,321,321,321,321,321,404',
'404,404,404,404,404,404,404,404,404,404,999,404,404,,,404,404,999,321',
',,321,999,,321,321,999,,321,,321,404,,404,321,404,404,,404,404,404,404',
'404,321,404,,,,321,321,321,321,,321,321,321,321,,,,,321,321,,404,420',
',,,321,,321,420,420,420,,,420,420,420,457,420,,,,,,,,,420,420,420,420',
',,457,457,,,,420,420,,420,420,420,420,420,,,,457,,457,,457,457,,457',
'457,,,457,,457,,,,,,420,420,420,420,420,420,420,420,420,420,420,420',
'420,420,,,420,420,420,,,420,,,420,,,420,420,,420,,420,,420,,420,420',
',420,420,420,420,420,,420,420,420,,,,,,,,,,,,,,420,,,420,420,420,420',
'421,420,,420,,,,421,421,421,,,421,421,421,458,421,,,,,,,,,421,421,421',
'421,,,458,458,,,,421,421,,421,421,421,421,421,,,,458,,458,,458,458,',
'458,458,,,458,,458,,,,,,421,421,421,421,421,421,421,421,421,421,421',
'421,421,421,,,421,421,421,,,421,,,421,,,421,421,,421,,421,,421,,421',
'421,,421,421,421,421,421,,421,421,421,,,,,,,,,,,,,,421,,,421,421,421',
'421,,421,,421,493,493,493,493,493,493,,,,493,493,,,,493,,493,493,493',
'493,493,493,493,,,,,,493,493,493,493,493,493,493,,,493,,,,,,493,493',
'493,493,493,493,493,493,493,493,493,493,,493,493,493,,493,493,493,493',
'493,459,459,459,459,459,459,459,,,459,459,,,,,,459,459,,493,,,493,,',
'493,493,,,493,,493,459,,459,493,459,459,,459,459,459,459,459,493,459',
',,,493,493,493,493,,493,493,493,493,,,,,493,493,561,561,561,561,561',
'561,493,,493,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,460,460,460,460,460,460,460',
',,460,460,,,,,,460,460,,561,,,561,,,561,561,,,561,,561,460,,460,561',
'460,460,,460,460,460,460,460,561,460,,,,561,561,561,561,,561,561,561',
'561,,,,,561,561,564,564,564,564,564,564,561,,561,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,461,461,461,461,461,461,461,,,461,461,,,,,,461,461,,564',
',,564,,,564,564,,,564,,564,461,,461,564,461,461,,461,461,461,461,461',
'564,461,,,,564,564,564,564,,564,564,564,564,,,,,564,564,586,586,586',
'586,586,586,564,,564,586,586,,,,586,,586,586,586,586,586,586,586,,,',
',,586,586,586,586,586,586,586,,,586,,,,,,586,586,586,586,586,586,586',
'586,586,586,586,586,,586,586,586,,586,586,586,586,586,462,462,462,462',
'462,462,462,,,462,462,,,,,,462,462,,586,,,586,,,586,586,,,586,,586,462',
',462,586,462,462,,462,462,462,462,462,586,462,,,,586,586,586,586,,586',
'586,586,586,,,,,586,586,643,643,643,643,643,643,586,,586,643,643,,,',
'643,,643,643,643,643,643,643,643,,,,,,643,643,643,643,643,643,643,,',
'643,,,,,,643,643,643,643,643,643,643,643,643,643,643,643,,643,643,643',
',643,643,643,643,643,463,463,463,463,463,463,463,,,463,463,,,,,,463',
'463,,643,,,643,,,643,643,,,643,,643,463,,463,643,463,463,,463,463,463',
'463,463,643,463,,,,643,643,643,643,,643,643,643,643,,,,,643,643,648',
'648,648,648,648,648,643,,643,648,648,,,,648,,648,648,648,648,648,648',
'648,,,,,,648,648,648,648,648,648,648,,,648,,,,,,648,648,648,648,648',
'648,648,648,648,648,648,648,,648,648,648,,648,648,648,648,648,466,466',
'466,466,466,466,466,,,466,466,,,,,,466,466,,648,,,648,,,648,648,,,648',
',648,466,,466,648,466,466,,466,466,466,466,466,648,466,,,,648,648,648',
'648,,648,648,648,648,,,,,648,648,649,649,649,649,649,649,648,,648,649',
'649,,,,649,,649,649,649,649,649,649,649,,,,,,649,649,649,649,649,649',
'649,,,649,,,,,,649,649,649,649,649,649,649,649,649,649,649,649,,649',
'649,649,,649,649,649,649,649,467,467,467,467,467,467,467,467,,467,467',
',,,,,467,467,,649,,,649,,,649,649,,,649,,649,467,,467,649,467,467,,467',
'467,467,467,467,649,467,,,,649,649,649,649,,649,649,649,649,,,,,649',
'649,683,683,683,683,683,683,649,,649,683,683,,,,683,,683,683,683,683',
'683,683,683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,683,683,683',
'683,683,683,683,683,683,683,683,683,,683,683,683,,683,683,683,683,683',
'451,,,,,,,,,,,,,,,,451,451,,683,,,683,,,683,683,,,683,,683,451,,451',
'683,451,451,,451,451,,,,683,,,,,683,683,683,683,,683,683,683,683,,,',
',683,683,684,684,684,684,684,684,683,,683,684,684,,,,684,,684,684,684',
'684,684,684,684,,,,,,684,684,684,684,684,684,684,,,684,,,,,,684,684',
'684,684,684,684,684,684,684,684,684,684,,684,684,684,,684,684,684,684',
'684,452,,,,,,,,,,,,,,,,452,452,,684,,,684,,,684,684,,,684,,684,452,',
'452,684,452,452,,452,452,,,,684,,,,,684,684,684,684,,684,684,684,684',
',,,,684,684,728,728,728,728,728,728,684,,684,728,728,,,,728,,728,728',
'728,728,728,728,728,,,,,,728,728,728,728,728,728,728,,,728,,,,,,728',
'728,728,728,728,728,728,728,728,728,728,728,,728,728,728,,728,728,728',
'728,728,453,,,,,,,,,,,,,,,,453,453,,728,,,728,,,728,728,,,728,,728,453',
',,728,453,453,,453,453,,,,728,,,,,728,728,728,728,,728,728,728,728,',
',,,728,728,733,733,733,733,733,733,728,,728,733,733,,,,733,,733,733',
'733,733,733,733,733,,,,,,733,733,733,733,733,733,733,,,733,,,,,,733',
'733,733,733,733,733,733,733,733,733,733,733,,733,733,733,,733,733,733',
'733,733,,,,,,,,,,,,,,,,,,,,733,,,733,,,733,733,,,733,,733,,,,733,,,',
',,,,,733,,,,,733,733,733,733,,733,733,733,733,,,,,733,733,743,743,743',
'743,743,743,733,,733,743,743,,,,743,,743,743,743,743,743,743,743,,,',
',,743,743,743,743,743,743,743,,,743,,,,,,743,743,743,743,743,743,743',
'743,743,743,743,743,,743,743,743,,743,743,743,743,743,,,,,,,,,,,,,,',
',,,,,743,,,743,,,743,743,,,743,,743,,,,743,,,,,,,,,743,,,,,743,743,743',
'743,,743,743,743,743,,,,,743,743,791,791,791,791,791,791,743,,743,791',
'791,,,,791,,791,791,791,791,791,791,791,,,,,,791,791,791,791,791,791',
'791,,,791,,,,,,791,791,791,791,791,791,791,791,791,791,791,791,,791',
'791,791,,791,791,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791',
',,791,,791,,,,791,,,,,,,,,791,,,,,791,791,791,791,,791,791,791,791,',
',,,791,791,803,803,803,803,803,803,791,,791,803,803,,,,803,,803,803',
'803,803,803,803,803,,,,,,803,803,803,803,803,803,803,,,803,,,,,,803',
'803,803,803,803,803,803,803,803,803,803,803,,803,803,803,,803,803,803',
'803,803,,,,,,,,,,,,,,,,,,,,803,,,803,,,803,803,,,803,,803,,,,803,,,',
',,,,,803,,,,,803,803,803,803,,803,803,803,803,,,,,803,803,834,834,834',
'834,834,834,803,,803,834,834,,,,834,,834,834,834,834,834,834,834,,,',
',,834,834,834,834,834,834,834,,,834,,,,,,834,834,834,834,834,834,834',
'834,834,834,834,834,,834,834,834,,834,834,834,834,834,,,,,,,,,,,,,,',
',,,,,834,,,834,,,834,834,,,834,,834,,,,834,,,,,,,,,834,,,,,834,834,834',
'834,,834,834,834,834,,,,,834,834,835,835,835,835,835,835,834,,834,835',
'835,,,,835,,835,835,835,835,835,835,835,,,,,,835,835,835,835,835,835',
'835,,,835,,,,,,835,835,835,835,835,835,835,835,835,835,835,835,,835',
'835,835,,835,835,835,835,835,,,,,,,,,,,,,,,,,,,,835,,,835,,,835,835',
',,835,,835,,,,835,,,,,,,,,835,,,,,835,835,835,835,,835,835,835,835,',
',,,835,835,838,838,838,838,838,838,835,,835,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,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,838,838,,,,,838,838,844,844,844',
'844,844,844,838,,838,844,844,,,,844,,844,844,844,844,844,844,844,,,',
',,844,844,844,844,844,844,844,,,844,,,,,,844,844,844,844,844,844,844',
'844,844,844,844,844,,844,844,844,,844,844,844,844,844,,,,,,,,,,,,,,',
',,,,,844,,,844,,,844,844,,,844,,844,,,,844,,,,,,,,,844,,,,,844,844,844',
'844,,844,844,844,844,,,,,844,844,877,877,877,877,877,877,844,,844,877',
'877,,,,877,,877,877,877,877,877,877,877,,,,,,877,877,877,877,877,877',
'877,,,877,,,,,,877,877,877,877,877,877,877,877,877,877,877,877,,877',
'877,877,,877,877,877,877,877,,,,,,,,,,,,,,,,,,,,877,,,877,,,877,877',
',,877,,877,,,,877,,,,,,,,,877,,,,,877,877,877,877,,877,877,877,877,',
',,,877,877,936,936,936,936,936,936,877,,877,936,936,,,,936,,936,936',
'936,936,936,936,936,,,,,,936,936,936,936,936,936,936,,,936,,,,,,936',
'936,936,936,936,936,936,936,936,936,936,936,,936,936,936,,936,936,936',
'936,936,,,,,,,,,,,,,,,,,,,,936,,,936,,,936,936,,,936,,936,,,,936,,,',
',,,,,936,,,,,936,936,936,936,,936,936,936,936,,,,,936,936,951,951,951',
'951,951,951,936,,936,951,951,,,,951,,951,951,951,951,951,951,951,,,',
',,951,951,951,951,951,951,951,,,951,,,,,,951,951,951,951,951,951,951',
'951,951,951,951,951,,951,951,951,,951,951,951,951,951,,,,,,,,,,,,,,',
',,,,,951,,,951,,,951,951,,,951,,951,,,,951,,,,,,,,,951,,,,,951,951,951',
'951,,951,951,951,951,,,,,951,951,957,957,957,957,957,957,951,,951,957',
'957,,,,957,,957,957,957,957,957,957,957,,,,,,957,957,957,957,957,957',
'957,,,957,,,,,,957,957,957,957,957,957,957,957,957,957,957,957,,957',
'957,957,,957,957,957,957,957,,,,,,,,,,,,,,,,,,,,957,,,957,,,957,957',
',,957,,957,,,,957,,,,,,,,,957,,,,,957,957,957,957,,957,957,957,957,',
',,,957,957,959,959,959,959,959,959,957,,957,959,959,,,,959,,959,959',
'959,959,959,959,959,,,,,,959,959,959,959,959,959,959,,,959,,,,,,959',
'959,959,959,959,959,959,959,959,959,959,959,,959,959,959,,959,959,959',
'959,959,,,,,,,,,,,,,,,,,,,,959,,,959,,,959,959,,,959,,959,,,,959,,,',
',,,,,959,,,,,959,959,959,959,,959,959,959,959,,,,,959,959,,5,5,5,5,5',
'959,,959,5,5,,,,5,,5,5,5,5,5,5,5,,,,,,5,5,5,5,5,5,5,,,5,,,,,,5,5,5,5',
'5,5,5,5,5,5,5,5,,5,5,5,,5,5,5,5,5,,,,,,,,,,,,,,,,,,,,5,,,5,,,5,5,,,5',
',5,,,,5,,,,,,,,,5,,,,,5,5,5,5,,5,5,5,5,,,,,5,5,,20,20,20,,20,5,,5,20',
'20,,,,20,,20,20,20,20,20,20,20,,,,,,20,20,20,20,20,20,20,,,20,,,,,,',
'20,,,20,20,20,20,20,20,20,20,,20,20,20,,20,20,20,20,20,,,,,,,,,,,,,',
',,,,,,20,,,20,,,20,20,,,20,,,,,,20,,,,,,,,,20,,,,,20,20,20,20,,20,20',
'20,20,,,,,20,20,,29,29,29,,29,20,,20,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,,30',
'30,30,,30,29,,29,30,30,,,,30,,30,30,30,30,30,30,30,,,,,,30,30,30,30',
'30,30,30,,,30,,,,,,,30,,,30,30,30,30,30,30,30,30,30,30,30,30,,30,30',
'30,30,30,,,,,,,,,,,,,,,,,,,,30,,,30,,,30,30,,,30,,30,,30,,30,,,30,,',
',,,30,,,,,30,30,30,30,,30,30,30,30,,,,,30,30,,31,31,31,,31,30,,30,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,,31,,,31,,,,,,31,,,,,31,31,31,31',
',31,31,31,31,,,,,31,31,,34,34,34,,34,31,,31,34,34,,,,34,,34,34,34,34',
'34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34',
'34,34,,34,34,34,,34,34,,,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34',
',34,,,,,,,,,,,,,,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,,35,35,35,,35',
'34,,34,35,35,,,,35,,35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,',
',35,,,,,638,,35,,,35,35,35,35,35,35,35,35,,35,35,35,,35,35,,,35,638',
'638,638,638,638,638,638,638,638,638,638,,638,638,,,638,638,,35,,,35',
',,35,35,,,35,,,638,,638,,638,638,,638,638,638,638,638,,638,,,,35,35',
'35,35,,35,35,35,35,,,,,35,35,,638,,35,,,35,,35,42,42,42,,42,,,,42,42',
',,,42,,42,42,42,42,42,42,42,,,,,,42,42,42,42,42,42,42,,,42,,,,,,,42',
',,42,42,42,42,42,42,42,42,,42,42,42,,42,42,42,42,42,,,,,,,,,,,,,,,,',
',,,42,,,42,,,42,42,,,42,,,,,,42,,,,,,,,,42,,,,,42,42,42,42,,42,42,42',
'42,,,,,42,42,,43,43,43,,43,42,,42,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,,44,44,44,,44,43,',
'43,44,44,,,,44,,44,44,44,44,44,44,44,,,,,,44,44,44,44,44,44,44,,,44',
',,,,,,44,,,44,44,44,44,44,44,44,44,,44,44,44,,44,44,44,44,44,,,,,,,',
',,,,,,,,,,,,44,,,44,,,44,44,,,44,,,,,,44,,,,,,,,,44,,,,,44,44,44,44',
',44,44,44,44,,,,,44,44,,59,59,59,,59,44,,44,59,59,,,,59,,59,59,59,59',
'59,59,59,,,,,,59,59,59,59,59,59,59,,,59,,,,,,,59,,,59,59,59,59,59,59',
'59,59,59,59,59,59,,59,59,59,59,59,,,,,,,,,,,,,,,,,,,,59,,,59,,,59,59',
',,59,,59,,,,59,,,59,,,,,,59,,,,,59,59,59,59,,59,59,59,59,,,,,59,59,',
'60,60,60,,60,59,,59,60,60,,,,60,,60,60,60,60,60,60,60,,,,,,60,60,60',
'60,60,60,60,,,60,,,,,,,60,,,60,60,60,60,60,60,60,60,60,60,60,60,,60',
'60,60,60,60,,,,,,,,,,,,,,,,,,,,60,,,60,,,60,60,,,60,,,,,,60,,,60,,,',
',,60,,,,,60,60,60,60,,60,60,60,60,,,,,60,60,,63,63,63,,63,60,,60,63',
'63,,,,63,,63,63,63,63,63,63,63,,,,,,63,63,63,63,63,63,63,,,63,,,,,,',
'63,,,63,63,63,63,63,63,63,63,,63,63,63,,63,63,63,63,63,,,,,,,,,,,,,',
',,,,,,63,,,63,,,63,63,,,63,,,,,,63,,,,,,,,,63,,,,,63,63,63,63,,63,63',
'63,63,,,,,63,63,,64,64,64,,64,63,,63,64,64,,,,64,,64,64,64,64,64,64',
'64,,,,,,64,64,64,64,64,64,64,,,64,,,,,,,64,,,64,64,64,64,64,64,64,64',
',64,64,64,,64,64,64,64,64,,,,,,,,,,,,,,,,,,,,64,,,64,,,64,64,,,64,,',
',,,64,,,,,,,,,64,,,,,64,64,64,64,,64,64,64,64,,,,,64,64,,67,67,67,,67',
'64,,64,67,67,,,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,',
',67,,,,,,,67,,,67,67,67,67,67,67,67,67,,67,67,67,,67,67,67,67,67,21',
'21,21,21,21,21,21,21,21,21,21,,21,21,,,21,21,,67,,,67,,,67,67,,,67,',
',21,,21,67,21,21,,21,21,21,21,21,67,21,,,,67,67,67,67,,67,67,67,67,',
',,,67,67,67,21,,,,67,67,,67,68,68,68,,68,,,,68,68,,,,68,,68,68,68,68',
'68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68,68',
'68,68,,68,68,68,,68,68,,,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68',
',68,,,,,,,,,,,,,,,,,,68,68,68,68,,68,68,68,68,,,,,68,68,,69,69,69,,69',
'68,,68,69,69,,,,69,,69,69,69,69,69,69,69,,,,,,69,69,69,69,69,69,69,',
',69,,,,,,,69,,,69,69,69,69,69,69,69,69,,69,69,69,,69,69,,,69,,,,,,,',
',,,,,,,,,69,,,69,,,69,,,69,69,,,69,,,,,,,,,,,,,,,,,,,,69,69,69,69,,69',
'69,69,69,,,,,69,69,,70,70,70,,70,69,,69,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,,108,108,108,108',
'108,70,,70,108,108,,,,108,,108,108,108,108,108,108,108,,,,,,108,108',
'108,108,108,108,108,,,108,,,,,,108,108,108,108,108,108,108,108,108,108',
'108,108,,108,108,108,,108,108,108,108,108,271,271,271,271,271,271,271',
'271,271,271,271,,271,271,,,271,271,,108,,,108,,,108,108,,,108,,108,271',
',271,108,271,271,,271,271,271,271,271,108,271,,,,108,108,108,108,,108',
'108,108,108,,,,,108,108,,271,,,,108,108,,108,113,113,113,,113,,,,113',
'113,,,,113,,113,113,113,113,113,113,113,,,,,,113,113,113,113,113,113',
'113,,,113,,,,,,,113,,,113,113,113,113,113,113,113,113,,113,113,113,',
'113,113,113,113,113,,,,,,,,,,,,,,,,,,,,113,,,113,,,113,113,,,113,,,',
',,113,,,,,,,,,113,,,,,113,113,113,113,,113,113,113,113,,,,,113,113,',
'114,114,114,,114,113,,113,114,114,,,,114,,114,114,114,114,114,114,114',
',,,,,114,114,114,114,114,114,114,,,114,,,,,,,114,,,114,114,114,114,114',
'114,114,114,,114,114,114,,114,114,114,114,114,,,,,,,,,,,,,,,,,,,,114',
',,114,,,114,114,,,114,,,,,,114,,,,,,,,,114,,,,,114,114,114,114,,114',
'114,114,114,,,,,114,114,,115,115,115,,115,114,,114,115,115,,,,115,,115',
'115,115,115,115,115,115,,,,,,115,115,115,115,115,115,115,,,115,,,,,',
',115,,,115,115,115,115,115,115,115,115,,115,115,115,,115,115,115,115',
'115,,,,,,,,,,,,,,,,,,,,115,,,115,,,115,115,,,115,,,,,,115,,,,,,,,,115',
',,,,115,115,115,115,,115,115,115,115,,,,,115,115,,116,116,116,,116,115',
',115,116,116,,,,116,,116,116,116,116,116,116,116,,,,,,116,116,116,116',
'116,116,116,,,116,,,,,,,116,,,116,116,116,116,116,116,116,116,,116,116',
'116,,116,116,116,116,116,,,,,,,,,,,,,,,,,,,,116,,,116,,,116,116,,,116',
',,,,,116,,,,,,,,,116,,,,,116,116,116,116,,116,116,116,116,,,,,116,116',
',117,117,117,117,117,116,,116,117,117,,,,117,,117,117,117,117,117,117',
'117,,,,,,117,117,117,117,117,117,117,,,117,,,,,,117,117,,117,117,117',
'117,117,117,117,117,117,,117,117,117,,117,117,117,117,117,,,,,,,,,,',
',,,,,,,,,117,,,117,,,117,117,,,117,,117,,,,117,,,,,,,,,117,,,,,117,117',
'117,117,,117,117,117,117,,,,,117,117,,204,204,204,,204,117,,117,204',
'204,,,,204,,204,204,204,204,204,204,204,,,,,,204,204,204,204,204,204',
'204,,,204,,,,,,,204,,,204,204,204,204,204,204,204,204,,204,204,204,',
'204,204,204,204,204,,,,,,,,,,,,,,,,,,,,204,,,204,,,204,204,,,204,,204',
',,,204,,,,,,,,,204,,,,,204,204,204,204,,204,204,204,204,,,,,204,204',
',205,205,205,,205,204,,204,205,205,,,,205,,205,205,205,205,205,205,205',
',,,,,205,205,205,205,205,205,205,,,205,,,,,,,205,,,205,205,205,205,205',
'205,205,205,,205,205,205,,205,205,205,205,205,,,,,,,,,,,,,,,,,,,,205',
',,205,,,205,205,,,205,,,,,,205,,,,,,,,,205,,,,,205,205,205,205,,205',
'205,205,205,,,,,205,205,,206,206,206,,206,205,,205,206,206,,,,206,,206',
'206,206,206,206,206,206,,,,,,206,206,206,206,206,206,206,,,206,,,,,',
',206,,,206,206,206,206,206,206,206,206,206,206,206,206,,206,206,206',
'206,206,,,,,,,,,,,,,,,,,,,,206,,,206,,,206,206,,,206,,206,,206,,206',
',,206,,,,,,206,,,,,206,206,206,206,,206,206,206,206,,,,,206,206,,209',
'209,209,,209,206,,206,209,209,,,,209,,209,209,209,209,209,209,209,,',
',,,209,209,209,209,209,209,209,,,209,,,,,,,209,,,209,209,209,209,209',
'209,209,209,,209,209,209,,209,209,209,209,209,,,,,,,,,,,,,,,,,,,,209',
',,209,,,209,209,,,209,,,,,,209,,,,,,,,,209,,,,,209,209,209,209,,209',
'209,209,209,,,,,209,209,,210,210,210,,210,209,,209,210,210,,,,210,,210',
'210,210,210,210,210,210,,,,,,210,210,210,210,210,210,210,,,210,,,,,',
',210,,,210,210,210,210,210,210,210,210,,210,210,210,,210,210,210,210',
'210,,,,,,,,,,,,,,,,,,,,210,,,210,,,210,210,,,210,,210,,,,210,,,,,,,',
',210,,,,,210,210,210,210,,210,210,210,210,,,,,210,210,,211,211,211,',
'211,210,,210,211,211,,,,211,,211,211,211,211,211,211,211,,,,,,211,211',
'211,211,211,211,211,,,211,,,,,,,211,,,211,211,211,211,211,211,211,211',
',211,211,211,,211,211,211,211,211,,,,,,,,,,,,,,,,,,,,211,,,211,,,211',
'211,,,211,,,,,,211,,,,,,,,,211,,,,,211,211,211,211,,211,211,211,211',
',,,,211,211,,212,212,212,,212,211,,211,212,212,,,,212,,212,212,212,212',
'212,212,212,,,,,,212,212,212,212,212,212,212,,,212,,,,,,,212,,,212,212',
'212,212,212,212,212,212,,212,212,212,,212,212,212,212,212,,,,,,,,,,',
',,,,,,,,,212,,,212,,,212,212,,,212,,,,,,212,,,,,,,,,212,,,,,212,212',
'212,212,,212,212,212,212,,,,,212,212,,213,213,213,,213,212,,212,213',
'213,,,,213,,213,213,213,213,213,213,213,,,,,,213,213,213,213,213,213',
'213,,,213,,,,,,,213,,,213,213,213,213,213,213,213,213,,213,213,213,',
'213,213,213,213,213,,,,,,,,,,,,,,,,,,,,213,,,213,,,213,213,,,213,,,',
',,213,,,,,,,,,213,,,,,213,213,213,213,,213,213,213,213,,,,,213,213,',
'214,214,214,,214,213,,213,214,214,,,,214,,214,214,214,214,214,214,214',
',,,,,214,214,214,214,214,214,214,,,214,,,,,,,214,,,214,214,214,214,214',
'214,214,214,,214,214,214,,214,214,214,214,214,,,,,,,,,,,,,,,,,,,,214',
',,214,,,214,214,,,214,,,,,,214,,,,,,,,,214,,,,,214,214,214,214,,214',
'214,214,214,,,,,214,214,214,225,225,225,,225,214,,214,225,225,,,,225',
',225,225,225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225',
',,,,,,225,,,225,225,225,225,225,225,225,225,,225,225,225,,225,225,225',
'225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,,,,,225,,,,,,',
',,225,,,,,225,225,225,225,,225,225,225,225,,,,,225,225,,228,228,228',
',228,225,,225,228,228,,,,228,,228,228,228,228,228,228,228,,,,,,228,228',
'228,228,228,228,228,,,228,,,,,,,228,,,228,228,228,228,228,228,228,228',
',228,228,228,,228,228,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228,,,228',
'228,,,228,,,,,,228,,,,,,,,,228,,,,,228,228,228,228,,228,228,228,228',
',,,,228,228,,229,229,229,,229,228,,228,229,229,,,,229,,229,229,229,229',
'229,229,229,,,,,,229,229,229,229,229,229,229,,,229,,,,,,,229,,,229,229',
'229,229,229,229,229,229,,229,229,229,,229,229,229,229,229,,,,,,,,,,',
',,,,,,,,,229,,,229,,,229,229,,,229,,,,,,229,,,,,,,,,229,,,,,229,229',
'229,229,,229,229,229,229,,,,,229,229,,230,230,230,,230,229,,229,230',
'230,,,,230,,230,230,230,230,230,230,230,,,,,,230,230,230,230,230,230',
'230,,,230,,,,,,,230,,,230,230,230,230,230,230,230,230,,230,230,230,',
'230,230,230,230,230,,,,,,,,,,,,,,,,,,,,230,,,230,,,230,230,,,230,,,',
',,230,,,,,,,,,230,,,,,230,230,230,230,,230,230,230,230,,,,,230,230,',
'231,231,231,,231,230,,230,231,231,,,,231,,231,231,231,231,231,231,231',
',,,,,231,231,231,231,231,231,231,,,231,,,,,,,231,,,231,231,231,231,231',
'231,231,231,,231,231,231,,231,231,231,231,231,,,,,,,,,,,,,,,,,,,,231',
',,231,,,231,231,,,231,,,,,,231,,,,,,,,,231,,,,,231,231,231,231,,231',
'231,231,231,,,,,231,231,,232,232,232,,232,231,,231,232,232,,,,232,,232',
'232,232,232,232,232,232,,,,,,232,232,232,232,232,232,232,,,232,,,,,',
',232,,,232,232,232,232,232,232,232,232,,232,232,232,,232,232,232,232',
'232,,,,,,,,,,,,,,,,,,,,232,,,232,,,232,232,,,232,,,,,,232,,,,,,,,,232',
',,,,232,232,232,232,,232,232,232,232,,,,,232,232,,233,233,233,,233,232',
',232,233,233,,,,233,,233,233,233,233,233,233,233,,,,,,233,233,233,233',
'233,233,233,,,233,,,,,,,233,,,233,233,233,233,233,233,233,233,,233,233',
'233,,233,233,233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233',
',,,,,233,,,,,,,,,233,,,,,233,233,233,233,,233,233,233,233,,,,,233,233',
',234,234,234,,234,233,,233,234,234,,,,234,,234,234,234,234,234,234,234',
',,,,,234,234,234,234,234,234,234,,,234,,,,,,,234,,,234,234,234,234,234',
'234,234,234,,234,234,234,,234,234,234,234,234,,,,,,,,,,,,,,,,,,,,234',
',,234,,,234,234,,,234,,,,,,234,,,,,,,,,234,,,,,234,234,234,234,,234',
'234,234,234,,,,,234,234,,235,235,235,,235,234,,234,235,235,,,,235,,235',
'235,235,235,235,235,235,,,,,,235,235,235,235,235,235,235,,,235,,,,,',
',235,,,235,235,235,235,235,235,235,235,,235,235,235,,235,235,235,235',
'235,,,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235,,,,,,235,,,,,,,,,235',
',,,,235,235,235,235,,235,235,235,235,,,,,235,235,,236,236,236,,236,235',
',235,236,236,,,,236,,236,236,236,236,236,236,236,,,,,,236,236,236,236',
'236,236,236,,,236,,,,,,,236,,,236,236,236,236,236,236,236,236,,236,236',
'236,,236,236,236,236,236,,,,,,,,,,,,,,,,,,,,236,,,236,,,236,236,,,236',
',,,,,236,,,,,,,,,236,,,,,236,236,236,236,,236,236,236,236,,,,,236,236',
',237,237,237,,237,236,,236,237,237,,,,237,,237,237,237,237,237,237,237',
',,,,,237,237,237,237,237,237,237,,,237,,,,,,,237,,,237,237,237,237,237',
'237,237,237,,237,237,237,,237,237,237,237,237,,,,,,,,,,,,,,,,,,,,237',
',,237,,,237,237,,,237,,,,,,237,,,,,,,,,237,,,,,237,237,237,237,,237',
'237,237,237,,,,,237,237,,238,238,238,,238,237,,237,238,238,,,,238,,238',
'238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,',
',238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,238,238',
'238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238',
',,,,238,238,238,238,,238,238,238,238,,,,,238,238,,239,239,239,,239,238',
',238,239,239,,,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239',
'239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239',
'239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239',
',,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239',
',240,240,240,,240,239,,239,240,240,,,,240,,240,240,240,240,240,240,240',
',,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240',
'240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,,,,,,,240',
',,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240',
'240,240,240,,,,,240,240,,241,241,241,,241,240,,240,241,241,,,,241,,241',
'241,241,241,241,241,241,,,,,,241,241,241,241,241,241,241,,,241,,,,,',
',241,,,241,241,241,241,241,241,241,241,,241,241,241,,241,241,241,241',
'241,,,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,,,,,,241,,,,,,,,,241',
',,,,241,241,241,241,,241,241,241,241,,,,,241,241,,242,242,242,,242,241',
',241,242,242,,,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242',
'242,242,242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242',
'242,,242,242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242',
',,,,,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242',
',243,243,243,,243,242,,242,243,243,,,,243,,243,243,243,243,243,243,243',
',,,,,243,243,243,243,243,243,243,,,243,,,,,,,243,,,243,243,243,243,243',
'243,243,243,,243,243,243,,243,243,243,243,243,,,,,,,,,,,,,,,,,,,,243',
',,243,,,243,243,,,243,,,,,,243,,,,,,,,,243,,,,,243,243,243,243,,243',
'243,243,243,,,,,243,243,,244,244,244,,244,243,,243,244,244,,,,244,,244',
'244,244,244,244,244,244,,,,,,244,244,244,244,244,244,244,,,244,,,,,',
',244,,,244,244,244,244,244,244,244,244,,244,244,244,,244,244,244,244',
'244,,,,,,,,,,,,,,,,,,,,244,,,244,,,244,244,,,244,,,,,,244,,,,,,,,,244',
',,,,244,244,244,244,,244,244,244,244,,,,,244,244,,245,245,245,,245,244',
',244,245,245,,,,245,,245,245,245,245,245,245,245,,,,,,245,245,245,245',
'245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245,245,245,,245,245',
'245,,245,245,245,245,245,,,,,,,,,,,,,,,,,,,,245,,,245,,,245,245,,,245',
',,,,,245,,,,,,,,,245,,,,,245,245,245,245,,245,245,245,245,,,,,245,245',
',246,246,246,,246,245,,245,246,246,,,,246,,246,246,246,246,246,246,246',
',,,,,246,246,246,246,246,246,246,,,246,,,,,,,246,,,246,246,246,246,246',
'246,246,246,,246,246,246,,246,246,246,246,246,,,,,,,,,,,,,,,,,,,,246',
',,246,,,246,246,,,246,,,,,,246,,,,,,,,,246,,,,,246,246,246,246,,246',
'246,246,246,,,,,246,246,,247,247,247,,247,246,,246,247,247,,,,247,,247',
'247,247,247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,',
',247,,,247,247,247,247,247,247,247,247,,247,247,247,,247,247,247,247',
'247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247',
',,,,247,247,247,247,,247,247,247,247,,,,,247,247,,248,248,248,,248,247',
',247,248,248,,,,248,,248,248,248,248,248,248,248,,,,,,248,248,248,248',
'248,248,248,,,248,,,,,,,248,,,248,248,248,248,248,248,248,248,,248,248',
'248,,248,248,248,248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248,248,,,248',
',,,,,248,,,,,,,,,248,,,,,248,248,248,248,,248,248,248,248,,,,,248,248',
',249,249,249,,249,248,,248,249,249,,,,249,,249,249,249,249,249,249,249',
',,,,,249,249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249,249,249',
'249,249,249,,249,249,249,,249,249,249,249,249,,,,,,,,,,,,,,,,,,,,249',
',,249,,,249,249,,,249,,,,,,249,,,,,,,,,249,,,,,249,249,249,249,,249',
'249,249,249,,,,,249,249,,250,250,250,,250,249,,249,250,250,,,,250,,250',
'250,250,250,250,250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,',
',250,,,250,250,250,250,250,250,250,250,,250,250,250,,250,250,250,250',
'250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,,250',
',,,,250,250,250,250,,250,250,250,250,,,,,250,250,,251,251,251,,251,250',
',250,251,251,,,,251,,251,251,251,251,251,251,251,,,,,,251,251,251,251',
'251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251,251,,251,251',
'251,,251,251,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251',
',,,,,251,,,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251',
',252,252,252,,252,251,,251,252,252,,,,252,,252,252,252,252,252,252,252',
',,,,,252,252,252,252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252',
'252,252,252,,252,252,252,,252,252,252,252,252,,,,,,,,,,,,,,,,,,,,252',
',,252,,,252,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252,252,,252',
'252,252,252,,,,,252,252,,253,253,253,,253,252,,252,253,253,,,,253,,253',
'253,253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,',
',253,,,253,253,253,253,253,253,253,253,,253,253,253,,253,253,253,253',
'253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,,253',
',,,,253,253,253,253,,253,253,253,253,,,,,253,253,,260,260,260,,260,253',
',253,260,260,,,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260',
'260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,260,260',
'260,260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260',
',,260,,260,,260,,260,,,260,,,,,,260,,,,,260,260,260,260,,260,260,260',
'260,,,,,260,260,,261,261,261,,261,260,,260,261,261,,,,261,,261,261,261',
'261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261',
'261,261,261,261,261,261,261,261,261,261,261,,261,261,261,261,261,,,',
',,,,,,,,,,,,,,,,261,,,261,,,261,261,,,261,,261,,261,,261,,,261,,,,,',
'261,,,,,261,261,261,261,,261,261,261,261,,,,,261,261,,269,269,269,,269',
'261,,261,269,269,,,,269,,269,269,269,269,269,269,269,,,,,,269,269,269',
'269,269,269,269,,,269,,,,,,,269,,,269,269,269,269,269,269,269,269,269',
'269,269,269,,269,269,269,269,269,,,,,,,,,,,,,,,,,,,,269,,,269,,,269',
'269,,,269,,269,,269,,269,,,269,,,,,,269,,,,,269,269,269,269,,269,269',
'269,269,,,,,269,269,269,276,276,276,,276,269,,269,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,,,,,276,276,,278,278,278,,278,276',
',276,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,,,,,278,278',
',280,280,280,,280,278,,278,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,,,,,280,280,,281,281,281,,281,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,,,,,281,281,,286,286,286,286,286',
'281,,281,286,286,,,,286,,286,286,286,286,286,286,286,,,,,,286,286,286',
'286,286,286,286,,,286,,,,,,286,286,,286,286,286,286,286,286,286,286',
'286,,286,286,286,,286,286,286,286,286,,,,,,,,,,,,,,,,,,,,286,,,286,',
',286,286,,,286,,286,,,,286,,,,,,,,,286,,,,,286,286,286,286,,286,286',
'286,286,,,,,286,286,,294,294,294,,294,286,,286,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,423,423',
'423,423,423,423,423,423,423,423,423,,423,423,,,423,423,,294,,,294,,',
'294,294,,,294,,,423,,423,,423,423,,423,423,423,423,423,,423,,,,294,294',
'294,294,,294,294,294,294,,,,,294,294,,423,,294,,,294,,294,311,311,311',
',311,,,,311,311,,,,311,,311,311,311,311,311,311,311,,,,,,311,311,311',
'311,311,311,311,,,311,,,,,,,311,,,311,311,311,311,311,311,311,311,,311',
'311,311,,311,311,,,311,,,,,,,,,,,,,,,,,,,,311,,,311,,,311,311,,,311',
',,,,,,,,,,,,,,,,,,,311,311,311,311,,311,311,311,311,,,,,311,311,,320',
'320,320,,320,311,,311,320,320,,,,320,,320,320,320,320,320,320,320,,',
',,,320,320,320,320,320,320,320,,,320,,,,,,,320,,,320,320,320,320,320',
'320,320,320,,320,320,320,,320,320,320,320,320,,,,,,,,,,,,,,,,,,,,320',
',,320,320,,320,320,,,320,,,,,,320,,,,,,,,,320,,,,,320,320,320,320,,320',
'320,320,320,,,,,320,320,,322,322,322,,322,320,,320,322,322,,,,322,,322',
'322,322,322,322,322,322,,,,,,322,322,322,322,322,322,322,,,322,,,,,',
',322,,,322,322,322,322,322,322,322,322,,322,322,322,,322,322,322,322',
'322,,,,,,,,,,,,,,,,,,,,322,,,322,,,322,322,,,322,,,,,,322,,,,,,,,,322',
',,,,322,322,322,322,,322,322,322,322,,,,,322,322,,337,337,337,,337,322',
',322,337,337,,,,337,,337,337,337,337,337,337,337,,,,,,337,337,337,337',
'337,337,337,,,337,,,,,,,337,,,337,337,337,337,337,337,337,337,,337,337',
'337,,337,337,337,337,337,,,,,,,,,,,,,,,,,,,,337,,,337,,,337,337,,,337',
',,,,,337,,,,,,,,,337,,,,,337,337,337,337,,337,337,337,337,,,,,337,337',
',338,338,338,,338,337,,337,338,338,,,,338,,338,338,338,338,338,338,338',
',,,,,338,338,338,338,338,338,338,,,338,,,,,,,338,,,338,338,338,338,338',
'338,338,338,,338,338,338,,338,338,338,338,338,,,,,,,,,,,,,,,,,,,,338',
',,338,,,338,338,,,338,,,,,,338,,,,,,,,,338,,,,,338,338,338,338,,338',
'338,338,338,,,,,338,338,,357,357,357,,357,338,,338,357,357,,,,357,,357',
'357,357,357,357,357,357,,,,,,357,357,357,357,357,357,357,,,357,,,,,',
',357,,,357,357,357,357,357,357,357,357,,357,357,357,,357,357,357,357',
'357,,,,,,,,,,,,,,,,,,,,357,,,357,,,357,357,,,357,,,,,,357,,,,,,,,,357',
',,,,357,357,357,357,,357,357,357,357,,,,,357,357,,373,373,373,,373,357',
',357,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373',
'373,373,373,,,373,,,,,,,373,,,373,373,373,373,373,373,373,373,,373,373',
'373,,373,373,373,373,373,,,,,,,,,,,,,,,,,,,,373,,,373,,,373,373,,,373',
',,,,,373,,,,,,,,,373,,,,,373,373,373,373,,373,373,373,373,,,,,373,373',
',401,401,401,,401,373,,373,401,401,,,,401,,401,401,401,401,401,401,401',
',,,,,401,401,401,401,401,401,401,,,401,,,,,,,401,,,401,401,401,401,401',
'401,401,401,,401,401,401,,401,401,401,401,401,,,,,,,,,,,,,,,,,,,,401',
',,401,,,401,401,,,401,,,,,,401,,,,,,,,,401,,,,,401,401,401,401,,401',
'401,401,401,,,,,401,401,,438,438,438,,438,401,,401,438,438,,,,438,,438',
'438,438,438,438,438,438,,,,,,438,438,438,438,438,438,438,,,438,,,,,',
',438,,,438,438,438,438,438,438,438,438,438,438,438,438,,438,438,438',
'438,438,,,,,,,,,,,,,,,,,,,,438,,,438,,,438,438,,,438,,438,,438,,438',
',,438,,,,,,438,,,,,438,438,438,438,,438,438,438,438,,,,,438,438,,440',
'440,440,,440,438,,438,440,440,,,,440,,440,440,440,440,440,440,440,,',
',,,440,440,440,440,440,440,440,,,440,,,,,,,440,,,440,440,440,440,440',
'440,440,440,,440,440,440,,440,440,440,440,440,,,,,,,,,,,,,,,,,,,,440',
',,440,,,440,440,,,440,,,,,,440,,,,,,,,,440,,,,,440,440,440,440,,440',
'440,440,440,,,,,440,440,,441,441,441,,441,440,,440,441,441,,,,441,,441',
'441,441,441,441,441,441,,,,,,441,441,441,441,441,441,441,,,441,,,,,',
',441,,,441,441,441,441,441,441,441,441,,441,441,441,,441,441,441,441',
'441,,,,,,,,,,,,,,,,,,,,441,,,441,,,441,441,,,441,,,,,,441,,,,,,,,,441',
',,,,441,441,441,441,,441,441,441,441,,,,,441,441,,442,442,442,,442,441',
',441,442,442,,,,442,,442,442,442,442,442,442,442,,,,,,442,442,442,442',
'442,442,442,,,442,,,,,,,442,,,442,442,442,442,442,442,442,442,,442,442',
'442,,442,442,442,442,442,,,,,,,,,,,,,,,,,,,,442,,,442,,,442,442,,,442',
',,,,,442,,,,,,,,,442,,,,,442,442,442,442,,442,442,442,442,,,,,442,442',
',482,482,482,,482,442,,442,482,482,,,,482,,482,482,482,482,482,482,482',
',,,,,482,482,482,482,482,482,482,,,482,,,,,,,482,,,482,482,482,482,482',
'482,482,482,482,482,482,482,,482,482,482,482,482,,,,,,,,,,,,,,,,,,,',
'482,,,482,,,482,482,,,482,,482,,482,,482,,,482,,,,,,482,,,,,482,482',
'482,482,,482,482,482,482,,,,,482,482,,484,484,484,,484,482,,482,484',
'484,,,,484,,484,484,484,484,484,484,484,,,,,,484,484,484,484,484,484',
'484,,,484,,,,,,,484,,,484,484,484,484,484,484,484,484,484,484,484,484',
',484,484,484,484,484,,,,,,,,,,,,,,,,,,,,484,,,484,,,484,484,,,484,,',
',484,,484,,,484,,,,,,484,,,,,484,484,484,484,,484,484,484,484,,,,,484',
'484,,486,486,486,,486,484,,484,486,486,,,,486,,486,486,486,486,486,486',
'486,,,,,,486,486,486,486,486,486,486,,,486,,,,,,,486,,,486,486,486,486',
'486,486,486,486,,486,486,486,,486,486,486,486,486,,,,,,,,,,,,,,,,,,',
',486,,,486,,,486,486,,,486,,,,,,486,,,,,,,,,486,,,,,486,486,486,486',
',486,486,486,486,,,,,486,486,,491,491,491,491,491,486,,486,491,491,',
',,491,,491,491,491,491,491,491,491,,,,,,491,491,491,491,491,491,491',
',,491,,,,,,491,491,491,491,491,491,491,491,491,491,491,491,,491,491',
'491,,491,491,491,491,491,468,468,468,468,468,468,468,468,468,468,468',
',468,468,,,468,468,,491,,,491,,,491,491,,,491,,491,468,,468,491,468',
'468,,468,468,468,468,468,491,468,,,,491,491,491,491,,491,491,491,491',
',,,,491,491,468,468,,,,491,491,,491,499,499,499,,499,,,,499,499,,,,499',
',499,499,499,499,499,499,499,,,,,,499,499,499,499,499,499,499,,,499',
',,,,,,499,,,499,499,499,499,499,499,499,499,,499,499,499,,499,499,,',
'499,,,,,,,,,,,,,,,,,,,,499,,,499,,,499,499,,,499,,,,,,,,,,,,,,,,,,,',
'499,499,499,499,,499,499,499,499,,,,,499,499,,501,501,501,,501,499,',
'499,501,501,,,,501,,501,501,501,501,501,501,501,,,,,,501,501,501,501',
'501,501,501,,,501,,,,,,,501,,,501,501,501,501,501,501,501,501,501,501',
'501,501,,501,501,501,501,501,,,,,,,,,,,,,,,,,,,,501,,,501,,,501,501',
',,501,,501,,501,,501,,,501,,,,,,501,,,,,501,501,501,501,,501,501,501',
'501,,,,,501,501,,508,508,508,,508,501,,501,508,508,,,,508,,508,508,508',
'508,508,508,508,,,,,,508,508,508,508,508,508,508,,,508,,,,,,,508,,,508',
'508,508,508,508,508,508,508,,508,508,508,,508,508,,,508,,,,,,,,,,,,',
',,,,,,,508,,,508,,,508,508,,,508,,,,,,,,,,,,,,,,,,,,508,508,508,508',
',508,508,508,508,,,,,508,508,,511,511,511,,511,508,,508,511,511,,,,511',
',511,511,511,511,511,511,511,,,,,,511,511,511,511,511,511,511,,,511',
',,,,,,511,,,511,511,511,511,511,511,511,511,,511,511,511,,511,511,511',
'511,511,,,,,,,,,,,,,,,,,,,,511,,,511,,,511,511,,,511,,,,,,511,,,,,,',
',,511,,,,,511,511,511,511,,511,511,511,511,,,,,511,511,,512,512,512',
',512,511,,511,512,512,,,,512,,512,512,512,512,512,512,512,,,,,,512,512',
'512,512,512,512,512,,,512,,,,,,,512,,,512,512,512,512,512,512,512,512',
',512,512,512,,512,512,512,512,512,,,,,,,,,,,,,,,,,,,,512,,,512,,,512',
'512,,,512,,,,,,512,,,,,,,,,512,,,,,512,512,512,512,,512,512,512,512',
',,,,512,512,,513,513,513,,513,512,,512,513,513,,,,513,,513,513,513,513',
'513,513,513,,,,,,513,513,513,513,513,513,513,,,513,,,,,,,513,,,513,513',
'513,513,513,513,513,513,,513,513,513,,513,513,513,513,513,,,,,,,,,,',
',,,,,,,,,513,,,513,,,513,513,,,513,,,,,,513,,,,,,,,,513,,,,,513,513',
'513,513,,513,513,513,513,,,,,513,513,,517,517,517,,517,513,,513,517',
'517,,,,517,,517,517,517,517,517,517,517,,,,,,517,517,517,517,517,517',
'517,,,517,,,,,,,517,,,517,517,517,517,517,517,517,517,,517,517,517,',
'517,517,517,517,517,,,,,,,,,,,,,,,,,,,,517,,,517,,,517,517,,,517,,,',
',,517,,,,,,,,,517,,,,,517,517,517,517,,517,517,517,517,,,,,517,517,',
'523,523,523,,523,517,,517,523,523,,,,523,,523,523,523,523,523,523,523',
',,,,,523,523,523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523',
'523,523,523,523,523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,',
'523,,,523,,,523,523,,,523,,523,,,,523,,,523,,,,,,523,,,,,523,523,523',
'523,,523,523,523,523,,,,,523,523,,526,526,526,,526,523,,523,526,526',
',,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526,526,526',
',,526,,,,,,,526,,,526,526,526,526,526,526,526,526,526,526,526,526,,526',
'526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,,,,,526',
',,526,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526,,549',
'549,549,,549,526,,526,549,549,,,,549,,549,549,549,549,549,549,549,,',
',,,549,549,549,549,549,549,549,,,549,,,,,,,549,,,549,549,549,549,549',
'549,549,549,,549,549,549,,549,549,549,549,549,,,,,,,,,,,,,,,,,,,,549',
',,549,,,549,549,,,549,,,,,,549,,,,,,,,,549,,,,,549,549,549,549,,549',
'549,549,549,,,,,549,549,,569,569,569,,569,549,,549,569,569,,,,569,,569',
'569,569,569,569,569,569,,,,,,569,569,569,569,569,569,569,,,569,,,,,',
',569,,,569,569,569,569,569,569,569,569,,569,569,569,,569,569,569,569',
'569,,,,,,,,,,,,,,,,,,,,569,,,569,,,569,569,,,569,,569,,,,569,,,,,,,',
',569,,,,,569,569,569,569,,569,569,569,569,,,,,569,569,,570,570,570,',
'570,569,,569,570,570,,,,570,,570,570,570,570,570,570,570,,,,,,570,570',
'570,570,570,570,570,,,570,,,,,,,570,,,570,570,570,570,570,570,570,570',
'570,570,570,570,,570,570,570,570,570,,,,,,,,,,,,,,,,,,,,570,,,570,,',
'570,570,,,570,,570,,570,,570,,,570,,,,,,570,,,,,570,570,570,570,,570',
'570,570,570,,,,,570,570,,580,580,580,,580,570,,570,580,580,,,,580,,580',
'580,580,580,580,580,580,,,,,,580,580,580,580,580,580,580,,,580,,,,,',
',580,,,580,580,580,580,580,580,580,580,580,580,580,580,,580,580,580',
'580,580,,,,,,,,,,,,,,,,,,,,580,,,580,,,580,580,,,580,,580,,580,,580',
',,580,,,,,,580,,,,,580,580,580,580,,580,580,580,580,,,,,580,580,,614',
'614,614,,614,580,,580,614,614,,,,614,,614,614,614,614,614,614,614,,',
',,,614,614,614,614,614,614,614,,,614,,,,,,,614,,,614,614,614,614,614',
'614,614,614,,614,614,614,,614,614,614,614,614,,,,,,,,,,,,,,,,,,,,614',
',,614,,,614,614,,,614,,614,,,,614,,,,,,,,,614,,,,,614,614,614,614,,614',
'614,614,614,,,,,614,614,,615,615,615,,615,614,,614,615,615,,,,615,,615',
'615,615,615,615,615,615,,,,,,615,615,615,615,615,615,615,,,615,,,,,',
',615,,,615,615,615,615,615,615,615,615,,615,615,615,,615,615,615,615',
'615,,,,,,,,,,,,,,,,,,,,615,,,615,,,615,615,,,615,,,,,,615,,,,,,,,,615',
',,,,615,615,615,615,,615,615,615,615,,,,,615,615,,618,618,618,,618,615',
',615,618,618,,,,618,,618,618,618,618,618,618,618,,,,,,618,618,618,618',
'618,618,618,,,618,,,,,,,618,,,618,618,618,618,618,618,618,618,618,618',
'618,618,,618,618,618,618,618,,,,,,,,,,,,,,,,,,,,618,,,618,,,618,618',
',,618,,618,,618,,618,,,618,,,,,,618,,,,,618,618,618,618,,618,618,618',
'618,,,,,618,618,,619,619,619,,619,618,,618,619,619,,,,619,,619,619,619',
'619,619,619,619,,,,,,619,619,619,619,619,619,619,,,619,,,,,,,619,,,619',
'619,619,619,619,619,619,619,619,619,619,619,,619,619,619,619,619,,,',
',,,,,,,,,,,,,,,,619,,,619,,,619,619,,,619,,,,619,,619,,,619,,,,,,619',
',,,,619,619,619,619,,619,619,619,619,,,,,619,619,,620,620,620,,620,619',
',619,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,,,,,620,620',
',621,621,621,,621,620,,620,621,621,,,,621,,621,621,621,621,621,621,621',
',,,,,621,621,621,621,621,621,621,,,621,,,,,,,621,,,621,621,621,621,621',
'621,621,621,,621,621,621,,621,621,621,621,621,,,,,,,,,,,,,,,,,,,,621',
',,621,,,621,621,,,621,,,,,,621,,,,,,,,,621,,,,,621,621,621,621,,621',
'621,621,621,,,,,621,621,,625,625,625,,625,621,,621,625,625,,,,625,,625',
'625,625,625,625,625,625,,,,,,625,625,625,625,625,625,625,,,625,,,,,',
',625,,,625,625,625,625,625,625,625,625,,625,625,625,,625,625,625,625',
'625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625,625,,,625,,,,,,625,,,,,,,,,625',
',,,,625,625,625,625,,625,625,625,625,,,,,625,625,,626,626,626,,626,625',
',625,626,626,,,,626,,626,626,626,626,626,626,626,,,,,,626,626,626,626',
'626,626,626,,,626,,,,,,,626,,,626,626,626,626,626,626,626,626,,626,626',
'626,,626,626,626,626,626,,,,,,,,,,,,,,,,,,,,626,,,626,,,626,626,,,626',
',,,,,626,,,,,,,,,626,,,,,626,626,626,626,,626,626,626,626,,,,,626,626',
',629,629,629,,629,626,,626,629,629,,,,629,,629,629,629,629,629,629,629',
',,,,,629,629,629,629,629,629,629,,,629,,,,,,,629,,,629,629,629,629,629',
'629,629,629,,629,629,629,,629,629,629,629,629,,,,,,,,,,,,,,,,,,,,629',
',,629,,,629,629,,,629,,,,,,629,,,,,,,,,629,,,,,629,629,629,629,,629',
'629,629,629,,,,,629,629,,630,630,630,,630,629,,629,630,630,,,,630,,630',
'630,630,630,630,630,630,,,,,,630,630,630,630,630,630,630,,,630,,,,,',
',630,,,630,630,630,630,630,630,630,630,,630,630,630,,630,630,630,630',
'630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,,,,,630,,,,,,,,,630',
',,,,630,630,630,630,,630,630,630,630,,,,,630,630,,654,654,654,,654,630',
',630,654,654,,,,654,,654,654,654,654,654,654,654,,,,,,654,654,654,654',
'654,654,654,,,654,,,,,,,654,,,654,654,654,654,654,654,654,654,,654,654',
'654,,654,654,654,654,654,,,,,,,,,,,,,,,,,,,,654,,,654,,,654,654,,,654',
',,,,,654,,,,,,,,,654,,,,,654,654,654,654,,654,654,654,654,,,,,654,654',
',660,660,660,,660,654,,654,660,660,,,,660,,660,660,660,660,660,660,660',
',,,,,660,660,660,660,660,660,660,,,660,,,,,,,660,,,660,660,660,660,660',
'660,660,660,,660,660,660,,660,660,,,660,,,,,,,,,,,,,,,,,,,,660,,,660',
',,660,660,,,660,,,,,,,,,,,,,,,,,,,,660,660,660,660,,660,660,660,660',
',,,,660,660,,671,671,671,,671,660,,660,671,671,,,,671,,671,671,671,671',
'671,671,671,,,,,,671,671,671,671,671,671,671,,,671,,,,,,,671,,,671,671',
'671,671,671,671,671,671,,671,671,671,,671,671,,,671,,,,,,,,,,,,,,,,',
',,,671,,,671,,,671,671,,,671,,,,,,,,,,,,,,,,,,,,671,671,671,671,,671',
'671,671,671,,,,,671,671,,677,677,677,,677,671,,671,677,677,,,,677,,677',
'677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,',
',677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677,677,677',
'677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,677,,,,677,,,,,,,',
',677,,,,,677,677,677,677,,677,677,677,677,,,,,677,677,,696,696,696,',
'696,677,,677,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',
',,,,696,696,,723,723,723,,723,696,,696,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,,729,729,729,,729,723,,723,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,',
'752,752,752,,752,729,,729,752,752,,,,752,,752,752,752,752,752,752,752',
',,,,,752,752,752,752,752,752,752,,,752,,,,,,,752,,,752,752,752,752,752',
'752,752,752,,752,752,752,,752,752,752,752,752,,,,,,,,,,,,,,,,,,,,752',
',,752,,,752,752,,,752,,,,,,752,,,,,,,,,752,,,,,752,752,752,752,,752',
'752,752,752,,,,,752,752,,754,754,754,,754,752,,752,754,754,,,,754,,754',
'754,754,754,754,754,754,,,,,,754,754,754,754,754,754,754,,,754,,,,,',
',754,,,754,754,754,754,754,754,754,754,,754,754,754,,754,754,754,754',
'754,,,,,,,,,,,,,,,,,,,,754,,,754,,,754,754,,,754,,,,,,754,,,,,,,,,754',
',,,,754,754,754,754,,754,754,754,754,,,,,754,754,,768,768,768,,768,754',
',754,768,768,,,,768,,768,768,768,768,768,768,768,,,,,,768,768,768,768',
'768,768,768,,,768,,,,,,,768,,,768,768,768,768,768,768,768,768,,768,768',
'768,,768,768,768,768,768,,,,,,,,,,,,,,,,,,,,768,,,768,,,768,768,,,768',
',,,,,768,,,,,,,,,768,,,,,768,768,768,768,,768,768,768,768,,,,,768,768',
',769,769,769,,769,768,,768,769,769,,,,769,,769,769,769,769,769,769,769',
',,,,,769,769,769,769,769,769,769,,,769,,,,,,,769,,,769,769,769,769,769',
'769,769,769,,769,769,769,,769,769,769,769,769,,,,,,,,,,,,,,,,,,,,769',
',,769,,,769,769,,,769,,,,,,769,,,,,,,,,769,,,,,769,769,769,769,,769',
'769,769,769,,,,,769,769,,770,770,770,,770,769,,769,770,770,,,,770,,770',
'770,770,770,770,770,770,,,,,,770,770,770,770,770,770,770,,,770,,,,,',
',770,,,770,770,770,770,770,770,770,770,,770,770,770,,770,770,770,770',
'770,,,,,,,,,,,,,,,,,,,,770,,,770,,,770,770,,,770,,,,,,770,,,,,,,,,770',
',,,,770,770,770,770,,770,770,770,770,,,,,770,770,,771,771,771,,771,770',
',770,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',
',773,773,773,,773,771,,771,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,,785,785,785,,785,773,,773,785,785,,,,785,,785',
'785,785,785,785,785,785,,,,,,785,785,785,785,785,785,785,,,785,,,,,',
',785,,,785,785,785,785,785,785,785,785,,785,785,785,,785,785,,,785,',
',,,,,,,,,,,,,,,,,,785,,,785,,,785,785,,,785,,,,,,,,,,,,,,,,,,,,785,785',
'785,785,,785,785,785,785,,,,,785,785,,832,832,832,,832,785,,785,832',
'832,,,,832,,832,832,832,832,832,832,832,,,,,,832,832,832,832,832,832',
'832,,,832,,,,,,,832,,,832,832,832,832,832,832,832,832,,832,832,832,',
'832,832,832,832,832,,,,,,,,,,,,,,,,,,,,832,,,832,,,832,832,,,832,,,',
',,832,,,,,,,,,832,,,,,832,832,832,832,,832,832,832,832,,,,,832,832,',
'837,837,837,,837,832,,832,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,,,,,837,837,,854,854,854,,854,837,,837,854,854,,,,854,,854',
'854,854,854,854,854,854,,,,,,854,854,854,854,854,854,854,,,854,,,,,',
',854,,,854,854,854,854,854,854,854,854,854,854,854,854,,854,854,854',
'854,854,,,,,,,,,,,,,,,,,,,,854,,,854,,,854,854,,,854,,,,854,,854,,,854',
',,,,,854,,,,,854,854,854,854,,854,854,854,854,,,,,854,854,,855,855,855',
',855,854,,854,855,855,,,,855,,855,855,855,855,855,855,855,,,,,,855,855',
'855,855,855,855,855,,,855,,,,,,,855,,,855,855,855,855,855,855,855,855',
',855,855,855,,855,855,855,855,855,,,,,,,,,,,,,,,,,,,,855,,,855,,,855',
'855,,,855,,,,,,855,,,,,,,,,855,,,,,855,855,855,855,,855,855,855,855',
',,,,855,855,,869,869,869,,869,855,,855,869,869,,,,869,,869,869,869,869',
'869,869,869,,,,,,869,869,869,869,869,869,869,,,869,,,,,,,869,,,869,869',
'869,869,869,869,869,869,,869,869,869,,869,869,,,869,,,,,,,,,,,,,,,,',
',,,869,,,869,,,869,869,,,869,,,,,,,,,,,,,,,,,,,,869,869,869,869,,869',
'869,869,869,,,,,869,869,,881,881,881,,881,869,,869,881,881,,,,881,,881',
'881,881,881,881,881,881,,,,,,881,881,881,881,881,881,881,,,881,,,,,',
',881,,,881,881,881,881,881,881,881,881,,881,881,881,,881,881,,,881,',
',,,,,,,,,,,,,,,,,,881,,,881,,,881,881,,,881,,,,,,,,,,,,,,,,,,,,881,881',
'881,881,,881,881,881,881,,,,,881,881,,975,975,975,,975,881,,881,975',
'975,,,,975,,975,975,975,975,975,975,975,,,,,,975,975,975,975,975,975',
'975,,,975,,,,,,,975,,,975,975,975,975,975,975,975,975,975,975,975,975',
',975,975,975,975,975,516,516,516,516,516,516,516,516,516,516,516,,516',
'516,,,516,516,,975,,,975,,,975,975,,,975,,975,516,975,516,975,516,516',
'975,516,516,516,516,516,975,516,,,,975,975,975,975,,975,975,975,975',
',,,,975,975,,516,27,,,,975,,975,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,,27,27,27,27,27,28,27,27,27,,,,28,28,28,,,28,28,28,,28,27,,,27',
'27,,27,,27,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,,28,28,,',
'28,28,,28,,28,,28,,28,28,,28,28,28,28,28,,28,411,28,,,,,,411,411,411',
',,411,411,411,28,411,,28,28,,28,,28,,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,411,,,411,,411,411,,,411,411,,411',
',411,,411,,411,411,,411,411,411,411,411,,411,411,411,,,,,,,,,,,,,,411',
',470,411,411,,411,,411,470,470,470,,,470,470,470,641,470,641,641,641',
'641,641,,,,470,470,,,,641,,,,,,470,470,,470,470,470,470,470,,,,,,,,',
'641,,333,,333,333,333,333,333,641,641,641,641,,,,641,333,,,,,,,,470',
',,,,,,470,,,,,470,470,333,333,,641,,,,,,333,333,333,333,,,,333,,,,,470',
'470,,,,,,,,,,,,,,470,,,470,,,,,470,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8',
'8,8,8,8,8,8,8,,,,8,8,8,8,8,8,8,8,8,8,,,,,,8,8,8,8,8,8,8,8,8,8,,8,,,',
',,,,8,8,,8,8,8,8,8,8,8,,,8,8,,,,8,8,8,8,,,,,,,,,,,,,,8,8,,8,8,8,8,8',
'8,8,8,8,8,8,8,,,8,8,,,,,,,,,,,,,,8,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,9,,,9,9,,,,9,9,9,9,,,,,,,,,,,,,,9,9,,9,9,9,9,9,9',
'9,9,9,9,9,9,,,9,9,,,,,,,,,,,,,,9,392,392,392,392,392,392,392,392,392',
'392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,,,,392,392',
'392,392,392,392,392,392,392,392,,,,,,392,392,392,392,392,392,392,392',
'392,,,392,,,,,,,,392,392,,392,392,392,392,392,392,392,,,392,392,,,,392',
'392,392,392,,,,,,,,,,,,,,392,392,,392,392,392,392,392,392,392,392,392',
'392,392,392,,,392,392,,,,,,,,,,,,,,392,611,611,611,611,611,611,611,611',
'611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,,,,611',
'611,611,611,611,611,611,611,611,611,,,,,,611,611,611,611,611,611,611',
'611,611,,,611,,,,,,,,611,611,,611,611,611,611,611,611,611,,,611,611',
',,,611,611,611,611,,,,,,,,,,,,,,611,611,,611,611,611,611,611,611,611',
'611,611,611,611,611,,,611,611,,,,,,,,,,,,,,611,71,71,71,71,71,71,71',
'71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,,,,71,71,71,71,71',
'71,71,71,71,71,,,,,,71,71,71,71,71,71,71,71,71,71,71,71,,71,,,,,,71',
'71,,71,71,71,71,71,71,71,,,71,71,,,,71,71,71,71,,,,,,71,,,,,,,,71,71',
',71,71,71,71,71,71,71,71,71,71,71,71,,,71,736,736,736,736,736,736,736',
'736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736',
',,,736,736,736,736,736,736,736,736,736,736,,,,,,736,736,736,736,736',
'736,736,736,736,,,736,,,,,,,,736,736,,736,736,736,736,736,736,736,,',
'736,736,,,,736,736,736,736,,,,,,,,,,,,,,736,736,,736,736,736,736,736',
'736,736,736,736,736,736,736,,,736,672,672,672,672,672,672,672,672,672',
'672,672,,672,672,,,672,672,,,531,,531,531,531,531,531,,,,,,672,,672',
'531,672,672,,672,672,672,672,672,,672,753,753,753,753,753,753,753,753',
'753,753,753,531,753,753,,,753,753,,672,531,531,531,531,,,,531,,,,,753',
',753,,753,753,,753,753,753,753,753,,753,758,758,758,758,758,758,758',
'758,758,758,758,,758,758,,,758,758,,753,,,,587,,587,587,587,587,587',
',,758,,758,,758,758,587,758,758,758,758,758,,758,760,760,760,760,760',
'760,760,760,760,760,760,,760,760,587,587,760,760,,758,,,,587,587,587',
'587,,,,587,,760,,760,,760,760,,760,760,760,760,760,,760,763,763,763',
'763,763,763,763,763,763,763,763,,763,763,,,763,763,,760,690,,690,690',
'690,690,690,,,,,,763,,763,690,763,763,,763,763,763,763,763,,763,765',
'765,765,765,765,765,765,765,765,765,765,690,765,765,,,765,765,,763,690',
'690,690,690,,,,690,,,,,765,,765,,765,765,,765,765,765,765,765,,765,767',
'767,767,767,767,767,767,767,767,767,767,,767,767,,,767,767,,765,692',
',692,692,692,692,692,,,,,,767,,767,692,767,767,,767,767,767,767,767',
',767,853,853,853,853,853,853,853,853,853,853,853,692,853,853,,,853,853',
',767,692,692,692,692,,,,692,,,,,853,,853,,853,853,,853,853,853,853,853',
',853,856,856,856,856,856,856,856,856,856,856,856,,856,856,,,856,856',
',853,,,,,,,,,,,,,856,,856,,856,856,,856,856,856,856,856,,856,,,,,,207',
'207,,,207,,,,,,,,207,207,856,207,207,207,207,207,207,207,,,207,207,',
',,207,207,207,207,,,,,,207,,,,,,,,207,207,,207,207,207,207,207,207,207',
'207,207,207,207,207,208,208,207,,208,,,,,,,,208,208,,208,208,208,208',
'208,208,208,,,208,208,,,,208,208,208,208,,,,,,208,,,,,,,,208,208,,208',
'208,208,208,208,208,208,208,208,208,208,208,256,256,208,,256,,,,,,,',
'256,256,,256,256,256,256,256,256,256,,,256,256,,,,256,256,256,256,,',
',,,,,,,,,,,256,256,,256,256,256,256,256,256,256,256,256,256,256,256',
'436,436,256,,436,,,,,,,,436,436,,436,436,436,436,436,436,436,,,436,436',
',,,436,436,436,436,,,,,,436,,,,,,,,436,436,,436,436,436,436,436,436',
'436,436,436,436,436,436,437,437,436,,437,,,,,,,,437,437,,437,437,437',
'437,437,437,437,,,437,437,,,,437,437,437,437,,,,,,437,,,,,,,,437,437',
',437,437,437,437,437,437,437,437,437,437,437,437,502,502,437,,502,,',
',,,,,502,502,,502,502,502,502,502,502,502,,,502,502,,,,502,502,502,502',
',,,,,502,,,,,,,,502,502,,502,502,502,502,502,502,502,502,502,502,502',
'502,503,503,502,,503,,,,,,,,503,503,,503,503,503,503,503,503,503,,,503',
'503,,,,503,503,503,503,,,,,,503,,,,,,,,503,503,,503,503,503,503,503',
'503,503,503,503,503,503,503,514,514,503,,514,,,,,,,,514,514,,514,514',
'514,514,514,514,514,,,514,514,,,,514,514,514,514,,,,,,514,,,,,,,,514',
'514,,514,514,514,514,514,514,514,514,514,514,514,514,515,515,514,,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,571,571,515,,571,,,,,,,,571,571,,571,571,571,571,571,571,571',
',,571,571,,,,571,571,571,571,,,,,,571,,,,,,,,571,571,,571,571,571,571',
'571,571,571,571,571,571,571,571,572,572,571,,572,,,,,,,,572,572,,572',
'572,572,572,572,572,572,,,572,572,,,,572,572,572,572,,,,,,572,,,,,,',
',572,572,,572,572,572,572,572,572,572,572,572,572,572,572,578,578,572',
',578,,,,,,,,578,578,,578,578,578,578,578,578,578,,,578,578,,,,578,578',
'578,578,,,,,,578,,,,,,,,578,578,,578,578,578,578,578,578,578,578,578',
'578,578,578,579,579,578,,579,,,,,,,,579,579,,579,579,579,579,579,579',
'579,,,579,579,,,,579,579,579,579,,,,,,579,,,,,,,,579,579,,579,579,579',
'579,579,579,579,579,579,579,579,579,932,932,579,,932,,,,,,,,932,932',
',932,932,932,932,932,932,932,,,932,932,,,,932,932,932,932,,,,,,932,',
',,,,,,932,932,,932,932,932,932,932,932,932,932,932,932,932,932,976,976',
'932,,976,,,,,,,,976,976,,976,976,976,976,976,976,976,,,976,976,,,,976',
'976,976,976,,,,,,976,,,,,,,,976,976,,976,976,976,976,976,976,976,976',
'976,976,976,976,977,977,976,,977,,,,,,,,977,977,,977,977,977,977,977',
'977,977,,,977,977,,,,977,977,977,977,,,,,,977,,,,,,,,977,977,,977,977',
'977,977,977,977,977,977,977,977,977,977,,694,977,694,694,694,694,694',
',734,,734,734,734,734,734,694,,,,,,,,734,,860,,860,860,860,860,860,',
',,,,694,,,860,,,,,734,,,694,694,,,,694,734,734,734,734,,,,734,860,,862',
',862,862,862,862,862,860,860,860,860,,,,860,862,,864,,864,864,864,864',
'864,,888,,888,888,888,888,888,864,,,,,862,,,888,,,,,,862,862,862,862',
',,,862,864,,,,,,,,888,,,864,864,,,,864,888,888,888,888,,,890,888,890',
'890,890,890,890,892,,892,892,892,892,892,894,890,894,894,894,894,894',
',892,,,,,,915,894,915,915,915,915,915,,,890,,,,,,915,892,,,,890,890',
',894,,890,,892,892,,,,892,,894,894,,915,915,894,,,,,,,915,915,915,915',
',,961,915,961,961,961,961,961,963,,963,963,963,963,963,965,961,965,965',
'965,965,965,967,963,967,967,967,967,967,979,965,979,979,979,979,979',
',967,961,,,,,,979,963,,961,961,961,961,,965,,961,,963,963,,967,,963',
',965,965,,979,,965,,967,967,,,,967,,979,979,,,1005,979,1005,1005,1005',
'1005,1005,,,,,,,,,1005,,,,,,,,,,,,,,,,,,,,,,1005,,,,,,,,,,,1005,1005',
',,,1005' ]
        racc_action_check = arr = ::Array.new(24831, 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 = [
     0,   125,   nil,    24,   nil,  5042,  1141,    39, 22340, 22468,
    84,   nil,    75,   220,   360,   247,   192,   439,   nil,    25,
  5171,  6856,   331,   nil,   111,   nil,    55, 21855, 21965,  5300,
  5429,  5558,   nil,   758,  5687,  5816,   nil,   257,   280,   282,
   390,   485,  5953,  6082,  6211,   317,   559,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   890,   nil,    67,  6340,
  6469,     0,   nil,  6598,  6727,   nil,   nil,  6856,  6993,  7122,
  7251, 22852,   nil,   nil,   nil,   nil,   nil,   656,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,     0,   nil,   nil,   134,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   460,   nil,  7380,   nil,
   nil,   nil,   nil,  7517,  7646,  7775,  7904,  8033,  1027,   nil,
   595,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   375,   nil,  1156,  8162,  8291,  8420, 23448, 23509,  8549,
  8678,  8807,  8936,  9065,  9194,   nil,   nil,   589,    83,   107,
   465,   139,   390,   488,   nil,  9323,  1285,   524,  9452,  9581,
  9710,  9839,  9968, 10097, 10226, 10355, 10484, 10613, 10742, 10871,
 11000, 11129, 11258, 11387, 11516, 11645, 11774, 11903, 12032, 12161,
 12290, 12419, 12548, 12677,   nil,   nil, 23570,   nil,   nil,   525,
 12806, 12935,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 13064,
   nil,  7380,   nil,   492,   507,   nil, 13193,   570, 13322,   nil,
 13451, 13580,   nil,   nil,    57,   nil, 13709,  1156,   555,   540,
  1414,   551,   593,   571, 13838,  1543,   591,   758,   761,   653,
   800,   nil,   627,   588,    79,   nil,   nil,   nil,   640,   504,
   607, 13975,   nil,   318,   679,   681,   808,   nil,   687,   nil,
 14104,  1672, 14233,   625,   nil,   243,   258,   663,   652,   344,
   683,   nil,   nil, 22209,   564,   133,   140, 14362, 14491,   343,
   758,   648,    32,    57,   844,   731,    65,   771,   nil,   nil,
   359,   395,   449,   nil,   931,   nil,    59, 14620,   nil,   nil,
   nil,   142,   310,   419,   464,   465,   493,   565,   567,   630,
   nil,   657,   nil, 14749,   nil,   356,   479,   484,   513,   539,
    59,    89,   546,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   701, 22596,   nil,   nil,   nil,   nil,   705,   nil,   706,
   nil, 14878,   711,   nil,  1672,   722,   nil,   724,   729,   384,
   447, 22077,   nil,   nil,   nil,   244,   356,   783,   nil,   nil,
  1804,  1938,   nil, 13838,   nil,   743,   nil,   nil,   758,   nil,
   nil,   nil,   nil,   218,   nil,   798, 23631, 23692, 15007,   143,
 15136, 15265, 15394,  1027,  1156,   873,   904,   829,   834,   844,
   846,  2978,  3107,  3236,  1285,  1414,  1543,  1753,  1887,  2075,
  2204,  2333,  2462,  2591,   633,   817,  2720,  2849, 15910,    90,
 22206,   nil,   nil,   nil,   nil,   783,   nil,   269,   293,   784,
   nil,   nil, 15523,   nil, 15652,   nil, 15781,   nil,   nil,   nil,
   nil, 15910,  1270,  2075,   794,   792,   nil,   nil,   801, 16047,
   805, 16176, 23753, 23814,   942,   847,   nil,   nil, 16305,   805,
   nil, 16434, 16563, 16692, 23875, 23936, 21723, 16821,   933,   937,
   761,   860,   nil, 16950,   nil,   nil, 17079,   nil,   nil,   nil,
    96, 23049,   nil,   822,   846,   nil,   848,   849,   852,   nil,
   nil,   nil,   nil,   nil,   nil,   850,   nil,   623,   nil, 17208,
   nil,   nil,   nil,   940,   nil,   nil,   nil,   943,   nil,   nil,
   949,  2204,   992,   nil,  2333,   158,   205,   989,  1000, 17337,
 17466, 23997, 24058,   102,   nil,   nil,   959,   nil, 24119, 24180,
 17595,   nil,   nil,   nil,   415,   271,  2462, 23144,   nil,   288,
   nil,   nil,   nil,   895,   nil,   nil,   nil,   892,   nil,   nil,
   381,   nil,   406,   nil,   nil,   884,   nil,   900,   nil,   nil,
   nil, 22724,   nil,   906, 17724, 17853,   490,   946, 17982, 18111,
 18240, 18369,   945,   nil,   nil, 18498, 18627,   955,   nil, 18756,
 18885,   nil,   nil,   152,   170,   485,   619,   923,  5816,   922,
   nil, 22170,   nil,  2591,  1028,    74,   308,   nil,  2720,  2849,
   nil,   930,   nil,   982, 19014,   nil,   nil,   nil,   970,   206,
 19143,   954,   nil,   978,   199,   270,  1024,   425,  1027,  1028,
   988, 19272, 23014,  1060,  1065,   325,  1125, 19401,   nil,  1010,
   nil,   386,   nil,  2978,  3107,  1011,   644,   nil,   nil,   700,
 23233,   nil, 23325,   nil, 24425,   nil, 19530,   nil,   854,   nil,
  1013,   357,   nil,  1021,   nil,   nil,   nil,   nil,   834,   nil,
  1138,   nil,   nil,   nil,   nil,  1144,   nil,   144,  1024,   116,
   129,   159,   252, 19659,   518,  1156,   nil,  1034,  3236, 19788,
   nil,   nil,  1159,  3365, 24433,   454, 22965,   nil,   nil,   nil,
   nil,   nil,   nil,  3494,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,  1036, 19917, 23060, 20046,   nil,  1037,   nil, 23106,   nil,
 23152,   nil,   nil, 23198,   nil, 23244,   nil, 23290, 20175, 20304,
 20433, 20562,   250, 20691,  1039,  1059,   nil,  1060,  1079,  1083,
   nil,  1128,  1112,  1111,  1111, 20820,   nil,   nil,  1246,   nil,
   nil,  3623,  1147,  1259,   nil,   nil,   nil,  1136,   557,   nil,
   nil,  1262,   nil,  3752,  1142,  1193,   nil,   nil,  1191,   nil,
  1169,  1274,  1203,  1164,   nil,   nil,   nil,  1165,  1166,   nil,
  1168,  1188,   nil,  1194,   nil,  1211,   890,  1212,  1271,   nil,
  1354,   nil, 20949,  1355,  3881,  4010,   nil, 21078,  4139,   139,
   224,   nil,  1357,   607,  4268,   nil,  1362,  1242,   nil,   nil,
  1248,  1246,   nil, 23336, 21207, 21336, 23382,   667,   nil,   nil,
 24450,   nil, 24489,   nil, 24506,   nil,   nil,  1272,   959, 21465,
  1030,  1329,   nil,  1276,   nil,   nil,   nil,  4397,   nil,   nil,
   160, 21594,   nil,   nil,   nil,   nil,   nil,   nil, 24514,   nil,
 24566,   nil, 24573,   nil, 24580,   nil,   nil,   nil,   nil,   481,
  1400,  1264,   nil,   166,   nil,  1389,  1390,   nil,   391,   nil,
   nil,   nil,  1395,   nil,   nil, 24594,   nil,  1276,   nil,   nil,
  1277,  1278,  1279,  1289,   nil,  1293,   nil,   652,   nil,   nil,
   nil,  1159, 24241,   nil,   nil,   nil,  4526,  1281,  1285,  1417,
  1372,  1526,   nil,  1295,  1297,  1305,  1306,  1307,  1430,  1308,
  1438,  4655,   nil,   nil,   nil,   nil,   nil,  4784,   nil,  4913,
   nil, 24646,   nil, 24653,   nil, 24660,   nil, 24667,   nil,   nil,
   nil,  1013,  1353,  1361,  1449, 21723, 24302, 24363,  1534, 24674,
   nil,   nil,   nil,   nil,  1529,  1337,   857,  1465,  1473,  1353,
  1357,  1365,  1367,   nil,   nil,  1373,   167,   168,   170,  1672,
  1371,  1374,   nil,   nil,   nil, 24726,   nil,   nil,   nil,   nil,
   169,   nil,  1375,   nil ]

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

clist = [
'213,324,370,14,272,272,272,331,14,519,405,255,676,119,202,427,561,564',
'111,274,274,274,568,217,483,292,320,127,127,263,267,2,217,217,217,733',
'14,298,298,655,124,124,307,307,259,266,268,256,216,326,329,411,417,400',
'335,336,129,129,339,424,616,108,532,539,475,474,217,217,509,830,217',
'344,354,354,293,13,307,307,307,703,13,655,111,6,310,901,107,652,6,652',
'577,711,714,778,273,273,273,687,688,822,470,898,1,124,386,387,388,389',
'13,522,525,14,779,529,643,876,217,217,217,217,14,14,648,649,325,112',
'819,781,928,657,289,291,376,201,775,924,801,356,360,382,270,282,283',
'930,600,602,349,392,646,391,340,611,327,645,372,328,332,949,483,347',
'581,818,371,820,321,322,434,679,323,697,833,812,337,834,655,338,835',
'723,957,813,728,272,844,13,586,591,587,598,601,601,736,6,13,13,915,397',
'780,782,927,530,390,6,682,333,469,985,14,217,217,217,412,477,217,217',
'217,217,217,217,292,478,954,480,805,652,652,898,880,374,384,14,825,993',
'398,403,924,272,272,422,426,375,421,1001,637,495,272,377,930,378,379',
'715,380,274,381,738,743,729,661,817,814,274,685,539,918,217,217,670',
',,867,402,,,217,,732,402,,,13,,411,417,292,,505,,,292,,14,,791,772,14',
',822,819,298,14,111,,13,307,,521,663,,263,,,,267,920,,298,,726,539,798',
'307,697,,,827,14,217,273,,565,566,819,921,,922,273,,,,858,859,217,217',
'491,498,,,666,1002,,,917,510,,775,111,775,,775,666,943,217,13,,959,',
'13,909,490,955,492,13,582,476,839,718,,217,887,,,479,,841,,727,631,617',
'289,494,,,,289,500,588,,13,610,838,,,794,,819,,,,,,655,746,127,746,272',
'623,666,842,797,,,628,846,567,666,124,,,647,761,622,,650,989,766,427',
'627,,,,412,129,217,,,,,659,,697,639,697,,662,,775,,775,,775,652,775',
',,847,539,809,,,994,421,,,651,623,,,272,,,26,,960,,,26,,,,644,,,,,,14',
',14,,775,26,,,298,,217,412,794,307,26,26,26,298,26,681,,,307,412,,,217',
'947,697,,658,,806,,,,,,912,,,421,,,,510,,737,26,26,,272,26,421,510,',
',,,708,,272,710,,,,,936,,,14,,13,14,13,,697,,697,217,412,,6,,,,712,712',
'412,217,951,,,26,,14,956,790,26,26,26,26,26,26,,730,731,,,,421,,697',
',756,,421,,,,,,750,,617,807,,,783,217,217,,,800,217,217,127,,217,789',
'717,788,13,,,13,792,793,,124,617,539,14,988,757,759,1010,14,14,762,764',
'829,,426,,129,808,13,,298,,,783,849,307,623,,,628,,298,810,811,,,307',
',,26,26,26,26,14,14,26,26,26,26,26,26,,,,,,617,510,,,,,26,,,617,,,799',
',,840,,,,13,,843,,,13,13,,217,,,,,14,217,,,850,14,,,26,26,,402,878,',
',14,882,26,,848,,,,,,,217,13,13,,,,783,,26,,,124,26,,,,,26,,,897,,995',
'15,,852,873,,15,,,870,,,,,307,14,879,,776,,914,26,26,,13,,,14,,13,,',
',,15,300,300,26,26,13,,666,,,903,,,905,906,,,908,,,,,217,26,14,14,,',
'14,815,,,815,,14,346,355,355,,26,,,712,,16,911,,,,16,,,,13,,,935,,,931',
',,,,307,13,,14,,,,939,,,,15,307,16,,,,330,,,15,15,691,693,695,,,,,,',
'970,13,13,,,13,,,,26,,13,,,,,,348,,,974,,,,,,,,334,334,,14,334,,,986',
',,,,,987,272,,13,,14,,,,,,14,,14,,421,16,,,,,26,,26,,16,16,617,,217',
'412,26,,,15,,,334,334,334,334,,,,,,,26,,,,,,,,,,15,,,421,,13,,815,,',
'776,,776,,776,,,,,,13,,,,,,13,,13,,,,399,,26,,,26,429,,,,,26,,,,,,,',
',,26,16,,,,,26,15,425,,,15,,,,300,15,,,,,,,,16,430,431,432,433,,,,300',
',,,,,,38,26,26,15,,38,26,26,,,26,,485,,487,,488,489,,776,,776,,776,26',
'776,,,,26,26,,,38,296,296,,,,,,,,,,16,,,,16,,,,,16,,,,,,,,,776,26,26',
',,342,358,358,358,,,,,,,,,16,,889,891,,893,895,,896,861,863,865,777',
',,,,520,,,,,,,26,,,,38,26,26,,334,334,26,,,38,38,,,,,,26,,,,,,,,585',
',,26,,613,,,,,,821,,823,,,589,,,,,,,,,,,39,,,,,39,,,,,,,,26,15,,15,',
',,,,300,,,26,,,,,,300,,39,297,297,,,,,,,,,38,,,,,980,981,982,983,,26',
',26,26,,653,26,330,,656,,,26,38,343,359,359,359,,962,964,966,968,,969',
',,,,,15,,,15,,,,16,,16,,,,,,26,653,,,330,,,1011,,39,15,,,,,,,742,39',
'39,,,,,,,,704,38,,,,38,,675,,296,38,,,,,,1006,1007,1008,1009,429,,,',
',,296,,923,,925,,26,,,16,38,,16,1013,15,,,,,15,15,26,,,,,,26,944,26',
'945,300,946,,16,,,,,751,,,300,653,330,26,,,,,,39,,,15,15,,,,,,,,,,,',
',,,,,,,39,,,425,,795,,,,,,,,,,,,16,,,,,16,16,,15,,990,804,991,15,992',
',,,,,,,,15,,,,,1000,,824,,,,,,,,,,16,16,,39,,,,39,,,,297,39,,1012,,',
',,,,,,,,355,,,297,,,15,,,,,,,39,,,,,15,,16,851,,,38,16,38,,,,,334,296',
',,16,,334,,,,296,,,,,,,,15,15,,,15,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,16',
'355,,,,,,,,15,,38,16,941,38,,,,,,,,,907,,,,,,,,,,,,,38,,,,330,,,16,16',
',,16,,,,,,16,,,,334,,,,,,,,,,,15,,,,,,,,,,,,,,,15,,,16,,,15,942,15,',
'38,,,,,38,38,39,,39,,,,,,297,,296,,,,,,,297,,,,296,,,,,,,,,,,,38,38',
',,,,,,,,,,16,,,,,,,,,,,,,,,16,,,,,,16,,16,,39,,,39,,,,,38,,,,,38,,,',
',,,,,,38,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,358,,,,,,38,,,,',
',,,,,,39,38,,,,39,39,,,,,,,,,,,297,,,,,,,,,,,297,,,,38,38,224,,38,,',
',39,39,38,271,271,271,,,,,,,,,,,317,318,319,,,,,,,,,358,,,,,,271,271',
'38,,,,937,,,,,,39,,,,,39,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,38,,,,,,,,359,,,,,,39,38,,,,,,38,,38,,,39,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,39,39,,,39,,,,,,39,,,,,,,,,,,,,,,,,271,404,271,,,423,428,,359',
',,,,,,,39,,,,938,224,,,443,444,445,446,447,448,449,450,451,452,453,454',
'455,456,457,458,459,460,461,462,463,464,465,466,467,468,,,,,,,271,271',
',,,,,,,271,,,,,,,271,,271,39,271,271,,,,,,,,,,,,,39,,,,,,39,,39,,,,',
',,,,,,,,,,,,,516,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',271,,423,638,404,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,271,,271',
',,,,,,,,,,,,,,271,,,,,,,,,,672,673,674,,,,,,,,,,271,,,271,,,,,,,,,,',
',,,,,,,,,,,,271,,,,,,,,,,,,,,,,,,,,271,271,,,,,,,,,,271,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,271,753,,,271,271,758,760,,,,763,765,,,638,767',
',,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,',
',,,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,853',
',,,,,,,,,,,,,758,760,765,763,,856,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,271,853,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271' ]
        racc_goto_table = arr = ::Array.new(2890, 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 = [
'31,65,56,22,33,33,33,84,22,8,23,135,10,15,15,18,87,87,93,68,68,68,90',
'22,71,9,31,60,60,69,69,2,22,22,22,94,22,22,22,170,57,57,63,63,38,38',
'38,36,20,68,68,37,37,27,17,17,61,61,17,27,24,6,134,158,23,39,22,22,51',
'88,22,22,22,22,49,21,63,63,63,114,21,170,93,7,50,115,4,72,7,72,54,89',
'89,124,66,66,66,119,119,166,37,112,1,57,17,17,17,17,21,67,67,22,125',
'67,40,12,22,22,22,22,22,22,40,40,66,5,162,127,129,14,45,46,147,16,118',
'167,11,55,55,147,44,44,44,130,150,150,19,30,42,2,4,62,64,70,82,83,86',
'115,71,91,92,125,95,125,96,97,47,98,99,113,11,127,100,101,170,102,103',
'104,105,118,106,33,107,21,108,151,109,151,151,151,110,7,21,21,111,9',
'116,122,128,131,7,7,132,133,136,115,22,22,22,22,69,138,22,22,22,22,22',
'22,9,139,140,47,141,72,72,112,142,145,5,22,114,129,20,20,167,33,33,20',
'20,146,57,115,23,47,33,148,130,149,152,90,153,68,154,155,156,157,51',
'161,163,68,134,158,164,22,22,51,,,127,66,,,22,,8,66,,,21,,37,37,9,,31',
',,9,,22,,40,24,22,,166,162,22,22,93,,21,63,,31,23,,69,,,,69,124,,22',
',54,158,24,63,113,,,113,22,22,66,,17,17,162,125,,125,66,,,,119,119,22',
'22,6,50,,,37,88,,,118,49,,118,93,118,,118,37,125,22,21,,94,,21,89,4',
'11,7,21,93,44,24,23,,22,119,,,44,,24,,23,47,31,45,46,,,,45,46,36,,21',
'15,87,,,71,,162,,,,,,170,151,60,151,33,69,37,8,51,,,69,8,4,37,57,,,47',
'39,38,,47,125,39,18,38,,,,69,61,22,,,,,47,,113,31,113,,47,,118,,118',
',118,72,118,,,134,158,67,,,10,57,,,68,69,,,33,,,41,,119,,,41,,,,38,',
',,,,22,,22,,118,41,,,22,,22,69,71,63,41,41,41,22,41,68,,,63,69,,,22',
'113,113,,2,,27,,,,,,8,,,57,,,,49,,47,41,41,,33,41,57,49,,,,,9,,33,9',
',,,,87,,,22,,21,22,21,,113,,113,22,69,,7,,,,93,93,69,22,87,,,41,,22',
'90,84,41,41,41,41,41,41,,93,93,,,,57,,113,,68,,57,,,,,,15,,31,65,,,31',
'22,22,,,47,22,22,60,,22,135,66,9,21,,,21,9,9,,57,31,158,22,8,20,20,24',
'22,22,20,20,47,,20,,61,31,21,,22,,,31,56,63,69,,,69,,22,9,9,,,63,,,41',
'41,41,41,22,22,41,41,41,41,41,41,,,,,,31,49,,,,,41,,,31,,,49,,,17,,',
',21,,17,,,21,21,,22,,,,,22,22,,,9,22,,,41,41,,66,65,,,22,65,41,,93,',
',,,,,22,21,21,,,,31,,41,,,57,41,,,,,41,,,47,,23,25,,20,9,,25,,,22,,',
',,63,22,9,,120,,47,41,41,,21,,,22,,21,,,,,25,25,25,41,41,21,,37,,,17',
',,9,9,,,9,,,,,22,41,22,22,,,22,120,,,120,,22,25,25,25,,41,,,93,,26,93',
',,,26,,,,21,,,9,,,22,,,,,63,21,,22,,,,22,,,,25,63,26,,,,28,,,25,25,160',
'160,160,,,,,,,31,21,21,,,21,,,,41,,21,,,,,,26,,,9,,,,,,,,29,29,,22,29',
',,9,,,,,,9,33,,21,,22,,,,,,22,,22,,57,26,,,,,41,,41,,26,26,31,,22,69',
'41,,,25,,,29,29,29,29,,,,,,,41,,,,,,,,,,25,,,57,,21,,120,,,120,,120',
',120,,,,,,21,,,,,,21,,21,,,,28,,41,,,41,28,,,,,41,,,,,,,,,,41,26,,,',
',41,25,26,,,25,,,,25,25,,,,,,,,26,29,29,29,29,,,,25,,,,,,,52,41,41,25',
',52,41,41,,,41,,28,,28,,28,28,,120,,120,,120,41,120,,,,41,41,,,52,52',
'52,,,,,,,,,,26,,,,26,,,,,26,,,,,,,,,120,41,41,,,52,52,52,52,,,,,,,,',
'26,,160,160,,160,160,,160,121,121,121,123,,,,,29,,,,,,,41,,,,52,41,41',
',29,29,41,,,52,52,,,,,,41,,,,,,,,29,,,41,,28,,,,,,123,,123,,,29,,,,',
',,,,,,53,,,,,53,,,,,,,,41,25,,25,,,,,,25,,,41,,,,,,25,,53,53,53,,,,',
',,,,52,,,,,160,160,160,160,,41,,41,41,,28,41,28,,28,,,41,52,53,53,53',
'53,,121,121,121,121,,121,,,,,,25,,,25,,,,26,,26,,,,,,41,28,,,28,,,160',
',53,25,,,,,,,25,53,53,,,,,,,,28,52,,,,52,,29,,52,52,,,,,,121,121,121',
'121,28,,,,,,52,,123,,123,,41,,,26,52,,26,121,25,,,,,25,25,41,,,,,,41',
'123,41,123,25,123,,26,,,,,28,,,25,28,28,41,,,,,,53,,,25,25,,,,,,,,,',
',,,,,,,,,53,,,26,,28,,,,,,,,,,,,26,,,,,26,26,,25,,123,28,123,25,123',
',,,,,,,,25,,,,,123,,28,,,,,,,,,,26,26,,53,,,,53,,,,53,53,,123,,,,,,',
',,,,25,,,53,,,25,,,,,,,53,,,,,25,,26,28,,,52,26,52,,,,,29,52,,,26,,29',
',,,52,,,,,,,,25,25,,,25,,,,,,25,,,,,,,,,,,,,,,,,,,,,,,,26,25,,,,,,,',
'25,,52,26,25,52,,,,,,,,,28,,,,,,,,,,,,,52,,,,28,,,26,26,,,26,,,,,,26',
',,,29,,,,,,,,,,,25,,,,,,,,,,,,,,,25,,,26,,,25,26,25,,52,,,,,52,52,53',
',53,,,,,,53,,52,,,,,,,53,,,,52,,,,,,,,,,,,52,52,,,,,,,,,,,26,,,,,,,',
',,,,,,,26,,,,,,26,,26,,53,,,53,,,,,52,,,,,52,,,,,,,,,,52,,53,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,,52,,,,,,,,,,,53,52,,,,53,53',
',,,,,,,,,,53,,,,,,,,,,,53,,,,52,52,32,,52,,,,53,53,52,32,32,32,,,,,',
',,,,,32,32,32,,,,,,,,,52,,,,,,32,32,52,,,,52,,,,,,53,,,,,53,,,,,,,,',
',53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,,,,53,,,,,,53,52,,,,,,52',
',52,,,53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,53,,,53,,,,,,53,,,,,,,,,,',
',,,,,,32,32,32,,,32,32,,53,,,,,,,,53,,,,53,32,,,32,32,32,32,32,32,32',
'32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,,,,,,,32,32',
',,,,,,,32,,,,,,,32,,32,53,32,32,,,,,,,,,,,,,53,,,,,,53,,53,,,,,,,,,',
',,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32,,32',
'32,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32,,32,,32,,,,,,,,,,,,',
',,32,,,,,,,,,,32,32,32,,,,,,,,,,32,,,32,,,,,,,,,,,,,,,,,,,,,,,32,,,',
',,,,,,,,,,,,,,,,32,32,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32',
'32,,,32,32,32,32,,,,32,32,,,32,32,,,,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,',
',,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,32,,32,,,,,,,,,,,,,,32,32,32,32,,32,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,',
',,,,,,,32,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32' ]
        racc_goto_check = arr = ::Array.new(2890, 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,   102,    31,   nil,    83,   120,    58,    83,  -312,    -8,
  -506,  -540,  -686,   nil,  -362,     5,   124,    -9,  -195,    78,
    28,    75,     3,  -196,  -345,   780,   857,  -151,   834,   873,
    28,   -19,  1914,   -25,   nil,   nil,    23,  -156,    18,  -194,
  -355,   479,  -325,   nil,   111,    97,    98,   -48,   nil,    40,
    49,  -243,  1098,  1257,  -262,    68,   -69,    32,   nil,   nil,
    19,    48,  -245,     8,    93,   -58,    65,  -216,   -10,     3,
  -317,  -250,  -395,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    83,    95,   -54,   nil,    94,  -319,  -639,  -474,
  -318,    91,  -196,    15,  -552,    91,   107,   107,  -353,   110,
   107,  -538,   109,  -538,  -397,  -731,  -401,  -549,  -176,  -184,
  -398,  -655,  -725,  -378,  -468,  -743,  -445,   nil,  -507,  -436,
   156,   410,  -444,   549,  -548,  -529,   nil,  -514,  -670,  -740,
  -725,  -134,  -328,   141,  -271,   -11,   -50,   nil,   -53,   -46,
  -688,  -455,  -579,   nil,   nil,   150,   160,    50,   162,   163,
  -234,  -190,   163,   164,   165,  -340,  -340,  -328,  -270,   nil,
   363,  -433,  -564,  -428,  -595,   nil,  -593,  -727,   nil,   nil,
  -445 ]

racc_goto_default = [
   nil,   nil,   nil,     3,   nil,     4,   341,   287,   nil,   518,
   nil,   831,   nil,   284,   285,   nil,   nil,   nil,    11,    12,
    18,   223,   316,   nil,   nil,   221,   222,   nil,   277,    17,
   nil,   435,    21,    22,    23,    24,   nil,   669,   nil,   nil,
   nil,   304,   nil,    25,   406,    32,   nil,   nil,    34,    37,
    36,   nil,   218,   219,   353,   nil,   126,   414,   125,   128,
    75,    76,   nil,    46,   nil,   802,   407,   nil,   408,   419,
   624,   481,   275,   261,    47,    48,    49,    50,    51,    52,
    53,    54,    55,   nil,   262,    61,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   562,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   699,   546,   nil,   700,   919,   774,   534,   nil,
   535,   nil,   nil,   536,   nil,   538,   640,   nil,   nil,   nil,
   544,   nil,   nil,   nil,   735,   nil,   nil,   418,   nil,   nil,
   nil,   nil,   nil,    74,    77,    78,   nil,   nil,   nil,   nil,
   nil,   596,   nil,   nil,   nil,   nil,   nil,   nil,   816,   533,
   nil,   537,   548,   550,   786,   553,   554,   787,   557,   560,
   279 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 142, :_reduce_none,
  2, 143, :_reduce_2,
  0, 144, :_reduce_3,
  1, 144, :_reduce_4,
  3, 144, :_reduce_5,
  2, 144, :_reduce_6,
  1, 146, :_reduce_none,
  4, 146, :_reduce_8,
  4, 149, :_reduce_9,
  2, 150, :_reduce_10,
  0, 154, :_reduce_11,
  1, 154, :_reduce_12,
  3, 154, :_reduce_13,
  2, 154, :_reduce_14,
  1, 155, :_reduce_none,
  4, 155, :_reduce_16,
  0, 171, :_reduce_17,
  4, 148, :_reduce_18,
  3, 148, :_reduce_19,
  3, 148, :_reduce_20,
  3, 148, :_reduce_21,
  2, 148, :_reduce_22,
  3, 148, :_reduce_23,
  3, 148, :_reduce_24,
  3, 148, :_reduce_25,
  3, 148, :_reduce_26,
  3, 148, :_reduce_27,
  4, 148, :_reduce_28,
  1, 148, :_reduce_none,
  3, 148, :_reduce_30,
  3, 148, :_reduce_31,
  6, 148, :_reduce_32,
  5, 148, :_reduce_33,
  5, 148, :_reduce_34,
  5, 148, :_reduce_35,
  5, 148, :_reduce_36,
  3, 148, :_reduce_37,
  3, 148, :_reduce_38,
  3, 148, :_reduce_39,
  3, 148, :_reduce_40,
  1, 148, :_reduce_none,
  3, 159, :_reduce_42,
  3, 159, :_reduce_43,
  1, 170, :_reduce_none,
  3, 170, :_reduce_45,
  3, 170, :_reduce_46,
  3, 170, :_reduce_47,
  2, 170, :_reduce_48,
  1, 170, :_reduce_none,
  1, 158, :_reduce_none,
  1, 161, :_reduce_none,
  1, 161, :_reduce_none,
  1, 175, :_reduce_none,
  4, 175, :_reduce_54,
  0, 183, :_reduce_55,
  5, 180, :_reduce_56,
  1, 182, :_reduce_none,
  2, 174, :_reduce_58,
  3, 174, :_reduce_59,
  4, 174, :_reduce_60,
  5, 174, :_reduce_61,
  4, 174, :_reduce_62,
  5, 174, :_reduce_63,
  2, 174, :_reduce_64,
  2, 174, :_reduce_65,
  2, 174, :_reduce_66,
  2, 174, :_reduce_67,
  2, 174, :_reduce_68,
  1, 160, :_reduce_69,
  3, 160, :_reduce_70,
  1, 187, :_reduce_71,
  3, 187, :_reduce_72,
  1, 186, :_reduce_none,
  2, 186, :_reduce_74,
  3, 186, :_reduce_75,
  5, 186, :_reduce_76,
  2, 186, :_reduce_77,
  4, 186, :_reduce_78,
  2, 186, :_reduce_79,
  4, 186, :_reduce_80,
  1, 186, :_reduce_81,
  3, 186, :_reduce_82,
  1, 190, :_reduce_none,
  3, 190, :_reduce_84,
  2, 189, :_reduce_85,
  3, 189, :_reduce_86,
  1, 192, :_reduce_87,
  3, 192, :_reduce_88,
  1, 191, :_reduce_89,
  1, 191, :_reduce_90,
  4, 191, :_reduce_91,
  3, 191, :_reduce_92,
  3, 191, :_reduce_93,
  3, 191, :_reduce_94,
  3, 191, :_reduce_95,
  2, 191, :_reduce_96,
  1, 191, :_reduce_97,
  1, 167, :_reduce_98,
  1, 167, :_reduce_99,
  4, 167, :_reduce_100,
  3, 167, :_reduce_101,
  3, 167, :_reduce_102,
  3, 167, :_reduce_103,
  3, 167, :_reduce_104,
  2, 167, :_reduce_105,
  1, 167, :_reduce_106,
  1, 195, :_reduce_107,
  1, 195, :_reduce_none,
  2, 196, :_reduce_109,
  1, 196, :_reduce_110,
  3, 196, :_reduce_111,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 197, :_reduce_none,
  1, 200, :_reduce_117,
  1, 200, :_reduce_none,
  1, 156, :_reduce_none,
  1, 156, :_reduce_none,
  1, 157, :_reduce_121,
  0, 203, :_reduce_122,
  4, 157, :_reduce_123,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  1, 199, :_reduce_none,
  3, 173, :_reduce_195,
  5, 173, :_reduce_196,
  3, 173, :_reduce_197,
  5, 173, :_reduce_198,
  6, 173, :_reduce_199,
  5, 173, :_reduce_200,
  5, 173, :_reduce_201,
  5, 173, :_reduce_202,
  5, 173, :_reduce_203,
  4, 173, :_reduce_204,
  3, 173, :_reduce_205,
  3, 173, :_reduce_206,
  3, 173, :_reduce_207,
  3, 173, :_reduce_208,
  3, 173, :_reduce_209,
  3, 173, :_reduce_210,
  3, 173, :_reduce_211,
  3, 173, :_reduce_212,
  3, 173, :_reduce_213,
  4, 173, :_reduce_214,
  4, 173, :_reduce_215,
  2, 173, :_reduce_216,
  2, 173, :_reduce_217,
  3, 173, :_reduce_218,
  3, 173, :_reduce_219,
  3, 173, :_reduce_220,
  3, 173, :_reduce_221,
  3, 173, :_reduce_222,
  3, 173, :_reduce_223,
  3, 173, :_reduce_224,
  3, 173, :_reduce_225,
  3, 173, :_reduce_226,
  3, 173, :_reduce_227,
  3, 173, :_reduce_228,
  3, 173, :_reduce_229,
  3, 173, :_reduce_230,
  2, 173, :_reduce_231,
  2, 173, :_reduce_232,
  3, 173, :_reduce_233,
  3, 173, :_reduce_234,
  3, 173, :_reduce_235,
  3, 173, :_reduce_236,
  3, 173, :_reduce_237,
  6, 173, :_reduce_238,
  1, 173, :_reduce_none,
  1, 169, :_reduce_none,
  1, 205, :_reduce_none,
  2, 205, :_reduce_none,
  4, 205, :_reduce_243,
  2, 205, :_reduce_244,
  3, 210, :_reduce_245,
  0, 211, :_reduce_246,
  1, 211, :_reduce_none,
  0, 164, :_reduce_248,
  1, 164, :_reduce_none,
  2, 164, :_reduce_none,
  4, 164, :_reduce_251,
  2, 164, :_reduce_252,
  1, 185, :_reduce_253,
  2, 185, :_reduce_254,
  2, 185, :_reduce_255,
  4, 185, :_reduce_256,
  1, 185, :_reduce_257,
  0, 214, :_reduce_258,
  2, 179, :_reduce_259,
  2, 213, :_reduce_260,
  2, 212, :_reduce_261,
  0, 212, :_reduce_262,
  1, 207, :_reduce_263,
  2, 207, :_reduce_264,
  3, 207, :_reduce_265,
  4, 207, :_reduce_266,
  3, 168, :_reduce_267,
  4, 168, :_reduce_268,
  2, 168, :_reduce_269,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_none,
  1, 204, :_reduce_280,
  0, 237, :_reduce_281,
  4, 204, :_reduce_282,
  0, 238, :_reduce_283,
  0, 239, :_reduce_284,
  6, 204, :_reduce_285,
  0, 240, :_reduce_286,
  4, 204, :_reduce_287,
  3, 204, :_reduce_288,
  3, 204, :_reduce_289,
  2, 204, :_reduce_290,
  3, 204, :_reduce_291,
  3, 204, :_reduce_292,
  1, 204, :_reduce_293,
  4, 204, :_reduce_294,
  3, 204, :_reduce_295,
  1, 204, :_reduce_296,
  5, 204, :_reduce_297,
  4, 204, :_reduce_298,
  3, 204, :_reduce_299,
  2, 204, :_reduce_300,
  1, 204, :_reduce_none,
  2, 204, :_reduce_302,
  2, 204, :_reduce_303,
  6, 204, :_reduce_304,
  6, 204, :_reduce_305,
  0, 241, :_reduce_306,
  0, 242, :_reduce_307,
  7, 204, :_reduce_308,
  0, 243, :_reduce_309,
  0, 244, :_reduce_310,
  7, 204, :_reduce_311,
  5, 204, :_reduce_312,
  4, 204, :_reduce_313,
  0, 245, :_reduce_314,
  0, 246, :_reduce_315,
  9, 204, :_reduce_316,
  0, 247, :_reduce_317,
  6, 204, :_reduce_318,
  0, 248, :_reduce_319,
  7, 204, :_reduce_320,
  0, 249, :_reduce_321,
  5, 204, :_reduce_322,
  0, 250, :_reduce_323,
  6, 204, :_reduce_324,
  0, 251, :_reduce_325,
  0, 252, :_reduce_326,
  9, 204, :_reduce_327,
  1, 204, :_reduce_328,
  1, 204, :_reduce_329,
  1, 204, :_reduce_330,
  1, 204, :_reduce_331,
  1, 163, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  2, 228, :_reduce_335,
  1, 230, :_reduce_none,
  1, 230, :_reduce_none,
  1, 229, :_reduce_none,
  5, 229, :_reduce_339,
  1, 152, :_reduce_none,
  2, 152, :_reduce_341,
  1, 232, :_reduce_none,
  1, 232, :_reduce_none,
  1, 253, :_reduce_344,
  3, 253, :_reduce_345,
  1, 256, :_reduce_346,
  3, 256, :_reduce_347,
  1, 255, :_reduce_none,
  4, 255, :_reduce_349,
  6, 255, :_reduce_350,
  3, 255, :_reduce_351,
  5, 255, :_reduce_352,
  2, 255, :_reduce_353,
  4, 255, :_reduce_354,
  1, 255, :_reduce_355,
  3, 255, :_reduce_356,
  4, 257, :_reduce_357,
  2, 257, :_reduce_358,
  2, 257, :_reduce_359,
  1, 257, :_reduce_360,
  2, 262, :_reduce_361,
  0, 262, :_reduce_362,
  6, 263, :_reduce_363,
  8, 263, :_reduce_364,
  4, 263, :_reduce_365,
  6, 263, :_reduce_366,
  4, 263, :_reduce_367,
  2, 263, :_reduce_none,
  6, 263, :_reduce_369,
  2, 263, :_reduce_370,
  4, 263, :_reduce_371,
  6, 263, :_reduce_372,
  2, 263, :_reduce_373,
  4, 263, :_reduce_374,
  2, 263, :_reduce_375,
  4, 263, :_reduce_376,
  1, 263, :_reduce_none,
  0, 181, :_reduce_378,
  1, 181, :_reduce_379,
  3, 267, :_reduce_380,
  1, 267, :_reduce_381,
  4, 267, :_reduce_382,
  1, 268, :_reduce_383,
  4, 268, :_reduce_384,
  1, 269, :_reduce_385,
  3, 269, :_reduce_386,
  1, 270, :_reduce_387,
  1, 270, :_reduce_none,
  0, 274, :_reduce_389,
  3, 227, :_reduce_390,
  4, 272, :_reduce_391,
  1, 272, :_reduce_392,
  3, 273, :_reduce_393,
  3, 273, :_reduce_394,
  0, 277, :_reduce_395,
  5, 276, :_reduce_396,
  2, 176, :_reduce_397,
  4, 176, :_reduce_398,
  5, 176, :_reduce_399,
  5, 176, :_reduce_400,
  2, 226, :_reduce_401,
  4, 226, :_reduce_402,
  4, 226, :_reduce_403,
  3, 226, :_reduce_404,
  3, 226, :_reduce_405,
  3, 226, :_reduce_406,
  2, 226, :_reduce_407,
  1, 226, :_reduce_408,
  4, 226, :_reduce_409,
  0, 279, :_reduce_410,
  5, 225, :_reduce_411,
  0, 280, :_reduce_412,
  5, 225, :_reduce_413,
  5, 231, :_reduce_414,
  1, 281, :_reduce_415,
  1, 281, :_reduce_none,
  6, 151, :_reduce_417,
  0, 151, :_reduce_418,
  1, 282, :_reduce_419,
  1, 282, :_reduce_none,
  1, 282, :_reduce_none,
  2, 283, :_reduce_422,
  1, 283, :_reduce_none,
  2, 153, :_reduce_424,
  1, 153, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 216, :_reduce_429,
  1, 285, :_reduce_430,
  2, 285, :_reduce_431,
  3, 286, :_reduce_432,
  1, 286, :_reduce_433,
  1, 286, :_reduce_434,
  3, 217, :_reduce_435,
  4, 218, :_reduce_436,
  3, 219, :_reduce_437,
  0, 290, :_reduce_438,
  3, 290, :_reduce_439,
  1, 291, :_reduce_440,
  2, 291, :_reduce_441,
  3, 221, :_reduce_442,
  0, 293, :_reduce_443,
  3, 293, :_reduce_444,
  3, 220, :_reduce_445,
  3, 222, :_reduce_446,
  0, 294, :_reduce_447,
  3, 294, :_reduce_448,
  0, 295, :_reduce_449,
  3, 295, :_reduce_450,
  0, 287, :_reduce_451,
  2, 287, :_reduce_452,
  0, 288, :_reduce_453,
  2, 288, :_reduce_454,
  0, 289, :_reduce_455,
  2, 289, :_reduce_456,
  1, 292, :_reduce_457,
  2, 292, :_reduce_458,
  0, 297, :_reduce_459,
  4, 292, :_reduce_460,
  1, 296, :_reduce_461,
  1, 296, :_reduce_462,
  1, 296, :_reduce_463,
  1, 296, :_reduce_none,
  1, 201, :_reduce_465,
  3, 202, :_reduce_466,
  1, 284, :_reduce_467,
  1, 284, :_reduce_468,
  2, 284, :_reduce_469,
  2, 284, :_reduce_470,
  1, 193, :_reduce_471,
  1, 193, :_reduce_472,
  1, 193, :_reduce_473,
  1, 193, :_reduce_474,
  1, 193, :_reduce_475,
  1, 194, :_reduce_476,
  1, 194, :_reduce_477,
  1, 194, :_reduce_478,
  1, 194, :_reduce_479,
  1, 194, :_reduce_480,
  1, 194, :_reduce_481,
  1, 194, :_reduce_482,
  1, 223, :_reduce_483,
  1, 223, :_reduce_484,
  1, 162, :_reduce_485,
  1, 162, :_reduce_486,
  1, 166, :_reduce_487,
  1, 166, :_reduce_488,
  1, 233, :_reduce_489,
  0, 298, :_reduce_490,
  4, 233, :_reduce_491,
  2, 233, :_reduce_492,
  3, 235, :_reduce_493,
  2, 235, :_reduce_494,
  4, 299, :_reduce_495,
  2, 299, :_reduce_496,
  2, 299, :_reduce_497,
  1, 299, :_reduce_498,
  2, 301, :_reduce_499,
  0, 301, :_reduce_500,
  6, 275, :_reduce_501,
  8, 275, :_reduce_502,
  4, 275, :_reduce_503,
  6, 275, :_reduce_504,
  4, 275, :_reduce_505,
  6, 275, :_reduce_506,
  2, 275, :_reduce_507,
  4, 275, :_reduce_508,
  6, 275, :_reduce_509,
  2, 275, :_reduce_510,
  4, 275, :_reduce_511,
  2, 275, :_reduce_512,
  4, 275, :_reduce_513,
  1, 275, :_reduce_514,
  0, 275, :_reduce_515,
  1, 271, :_reduce_516,
  1, 271, :_reduce_517,
  1, 271, :_reduce_518,
  1, 271, :_reduce_519,
  1, 254, :_reduce_none,
  1, 254, :_reduce_none,
  1, 303, :_reduce_522,
  3, 303, :_reduce_523,
  1, 264, :_reduce_524,
  3, 264, :_reduce_525,
  2, 304, :_reduce_526,
  2, 305, :_reduce_527,
  1, 258, :_reduce_528,
  3, 258, :_reduce_529,
  1, 300, :_reduce_530,
  3, 300, :_reduce_531,
  1, 306, :_reduce_none,
  1, 306, :_reduce_none,
  2, 259, :_reduce_534,
  1, 259, :_reduce_535,
  3, 307, :_reduce_536,
  3, 308, :_reduce_537,
  1, 265, :_reduce_538,
  3, 265, :_reduce_539,
  1, 302, :_reduce_540,
  3, 302, :_reduce_541,
  1, 309, :_reduce_none,
  1, 309, :_reduce_none,
  2, 266, :_reduce_544,
  1, 266, :_reduce_545,
  1, 310, :_reduce_none,
  1, 310, :_reduce_none,
  2, 261, :_reduce_548,
  2, 260, :_reduce_549,
  0, 260, :_reduce_550,
  1, 236, :_reduce_none,
  3, 236, :_reduce_552,
  0, 224, :_reduce_553,
  2, 224, :_reduce_none,
  1, 209, :_reduce_555,
  3, 209, :_reduce_556,
  3, 311, :_reduce_557,
  2, 311, :_reduce_558,
  2, 311, :_reduce_559,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 184, :_reduce_none,
  1, 178, :_reduce_none,
  1, 178, :_reduce_none,
  1, 178, :_reduce_none,
  1, 178, :_reduce_none,
  1, 278, :_reduce_none,
  1, 278, :_reduce_none,
  1, 278, :_reduce_none,
  1, 177, :_reduce_none,
  1, 177, :_reduce_none,
  0, 145, :_reduce_none,
  1, 145, :_reduce_none,
  0, 172, :_reduce_none,
  1, 172, :_reduce_none,
  2, 188, :_reduce_576,
  2, 165, :_reduce_577,
  0, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 234, :_reduce_581,
  1, 234, :_reduce_none,
  1, 147, :_reduce_none,
  2, 147, :_reduce_none,
  0, 206, :_reduce_585 ]

racc_reduce_n = 586

racc_shift_n = 1014

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

racc_nt_base = 141

racc_use_result_var = true

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

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

Racc_debug_parser = false

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

# reduce 0 omitted

# reduce 1 omitted

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

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

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

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

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

# reduce 7 omitted

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

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

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

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

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

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

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

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

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

# reduce 15 omitted

def _reduce_16(val, _values, result)
                      if in_def?
                        diagnostic :error, :begin_in_method, nil, val[0]
                      end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 29 omitted

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

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

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

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

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

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

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

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

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

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

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

# reduce 41 omitted

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

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

# reduce 44 omitted

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

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

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

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

# reduce 49 omitted

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

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

def _reduce_55(val, _values, result)
                      @static_env.extend_dynamic
                    
    result
end

def _reduce_56(val, _values, result)
                      result = [ val[0], val[2], val[3], val[4] ]

                      @static_env.unextend
                    
    result
end

# reduce 57 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 73 omitted

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

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

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

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

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

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

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

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

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

# reduce 83 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 108 omitted

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

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

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

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

# reduce 116 omitted

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

# reduce 118 omitted

# reduce 119 omitted

# reduce 120 omitted

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

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

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

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

# reduce 175 omitted

# reduce 176 omitted

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

# reduce 180 omitted

# reduce 181 omitted

# reduce 182 omitted

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

# reduce 194 omitted

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

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

                      rescue_ = @builder.begin_body(val[2], [ rescue_body ])

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

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

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

                      rescue_ = @builder.begin_body(val[2], [ rescue_body ])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 239 omitted

# reduce 240 omitted

# reduce 241 omitted

# reduce 242 omitted

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

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

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

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

# reduce 247 omitted

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

# reduce 249 omitted

# reduce 250 omitted

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

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

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

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

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

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

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

def _reduce_258(val, _values, result)
                      result = @lexer.cmdarg.dup
                      @lexer.cmdarg.push(true)
                    
    result
end

def _reduce_259(val, _values, result)
                      @lexer.cmdarg = val[0]

                      result = val[1]
                    
    result
end

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

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

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

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

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

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

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

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

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

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

# reduce 270 omitted

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

# reduce 276 omitted

# reduce 277 omitted

# reduce 278 omitted

# reduce 279 omitted

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

def _reduce_281(val, _values, result)
                      result = @lexer.cmdarg.dup
                      @lexer.cmdarg.clear
                    
    result
end

def _reduce_282(val, _values, result)
                      @lexer.cmdarg = val[1]

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

def _reduce_283(val, _values, result)
                      result = @lexer.cmdarg.dup
                      @lexer.cmdarg.clear
                    
    result
end

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

def _reduce_285(val, _values, result)
                      @lexer.cmdarg = val[1]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 301 omitted

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

def _reduce_303(val, _values, result)
                      lambda_call = @builder.call_lambda(val[0])

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

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

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

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

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

def _reduce_308(val, _values, result)
                      result = @builder.loop(:while, val[0], val[2], val[3],
                                             val[5], val[6])
                    
    result
end

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

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

def _reduce_311(val, _values, result)
                      result = @builder.loop(:until, val[0], val[2], val[3],
                                             val[5], val[6])
                    
    result
end

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

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

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

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

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

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

def _reduce_316(val, _values, result)
                      result = @builder.for(val[0], val[1],
                                            val[2], val[4],
                                            val[5], val[7], val[8])
                    
    result
end

def _reduce_317(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                    
    result
end

def _reduce_318(val, _values, result)
                      if in_def?
                        diagnostic :error, :class_in_def, nil, val[0]
                      end

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

                      @lexer.pop_cmdarg
                      @static_env.unextend
                    
    result
end

def _reduce_319(val, _values, result)
                      result = @def_level
                      @def_level = 0

                      @static_env.extend_static
                      @lexer.push_cmdarg
                    
    result
end

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

                      @lexer.pop_cmdarg
                      @static_env.unextend

                      @def_level = val[4]
                    
    result
end

def _reduce_321(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                    
    result
end

def _reduce_322(val, _values, result)
                      if in_def?
                        diagnostic :error, :module_in_def, nil, val[0]
                      end

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

                      @lexer.pop_cmdarg
                      @static_env.unextend
                    
    result
end

def _reduce_323(val, _values, result)
                      @def_level += 1
                      @static_env.extend_static
                      @lexer.push_cmdarg
                    
    result
end

def _reduce_324(val, _values, result)
                      result = @builder.def_method(val[0], val[1],
                                  val[3], val[4], val[5])

                      @lexer.pop_cmdarg
                      @static_env.unextend
                      @def_level -= 1
                    
    result
end

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

def _reduce_326(val, _values, result)
                      @def_level += 1
                      @static_env.extend_static
                      @lexer.push_cmdarg
                    
    result
end

def _reduce_327(val, _values, result)
                      result = @builder.def_singleton(val[0], val[1], val[2],
                                  val[4], val[6], val[7], val[8])

                      @lexer.pop_cmdarg
                      @static_env.unextend
                      @def_level -= 1
                    
    result
end

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

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

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

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

# reduce 332 omitted

# reduce 333 omitted

# reduce 334 omitted

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

# reduce 336 omitted

# reduce 337 omitted

# reduce 338 omitted

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

# reduce 340 omitted

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

# reduce 342 omitted

# reduce 343 omitted

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

                      result = @builder.arg(val[0])
                    
    result
end

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

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

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

# reduce 348 omitted

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

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

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

                      result = val[0].
                                  push(@builder.restarg(val[2], val[3])).
                                  concat(val[5])
                    
    result
end

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

def _reduce_352(val, _values, result)
                      result = val[0].
                                  push(@builder.restarg(val[2])).
                                  concat(val[4])
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 368 omitted

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

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

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

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

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

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

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

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

# reduce 377 omitted

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

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

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

def _reduce_381(val, _values, result)
                      result = @builder.args(val[0], [], val[0])
                    
    result
end

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

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

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

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

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

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

# reduce 388 omitted

def _reduce_389(val, _values, result)
                      @static_env.extend_dynamic
                    
    result
end

def _reduce_390(val, _values, result)
                      result = [ val[1], val[2] ]

                      @static_env.unextend
                    
    result
end

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

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

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

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

def _reduce_395(val, _values, result)
                      @static_env.extend_dynamic
                    
    result
end

def _reduce_396(val, _values, result)
                      result = [ val[0], val[2], val[3], val[4] ]

                      @static_env.unextend
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_410(val, _values, result)
                      @static_env.extend_dynamic
                    
    result
end

def _reduce_411(val, _values, result)
                      result = [ val[0], val[2], val[3], val[4] ]

                      @static_env.unextend
                    
    result
end

def _reduce_412(val, _values, result)
                      @static_env.extend_dynamic
                    
    result
end

def _reduce_413(val, _values, result)
                      result = [ val[0], val[2], val[3], val[4] ]

                      @static_env.unextend
                    
    result
end

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

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

# reduce 416 omitted

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

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

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

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

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

# reduce 420 omitted

# reduce 421 omitted

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

# reduce 423 omitted

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

# reduce 425 omitted

# reduce 426 omitted

# reduce 427 omitted

# reduce 428 omitted

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

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

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

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

def _reduce_433(val, _values, result)
                      result = @builder.string(val[0])
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_460(val, _values, result)
                      @lexer.cond.lexpop
                      @lexer.cmdarg.lexpop

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

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

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

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

# reduce 464 omitted

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

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

def _reduce_467(val, _values, result)
                      result = @builder.integer(val[0])
                    
    result
end

def _reduce_468(val, _values, result)
                      result = @builder.float(val[0])
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_492(val, _values, result)
                      yyerrok
                      result = nil
                    
    result
end

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

                      @lexer.state = :expr_value
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 520 omitted

# reduce 521 omitted

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

                      result = @builder.arg(val[0])
                    
    result
end

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

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

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

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

                      @static_env.declare val[0][0]

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

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

                      @static_env.declare val[0][0]

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

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

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

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

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

# reduce 532 omitted

# reduce 533 omitted

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

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

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

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

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

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

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

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

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

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

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

# reduce 542 omitted

# reduce 543 omitted

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

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

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

# reduce 546 omitted

# reduce 547 omitted

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

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

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

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

# reduce 551 omitted

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

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

# reduce 554 omitted

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

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

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

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

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

# reduce 560 omitted

# reduce 561 omitted

# reduce 562 omitted

# reduce 563 omitted

# reduce 564 omitted

# reduce 565 omitted

# reduce 566 omitted

# reduce 567 omitted

# reduce 568 omitted

# reduce 569 omitted

# reduce 570 omitted

# reduce 571 omitted

# reduce 572 omitted

# reduce 573 omitted

# reduce 574 omitted

# reduce 575 omitted

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

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

# reduce 578 omitted

# reduce 579 omitted

# reduce 580 omitted

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

# reduce 582 omitted

# reduce 583 omitted

# reduce 584 omitted

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

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

  end   # class Ruby20
  end   # module Parser
