# -*- 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 Ruby27 < Parser::Base


  def version
    27
  end

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

clist = [
'-688,-105,-113,-106,531,554,-105,-688,-688,-688,809,554,-688,-688,-688',
'809,-688,276,554,1082,-109,809,213,214,-688,-688,-688,-688,-688,-697',
'221,-110,1016,-108,-91,-113,-688,-688,-697,-688,-688,-688,-688,-688',
'554,399,-77,554,-112,561,-107,554,-106,276,909,224,1075,746,223,-597',
'850,-484,561,-112,224,224,-688,-688,-688,-688,-688,-688,-688,-688,-688',
'-688,-688,-688,-688,-688,-111,-110,-688,-688,-688,-111,806,-688,-108',
'-113,-688,969,-107,-688,-688,-109,-688,-684,-688,224,-688,1083,-688',
'-688,275,-688,-688,-688,-688,-688,561,-688,-688,-688,1017,-96,224,-112',
'-105,-105,-113,-106,-99,118,-105,-113,-106,-688,117,118,-688,-688,-688',
'-688,117,-688,118,-688,-109,-688,275,117,-688,-109,-104,-109,-688,-688',
'-688,-110,-685,-108,-688,-688,-110,-688,-108,-685,-101,-697,-684,-97',
'118,-688,-688,118,-112,117,-107,118,117,-112,889,-107,117,-688,-688',
'506,-688,-688,-688,-688,-688,213,214,656,850,-98,-99,-100,-101,-697',
'881,741,-102,597,746,-99,-111,224,968,-98,595,-111,-100,-688,-688,-688',
'-688,-688,-688,-688,-688,-688,-688,-688,-688,-688,-688,-682,878,-688',
'-688,-688,-101,622,-103,224,-99,-688,880,-99,-688,96,97,213,214,-688',
'879,-688,582,-688,-688,-99,-688,-688,-688,-688,-688,-302,-688,-688,-688',
'-98,-684,-100,-302,-302,-302,213,214,596,-302,-302,-101,-302,-688,-101',
'594,-688,-688,-586,-688,-302,-688,-598,276,118,-586,-101,582,-688,117',
'-682,-109,-302,-302,-586,-302,-302,-302,-302,-302,-98,548,-100,-98,118',
'-100,96,97,276,117,567,584,583,-682,568,-98,567,-100,98,99,828,777,-302',
'-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,224',
'460,-302,-302,-302,-106,621,-586,547,804,-302,271,582,-302,219,584,583',
'582,-302,582,-302,269,-302,-302,224,-302,-302,-302,-302,-302,-583,-302',
'1090,-302,275,407,271,-583,-583,-583,409,408,-583,-583,-583,219,-583',
'-302,98,99,-302,-302,457,-102,-583,-302,-583,-583,-583,275,-113,458',
'-302,884,850,-111,-583,-583,-108,-583,-583,-583,-583,-583,1022,827,584',
'583,580,220,582,584,583,584,583,598,567,-583,-586,805,828,775,1021,678',
'-583,-586,-583,-583,-583,-583,-583,-583,-583,-583,-583,-583,-583,-583',
'-583,-583,220,219,-583,-583,-583,791,-583,-583,218,936,-583,910,582',
'-583,-583,582,-583,216,-583,582,-583,224,-583,-583,582,-583,-583,-583',
'-583,-583,582,-583,-302,-583,584,583,580,245,-110,-302,-302,-302,-583',
'-586,-302,-302,-302,-583,-302,118,-583,-583,-583,-583,117,-583,-302',
'-583,-302,-302,-302,838,-583,943,-107,-583,220,534,-302,-302,-107,-302',
'-302,-302,-302,-302,584,583,580,584,583,593,742,584,583,585,692,617',
'584,583,587,616,118,1090,584,583,589,117,-302,-302,-302,-302,-302,-302',
'-302,-302,-302,-302,-302,-302,-302,-302,537,-341,-302,-302,-302,-595',
'807,-302,-341,961,-302,245,-595,-302,-302,-275,-302,-341,-302,118,-302',
'-595,-302,-302,117,-302,-302,-302,-302,-302,118,-302,-586,-302,-110',
'117,213,214,-108,-586,-586,-586,82,965,-586,-586,-586,-302,-586,528',
'-302,-302,-302,-302,83,-302,-586,-302,-586,-586,-586,224,-302,245,84',
'-111,-341,838,-586,-586,-595,-586,-586,-586,-586,-586,840,-596,271,219',
'869,-293,-593,-592,-596,-594,524,-591,-293,-593,-592,118,-594,-596,-591',
'522,117,-293,-586,-586,-586,-586,-586,-586,-586,-586,-586,-586,-586',
'-586,-586,-586,986,616,-586,-586,-586,219,-586,-586,224,987,-586,1142',
'533,-586,-586,224,-586,-588,-586,224,-586,458,-586,-586,-588,-586,-586',
'-586,-586,-586,-596,-586,220,-586,-293,-593,-592,990,-594,718,-591,715',
'714,713,723,716,617,-586,-99,-589,-586,-586,-586,-586,726,-586,-589',
'-586,544,-688,-108,543,-586,734,733,-586,-688,-688,-688,815,220,224',
'-688,-688,811,-688,721,544,812,992,546,280,-588,-688,-688,731,730,734',
'733,884,850,544,727,-101,546,-688,-688,525,-688,-688,-688,-688,-688',
'544,518,-110,546,718,219,715,714,713,723,716,-589,564,-590,517,224,1073',
'1074,1000,726,-590,562,-688,-688,-688,-688,-688,-688,-688,-688,-688',
'-688,-688,-688,-688,-688,-681,221,-688,-688,-688,721,622,213,214,1001',
'-688,224,219,-688,731,730,734,733,-688,269,-688,727,-688,-688,1004,-688',
'-688,-688,-688,-688,-302,-688,-688,-688,220,822,823,-302,-302,-302,224',
'224,-590,-302,-302,1009,-302,-688,-104,-278,-688,-688,-583,-100,-302',
'-688,810,-76,127,-583,-113,901,-688,-597,-681,-109,-302,-302,-583,-302',
'-302,-302,-302,-302,809,219,224,220,224,219,1015,1018,570,723,769,770',
'609,-681,771,112,113,572,506,726,867,607,-302,-302,-302,-302,-302,-302',
'-302,-302,-302,-302,-302,-302,-302,-302,-96,224,-302,-302,-302,224,621',
'-583,-303,224,-302,224,-105,-302,865,-303,734,733,-302,114,-302,727',
'-302,-302,-303,-302,-302,-302,-302,-302,220,-302,-598,-302,220,504,-303',
'1030,861,861,1034,219,-302,-303,1036,791,531,-302,1106,-302,-302,-302',
'-303,-302,-685,-302,219,572,-302,1038,1040,224,-302,1111,1042,-111,298',
'72,73,74,9,60,1109,-303,1043,66,67,502,491,-97,70,-688,68,69,71,30,31',
'75,76,224,223,-106,-98,-103,77,28,27,106,105,107,108,-303,1056,19,-107',
'-112,220,-302,861,8,48,300,10,110,109,111,100,59,102,101,103,220,104',
'112,113,-302,96,97,44,45,43,219,-302,-688,879,245,1058,-685,1106,1060',
'-688,-302,262,263,1062,-684,1064,572,1064,-688,40,224,245,302,863,462',
'61,62,461,861,63,1079,35,764,809,1081,47,242,-688,491,245,244,243,1084',
'927,20,459,861,261,260,94,82,85,86,726,87,89,88,90,927,-302,809,858',
'83,93,491,220,692,-688,726,792,65,242,84,98,99,244,243,41,42,298,72',
'73,74,9,60,504,1100,692,66,67,-276,727,1064,70,1107,68,69,71,30,31,75',
'76,237,935,779,410,727,77,28,27,106,105,107,108,224,778,19,1112,935',
'397,271,224,8,48,300,10,110,109,111,100,59,102,101,103,224,104,112,113',
'224,96,97,44,45,43,245,249,250,251,252,262,263,257,258,253,254,774,238',
'239,850,1119,255,256,1120,40,626,325,33,723,224,61,62,764,324,63,1127',
'35,242,726,248,47,244,243,265,240,241,261,260,246,20,247,245,1130,861',
'94,82,85,86,1132,87,89,88,90,1134,1136,1138,1138,83,93,1138,259,734',
'733,697,224,65,727,84,98,99,-91,1174,41,42,298,72,73,74,9,60,215,1151',
'1152,66,67,1153,1064,1064,70,1064,68,69,71,30,31,75,76,121,122,123,124',
'125,77,28,27,106,105,107,108,506,692,19,1161,212,1130,1130,611,8,48',
'300,10,110,109,111,100,59,102,101,103,211,104,112,113,681,96,97,44,45',
'43,245,249,250,251,252,262,263,257,258,253,254,224,238,239,747,271,255',
'256,700,40,-685,-684,33,224,210,61,62,127,743,63,1120,35,242,1138,248',
'47,244,243,1130,240,241,261,260,246,20,247,737,697,698,94,82,85,86,271',
'87,89,88,90,850,886,836,887,83,93,224,259,615,-249,614,224,65,610,84',
'98,99,245,606,41,42,298,72,73,74,9,60,1138,224,605,66,67,-275,897,603',
'70,602,68,69,71,30,31,75,76,121,122,123,124,125,77,28,27,106,105,107',
'108,265,599,19,574,-277,224,831,611,8,48,300,10,110,109,111,100,59,102',
'101,103,830,104,112,113,566,96,97,44,45,43,245,249,250,251,252,262,263',
'257,258,253,254,565,238,239,1138,,255,256,,40,,,33,,,61,62,,,63,,35',
'242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,259,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66',
'67,,,,70,,68,69,71,30,31,75,76,121,122,123,124,125,77,28,27,106,105',
'107,108,,718,19,715,714,713,,716,8,48,300,10,110,109,111,100,59,102',
'101,103,,104,112,113,,96,97,44,45,43,245,249,250,251,252,262,263,257',
'258,253,254,,238,239,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47',
'244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,',
'83,93,,259,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70',
',68,69,71,30,31,75,76,121,122,123,124,125,77,28,27,106,105,107,108,',
'1103,19,715,714,713,,716,8,48,300,10,110,109,111,100,59,102,101,103',
',104,112,113,,96,97,44,45,43,245,249,250,251,252,262,263,257,258,253',
'254,,238,239,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243',
',240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,224',
'259,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69',
'71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,1103,19,715,714,713,,716',
'8,48,300,10,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45',
'43,245,249,250,251,252,262,263,257,258,253,254,,238,239,,,255,256,,40',
',,33,,,61,62,,,63,,35,242,,248,47,244,243,,240,241,261,260,246,20,247',
',,,94,82,85,86,,87,89,88,90,,,,,83,93,,259,,,,,65,,84,98,99,,,41,42',
'298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27',
'106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103',
',104,112,113,,96,97,44,45,43,245,249,250,251,252,262,263,257,258,253',
'254,,238,239,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243',
',240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,259',
',,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71',
'30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245,249,250',
'251,252,262,263,257,258,253,254,,238,239,,,255,256,,40,,,33,,,61,62',
',,63,,35,242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85',
'86,,87,89,88,90,,,,,83,93,,259,,,,,65,,84,98,99,,,41,42,298,72,73,74',
'9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,718,19,715,714,713,,716,8,48,300,10,110,109,111,100,59,102,101',
'103,,104,112,113,,96,97,44,45,43,718,,715,714,713,,716,,871,,718,,715',
'714,713,,716,875,,40,,,33,,,61,62,,,63,718,35,715,714,713,47,716,871',
',,,,,,20,,875,871,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,871,,,65,,84',
'98,99,,875,41,42,5,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76',
',,,,,77,28,27,106,105,107,108,,,19,,,245,,,8,48,7,10,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,245,-710,-710,-710,-710',
'262,263,242,,-710,-710,244,243,,240,241,255,256,,40,,,33,,,61,62,,245',
'63,,35,242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85,86',
',87,89,88,90,,,242,,83,93,244,243,,240,241,,65,,84,98,99,,,41,42,298',
'72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,718,19,715,714,713,,716,8,48,300,10,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,245,718,,715,714,713,,716,871',
',,,,,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243,871,240',
'241,,,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84',
'98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76',
',,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,245,249,250,251,252,262',
'263,257,,253,254,,,,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47',
'244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,',
'83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68',
'69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10',
'110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245,249',
'250,251,252,262,263,,,253,254,,,,,,255,256,,40,,,33,,,61,62,,,63,,35',
'242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67',
',,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,',
'8,48,300,10,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45',
'43,245,-710,-710,-710,-710,262,263,,,-710,-710,,,,,,255,256,,40,,,33',
',,61,62,,,63,,35,242,,248,47,244,243,,240,241,261,260,246,20,247,,,',
'94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298,72',
'73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105',
'107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,245,-710,-710,-710,-710,262,263,,,-710,-710,,,,',
',255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243,,240,241,261',
'260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98',
'99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,',
',,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,245,-710,-710,-710,-710,262',
'263,,,-710,-710,,,,,,255,256,,40,,,302,,,61,62,,,63,,35,242,,248,47',
'244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,',
'83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68',
'69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10',
'110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245,-710',
'-710,-710,-710,262,263,,,-710,-710,,,,,,255,256,,40,,,33,,,61,62,,,63',
',35,242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,',
'87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,',
',,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,',
'19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103,,104,112,113,,96',
'97,44,45,43,245,-710,-710,-710,-710,262,263,,,-710,-710,,,,,,255,256',
',40,,,33,,,61,62,,,63,,35,242,,248,47,244,243,,240,241,261,260,246,20',
'247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42',
'298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27',
'106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103',
',104,112,113,,96,97,44,45,43,245,249,250,251,252,262,263,257,258,253',
'254,,-710,-710,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243',
',240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,',
',,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71',
'30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245,249,250',
'251,252,262,263,257,258,253,254,,-710,-710,,,255,256,,40,,,33,,,61,62',
',,63,,35,242,,248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85',
'86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9',
'60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108',
',,19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103,,104,112,113,,96',
'97,44,45,43,245,249,250,251,252,262,263,257,258,253,254,,-710,-710,',
',255,256,,40,,,302,,,61,62,,,63,,35,242,,248,47,244,243,,240,241,261',
'260,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98',
'99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,',
',,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,245,249,250,251,252,262,263',
'257,258,253,254,,-710,-710,,,255,256,,40,,,33,,,61,62,,,63,,35,242,',
'248,47,244,243,,240,241,261,260,246,20,247,,,,94,82,85,86,,87,89,88',
'90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,',
',,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8',
'48,300,10,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
'245,,,,,,,,,,,,,,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244',
'243,,240,241,,,246,20,247,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,',
',,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30',
'31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109',
'111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245,,,,,,,,,,,,',
',,,255,256,,40,,,33,,,61,62,,,63,,35,242,,,47,244,243,,240,241,,,,20',
',,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,298',
'72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,245,,,,,,,,,,,,,,,,255,256,,40,,,33,,,61,62',
',,63,,35,242,,248,47,244,243,,240,241,,,,20,,,,,94,82,85,86,,87,89,88',
'90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,5,72,73,74,9,60,,,,66,67,,,',
'70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48',
'7,10,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,245',
',,,,,,,,,,,,,,,255,256,,40,,,33,,,61,62,,,63,,35,242,,248,47,244,243',
',240,241,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98',
'99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,',
',,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,40,,,33',
',,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,,,,65,,84,98,99,,,41,42,298,72,73,74,9,60,,,,66,67,,,,70,,68,69',
'71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,72,73,74,9,60,,,,66,67',
',,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,',
'8,48,7,10,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,,,,,,399,65,,84,98,99,,,41,42,72,73',
'74,,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96',
'97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,',
',,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98',
'99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108',
',,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44',
'45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,',
',,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66',
'67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19',
',,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45',
'43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,',
'94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67',
'41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,',
',,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,72,73,74',
'9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,19,,,,,,8,48,,10,110,109,111,100,59,102,101,103,,104,112,113,',
'96,97,44,45,43,,,,,,,,,,,,,,,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,',
',,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105',
'107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,675,',
'287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77',
'314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101',
'103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62',
',,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28',
'27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,',
'104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63',
',415,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28',
'27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,',
'104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63',
',415,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28',
'27,106,105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,',
',,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74',
'65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105',
'107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,',
',,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287',
',47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73',
'74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27',
'106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,',
',,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74',
'65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105',
'107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,',
',,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,224,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,675',
',287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77',
'314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101',
'103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61',
'62,,,63,,,,287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,',
'83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75',
'76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76',
',,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102',
'101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,',
'61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93',
',,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,',
',,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102',
'101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,,,287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90',
',,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,,,,65,,84,98,99,-258,,41,42,,,,-258,-258,-258,,,-258,-258',
'-258,,-258,,,,,,,,-258,-258,-258,,,,,,,,,,-258,-258,,-258,-258,-258',
'-258,-258,,,,,,,,489,441,,,490,,,,,,,,161,162,,158,140,141,142,149,146',
'148,,,143,144,-258,,,163,164,150,151,-258,,,,,271,-258,,,,,,,155,154',
',139,160,157,156,165,152,153,147,145,137,159,138,-258,-258,166,,,,,',
',,,,,,,-258,,,-258,,72,73,74,-258,60,,,,66,67,-258,,,70,,68,69,71,30',
'31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111',
'100,59,102,101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,',
',,229,,,235,,,61,62,,,63,,289,,287,,47,,,293,,,,,,234,,,,,94,290,85',
'86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,493,,70',
',68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,',
',110,109,111,100,59,102,101,103,292,104,112,113,,96,97,44,45,43,,,,',
',,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287,,47,,,293,,,,,,234,',
',,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66',
'67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,236',
',,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112,113,,96,97,44',
'45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287,,47,,,293',
',,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,224,,,,,,65,,84,98',
'99,,,41,42,72,73,74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77',
'28,27,106,105,107,108,,,19,,,,,,8,48,300,10,110,109,111,100,59,102,101',
'103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,40,,,33,,,61,62',
',,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,',
',,399,65,,84,98,99,,,41,42,72,73,74,,60,,,,66,67,,,,70,,68,69,71,317',
'318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111',
'100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229',
',,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90',
',,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31',
'75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31',
'75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,,,,65,,84,98,99,,,41,42,72,73,74,9,60,,,,66,67,,,,70,,68',
'69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,,10,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,',
',,,,,,,,,,229,,,235,,,61,62,,,63,,,,287,,47,,,293,,,,,,234,,,,,94,290',
'85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42',
',70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,',
',,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41',
'42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236',
',,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45',
'43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,',
',94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67',
'41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,',
',,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41',
'42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,',
',,,48,,,110,109,111,100,59,102,101,103,292,104,112,113,,96,97,44,45',
'43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287,,47,,,293,,,',
',,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98',
'99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108',
',,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112,113,,96',
'97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287,,47',
',,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65',
'60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105',
'107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,',
',,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287',
',47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,,,,65',
',84,98,99,-419,,41,42,,,,-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,,271,-419,,,-419,-419,,-419',
',-419,,-419,,-419,-419,,-419,-419,-419,-419,-419,,-419,-419,-419,,,',
',,,,,,,,,,-419,,,-419,-419,,-419,,-419,72,73,74,,60,,-419,,66,67,,,',
'70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,',
',,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,,,47,,,,,,,,,234,,,',
',94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,,,41,42,72,73',
'74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,19,,,,,,8,48,,10,110,109,111,100,59,102,101,103,,104,112,113,',
'96,97,44,45,43,,,,,,,,,,,,,,,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,',
',,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112,113',
',96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,,287',
',47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73',
'74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314',
'320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103',
',104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,',
'63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77',
'314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101',
'103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61',
'62,,,63,,,,,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76',
',,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59',
'102,101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,675,,,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89',
'88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71',
'317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109',
'111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,',
',,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71',
'30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110,109,111',
'100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229',
',,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31',
'75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229',
',,235,,,61,62,,,63,,289,,287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,783,,,,47,,,,,,,,,234,,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68',
'69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110,109',
'111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,',
',,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71',
'317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109',
'111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,',
',,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71',
'317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109',
'111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,',
',,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71',
'30,31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111',
'100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229',
',,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90',
',,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,',
',,,83,93,,,,,,,65,,84,98,99,,,41,42,72,73,74,9,60,,,,66,67,,,,70,,68',
'69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,7,10',
'110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,',
',,,,,,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,-294,,41,42,,,,-294,-294,-294',
',,-294,-294,-294,,-294,,,,,,,,-294,,-294,-294,-294,,,,106,105,107,108',
'-294,-294,,-294,-294,-294,-294,-294,,,,,110,109,111,,,,,,,,,,,96,97',
',,321,-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,,94,82,85,86,,87,89,88,90',
',,,-294,83,93,-294,-294,-294,-294,,-294,655,-294,84,98,99,,-294,72,73',
'74,9,60,,,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107',
'108,,,19,,,,,,8,48,,10,110,109,111,100,59,102,101,103,,104,112,113,',
'96,97,44,45,43,,,,,,,,,,,,,,,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,',
',,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105',
'107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,',
',,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72,73',
'74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314',
'320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103',
'292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62',
',,63,,,,,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93',
',,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,',
',,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101',
'103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61',
'62,,,63,,289,,287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,',
',,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31',
'75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110,109,111,100',
'59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,',
',235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,',
',,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75',
'76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76',
',,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102',
'101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,',
'61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93',
'118,,,,,117,65,,84,98,99,,,41,42,72,73,74,9,60,,,,66,67,,,,70,,68,69',
'71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,8,48,,10,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,40,,,33,,,61,62,,,63,,35,,,,47,,,,,,,,,20,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87',
'89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,',
',,,,,,,229,,,235,537,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,-690,,41,42,,,,-690,-690,-690',
',,-690,-690,-690,,-690,,,,,,,,-690,-690,-690,-690,-690,,,,,,,,-690,-690',
',-690,-690,-690,-690,-690,,,,,,,,,,,,,,,,,,,,,,,-690,-690,-690,-690',
'-690,-690,-690,-690,-690,-690,-690,-690,-690,-690,,,-690,-690,-690,',
',-690,,,-690,,,-690,-690,,-690,,-690,,-690,,-690,-690,,-690,-690,-690',
'-690,-690,,-690,-690,-690,,,,,,,,,,,,,,-690,,,-690,-690,-690,-690,,-690',
'-689,-690,,,,,-690,-689,-689,-689,,,-689,-689,-689,,-689,,,,,,,,-689',
'-689,-689,-689,-689,,,,,,,,-689,-689,,-689,-689,-689,-689,-689,,,,,',
',,,,,,,,,,,,,,,,,-689,-689,-689,-689,-689,-689,-689,-689,-689,-689,-689',
'-689,-689,-689,,,-689,-689,-689,,,-689,,,-689,,,-689,-689,,-689,,-689',
',-689,,-689,-689,,-689,-689,-689,-689,-689,,-689,-689,-689,,,,,,,,,',
',,,,-689,,,-689,-689,-689,-689,,-689,,-689,,72,73,74,-689,60,,,,66,67',
',,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236',
',,,,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45',
'43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,415,,,,47,,,,,,,,,234',
',,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,-258,,41,42',
',,,-258,-258,-258,,,-258,-258,-258,,-258,,,,,,,,-258,-258,-258,-258',
',,,,,,,,-258,-258,,-258,-258,-258,-258,-258,,,,,,,,,,,,,,,,,,,,,,,-258',
'-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,,,-258',
'-258,-258,,,-258,,271,-258,,,-258,-258,,-258,,-258,,-258,,-258,-258',
',-258,-258,-258,-258,-258,,-258,-258,-258,,,,,,,,,,,,,,-258,,,-258,-258',
',-258,,-258,72,73,74,,60,,-258,,66,67,,,,70,,68,69,71,317,318,75,76',
',,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76',
',,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59',
'102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76',
',,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102',
'101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235',
',,61,62,,,63,,289,,287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88',
'90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,30',
'31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,,48,,,110,109,111',
'100,59,102,101,103,292,104,112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,',
',,229,,,235,,,61,62,,,63,,289,,287,,47,,,293,,,,,,234,,,,,94,290,85',
'86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70',
',68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,19,,,,,,,48,,',
'110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,,',
',,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,20,,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70,,68',
'69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,48,',
',110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,,,,,',
',,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82,85',
'86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42,,70',
',68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,',
'48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,',
',,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82',
'85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42',
',70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105,107,108,,,236,,,,,,',
'48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43,,,',
',,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94,82',
'85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,41,42',
',70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,',
',,,,48,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,44,45,43',
',,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47,,,,,,,,,234,,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,-309,,41,42,,,,-309',
'-309,-309,,,-309,-309,-309,,-309,,,,,,,,-309,,-309,-309,,,,,,,,,-309',
'-309,,-309,-309,-309,-309,-309,,,,,,,,,,,,,,,,,,,,,,,-309,-309,-309',
'-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,,,-309,-309,-309',
',,-309,,280,-309,,,-309,-309,,-309,,-309,,-309,,-309,-309,,-309,-309',
'-309,-309,-309,,-309,,-309,,,,,,,,,,,,,,-309,,,-309,-309,,-309,,-309',
'72,73,74,,60,,-309,,66,67,,,,70,,68,69,71,30,31,75,76,,,,,,77,28,27',
'106,105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,',
',,,47,,,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74',
'65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320',
'106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,675',
',,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74',
'65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320',
'106,105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104',
'112,113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,',
',,,47,,,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74',
'65,60,84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106',
'105,107,108,,,19,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,20,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,,,,,47',
',,,,,,,,234,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60',
'84,98,99,66,67,41,42,,70,,68,69,71,30,31,75,76,,,,,,77,28,27,106,105',
'107,108,,,236,,,,,,,48,,,110,109,111,100,59,102,101,103,292,104,112',
'113,,96,97,44,45,43,,,,,,,,,,,,,,,,,,,,229,,,235,,,61,62,,,63,,289,',
'287,,47,,,293,,,,,,234,,,,,94,290,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,41,42,,70,,68,69,71,317,318,75,76,,,,,,77',
'314,320,106,105,107,108,,,236,,,,,,,315,,,110,109,111,100,59,102,101',
'103,,104,112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,359,,,33,,,61,62,,',
'63,,35,,,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73',
'74,65,60,84,98,99,66,67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314,320',
'106,105,107,108,,,236,,,,,,,315,,,110,109,111,364,59,102,101,365,,104',
'112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,366,,,235,,,61,62,,,63,,,,,',
',,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84',
'98,99,66,67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107',
'108,,,236,,,,,,,315,,,110,109,111,100,59,102,101,103,,104,112,113,,96',
'97,,,321,,,,,,,,,,,,,,,,,,,,1051,,,235,,,61,62,,,63,,,,,,,,,,,,,,,,',
',,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66',
'67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236',
',,,,,,315,,,110,109,111,364,59,102,101,365,,104,112,113,,96,97,,,321',
',,,,,,,,,,,,,,,,371,,,366,,,235,,,61,62,,,63,,,,,,,,,,,,,,,,,,,,94,82',
'85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,,,,70',
',68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,',
'315,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,,,321,,,,,',
',,,,,,,,,,,,,,311,,,235,,,61,62,,,63,,,718,,715,714,713,723,716,,,,',
',,,,726,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,520,,721,65,,84,98,99',
'72,73,74,,60,734,733,,66,67,727,,,70,,68,69,71,317,318,75,76,,,,,,77',
'314,320,106,105,107,108,,,236,,,,,,,315,,,110,109,111,100,59,102,101',
'103,,104,112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,311,,,235,,,61,62,',
',63,,,718,,715,714,713,723,716,,,,,,,,,726,,94,82,85,86,,87,89,88,90',
',,,,83,93,,,,323,,721,65,,84,98,99,72,73,74,,60,734,733,,66,67,727,',
',70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,',
',,,,315,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,,,321,',
',,,,,,,,,,,,,,,,,,311,,,307,,,61,62,,,63,,306,,,,,,,,,,,,,,,,,,94,82',
'85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,,,,70',
',68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,',
'315,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97,,,321,,,,,',
',,,,,,,,,,,,,,1045,,,235,,,61,62,,,63,,,,,,,,,,,,,,,,,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,,,,70,,68,69',
'71,317,318,75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,315,,,110',
'109,111,100,59,102,101,103,,104,112,113,,96,97,,,321,,,,,,,,,,,,,,,',
',,,,311,,,307,,,61,62,,,63,,,,,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88',
'90,,,,,83,93,,,,72,73,74,65,60,84,98,99,66,67,,,,70,,68,69,71,317,318',
'75,76,,,,,,77,314,320,106,105,107,108,,,236,,,,,,,315,,,110,109,111',
'100,59,102,101,103,,104,112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,311',
',,307,,,61,62,,,63,,,,,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,72,73,74,65,60,84,98,99,66,67,,,,70,,68,69,71,317,318,75,76,,',
',,,77,314,320,106,105,107,108,,,236,,,,,,,315,,,110,109,111,100,59,102',
'101,103,,104,112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,311,,,307,,,61',
'62,,,63,,,,,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72',
'73,74,65,60,84,98,99,66,67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314',
'320,106,105,107,108,,,236,,,,,,,315,,,110,109,111,100,59,102,101,103',
',104,112,113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,311,,,307,,,61,62,,,63',
',,,,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65',
'60,84,98,99,66,67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106',
'105,107,108,,,236,,,,,,,315,,,110,109,111,100,59,102,101,103,,104,112',
'113,,96,97,,,321,,,,,,,,,,,,,,,,,,,,311,,,307,,,61,62,,,63,,,,,,,,,',
',,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,72,73,74,65,60,84,98',
'99,66,67,,,,70,,68,69,71,317,318,75,76,,,,,,77,314,320,106,105,107,108',
',,236,,,,,,,315,,,110,109,111,100,59,102,101,103,,104,112,113,,96,97',
',,321,,,,,,,,,,,,,,,,,,,,1045,,,235,,,61,62,,,63,,,,,,,,,,,,,,,,,,,',
'94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,65,,84,98,99,177,188,178,201',
'174,194,184,183,204,205,199,182,181,176,202,206,207,186,175,189,193',
'195,187,180,,,,196,203,198,197,190,200,185,173,192,191,,,,,,172,179',
'170,171,167,168,169,130,132,129,,131,,,,,,,,161,162,,158,140,141,142',
'149,146,148,,,143,144,,,,163,164,150,151,,,,,,,,,,,,,,155,154,,139,160',
'157,156,165,152,153,147,145,137,159,138,,,166,94,,,,,,,,,,,,,,93,177',
'188,178,201,174,194,184,183,204,205,199,182,181,176,202,206,207,186',
'175,189,193,195,187,180,,,,196,203,198,197,190,200,185,173,192,191,',
',,,,172,179,170,171,167,168,169,130,132,,,131,,,,,,,,161,162,,158,140',
'141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,,,,,,,,,155,154',
',139,160,157,156,165,152,153,147,145,137,159,138,,,166,94,,,,,,,,,,',
',,,93,177,188,178,201,174,194,184,183,204,205,199,182,181,176,202,206',
'207,186,175,189,193,195,187,180,,,,196,203,198,197,190,200,185,173,192',
'191,,,,,,172,179,170,171,167,168,169,130,132,,,131,,,,,,,,161,162,,158',
'140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,,,,,,,,,155',
'154,,139,160,157,156,165,152,153,147,145,137,159,138,,,166,94,,,,,,',
',,,,,,,93,177,188,178,201,174,194,184,183,204,205,199,182,181,176,202',
'206,207,186,175,189,193,195,187,180,,,,196,203,198,197,190,200,185,173',
'192,191,,,,,,172,179,170,171,167,168,169,130,132,,,131,,,,,,,,161,162',
',158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,,,,,',
',,,155,154,,139,160,157,156,165,152,153,147,145,137,159,138,,,166,94',
'106,105,107,108,,,,,,,,,,93,,,110,109,111,656,,,718,659,715,714,713',
'723,716,96,97,,,321,,,,726,,,,,,,,,,,,,,,,658,,,640,,,721,638,,,639',
',,,,731,730,734,733,,,,727,,,,657,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,,,,,,,655,,84,98,99,,,644,645,177,188,178,201,174,194,184,183,204',
'205,199,182,181,176,202,206,207,186,175,189,193,195,187,180,,,,196,203',
'198,197,190,200,185,173,192,191,,,,,,172,179,170,171,167,168,169,130',
'132,,,131,,,,,,,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163',
'164,150,151,,,,,,,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145',
'137,159,138,,,166,106,105,107,108,,,718,,715,714,713,723,716,,,,110',
'109,111,656,,726,,659,,,,,,96,97,,,321,,,,,,,,,,721,,,,,,,,,,658,734',
'733,640,,,727,638,,,639,,,,,,,,,,,,,,,,657,,,,94,82,85,86,,87,89,88',
'90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645,,110,109,111',
'656,,,718,659,715,714,713,723,716,96,97,,,321,,,,726,,,,,,,,,,,,,,,',
'658,,,640,,,721,638,,,639,,,,,,,734,733,,,,727,,,,657,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645,,110',
'109,111,656,,,718,659,715,714,713,723,716,96,97,,,321,,,,726,,,,,,,',
',,,,,,,,658,,,640,,,721,638,,,639,,921,,,,,734,733,,,,727,,,,657,,,',
'94,82,85,86,,87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,',
',644,645,,110,109,111,656,,,718,659,715,714,713,723,716,96,97,,,321',
',,,726,,,,,,,,,,,,,,,,658,,,640,,,721,638,,,639,,,,,731,730,734,733',
',,,727,,,,657,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,655,,84,98',
'99,,,644,645,177,188,178,201,174,194,184,183,204,205,199,182,181,176',
'202,206,207,186,175,189,193,195,187,180,,,,196,203,198,382,381,383,380',
'173,192,191,,,,,,172,179,170,171,377,378,379,375,132,102,101,376,,104',
',,,,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151',
',,,,,387,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145,137,159',
'138,,,166,106,105,107,108,,,718,,715,714,713,723,716,,,,110,109,111',
'656,,726,,659,,,,,,96,97,,,321,,,,,,,,,,721,,,,,,,,,,658,734,733,640',
',,727,638,,,639,,,,,,,,,,,,,,,,657,,,,94,82,85,86,,87,89,88,90,,,,,83',
'93,106,105,107,108,,,655,,84,98,99,,,644,645,,110,109,111,656,,,718',
'659,715,714,713,723,716,96,97,,,321,,,,726,,,,,,,,,,,,,,,,658,,,640',
',,721,638,,,639,,,,,,,734,733,,,,727,,,,657,,,,94,82,85,86,,87,89,88',
'90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645,,110,109,111',
'656,,,,659,927,,,,,96,97,,,321,726,,,,,,,,,,,,,,,,,,,658,,,640,,,,638',
',,639,,921,,,,,,,727,,,,,,,657,,,,94,928,85,86,,87,89,88,90,,,,,83,93',
'106,105,107,108,,,655,,84,98,99,,,644,645,,110,109,111,656,,,718,659',
'715,714,713,723,716,96,97,,,321,,,,726,,,,,,,,,,,,,,,,658,,,640,,,721',
'638,,,639,,1014,,,731,730,734,733,,,,727,,,,657,,,,94,82,85,86,,87,89',
'88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645,,110,109,111',
'656,,,718,659,715,714,713,723,716,96,97,,,321,,,,726,,,,,,,,,,,,,,,',
'658,,,640,,,721,638,,,639,,,,,,,734,733,,,,727,,,,657,,,,94,82,85,86',
',87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645,,110',
'109,111,656,,,718,659,715,714,713,723,716,96,97,,,321,,,,726,,,,,,,',
',,,,,,,,658,,,640,,,721,638,,,639,,,,,,,734,733,,,,727,,,,657,,,,94',
'82,85,86,,87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644',
'645,,110,109,111,656,,,718,659,715,714,713,723,716,96,97,,,321,,,,726',
',,,,,,,,,,,,,,,658,,,640,,,721,638,,,639,,,,,731,730,734,733,,,,727',
',,,657,,,,94,82,85,86,,87,89,88,90,,,,,83,93,106,105,107,108,,,655,',
'84,98,99,,,644,645,,110,109,111,656,,,,659,927,,,,,96,97,,,321,726,',
',,,,,,,,,,,,,,,,,658,,,640,,,,638,,,639,,921,,,,,,,727,,,,,,,657,,,',
'94,928,85,86,,87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99',
',,644,645,,110,109,111,656,,,,659,927,,,,,96,97,,,321,726,,,,,,,,,,',
',,,,,,,,658,,,640,,,,638,,,639,,921,,,,,,,727,,,,,,,657,,,,94,928,85',
'86,,87,89,88,90,,,,,83,93,106,105,107,108,,,655,,84,98,99,,,644,645',
',110,109,111,656,,,,659,,,,,,96,97,,,321,,,,,,,,106,105,107,108,,,,',
',,,,658,,,640,110,109,111,638,,,639,,921,,,,,96,97,,,321,,,,,657,,,',
'94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,655,,84,98,99,,,644,645,718',
',715,714,713,723,716,,,,,94,82,85,86,726,87,89,88,90,,,,,83,93,106,105',
'107,108,,,655,,84,98,99,721,,,,,110,109,111,,731,730,734,733,,,,727',
',96,97,,,321,106,105,107,108,,,,,,,,,,,,,110,109,111,,,,,,,,,,,96,97',
',,321,,,,,,,,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,,,,,,,655,,84',
'98,99,,,,,,,,,94,82,85,86,,87,89,88,90,,,,,83,93,788,448,,,787,,655',
',84,98,99,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163,164',
'150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145',
'137,159,138,785,441,166,,786,,,,,,,,161,162,,158,140,141,142,149,146',
'148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157',
'156,165,152,153,147,145,137,159,138,688,448,166,,689,,,,,,,,161,162',
',158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,271,',
',,,,,,155,154,,139,160,157,156,165,152,153,147,145,137,159,138,444,448',
'166,,443,,,,,,,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163',
'164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165,152,153,147',
'145,137,159,138,627,441,166,,628,,,,,,,,161,162,,158,140,141,142,149',
'146,148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160',
'157,156,165,152,153,147,145,137,159,138,437,441,166,,438,,,,,,,,161',
'162,,158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,271',
',,,,,,,155,154,,139,160,157,156,165,152,153,147,145,137,159,138,629',
'448,166,,630,,,,,,,,161,162,,158,140,141,142,149,146,148,,,143,144,',
',,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165,152,153',
'147,145,137,159,138,1144,448,166,,1143,,,,,,,,161,162,,158,140,141,142',
'149,146,148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139',
'160,157,156,165,152,153,147,145,137,159,138,627,441,166,,628,,,,,,,',
'161,162,,158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,',
',,,271,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145,137,159,138',
'685,441,166,,686,,,,,,,,161,162,,158,140,141,142,149,146,148,,,143,144',
',,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165,152',
'153,147,145,137,159,138,750,441,166,,751,,,,,,,,161,162,,158,140,141',
'142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154',
',139,160,157,156,165,152,153,147,145,137,159,138,752,448,166,,753,,',
',,,,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163,164,150,151',
',,,,,271,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145,137,159',
'138,629,448,166,,630,,,,,,,,161,162,,158,140,141,142,149,146,148,,,143',
'144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165',
'152,153,147,145,137,159,138,1149,448,166,,1150,,,,,,,,161,162,,158,140',
'141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155',
'154,,139,160,157,156,165,152,153,147,145,137,159,138,755,448,166,,756',
',,,,,,,161,162,,158,140,141,142,149,146,148,,,143,144,,,,163,164,150',
'151,,,,,,271,,,,,,,,155,154,,139,160,157,156,165,152,153,147,145,137',
'159,138,489,441,166,,490,,,,,,,,161,162,,158,140,141,142,149,146,148',
',,143,144,,,,163,164,150,151,,,,,,271,,,,,,,,155,154,,139,160,157,156',
'165,152,153,147,145,137,159,138,1147,441,166,,1148,,,,,,,,161,162,,158',
'140,141,142,149,146,148,,,143,144,,,,163,164,150,151,,,,,,271,,,,,,',
',155,154,,139,160,157,156,165,152,153,147,145,137,159,138,,718,166,715',
'714,713,723,716,,718,,715,714,713,723,716,726,,,,,,,,726,,718,,715,714',
'713,723,716,,,,,,721,,,726,,,,,721,731,730,734,733,,,,727,731,730,734',
'733,,,,727,721,703,718,,715,714,713,723,716,731,730,734,733,,,,727,726',
',718,,715,714,713,723,716,,,,,,,,,726,,,,,721,,,,,,,,,,,734,733,,,,727',
'721,,,,,,,,,731,730,734,733,,,,727' ]
        racc_action_table = arr = ::Array.new(27273, 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 = [
'629,1048,1052,1049,459,993,356,629,629,629,995,991,629,629,629,915,629',
'64,964,1014,1149,937,695,695,629,629,629,629,629,812,422,1148,921,1147',
'680,360,629,629,639,629,629,629,629,629,348,355,680,349,1112,559,1169',
'748,357,664,793,639,995,559,19,227,999,915,999,459,937,812,629,629,629',
'629,629,629,629,629,629,629,629,629,629,629,1150,751,629,629,629,753',
'629,629,750,422,629,856,891,629,629,752,629,1149,629,19,629,1014,629',
'629,64,629,629,629,629,629,354,629,629,629,921,356,695,565,227,1048',
'1052,1049,685,993,1048,1052,1049,629,993,991,629,629,629,629,991,629',
'964,629,1149,788,664,964,629,1149,360,629,788,788,788,1148,753,1147',
'788,788,1148,788,1147,1150,686,811,752,357,348,788,788,349,1112,348',
'1169,748,349,1112,748,1169,748,788,788,344,788,788,788,788,788,575,575',
'809,1160,845,685,688,751,638,735,556,753,395,1160,750,1150,811,856,891',
'394,1150,752,788,788,788,788,788,788,788,788,788,788,788,788,788,788',
'365,728,788,788,788,686,788,565,638,685,788,732,685,788,321,321,579',
'579,788,728,788,592,788,788,685,788,788,788,788,788,443,788,788,788',
'845,688,688,443,443,443,453,453,395,443,443,686,443,788,686,394,788',
'788,365,788,443,788,228,316,575,365,686,1027,788,575,365,788,443,443',
'365,443,443,443,443,443,845,342,688,845,556,688,43,43,26,556,366,592',
'592,365,366,845,815,688,321,321,815,592,443,443,443,443,443,443,443',
'443,443,443,443,443,443,443,579,230,443,443,443,228,443,365,341,627',
'443,316,508,443,24,1027,1027,590,443,396,443,24,443,443,453,443,443',
'443,443,443,100,443,1027,443,316,129,26,100,100,100,129,129,100,100',
'100,226,100,443,43,43,443,443,226,443,100,443,100,100,100,26,230,226',
'443,1121,1121,443,100,100,627,100,100,100,100,100,929,657,508,508,508',
'24,389,590,590,396,396,396,658,375,376,628,658,590,929,508,375,376,100',
'100,100,100,100,100,100,100,100,100,100,100,100,100,226,16,100,100,100',
'906,100,100,16,820,100,808,1020,100,100,393,100,16,100,390,100,337,100',
'100,391,100,100,100,100,100,392,100,630,100,389,389,389,331,628,630',
'630,630,375,376,630,630,630,100,630,3,100,100,100,100,3,100,630,100',
'630,630,630,832,100,835,906,100,16,329,630,630,808,630,630,630,630,630',
'1020,1020,1020,393,393,393,557,390,390,390,844,786,391,391,391,785,902',
'1020,392,392,392,902,630,630,630,630,630,630,630,630,630,630,630,630',
'630,630,526,49,630,630,630,308,630,630,49,848,630,469,308,630,630,851',
'630,49,630,296,630,308,630,630,296,630,630,630,630,630,353,630,103,630',
'786,353,14,14,785,103,103,103,80,852,103,103,103,630,103,322,630,630',
'630,630,80,630,103,630,103,103,103,857,630,470,80,630,49,669,103,103',
'308,103,103,103,103,103,670,309,320,310,720,312,377,378,309,379,310',
'380,312,377,378,895,379,309,380,310,895,312,103,103,103,103,103,103',
'103,103,103,103,103,103,103,103,873,437,103,103,103,326,103,103,1101',
'874,103,1101,326,103,103,540,103,381,103,876,103,326,103,103,381,103',
'103,103,103,103,309,103,310,103,312,377,378,882,379,838,380,838,838',
'838,838,838,438,103,437,382,103,103,103,103,838,103,382,103,339,444',
'437,339,103,861,861,103,444,444,444,637,326,315,444,444,637,444,838',
'701,637,885,701,314,381,444,444,838,838,838,838,736,736,340,838,438',
'340,444,444,311,444,444,444,444,444,343,305,438,343,764,358,764,764',
'764,764,764,382,358,383,304,838,994,994,892,764,383,358,444,444,444',
'444,444,444,444,444,444,444,444,444,444,444,364,17,444,444,444,764,444',
'347,347,894,444,303,385,444,764,764,764,764,444,385,444,764,444,444',
'898,444,444,444,444,444,787,444,444,444,358,641,641,787,787,787,899',
'900,383,787,787,904,787,444,17,905,444,444,364,444,787,444,634,301,300',
'364,17,764,444,38,364,444,787,787,364,787,787,787,787,787,632,368,916',
'385,917,421,920,922,368,1030,583,583,421,364,583,583,583,368,288,1030',
'711,421,787,787,787,787,787,787,787,787,787,787,787,787,787,787,38,930',
'787,787,787,931,787,364,525,933,787,934,38,787,710,525,1030,1030,787',
'1,787,1030,787,787,525,787,787,787,787,787,368,787,39,787,421,285,568',
'944,945,946,948,1044,689,568,949,612,325,787,1044,689,787,787,568,787',
'689,787,1050,1044,689,950,952,953,787,1050,954,787,33,33,33,33,33,33',
'1050,525,955,33,33,284,270,39,33,755,33,33,33,33,33,33,33,631,236,39',
'612,325,33,33,33,33,33,33,33,568,970,33,612,325,1044,689,971,33,33,33',
'33,33,33,33,33,33,33,33,33,1050,33,33,33,756,33,33,33,33,33,1105,756',
'755,973,467,976,756,1105,977,755,756,46,46,979,755,980,1105,982,755',
'33,985,471,33,709,232,33,33,231,707,33,1003,33,1008,1012,1013,33,467',
'755,623,466,467,467,1016,1018,33,229,706,46,46,33,33,33,33,1018,33,33',
'33,33,818,756,1019,705,33,33,618,1105,529,755,818,613,33,466,33,33,33',
'466,466,33,33,1055,1055,1055,1055,1055,1055,672,1041,682,1055,1055,604',
'1018,1170,1055,1045,1055,1055,1055,1055,1055,1055,1055,21,1018,597,208',
'818,1055,1055,1055,1055,1055,1055,1055,684,595,1055,1051,818,114,445',
'48,1055,1055,1055,1055,1055,1055,1055,1055,1055,1055,1055,1055,494,1055',
'1055,1055,495,1055,1055,1055,1055,1055,21,21,21,21,21,21,21,21,21,21',
'21,587,21,21,696,1069,21,21,1070,1055,455,40,1055,858,499,1055,1055',
'577,37,1055,1082,1055,21,858,21,1055,21,21,22,21,21,21,21,21,1055,21',
'694,1085,1091,1055,1055,1055,1055,1094,1055,1055,1055,1055,1095,1096',
'1097,1099,1055,1055,1180,21,858,858,1108,515,1055,858,1055,1055,1055',
'516,1164,1055,1055,961,961,961,961,961,961,15,1113,1114,961,961,1115',
'1116,1117,961,1118,961,961,961,961,961,961,961,6,6,6,6,6,961,961,961',
'961,961,961,961,674,691,961,1126,13,1128,1129,426,961,961,961,961,961',
'961,961,961,961,961,961,961,12,961,961,961,519,961,961,961,961,961,426',
'426,426,426,426,426,426,426,426,426,426,521,426,426,560,690,426,426',
'541,961,1143,1144,961,1146,10,961,961,7,558,961,1158,961,426,1165,426',
'961,426,426,1162,426,426,426,426,426,961,426,553,538,539,961,961,961',
'961,687,961,961,961,961,738,744,668,745,961,961,749,426,436,426,435',
'433,961,423,961,961,961,468,419,961,961,754,754,754,754,754,754,1166',
'758,416,754,754,414,762,413,754,411,754,754,754,754,754,754,754,336',
'336,336,336,336,754,754,754,754,754,754,754,663,405,754,370,782,784',
'661,432,754,754,754,754,754,754,754,754,754,754,754,754,660,754,754',
'754,361,754,754,754,754,754,432,432,432,432,432,432,432,432,432,432',
'432,359,432,432,1167,,432,432,,754,,,754,,,754,754,,,754,,754,432,,432',
'754,432,432,,432,432,432,432,432,754,432,,,,754,754,754,754,,754,754',
'754,754,,,,,754,754,,432,,,,,754,,754,754,754,,,754,754,235,235,235',
'235,235,235,,,,235,235,,,,235,,235,235,235,235,235,235,235,299,299,299',
'299,299,235,235,235,235,235,235,235,,875,235,875,875,875,,875,235,235',
'235,235,235,235,235,235,235,235,235,235,,235,235,235,,235,235,235,235',
'235,282,282,282,282,282,282,282,282,282,282,282,,282,282,,,282,282,',
'235,,,235,,,235,235,,,235,,235,282,,282,235,282,282,,282,282,282,282',
'282,235,282,,,,235,235,235,235,,235,235,235,235,,,,,235,235,,282,,,',
',235,,235,235,235,,,235,235,839,839,839,839,839,839,,,,839,839,,,,839',
',839,839,839,839,839,839,839,513,513,513,513,513,839,839,839,839,839',
'839,839,,1042,839,1042,1042,1042,,1042,839,839,839,839,839,839,839,839',
'839,839,839,839,,839,839,839,,839,839,839,839,839,485,485,485,485,485',
'485,485,485,485,485,485,,485,485,,,485,485,,839,,,839,,,839,839,,,839',
',839,485,,485,839,485,485,,485,485,485,485,485,839,485,,,,839,839,839',
'839,,839,839,839,839,,,,,839,839,485,485,,,,,839,,839,839,839,,,839',
'839,352,352,352,352,352,352,,,,352,352,,,,352,,352,352,352,352,352,352',
'352,,,,,,352,352,352,352,352,352,352,,1142,352,1142,1142,1142,,1142',
'352,352,352,352,352,352,352,352,352,352,352,352,,352,352,352,,352,352',
'352,352,352,536,536,536,536,536,536,536,536,536,536,536,,536,536,,,536',
'536,,352,,,352,,,352,352,,,352,,352,536,,536,352,536,536,,536,536,536',
'536,536,352,536,,,,352,352,352,352,,352,352,352,352,,,,,352,352,,536',
',,,,352,,352,352,352,,,352,352,850,850,850,850,850,850,,,,850,850,,',
',850,,850,850,850,850,850,850,850,,,,,,850,850,850,850,850,850,850,',
',850,,,,,,850,850,850,850,850,850,850,850,850,850,850,850,,850,850,850',
',850,850,850,850,850,790,790,790,790,790,790,790,790,790,790,790,,790',
'790,,,790,790,,850,,,850,,,850,850,,,850,,850,790,,790,850,790,790,',
'790,790,790,790,790,850,790,,,,850,850,850,850,,850,850,850,850,,,,',
'850,850,,790,,,,,850,,850,850,850,,,850,850,942,942,942,942,942,942',
',,,942,942,,,,942,,942,942,942,942,942,942,942,,,,,,942,942,942,942',
'942,942,942,,,942,,,,,,942,942,942,942,942,942,942,942,942,942,942,942',
',942,942,942,,942,942,942,942,942,941,941,941,941,941,941,941,941,941',
'941,941,,941,941,,,941,941,,942,,,942,,,942,942,,,942,,942,941,,941',
'942,941,941,,941,941,941,941,941,942,941,,,,942,942,942,942,,942,942',
'942,942,,,,,942,942,,941,,,,,942,,942,942,942,,,942,942,1080,1080,1080',
'1080,1080,1080,,,,1080,1080,,,,1080,,1080,1080,1080,1080,1080,1080,1080',
',,,,,1080,1080,1080,1080,1080,1080,1080,,871,1080,871,871,871,,871,1080',
'1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,,1080,1080,1080',
',1080,1080,1080,1080,1080,986,,986,986,986,,986,,871,,987,,987,987,987',
',987,871,,1080,,,1080,,,1080,1080,,,1080,721,1080,721,721,721,1080,721',
'986,,,,,,,1080,,986,987,,1080,1080,1080,1080,,1080,1080,1080,1080,,',
',,1080,1080,,,,721,,,1080,,1080,1080,1080,,721,1080,1080,127,127,127',
'127,127,127,,,,127,127,,,,127,,127,127,127,127,127,127,127,,,,,,127',
'127,127,127,127,127,127,,,127,,,482,,,127,127,127,127,127,127,127,127',
'127,127,127,127,,127,127,127,,127,127,127,127,127,475,475,475,475,475',
'475,475,482,,475,475,482,482,,482,482,475,475,,127,,,127,,,127,127,',
'481,127,,127,475,,475,127,475,475,,475,475,475,475,475,127,475,,,,127',
'127,127,127,,127,127,127,127,,,481,,127,127,481,481,,481,481,,127,,127',
'127,127,,,127,127,552,552,552,552,552,552,,,,552,552,,,,552,,552,552',
'552,552,552,552,552,,,,,,552,552,552,552,552,552,552,,1120,552,1120',
'1120,1120,,1120,552,552,552,552,552,552,552,552,552,552,552,552,,552',
'552,552,,552,552,552,552,552,486,1119,,1119,1119,1119,,1119,1120,,,',
',,,,486,486,,552,,,552,,,552,552,,,552,,552,486,,486,552,486,486,1119',
'486,486,,,486,552,486,,,,552,552,552,552,,552,552,552,552,,,,,552,552',
',,,,,,552,,552,552,552,,,552,552,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,484,484,484,484,484,484,484,484,,484,484,,',
',,,484,484,,210,,,210,,,210,210,,,210,,210,484,,484,210,484,484,,484',
'484,484,484,484,210,484,,,,210,210,210,210,,210,210,210,210,,,,,210',
'210,,,,,,,210,,210,210,210,,,210,210,1122,1122,1122,1122,1122,1122,',
',,1122,1122,,,,1122,,1122,1122,1122,1122,1122,1122,1122,,,,,,1122,1122',
'1122,1122,1122,1122,1122,,,1122,,,,,,1122,1122,1122,1122,1122,1122,1122',
'1122,1122,1122,1122,1122,,1122,1122,1122,,1122,1122,1122,1122,1122,483',
'483,483,483,483,483,483,,,483,483,,,,,,483,483,,1122,,,1122,,,1122,1122',
',,1122,,1122,483,,483,1122,483,483,,483,483,483,483,483,1122,483,,,',
'1122,1122,1122,1122,,1122,1122,1122,1122,,,,,1122,1122,,,,,,,1122,,1122',
'1122,1122,,,1122,1122,763,763,763,763,763,763,,,,763,763,,,,763,,763',
'763,763,763,763,763,763,,,,,,763,763,763,763,763,763,763,,,763,,,,,',
'763,763,763,763,763,763,763,763,763,763,763,763,,763,763,763,,763,763',
'763,763,763,480,480,480,480,480,480,480,,,480,480,,,,,,480,480,,763',
',,763,,,763,763,,,763,,763,480,,480,763,480,480,,480,480,480,480,480',
'763,480,,,,763,763,763,763,,763,763,763,763,,,,,763,763,,,,,,,763,,763',
'763,763,,,763,763,759,759,759,759,759,759,,,,759,759,,,,759,,759,759',
'759,759,759,759,759,,,,,,759,759,759,759,759,759,759,,,759,,,,,,759',
'759,759,759,759,759,759,759,759,759,759,759,,759,759,759,,759,759,759',
'759,759,479,479,479,479,479,479,479,,,479,479,,,,,,479,479,,759,,,759',
',,759,759,,,759,,759,479,,479,759,479,479,,479,479,479,479,479,759,479',
',,,759,759,759,759,,759,759,759,759,,,,,759,759,,,,,,,759,,759,759,759',
',,759,759,302,302,302,302,302,302,,,,302,302,,,,302,,302,302,302,302',
'302,302,302,,,,,,302,302,302,302,302,302,302,,,302,,,,,,302,302,302',
'302,302,302,302,302,302,302,302,302,,302,302,302,,302,302,302,302,302',
'478,478,478,478,478,478,478,,,478,478,,,,,,478,478,,302,,,302,,,302',
'302,,,302,,302,478,,478,302,478,478,,478,478,478,478,478,302,478,,,',
'302,302,302,302,,302,302,302,302,,,,,302,302,,,,,,,302,,302,302,302',
',,302,302,896,896,896,896,896,896,,,,896,896,,,,896,,896,896,896,896',
'896,896,896,,,,,,896,896,896,896,896,896,896,,,896,,,,,,896,896,896',
'896,896,896,896,896,896,896,896,896,,896,896,896,,896,896,896,896,896',
'477,477,477,477,477,477,477,,,477,477,,,,,,477,477,,896,,,896,,,896',
'896,,,896,,896,477,,477,896,477,477,,477,477,477,477,477,896,477,,,',
'896,896,896,896,,896,896,896,896,,,,,896,896,,,,,,,896,,896,896,896',
',,896,896,890,890,890,890,890,890,,,,890,890,,,,890,,890,890,890,890',
'890,890,890,,,,,,890,890,890,890,890,890,890,,,890,,,,,,890,890,890',
'890,890,890,890,890,890,890,890,890,,890,890,890,,890,890,890,890,890',
'476,476,476,476,476,476,476,,,476,476,,,,,,476,476,,890,,,890,,,890',
'890,,,890,,890,476,,476,890,476,476,,476,476,476,476,476,890,476,,,',
'890,890,890,890,,890,890,890,890,,,,,890,890,,,,,,,890,,890,890,890',
',,890,890,576,576,576,576,576,576,,,,576,576,,,,576,,576,576,576,576',
'576,576,576,,,,,,576,576,576,576,576,576,576,,,576,,,,,,576,576,576',
'576,576,576,576,576,576,576,576,576,,576,576,576,,576,576,576,576,576',
'465,465,465,465,465,465,465,465,465,465,465,,465,465,,,465,465,,576',
',,576,,,576,576,,,576,,576,465,,465,576,465,465,,465,465,465,465,465',
'576,465,,,,576,576,576,576,,576,576,576,576,,,,,576,576,,,,,,,576,,576',
'576,576,,,576,576,351,351,351,351,351,351,,,,351,351,,,,351,,351,351',
'351,351,351,351,351,,,,,,351,351,351,351,351,351,351,,,351,,,,,,351',
'351,351,351,351,351,351,351,351,351,351,351,,351,351,351,,351,351,351',
'351,351,464,464,464,464,464,464,464,464,464,464,464,,464,464,,,464,464',
',351,,,351,,,351,351,,,351,,351,464,,464,351,464,464,,464,464,464,464',
'464,351,464,,,,351,351,351,351,,351,351,351,351,,,,,351,351,,,,,,,351',
',351,351,351,,,351,351,307,307,307,307,307,307,,,,307,307,,,,307,,307',
'307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307,,,,,',
'307,307,307,307,307,307,307,307,307,307,307,307,,307,307,307,,307,307',
'307,307,307,328,328,328,328,328,328,328,328,328,328,328,,328,328,,,328',
'328,,307,,,307,,,307,307,,,307,,307,328,,328,307,328,328,,328,328,328',
'328,328,307,328,,,,307,307,307,307,,307,307,307,307,,,,,307,307,,,,',
',,307,,307,307,307,,,307,307,1047,1047,1047,1047,1047,1047,,,,1047,1047',
',,,1047,,1047,1047,1047,1047,1047,1047,1047,,,,,,1047,1047,1047,1047',
'1047,1047,1047,,,1047,,,,,,1047,1047,1047,1047,1047,1047,1047,1047,1047',
'1047,1047,1047,,1047,1047,1047,,1047,1047,1047,1047,1047,327,327,327',
'327,327,327,327,327,327,327,327,,327,327,,,327,327,,1047,,,1047,,,1047',
'1047,,,1047,,1047,327,,327,1047,327,327,,327,327,327,327,327,1047,327',
',,,1047,1047,1047,1047,,1047,1047,1047,1047,,,,,1047,1047,,,,,,,1047',
',1047,1047,1047,,,1047,1047,335,335,335,335,335,335,,,,335,335,,,,335',
',335,335,335,335,335,335,335,,,,,,335,335,335,335,335,335,335,,,335',
',,,,,335,335,335,335,335,335,335,335,335,335,335,335,,335,335,335,,335',
'335,335,335,335,535,,,,,,,,,,,,,,,,535,535,,335,,,335,,,335,335,,,335',
',335,535,,535,335,535,535,,535,535,,,535,335,535,,,,335,335,335,335',
',335,335,335,335,,,,,335,335,,,,,,,335,,335,335,335,,,335,335,773,773',
'773,773,773,773,,,,773,773,,,,773,,773,773,773,773,773,773,773,,,,,',
'773,773,773,773,773,773,773,,,773,,,,,,773,773,773,773,773,773,773,773',
'773,773,773,773,,773,773,773,,773,773,773,773,773,474,,,,,,,,,,,,,,',
',474,474,,773,,,773,,,773,773,,,773,,773,474,,,773,474,474,,474,474',
',,,773,,,,,773,773,773,773,,773,773,773,773,,,,,773,773,,,,,,,773,,773',
'773,773,,,773,773,1054,1054,1054,1054,1054,1054,,,,1054,1054,,,,1054',
',1054,1054,1054,1054,1054,1054,1054,,,,,,1054,1054,1054,1054,1054,1054',
'1054,,,1054,,,,,,1054,1054,1054,1054,1054,1054,1054,1054,1054,1054,1054',
'1054,,1054,1054,1054,,1054,1054,1054,1054,1054,473,,,,,,,,,,,,,,,,473',
'473,,1054,,,1054,,,1054,1054,,,1054,,1054,473,,473,1054,473,473,,473',
'473,,,,1054,,,,,1054,1054,1054,1054,,1054,1054,1054,1054,,,,,1054,1054',
',,,,,,1054,,1054,1054,1054,,,1054,1054,0,0,0,0,0,0,,,,0,0,,,,0,,0,0',
'0,0,0,0,0,,,,,,0,0,0,0,0,0,0,,,0,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0',
',0,0,0,0,0,472,,,,,,,,,,,,,,,,472,472,,0,,,0,,,0,0,,,0,,0,472,,472,0',
'472,472,,472,472,,,,0,,,,,0,0,0,0,,0,0,0,0,,,,,0,0,,,,,,,0,,0,0,0,,',
'0,0,555,555,555,555,555,555,,,,555,555,,,,555,,555,555,555,555,555,555',
'555,,,,,,555,555,555,555,555,555,555,,,555,,,,,,555,555,555,555,555',
'555,555,555,555,555,555,555,,555,555,555,,555,555,555,555,555,,,,,,',
',,,,,,,,,,,,,555,,,555,,,555,555,,,555,,555,,,,555,,,,,,,,,555,,,,,555',
'555,555,555,,555,555,555,555,,,,,555,555,,,,,,,555,,555,555,555,,,555',
'555,1071,1071,1071,1071,1071,1071,,,,1071,1071,,,,1071,,1071,1071,1071',
'1071,1071,1071,1071,,,,,,1071,1071,1071,1071,1071,1071,1071,,,1071,',
',,,,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,,1071',
'1071,1071,,1071,1071,1071,1071,1071,,,,,,,,,,,,,,,,,,,,1071,,,1071,',
',1071,1071,,,1071,,1071,,,,1071,,,,,,,,,1071,,,,,1071,1071,1071,1071',
',1071,1071,1071,1071,,,,,1071,1071,,,,493,493,493,1071,493,1071,1071',
'1071,493,493,1071,1071,,493,,493,493,493,493,493,493,493,,,,,,493,493',
'493,493,493,493,493,,,493,,,,,,,493,,,493,493,493,493,493,493,493,493',
',493,493,493,,493,493,493,493,493,,,,,,,,,,,,,,,,,,,,493,,,493,,,493',
'493,,,493,,,,,,493,,,,,,,,,493,,,,,493,493,493,493,,493,493,493,493',
',,,,493,493,,,,,,,493,,493,493,493,,,493,493,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,116,116,116,,116,116,116,116',
',,,,116,116,,,,,,116,116,,116,116,116,,,116,116,121,121,121,,121,,,',
'121,121,,,,121,,121,121,121,121,121,121,121,,,,,,121,121,121,121,121',
'121,121,,,121,,,,,,,121,,,121,121,121,121,121,121,121,121,,121,121,121',
',121,121,121,121,121,,,,,,,,,,,,,,,,,,,,121,,,121,,,121,121,,,121,,',
',,,121,,,,,,,,,121,,,,,121,121,121,121,,121,121,121,121,,,,,121,121',
',,,122,122,122,121,122,121,121,121,122,122,121,121,,122,,122,122,122',
'122,122,122,122,,,,,,122,122,122,122,122,122,122,,,122,,,,,,,122,,,122',
'122,122,122,122,122,122,122,,122,122,122,,122,122,122,122,122,,,,,,',
',,,,,,,,,,,,,122,,,122,,,122,122,,,122,,,,,,122,,,,,,,,,122,,,,,122',
'122,122,122,,122,122,122,122,,,,,122,122,,,,123,123,123,122,123,122',
'122,122,123,123,122,122,,123,,123,123,123,123,123,123,123,,,,,,123,123',
'123,123,123,123,123,,,123,,,,,,,123,,,123,123,123,123,123,123,123,123',
',123,123,123,,123,123,123,123,123,,,,,,,,,,,,,,,,,,,,123,,,123,,,123',
'123,,,123,,,,,,123,,,,,,,,,123,,,,,123,123,123,123,,123,123,123,123',
',,,,123,123,,,,124,124,124,123,124,123,123,123,124,124,123,123,,124',
',124,124,124,124,124,124,124,,,,,,124,124,124,124,124,124,124,,,124',
',,,,,,124,,,124,124,124,124,124,124,124,124,,124,124,124,,124,124,124',
'124,124,,,,,,,,,,,,,,,,,,,,124,,,124,,,124,124,,,124,,,,,,124,,,,,,',
',,124,,,,,124,124,124,124,,124,124,124,124,,,,,124,124,,,,,,,124,,124',
'124,124,,,124,124,125,125,125,125,125,,,,125,125,,,,125,,125,125,125',
'125,125,125,125,,,,,,125,125,125,125,125,125,125,,,125,,,,,,125,125',
',125,125,125,125,125,125,125,125,125,,125,125,125,,125,125,125,125,125',
',,,,,,,,,,,,,,,,,,,125,,,125,,,125,125,,,125,,125,,,,125,,,,,,,,,125',
',,,,125,125,125,125,,125,125,125,125,,,,,125,125,,,,502,502,502,125',
'502,125,125,125,502,502,125,125,,502,,502,502,502,502,502,502,502,,',
',,,502,502,502,502,502,502,502,,,502,,,,,,,502,,,502,502,502,502,502',
'502,502,502,502,502,502,502,,502,502,502,502,502,,,,,,,,,,,,,,,,,,,',
'502,,,502,,,502,502,,,502,,502,,502,,502,,,502,,,,,,502,,,,,502,502',
'502,502,,502,502,502,502,,,,,502,502,,,,611,611,611,502,611,502,502',
'502,611,611,502,502,,611,,611,611,611,611,611,611,611,,,,,,611,611,611',
'611,611,611,611,,,611,,,,,,,611,,,611,611,611,611,611,611,611,611,,611',
'611,611,,611,611,611,611,611,,,,,,,,,,,,,,,,,,,,611,,,611,,,611,611',
',,611,,,,,,611,,,,,,,,,611,,,,,611,611,611,611,,611,611,611,611,,,,',
'611,611,,,,211,211,211,611,211,611,611,611,211,211,611,611,,211,,211',
'211,211,211,211,211,211,,,,,,211,211,211,211,211,211,211,,,211,,,,,',
',211,,,211,211,211,211,211,211,211,211,,211,211,211,,211,211,211,211',
'211,,,,,,,,,,,,,,,,,,,,211,,,211,,,211,211,,,211,,211,,,,211,,,,,,,',
',211,,,,,211,211,211,211,,211,211,211,211,,,,,211,211,,,,212,212,212',
'211,212,211,211,211,212,212,211,211,,212,,212,212,212,212,212,212,212',
',,,,,212,212,212,212,212,212,212,,,212,,,,,,,212,,,212,212,212,212,212',
'212,212,212,,212,212,212,,212,212,212,212,212,,,,,,,,,,,,,,,,,,,,212',
',,212,,,212,212,,,212,,212,,,,212,,,,,,,,,212,,,,,212,212,212,212,,212',
'212,212,212,,,,,212,212,,,,213,213,213,212,213,212,212,212,213,213,212',
'212,,213,,213,213,213,213,213,213,213,,,,,,213,213,213,213,213,213,213',
',,213,,,,,,,213,,,213,213,213,213,213,213,213,213,,213,213,213,,213',
'213,213,213,213,,,,,,,,,,,,,,,,,,,,213,,,213,,,213,213,,,213,,,,,,213',
',,,,,,,,213,,,,,213,213,213,213,,213,213,213,213,,,,,213,213,,,,214',
'214,214,213,214,213,213,213,214,214,213,213,,214,,214,214,214,214,214',
'214,214,,,,,,214,214,214,214,214,214,214,,,214,,,,,,,214,,,214,214,214',
'214,214,214,214,214,,214,214,214,,214,214,214,214,214,,,,,,,,,,,,,,',
',,,,,214,,,214,,,214,214,,,214,,,,,,214,,,,,,,,,214,,,,,214,214,214',
'214,,214,214,214,214,,,,,214,214,,,,215,215,215,214,215,214,214,214',
'215,215,214,214,,215,,215,215,215,215,215,215,215,,,,,,215,215,215,215',
'215,215,215,,,215,,,,,,,215,,,215,215,215,215,215,215,215,215,,215,215',
'215,,215,215,215,215,215,,,,,,,,,,,,,,,,,,,,215,,,215,,,215,215,,,215',
',,,,,215,,,,,,,,,215,,,,,215,215,215,215,,215,215,215,215,,,,,215,215',
',,,216,216,216,215,216,215,215,215,216,216,215,215,,216,,216,216,216',
'216,216,216,216,,,,,,216,216,216,216,216,216,216,,,216,,,,,,,216,,,216',
'216,216,216,216,216,216,216,216,216,216,216,,216,216,216,216,216,,,',
',,,,,,,,,,,,,,,,216,,,216,,,216,216,,,216,,216,,216,,216,,,216,,,,,',
'216,,,,,216,216,216,216,,216,216,216,216,,,,,216,216,,,,221,221,221',
'216,221,216,216,216,221,221,216,216,,221,,221,221,221,221,221,221,221',
',,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221,221',
'221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,,,221',
',,221,,,221,221,,,221,,,,,,221,,,,,,,,,221,,,,,221,221,221,221,,221',
'221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222,222,221',
'221,,222,,222,222,222,222,222,222,222,,,,,,222,222,222,222,222,222,222',
',,222,,,,,,,222,,,222,222,222,222,222,222,222,222,,222,222,222,,222',
'222,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,,,222,222,,,222,,,,,,222',
',,,,,,,,222,,,,,222,222,222,222,,222,222,222,222,,,,,222,222,,,,223',
'223,223,222,223,222,222,222,223,223,222,222,,223,,223,223,223,223,223',
'223,223,,,,,,223,223,223,223,223,223,223,,,223,,,,,,,223,,,223,223,223',
'223,223,223,223,223,,223,223,223,,223,223,223,223,223,,,,,,,,,,,,,,',
',,,,,223,,,223,,,223,223,,,223,,,,,,223,,,,,,,,,223,,,,,223,223,223',
'223,,223,223,223,223,,,,,223,223,223,,,614,614,614,223,614,223,223,223',
'614,614,223,223,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614',
'614,614,614,,,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614',
'614,614,,614,614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614',
',,614,,614,,614,,614,,,614,,,,,,614,,,,,614,614,614,614,,614,614,614',
'614,,,,,614,614,,,,615,615,615,614,615,614,614,614,615,615,614,614,',
'615,,615,615,615,615,615,615,615,,,,,,615,615,615,615,615,615,615,,',
'615,,,,,,,615,,,615,615,615,615,615,615,615,615,615,615,615,615,,615',
'615,615,615,615,,,,,,,,,,,,,,,,,,,,615,,,615,,,615,615,,,615,,,,615',
',615,,,615,,,,,,615,,,,,615,615,615,615,,615,615,615,615,,,,,615,615',
',,,616,616,616,615,616,615,615,615,616,616,615,615,,616,,616,616,616',
'616,616,616,616,,,,,,616,616,616,616,616,616,616,,,616,,,,,,,616,,,616',
'616,616,616,616,616,616,616,,616,616,616,,616,616,616,616,616,,,,,,',
',,,,,,,,,,,,,616,,,616,,,616,616,,,616,,,,,,616,,,,,,,,,616,,,,,616',
'616,616,616,,616,616,616,616,,,,,616,616,,,,617,617,617,616,617,616',
'616,616,617,617,616,616,,617,,617,617,617,617,617,617,617,,,,,,617,617',
'617,617,617,617,617,,,617,,,,,,,617,,,617,617,617,617,617,617,617,617',
',617,617,617,,617,617,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617',
'617,,,617,,,,,,617,,,,,,,,,617,,,,,617,617,617,617,,617,617,617,617',
',,,,617,617,,,,504,504,504,617,504,617,617,617,504,504,617,617,,504',
',504,504,504,504,504,504,504,,,,,,504,504,504,504,504,504,504,,,504',
',,,,,,504,,,504,504,504,504,504,504,504,504,504,504,504,504,,504,504',
'504,504,504,,,,,,,,,,,,,,,,,,,,504,,,504,,,504,504,,,504,,,,504,,504',
',,504,,,,,,504,,,,,504,504,504,504,,504,504,504,504,,,,,504,504,,,,506',
'506,506,504,506,504,504,504,506,506,504,504,,506,,506,506,506,506,506',
'506,506,,,,,,506,506,506,506,506,506,506,,,506,,,,,,,506,,,506,506,506',
'506,506,506,506,506,,506,506,506,,506,506,506,506,506,,,,,,,,,,,,,,',
',,,,,506,,,506,,,506,506,,,506,,,,,,506,,,,,,,,,506,,,,,506,506,506',
'506,,506,506,506,506,,,,,506,506,,,,234,234,234,506,234,506,506,506',
'234,234,506,506,,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',
',,,238,238,238,234,238,234,234,234,238,238,234,234,,238,,238,238,238',
'238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238',
'238,238,238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,',
',,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238',
'238,238,238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238',
'238,238,239,239,238,238,,239,,239,239,239,239,239,239,239,,,,,,239,239',
'239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239',
',239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239',
'239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239',
',,,,239,239,,,,240,240,240,239,240,239,239,239,240,240,239,239,,240',
',240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240',
',,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240',
'240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,',
',,240,,,,,240,240,240,240,,240,240,240,240,,,,,240,240,,,,241,241,241',
'240,241,240,240,240,241,241,240,240,,241,,241,241,241,241,241,241,241',
',,,,,241,241,241,241,241,241,241,,,241,,,,,,,241,,,241,241,241,241,241',
'241,241,241,,241,241,241,,241,241,241,241,241,,,,,,,,,,,,,,,,,,,,241',
',,241,,,241,241,,,241,,,,,,241,,,,,,,,,241,,,,,241,241,241,241,,241',
'241,241,241,,,,,241,241,,,,242,242,242,241,242,241,241,241,242,242,241',
'241,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242,242',
',,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,,242',
'242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,,,,242',
',,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242,,,,243',
'243,243,242,243,242,242,242,243,243,242,242,,243,,243,243,243,243,243',
'243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,,243,,,243,243,243',
'243,243,243,243,243,,243,243,243,,243,243,243,243,243,,,,,,,,,,,,,,',
',,,,,243,,,243,,,243,243,,,243,,,,,,243,,,,,,,,,243,,,,,243,243,243',
'243,,243,243,243,243,,,,,243,243,,,,244,244,244,243,244,243,243,243',
'244,244,243,243,,244,,244,244,244,244,244,244,244,,,,,,244,244,244,244',
'244,244,244,,,244,,,,,,,244,,,244,244,244,244,244,244,244,244,,244,244',
'244,,244,244,244,244,244,,,,,,,,,,,,,,,,,,,,244,,,244,,,244,244,,,244',
',,,,,244,,,,,,,,,244,,,,,244,244,244,244,,244,244,244,244,,,,,244,244',
',,,245,245,245,244,245,244,244,244,245,245,244,244,,245,,245,245,245',
'245,245,245,245,,,,,,245,245,245,245,245,245,245,,,245,,,,,,,245,,,245',
'245,245,245,245,245,245,245,,245,245,245,,245,245,245,245,245,,,,,,',
',,,,,,,,,,,,,245,,,245,,,245,245,,,245,,,,,,245,,,,,,,,,245,,,,,245',
'245,245,245,,245,245,245,245,,,,,245,245,,,,246,246,246,245,246,245',
'245,245,246,246,245,245,,246,,246,246,246,246,246,246,246,,,,,,246,246',
'246,246,246,246,246,,,246,,,,,,,246,,,246,246,246,246,246,246,246,246',
',246,246,246,,246,246,246,246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246',
'246,,,246,,,,,,246,,,,,,,,,246,,,,,246,246,246,246,,246,246,246,246',
',,,,246,246,,,,247,247,247,246,247,246,246,246,247,247,246,246,,247',
',247,247,247,247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247',
',,,,,,247,,,247,247,247,247,247,247,247,247,,247,247,247,,247,247,247',
'247,247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,',
',,247,,,,,247,247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248',
'247,248,247,247,247,248,248,247,247,,248,,248,248,248,248,248,248,248',
',,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248,248,248',
'248,248,248,,248,248,248,,248,248,248,248,248,,,,,,,,,,,,,,,,,,,,248',
',,248,,,248,248,,,248,,,,,,248,,,,,,,,,248,,,,,248,248,248,248,,248',
'248,248,248,,,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,248',
'248,,249,,249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249',
',,249,,,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249',
'249,249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249',
',,,,,,,,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250',
'250,250,249,250,249,249,249,250,250,249,249,,250,,250,250,250,250,250',
'250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,,,250,,,250,250,250',
'250,250,250,250,250,,250,250,250,,250,250,250,250,250,,,,,,,,,,,,,,',
',,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250',
'250,,250,250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250',
'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',
',,,252,252,252,251,252,251,251,251,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,,,,253,253,253,252,253,252',
'252,252,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,,,,254,254,254,253,254,253,253,253,254,254,253,253,,254',
',254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254',
',,,,,,254,,,254,254,254,254,254,254,254,254,,254,254,254,,254,254,254',
'254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,',
',,254,,,,,254,254,254,254,,254,254,254,254,,,,,254,254,,,,255,255,255',
'254,255,254,254,254,255,255,254,254,,255,,255,255,255,255,255,255,255',
',,,,,255,255,255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255',
'255,255,255,,255,255,255,,255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255',
',,255,,,255,255,,,255,,,,,,255,,,,,,,,,255,,,,,255,255,255,255,,255',
'255,255,255,,,,,255,255,,,,256,256,256,255,256,255,255,255,256,256,255',
'255,,256,,256,256,256,256,256,256,256,,,,,,256,256,256,256,256,256,256',
',,256,,,,,,,256,,,256,256,256,256,256,256,256,256,,256,256,256,,256',
'256,256,256,256,,,,,,,,,,,,,,,,,,,,256,,,256,,,256,256,,,256,,,,,,256',
',,,,,,,,256,,,,,256,256,256,256,,256,256,256,256,,,,,256,256,,,,257',
'257,257,256,257,256,256,256,257,257,256,256,,257,,257,257,257,257,257',
'257,257,,,,,,257,257,257,257,257,257,257,,,257,,,,,,,257,,,257,257,257',
'257,257,257,257,257,,257,257,257,,257,257,257,257,257,,,,,,,,,,,,,,',
',,,,,257,,,257,,,257,257,,,257,,,,,,257,,,,,,,,,257,,,,,257,257,257',
'257,,257,257,257,257,,,,,257,257,,,,258,258,258,257,258,257,257,257',
'258,258,257,257,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258',
'258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258',
'258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258',
',,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258',
',,,259,259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259',
'259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259',
'259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,',
',,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259',
'259,259,259,,259,259,259,259,,,,,259,259,,,,264,264,264,259,264,259',
'259,259,264,264,259,259,,264,,264,264,264,264,264,264,264,,,,,,264,264',
'264,264,264,264,264,,,264,,,,,,,264,,,264,264,264,264,264,264,264,264',
',264,264,264,,264,264,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264',
'264,,,264,,,,,,264,,,,,,,,,264,,,,,264,264,264,264,,264,264,264,264',
',,,,264,264,,,,,,,264,,264,264,264,488,,264,264,,,,488,488,488,,,488',
'488,488,,488,,,,,,,,488,488,488,,,,,,,,,,488,488,,488,488,488,488,488',
',,,,,,,267,267,,,267,,,,,,,,267,267,,267,267,267,267,267,267,267,,,267',
'267,488,,,267,267,267,267,488,,,,,488,488,,,,,,,267,267,,267,267,267',
'267,267,267,267,267,267,267,267,267,488,488,267,,,,,,,,,,,,,488,,,488',
',271,271,271,488,271,,,,271,271,488,,,271,,271,271,271,271,271,271,271',
',,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271',
'271,271,271,271,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,',
'271,,,271,,,271,271,,,271,,271,,271,,271,,,271,,,,,,271,,,,,271,271',
'271,271,,271,271,271,271,,,,,271,271,,,,272,272,272,271,272,271,271',
'271,272,272,271,271,,272,,272,272,272,272,272,272,272,,,,,,272,272,272',
'272,272,272,272,,,272,,,,,,,272,,,272,272,272,272,272,272,272,272,272',
'272,272,272,,272,272,272,272,272,,,,,,,,,,,,,,,,,,,,272,,,272,,,272',
'272,,,272,,272,,272,,272,,,272,,,,,,272,,,,,272,272,272,272,,272,272',
'272,272,,,,,272,272,,,,280,280,280,272,280,272,272,272,280,280,272,272',
',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,280,280,,,280,280,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,512,512,512,,512,512,512,512,,,,,512',
'512,,,,,,512,512,,512,512,512,,,512,512,287,287,287,,287,,,,287,287',
',,,287,,287,287,287,287,287,287,287,,,,,,287,287,287,287,287,287,287',
',,287,,,,,,,287,,,287,287,287,287,287,287,287,287,,287,287,287,,287',
'287,287,287,287,,,,,,,,,,,,,,,,,,,,287,,,287,,,287,287,,,287,,,,,,287',
',,,,,,,,287,,,,,287,287,287,287,,287,287,287,287,,,,,287,287,,,,621',
'621,621,287,621,287,287,287,621,621,287,287,,621,,621,621,621,621,621',
'621,621,,,,,,621,621,621,621,621,621,621,,,621,,,,,,,621,,,621,621,621',
'621,621,621,621,621,,621,621,621,,621,621,621,621,621,,,,,,,,,,,,,,',
',,,,,621,,,621,,,621,621,,,621,,,,,,621,,,,,,,,,621,,,,,621,621,621',
'621,,621,621,621,621,,,,,621,621,,,,289,289,289,621,289,621,621,621',
'289,289,621,621,,289,,289,289,289,289,289,289,289,,,,,,289,289,289,289',
'289,289,289,,,289,,,,,,,289,,,289,289,289,289,289,289,289,289,,289,289',
'289,,289,289,289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289',
',,,,,289,,,,,,,,,289,,,,,289,289,289,289,,289,289,289,289,,,,,289,289',
',,,292,292,292,289,292,289,289,289,292,292,289,289,,292,,292,292,292',
'292,292,292,292,,,,,,292,292,292,292,292,292,292,,,292,,,,,,,292,,,292',
'292,292,292,292,292,292,292,,292,292,292,,292,292,292,292,292,,,,,,',
',,,,,,,,,,,,,292,,,292,,,292,292,,,292,,,,,,292,,,,,,,,,292,,,,,292',
'292,292,292,,292,292,292,292,,,,,292,292,,,,293,293,293,292,293,292',
'292,292,293,293,292,292,,293,,293,293,293,293,293,293,293,,,,,,293,293',
'293,293,293,293,293,,,293,,,,,,,293,,,293,293,293,293,293,293,293,293',
',293,293,293,,293,293,293,293,293,,,,,,,,,,,,,,,,,,,,293,,,293,,,293',
'293,,,293,,,,,,293,,,,,,,,,293,,,,,293,293,293,293,,293,293,293,293',
',,,,293,293,,,,622,622,622,293,622,293,293,293,622,622,293,293,,622',
',622,622,622,622,622,622,622,,,,,,622,622,622,622,622,622,622,,,622',
',,,,,,622,,,622,622,622,622,622,622,622,622,,622,622,622,,622,622,622',
'622,622,,,,,,,,,,,,,,,,,,,,622,,,622,,,622,622,,,622,,,,,,622,,,,,,',
',,622,,,,,622,622,622,622,,622,622,622,622,,,,,622,622,,,,,,,622,,622',
'622,622,,,622,622,298,298,298,298,298,,,,298,298,,,,298,,298,298,298',
'298,298,298,298,,,,,,298,298,298,298,298,298,298,,,298,,,,,,298,298',
',298,298,298,298,298,298,298,298,298,,298,298,298,,298,298,298,298,298',
',,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,,298,,298,,,,298,,,,,,,,,298',
',,,,298,298,298,298,,298,298,298,298,,,,,298,298,,,,910,910,910,298',
'910,298,298,298,910,910,298,298,,910,,910,910,910,910,910,910,910,,',
',,,910,910,910,910,910,910,910,,,910,,,,,,,910,,,910,910,910,910,910',
'910,910,910,,910,910,910,,910,910,910,910,910,,,,,,,,,,,,,,,,,,,,910',
',,910,,,910,910,,,910,,,,,,910,,,,,,,,,910,,,,,910,910,910,910,,910',
'910,910,910,,,,,910,910,,,,909,909,909,910,909,910,910,910,909,909,910',
'910,,909,,909,909,909,909,909,909,909,,,,,,909,909,909,909,909,909,909',
',,909,,,,,,,909,,,909,909,909,909,909,909,909,909,909,909,909,909,,909',
'909,909,909,909,,,,,,,,,,,,,,,,,,,,909,,,909,,,909,909,,,909,,,,909',
',909,,,909,,,,,,909,,,,,909,909,909,909,,909,909,909,909,,,,,909,909',
',,,415,415,415,909,415,909,909,909,415,415,909,909,,415,,415,415,415',
'415,415,415,415,,,,,,415,415,415,415,415,415,415,,,415,,,,,,,415,,,415',
'415,415,415,415,415,415,415,,415,415,415,,415,415,415,415,415,,,,,,',
',,,,,,,,,,,,,415,,,415,,,415,415,,,415,,,,,,415,,,,,,,,,415,,,,,415',
'415,415,415,,415,415,415,415,,,,,415,415,,,,783,783,783,415,783,415',
'415,415,783,783,415,415,,783,,783,783,783,783,783,783,783,,,,,,783,783',
'783,783,783,783,783,,,783,,,,,,,783,,,783,783,783,783,783,783,783,783',
',783,783,783,,783,783,783,783,783,,,,,,,,,,,,,,,,,,,,783,,,783,,,783',
'783,,,783,,,,,,783,,,,,,,,,783,,,,,783,783,783,783,,783,783,783,783',
',,,,783,783,,,,371,371,371,783,371,783,783,783,371,371,783,783,,371',
',371,371,371,371,371,371,371,,,,,,371,371,371,371,371,371,371,,,371',
',,,,,,371,,,371,371,371,371,371,371,371,371,,371,371,371,,371,371,371',
'371,371,,,,,,,,,,,,,,,,,,,,371,,,371,,,371,371,,,371,,,,,,371,,,,,,',
',,371,,,,,371,371,371,371,,371,371,371,371,,,,,371,371,,,,562,562,562',
'371,562,371,371,371,562,562,371,371,,562,,562,562,562,562,562,562,562',
',,,,,562,562,562,562,562,562,562,,,562,,,,,,,562,,,562,562,562,562,562',
'562,562,562,562,562,562,562,,562,562,562,562,562,,,,,,,,,,,,,,,,,,,',
'562,,,562,,,562,562,,,562,,562,,562,,562,,,562,,,,,,562,,,,,562,562',
'562,562,,562,562,562,562,,,,,562,562,,,,1109,1109,1109,562,1109,562',
'562,562,1109,1109,562,562,,1109,,1109,1109,1109,1109,1109,1109,1109',
',,,,,1109,1109,1109,1109,1109,1109,1109,,,1109,,,,,,,1109,,,1109,1109',
'1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,,1109,1109,1109,1109',
'1109,,,,,,,,,,,,,,,,,,,,1109,,,1109,,,1109,1109,,,1109,,1109,,1109,',
'1109,,,1109,,,,,,1109,,,,,1109,1109,1109,1109,,1109,1109,1109,1109,',
',,,1109,1109,,,,20,20,20,1109,20,1109,1109,1109,20,20,1109,1109,,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,,,,387,387,387,20,387,20,20,20,387,387,20,20,,387,,387,387,387',
'387,387,387,387,,,,,,387,387,387,387,387,387,387,,,387,,,,,,,387,,,387',
'387,387,387,387,387,387,387,,387,387,387,,387,387,387,387,387,,,,,,',
',,,,,,,,,,,,,387,,,387,,,387,387,,,387,,,,,,387,,,,,,,,,387,,,,,387',
'387,387,387,,387,387,387,387,,,,,387,387,,,,522,522,522,387,522,387',
'387,387,522,522,387,387,,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,,522,522,522,27,,522,522,,,,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,,27,27',
'27,,,,,,,,,,,,,,27,,,27,27,,27,,27,561,561,561,,561,,27,,561,561,,,',
'561,,561,561,561,561,561,561,561,,,,,,561,561,561,561,561,561,561,,',
'561,,,,,,,561,,,561,561,561,561,561,561,561,561,,561,561,561,,561,561',
'561,561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561,561,,,561,,561,,,,561',
',,,,,,,,561,,,,,561,561,561,561,,561,561,561,561,,,,,561,561,,,,,,,561',
',561,561,561,,,561,561,603,603,603,603,603,,,,603,603,,,,603,,603,603',
'603,603,603,603,603,,,,,,603,603,603,603,603,603,603,,,603,,,,,,603',
'603,,603,603,603,603,603,603,603,603,603,,603,603,603,,603,603,603,603',
'603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,603,,,,603,,,,,,,',
',603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,30,30,30,603',
'30,603,603,603,30,30,603,603,,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,,,,531,531,531,30,531',
'30,30,30,531,531,30,30,,531,,531,531,531,531,531,531,531,,,,,,531,531',
'531,531,531,531,531,,,531,,,,,,,531,,,531,531,531,531,531,531,531,531',
',531,531,531,,531,531,531,531,531,,,,,,,,,,,,,,,,,,,,531,,,531,,,531',
'531,,,531,,,,,,531,,,,,,,,,531,,,,,531,531,531,531,,531,531,531,531',
',,,,531,531,,,,546,546,546,531,546,531,531,531,546,546,531,531,,546',
',546,546,546,546,546,546,546,,,,,,546,546,546,546,546,546,546,,,546',
',,,,,,546,,,546,546,546,546,546,546,546,546,546,546,546,546,,546,546',
'546,546,546,,,,,,,,,,,,,,,,,,,,546,,,546,,,546,546,,,546,,,,,,546,,',
'546,,,,,,546,,,,,546,546,546,546,,546,546,546,546,,,,,546,546,,,,543',
'543,543,546,543,546,546,546,543,543,546,546,,543,,543,543,543,543,543',
'543,543,,,,,,543,543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543',
'543,543,543,543,543,543,543,543,543,,543,543,543,543,543,,,,,,,,,,,',
',,,,,,,,543,,,543,,,543,543,,,543,,543,,,,543,,,543,,,,,,543,,,,,543',
'543,543,543,,543,543,543,543,,,,,543,543,,,,534,534,534,543,534,543',
'543,543,534,534,543,543,,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,,,,,,534,,,,,,,,,534,,,,,534,534,534,534,,534,534,534,534',
',,,,534,534,,,,537,537,537,534,537,534,534,534,537,537,534,534,,537',
',537,537,537,537,537,537,537,,,,,,537,537,537,537,537,537,537,,,537',
',,,,,,537,,,537,537,537,537,537,537,537,537,,537,537,537,,537,537,537',
'537,537,,,,,,,,,,,,,,,,,,,,537,,,537,,,537,537,,,537,,,,,,537,,,,,,',
',,537,,,,,537,537,537,537,,537,537,537,537,,,,,537,537,,,,31,31,31,537',
'31,537,537,537,31,31,537,537,,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,,,,605,605,605,31,605',
'31,31,31,605,605,31,31,,605,,605,605,605,605,605,605,605,,,,,,605,605',
'605,605,605,605,605,,,605,,,,,,,605,,,605,605,605,605,605,605,605,605',
',605,605,605,,605,605,605,605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605',
'605,,,605,,605,,,,605,,,,,,,,,605,,,,,605,605,605,605,,605,605,605,605',
',,,,605,605,,,,1074,1074,1074,605,1074,605,605,605,1074,1074,605,605',
',1074,,1074,1074,1074,1074,1074,1074,1074,,,,,,1074,1074,1074,1074,1074',
'1074,1074,,,1074,,,,,,,1074,,,1074,1074,1074,1074,1074,1074,1074,1074',
',1074,1074,1074,,1074,1074,1074,1074,1074,,,,,,,,,,,,,,,,,,,,1074,,',
'1074,,,1074,1074,,,1074,,,,,,1074,,,,,,,,,1074,,,,,1074,1074,1074,1074',
',1074,1074,1074,1074,,,,,1074,1074,,,,1073,1073,1073,1074,1073,1074',
'1074,1074,1073,1073,1074,1074,,1073,,1073,1073,1073,1073,1073,1073,1073',
',,,,,1073,1073,1073,1073,1073,1073,1073,,,1073,,,,,,,1073,,,1073,1073',
'1073,1073,1073,1073,1073,1073,,1073,1073,1073,,1073,1073,1073,1073,1073',
',,,,,,,,,,,,,,,,,,,1073,,,1073,,,1073,1073,,,1073,,,,,,1073,,,,,,,,',
'1073,,,,,1073,1073,1073,1073,,1073,1073,1073,1073,,,,,1073,1073,,,,41',
'41,41,1073,41,1073,1073,1073,41,41,1073,1073,,41,,41,41,41,41,41,41',
'41,,,,,,41,41,41,41,41,41,41,,,41,,,,,,,41,,,41,41,41,41,41,41,41,41',
',41,41,41,,41,41,41,41,41,,,,,,,,,,,,,,,,,,,,41,,,41,,,41,41,,,41,,',
',,,41,,,,,,,,,41,,,,,41,41,41,41,,41,41,41,41,,,,,41,41,,,,42,42,42',
'41,42,41,41,41,42,42,41,41,,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,,,,606,606,606,42,606,42,42,42,606',
'606,42,42,,606,,606,606,606,606,606,606,606,,,,,,606,606,606,606,606',
'606,606,,,606,,,,,,,606,,,606,606,606,606,606,606,606,606,,606,606,606',
',606,606,606,606,606,,,,,,,,,,,,,,,,,,,,606,,,606,,,606,606,,,606,,',
',,,606,,,,,,,,,606,,,,,606,606,606,606,,606,606,606,606,,,,,606,606',
',,,44,44,44,606,44,606,606,606,44,44,606,606,,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,,,,45,45,45',
'44,45,44,44,44,45,45,44,44,,45,,45,45,45,45,45,45,45,,,,,,45,45,45,45',
'45,45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45,45,,45,45,45,,45,45,45',
'45,45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45,,,,,,45,,,,,,,,,45,,,',
',45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47,45,47,45,45,45,47,47',
'45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,,,',
',47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47,47,47,,,,,,,,,,,,',
',,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,,,47,47,47,47,,47,47',
'47,47,,,,,47,47,,,,,,,47,,47,47,47,,,47,47,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,,,,,,,5,,5,5,5,59,,5,5,,,,59,59,59,,,59,59',
'59,,59,,,,,,,,59,,59,59,59,,,,823,823,823,823,59,59,,59,59,59,59,59',
',,,,823,823,823,,,,,,,,,,,823,823,,,823,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,,823,823,823,823,,823,823,823,823,,,,59,823,823,59,59',
'59,59,,59,823,59,823,823,823,,59,61,61,61,61,61,,,,61,61,,,,61,,61,61',
'61,61,61,61,61,,,,,,61,61,61,61,61,61,61,,,61,,,,,,61,61,,61,61,61,61',
'61,61,61,61,61,,61,61,61,,61,61,61,61,61,,,,,,,,,,,,,,,,,,,,61,,,61',
',,61,61,,,61,,61,,,,61,,,,,,,,,61,,,,,61,61,61,61,,61,61,61,61,,,,,61',
'61,,,,62,62,62,61,62,61,61,61,62,62,61,61,,62,,62,62,62,62,62,62,62',
',,,,,62,62,62,62,62,62,62,,,62,,,,,,,62,,,62,62,62,62,62,62,62,62,62',
'62,62,62,,62,62,62,62,62,,,,,,,,,,,,,,,,,,,,62,,,62,,,62,62,,,62,,62',
',,,62,,,62,,,,,,62,,,,,62,62,62,62,,62,62,62,62,,,,,62,62,,,,63,63,63',
'62,63,62,62,62,63,63,62,62,,63,,63,63,63,63,63,63,63,,,,,,63,63,63,63',
'63,63,63,,,63,,,,,,,63,,,63,63,63,63,63,63,63,63,63,63,63,63,,63,63',
'63,63,63,,,,,,,,,,,,,,,,,,,,63,,,63,,,63,63,,,63,,,,,,63,,,63,,,,,,63',
',,,,63,63,63,63,,63,63,63,63,,,,,63,63,,,,607,607,607,63,607,63,63,63',
'607,607,63,63,,607,,607,607,607,607,607,607,607,,,,,,607,607,607,607',
'607,607,607,,,607,,,,,,,607,,,607,607,607,607,607,607,607,607,607,607',
'607,607,,607,607,607,607,607,,,,,,,,,,,,,,,,,,,,607,,,607,,,607,607',
',,607,,607,,607,,607,,,607,,,,,,607,,,,,607,607,607,607,,607,607,607',
'607,,,,,607,607,,,,66,66,66,607,66,607,607,607,66,66,607,607,,66,,66',
'66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,,66,,,66,66,66',
'66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66',
',,66,66,,,66,,,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66',
'66,,,,67,67,67,66,67,66,66,66,67,67,66,66,,67,,67,67,67,67,67,67,67',
',,,,,67,67,67,67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,,67',
'67,67,,67,67,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,,,,,67',
',,,,,,,,67,,,,,67,67,67,67,,67,67,67,67,,,,,67,67,,,,70,70,70,67,70',
'67,67,67,70,70,67,67,,70,,70,70,70,70,70,70,70,,,,,,70,70,70,70,70,70',
'70,,,70,,,,,,,70,,,70,70,70,70,70,70,70,70,,70,70,70,,70,70,70,70,70',
',,,,,,,,,,,,,,,,,,,70,,,70,,,70,70,,,70,,,,,,70,,,,,,,,,70,,,,,70,70',
'70,70,,70,70,70,70,,,,,70,70,70,,,,,70,70,,70,70,70,,,70,70,610,610',
'610,610,610,,,,610,610,,,,610,,610,610,610,610,610,610,610,,,,,,610',
'610,610,610,610,610,610,,,610,,,,,,610,610,,610,610,610,610,610,610',
'610,610,610,,610,610,610,,610,610,610,610,610,,,,,,,,,,,,,,,,,,,,610',
',,610,,,610,610,,,610,,610,,,,610,,,,,,,,,610,,,,,610,610,610,610,,610',
'610,610,610,,,,,610,610,,,,830,830,830,610,830,610,610,610,830,830,610',
'610,,830,,830,830,830,830,830,830,830,,,,,,830,830,830,830,830,830,830',
',,830,,,,,,,830,,,830,830,830,830,830,830,830,830,,830,830,830,,830',
'830,830,830,830,,,,,,,,,,,,,,,,,,,,830,,,830,,,830,830,,,830,,,,,,830',
',,,,,,,,830,,,,,830,830,830,830,,830,830,830,830,,,,,830,830,,,,332',
'332,332,830,332,830,830,830,332,332,830,830,,332,,332,332,332,332,332',
'332,332,,,,,,332,332,332,332,332,332,332,,,332,,,,,,,332,,,332,332,332',
'332,332,332,332,332,,332,332,332,,332,332,332,332,332,,,,,,,,,,,,,,',
',,,,,332,,,332,,,332,332,,,332,,,,,,332,,,,,,,,,332,,,,,332,332,332',
'332,,332,332,332,332,,,,,332,332,,,,334,334,334,332,334,332,332,332',
'334,334,332,332,,334,,334,334,334,334,334,334,334,,,,,,334,334,334,334',
'334,334,334,,,334,,,,,,,334,,,334,334,334,334,334,334,334,334,,334,334',
'334,,334,334,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,334,,334,334,',
',334,,,,,,334,,,,,,,,,334,,,,,334,334,334,334,,334,334,334,334,,,,,334',
'334,,,,,,,334,,334,334,334,449,,334,334,,,,449,449,449,,,449,449,449',
',449,,,,,,,,449,449,449,449,449,,,,,,,,449,449,,449,449,449,449,449',
',,,,,,,,,,,,,,,,,,,,,,449,449,449,449,449,449,449,449,449,449,449,449',
'449,449,,,449,449,449,,,449,,,449,,,449,449,,449,,449,,449,,449,449',
',449,449,449,449,449,,449,449,449,,,,,,,,,,,,,,449,,,449,449,449,449',
',449,448,449,,,,,449,448,448,448,,,448,448,448,,448,,,,,,,,448,448,448',
'448,448,,,,,,,,448,448,,448,448,448,448,448,,,,,,,,,,,,,,,,,,,,,,,448',
'448,448,448,448,448,448,448,448,448,448,448,448,448,,,448,448,448,,',
'448,,,448,,,448,448,,448,,448,,448,,448,448,,448,448,448,448,448,,448',
'448,448,,,,,,,,,,,,,,448,,,448,448,448,448,,448,,448,,697,697,697,448',
'697,,,,697,697,,,,697,,697,697,697,697,697,697,697,,,,,,697,697,697',
'697,697,697,697,,,697,,,,,,,697,,,697,697,697,697,697,697,697,697,,697',
'697,697,,697,697,697,697,697,,,,,,,,,,,,,,,,,,,,697,,,697,,,697,697',
',,697,,697,,,,697,,,,,,,,,697,,,,,697,697,697,697,,697,697,697,697,',
',,,697,697,,,,,,,697,,697,697,697,439,,697,697,,,,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,439,,,,,,,,,,,,,,439,,,439,439,,439',
',439,807,807,807,,807,,439,,807,807,,,,807,,807,807,807,807,807,807',
'807,,,,,,807,807,807,807,807,807,807,,,807,,,,,,,807,,,807,807,807,807',
'807,807,807,807,,807,807,807,,807,807,807,807,807,,,,,,,,,,,,,,,,,,',
',807,,,807,,,807,807,,,807,,,,,,807,,,,,,,,,807,,,,,807,807,807,807',
',807,807,807,807,,,,,807,807,,,,806,806,806,807,806,807,807,807,806',
'806,807,807,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806',
'806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806,806',
',806,806,806,806,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,',
',,,806,,,,,,,,,806,,,,,806,806,806,806,,806,806,806,806,,,,,806,806',
',,,572,572,572,806,572,806,806,806,572,572,806,806,,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,,572,,,572,,,,,',
'572,,,,,572,572,572,572,,572,572,572,572,,,,,572,572,,,,29,29,29,572',
'29,572,572,572,29,29,572,572,,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,,,,350,350,350,29,350',
'29,29,29,350,350,29,29,,350,,350,350,350,350,350,350,350,,,,,,350,350',
'350,350,350,350,350,,,350,,,,,,,350,,,350,350,350,350,350,350,350,350',
',350,350,350,,350,350,350,350,350,,,,,,,,,,,,,,,,,,,,350,,,350,,,350',
'350,,,350,,,,,,350,,,,,,,,,350,,,,,350,350,350,350,,350,350,350,350',
',,,,350,350,,,,805,805,805,350,805,350,350,350,805,805,350,350,,805',
',805,805,805,805,805,805,805,,,,,,805,805,805,805,805,805,805,,,805',
',,,,,,805,,,805,805,805,805,805,805,805,805,,805,805,805,,805,805,805',
'805,805,,,,,,,,,,,,,,,,,,,,805,,,805,,,805,805,,,805,,,,,,805,,,,,,',
',,805,,,,,805,805,805,805,,805,805,805,805,,,,,805,805,,,,804,804,804',
'805,804,805,805,805,804,804,805,805,,804,,804,804,804,804,804,804,804',
',,,,,804,804,804,804,804,804,804,,,804,,,,,,,804,,,804,804,804,804,804',
'804,804,804,,804,804,804,,804,804,804,804,804,,,,,,,,,,,,,,,,,,,,804',
',,804,,,804,804,,,804,,,,,,804,,,,,,,,,804,,,,,804,804,804,804,,804',
'804,804,804,,,,,804,804,,,,791,791,791,804,791,804,804,804,791,791,804',
'804,,791,,791,791,791,791,791,791,791,,,,,,791,791,791,791,791,791,791',
',,791,,,,,,,791,,,791,791,791,791,791,791,791,791,,791,791,791,,791',
'791,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791,,,791,,,,,,791',
',,,,,,,,791,,,,,791,791,791,791,,791,791,791,791,,,,,791,791,,,,724',
'724,724,791,724,791,791,791,724,724,791,791,,724,,724,724,724,724,724',
'724,724,,,,,,724,724,724,724,724,724,724,,,724,,,,,,,724,,,724,724,724',
'724,724,724,724,724,,724,724,724,,724,724,724,724,724,,,,,,,,,,,,,,',
',,,,,724,,,724,,,724,724,,,724,,,,,,724,,,,,,,,,724,,,,,724,724,724',
'724,,724,724,724,724,,,,,724,724,,,,,,,724,,724,724,724,28,,724,724',
',,,28,28,28,,,28,28,28,,28,,,,,,,,28,,28,28,,,,,,,,,28,28,,28,28,28',
'28,28,,,,,,,,,,,,,,,,,,,,,,,28,28,28,28,28,28,28,28,28,28,28,28,28,28',
',,28,28,28,,,28,,28,28,,,28,28,,28,,28,,28,,28,28,,28,28,28,28,28,,28',
',28,,,,,,,,,,,,,,28,,,28,28,,28,,28,760,760,760,,760,,28,,760,760,,',
',760,,760,760,760,760,760,760,760,,,,,,760,760,760,760,760,760,760,',
',760,,,,,,,760,,,760,760,760,760,760,760,760,760,,760,760,760,,760,760',
'760,760,760,,,,,,,,,,,,,,,,,,,,760,,,760,,,760,760,,,760,,,,,,760,,',
',,,,,,760,,,,,760,760,760,760,,760,760,760,760,,,,,760,760,,,,889,889',
'889,760,889,760,760,760,889,889,760,760,,889,,889,889,889,889,889,889',
'889,,,,,,889,889,889,889,889,889,889,,,889,,,,,,,889,,,889,889,889,889',
'889,889,889,889,,889,889,889,,889,889,889,889,889,,,,,,,,,,,,,,,,,,',
',889,,,889,,,889,889,,,889,,889,,,,889,,,,,,,,,889,,,,,889,889,889,889',
',889,889,889,889,,,,,889,889,,,,675,675,675,889,675,889,889,889,675',
'675,889,889,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675,675',
'675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675,675',
',675,675,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,',
',,,675,,,,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675',
',,,884,884,884,675,884,675,675,675,884,884,675,675,,884,,884,884,884',
'884,884,884,884,,,,,,884,884,884,884,884,884,884,,,884,,,,,,,884,,,884',
'884,884,884,884,884,884,884,,884,884,884,,884,884,884,884,884,,,,,,',
',,,,,,,,,,,,,884,,,884,,,884,884,,,884,,,,,,884,,,,,,,,,884,,,,,884',
'884,884,884,,884,884,884,884,,,,,884,884,,,,678,678,678,884,678,884',
'884,884,678,678,884,884,,678,,678,678,678,678,678,678,678,,,,,,678,678',
'678,678,678,678,678,,,678,,,,,,,678,,,678,678,678,678,678,678,678,678',
',678,678,678,,678,678,678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678',
'678,,,678,,,,,,678,,,,,,,,,678,,,,,678,678,678,678,,678,678,678,678',
',,,,678,678,,,,869,869,869,678,869,678,678,678,869,869,678,678,,869',
',869,869,869,869,869,869,869,,,,,,869,869,869,869,869,869,869,,,869',
',,,,,,869,,,869,869,869,869,869,869,869,869,,869,869,869,,869,869,869',
'869,869,,,,,,,,,,,,,,,,,,,,869,,,869,,,869,869,,,869,,,,,,869,,,,,,',
',,869,,,,,869,869,869,869,,869,869,869,869,,,,,869,869,,,,462,462,462',
'869,462,869,869,869,462,462,869,869,,462,,462,462,462,462,462,462,462',
',,,,,462,462,462,462,462,462,462,,,462,,,,,,,462,,,462,462,462,462,462',
'462,462,462,,462,462,462,,462,462,462,462,462,,,,,,,,,,,,,,,,,,,,462',
',,462,,,462,462,,,462,,,,,,462,,,,,,,,,462,,,,,462,462,462,462,,462',
'462,462,462,,,,,462,462,,,,461,461,461,462,461,462,462,462,461,461,462',
'462,,461,,461,461,461,461,461,461,461,,,,,,461,461,461,461,461,461,461',
',,461,,,,,,,461,,,461,461,461,461,461,461,461,461,,461,461,461,,461',
'461,461,461,461,,,,,,,,,,,,,,,,,,,,461,,,461,,,461,461,,,461,,,,,,461',
',,,,,,,,461,,,,,461,461,461,461,,461,461,461,461,,,,,461,461,,,,460',
'460,460,461,460,461,461,461,460,460,461,461,,460,,460,460,460,460,460',
'460,460,,,,,,460,460,460,460,460,460,460,,,460,,,,,,,460,,,460,460,460',
'460,460,460,460,460,,460,460,460,,460,460,460,460,460,,,,,,,,,,,,,,',
',,,,,460,,,460,,,460,460,,,460,,,,,,460,,,,,,,,,460,,,,,460,460,460',
'460,,460,460,460,460,,,,,460,460,,,,458,458,458,460,458,460,460,460',
'458,458,460,460,,458,,458,458,458,458,458,458,458,,,,,,458,458,458,458',
'458,458,458,,,458,,,,,,,458,,,458,458,458,458,458,458,458,458,458,458',
'458,458,,458,458,458,458,458,,,,,,,,,,,,,,,,,,,,458,,,458,,,458,458',
',,458,,458,,458,,458,,,458,,,,,,458,,,,,458,458,458,458,,458,458,458',
'458,,,,,458,458,,,,71,71,71,458,71,458,458,458,71,71,458,458,,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,,,,73',
'73,73,71,73,71,71,71,73,73,,,,73,,73,73,73,73,73,73,73,,,,,,73,73,73',
'73,73,73,73,,,73,,,,,,,73,,,73,73,73,73,73,73,73,73,,73,73,73,,73,73',
',,73,,,,,,,,,,,,,,,,,,,,73,,,73,,,73,73,,,73,,,,,,,,,,,,,,,,,,,,73,73',
'73,73,,73,73,73,73,,,,,73,73,,,,965,965,965,73,965,73,73,73,965,965',
',,,965,,965,965,965,965,965,965,965,,,,,,965,965,965,965,965,965,965',
',,965,,,,,,,965,,,965,965,965,965,965,965,965,965,,965,965,965,,965',
'965,,,965,,,,,,,,,,,,,,,,,,,,965,,,965,,,965,965,,,965,,,,,,,,,,,,,',
',,,,,,965,965,965,965,,965,965,965,965,,,,,965,965,,,,72,72,72,965,72',
'965,965,965,72,72,,,,72,,72,72,72,72,72,72,72,,,,,,72,72,72,72,72,72',
'72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72,,72,72,72,,72,72,,,72,,,',
',,,,,,,,,,,,,72,,,72,,,72,,,72,72,,,72,,,,,,,,,,,,,,,,,,,,72,72,72,72',
',72,72,72,72,,,,,72,72,,,,306,306,306,72,306,72,72,72,306,306,,,,306',
',306,306,306,306,306,306,306,,,,,,306,306,306,306,306,306,306,,,306',
',,,,,,306,,,306,306,306,306,306,306,306,306,,306,306,306,,306,306,,',
'306,,,,,,,,,,,,,,,,,,,,306,,,306,,,306,306,,,306,,,1138,,1138,1138,1138',
'1138,1138,,,,,,,,,1138,,306,306,306,306,,306,306,306,306,,,,,306,306',
',,,306,,1138,306,,306,306,306,35,35,35,,35,1138,1138,,35,35,1138,,,35',
',35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35,,,,,,,35,,,35,35',
'35,35,35,35,35,35,,35,35,35,,35,35,,,35,,,,,,,,,,,,,,,,,,,,35,,,35,',
',35,35,,,35,,,1136,,1136,1136,1136,1136,1136,,,,,,,,,1136,,35,35,35',
'35,,35,35,35,35,,,,,35,35,,,,35,,1136,35,,35,35,35,34,34,34,,34,1136',
'1136,,34,34,1136,,,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,,,,1043,1043,1043,34,1043,34,34,34,1043,1043,',
',,1043,,1043,1043,1043,1043,1043,1043,1043,,,,,,1043,1043,1043,1043',
'1043,1043,1043,,,1043,,,,,,,1043,,,1043,1043,1043,1043,1043,1043,1043',
'1043,,1043,1043,1043,,1043,1043,,,1043,,,,,,,,,,,,,,,,,,,,1043,,,1043',
',,1043,1043,,,1043,,,,,,,,,,,,,,,,,,,,1043,1043,1043,1043,,1043,1043',
'1043,1043,,,,,1043,1043,,,,692,692,692,1043,692,1043,1043,1043,692,692',
',,,692,,692,692,692,692,692,692,692,,,,,,692,692,692,692,692,692,692',
',,692,,,,,,,692,,,692,692,692,692,692,692,692,692,,692,692,692,,692',
'692,,,692,,,,,,,,,,,,,,,,,,,,692,,,692,,,692,692,,,692,,,,,,,,,,,,,',
',,,,,,692,692,692,692,,692,692,692,692,,,,,692,692,,,,520,520,520,692',
'520,692,692,692,520,520,,,,520,,520,520,520,520,520,520,520,,,,,,520',
'520,520,520,520,520,520,,,520,,,,,,,520,,,520,520,520,520,520,520,520',
'520,,520,520,520,,520,520,,,520,,,,,,,,,,,,,,,,,,,,520,,,520,,,520,520',
',,520,,,,,,,,,,,,,,,,,,,,520,520,520,520,,520,520,520,520,,,,,520,520',
',,,681,681,681,520,681,520,520,520,681,681,,,,681,,681,681,681,681,681',
'681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681,681,681',
'681,681,681,681,681,,681,681,681,,681,681,,,681,,,,,,,,,,,,,,,,,,,,681',
',,681,,,681,681,,,681,,,,,,,,,,,,,,,,,,,,681,681,681,681,,681,681,681',
'681,,,,,681,681,,,,528,528,528,681,528,681,681,681,528,528,,,,528,,528',
'528,528,528,528,528,528,,,,,,528,528,528,528,528,528,528,,,528,,,,,',
',528,,,528,528,528,528,528,528,528,528,,528,528,528,,528,528,,,528,',
',,,,,,,,,,,,,,,,,,528,,,528,,,528,528,,,528,,,,,,,,,,,,,,,,,,,,528,528',
'528,528,,528,528,528,528,,,,,528,528,,,,323,323,323,528,323,528,528',
'528,323,323,,,,323,,323,323,323,323,323,323,323,,,,,,323,323,323,323',
'323,323,323,,,323,,,,,,,323,,,323,323,323,323,323,323,323,323,,323,323',
'323,,323,323,,,323,,,,,,,,,,,,,,,,,,,,323,,,323,,,323,323,,,323,,,,',
',,,,,,,,,,,,,,,323,323,323,323,,323,323,323,323,,,,,323,323,,,,956,956',
'956,323,956,323,323,323,956,956,,,,956,,956,956,956,956,956,956,956',
',,,,,956,956,956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956',
'956,956,956,,956,956,956,,956,956,,,956,,,,,,,,,,,,,,,,,,,,956,,,956',
',,956,956,,,956,,,,,,,,,,,,,,,,,,,,956,956,956,956,,956,956,956,956',
',,,,956,956,,,,,,,956,,956,956,956,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8',
'8,8,8,8,8,8,8,,,,8,8,8,8,8,8,8,8,8,8,,,,,,8,8,8,8,8,8,8,8,8,8,,8,,,',
',,,,8,8,,8,8,8,8,8,8,8,,,8,8,,,,8,8,8,8,,,,,,,,,,,,,,8,8,,8,8,8,8,8',
'8,8,8,8,8,8,8,,,8,8,,,,,,,,,,,,,,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9',
'9,9,9,9,9,9,9,,,,9,9,9,9,9,9,9,9,9,9,,,,,,9,9,9,9,9,9,9,9,9,,,9,,,,',
',,,9,9,,9,9,9,9,9,9,9,,,9,9,,,,9,9,9,9,,,,,,,,,,,,,,9,9,,9,9,9,9,9,9',
'9,9,9,9,9,9,,,9,9,,,,,,,,,,,,,,9,406,406,406,406,406,406,406,406,406',
'406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,,,,406,406',
'406,406,406,406,406,406,406,406,,,,,,406,406,406,406,406,406,406,406',
'406,,,406,,,,,,,,406,406,,406,406,406,406,406,406,406,,,406,406,,,,406',
'406,406,406,,,,,,,,,,,,,,406,406,,406,406,406,406,406,406,406,406,406',
'406,406,406,,,406,406,,,,,,,,,,,,,,406,601,601,601,601,601,601,601,601',
'601,601,601,601,601,601,601,601,601,601,601,601,601,601,601,601,,,,601',
'601,601,601,601,601,601,601,601,601,,,,,,601,601,601,601,601,601,601',
'601,601,,,601,,,,,,,,601,601,,601,601,601,601,601,601,601,,,601,601',
',,,601,601,601,601,,,,,,,,,,,,,,601,601,,601,601,601,601,601,601,601',
'601,601,601,601,601,,,601,601,463,463,463,463,,,,,,,,,,601,,,463,463',
'463,463,,,1034,463,1034,1034,1034,1034,1034,463,463,,,463,,,,1034,,',
',,,,,,,,,,,,,463,,,463,,,1034,463,,,463,,,,,1034,1034,1034,1034,,,,1034',
',,,463,,,,463,463,463,463,,463,463,463,463,,,,,463,463,,,,,,,463,,463',
'463,463,,,463,463,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,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,766,766,766,766,766,766,766',
',,766,1130,1130,1130,1130,,,1134,,1134,1134,1134,1134,1134,,,,1130,1130',
'1130,1130,,1134,,1130,,,,,,1130,1130,,,1130,,,,,,,,,,1134,,,,,,,,,,1130',
'1134,1134,1130,,,1134,1130,,,1130,,,,,,,,,,,,,,,,1130,,,,1130,1130,1130',
'1130,,1130,1130,1130,1130,,,,,1130,1130,1084,1084,1084,1084,,,1130,',
'1130,1130,1130,,,1130,1130,,1084,1084,1084,1084,,,1060,1084,1060,1060',
'1060,1060,1060,1084,1084,,,1084,,,,1060,,,,,,,,,,,,,,,,1084,,,1084,',
',1060,1084,,,1084,,,,,,,1060,1060,,,,1060,,,,1084,,,,1084,1084,1084',
'1084,,1084,1084,1084,1084,,,,,1084,1084,1075,1075,1075,1075,,,1084,',
'1084,1084,1084,,,1084,1084,,1075,1075,1075,1075,,,1038,1075,1038,1038',
'1038,1038,1038,1075,1075,,,1075,,,,1038,,,,,,,,,,,,,,,,1075,,,1075,',
',1038,1075,,,1075,,1075,,,,,1038,1038,,,,1038,,,,1075,,,,1075,1075,1075',
'1075,,1075,1075,1075,1075,,,,,1075,1075,1127,1127,1127,1127,,,1075,',
'1075,1075,1075,,,1075,1075,,1127,1127,1127,1127,,,1036,1127,1036,1036',
'1036,1036,1036,1127,1127,,,1127,,,,1036,,,,,,,,,,,,,,,,1127,,,1127,',
',1036,1127,,,1127,,,,,1036,1036,1036,1036,,,,1036,,,,1127,,,,1127,1127',
'1127,1127,,1127,1127,1127,1127,,,,,1127,1127,,,,,,,1127,,1127,1127,1127',
',,1127,1127,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74',
'74,74,74,74,74,,,,74,74,74,74,74,74,74,74,74,74,,,,,,74,74,74,74,74',
'74,74,74,74,74,74,74,,74,,,,,,74,74,,74,74,74,74,74,74,74,,,74,74,,',
',74,74,74,74,,,,,,74,,,,,,,,74,74,,74,74,74,74,74,74,74,74,74,74,74',
'74,,,74,1017,1017,1017,1017,,,1062,,1062,1062,1062,1062,1062,,,,1017',
'1017,1017,1017,,1062,,1017,,,,,,1017,1017,,,1017,,,,,,,,,,1062,,,,,',
',,,,1017,1062,1062,1017,,,1062,1017,,,1017,,,,,,,,,,,,,,,,1017,,,,1017',
'1017,1017,1017,,1017,1017,1017,1017,,,,,1017,1017,926,926,926,926,,',
'1017,,1017,1017,1017,,,1017,1017,,926,926,926,926,,,1064,926,1064,1064',
'1064,1064,1064,926,926,,,926,,,,1064,,,,,,,,,,,,,,,,926,,,926,,,1064',
'926,,,926,,,,,,,1064,1064,,,,1064,,,,926,,,,926,926,926,926,,926,926',
'926,926,,,,,926,926,888,888,888,888,,,926,,926,926,926,,,926,926,,888',
'888,888,888,,,,888,888,,,,,888,888,,,888,888,,,,,,,,,,,,,,,,,,,888,',
',888,,,,888,,,888,,888,,,,,,,888,,,,,,,888,,,,888,888,888,888,,888,888',
'888,888,,,,,888,888,918,918,918,918,,,888,,888,888,888,,,888,888,,918',
'918,918,918,,,1132,918,1132,1132,1132,1132,1132,918,918,,,918,,,,1132',
',,,,,,,,,,,,,,,918,,,918,,,1132,918,,,918,,918,,,1132,1132,1132,1132',
',,,1132,,,,918,,,,918,918,918,918,,918,918,918,918,,,,,918,918,821,821',
'821,821,,,918,,918,918,918,,,918,918,,821,821,821,821,,,1153,821,1153',
'1153,1153,1153,1153,821,821,,,821,,,,1153,,,,,,,,,,,,,,,,821,,,821,',
',1153,821,,,821,,,,,,,1153,1153,,,,1153,,,,821,,,,821,821,821,821,,821',
'821,821,821,,,,,821,821,1083,1083,1083,1083,,,821,,821,821,821,,,821',
'821,,1083,1083,1083,1083,,,867,1083,867,867,867,867,867,1083,1083,,',
'1083,,,,867,,,,,,,,,,,,,,,,1083,,,1083,,,867,1083,,,1083,,,,,,,867,867',
',,,867,,,,1083,,,,1083,1083,1083,1083,,1083,1083,1083,1083,,,,,1083',
'1083,810,810,810,810,,,1083,,1083,1083,1083,,,1083,1083,,810,810,810',
'810,,,765,810,765,765,765,765,765,810,810,,,810,,,,765,,,,,,,,,,,,,',
',,810,,,810,,,765,810,,,810,,,,,765,765,765,765,,,,765,,,,810,,,,810',
'810,810,810,,810,810,810,810,,,,,810,810,813,813,813,813,,,810,,810',
'810,810,,,810,810,,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,814,814,814,814,,,813',
',813,813,813,,,813,813,,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,816,816,816,816,,,814',
',814,814,814,,,814,814,,816,816,816,816,,,,816,,,,,,816,816,,,816,,',
',,,,,822,822,822,822,,,,,,,,,816,,,816,822,822,822,816,,,816,,816,,',
',,822,822,,,822,,,,,816,,,,816,816,816,816,,816,816,816,816,,,,,816',
'816,,,,,,,816,,816,816,816,,,816,816,865,,865,865,865,865,865,,,,,822',
'822,822,822,865,822,822,822,822,,,,,822,822,644,644,644,644,,,822,,822',
'822,822,865,,,,,644,644,644,,865,865,865,865,,,,865,,644,644,,,644,645',
'645,645,645,,,,,,,,,,,,,645,645,645,,,,,,,,,,,645,645,,,645,,,,,,,,',
',,,,,,,644,644,644,644,,644,644,644,644,,,,,644,644,,,,,,,644,,644,644',
'644,,,,,,,,,645,645,645,645,,645,645,645,645,,,,,645,645,609,609,,,609',
',645,,645,645,645,,609,609,,609,609,609,609,609,609,609,,,609,609,,',
',609,609,609,609,,,,,,609,,,,,,,,609,609,,609,609,609,609,609,609,609',
'609,609,609,609,609,608,608,609,,608,,,,,,,,608,608,,608,608,608,608',
'608,608,608,,,608,608,,,,608,608,608,608,,,,,,608,,,,,,,,608,608,,608',
'608,608,608,608,608,608,608,608,608,608,608,524,524,608,,524,,,,,,,',
'524,524,,524,524,524,524,524,524,524,,,524,524,,,,524,524,524,524,,',
',,,524,,,,,,,,524,524,,524,524,524,524,524,524,524,524,524,524,524,524',
'218,218,524,,218,,,,,,,,218,218,,218,218,218,218,218,218,218,,,218,218',
',,,218,218,218,218,,,,,,218,,,,,,,,218,218,,218,218,218,218,218,218',
'218,218,218,218,218,218,532,532,218,,532,,,,,,,,532,532,,532,532,532',
'532,532,532,532,,,532,532,,,,532,532,532,532,,,,,,532,,,,,,,,532,532',
',532,532,532,532,532,532,532,532,532,532,532,532,217,217,532,,217,,',
',,,,,217,217,,217,217,217,217,217,217,217,,,217,217,,,,217,217,217,217',
',,,,,217,,,,,,,,217,217,,217,217,217,217,217,217,217,217,217,217,217',
'217,457,457,217,,457,,,,,,,,457,457,,457,457,457,457,457,457,457,,,457',
'457,,,,457,457,457,457,,,,,,457,,,,,,,,457,457,,457,457,457,457,457',
'457,457,457,457,457,457,457,1106,1106,457,,1106,,,,,,,,1106,1106,,1106',
'1106,1106,1106,1106,1106,1106,,,1106,1106,,,,1106,1106,1106,1106,,,',
',,1106,,,,,,,,1106,1106,,1106,1106,1106,1106,1106,1106,1106,1106,1106',
'1106,1106,1106,456,456,1106,,456,,,,,,,,456,456,,456,456,456,456,456',
'456,456,,,456,456,,,,456,456,456,456,,,,,,456,,,,,,,,456,456,,456,456',
'456,456,456,456,456,456,456,456,456,456,523,523,456,,523,,,,,,,,523',
'523,,523,523,523,523,523,523,523,,,523,523,,,,523,523,523,523,,,,,,523',
',,,,,,,523,523,,523,523,523,523,523,523,523,523,523,523,523,523,563',
'563,523,,563,,,,,,,,563,563,,563,563,563,563,563,563,563,,,563,563,',
',,563,563,563,563,,,,,,563,,,,,,,,563,563,,563,563,563,563,563,563,563',
'563,563,563,563,563,564,564,563,,564,,,,,,,,564,564,,564,564,564,564',
'564,564,564,,,564,564,,,,564,564,564,564,,,,,,564,,,,,,,,564,564,,564',
'564,564,564,564,564,564,564,564,564,564,564,533,533,564,,533,,,,,,,',
'533,533,,533,533,533,533,533,533,533,,,533,533,,,,533,533,533,533,,',
',,,533,,,,,,,,533,533,,533,533,533,533,533,533,533,533,533,533,533,533',
'1111,1111,533,,1111,,,,,,,,1111,1111,,1111,1111,1111,1111,1111,1111',
'1111,,,1111,1111,,,,1111,1111,1111,1111,,,,,,1111,,,,,,,,1111,1111,',
'1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,570,570',
'1111,,570,,,,,,,,570,570,,570,570,570,570,570,570,570,,,570,570,,,,570',
'570,570,570,,,,,,570,,,,,,,,570,570,,570,570,570,570,570,570,570,570',
'570,570,570,570,571,571,570,,571,,,,,,,,571,571,,571,571,571,571,571',
'571,571,,,571,571,,,,571,571,571,571,,,,,,571,,,,,,,,571,571,,571,571',
'571,571,571,571,571,571,571,571,571,571,1110,1110,571,,1110,,,,,,,,1110',
'1110,,1110,1110,1110,1110,1110,1110,1110,,,1110,1110,,,,1110,1110,1110',
'1110,,,,,,1110,,,,,,,,1110,1110,,1110,1110,1110,1110,1110,1110,1110',
'1110,1110,1110,1110,1110,,863,1110,863,863,863,863,863,,703,,703,703',
'703,703,703,863,,,,,,,,703,,551,,551,551,551,551,551,,,,,,863,,,551',
',,,,703,863,863,863,863,,,,863,703,703,703,703,,,,703,551,551,1174,',
'1174,1174,1174,1174,1174,551,551,551,551,,,,551,1174,,1058,,1058,1058',
'1058,1058,1058,,,,,,,,,1058,,,,,1174,,,,,,,,,,,1174,1174,,,,1174,1058',
',,,,,,,,1058,1058,1058,1058,,,,1058' ]
        racc_action_check = arr = ::Array.new(27273, 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 = [
  4721,   931,   nil,   358,   nil, 16917,  1250,  1246, 23701, 23829,
  1243,   nil,  1176,  1160,   551,  1186,   363,   717,   nil,   -31,
 13998,  1121,  1198,   nil,   266,   nil,   276, 14401, 20399, 19603,
 14809, 15595,   nil,   977, 22645, 22506,   nil,  1082,   779,   858,
  1153, 16119, 16250,   238, 16512, 16643,   983, 16774,  1034,   475,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil, 17058,
   nil, 17199, 17330, 17461,    -8,   nil, 17723, 17854,   nil,   nil,
 17985, 21843, 22236, 21974, 24832,   nil,   nil,   nil,   nil,   nil,
   477,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   359,   nil,   nil,   583,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,  1162,   nil,  5283,   nil,   nil,   nil,
   nil,  5426,  5557,  5688,  5819,  5962,   nil,  2417,   nil,   311,
   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,  1015,   nil,
  2705,  6355,  6486,  6617,  6748,  6879,  7010, 26354, 26232,   nil,
   nil,  7141,  7272,  7403,   nil,   nil,   297,   -27,   189,  1033,
   244,   925,   981,   nil,  8320,  1553,   913,   nil,  8451,  8582,
  8713,  8844,  8975,  9106,  9237,  9368,  9499,  9630,  9761,  9892,
 10023, 10154, 10285, 10416, 10547, 10678, 10809, 10940, 11071, 11202,
   nil,   nil,   nil,   nil, 11333,   nil,   nil, 11474,   nil,   nil,
   894, 11604, 11735,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
 11866,   nil,  1553,   nil,   856,   814,   nil, 12152,   807, 12414,
   nil,   nil, 12545, 12676,   nil,   nil,   440,   nil, 12950,  1538,
   748,   714,  3281,   683,   690,   634, 22367,  4001,   479,   551,
   553,   705,   555,   nil,   655,   604,   251,   nil,   nil,   nil,
   540,   172,   467, 23431,   nil,   872,   591,  4145,  4001,   440,
   nil,   410, 18390,   nil, 18521,  4289,  1394,   330,   nil,   591,
   624,   243,   181,   636,    90,   nil,   nil,   773,    32,    35,
 19734,  3857,  1841,   451,    94,   -90,   -18,    28,   694,  1431,
    11,  1445,   nil,   nil,   777,   194,   252,   nil,   800,   nil,
  1341, 13605,   nil,   nil,   nil,   339,   340,   556,   557,   559,
   561,   603,   635,   702,   nil,   737,   nil, 14129,   nil,   349,
   398,   403,   409,   394,   142,   135,   288,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,  1333, 23957,   nil,   nil,   nil,
   nil,  1312,   nil,  1380,  1288, 13343,  1285,   nil,   nil,  1262,
   nil,   804,   -56,  1359,   nil,   nil,  1265,   nil,   nil,   nil,
   nil,   nil,  1409,  1270,   nil,  1266,  1264,   578,   623, 19076,
   nil,   nil,   nil,   249,   722,  1074,   nil,   nil, 18798, 18662,
   nil,   nil,   nil,   223,   nil,  1117, 26537, 26415, 21712,   -82,
 21581, 21450, 21319, 24169,  3857,  3713,  1016,   981,  1340,   496,
   548,   998,  4721,  4577,  4433,  2417,  3569,  3425,  3281,  3137,
  2993,  2445,  2392,  2849,  2705,  1697,  2561,   nil, 11474,   nil,
   nil,   nil,   nil,  5140,  1047,  1051,   nil,   nil,   nil,  1081,
   nil,   nil,  6093,   nil,  8058,   nil,  8189,   nil,   281,   nil,
   nil,   nil, 12009,  1682,   nil,  1126,  1129,   nil,   nil,  1192,
 23038,  1212, 14260, 26598, 26171,   843,   462,   nil, 23300,   976,
   nil, 14940, 26293, 26781, 15333,  4289,  1841, 15464,  1371,  1370,
   548,  1259,   nil, 15202,   nil,   nil, 15071,   nil,   nil,   nil,
   nil, 27112,  2561,  1365,   nil,  4865,   167,   512,  1350,    33,
  1336, 14535, 13736, 26659, 26720,    93,   nil,   nil,   871,   nil,
 26903, 26964, 19472,   nil,   nil,   147,  3713,  1125,   nil,   199,
   nil,   nil,   nil,   833,   nil,   nil,   nil,  1079,   nil,   nil,
   286,   nil,   180,   nil,   nil,  1024,   nil,  1013,   nil,   nil,
   nil, 24085,   nil, 14678,  1000, 15726, 16381, 17592, 26110, 26049,
 18128,  6224,   871,  1018,  7534,  7665,  7796,  7927,  1011,   nil,
   nil, 12283, 12807,   985,   nil,   nil,   nil,   252,   332,     0,
   471,   871,   789,   nil,   749,   nil,   nil,   648,    97,   -75,
   nil,   759,   nil,   nil, 25936, 25970,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   353,   364,   nil,
  1333,  1442,   nil,  1418,    28,   nil,   nil,   nil,  1278,   509,
   618,   nil,   995,   nil,  1214, 20795,   nil,   nil, 21057,   nil,
   -99, 23169,   997,   nil,  1027,    98,   134,  1295,   165,   877,
  1257,  1169, 22907,   nil,  1167,   -14,  1187, 18935,   nil,   nil,
   nil,   610,   nil, 27095,   nil,   971,   956,   938,   nil,   933,
   793,   763,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   486,  2318,   nil,   nil, 20258,   nil,   nil,   nil,   187,   nil,
   nil,   nil,   179,   nil,   nil,   141,   739,   nil,  1375,   nil,
   nil,   nil,   nil,   nil,  1381,  1383,   nil,   nil,    39,  1265,
    64,    57,    71,    61,  1409,   968,   960,   nil,  1287,  3137,
 20533,   nil,  1413,  2993,   719, 25506, 24312,   nil,   nil,   nil,
   nil,   nil,   nil,  4433,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,  1316, 13474,  1320,   444,   440,   832,   139,   nil,
  1985, 20127,   nil,   -79,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil, 19996, 19865, 19341, 19210,   364,   134,
 25503,    69,   -65, 25601, 25699,   258, 25797,   nil,  1045,   nil,
   335, 25307, 25838, 17058,   nil,   nil,   nil,   nil,   nil,   nil,
 18259,   nil,   391,   nil,   nil,   389,   nil,   nil,   651,  1697,
   nil,   nil,   nil,   nil,   392,   163,   nil,   nil,   552,   nil,
  1985,   433,   507,   nil,   nil,   nil,    63,   482,  1154,   nil,
   nil,   627,   nil, 27087,   nil, 25891,   nil, 25408,   nil, 21188,
   nil,  2259,   nil,   530,   539,  1539,   552,   nil,   nil,   nil,
   nil,   nil,   691,   nil, 20926,   733,   nil,   nil, 25111, 20664,
  3569,    68,   775,   nil,   802,   512,  3425,   nil,   817,   712,
   713,   nil,   401,   nil,   720,   718,   358,   nil,   nil, 13212,
 13081,   nil,   nil,   nil,   nil,   -72,   748,   750, 25209,   nil,
   749,   -19,   750,   nil,   nil,   nil, 25013,   nil,   nil,   370,
   783,   787,   nil,   791,   793,   nil,   nil,   -66,   nil,   nil,
   nil,  2129,  2129,   nil,   816,   817,   818,   nil,   819,   823,
   838,   nil,   863,   843,   841,   841, 23562,   nil,   nil,   nil,
   nil,  1265,   nil,   nil,     6, 22105,   nil,   nil,   nil,   nil,
   924,   887,   nil,   995,   nil,   nil,   915,   918,   nil,   923,
   925,   nil,   927,   nil,   nil,   933,  2288,  2298,   nil,   nil,
   nil,    -1,   nil,    -7,   743,   -77,   nil,   nil,   nil,    46,
   nil,   nil,   nil,  1064,   nil,   nil,   nil,   nil,   986,   nil,
   nil,   nil,   989,   944,   -32,   nil,   952, 24915,  1030,  1016,
   391,   nil,   nil,   nil,   nil,   nil,   nil,   220,   nil,   nil,
   829,   nil,   nil,   nil, 24172,   nil, 24692,   nil, 24594,   nil,
   nil,  1020,  1683, 22776,   876,  1082,   nil,  4145,   -11,    -9,
   891,  1105,   -10,   nil,  4577,  1121,   nil,   nil, 27168,   nil,
 24496,   nil, 24902,   nil, 25016,   nil,   nil,   nil,   nil,  1069,
  1072,  5009,   nil, 15988, 15857, 24591,   nil,   nil,   nil,   nil,
  2273,   nil,  1084, 25405, 24493,  1101,   nil,   nil,   nil,   nil,
   nil,  1102,   nil,   nil,  1107,  1112,  1113,  1114,   nil,  1115,
   nil,   541,   nil,   nil,   nil,   966, 26476,   nil,  1248, 13867,
 27025, 26842,    36,  1160,  1265,  1144,  1145,  1146,  1148,  2577,
  2547,   379,  2849,   nil,   nil,   nil,  1295, 24689,  1173,  1174,
 24395,   nil, 25212,   nil, 24382,   nil, 22553,   nil, 22414,   nil,
   nil,   nil,  1827,  1262,  1263,   nil,  1224,    21,    19,     8,
    68,   nil,   nil, 25310,   nil,   nil,   nil,   nil,  1228,   nil,
   172,   nil,  1236,   nil,  1130,  1231,  1283,  1356,   nil,    38,
  1002,   nil,   nil,   nil, 27151,   nil,   nil,   nil,   nil,   nil,
  1118,   nil ]

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

clist = [
'39,338,274,278,560,39,217,348,349,222,119,353,304,266,268,433,384,539',
'345,389,305,284,284,284,283,283,283,552,555,319,319,396,745,39,309,309',
'6,696,334,128,209,6,136,136,439,445,632,351,352,133,133,495,417,418',
'339,550,503,763,267,882,848,39,400,401,402,403,319,319,319,676,494,357',
'373,373,373,612,424,119,329,424,529,270,277,279,569,424,285,285,285',
'347,347,819,126,347,488,116,981,336,492,542,545,322,885,549,1068,303',
'673,13,673,1070,115,676,13,301,949,133,39,2,876,340,343,916,930,964',
'933,39,668,39,120,1104,839,1102,952,824,825,430,960,978,679,1085,13',
'450,661,208,347,347,347,347,225,929,929,970,6,670,929,586,588,591,591',
'363,1098,404,413,6,406,281,294,295,13,370,374,463,950,590,592,739,665',
'354,362,601,676,332,341,664,386,917,931,342,361,411,934,870,573,440',
'973,385,335,977,540,979,337,346,759,416,416,1128,1129,503,896,744,39',
'283,576,577,304,720,456,712,673,673,766,1008,1069,13,929,951,953,508',
'1101,1104,702,1168,13,967,13,39,428,429,1068,398,856,1158,1054,1055',
'405,452,453,1041,487,1162,497,498,859,860,862,704,1098,631,762,449,997',
'832,1076,993,284,1171,283,283,985,888,1122,994,284,808,996,283,911,682',
'912,813,817,304,814,439,445,691,304,816,757,981,818,556,274,942,835',
'821,278,1087,39,1088,523,319,39,119,1089,526,309,39,978,530,1094,938',
'939,826,852,1,532,13,319,419,388,684,419,309,390,391,845,541,419,285',
'557,558,392,393,513,39,394,285,978,412,423,870,13,423,395,988,768,773',
'563,423,687,39,39,760,929,776,527,776,976,687,119,749,972,1077,1092',
',973,720,1095,712,1096,758,519,347,515,268,829,,431,521,,,301,1125,451',
'514,1026,301,512,,687,891,1115,,575,,915,915,687,915,893,,,511,937,13',
'784,857,496,13,579,608,978,,13,619,499,,,578,,624,1013,613,,,906,890',
'720,720,712,712,440,,,439,445,600,844,,136,894,13,841,1159,898,798,133',
',,,803,,283,914,,870,870,13,13,559,855,,654,619,,1164,,899,902,424,995',
',,676,660,,,,,424,424,,,,424,424,,1080,,,1031,1032,1033,618,,,,449,440',
'623,,955,,,,530,,440,1019,,,39,673,530,319,,283,1057,,309,1086,,319',
'1172,,,720,309,720,,736,,932,738,940,794,796,853,440,946,799,801,663',
'900,754,,440,,,,,39,748,,39,,283,,672,695,,,740,841,449,,283,,,,,1023',
'1024,449,1025,39,,1003,,17,,761,,440,17,,1086,1086,870,870,,,,,,,,,',
'701,,283,39,,449,,1145,,,39,449,,17,312,312,,,834,13,,613,,451,1029',
'431,,,613,820,,1086,780,1173,1163,136,854,,1131,781,,17,133,1047,654',
'654,789,,,1078,449,360,369,369,833,424,,,915,13,,,13,619,,,624,530,',
',1071,793,1072,,613,,319,,846,,,309,,13,,956,,319,,416,,,309,,693,,17',
',955,,955,895,,,,17,,17,903,,13,907,,419,,,,13,,,454,,720,419,419,,',
',419,419,,,,892,423,,946,1114,946,613,946,,,,423,423,,,613,423,423,',
'904,,39,,,,,39,,,1126,39,,,947,,,,,,,39,613,,,500,,795,797,,,347,800',
'802,974,962,1169,974,17,966,422,,,422,955,,,,516,422,613,,,,,133,,,654',
',,654,654,17,654,,959,,,654,654,654,,991,,,954,963,,,,,946,,946,,946',
'39,946,,,,,,,954,,,39,,,,,,,,,,,13,,,,1020,13,,,999,13,,1027,,,,946',
'956,17,,13,956,17,956,,956,312,17,654,,39,,,,,,39,,419,,,,1002,312,',
',,347,1146,1007,,,,,,17,,,654,423,613,613,,613,820,,654,,,,648,17,17',
',,,,687,,,1046,,39,954,,,13,,,,625,319,,,908,,373,13,974,,319,39,947',
',947,1049,947,795,797,802,800,,,945,,,,,,956,,956,,956,,956,,,,,,666',
'667,971,,,671,13,,,,,,13,,,,,,,,,680,,1123,1124,,654,683,,,956,,,,,1108',
',,,864,866,868,1113,,,,699,319,,1110,,,373,,,,39,,13,1121,,,,39,39,',
',,,947,,947,,947,,947,,13,,,39,1053,908,,654,767,,,,39,,,654,654,,440',
',,,,1141,17,,,,347,347,,,312,1160,947,,283,,,,312,16,,648,648,,16,,',
',,,,,39,,,,,654,948,226,654,,17,,,17,613,,226,226,226,,16,310,310,,',
'449,,,,,449,,13,980,17,982,,646,,13,13,772,,1091,,,,945,16,945,,945',
',226,226,,13,226,358,368,368,17,,,422,13,15,,17,,847,15,,,422,422,,',
',422,422,,,,,,,,,,,,,,344,,,,,15,,,,16,,,,13,226,226,226,226,16,,16',
',,,,,,,,,,,,15,,,,,,,,,,,,312,,,,,,945,,945,,945,312,945,,,,648,,,648',
'648,,648,,,,,648,648,648,,,,,,,1059,1061,,1063,1065,,1066,15,,,,913',
'945,,,,15,,15,,,,16,226,421,226,226,421,226,1097,,1099,,421,226,226',
',17,,,,,17,646,646,,17,16,,,,1116,,1117,,1118,17,,648,1035,1037,1039',
',,,,,414,427,,,,,,422,,989,,,,,,,226,226,,,,648,,,,226,,,,648,,,1005',
'1006,15,,15,,,15,,,,16,,15,,16,,1010,1011,310,16,,,17,,,1165,15,1166',
',1167,,,,17,,310,,1028,,1154,1155,1156,1157,505,,507,1170,16,509,510',
',,,,,,,,,,,,226,16,16,,,1180,,,,,,17,,,,,,17,,,,226,,1067,,648,,15,',
',,15,1179,,,,15,226,,,,,647,1133,1135,1137,1139,646,1140,,646,646,,646',
',,,,646,646,646,,,17,15,,,,,,,,,,,,,369,,,15,15,17,648,,,1052,653,,',
',648,648,,,,,,,,,,,,,,,,226,604,,,,1175,1176,1177,1178,,,,,,,,,646,',
',,1181,,,,,,648,,,648,,,,,,,,,,,,,,,,,646,,,,,,,16,646,369,,,,17,,310',
',226,,,17,17,,310,,,,,,,,,226,,,,,17,,,,674,,344,,677,17,16,,,16,,,',
',,,226,,,,,,,,,,226,647,647,,16,,,,,,,,,,,674,,,344,15,,17,,,,,,,,,',
'16,646,427,421,226,26,,16,,,26,,,421,421,653,653,,421,421,652,,,,,26',
',,15,,,15,,,26,26,26,,26,,,,,,,,782,,,,,,15,,,674,344,,,646,,,,,,,26',
'646,646,,,26,26,,,26,,,310,15,,,15,,,,15,,,310,,,15,15,,,,15,15,,,,',
',,,,,,,,646,,,646,,842,,,843,,26,,,,,26,26,26,26,26,,26,,,,647,,851',
'647,647,,647,,,,,647,647,647,,16,,,,,16,226,,,16,,,,,877,,,,,16,,,,',
',,,,,,653,,,653,653,,653,421,,,,653,653,653,,,,,,,652,652,,,,,,,,,,',
',647,26,26,26,26,26,26,26,,,905,,26,26,26,,15,,,,,15,16,,,15,26,,,,647',
',,16,,15,,,647,,,,,,,653,,,,,,,,15,,,,,,,,,26,26,,,,226,,,,26,,16,,653',
',,,16,,,,653,,,,,,26,,,,26,,,984,,26,,,15,,,651,,,,,,,,15,,,,998,,,',
',,,,,16,26,,,647,,,,,,,344,,,1044,,26,26,26,16,,,,1050,,,,15,652,,,652',
'652,15,652,,,26,,652,652,652,,,,,,,,653,,,,26,,,,,,,,,647,,,,,,,,647',
'647,,,,,,,,15,,,,,,,,,,,,,,,,,,,15,,,1105,,,,16,652,653,,,,,16,16,647',
'653,653,647,,,,,,,26,,,,,16,,226,226,650,,,652,,16,,,,,,652,,,,,,,,',
',,,,,,653,651,651,653,,,,,226,,,,,,,,,,,26,,16,,,,15,,,,26,,,15,15,',
',,29,,,,,29,,26,,,,,15,,,,,,,,29,15,26,,,26,,,,29,29,29,26,29,,,,,,652',
',,26,,,,26,,,,,,,,,649,,,,,,29,,15,,,29,29,,,29,,,26,,,26,26,,,26,,',
',,,26,26,,,,26,26,,,,,652,,,,,,,,652,652,,,,,,,,,,29,,650,650,,29,29',
'29,29,29,38,29,,,651,38,,651,651,,651,,,,,651,651,651,,,,,,652,,,652',
',,,,,,38,308,308,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,,,,,,356,372,372,372',
',,,,,,,651,,29,29,29,29,29,29,29,,,,,29,29,29,26,,,,,26,26,,,26,,29',
'649,649,651,,,,38,26,,,651,,,,,38,,38,,,,,,,,26,,,,,,,,,,29,29,,,,,',
',,29,,,,650,,,650,650,,650,,,,,650,650,650,29,,,,29,,,,,29,,26,,,,,',
',,,,,26,,,,,,,,,,,,,,,29,38,651,,,,,,,,,,,,,29,29,29,,26,,,,,,26,38',
'650,,,,26,,,,,29,,,,,,,,,,,,,,,,29,,,,,650,,,651,,,,,650,,649,651,651',
'649,649,,649,,,,26,649,649,649,,,,,,,,,38,,,,38,,,26,308,38,,,,,,,,',
',,,,,651,,308,651,,,,,,,,29,,,38,,,,,,,,,,,,,,,,38,38,,649,,,,,,,,,',
',650,,,,,,,,,,,,,,,,,,,649,,29,,,,,26,649,,,,29,,26,26,,,,,,,,,,,,29',
',,,26,,26,26,,,,,650,26,,29,,,29,,650,650,,,,29,,,,,,,,,,29,,,,29,,',
'26,,,,,,,,,,,,,26,,,,,,,,,650,,29,650,,29,29,,649,29,,,,,,29,29,,,,29',
'29,,,,,,,,,,,,,,,,38,,,,,,,,308,,,,,,,,308,,,,,,,,,,,,,649,,,,,,,,649',
'649,,38,,,38,,,,,,,,,,,,,,,,,,,,,38,,,,,,,,,,,,,,,,,649,,,649,,,,,,',
'38,,,,,,,38,,,,,,,,,,,,,,,,,,29,,,,,29,29,,,29,,,,,,,,,,29,,,,,,,,,',
',,,,,,,,29,,,,,,,,,,,,,,,,308,,,,,,,,,,,308,,,,,,,,,,,,,,,,,,,,,29,',
',,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,29,38,,,,38,29,,,,,,29',
',,38,,,,,,233,,,,,,,,,282,282,282,,,,,,,,,,327,328,,330,331,,333,,,',
',,,,,,29,,,,,282,282,,,,,,,,,,,,,29,,,,38,,,,,,,,,,,38,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,,29,,,,',
',,29,29,,,,,,,,,,,,,38,,,29,,29,29,,,,,,29,,372,,,,,38,,,,1048,,,,,282',
'426,,,432,282,,,,,432,,,29,,,,,,,,,,233,,,29,464,465,466,467,468,469',
'470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,,,,',
'486,,,,,,,282,282,,,,,,,,282,,,,372,,,282,38,282,,,282,282,,38,38,,',
',,,,,,,,,,,,,38,,,,,,,,,38,,,,,,,,,,,535,,536,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,282,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,282,,432,432,432,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,328,,,,,,,,,282,,282,,282,,,,,,,,,,,,,,,,282,,,,,,',
',,432,,,694,,,,,,,,,282,,,282,,,,,,,,,,,,,,,282,282,,,,,,,,,,282,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,282,432,282,,,,790,,,282,282,432,432,,',
',432,432,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,282,,,282',
',,,,,,,,,,,,,,,,,,282,,,,,,,,,,,,,,,,,,,,,,,,,,,282,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,282,,,,,,,,432,,,,,,,,,,,',
',432,432,432,432,,,,,,,,,,,,,,,,,,,,,,,941,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,282,,,,,,,,,,,,,,,,,,,,282,,,,,,,,,,,,,,,,,,,,282,432,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,282' ]
        racc_goto_table = arr = ::Array.new(4242, 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 = [
'62,77,81,81,102,62,32,18,18,34,106,18,10,146,32,30,65,9,97,186,58,78',
'78,78,41,41,41,100,100,73,73,186,103,62,62,62,7,11,34,16,16,7,68,68',
'45,45,36,38,38,66,66,82,23,23,78,99,84,107,44,101,12,62,18,18,18,18',
'73,73,73,223,30,62,62,62,62,31,19,106,71,19,60,46,46,46,63,19,80,80',
'80,25,25,174,8,25,45,6,219,7,47,79,79,59,12,79,119,55,85,22,85,122,4',
'223,22,54,133,66,62,2,121,80,80,163,163,192,163,62,48,62,5,140,135,139',
'137,188,188,27,13,215,15,180,22,27,149,17,25,25,25,25,21,187,187,137',
'7,149,187,200,200,200,200,20,220,7,24,7,26,53,53,53,22,64,64,37,134',
'199,199,39,50,4,22,69,223,74,76,83,95,165,165,96,104,10,165,120,105',
'81,187,108,109,134,110,134,111,112,113,78,78,180,180,84,114,102,62,41',
'115,116,10,214,32,209,85,85,117,118,123,22,187,124,131,186,138,140,141',
'139,22,142,22,62,25,25,119,5,144,122,147,148,2,25,25,137,150,180,152',
'153,127,127,127,145,220,30,9,66,165,156,157,158,78,159,41,41,121,160',
'161,162,78,31,164,41,167,60,169,170,31,10,171,45,45,60,10,175,63,219',
'176,18,81,135,48,177,81,182,62,183,32,73,62,106,184,34,62,62,215,58',
'133,188,188,190,191,1,32,22,73,22,195,30,22,62,196,197,31,34,22,80,10',
'10,198,201,7,62,202,80,215,21,21,120,22,21,203,120,204,205,32,21,45',
'62,62,208,187,200,71,200,213,45,106,30,217,12,218,,187,214,134,209,134',
'30,59,25,55,32,63,,70,55,,,54,163,70,8,174,54,6,,45,31,134,,25,,36,36',
'45,36,31,,,4,36,22,30,145,53,22,25,32,215,,22,81,53,,,44,,81,179,34',
',,31,100,214,214,209,209,81,,,45,45,16,60,,68,9,22,84,101,9,47,66,,',
',47,,41,31,,120,120,22,22,4,79,,62,81,,134,,145,145,19,36,,,223,34,',
',,,19,19,,,,19,19,,107,,,127,127,127,46,,,,66,81,46,,214,,,,58,,81,36',
',,62,85,58,73,,41,127,,62,179,,73,12,,,214,62,214,,10,,63,10,99,27,27',
'23,81,128,27,27,46,82,38,,81,,,,,62,78,,62,,41,,80,25,,,106,84,66,,41',
',,,,31,31,66,31,62,,9,,33,,106,,81,33,,179,179,120,120,,,,,,,,,,80,',
'41,62,,66,,11,,,62,66,,33,33,33,,,97,22,,34,,70,9,70,,,34,34,,179,16',
'103,179,68,77,,127,7,,33,66,100,62,62,7,,,102,66,33,33,33,146,19,,,36',
'22,,,22,81,,,81,58,,,100,80,100,,34,,73,,58,,,62,,22,,216,,73,,78,,',
'62,,70,,33,,214,,214,18,,,,33,,33,65,,22,27,,22,,,,22,,,56,,214,22,22',
',,,22,22,,,,10,21,,128,9,128,34,128,,,,21,21,,,34,21,21,,10,,62,,,,',
'62,,,9,62,,,129,,,,,,,62,34,,,56,,70,70,,,25,70,70,129,77,31,129,33',
'77,33,,,33,214,,,,56,33,34,,,,,66,,,62,,,62,62,33,62,,10,,,62,62,62',
',18,,,34,10,,,,,128,,128,,128,62,128,,,,,,,34,,,62,,,,,,,,,,,22,,,,186',
'22,,,10,22,,186,,,,128,216,33,,22,216,33,216,,216,33,33,62,,62,,,,,',
'62,,22,,,,106,33,,,,25,30,106,,,,,,33,,,62,21,34,34,,34,34,,62,,,,89',
'33,33,,,,,45,,,10,,62,34,,,22,,,,56,73,,,70,,62,22,129,,73,62,129,,129',
'62,129,70,70,70,70,,,126,,,,,,216,,216,,216,,216,,,,,,56,56,126,,,56',
'22,,,,,,22,,,,,,,,,56,,18,18,,62,56,,,216,,,,,10,,,,212,212,212,10,',
',,56,73,,32,,,62,,,,62,,22,10,,,,62,62,,,,,129,,129,,129,,129,,22,,',
'62,22,70,,62,56,,,,62,,,62,62,,81,,,,,34,33,,,,25,25,,,33,10,129,,41',
',,,33,29,,89,89,,29,,,,,,,,62,,,,,62,132,29,62,,33,,,33,34,,29,29,29',
',29,29,29,,,66,,,,,66,,22,132,33,132,,87,,22,22,33,,126,,,,126,29,126',
',126,,29,29,,22,29,29,29,29,33,,,33,22,28,,33,,56,28,,,33,33,,,,33,33',
',,,,,,,,,,,,,75,,,,,28,,,,29,,,,22,29,29,29,29,29,,29,,,,,,,,,,,,,28',
',,,,,,,,,,,33,,,,,,126,,126,,126,33,126,,,,89,,,89,89,,89,,,,,89,89',
'89,,,,,,,212,212,,212,212,,212,28,,,,56,126,,,,28,,28,,,,29,29,29,29',
'29,29,29,132,,132,,29,29,29,,33,,,,,33,87,87,,33,29,,,,132,,132,,132',
'33,,89,130,130,130,,,,,,75,75,,,,,,33,,56,,,,,,,29,29,,,,89,,,,29,,',
',89,,,56,56,28,,28,,,28,,,,29,,28,,29,,56,56,29,29,,,33,,,132,28,132',
',132,,,,33,,29,,56,,212,212,212,212,75,,75,132,29,75,75,,,,,,,,,,,,',
'29,29,29,,,132,,,,,,33,,,,,,33,,,,29,,56,,89,,28,,,,28,212,,,,28,29',
',,,,88,130,130,130,130,87,130,,87,87,,87,,,,,87,87,87,,,33,28,,,,,,',
',,,,,,33,,,28,28,33,89,,,33,94,,,,89,89,,,,,,,,,,,,,,,,29,75,,,,130',
'130,130,130,,,,,,,,,87,,,,130,,,,,,89,,,89,,,,,,,,,,,,,,,,,87,,,,,,',
'29,87,33,,,,33,,29,,29,,,33,33,,29,,,,,,,,,29,,,,,33,,,,75,,75,,75,33',
'29,,,29,,,,,,,29,,,,,,,,,,29,88,88,,29,,,,,,,,,,,75,,,75,28,,33,,,,',
',,,,,29,87,75,29,29,49,,29,,,49,,,29,29,94,94,,29,29,93,,,,,49,,,28',
',,28,,,49,49,49,,49,,,,,,,,75,,,,,,28,,,75,75,,,87,,,,,,,49,87,87,,',
'49,49,,,49,,,29,28,,,28,,,,28,,,29,,,28,28,,,,28,28,,,,,,,,,,,,,87,',
',87,,75,,,75,,49,,,,,49,49,49,49,49,,49,,,,88,,75,88,88,,88,,,,,88,88',
'88,,29,,,,,29,29,,,29,,,,,75,,,,,29,,,,,,,,,,,94,,,94,94,,94,29,,,,94',
'94,94,,,,,,,93,93,,,,,,,,,,,,88,49,49,49,49,49,49,49,,,75,,49,49,49',
',28,,,,,28,29,,,28,49,,,,88,,,29,,28,,,88,,,,,,,94,,,,,,,,28,,,,,,,',
',49,49,,,,29,,,,49,,29,,94,,,,29,,,,94,,,,,,49,,,,49,,,75,,49,,,28,',
',92,,,,,,,,28,,,,75,,,,,,,,,29,49,,,88,,,,,,,75,,,29,,49,49,49,29,,',
',29,,,,28,93,,,93,93,28,93,,,49,,93,93,93,,,,,,,,94,,,,49,,,,,,,,,88',
',,,,,,,88,88,,,,,,,,28,,,,,,,,,,,,,,,,,,,28,,,29,,,,29,93,94,,,,,29',
'29,88,94,94,88,,,,,,,49,,,,,29,,29,29,91,,,93,,29,,,,,,93,,,,,,,,,,',
',,,,94,92,92,94,,,,,29,,,,,,,,,,,49,,29,,,,28,,,,49,,,28,28,,,,52,,',
',,52,,49,,,,,28,,,,,,,,52,28,49,,,49,,,,52,52,52,49,52,,,,,,93,,,49',
',,,49,,,,,,,,,90,,,,,,52,,28,,,52,52,,,52,,,49,,,49,49,,,49,,,,,,49',
'49,,,,49,49,,,,,93,,,,,,,,93,93,,,,,,,,,,52,,91,91,,52,52,52,52,52,61',
'52,,,92,61,,92,92,,92,,,,,92,92,92,,,,,,93,,,93,,,,,,,61,61,61,,,,,',
',,,,,,,,,,,,,,,,,,,,61,,,,,,,,,,61,61,61,61,,,,,,,,92,,52,52,52,52,52',
'52,52,,,,,52,52,52,49,,,,,49,49,,,49,,52,90,90,92,,,,61,49,,,92,,,,',
'61,,61,,,,,,,,49,,,,,,,,,,52,52,,,,,,,,52,,,,91,,,91,91,,91,,,,,91,91',
'91,52,,,,52,,,,,52,,49,,,,,,,,,,,49,,,,,,,,,,,,,,,52,61,92,,,,,,,,,',
',,,52,52,52,,49,,,,,,49,61,91,,,,49,,,,,52,,,,,,,,,,,,,,,,52,,,,,91',
',,92,,,,,91,,90,92,92,90,90,,90,,,,49,90,90,90,,,,,,,,,61,,,,61,,,49',
'61,61,,,,,,,,,,,,,,92,,61,92,,,,,,,,52,,,61,,,,,,,,,,,,,,,,61,61,,90',
',,,,,,,,,,91,,,,,,,,,,,,,,,,,,,90,,52,,,,,49,90,,,,52,,49,49,,,,,,,',
',,,,52,,,,49,,49,49,,,,,91,49,,52,,,52,,91,91,,,,52,,,,,,,,,,52,,,,52',
',,49,,,,,,,,,,,,,49,,,,,,,,,91,,52,91,,52,52,,90,52,,,,,,52,52,,,,52',
'52,,,,,,,,,,,,,,,,61,,,,,,,,61,,,,,,,,61,,,,,,,,,,,,,90,,,,,,,,90,90',
',61,,,61,,,,,,,,,,,,,,,,,,,,,61,,,,,,,,,,,,,,,,,90,,,90,,,,,,,61,,,',
',,,61,,,,,,,,,,,,,,,,,,52,,,,,52,52,,,52,,,,,,,,,,52,,,,,,,,,,,,,,,',
',,52,,,,,,,,,,,,,,,,61,,,,,,,,,,,61,,,,,,,,,,,,,,,,,,,,,52,,,,,,,,,',
',52,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,61,,,,52,61,,,,61,52,,,,,,52,,,61,',
',,,,35,,,,,,,,,35,35,35,,,,,,,,,,35,35,,35,35,,35,,,,,,,,,,52,,,,,35',
'35,,,,,,,,,,,,,52,,,,61,,,,,,,,,,,61,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,61,,,,,,61,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,,,52,52,,,,,,,,,,',
',,61,,,52,,52,52,,,,,,52,,61,,,,,61,,,,61,,,,,35,35,,,35,35,,,,,35,',
',52,,,,,,,,,,35,,,52,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,,,,61,,,35,61,35,,,35',
'35,,61,61,,,,,,,,,,,,,,,,61,,,,,,,,,61,,,,,,,,,,,35,,35,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,61,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,35,35,35,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,35,,35,,35,,,,,,,,,,,,,,,,35,,,,,,',
',,35,,,35,,,,,,,,,35,,,35,,,,,,,,,,,,,,,35,35,,,,,,,,,,35,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,35,35,35,,,,35,,,35,35,35,35,,,,35,35,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,35,,,,,,,,,,,,,,,,',
',,35,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,35,,,,,,,,,,,,,35,35,35,35,,,,,,,',
',,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,',
',,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,35,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35' ]
        racc_goto_check = arr = ::Array.new(4242, 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,   315,   117,   nil,   107,   123,    92,    36,    85,  -318,
   -21,  -501,  -636,  -712,   nil,  -374,    31,   134,   -59,  -136,
    88,   128,   107,  -159,   -49,    23,    36,   -80,  1188,  1109,
  -201,  -358,   -10,   580,   -10,  3132,  -417,   -66,   -21,  -381,
   nil,    -5,   nil,   nil,    34,  -173,    55,  -172,  -371,  1717,
  -315,   nil,  2247,   136,    80,    72,   497,   nil,   -14,    66,
  -243,  2373,     0,  -282,    97,   -58,    41,   nil,    34,  -231,
   163,    35,   nil,    -5,   135,  1153,   120,   -61,    -8,  -240,
    57,   -24,  -220,  -305,  -229,  -396,   nil,   696,  1038,   467,
  1839,  1721,  1567,  1269,  1083,   110,   124,   -46,   nil,  -291,
  -321,  -677,  -350,  -527,   117,  -178,     7,  -520,   121,   136,
  -138,   139,   136,  -371,  -553,  -162,  -171,  -358,  -682,  -882,
  -530,  -603,  -878,  -764,  -613,   nil,   135,  -453,  -298,   -72,
   408,  -612,   290,  -724,  -666,  -539,   nil,  -706,  -814,  -911,
  -913,  -321,  -623,   nil,  -462,  -296,    -9,  -726,  -726,  -345,
   -17,   nil,   -25,   -25,   nil,   nil,  -401,  -737,  -625,  -895,
  -477,  -802,  -617,  -692,  -614,  -628,   nil,  -533,   nil,  -532,
  -358,  -355,   nil,   nil,  -548,  -351,  -349,  -345,   nil,  -496,
  -878,   nil,  -721,  -719,  -714,   nil,   -63,  -664,  -511,   nil,
  -342,  -383,  -729,   nil,   nil,   240,   239,   239,   245,  -219,
  -235,   245,   247,   254,  -237,  -237,   nil,   nil,  -221,  -334,
   nil,   nil,   321,  -505,  -336,  -726,  -153,  -496,  -666,  -769,
  -876,   nil,   nil,  -435 ]

racc_goto_default = [
   nil,   nil,   nil,     3,   nil,     4,   355,   299,   nil,   nil,
   538,   nil,   883,   nil,   296,   297,   nil,   nil,   nil,    11,
    12,    18,   231,   nil,   nil,    14,   nil,   420,   232,   326,
   nil,   nil,   571,   230,   455,    21,  1012,   nil,   nil,   nil,
   350,    22,    23,    24,   nil,   690,   nil,   nil,   nil,   316,
   nil,    25,   313,   434,    32,   nil,   nil,    34,    37,    36,
   nil,   227,   228,   367,   nil,   135,   442,   134,    79,   nil,
   425,    95,    46,    49,   264,   288,   nil,   849,   435,   nil,
   436,   447,   nil,   620,   501,   286,   272,    50,    51,    52,
    53,    54,    55,    56,    57,    58,   nil,   273,    64,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   553,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   872,
   719,   nil,   873,   874,  1093,   944,   706,   nil,   707,   708,
   nil,   nil,   709,   nil,   711,   nil,   837,   nil,   nil,   nil,
   717,   nil,   nil,   551,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   446,   nil,   nil,   669,   662,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   919,   nil,   633,   642,   634,   635,
   nil,   nil,   636,   637,   nil,   nil,   nil,   nil,   918,   920,
   nil,   922,   923,   924,   925,   926,   nil,   728,   641,   643,
   nil,   nil,   nil,    78,    80,    81,   nil,   nil,   nil,   nil,
   581,   nil,   nil,   nil,   nil,   nil,    91,    92,   nil,   975,
   765,   705,   nil,   710,   983,   722,   724,   725,   957,   729,
   958,   732,   735,   291 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 148, :_reduce_none,
  2, 149, :_reduce_2,
  0, 150, :_reduce_3,
  1, 150, :_reduce_4,
  3, 150, :_reduce_5,
  2, 150, :_reduce_6,
  1, 152, :_reduce_none,
  2, 152, :_reduce_8,
  3, 155, :_reduce_9,
  4, 156, :_reduce_10,
  2, 157, :_reduce_11,
  0, 161, :_reduce_12,
  1, 161, :_reduce_13,
  3, 161, :_reduce_14,
  2, 161, :_reduce_15,
  1, 162, :_reduce_none,
  2, 162, :_reduce_17,
  0, 173, :_reduce_18,
  4, 154, :_reduce_19,
  3, 154, :_reduce_20,
  3, 154, :_reduce_21,
  3, 154, :_reduce_22,
  2, 154, :_reduce_23,
  3, 154, :_reduce_24,
  3, 154, :_reduce_25,
  3, 154, :_reduce_26,
  3, 154, :_reduce_27,
  3, 154, :_reduce_28,
  4, 154, :_reduce_29,
  1, 154, :_reduce_none,
  3, 154, :_reduce_31,
  3, 154, :_reduce_32,
  5, 154, :_reduce_33,
  3, 154, :_reduce_34,
  1, 154, :_reduce_none,
  3, 166, :_reduce_36,
  3, 166, :_reduce_37,
  6, 166, :_reduce_38,
  5, 166, :_reduce_39,
  5, 166, :_reduce_40,
  5, 166, :_reduce_41,
  5, 166, :_reduce_42,
  3, 166, :_reduce_43,
  1, 174, :_reduce_none,
  3, 174, :_reduce_45,
  1, 174, :_reduce_none,
  1, 172, :_reduce_none,
  3, 172, :_reduce_48,
  3, 172, :_reduce_49,
  3, 172, :_reduce_50,
  2, 172, :_reduce_51,
  0, 184, :_reduce_52,
  4, 172, :_reduce_53,
  1, 172, :_reduce_none,
  1, 165, :_reduce_none,
  0, 187, :_reduce_56,
  3, 185, :_reduce_57,
  1, 168, :_reduce_none,
  1, 168, :_reduce_none,
  1, 189, :_reduce_none,
  4, 189, :_reduce_61,
  0, 197, :_reduce_62,
  4, 194, :_reduce_63,
  1, 196, :_reduce_none,
  2, 188, :_reduce_65,
  3, 188, :_reduce_66,
  4, 188, :_reduce_67,
  5, 188, :_reduce_68,
  4, 188, :_reduce_69,
  5, 188, :_reduce_70,
  2, 188, :_reduce_71,
  2, 188, :_reduce_72,
  2, 188, :_reduce_73,
  2, 188, :_reduce_74,
  2, 188, :_reduce_75,
  1, 167, :_reduce_76,
  3, 167, :_reduce_77,
  1, 202, :_reduce_78,
  3, 202, :_reduce_79,
  1, 201, :_reduce_none,
  2, 201, :_reduce_81,
  3, 201, :_reduce_82,
  5, 201, :_reduce_83,
  2, 201, :_reduce_84,
  4, 201, :_reduce_85,
  2, 201, :_reduce_86,
  4, 201, :_reduce_87,
  1, 201, :_reduce_88,
  3, 201, :_reduce_89,
  1, 205, :_reduce_none,
  3, 205, :_reduce_91,
  2, 204, :_reduce_92,
  3, 204, :_reduce_93,
  1, 207, :_reduce_94,
  3, 207, :_reduce_95,
  1, 206, :_reduce_96,
  1, 206, :_reduce_97,
  4, 206, :_reduce_98,
  3, 206, :_reduce_99,
  3, 206, :_reduce_100,
  3, 206, :_reduce_101,
  3, 206, :_reduce_102,
  2, 206, :_reduce_103,
  1, 206, :_reduce_104,
  1, 169, :_reduce_105,
  1, 169, :_reduce_106,
  4, 169, :_reduce_107,
  3, 169, :_reduce_108,
  3, 169, :_reduce_109,
  3, 169, :_reduce_110,
  3, 169, :_reduce_111,
  2, 169, :_reduce_112,
  1, 169, :_reduce_113,
  1, 210, :_reduce_114,
  1, 210, :_reduce_none,
  2, 211, :_reduce_116,
  1, 211, :_reduce_117,
  3, 211, :_reduce_118,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 212, :_reduce_none,
  1, 163, :_reduce_124,
  1, 163, :_reduce_none,
  1, 164, :_reduce_126,
  0, 216, :_reduce_127,
  4, 164, :_reduce_128,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 213, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  1, 214, :_reduce_none,
  3, 182, :_reduce_200,
  3, 182, :_reduce_201,
  6, 182, :_reduce_202,
  5, 182, :_reduce_203,
  5, 182, :_reduce_204,
  5, 182, :_reduce_205,
  5, 182, :_reduce_206,
  4, 182, :_reduce_207,
  3, 182, :_reduce_208,
  3, 182, :_reduce_209,
  3, 182, :_reduce_210,
  2, 182, :_reduce_211,
  2, 182, :_reduce_212,
  2, 182, :_reduce_213,
  2, 182, :_reduce_214,
  3, 182, :_reduce_215,
  3, 182, :_reduce_216,
  3, 182, :_reduce_217,
  3, 182, :_reduce_218,
  3, 182, :_reduce_219,
  3, 182, :_reduce_220,
  4, 182, :_reduce_221,
  2, 182, :_reduce_222,
  2, 182, :_reduce_223,
  3, 182, :_reduce_224,
  3, 182, :_reduce_225,
  3, 182, :_reduce_226,
  3, 182, :_reduce_227,
  1, 182, :_reduce_none,
  3, 182, :_reduce_229,
  3, 182, :_reduce_230,
  3, 182, :_reduce_231,
  3, 182, :_reduce_232,
  3, 182, :_reduce_233,
  2, 182, :_reduce_234,
  2, 182, :_reduce_235,
  3, 182, :_reduce_236,
  3, 182, :_reduce_237,
  3, 182, :_reduce_238,
  3, 182, :_reduce_239,
  3, 182, :_reduce_240,
  6, 182, :_reduce_241,
  1, 182, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  1, 221, :_reduce_none,
  3, 219, :_reduce_247,
  3, 219, :_reduce_248,
  1, 222, :_reduce_none,
  1, 223, :_reduce_none,
  2, 223, :_reduce_none,
  4, 223, :_reduce_252,
  2, 223, :_reduce_253,
  1, 217, :_reduce_none,
  3, 217, :_reduce_255,
  3, 228, :_reduce_256,
  3, 228, :_reduce_257,
  0, 230, :_reduce_258,
  1, 230, :_reduce_none,
  0, 177, :_reduce_260,
  1, 177, :_reduce_none,
  2, 177, :_reduce_none,
  4, 177, :_reduce_263,
  2, 177, :_reduce_264,
  1, 200, :_reduce_265,
  2, 200, :_reduce_266,
  2, 200, :_reduce_267,
  4, 200, :_reduce_268,
  1, 200, :_reduce_269,
  0, 233, :_reduce_270,
  2, 193, :_reduce_271,
  2, 232, :_reduce_272,
  2, 231, :_reduce_273,
  0, 231, :_reduce_274,
  1, 225, :_reduce_275,
  2, 225, :_reduce_276,
  3, 225, :_reduce_277,
  4, 225, :_reduce_278,
  1, 171, :_reduce_279,
  1, 171, :_reduce_none,
  3, 170, :_reduce_281,
  4, 170, :_reduce_282,
  2, 170, :_reduce_283,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_none,
  1, 220, :_reduce_294,
  0, 256, :_reduce_295,
  4, 220, :_reduce_296,
  0, 257, :_reduce_297,
  4, 220, :_reduce_298,
  0, 258, :_reduce_299,
  4, 220, :_reduce_300,
  3, 220, :_reduce_301,
  3, 220, :_reduce_302,
  2, 220, :_reduce_303,
  3, 220, :_reduce_304,
  3, 220, :_reduce_305,
  1, 220, :_reduce_306,
  4, 220, :_reduce_307,
  3, 220, :_reduce_308,
  1, 220, :_reduce_309,
  5, 220, :_reduce_310,
  4, 220, :_reduce_311,
  3, 220, :_reduce_312,
  2, 220, :_reduce_313,
  1, 220, :_reduce_none,
  2, 220, :_reduce_315,
  0, 259, :_reduce_316,
  3, 220, :_reduce_317,
  6, 220, :_reduce_318,
  6, 220, :_reduce_319,
  4, 220, :_reduce_320,
  4, 220, :_reduce_321,
  5, 220, :_reduce_322,
  4, 220, :_reduce_323,
  5, 220, :_reduce_324,
  6, 220, :_reduce_325,
  0, 260, :_reduce_326,
  6, 220, :_reduce_327,
  0, 261, :_reduce_328,
  7, 220, :_reduce_329,
  0, 262, :_reduce_330,
  5, 220, :_reduce_331,
  0, 263, :_reduce_332,
  6, 220, :_reduce_333,
  0, 264, :_reduce_334,
  0, 265, :_reduce_335,
  9, 220, :_reduce_336,
  1, 220, :_reduce_337,
  1, 220, :_reduce_338,
  1, 220, :_reduce_339,
  1, 220, :_reduce_340,
  1, 176, :_reduce_none,
  1, 199, :_reduce_342,
  1, 247, :_reduce_none,
  1, 247, :_reduce_none,
  2, 247, :_reduce_345,
  1, 186, :_reduce_none,
  1, 186, :_reduce_none,
  1, 248, :_reduce_none,
  5, 248, :_reduce_349,
  1, 159, :_reduce_none,
  2, 159, :_reduce_351,
  1, 251, :_reduce_none,
  1, 251, :_reduce_none,
  1, 266, :_reduce_354,
  3, 266, :_reduce_355,
  1, 269, :_reduce_356,
  3, 269, :_reduce_357,
  1, 268, :_reduce_none,
  3, 268, :_reduce_359,
  5, 268, :_reduce_360,
  1, 268, :_reduce_361,
  3, 268, :_reduce_362,
  2, 270, :_reduce_363,
  1, 270, :_reduce_364,
  4, 271, :_reduce_365,
  2, 271, :_reduce_366,
  2, 271, :_reduce_367,
  2, 271, :_reduce_368,
  1, 271, :_reduce_369,
  2, 277, :_reduce_370,
  0, 277, :_reduce_371,
  6, 278, :_reduce_372,
  8, 278, :_reduce_373,
  4, 278, :_reduce_374,
  6, 278, :_reduce_375,
  4, 278, :_reduce_376,
  2, 278, :_reduce_none,
  6, 278, :_reduce_378,
  2, 278, :_reduce_379,
  4, 278, :_reduce_380,
  6, 278, :_reduce_381,
  2, 278, :_reduce_382,
  4, 278, :_reduce_383,
  2, 278, :_reduce_384,
  4, 278, :_reduce_385,
  1, 278, :_reduce_none,
  0, 282, :_reduce_387,
  1, 282, :_reduce_388,
  3, 283, :_reduce_389,
  4, 283, :_reduce_390,
  1, 284, :_reduce_391,
  4, 284, :_reduce_392,
  1, 285, :_reduce_393,
  3, 285, :_reduce_394,
  1, 286, :_reduce_395,
  1, 286, :_reduce_none,
  0, 290, :_reduce_397,
  0, 291, :_reduce_398,
  4, 246, :_reduce_399,
  4, 288, :_reduce_400,
  1, 288, :_reduce_401,
  0, 294, :_reduce_402,
  4, 289, :_reduce_403,
  0, 295, :_reduce_404,
  4, 289, :_reduce_405,
  0, 297, :_reduce_406,
  4, 293, :_reduce_407,
  2, 190, :_reduce_408,
  4, 190, :_reduce_409,
  5, 190, :_reduce_410,
  5, 190, :_reduce_411,
  2, 245, :_reduce_412,
  4, 245, :_reduce_413,
  4, 245, :_reduce_414,
  3, 245, :_reduce_415,
  3, 245, :_reduce_416,
  3, 245, :_reduce_417,
  2, 245, :_reduce_418,
  1, 245, :_reduce_419,
  4, 245, :_reduce_420,
  0, 299, :_reduce_421,
  4, 244, :_reduce_422,
  0, 300, :_reduce_423,
  4, 244, :_reduce_424,
  0, 301, :_reduce_425,
  3, 195, :_reduce_426,
  0, 302, :_reduce_427,
  0, 303, :_reduce_428,
  4, 296, :_reduce_429,
  5, 249, :_reduce_430,
  1, 304, :_reduce_431,
  1, 304, :_reduce_none,
  0, 307, :_reduce_433,
  0, 308, :_reduce_434,
  7, 250, :_reduce_435,
  1, 306, :_reduce_436,
  1, 306, :_reduce_none,
  1, 305, :_reduce_438,
  3, 305, :_reduce_439,
  3, 305, :_reduce_440,
  1, 309, :_reduce_none,
  2, 309, :_reduce_442,
  3, 309, :_reduce_443,
  1, 309, :_reduce_444,
  1, 309, :_reduce_445,
  1, 183, :_reduce_none,
  3, 313, :_reduce_447,
  1, 313, :_reduce_none,
  3, 315, :_reduce_449,
  1, 315, :_reduce_none,
  1, 317, :_reduce_451,
  1, 318, :_reduce_452,
  1, 316, :_reduce_none,
  4, 316, :_reduce_454,
  4, 316, :_reduce_455,
  3, 316, :_reduce_456,
  4, 316, :_reduce_457,
  4, 316, :_reduce_458,
  3, 316, :_reduce_459,
  0, 322, :_reduce_460,
  4, 316, :_reduce_461,
  2, 316, :_reduce_462,
  0, 323, :_reduce_463,
  4, 316, :_reduce_464,
  2, 316, :_reduce_465,
  0, 324, :_reduce_466,
  4, 316, :_reduce_467,
  1, 310, :_reduce_468,
  1, 310, :_reduce_469,
  2, 310, :_reduce_470,
  3, 310, :_reduce_471,
  5, 310, :_reduce_472,
  2, 310, :_reduce_473,
  4, 310, :_reduce_474,
  1, 310, :_reduce_none,
  2, 325, :_reduce_476,
  3, 325, :_reduce_477,
  2, 311, :_reduce_478,
  4, 311, :_reduce_479,
  1, 311, :_reduce_480,
  3, 311, :_reduce_481,
  1, 327, :_reduce_482,
  3, 327, :_reduce_483,
  1, 326, :_reduce_none,
  3, 312, :_reduce_485,
  1, 312, :_reduce_486,
  2, 312, :_reduce_487,
  1, 312, :_reduce_488,
  3, 312, :_reduce_489,
  1, 312, :_reduce_490,
  1, 328, :_reduce_491,
  3, 328, :_reduce_492,
  2, 331, :_reduce_493,
  1, 331, :_reduce_494,
  1, 332, :_reduce_495,
  3, 332, :_reduce_496,
  2, 329, :_reduce_497,
  1, 329, :_reduce_498,
  2, 330, :_reduce_499,
  1, 319, :_reduce_none,
  3, 319, :_reduce_501,
  3, 319, :_reduce_502,
  2, 319, :_reduce_503,
  2, 319, :_reduce_504,
  1, 319, :_reduce_none,
  1, 319, :_reduce_none,
  1, 319, :_reduce_none,
  2, 319, :_reduce_508,
  2, 319, :_reduce_509,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_none,
  1, 335, :_reduce_518,
  0, 337, :_reduce_519,
  3, 335, :_reduce_520,
  1, 314, :_reduce_521,
  2, 336, :_reduce_522,
  2, 320, :_reduce_523,
  3, 320, :_reduce_524,
  1, 320, :_reduce_525,
  6, 158, :_reduce_526,
  0, 158, :_reduce_527,
  1, 338, :_reduce_528,
  1, 338, :_reduce_none,
  1, 338, :_reduce_none,
  2, 339, :_reduce_531,
  1, 339, :_reduce_none,
  2, 160, :_reduce_533,
  1, 160, :_reduce_none,
  1, 234, :_reduce_none,
  1, 234, :_reduce_none,
  1, 235, :_reduce_537,
  1, 341, :_reduce_538,
  2, 341, :_reduce_539,
  3, 342, :_reduce_540,
  1, 342, :_reduce_541,
  1, 342, :_reduce_542,
  3, 236, :_reduce_543,
  4, 237, :_reduce_544,
  3, 238, :_reduce_545,
  0, 345, :_reduce_546,
  3, 345, :_reduce_547,
  1, 346, :_reduce_548,
  2, 346, :_reduce_549,
  3, 240, :_reduce_550,
  0, 348, :_reduce_551,
  3, 348, :_reduce_552,
  3, 239, :_reduce_553,
  3, 241, :_reduce_554,
  0, 349, :_reduce_555,
  3, 349, :_reduce_556,
  0, 350, :_reduce_557,
  3, 350, :_reduce_558,
  0, 333, :_reduce_559,
  2, 333, :_reduce_560,
  0, 343, :_reduce_561,
  2, 343, :_reduce_562,
  0, 344, :_reduce_563,
  2, 344, :_reduce_564,
  1, 347, :_reduce_565,
  2, 347, :_reduce_566,
  0, 352, :_reduce_567,
  4, 347, :_reduce_568,
  1, 351, :_reduce_569,
  1, 351, :_reduce_570,
  1, 351, :_reduce_571,
  1, 351, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 353, :_reduce_575,
  3, 354, :_reduce_576,
  1, 340, :_reduce_577,
  2, 340, :_reduce_578,
  1, 218, :_reduce_579,
  1, 218, :_reduce_580,
  1, 218, :_reduce_581,
  1, 218, :_reduce_582,
  1, 208, :_reduce_583,
  1, 208, :_reduce_584,
  1, 208, :_reduce_585,
  1, 208, :_reduce_586,
  1, 208, :_reduce_587,
  1, 209, :_reduce_588,
  1, 209, :_reduce_589,
  1, 209, :_reduce_590,
  1, 209, :_reduce_591,
  1, 209, :_reduce_592,
  1, 209, :_reduce_593,
  1, 209, :_reduce_594,
  1, 242, :_reduce_595,
  1, 242, :_reduce_596,
  1, 175, :_reduce_597,
  1, 175, :_reduce_598,
  1, 180, :_reduce_599,
  1, 180, :_reduce_600,
  0, 355, :_reduce_601,
  4, 252, :_reduce_602,
  0, 252, :_reduce_603,
  3, 254, :_reduce_604,
  3, 254, :_reduce_605,
  0, 357, :_reduce_606,
  3, 254, :_reduce_607,
  4, 356, :_reduce_608,
  2, 356, :_reduce_609,
  2, 356, :_reduce_610,
  2, 356, :_reduce_611,
  1, 356, :_reduce_612,
  2, 359, :_reduce_613,
  0, 359, :_reduce_614,
  6, 292, :_reduce_615,
  8, 292, :_reduce_616,
  4, 292, :_reduce_617,
  6, 292, :_reduce_618,
  4, 292, :_reduce_619,
  6, 292, :_reduce_620,
  2, 292, :_reduce_621,
  4, 292, :_reduce_622,
  6, 292, :_reduce_623,
  2, 292, :_reduce_624,
  4, 292, :_reduce_625,
  2, 292, :_reduce_626,
  4, 292, :_reduce_627,
  1, 292, :_reduce_628,
  0, 292, :_reduce_629,
  1, 229, :_reduce_630,
  1, 287, :_reduce_631,
  1, 287, :_reduce_632,
  1, 287, :_reduce_633,
  1, 287, :_reduce_634,
  1, 267, :_reduce_none,
  1, 267, :_reduce_636,
  1, 361, :_reduce_637,
  1, 362, :_reduce_638,
  3, 362, :_reduce_639,
  1, 279, :_reduce_640,
  3, 279, :_reduce_641,
  1, 363, :_reduce_642,
  2, 364, :_reduce_643,
  1, 364, :_reduce_644,
  2, 365, :_reduce_645,
  1, 365, :_reduce_646,
  1, 272, :_reduce_647,
  3, 272, :_reduce_648,
  1, 358, :_reduce_649,
  3, 358, :_reduce_650,
  1, 334, :_reduce_none,
  1, 334, :_reduce_none,
  2, 275, :_reduce_653,
  2, 273, :_reduce_654,
  1, 273, :_reduce_655,
  3, 366, :_reduce_656,
  3, 367, :_reduce_657,
  1, 280, :_reduce_658,
  3, 280, :_reduce_659,
  1, 360, :_reduce_660,
  3, 360, :_reduce_661,
  1, 368, :_reduce_none,
  1, 368, :_reduce_none,
  2, 281, :_reduce_664,
  1, 281, :_reduce_665,
  1, 369, :_reduce_none,
  1, 369, :_reduce_none,
  2, 276, :_reduce_668,
  2, 274, :_reduce_669,
  0, 274, :_reduce_670,
  1, 255, :_reduce_none,
  3, 255, :_reduce_672,
  0, 243, :_reduce_673,
  2, 243, :_reduce_none,
  1, 227, :_reduce_675,
  3, 227, :_reduce_676,
  3, 370, :_reduce_677,
  2, 370, :_reduce_678,
  4, 370, :_reduce_679,
  2, 370, :_reduce_680,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 198, :_reduce_none,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 192, :_reduce_none,
  1, 298, :_reduce_none,
  1, 298, :_reduce_none,
  1, 298, :_reduce_none,
  1, 191, :_reduce_none,
  1, 191, :_reduce_none,
  1, 179, :_reduce_693,
  1, 179, :_reduce_694,
  0, 151, :_reduce_none,
  1, 151, :_reduce_none,
  0, 181, :_reduce_none,
  1, 181, :_reduce_none,
  2, 203, :_reduce_699,
  2, 178, :_reduce_700,
  2, 321, :_reduce_701,
  0, 226, :_reduce_none,
  1, 226, :_reduce_none,
  1, 226, :_reduce_none,
  1, 253, :_reduce_705,
  1, 253, :_reduce_none,
  1, 153, :_reduce_none,
  2, 153, :_reduce_none,
  0, 224, :_reduce_709 ]

racc_reduce_n = 710

racc_shift_n = 1182

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

racc_nt_base = 147

racc_use_result_var = true

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

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

Racc_debug_parser = false

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

# reduce 0 omitted

# 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])
                    
    result
end

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

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

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

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

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

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

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

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

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

# reduce 16 omitted

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

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

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

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

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

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

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

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

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

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

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

def _reduce_28(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_29(val, _values, result)
                      result = @builder.postexe(val[0], val[1], val[2], val[3])
                    
    result
end

# reduce 30 omitted

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

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

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

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

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

# reduce 35 omitted

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

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

def _reduce_38(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_39(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

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

def _reduce_41(val, _values, result)
                      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_42(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

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

# reduce 44 omitted

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

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

# reduce 46 omitted

# reduce 47 omitted

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

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

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

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

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

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

def _reduce_53(val, _values, result)
                      @lexer.in_kwarg = val[2]
                      result = @builder.in_match(val[0], val[1], val[3])
                    
    result
end

# reduce 54 omitted

# reduce 55 omitted

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

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

# reduce 58 omitted

# reduce 59 omitted

# reduce 60 omitted

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

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

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

# reduce 64 omitted

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

def _reduce_66(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_67(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)
                    
    result
end

def _reduce_68(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_69(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)
                    
    result
end

def _reduce_70(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_71(val, _values, result)
                      result = @builder.keyword_cmd(:super, val[0],
                                  nil, val[1], nil)
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 80 omitted

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

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

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

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

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

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

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

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

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

# reduce 90 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 115 omitted

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

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

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

# reduce 119 omitted

# reduce 120 omitted

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

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

# reduce 125 omitted

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

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

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

# 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

# reduce 195 omitted

# reduce 196 omitted

# reduce 197 omitted

# reduce 198 omitted

# reduce 199 omitted

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

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

def _reduce_202(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_203(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])
                    
    result
end

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

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

def _reduce_206(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_207(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_208(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])
                    
    result
end

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

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

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

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

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

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

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

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

def _reduce_217(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])
                    
    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.unary_op(val[0],
                                  @builder.binary_op(
                                    val[1], val[2], val[3]))
                    
    result
end

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

def _reduce_223(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])
                    
    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

# reduce 228 omitted

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

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

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

def _reduce_232(val, _values, result)
                      result = @builder.match_op(val[0], val[1], val[2])
                    
    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.not_op(val[0], nil, val[1], nil)
                    
    result
end

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

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

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

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

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

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

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

# reduce 242 omitted

# reduce 243 omitted

# reduce 244 omitted

# reduce 245 omitted

# reduce 246 omitted

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

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

# reduce 249 omitted

# reduce 250 omitted

# reduce 251 omitted

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

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

# reduce 254 omitted

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

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

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

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

# reduce 259 omitted

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

# reduce 261 omitted

# reduce 262 omitted

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

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

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

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

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

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

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

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

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

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

                      result = val[1]
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 280 omitted

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

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

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

# reduce 284 omitted

# reduce 285 omitted

# reduce 286 omitted

# reduce 287 omitted

# reduce 288 omitted

# reduce 289 omitted

# reduce 290 omitted

# reduce 291 omitted

# reduce 292 omitted

# reduce 293 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_313(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 314 omitted

def _reduce_315(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_316(val, _values, result)
                      @context.push(:lambda)
                    
    result
end

def _reduce_317(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_318(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_319(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_320(val, _values, result)
                      result = @builder.loop(:while, val[0], *val[1], val[2], val[3])
                    
    result
end

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

def _reduce_322(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_323(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_324(val, _values, result)
                      *in_bodies, (else_t, else_body) = *val[3]

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_332(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                      @context.push(:def)
                      @current_arg_stack.push(nil)
                    
    result
end

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

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

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

def _reduce_335(val, _values, result)
                      @static_env.extend_static
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)
                      @context.push(:defs)
                      @current_arg_stack.push(nil)
                    
    result
end

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

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

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

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

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

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

# reduce 341 omitted

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

# reduce 343 omitted

# reduce 344 omitted

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

# reduce 346 omitted

# reduce 347 omitted

# reduce 348 omitted

def _reduce_349(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 350 omitted

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

# reduce 352 omitted

# reduce 353 omitted

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

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

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

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

# reduce 358 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 377 omitted

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

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

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

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

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

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

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

# reduce 386 omitted

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

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

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

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

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

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

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

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

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

# reduce 396 omitted

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_408(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_409(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_410(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_411(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_412(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_413(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_414(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_415(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2])
                    
    result
end

def _reduce_416(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_417(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_418(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_419(val, _values, result)
                      result = @builder.keyword_cmd(:zsuper, val[0])
                    
    result
end

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

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

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

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

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

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

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

                      @max_numparam_stack.pop
                      @static_env.unextend
                    
    result
end

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

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

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

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

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

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

# reduce 432 omitted

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

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

def _reduce_434(val, _values, result)
                      @lexer.in_kwarg = val[1]
                    
    result
end

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

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

# reduce 437 omitted

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

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

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

# reduce 441 omitted

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

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

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

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

# reduce 446 omitted

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

# reduce 448 omitted

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

# reduce 450 omitted

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

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

# reduce 453 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 475 omitted

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

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

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

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

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

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

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

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

# reduce 484 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 500 omitted

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

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

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

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

# reduce 505 omitted

# reduce 506 omitted

# reduce 507 omitted

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

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

# reduce 510 omitted

# reduce 511 omitted

# reduce 512 omitted

# reduce 513 omitted

# reduce 514 omitted

# reduce 515 omitted

# reduce 516 omitted

# reduce 517 omitted

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

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

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

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

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

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

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

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

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

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

# reduce 529 omitted

# reduce 530 omitted

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

# reduce 532 omitted

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

# reduce 534 omitted

# reduce 535 omitted

# reduce 536 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 572 omitted

# reduce 573 omitted

# reduce 574 omitted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

def _reduce_595(val, _values, result)
                      if (node = val[0]) && node.type == :ident
                        name = node.children[0]

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

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

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

                          # ignore current block scope
                          raw_context.pop
                          raw_max_numparam_stack.pop

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

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

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

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

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

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

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

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

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

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

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

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

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

                      @lexer.state = :expr_value
                    
    result
end

def _reduce_605(val, _values, result)
                      result = @builder.forward_only_args(val[0], val[1], val[2])
                      @static_env.declare_forward_args

                      @lexer.state = :expr_value
                    
    result
end

def _reduce_606(val, _values, result)
                      result = @lexer.in_kwarg
                      @lexer.in_kwarg = true
                    
    result
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# reduce 635 omitted

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

                      @max_numparam_stack.has_ordinary_params!

                      result = val[0]
                    
    result
end

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

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

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

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

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

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

                      @static_env.declare val[0][0]

                      @max_numparam_stack.has_ordinary_params!

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

                      result = val[0]
                    
    result
end

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

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

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

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

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

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

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

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

# reduce 651 omitted

# reduce 652 omitted

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

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

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

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

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

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

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

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

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

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

# reduce 662 omitted

# reduce 663 omitted

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

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

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

# reduce 666 omitted

# reduce 667 omitted

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

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

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

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

# reduce 671 omitted

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

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

# reduce 674 omitted

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

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

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

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

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

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

# reduce 681 omitted

# reduce 682 omitted

# reduce 683 omitted

# reduce 684 omitted

# reduce 685 omitted

# reduce 686 omitted

# reduce 687 omitted

# reduce 688 omitted

# reduce 689 omitted

# reduce 690 omitted

# reduce 691 omitted

# reduce 692 omitted

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

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

# reduce 695 omitted

# reduce 696 omitted

# reduce 697 omitted

# reduce 698 omitted

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

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

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

# reduce 702 omitted

# reduce 703 omitted

# reduce 704 omitted

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

# reduce 706 omitted

# reduce 707 omitted

# reduce 708 omitted

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

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

  end   # class Ruby27
  end   # module Parser
