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

require 'racc/parser.rb'
class RubyParser < Racc::Parser


require "ruby_lexer"
require "ruby_parser_extras"

# Local Variables: **
# racc-token-length-max:14 **
# End: **
##### State transition tables begin ###

clist = [
'-489,358,483,262,263,-85,483,-489,-489,-489,-83,601,402,-489,-489,124',
'-489,-64,358,86,300,411,437,-430,599,-489,-431,33,600,436,-430,483,124',
'-431,3,-489,-489,124,-489,-489,-489,-489,-489,-90,483,-87,654,-88,739',
'673,523,296,403,653,-72,278,281,-90,739,-85,483,360,361,532,-489,-489',
'-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,360,361',
'-489,-489,-489,412,545,673,-85,575,-489,654,268,-83,697,268,-352,-489',
'653,-489,125,-489,-489,-489,-489,-489,-489,-489,-77,-489,-489,-489,-486',
'-75,269,602,484,125,269,271,484,300,125,271,-489,-489,-90,-78,-276,-489',
'-88,-86,-86,-489,269,-276,-276,-276,268,271,-276,-276,-276,269,-276',
'484,-82,269,271,672,-80,571,271,-87,-276,-276,269,-87,484,-87,-84,271',
'-87,-276,-276,300,-276,-276,-276,-276,-276,-85,269,-85,484,673,-85,271',
'358,-89,753,-437,571,269,572,672,-482,571,271,262,263,571,-276,-276',
'-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,358,-485',
'-276,-276,-276,262,263,-276,509,572,-276,530,754,-276,572,-276,-75,-276',
'572,-276,-83,-276,-276,-276,-276,-276,-276,-276,-87,-276,-425,-276,360',
'361,526,-84,-86,-425,-86,358,-86,-86,-482,-282,-276,-276,-276,-276,-79',
'-276,-282,-282,-282,-276,-89,-76,-282,-282,746,-282,360,361,394,-482',
'-425,269,-432,672,-79,-434,271,-425,-483,-432,-81,522,-434,523,-282',
'-282,-275,-282,-282,-282,-282,-282,-425,-275,732,509,-437,-435,515,358',
'787,-436,359,-428,-435,360,361,537,-436,-485,-428,264,265,-282,-282',
'-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-86,-428',
'-282,-282,-282,-283,546,730,-428,396,-282,-79,-283,-483,-83,-275,395',
'-282,-84,-282,-78,-282,-282,-282,-282,-282,-282,-282,-79,-282,-436,-282',
'360,361,-483,-275,376,509,509,-284,511,511,-275,375,-282,-282,-284,-80',
'-79,-282,728,-88,-79,-282,-486,-486,-486,-428,-486,-433,739,-283,-486',
'-486,453,397,-433,-486,760,-486,-486,-486,-486,-486,-486,-486,727,155',
'725,-77,-486,-486,-486,-486,-486,-486,-486,708,692,707,327,-275,377',
'269,724,-284,-486,326,271,-486,-486,-486,-486,-486,-486,-486,-486,-486',
'-486,-89,-486,-486,453,-486,-486,-486,262,263,-82,765,441,596,-90,426',
'439,440,269,722,595,-76,425,271,-87,-84,-85,-486,546,769,-486,-486,424',
'-486,-486,-77,-486,772,-486,423,-486,403,-486,269,102,-81,-283,-436',
'271,-89,-486,101,-77,-283,-436,-486,-486,-486,-486,-486,-486,750,739',
'711,-486,-486,-485,-485,-485,597,-485,427,-77,-88,-485,-485,-77,750',
'739,-485,130,-485,-485,-485,-485,-485,-485,-485,397,802,622,624,-485',
'-485,-485,-485,-485,-485,-485,-284,103,552,-283,-436,269,269,-284,403',
'-485,271,271,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,709,-485',
'-485,699,-485,-485,-485,679,680,695,681,85,91,618,620,622,624,874,-489',
'693,-489,-79,322,269,873,-87,-485,706,271,-485,-485,-282,-485,-485,-284',
'-485,781,-485,-282,-485,-282,-485,588,-486,-283,551,322,-282,785,-485',
'387,-283,-486,-505,-485,-485,-485,-485,-485,-485,-505,-505,-505,-485',
'-485,-505,-505,-505,-489,-505,-489,-282,-86,875,-328,-489,387,-489,-282',
'-505,-485,-328,-485,-486,378,379,-77,-282,-505,-505,-85,-505,-505,-505',
'-505,-505,-282,262,263,-263,-283,-489,523,-489,670,616,588,-505,623',
'625,628,262,263,667,-505,-505,-505,588,268,-505,-505,-505,802,-505,-489',
'655,-489,-282,-505,268,-328,792,304,-505,650,-505,649,795,648,-72,322',
'-505,-505,-505,647,-505,-505,-505,-505,-505,618,620,622,624,616,300',
'644,623,625,628,616,268,-505,623,625,628,805,618,620,622,624,806,300',
'810,-263,-505,813,-505,300,747,-505,300,-505,817,322,322,296,304,300',
'-505,278,281,629,819,322,-505,639,638,629,618,620,622,624,-264,610,618',
'620,622,624,315,316,317,318,319,593,616,-505,588,623,625,628,824,450',
'553,18,22,26,322,35,-505,527,-505,52,60,-505,829,452,79,832,89,95,6',
'10,16,23,27,268,835,836,508,50,55,58,61,65,70,75,488,487,97,618,620',
'622,624,665,840,37,841,732,46,51,57,63,66,71,76,80,85,91,727,8,14,732',
'25,29,34,300,301,277,280,283,286,289,291,293,295,297,845,302,279,-63',
'454,285,288,446,136,445,854,139,442,856,69,74,300,84,429,859,296,860',
'299,20,278,281,284,287,290,292,294,59,298,428,588,410,81,86,92,4,9,15',
'588,408,867,33,38,269,282,406,-219,405,271,18,22,26,30,35,404,403,400',
'52,60,391,322,387,79,876,89,95,6,10,16,23,27,322,314,382,882,50,55,58',
'61,65,70,75,381,884,97,268,887,732,889,665,28,37,42,45,46,51,57,63,66',
'71,76,80,85,91,638,8,14,354,25,29,34,300,301,277,280,283,286,289,291',
'293,295,297,351,302,279,335,304,285,288,303,41,588,274,53,588,268,69',
'74,166,84,153,96,296,148,299,20,278,281,284,287,290,292,294,59,298,900',
'126,98,81,86,92,4,9,15,588,,,33,38,,282,,,,452,13,18,22,26,30,35,,,',
'52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,300',
',,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,-507',
'-507,-507,-507,286,289,296,,-507,-507,278,281,284,287,,285,288,,41,',
',53,,,69,74,,84,,96,296,,299,20,278,281,284,287,290,292,294,59,298,',
',,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6',
'10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,300,,,28,37,42,45,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,-507,-507,-507,-507,286',
'289,296,,-507,-507,278,281,284,287,,285,288,,41,,,53,,,69,74,,84,,96',
'296,,299,20,278,281,284,287,290,292,294,59,298,,,,81,86,92,4,9,15,,',
',33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50',
'55,58,61,65,70,75,,,97,315,316,317,318,319,28,37,42,45,46,51,57,63,66',
'71,76,80,85,91,,8,14,,25,29,34,300,-507,-507,-507,-507,286,289,,,-507',
'-507,315,316,317,318,319,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20',
'278,281,284,287,290,292,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18',
'22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70',
'75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29',
'34,300,,,,,,,,,,,,,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278',
'281,284,287,,,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30',
'35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97',
',,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,',
',,,,,,,,,,,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278,281,284',
'287,,,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52',
'60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28',
'37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,301,277,280',
'283,286,289,291,293,295,297,,-507,-507,,,285,288,,41,,,53,,,69,74,,84',
',96,296,,299,20,278,281,284,287,290,292,294,59,298,,,,81,86,92,4,9,15',
',,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50',
'55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91',
',8,14,,25,29,34,300,-507,-507,-507,-507,286,289,,,-507,-507,,,,,,285',
'288,,41,,,53,,,69,74,,84,,96,296,,299,20,278,281,284,287,290,292,294',
'59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,301,277,280,283,286',
'289,,,295,297,,,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278',
'281,284,287,290,292,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22',
'26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75',
',,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34',
'300,-507,-507,-507,-507,286,289,,,-507,-507,,,,,,285,288,,41,,,312,',
',69,74,,84,,96,296,,299,20,278,281,284,287,290,292,294,59,298,,,,81',
'86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16',
'23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66',
'71,76,80,85,91,,8,14,,25,29,34,300,,,,,,,,,,,,,,,,285,288,,41,,,53,',
',69,74,,84,,96,296,,299,20,278,281,284,287,,,294,59,298,,,,81,86,92',
'4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27',
',,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,300,-507,-507,-507,-507,286,289,,,-507,-507',
',,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278,281,284,287,290',
'292,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60',
',,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37',
'42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,,,,,,,,,,,,',
',,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278,281,284,287,,,294',
'59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,300,301,277,280,283,286',
'289,291,,295,297,,,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20,278',
'281,284,287,290,292,294,59,298,,,,81,86,92,4,9,15,,,,33,38,13,18,22',
'26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75',
',,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34',
'300,301,277,280,283,286,289,291,293,295,297,,-507,-507,,,285,288,,41',
',,53,,,69,74,,84,,96,296,,299,20,278,281,284,287,290,292,294,59,298',
',,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95',
'6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57',
'63,66,71,76,80,85,91,,8,14,,25,29,34,300,,,,,,,,,,,,,,,,285,288,,41',
',,53,,,69,74,,84,,96,296,,,20,278,281,284,287,,,,59,,,,,81,86,92,4,9',
'15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,',
',,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80',
'85,91,,8,14,,25,29,34,300,,,,,,,,,,,,,,,,285,288,,41,,,53,,,69,74,,84',
',96,296,,299,20,278,281,284,287,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13',
'18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65',
'70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25',
'29,34,300,,,,,,,,,,,,,,,,285,288,,41,,,53,,,69,74,,84,,96,296,,299,20',
'278,281,284,287,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35',
',,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,',
',,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,',
',,,,,,,,,,,,41,,,312,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4',
'9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27',
',,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,,96',
',,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52',
'60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28',
'37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,',
',,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,',
',33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50',
'55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91',
',8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,',
',,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41',
',,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13',
'18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65',
'70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25',
'29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,',
',81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6',
'10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57',
'63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69',
'74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26',
'30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,',
',97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,',
',,,,,,,,,,,,,,,,,,41,,,312,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86',
'92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23',
'27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,',
'96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,',
',52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,',
',28,37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,',
',,,,,,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15',
',,,33,38,13,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50',
'55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76,80,85,91',
',8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,',
',,,,59,,,,,81,86,92,4,9,15,,,,33,38,13,18,22,26,30,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41',
',,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27',
',,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,-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,322,,-253,-253,,-253,,-253,,-253,,-253,,,,,,,,-253,,,,,-253,-253',
'-253,-253,-253,-253,,,,-253,-253,-482,-482,-482,,-482,,,,-482,-482,',
',,-482,,-482,-482,-482,-482,-482,-482,-482,,-482,,,-482,-482,-482,-482',
'-482,-482,-482,,,,,,,,,,-482,,,-482,-482,-482,-482,-482,-482,-482,-482',
'-482,-482,,-482,-482,,-482,-482,-482,,,,,,,,,,,,,,,,,,,,-482,,,-482',
'-482,,-482,-482,,-482,,-482,,-482,,-482,,,,,,,,-482,,-482,,,-482,-482',
'-482,-482,-482,-482,,,,-482,-482,18,22,26,,35,,,,52,60,,,,79,,89,95',
'6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66',
'71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74',
',84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52',
'60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,333,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38',
'-483,-483,-483,,-483,,,,-483,-483,,,,-483,,-483,-483,-483,-483,-483',
'-483,-483,,-483,,,-483,-483,-483,-483,-483,-483,-483,,,,,,,,,,-483,',
',-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,,-483,-483,,-483',
'-483,-483,,,,,,,,,,,,,,,,,,,,-483,,,-483,-483,,-483,-483,,-483,,-483',
',-483,,-483,,,,,,,,-483,,-483,,,-483,-483,-483,-483,-483,-483,,,,-483',
'-483,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58',
'61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29',
'34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,333,,,,20,,,,,,,,141,,',
',,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',764,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52',
'60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,',
',37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,',
',,,136,,,139,,,69,74,,84,,520,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,',
',,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115',
'116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25',
'29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,',
',,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,767,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38',
'18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61',
'65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34',
',,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,115,116,61,65,70,75,,,,,,,,,,111,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,,,109,,,,,,,,,,,,,,,,,,,,162,,,139,,,69,74,,84,,,,,,,,,,,',
',,,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6',
'10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66',
'71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74',
',84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52',
'60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,',
',111,,,46,51,57,63,66,71,76,80,85,91,,8,14,,,,109,,,,,,,,,,,,,,,,,,',
',113,,,53,,,69,74,,84,,96,,,,,,,,,,,,,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70',
'75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,',
',,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139',
',,69,74,,84,,333,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75',
',,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,',
',,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4',
'9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,',
',114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,',
'8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,145,,130,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,664,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,30,35,,,,52,60,,,,79,,89,95,6,10,16,23,27',
',,,,50,55,58,61,65,70,75,,,97,,,,,,28,37,42,45,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,41,,,53,,,69,74,,84,,96',
',,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,',
',,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,-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,314,,-253,-253,,-253,,-253,,-253,,-253',
',,,,,,,-253,,,,,-253,-253,-253,-253,-253,-253,,,,-253,-253,18,22,26',
',35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58,61,65,70,75',
',,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,',
',,,,,,,,,,,136,,,139,,,385,74,,84,,145,,130,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91',
',8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,333,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139',
',,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26',
',35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75',
',,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,',
',,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9',
'15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114',
'115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70',
'75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,',
',,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92',
'4,9,15,,,,33,38,176,180,185,191,196,201,205,209,,,228,231,232,235,239',
',,169,172,174,182,187,193,197,,,210,214,221,249,252,255,258,240,241',
'244,168,171,173,178,183,189,199,203,207,246,247,248,226,,,257,,,,,,',
',184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,',
',,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,,,237,81,,,18',
'22,26,,35,,,38,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,145,,130,,20,,,,,,,,141,,,,',
'81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16',
'23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,',
',,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,',
',,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,520,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,789,,130',
',20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,',
',79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,',
',46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,866,,130,,20,,,,,,,,141,,,,',
'81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107',
'23,27,,,,,114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80',
'85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,333',
',,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,863,,130,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33',
'38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58',
'61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29',
'34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,145,,130,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,111,,,46,51,419,63,66',
'71,420,80,85,91,,8,14,,,,109,,,,,,,,,,,,,,,,,,,,416,,,139,,,69,74,,84',
',,,,,,,,,,,,,,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,',
'79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139',
',,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26',
',35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75',
',,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,',
',,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9',
'15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114',
'115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10',
'16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,',
',,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55,58,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,592,,130,,20,,,,,,,,141,,,,',
'81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107',
'23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,858',
',,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,898,,130,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33',
'38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116',
'61,65,70,75,,,,,,,,,,111,,,46,51,57,63,66,71,76,80,85,91,,8,14,,,,109',
',,,,,,,,,,,,,,,,,,,162,,,139,,,69,74,,84,,,,,,,,,,,,,,,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,111,,,46,51,419,63,66,71,420,80',
'85,91,,8,14,,,,109,,,,,,,,,,,,,,,,,,,,416,,,139,,,69,74,,84,,,,,,,,',
',,,,,,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95',
'6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63',
'66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69',
'74,,84,,592,,130,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26',
',35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75',
',,,,,,,,,111,,,46,51,57,63,66,71,76,80,85,91,,8,14,,,,109,,,,,,,,,,',
',,,,,,,,,113,,,53,,,69,74,,84,,96,,,,,,,,,,,704,,,,,,81,86,92,4,9,15',
',,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114',
'115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27',
',,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,',
'89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139',
',,69,74,,84,,776,,130,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,585,,130,,20,,,,,,,,141,,,,,81',
'86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23',
'27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80',
'85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,',
'20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51',
'57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139',
',,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26',
',35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75',
',,,,,,,,,111,,,46,51,57,63,66,71,76,80,85,91,,8,14,,,,109,,,,,,,,,,',
',,,,,,,,,852,,,139,,,69,74,,84,,,,,,,,,,,,,,,,,,,81,86,92,4,9,15,,,',
'33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55',
'58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25',
'29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,333,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,450,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38',
'18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65',
'70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34',
',,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,568,,130,,20,,,,,,,,59,,,',
',81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107',
'23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,779',
',130,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,176,180,185,191,196',
'201,205,209,,,228,231,232,235,239,,,169,172,174,182,187,193,197,,,210',
'214,221,249,252,255,258,240,241,244,168,171,173,178,183,189,199,203',
'207,246,247,248,226,,,257,,,,,,,,184,190,,200,204,213,218,,227,230,',
',238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202',
'206,211,215,,225,,,237,81,,,18,22,26,,35,,,38,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91',
',8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,333,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,-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,322,,-253,-253,,-253,,-253,,-253,,-253,,,,,,,,-253,,,,,-253,-253',
'-253,-253,-253,-253,,,,-253,-253,176,180,185,191,196,201,205,209,,,228',
'231,232,235,239,,,169,172,174,182,187,193,197,,,210,214,221,249,252',
'255,258,240,241,244,168,171,173,178,183,189,199,203,207,246,247,248',
'226,,,257,,,,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181',
'186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225',
',,237,81,176,180,185,191,196,201,205,209,,38,228,231,232,235,239,,,169',
'172,174,182,187,193,197,,,210,214,221,249,252,255,258,240,241,244,168',
'171,173,178,183,189,199,203,207,246,247,248,226,254,,257,,,,,,,,184',
'190,,200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,',
'243,170,,175,179,188,194,198,202,206,211,215,,225,,,237,81,,,18,22,26',
',35,,,38,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,-487,-487,-487,,-487,,,,-487,-487,,,,-487,,-487,-487',
'-487,-487,-487,-487,-487,,,,,-487,-487,-487,-487,-487,-487,-487,,,,',
',,,,,-487,,,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,,-487',
'-487,,-487,-487,-487,,,,,,,,,,,,,,,,,,,,-487,,,-487,-487,,-487,-487',
',-487,,-487,,-487,,-487,,,,,,,,-487,,,,,-487,-487,-487,-487,-487,-487',
',,,-487,-487,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,',
'114,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8',
'14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,491,69,74,,84,,145,,130,',
'20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,',
'79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75',
',,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,',
',,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4',
'9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50',
'55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10',
'16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,30,35,,,,52',
'60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,28',
'37,42,45,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,',
',,,,,,41,,,53,,,69,74,,84,,96,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,',
',33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,55',
'58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25',
'29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,145,,130,,20,,,,,,,',
'141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95',
'6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63',
'66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69',
'74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,-488,-488,-488',
',-488,,,,-488,-488,,,,-488,,-488,-488,-488,-488,-488,-488,-488,,,,,-488',
'-488,-488,-488,-488,-488,-488,,,,,,,,,,-488,,,-488,-488,-488,-488,-488',
'-488,-488,-488,-488,-488,,-488,-488,,-488,-488,-488,,,,,,,,,,,,,,,,',
',,,-488,,,-488,-488,,-488,-488,,-488,,-488,,-488,,-488,,,,,,,,-488,',
',,,-488,-488,-488,-488,-488,-488,,,,-488,-488,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97,,,,,,,37,,',
'46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136',
',,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,',
',,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57',
'63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,',
'69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,',
'35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75',
',,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,',
',,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9',
'15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114',
'115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,10',
'16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76',
'80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,',
',,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46',
'51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,',
'139,,,69,74,,84,,520,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18',
'22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65',
'70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,',
',,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86',
'92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27',
',,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85',
'91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20',
',,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79',
',89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,,,,,,,,37,,,46,51,57',
'63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,',
'69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,',
'35,,,,52,60,,,,79,,89,95,6,10,16,23,27,,,,,50,55,58,61,65,70,75,,,97',
',,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,',
',,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,59,,,,,81,86,92,4,9,15',
',,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114',
'115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14',
',25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141',
',,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60,,,,79,,89,95,6,106',
'107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,37,,,46,51,57,63,66,71',
'76,80,85,91,,8,14,,25,29,34,,,,,,,,,,,,,,,,,,,,136,,,139,,,69,74,,84',
',,,,,20,,,,,,,,141,,,,,81,86,92,4,9,15,,,,33,38,18,22,26,,35,,,,52,60',
',,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70,75,,,,,,,,,,111',
',,46,51,57,63,66,71,76,80,85,91,,8,14,,,,109,,,,,,,,,,,,,,,,,,,,162',
',,163,,,69,74,,84,,164,,,,,,,,,,,,,,,,,81,86,92,4,9,15,,,,33,38,18,22',
'26,,35,,,,52,60,,,,79,,89,95,6,106,107,23,27,,,,,114,115,116,61,65,70',
'75,,,,,,,,,,37,,,46,51,57,63,66,71,76,80,85,91,,8,14,,25,29,34,,,,,',
',,,,,,,,,,,,,,136,,,139,,,69,74,,84,,,,,,20,,,,,,,,141,,,,,81,86,92',
'4,9,15,,,,33,38,176,180,185,191,196,201,205,209,,,228,231,232,235,239',
',,169,172,174,182,187,193,197,,,210,214,221,224,229,233,236,240,241',
'244,168,171,173,178,183,189,199,203,207,212,217,223,226,66,71,234,80',
',,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,',
',,,219,,,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,,,237',
'176,180,185,191,196,201,205,209,,,228,231,232,235,239,,,169,172,174',
'182,187,193,197,,,210,214,221,249,252,255,258,240,241,244,168,171,173',
'178,183,189,199,203,207,246,247,248,226,342,343,257,344,,,,,,,184,190',
',200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243',
'170,,175,179,188,194,198,202,206,211,215,,225,,,237,176,180,185,191',
'196,201,205,209,,,228,231,232,235,239,,,169,172,174,182,187,193,197',
',,210,214,221,249,252,255,258,240,241,244,168,171,173,178,183,189,199',
'203,207,246,247,248,226,,,257,,,,,,,,184,190,,200,204,213,218,,227,230',
',,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202',
'206,211,215,,225,893,372,237,,894,,,,,,,,184,190,,200,204,213,218,,227',
'230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198',
'202,206,211,215,,225,577,367,237,,578,,,,,,,,184,190,,200,204,213,218',
',227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188',
'194,198,202,206,211,215,,225,579,372,237,,580,,,,,,,,184,190,,200,204',
'213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175',
'179,188,194,198,202,206,211,215,,225,605,367,237,,606,,,,,,,,184,190',
',200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243',
'170,,175,179,188,194,198,202,206,211,215,,225,607,372,237,,608,,,,,',
',,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,',
',,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,577,367,237',
',578,,,,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186',
'192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,,',
'237,300,301,277,280,283,286,289,291,293,295,297,,302,279,,,285,288,',
',,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298,,,,,,,891,367',
',,892,,,,,282,,588,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181',
'186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225',
'579,372,237,,580,,,,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,',
'177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211',
'215,,225,366,367,237,,368,,,,,,,,184,190,,200,204,213,218,,227,230,',
',238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202',
'206,211,215,,225,558,372,237,,559,,,,,,,,184,190,,200,204,213,218,,227',
'230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198',
'202,206,211,215,,225,504,372,237,,505,,,,,,,,184,190,,200,204,213,218',
',227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188',
'194,198,202,206,211,215,,225,716,367,237,,717,,,,,,,,184,190,,200,204',
'213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175',
'179,188,194,198,202,206,211,215,,225,504,372,237,,505,,,,,,,,184,190',
',200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,,,,,,,,243',
'170,,175,179,188,194,198,202,206,211,215,,225,371,372,237,,373,,,,,',
',,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186,192,,,,,,',
',,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,555,367,237',
',556,,,,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,,177,181,186',
'192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211,215,,225,504',
'372,237,,505,,,,,,,,184,190,,200,204,213,218,,227,230,,,238,,,,,177',
'181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206,211,215',
',225,504,372,237,,505,,,,,,,,184,190,,200,204,213,218,,227,230,,,238',
',,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202,206',
'211,215,,225,504,372,237,,505,,,,,,,,184,190,,200,204,213,218,,227,230',
',,238,,,,,177,181,186,192,,,,,,,,,,,,,243,170,,175,179,188,194,198,202',
'206,211,215,,225,,,237,300,301,277,280,283,286,289,291,293,295,297,',
'302,279,,,285,288,,,,-219,,,,,,,,,,296,,299,,278,281,284,287,290,292',
'294,,298,,,,,,,,,,,,,,,,282,,-219,300,301,277,280,283,286,289,291,293',
'295,297,,302,279,,,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290',
'292,294,,298,,300,301,277,280,283,286,289,291,293,295,297,,302,279,282',
'643,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298',
'300,301,277,280,283,286,289,291,293,295,297,,302,279,,282,285,288,,',
',,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298,300,301,277,280',
'283,286,289,291,293,295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,',
'299,,278,281,284,287,290,292,294,,298,300,301,277,280,283,286,289,291',
'293,295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284',
'287,290,292,294,,298,300,301,277,280,283,286,289,291,293,295,297,,302',
'279,,282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294',
',298,300,301,277,280,283,286,289,291,293,295,297,,302,279,268,282,285',
'288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298,300,301',
'277,280,283,286,289,291,293,295,297,,302,279,268,282,285,288,,,,,,,',
',,,,,,296,,299,,278,281,284,287,290,292,294,,298,300,301,277,280,283',
'286,289,291,293,295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,,299',
',278,281,284,287,290,292,294,,298,300,301,277,280,283,286,289,291,293',
'295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287',
'290,292,294,,298,300,301,277,280,283,286,289,291,293,295,297,,302,279',
',282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298',
'300,301,277,280,283,286,289,291,293,295,297,,302,279,,282,285,288,,',
',,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298,300,301,277,280',
'283,286,289,291,293,295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,',
'299,,278,281,284,287,290,292,294,,298,300,301,277,280,283,286,289,291',
'293,295,297,,302,279,,282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284',
'287,290,292,294,,298,300,301,277,280,283,286,289,291,293,295,297,,302',
'279,,282,285,288,,,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294',
',298,300,301,277,280,283,286,289,291,293,295,297,,302,279,,282,285,288',
',,,,,,,,,,,,,296,,299,,278,281,284,287,290,292,294,,298,,,,,,,,,,,,',
',,,282' ]
        racc_action_table = arr = Array.new(23770, 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 = [
'366,349,766,631,631,558,816,366,366,366,110,418,132,366,366,17,366,648',
'392,43,462,149,220,229,416,366,224,43,416,220,229,812,7,224,1,366,366',
'105,366,366,366,366,366,108,325,894,758,556,857,536,857,462,563,758',
'648,462,462,132,637,893,308,349,349,349,366,366,366,366,366,366,366',
'366,366,366,366,366,366,366,392,392,366,366,366,149,366,694,558,392',
'366,500,631,110,563,758,7,366,500,366,17,366,366,366,366,366,366,366',
'558,366,366,366,556,110,766,418,766,7,816,766,816,636,105,816,366,366',
'108,366,63,366,556,366,891,366,418,63,63,63,500,418,63,63,63,812,63',
'812,108,536,812,536,556,482,536,559,63,63,325,894,325,894,693,325,894',
'63,63,635,63,63,63,63,63,893,308,893,308,540,893,308,341,382,651,36',
'569,694,482,694,419,389,694,594,594,390,63,63,63,63,63,63,63,63,63,63',
'63,63,63,63,127,891,63,63,63,640,640,63,348,569,63,348,652,63,389,63',
'36,63,390,63,36,63,63,63,63,63,63,63,559,63,419,63,341,341,341,693,891',
'419,891,353,555,891,419,368,63,63,63,63,559,63,368,368,368,63,382,693',
'368,368,640,368,127,127,127,419,223,540,233,540,608,217,540,223,420',
'233,382,336,217,336,368,368,850,368,368,368,368,368,419,850,621,334',
'135,212,334,99,709,851,99,234,212,353,353,353,851,555,234,34,34,368',
'368,368,368,368,368,368,368,368,368,368,368,368,368,555,420,368,368',
'368,600,368,619,420,129,368,608,600,420,135,850,129,368,709,368,555',
'368,368,368,368,368,368,368,608,368,851,368,99,99,420,159,104,330,346',
'900,330,346,159,104,368,368,900,368,608,368,617,368,608,368,578,578',
'578,420,578,236,656,600,578,578,404,129,236,578,661,578,578,578,578',
'578,578,578,616,19,614,607,578,578,578,578,578,578,578,580,553,579,62',
'159,104,793,613,900,578,62,793,578,578,578,578,578,578,578,578,578,578',
'404,578,578,274,578,578,578,31,31,19,668,254,414,19,158,254,254,601',
'609,414,553,158,601,580,553,579,578,578,671,578,578,156,578,578,607',
'578,677,578,156,578,591,578,338,5,274,876,161,338,274,578,5,607,876',
'161,578,578,578,578,578,578,877,877,590,578,578,577,577,577,414,577',
'158,607,578,577,577,607,646,646,577,588,577,577,577,577,577,577,577',
'156,841,732,732,577,577,577,577,577,577,577,722,5,373,876,161,714,615',
'722,582,577,714,615,577,577,577,577,577,577,577,577,577,577,581,577',
'577,567,577,577,577,542,542,562,542,542,542,841,841,841,841,849,605',
'560,716,373,557,40,849,373,577,577,40,577,577,606,577,577,722,577,698',
'577,606,577,717,577,700,606,429,371,554,717,703,577,547,429,717,506',
'577,577,577,577,577,577,506,506,506,577,577,506,506,506,605,506,716',
'892,577,849,90,605,543,716,892,506,605,90,716,892,109,109,371,606,506',
'506,371,506,506,506,506,506,717,328,328,534,429,605,525,716,524,629',
'710,503,629,629,629,307,307,521,503,503,503,713,507,503,503,503,730',
'503,605,501,716,892,506,499,90,718,498,503,497,506,490,723,489,488,506',
'506,503,503,486,503,503,503,503,503,629,629,629,629,433,465,481,433',
'433,433,807,734,506,807,807,807,735,730,730,730,730,736,478,740,743',
'506,744,506,474,642,506,459,503,751,755,756,465,757,456,503,465,465',
'433,759,503,503,448,447,807,433,433,433,433,763,430,807,807,807,807',
'147,147,147,147,147,411,728,503,407,728,728,728,768,380,374,79,79,79',
'363,79,503,345,503,79,79,503,777,337,79,780,79,79,79,79,79,79,79,332',
'784,786,329,79,79,79,79,79,79,79,311,310,79,728,728,728,728,518,794',
'79,797,798,79,79,79,79,79,79,79,79,79,79,802,79,79,803,79,79,79,518',
'518,518,518,518,518,518,518,518,518,518,804,518,518,309,275,518,518',
'265,79,264,815,79,261,818,79,79,259,79,162,825,518,826,518,79,518,518',
'518,518,518,518,518,79,518,160,828,148,79,79,79,79,79,79,831,146,834',
'79,79,79,518,144,518,143,79,270,270,270,270,270,136,133,131,270,270',
'126,123,122,270,852,270,270,270,270,270,270,270,116,115,113,861,270',
'270,270,270,270,270,270,112,865,270,111,869,870,871,587,270,270,270',
'270,270,270,270,270,270,270,270,270,270,270,872,270,270,94,270,270,270',
'587,587,587,587,587,587,587,587,587,587,587,88,587,587,78,49,587,587',
'45,270,883,41,270,886,37,270,270,24,270,18,270,587,15,587,270,587,587',
'587,587,587,587,587,270,587,895,9,3,270,270,270,270,270,270,901,,,270',
'270,,587,,,,270,702,702,702,702,702,702,,,,702,702,,,,702,,702,702,702',
'702,702,702,702,,,,,702,702,702,702,702,702,702,,,702,,,463,,,702,702',
'702,702,702,702,702,702,702,702,702,702,702,702,,702,702,,702,702,702',
'455,455,455,455,455,455,455,463,,455,455,463,463,463,463,,455,455,,702',
',,702,,,702,702,,702,,702,455,,455,702,455,455,455,455,455,455,455,702',
'455,,,,702,702,702,702,702,702,,,,702,702,770,770,770,770,770,770,,',
',770,770,,,,770,,770,770,770,770,770,770,770,,,,,770,770,770,770,770',
'770,770,,,770,,,466,,,770,770,770,770,770,770,770,770,770,770,770,770',
'770,770,,770,770,,770,770,770,458,458,458,458,458,458,458,466,,458,458',
'466,466,466,466,,458,458,,770,,,770,,,770,770,,770,,770,458,,458,770',
'458,458,458,458,458,458,458,770,458,,,,770,770,770,770,770,770,,,,770',
'770,771,771,771,771,771,771,,,,771,771,,,,771,,771,771,771,771,771,771',
'771,,,,,771,771,771,771,771,771,771,,,771,451,451,451,451,451,771,771',
'771,771,771,771,771,771,771,771,771,771,771,771,,771,771,,771,771,771',
'461,461,461,461,461,461,461,,,461,461,56,56,56,56,56,461,461,,771,,',
'771,,,771,771,,771,,771,461,,461,771,461,461,461,461,461,461,461,771',
'461,,,,771,771,771,771,771,771,,,,771,771,454,454,454,454,454,454,,',
',454,454,,,,454,,454,454,454,454,454,454,454,,,,,454,454,454,454,454',
'454,454,,,454,,,,,,454,454,454,454,454,454,454,454,454,454,454,454,454',
'454,,454,454,,454,454,454,464,,,,,,,,,,,,,,,,464,464,,454,,,454,,,454',
'454,,454,,454,464,,464,454,464,464,464,464,,,464,454,464,,,,454,454',
'454,454,454,454,,,,454,454,739,739,739,739,739,739,,,,739,739,,,,739',
',739,739,739,739,739,739,739,,,,,739,739,739,739,739,739,739,,,739,',
',,,,739,739,739,739,739,739,739,739,739,739,739,739,739,739,,739,739',
',739,739,739,467,,,,,,,,,,,,,,,,467,467,,739,,,739,,,739,739,,739,,739',
'467,,467,739,467,467,467,467,,,467,739,467,,,,739,739,739,739,739,739',
',,,739,739,541,541,541,541,541,541,,,,541,541,,,,541,,541,541,541,541',
'541,541,541,,,,,541,541,541,541,541,541,541,,,541,,,,,,541,541,541,541',
'541,541,541,541,541,541,541,541,541,541,,541,541,,541,541,541,480,480',
'480,480,480,480,480,480,480,480,480,,480,480,,,480,480,,541,,,541,,',
'541,541,,541,,541,480,,480,541,480,480,480,480,480,480,480,541,480,',
',,541,541,541,541,541,541,,,,541,541,705,705,705,705,705,705,,,,705',
'705,,,,705,,705,705,705,705,705,705,705,,,,,705,705,705,705,705,705',
'705,,,705,,,,,,705,705,705,705,705,705,705,705,705,705,705,705,705,705',
',705,705,,705,705,705,479,479,479,479,479,479,479,,,479,479,,,,,,479',
'479,,705,,,705,,,705,705,,705,,705,479,,479,705,479,479,479,479,479',
'479,479,705,479,,,,705,705,705,705,705,705,,,,705,705,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,469,469,469,469,469,469,469,,,469',
'469,,,,,,469,469,,783,,,783,,,783,783,,783,,783,469,,469,783,469,469',
'469,469,469,469,469,783,469,,,,783,783,783,783,783,783,,,,783,783,312',
'312,312,312,312,312,,,,312,312,,,,312,,312,312,312,312,312,312,312,',
',,,312,312,312,312,312,312,312,,,312,,,,,,312,312,312,312,312,312,312',
'312,312,312,312,312,312,312,,312,312,,312,312,312,475,475,475,475,475',
'475,475,,,475,475,,,,,,475,475,,312,,,312,,,312,312,,312,,312,475,,475',
'312,475,475,475,475,475,475,475,312,475,,,,312,312,312,312,312,312,',
',,312,312,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,470,,',
',,,,,,,,,,,,,470,470,,522,,,522,,,522,522,,522,,522,470,,470,522,470',
'470,470,470,,,470,522,470,,,,522,522,522,522,522,522,,,,522,522,303',
'303,303,303,303,303,,,,303,303,,,,303,,303,303,303,303,303,303,303,',
',,,303,303,303,303,303,303,303,,,303,,,,,,303,303,303,303,303,303,303',
'303,303,303,303,303,303,303,,303,303,,303,303,303,473,473,473,473,473',
'473,473,,,473,473,,,,,,473,473,,303,,,303,,,303,303,,303,,303,473,,473',
'303,473,473,473,473,473,473,473,303,473,,,,303,303,303,303,303,303,',
',,303,303,810,810,810,810,810,810,,,,810,810,,,,810,,810,810,810,810',
'810,810,810,,,,,810,810,810,810,810,810,810,,,810,,,,,,810,810,810,810',
'810,810,810,810,810,810,810,810,810,810,,810,810,,810,810,810,468,,',
',,,,,,,,,,,,,468,468,,810,,,810,,,810,810,,810,,810,468,,468,810,468',
'468,468,468,,,468,810,468,,,,810,810,810,810,810,810,,,,810,810,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,471,471,471,471,471',
'471,471,471,,471,471,,,,,,471,471,,502,,,502,,,502,502,,502,,502,471',
',471,502,471,471,471,471,471,471,471,502,471,,,,502,502,502,502,502',
'502,,,,502,502,630,630,630,630,630,630,,,,630,630,,,,630,,630,630,630',
'630,630,630,630,,,,,630,630,630,630,630,630,630,,,630,,,,,,630,630,630',
'630,630,630,630,630,630,630,630,630,630,630,,630,630,,630,630,630,457',
'457,457,457,457,457,457,457,457,457,457,,457,457,,,457,457,,630,,,630',
',,630,630,,630,,630,457,,457,630,457,457,457,457,457,457,457,630,457',
',,,630,630,630,630,630,630,,,,630,630,266,266,266,266,266,266,,,,266',
'266,,,,266,,266,266,266,266,266,266,266,,,,,266,266,266,266,266,266',
'266,,,266,,,,,,266,266,266,266,266,266,266,266,266,266,266,266,266,266',
',266,266,,266,266,266,477,,,,,,,,,,,,,,,,477,477,,266,,,266,,,266,266',
',266,,266,477,,,266,477,477,477,477,,,,266,,,,,266,266,266,266,266,266',
',,,266,266,822,822,822,822,822,822,,,,822,822,,,,822,,822,822,822,822',
'822,822,822,,,,,822,822,822,822,822,822,822,,,822,,,,,,822,822,822,822',
'822,822,822,822,822,822,822,822,822,822,,822,822,,822,822,822,476,,',
',,,,,,,,,,,,,476,476,,822,,,822,,,822,822,,822,,822,476,,476,822,476',
'476,476,476,,,,822,,,,,822,822,822,822,822,822,,,,822,822,721,721,721',
'721,721,721,,,,721,721,,,,721,,721,721,721,721,721,721,721,,,,,721,721',
'721,721,721,721,721,,,721,,,,,,721,721,721,721,721,721,721,721,721,721',
'721,721,721,721,,721,721,,721,721,721,472,,,,,,,,,,,,,,,,472,472,,721',
',,721,,,721,721,,721,,721,472,,472,721,472,472,472,472,,,,721,,,,,721',
'721,721,721,721,721,,,,721,721,163,163,163,163,163,163,,,,163,163,,',
',163,,163,163,163,163,163,163,163,,,,,163,163,163,163,163,163,163,,',
'163,,,,,,163,163,163,163,163,163,163,163,163,163,163,163,163,163,,163',
'163,,163,163,163,,,,,,,,,,,,,,,,,,,,163,,,163,,,163,163,,163,,163,,',
',163,,,,,,,,163,,,,,163,163,163,163,163,163,,,,163,163,485,485,485,485',
'485,485,,,,485,485,,,,485,,485,485,485,485,485,485,485,,,,,485,485,485',
'485,485,485,485,,,485,,,,,,485,485,485,485,485,485,485,485,485,485,485',
'485,485,485,,485,485,,485,485,485,,,,,,,,,,,,,,,,,,,,485,,,485,,,485',
'485,,485,,485,,,,485,,,,,,,,485,,,,,485,485,485,485,485,485,,,,485,485',
'827,827,827,827,827,827,,,,827,827,,,,827,,827,827,827,827,827,827,827',
',,,,827,827,827,827,827,827,827,,,827,,,,,,827,827,827,827,827,827,827',
'827,827,827,827,827,827,827,,827,827,,827,827,827,,,,,,,,,,,,,,,,,,',
',827,,,827,,,827,827,,827,,827,,,,827,,,,,,,,827,,,,,827,827,827,827',
'827,827,,,,827,827,838,838,838,838,838,838,,,,838,838,,,,838,,838,838',
'838,838,838,838,838,,,,,838,838,838,838,838,838,838,,,838,,,,,,838,838',
'838,838,838,838,838,838,838,838,838,838,838,838,,838,838,,838,838,838',
',,,,,,,,,,,,,,,,,,,838,,,838,,,838,838,,838,,838,,,,838,,,,,,,,838,',
',,,838,838,838,838,838,838,,,,838,838,139,139,139,139,139,139,,,,139',
'139,,,,139,,139,139,139,139,139,139,139,,,,,139,139,139,139,139,139',
'139,,,139,,,,,,139,139,139,139,139,139,139,139,139,139,139,139,139,139',
',139,139,,139,139,139,,,,,,,,,,,,,,,,,,,,139,,,139,,,139,139,,139,,139',
',,,139,,,,,,,,139,,,,,139,139,139,139,139,139,,,,139,139,846,846,846',
'846,846,846,,,,846,846,,,,846,,846,846,846,846,846,846,846,,,,,846,846',
'846,846,846,846,846,,,846,,,,,,846,846,846,846,846,846,846,846,846,846',
'846,846,846,846,,846,846,,846,846,846,,,,,,,,,,,,,,,,,,,,846,,,846,',
',846,846,,846,,846,,,,846,,,,,,,,846,,,,,846,846,846,846,846,846,,,',
'846,846,848,848,848,848,848,848,,,,848,848,,,,848,,848,848,848,848,848',
'848,848,,,,,848,848,848,848,848,848,848,,,848,,,,,,848,848,848,848,848',
'848,848,848,848,848,848,848,848,848,,848,848,,848,848,848,,,,,,,,,,',
',,,,,,,,,848,,,848,,,848,848,,848,,848,,,,848,,,,,,,,848,,,,,848,848',
'848,848,848,848,,,,848,848,53,53,53,53,53,53,,,,53,53,,,,53,,53,53,53',
'53,53,53,53,,,,,53,53,53,53,53,53,53,,,53,,,,,,53,53,53,53,53,53,53',
'53,53,53,53,53,53,53,,53,53,,53,53,53,,,,,,,,,,,,,,,,,,,,53,,,53,,,53',
'53,,53,,53,,,,53,,,,,,,,53,,,,,53,53,53,53,53,53,,,,53,53,855,855,855',
'855,855,855,,,,855,855,,,,855,,855,855,855,855,855,855,855,,,,,855,855',
'855,855,855,855,855,,,855,,,,,,855,855,855,855,855,855,855,855,855,855',
'855,855,855,855,,855,855,,855,855,855,,,,,,,,,,,,,,,,,,,,855,,,855,',
',855,855,,855,,855,,,,855,,,,,,,,855,,,,,855,855,855,855,855,855,,,',
'855,855,749,749,749,749,749,749,,,,749,749,,,,749,,749,749,749,749,749',
'749,749,,,,,749,749,749,749,749,749,749,,,749,,,,,,749,749,749,749,749',
'749,749,749,749,749,749,749,749,749,,749,749,,749,749,749,,,,,,,,,,',
',,,,,,,,,749,,,749,,,749,749,,749,,749,,,,749,,,,,,,,749,,,,,749,749',
'749,749,749,749,,,,749,749,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,',
',,2,2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,,2,2,2,,,',
',,,,,,,,,,,,,,,,2,,,2,,,2,2,,2,,2,,,,2,,,,,,,,2,,,,,2,2,2,2,2,2,,,,2',
'2,611,611,611,611,611,611,,,,611,611,,,,611,,611,611,611,611,611,611',
'611,,,,,611,611,611,611,611,611,611,,,611,,,,,,611,611,611,611,611,611',
'611,611,611,611,611,611,611,611,,611,611,,611,611,611,,,,,,,,,,,,,,',
',,,,,611,,,611,,,611,611,,611,,611,,,,611,,,,,,,,611,,,,,611,611,611',
'611,611,611,,,,611,611,866,866,866,,866,,,,866,866,,,,866,,866,866,866',
'866,866,866,866,,,,,866,866,866,866,866,866,866,,,,,,,,,,866,,,866,866',
'866,866,866,866,866,866,866,866,,866,866,,866,866,866,,,,,,,,,,,,,,',
',,,,,866,,,866,,,866,866,,866,,,,,,866,,,,,,,,866,,,,,866,866,866,866',
'866,866,,,,866,866,60,60,60,,60,,,,60,60,,,,60,,60,60,60,60,60,60,60',
',,,,60,60,60,60,60,60,60,,,60,,,,,,,60,,,60,60,60,60,60,60,60,60,60',
'60,,60,60,,60,60,60,,,,,,,,,,,,,,,,,,,,60,,,60,,,60,60,,60,,,,,,60,',
',,,,,,60,,,,,60,60,60,60,60,60,,,,60,60,58,58,58,,58,,,,58,58,,,,58',
',58,58,58,58,58,58,58,,,,,58,58,58,58,58,58,58,,,,,,,,,,58,,,58,58,58',
'58,58,58,58,58,58,58,,58,58,,58,58,58,,,,,,,,,,,,,,,,,,,,58,,,58,58',
',58,58,,58,,58,,58,,58,,,,,,,,58,,,,,58,58,58,58,58,58,,,,58,58,57,57',
'57,,57,,,,57,57,,,,57,,57,57,57,57,57,57,57,,57,,,57,57,57,57,57,57',
'57,,,,,,,,,,57,,,57,57,57,57,57,57,57,57,57,57,,57,57,,57,57,57,,,,',
',,,,,,,,,,,,,,,57,,,57,57,,57,57,,57,,57,,57,,57,,,,,,,,57,,57,,,57',
'57,57,57,57,57,,,,57,57,69,69,69,,69,,,,69,69,,,,69,,69,69,69,69,69',
'69,69,,,,,69,69,69,69,69,69,69,,,69,,,,,,,69,,,69,69,69,69,69,69,69',
'69,69,69,,69,69,,69,69,69,,,,,,,,,,,,,,,,,,,,69,,,69,,,69,69,,69,,,',
',,69,,,,,,,,69,,,,,69,69,69,69,69,69,,,,69,69,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,76',
'76,76,,76,,,,76,76,,,,76,,76,76,76,76,76,76,76,,76,,,76,76,76,76,76',
'76,76,,,,,,,,,,76,,,76,76,76,76,76,76,76,76,76,76,,76,76,,76,76,76,',
',,,,,,,,,,,,,,,,,,76,,,76,76,,76,76,,76,,76,,76,,76,,,,,,,,76,,76,,',
'76,76,76,76,76,76,,,,76,76,875,875,875,,875,,,,875,875,,,,875,,875,875',
'875,875,875,875,875,,,,,875,875,875,875,875,875,875,,,,,,,,,,875,,,875',
'875,875,875,875,875,875,875,875,875,,875,875,,875,875,875,,,,,,,,,,',
',,,,,,,,,875,,,875,,,875,875,,875,,875,,,,875,,,,,,,,875,,,,,875,875',
'875,875,875,875,,,,875,875,667,667,667,,667,,,,667,667,,,,667,,667,667',
'667,667,667,667,667,,,,,667,667,667,667,667,667,667,,,,,,,,,,667,,,667',
'667,667,667,667,667,667,667,667,667,,667,667,,667,667,667,,,,,,,,,,',
',,,,,,,,,667,,,667,,,667,667,,667,,667,,,,667,,,,,,,,667,,,,,667,667',
'667,667,667,667,,,,667,667,638,638,638,,638,,,,638,638,,,,638,,638,638',
'638,638,638,638,638,,,,,638,638,638,638,638,638,638,,,,,,,,,,638,,,638',
'638,638,638,638,638,638,638,638,638,,638,638,,638,638,638,,,,,,,,,,',
',,,,,,,,,638,,,638,,,638,638,,638,,638,,,,638,,,,,,,,638,,,,,638,638',
'638,638,638,638,,,,638,638,84,84,84,,84,,,,84,84,,,,84,,84,84,84,84',
'84,84,84,,,,,84,84,84,84,84,84,84,,,,,,,,,,84,,,84,84,84,84,84,84,84',
'84,84,84,,84,84,,84,84,84,,,,,,,,,,,,,,,,,,,,84,,,84,,,84,84,,84,,,',
',,84,,,,,,,,84,,,,,84,84,84,84,84,84,,,,84,84,643,643,643,,643,,,,643',
'643,,,,643,,643,643,643,643,643,643,643,,,,,643,643,643,643,643,643',
'643,,,,,,,,,,643,,,643,643,643,643,643,643,643,643,643,643,,643,643',
',643,643,643,,,,,,,,,,,,,,,,,,,,643,,,643,,,643,643,,643,,,,,,643,,',
',,,,,643,,,,,643,643,643,643,643,643,,,,643,643,669,669,669,,669,,,',
'669,669,,,,669,,669,669,669,669,669,669,669,,,,,669,669,669,669,669',
'669,669,,,,,,,,,,669,,,669,669,669,669,669,669,669,669,669,669,,669',
'669,,669,669,669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,669,,669,,',
',669,,,,,,,,669,,,,,669,669,669,669,669,669,,,,669,669,727,727,727,',
'727,,,,727,727,,,,727,,727,727,727,727,727,727,727,,,,,727,727,727,727',
'727,727,727,,,,,,,,,,727,,,727,727,727,727,727,727,727,727,727,727,',
'727,727,,727,727,727,,,,,,,,,,,,,,,,,,,,727,,,727,,,727,727,,727,,,',
',,727,,,,,,,,727,,,,,727,727,727,727,727,727,,,,727,727,96,96,96,,96',
',,,96,96,,,,96,,96,96,96,96,96,96,96,,,,,96,96,96,96,96,96,96,,,,,,',
',,,96,,,96,96,96,96,96,96,96,96,96,96,,96,96,,,,96,,,,,,,,,,,,,,,,,',
',,96,,,96,,,96,96,,96,,,,,,,,,,,,,,,,,,,96,96,96,96,96,96,,,,96,96,97',
'97,97,,97,,,,97,97,,,,97,,97,97,97,97,97,97,97,,,,,97,97,97,97,97,97',
'97,,,97,,,,,,,97,,,97,97,97,97,97,97,97,97,97,97,,97,97,,97,97,97,,',
',,,,,,,,,,,,,,,,,97,,,97,,,97,97,,97,,,,,,97,,,,,,,,97,,,,,97,97,97',
'97,97,97,,,,97,97,6,6,6,,6,,,,6,6,,,,6,,6,6,6,6,6,6,6,,,,,6,6,6,6,6',
'6,6,,,,,,,,,,6,,,6,6,6,6,6,6,6,6,6,6,,6,6,,,,6,,,,,,,,,,,,,,,,,,,,6',
',,6,,,6,6,,6,,6,,,,,,,,,,,,,,,,,6,6,6,6,6,6,,,,6,6,720,720,720,,720',
',,,720,720,,,,720,,720,720,720,720,720,720,720,,,,,720,720,720,720,720',
'720,720,,,720,,,,,,,720,,,720,720,720,720,720,720,720,720,720,720,,720',
'720,,720,720,720,,,,,,,,,,,,,,,,,,,,720,,,720,,,720,720,,720,,,,,,720',
',,,,,,,720,,,,,720,720,720,720,720,720,,,,720,720,898,898,898,,898,',
',,898,898,,,,898,,898,898,898,898,898,898,898,,,,,898,898,898,898,898',
'898,898,,,,,,,,,,898,,,898,898,898,898,898,898,898,898,898,898,,898',
'898,,898,898,898,,,,,,,,,,,,,,,,,,,,898,,,898,,,898,898,,898,,,,,,898',
',,,,,,,898,,,,,898,898,898,898,898,898,,,,898,898,103,103,103,,103,',
',,103,103,,,,103,,103,103,103,103,103,103,103,,,,,103,103,103,103,103',
'103,103,,,,,,,,,,103,,,103,103,103,103,103,103,103,103,103,103,,103',
'103,,103,103,103,,,,,,,,,,,,,,,,,,,,103,,,103,,,103,103,,103,,103,,',
',103,,,,,,,,103,,,,,103,103,103,103,103,103,,,,103,103,750,750,750,',
'750,,,,750,750,,,,750,,750,750,750,750,750,750,750,,,,,750,750,750,750',
'750,750,750,,,750,,,,,,,750,,,750,750,750,750,750,750,750,750,750,750',
',750,750,,750,750,750,,,,,,,,,,,,,,,,,,,,750,,,750,,,750,750,,750,,',
',,,750,,,,,,,,750,,,,,750,750,750,750,750,750,,,,750,750,10,10,10,,10',
',,,10,10,,,,10,,10,10,10,10,10,10,10,,,,,10,10,10,10,10,10,10,,,,,,',
',,,10,,,10,10,10,10,10,10,10,10,10,10,,10,10,,10,10,10,,,,,,,,,,,,,',
',,,,,,10,,,10,,,10,10,,10,,10,,10,,10,,,,,,,,10,,,,,10,10,10,10,10,10',
',,,10,10,511,511,511,,511,,,,511,511,,,,511,,511,511,511,511,511,511',
'511,,,,,511,511,511,511,511,511,511,,,,,,,,,,511,,,511,511,511,511,511',
'511,511,511,511,511,,511,511,,511,511,511,,,,,,,,,,,,,,,,,,,,511,,,511',
',,511,511,,511,,,,,,511,,,,,,,,511,,,,,511,511,511,511,511,511,,,,511',
'511,515,515,515,,515,,,,515,515,,,,515,,515,515,515,515,515,515,515',
',,,,515,515,515,515,515,515,515,,,,,,,,,,515,,,515,515,515,515,515,515',
'515,515,515,515,,515,515,,515,515,515,,,,,,,,,,,,,,,,,,,,515,,,515,',
',515,515,,515,,515,,,,515,,,,,,,,515,,,,,515,515,515,515,515,515,,,',
'515,515,13,13,13,13,13,,,,13,13,,,,13,,13,13,13,13,13,13,13,,,,,13,13',
'13,13,13,13,13,,,13,,,,,,13,13,13,13,13,13,13,13,13,13,13,13,13,13,',
'13,13,,13,13,13,,,,,,,,,,,,,,,,,,,,13,,,13,,,13,13,,13,,13,,,,13,,,',
',,,,13,,,,,13,13,13,13,13,13,,,,13,13,59,59,59,,59,,,,59,59,,,,59,,59',
'59,59,59,59,59,59,,,,,59,59,59,59,59,59,59,,,,,,,,,,59,,,59,59,59,59',
'59,59,59,59,59,59,,59,59,,59,59,59,,,,,,,,,,,,,,,,,,,,59,,,59,,,59,59',
',59,,,,,,59,,,,,,,,59,,,,,59,59,59,59,59,59,,,,59,59,863,863,863,,863',
',,,863,863,,,,863,,863,863,863,863,863,863,863,,,,,863,863,863,863,863',
'863,863,,,,,,,,,,863,,,863,863,863,863,863,863,863,863,863,863,,863',
'863,,863,863,863,,,,,,,,,,,,,,,,,,,,863,,,863,,,863,863,,863,,,,,,863',
',,,,,,,863,,,,,863,863,863,863,863,863,,,,863,863,858,858,858,,858,',
',,858,858,,,,858,,858,858,858,858,858,858,858,,,,,858,858,858,858,858',
'858,858,,,,,,,,,,858,,,858,858,858,858,858,858,858,858,858,858,,858',
'858,,858,858,858,,,,,,,,,,,,,,,,,,,,858,,,858,,,858,858,,858,,,,,,858',
',,,,,,,858,,,,,858,858,858,858,858,858,,,,858,858,453,453,453,,453,',
',,453,453,,,,453,,453,453,453,453,453,453,453,,,,,453,453,453,453,453',
'453,453,,,,,,,,,,453,,,453,453,453,453,453,453,453,453,453,453,,453',
'453,,453,453,453,,,,,,,,,,,,,,,,,,,,453,,,453,,,453,453,,453,,,,,,453',
',,,,,,,453,,,,,453,453,453,453,453,453,,,,453,453,55,55,55,,55,,,,55',
'55,,,,55,,55,55,55,55,55,55,55,,,,,55,55,55,55,55,55,55,,,,,,,,,,55',
',,55,55,55,55,55,55,55,55,55,55,,55,55,,55,55,55,,,,,,,,,,,,,,,,,,,',
'55,,,55,55,,55,55,,55,,55,,55,,55,,,,,,,,55,,,,,55,55,55,55,55,55,,',
',55,55,120,120,120,,120,,,,120,120,,,,120,,120,120,120,120,120,120,120',
',,,,120,120,120,120,120,120,120,,,,,,,,,,120,,,120,120,120,120,120,120',
'120,120,120,120,,120,120,,120,120,120,,,,,,,,,,,,,,,,,,,,120,,,120,',
',120,120,,120,,120,,120,,120,,,,,,,,120,,,,,120,120,120,120,120,120',
',,,120,120,597,597,597,,597,,,,597,597,,,,597,,597,597,597,597,597,597',
'597,,,,,597,597,597,597,597,597,597,,,,,,,,,,597,,,597,597,597,597,597',
'597,597,597,597,597,,597,597,,597,597,597,,,,,,,,,,,,,,,,,,,,597,,,597',
',,597,597,,597,,597,,,,597,,,,,,,,597,,,,,597,597,597,597,597,597,,',
',597,597,450,450,450,,450,,,,450,450,,,,450,,450,450,450,450,450,450',
'450,,,,,450,450,450,450,450,450,450,,,450,,,,,,,450,,,450,450,450,450',
'450,450,450,450,450,450,,450,450,,450,450,450,,,,,,,,,,,,,,,,,,,,450',
',,450,,,450,450,,450,,,,,,450,,,,,,,,450,,,,,450,450,450,450,450,450',
',,,450,450,446,446,446,,446,,,,446,446,,,,446,,446,446,446,446,446,446',
'446,,,,,446,446,446,446,446,446,446,,,,,,,,,,446,,,446,446,446,446,446',
'446,446,446,446,446,,446,446,,446,446,446,,,,,,,,,,,,,,,,,,,,446,,,446',
',,446,446,,446,,,,,,446,,,,,,,,446,,,,,446,446,446,446,446,446,,,,446',
'446,445,445,445,,445,,,,445,445,,,,445,,445,445,445,445,445,445,445',
',,,,445,445,445,445,445,445,445,,,,,,,,,,445,,,445,445,445,445,445,445',
'445,445,445,445,,445,445,,445,445,445,,,,,,,,,,,,,,,,,,,,445,,,445,',
',445,445,,445,,,,,,445,,,,,,,,445,,,,,445,445,445,445,445,445,,,,445',
'445,592,592,592,,592,,,,592,592,,,,592,,592,592,592,592,592,592,592',
',,,,592,592,592,592,592,592,592,,,,,,,,,,592,,,592,592,592,592,592,592',
'592,592,592,592,,592,592,,592,592,592,,,,,,,,,,,,,,,,,,,,592,,,592,',
',592,592,,592,,,,,,592,,,,,,,,592,,,,,592,592,592,592,592,592,,,,592',
'592,130,130,130,,130,,,,130,130,,,,130,,130,130,130,130,130,130,130',
',,,,130,130,130,130,130,130,130,,,,,,,,,,130,,,130,130,130,130,130,130',
'130,130,130,130,,130,130,,130,130,130,,,,,,,,,,,,,,,,,,,,130,,,130,',
',130,130,,130,,,,,,130,,,,,,,,130,,,,,130,130,130,130,130,130,,,,130',
'130,52,52,52,,52,,,,52,52,,,,52,,52,52,52,52,52,52,52,,,,,52,52,52,52',
'52,52,52,,,52,,,,,,,52,,,52,52,52,52,52,52,52,52,52,52,,52,52,,52,52',
'52,,,,,,,,,,,,,,,,,,,,52,,,52,,,52,52,,52,,,,,,52,,,,,,,,52,,,,,52,52',
'52,52,52,52,,,,52,52,438,438,438,438,438,438,438,438,,,438,438,438,438',
'438,,,438,438,438,438,438,438,438,,,438,438,438,438,438,438,438,438',
'438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,,,438,,',
',,,,,438,438,,438,438,438,438,,438,438,,,438,,,,,438,438,438,438,,,',
',,,,,,,,,438,438,,438,438,438,438,438,438,438,438,438,,438,,,438,438',
',,50,50,50,,50,,,438,50,50,,,,50,,50,50,50,50,50,50,50,,,,,50,50,50',
'50,50,50,50,,,,,,,,,,50,,,50,50,50,50,50,50,50,50,50,50,,50,50,,50,50',
'50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,50,,50,,50,,50,,,,,,,,50,,,,',
'50,50,50,50,50,50,,,,50,50,434,434,434,,434,,,,434,434,,,,434,,434,434',
'434,434,434,434,434,,,,,434,434,434,434,434,434,434,,,434,,,,,,,434',
',,434,434,434,434,434,434,434,434,434,434,,434,434,,434,434,434,,,,',
',,,,,,,,,,,,,,,434,,,434,,,434,434,,434,,,,,,434,,,,,,,,434,,,,,434',
'434,434,434,434,434,,,,434,434,520,520,520,,520,,,,520,520,,,,520,,520',
'520,520,520,520,520,520,,,,,520,520,520,520,520,520,520,,,,,,,,,,520',
',,520,520,520,520,520,520,520,520,520,520,,520,520,,520,520,520,,,,',
',,,,,,,,,,,,,,,520,,,520,,,520,520,,520,,,,,,520,,,,,,,,520,,,,,520',
'520,520,520,520,520,,,,520,520,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,,,,,,,,351,,,,,351',
'351,351,351,351,351,,,,351,351,665,665,665,,665,,,,665,665,,,,665,,665',
'665,665,665,665,665,665,,,,,665,665,665,665,665,665,665,,,,,,,,,,665',
',,665,665,665,665,665,665,665,665,665,665,,665,665,,665,665,665,,,,',
',,,,,,,,,,,,,,,665,,,665,,,665,665,,665,,,,,,665,,,,,,,,665,,,,,665',
'665,665,665,665,665,,,,665,665,141,141,141,,141,,,,141,141,,,,141,,141',
'141,141,141,141,141,141,,,,,141,141,141,141,141,141,141,,,,,,,,,,141',
',,141,141,141,141,141,141,141,141,141,141,,141,141,,141,141,141,,,,',
',,,,,,,,,,,,,,,141,,,141,,,141,141,,141,,,,,,141,,,,,,,,141,,,,,141',
'141,141,141,141,141,,,,141,141,664,664,664,,664,,,,664,664,,,,664,,664',
'664,664,664,664,664,664,,,,,664,664,664,664,664,664,664,,,,,,,,,,664',
',,664,664,664,664,664,664,664,664,664,664,,664,664,,664,664,664,,,,',
',,,,,,,,,,,,,,,664,,,664,,,664,664,,664,,,,,,664,,,,,,,,664,,,,,664',
'664,664,664,664,664,,,,664,664,711,711,711,,711,,,,711,711,,,,711,,711',
'711,711,711,711,711,711,,,,,711,711,711,711,711,711,711,,,,,,,,,,711',
',,711,711,711,711,711,711,711,711,711,711,,711,711,,711,711,711,,,,',
',,,,,,,,,,,,,,,711,,,711,,,711,711,,711,,711,,711,,711,,,,,,,,711,,',
',,711,711,711,711,711,711,,,,711,711,145,145,145,,145,,,,145,145,,,',
'145,,145,145,145,145,145,145,145,,,,,145,145,145,145,145,145,145,,,',
',,,,,,145,,,145,145,145,145,145,145,145,145,145,145,,145,145,,145,145',
'145,,,,,,,,,,,,,,,,,,,,145,,,145,,,145,145,,145,,,,,,145,,,,,,,,145',
',,,,145,145,145,145,145,145,,,,145,145,832,832,832,,832,,,,832,832,',
',,832,,832,832,832,832,832,832,832,,,,,832,832,832,832,832,832,832,',
',,,,,,,,832,,,832,832,832,832,832,832,832,832,832,832,,832,832,,832',
'832,832,,,,,,,,,,,,,,,,,,,,832,,,832,,,832,832,,832,,832,,832,,832,',
',,,,,,832,,,,,832,832,832,832,832,832,,,,832,832,427,427,427,,427,,',
',427,427,,,,427,,427,427,427,427,427,427,427,,,,,427,427,427,427,427',
'427,427,,,,,,,,,,427,,,427,427,427,427,427,427,427,427,427,427,,427',
'427,,427,427,427,,,,,,,,,,,,,,,,,,,,427,,,427,,,427,427,,427,,427,,',
',427,,,,,,,,427,,,,,427,427,427,427,427,427,,,,427,427,829,829,829,',
'829,,,,829,829,,,,829,,829,829,829,829,829,829,829,,,,,829,829,829,829',
'829,829,829,,,,,,,,,,829,,,829,829,829,829,829,829,829,829,829,829,',
'829,829,,829,829,829,,,,,,,,,,,,,,,,,,,,829,,,829,,,829,829,,829,,829',
',829,,829,,,,,,,,829,,,,,829,829,829,829,829,829,,,,829,829,16,16,16',
',16,,,,16,16,,,,16,,16,16,16,16,16,16,16,,,,,16,16,16,16,16,16,16,,',
',,,,,,,16,,,16,16,16,16,16,16,16,16,16,16,,16,16,,16,16,16,,,,,,,,,',
',,,,,,,,,,16,,,16,,,16,16,,16,,16,,16,,16,,,,,,,,16,,,,,16,16,16,16',
'16,16,,,,16,16,154,154,154,,154,,,,154,154,,,,154,,154,154,154,154,154',
'154,154,,,,,154,154,154,154,154,154,154,,,,,,,,,,154,,,154,154,154,154',
'154,154,154,154,154,154,,154,154,,,,154,,,,,,,,,,,,,,,,,,,,154,,,154',
',,154,154,,154,,,,,,,,,,,,,,,,,,,154,154,154,154,154,154,,,,154,154',
'155,155,155,,155,,,,155,155,,,,155,,155,155,155,155,155,155,155,,,,',
'155,155,155,155,155,155,155,,,,,,,,,,155,,,155,155,155,155,155,155,155',
'155,155,155,,155,155,,155,155,155,,,,,,,,,,,,,,,,,,,,155,,,155,,,155',
'155,,155,,,,,,155,,,,,,,,155,,,,,155,155,155,155,155,155,,,,155,155',
'585,585,585,,585,,,,585,585,,,,585,,585,585,585,585,585,585,585,,,,',
'585,585,585,585,585,585,585,,,,,,,,,,585,,,585,585,585,585,585,585,585',
'585,585,585,,585,585,,585,585,585,,,,,,,,,,,,,,,,,,,,585,,,585,,,585',
'585,,585,,,,,,585,,,,,,,,585,,,,,585,585,585,585,585,585,,,,585,585',
'708,708,708,,708,,,,708,708,,,,708,,708,708,708,708,708,708,708,,,,',
'708,708,708,708,708,708,708,,,,,,,,,,708,,,708,708,708,708,708,708,708',
'708,708,708,,708,708,,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708',
'708,,708,,,,,,708,,,,,,,,708,,,,,708,708,708,708,708,708,,,,708,708',
'692,692,692,,692,,,,692,692,,,,692,,692,692,692,692,692,692,692,,,,',
'692,692,692,692,692,692,692,,,,,,,,,,692,,,692,692,692,692,692,692,692',
'692,692,692,,692,692,,692,692,692,,,,,,,,,,,,,,,,,,,,692,,,692,,,692',
'692,,692,,,,,,692,,,,,,,,692,,,,,692,692,692,692,692,692,,,,692,692',
'413,413,413,,413,,,,413,413,,,,413,,413,413,413,413,413,413,413,,,,',
'413,413,413,413,413,413,413,,,413,,,,,,,413,,,413,413,413,413,413,413',
'413,413,413,413,,413,413,,413,413,413,,,,,,,,,,,,,,,,,,,,413,,,413,',
',413,413,,413,,,,,,413,,,,,,,,413,,,,,413,413,413,413,413,413,,,,413',
'413,655,655,655,,655,,,,655,655,,,,655,,655,655,655,655,655,655,655',
',,,,655,655,655,655,655,655,655,,,,,,,,,,655,,,655,655,655,655,655,655',
'655,655,655,655,,655,655,,655,655,655,,,,,,,,,,,,,,,,,,,,655,,,655,',
',655,655,,655,,655,,655,,655,,,,,,,,655,,,,,655,655,655,655,655,655',
',,,655,655,824,824,824,,824,,,,824,824,,,,824,,824,824,824,824,824,824',
'824,,,,,824,824,824,824,824,824,824,,,,,,,,,,824,,,824,824,824,824,824',
'824,824,824,824,824,,824,824,,824,824,824,,,,,,,,,,,,,,,,,,,,824,,,824',
',,824,824,,824,,824,,,,824,,,,,,,,824,,,,,824,824,824,824,824,824,,',
',824,824,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,884,884',
',,,884,884,164,164,164,,164,,,,164,164,,,,164,,164,164,164,164,164,164',
'164,,,,,164,164,164,164,164,164,164,,,,,,,,,,164,,,164,164,164,164,164',
'164,164,164,164,164,,164,164,,,,164,,,,,,,,,,,,,,,,,,,,164,,,164,,,164',
'164,,164,,,,,,,,,,,,,,,,,,,164,164,164,164,164,164,,,,164,164,165,165',
'165,,165,,,,165,165,,,,165,,165,165,165,165,165,165,165,,,,,165,165',
'165,165,165,165,165,,,,,,,,,,165,,,165,165,165,165,165,165,165,165,165',
'165,,165,165,,,,165,,,,,,,,,,,,,,,,,,,,165,,,165,,,165,165,,165,,,,',
',,,,,,,,,,,,,,165,165,165,165,165,165,,,,165,165,408,408,408,,408,,',
',408,408,,,,408,,408,408,408,408,408,408,408,,,,,408,408,408,408,408',
'408,408,,,,,,,,,,408,,,408,408,408,408,408,408,408,408,408,408,,408',
'408,,408,408,408,,,,,,,,,,,,,,,,,,,,408,,,408,,,408,408,,408,,408,,408',
',408,,,,,,,,408,,,,,408,408,408,408,408,408,,,,408,408,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,568,568,568,,568,',
',,568,568,,,,568,,568,568,568,568,568,568,568,,,,,568,568,568,568,568',
'568,568,,,,,,,,,,568,,,568,568,568,568,568,568,568,568,568,568,,568',
'568,,568,568,568,,,,,,,,,,,,,,,,,,,,568,,,568,,,568,568,,568,,,,,,568',
',,,,,,,568,,,,,568,568,568,568,568,568,,,,568,568,767,767,767,,767,',
',,767,767,,,,767,,767,767,767,767,767,767,767,,,,,767,767,767,767,767',
'767,767,,,,,,,,,,767,,,767,767,767,767,767,767,767,767,767,767,,767',
'767,,767,767,767,,,,,,,,,,,,,,,,,,,,767,,,767,,,767,767,,767,,,,,,767',
',,,,,,,767,,,,,767,767,767,767,767,767,,,,767,767,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,405,405,405,,405,',
',,405,405,,,,405,,405,405,405,405,405,405,405,,,,,405,405,405,405,405',
'405,405,,,,,,,,,,405,,,405,405,405,405,405,405,405,405,405,405,,405',
'405,,405,405,405,,,,,,,,,,,,,,,,,,,,405,,,405,,,405,405,,405,,,,,,405',
',,,,,,,405,,,,,405,405,405,405,405,405,,,,405,405,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,695,695,695,,695,',
',,695,695,,,,695,,695,695,695,695,695,695,695,,,,,695,695,695,695,695',
'695,695,,,,,,,,,,695,,,695,695,695,695,695,695,695,695,695,695,,695',
'695,,695,695,695,,,,,,,,,,,,,,,,,,,,695,,,695,,,695,695,,695,,695,,695',
',695,,,,,,,,695,,,,,695,695,695,695,695,695,,,,695,695,530,530,530,',
'530,,,,530,530,,,,530,,530,530,530,530,530,530,530,,,,,530,530,530,530',
'530,530,530,,,,,,,,,,530,,,530,530,530,530,530,530,530,530,530,530,',
'530,530,,530,530,530,,,,,,,,,,,,,,,,,,,,530,,,530,,,530,530,,530,,,',
',,530,,,,,,,,530,,,,,530,530,530,530,530,530,,,,530,530,403,403,403',
',403,,,,403,403,,,,403,,403,403,403,403,403,403,403,,,,,403,403,403',
'403,403,403,403,,,,,,,,,,403,,,403,403,403,403,403,403,403,403,403,403',
',403,403,,403,403,403,,,,,,,,,,,,,,,,,,,,403,,,403,,,403,403,,403,,',
',,,403,,,,,,,,403,,,,,403,403,403,403,403,403,,,,403,403,402,402,402',
',402,,,,402,402,,,,402,,402,402,402,402,402,402,402,,,,,402,402,402',
'402,402,402,402,,,,,,,,,,402,,,402,402,402,402,402,402,402,402,402,402',
',402,402,,402,402,402,,,,,,,,,,,,,,,,,,,,402,,,402,,,402,402,,402,,',
',,,402,,,,,,,,402,,,,,402,402,402,402,402,402,,,,402,402,400,400,400',
',400,,,,400,400,,,,400,,400,400,400,400,400,400,400,,,,,400,400,400',
'400,400,400,400,,,,,,,,,,400,,,400,400,400,400,400,400,400,400,400,400',
',400,400,,400,400,400,,,,,,,,,,,,,,,,,,,,400,,,400,,,400,400,,400,,400',
',400,,400,,,,,,,,400,,,,,400,400,400,400,400,400,,,,400,400,262,262',
'262,,262,,,,262,262,,,,262,,262,262,262,262,262,262,262,,,,,262,262',
'262,262,262,262,262,,,262,,,,,,,262,,,262,262,262,262,262,262,262,262',
'262,262,,262,262,,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262',
',262,,,,,,262,,,,,,,,262,,,,,262,262,262,262,262,262,,,,262,262,263',
'263,263,,263,,,,263,263,,,,263,,263,263,263,263,263,263,263,,,,,263',
'263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263',
'263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263',
'263,,263,,,,,,263,,,,,,,,263,,,,,263,263,263,263,263,263,,,,263,263',
'813,813,813,,813,,,,813,813,,,,813,,813,813,813,813,813,813,813,,,,',
'813,813,813,813,813,813,813,,,,,,,,,,813,,,813,813,813,813,813,813,813',
'813,813,813,,813,813,,,,813,,,,,,,,,,,,,,,,,,,,813,,,813,,,813,813,',
'813,,,,,,,,,,,,,,,,,,,813,813,813,813,813,813,,,,813,813,397,397,397',
',397,,,,397,397,,,,397,,397,397,397,397,397,397,397,,,,,397,397,397',
'397,397,397,397,,,,,,,,,,397,,,397,397,397,397,397,397,397,397,397,397',
',397,397,,397,397,397,,,,,,,,,,,,,,,,,,,,397,,,397,,,397,397,,397,,397',
',,,397,,,,,,,,397,,,,,397,397,397,397,397,397,,,,397,397,707,707,707',
',707,,,,707,707,,,,707,,707,707,707,707,707,707,707,,,,,707,707,707',
'707,707,707,707,,,,,,,,,,707,,,707,707,707,707,707,707,707,707,707,707',
',707,707,,707,707,707,,,,,,,,,,,,,,,,,,,,707,,,707,,,707,707,,707,,',
',,,707,,,,,,,,707,,,,,707,707,707,707,707,707,,,,707,707,267,267,267',
',267,,,,267,267,,,,267,,267,267,267,267,267,267,267,,,,,267,267,267',
'267,267,267,267,,,,,,,,,,267,,,267,267,267,267,267,267,267,267,267,267',
',267,267,,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,267,,267,267,,267',
',,,,,267,,,,,,,,267,,,,,267,267,267,267,267,267,,,,267,267,385,385,385',
',385,,,,385,385,,,,385,,385,385,385,385,385,385,385,,,,,385,385,385',
'385,385,385,385,,,385,,,,,,,385,,,385,385,385,385,385,385,385,385,385',
'385,,385,385,,385,385,385,,,,,,,,,,,,,,,,,,,,385,,,385,,,385,385,,385',
',385,,385,,385,,,,,,,,385,,,,,385,385,385,385,385,385,,,,385,385,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',
'30,30,30,30,30,30,30,30,,,30,30,30,30,30,,,30,30,30,30,30,30,30,,,30',
'30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,',
'30,,,,,,,,30,30,,30,30,30,30,,30,30,,,30,,,,,30,30,30,30,,,,,,,,,,,',
',30,30,,30,30,30,30,30,30,30,30,30,,30,,,30,30,,,277,277,277,,277,,',
'30,277,277,,,,277,,277,277,277,277,277,277,277,,,,,277,277,277,277,277',
'277,277,,,,,,,,,,277,,,277,277,277,277,277,277,277,277,277,277,,277',
'277,,277,277,277,,,,,,,,,,,,,,,,,,,,277,,,277,,,277,277,,277,,,,,,277',
',,,,,,,277,,,,,277,277,277,277,277,277,,,,277,277,278,278,278,,278,',
',,278,278,,,,278,,278,278,278,278,278,278,278,,,,,278,278,278,278,278',
'278,278,,,,,,,,,,278,,,278,278,278,278,278,278,278,278,278,278,,278',
'278,,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,278,,,,,,278',
',,,,,,,278,,,,,278,278,278,278,278,278,,,,278,278,279,279,279,,279,',
',,279,279,,,,279,,279,279,279,279,279,279,279,,,,,279,279,279,279,279',
'279,279,,,,,,,,,,279,,,279,279,279,279,279,279,279,279,279,279,,279',
'279,,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,279,,,,,,279',
',,,,,,,279,,,,,279,279,279,279,279,279,,,,279,279,280,280,280,,280,',
',,280,280,,,,280,,280,280,280,280,280,280,280,,,,,280,280,280,280,280',
'280,280,,,,,,,,,,280,,,280,280,280,280,280,280,280,280,280,280,,280',
'280,,280,280,280,,,,,,,,,,,,,,,,,,,,280,,,280,,,280,280,,280,,,,,,280',
',,,,,,,280,,,,,280,280,280,280,280,280,,,,280,280,281,281,281,,281,',
',,281,281,,,,281,,281,281,281,281,281,281,281,,,,,281,281,281,281,281',
'281,281,,,,,,,,,,281,,,281,281,281,281,281,281,281,281,281,281,,281',
'281,,281,281,281,,,,,,,,,,,,,,,,,,,,281,,,281,,,281,281,,281,,,,,,281',
',,,,,,,281,,,,,281,281,281,281,281,281,,,,281,281,282,282,282,,282,',
',,282,282,,,,282,,282,282,282,282,282,282,282,,,,,282,282,282,282,282',
'282,282,,,,,,,,,,282,,,282,282,282,282,282,282,282,282,282,282,,282',
'282,,282,282,282,,,,,,,,,,,,,,,,,,,,282,,,282,,,282,282,,282,,,,,,282',
',,,,,,,282,,,,,282,282,282,282,282,282,,,,282,282,283,283,283,,283,',
',,283,283,,,,283,,283,283,283,283,283,283,283,,,,,283,283,283,283,283',
'283,283,,,,,,,,,,283,,,283,283,283,283,283,283,283,283,283,283,,283',
'283,,283,283,283,,,,,,,,,,,,,,,,,,,,283,,,283,,,283,283,,283,,,,,,283',
',,,,,,,283,,,,,283,283,283,283,283,283,,,,283,283,284,284,284,,284,',
',,284,284,,,,284,,284,284,284,284,284,284,284,,,,,284,284,284,284,284',
'284,284,,,,,,,,,,284,,,284,284,284,284,284,284,284,284,284,284,,284',
'284,,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,284,,,,,,284',
',,,,,,,284,,,,,284,284,284,284,284,284,,,,284,284,285,285,285,,285,',
',,285,285,,,,285,,285,285,285,285,285,285,285,,,,,285,285,285,285,285',
'285,285,,,,,,,,,,285,,,285,285,285,285,285,285,285,285,285,285,,285',
'285,,285,285,285,,,,,,,,,,,,,,,,,,,,285,,,285,,,285,285,,285,,,,,,285',
',,,,,,,285,,,,,285,285,285,285,285,285,,,,285,285,286,286,286,,286,',
',,286,286,,,,286,,286,286,286,286,286,286,286,,,,,286,286,286,286,286',
'286,286,,,,,,,,,,286,,,286,286,286,286,286,286,286,286,286,286,,286',
'286,,286,286,286,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,286,,,,,,286',
',,,,,,,286,,,,,286,286,286,286,286,286,,,,286,286,287,287,287,,287,',
',,287,287,,,,287,,287,287,287,287,287,287,287,,,,,287,287,287,287,287',
'287,287,,,,,,,,,,287,,,287,287,287,287,287,287,287,287,287,287,,287',
'287,,287,287,287,,,,,,,,,,,,,,,,,,,,287,,,287,,,287,287,,287,,,,,,287',
',,,,,,,287,,,,,287,287,287,287,287,287,,,,287,287,288,288,288,,288,',
',,288,288,,,,288,,288,288,288,288,288,288,288,,,,,288,288,288,288,288',
'288,288,,,,,,,,,,288,,,288,288,288,288,288,288,288,288,288,288,,288',
'288,,288,288,288,,,,,,,,,,,,,,,,,,,,288,,,288,,,288,288,,288,,,,,,288',
',,,,,,,288,,,,,288,288,288,288,288,288,,,,288,288,289,289,289,,289,',
',,289,289,,,,289,,289,289,289,289,289,289,289,,,,,289,289,289,289,289',
'289,289,,,,,,,,,,289,,,289,289,289,289,289,289,289,289,289,289,,289',
'289,,289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,289,,,,,,289',
',,,,,,,289,,,,,289,289,289,289,289,289,,,,289,289,290,290,290,,290,',
',,290,290,,,,290,,290,290,290,290,290,290,290,,,,,290,290,290,290,290',
'290,290,,,,,,,,,,290,,,290,290,290,290,290,290,290,290,290,290,,290',
'290,,290,290,290,,,,,,,,,,,,,,,,,,,,290,,,290,,,290,290,,290,,,,,,290',
',,,,,,,290,,,,,290,290,290,290,290,290,,,,290,290,291,291,291,,291,',
',,291,291,,,,291,,291,291,291,291,291,291,291,,,,,291,291,291,291,291',
'291,291,,,,,,,,,,291,,,291,291,291,291,291,291,291,291,291,291,,291',
'291,,291,291,291,,,,,,,,,,,,,,,,,,,,291,,,291,,,291,291,,291,,,,,,291',
',,,,,,,291,,,,,291,291,291,291,291,291,,,,291,291,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,,,,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,,,,293,293,294,294,294,,294,',
',,294,294,,,,294,,294,294,294,294,294,294,294,,,,,294,294,294,294,294',
'294,294,,,,,,,,,,294,,,294,294,294,294,294,294,294,294,294,294,,294',
'294,,294,294,294,,,,,,,,,,,,,,,,,,,,294,,,294,,,294,294,,294,,,,,,294',
',,,,,,,294,,,,,294,294,294,294,294,294,,,,294,294,295,295,295,,295,',
',,295,295,,,,295,,295,295,295,295,295,295,295,,,,,295,295,295,295,295',
'295,295,,,,,,,,,,295,,,295,295,295,295,295,295,295,295,295,295,,295',
'295,,295,295,295,,,,,,,,,,,,,,,,,,,,295,,,295,,,295,295,,295,,,,,,295',
',,,,,,,295,,,,,295,295,295,295,295,295,,,,295,295,296,296,296,,296,',
',,296,296,,,,296,,296,296,296,296,296,296,296,,,,,296,296,296,296,296',
'296,296,,,,,,,,,,296,,,296,296,296,296,296,296,296,296,296,296,,296',
'296,,296,296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,296,,,,,,296',
',,,,,,,296,,,,,296,296,296,296,296,296,,,,296,296,297,297,297,,297,',
',,297,297,,,,297,,297,297,297,297,297,297,297,,,,,297,297,297,297,297',
'297,297,,,,,,,,,,297,,,297,297,297,297,297,297,297,297,297,297,,297',
'297,,297,297,297,,,,,,,,,,,,,,,,,,,,297,,,297,,,297,297,,297,,,,,,297',
',,,,,,,297,,,,,297,297,297,297,297,297,,,,297,297,298,298,298,,298,',
',,298,298,,,,298,,298,298,298,298,298,298,298,,,,,298,298,298,298,298',
'298,298,,,,,,,,,,298,,,298,298,298,298,298,298,298,298,298,298,,298',
'298,,298,298,298,,,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,298,,,,,,298',
',,,,,,,298,,,,,298,298,298,298,298,298,,,,298,298,299,299,299,,299,',
',,299,299,,,,299,,299,299,299,299,299,299,299,,,,,299,299,299,299,299',
'299,299,,,,,,,,,,299,,,299,299,299,299,299,299,299,299,299,299,,299',
'299,,299,299,299,,,,,,,,,,,,,,,,,,,,299,,,299,,,299,299,,299,,,,,,299',
',,,,,,,299,,,,,299,299,299,299,299,299,,,,299,299,300,300,300,,300,',
',,300,300,,,,300,,300,300,300,300,300,300,300,,,,,300,300,300,300,300',
'300,300,,,,,,,,,,300,,,300,300,300,300,300,300,300,300,300,300,,300',
'300,,300,300,300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,300,,,,,,300',
',,,,,,,300,,,,,300,300,300,300,300,300,,,,300,300,301,301,301,,301,',
',,301,301,,,,301,,301,301,301,301,301,301,301,,,,,301,301,301,301,301',
'301,301,,,,,,,,,,301,,,301,301,301,301,301,301,301,301,301,301,,301',
'301,,301,301,301,,,,,,,,,,,,,,,,,,,,301,,,301,,,301,301,,301,,,,,,301',
',,,,,,,301,,,,,301,301,301,301,301,301,,,,301,301,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,,,,,302,302,302,302,302,302,,,,302,302,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',
'377,377,377,,377,,,,377,377,,,,377,,377,377,377,377,377,377,377,,,,',
'377,377,377,377,377,377,377,,,,,,,,,,377,,,377,377,377,377,377,377,377',
'377,377,377,,377,377,,377,377,377,,,,,,,,,,,,,,,,,,,,377,,,377,,,377',
'377,,377,,377,,,,377,,,,,,,,377,,,,,377,377,377,377,377,377,,,,377,377',
'369,369,369,,369,,,,369,369,,,,369,,369,369,369,369,369,369,369,,,,',
'369,369,369,369,369,369,369,,,,,,,,,,369,,,369,369,369,369,369,369,369',
'369,369,369,,369,369,,369,369,369,,,,,,,,,,,,,,,,,,,,369,,,369,369,',
'369,369,,369,,369,,369,,369,,,,,,,,369,,,,,369,369,369,369,369,369,',
',,369,369,634,634,634,634,634,634,634,634,,,634,634,634,634,634,,,634',
'634,634,634,634,634,634,,,634,634,634,634,634,634,634,634,634,634,634',
'634,634,634,634,634,634,634,634,634,634,634,634,,,634,,,,,,,,634,634',
',634,634,634,634,,634,634,,,634,,,,,634,634,634,634,,,,,,,,,,,,,634',
'634,,634,634,634,634,634,634,634,634,634,,634,,,634,634,28,28,28,28',
'28,28,28,28,,634,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,28,28,28,28,28,,28,,,28,28,,,789,789,789,,789,,,28,789',
'789,,,,789,,789,789,789,789,789,789,789,,,,,789,789,789,789,789,789',
'789,,,,,,,,,,789,,,789,789,789,789,789,789,789,789,789,789,,789,789',
',789,789,789,,,,,,,,,,,,,,,,,,,,789,,,789,,,789,789,,789,,,,,,789,,',
',,,,,789,,,,,789,789,789,789,789,789,,,,789,789,367,367,367,,367,,,',
'367,367,,,,367,,367,367,367,367,367,367,367,,,,,367,367,367,367,367',
'367,367,,,,,,,,,,367,,,367,367,367,367,367,367,367,367,367,367,,367',
'367,,367,367,367,,,,,,,,,,,,,,,,,,,,367,,,367,367,,367,367,,367,,367',
',367,,367,,,,,,,,367,,,,,367,367,367,367,367,367,,,,367,367,314,314',
'314,,314,,,,314,314,,,,314,,314,314,314,314,314,314,314,,,,,314,314',
'314,314,314,314,314,,,,,,,,,,314,,,314,314,314,314,314,314,314,314,314',
'314,,314,314,,314,314,314,,,,,,,,,,,,,,,,,,,,314,,,314,,314,314,314',
',314,,314,,314,,314,,,,,,,,314,,,,,314,314,314,314,314,314,,,,314,314',
'315,315,315,,315,,,,315,315,,,,315,,315,315,315,315,315,315,315,,,,',
'315,315,315,315,315,315,315,,,315,,,,,,,315,,,315,315,315,315,315,315',
'315,315,315,315,,315,315,,315,315,315,,,,,,,,,,,,,,,,,,,,315,,,315,',
',315,315,,315,,,,,,315,,,,,,,,315,,,,,315,315,315,315,315,315,,,,315',
'315,316,316,316,,316,,,,316,316,,,,316,,316,316,316,316,316,316,316',
',,,,316,316,316,316,316,316,316,,,316,,,,,,,316,,,316,316,316,316,316',
'316,316,316,316,316,,316,316,,316,316,316,,,,,,,,,,,,,,,,,,,,316,,,316',
',,316,316,,316,,,,,,316,,,,,,,,316,,,,,316,316,316,316,316,316,,,,316',
'316,317,317,317,,317,,,,317,317,,,,317,,317,317,317,317,317,317,317',
',,,,317,317,317,317,317,317,317,,,317,,,,,,,317,,,317,317,317,317,317',
'317,317,317,317,317,,317,317,,317,317,317,,,,,,,,,,,,,,,,,,,,317,,,317',
',,317,317,,317,,,,,,317,,,,,,,,317,,,,,317,317,317,317,317,317,,,,317',
'317,318,318,318,,318,,,,318,318,,,,318,,318,318,318,318,318,318,318',
',,,,318,318,318,318,318,318,318,,,318,,,,,,,318,,,318,318,318,318,318',
'318,318,318,318,318,,318,318,,318,318,318,,,,,,,,,,,,,,,,,,,,318,,,318',
',,318,318,,318,,,,,,318,,,,,,,,318,,,,,318,318,318,318,318,318,,,,318',
'318,319,319,319,319,319,,,,319,319,,,,319,,319,319,319,319,319,319,319',
',,,,319,319,319,319,319,319,319,,,319,,,,,,319,319,319,319,319,319,319',
'319,319,319,319,319,319,319,,319,319,,319,319,319,,,,,,,,,,,,,,,,,,',
',319,,,319,,,319,319,,319,,319,,,,319,,,,,,,,319,,,,,319,319,319,319',
'319,319,,,,319,319,322,322,322,,322,,,,322,322,,,,322,,322,322,322,322',
'322,322,322,,,,,322,322,322,322,322,322,322,,,,,,,,,,322,,,322,322,322',
'322,322,322,322,322,322,322,,322,322,,322,322,322,,,,,,,,,,,,,,,,,,',
',322,,,322,,,322,322,,322,,322,,322,,322,,,,,,,,322,,,,,322,322,322',
'322,322,322,,,,322,322,20,20,20,,20,,,,20,20,,,,20,,20,20,20,20,20,20',
'20,,,,,20,20,20,20,20,20,20,,,,,,,,,,20,,,20,20,20,20,20,20,20,20,20',
'20,,20,20,,20,20,20,,,,,,,,,,,,,,,,,,,,20,,,20,,,20,20,,20,,,,,,20,',
',,,,,,20,,,,,20,20,20,20,20,20,,,,20,20,365,365,365,,365,,,,365,365',
',,,365,,365,365,365,365,365,365,365,,,,,365,365,365,365,365,365,365',
',,,,,,,,,365,,,365,365,365,365,365,365,365,365,365,365,,365,365,,365',
'365,365,,,,,,,,,,,,,,,,,,,,365,,,365,365,,365,365,,365,,365,,365,,365',
',,,,,,,365,,,,,365,365,365,365,365,365,,,,365,365,355,355,355,,355,',
',,355,355,,,,355,,355,355,355,355,355,355,355,,,,,355,355,355,355,355',
'355,355,,,355,,,,,,,355,,,355,355,355,355,355,355,355,355,355,355,,355',
'355,,355,355,355,,,,,,,,,,,,,,,,,,,,355,,,355,,,355,355,,355,,,,,,355',
',,,,,,,355,,,,,355,355,355,355,355,355,,,,355,355,552,552,552,,552,',
',,552,552,,,,552,,552,552,552,552,552,552,552,,,,,552,552,552,552,552',
'552,552,,,,,,,,,,552,,,552,552,552,552,552,552,552,552,552,552,,552',
'552,,552,552,552,,,,,,,,,,,,,,,,,,,,552,,,552,,,552,552,,552,,,,,,552',
',,,,,,,552,,,,,552,552,552,552,552,552,,,,552,552,787,787,787,,787,',
',,787,787,,,,787,,787,787,787,787,787,787,787,,,,,787,787,787,787,787',
'787,787,,,,,,,,,,787,,,787,787,787,787,787,787,787,787,787,787,,787',
'787,,787,787,787,,,,,,,,,,,,,,,,,,,,787,,,787,,,787,787,,787,,,,,,787',
',,,,,,,787,,,,,787,787,787,787,787,787,,,,787,787,551,551,551,,551,',
',,551,551,,,,551,,551,551,551,551,551,551,551,,,,,551,551,551,551,551',
'551,551,,,,,,,,,,551,,,551,551,551,551,551,551,551,551,551,551,,551',
'551,,551,551,551,,,,,,,,,,,,,,,,,,,,551,,,551,,,551,551,,551,,,,,,551',
',,,,,,,551,,,,,551,551,551,551,551,551,,,,551,551,25,25,25,,25,,,,25',
'25,,,,25,,25,25,25,25,25,25,25,,,,,25,25,25,25,25,25,25,,,,,,,,,,25',
',,25,25,25,25,25,25,25,25,25,25,,25,25,,25,25,25,,,,,,,,,,,,,,,,,,,',
'25,,,25,,,25,25,,25,,,,,,25,,,,,,,,25,,,,,25,25,25,25,25,25,,,,25,25',
'333,333,333,,333,,,,333,333,,,,333,,333,333,333,333,333,333,333,,,,',
'333,333,333,333,333,333,333,,,,,,,,,,333,,,333,333,333,333,333,333,333',
'333,333,333,,333,333,,333,333,333,,,,,,,,,,,,,,,,,,,,333,,,333,,,333',
'333,,333,,,,,,333,,,,,,,,333,,,,,333,333,333,333,333,333,,,,333,333',
'354,354,354,,354,,,,354,354,,,,354,,354,354,354,354,354,354,354,,,,',
'354,354,354,354,354,354,354,,,,,,,,,,354,,,354,354,354,354,354,354,354',
'354,354,354,,354,354,,354,354,354,,,,,,,,,,,,,,,,,,,,354,,,354,,,354',
'354,,354,,,,,,354,,,,,,,,354,,,,,354,354,354,354,354,354,,,,354,354',
'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,,,,,,,,335,,,,,335,335,335,335,335,335,,,,335,335',
'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',
'779,779,779,,779,,,,779,779,,,,779,,779,779,779,779,779,779,779,,,,',
'779,779,779,779,779,779,779,,,,,,,,,,779,,,779,779,779,779,779,779,779',
'779,779,779,,779,779,,779,779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779',
'779,,779,,,,,,779,,,,,,,,779,,,,,779,779,779,779,779,779,,,,779,779',
'545,545,545,,545,,,,545,545,,,,545,,545,545,545,545,545,545,545,,,,',
'545,545,545,545,545,545,545,,,,,,,,,,545,,,545,545,545,545,545,545,545',
'545,545,545,,545,545,,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545',
'545,,545,,,,,,545,,,,,,,,545,,,,,545,545,545,545,545,545,,,,545,545',
'352,352,352,,352,,,,352,352,,,,352,,352,352,352,352,352,352,352,,,,',
'352,352,352,352,352,352,352,,,352,,,,,,,352,,,352,352,352,352,352,352',
'352,352,352,352,,352,352,,352,352,352,,,,,,,,,,,,,,,,,,,,352,,,352,',
',352,352,,352,,,,,,352,,,,,,,,352,,,,,352,352,352,352,352,352,,,,352',
'352,776,776,776,,776,,,,776,776,,,,776,,776,776,776,776,776,776,776',
',,,,776,776,776,776,776,776,776,,,,,,,,,,776,,,776,776,776,776,776,776',
'776,776,776,776,,776,776,,776,776,776,,,,,,,,,,,,,,,,,,,,776,,,776,',
',776,776,,776,,,,,,776,,,,,,,,776,,,,,776,776,776,776,776,776,,,,776',
'776,706,706,706,,706,,,,706,706,,,,706,,706,706,706,706,706,706,706',
',,,,706,706,706,706,706,706,706,,,,,,,,,,706,,,706,706,706,706,706,706',
'706,706,706,706,,706,706,,706,706,706,,,,,,,,,,,,,,,,,,,,706,,,706,',
',706,706,,706,,,,,,706,,,,,,,,706,,,,,706,706,706,706,706,706,,,,706',
'706,21,21,21,,21,,,,21,21,,,,21,,21,21,21,21,21,21,21,,,,,21,21,21,21',
'21,21,21,,,,,,,,,,21,,,21,21,21,21,21,21,21,21,21,21,,21,21,,,,21,,',
',,,,,,,,,,,,,,,,,21,,,21,,,21,21,,21,,21,,,,,,,,,,,,,,,,,21,21,21,21',
'21,21,,,,21,21,764,764,764,,764,,,,764,764,,,,764,,764,764,764,764,764',
'764,764,,,,,764,764,764,764,764,764,764,,,,,,,,,,764,,,764,764,764,764',
'764,764,764,764,764,764,,764,764,,764,764,764,,,,,,,,,,,,,,,,,,,,764',
',,764,,,764,764,,764,,,,,,764,,,,,,,,764,,,,,764,764,764,764,764,764',
',,,764,764,26,26,26,26,26,26,26,26,,,26,26,26,26,26,,,26,26,26,26,26',
'26,26,,,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26',
'26,26,26,26,26,26,26,,,,,,,26,26,,26,26,26,26,,26,26,,,26,,,,,26,26',
'26,26,,,,,,26,,,,,,,26,26,,26,26,26,26,26,26,26,26,26,,26,,,26,81,81',
'81,81,81,81,81,81,,,81,81,81,81,81,,,81,81,81,81,81,81,81,,,81,81,81',
'81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81',
'81,,,,,,,81,81,,81,81,81,81,,81,81,,,81,,,,,81,81,81,81,,,,,,,,,,,,',
'81,81,,81,81,81,81,81,81,81,81,81,,81,,,81,632,632,632,632,632,632,632',
'632,,,632,632,632,632,632,,,632,632,632,632,632,632,632,,,632,632,632',
'632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632',
'632,632,632,,,632,,,,,,,,632,632,,632,632,632,632,,632,632,,,632,,,',
',632,632,632,632,,,,,,,,,,,,,632,632,,632,632,632,632,632,632,632,632',
'632,,632,874,874,632,,874,,,,,,,,874,874,,874,874,874,874,,874,874,',
',874,,,,,874,874,874,874,,,,,,,,,,,,,874,874,,874,874,874,874,874,874',
'874,874,874,,874,423,423,874,,423,,,,,,,,423,423,,423,423,423,423,,423',
'423,,,423,,,,,423,423,423,423,,,,,,,,,,,,,423,423,,423,423,423,423,423',
'423,423,423,423,,423,424,424,423,,424,,,,,,,,424,424,,424,424,424,424',
',424,424,,,424,,,,,424,424,424,424,,,,,,,,,,,,,424,424,,424,424,424',
'424,424,424,424,424,424,,424,425,425,424,,425,,,,,,,,425,425,,425,425',
'425,425,,425,425,,,425,,,,,425,425,425,425,,,,,,,,,,,,,425,425,,425',
'425,425,425,425,425,425,425,425,,425,426,426,425,,426,,,,,,,,426,426',
',426,426,426,426,,426,426,,,426,,,,,426,426,426,426,,,,,,,,,,,,,426',
'426,,426,426,426,426,426,426,426,426,426,,426,395,395,426,,395,,,,,',
',,395,395,,395,395,395,395,,395,395,,,395,,,,,395,395,395,395,,,,,,',
',,,,,,395,395,,395,395,395,395,395,395,395,395,395,,395,,,395,837,837',
'837,837,837,837,837,837,837,837,837,,837,837,,,837,837,,,,,,,,,,,,,',
'837,,837,,837,837,837,837,837,837,837,,837,,,,,,,873,873,,,873,,,,,837',
',837,873,873,,873,873,873,873,,873,873,,,873,,,,,873,873,873,873,,,',
',,,,,,,,,873,873,,873,873,873,873,873,873,873,873,873,,873,396,396,873',
',396,,,,,,,,396,396,,396,396,396,396,,396,396,,,396,,,,,396,396,396',
'396,,,,,,,,,,,,,396,396,,396,396,396,396,396,396,396,396,396,,396,101',
'101,396,,101,,,,,,,,101,101,,101,101,101,101,,101,101,,,101,,,,,101',
'101,101,101,,,,,,,,,,,,,101,101,,101,101,101,101,101,101,101,101,101',
',101,376,376,101,,376,,,,,,,,376,376,,376,376,376,376,,376,376,,,376',
',,,,376,376,376,376,,,,,,,,,,,,,376,376,,376,376,376,376,376,376,376',
'376,376,,376,654,654,376,,654,,,,,,,,654,654,,654,654,654,654,,654,654',
',,654,,,,,654,654,654,654,,,,,,,,,,,,,654,654,,654,654,654,654,654,654',
'654,654,654,,654,595,595,654,,595,,,,,,,,595,595,,595,595,595,595,,595',
'595,,,595,,,,,595,595,595,595,,,,,,,,,,,,,595,595,,595,595,595,595,595',
'595,595,595,595,,595,327,327,595,,327,,,,,,,,327,327,,327,327,327,327',
',327,327,,,327,,,,,327,327,327,327,,,,,,,,,,,,,327,327,,327,327,327',
'327,327,327,327,327,327,,327,102,102,327,,102,,,,,,,,102,102,,102,102',
'102,102,,102,102,,,102,,,,,102,102,102,102,,,,,,,,,,,,,102,102,,102',
'102,102,102,102,102,102,102,102,,102,375,375,102,,375,,,,,,,,375,375',
',375,375,375,375,,375,375,,,375,,,,,375,375,375,375,,,,,,,,,,,,,375',
'375,,375,375,375,375,375,375,375,375,375,,375,596,596,375,,596,,,,,',
',,596,596,,596,596,596,596,,596,596,,,596,,,,,596,596,596,596,,,,,,',
',,,,,,596,596,,596,596,596,596,596,596,596,596,596,,596,653,653,596',
',653,,,,,,,,653,653,,653,653,653,653,,653,653,,,653,,,,,653,653,653',
'653,,,,,,,,,,,,,653,653,,653,653,653,653,653,653,653,653,653,,653,326',
'326,653,,326,,,,,,,,326,326,,326,326,326,326,,326,326,,,326,,,,,326',
'326,326,326,,,,,,,,,,,,,326,326,,326,326,326,326,326,326,326,326,326',
',326,,,326,566,566,566,566,566,566,566,566,566,566,566,,566,566,,,566',
'566,,,,566,,,,,,,,,,566,,566,,566,566,566,566,566,566,566,,566,,,,,',
',,,,,,,,,,566,,566,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',
',449,449,449,449,449,449,449,449,449,449,449,,449,449,460,460,449,449',
',,,,,,,,,,,,,449,,449,,449,449,449,449,449,449,449,,449,538,538,538',
'538,538,538,538,538,538,538,538,,538,538,,449,538,538,,,,,,,,,,,,,,538',
',538,,538,538,538,538,538,538,538,,538,44,44,44,44,44,44,44,44,44,44',
'44,,44,44,,538,44,44,,,,,,,,,,,,,,44,,44,,44,44,44,44,44,44,44,,44,773',
'773,773,773,773,773,773,773,773,773,773,,773,773,,44,773,773,,,,,,,',
',,,,,,773,,773,,773,773,773,773,773,773,773,,773,513,513,513,513,513',
'513,513,513,513,513,513,,513,513,,773,513,513,,,,,,,,,,,,,,513,,513',
',513,513,513,513,513,513,513,,513,761,761,761,761,761,761,761,761,761',
'761,761,,761,761,513,513,761,761,,,,,,,,,,,,,,761,,761,,761,761,761',
'761,761,761,761,,761,762,762,762,762,762,762,762,762,762,762,762,,762',
'762,761,761,762,762,,,,,,,,,,,,,,762,,762,,762,762,762,762,762,762,762',
',762,684,684,684,684,684,684,684,684,684,684,684,,684,684,,762,684,684',
',,,,,,,,,,,,,684,,684,,684,684,684,684,684,684,684,,684,686,686,686',
'686,686,686,686,686,686,686,686,,686,686,,684,686,686,,,,,,,,,,,,,,686',
',686,,686,686,686,686,686,686,686,,686,688,688,688,688,688,688,688,688',
'688,688,688,,688,688,,686,688,688,,,,,,,,,,,,,,688,,688,,688,688,688',
'688,688,688,688,,688,137,137,137,137,137,137,137,137,137,137,137,,137',
'137,,688,137,137,,,,,,,,,,,,,,137,,137,,137,137,137,137,137,137,137',
',137,421,421,421,421,421,421,421,421,421,421,421,,421,421,,137,421,421',
',,,,,,,,,,,,,421,,421,,421,421,421,421,421,421,421,,421,690,690,690',
'690,690,690,690,690,690,690,690,,690,690,,421,690,690,,,,,,,,,,,,,,690',
',690,,690,690,690,690,690,690,690,,690,748,748,748,748,748,748,748,748',
'748,748,748,,748,748,,690,748,748,,,,,,,,,,,,,,748,,748,,748,748,748',
'748,748,748,748,,748,641,641,641,641,641,641,641,641,641,641,641,,641',
'641,,748,641,641,,,,,,,,,,,,,,641,,641,,641,641,641,641,641,641,641',
',641,,,,,,,,,,,,,,,,641' ]
        racc_action_check = arr = Array.new(23770, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

racc_action_pointer = [
   nil,    34,  4296,  1012,   nil,   402,  6457,     7,   nil,   885,
  7057,   nil,   nil,  7417,   nil,   872, 10649,   -10,   915,   318,
 19383, 21303,   nil,   nil,   868, 20103, 21543,   nil, 18191, 17721,
 14489,   406,   nil,   nil,   251,   nil,    95,   868,   nil,   nil,
   455,   934,   nil,   -93, 23118,   876,   nil,   nil,   nil,   954,
  9209,   nil,  8977,  3933,   nil,  8017,  1308,  4897,  4777,  7537,
  4657,   nil,   340,   126,   nil,   nil,   nil,   nil,   nil,  5017,
   nil,   nil,   nil,   nil,  5137,   nil,  5257,   nil,   851,   776,
   nil, 21652,   nil,   nil,  5737,   nil,   nil,   nil,   848,   nil,
   553,   nil,   nil,   nil,   878,   nil,  6217,  6337,   nil,   240,
   nil, 22345, 22640,  6817,   286,    12,   nil,   nil,    19,   580,
   -14,   818,   913,   875,   nil,   840,   839,   nil,   nil,   nil,
  8137,   nil,   823,   828,   nil,   nil,   795,   147,   nil,   259,
  8857,   786,   -72,   825,   nil,   210,   856, 23470,   nil,  3570,
   nil,  9809,   nil,   773,   816, 10169,   769,   725,   767,   -36,
   nil,   nil,   nil,   nil, 10769, 10889,   390,   nil,   373,   285,
   759,   405,   816,  3086, 11849, 11969,   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,   220,   nil,   nil,   nil,   nil,   198,   nil,   nil,
   -53,   nil,   nil,   193,   -49,   nil,   nil,   nil,   nil,   -52,
   nil,   nil,   nil,   195,   226,   nil,   309,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   394,   nil,   nil,   nil,   nil,   803,
   nil,   738, 13529, 13649,   796,   794,  2723, 14129,   nil,   nil,
   902,   nil,   nil,   nil,   353,   747,   nil, 14601, 14721, 14841,
 14961, 15081, 15201, 15321, 15441, 15561, 15681, 15801, 15921, 16041,
 16161, 16281, 16401, 16521, 16641, 16761, 16881, 17001, 17121, 17241,
 17361, 17481, 17601,  2239,   nil,   nil,   nil,   630,    48,   766,
   724,   723,  1997,   nil, 18543, 18663, 18783, 18903, 19023, 19143,
   nil,   nil, 19263,   nil,   nil,    32, 22876, 22581,   616,   712,
   240,   nil,   678, 20223,   171, 20463,   265,   663,   354,   nil,
   nil,   119,   nil,   nil,   nil,   675,   241,   nil,    90,   -56,
   nil,  9569, 20943,   186, 20343, 19623,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   694,   nil, 19503,     0, 18423,   247, 17961,
   nil,   515,   nil,   450,   686, 22699, 22404, 17841,   nil,   nil,
   689,   nil,   153,   nil,   nil, 14249,   nil,   nil,   nil,   113,
   117,   nil,   -39,   nil,   nil, 22115, 22286, 13889,   nil,   nil,
 13409,   nil, 13289, 13169,   305, 12689, 12569,   646, 12089,   nil,
   nil,   642,   nil, 11369,   371,   nil,   -25,   nil,    10,   159,
   251, 23514,   nil, 21879, 21938, 21997, 22056, 10409,   nil,   523,
   670,   nil,   nil,   659,  9329,   nil,   nil,   nil,  9097,   nil,
   nil,   nil,   nil,   nil,   nil,  8617,  8497,   744,   741, 23030,
  8377,  1271,   nil,  7897,  1392,  1029,   678,  2602,  1150,   671,
 22985,  1271,   -44,  1005,  1392,   645,  1126,  1513,  2360,  1876,
  2118,  2481,  2965,  2239,   668,  1997,  2844,  2723,   662,  1755,
  1634,   601,    77,   nil,   nil,  3207,   686,   nil,   568,   604,
   602,   nil,   nil,   nil,   nil,   nil,   nil,   600,   659,   561,
    14,   554,  2481,   661,   nil,   nil,   607,   550,   nil,   nil,
   nil,  7177,   nil, 23206,   nil,  7297,   nil,   nil,   776,   nil,
  9449,   542,  2118,   nil,   649,   640,   nil,   nil,   nil,   nil,
 13049,   nil,   nil,   nil,   528,   nil,    23,   nil, 23074,   nil,
   147,  1634,   510,   537,   nil, 20823, 20583,   511,   nil,   nil,
   nil, 19983, 19743,   329,   513,   220,    23,   489,   -19,   127,
   482, 12809,   438,   -33,   nil,   nil, 22923,   469, 12329,   108,
   nil,   nil, 12209,   nil,   nil,   nil,   nil,   497,   377,   330,
   328,   463,   455,   nil,   nil, 11009,   nil,   902,   417,   nil,
   371,   389,  8737,   nil,   152, 22522, 22758,  8257,   nil,   nil,
   255,   329,   nil,   nil,   nil,   547,   510,   380,   248,   361,
   nil,  4417,   nil,   370,   354,   416,   272,   250,   nil,   207,
   nil,   167,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   610,
  2602,   -32, 21761,   nil, 18081,    99,    55,    44,  5617,   nil,
   174, 23646,   624,  5857,   nil,   nil,   497,   nil,   -71,   nil,
   nil,    90,   128, 22817, 22463, 11489,   371,   nil,   nil,   nil,
   nil,   305,   nil,   nil,  9929,  9689,   nil,  5497,   435,  5977,
   nil,   453,   nil,   nil,   nil,   nil,   nil,   361,   nil,   nil,
   nil,   nil,   nil,   nil, 23338,   nil, 23382,   nil, 23426,   nil,
 23558,   nil, 11249,   134,    59, 12929,   nil, 14369,   502,   nil,
   471,   nil,  1029,   497,   nil,  1755, 21183, 14009, 11129,   214,
   535, 10049,   nil,   546,   415,   nil,   549,   519,   594,   nil,
  6577,  2965,   457,   682,   nil,   nil,   nil,  6097,   720,   nil,
   627,   nil,   427,   nil,   593,   711,   637,   nil,   nil,  1513,
   719,   nil,   nil,   603,   645,   nil,   nil,   nil, 23602,  4175,
  6937,   728,   nil,   nil,   nil,   651,   652,   714,   -29,   738,
   nil, 23250, 23294,   632, 21423,   nil,   -10, 12449,   650,   nil,
  1150,  1271,   nil, 23162,   nil,   nil, 21063,   664,   nil, 20703,
   667,   nil,   nil,  1876,   792,   nil,   693, 19863,   nil, 18303,
   nil,   nil,   nil,   296,   810,   nil,   nil,   696,   697,   nil,
   nil,   nil,   704,   711,   763,   nil,   nil,   665,   nil,   nil,
  2360,   nil,    19, 13769,   nil,   852,    -6,   nil,   776,   nil,
   nil,   nil,  2844,   nil, 11609,   861,   863,  3328,   760, 10529,
   nil,   768, 10289,   nil,   786,   nil,   nil, 22162,  3449,   nil,
   nil,   473,   nil,   nil,   nil,   nil,  3691,   nil,  3812,   496,
   209,   224,   865,   nil,   nil,  4054,   nil,    34,  7777,   nil,
   nil,   920,   nil,  7657,   nil,   813,  4537,   nil,   nil,   932,
   817,   934,   952, 22227, 21820,  5377,   404,   481,   nil,   nil,
   nil,   nil,   nil,   861, 11729,   nil,   864,   nil,   nil,   nil,
   nil,   118,   550,    47,    33,   919,   nil,   nil,  6697,   nil,
   289,   894,   nil ]

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

clist = [
'137,134,138,112,329,131,137,134,138,386,157,131,253,119,253,167,524',
'208,256,259,256,500,118,637,363,369,321,584,119,393,216,626,216,374',
'216,630,147,251,598,260,137,134,138,516,485,131,356,140,658,323,273',
'660,311,151,570,574,309,448,324,533,100,502,801,674,137,128,332,676',
'798,418,803,150,340,482,137,122,99,267,242,346,432,12,740,345,321,216',
'152,306,510,336,751,388,514,137,567,332,383,565,634,160,603,759,272',
'119,528,365,529,783,569,220,137,134,138,435,431,131,266,729,507,731',
'137,733,352,313,770,355,320,771,561,827,331,323,310,154,721,137,413',
'100,584,714,347,272,350,838,165,421,611,645,100,433,632,380,807,341',
'422,698,749,384,390,331,705,119,430,389,353,702,309,766,880,669,744',
'119,119,801,812,308,276,349,275,127,392,870,438,325,149,682,542,541',
'339,720,734,797,261,270,809,800,2,434,1,,,,338,,,671,,,,,,,,,,,,715',
'310,,,775,,,,,,626,,,,,,,701,,,,,,,,310,,,,,,,503,506,531,,,,,,449,',
',,,,,,,,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469',
'470,471,472,473,474,475,476,477,478,479,480,451,576,,,842,843,557,658',
'660,879,844,137,134,138,560,,131,,489,137,134,498,309,,131,363,369,',
'896,584,513,,518,,581,,,,544,,,519,,,,584,,,137,496,,538,,742,557,525',
'557,535,490,,539,758,,,609,,499,,,,,,,,137,,332,888,,512,,,566,564,',
'497,365,562,,481,,,,,137,,332,137,310,421,137,,587,538,,137,365,272',
',723,590,,626,,,,846,,,7,,,,,137,,332,7,735,253,7,,550,7,365,256,365',
'683,543,,331,687,635,636,547,492,493,494,495,216,641,401,573,573,633',
'890,,,,,331,,,584,,,,7,,7,7,,,,,,7,7,,,,,536,,,540,7,604,,,331,7,,,',
',7,,,,,,,,,,,,137,822,,,137,,7,,,137,584,794,7,,,,146,,557,137,,544',
'146,,,,718,,,7,,,642,,684,686,878,573,651,652,688,690,,685,,,661,848',
'7,689,691,855,662,,,,146,137,550,,,550,,646,7,,,,703,,657,,7,659,137',
'755,756,,119,,656,137,,,,,137,118,332,,348,,,,,,,675,365,,668,675,,',
',,,,,,,,550,,,,,253,,677,,,737,256,573,,146,137,869,,,,748,,,216,871',
'216,,,,,738,,137,,757,,,590,,,331,761,762,,137,,137,,,,719,,,,,,,,736',
'7,7,,,7,726,,,7,,773,,694,137,,137,778,,,774,777,741,745,,684,688,690',
',,137,741,,,,,,,,,,741,7,,,,137,,,589,,7,,7,7,7,7,7,7,,,7,,,,,,,,,,',
',,7,,,,,,,,,137,,675,137,,,,7,7,,7,7,137,,,137,,,,,804,,791,773,,837',
',784,,,786,,,7,,,,,,,,7,811,557,818,,814,820,,,,895,,7,,,,550,550,,137',
',,,808,137,119,146,137,7,,,,865,815,501,,,,,,,,7,,,,,521,793,7,,,,137',
'825,826,,,137,,839,137,94,521,,7,,834,,7,137,,332,94,,,,5,816,137,696',
'104,365,,,129,,,5,,,129,,137,847,,158,,,,7,,,,,,857,,712,,,861,,94,',
',,7,741,,,,,,,129,,129,5,,,,872,,129,129,331,7,741,877,,,,,129,,,,,129',
',,,,129,,7,,,,7,,,,,,7,7,,,,158,129,,,,7,,129,,,,,,,,,,,,,,,,,129,,',
',94,,,,,,,,,,,,,7,,5,,,,782,,,,,94,,,7,,788,414,129,790,,,,,,,5,158',
'414,,,,,7,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,19,,,,108,,,,,,,19,830',
',,833,,,,159,,,,,7,,,,,,,,,,7,,,7,,,,,,94,,,,94,,,,19,7,7,129,129,,',
'5,,307,,5,862,,,864,521,307,,,7,868,,,,,328,,,94,7,7,,,,,307,,94,,,',
',159,5,94,,768,,885,,7,7,5,357,129,129,129,129,129,5,,,129,7,,,897,',
',899,,,,,780,129,,,,,,,,,902,19,,,,,7,129,129,,129,129,,,,,415,,7,,',
',,7,,19,159,415,,,,,,129,7,,,,,,,129,7,,7,,,,,,,7,,129,,,,,,,,,,,,,',
',36,129,,7,110,,,,,,,36,,,,129,,,,161,,,129,,195,,,94,,,,,,,,,,,129',
',,,5,,,,,,,,398,36,,,,,,,94,,19,,,,19,407,443,444,,,,,,5,,94,,,,,,,',
',,,,,,,5,,,,161,94,,19,,,,,,,,,19,,,,5,,,19,94,,,,,307,307,307,307,',
',,,,,5,,,,129,,,,36,,129,129,,,,,,,,,129,,,195,,78,,307,,117,307,104',
'36,161,195,,78,,,,,,,,,,,,,,,,,,,94,129,,,,328,,,,,,,,,,5,,,,94,,78',
',,,,,,,,,,,594,5,,,,,,,,,,,,,,,,,,,,631,,,,,129,,,,,19,,,,,,640,517',
',,,,,,,,36,,,,36,,,534,,,,94,,,94,19,129,,,,,,,,,,5,78,,5,94,,19,,,',
',36,,,,563,,,129,5,36,,94,,,78,19,36,,,582,,94,586,,,,5,591,,,,,,,19',
'678,5,129,,,,,94,94,,,,,,,,,,,,94,,5,5,,,,,,307,108,,,,,5,,,,,,,,,,',
',94,,,,,,,,,,,,94,,,5,,94,849,,,,19,,,,,5,94,,,,5,,,78,94,,94,78,,19',
',5,,94,,,582,,,5,663,5,,,,666,,,5,,,,,,,663,,36,,,78,,,,,,,,129,78,',
',,,,,78,,,,,,,,,,,,36,,,,,700,,,,,,,,19,,,19,36,,,,,710,,,,,,,713,,',
'19,,,,,36,,,,307,,,,,,,,,19,,,,,,36,,,,19,,,,,,,,,,,307,,,,743,,,,,',
'19,19,,,,,110,,,,,591,,19,,,,,,,,,,763,,517,,,,,,,,,,,,,,,19,,78,850',
',36,,,,,,582,19,,,,,19,,,,,,,36,,,582,19,,,,,78,,,19,,19,,,,,796,,19',
',,,,78,,,,,,,,,,,,,,,,,,,,78,,,,,,,,,,821,,,823,,,,,,78,,,828,,,831',
'36,,,36,,,,,,,,,,,,,,,,36,,,,,117,,,,,,,,,,,,,36,,,,,,,663,,,36,,582',
',,591,,,,,,,,,,,78,,,,,36,36,,,,,,,,,881,,,36,78,883,,,886,,,,,,,,,',
',,,,,,,,582,,,,36,,,851,,,,,,,901,,36,,,,,36,,,,,,,,,,,36,,,,,,,,36',
',36,,,,,,,36,78,,,78,,,,,,,,,,,,,,,,78,,,,,,,,,,,,,,,,,,78,,,,,,,,,',
'78,,,,,,,,,,,,,,,,,,,,,78,78,,,,,,,,,,,,78,,,,,,,,,,,,,,,,,,,,,,,,,',
',78,,,853,,,,,,,,,78,,,,,78,,,,,,,,,,,78,,,,,,,,78,,78,,,,,,,78' ]
        racc_goto_table = arr = Array.new(2290, nil)
        idx = 0
        clist.each do |str|
          str.split(',', -1).each do |i|
            arr[idx] = i.to_i unless i.empty?
            idx += 1
          end
        end

clist = [
'28,63,29,84,21,59,28,63,29,35,28,59,52,56,52,28,83,48,53,28,53,32,18',
'5,33,33,60,147,56,129,49,141,49,21,49,87,11,13,46,13,28,63,29,23,80',
'59,44,31,61,28,9,61,41,31,36,36,40,3,17,23,10,80,143,82,28,10,29,82',
'139,47,139,10,48,109,28,34,126,55,76,59,47,2,6,77,60,49,78,31,58,9,81',
'60,58,28,67,29,65,64,54,43,85,6,86,56,58,49,58,38,37,88,28,63,29,89',
'44,59,90,140,91,140,28,140,92,34,93,94,34,95,96,97,10,28,2,98,99,28',
'100,10,147,101,10,86,10,102,103,28,104,36,10,105,106,55,107,126,17,68',
'110,31,113,10,114,56,41,115,126,116,40,117,118,119,120,56,56,143,121',
'15,124,125,27,127,128,139,26,15,130,131,132,133,134,135,136,138,14,12',
'7,142,4,146,1,,,,15,,,83,,,,,,,,,,,,46,2,,,82,,,,,,141,,,,,,,36,,,,',
',,,2,,,,,,,33,33,129,,,,,,28,,,,,,,,,,28,28,28,28,28,28,28,28,28,28',
'28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,11,129,,,140,140,33',
'61,61,6,140,28,63,29,21,,59,,41,28,63,29,40,,59,33,33,,81,147,28,,28',
',21,,,,60,,,17,,,,147,,,28,11,,28,,23,33,9,33,17,31,,17,32,,,21,,31',
',,,,,,,28,,29,140,,55,,,28,63,,10,49,59,,2,,,,,28,,29,28,2,28,28,,28',
'28,,28,49,86,,3,59,,141,,,,87,,,39,,,,,28,,29,39,3,52,39,,10,39,49,53',
'49,35,34,,10,35,28,28,34,15,15,15,15,49,28,62,10,10,13,5,,,,,10,,,147',
',,,39,,39,39,,,,,,39,39,,,,,15,,,15,39,86,,,10,39,,,,,39,,,,,,,,,,,',
'28,80,,,28,,39,,,28,147,3,39,,,,57,,33,28,,60,57,,,,21,,,39,,,2,,28',
'28,83,10,55,55,28,28,,17,,,55,80,39,17,17,80,55,,,,57,28,10,,,10,,2',
'39,,,,84,,34,,39,34,28,33,33,,56,,2,28,,,,,28,18,29,,57,,,,,,,86,49',
',2,86,,,,,,,,,,,10,,,,,52,,2,,,48,53,10,,57,28,3,,,,28,,,49,3,49,,,',
',13,,28,,29,,,59,,,10,28,28,,28,,28,,,,86,,,,,,,,55,39,39,,,39,86,,',
'39,,28,,15,28,,28,63,,,17,59,10,10,,28,28,28,,,28,10,,,,,,,,,,10,39',
',,,28,,,62,,39,,39,39,39,39,39,39,,,39,,,,,,,,,,,,,39,,,,,,,,,28,,86',
'28,,,,39,39,,39,39,28,,,28,,,,,55,,86,28,,28,,2,,,2,,,39,,,,,,,,39,10',
'33,55,,10,55,,,,21,,39,,,,10,10,,28,,,,2,28,56,57,28,39,,,,59,2,57,',
',,,,,,39,,,,,57,15,39,,,,28,2,2,,,28,,86,28,19,57,,39,,2,,39,28,,29',
'19,,,,20,15,28,62,20,49,,,20,,,20,,,20,,28,2,,20,,,,39,,,,,,2,,62,,',
'2,,19,,,,39,10,,,,,,,20,,20,20,,,,2,,20,20,10,39,10,2,,,,,20,,,,,20',
',,,,20,,39,,,,39,,,,,,39,39,,,,20,20,,,,39,,20,,,,,,,,,,,,,,,,,20,,',
',19,,,,,,,,,,,,,39,,20,,,,62,,,,,19,,,39,,62,20,20,62,,,,,,,20,20,20',
',,,,39,,,,,,,,,,,,,,,,,,,,,,,,,39,,,,,,,,,,,,,22,,,,22,,,,,,,22,62,',
',62,,,,22,,,,,39,,,,,,,,,,39,,,39,,,,,,19,,,,19,,,,22,39,39,20,20,,',
'20,,25,,20,62,,,62,57,25,,,39,62,,,,,25,,,19,39,39,,,,,25,,19,,,,,22',
'20,19,,57,,62,,39,39,20,25,20,20,20,20,20,20,,,20,39,,,62,,,62,,,,,57',
'20,,,,,,,,,62,22,,,,,39,20,20,,20,20,,,,,22,,39,,,,,39,,22,22,22,,,',
',,20,39,,,,,,,20,39,,39,,,,,,,39,,20,,,,,,,,,,,,,,,45,20,,39,45,,,,',
',,45,,,,20,,,,45,,,20,,45,,,19,,,,,,,,,,,20,,,,20,,,,,,,,24,45,,,,,',
',19,,22,,,,22,24,25,25,,,,,,20,,19,,,,,,,,,,,,,,,20,,,,45,19,,22,,,',
',,,,,22,,,,20,,,22,19,,,,,25,25,25,25,,,,,,,20,,,,20,,,,45,,20,20,,',
',,,,,,20,,,45,,16,,25,,16,25,20,45,45,45,,16,,,,,,,,,,,,,,,,,,,19,20',
',,,25,,,,,,,,,,20,,,,19,,16,,,,,,,,,,,,25,20,,,,,,,,,,,,,,,,,,,,25,',
',,,20,,,,,22,,,,,,25,24,,,,,,,,,45,,,,45,,,24,,,,19,,,19,22,20,,,,,',
',,,,20,16,,20,19,,22,,,,,45,,,,24,,,20,20,45,,19,,,16,22,45,,,24,,19',
'24,,,,20,24,,,,,,,22,22,20,20,,,,,19,19,,,,,,,,,,,,19,,20,20,,,,,,25',
'22,,,,,20,,,,,,,,,,,,19,,,,,,,,,,,,19,,,20,,19,20,,,,22,,,,,20,19,,',
',20,,,16,19,,19,16,,22,,20,,19,,,24,,,20,24,20,,,,24,,,20,,,,,,,24,',
'45,,,16,,,,,,,,20,16,,,,,,,16,,,,,,,,,,,,45,,,,,24,,,,,,,,22,,,22,45',
',,,,24,,,,,,,24,,,22,,,,,45,,,,25,,,,,,,,,22,,,,,,45,,,,22,,,,,,,,,',
',25,,,,24,,,,,,22,22,,,,,45,,,,,24,,22,,,,,,,,,,24,,24,,,,,,,,,,,,,',
',22,,16,22,,45,,,,,,24,22,,,,,22,,,,,,,45,,,24,22,,,,,16,,,22,,22,,',
',,24,,22,,,,,16,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,24,,,24,,,,,,16,,,24',
',,24,45,,,45,,,,,,,,,,,,,,,,45,,,,,16,,,,,,,,,,,,,45,,,,,,,24,,,45,',
'24,,,24,,,,,,,,,,,16,,,,,45,45,,,,,,,,,24,,,45,16,24,,,24,,,,,,,,,,',
',,,,,,,24,,,,45,,,45,,,,,,,24,,45,,,,,45,,,,,,,,,,,45,,,,,,,,45,,45',
',,,,,,45,16,,,16,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,16,,,,,,,,,,16,',
',,,,,,,,,,,,,,,,,,,16,16,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,16',
',,16,,,,,,,,,16,,,,,16,,,,,,,,,,,16,,,,,,,,16,,16,,,,,,,16' ]
        racc_goto_check = arr = Array.new(2290, 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,   198,    79,  -209,   196,  -424,  -555,  -546,   nil,    10,
    56,    23,   153,     9,   162,   123,  1434,    -1,    16,   855,
   870,   -70,  1076,  -292,  1202,  1086,   -69,   136,   -10,    -8,
   nil,    37,  -301,   -77,    68,  -113,  -335,  -279,  -594,   410,
     3,    -1,   nil,    78,   -50,  1280,  -378,   -85,    -9,     4,
   nil,   nil,   -16,   -10,  -344,    40,     7,   507,  -242,    -5,
   -32,  -455,   313,    -9,  -288,   -24,   nil,  -291,  -410,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    52,    -1,    69,   nil,
  -264,  -556,  -473,  -320,    -3,  -318,    62,  -398,    83,  -107,
    81,  -210,    33,  -550,    30,  -549,  -253,  -646,   115,  -469,
   -17,  -455,  -648,   122,  -286,   -59,  -285,  -585,   nil,  -231,
  -489,   nil,   nil,    33,  -414,    39,  -405,  -502,  -689,  -354,
  -468,  -570,   nil,   nil,   133,    91,    72,   170,    53,   -98,
   169,  -357,  -175,  -173,   107,  -413,  -439,   nil,  -537,  -660,
  -500,  -402,  -533,  -668,   nil,   nil,   -22,  -373 ]

racc_goto_default = [
   nil,   nil,   447,   nil,   nil,   nil,   752,   nil,    40,   nil,
    48,    56,   337,   nil,   nil,   nil,   143,    83,    88,   144,
   156,   nil,   132,   nil,   133,    31,   nil,   nil,    44,    49,
    54,   nil,    62,   554,   nil,   nil,   nil,   nil,   nil,   105,
    11,   nil,    21,    24,    32,   135,   417,   nil,   245,   370,
   222,   250,    67,    72,   nil,   nil,    90,   334,   nil,   330,
   548,   549,   409,   583,   nil,   nil,   120,   nil,   nil,   399,
    64,    68,    73,    77,    82,    87,    93,   nil,   121,    17,
   nil,   nil,   nil,   nil,   nil,   nil,   486,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   305,   nil,
   nil,   364,   123,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    39,    43,    47,   nil,   nil,   nil,   nil,   362,
   nil,   nil,   nil,   nil,   nil,   nil,   615,   617,   619,   621,
   nil,   799,   627,   612,   613,   614,   nil,   142 ]

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

racc_reduce_n = 507

racc_shift_n = 903

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

racc_nt_base = 132

racc_use_result_var = true

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

Racc_token_to_s_table = [
  "$end",
  "error",
  "kCLASS",
  "kMODULE",
  "kDEF",
  "kUNDEF",
  "kBEGIN",
  "kRESCUE",
  "kENSURE",
  "kEND",
  "kIF",
  "kUNLESS",
  "kTHEN",
  "kELSIF",
  "kELSE",
  "kCASE",
  "kWHEN",
  "kWHILE",
  "kUNTIL",
  "kFOR",
  "kBREAK",
  "kNEXT",
  "kREDO",
  "kRETRY",
  "kIN",
  "kDO",
  "kDO_COND",
  "kDO_BLOCK",
  "kRETURN",
  "kYIELD",
  "kSUPER",
  "kSELF",
  "kNIL",
  "kTRUE",
  "kFALSE",
  "kAND",
  "kOR",
  "kNOT",
  "kIF_MOD",
  "kUNLESS_MOD",
  "kWHILE_MOD",
  "kUNTIL_MOD",
  "kRESCUE_MOD",
  "kALIAS",
  "kDEFINED",
  "klBEGIN",
  "klEND",
  "k__LINE__",
  "k__FILE__",
  "tIDENTIFIER",
  "tFID",
  "tGVAR",
  "tIVAR",
  "tCONSTANT",
  "tCVAR",
  "tNTH_REF",
  "tBACK_REF",
  "tSTRING_CONTENT",
  "tINTEGER",
  "tFLOAT",
  "tREGEXP_END",
  "tUPLUS",
  "tUMINUS",
  "tUMINUS_NUM",
  "tPOW",
  "tCMP",
  "tEQ",
  "tEQQ",
  "tNEQ",
  "tGEQ",
  "tLEQ",
  "tANDOP",
  "tOROP",
  "tMATCH",
  "tNMATCH",
  "tDOT",
  "tDOT2",
  "tDOT3",
  "tAREF",
  "tASET",
  "tLSHFT",
  "tRSHFT",
  "tCOLON2",
  "tCOLON3",
  "tOP_ASGN",
  "tASSOC",
  "tLPAREN",
  "tLPAREN2",
  "tRPAREN",
  "tLPAREN_ARG",
  "tLBRACK",
  "tRBRACK",
  "tLBRACE",
  "tLBRACE_ARG",
  "tSTAR",
  "tSTAR2",
  "tAMPER",
  "tAMPER2",
  "tTILDE",
  "tPERCENT",
  "tDIVIDE",
  "tPLUS",
  "tMINUS",
  "tLT",
  "tGT",
  "tPIPE",
  "tBANG",
  "tCARET",
  "tLCURLY",
  "tRCURLY",
  "tBACK_REF2",
  "tSYMBEG",
  "tSTRING_BEG",
  "tXSTRING_BEG",
  "tREGEXP_BEG",
  "tWORDS_BEG",
  "tAWORDS_BEG",
  "tSTRING_DBEG",
  "tSTRING_DVAR",
  "tSTRING_END",
  "tSTRING",
  "tSYMBOL",
  "tNL",
  "tEH",
  "tCOLON",
  "tCOMMA",
  "tSPACE",
  "tSEMI",
  "tLAST_TOKEN",
  "tEQL",
  "tLOWEST",
  "\"[\"",
  "$start",
  "program",
  "compstmt",
  "bodystmt",
  "@1",
  "opt_rescue",
  "opt_else",
  "opt_ensure",
  "stmts",
  "opt_terms",
  "none",
  "stmt",
  "terms",
  "fitem",
  "undef_list",
  "expr_value",
  "lhs",
  "command_call",
  "mlhs",
  "var_lhs",
  "primary_value",
  "aref_args",
  "backref",
  "mrhs",
  "arg_value",
  "expr",
  "@2",
  "@3",
  "arg",
  "command",
  "block_command",
  "call_args",
  "block_call",
  "operation2",
  "command_args",
  "cmd_brace_block",
  "opt_block_var",
  "@4",
  "@5",
  "operation",
  "mlhs_basic",
  "mlhs_entry",
  "mlhs_head",
  "mlhs_item",
  "mlhs_node",
  "variable",
  "cname",
  "cpath",
  "fname",
  "op",
  "reswords",
  "fsym",
  "symbol",
  "dsym",
  "@6",
  "opt_nl",
  "primary",
  "args",
  "trailer",
  "assocs",
  "paren_args",
  "opt_paren_args",
  "opt_block_arg",
  "block_arg",
  "call_args2",
  "open_args",
  "@7",
  "@8",
  "@9",
  "none_block_pass",
  "literal",
  "strings",
  "xstring",
  "regexp",
  "words",
  "awords",
  "var_ref",
  "assoc_list",
  "brace_block",
  "method_call",
  "then",
  "if_tail",
  "do",
  "case_body",
  "block_var",
  "superclass",
  "term",
  "f_arglist",
  "singleton",
  "dot_or_colon",
  "@10",
  "@11",
  "@12",
  "@13",
  "@14",
  "@15",
  "@16",
  "@17",
  "@18",
  "@19",
  "@20",
  "@21",
  "@22",
  "@23",
  "@24",
  "@25",
  "@26",
  "@27",
  "do_block",
  "@28",
  "@29",
  "operation3",
  "@30",
  "@31",
  "@32",
  "@33",
  "@34",
  "when_args",
  "cases",
  "@35",
  "exc_list",
  "exc_var",
  "numeric",
  "string",
  "string1",
  "string_contents",
  "xstring_contents",
  "word_list",
  "word",
  "string_content",
  "qword_list",
  "string_dvar",
  "@36",
  "@37",
  "sym",
  "@38",
  "f_args",
  "f_arg",
  "f_optarg",
  "f_rest_arg",
  "opt_f_block_arg",
  "f_block_arg",
  "f_norm_arg",
  "f_opt",
  "restarg_mark",
  "blkarg_mark",
  "@39",
  "assoc" ]

Racc_debug_parser = false

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

# reduce 0 omitted

def _reduce_1(val, _values, result)
                      self.lexer.lex_state = :expr_beg
                    
    result
end

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

def _reduce_3(val, _values, result)
                      result = new_body val
                    
    result
end

def _reduce_4(val, _values, result)
                      result = new_compstmt val
                    
    result
end

# reduce 5 omitted

# reduce 6 omitted

def _reduce_7(val, _values, result)
                      result = self.block_append val[0], val[2]
                    
    result
end

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

def _reduce_9(val, _values, result)
                      lexer.lex_state = :expr_fname
                      result = self.lexer.lineno
                    
    result
end

def _reduce_10(val, _values, result)
                      result = s(:alias, val[1], val[3]).line(val[2])
                    
    result
end

def _reduce_11(val, _values, result)
                      result = s(:valias, val[1].to_sym, val[2].to_sym)
                    
    result
end

def _reduce_12(val, _values, result)
                      result = s(:valias, val[1].to_sym, :"$#{val[2]}")
                    
    result
end

def _reduce_13(val, _values, result)
                      yyerror "can't make alias for the number variables"
                    
    result
end

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

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

def _reduce_16(val, _values, result)
                      result = new_if val[2], nil, val[0]
                    
    result
end

def _reduce_17(val, _values, result)
                      result = new_while val[0], val[2], true
                    
    result
end

def _reduce_18(val, _values, result)
                      result = new_until val[0], val[2], true
                    
    result
end

def _reduce_19(val, _values, result)
                      result = s(:rescue, val[0], s(:resbody, s(:array), val[2]))
                    
    result
end

def _reduce_20(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "BEGIN in method"
                      end
                      self.env.extend
                    
    result
end

def _reduce_21(val, _values, result)
                      result = new_iter s(:preexe), nil, val[3] # TODO: add test?
                      result = nil # TODO: since it isn't supposed to go in the AST
                    
    result
end

def _reduce_22(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "END in method; use at_exit"
                      end
                      result = new_iter s(:postexe), nil, val[2]
                    
    result
end

def _reduce_23(val, _values, result)
                      result = self.node_assign val[0], val[2]
                    
    result
end

def _reduce_24(val, _values, result)
                      result = new_masgn val[0], val[2], :wrap
                    
    result
end

def _reduce_25(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

def _reduce_26(val, _values, result)
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
                    
    result
end

def _reduce_27(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                    
    result
end

def _reduce_28(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                    
    result
end

def _reduce_29(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                    
    result
end

def _reduce_30(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

def _reduce_31(val, _values, result)
                      result = self.node_assign val[0], s(:svalue, val[2])
                    
    result
end

def _reduce_32(val, _values, result)
                      result = new_masgn val[0], val[2], :wrap
                    
    result
end

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

# reduce 34 omitted

# reduce 35 omitted

def _reduce_36(val, _values, result)
                      result = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_37(val, _values, result)
                      result = logop(:or, val[0], val[2])
                    
    result
end

def _reduce_38(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

def _reduce_39(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

# reduce 40 omitted

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

# reduce 42 omitted

# reduce 43 omitted

def _reduce_44(val, _values, result)
                      line = val[0].last
                      result = s(:return, ret_args(val[1])).line(line)
                    
    result
end

def _reduce_45(val, _values, result)
                      line = val[0].last
                      result = s(:break, ret_args(val[1])).line(line)
                    
    result
end

def _reduce_46(val, _values, result)
                      line = val[0].last
                      result = s(:next, ret_args(val[1])).line(line)
                    
    result
end

# reduce 47 omitted

def _reduce_48(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

def _reduce_49(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

def _reduce_50(val, _values, result)
                      self.env.extend(:dynamic)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_51(val, _values, result)
                      result = self.env.dynamic.keys
                    
    result
end

def _reduce_52(val, _values, result)
                      result = new_iter nil, val[2], val[4]
                      self.env.unextend
                    
    result
end

def _reduce_53(val, _values, result)
                      result = new_call nil, val[0].to_sym, val[1]
                    
    result
end

def _reduce_54(val, _values, result)
                      result = new_call nil, val[0].to_sym, val[1]
                      if val[2] then
                        if result[0] == :block_pass then
                          raise "both block arg and actual block given"
                        end
                        result, operation = val[2], result
                        result.insert 1, operation
                      end
                    
    result
end

def _reduce_55(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

def _reduce_56(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

def _reduce_57(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

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

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

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

# reduce 61 omitted

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

# reduce 63 omitted

def _reduce_64(val, _values, result)
                      result = s(:masgn, s(:array, val[1]))
                    
    result
end

def _reduce_65(val, _values, result)
                      result = s(:masgn, val[0])
                    
    result
end

def _reduce_66(val, _values, result)
                      result = s(:masgn, val[0] << val[1].compact)
                    
    result
end

def _reduce_67(val, _values, result)
                      result = s(:masgn, val[0] << s(:splat, val[2]))
                    
    result
end

def _reduce_68(val, _values, result)
                      result = s(:masgn, val[0] << s(:splat))
                    
    result
end

def _reduce_69(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat, val[1])))
                    
    result
end

def _reduce_70(val, _values, result)
                      result = s(:masgn, s(:array, s(:splat)))
                    
    result
end

# reduce 71 omitted

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

def _reduce_73(val, _values, result)
                      result = s(:array, val[0])
                    
    result
end

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

def _reduce_75(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

def _reduce_76(val, _values, result)
                      result = self.aryset val[0], val[2]
                    
    result
end

def _reduce_77(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=", s(:arglist))
                    
    result
end

def _reduce_78(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=", s(:arglist))
                    
    result
end

def _reduce_79(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=", s(:arglist))
                    
    result
end

def _reduce_80(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "dynamic constant assignment"
                      end

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

def _reduce_81(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "dynamic constant assignment"
                      end

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

def _reduce_82(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

def _reduce_83(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

def _reduce_84(val, _values, result)
                      result = self.aryset val[0], val[2]
                    
    result
end

def _reduce_85(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=")
                    
    result
end

def _reduce_86(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=")
                    
    result
end

def _reduce_87(val, _values, result)
                      result = s(:attrasgn, val[0], :"#{val[2]}=")
                    
    result
end

def _reduce_88(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "dynamic constant assignment"
                      end

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

def _reduce_89(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        yyerror "dynamic constant assignment"
                      end

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

def _reduce_90(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

def _reduce_91(val, _values, result)
                      yyerror "class/module name must be CONSTANT"
                    
    result
end

# reduce 92 omitted

def _reduce_93(val, _values, result)
                      result = s(:colon3, val[1].to_sym)
                    
    result
end

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

def _reduce_95(val, _values, result)
                      result = s(:colon2, val[0], val[2].to_sym)
                    
    result
end

# reduce 96 omitted

# reduce 97 omitted

# reduce 98 omitted

def _reduce_99(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[0]
                    
    result
end

def _reduce_100(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[0]
                    
    result
end

# reduce 101 omitted

# reduce 102 omitted

def _reduce_103(val, _values, result)
 result = s(:lit, val[0].to_sym) 
    result
end

# reduce 104 omitted

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

def _reduce_106(val, _values, result)
                      lexer.lex_state = :expr_fname
                    
    result
end

def _reduce_107(val, _values, result)
                      result = new_undef val[0], val[3]
                    
    result
end

# reduce 108 omitted

# reduce 109 omitted

# reduce 110 omitted

# reduce 111 omitted

# reduce 112 omitted

# reduce 113 omitted

# reduce 114 omitted

# reduce 115 omitted

# reduce 116 omitted

# reduce 117 omitted

# reduce 118 omitted

# reduce 119 omitted

# reduce 120 omitted

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

# reduce 139 omitted

# reduce 140 omitted

# reduce 141 omitted

# reduce 142 omitted

# reduce 143 omitted

# reduce 144 omitted

# reduce 145 omitted

# reduce 146 omitted

# reduce 147 omitted

# reduce 148 omitted

# reduce 149 omitted

# reduce 150 omitted

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

# reduce 154 omitted

# reduce 155 omitted

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

# reduce 167 omitted

# reduce 168 omitted

# reduce 169 omitted

# reduce 170 omitted

# reduce 171 omitted

# reduce 172 omitted

# reduce 173 omitted

# reduce 174 omitted

def _reduce_175(val, _values, result)
                      result = self.node_assign val[0], val[2]
                    
    result
end

def _reduce_176(val, _values, result)
                      result = self.node_assign val[0], s(:rescue, val[2], s(:resbody, s(:array), val[4]))
                      # result.line = val[0].line
                    
    result
end

def _reduce_177(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

def _reduce_178(val, _values, result)
                      result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
                      val[2][0] = :arglist
                    
    result
end

def _reduce_179(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

def _reduce_180(val, _values, result)
                      result = s(:op_asgn2, val[0], :"#{val[2]}=", val[3].to_sym, val[4])
                    
    result
end

def _reduce_181(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                    
    result
end

def _reduce_182(val, _values, result)
                      yyerror "constant re-assignment"
                    
    result
end

def _reduce_183(val, _values, result)
                      yyerror "constant re-assignment"
                    
    result
end

def _reduce_184(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

def _reduce_185(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Fixnum === v1.last and Fixnum === v2.last then
                        result = s(:lit, (v1.last)..(v2.last))
                      else
                        result = s(:dot2, v1, v2)
                      end
                    
    result
end

def _reduce_186(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Fixnum === v1.last and Fixnum === v2.last then
                        result = s(:lit, (v1.last)...(v2.last))
                      else
                        result = s(:dot3, v1, v2)
                      end
                    
    result
end

def _reduce_187(val, _values, result)
                      result = new_call val[0], :+, s(:arglist, val[2])
                    
    result
end

def _reduce_188(val, _values, result)
                      result = new_call val[0], :-, s(:arglist, val[2])
                    
    result
end

def _reduce_189(val, _values, result)
                      result = new_call val[0], :*, s(:arglist, val[2])
                    
    result
end

def _reduce_190(val, _values, result)
                      result = new_call val[0], :"/", s(:arglist, val[2])
                    
    result
end

def _reduce_191(val, _values, result)
                      result = new_call val[0], :%, s(:arglist, val[2])
                    
    result
end

def _reduce_192(val, _values, result)
                      result = new_call val[0], :**, s(:arglist, val[2])
                    
    result
end

def _reduce_193(val, _values, result)
                      result = new_call(new_call(s(:lit, val[1]), :"**", s(:arglist, val[3])), :"-@", s(:arglist))
                    
    result
end

def _reduce_194(val, _values, result)
                      result = new_call(new_call(s(:lit, val[1]), :"**", s(:arglist, val[3])), :"-@", s(:arglist))
                    
    result
end

def _reduce_195(val, _values, result)
                      if val[1][0] == :lit then
                        result = val[1]
                      else
                        result = new_call val[1], :"+@", s(:arglist)
                      end
                    
    result
end

def _reduce_196(val, _values, result)
                      result = new_call val[1], :"-@", s(:arglist)
                    
    result
end

def _reduce_197(val, _values, result)
                      result = new_call val[0], :"|", s(:arglist, val[2])
                    
    result
end

def _reduce_198(val, _values, result)
                      result = new_call val[0], :"^", s(:arglist, val[2])
                    
    result
end

def _reduce_199(val, _values, result)
                      result = new_call val[0], :"&", s(:arglist, val[2])
                    
    result
end

def _reduce_200(val, _values, result)
                      result = new_call val[0], :"<=>", s(:arglist, val[2])
                    
    result
end

def _reduce_201(val, _values, result)
                      result = new_call val[0], :">", s(:arglist, val[2])
                    
    result
end

def _reduce_202(val, _values, result)
                      result = new_call val[0], :">=", s(:arglist, val[2])
                    
    result
end

def _reduce_203(val, _values, result)
                      result = new_call val[0], :"<", s(:arglist, val[2])
                    
    result
end

def _reduce_204(val, _values, result)
                      result = new_call val[0], :"<=", s(:arglist, val[2])
                    
    result
end

def _reduce_205(val, _values, result)
                      result = new_call val[0], :"==", s(:arglist, val[2])
                    
    result
end

def _reduce_206(val, _values, result)
                      result = new_call val[0], :"===", s(:arglist, val[2])
                    
    result
end

def _reduce_207(val, _values, result)
                      val[0] = value_expr val[0] # TODO: port call_op and clean these
                      val[2] = value_expr val[2]
                      result = s(:not, new_call(val[0], :"==", s(:arglist, val[2])))
                    
    result
end

def _reduce_208(val, _values, result)
                      result = self.get_match_node val[0], val[2]
                    
    result
end

def _reduce_209(val, _values, result)
                      result = s(:not, self.get_match_node(val[0], val[2]))
                    
    result
end

def _reduce_210(val, _values, result)
                      result = s(:not, val[1])
                    
    result
end

def _reduce_211(val, _values, result)
                      val[2] = value_expr val[2]
                      result = new_call val[1], :"~", s(:arglist)
                    
    result
end

def _reduce_212(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :"\<\<", s(:arglist, val[2])
                    
    result
end

def _reduce_213(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :">>", s(:arglist, val[2])
                    
    result
end

def _reduce_214(val, _values, result)
                      result = logop(:and, val[0], val[2])
                    
    result
end

def _reduce_215(val, _values, result)
                      result = logop(:or, val[0], val[2])
                    
    result
end

def _reduce_216(val, _values, result)
                      result = s(:defined, val[2])
                    
    result
end

def _reduce_217(val, _values, result)
                      result = s(:if, val[0], val[2], val[4])
                    
    result
end

# reduce 218 omitted

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

# reduce 220 omitted

def _reduce_221(val, _values, result)
                      warning 'parenthesize argument(s) for future version'
                      result = s(:array, val[0])
                    
    result
end

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

def _reduce_223(val, _values, result)
                      result = self.arg_concat val[0], val[3]
                    
    result
end

def _reduce_224(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values))
                    
    result
end

def _reduce_225(val, _values, result)
                      result = s(:array, s(:splat, val[1]))
                    
    result
end

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

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

def _reduce_228(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = s(:array, val[1])
                    
    result
end

def _reduce_229(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = val[1].add val[3]
                    
    result
end

# reduce 230 omitted

# reduce 231 omitted

def _reduce_232(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = s(:array, val[0])
                    
    result
end

def _reduce_233(val, _values, result)
                      result = self.arg_blk_pass val[0], val[1]
                    
    result
end

def _reduce_234(val, _values, result)
                      result = self.arg_concat val[0], val[3]
                      result = self.arg_blk_pass result, val[4]
                    
    result
end

def _reduce_235(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values))
                      result = self.arg_blk_pass result, val[1]
                    
    result
end

def _reduce_236(val, _values, result)
                      result = self.arg_concat s(:array, s(:hash, *val[0].values)), val[3]
                      result = self.arg_blk_pass result, val[4]
                    
    result
end

def _reduce_237(val, _values, result)
                      result = val[0] << s(:hash, *val[2].values)
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

def _reduce_238(val, _values, result)
                      val[0] << s(:hash, *val[2].values)
                      result = self.arg_concat val[0], val[5]
                      result = self.arg_blk_pass result, val[6]
                    
    result
end

def _reduce_239(val, _values, result)
                      result = self.arg_blk_pass s(:splat, val[1]), val[2]
                    
    result
end

# reduce 240 omitted

def _reduce_241(val, _values, result)
                      args = self.list_prepend val[0], val[2]
                      result = self.arg_blk_pass args, val[3]
                    
    result
end

def _reduce_242(val, _values, result)
                      result = self.arg_blk_pass val[0], val[2]
                    
    result
end

def _reduce_243(val, _values, result)
                      result = self.arg_concat s(:array, val[0]), val[3]
                      result = self.arg_blk_pass result, val[4]
                    
    result
end

def _reduce_244(val, _values, result)
                      result = self.arg_concat s(:array, val[0], s(:hash, *val[2].values)), val[5]
                      result = self.arg_blk_pass result, val[6]
                    
    result
end

def _reduce_245(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values))
                      result = self.arg_blk_pass result, val[1]
                    
    result
end

def _reduce_246(val, _values, result)
                      result = s(:array, s(:hash, *val[0].values), val[3])
                      result = self.arg_blk_pass result, val[4]
                    
    result
end

def _reduce_247(val, _values, result)
                      result = s(:array, val[0], s(:hash, *val[2].values))
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

def _reduce_248(val, _values, result)
                      result = s(:array, val[0]).add_all(val[2]).add(s(:hash, *val[4].values))
                      result = self.arg_blk_pass result, val[5]
                    
    result
end

def _reduce_249(val, _values, result)
                      result = self.arg_concat s(:array, val[0]).add(s(:hash, *val[2].values)), val[5]
                      result = self.arg_blk_pass result, val[6]
                    
    result
end

def _reduce_250(val, _values, result)
                      result = self.arg_concat s(:array, val[0]).add_all(val[2]).add(s(:hash, *val[4].values)), val[7]
                      result = self.arg_blk_pass result, val[8]
                    
    result
end

def _reduce_251(val, _values, result)
                      result = self.arg_blk_pass s(:splat, val[1]), val[2]
                    
    result
end

# reduce 252 omitted

def _reduce_253(val, _values, result)
                      result = lexer.cmdarg.stack.dup
                      lexer.cmdarg.push true
                    
    result
end

def _reduce_254(val, _values, result)
                      lexer.cmdarg.stack.replace val[0]
                      result = val[1]
                    
    result
end

# reduce 255 omitted

def _reduce_256(val, _values, result)
                      lexer.lex_state = :expr_endarg
                    
    result
end

def _reduce_257(val, _values, result)
                      warning "don't put space before argument parentheses"
                      result = nil
                    
    result
end

def _reduce_258(val, _values, result)
                      lexer.lex_state = :expr_endarg
                    
    result
end

def _reduce_259(val, _values, result)
                      warning "don't put space before argument parentheses"
                      result = val[1]
                    
    result
end

def _reduce_260(val, _values, result)
                      result = s(:block_pass, val[1])
                    
    result
end

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

# reduce 262 omitted

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

def _reduce_264(val, _values, result)
                      result = self.list_append val[0], val[2]
                    
    result
end

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

def _reduce_266(val, _values, result)
                      result = self.arg_concat val[0], val[3]
                    
    result
end

def _reduce_267(val, _values, result)
                      result = s(:splat, val[1])
                    
    result
end

# reduce 268 omitted

# reduce 269 omitted

# reduce 270 omitted

# reduce 271 omitted

# reduce 272 omitted

# reduce 273 omitted

# reduce 274 omitted

# reduce 275 omitted

def _reduce_276(val, _values, result)
                      result = new_call nil, val[0].to_sym
                    
    result
end

def _reduce_277(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_278(val, _values, result)
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]
                    
    result
end

def _reduce_279(val, _values, result)
                      lexer.lex_state = :expr_endarg
                    
    result
end

def _reduce_280(val, _values, result)
                      warning "(...) interpreted as grouped expression"
                      result = val[1]
                    
    result
end

def _reduce_281(val, _values, result)
                      result = val[1] || s(:nil)
                      result.paren = true
                    
    result
end

def _reduce_282(val, _values, result)
                      result = s(:colon2, val[0], val[2].to_sym)
                    
    result
end

def _reduce_283(val, _values, result)
                      result = s(:colon3, val[1].to_sym)
                    
    result
end

def _reduce_284(val, _values, result)
                      result = new_aref val
                    
    result
end

def _reduce_285(val, _values, result)
                      result = val[1] || s(:array)
                    
    result
end

def _reduce_286(val, _values, result)
                      result = s(:hash, *val[1].values)
                    
    result
end

def _reduce_287(val, _values, result)
                      result = s(:return)
                    
    result
end

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

def _reduce_289(val, _values, result)
                      result = new_yield
                    
    result
end

def _reduce_290(val, _values, result)
                      result = new_yield
                    
    result
end

def _reduce_291(val, _values, result)
                      result = s(:defined, val[3])
                    
    result
end

def _reduce_292(val, _values, result)
                      oper, iter = val[0], val[1]
                      call = new_call(nil, oper.to_sym)
                      iter.insert 1, call
                      result = iter
                      call.line = iter.line
                    
    result
end

# reduce 293 omitted

def _reduce_294(val, _values, result)
                      call, iter = val[0], val[1]
                      iter.insert 1, call
                      result = iter
                    
    result
end

def _reduce_295(val, _values, result)
                      result = new_if val[1], val[3], val[4]
                    
    result
end

def _reduce_296(val, _values, result)
                      result = new_if val[1], val[4], val[3]
                    
    result
end

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

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

def _reduce_299(val, _values, result)
                      result = new_while val[5], val[2], true
                    
    result
end

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

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

def _reduce_302(val, _values, result)
                      result = new_until val[5], val[2], true
                    
    result
end

def _reduce_303(val, _values, result)
                      result = new_case val[1], val[3]
                    
    result
end

def _reduce_304(val, _values, result)
                      result = new_case nil, val[2]
                    
    result
end

def _reduce_305(val, _values, result)
                      result = new_case nil, val[3]
                    
    result
end

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

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

def _reduce_308(val, _values, result)
                      result = new_for val[4], val[1], val[7]
                    
    result
end

def _reduce_309(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_310(val, _values, result)
                      self.comments.push self.lexer.comments
                      if (self.in_def || self.in_single > 0) then
                        yyerror "class definition in method body"
                      end
                      self.env.extend
                    
    result
end

def _reduce_311(val, _values, result)
                      result = new_class val
                      self.env.unextend
                    
    result
end

def _reduce_312(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_313(val, _values, result)
                      result = self.in_def
                      self.in_def = false
                    
    result
end

def _reduce_314(val, _values, result)
                      result = self.in_single
                      self.in_single = 0
                      self.env.extend
                    
    result
end

def _reduce_315(val, _values, result)
                      result = new_sclass val
                      self.env.unextend
                    
    result
end

def _reduce_316(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_317(val, _values, result)
                      self.comments.push self.lexer.comments
                      yyerror "module definition in method body" if
                        self.in_def or self.in_single > 0

                      self.env.extend
                    
    result
end

def _reduce_318(val, _values, result)
                      result = new_module val
                      self.env.unextend
                    
    result
end

def _reduce_319(val, _values, result)
                      self.comments.push self.lexer.comments
                      self.in_def = true
                      self.env.extend
                      result = lexer.lineno, lexer.src.beginning_of_line?
                    
    result
end

def _reduce_320(val, _values, result)
                      result = new_defn val
                      self.env.unextend
                      self.in_def = false
                    
    result
end

def _reduce_321(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = :expr_fname
                    
    result
end

def _reduce_322(val, _values, result)
                      self.in_single += 1
                      self.env.extend
                      lexer.lex_state = :expr_end # force for args
                    
    result
end

def _reduce_323(val, _values, result)
                      result = new_defs val

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

def _reduce_324(val, _values, result)
                      result = s(:break)
                    
    result
end

def _reduce_325(val, _values, result)
                      result = s(:next)
                    
    result
end

def _reduce_326(val, _values, result)
                      result = s(:redo)
                    
    result
end

def _reduce_327(val, _values, result)
                      result = s(:retry)
                    
    result
end

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

# reduce 329 omitted

# reduce 330 omitted

# reduce 331 omitted

# reduce 332 omitted

# reduce 333 omitted

# reduce 334 omitted

# reduce 335 omitted

# reduce 336 omitted

def _reduce_337(val, _values, result)
                      result = s(:if, val[1], val[3], val[4])
                    
    result
end

# reduce 338 omitted

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

# reduce 340 omitted

def _reduce_341(val, _values, result)
                      val[0].delete_at 1 if val[0][1].nil? # HACK
                    
    result
end

# reduce 342 omitted

def _reduce_343(val, _values, result)
                      result = 0
                      self.lexer.command_start = true
                    
    result
end

def _reduce_344(val, _values, result)
                      result = 0
                      self.lexer.command_start = true
                    
    result
end

def _reduce_345(val, _values, result)
                      result = val[1]
                      self.lexer.command_start = true
                    
    result
end

def _reduce_346(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno
                    
    result
end

def _reduce_347(val, _values, result)
                      result = self.env.dynamic.keys
                    
    result
end

def _reduce_348(val, _values, result)
                      vars   = val[2]
                      body   = val[4]
                      result = new_iter nil, vars, body
                      result.line = val[1]

                      self.env.unextend
                    
    result
end

def _reduce_349(val, _values, result)
                      raise SyntaxError, "Both block arg and actual block given." if
                        val[0] && val[0][0] == :blockpass

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

def _reduce_350(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

def _reduce_351(val, _values, result)
                      result = new_call val[0], val[2], val[3]
                    
    result
end

def _reduce_352(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_353(val, _values, result)
                      result = new_call nil, val[0].to_sym, val[2]
                    
    result
end

def _reduce_354(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

def _reduce_355(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

def _reduce_356(val, _values, result)
                      result = new_call val[0], val[2].to_sym
                    
    result
end

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

def _reduce_358(val, _values, result)
                      result = s(:zsuper)
                    
    result
end

def _reduce_359(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno
                    
    result
end

def _reduce_360(val, _values, result)
                      result = self.env.dynamic.keys
                    
    result
end

def _reduce_361(val, _values, result)
                      # REFACTOR
                      args   = val[2]
                      body   = val[4]
                      result = new_iter nil, args, body
                      self.env.unextend
                      result.line = val[1]
                    
    result
end

def _reduce_362(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno
                    
    result
end

def _reduce_363(val, _values, result)
                      result = self.env.dynamic.keys
                    
    result
end

def _reduce_364(val, _values, result)
                      args = val[2]
                      body = val[4]
                      result = new_iter nil, args, body
                      self.env.unextend
                      result.line = val[1]
                    
    result
end

def _reduce_365(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

def _reduce_366(val, _values, result)
                      result = s(:when, val[2], val[4])
                      result.line = val[1]
                      result << val[5] if val[5]
                    
    result
end

# reduce 367 omitted

def _reduce_368(val, _values, result)
                      result = self.list_append val[0], s(:when, val[3], nil)
                    
    result
end

def _reduce_369(val, _values, result)
                      result = s(:array, s(:when, val[1], nil))
                    
    result
end

# reduce 370 omitted

# reduce 371 omitted

def _reduce_372(val, _values, result)
                      klasses, var, body, rest = val[1], val[2], val[4], val[5]

                      klasses ||= s(:array)
                      klasses << node_assign(var, s(:gvar, :"$!")) if var

                      result = s(:resbody, klasses, body)
                      result << rest if rest # UGH, rewritten above
                    
    result
end

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

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

# reduce 375 omitted

# reduce 376 omitted

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

# reduce 378 omitted

def _reduce_379(val, _values, result)
                      if (val[1] != nil) then
                        result = val[1]
                      else
                        result = s(:nil)
                      end
                    
    result
end

# reduce 380 omitted

def _reduce_381(val, _values, result)
 result = s(:lit, val[0]) 
    result
end

def _reduce_382(val, _values, result)
 result = s(:lit, val[0]) 
    result
end

# reduce 383 omitted

def _reduce_384(val, _values, result)
                      val[0] = s(:dstr, val[0].value) if val[0][0] == :evstr
                      result = val[0]
                    
    result
end

# reduce 385 omitted

def _reduce_386(val, _values, result)
                      result = self.literal_concat val[0], val[1]
                    
    result
end

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

def _reduce_388(val, _values, result)
                      result = s(:str, val[0])
                    
    result
end

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

def _reduce_390(val, _values, result)
                      result = new_regexp val
                    
    result
end

def _reduce_391(val, _values, result)
                      result = s(:array)
                    
    result
end

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

def _reduce_393(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_394(val, _values, result)
                      word = val[1][0] == :evstr ? s(:dstr, "", val[1]) : val[1]
                      result = val[0] << word
                    
    result
end

# reduce 395 omitted

def _reduce_396(val, _values, result)
                      result = self.literal_concat val[0], val[1]
                    
    result
end

def _reduce_397(val, _values, result)
                      result = s(:array)
                    
    result
end

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

def _reduce_399(val, _values, result)
                      result = s(:array)
                    
    result
end

def _reduce_400(val, _values, result)
                      result = val[0] << s(:str, val[1])
                    
    result
end

def _reduce_401(val, _values, result)
                      result = s(:str, "")
                    
    result
end

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

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

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

def _reduce_405(val, _values, result)
                      result = s(:str, val[0])
                    
    result
end

def _reduce_406(val, _values, result)
                      result = lexer.lex_strterm
                      lexer.lex_strterm = nil
                      lexer.lex_state = :expr_beg
                    
    result
end

def _reduce_407(val, _values, result)
                      lexer.lex_strterm = val[1]
                      result = s(:evstr, val[2])
                    
    result
end

def _reduce_408(val, _values, result)
                      result = lexer.lex_strterm
                      lexer.lex_strterm = nil
                      lexer.lex_state = :expr_beg
                      lexer.cond.push false
                      lexer.cmdarg.push false
                    
    result
end

def _reduce_409(val, _values, result)
                      lexer.lex_strterm = val[1]
                      lexer.cond.lexpop
                      lexer.cmdarg.lexpop

                      case val[2]
                      when Sexp then
                        case val[2][0]
                        when :str, :dstr, :evstr then
                          result = val[2]
                        else
                          result = s(:evstr, val[2])
                        end
                      when nil then
                        result = s(:evstr)
                      else
                        raise "unknown rescue body: #{val[2].inspect}"
                      end
                    
    result
end

def _reduce_410(val, _values, result)
 result = s(:gvar, val[0].to_sym) 
    result
end

def _reduce_411(val, _values, result)
 result = s(:ivar, val[0].to_sym) 
    result
end

def _reduce_412(val, _values, result)
 result = s(:cvar, val[0].to_sym) 
    result
end

# reduce 413 omitted

def _reduce_414(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[1].to_sym
                    
    result
end

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

# reduce 416 omitted

# reduce 417 omitted

# reduce 418 omitted

# reduce 419 omitted

def _reduce_420(val, _values, result)
                      lexer.lex_state = :expr_end
                      result = val[1]

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

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

# reduce 421 omitted

# reduce 422 omitted

def _reduce_423(val, _values, result)
                      result = -val[1] # TODO: pt_testcase
                    
    result
end

def _reduce_424(val, _values, result)
                      result = -val[1] # TODO: pt_testcase
                    
    result
end

# reduce 425 omitted

# reduce 426 omitted

# reduce 427 omitted

# reduce 428 omitted

# reduce 429 omitted

def _reduce_430(val, _values, result)
 result = s(:nil)   
    result
end

def _reduce_431(val, _values, result)
 result = s(:self)  
    result
end

def _reduce_432(val, _values, result)
 result = s(:true)  
    result
end

def _reduce_433(val, _values, result)
 result = s(:false) 
    result
end

def _reduce_434(val, _values, result)
 result = s(:str, self.file) 
    result
end

def _reduce_435(val, _values, result)
 result = s(:lit, lexer.src.current_line) 
    result
end

def _reduce_436(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)
                    
    result
end

def _reduce_437(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

def _reduce_438(val, _values, result)
 result = s(:nth_ref,  val[0]) 
    result
end

def _reduce_439(val, _values, result)
 result = s(:back_ref, val[0]) 
    result
end

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

def _reduce_441(val, _values, result)
                      lexer.lex_state = :expr_beg
                    
    result
end

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

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

def _reduce_444(val, _values, result)
                      result = val[1]
                      lexer.lex_state = :expr_beg
                      self.lexer.command_start = true
                    
    result
end

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

def _reduce_446(val, _values, result)
                      result = args val[0], val[2], val[4], val[5]
                    
    result
end

def _reduce_447(val, _values, result)
                      result = args val[0], val[2],    nil, val[3]
                    
    result
end

def _reduce_448(val, _values, result)
                      result = args val[0],    nil, val[2], val[3]
                    
    result
end

def _reduce_449(val, _values, result)
                      result = args val[0],    nil,    nil, val[1]
                    
    result
end

def _reduce_450(val, _values, result)
                      result = args    nil, val[0], val[2], val[3]
                    
    result
end

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

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

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

def _reduce_454(val, _values, result)
                      result = args    nil,    nil,    nil,    nil
                    
    result
end

def _reduce_455(val, _values, result)
                      yyerror "formal argument cannot be a constant: #{val[0]}"
                    
    result
end

def _reduce_456(val, _values, result)
                      yyerror "formal argument cannot be an instance variable"
                    
    result
end

def _reduce_457(val, _values, result)
                      yyerror "formal argument cannot be a class variable"
                    
    result
end

def _reduce_458(val, _values, result)
                      identifier = val[0].to_sym
                      self.env[identifier] = :lvar

                      result = val[0]
                    
    result
end

def _reduce_459(val, _values, result)
                      result = s(:args)
                      result << val[0].to_sym
                    
    result
end

def _reduce_460(val, _values, result)
                      val[0] << val[2].to_sym
                      result = val[0]
                    
    result
end

def _reduce_461(val, _values, result)
                      result = self.assignable val[0], val[2]
                      # TODO: detect duplicate names
                    
    result
end

def _reduce_462(val, _values, result)
                      result = s(:block, val[0])
                    
    result
end

def _reduce_463(val, _values, result)
                      result = self.block_append val[0], val[2]
                    
    result
end

# reduce 464 omitted

# reduce 465 omitted

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

def _reduce_467(val, _values, result)
                      name = :"*"
                      self.env[name] = :lvar
                      result = name
                    
    result
end

# reduce 468 omitted

# reduce 469 omitted

def _reduce_470(val, _values, result)
                      identifier = val[1].to_sym

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

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

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

# reduce 473 omitted

def _reduce_474(val, _values, result)
                      lexer.lex_state = :expr_beg
                    
    result
end

def _reduce_475(val, _values, result)
                      result = val[2]
                      yyerror "Can't define single method for literals." if
                        result[0] == :lit
                    
    result
end

def _reduce_476(val, _values, result)
                      result = s(:array)
                    
    result
end

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

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

# reduce 479 omitted

def _reduce_480(val, _values, result)
                      list = val[0].dup
                      more = val[2][1..-1]
                      list.push(*more) unless more.empty?
                      result = list
                    
    result
end

def _reduce_481(val, _values, result)
                      result = s(:array, val[0], val[2])
                    
    result
end

# reduce 482 omitted

# reduce 483 omitted

# reduce 484 omitted

# reduce 485 omitted

# reduce 486 omitted

# reduce 487 omitted

# reduce 488 omitted

# reduce 489 omitted

# reduce 490 omitted

# reduce 491 omitted

# reduce 492 omitted

# reduce 493 omitted

# reduce 494 omitted

# reduce 495 omitted

# reduce 496 omitted

# reduce 497 omitted

# reduce 498 omitted

# reduce 499 omitted

# reduce 500 omitted

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

# reduce 502 omitted

# reduce 503 omitted

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

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

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

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

end   # class RubyParser
