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

require 'racc/parser.rb'


require 'parser'

module Parser
  class Ruby20 < Parser::Base


  def version
    20
  end

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

clist = [
'-478,265,533,-99,265,865,-103,-478,-478,-478,214,-103,-478,-478,-478',
'612,-478,265,-286,-98,-101,612,-100,959,-478,612,-478,-478,-478,577',
'554,523,-104,-106,525,-100,-478,-478,533,-478,-478,-478,-478,-478,533',
'533,-105,-482,533,545,611,215,257,546,-482,575,611,612,-286,258,611',
'688,778,-101,539,260,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478',
'-478,-478,-478,-478,110,-102,-478,-478,-478,109,-478,-478,264,-102,-478',
'264,611,-478,-478,576,-478,-568,-478,106,-478,118,-478,-478,264,-478',
'-478,-478,-478,-478,-289,-478,-90,-478,864,-94,688,-289,-289,-289,110',
'574,203,-289,-289,109,-289,-478,-89,-103,-478,-478,-478,-478,-103,-478',
'553,-478,-101,-478,-100,-95,-97,-101,-91,-100,-289,-289,688,-289,-289',
'-289,-289,-289,-567,-96,110,204,-567,110,-92,109,110,110,109,110,110',
'109,109,816,109,109,-92,205,211,212,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,-289,-289,-289,-289,-289,211,212,-289,-289,-289,-490,595,210',
'-93,-102,-289,-94,510,-289,-102,-84,254,562,-289,110,-289,-70,-289,-289',
'109,-289,-289,-289,-289,-289,110,-289,-571,-289,312,109,-92,211,212',
'-571,-571,-571,211,212,834,-571,-571,-289,-571,257,-289,-289,-90,-95',
'-475,-289,258,-571,-99,-104,-571,-475,110,265,313,-105,215,109,-571',
'-571,439,-571,-571,-571,-571,-571,-92,-94,110,-92,-490,564,563,109,803',
'-92,664,663,662,-489,665,722,562,382,215,395,-413,-100,-571,-571,-571',
'-571,-571,-571,-571,-571,-571,-571,-571,-571,-571,-571,-571,438,-571',
'-571,-571,-94,596,-571,-94,440,-571,-106,-567,-571,-94,260,-571,441',
'-571,215,-571,-99,-571,-571,215,-571,-571,-571,-571,-571,-98,-571,-571',
'-571,562,-571,-413,214,264,562,729,472,-564,-413,564,563,567,-571,562',
'-571,-571,-571,-413,-93,882,-571,-571,-571,-571,-102,-478,-571,-571',
'-571,481,-571,803,-478,664,663,662,-413,665,-485,-571,-571,-571,-571',
'392,483,-485,485,-565,394,393,-571,-571,-91,-571,-571,-571,-571,-571',
'-100,-475,-484,681,680,564,563,744,-475,-484,564,563,578,-564,-571,720',
'492,-475,743,564,563,573,-571,-571,-571,-571,-571,-571,-571,-571,-571',
'-571,-571,-571,-571,-571,-564,-69,-571,-571,-571,-478,745,-571,562,215',
'-571,562,-478,-571,-571,495,-571,-565,-571,978,-571,-478,-571,-571,-103',
'-571,-571,-571,-571,-571,-571,-571,-571,-571,562,-101,590,-571,-486',
'209,-565,-483,-567,496,110,-486,-571,-571,-483,109,-571,-571,-571,-571',
'-289,-571,591,-571,-489,-102,510,-289,-289,-289,110,-571,-289,-289,-289',
'109,-289,968,564,563,569,564,563,560,969,110,-289,-289,-289,-92,109',
'523,-97,967,525,-101,-289,-289,-106,-289,-289,-289,-289,-289,564,563',
'565,-279,503,-94,269,-89,215,-96,-279,-103,260,-98,803,-105,664,663',
'662,-279,665,507,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289',
'-289,-289,-289,235,671,-289,-289,-289,-290,746,-289,211,212,-289,673',
'-290,-289,-289,799,-289,511,-289,512,-289,-290,-289,-289,940,-289,-289',
'-289,-289,-289,235,-289,232,-289,79,-480,234,233,110,230,231,-481,-480',
'109,681,680,80,-289,-481,674,-289,-289,-289,-289,-475,-289,81,-289,215',
'-104,526,-475,-475,-475,760,527,-475,-475,-475,803,-475,664,663,662',
'673,665,-290,235,-475,485,-475,-475,-475,-290,113,114,115,116,117,539',
'-475,-475,-290,-475,-475,-475,-475,-475,803,384,664,663,662,549,665',
'543,799,681,680,232,914,544,674,234,233,802,230,231,579,550,-475,-475',
'-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,235,799',
'-475,-475,-475,-487,-475,-475,513,582,-475,-263,-487,-475,-475,514,-475',
'584,-475,215,-475,-487,-475,-475,437,-475,-475,-475,-475,-475,588,-475',
'232,-475,589,235,234,233,803,260,664,663,662,523,665,523,525,-475,522',
'599,-475,-475,-475,-475,602,-475,235,-475,235,-475,286,69,70,71,9,57',
'235,232,235,63,64,234,233,215,67,799,65,66,68,30,31,72,73,215,802,215',
'963,215,29,28,27,98,97,99,100,-84,803,19,664,663,662,630,665,8,45,288',
'10,102,101,103,92,56,94,93,95,215,96,104,105,516,90,91,42,43,41,235',
'803,641,664,663,662,647,665,799,803,648,664,663,662,435,665,249,250',
'650,40,684,436,33,505,506,58,59,314,315,60,437,35,232,539,238,44,234',
'233,799,230,231,211,212,236,20,237,799,211,212,89,79,82,83,691,84,86',
'85,87,811,778,811,778,80,88,5,69,70,71,9,57,62,719,81,63,64,723,724',
'-264,67,730,65,66,68,30,31,72,73,113,114,115,116,117,29,28,27,98,97',
'99,100,472,803,19,664,663,662,472,665,8,45,7,10,102,101,103,92,56,94',
'93,95,215,96,104,105,748,90,91,42,43,41,235,-590,-590,-590,-590,241',
'243,-488,799,-590,-590,-333,254,483,-488,485,249,250,-333,40,771,641',
'33,-488,215,58,59,-333,260,60,260,35,232,641,238,44,234,233,235,230',
'231,242,240,236,20,237,235,778,215,89,79,82,83,787,84,86,85,87,790,791',
'793,795,80,88,286,69,70,71,9,57,62,797,81,63,64,806,807,808,67,778,65',
'66,68,30,31,72,73,113,114,115,116,117,29,28,27,98,97,99,100,815,911',
'19,664,663,662,215,665,8,45,288,10,102,101,103,92,56,94,93,95,215,96',
'104,105,824,90,91,42,43,41,235,239,244,245,246,241,243,251,252,247,248',
'541,-590,-590,-279,-265,249,250,542,40,833,-279,33,836,790,58,59,540',
'839,60,-279,35,232,841,238,44,234,233,843,230,231,242,240,236,20,237',
'845,215,847,89,79,82,83,848,84,86,85,87,851,853,854,641,80,88,286,69',
'70,71,9,57,62,856,81,63,64,-263,860,862,67,215,65,66,68,30,31,72,73',
'880,215,884,886,892,29,28,27,98,97,99,100,895,911,19,664,663,662,215',
'665,8,45,288,10,102,101,103,92,56,94,93,95,898,96,104,105,-266,90,91',
'42,43,41,235,-590,-590,-590,-590,241,243,501,-289,-590,-590,-290,908',
'915,502,-289,249,250,-290,40,-568,916,33,500,-289,58,59,-290,927,60',
'790,35,232,929,238,44,234,233,931,230,231,242,240,236,20,237,933,935',
'935,89,79,82,83,215,84,86,85,87,941,944,945,950,80,88,5,69,70,71,9,57',
'62,790,81,63,64,953,955,957,67,959,65,66,68,30,31,72,73,959,970,980',
'-568,-567,29,28,27,98,97,99,100,714,715,19,647,716,104,105,995,8,45',
'7,10,102,101,103,92,56,94,93,95,996,96,104,105,997,90,91,42,43,41,235',
'-590,-590,-590,-590,241,243,-488,-487,-590,-590,549,935,935,-488,-487',
'249,250,914,40,935,1002,33,-488,-487,58,59,550,980,60,1005,35,232,1006',
'238,44,234,233,1007,230,231,242,240,236,20,237,959,959,959,89,79,82',
'83,215,84,86,85,87,980,935,980,,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,549,90,91,42,43,41,235',
'548,-289,,,207,,,-289,-289,550,,208,,-568,-289,249,250,-289,40,-568',
'206,33,,-289,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,,,,,,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,,,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,,,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,,,290,,,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,,,,,600,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,,253,-573,-240',
',,62,,81,-573,-573,-573,,,-573,-573,-573,235,-573,,,,,,,,,-573,-573',
'-573,-573,,,249,250,,,,-573,-573,,-573,-573,-573,-573,-573,,,,232,,238',
',234,233,,230,231,,,,,,,,,,,-573,-573,-573,-573,-573,-573,-573,-573',
'-573,-573,-573,-573,-573,-573,,,-573,-573,-573,,,-573,,,-573,,,-573',
'-573,,-573,,-573,,-573,,-573,-573,,-573,-573,-573,-573,-573,,-573,-573',
'-573,,,,,,,,,,,,,,-573,,,-573,-573,-573,-573,,-573,,-573,286,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,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,5,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,-590,-590',
'-590,-590,241,243,,,-590,-590,,,,,,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,-590,-590,-590,-590,241',
'243,,,-590,-590,,,,,,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,252,247,248',
',-590,-590,,,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,-590,-590,-590,-590,241,243,,,-590,-590,,,,',
',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,,,,,585,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,,253,-572,,,,62,,81,-572',
'-572,-572,,,-572,-572,-572,235,-572,,,,,,,,,-572,-572,-572,-572,,,249',
'250,,,,-572,-572,,-572,-572,-572,-572,-572,,,,232,,238,,234,233,,230',
'231,,,,,,,,,,,-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,,-572,-572,-572,,,,,,,,,',
',,,,-572,,,-572,-572,-572,-572,,-572,,-572,286,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',
'288,10,102,101,103,92,56,94,93,95,,96,104,105,,90,91,42,43,41,235,,',
',,,,,,,,,,,,,249,250,,40,,,290,,,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,,,,,600',
'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,,,290',
',,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,-280,,,,62,,81,-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,-280,-280,-280,,-280,,-280,286,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,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,,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,,400,,,,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,,,,,,,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,,96,104,105,,90,91,42,43,41',
',,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,624,,,,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,,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,,498,,,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,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,,,,,,,,,,,,,,,,,,,,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,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,,,,,,,303,,,102,101,103',
'92,56,94,93,95,,96,104,105,,90,91,,,309,,,,,,,,,,,,,,,,,,,,850,,,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,,,,,,,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,,,,,,,,,,,,,,,,,,,,922,',
',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,,,,,,,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,,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,,,',
',,,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,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,,,,,,,,',
',,,,,,,,,,,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,,,,,,,,,,,,,,,,,,,,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,349,56,94,93,350,,96',
'104,105,,90,91,,,309,,,,,,,,,,,,,,,,,356,,,351,,,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,349,56,94,93,350,,96,104,105,,90,91,,',
'309,,,,,,,,,,,,,,,,,,,,351,,,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,,,,,,,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,,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,,,,,,,303,,,102,101,103,92,56,94,93,95,,96,104,105,,90',
'91,,,309,,,,,,,,,,,,,,,,,,,,850,,,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,,,,,,,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,,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,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,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220',
',,226,,,58,59,,,60,,624,,,,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,,,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,,400,,,,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,,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,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,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,,,,',
',,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,,,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,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,,,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,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,,253,,,,384,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,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,280,96,104,105,,90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,',
'226,,,58,59,,,60,,624,,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,,,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',
'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,,,,384,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,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,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,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,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,,,,,,,,,,,,,,,,,,,,344,',
',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,,,,,,,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,,,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,516,,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,,,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,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,280,96,104,105,,90,91,42,43,41,,,',
',,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,624,,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,,,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,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,,727,,,,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,,,227,,,,,,,45,,,102,101,103,92,56,94,93,95,,96,104,105',
',90,91,42,43,41,,,,,,,,,,,,,,,,,,,,220,,,226,,,58,59,,,60,,400,,,,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,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,235,239,244,245,246,241,243,251,252',
'247,248,,228,229,,,249,250,,220,,,226,,,58,59,,,60,,278,232,,238,44',
'234,233,,230,231,242,240,236,225,237,,,,89,79,82,83,,84,86,85,87,,,',
',80,88,,253,-246,,,,62,,81,-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,,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,759,-246,664,663,662,760,665,,,,-246,-246,,,,673,,,,,,-246,-246',
',-246,-246,-246,-246,-246,,,,,,,,,669,,,,,,,,,678,677,681,680,,,,674',
',,,,,,,,-246,,-296,,,,,-246,,-296,-296,-296,260,-246,-296,-296,-296',
'215,-296,,,,,,,,,,-296,-296,,,,,,-246,-246,,-296,-296,,-296,-296,-296',
'-296,-296,,,,,-246,,,-246,,,,,-246,,,,,,,,,,-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,-412,-296,,,,,,-412,-412,-412,,,-412,-412,-412,-296,-412',
',-296,-296,,-296,,-296,,-412,-412,-412,,,,,,,,,-412,-412,,-412,-412',
'-412,-412,-412,,,,,,,,,,,,,,,,,,,,,,,-412,-412,-412,-412,-412,-412,-412',
'-412,-412,-412,-412,-412,-412,-412,,,-412,-412,-412,,,-412,,260,-412',
',,-412,-412,,-412,,-412,,-412,,-412,-412,,-412,-412,-412,-412,-412,',
'-412,-412,-412,,,,,,,,,,,,,,-412,,,-412,-412,,-412,,-412,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,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,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,367,366,368,365,166,185',
'184,,,,,,165,172,163,164,362,363,364,360,123,94,93,361,,96,,,,,,154',
'155,,151,133,134,135,142,139,141,,,136,137,,,,156,157,143,144,,,,,,372',
',,,,,,,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,,,667',
',664,663,662,671,665,,,,,,232,,238,673,234,233,,230,231,242,240,236',
',237,235,239,244,245,246,241,243,251,252,247,248,669,228,229,,,249,250',
',253,678,677,681,680,,,,674,,,,,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',
'215,253,,,,667,,664,663,662,671,665,,,232,,238,,234,233,673,230,231',
'242,240,236,,237,235,239,244,245,246,241,243,251,252,247,248,,228,229',
'669,709,249,250,,253,,,,678,677,681,680,,,,674,,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,667,,664,663,662,671,665,,,,,,232,,238,673,234,233',
',230,231,242,240,236,,237,235,239,244,245,246,241,243,251,252,247,248',
'669,228,229,,,249,250,,253,678,677,681,680,,,,674,,,,,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,667,,664,663,662,671,665,,,,,,232,,238,673',
'234,233,,230,231,242,240,236,,237,235,239,244,245,246,241,243,251,252',
'247,248,669,228,229,,,249,250,,253,678,677,681,680,,,,674,,,,,232,,238',
',234,233,,230,231,242,240,236,,237,,,,,,408,412,,,409,,,,,,,,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,603',
'412,159,,604,,,,,,,,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,470,412,159,,471,,,,,,,,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,634,412,159,,635,,,,,,,,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,637',
'419,159,,638,,,,,,,,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,470,412,159,,471,,,,,,,,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,699,419,159,,700,,,,,,,',
'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',
'696,419,159,,697,,,,,,,,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,694,412,159,,695,,,,,,,,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,415,419,159,,414,,',
',,,,,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,605,419,159,,606,,,,,,,,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,991,412,159,,992,,,,,,,,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,993,419,159,,994',
',,,,,,,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,605,419,159,,606,,,,,,,,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,965,419,159,,964,,,,,,,,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,603,412,159',
',604,,,,,,,,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,159,664,663,662,671,665,803,,664,663,662,671,665,,673',
',,,,,759,673,664,663,662,760,665,,,,,,,,,673,669,,,,,,,669,,678,677',
'681,680,,,,674,,681,680,,669,,674,,,,,,,678,677,681,680,,,759,674,664',
'663,662,760,665,803,,664,663,662,760,665,803,673,664,663,662,760,665',
'803,673,664,663,662,671,665,,673,,,,,,,673,669,,,,,,,669,,678,677,681',
'680,,669,,674,,681,680,,669,,674,,681,680,,,,674,,681,680,,,667,674',
'664,663,662,671,665,,,,,,,,667,673,664,663,662,671,665,803,,664,663',
'662,760,665,803,673,664,663,662,760,665,,673,669,,,,,,673,,,678,677',
'681,680,,669,653,674,,,,,669,,678,677,681,680,,669,,674,,681,680,,,',
'674,,681,680,,,803,674,664,663,662,760,665,,759,,664,663,662,760,665',
'673,,,,,,,,673,,667,,664,663,662,671,665,,,,,,669,,,673,,,,,669,,,681',
'680,,,,674,678,677,681,680,,,,674,669,709,803,,664,663,662,671,665,678',
'677,681,680,,,,674,673,,803,,664,663,662,671,665,803,,664,663,662,671',
'665,,673,,,,,669,,673,,,,,,,,,681,680,,,,674,669,,,,,,,669,,,,681,680',
',,,674,,681,680,,,,674' ]
        racc_action_table = arr = ::Array.new(24902, 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 = [
'95,26,885,342,61,785,695,95,95,95,19,992,95,95,95,477,95,615,58,341',
'991,468,1012,1015,95,616,95,95,95,380,355,651,697,345,651,818,95,95',
'334,95,95,95,95,95,335,859,543,368,692,351,477,19,370,351,368,379,468',
'476,58,370,616,819,890,694,890,26,95,95,95,95,95,95,95,95,95,95,95,95',
'95,95,822,993,95,95,95,822,95,95,26,696,95,61,476,95,95,380,95,697,95',
'1,95,7,95,95,615,95,95,95,95,95,414,95,342,95,785,695,536,414,414,414',
'885,379,10,414,414,885,414,95,341,992,95,95,95,95,992,95,355,95,991',
'95,1012,697,345,991,818,1012,414,414,535,414,414,414,414,414,696,543',
'334,12,993,355,634,334,335,859,355,819,692,335,859,692,819,692,694,13',
'555,555,414,414,414,414,414,414,414,414,414,414,414,414,414,414,645',
'645,414,414,414,39,414,16,696,993,414,635,438,414,993,629,22,572,414',
'3,414,629,414,414,3,414,414,414,414,414,536,414,415,414,37,536,634,559',
'559,415,415,415,432,432,747,415,415,414,415,24,414,414,39,414,360,414',
'24,415,39,414,699,360,535,304,40,438,45,535,415,415,221,415,415,415',
'415,415,634,635,555,634,219,572,572,555,802,634,802,802,802,218,802',
'572,376,106,645,201,773,747,415,415,415,415,415,415,415,415,415,415',
'415,415,415,415,699,220,415,415,415,635,415,699,635,222,415,221,699',
'415,635,304,699,223,415,559,415,219,415,415,432,415,415,415,415,415',
'218,415,415,415,570,699,773,227,304,381,586,259,349,773,376,376,376',
'415,378,605,415,415,773,415,802,415,605,605,605,415,361,605,605,605',
'273,605,940,361,940,940,940,773,940,362,605,605,605,605,120,274,362',
'277,350,120,120,605,605,586,605,605,605,605,605,586,349,363,790,790',
'570,570,604,349,363,381,381,381,349,637,570,288,349,603,378,378,378',
'605,605,605,605,605,605,605,605,605,605,605,605,605,605,349,289,605',
'605,605,350,605,605,377,291,605,374,350,605,605,292,605,350,605,940',
'605,350,605,605,604,605,605,605,605,605,637,605,605,605,375,603,408',
'637,364,15,350,365,637,293,710,364,637,605,365,710,605,605,605,605,606',
'605,409,605,38,605,313,606,606,606,338,637,606,606,606,338,606,921,377',
'377,377,374,374,374,921,284,606,606,606,408,284,329,15,921,329,408,606',
'606,15,606,606,606,606,606,375,375,375,923,299,409,302,38,303,313,923',
'409,308,38,880,313,880,880,880,923,880,310,606,606,606,606,606,606,606',
'606,606,606,606,606,606,606,463,787,606,606,606,546,606,606,17,17,606',
'787,546,606,606,880,606,314,606,315,606,546,606,606,880,606,606,606',
'606,606,318,606,463,606,77,366,463,463,554,463,463,367,366,554,787,787',
'77,606,367,787,606,606,606,606,92,606,77,606,323,606,327,92,92,92,836',
'328,92,92,92,799,92,799,799,799,836,799,970,464,92,330,92,92,92,970',
'491,491,491,491,491,339,92,92,970,92,92,92,92,92,882,340,882,882,882',
'913,882,344,799,836,836,464,913,346,836,464,464,799,464,464,390,913',
'92,92,92,92,92,92,92,92,92,92,92,92,92,92,444,882,92,92,92,919,92,92',
'316,396,92,398,919,92,92,316,92,401,92,404,92,919,92,92,316,92,92,92',
'92,92,406,92,444,92,407,445,444,444,669,416,669,669,669,326,669,325',
'326,92,325,424,92,92,92,92,434,92,446,92,447,92,531,531,531,531,531',
'531,448,445,449,531,531,445,445,474,531,669,531,531,531,531,531,531',
'531,909,669,478,909,493,531,531,531,531,531,531,531,494,1002,531,1002',
'1002,1002,497,1002,531,531,531,531,531,531,531,531,531,531,531,531,499',
'531,531,531,504,531,531,531,531,531,454,980,508,980,980,980,517,980',
'1002,978,518,978,978,978,217,978,454,454,520,531,532,217,531,309,309',
'531,531,41,41,531,217,531,454,537,454,531,454,454,980,454,454,333,333',
'454,531,454,978,519,519,531,531,531,531,538,531,531,531,531,683,683',
'981,981,531,531,492,492,492,492,492,492,531,567,531,492,492,575,577',
'583,492,587,492,492,492,492,492,492,492,287,287,287,287,287,492,492',
'492,492,492,492,492,592,941,492,941,941,941,597,941,492,492,492,492',
'492,492,492,492,492,492,492,492,607,492,492,492,609,492,492,492,492',
'492,453,453,453,453,453,453,453,920,941,453,453,46,614,621,920,623,453',
'453,46,492,628,631,492,920,633,492,492,46,636,492,639,492,453,640,453',
'492,453,453,643,453,453,453,453,453,492,453,644,646,649,492,492,492',
'492,655,492,492,492,492,656,658,659,660,492,492,718,718,718,718,718',
'718,492,667,492,718,718,675,679,682,718,685,718,718,718,718,718,718',
'718,6,6,6,6,6,718,718,718,718,718,718,718,690,847,718,847,847,847,693',
'847,718,718,718,718,718,718,718,718,718,718,718,718,702,718,718,718',
'707,718,718,718,718,718,443,443,443,443,443,443,443,443,443,443,443',
'343,443,443,300,726,443,443,343,718,731,300,718,749,750,718,718,343',
'752,718,300,718,443,753,443,718,443,443,754,443,443,443,443,443,718',
'443,756,757,758,718,718,718,718,759,718,718,718,718,763,767,768,772',
'718,718,708,708,708,708,708,708,718,776,718,708,708,779,780,783,708',
'786,708,708,708,708,708,708,708,801,804,809,812,821,708,708,708,708',
'708,708,708,825,963,708,963,963,963,826,963,708,708,708,708,708,708',
'708,708,708,708,708,708,829,708,708,708,830,708,708,708,708,708,460',
'460,460,460,460,460,460,298,994,460,460,503,846,850,298,994,460,460',
'503,708,994,852,708,298,994,708,708,503,866,708,867,708,460,871,460',
'708,460,460,872,460,460,460,460,460,708,460,874,875,877,708,708,708',
'708,879,708,708,708,708,881,887,888,894,708,708,0,0,0,0,0,0,708,899',
'708,0,0,902,903,904,0,905,0,0,0,0,0,0,0,907,922,942,964,965,0,0,0,0',
'0,0,0,563,563,0,966,563,563,563,971,0,0,0,0,0,0,0,0,0,0,0,0,972,0,0',
'0,973,0,0,0,0,0,458,458,458,458,458,458,458,297,296,458,458,849,974',
'975,297,296,458,458,849,0,976,977,0,297,296,0,0,849,979,0,982,0,458',
'983,458,0,458,458,984,458,458,458,458,458,0,458,985,986,987,0,0,0,0',
'990,0,0,0,0,1003,1013,1014,,0,0,766,766,766,766,766,766,0,,0,766,766',
',,,766,,766,766,766,766,766,766,766,,,,,,766,766,766,766,766,766,766',
',,766,,,,,,766,766,766,766,766,766,766,766,766,766,766,766,,766,766',
'766,353,766,766,766,766,766,457,353,700,,,14,,,638,700,353,,14,,700',
'638,457,457,700,766,638,14,766,,638,766,766,,,766,,766,457,,457,766',
'457,457,,457,457,,,457,766,457,,,,766,766,766,766,,766,766,766,766,',
',,,766,766,203,203,203,203,203,203,766,,766,203,203,,,,203,,203,203',
'203,203,203,203,203,,,,,,203,203,203,203,203,203,203,,,203,,,,,,203',
'203,203,203,203,203,203,203,203,203,203,203,,203,203,203,,203,203,203',
'203,203,456,,,,,,,,,,,,,,,,456,456,,203,,,203,,,203,203,,,203,,203,456',
',456,203,456,456,,456,456,,,456,203,456,,,,203,203,203,203,,203,203',
'203,203,,,,,203,203,926,926,926,926,926,926,203,,203,926,926,,,,926',
',926,926,926,926,926,926,926,,,,,,926,926,926,926,926,926,926,,,926',
',,,,,926,926,926,926,926,926,926,926,926,926,926,926,,926,926,926,,926',
'926,926,926,926,455,,,,,,,,,,,,,,,,455,455,,926,,,926,,,926,926,,,926',
',926,455,,455,926,455,455,,455,455,,,455,926,455,,,,926,926,926,926',
',926,926,926,926,,,,,926,926,295,295,295,295,295,295,926,,926,295,295',
',,,295,,295,295,295,295,295,295,295,,,,,,295,295,295,295,295,295,295',
',,295,,,,,,295,295,295,295,295,295,295,295,295,295,295,295,,295,295',
'295,,295,295,295,295,295,466,466,466,466,466,466,466,466,,466,466,,',
',,,466,466,,295,,,295,,,295,295,,,295,,295,466,,466,295,466,466,,466',
'466,466,466,466,295,466,,,,295,295,295,295,,295,295,295,295,,,,,295',
'295,925,925,925,925,925,925,295,,295,925,925,,,,925,,925,925,925,925',
'925,925,925,,,,,,925,925,925,925,925,925,925,,,925,,,,,427,925,925,925',
'925,925,925,925,925,925,925,925,925,,925,925,925,,925,925,925,925,925',
'427,427,427,427,427,427,427,427,427,427,427,,427,427,,,427,427,,925',
',,925,,,925,925,,,925,,925,427,,427,925,427,427,,427,427,427,427,427',
'925,427,,,,925,925,925,925,,925,925,925,925,,,,,925,925,,427,420,427',
',,925,,925,420,420,420,,,420,420,420,451,420,,,,,,,,,420,420,420,420',
',,451,451,,,,420,420,,420,420,420,420,420,,,,451,,451,,451,451,,451',
'451,,,,,,,,,,,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,,420,,420',
'226,226,226,226,226,226,,,,226,226,,,,226,,226,226,226,226,226,226,226',
',,,,,226,226,226,226,226,226,226,,,226,,,,,,226,226,226,226,226,226',
'226,226,226,226,226,226,,226,226,226,,226,226,226,226,226,465,465,465',
'465,465,465,465,,,465,465,,,,,,465,465,,226,,,226,,,226,226,,,226,,226',
'465,,465,226,465,465,,465,465,465,465,465,226,465,,,,226,226,226,226',
',226,226,226,226,,,,,226,226,118,118,118,118,118,118,226,,226,118,118',
',,,118,,118,118,118,118,118,118,118,,,,,,118,118,118,118,118,118,118',
',,118,,,,,,118,118,118,118,118,118,118,118,118,118,118,118,,118,118',
'118,,118,118,118,118,118,462,462,462,462,462,462,462,,,462,462,,,,,',
'462,462,,118,,,118,,,118,118,,,118,,118,462,,462,118,462,462,,462,462',
'462,462,462,118,462,,,,118,118,118,118,,118,118,118,118,,,,,118,118',
'534,534,534,534,534,534,118,,118,534,534,,,,534,,534,534,534,534,534',
'534,534,,,,,,534,534,534,534,534,534,534,,,534,,,,,,534,534,534,534',
'534,534,534,534,534,534,534,534,,534,534,534,,534,534,534,534,534,461',
'461,461,461,461,461,461,,,461,461,,,,,,461,461,,534,,,534,,,534,534',
',,534,,534,461,,461,534,461,461,,461,461,461,461,461,534,461,,,,534',
'534,534,534,,534,534,534,534,,,,,534,534,856,856,856,856,856,856,534',
',534,856,856,,,,856,,856,856,856,856,856,856,856,,,,,,856,856,856,856',
'856,856,856,,,856,,,,,,856,856,856,856,856,856,856,856,856,856,856,856',
',856,856,856,,856,856,856,856,856,442,442,442,442,442,442,442,442,442',
'442,442,,442,442,,,442,442,,856,,,856,,,856,856,,,856,,856,442,,442',
'856,442,442,,442,442,442,442,442,856,442,,,,856,856,856,856,,856,856',
'856,856,,,,,856,856,918,918,918,918,918,918,856,,856,918,918,,,,918',
',918,918,918,918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918',
',,,,,918,918,918,918,918,918,918,918,918,918,918,918,,918,918,918,,918',
'918,918,918,918,459,459,459,459,459,459,459,,,459,459,,,,,,459,459,',
'918,,,918,,,918,918,,,918,,918,459,,459,918,459,459,,459,459,459,459',
'459,918,459,,,,918,918,918,918,,918,918,918,918,,,,,918,918,951,951',
'951,951,951,951,918,,918,951,951,,,,951,,951,951,951,951,951,951,951',
',,,,,951,951,951,951,951,951,951,,,951,,,,,403,951,951,951,951,951,951',
'951,951,951,951,951,951,,951,951,951,,951,951,951,951,951,403,403,403',
'403,403,403,403,403,403,403,403,,403,403,,,403,403,,951,,,951,,,951',
'951,,,951,,951,403,,403,951,403,403,,403,403,403,403,403,951,403,,,',
'951,951,951,951,,951,951,951,951,,,,,951,951,,403,419,,,,951,,951,419',
'419,419,,,419,419,419,450,419,,,,,,,,,419,419,419,419,,,450,450,,,,419',
'419,,419,419,419,419,419,,,,450,,450,,450,450,,450,450,,,,,,,,,,,419',
'419,419,419,419,419,419,419,419,419,419,419,419,419,,,419,419,419,,',
'419,,,419,,,419,419,,419,,419,,419,,419,419,,419,419,419,419,419,,419',
'419,419,,,,,,,,,,,,,,419,,,419,419,419,419,,419,,419,33,33,33,33,33',
'33,,,,33,33,,,,33,,33,33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,',
'33,,,,,,33,33,33,33,33,33,33,33,33,33,33,33,,33,33,33,,33,33,33,33,33',
'452,,,,,,,,,,,,,,,,452,452,,33,,,33,,,33,33,,,33,,33,452,,,33,452,452',
',452,452,,,,33,,,,,33,33,33,33,,33,33,33,33,,,,,33,33,619,619,619,619',
'619,619,33,,33,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,619,949,949,949,949,949,949,619,,619,949,949,,,',
'949,,949,949,949,949,949,949,949,,,,,,949,949,949,949,949,949,949,,',
'949,,,,,,949,949,949,949,949,949,949,949,949,949,949,949,,949,949,949',
',949,949,949,949,949,,,,,,,,,,,,,,,,,,,,949,,,949,,,949,949,,,949,,949',
',,,949,,,,,,,,,949,,,,,949,949,949,949,,949,949,949,949,,,,,949,949',
'813,813,813,813,813,813,949,,949,813,813,,,,813,,813,813,813,813,813',
'813,813,,,,,,813,813,813,813,813,813,813,,,813,,,,,,813,813,813,813',
'813,813,813,813,813,813,813,813,,813,813,813,,813,813,813,813,813,,',
',,,,,,,,,,,,,,,,,813,,,813,,,813,813,,,813,,813,,,,813,,,,,,,,,813,',
',,,813,813,813,813,,813,813,813,813,,,,,813,813,703,703,703,703,703',
'703,813,,813,703,703,,,,703,,703,703,703,703,703,703,703,,,,,,703,703',
'703,703,703,703,703,,,703,,,,,,703,703,703,703,703,703,703,703,703,703',
'703,703,,703,703,703,,703,703,703,703,703,,,,,,,,,,,,,,,,,,,,703,,,703',
',,703,703,,,703,,703,,,,703,,,,,,,,,703,,,,,703,703,703,703,,703,703',
'703,703,,,,,703,703,814,814,814,814,814,814,703,,703,814,814,,,,814',
',814,814,814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814',
',,,,,814,814,814,814,814,814,814,814,814,814,814,814,,814,814,814,,814',
'814,814,814,814,,,,,,,,,,,,,,,,,,,,814,,,814,,,814,814,,,814,,814,,',
',814,,,,,,,,,814,,,,,814,814,814,814,,814,814,814,814,,,,,814,814,618',
'618,618,618,618,618,814,,814,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,321,321,321,321,321,321,618',
',618,321,321,,,,321,,321,321,321,321,321,321,321,,,,,,321,321,321,321',
'321,321,321,,,321,,,,,,321,321,321,321,321,321,321,321,321,321,321,321',
',321,321,321,,321,321,321,321,321,,,,,,,,,,,,,,,,,,,,321,,,321,,,321',
'321,,,321,,321,,,,321,,,,,,,,,321,,,,,321,321,321,321,,321,321,321,321',
',,,,321,321,613,613,613,613,613,613,321,,321,613,613,,,,613,,613,613',
'613,613,613,613,613,,,,,,613,613,613,613,613,613,613,,,613,,,,,,613',
'613,613,613,613,613,613,613,613,613,613,613,,613,613,613,,613,613,613',
'613,613,,,,,,,,,,,,,,,,,,,,613,,,613,,,613,613,,,613,,613,,,,613,,,',
',,,,,613,,,,,613,613,613,613,,613,613,613,613,,,,,613,613,817,817,817',
'817,817,817,613,,613,817,817,,,,817,,817,817,817,817,817,817,817,,,',
',,817,817,817,817,817,817,817,,,817,,,,,,817,817,817,817,817,817,817',
'817,817,817,817,817,,817,817,817,,817,817,817,817,817,,,,,,,,,,,,,,',
',,,,,817,,,817,,,817,817,,,817,,817,,,,817,,,,,,,,,817,,,,,817,817,817',
'817,,817,817,817,817,,,,,817,817,778,778,778,778,778,778,817,,817,778',
'778,,,,778,,778,778,778,778,778,778,778,,,,,,778,778,778,778,778,778',
'778,,,778,,,,,,778,778,778,778,778,778,778,778,778,778,778,778,,778',
'778,778,,778,778,778,778,778,,,,,,,,,,,,,,,,,,,,778,,,778,,,778,778',
',,778,,778,,,,778,,,,,,,,,778,,,,,778,778,778,778,,778,778,778,778,',
',,,778,778,943,943,943,943,943,943,778,,778,943,943,,,,943,,943,943',
'943,943,943,943,943,,,,,,943,943,943,943,943,943,943,,,943,,,,,,943',
'943,943,943,943,943,943,943,943,943,943,943,,943,943,943,,943,943,943',
'943,943,,,,,,,,,,,,,,,,,,,,943,,,943,,,943,943,,,943,,943,,,,943,,,',
',,,,,943,,,,,943,943,943,943,,943,943,943,943,,,,,943,943,556,556,556',
'556,556,556,943,,943,556,556,,,,556,,556,556,556,556,556,556,556,,,',
',,556,556,556,556,556,556,556,,,556,,,,,,556,556,556,556,556,556,556',
'556,556,556,556,556,,556,556,556,,556,556,556,556,556,,,,,,,,,,,,,,',
',,,,,556,,,556,,,556,556,,,556,,556,,,,556,,,,,,,,,556,,,,,556,556,556',
'556,,556,556,556,556,,,,,556,556,290,290,290,290,290,290,556,,556,290',
'290,,,,290,,290,290,290,290,290,290,290,,,,,,290,290,290,290,290,290',
'290,,,290,,,,,608,290,290,290,290,290,290,290,290,290,290,290,290,,290',
'290,290,,290,290,290,290,290,608,608,608,608,608,608,608,608,608,608',
'608,,608,608,,,608,608,,290,,,290,,,290,290,,,290,,290,608,,608,290',
'608,608,,608,608,608,608,608,290,608,,,,290,290,290,290,,290,290,290',
'290,,,,,290,290,,608,56,,,,290,,290,56,56,56,,,56,56,56,,56,,,,,,,,',
',56,56,56,,,,,,,,56,56,,56,56,56,56,56,,,,,,,,,,,,,,,,,,,,,,,56,56,56',
'56,56,56,56,56,56,56,56,56,56,56,,,56,56,56,,,56,,,56,,,56,56,,56,,56',
',56,,56,56,,56,56,56,56,56,,56,,56,,,,,,,,,,,,,,56,,,56,56,56,56,,56',
',56,823,823,823,823,823,823,,,,823,823,,,,823,,823,823,823,823,823,823',
'823,,,,,,823,823,823,823,823,823,823,,,823,,,,,,823,823,823,823,823',
'823,823,823,823,823,823,823,,823,823,823,,823,823,823,823,823,,,,,,',
',,,,,,,,,,,,,823,,,823,,,823,823,,,823,,823,,,,823,,,,,,,,,823,,,,,823',
'823,823,823,,823,823,823,823,,,,,823,823,,647,647,647,,647,823,,823',
'647,647,,,,647,,647,647,647,647,647,647,647,,,,,,647,647,647,647,647',
'647,647,,,647,,,,,,,647,,,647,647,647,647,647,647,647,647,,647,647,647',
',647,647,647,647,647,,,,,,,,,,,,,,,,,,,,647,,,647,,,647,647,,,647,,647',
',,,647,,,,,,,,,647,,,,,647,647,647,647,,647,647,647,647,,,,,647,647',
',286,286,286,286,286,647,,647,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,,232,232,232,,232,286,,286,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,',
'811,811,811,,811,232,,232,811,811,,,,811,,811,811,811,811,811,811,811',
',,,,,811,811,811,811,811,811,811,,,811,,,,,,,811,,,811,811,811,811,811',
'811,811,811,,811,811,811,,811,811,811,811,811,,,,,,,,,,,,,,,,,,,,811',
',,811,,,811,811,,,811,,,,,,811,,,,,,,,,811,,,,,811,811,811,811,,811',
'811,811,811,,,,,811,811,,816,816,816,,816,811,,811,816,816,,,,816,,816',
'816,816,816,816,816,816,,,,,,816,816,816,816,816,816,816,,,816,,,,,',
',816,,,816,816,816,816,816,816,816,816,,816,816,816,,816,816,816,816',
'816,,,,,,,,,,,,,,,,,,,,816,,,816,,,816,816,,,816,,816,,,,816,,,,,,,',
',816,,,,,816,816,816,816,,816,816,816,816,,,,,816,816,,231,231,231,',
'231,816,,816,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,,29,29,29,,29,231,,231,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,,294,294,294,,294,31,,31,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,21,21',
'21,21,21,21,21,21,21,21,21,,21,21,,,21,21,,294,,,294,,,294,294,,,294',
',,21,,21,,21,21,,21,21,21,21,21,,21,,,,294,294,294,294,,294,294,294',
'294,,,,,294,294,,21,,294,,,294,,294,230,230,230,,230,,,,230,230,,,,230',
',230,230,230,230,230,230,230,,,,,,230,230,230,230,230,230,230,,,230',
',,,,,,230,,,230,230,230,230,230,230,230,230,,230,230,230,,230,230,230',
'230,230,,,,,,,,,,,,,,,,,,,,230,,,230,,,230,230,,,230,,,,,,230,,,,,,',
',,230,,,,,230,230,230,230,,230,230,230,230,,,,,230,230,,833,833,833',
',833,230,,230,833,833,,,,833,,833,833,833,833,833,833,833,,,,,,833,833',
'833,833,833,833,833,,,833,,,,,,,833,,,833,833,833,833,833,833,833,833',
'833,833,833,833,,833,833,833,833,833,,,,,,,,,,,,,,,,,,,,833,,,833,,',
'833,833,,,833,,,,833,,833,,,833,,,,,,833,,,,,833,833,833,833,,833,833',
'833,833,,,,,833,833,,834,834,834,,834,833,,833,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,,641,641,641,,641,834',
',834,641,641,,,,641,,641,641,641,641,641,641,641,,,,,,641,641,641,641',
'641,641,641,,,641,,,,,,,641,,,641,641,641,641,641,641,641,641,,641,641',
'641,,641,641,,,641,,,,,,,,,,,,,,,,,,,,641,,,641,,,641,641,,,641,,,,',
',,,,,,,,,,,,,,,641,641,641,641,,641,641,641,641,,,,,641,641,,229,229',
'229,,229,641,,641,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,,228,228,228,,228,229,,229,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,,20,20,20,,20,228,,228,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,,848,848,848,,848,20,,20,848,848,,,,848,,848,848,848,848',
'848,848,848,,,,,,848,848,848,848,848,848,848,,,848,,,,,,,848,,,848,848',
'848,848,848,848,848,848,,848,848,848,,848,848,,,848,,,,,,,,,,,,,,,,',
',,,848,,,848,,,848,848,,,848,,,,,,,,,,,,,,,,,,,,848,848,848,848,,848',
'848,848,848,,,,,848,848,,225,225,225,,225,848,,848,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,,630,630,630,,630,225',
',225,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,,860,860',
'860,,860,630,,630,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860',
'860,860,860,860,860,860,,,860,,,,,,,860,,,860,860,860,860,860,860,860',
'860,,860,860,860,,860,860,,,860,,,,,,,,,,,,,,,,,,,,860,,,860,,,860,860',
',,860,,,,,,,,,,,,,,,,,,,,860,860,860,860,,860,860,860,860,,,,,860,860',
',624,624,624,,624,860,,860,624,624,,,,624,,624,624,624,624,624,624,624',
',,,,,624,624,624,624,624,624,624,,,624,,,,,,,624,,,624,624,624,624,624',
'624,624,624,,624,624,624,,624,624,624,624,624,,,,,,,,,,,,,,,,,,,,624',
',,624,,,624,624,,,624,,,,,,624,,,,,,,,,624,,,,,624,624,624,624,,624',
'624,624,624,,,,,624,624,,34,34,34,,34,624,,624,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,,,,,,,35,,,35,35,35,35,35,35,35,35,,35,35,35,,35,35,,,35,832',
'832,832,832,832,832,832,832,832,832,832,,832,832,,,832,832,,35,,,35',
',,35,35,,,35,,,832,,832,,832,832,,832,832,832,832,832,,832,,,,35,35',
'35,35,,35,35,35,35,,,,,35,35,,832,,35,,,35,,35,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,5,5,5,,,,,5,5,,311,311,311,,311,5,,5,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,,69,69,69,,69,311,,311',
'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,,248,248,248,,248,70,,70',
'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',
',727,727,727,,727,248,,248,727,727,,,,727,,727,727,727,727,727,727,727',
',,,,,727,727,727,727,727,727,727,,,727,,,,,,,727,,,727,727,727,727,727',
'727,727,727,,727,727,727,,727,727,727,727,727,,,,,,,,,,,,,,,,,,,,727',
',,727,,,727,727,,,727,,,,,,727,,,,,,,,,727,,,,,727,727,727,727,,727',
'727,727,727,,,,,727,727,,729,729,729,,729,727,,727,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,,249,249,249,,249,729',
',729,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',
',245,245,245,,245,249,,249,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,,244,244,244,,244,245,,245,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,,243,243,243,,243,244',
',244,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',
',743,743,743,,743,243,,243,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,,744,744,744,,744,743,,743,744,744,,,,744,,744',
'744,744,744,744,744,744,,,,,,744,744,744,744,744,744,744,,,744,,,,,',
',744,,,744,744,744,744,744,744,744,744,,744,744,744,,744,744,744,744',
'744,,,,,,,,,,,,,,,,,,,,744,,,744,,,744,744,,,744,,,,,,744,,,,,,,,,744',
',,,,744,744,744,744,,744,744,744,744,,,,,744,744,,745,745,745,,745,744',
',744,745,745,,,,745,,745,745,745,745,745,745,745,,,,,,745,745,745,745',
'745,745,745,,,745,,,,,,,745,,,745,745,745,745,745,745,745,745,,745,745',
'745,,745,745,745,745,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,745,745,,,745',
',,,,,745,,,,,,,,,745,,,,,745,745,745,745,,745,745,745,745,,,,,745,745',
',746,746,746,,746,745,,745,746,746,,,,746,,746,746,746,746,746,746,746',
',,,,,746,746,746,746,746,746,746,,,746,,,,,,,746,,,746,746,746,746,746',
'746,746,746,,746,746,746,,746,746,746,746,746,,,,,,,,,,,,,,,,,,,,746',
',,746,,,746,746,,,746,,,,,,746,,,,,,,,,746,,,,,746,746,746,746,,746',
'746,746,746,,,,,746,746,,242,242,242,,242,746,,746,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,,748,748,748,,748,242',
',242,748,748,,,,748,,748,748,748,748,748,748,748,,,,,,748,748,748,748',
'748,748,748,,,748,,,,,,,748,,,748,748,748,748,748,748,748,748,,748,748',
'748,,748,748,748,748,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748',
',,,,,748,,,,,,,,,748,,,,,748,748,748,748,,748,748,748,748,,,,,748,748',
',250,250,250,,250,748,,748,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,,241,241,241,,241,253,,253,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,,240,240,240,,240,241',
',241,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',
',260,260,260,,260,240,,240,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,760,760,760,,760,269,,269',
'760,760,,,,760,,760,760,760,760,760,760,760,,,,,,760,760,760,760,760',
'760,760,,,760,,,,,,,760,,,760,760,760,760,760,760,760,760,,760,760,760',
',760,760,,,760,,,,,,,,,,,,,,,,,,,,760,,,760,,,760,760,,,760,,,,,,,,',
',,,,,,,,,,,760,760,760,760,,760,760,760,760,,,,,760,760,,671,671,671',
',671,760,,760,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,671,671',
',,,,671,671,,239,239,239,,239,671,,671,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,,276,276,276,,276,239,,239,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,',
'698,698,698,,698,276,,276,698,698,,,,698,,698,698,698,698,698,698,698',
',,,,,698,698,698,698,698,698,698,,,698,,,,,,,698,,,698,698,698,698,698',
'698,698,698,,698,698,698,,698,698,698,698,698,,,,,,,,,,,,,,,,,,,,698',
',,698,,,698,698,,,698,,,,,,698,,,,,,,,,698,,,,,698,698,698,698,,698',
'698,698,698,,,,,698,698,,246,246,246,,246,698,,698,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,,278,278,278,,278,246',
',246,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,,238,238,238,,238,281',
',281,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',
',237,237,237,,237,238,,238,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,,236,236,236,,236,237,,237,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,,235,235,235,,235,236',
',236,235,235,,,,235,,235,235,235,235,235,235,235,,,,,,235,235,235,235',
'235,235,235,,,235,,,,,,,235,,,235,235,235,235,235,235,235,235,,235,235',
'235,,235,235,235,235,235,,,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235',
',,,,,235,,,,,,,,,235,,,,,235,235,235,235,,235,235,235,235,,,,,235,235',
',234,234,234,,234,235,,235,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,,233,233,233,,233,234,,234,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,,797,797,797,,797,233',
',233,797,797,,,,797,,797,797,797,797,797,797,797,,,,,,797,797,797,797',
'797,797,797,,,797,,,,,,,797,,,797,797,797,797,797,797,797,797,,797,797',
'797,,797,797,797,797,797,,,,,,,,,,,,,,,,,,,,797,,,797,,,797,797,,,797',
',,,,,797,,,,,,,,,797,,,,,797,797,797,797,,797,797,797,797,,,,,797,797',
',43,43,43,,43,797,,797,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,,967,967,967,,967,44,,44,967,967,,,,967,,967,967,967,967',
'967,967,967,,,,,,967,967,967,967,967,967,967,,,967,,,,,,,967,,,967,967',
'967,967,967,967,967,967,967,967,967,967,,967,967,967,967,967,,,,,,,',
',,,,,,,,,,,,967,,,967,,,967,967,,,967,,967,,967,,967,,,967,,,,,,967',
',,,,967,967,967,967,,967,967,967,967,,,,,967,967,,206,206,206,,206,967',
',967,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,,525,525,525,,525,206,,206,525,525,,,,525,,525,525,525',
'525,525,525,525,,,,,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525',
'525,525,525,525,525,525,525,525,525,525,525,,525,525,525,525,525,,,',
',,,,,,,,,,,,,,,,525,,,525,,,525,525,,,525,,,,,,525,,,525,,,,,,525,,',
',,525,525,525,525,,525,525,525,525,,,,,525,525,,522,522,522,,522,525',
',525,522,522,,,,522,,522,522,522,522,522,522,522,,,,,,522,522,522,522',
'522,522,522,,,522,,,,,,,522,,,522,522,522,522,522,522,522,522,522,522',
'522,522,,522,522,522,522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522',
',,522,,522,,,,522,,,522,,,,,,522,,,,,522,522,522,522,,522,522,522,522',
',,,,522,522,,336,336,336,,336,522,,522,336,336,,,,336,,336,336,336,336',
'336,336,336,,,,,,336,336,336,336,336,336,336,,,336,,,,,,,336,,,336,336',
'336,336,336,336,336,336,,336,336,336,,336,336,336,336,336,,,,,,,,,,',
',,,,,,,,,336,,,336,,,336,336,,,336,,,,,,336,,,,,,,,,336,,,,,336,336',
'336,336,,336,336,336,336,,,,,336,336,,337,337,337,,337,336,,336,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,',
'205,205,205,,205,337,,337,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,,204,204,204,,204,205,,205,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,,516,516,516,',
'516,204,,204,516,516,,,,516,,516,516,516,516,516,516,516,,,,,,516,516',
'516,516,516,516,516,,,516,,,,,,,516,,,516,516,516,516,516,516,516,516',
',516,516,516,,516,516,516,516,516,,,,,,,,,,,,,,,,,,,,516,,,516,,,516',
'516,,,516,,,,,,516,,,,,,,,,516,,,,,516,516,516,516,,516,516,516,516',
',,,,516,516,,512,512,512,,512,516,,516,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,,511,511,511,,511,512,,512,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,',
'510,510,510,,510,511,,511,510,510,,,,510,,510,510,510,510,510,510,510',
',,,,,510,510,510,510,510,510,510,,,510,,,,,,,510,,,510,510,510,510,510',
'510,510,510,,510,510,510,,510,510,510,510,510,,,,,,,,,,,,,,,,,,,,510',
',,510,,,510,510,,,510,,,,,,510,,,,,,,,,510,,,,,510,510,510,510,,510',
'510,510,510,,,,,510,510,,507,507,507,,507,510,,510,507,507,,,,507,,507',
'507,507,507,507,507,507,,,,,,507,507,507,507,507,507,507,,,507,,,,,',
',507,,,507,507,507,507,507,507,507,507,,507,507,507,,507,507,,,507,',
',,,,,,,,,,,,,,,,,,507,,,507,,,507,507,,,507,,,,,,,,,,,,,,,,,,,,507,507',
'507,507,,507,507,507,507,,,,,507,507,,500,500,500,,500,507,,507,500',
'500,,,,500,,500,500,500,500,500,500,500,,,,,,500,500,500,500,500,500',
'500,,,500,,,,,,,500,,,500,500,500,500,500,500,500,500,500,500,500,500',
',500,500,500,500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,500',
',500,,500,,,500,,,,,,500,,,,,500,500,500,500,,500,500,500,500,,,,,500',
'500,,59,59,59,,59,500,,500,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,,498,498,498,,498',
'59,,59,498,498,,,,498,,498,498,498,498,498,498,498,,,,,,498,498,498',
'498,498,498,498,,,498,,,,,,,498,,,498,498,498,498,498,498,498,498,,498',
'498,498,,498,498,,,498,,,,,,,,,,,,,,,,,,,,498,,,498,,,498,498,,,498',
',,,,,,,,,,,,,,,,,,,498,498,498,498,,498,498,498,498,,,,,498,498,,704',
'704,704,,704,498,,498,704,704,,,,704,,704,704,704,704,704,704,704,,',
',,,704,704,704,704,704,704,704,,,704,,,,,,,704,,,704,704,704,704,704',
'704,704,704,,704,704,704,,704,704,704,704,704,,,,,,,,,,,,,,,,,,,,704',
',,704,,,704,704,,,704,,,,,,704,,,,,,,,,704,,,,,704,704,704,704,,704',
'704,704,704,,,,,704,704,,247,247,247,,247,704,,704,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,,117,117,117,117,117',
'247,,247,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,,116,116,116,,116,117,,117,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,,356,356,356,,356,116',
',116,356,356,,,,356,,356,356,356,356,356,356,356,,,,,,356,356,356,356',
'356,356,356,,,356,,,,,,,356,,,356,356,356,356,356,356,356,356,,356,356',
'356,,356,356,356,356,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356,,,356',
',,,,,356,,,,,,,,,356,,,,,356,356,356,356,,356,356,356,356,,,,,356,356',
',115,115,115,,115,356,,356,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,,490,490,490,490,490,115,,115,490,490,,,,490',
',490,490,490,490,490,490,490,,,,,,490,490,490,490,490,490,490,,,490',
',,,,,490,490,490,490,490,490,490,490,490,490,490,490,,490,490,490,,490',
'490,490,490,490,642,642,642,642,642,642,642,642,642,642,642,,642,642',
',,642,642,,490,,,490,,,490,490,,,490,,490,642,,642,490,642,642,,642',
'642,642,642,642,490,642,,,,490,490,490,490,,490,490,490,490,,,,,490',
'490,,642,,,,490,490,,490,485,485,485,,485,,,,485,485,,,,485,,485,485',
'485,485,485,485,485,,,,,,485,485,485,485,485,485,485,,,485,,,,,,,485',
',,485,485,485,485,485,485,485,485,,485,485,485,,485,485,485,485,485',
',,,,,,,,,,,,,,,,,,,485,,,485,,,485,485,,,485,,,,,,485,,,,,,,,,485,,',
',,485,485,485,485,,485,485,485,485,,,,,485,485,,483,483,483,,483,485',
',485,483,483,,,,483,,483,483,483,483,483,483,483,,,,,,483,483,483,483',
'483,483,483,,,483,,,,,,,483,,,483,483,483,483,483,483,483,483,483,483',
'483,483,,483,483,483,483,483,,,,,,,,,,,,,,,,,,,,483,,,483,,,483,483',
',,483,,,,483,,483,,,483,,,,,,483,,,,,483,483,483,483,,483,483,483,483',
',,,,483,483,,481,481,481,,481,483,,483,481,481,,,,481,,481,481,481,481',
'481,481,481,,,,,,481,481,481,481,481,481,481,,,481,,,,,,,481,,,481,481',
'481,481,481,481,481,481,481,481,481,481,,481,481,481,481,481,,,,,,,',
',,,,,,,,,,,,481,,,481,,,481,481,,,481,,481,,481,,481,,,481,,,,,,481',
',,,,481,481,481,481,,481,481,481,481,,,,,481,481,,114,114,114,,114,481',
',481,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',
',113,113,113,,113,114,,114,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,,108,108,108,108,108,113,,113,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,835,835,835,835,835,835,835,835,835,835,835,,835,835',
',,835,835,,108,,,108,,,108,108,,,108,,108,835,,835,108,835,835,,835',
'835,835,835,835,108,835,,,,108,108,108,108,,108,108,108,108,,,,,108',
'108,,835,,,,108,108,,108,372,372,372,,372,,,,372,372,,,,372,,372,372',
'372,372,372,372,372,,,,,,372,372,372,372,372,372,372,,,372,,,,,,,372',
',,372,372,372,372,372,372,372,372,,372,372,372,,372,372,372,372,372',
',,,,,,,,,,,,,,,,,,,372,,,372,,,372,372,,,372,,,,,,372,,,,,,,,,372,,',
',,372,372,372,372,,372,372,372,372,,,,,372,372,,441,441,441,,441,372',
',372,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',
',440,440,440,,440,441,,441,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,,439,439,439,,439,440,,440,439,439,,,,439,,439',
'439,439,439,439,439,439,,,,,,439,439,439,439,439,439,439,,,439,,,,,',
',439,,,439,439,439,439,439,439,439,439,,439,439,439,,439,439,439,439',
'439,,,,,,,,,,,,,,,,,,,,439,,,439,,,439,439,,,439,,,,,,439,,,,,,,,,439',
',,,,439,439,439,439,,439,439,439,439,,,,,439,439,,437,437,437,,437,439',
',439,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,,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,,60,60,60,,60,437,,437,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,,400,400,400,,400,63,,63,400,400,,,,400',
',400,400,400,400,400,400,400,,,,,,400,400,400,400,400,400,400,,,400',
',,,,,,400,,,400,400,400,400,400,400,400,400,,400,400,400,,400,400,400',
'400,400,,,,,,,,,,,,,,,,,,,,400,,,400,,,400,400,,,400,,,,,,400,,,,,,',
',,400,,,,,400,400,400,400,,400,400,400,400,,,,,400,400,,64,64,64,,64',
'400,,400,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,742,742,742,742,742,742,742,742,742',
'742,742,,742,742,,,742,742,,67,,,67,,,67,67,,,67,,,742,,742,67,742,742',
',742,742,742,742,742,67,742,,,,67,67,67,67,,67,67,67,67,,,,,67,67,67',
'742,,,,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,,600,600,600,,600,68,',
'68,600,600,,,,600,,600,600,600,600,600,600,600,,,,,,600,600,600,600',
'600,600,600,,,600,,,,,,,600,,,600,600,600,600,600,600,600,600,,600,600',
'600,,600,600,600,600,600,,,,,,,,,,,,,,,,,,,,600,,,600,,,600,600,,,600',
',,,,,600,,,,,,,,,600,,,,,600,600,600,600,,600,600,600,600,,,,,600,600',
',599,599,599,,599,600,,600,599,599,,,,599,,599,599,599,599,599,599,599',
',,,,,599,599,599,599,599,599,599,,,599,,,,,,,599,,,599,599,599,599,599',
'599,599,599,,599,599,599,,599,599,599,599,599,,,,,,,,,,,,,,,,,,,,599',
',,599,,,599,599,,,599,,,,,,599,,,,,,,,,599,,,,,599,599,599,599,,599',
'599,599,599,,,,,599,599,,596,596,596,,596,599,,599,596,596,,,,596,,596',
'596,596,596,596,596,596,,,,,,596,596,596,596,596,596,596,,,596,,,,,',
',596,,,596,596,596,596,596,596,596,596,,596,596,596,,596,596,596,596',
'596,,,,,,,,,,,,,,,,,,,,596,,,596,,,596,596,,,596,,,,,,596,,,,,,,,,596',
',,,,596,596,596,596,,596,596,596,596,,,,,596,596,,595,595,595,,595,596',
',596,595,595,,,,595,,595,595,595,595,595,595,595,,,,,,595,595,595,595',
'595,595,595,,,595,,,,,,,595,,,595,595,595,595,595,595,595,595,,595,595',
'595,,595,595,595,595,595,,,,,,,,,,,,,,,,,,,,595,,,595,,,595,595,,,595',
',,,,,595,,,,,,,,,595,,,,,595,595,595,595,,595,595,595,595,,,,,595,595',
',214,214,214,,214,595,,595,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,320,320,320,,320,214,,214,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,,591,591,591,,591,322,,322,591,591,,,,591,,591,591,591,591',
'591,591,591,,,,,,591,591,591,591,591,591,591,,,591,,,,,,,591,,,591,591',
'591,591,591,591,591,591,,591,591,591,,591,591,591,591,591,,,,,,,,,,',
',,,,,,,,,591,,,591,,,591,591,,,591,,,,,,591,,,,,,,,,591,,,,,591,591',
'591,591,,591,591,591,591,,,,,591,591,,590,590,590,,590,591,,591,590',
'590,,,,590,,590,590,590,590,590,590,590,,,,,,590,590,590,590,590,590',
'590,,,590,,,,,,,590,,,590,590,590,590,590,590,590,590,,590,590,590,',
'590,590,590,590,590,,,,,,,,,,,,,,,,,,,,590,,,590,,,590,590,,,590,,,',
',,590,,,,,,,,,590,,,,,590,590,590,590,,590,590,590,590,,,,,590,590,',
'589,589,589,,589,590,,590,589,589,,,,589,,589,589,589,589,589,589,589',
',,,,,589,589,589,589,589,589,589,,,589,,,,,,,589,,,589,589,589,589,589',
'589,589,589,589,589,589,589,,589,589,589,589,589,,,,,,,,,,,,,,,,,,,',
'589,,,589,,,589,589,,,589,,,,589,,589,,,589,,,,,,589,,,,,589,589,589',
'589,,589,589,589,589,,,,,589,589,,588,588,588,,588,589,,589,588,588',
',,,588,,588,588,588,588,588,588,588,,,,,,588,588,588,588,588,588,588',
',,588,,,,,,,588,,,588,588,588,588,588,588,588,588,588,588,588,588,,588',
'588,588,588,588,,,,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,588,,588',
',588,,,588,,,,,,588,,,,,588,588,588,588,,588,588,588,588,,,,,588,588',
',213,213,213,,213,588,,588,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,,585,585,585,,585,213,,213,585,585,,,,585,,585',
'585,585,585,585,585,585,,,,,,585,585,585,585,585,585,585,,,585,,,,,',
',585,,,585,585,585,585,585,585,585,585,,585,585,585,,585,585,585,585',
'585,,,,,,,,,,,,,,,,,,,,585,,,585,,,585,585,,,585,,,,,,585,,,,,,,,,585',
',,,,585,585,585,585,,585,585,585,585,,,,,585,585,,42,42,42,,42,585,',
'585,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,,584,584,584,,584,42,,42,584,584,,,,584,,584',
'584,584,584,584,584,584,,,,,,584,584,584,584,584,584,584,,,584,,,,,',
',584,,,584,584,584,584,584,584,584,584,,584,584,584,,584,584,584,584',
'584,,,,,,,,,,,,,,,,,,,,584,,,584,,,584,584,,,584,,584,,,,584,,,,,,,',
',584,,,,,584,584,584,584,,584,584,584,584,,,,,584,584,,212,212,212,',
'212,584,,584,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,,211,211,211,,211,212,,212,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,,210,210,210,,210,211,,211,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',
',209,209,209,,209,210,,210,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,,550,550,550,,550,209,,209,550,550,,,,550,,550',
'550,550,550,550,550,550,,,,,,550,550,550,550,550,550,550,,,550,,,,,',
',550,,,550,550,550,550,550,550,550,550,550,550,550,550,,550,550,550',
'550,550,,,,,,,,,,,,,,,,,,,,550,,,550,,,550,550,,,550,,550,,550,,550',
',,550,,,,,,550,,,,,550,550,550,550,,550,550,550,550,,,,,550,550,,540',
'540,540,,540,550,,550,540,540,,,,540,,540,540,540,540,540,540,540,,',
',,,540,540,540,540,540,540,540,,,540,,,,,,,540,,,540,540,540,540,540',
'540,540,540,540,540,540,540,,540,540,540,540,540,,,,,,,,,,,,,,,,,,,',
'540,,,540,,,540,540,,,540,,540,,540,,540,,,540,,,,,,540,,,,,540,540',
'540,540,,540,540,540,540,,,,,540,540,,539,539,539,,539,540,,540,539',
'539,,,,539,,539,539,539,539,539,539,539,,,,,,539,539,539,539,539,539',
'539,,,539,,,,,,,539,,,539,539,539,539,539,539,539,539,,539,539,539,',
'539,539,539,539,539,422,422,422,422,422,422,422,422,422,422,422,,422',
'422,,,422,422,,539,,,539,,,539,539,,,539,,539,422,,422,539,422,422,',
'422,422,422,422,422,539,422,,,,539,539,539,539,,539,539,539,539,,,,',
'539,539,,422,410,,,,539,,539,410,410,410,,,410,410,410,,410,,,,,,,,',
'410,410,410,,,,,,,,,410,410,,410,410,410,410,410,,,,,,,,,,,,,,,,,,,',
',,,410,410,410,410,410,410,410,410,410,410,410,410,410,410,,,410,410',
'410,,,410,,410,410,,,410,410,,410,,410,,410,,410,410,,410,410,410,410',
'410,,410,410,410,,,,,,,,,,,,,,410,,469,410,410,,410,,410,469,469,469',
',,469,469,469,611,469,611,611,611,611,611,,,,469,469,,,,611,,,,,,469',
'469,,469,469,469,469,469,,,,,,,,,611,,,,,,,,,611,611,611,611,,,,611',
',,,,,,,,469,,28,,,,,469,,28,28,28,469,469,28,28,28,611,28,,,,,,,,,,28',
'28,,,,,,469,469,,28,28,,28,28,28,28,28,,,,,469,,,469,,,,,469,,,,,,,',
',,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,27,28,,,,,,27,27,27,,',
'27,27,27,28,27,,28,28,,28,,28,,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,,27,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,581,581,581,581,581,581,581,581,581',
'581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,,,,581,581',
'581,581,581,581,581,581,581,581,,,,,,581,581,581,581,581,581,581,581',
'581,,,581,,,,,,,,581,581,,581,581,581,581,581,581,581,,,581,581,,,,581',
'581,581,581,,,,,,,,,,,,,,581,581,,581,581,581,581,581,581,581,581,581',
'581,581,581,,,581,581,,,,,,,,,,,,,,581,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,391,391,391,391,391,391,391,391',
'391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,,,,391',
'391,391,391,391,391,391,391,391,391,,,,,,391,391,391,391,391,391,391',
'391,391,,,391,,,,,,,,391,391,,391,391,391,391,391,391,391,,,391,391',
',,,391,391,391,391,,,,,,,,,,,,,,391,391,,391,391,391,391,391,391,391',
'391,391,391,391,391,,,391,391,,,,,,,,,,,,,,391,711,711,711,711,711,711',
'711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711',
'711,,,,711,711,711,711,711,711,711,711,711,711,,,,,,711,711,711,711',
'711,711,711,711,711,,,711,,,,,,,,711,711,,711,711,711,711,711,711,711',
',,711,711,,,,711,711,711,711,,,,,,,,,,,,,,711,711,,711,711,711,711,711',
'711,711,711,711,711,711,711,,,711,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,515,515,515,515,515,515,515,515,515,515,515',
',515,515,,,515,515,,,929,,929,929,929,929,929,,,,,,515,,515,929,515',
'515,,515,515,515,515,515,,515,467,467,467,467,467,467,467,467,467,467',
'467,929,467,467,,,467,467,,515,929,929,929,929,,,,929,,,,,467,,467,',
'467,467,,467,467,467,467,467,,467,740,740,740,740,740,740,740,740,740',
'740,740,,740,740,,,740,740,467,467,,,,897,,897,897,897,897,897,,,740',
',740,,740,740,897,740,740,740,740,740,,740,735,735,735,735,735,735,735',
'735,735,735,735,,735,735,897,897,735,735,,740,,,,897,897,897,897,,,',
'897,,735,,735,,735,735,,735,735,735,735,735,,735,738,738,738,738,738',
'738,738,738,738,738,738,,738,738,,,738,738,,735,791,,791,791,791,791',
'791,,,,,,738,,738,791,738,738,,738,738,738,738,738,,738,728,728,728',
'728,728,728,728,728,728,728,728,791,728,728,,,728,728,,738,791,791,791',
'791,,,,791,,,,,728,,728,,728,728,,728,728,728,728,728,,728,733,733,733',
'733,733,733,733,733,733,733,733,,733,733,,,733,733,,728,793,,793,793',
'793,793,793,,,,,,733,,733,793,733,733,,733,733,733,733,733,,733,271',
'271,271,271,271,271,271,271,271,271,271,793,271,271,,,271,271,,733,793',
'793,793,793,,,,793,,,,,271,,271,,271,271,,271,271,271,271,271,,271,',
',,,,207,207,,,207,,,,,,,,207,207,271,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,513,513,207,,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,256,256,513,,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,501,501,256,,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,502,502,501,,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,549,549,502,,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,548,548,549,,548,,,,,,,,548,548,,548,548,548,548,548,548,548',
',,548,548,,,,548,548,548,548,,,,,,548,,,,,,,,548,548,,548,548,548,548',
'548,548,548,548,548,548,548,548,542,542,548,,542,,,,,,,,542,542,,542',
'542,542,542,542,542,542,,,542,542,,,,542,542,542,542,,,,,,542,,,,,,',
',542,542,,542,542,542,542,542,542,542,542,542,542,542,542,541,541,542',
',541,,,,,,,,541,541,,541,541,541,541,541,541,541,,,541,541,,,,541,541',
'541,541,,,,,,541,,,,,,,,541,541,,541,541,541,541,541,541,541,541,541',
'541,541,541,208,208,541,,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,514,514,208,,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,968,968',
'514,,968,,,,,,,,968,968,,968,968,968,968,968,968,968,,,968,968,,,,968',
'968,968,968,,,,,,968,,,,,,,,968,968,,968,968,968,968,968,968,968,968',
'968,968,968,968,969,969,968,,969,,,,,,,,969,969,,969,969,969,969,969',
'969,969,,,969,969,,,,969,969,969,969,,,,,,969,,,,,,,,969,969,,969,969',
'969,969,969,969,969,969,969,969,969,969,436,436,969,,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,914',
'914,436,,914,,,,,,,,914,914,,914,914,914,914,914,914,914,,,914,914,',
',,914,914,914,914,,,,,,914,,,,,,,,914,914,,914,914,914,914,914,914,914',
'914,914,914,914,914,435,435,914,,435,,,,,,,,435,435,,435,435,435,435',
'435,435,435,,,435,435,,,,435,435,435,435,,,,,,435,,,,,,,,435,435,,435',
'435,435,435,435,435,435,435,435,435,435,435,,653,435,653,653,653,653',
'653,795,,795,795,795,795,795,,653,,,,,,839,795,839,839,839,839,839,',
',,,,,,,839,653,,,,,,,795,,653,653,653,653,,,,653,,795,795,,839,,795',
',,,,,,839,839,839,839,,,841,839,841,841,841,841,841,843,,843,843,843',
'843,843,1007,841,1007,1007,1007,1007,1007,997,843,997,997,997,997,997',
',1007,,,,,,,997,841,,,,,,,843,,841,841,841,841,,1007,,841,,843,843,',
'997,,843,,1007,1007,,,,1007,,997,997,,,709,997,709,709,709,709,709,',
',,,,,,530,709,530,530,530,530,530,959,,959,959,959,959,959,957,530,957',
'957,957,957,957,,959,709,,,,,,957,,,709,709,709,709,,530,530,709,,,',
',959,,530,530,530,530,,957,,530,,959,959,,,,959,,957,957,,,955,957,955',
'955,955,955,955,,953,,953,953,953,953,953,955,,,,,,,,953,,557,,557,557',
'557,557,557,,,,,,955,,,557,,,,,953,,,955,955,,,,955,953,953,953,953',
',,,953,557,557,935,,935,935,935,935,935,557,557,557,557,,,,557,935,',
'933,,933,933,933,933,933,931,,931,931,931,931,931,,933,,,,,935,,931',
',,,,,,,,935,935,,,,935,933,,,,,,,931,,,,933,933,,,,933,,931,931,,,,931' ]
        racc_action_check = arr = ::Array.new(24902, 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 = [
  1274,    99,   nil,    79,   nil,  8289,  1001,   -11, 22444, 22700,
    10,   nil,    18,    87,  1397,   384,    58,   537,   nil,   -79,
  7249,  6338,   179,   nil,   162,   nil,   -24, 22310, 22198,  5951,
  6080,  6209,   nil,  3102,  8023,  8152,   nil,    91,   403,   109,
   199,   790, 20826, 13707, 13836,   126,   887,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,  4911,   nil,   -72, 15771,
 18367,   -21,   nil, 18496, 18754,   nil,   nil, 18883, 19020,  8547,
  8676, 23069,   nil,   nil,   nil,   nil,   nil,   483,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   619,   nil,   nil,     0,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   283,   nil, 17585,   nil,
   nil,   nil,   nil, 17456, 17327, 16674, 16416, 16287,  2317,   nil,
   327,   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,   152,   nil,  1532, 14868, 14739, 14094, 23506, 24055, 21471,
 21342, 21213, 21084, 20568, 19665,   nil,   nil,   761,   193,   184,
   248,   174,   172,   233,   nil,  7507,  2188,   250,  7120,  6991,
  6475,  5822,  5435, 13449, 13320, 13191, 13062, 12933, 12804, 11901,
 11127, 10998, 10224,  9579,  9450,  9321, 12288, 16158,  8805,  9192,
 10482, 10611, 10740, 10869,   nil,   nil, 23628,   nil,   nil,   247,
 11256, 11385,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 11514,
   nil, 23440,   nil,   233,   248,   nil, 12030,   296, 12417,   nil,
 12546, 12675,   nil,   nil,   380,   nil,  5306,   872,   299,   293,
  4779,   310,   356,   341,  6338,  1790,  1271,  1270,  1141,   478,
  1019,   nil,   446,   407,   228,   nil,   nil,   nil,   452,   786,
   417,  8418,   nil,   405,   516,   518,   630,   nil,   529,   nil,
 19794,  4005, 19923,   493,   nil,   614,   612,   531,   517,   386,
   557,   nil,   nil,   829,    26,    32, 14481, 14610,   365,   638,
   529,    -5,   -21,  1016,   615,     9,   652,   nil,   nil,   319,
   359,    -2,   nil,  1386,   nil,    29, 16545,   nil,   nil,   nil,
   167,   285,   298,   320,   392,   395,   523,   529,   -30,   nil,
   -25,   nil, 17722,   nil,   382,   405,   222,   379,   290,    -5,
   -31,   281,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   570, 22828,   nil,   nil,   nil,   nil,   595,   nil,   577,   nil,
 18625,   583,   nil,  2833,   588,   nil,   596,   600,   381,   401,
 21990,   nil,   nil,   nil,   110,   222,   649,   nil,   nil,  2965,
  2051,   nil, 21858,   nil,   609,   nil,   nil,  1919,   nil,   nil,
   nil,   nil,   196,   nil,   663, 24421, 24299, 18238,   116, 18109,
 17980, 17851,  2575,  1016,   633,   668,   689,   691,   699,   701,
  2914,  2000,  3102,   887,   758,  1661,  1532,  1403,  1274,  2704,
  1145,  2446,  2317,   499,   576,  2188,  1790, 23164,   -53, 22119,
   nil,   nil,   nil,   nil,   642,   nil,   -17,   -59,   654,   nil,
   nil, 17198,   nil, 17069,   nil, 16940,   nil,   nil,   nil,   nil,
 16803,   610,   887,   656,   661,   nil,   nil,   667, 15900,   684,
 15642, 23689, 23750,  1145,   729,   nil,   nil, 15513,   693,   nil,
 15384, 15255, 15126, 23567, 24116, 23118, 14997,   823,   825,   835,
   752,   nil, 14352,   nil,   nil, 14223,   nil,   nil,   nil,   nil,
 24643,   758,   832,   nil,  2446,   122,    90,   841,   868, 21858,
 21729, 23994, 23933,    22,   nil,   nil,   493,   nil, 23872, 23811,
 21600,   nil,   nil,   nil,   473,   138,  4650, 24734,   nil,   191,
   nil,   nil,   nil,  1257,   nil,   nil,   nil,   776,   nil,   nil,
   276,   nil,   147,   nil,   nil,   765,   nil,   766,   nil,   nil,
   nil, 22572,   nil,   768, 20955, 20697,   256,   809, 20439, 20310,
 20181, 20052,   827,   nil,   nil, 19536, 19407,   833,   nil, 19278,
 19149,   nil,   nil,   327,   316,   351,   485,   813,  4779,   815,
   nil, 22083,   nil,  4134,   938,    -8,   -49,   nil,  3876,  3231,
   nil,   833,   nil,   881,  7894,   nil,   nil,   nil,   860,    72,
  7636,   841,   nil,   847,   136,   177,   892,   384,  1400,   894,
   853,  6862, 16803,   925,   933,   154,   986,  5177,   nil,   871,
   nil,   -99,   nil, 24483,   nil,   873,   878,   nil,   879,   880,
   881,   nil,   nil,   nil,   nil,   nil,   nil,   885,   nil,   686,
   nil, 11772,   nil,   nil,   nil,   977,   nil,   nil,   nil,   978,
   nil,   nil,   979,   869,   nil,  1018,   nil,   nil,   nil,   nil,
  1043,   nil,    36,   928,    39,   -18,    65,     8, 12159,   225,
  1394,   nil,   942,  3618, 16029,   nil,   nil,  1067,  1145, 24629,
   345, 22956,   nil,   nil,   nil,   nil,   nil,   nil,  1016,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   964,  8934, 23348,  9063,
   nil,   969,   nil, 23394,   nil, 23256,   nil,   nil, 23302,   nil,
 23210,   nil, 18883,  9708,  9837,  9966, 10095,   148, 10353,   972,
   973,   nil,   977,   982,   987,   nil,  1019,   999,   995,   996,
 11643,   nil,   nil,  1131,   nil,   nil,  1403,  1028,  1133,   nil,
   nil,   nil,  1010,   261,   nil,   nil,  1145,   nil,  4392,  1024,
  1071,   nil,   nil,  1069,   nil,   -23,  1031,   510,   nil,   nil,
   299, 23337,   nil, 23429,   nil, 24490,   nil, 13578,   nil,   583,
   nil,  1036,   223,   nil,  1040,   nil,   nil,   nil,   nil,  1162,
   nil,  5564,  1163,  3489,  3747,   nil,  5693,  4263,    11,    35,
   nil,  1164,   -50,  5048,   nil,  1172,  1057,   nil,   nil,  1074,
  1072,   nil,  8152,  6604,  6733, 17585,   573,   nil,   nil, 24504,
   nil, 24556,   nil, 24563,   nil,   nil,  1114,  1002,  7378,  1274,
  1169,   nil,  1119,   nil,   nil,   nil,  2575,   nil,   nil,    33,
  7765,   nil,   nil,   nil,   nil,   nil,  1149,  1108,   nil,   nil,
   nil,  1111,  1116,   nil,  1124,  1125,   nil,  1126,   nil,  1134,
   492,  1136,   612,   nil,   nil,   -10,   nil,  1261,  1262,   nil,
    48,   nil,   nil,   nil,  1263,   nil,   nil, 23248,   nil,  1149,
   nil,   nil,  1153,  1154,  1155,  1157,   nil,  1165,   nil,   652,
   nil,   nil,   nil,   591, 24360,   nil,   nil,   nil,  2704,   627,
   883,   425,  1244,   455,   nil,  1919,  1661,   nil,   nil, 23153,
   nil, 24797,   nil, 24790,   nil, 24773,   nil,   nil,   nil,   nil,
   317,   873,  1167,  4521,   nil,   nil,   nil,   nil,   nil,  3360,
   nil,  2833,   nil, 24717,   nil, 24709,   nil, 24657,   nil, 24650,
   nil,   nil,   nil,  1131,  1212,  1213,  1306, 13965, 24177, 24238,
   564,  1204,  1321,  1201,  1219,  1220,  1227,  1228,   782,  1235,
   774,   871,  1361,  1364,  1245,  1253,  1254,  1255,   nil,   nil,
  1263,     8,    -1,    69,  1142,   nil,   nil, 24577,   nil,   nil,
   nil,   nil,   744,  1265,   nil,   nil,   nil, 24570,   nil,   nil,
   nil,   nil,    10,  1266,  1267,  -110,   nil,   nil ]

racc_action_default = [
    -3,  -590,    -1,  -576,    -4,  -590,    -7,  -590,  -590,  -590,
  -590,   -29,  -590,  -590,  -590,  -279,  -590,   -41,   -44,  -578,
  -590,   -49,   -51,   -52,   -53,   -57,  -258,  -258,  -258,  -293,
  -329,  -330,   -69,   -11,   -73,   -81,   -83,  -590,  -487,  -488,
  -590,  -590,  -590,  -590,  -590,  -578,  -239,  -270,  -271,  -272,
  -273,  -274,  -275,  -276,  -277,  -278,  -566,  -281,  -283,  -589,
  -557,  -301,  -303,  -590,  -590,  -307,  -310,  -576,  -590,  -590,
  -590,  -590,  -331,  -332,  -430,  -431,  -432,  -433,  -434,  -455,
  -437,  -438,  -457,  -459,  -442,  -447,  -451,  -453,  -469,  -457,
  -471,  -472,  -564,  -476,  -477,  -565,  -479,  -480,  -481,  -482,
  -483,  -484,  -485,  -486,  -491,  -492,  -590,    -2,  -577,  -585,
  -586,  -587,    -6,  -590,  -590,  -590,  -590,  -590,    -3,   -17,
  -590,  -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,  -590,  -590,  -248,  -590,  -590,  -590,
  -590,  -590,  -590,  -590,  -578,  -579,   -48,  -590,  -487,  -488,
  -590,  -279,  -590,  -590,  -231,  -590,   -11,  -590,  -590,  -590,
  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
  -590,  -590,  -590,  -590,  -399,  -401,  -590,  -574,  -575,   -58,
  -248,  -590,  -300,  -405,  -414,  -416,   -64,  -411,   -65,  -578,
   -66,  -240,  -253,  -262,  -262,  -257,  -590,  -263,  -590,  -559,
  -590,  -590,   -67,   -68,  -576,   -12,  -590,   -15,  -590,   -71,
   -11,  -578,  -590,   -74,   -77,   -11,   -89,   -90,  -590,  -590,
   -97,  -293,  -296,  -578,  -590,  -329,  -330,  -333,  -412,  -590,
   -79,  -590,   -85,  -290,  -473,  -474,  -590,  -216,  -217,  -232,
  -590,   -11,  -590,  -578,  -241,  -582,  -582,  -590,  -590,  -582,
  -590,  -302,  -390,   -50,  -590,  -590,  -590,  -590,  -576,  -590,
  -577,  -487,  -488,  -590,  -590,  -279,  -590,  -343,  -344,  -107,
  -108,  -590,  -110,  -590,  -279,  -590,  -590,  -487,  -488,  -322,
  -112,  -113,  -154,  -155,  -156,  -172,  -177,  -184,  -187,  -324,
  -590,  -555,  -590,  -435,  -590,  -590,  -590,  -590,  -590,  -590,
  -590,  -590,  1018,    -5,  -588,   -23,   -24,   -25,   -26,   -27,
  -590,  -590,   -19,   -20,   -21,  -122,  -590,   -30,   -39,   -40,
  -590,  -590,   -31,  -197,  -578,  -249,  -262,  -262,  -567,  -568,
  -258,  -409,  -569,  -570,  -568,  -567,  -258,  -408,  -410,  -569,
  -570,   -37,  -205,   -38,  -590,   -42,   -43,  -195,  -263,   -45,
   -46,   -47,  -578,  -299,  -590,  -590,  -590,  -248,  -290,  -590,
  -590,  -590,  -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,  -578,  -379,  -258,
  -567,  -568,   -55,   -59,  -578,  -259,  -379,  -379,  -578,  -295,
  -254,  -590,  -255,  -590,  -260,  -590,  -264,  -562,  -563,   -10,
  -577,   -14,    -3,  -578,   -70,  -288,   -86,   -75,  -590,  -578,
  -248,  -590,  -590,   -96,  -590,  -473,  -474,  -590,   -82,   -87,
  -590,  -590,  -590,  -590,  -590,  -237,  -590,  -422,  -590,  -284,
  -590,  -242,  -584,  -583,  -244,  -584,  -291,  -292,  -558,  -304,
  -519,   -11,  -334,  -335,   -11,  -590,  -590,  -590,  -590,  -590,
  -248,  -590,  -590,  -290,  -315,  -107,  -108,  -109,  -590,  -590,
  -248,  -318,  -493,  -494,  -590,  -590,   -11,  -519,  -326,  -578,
  -436,  -456,  -461,  -590,  -463,  -439,  -458,  -590,  -460,  -441,
  -590,  -444,  -590,  -446,  -449,  -590,  -450,  -590,  -470,    -8,
   -18,  -590,   -28,  -269,  -590,  -590,  -413,  -590,  -250,  -252,
  -590,  -590,   -60,  -247,  -406,  -590,  -590,   -62,  -407,  -590,
  -590,  -298,  -580,  -567,  -568,  -567,  -568,  -578,  -195,  -590,
  -380,  -578,  -382,   -11,   -54,  -402,  -379,  -245,   -11,   -11,
  -294,  -262,  -261,  -265,  -590,  -560,  -561,   -13,  -590,   -72,
  -590,   -78,   -84,  -578,  -567,  -568,  -246,   -93,   -95,  -590,
   -80,  -590,  -204,  -214,  -215,  -578,  -589,  -589,  -282,  -578,
  -287,  -582,  -391,  -519,  -394,  -554,  -554,  -502,  -504,  -504,
  -504,  -518,  -520,  -521,  -522,  -523,  -524,  -525,  -526,  -590,
  -528,  -590,  -534,  -536,  -537,  -539,  -544,  -546,  -547,  -549,
  -550,  -551,  -590,  -589,  -336,  -589,  -308,  -337,  -338,  -311,
  -590,  -314,  -590,  -578,  -567,  -568,  -571,  -289,  -590,  -107,
  -108,  -111,  -578,   -11,  -590,  -496,  -320,  -590,   -11,  -519,
  -590,  -590,  -556,  -462,  -465,  -466,  -467,  -468,   -11,  -440,
  -443,  -445,  -448,  -452,  -454,  -123,  -267,  -590,  -198,  -590,
  -581,  -262,   -33,  -200,   -34,  -201,   -61,   -35,  -203,   -36,
  -202,   -63,  -196,  -590,  -590,  -590,  -590,  -413,  -590,  -554,
  -554,  -361,  -363,  -363,  -363,  -378,  -590,  -578,  -384,  -525,
  -590,  -532,  -542,  -590,  -404,  -403,   -11,  -590,  -590,  -256,
  -266,   -16,   -76,   -91,   -88,  -297,  -589,  -341,   -11,  -423,
  -589,  -424,  -425,  -590,  -243,  -590,  -578,  -590,  -500,  -501,
  -590,  -590,  -511,  -590,  -514,  -590,  -516,  -590,  -345,  -590,
  -347,  -349,  -356,  -525,  -578,  -530,  -538,  -548,  -552,  -590,
  -339,  -590,  -590,   -11,   -11,  -313,  -590,   -11,  -413,  -590,
  -413,  -590,  -590,   -11,  -323,  -590,  -578,  -498,  -327,  -590,
  -268,   -32,  -199,  -251,  -590,  -238,  -590,  -359,  -360,  -369,
  -371,  -590,  -374,  -590,  -376,  -381,  -590,  -590,  -590,  -531,
  -590,  -400,  -590,  -415,  -417,    -9,   -11,  -429,  -342,  -590,
  -590,  -427,  -285,  -392,  -395,  -397,  -590,  -554,  -535,  -553,
  -503,  -504,  -504,  -529,  -504,  -504,  -545,  -504,  -540,  -578,
  -590,  -354,  -590,  -527,  -305,  -590,  -306,  -590,  -590,  -265,
  -589,  -316,  -319,  -495,  -590,  -325,  -497,  -519,  -464,  -554,
  -533,  -362,  -363,  -363,  -363,  -363,  -543,  -363,  -383,  -578,
  -386,  -388,  -389,  -541,  -590,  -290,   -56,  -428,   -11,   -98,
   -99,  -590,  -590,  -106,  -426,   -11,   -11,  -393,  -499,  -590,
  -507,  -590,  -509,  -590,  -512,  -590,  -515,  -517,  -346,  -348,
  -352,  -590,  -357,   -11,  -309,  -312,  -418,  -419,  -420,   -11,
  -321,   -11,  -358,  -590,  -366,  -590,  -368,  -590,  -372,  -590,
  -375,  -377,  -385,  -590,  -289,  -571,  -422,  -248,  -590,  -590,
  -105,  -590,  -590,  -504,  -504,  -504,  -504,  -350,  -590,  -355,
  -590,  -589,  -590,  -590,  -363,  -363,  -363,  -363,  -387,  -421,
  -578,  -567,  -568,  -571,  -104,  -396,  -398,  -590,  -505,  -508,
  -510,  -513,  -590,  -353,  -340,  -317,  -328,  -590,  -364,  -367,
  -370,  -373,  -413,  -504,  -351,  -363,  -506,  -365 ]

clist = [
'213,331,324,14,255,124,124,369,14,646,272,272,272,263,267,410,416,2',
'111,399,518,404,538,217,586,423,320,119,202,482,127,127,217,217,217',
'426,14,298,298,625,256,293,307,307,129,129,259,266,268,6,531,534,708',
'661,6,334,335,473,310,338,508,686,689,622,469,622,217,217,124,809,217',
'343,353,353,547,474,307,307,307,753,661,625,111,108,756,521,524,333',
'333,528,876,333,433,776,112,654,939,216,273,273,273,752,698,804,949',
'385,386,387,388,912,873,14,291,703,942,910,217,217,217,217,14,14,274',
'274,274,107,375,906,325,788,789,823,812,381,556,390,289,333,333,333',
'333,355,359,570,572,625,561,479,568,571,571,557,326,329,754,613,711',
'6,873,270,282,283,482,618,619,897,389,6,322,494,622,622,321,979,370',
'755,661,551,346,529,328,757,371,615,327,581,909,272,1,339,652,863,530',
'785,411,616,939,383,925,926,468,476,477,946,780,420,14,217,217,217,1003',
'859,217,217,217,217,217,217,786,373,690,374,376,837,838,912,876,747',
'377,14,846,988,661,879,1014,429,430,431,432,906,391,272,272,410,416',
'378,379,631,380,713,272,718,607,773,873,707,640,704,348,866,201,871',
'627,217,217,868,900,855,323,649,332,701,217,401,826,336,813,337,873',
'401,814,397,402,875,504,877,421,425,,14,,263,,14,,267,,298,14,111,,',
'307,766,520,,,902,,636,601,,,818,298,633,,497,509,307,,636,820,,14,217',
',,535,536,273,905,,907,872,491,874,947,273,217,217,928,721,,721,891',
'519,,,636,,,617,111,274,693,620,636,,217,333,333,274,,490,702,,1004',
',493,552,629,,952,499,217,769,632,,772,555,,903,,904,587,558,,124,625',
'736,475,951,289,,741,559,593,289,478,,,821,598,751,,489,825,817,,580',
'784,,127,,622,,,272,974,661,975,411,976,426,,,129,,,592,,,420,,,597',
'712,,,217,,,985,,986,,987,609,26,,,,,26,,593,,989,,537,,781,,,,,,,26',
',,973,,,,,,26,26,26,272,26,,,,769,1013,411,614,,,,14,,14,984,1015,,420',
'411,298,,217,,509,307,,,628,298,420,26,26,509,307,26,,,217,,272,894',
'775,,,,,411,,,272,,,14,,411,14,,420,645,6,,217,,420,,,,,687,687,,217',
',765,,26,,14,,,26,26,26,26,26,26,,705,706,38,,948,621,918,38,,124,,869',
',798,869,,792,794,796,587,,782,,758,217,217,,764,,217,217,725,943,217',
'127,38,296,296,,692,,1012,,,,587,651,14,129,,,,14,14,593,,,598,,,869',
'783,,751,298,751,,751,509,307,341,357,357,357,,298,,,828,774,307,983',
',26,26,26,26,,,26,26,26,26,26,26,,,,732,734,,,,737,739,587,26,425,,',
'38,,731,883,587,,,,,38,38,819,,,,,,822,,,,,217,,,896,,14,217,124,26',
'26,14,798,,,881,401,,26,857,,14,333,861,,827,,,333,,,,217,,,26,,,758',
'26,,,,,26,,751,,751,,751,,751,,,,,938,,,,,,849,,,,758,307,14,26,26,',
',38,,636,,,,,14,990,,,26,26,,,,,,,798,,798,,38,930,932,751,934,936,885',
'937,26,831,,,,,,,,217,,14,14,,,14,26,,,,,14,,,,,,,,687,333,,893,,,,',
',,,,,,,,,913,,977,798,16,307,38,,14,16,38,,921,,296,38,,307,,,,,,39',
',,,,39,,,296,,750,,26,,16,,962,798,38,798,,,,,,,998,999,1000,1001,,',
',39,297,297,,420,,,,798,,,,,292,14,,347,,,,,14,14,,,,,,,,,,26,1016,26',
'342,358,358,358,14,,272,26,,,14,,14,411,,,,,,,,16,,26,420,,,,217,587',
'16,16,,,,,,,26,,39,26,,,,,,26,,39,39,,,,,,,26,,,,,,26,,,,,,,,,,330,',
',15,,840,842,844,15,,,,,,,,,,,,,,,,26,26,,,,26,26,,,26,,,15,300,300',
',,,,16,,867,38,26,38,,424,,26,26,296,,,,,,,,39,296,,,16,,,,,345,354',
'354,,396,,,,,,,,,,39,,38,,,38,,,,899,,,750,292,750,,750,,,,,,,,,,15',
'38,,,,,,,,15,15,,,,,16,,,,16,,26,,,16,,26,26,,,,26,,398,39,,,,39,428',
',26,297,39,954,956,958,960,,961,16,292,26,,,,292,,38,297,,,,38,38,,',
',,39,,,,,,296,,,,,,,,,,,296,,,26,,,,,,15,,,,,750,26,750,,750,484,750',
'486,,487,488,,,,,,,,15,13,,,,,13,,1008,1009,1010,1011,,,,,26,,26,26',
',,26,,,,,,26,,38,,,,13,38,750,,,1017,,,,,,38,,,,,,,,,,,,,,,15,26,,,15',
',,,300,15,,,,,,,,,,,,,,,,300,,357,,,,,,38,,15,,,,,,16,,16,,38,,,,13',
',583,,,,,,,13,13,39,,39,26,,,,,297,,26,26,,,,,,297,,,38,38,16,,38,16',
',,26,,38,,,,26,,26,,,,,39,,,39,,,16,,,,,26,,683,357,,685,,,,,,38,,,39',
'919,,,,,623,,330,,626,,,,,,,,13,,,,,,424,,,,,,,,,,,,,,16,,,13,,16,16',
',,623,,,330,,,,,,,39,,38,,,39,39,428,,38,38,,,763,,,,297,767,768,,15',
',15,,,,38,297,300,,,,38,,38,,,300,,,,,,13,,,,13,,,,726,13,,,623,330',
',,,,15,,,15,,,,,,16,,,,,16,,,13,,,,,,,16,15,,,39,,770,,717,39,,,,,,',
',,,39,,,,,,,,,,779,,,829,,,,,,,,,,,,,,,,16,,,,,805,,,,,15,,16,358,,15',
'15,,,39,,,,,,,,300,,,,39,852,,,,,,300,,,,,,858,,,16,16,,,16,,,,,,16',
',,,830,,,,,39,39,,,39,,,,,,39,,,887,888,,,890,,,,,,,16,,,,924,,,,,,15',
'358,,,,15,,,,39,,,,920,13,15,13,,,,,,917,,,,,,,,,878,,,,,,,,,,,,,,,',
',,,889,,16,,,13,,354,13,16,16,,,15,,,,330,,,,39,,,,15,,16,39,39,13,',
',16,966,16,,,,,,971,972,,,,39,,,,,,39,,39,,,,,981,15,15,,,15,982,,,',
',15,,,,,,,,,,,,,,,,,13,,,,224,13,13,,354,,,,,271,271,271,15,,,,923,',
',,,,317,318,319,,,,,,,,,,,,,,,271,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,15,,,,,,,15,15,,,,13,,,,,13,,,,,,,,15,,13,,,,15,,15,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,271',
'403,271,,,422,427,,,,,,13,13,,,13,,,,,224,13,,442,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,,,,,,13,271,271,,,,,,,,271,,,,,,,271,,271,,271,271,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,515,13,,,,,,,13,13,,,,,,,,,,,,,,,,',
'13,,,,,,13,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,422,608,403,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,271,,271,,271,,,,,,,,,,,,,,,271,,,,,,,,,,642,643',
'644,,,,,,,,,,271,,,271,,,,,,,,,,,,,,271,271,,,,,,,,,,271,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,271,728,,,271,271,733,735,,,,738,740,,,608,742',
',,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,',
',,,,,,,,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271',
',832,,,,,,,,,,,,,,733,735,740,738,,835,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,,,271,,,,,,,,,,,,,,,,,271,832',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271' ]
        racc_goto_table = arr = ::Array.new(2810, 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,84,65,22,137,57,57,56,22,10,33,33,33,69,69,37,37,2,93,27,8,23,90',
'22,24,27,31,15,15,71,60,60,22,22,22,18,22,22,22,174,36,49,63,63,61,61',
'38,38,38,7,87,87,94,162,7,17,17,39,50,17,51,89,89,72,37,72,22,22,57',
'88,22,22,22,22,54,23,63,63,63,125,162,174,93,6,128,67,67,29,29,67,170',
'29,47,11,5,136,113,20,66,66,66,124,105,115,106,17,17,17,17,131,166,22',
'46,107,116,130,22,22,22,22,22,22,68,68,68,4,151,171,66,120,120,108,11',
'151,109,2,45,29,29,29,29,55,55,154,154,174,155,47,155,155,155,110,68',
'68,126,40,111,7,166,44,44,44,71,40,40,112,7,7,97,47,72,72,96,116,95',
'117,162,92,91,86,83,123,82,70,64,62,129,33,1,4,132,133,134,135,69,42',
'113,5,138,139,140,142,143,144,145,57,22,22,22,22,116,146,22,22,22,22',
'22,22,136,149,90,150,152,120,120,131,170,24,153,22,128,130,162,115,116',
'29,29,29,29,171,30,33,33,37,37,156,157,51,158,159,33,160,23,24,166,8',
'51,161,19,128,16,165,14,22,22,167,168,12,99,98,100,54,22,66,136,101',
'102,103,166,66,104,20,20,124,31,124,20,20,,22,,69,,22,,69,,22,22,93',
',,63,40,31,,,125,,37,47,,,24,22,23,,50,49,63,,37,24,,22,22,,,17,17,66',
'124,,124,126,7,126,11,66,22,22,120,155,,155,89,29,,,37,,,47,93,68,23',
'47,37,,22,29,29,68,,6,23,,88,,46,93,47,,120,46,22,71,47,,51,29,,126',
',126,31,36,,57,174,39,44,94,45,,39,29,69,45,44,,,8,69,121,,4,8,87,,15',
'67,,60,,72,,,33,124,162,124,69,124,18,,,61,,,38,,,57,,,38,47,,,22,,',
'124,,124,,124,31,41,,,,,41,,69,,10,,4,,27,,,,,,,41,,,126,,,,,,41,41',
'41,33,41,,,,71,124,69,38,,,,22,,22,126,124,,57,69,22,,22,,49,63,,,2',
'22,57,41,41,49,63,41,,,22,,33,8,47,,,,,69,,,33,,,22,,69,22,,57,29,7',
',22,,57,,,,,93,93,,22,,84,,41,,22,,,41,41,41,41,41,41,,93,93,52,,90',
'68,87,52,,57,,121,,114,121,,164,164,164,31,,65,,31,22,22,,137,,22,22',
'15,87,22,60,52,52,52,,66,,24,,,,31,68,22,61,,,,22,22,69,,,69,,,121,31',
',121,22,121,,121,49,63,52,52,52,52,,22,,,56,49,63,8,,41,41,41,41,,,41',
'41,41,41,41,41,,,,20,20,,,,20,20,31,41,20,,,52,,68,47,31,,,,,52,52,17',
',,,,,17,,,,,22,,,47,,22,22,57,41,41,22,114,,,114,66,,41,65,,22,29,65',
',93,,,29,,,,22,,,41,,,31,41,,,,,41,,121,,121,,121,,121,,,,,47,,,,,,22',
',,,31,63,22,41,41,,,52,,37,,,,,22,23,,,41,41,,,,,,,114,,114,,52,164',
'164,121,164,164,17,164,41,20,,,,,,,,22,,22,22,,,22,41,,,,,22,,,,,,,',
'93,29,,93,,,,,,,,,,,,,,22,,114,114,26,63,52,,22,26,52,,22,,52,52,,63',
',,,,,53,,,,,53,,,52,,119,,41,,26,,31,114,52,114,,,,,,,164,164,164,164',
',,,53,53,53,,57,,,,114,,,,,9,22,,26,,,,,22,22,,,,,,,,,,41,164,41,53',
'53,53,53,22,,33,41,,,22,,22,69,,,,,,,,26,,41,57,,,,22,31,26,26,,,,,',
',41,,53,41,,,,,,41,,53,53,,,,,,,41,,,,,,41,,,,,,,,,,28,,,25,,122,122',
'122,25,,,,,,,,,,,,,,,,41,41,,,,41,41,,,41,,,25,25,25,,,,,26,,119,52',
'41,52,,26,,41,41,52,,,,,,,,53,52,,,26,,,,,25,25,25,,9,,,,,,,,,,53,,52',
',,52,,,,119,,,119,9,119,,119,,,,,,,,,,25,52,,,,,,,,25,25,,,,,26,,,,26',
',41,,,26,,41,41,,,,41,,28,53,,,,53,28,,41,53,53,122,122,122,122,,122',
'26,9,41,,,,9,,52,53,,,,52,52,,,,,53,,,,,,52,,,,,,,,,,,52,,,41,,,,,,25',
',,,,119,41,119,,119,28,119,28,,28,28,,,,,,,,25,21,,,,,21,,122,122,122',
'122,,,,,41,,41,41,,,41,,,,,,41,,52,,,,21,52,119,,,122,,,,,,52,,,,,,',
',,,,,,,,25,41,,,25,,,,25,25,,,,,,,,,,,,,,,,25,,52,,,,,,52,,25,,,,,,26',
',26,,52,,,,21,,28,,,,,,,21,21,53,,53,41,,,,,53,,41,41,,,,,,53,,,52,52',
'26,,52,26,,,41,,52,,,,41,,41,,,,,53,,,53,,,26,,,,,41,,9,52,,9,,,,,,52',
',,53,52,,,,,28,,28,,28,,,,,,,,21,,,,,,26,,,,,,,,,,,,,,26,,,21,,26,26',
',,28,,,28,,,,,,,53,,52,,,53,53,28,,52,52,,,9,,,,53,9,9,,25,,25,,,,52',
'53,25,,,,52,,52,,,25,,,,,,21,,,,21,,,,28,21,,,28,28,,,,,25,,,25,,,,',
',26,,,,,26,,,21,,,,,,,26,25,,,53,,28,,25,53,,,,,,,,,,53,,,,,,,,,,28',
',,9,,,,,,,,,,,,,,,,26,,,,,28,,,,,25,,26,53,,25,25,,,53,,,,,,,,25,,,',
'53,9,,,,,,25,,,,,,9,,,26,26,,,26,,,,,,26,,,,28,,,,,53,53,,,53,,,,,,53',
',,9,9,,,9,,,,,,,26,,,,26,,,,,,25,53,,,,25,,,,53,,,,53,21,25,21,,,,,',
'9,,,,,,,,,28,,,,,,,,,,,,,,,,,,,28,,26,,,21,,25,21,26,26,,,25,,,,28,',
',,53,,,,25,,26,53,53,21,,,26,9,26,,,,,,9,9,,,,53,,,,,,53,,53,,,,,9,25',
'25,,,25,9,,,,,25,,,,,,,,,,,,,,,,,21,,,,32,21,21,,25,,,,,32,32,32,25',
',,,25,,,,,,32,32,32,,,,,,,,,,,,,,,32,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,25,,,,,,,25,25,,,,21,,,,,21,,,,,,,,25,,21,,,,25,,25,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,,,,,,,,,,,,21,,,,,,,,,,,,,,,,,,,,,',
',32,32,32,,,32,32,,,,,,21,21,,,21,,,,,32,21,,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,,,,,,21,32,32',
',,,,,,,32,,,,,,,32,,32,,32,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
'32,21,,,,,,,21,21,,,,,,,,,,,,,,,,,21,,,,,,21,,21,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,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(2810, 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,   188,    17,   nil,   122,    89,    80,    49,  -301,   887,
  -508,  -553,  -509,   nil,  -228,    19,   251,    -8,  -175,   190,
    77,  1245,     3,  -185,  -380,  1018,   855,  -185,   955,    24,
   121,   -19,  1842,   -19,   nil,   nil,    16,  -192,    20,  -202,
  -313,   449,  -277,   nil,   130,   103,    79,  -122,   nil,     7,
    23,  -251,   571,   874,  -277,    72,   -64,    -3,   nil,   nil,
    22,    36,  -210,     8,   125,   -57,    69,  -240,    93,   -13,
  -286,  -245,  -418,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   111,   120,   -60,   nil,  -153,  -284,  -614,  -474,
  -317,   110,  -178,    15,  -505,   103,   115,   110,  -250,   210,
   208,   210,  -410,   211,  -409,  -442,  -787,  -438,  -575,  -225,
  -218,  -402,  -663,  -784,   -87,  -566,  -768,  -436,   nil,   273,
  -526,  -207,   268,  -430,  -510,  -532,  -457,   nil,  -527,  -661,
  -732,  -738,  -340,  -594,  -140,  -459,  -435,   -18,  -666,  -666,
   -54,   nil,   -63,   -63,  -687,  -443,  -569,   nil,   nil,   142,
   142,    44,   139,   144,  -234,  -228,   160,   160,   161,  -314,
  -313,  -296,  -477,   nil,   -73,  -530,  -681,  -522,  -570,   nil,
  -703,  -714,   nil,   nil,  -444 ]

racc_goto_default = [
   nil,   nil,   nil,     3,   nil,     4,   340,   287,   nil,   517,
   nil,   810,   nil,   284,   285,   nil,   nil,   nil,    11,    12,
    18,   223,   316,   nil,   nil,   221,   222,   nil,   277,    17,
   nil,   434,    21,    22,    23,    24,   nil,   639,   nil,   nil,
   nil,   304,   nil,    25,   405,    32,   nil,   nil,    34,    37,
    36,   nil,   218,   219,   352,   nil,   126,   413,   125,   128,
    75,    76,   nil,    46,   nil,   777,   406,   nil,   407,   418,
   594,   480,   275,   261,    47,    48,    49,    50,    51,    52,
    53,    54,    55,   nil,   262,    61,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   532,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   800,   668,   nil,   801,   901,   749,   656,
   nil,   657,   nil,   nil,   658,   nil,   660,   610,   nil,   nil,
   nil,   666,   nil,   nil,   nil,   nil,   710,   nil,   nil,   nil,
   nil,   417,   nil,   nil,   nil,   nil,   nil,    74,    77,    78,
   nil,   nil,   nil,   nil,   nil,   566,   nil,   nil,   nil,   nil,
   nil,   nil,   870,   655,   nil,   659,   670,   672,   761,   675,
   676,   762,   679,   682,   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,
  0, 241, :_reduce_303,
  3, 204, :_reduce_304,
  6, 204, :_reduce_305,
  6, 204, :_reduce_306,
  0, 242, :_reduce_307,
  0, 243, :_reduce_308,
  7, 204, :_reduce_309,
  0, 244, :_reduce_310,
  0, 245, :_reduce_311,
  7, 204, :_reduce_312,
  5, 204, :_reduce_313,
  4, 204, :_reduce_314,
  0, 246, :_reduce_315,
  0, 247, :_reduce_316,
  9, 204, :_reduce_317,
  0, 248, :_reduce_318,
  6, 204, :_reduce_319,
  0, 249, :_reduce_320,
  7, 204, :_reduce_321,
  0, 250, :_reduce_322,
  5, 204, :_reduce_323,
  0, 251, :_reduce_324,
  6, 204, :_reduce_325,
  0, 252, :_reduce_326,
  0, 253, :_reduce_327,
  9, 204, :_reduce_328,
  1, 204, :_reduce_329,
  1, 204, :_reduce_330,
  1, 204, :_reduce_331,
  1, 204, :_reduce_332,
  1, 163, :_reduce_none,
  1, 228, :_reduce_none,
  1, 228, :_reduce_none,
  2, 228, :_reduce_336,
  1, 230, :_reduce_none,
  1, 230, :_reduce_none,
  1, 229, :_reduce_none,
  5, 229, :_reduce_340,
  1, 152, :_reduce_none,
  2, 152, :_reduce_342,
  1, 232, :_reduce_none,
  1, 232, :_reduce_none,
  1, 254, :_reduce_345,
  3, 254, :_reduce_346,
  1, 257, :_reduce_347,
  3, 257, :_reduce_348,
  1, 256, :_reduce_none,
  4, 256, :_reduce_350,
  6, 256, :_reduce_351,
  3, 256, :_reduce_352,
  5, 256, :_reduce_353,
  2, 256, :_reduce_354,
  4, 256, :_reduce_355,
  1, 256, :_reduce_356,
  3, 256, :_reduce_357,
  4, 258, :_reduce_358,
  2, 258, :_reduce_359,
  2, 258, :_reduce_360,
  1, 258, :_reduce_361,
  2, 263, :_reduce_362,
  0, 263, :_reduce_363,
  6, 264, :_reduce_364,
  8, 264, :_reduce_365,
  4, 264, :_reduce_366,
  6, 264, :_reduce_367,
  4, 264, :_reduce_368,
  2, 264, :_reduce_none,
  6, 264, :_reduce_370,
  2, 264, :_reduce_371,
  4, 264, :_reduce_372,
  6, 264, :_reduce_373,
  2, 264, :_reduce_374,
  4, 264, :_reduce_375,
  2, 264, :_reduce_376,
  4, 264, :_reduce_377,
  1, 264, :_reduce_none,
  0, 181, :_reduce_379,
  1, 181, :_reduce_380,
  3, 268, :_reduce_381,
  1, 268, :_reduce_382,
  4, 268, :_reduce_383,
  1, 269, :_reduce_384,
  4, 269, :_reduce_385,
  1, 270, :_reduce_386,
  3, 270, :_reduce_387,
  1, 271, :_reduce_388,
  1, 271, :_reduce_none,
  0, 275, :_reduce_390,
  0, 276, :_reduce_391,
  4, 227, :_reduce_392,
  4, 273, :_reduce_393,
  1, 273, :_reduce_394,
  0, 279, :_reduce_395,
  4, 274, :_reduce_396,
  0, 280, :_reduce_397,
  4, 274, :_reduce_398,
  0, 281, :_reduce_399,
  5, 278, :_reduce_400,
  2, 176, :_reduce_401,
  4, 176, :_reduce_402,
  5, 176, :_reduce_403,
  5, 176, :_reduce_404,
  2, 226, :_reduce_405,
  4, 226, :_reduce_406,
  4, 226, :_reduce_407,
  3, 226, :_reduce_408,
  3, 226, :_reduce_409,
  3, 226, :_reduce_410,
  2, 226, :_reduce_411,
  1, 226, :_reduce_412,
  4, 226, :_reduce_413,
  0, 283, :_reduce_414,
  5, 225, :_reduce_415,
  0, 284, :_reduce_416,
  5, 225, :_reduce_417,
  5, 231, :_reduce_418,
  1, 285, :_reduce_419,
  1, 285, :_reduce_none,
  6, 151, :_reduce_421,
  0, 151, :_reduce_422,
  1, 286, :_reduce_423,
  1, 286, :_reduce_none,
  1, 286, :_reduce_none,
  2, 287, :_reduce_426,
  1, 287, :_reduce_none,
  2, 153, :_reduce_428,
  1, 153, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 216, :_reduce_433,
  1, 289, :_reduce_434,
  2, 289, :_reduce_435,
  3, 290, :_reduce_436,
  1, 290, :_reduce_437,
  1, 290, :_reduce_438,
  3, 217, :_reduce_439,
  4, 218, :_reduce_440,
  3, 219, :_reduce_441,
  0, 294, :_reduce_442,
  3, 294, :_reduce_443,
  1, 295, :_reduce_444,
  2, 295, :_reduce_445,
  3, 221, :_reduce_446,
  0, 297, :_reduce_447,
  3, 297, :_reduce_448,
  3, 220, :_reduce_449,
  3, 222, :_reduce_450,
  0, 298, :_reduce_451,
  3, 298, :_reduce_452,
  0, 299, :_reduce_453,
  3, 299, :_reduce_454,
  0, 291, :_reduce_455,
  2, 291, :_reduce_456,
  0, 292, :_reduce_457,
  2, 292, :_reduce_458,
  0, 293, :_reduce_459,
  2, 293, :_reduce_460,
  1, 296, :_reduce_461,
  2, 296, :_reduce_462,
  0, 301, :_reduce_463,
  4, 296, :_reduce_464,
  1, 300, :_reduce_465,
  1, 300, :_reduce_466,
  1, 300, :_reduce_467,
  1, 300, :_reduce_none,
  1, 201, :_reduce_469,
  3, 202, :_reduce_470,
  1, 288, :_reduce_471,
  1, 288, :_reduce_472,
  2, 288, :_reduce_473,
  2, 288, :_reduce_474,
  1, 193, :_reduce_475,
  1, 193, :_reduce_476,
  1, 193, :_reduce_477,
  1, 193, :_reduce_478,
  1, 193, :_reduce_479,
  1, 194, :_reduce_480,
  1, 194, :_reduce_481,
  1, 194, :_reduce_482,
  1, 194, :_reduce_483,
  1, 194, :_reduce_484,
  1, 194, :_reduce_485,
  1, 194, :_reduce_486,
  1, 223, :_reduce_487,
  1, 223, :_reduce_488,
  1, 162, :_reduce_489,
  1, 162, :_reduce_490,
  1, 166, :_reduce_491,
  1, 166, :_reduce_492,
  1, 233, :_reduce_493,
  0, 302, :_reduce_494,
  4, 233, :_reduce_495,
  2, 233, :_reduce_496,
  3, 235, :_reduce_497,
  2, 235, :_reduce_498,
  4, 303, :_reduce_499,
  2, 303, :_reduce_500,
  2, 303, :_reduce_501,
  1, 303, :_reduce_502,
  2, 305, :_reduce_503,
  0, 305, :_reduce_504,
  6, 277, :_reduce_505,
  8, 277, :_reduce_506,
  4, 277, :_reduce_507,
  6, 277, :_reduce_508,
  4, 277, :_reduce_509,
  6, 277, :_reduce_510,
  2, 277, :_reduce_511,
  4, 277, :_reduce_512,
  6, 277, :_reduce_513,
  2, 277, :_reduce_514,
  4, 277, :_reduce_515,
  2, 277, :_reduce_516,
  4, 277, :_reduce_517,
  1, 277, :_reduce_518,
  0, 277, :_reduce_519,
  1, 272, :_reduce_520,
  1, 272, :_reduce_521,
  1, 272, :_reduce_522,
  1, 272, :_reduce_523,
  1, 255, :_reduce_none,
  1, 255, :_reduce_none,
  1, 307, :_reduce_526,
  3, 307, :_reduce_527,
  1, 265, :_reduce_528,
  3, 265, :_reduce_529,
  2, 308, :_reduce_530,
  2, 309, :_reduce_531,
  1, 259, :_reduce_532,
  3, 259, :_reduce_533,
  1, 304, :_reduce_534,
  3, 304, :_reduce_535,
  1, 310, :_reduce_none,
  1, 310, :_reduce_none,
  2, 260, :_reduce_538,
  1, 260, :_reduce_539,
  3, 311, :_reduce_540,
  3, 312, :_reduce_541,
  1, 266, :_reduce_542,
  3, 266, :_reduce_543,
  1, 306, :_reduce_544,
  3, 306, :_reduce_545,
  1, 313, :_reduce_none,
  1, 313, :_reduce_none,
  2, 267, :_reduce_548,
  1, 267, :_reduce_549,
  1, 314, :_reduce_none,
  1, 314, :_reduce_none,
  2, 262, :_reduce_552,
  2, 261, :_reduce_553,
  0, 261, :_reduce_554,
  1, 236, :_reduce_none,
  3, 236, :_reduce_556,
  0, 224, :_reduce_557,
  2, 224, :_reduce_none,
  1, 209, :_reduce_559,
  3, 209, :_reduce_560,
  3, 315, :_reduce_561,
  2, 315, :_reduce_562,
  2, 315, :_reduce_563,
  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, 282, :_reduce_none,
  1, 282, :_reduce_none,
  1, 282, :_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_580,
  2, 165, :_reduce_581,
  0, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 208, :_reduce_none,
  1, 234, :_reduce_585,
  1, 234, :_reduce_none,
  1, 147, :_reduce_none,
  2, 147, :_reduce_none,
  0, 206, :_reduce_589 ]

racc_reduce_n = 590

racc_shift_n = 1018

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",
  "@21",
  "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",
  "@22",
  "@23",
  "f_args",
  "do_block",
  "@24",
  "@25",
  "@26",
  "operation3",
  "@27",
  "@28",
  "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",
  "@29",
  "@30",
  "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_t.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 @context.indirectly_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
                      @context.push(:block)
                    
    result
end

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

                      @static_env.unextend
                      @context.pop
                    
    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_internal(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)
                      @context.push(:lambda)
                    
    result
end

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

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

def _reduce_305(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_306(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_307(val, _values, result)
                      @lexer.cond.push(true)
                    
    result
end

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

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

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

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

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

def _reduce_313(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_314(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_315(val, _values, result)
                      @lexer.cond.push(true)
                    
    result
end

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

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

def _reduce_318(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                      @context.push(:class)
                    
    result
end

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

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

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

def _reduce_320(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                      @context.push(:sclass)
                    
    result
end

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

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

def _reduce_322(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                      @context.push(:module)
                    
    result
end

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

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

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

def _reduce_324(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                      @context.push(:def)
                    
    result
end

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

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

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

def _reduce_327(val, _values, result)
                      @static_env.extend_static
                      @lexer.push_cmdarg
                      @context.push(:defs)
                    
    result
end

def _reduce_328(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
                      @context.pop
                    
    result
end

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

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

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

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

# reduce 333 omitted

# reduce 334 omitted

# reduce 335 omitted

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

# reduce 337 omitted

# reduce 338 omitted

# reduce 339 omitted

def _reduce_340(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 341 omitted

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

# reduce 343 omitted

# reduce 344 omitted

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

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

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

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

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

# reduce 349 omitted

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

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

def _reduce_351(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_352(val, _values, result)
                      result = val[0].
                                  push(@builder.restarg(val[2]))
                    
    result
end

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

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

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

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

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

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

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

def _reduce_358(val, _values, result)
                      result = val[0].concat(val[2]).concat(val[3])
                    
    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].concat(val[1])
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 369 omitted

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

def _reduce_371(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_372(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])
                    
    result
end

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

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

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

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

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

# reduce 378 omitted

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

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

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

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

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

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

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

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

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

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

# reduce 389 omitted

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

def _reduce_391(val, _values, result)
                      @context.pop
                    
    result
end

def _reduce_392(val, _values, result)
                      result = [ val[1], val[3] ]

                      @static_env.unextend
                    
    result
end

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

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

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

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

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

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

def _reduce_399(val, _values, result)
                      @static_env.extend_dynamic
                      @context.push(:block)
                    
    result
end

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

                      @static_env.unextend
                      @context.pop
                    
    result
end

def _reduce_401(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_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]
                      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_404(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_405(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_406(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_407(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_408(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2])
                    
    result
end

def _reduce_409(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_410(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_411(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_412(val, _values, result)
                      result = @builder.keyword_cmd(:zsuper, val[0])
                    
    result
end

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

def _reduce_414(val, _values, result)
                      @static_env.extend_dynamic
                      @context.push(:block)
                    
    result
end

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

                      @static_env.unextend
                      @context.pop
                    
    result
end

def _reduce_416(val, _values, result)
                      @static_env.extend_dynamic
                      @context.push(:block)
                    
    result
end

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

                      @static_env.unextend
                      @context.pop
                    
    result
end

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

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

# reduce 420 omitted

def _reduce_421(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_422(val, _values, result)
                      result = []
                    
    result
end

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

# reduce 424 omitted

# reduce 425 omitted

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

# reduce 427 omitted

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

# reduce 429 omitted

# reduce 430 omitted

# reduce 431 omitted

# reduce 432 omitted

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_445(val, _values, result)
                      result = val[0] << val[1]
                    
    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.word(val[1])
                    
    result
end

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

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

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

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

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

def _reduce_454(val, _values, result)
                      result = val[0] << @builder.symbol_internal(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 = []
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

# reduce 468 omitted

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

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

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

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

def _reduce_473(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_474(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_475(val, _values, result)
                      result = @builder.ident(val[0])
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      @lexer.state = :expr_value
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 524 omitted

# reduce 525 omitted

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

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

def _reduce_527(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])
                    
    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)
                      check_kwarg_name(val[0])

                      @static_env.declare val[0][0]

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

def _reduce_531(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_532(val, _values, result)
                      result = [ val[0] ]
                    
    result
end

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

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

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

# reduce 536 omitted

# reduce 537 omitted

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

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

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

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

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

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

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

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

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

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

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

# reduce 546 omitted

# reduce 547 omitted

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

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

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

# reduce 550 omitted

# reduce 551 omitted

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

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

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

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

# reduce 555 omitted

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

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

# reduce 558 omitted

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

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

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

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

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

# 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

# reduce 576 omitted

# reduce 577 omitted

# reduce 578 omitted

# reduce 579 omitted

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

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

# reduce 582 omitted

# reduce 583 omitted

# reduce 584 omitted

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

# reduce 586 omitted

# reduce 587 omitted

# reduce 588 omitted

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

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

  end   # class Ruby20
  end   # module Parser
