From e6f010b98369638d97d031544d9028b1c2ecf7fe Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Sun, 24 Jan 2010 18:59:29 -0500 Subject: [PATCH] adding more examples to the computer_science folder, and fiddling with operator precedence --- examples/computer_science/linked_list.coffee | 106 ++ .../computer_science/luhn_algorithm.coffee | 36 + examples/computer_science/merge_sort.coffee | 19 + .../computer_science/selection_sort.coffee | 23 + lib/coffee_script/grammar.y | 4 +- lib/coffee_script/parser.rb | 1190 ++++++++--------- 6 files changed, 780 insertions(+), 598 deletions(-) create mode 100644 examples/computer_science/linked_list.coffee create mode 100644 examples/computer_science/luhn_algorithm.coffee create mode 100644 examples/computer_science/merge_sort.coffee create mode 100644 examples/computer_science/selection_sort.coffee diff --git a/examples/computer_science/linked_list.coffee b/examples/computer_science/linked_list.coffee new file mode 100644 index 00000000..f63da641 --- /dev/null +++ b/examples/computer_science/linked_list.coffee @@ -0,0 +1,106 @@ +# "Classic" linked list implementation that doesn't keep track of its size. +LinkedList: => + this._head: null # Pointer to the first item in the list. + + +# Appends some data to the end of the list. This method traverses the existing +# list and places the value at the end in a new node. +LinkedList::add: data => + + # Create a new node object to wrap the data. + node: {data: data, next: null} + + current: this._head ||= node + + if this._head isnt node + current: current.next while current.next + current.next: node + + this + + +# Retrieves the data at the given position in the list. +LinkedList::item: index => + + # Check for out-of-bounds values. + return null if index < 0 + + current: this._head or null + i: -1 + + # Advance through the list. + current: current.next while current and index > (i += 1) + + # Return null if we've reached the end. + current and current.data + + +# Remove the item from the given location in the list. +LinkedList::remove: index => + + # Check for out-of-bounds values. + return null if index < 0 + + current: this._head or null + i: -1 + + # Special case: removing the first item. + if index is 0 + this._head: current.next + else + + # Find the right location. + [previous, current]: [current, current.next] while index > (i += 1) + + # Skip over the item to remove. + previous.next: current.next + + # Return the value. + current and current.data + + +# Calculate the number of items in the list. +LinkedList::size: => + current: this._head + count: 0 + + while current + count += 1 + current: current.next + + count + + +# Convert the list into an array. +LinkedList::toArray: => + result: [] + current: this._head + + while current + result.push(current.data) + current: current.next + + result + + +# The string representation of the linked list. +LinkedList::toString: => this.toArray().toString() + + +# Tests. +list: new LinkedList() + +list.add("Hi") +print(list.size() is 1) +print(list.item(0) is "Hi") +print(list.item(1) is null) + +list: new LinkedList() +list.add("zero").add("one").add("two") +print(list.size() is 3) +print(list.item(2) is "two") +print(list.remove(1) is "one") +print(list.item(0) is "zero") +print(list.item(1) is "two") +print(list.size() is 2) +print(list.item(-10) is null) diff --git a/examples/computer_science/luhn_algorithm.coffee b/examples/computer_science/luhn_algorithm.coffee new file mode 100644 index 00000000..2398fb26 --- /dev/null +++ b/examples/computer_science/luhn_algorithm.coffee @@ -0,0 +1,36 @@ +# Use the Luhn algorithm to validate a numeric identifier, such as credit card +# numbers, national insurance numbers, etc. +# See: http://en.wikipedia.org/wiki/Luhn_algorithm + +is_valid_identifier: identifier => + + sum: 0 + alt: false + + for i in [(identifier.length - 1)..0] + + # Get the next digit. + num: parseInt(identifier.charAt(i), 10) + + # If it's not a valid number, abort. + return false if isNaN(num) + + # If it's an alternate number... + if alt + num *= 2 + num: (num % 10) + 1 if num > 9 + + # Flip the alternate bit. + alt: !alt + + # Add to the rest of the sum. + sum += num + + # Determine if it's valid. + sum % 10 is 0 + + +# Tests. +print(is_valid_identifier("49927398716") is true) +print(is_valid_identifier("4408041234567893") is true) +print(is_valid_identifier("4408041234567890") is false) diff --git a/examples/computer_science/merge_sort.coffee b/examples/computer_science/merge_sort.coffee new file mode 100644 index 00000000..ac8d0fe2 --- /dev/null +++ b/examples/computer_science/merge_sort.coffee @@ -0,0 +1,19 @@ +# Sorts an array in ascending natural order using merge sort. +merge_sort: list => + + return list if list.length is 1 + + result: [] + pivot: Math.floor(list.length / 2) + left: merge_sort(list.slice(0, pivot)) + right: merge_sort(list.slice(pivot)) + + while left.length and right.length + result.push(if left[0] < right[0] then left.shift() else right.shift()) + + result.concat(left).concat(right) + + +# Test the function. +print(merge_sort([3, 2, 1]).join(' ') is '1 2 3') +print(merge_sort([9, 2, 7, 0, 1]).join(' ') is '0 1 2 7 9') \ No newline at end of file diff --git a/examples/computer_science/selection_sort.coffee b/examples/computer_science/selection_sort.coffee new file mode 100644 index 00000000..e8b3b53e --- /dev/null +++ b/examples/computer_science/selection_sort.coffee @@ -0,0 +1,23 @@ +# An in-place selection sort. +selection_sort: list => + len: list.length + + # For each item in the list. + for i in [0...len] + + # Set the minimum to this position. + min: i + + # Check the rest of the array to see if anything is smaller. + (min: j if list[j] < list[min]) for j in [i+1...len] + + # Swap if a smaller item has been found. + [list[i], list[min]]: [list[min], list[i]] if i isnt min + + # The list is now sorted. + list + + +# Test the function. +print(selection_sort([3, 2, 1]).join(' ') is '1 2 3') +print(selection_sort([9, 2, 7, 0, 1]).join(' ') is '0 1 2 7 9') \ No newline at end of file diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y index 40374b02..617bda01 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -37,8 +37,8 @@ prechigh right WHEN LEADING_WHEN IN OF BY right THROW FOR NEW SUPER left EXTENDS - left ASSIGN '||=' '&&=' '?=' - right RETURN + left '||=' '&&=' '?=' + right ASSIGN RETURN right '=>' '==>' UNLESS IF ELSE WHILE preclow diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index 1cb6d55e..a375ea28 100644 --- a/lib/coffee_script/parser.rb +++ b/lib/coffee_script/parser.rb @@ -34,86 +34,81 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 449) ##### State transition tables begin ### clist = [ -'106,9,114,20,24,27,32,36,40,46,50,55,61,276,270,271,30,1,5,11,14,18', -'276,22,28,33,122,126,30,30,18,99,63,218,72,115,3,6,284,15,145,18,26', -'179,30,111,1,44,48,53,59,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107,110', -'116,119,123,30,129,132,136,51,56,149,151,152,71,178,2,9,10,183,20,24', -'27,32,36,40,46,50,55,61,294,149,151,152,1,5,11,14,51,56,22,28,33,35', -'62,66,189,242,57,63,97,72,302,3,6,80,15,241,18,26,255,256,276,79,44', -'48,53,59,64,68,18,111,239,293,13,111,263,135,139,30,249,135,139,102', -'105,109,113,118,145,150,62,66,18,156,149,151,152,149,151,152,149,151', -'152,51,56,62,66,176,71,150,2,9,10,156,20,24,27,32,36,40,46,50,55,61', -'62,66,251,91,1,5,11,14,262,1,22,28,33,35,30,62,66,249,57,63,249,72,80', -'3,6,111,15,30,18,26,79,-181,-181,265,44,48,53,59,64,68,111,30,80,266', -'13,187,-181,-181,150,190,79,150,156,30,150,156,51,56,156,18,141,62,66', -'251,62,66,251,85,252,275,149,151,152,51,56,62,66,173,71,18,2,9,10,273', -'20,24,27,32,36,40,46,50,55,61,309,153,270,271,1,5,11,14,75,80,22,28', -'33,35,80,62,66,79,57,63,97,72,79,3,6,111,15,,18,26,,-181,-181,,44,48', -'53,59,64,68,184,185,,111,13,154,18,,76,-181,-181,18,,76,150,111,191', -'192,156,62,66,135,139,102,105,109,113,118,121,125,128,191,192,51,56', -',,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,111,,1,5,11,14,135,139', -'22,28,33,35,62,66,176,,57,63,177,72,,3,6,111,15,,18,26,,135,139,,44', -'48,53,59,64,68,111,,,,13,,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,,,111,,,,51,56,-181,-181,,71', -',2,9,10,,20,24,27,32,36,40,46,50,55,61,,,111,,1,5,11,14,-181,-181,22', -'28,33,35,,,,,57,63,,72,,3,6,111,15,,18,26,,-181,-181,,44,48,53,59,64', -'68,111,,,,13,,135,139,102,105,109,113,118,121,125,128,131,134,138,101', -'104,108,112,117,120,124,127,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36', -'40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18', -'26,,,,,44,48,53,59,64,68,111,,,,13,,135,139,102,105,109,113,118,121', -'125,128,131,134,138,101,104,108,112,117,120,124,127,,,,,,,51,56,,,,71', -',2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,', -',,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,135,139', -'102,105,109,113,118,121,125,128,131,134,138,101,104,108,112,117,120', -'124,127,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,', -',1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53', -'59,64,68,111,,,,13,,135,139,102,105,109,113,118,121,125,128,131,134', -'138,101,104,108,112,117,120,124,127,,,,,,,51,56,,,,71,,2,9,10,,20,24', +'106,9,114,20,24,27,32,36,40,46,50,55,61,276,270,271,178,1,5,11,14,18', +'276,22,28,33,122,126,30,30,18,99,63,265,72,115,3,6,30,15,266,18,26,218', +'30,111,1,44,48,53,59,136,139,102,105,109,113,118,121,125,129,132,135', +'138,101,104,108,112,117,120,124,128,131,134,137,100,103,107,110,116', +'119,123,127,130,133,302,51,56,149,151,152,71,173,2,9,10,183,20,24,27', +'32,36,40,46,50,55,61,294,149,151,152,1,5,11,14,51,56,22,28,33,35,80', +'30,189,242,57,63,97,72,79,3,6,80,15,241,18,26,184,185,276,79,44,48,53', +'59,64,68,18,51,56,293,13,141,62,66,111,191,192,18,30,76,136,139,102', +'105,109,150,62,66,18,155,149,151,152,191,192,149,151,152,239,51,56,149', +'151,152,71,150,2,9,10,155,20,24,27,32,36,40,46,50,55,61,153,149,151', +'152,1,5,11,14,30,80,22,28,33,35,80,62,66,79,57,63,249,72,79,3,6,249', +'15,284,18,26,62,66,62,66,44,48,53,59,64,68,270,271,145,111,13,91,18', +'157,150,-181,-181,18,155,150,111,62,66,155,1,150,136,139,30,155,62,66', +'251,273,263,62,66,251,275,51,56,30,145,262,71,150,2,9,10,155,20,24,27', +'32,36,40,46,50,55,61,187,249,190,30,1,5,11,14,256,111,22,28,33,35,85', +'-181,-181,179,57,63,255,72,80,3,6,111,15,309,18,26,79,-181,-181,75,44', +'48,53,59,64,68,97,,,,13,62,66,251,,252,,111,62,66,176,,111,136,139,18', +',76,136,139,102,105,109,113,118,121,125,129,,51,56,,,,71,,2,9,10,,20', +'24,27,32,36,40,46,50,55,61,,,111,,1,5,11,14,-181,-181,22,28,33,35,62', +'66,176,,57,63,177,72,,3,6,111,15,,18,26,,136,139,,44,48,53,59,64,68', +'111,,,,13,,136,139,102,105,109,113,118,121,125,129,132,135,138,101,104', +'108,112,117,120,124,128,,,111,,,,51,56,-181,-181,,71,,2,9,10,,20,24', +'27,32,36,40,46,50,55,61,,,111,,1,5,11,14,-181,-181,22,28,33,35,,,,,57', +'63,,72,,3,6,111,15,,18,26,,-181,-181,,44,48,53,59,64,68,111,,,,13,,136', +'139,102,105,109,113,118,121,125,129,132,135,138,101,104,108,112,117', +'120,124,128,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61', +',,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48', +'53,59,64,68,111,,,,13,,136,139,102,105,109,113,118,121,125,129,132,135', +'138,101,104,108,112,117,120,124,128,,,,,,,51,56,,,,71,,2,9,10,,20,24', '27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3', -'6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,135,139,102,105,109,113', -'118,121,125,128,131,134,138,101,104,108,112,117,120,124,127,,,,,,,51', +'6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,,,,,,,51', '56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28', '33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13', -',135,139,102,105,109,113,118,121,125,128,131,134,138,101,104,108,112', -'117,120,124,127,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55', +',136,139,102,105,109,113,118,121,125,129,132,135,138,101,104,108,112', +'117,120,124,128,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55', '61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44', -'48,53,59,64,68,111,,,,13,,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,,299,,,,,51,56,,,,71,,2,9,10', -',20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', -',72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,135,139,102,105', -'109,113,118,121,125,128,131,134,138,111,,,,,,135,139,102,105,109,113', -'118,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14', -',,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111', -',,,13,,135,139,102,105,109,113,118,121,125,128,131,134,138,111,,,,,', -'135,139,102,105,109,113,118,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40', -'46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26', -',95,,,44,48,53,59,64,68,111,,,,13,,135,139,102,105,109,113,118,121,125', -'128,131,134,138,111,,,,,,135,139,102,105,109,,,,51,56,,,,71,,2,9,10', -',20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', -',72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,135,139,102,105', -'109,113,118,121,125,128,131,134,138,111,,,,,,135,139,102,105,109,,,', -'51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22', -'28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,', -'13,,135,139,102,105,109,113,118,121,125,128,111,,,,,,135,139,102,105', -'109,113,118,121,125,128,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50', -'55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,', -'44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2', -'9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,', -'57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,', -',,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,', -',,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,282,,,,44,48', -'53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,62,66,,71,,2,9', -'10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57', -'63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1', -'5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59', -'64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24', -'27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3', -'6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,', +'48,53,59,64,68,111,,,,13,,136,139,102,105,109,113,118,121,125,129,132', +'135,138,101,104,108,112,117,120,124,128,,,,,,,51,56,,,,71,,2,9,10,,20', +'24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72', +',3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,136,139,102,105,109', +'113,118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,,,,', ',,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,', -',22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,', -',13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36', +',22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111', +',,,13,,136,139,102,105,109,113,118,121,125,129,132,135,138,101,104,108', +'112,117,120,124,128,,299,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40', +'46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26', +',,,,44,48,53,59,64,68,111,,,,13,,136,139,102,105,109,113,118,121,125', +'129,132,135,138,111,,,,,,136,139,102,105,109,113,118,,51,56,,,,71,,2', +'9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,', +'57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,136,139,102', +'105,109,113,118,121,125,129,132,135,138,111,,,,,,136,139,102,105,109', +'113,118,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5', +'11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,95,,,44,48,53,59', +'64,68,111,,,,13,,136,139,102,105,109,113,118,121,125,129,132,135,138', +'111,,,,,,136,139,102,105,109,113,118,,51,56,,,,71,,2,9,10,,20,24,27', +'32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6', +',15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,111,,,,,,136,139,102,105,109,,,,51,56,,', +',71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33', +'35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,111,,,,13,,136', +'139,102,105,109,113,118,121,125,129,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61', +',,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48', +'53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,', +'20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', +',72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,', +',,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5', +'11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,282,,,,44,48,53,59', +'64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,62,66,,71,,2,9,10,,20', +'24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72', +',3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14', +',,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,', +',,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36', '40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18', '26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,', ',71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33', @@ -131,14 +126,14 @@ clist = [ '51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22', '28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13', ',,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46', -'50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,170', +'50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,', ',,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71', ',2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,', ',,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,', ',,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61', -',,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48', -'53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,', -'20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', +',,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,170,,,,44', +'48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10', +',20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', ',72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,', ',,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5', '11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64', @@ -146,10 +141,10 @@ clist = [ '32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6', ',15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,', '51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22', -'28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,170,,,,44,48,53,59,64,68,,,,', -'13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40', -'46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26', -',,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71', +'28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46', +'50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,', +',,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71', ',2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,', ',,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,', ',,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61', @@ -161,18 +156,23 @@ clist = [ '5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59', '64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24', '27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3', -'6,,15,,18,26,30,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,51,56,62,66,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11', -'14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68', -',,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32', -'36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15', -',18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56', -',,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33', -'35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55', -'61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44', -'48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10', -',20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', +'6,,15,,18,26,170,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14', +',,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,', +',,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36', +'40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18', +'26,30,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56', +'62,66,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22', +'28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46', +'50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,', +',,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71', +',2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,', +',,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61', +',,,,1,5,11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48', +'53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,9,10,', +'20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,57,63', ',72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13,,,,,,,,,,,,,,,,,,,', ',,,,,,,,,51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5', '11,14,,,22,28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64', @@ -233,120 +233,120 @@ clist = [ '51,56,,,,71,,2,9,10,,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22', '28,33,35,,,,,57,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,,,13', '20,24,27,32,36,40,46,50,55,61,,,,,,,,,,,,28,33,,,,,,51,56,,,,71,,2,15', -'10,,26,,,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,', -',,,111,71,,2,,10,135,139,102,105,109,113,118,121,125,128,131,134,138', -'101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119', -'254,,129,132,136,,,,,,,274,20,24,27,32,36,40,46,50,55,61,,,,,1,5,11', -'14,,,22,28,33,,,,,,,63,,72,,3,6,,15,,18,26,,,,,44,48,53,59,64,68,,,', -',13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,56,,,,71,,2,,10,20,24,27,32,36,40', -'46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,,63,,72,,3,6,,15,,18,26', -',,,,44,48,53,59,64,68,106,,114,,13,,,20,24,27,32,36,40,46,50,55,61,', -',,,,,,,,122,126,28,33,,99,,51,56,115,,,71,,2,,10,15,,111,26,,,,,135', -'139,102,105,109,113,118,121,125,128,131,134,138,101,104,108,112,117', -'120,124,127,130,133,137,100,103,107,110,116,119,123,,129,132,136,106', -',114,,,,306,,,71,,2,,10,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,,,,111', -',,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104,108', -'112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129,132', -'136,106,,114,,,,310,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,,30', -',111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -',,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,,129', -'132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,', -'30,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101', -'104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123', -',129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115,,', -',,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138', -'101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119', -'254,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115', -',,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138', -'101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119', -'123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115', -',,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138', -'101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119', -'123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,,,,115', -',,,,,,,248,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134', -'138,101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116', -'119,123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99,', -',,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107,110', -'116,119,123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126,,,', -'99,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128', -'131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107', -'110,116,119,123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126', -',,,99,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128', -'131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107', -'110,116,119,123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126', -',,,99,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128', -'131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107', -'110,116,119,123,,129,132,136,106,,114,,,,,,,,,,,,,,,,,,,,,,,,122,126', -',,,99,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128', -'131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107', -'110,116,119,123,,129,132,136,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,135', -'139,102,105,109,113,118,121,125,128,131,134,138,101,104,108,112,117', -'120,124,127,130,133,137,100,103,107,110,116,119,123,,129,132,136,122', -'126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125', -'128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103', -'107,110,116,119,123,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139,102', -'105,109,113,118,121,125,128,131,134,138,101,104,108,112,117,120,124', -'127,130,133,137,100,103,107,110,116,119,123,122,126,,,,,,,,115,,,,,', -',,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101', -'104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123', -'122,126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121', -'125,128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100', -'103,107,110,116,119,123,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139', -'102,105,109,113,118,121,125,128,131,134,138,101,104,108,112,117,120', -'124,127,130,133,137,100,103,107,110,116,119,123,126,,,,,,,,115,,,,,', -',,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101', -'104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,123', -'126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125', -'128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103', -'107,110,116,119,123,126,,,,,,,,115,,,,,,,,,,111,,,,,,135,139,102,105', -'109,113,118,121,125,128,131,134,138,101,104,108,112,117,120,124,127', -'130,133,137,100,103,107,110,116,119,123,126,,,,,,,,115,,,,,,,,,,111', -',,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104,108', -'112,117,120,124,127,130,133,137,100,103,107,110,116,119,123,126,,,,', -',,,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107,110', -'116,119,123,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121,125', -'128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103', -'107,110,116,119,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118,121', -'125,128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100', -'103,107,110,116,119,115,,,,,,,,,,111,,,,,,135,139,102,105,109,113,118', -'121,125,128,131,134,138,101,104,108,112,117,120,124,127,130,133,137', -'100,103,107,110,116,119,111,,,,,,135,139,102,105,109,113,118,121,125', -'128,131,134,138,101,104,108,112,117,120,124,127,130,133,137,100,103', -'107,110,116,119,111,,,,,,135,139,102,105,109,113,118,121,125,128,131', -'134,138,101,104,108,112,117,120,124,127,130,133,137,100,103,107,110', -'116,119,111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138', -'101,104,108,112,117,120,124,127,130,133,137,100,103,107,110,116,119', -'111,,,,,,135,139,102,105,109,113,118,121,125,128,131,134,138,101,104', -'108,112,117,120,124,127,130,133,137,100,103,107,110,116,119,111,,,,', -',135,139,102,105,109,113,118,121,125,128,131,134,138,101,104,108,112', -'117,120,124,127,130,133,137,100,103,107,110,116,119' ] - racc_action_table = arr = Array.new(9843, nil) +'10,,26,,,106,,114,20,24,27,32,36,40,46,50,55,61,,,,,,,,,,,,28,33,122', +'126,,,,99,,,,115,,,,15,,,26,,,111,71,,2,,10,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,106,,114,,,,71,310,2,,10', +',,,,,,,,,,,,,,,122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105', +'109,113,118,121,125,129,132,135,138,101,104,108,112,117,120,124,128', +'131,134,137,100,103,107,110,116,119,254,127,130,133,,,,,,,,274,20,24', +'27,32,36,40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,35,,,,,,63,,72,,3,6', +',15,,18,26,,,,,44,48,53,59,64,68,106,,114,,13,,,,,,,,,,,,,,,,,,,,,,122', +'126,,,,99,,51,56,115,,,71,,2,,10,,,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,,,,,,,,306,20,24,27,32,36', +'40,46,50,55,61,,,,,1,5,11,14,,,22,28,33,,,,,,,63,,72,,3,6,,15,,18,26', +',,,,44,48,53,59,64,68,106,,114,,13,,,,,,,,,,,,,,,,,,,,,,122,126,,,,99', +',51,56,115,,,71,,2,,10,30,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,254,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,,,,,', +'122,126,,,,99,,,,115,,,,,,,,248,,111,,,,,,136,139,102,105,109,113,118', +'121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137', +'100,103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,', +',,,,122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118', +'121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137', +'100,103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,,,,,', +',,,,122,126,,,,99,,,,115,,,,,,,,30,,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,', +',,,,,,,,122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,', +',,,,,,,,122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,106,,114,,,,,,,,,,,,,,,', +',,,,,,,,122,126,,,,99,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113', +'118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134', +'137,100,103,107,110,116,119,123,127,130,133,122,126,,,,,,,,115,,,,,', +',,,,111,,,,,,136,139,102,105,109,113,118,121,125,129,132,135,138,101', +'104,108,112,117,120,124,128,131,134,137,100,103,107,110,116,119,123', +'127,130,133,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109', +'113,118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131', +'134,137,100,103,107,110,116,119,123,127,130,133,122,126,,,,,,,,115,', +',,,,,,,,111,,,,,,136,139,102,105,109,113,118,121,125,129,132,135,138', +'101,104,108,112,117,120,124,128,131,134,137,100,103,107,110,116,119', +'123,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118', +'121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137', +'100,103,107,110,116,119,123,122,126,,,,,,,,115,,,,,,,,,,111,,,,,,136', +'139,102,105,109,113,118,121,125,129,132,135,138,101,104,108,112,117', +'120,124,128,131,134,137,100,103,107,110,116,119,123,122,126,,,,,,,,115', +',,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121,125,129,132,135,138', +'101,104,108,112,117,120,124,128,131,134,137,100,103,107,110,116,119', +'123,126,,,,,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121', +'125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100', +'103,107,110,116,119,123,126,,,,,,,,115,,,,,,,,,,111,,,,,,136,139,102', +'105,109,113,118,121,125,129,132,135,138,101,104,108,112,117,120,124', +'128,131,134,137,100,103,107,110,116,119,123,126,,,,,,,,115,,,,,,,,,', +'111,,,,,,136,139,102,105,109,113,118,121,125,129,132,135,138,101,104', +'108,112,117,120,124,128,131,134,137,100,103,107,110,116,119,123,126', +',,,,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109,113,118,121,125,129', +'132,135,138,101,104,108,112,117,120,124,128,131,134,137,100,103,107', +'110,116,119,123,126,,,,,,,,115,,,,,,,,,,111,,,,,,136,139,102,105,109', +'113,118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131', +'134,137,100,103,107,110,116,119,123,115,,,,,,,,,,111,,,,,,136,139,102', +'105,109,113,118,121,125,129,132,135,138,101,104,108,112,117,120,124', +'128,131,134,137,100,103,107,110,116,119,115,,,,,,,,,,111,,,,,,136,139', +'102,105,109,113,118,121,125,129,132,135,138,101,104,108,112,117,120', +'124,128,131,134,137,100,103,107,110,116,119,115,,,,,,,,,,111,,,,,,136', +'139,102,105,109,113,118,121,125,129,132,135,138,101,104,108,112,117', +'120,124,128,131,134,137,100,103,107,110,116,119,111,,,,,,136,139,102', +'105,109,113,118,121,125,129,132,135,138,101,104,108,112,117,120,124', +'128,131,134,137,100,103,107,110,116,119,111,,,,,,136,139,102,105,109', +'113,118,121,125,129,132,135,138,101,104,108,112,117,120,124,128,131', +'134,137,100,103,107,110,116,119,111,,,,,,136,139,102,105,109,113,118', +'121,125,129,132,135,138,101,104,108,112,117,120,124,128,131,134,137', +'100,103,107,110,116,119,111,,,,,,136,139,102,105,109,113,118,121,125', +'129,132,135,138,101,104,108,112,117,120,124,128,131,134,137,100,103', +'107,110,116,119,111,,,,,,136,139,102,105,109,113,118,121,125,129,132', +'135,138,101,104,108,112,117,120,124,128,131,134,137,100,103,107,110', +'116,119' ] + racc_action_table = arr = Array.new(9789, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -356,220 +356,219 @@ clist = [ end clist = [ -'87,145,87,111,111,111,111,111,111,111,111,111,111,296,193,193,263,111', -'111,111,111,296,248,111,111,111,87,87,193,265,248,87,111,123,111,87', -'111,111,254,111,39,111,111,80,145,87,275,111,111,111,111,87,87,87,87', +'87,145,87,111,111,111,111,111,111,111,111,111,111,296,193,193,79,111', +'111,111,111,296,248,111,111,111,87,87,193,265,248,87,111,186,111,87', +'111,111,291,111,190,111,111,123,145,87,275,111,111,111,111,87,87,87', '87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87', -'87,87,87,87,291,87,87,87,111,111,243,243,243,111,79,111,100,111,87,100', -'100,100,100,100,100,100,100,100,100,277,83,83,83,100,100,100,100,275', -'275,100,100,100,100,278,278,94,152,100,100,35,100,291,100,100,176,100', -'151,100,100,173,174,277,176,100,100,100,100,100,100,277,197,149,277', -'100,216,184,197,197,42,180,216,216,216,216,216,216,216,143,243,94,94', -'176,243,244,244,244,70,70,70,84,84,84,100,100,174,174,174,100,83,100', -'302,100,83,302,302,302,302,302,302,302,302,302,302,180,180,180,21,302', -'302,302,302,180,141,302,302,302,302,140,176,176,246,302,302,169,302', -'175,302,302,159,302,185,302,302,175,159,159,186,302,302,302,302,302', -'302,161,294,259,190,302,91,161,161,244,97,259,70,244,14,84,70,38,38', -'84,175,38,246,246,246,169,169,169,6,169,246,41,41,41,302,302,34,34,75', -'302,259,302,3,302,218,3,3,3,3,3,3,3,3,3,3,303,41,272,272,3,3,3,3,1,76', -'3,3,3,3,2,29,29,76,3,3,122,3,2,3,3,163,3,,3,3,,163,163,,3,3,3,3,3,3', -'90,90,,89,3,41,76,,76,89,89,2,,2,41,232,98,98,41,301,301,232,232,232', -'232,232,232,232,232,232,232,217,217,3,3,,,,3,,3,125,3,,125,125,125,125', -'125,125,125,125,125,125,,,204,,125,125,125,125,204,204,125,125,125,125', -'78,78,78,,125,125,78,125,,125,125,200,125,,125,125,,200,200,,125,125', -'125,125,125,125,215,,,,125,,215,215,215,215,215,215,215,215,215,215', -'215,215,215,215,215,215,215,215,215,215,215,,,165,,,,125,125,165,165', -',125,,125,124,125,,124,124,124,124,124,124,124,124,124,124,,,166,,124', -'124,124,124,166,166,124,124,124,124,,,,,124,124,,124,,124,124,160,124', -',124,124,,160,160,,124,124,124,124,124,124,228,,,,124,,228,228,228,228', -'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', -',,,,,,124,124,,,,124,,124,9,124,,9,9,9,9,9,9,9,9,9,9,,,,,9,9,9,9,,,9', -'9,9,9,,,,,9,9,,9,,9,9,,9,,9,9,,,,,9,9,9,9,9,9,231,,,,9,,231,231,231', +'87,87,87,87,87,87,87,87,291,111,111,83,83,83,111,75,111,100,111,87,100', +'100,100,100,100,100,100,100,100,100,277,70,70,70,100,100,100,100,275', +'275,100,100,100,100,76,185,94,152,100,100,35,100,76,100,100,176,100', +'151,100,100,90,90,277,176,100,100,100,100,100,100,277,38,38,277,100', +'38,301,301,208,217,217,76,263,76,208,208,208,208,208,83,94,94,176,83', +'84,84,84,98,98,41,41,41,149,100,100,244,244,244,100,70,100,302,100,70', +'302,302,302,302,302,302,302,302,302,302,41,243,243,243,302,302,302,302', +'42,175,302,302,302,302,259,176,176,175,302,302,245,302,259,302,302,180', +'302,254,302,302,29,29,34,34,302,302,302,302,302,302,272,272,143,161', +'302,21,175,41,84,161,161,259,84,41,197,278,278,41,141,244,197,197,140', +'244,245,245,245,218,184,180,180,180,245,302,302,294,39,180,302,243,302', +'3,302,243,3,3,3,3,3,3,3,3,3,3,91,169,97,14,3,3,3,3,174,160,3,3,3,3,6', +'160,160,80,3,3,173,3,2,3,3,159,3,303,3,3,2,159,159,1,3,3,3,3,3,3,122', +',,,3,169,169,169,,169,,204,174,174,174,,230,204,204,2,,2,230,230,230', +'230,230,230,230,230,230,230,,3,3,,,,3,,3,126,3,,126,126,126,126,126', +'126,126,126,126,126,,,89,,126,126,126,126,89,89,126,126,126,126,78,78', +'78,,126,126,78,126,,126,126,200,126,,126,126,,200,200,,126,126,126,126', +'126,126,219,,,,126,,219,219,219,219,219,219,219,219,219,219,219,219', +'219,219,219,219,219,219,219,219,219,,,165,,,,126,126,165,165,,126,,126', +'125,126,,125,125,125,125,125,125,125,125,125,125,,,166,,125,125,125', +'125,166,166,125,125,125,125,,,,,125,125,,125,,125,125,163,125,,125,125', +',163,163,,125,125,125,125,125,125,215,,,,125,,215,215,215,215,215,215', +'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,,,,,,,125', +'125,,,,125,,125,9,125,,9,9,9,9,9,9,9,9,9,9,,,,,9,9,9,9,,,9,9,9,9,,,', +',9,9,,9,,9,9,,9,,9,9,,,,,9,9,9,9,9,9,223,,,,9,,223,223,223,223,223,223', +'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,,,,,,,9', +'9,,,,9,,9,10,9,,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,195,,,,10', +',195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195', +'195,195,195,195,,,,,,,10,10,,,,10,,10,124,10,,124,124,124,124,124,124', +'124,124,124,124,,,,,124,124,124,124,,,124,124,124,124,,,,,124,124,,124', +',124,124,,124,,124,124,,,,,124,124,124,124,124,124,231,,,,124,,231,231', '231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', -'231,,,,,,,9,9,,,,9,,9,10,9,,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,219,,,,10,,219,219,219,219,219,219,219,219,219,219,219,219,219', -'219,219,219,219,219,219,219,219,,,,,,,10,10,,,,10,,10,127,10,,127,127', -'127,127,127,127,127,127,127,127,,,,,127,127,127,127,,,127,127,127,127', -',,,,127,127,,127,,127,127,,127,,127,127,,,,,127,127,127,127,127,127', -'222,,,,127,,222,222,222,222,222,222,222,222,222,222,222,222,222,222', -'222,222,222,222,222,222,222,,,,,,,127,127,,,,127,,127,13,127,,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,225,,,,13,,225,225,225,225,225', -'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,,,,', -',,13,13,,,,13,,13,128,13,,128,128,128,128,128,128,128,128,128,128,,', -',,128,128,128,128,,,128,128,128,128,,,,,128,128,,128,,128,128,,128,', -'128,128,,,,,128,128,128,128,128,128,195,,,,128,,195,195,195,195,195', -'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,,,,', -',,128,128,,,,128,,128,284,128,,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,212,,,,284,,212,212,212,212,212', -'212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,,284', -',,,,284,284,,,,284,,284,22,284,,22,22,22,22,22,22,22,22,22,22,,,,,22', -'22,22,22,,,22,22,22,22,,,,,22,22,,22,,22,22,,22,,22,22,,,,,22,22,22', -'22,22,22,196,,,,22,,196,196,196,196,196,196,196,196,196,196,196,196', -'196,220,,,,,,220,220,220,220,220,220,220,,22,22,,,,22,,22,282,22,,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,199,,,,282,,199,199,199,199,199,199,199,199,199,199,199,199,199', -'223,,,,,,223,223,223,223,223,223,223,,282,282,,,,282,,282,30,282,,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,203,,,,30,,203,203,203', -'203,203,203,203,203,203,203,203,203,203,208,,,,,,208,208,208,208,208', -',,,30,30,,,,30,,30,281,30,,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,207,,,,281,,207,207,207,207,207', -'207,207,207,207,207,207,207,207,213,,,,,,213,213,213,213,213,,,,281', -'281,,,,281,,281,276,281,,276,276,276,276,276,276,276,276,276,276,,,', -',276,276,276,276,,,276,276,276,276,,,,,276,276,,276,,276,276,,276,,276', -'276,,,,,276,276,276,276,276,276,229,,,,276,,229,229,229,229,229,229', -'229,229,229,229,226,,,,,,226,226,226,226,226,226,226,226,226,226,,276', -'276,,,,276,,276,271,276,,271,271,271,271,271,271,271,271,271,271,,,', -',271,271,271,271,,,271,271,271,271,,,,,271,271,,271,,271,271,,271,,271', -'271,,,,,271,271,271,271,271,271,,,,,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'271,271,,,,271,,271,270,271,,270,270,270,270,270,270,270,270,270,270', -',,,,270,270,270,270,,,270,270,270,270,,,,,270,270,,270,,270,270,,270', -',270,270,,,,,270,270,270,270,270,270,,,,,270,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,270,270,,,,270,,270,251,270,,251,251,251,251,251,251,251,251,251', -'251,,,,,251,251,251,251,,,251,251,251,251,,,,,251,251,,251,,251,251', -',251,,251,251,251,,,,251,251,251,251,251,251,,,,,251,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,251,251,251,251,,251,,251,250,251,,250,250,250,250,250', -'250,250,250,250,250,,,,,250,250,250,250,,,250,250,250,250,,,,,250,250', -',250,,250,250,,250,,250,250,,,,,250,250,250,250,250,250,,,,,250,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,250,250,,,,250,,250,121,250,,121,121,121,121', -'121,121,121,121,121,121,,,,,121,121,121,121,,,121,121,121,121,,,,,121', -'121,,121,,121,121,,121,,121,121,,,,,121,121,121,121,121,121,,,,,121', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,121,121,,,,121,,121,44,121,,44,44,44,44', -'44,44,44,44,44,44,,,,,44,44,44,44,,,44,44,44,44,,,,,44,44,,44,,44,44', -',44,,44,44,,,,,44,44,44,44,44,44,,,,,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'44,44,,,,44,,44,48,44,,48,48,48,48,48,48,48,48,48,48,,,,,48,48,48,48', -',,48,48,48,48,,,,,48,48,,48,,48,48,,48,,48,48,,,,,48,48,48,48,48,48', -',,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,48,,,,48,,48,53,48,,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,57,53,,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,59,57,,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,63,59,,63,63,63,63,63,63,63,63,63,63,,,,,63,63,63,63', -',,63,63,63,63,,,,,63,63,,63,,63,63,,63,,63,63,,,,,63,63,63,63,63,63', -',,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,63,63,,,,63,,63,64,63,,64,64,64,64', -'64,64,64,64,64,64,,,,,64,64,64,64,,,64,64,64,64,,,,,64,64,,64,,64,64', -',64,,64,64,,,,,64,64,64,64,64,64,,,,,64,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'64,64,,,,64,,64,68,64,,68,68,68,68,68,68,68,68,68,68,,,,,68,68,68,68', -',,68,68,68,68,,,,,68,68,,68,,68,68,,68,,68,68,,,,,68,68,68,68,68,68', -',,,,68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,68,68,,,,68,,68,192,68,,192,192,192', -'192,192,192,192,192,192,192,,,,,192,192,192,192,,,192,192,192,192,,', -',,192,192,,192,,192,192,,192,,192,192,,,,,192,192,192,192,192,192,,', -',,192,,,,,,,,,,,,,,,,,,,,,,,,,,,,,192,192,,,,192,,192,71,192,,71,71', -'71,71,71,71,71,71,71,71,,,,,71,71,71,71,,,71,71,71,71,,,,,71,71,,71', -',71,71,,71,,71,71,71,,,,71,71,71,71,71,71,,,,,71,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,71,71,,,,71,,71,72,71,,72,72,72,72,72,72,72,72,72,72,,,,,72', -'72,72,72,,,72,72,72,72,,,,,72,72,,72,,72,72,,72,,72,72,,,,,72,72,72', -'72,72,72,,,,,72,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,72,,,,72,,72,191,72,', -'191,191,191,191,191,191,191,191,191,191,,,,,191,191,191,191,,,191,191', -'191,191,,,,,191,191,,191,,191,191,,191,,191,191,,,,,191,191,191,191', -'191,191,,,,,191,,,,,,,,,,,,,,,,,,,,,,,,,,,,,191,191,,,,191,,191,179', -'191,,179,179,179,179,179,179,179,179,179,179,,,,,179,179,179,179,,,179', -'179,179,179,,,,,179,179,,179,,179,179,,179,,179,179,,,,,179,179,179', -'179,179,179,,,,,179,,,,,,,,,,,,,,,,,,,,,,,,,,,,,179,179,,,,179,,179', -'178,179,,178,178,178,178,178,178,178,178,178,178,,,,,178,178,178,178', -',,178,178,178,178,,,,,178,178,,178,,178,178,,178,,178,178,,,,,178,178', -'178,178,178,178,,,,,178,,,,,,,,,,,,,,,,,,,,,,,,,,,,,178,178,,,,178,', -'178,170,178,,170,170,170,170,170,170,170,170,170,170,,,,,170,170,170', -'170,,,170,170,170,170,,,,,170,170,,170,,170,170,,170,,170,170,,,,,170', -'170,170,170,170,170,,,,,170,,,,,,,,,,,,,,,,,,,,,,,,,,,,,170,170,,,,170', -',170,156,170,,156,156,156,156,156,156,156,156,156,156,,,,,156,156,156', -'156,,,156,156,156,156,,,,,156,156,,156,,156,156,,156,,156,156,156,,', -',156,156,156,156,156,156,,,,,156,,,,,,,,,,,,,,,,,,,,,,,,,,,,,156,156', -',,,156,,156,154,156,,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,120,154,,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,150,120,,150,150,150,150,150,150,150,150,150,150', -',,,,150,150,150,150,,,150,150,150,150,,,,,150,150,,150,,150,150,,150', -',150,150,,,,,150,150,150,150,150,150,,,,,150,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,150,150,,,,150,,150,85,150,,85,85,85,85,85,85,85,85,85,85,,,,,85', -'85,85,85,,,85,85,85,85,,,,,85,85,,85,,85,85,,85,,85,85,85,,,,85,85,85', -'85,85,85,,,,,85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,85,,,,85,,85,138,85,', -'138,138,138,138,138,138,138,138,138,138,,,,,138,138,138,138,,,138,138', -'138,138,,,,,138,138,,138,,138,138,,138,,138,138,,,,,138,138,138,138', -'138,138,,,,,138,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,138,,,,138,,138,0,138', -',0,0,0,0,0,0,0,0,0,0,,,,,0,0,0,0,,,0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0', -',,,0,0,0,0,0,0,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,0,,0,137,0', -',137,137,137,137,137,137,137,137,137,137,,,,,137,137,137,137,,,137,137', -'137,137,,,,,137,137,,137,,137,137,,137,,137,137,,,,,137,137,137,137', -'137,137,,,,,137,,,,,,,,,,,,,,,,,,,,,,,,,,,,,137,137,,,,137,,137,136', -'137,,136,136,136,136,136,136,136,136,136,136,,,,,136,136,136,136,,,136', -'136,136,136,,,,,136,136,,136,,136,136,,136,,136,136,,,,,136,136,136', -'136,136,136,,,,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,136,136,,,,136,,136', -'134,136,,134,134,134,134,134,134,134,134,134,134,,,,,134,134,134,134', -',,134,134,134,134,,,,,134,134,,134,,134,134,,134,,134,134,,,,,134,134', -'134,134,134,134,,,,,134,,,,,,,,,,,,,,,,,,,,,,,,,,,,,134,134,,,,134,', -'134,133,134,,133,133,133,133,133,133,133,133,133,133,,,,,133,133,133', -'133,,,133,133,133,133,,,,,133,133,,133,,133,133,,133,,133,133,,,,,133', -'133,133,133,133,133,,,,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133', -',133,132,133,,132,132,132,132,132,132,132,132,132,132,,,,,132,132,132', -'132,,,132,132,132,132,,,,,132,132,,132,,132,132,,132,,132,132,,,,,132', -'132,132,132,132,132,,,,,132,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,132,,,,132', -',132,93,132,,93,93,93,93,93,93,93,93,93,93,,,,,93,93,93,93,,,93,93,93', -'93,,,,,93,93,,93,,93,93,,93,,93,93,,,,,93,93,93,93,93,93,,,,,93,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,93,93,,,,93,,93,131,93,,131,131,131,131,131', -'131,131,131,131,131,,,,,131,131,131,131,,,131,131,131,131,,,,,131,131', -',131,,131,131,,131,,131,131,,,,,131,131,131,131,131,131,,,,,131,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,131,131,,,,131,,131,130,131,,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,129,130,,129,129,129', -'129,129,129,129,129,129,129,,,,,129,129,129,129,,,129,129,129,129,,', -',,129,129,,129,,129,129,,129,,129,129,,,,,129,129,129,129,129,129,,', -',,129,,,,,,,,,,,,,,,,,,,,,,,,,,,,,129,129,,,,129,,129,99,129,,99,99', -'99,99,99,99,99,99,99,99,,,,,99,99,99,99,,,99,99,99,99,,,,,99,99,,99', -',99,99,,99,,99,99,,,,,99,99,99,99,99,99,,,,,99,,,,,,,,,,,,,,,,,,,,,', -',,,,,,,99,99,,,,99,,99,126,99,,126,126,126,126,126,126,126,126,126,126', -',,,,126,126,126,126,,,126,126,126,126,,,,,126,126,,126,,126,126,,126', -',126,126,,,,,126,126,126,126,126,126,,,,,126,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,126,126,,,,126,,126,101,126,,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,,,,,101,101,101,101,101,101,,,,,101,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,101,101,,,,101,,101,102,101,,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,,,,,102,102,102,102,102,102,,,,,102,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,102,102,,,,102,,102,103,102,,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,104,103,,104,104,104,104,104,104', -'104,104,104,104,,,,,104,104,104,104,,,104,104,104,104,,,,,104,104,,104', -',104,104,,104,,104,104,,,,,104,104,104,104,104,104,,,,,104,,,,,,,,,', -',,,,,,,,,,,,,,,,,,,104,104,,,,104,,104,105,104,,105,105,105,105,105', -'105,105,105,105,105,,,,,105,105,105,105,,,105,105,105,105,,,,,105,105', -',105,,105,105,,105,,105,105,,,,,105,105,105,105,105,105,,,,,105,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,105,105,,,,105,,105,118,105,,118,118,118,118', -'118,118,118,118,118,118,,,,,118,118,118,118,,,118,118,118,118,,,,,118', -'118,,118,,118,118,,118,,118,118,,,,,118,118,118,118,118,118,,,,,118', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,118,118,,,,118,,118,107,118,,107,107,107', -'107,107,107,107,107,107,107,,,,,107,107,107,107,,,107,107,107,107,,', -',,107,107,,107,,107,107,,107,,107,107,,,,,107,107,107,107,107,107,,', -',,107,,,,,,,,,,,,,,,,,,,,,,,,,,,,,107,107,,,,107,,107,108,107,,108,108', -'108,108,108,108,108,108,108,108,,,,,108,108,108,108,,,108,108,108,108', -',,,,108,108,,108,,108,108,,108,,108,108,,,,,108,108,108,108,108,108', -',,,,108,,,,,,,,,,,,,,,,,,,,,,,,,,,,,108,108,,,,108,,108,109,108,,109', -'109,109,109,109,109,109,109,109,109,,,,,109,109,109,109,,,109,109,109', -'109,,,,,109,109,,109,,109,109,,109,,109,109,,,,,109,109,109,109,109', -'109,,,,,109,,,,,,,,,,,,,,,,,,,,,,,,,,,,,109,109,,,,109,,109,110,109', -',110,110,110,110,110,110,110,110,110,110,,,,,110,110,110,110,,,110,110', -'110,110,,,,,110,110,,110,,110,110,,110,,110,110,,,,,110,110,110,110', -'110,110,,,,,110,,,,,,,,,,,,,,,,,,,,,,,,,,,,,110,110,,,,110,,110,119', -'110,,119,119,119,119,119,119,119,119,119,119,,,,,119,119,119,119,,,119', -'119,119,119,,,,,119,119,,119,,119,119,,119,,119,119,,,,,119,119,119', -'119,119,119,,,,,119,,,,,,,,,,,,,,,,,,,,,,,,,,,,,119,119,,,,119,,119', -'112,119,,112,112,112,112,112,112,112,112,112,112,,,,,112,112,112,112', -',,112,112,112,112,,,,,112,112,,112,,112,112,,112,,112,112,,,,,112,112', -'112,112,112,112,,,,,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,112,,,,112,', -'112,113,112,,113,113,113,113,113,113,113,113,113,113,,,,,113,113,113', +'231,231,,,,,,,124,124,,,,124,,124,13,124,,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,229,,,,13,,229,229,229,229,229,229,229,229,229,229', +'229,229,229,229,229,229,229,229,229,229,229,,,,,,,13,13,,,,13,,13,128', +'13,,128,128,128,128,128,128,128,128,128,128,,,,,128,128,128,128,,,128', +'128,128,128,,,,,128,128,,128,,128,128,,128,,128,128,,,,,128,128,128', +'128,128,128,226,,,,128,,226,226,226,226,226,226,226,226,226,226,226', +'226,226,226,226,226,226,226,226,226,226,,,,,,,128,128,,,,128,,128,284', +'128,,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,212,,,,284,,212,212,212,212,212,212,212,212,212,212,212', +'212,212,212,212,212,212,212,212,212,212,,284,,,,,284,284,,,,284,,284', +'22,284,,22,22,22,22,22,22,22,22,22,22,,,,,22,22,22,22,,,22,22,22,22', +',,,,22,22,,22,,22,22,,22,,22,22,,,,,22,22,22,22,22,22,196,,,,22,,196', +'196,196,196,196,196,196,196,196,196,196,196,196,224,,,,,,224,224,224', +'224,224,224,224,,22,22,,,,22,,22,282,22,,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,207,,,,282,,207,207', +'207,207,207,207,207,207,207,207,207,207,207,220,,,,,,220,220,220,220', +'220,220,220,,282,282,,,,282,,282,30,282,,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,203,,,,30,,203,203,203,203,203,203,203,203,203,203', +'203,203,203,216,,,,,,216,216,216,216,216,216,216,,30,30,,,,30,,30,281', +'30,,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,199,,,,281,,199,199,199,199,199,199,199,199,199,199,199', +'199,199,213,,,,,,213,213,213,213,213,,,,281,281,,,,281,,281,276,281', +',276,276,276,276,276,276,276,276,276,276,,,,,276,276,276,276,,,276,276', +'276,276,,,,,276,276,,276,,276,276,,276,,276,276,,,,,276,276,276,276', +'276,276,232,,,,276,,232,232,232,232,232,232,232,232,232,232,227,,,,', +',227,227,227,227,227,227,227,227,227,227,,276,276,,,,276,,276,271,276', +',271,271,271,271,271,271,271,271,271,271,,,,,271,271,271,271,,,271,271', +'271,271,,,,,271,271,,271,,271,271,,271,,271,271,,,,,271,271,271,271', +'271,271,,,,,271,,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,271,,,,271,,271,270', +'271,,270,270,270,270,270,270,270,270,270,270,,,,,270,270,270,270,,,270', +'270,270,270,,,,,270,270,,270,,270,270,,270,,270,270,,,,,270,270,270', +'270,270,270,,,,,270,,,,,,,,,,,,,,,,,,,,,,,,,,,,,270,270,,,,270,,270', +'251,270,,251,251,251,251,251,251,251,251,251,251,,,,,251,251,251,251', +',,251,251,251,251,,,,,251,251,,251,,251,251,,251,,251,251,251,,,,251', +'251,251,251,251,251,,,,,251,,,,,,,,,,,,,,,,,,,,,,,,,,,,,251,251,251', +'251,,251,,251,250,251,,250,250,250,250,250,250,250,250,250,250,,,,,250', +'250,250,250,,,250,250,250,250,,,,,250,250,,250,,250,250,,250,,250,250', +',,,,250,250,250,250,250,250,,,,,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,250', +'250,,,,250,,250,129,250,,129,129,129,129,129,129,129,129,129,129,,,', +',129,129,129,129,,,129,129,129,129,,,,,129,129,,129,,129,129,,129,,129', +'129,,,,,129,129,129,129,129,129,,,,,129,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'129,129,,,,129,,129,44,129,,44,44,44,44,44,44,44,44,44,44,,,,,44,44', +'44,44,,,44,44,44,44,,,,,44,44,,44,,44,44,,44,,44,44,,,,,44,44,44,44', +'44,44,,,,,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,44,44,,,,44,,44,48,44,,48,48', +'48,48,48,48,48,48,48,48,,,,,48,48,48,48,,,48,48,48,48,,,,,48,48,,48', +',48,48,,48,,48,48,,,,,48,48,48,48,48,48,,,,,48,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,48,48,,,,48,,48,53,48,,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,57,53,,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,59,57,,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,63,59,,63,63', +'63,63,63,63,63,63,63,63,,,,,63,63,63,63,,,63,63,63,63,,,,,63,63,,63', +',63,63,,63,,63,63,,,,,63,63,63,63,63,63,,,,,63,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,63,63,,,,63,,63,64,63,,64,64,64,64,64,64,64,64,64,64,,,,,64,64', +'64,64,,,64,64,64,64,,,,,64,64,,64,,64,64,,64,,64,64,,,,,64,64,64,64', +'64,64,,,,,64,,,,,,,,,,,,,,,,,,,,,,,,,,,,,64,64,,,,64,,64,68,64,,68,68', +'68,68,68,68,68,68,68,68,,,,,68,68,68,68,,,68,68,68,68,,,,,68,68,,68', +',68,68,,68,,68,68,,,,,68,68,68,68,68,68,,,,,68,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,68,68,,,,68,,68,192,68,,192,192,192,192,192,192,192,192,192,192', +',,,,192,192,192,192,,,192,192,192,192,,,,,192,192,,192,,192,192,,192', +',192,192,,,,,192,192,192,192,192,192,,,,,192,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,192,192,,,,192,,192,71,192,,71,71,71,71,71,71,71,71,71,71,,,,,71', +'71,71,71,,,71,71,71,71,,,,,71,71,,71,,71,71,,71,,71,71,71,,,,71,71,71', +'71,71,71,,,,,71,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,71,,,,71,,71,72,71,,72', +'72,72,72,72,72,72,72,72,72,,,,,72,72,72,72,,,72,72,72,72,,,,,72,72,', +'72,,72,72,,72,,72,72,,,,,72,72,72,72,72,72,,,,,72,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,72,,,,72,,72,191,72,,191,191,191,191,191,191,191,191,191', +'191,,,,,191,191,191,191,,,191,191,191,191,,,,,191,191,,191,,191,191', +',191,,191,191,,,,,191,191,191,191,191,191,,,,,191,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,191,191,,,,191,,191,179,191,,179,179,179,179,179,179,179,179', +'179,179,,,,,179,179,179,179,,,179,179,179,179,,,,,179,179,,179,,179', +'179,,179,,179,179,,,,,179,179,179,179,179,179,,,,,179,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,179,179,,,,179,,179,178,179,,178,178,178,178,178,178,178', +'178,178,178,,,,,178,178,178,178,,,178,178,178,178,,,,,178,178,,178,', +'178,178,,178,,178,178,,,,,178,178,178,178,178,178,,,,,178,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,178,178,,,,178,,178,121,178,,121,121,121,121,121,121', +'121,121,121,121,,,,,121,121,121,121,,,121,121,121,121,,,,,121,121,,121', +',121,121,,121,,121,121,,,,,121,121,121,121,121,121,,,,,121,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,121,121,,,,121,,121,170,121,,170,170,170,170,170', +'170,170,170,170,170,,,,,170,170,170,170,,,170,170,170,170,,,,,170,170', +',170,,170,170,,170,,170,170,,,,,170,170,170,170,170,170,,,,,170,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,170,170,,,,170,,170,157,170,,157,157,157,157', +'157,157,157,157,157,157,,,,,157,157,157,157,,,157,157,157,157,,,,,157', +'157,,157,,157,157,,157,,157,157,,,,,157,157,157,157,157,157,,,,,157', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,157,157,,,,157,,157,155,157,,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,120,155,,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,85,120,', +'85,85,85,85,85,85,85,85,85,85,,,,,85,85,85,85,,,85,85,85,85,,,,,85,85', +',85,,85,85,,85,,85,85,85,,,,85,85,85,85,85,85,,,,,85,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,85,85,,,,85,,85,150,85,,150,150,150,150,150,150,150,150', +'150,150,,,,,150,150,150,150,,,150,150,150,150,,,,,150,150,,150,,150', +'150,,150,,150,150,,,,,150,150,150,150,150,150,,,,,150,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,150,150,,,,150,,150,0,150,,0,0,0,0,0,0,0,0,0,0,,,,,0,0', +'0,0,,,0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0,,,,0,0,0,0,0,0,,,,,0,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,0,0,0,0,,0,,0,138,0,,138,138,138,138,138,138,138', +'138,138,138,,,,,138,138,138,138,,,138,138,138,138,,,,,138,138,,138,', +'138,138,,138,,138,138,,,,,138,138,138,138,138,138,,,,,138,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,138,138,,,,138,,138,137,138,,137,137,137,137,137,137', +'137,137,137,137,,,,,137,137,137,137,,,137,137,137,137,,,,,137,137,,137', +',137,137,,137,,137,137,,,,,137,137,137,137,137,137,,,,,137,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,137,137,,,,137,,137,135,137,,135,135,135,135,135', +'135,135,135,135,135,,,,,135,135,135,135,,,135,135,135,135,,,,,135,135', +',135,,135,135,,135,,135,135,,,,,135,135,135,135,135,135,,,,,135,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,135,135,,,,135,,135,134,135,,134,134,134,134', +'134,134,134,134,134,134,,,,,134,134,134,134,,,134,134,134,134,,,,,134', +'134,,134,,134,134,,134,,134,134,,,,,134,134,134,134,134,134,,,,,134', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,134,134,,,,134,,134,133,134,,133,133,133', +'133,133,133,133,133,133,133,,,,,133,133,133,133,,,133,133,133,133,,', +',,133,133,,133,,133,133,,133,,133,133,,,,,133,133,133,133,133,133,,', +',,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133,,133,93,133,,93,93', +'93,93,93,93,93,93,93,93,,,,,93,93,93,93,,,93,93,93,93,,,,,93,93,,93', +',93,93,,93,,93,93,,,,,93,93,93,93,93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,93,93,,,,93,,93,132,93,,132,132,132,132,132,132,132,132,132,132', +',,,,132,132,132,132,,,132,132,132,132,,,,,132,132,,132,,132,132,,132', +',132,132,,,,,132,132,132,132,132,132,,,,,132,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,132,132,,,,132,,132,131,132,,131,131,131,131,131,131,131,131,131', +'131,,,,,131,131,131,131,,,131,131,131,131,,,,,131,131,,131,,131,131', +',131,,131,131,,,,,131,131,131,131,131,131,,,,,131,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,131,131,,,,131,,131,130,131,,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,99,130,,99,99,99,99,99,99,99,99,99', +'99,,,,,99,99,99,99,,,99,99,99,99,,,,,99,99,,99,,99,99,,99,,99,99,,,', +',99,99,99,99,99,99,,,,,99,,,,,,,,,,,,,,,,,,,,,,,,,,,,,99,99,,,,99,,99', +'127,99,,127,127,127,127,127,127,127,127,127,127,,,,,127,127,127,127', +',,127,127,127,127,,,,,127,127,,127,,127,127,,127,,127,127,,,,,127,127', +'127,127,127,127,,,,,127,,,,,,,,,,,,,,,,,,,,,,,,,,,,,127,127,,,,127,', +'127,101,127,,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,,,,,101', +'101,101,101,101,101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,,,101,101,,,,101', +',101,102,101,,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,,,,,102', +'102,102,102,102,102,,,,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,102,,,,102', +',102,103,102,,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,104,103,,104,104,104,104,104,104,104,104,104,104,,,,,104,104,104', +'104,,,104,104,104,104,,,,,104,104,,104,,104,104,,104,,104,104,,,,,104', +'104,104,104,104,104,,,,,104,,,,,,,,,,,,,,,,,,,,,,,,,,,,,104,104,,,,104', +',104,105,104,,105,105,105,105,105,105,105,105,105,105,,,,,105,105,105', +'105,,,105,105,105,105,,,,,105,105,,105,,105,105,,105,,105,105,,,,,105', +'105,105,105,105,105,,,,,105,,,,,,,,,,,,,,,,,,,,,,,,,,,,,105,105,,,,105', +',105,106,105,,106,106,106,106,106,106,106,106,106,106,,,,,106,106,106', +'106,,,106,106,106,106,,,,,106,106,,106,,106,106,,106,,106,106,,,,,106', +'106,106,106,106,106,,,,,106,,,,,,,,,,,,,,,,,,,,,,,,,,,,,106,106,,,,106', +',106,118,106,,118,118,118,118,118,118,118,118,118,118,,,,,118,118,118', +'118,,,118,118,118,118,,,,,118,118,,118,,118,118,,118,,118,118,,,,,118', +'118,118,118,118,118,,,,,118,,,,,,,,,,,,,,,,,,,,,,,,,,,,,118,118,,,,118', +',118,108,118,,108,108,108,108,108,108,108,108,108,108,,,,,108,108,108', +'108,,,108,108,108,108,,,,,108,108,,108,,108,108,,108,,108,108,,,,,108', +'108,108,108,108,108,,,,,108,,,,,,,,,,,,,,,,,,,,,,,,,,,,,108,108,,,,108', +',108,109,108,,109,109,109,109,109,109,109,109,109,109,,,,,109,109,109', +'109,,,109,109,109,109,,,,,109,109,,109,,109,109,,109,,109,109,,,,,109', +'109,109,109,109,109,,,,,109,,,,,,,,,,,,,,,,,,,,,,,,,,,,,109,109,,,,109', +',109,110,109,,110,110,110,110,110,110,110,110,110,110,,,,,110,110,110', +'110,,,110,110,110,110,,,,,110,110,,110,,110,110,,110,,110,110,,,,,110', +'110,110,110,110,110,,,,,110,,,,,,,,,,,,,,,,,,,,,,,,,,,,,110,110,,,,110', +',110,119,110,,119,119,119,119,119,119,119,119,119,119,,,,,119,119,119', +'119,,,119,119,119,119,,,,,119,119,,119,,119,119,,119,,119,119,,,,,119', +'119,119,119,119,119,,,,,119,,,,,,,,,,,,,,,,,,,,,,,,,,,,,119,119,,,,119', +',119,112,119,,112,112,112,112,112,112,112,112,112,112,,,,,112,112,112', +'112,,,112,112,112,112,,,,,112,112,,112,,112,112,,112,,112,112,,,,,112', +'112,112,112,112,112,,,,,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,112,,,,112', +',112,113,112,,113,113,113,113,113,113,113,113,113,113,,,,,113,113,113', '113,,,113,113,113,113,,,,,113,113,,113,,113,113,,113,,113,113,,,,,113', '113,113,113,113,113,,,,,113,,,,,,,,,,,,,,,,,,,,,,,,,,,,,113,113,,,,113', ',113,114,113,,114,114,114,114,114,114,114,114,114,114,,,,,114,114,114', @@ -584,122 +583,121 @@ clist = [ ',116,117,116,,117,117,117,117,117,117,117,117,117,117,,,,,117,117,117', '117,,,117,117,117,117,,,,,117,117,,117,,117,117,,117,,117,117,,,,,117', '117,117,117,117,117,,,,,117,,,,,,,,,,,,,,,,,,,,,,,,,,,,,117,117,,,,117', -',117,106,117,,106,106,106,106,106,106,106,106,106,106,,,,,106,106,106', -'106,,,106,106,106,106,,,,,106,106,,106,,106,106,,106,,106,106,,,,,106', -'106,106,106,106,106,,,,,106,153,153,153,153,153,153,153,153,153,153', -',,,,,,,,,,,153,153,,,,,,106,106,,,,106,,106,153,106,,153,,,240,,240', -',,,,,,,,,,,,,,,,,,,,,,,240,240,,,,240,,,,240,,,,,,,,,,240,153,,153,', -'153,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240', -'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,,240,240', -'240,,,,,,,240,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,11,11,11,11,11,11,11,11,11,11,,,,,11,11,11,11,,,11,11,11,11', -',,,,,11,,11,,11,11,,11,,11,11,,,,,11,11,11,11,11,11,300,,300,,11,,,5', -'5,5,5,5,5,5,5,5,5,,,,,,,,,,300,300,5,5,,300,,11,11,300,,,11,,11,,11', -'5,,300,5,,,,,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,305,,305,,,,300,,,5,,5,,5,,,,,,,,,,,,,305,305,,,,305,,', -',305,,,,,,,,,,305,,,,,,305,305,305,305,305,305,305,305,305,305,305,305', +',117,107,117,,107,107,107,107,107,107,107,107,107,107,,,,,107,107,107', +'107,,,107,107,107,107,,,,,107,107,,107,,107,107,,107,,107,107,,,,,107', +'107,107,107,107,107,,,,,107,153,153,153,153,153,153,153,153,153,153', +',,,,,,,,,,,153,153,,,,,,107,107,,,,107,,107,153,107,,153,,,305,,305', +'5,5,5,5,5,5,5,5,5,5,,,,,,,,,,,,5,5,305,305,,,,305,,,,305,,,,5,,,5,,', +'305,153,,153,,153,305,305,305,305,305,305,305,305,305,305,305,305,305', '305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305', -'305,305,,305,305,305,162,,162,,,,305,,,,,,,,,,,,,,,,,,,,162,162,,,,162', -',,,162,,,,,,,,162,,162,,,,,,162,162,162,162,162,162,162,162,162,162', +'305,305,305,305,240,,240,,,,5,305,5,,5,,,,,,,,,,,,,,,,240,240,,,,240', +',,,240,,,,,,,,,,240,,,,,,240,240,240,240,240,240,240,240,240,240,240', +'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240', +'240,240,240,240,240,240,,,,,,,,240,11,11,11,11,11,11,11,11,11,11,,,', +',11,11,11,11,,,11,11,11,11,,,,,,11,,11,,11,11,,11,,11,11,,,,,11,11,11', +'11,11,11,300,,300,,11,,,,,,,,,,,,,,,,,,,,,,300,300,,,,300,,11,11,300', +',,11,,11,,11,,,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,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,162,,162,,299,,,,,,,,,,,,,,,,,,', +',,,162,162,,,,162,,299,299,162,,,299,,299,,299,162,,162,,,,,,162,162', '162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162', -'162,162,162,162,,162,162,162,308,,308,,,,,,,,,,,,,,,,,,,,,,,,308,308', -',,,308,,,,308,,,,,,,,,,308,,,,,,308,308,308,308,308,308,308,308,308', +'162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,308,,308', +',,,,,,,,,,,,,,,,,,,,,,,308,308,,,,308,,,,308,,,,,,,,,,308,,,,,,308,308', '308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308', -'308,308,308,308,308,,308,308,308,209,,209,,,,,,,,,,,,,,,,,,,,,,,,209', -'209,,,,209,,,,209,,,,,,,,,,209,,,,,,209,209,209,209,209,209,209,209', -'209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209', -'209,209,209,209,209,209,,209,209,209,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,194,,194,,,,,,,,,,,,,,,,,,', -',,,,,194,194,,,,194,,,,194,,,,,,,,,,194,,,,,,194,194,194,194,194,194', -'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194', -'194,194,194,194,194,194,194,194,,194,194,194,188,,188,,,,,,,,,,,,,,', -',,,,,,,,,188,188,,,,188,,,,188,,,,,,,,,,188,,,,,,188,188,188,188,188', -'188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188', -'188,188,188,188,188,188,188,188,188,,188,188,188,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,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,181,,181,,', -',,,,,,,,,,,,,,,,,,,,,181,181,,,,181,,,,181,,,,,,,,,,181,,,,,,181,181', -'181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181', -'181,181,181,181,181,181,181,181,181,181,181,181,,181,181,181,86,,86', -',,,,,,,,,,,,,,,,,,,,,,,86,86,,,,86,,,,86,,,,,,,,86,,86,,,,,,86,86,86', -'86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86', -'86,86,86,86,86,,86,86,86,171,,171,,,,,,,,,,,,,,,,,,,,,,,,171,171,,,', -'171,,,,171,,,,,,,,,,171,,,,,,171,171,171,171,171,171,171,171,171,171', -'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171', -'171,171,171,171,,171,171,171,253,,253,,,,,,,,,,,,,,,,,,,,,,,,253,253', -',,,253,,,,253,,,,,,,,,,253,,,,,,253,253,253,253,253,253,253,253,253', -'253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253', -'253,253,253,253,253,,253,253,253,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,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,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,37,,37,,,,,,,,,,,,', -',,,,,,,,,,,37,37,,,,37,,,,37,,,,,,,,,,37,,,,,,37,37,37,37,37,37,37,37', -'37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37', -',37,37,37,260,,260,,,,,,,,,,,,,,,,,,,,,,,,260,260,,,,260,,,,260,,,,', -',,,,,260,,,,,,260,260,260,260,260,260,260,260,260,260,260,260,260,260', -'260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260', -',260,260,260,261,,261,,,,,,,,,,,,,,,,,,,,,,,,261,261,,,,261,,,,261,', -',,,,,,,,261,,,,,,261,261,261,261,261,261,261,261,261,261,261,261,261', -'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261', -'261,,261,261,261,201,,201,,,,,,,,,,,,,,,,,,,,,,,,201,201,,,,201,,,,201', -',,,,,,,,,201,,,,,,201,201,201,201,201,201,201,201,201,201,201,201,201', +'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,201,,201', +',,,,,,,,,,,,,,,,,,,,,,,201,201,,,,201,,,,201,,,,,,,,,,201,,,,,,201,201', '201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201', -'201,,201,201,201,88,88,,,,,,,,88,,,,,,,,,,88,,,,,,88,88,88,88,88,88', -'88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', -'88,88,,88,88,88,92,92,,,,,,,,92,,,,,,,,,,92,,,,,,92,92,92,92,92,92,92', +'201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,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,194,,194', +',,,,,,,,,,,,,,,,,,,,,,,194,194,,,,194,,,,194,,,,,,,,,,194,,,,,,194,194', +'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194', +'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,188,,188', +',,,,,,,,,,,,,,,,,,,,,,,188,188,,,,188,,,,188,,,,,,,,,,188,,,,,,188,188', +'188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188', +'188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,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,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,181,,181', +',,,,,,,,,,,,,,,,,,,,,,,181,181,,,,181,,,,181,,,,,,,,,,181,,,,,,181,181', +'181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181', +'181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,37,,37,', +',,,,,,,,,,,,,,,,,,,,,,37,37,,,,37,,,,37,,,,,,,,,,37,,,,,,37,37,37,37', +'37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37', +'37,37,37,37,37,37,37,171,,171,,,,,,,,,,,,,,,,,,,,,,,,171,171,,,,171', +',,,171,,,,,,,,,,171,,,,,,171,171,171,171,171,171,171,171,171,171,171', +'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171', +'171,171,171,171,171,171,253,,253,,,,,,,,,,,,,,,,,,,,,,,,253,253,,,,253', +',,,253,,,,,,,,,,253,,,,,,253,253,253,253,253,253,253,253,253,253,253', +'253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253', +'253,253,253,253,253,253,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,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,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,86,,86,,,,,,,,,,,,,,,,,,,,,,,,86,86', +',,,86,,,,86,,,,,,,,86,,86,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86', +'86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,260,', +'260,,,,,,,,,,,,,,,,,,,,,,,,260,260,,,,260,,,,260,,,,,,,,,,260,,,,,,260', +'260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260', +'260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,261', +',261,,,,,,,,,,,,,,,,,,,,,,,,261,261,,,,261,,,,261,,,,,,,,,,261,,,,,', +'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261', +'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261', +'209,,209,,,,,,,,,,,,,,,,,,,,,,,,209,209,,,,209,,,,209,,,,,,,,,,209,', +',,,,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209', +'209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209', +'209,246,246,,,,,,,,246,,,,,,,,,,246,,,,,,246,246,246,246,246,246,246', +'246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246', +'246,246,246,246,246,246,246,246,246,246,88,88,,,,,,,,88,,,,,,,,,,88', +',,,,,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', +'88,88,88,88,88,88,88,88,88,88,88,88,88,225,225,,,,,,,,225,,,,,,,,,,225', +',,,,,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', +'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,228,228', +',,,,,,,228,,,,,,,,,,228,,,,,,228,228,228,228,228,228,228,228,228,228', +'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', +'228,228,228,228,92,92,,,,,,,,92,,,,,,,,,,92,,,,,,92,92,92,92,92,92,92', '92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92', -'92,227,227,,,,,,,,227,,,,,,,,,,227,,,,,,227,227,227,227,227,227,227', -'227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227', -'227,227,227,227,227,227,227,245,245,,,,,,,,245,,,,,,,,,,245,,,,,,245', -'245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245', -'245,245,245,245,245,245,245,245,245,245,245,245,245,230,230,,,,,,,,230', -',,,,,,,,,230,,,,,,230,230,230,230,230,230,230,230,230,230,230,230,230', -'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230', -'230,224,224,,,,,,,,224,,,,,,,,,,224,,,,,,224,224,224,224,224,224,224', -'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224', -'224,224,224,224,224,224,224,289,,,,,,,,289,,,,,,,,,,289,,,,,,289,289', +'92,222,222,,,,,,,,222,,,,,,,,,,222,,,,,,222,222,222,222,222,222,222', +'222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222', +'222,222,222,222,222,222,222,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,268,,,,,,,,268,,,,,', ',,,,268,,,,,,268,268,268,268,268,268,268,268,268,268,268,268,268,268', '268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', -'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,221,,,,,,,,221,,,,,,,,,,221,,,,,,221,221,221,221', +'221,,,,,,,,221,,,,,,,,,,221,,,,,,221,221,221,221,221,221,221,221,221', '221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221', -'221,221,221,221,221,221,221,221,221,221,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,82,,,,,', +'221,221,221,221,221,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,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,82,,,,,', ',,,,82,,,,,,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82', -'82,82,82,82,82,82,82,82,82,82,82,172,,,,,,,,,,172,,,,,,172,172,172,172', -'172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172', -'172,172,172,172,172,172,172,172,172,210,,,,,,,,,,210,,,,,,210,210,210', +'82,82,82,82,82,82,82,82,82,82,82,210,,,,,,,,,,210,,,,,,210,210,210,210', '210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210', -'210,210,210,210,210,210,210,210,210,210,198,,,,,,198,198,198,198,198', +'210,210,210,210,210,210,210,210,210,172,,,,,,,,,,172,,,,,,172,172,172', +'172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172', +'172,172,172,172,172,172,172,172,172,172,198,,,,,,198,198,198,198,198', '198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198', -'198,198,198,198,198,198,198,198,211,,,,,,211,211,211,211,211,211,211', -'211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211', -'211,211,211,211,211,211,214,,,,,,214,214,214,214,214,214,214,214,214', -'214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214', -'214,214,214,214,205,,,,,,205,205,205,205,205,205,205,205,205,205,205', +'198,198,198,198,198,198,198,198,205,,,,,,205,205,205,205,205,205,205', '205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205', -'205,205,202,,,,,,202,202,202,202,202,202,202,202,202,202,202,202,202', -'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202' ] - racc_action_check = arr = Array.new(9843, nil) +'205,205,205,205,205,205,211,,,,,,211,211,211,211,211,211,211,211,211', +'211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211', +'211,211,211,211,202,,,,,,202,202,202,202,202,202,202,202,202,202,202', +'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202', +'202,202,214,,,,,,214,214,214,214,214,214,214,214,214,214,214,214,214', +'214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214' ] + racc_action_check = arr = Array.new(9789, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -709,37 +707,37 @@ clist = [ end racc_action_pointer = [ - 4040, 220, 303, 280, nil, 7106, 171, nil, nil, 562, - 656, 7049, nil, 844, 209, nil, nil, nil, nil, nil, - nil, 204, 1126, nil, nil, nil, nil, nil, nil, 220, - 1314, nil, nil, nil, 186, 113, nil, 8564, 169, 37, - nil, 256, 111, nil, 2066, nil, nil, nil, 2160, nil, + 4040, 245, 311, 280, nil, 6866, 212, nil, nil, 562, + 656, 7041, nil, 844, 253, nil, nil, nil, nil, nil, + nil, 246, 1126, nil, nil, nil, nil, nil, nil, 141, + 1314, nil, nil, nil, 143, 113, nil, 8002, 60, 274, + nil, 161, 164, nil, 2066, nil, nil, nil, 2160, nil, nil, nil, nil, 2254, nil, nil, nil, 2348, nil, 2442, nil, nil, nil, 2536, 2630, nil, nil, nil, 2724, nil, - 159, 2912, 3006, nil, nil, 195, 298, nil, 313, 8, - -41, nil, 9488, 93, 162, 3852, 8048, -2, 8882, 291, - 312, 246, 8942, 4604, 77, nil, nil, 158, 322, 4980, - 92, 5168, 5262, 5356, 5450, 5544, 6766, 5732, 5826, 5920, - 6014, -2, 6202, 6296, 6390, 6484, 6578, 6672, 5638, 6108, - 3664, 1972, 301, -50, 468, 374, 5074, 750, 938, 4886, - 4792, 4698, 4510, 4416, 4322, nil, 4228, 4134, 3946, nil, - 170, 191, nil, 162, nil, -1, nil, nil, nil, 135, - 3758, 120, 110, 6821, 3570, nil, 3476, nil, nil, 179, - 461, 194, 7274, 273, 8392, 411, 438, nil, nil, 175, - 3382, 8134, 9534, 54, 92, 217, 126, nil, 3288, 3194, - 111, 7962, nil, nil, 139, 183, 210, nil, 7704, nil, - 230, 3100, 2818, -17, 7618, 946, 1134, 101, 9616, 1228, - 367, 8822, 9760, 1322, 344, 9724, nil, 1416, 1341, 7446, - 9580, 9652, 1040, 1435, 9688, 382, 105, 337, 201, 664, - 1153, 9386, 758, 1247, 9166, 852, 1526, 8998, 476, 1510, - 9110, 570, 303, nil, nil, nil, nil, nil, nil, nil, - 6866, nil, nil, 73, 156, 9054, 172, nil, -13, nil, - 1878, 1784, nil, 8220, -45, nil, nil, nil, nil, 237, - 8650, 8736, nil, -29, nil, -16, nil, 9331, 9276, nil, - 1690, 1596, 266, nil, nil, 27, 1502, 104, 31, nil, - 8478, 1408, 1220, 8306, 1032, nil, nil, nil, 9441, 9221, - nil, 37, 7876, nil, 197, nil, -22, 7790, 7532, 6956, - 7102, 264, 186, 249, nil, 7188, nil, nil, 7360, nil, + 93, 2912, 3006, nil, nil, 9, 115, nil, 313, -71, + 225, nil, 9434, 73, 156, 3852, 8512, -2, 8885, 344, + 114, 295, 9056, 4604, 77, nil, nil, 205, 145, 4980, + 92, 5168, 5262, 5356, 5450, 5544, 5638, 6766, 5826, 5920, + 6014, -2, 6202, 6296, 6390, 6484, 6578, 6672, 5732, 6108, + 3758, 3382, 321, -40, 750, 468, 374, 5074, 938, 1972, + 4886, 4792, 4698, 4510, 4416, 4322, nil, 4228, 4134, nil, + 218, 240, nil, 240, nil, -1, nil, nil, nil, 165, + 3946, 120, 110, 6821, nil, 3664, nil, 3570, nil, 273, + 257, 197, 7237, 461, 8342, 411, 438, nil, nil, 250, + 3476, 8087, 9526, 232, 257, 204, 126, nil, 3288, 3194, + 180, 7917, nil, nil, 255, 77, 9, nil, 7662, nil, + 26, 3100, 2818, -17, 7577, 664, 1134, 208, 9562, 1416, + 367, 7407, 9670, 1322, 299, 9598, nil, 1228, 108, 8767, + 9480, 9634, 1040, 1435, 9706, 476, 1341, 127, 185, 382, + 1247, 9277, 9112, 570, 1153, 8944, 946, 1526, 9000, 852, + 304, 758, 1510, nil, nil, nil, nil, nil, nil, nil, + 6951, nil, nil, 187, 167, 175, 8826, nil, -13, nil, + 1878, 1784, nil, 8172, 145, nil, nil, nil, nil, 209, + 8597, 8682, nil, 114, nil, -16, nil, 9387, 9222, nil, + 1690, 1596, 210, nil, nil, 27, 1502, 104, 166, nil, + 8427, 1408, 1220, 8257, 1032, nil, nil, nil, 9332, 9167, + nil, -7, 7832, nil, 231, nil, -22, 7747, 7492, 7184, + 7094, 63, 186, 276, nil, 6866, nil, nil, 7322, nil, nil ] racc_action_default = [ @@ -756,18 +754,18 @@ racc_action_default = [ -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -93, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, - -181, -181, -181, -181, -181, -58, -181, -181, -181, -57, + -181, -181, -181, -181, -181, -181, -58, -181, -181, -57, -181, -181, -172, -174, -176, -181, -178, -114, -128, -181, - -181, -181, -181, -181, -181, -115, -136, -109, -95, -51, + -181, -181, -181, -181, -115, -136, -109, -181, -95, -51, -48, -49, -153, -52, -181, -54, -53, -129, -110, -181, -181, -137, -55, -181, -181, -181, -181, -117, -181, -181, -181, -137, -170, -151, -181, -181, -146, 311, -6, -24, -181, -181, -181, -181, -154, -81, -70, -59, -83, -71, -60, -179, -84, -72, -61, -85, -82, -73, -62, -180, -91, -86, -74, -63, -87, -75, -64, -181, -181, -76, - -65, -92, -77, -66, -88, -78, -67, -89, -79, -68, - -90, -80, -69, -94, -99, -173, -177, -171, -175, -111, - -181, -112, -113, -127, -181, -41, -181, -152, -181, -143, + -65, -92, -88, -77, -66, -89, -78, -67, -90, -79, + -68, -80, -69, -94, -99, -173, -177, -171, -175, -111, + -181, -112, -113, -127, -181, -181, -41, -152, -181, -143, -181, -181, -135, -138, -181, -101, -123, -121, -120, -181, -42, -43, -132, -181, -147, -181, -158, -159, -160, -156, -181, -181, -155, -102, -116, -130, -181, -181, -181, -165, @@ -777,27 +775,27 @@ racc_action_default = [ -134 ] racc_goto_table = [ - 25, 84, 83, 155, 167, 168, 82, 193, 98, 257, - 258, 78, 86, 87, 88, 81, 89, 21, 167, 168, - 279, 144, 29, 291, 186, 92, 277, 234, 237, 93, - 140, 143, 155, 290, 96, 146, nil, nil, 142, nil, - nil, nil, nil, nil, nil, 155, 155, 159, nil, 295, - nil, 160, 94, nil, nil, nil, 161, nil, 169, 34, - 162, nil, 163, nil, nil, nil, 164, 165, 304, nil, - nil, 166, 180, 90, 171, 172, nil, nil, 175, nil, - nil, nil, nil, nil, nil, 174, nil, nil, 181, 81, - nil, nil, nil, 285, 93, 217, 188, nil, nil, nil, + 25, 84, 83, 154, 167, 168, 82, 193, 98, 169, + 78, 29, 86, 87, 88, 81, 89, 21, 167, 168, + 279, 144, 291, 180, 186, 92, 277, 234, 237, 93, + 140, 143, 154, 290, 96, 142, 146, nil, nil, nil, + nil, 94, nil, nil, nil, 154, 154, 159, nil, 295, + nil, 160, nil, nil, nil, nil, 161, nil, nil, 34, + 162, nil, 163, 257, 258, nil, 164, 165, 304, nil, + nil, 166, nil, 90, 171, 172, nil, nil, 175, nil, + nil, nil, nil, nil, 174, nil, nil, nil, 181, 81, + nil, nil, nil, 245, 93, 217, 188, nil, nil, nil, nil, 158, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 236, 272, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, nil, 230, - 231, 232, 235, 246, nil, 182, nil, nil, nil, 244, - 243, nil, nil, 240, nil, nil, nil, 245, nil, 181, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 235, + 231, 232, nil, nil, nil, 182, nil, 285, nil, 244, + 243, nil, nil, 240, nil, nil, nil, nil, 181, nil, + 246, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 253, 175, nil, 259, nil, 167, 168, nil, 260, 261, nil, nil, nil, nil, nil, 81, 81, nil, nil, nil, nil, 267, 268, nil, nil, nil, 233, - nil, nil, nil, nil, 238, 155, 155, nil, nil, nil, + nil, nil, nil, nil, 238, 154, 154, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 247, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @@ -815,23 +813,23 @@ racc_goto_table = [ 301, nil, nil, 303 ] racc_goto_check = [ - 2, 32, 6, 30, 36, 31, 5, 41, 40, 23, - 23, 34, 5, 5, 5, 21, 5, 1, 36, 31, - 43, 47, 3, 38, 39, 5, 42, 26, 44, 2, - 25, 46, 30, 8, 2, 48, nil, nil, 45, nil, - nil, nil, nil, nil, nil, 30, 30, 5, nil, 43, - nil, 5, 3, nil, nil, nil, 5, nil, 37, 4, - 5, nil, 5, nil, nil, nil, 5, 5, 43, nil, - nil, 5, 37, 4, 5, 5, nil, nil, 2, nil, - nil, nil, nil, nil, nil, 34, nil, nil, 5, 21, - nil, nil, nil, 23, 2, 40, 5, nil, nil, nil, + 2, 32, 6, 30, 36, 31, 5, 41, 40, 37, + 34, 3, 5, 5, 5, 21, 5, 1, 36, 31, + 43, 47, 38, 37, 39, 5, 42, 26, 44, 2, + 25, 46, 30, 8, 2, 45, 48, nil, nil, nil, + nil, 3, nil, nil, nil, 30, 30, 5, nil, 43, + nil, 5, nil, nil, nil, nil, 5, nil, nil, 4, + 5, nil, 5, 23, 23, nil, 5, 5, 43, nil, + nil, 5, nil, 4, 5, 5, nil, nil, 2, nil, + nil, nil, nil, nil, 34, nil, nil, nil, 5, 21, + nil, nil, nil, 37, 2, 40, 5, nil, nil, nil, nil, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 47, 41, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, nil, 5, - 5, 5, 45, 37, nil, 4, nil, nil, nil, 32, - 6, nil, nil, 5, nil, nil, nil, 5, nil, 5, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 45, + 5, 5, nil, nil, nil, 4, nil, 23, nil, 32, + 6, nil, nil, 5, nil, nil, nil, nil, 5, nil, + 5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 5, 2, nil, 2, nil, 36, 31, nil, 5, 5, nil, nil, nil, nil, nil, 21, 21, nil, nil, nil, nil, 5, 5, nil, nil, nil, 4, @@ -853,17 +851,17 @@ racc_goto_check = [ 4, nil, nil, 4 ] racc_goto_pointer = [ - nil, 17, 0, 22, 59, 3, -3, nil, -242, nil, + nil, 17, 0, 11, 59, 3, -3, nil, -242, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 13, nil, -166, nil, -8, -114, nil, nil, nil, - -38, -65, -4, nil, 9, nil, -66, -13, -253, -66, - -27, -91, -222, -228, -117, -1, -8, -18, -4 ] + nil, 13, nil, -112, nil, -8, -114, nil, nil, nil, + -38, -65, -4, nil, 8, nil, -66, -62, -254, -66, + -27, -91, -222, -228, -117, -4, -8, -18, -3 ] racc_goto_default = [ nil, nil, 250, nil, nil, 37, 41, 43, 47, 52, 58, 67, 69, 73, 74, 4, 7, 12, 16, 17, 19, 23, 31, 77, 38, 42, 45, 49, 54, 60, - 65, 157, 70, 147, nil, 8, 148, nil, nil, nil, + 65, 156, 70, 147, nil, 8, 148, nil, nil, nil, nil, nil, nil, nil, 39, nil, nil, nil, nil ] racc_reduce_table = [ @@ -1138,10 +1136,10 @@ racc_token_table = { "*=" => 81, "%=" => 82, "." => 83, - :ASSIGN => 84, - "||=" => 85, - "&&=" => 86, - "?=" => 87, + "||=" => 84, + "&&=" => 85, + "?=" => 86, + :ASSIGN => 87, "=>" => 88, "==>" => 89, "\n" => 90, @@ -1259,10 +1257,10 @@ Racc_token_to_s_table = [ "\"*=\"", "\"%=\"", "\".\"", - "ASSIGN", "\"||=\"", "\"&&=\"", "\"?=\"", + "ASSIGN", "\"=>\"", "\"==>\"", "\"\\n\"",