Initial commit

This commit is contained in:
Nils Blach
2023-08-21 03:33:46 +02:00
commit 41a0a6e67c
54 changed files with 25134 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# Set Intersection
The use case in this directory computes the intersection of two input
sets. We provide implementations of five different approaches for 32, 64
and 128 elements:
- IO
- Chain-of-Thought (CoT)
- Tree of Thought (ToT):
- ToT: wider tree, meaning more branches per level
- ToT2: tree with more levels, but fewer branches per level
- Graph of Thoughts (GoT)
## Data
We provide input files with 100 precomputed samples for each set length:
`set_intersection_<number of elements>.csv`. It is also possible to use
the data generator `dataset_gen_intersection.py` to generate additional or
different samples. The parameters can be updated in lines 24 to 28 of
the main body:
- set_size = 32 # size of the generated sets
- int_value_ubound = 64 # (exclusive) upper limit of generated numbers
- seed = 42 # seed of the random number generator
- num_sample = 100 # number of samples
- filename = 'set_intersection_032.csv' # output filename
## Execution
The files to execute the use case are called
`set_intersection_<number of elements>.py`. In the main body, one can
select the specific samples to be run (variable sample) and the
approaches (variable approaches). It is also possible to set a budget in
dollars (variable budget).
The input filename for the samples is currently hardcoded to
`set_intersection_<number of elements>.csv`, but can be updated in the
function `run`.
The Python scripts will create the directory `result`, if it is not
already present. In the `result` directory, another directory is created
for each run: `{name of LLM}_{list of approaches}_{day}_{start time}`.
Inside each execution specific directory two files (`config.json`,
`log.log`) and a separate directory for each selected approach are
created. `config.json` contains the configuration of the run: input data,
selected approaches, name of the LLM, and the budget. `log.log` contains
the prompts and responses of the LLM as well as additional debug data.
The approach directories contain a separate json file for every sample
and the file contains the Graph Reasoning State (GRS) for that sample.
## Plot Data
Change the results directory in line 170 of `plot.py` and update the
length parameter in the subsequent line and run `python3 plot.py` to
plot your data.
@@ -0,0 +1,92 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# main author: Robert Gerstenberger
import csv
import numpy as np
def scramble(array: np.ndarray, rng: np.random.Generator) -> None:
"""
Helper function to change the order of the elements in an array randomly.
:param array: Array to be scrambled.
:type: numpy.ndarray
:param rng: Random number generator.
:type rng: numpy.random.Generator
"""
size = array.shape[0]
index_array = rng.integers(0, size, size)
for i in range(size):
temp = array[i]
array[i] = array[index_array[i]]
array[index_array[i]] = temp
if __name__ == "__main__":
"""
Input(u) : Set size.
Input(v) : Range of the integer numbers in the sets: 0..v (exclusive)
Input(w) : Seed for the random number generator.
Input(x) : Number of samples to be generated.
Input(y) : Filename for the output CSV file.
Output(z) : Input sets and intersected set written a file in the CSV format.
File contains the sample ID, input set 1, input set 2,
intersection set.
"""
set_size = 32 # size of the generated sets
int_value_ubound = 64 # (exclusive) upper limit of generated numbers
seed = 42 # seed of the random number generator
num_sample = 100 # number of samples
filename = "set_intersection_032.csv" # output filename
assert 2 * set_size <= int_value_ubound
rng = np.random.default_rng(seed)
intersection_sizes = rng.integers(set_size // 4, 3 * set_size // 4, num_sample)
np.set_printoptions(
linewidth=np.inf
) # no wrapping in the array fields in the output file
with open(filename, "w") as f:
fieldnames = ["ID", "SET1", "SET2", "INTERSECTION"]
writer = csv.DictWriter(f, delimiter=",", fieldnames=fieldnames)
writer.writeheader()
for i in range(num_sample):
intersection_size = intersection_sizes[i]
full_set = np.arange(0, int_value_ubound, dtype=np.int16)
scramble(full_set, rng)
intersection = full_set[:intersection_size].copy()
sorted_intersection = np.sort(intersection)
set1 = full_set[:set_size].copy()
set2 = np.concatenate(
[intersection, full_set[set_size : 2 * set_size - intersection_size]]
)
scramble(set1, rng)
scramble(set2, rng)
writer.writerow(
{
"ID": i,
"SET1": set1.tolist(),
"SET2": set2.tolist(),
"INTERSECTION": sorted_intersection.tolist(),
}
)
+184
View File
@@ -0,0 +1,184 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# main author: Nils Blach
# contributions: Robert Gerstenberger
import json
import os
import matplotlib.pyplot as plt
def get_complete_results(base_directory):
results_complete = {}
for folder_name in os.listdir(base_directory):
folder_path = os.path.join(base_directory, folder_name)
if os.path.isdir(folder_path):
results_complete[folder_name] = []
for file_name in os.listdir(folder_path):
if file_name.endswith(".json"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as f:
data = json.load(f)
results_complete[folder_name].append(
{"key": int(file_name.split(".")[0]), "data": data}
)
for key in results_complete.keys():
results_complete[key] = sorted(
results_complete[key], key=lambda x: x["key"]
)
return results_complete
def get_final_scores(results_complete):
scores = {}
for method in results_complete.keys():
scores[method] = []
for result in results_complete[method]:
score = 100
solved = False
cost = 1
prompt_tokens = 0
completion_tokens = 0
for op in result["data"]:
if "operation" in op and op["operation"] == "ground_truth_evaluator":
try:
score = min(op["scores"])
solved = any(op["problem_solved"])
except:
continue
if "cost" in op:
cost = op["cost"]
prompt_tokens = op["prompt_tokens"]
completion_tokens = op["completion_tokens"]
scores[method].append(
[result["key"], score, solved, prompt_tokens, completion_tokens, cost]
)
scores[method] = sorted(scores[method], key=lambda x: x[0])
return scores
def get_plotting_data(base_directory):
results_complete = get_complete_results(base_directory)
scores = get_final_scores(results_complete)
results_plotting = {
method: {
"scores": [x[1] for x in scores[method]],
"solved": sum([1 for x in scores[method] if x[2]]),
"costs": [x[5] for x in scores[method]],
}
for method in scores.keys()
}
return results_plotting
def plot_results(
results,
methods_order=["io", "cot", "tot", "tot2", "got"],
model="GPT-3.5",
length=32,
y_lower=0,
cost_upper=0.0,
display_solved=True,
annotation_offset=0,
display_left_ylabel=False,
display_right_ylabel=False,
):
methods_order = [method for method in methods_order if method in results]
# Extract scores based on the order
scores_ordered = [
[score for score in results[method]["scores"] if score != 1000]
for method in methods_order
]
total_costs = [sum(results[method]["costs"]) for method in methods_order]
# Create figure and axis
fig, ax = plt.subplots(dpi=150, figsize=(2.5, 5))
# Create boxplots
positions = range(1, len(methods_order) + 1)
ax.boxplot(scores_ordered, positions=positions)
fig_fontsize = 12
# Set the ticks and labels
methods_labels = ["IO", "CoT", "ToT", "ToT2", "GoT"]
plt.yticks(fontsize=fig_fontsize)
ax.set_xticks(range(1, len(methods_order) + 1))
ax.set_xticks(range(1, len(methods_order) + 1))
ax.set_xticklabels(methods_labels, fontsize=fig_fontsize)
y_upper = length
range_increase = 1
if display_solved:
if length < 48:
range_increase = 2
elif length < 96:
range_increase = 4
else:
range_increase = 8
ax.set_ylim(y_lower, y_upper + range_increase)
ax1_yticks = range(
y_lower, y_upper + 1, 2 if length < 48 else (4 if length < 96 else 8)
)
ax.set_yticks(ax1_yticks)
if display_left_ylabel:
ax.set_ylabel(
f"#incorrect elements; the lower the better", fontsize=fig_fontsize
)
ax.set_title(f"{length} elements")
ax2 = ax.twinx()
ax2.bar(positions, total_costs, alpha=0.5, color="blue", label="Total Cost ($)")
ax2.yaxis.set_tick_params(colors="#1919ff", labelsize=fig_fontsize)
if cost_upper > 0:
ax2.set_ylim(0, cost_upper)
number_of_ticks = len(ax.get_yticks())
tick_interval = cost_upper / (number_of_ticks)
ax2_ticks = [tick_interval * i for i in range(number_of_ticks)]
# Set custom tick positions for ax2
ax2.set_yticks(ax2_ticks)
if display_right_ylabel:
ax2.set_ylabel(
"Total Cost ($); the lower the better",
color="#1919ff",
fontsize=fig_fontsize,
)
if display_solved:
annotation_height = y_upper + annotation_offset
count = 1
for method in methods_order:
if method not in results:
continue
solved = results[method]["solved"]
ax.text(
count,
annotation_height,
f"{solved}",
ha="center",
va="bottom",
fontsize=fig_fontsize,
)
count += 1
model = model.replace(".", "").replace("-", "").lower()
fig.savefig(f"set_intersection_{model}_{length}.pdf", bbox_inches="tight")
plot_results(
get_plotting_data("results/"),
length=32,
display_solved=True,
model="GPT-3.5",
display_left_ylabel=True,
display_right_ylabel=True,
)
@@ -0,0 +1,101 @@
ID,SET1,SET2,INTERSECTION
0,"[11, 60, 1, 49, 21, 33, 14, 56, 54, 15, 23, 40, 45, 22, 7, 28, 20, 46, 51, 6, 34, 37, 3, 50, 17, 8, 25, 0, 35, 47, 18, 19]","[31, 11, 4, 63, 38, 58, 59, 24, 61, 14, 32, 39, 27, 46, 48, 19, 52, 57, 50, 56, 3, 2, 53, 29, 5, 37, 62, 41, 36, 12, 49, 16]","[3, 11, 14, 19, 37, 46, 49, 50, 56]"
1,"[28, 58, 36, 18, 37, 31, 44, 39, 34, 51, 12, 56, 21, 27, 7, 24, 46, 1, 25, 2, 41, 6, 45, 29, 49, 42, 35, 30, 54, 55, 10, 50]","[4, 16, 28, 46, 49, 21, 58, 30, 19, 1, 37, 15, 3, 59, 51, 24, 10, 12, 34, 20, 40, 44, 35, 23, 36, 0, 43, 54, 2, 31, 57, 41]","[1, 2, 10, 12, 21, 24, 28, 30, 31, 34, 35, 36, 37, 41, 44, 46, 49, 51, 54, 58]"
2,"[32, 24, 17, 27, 51, 19, 50, 59, 8, 18, 41, 36, 43, 39, 49, 4, 5, 31, 30, 60, 48, 61, 10, 16, 47, 58, 9, 54, 40, 37, 1, 11]","[44, 27, 33, 46, 51, 17, 28, 18, 4, 23, 32, 49, 58, 1, 20, 40, 39, 52, 30, 55, 26, 19, 63, 31, 57, 13, 47, 61, 10, 6, 38, 41]","[1, 4, 10, 17, 18, 19, 27, 30, 31, 32, 39, 40, 41, 47, 49, 51, 58, 61]"
3,"[22, 38, 13, 31, 63, 6, 59, 17, 27, 20, 21, 42, 24, 4, 25, 15, 28, 29, 19, 49, 40, 30, 34, 0, 53, 23, 12, 62, 36, 51, 39, 45]","[21, 29, 30, 28, 31, 55, 2, 22, 19, 4, 46, 32, 37, 43, 23, 15, 58, 56, 11, 50, 48, 54, 41, 45, 51, 7, 42, 38, 18, 9, 6, 1]","[4, 6, 15, 19, 21, 22, 23, 28, 29, 30, 31, 38, 42, 45, 51]"
4,"[4, 26, 48, 7, 42, 60, 31, 36, 25, 20, 14, 50, 21, 30, 12, 10, 23, 8, 39, 13, 46, 32, 11, 34, 6, 2, 57, 0, 17, 33, 18, 24]","[1, 37, 48, 28, 39, 58, 53, 10, 6, 50, 17, 9, 51, 56, 38, 52, 8, 30, 46, 62, 5, 24, 61, 22, 57, 14, 44, 11, 47, 35, 63, 36]","[6, 8, 10, 11, 14, 17, 24, 30, 36, 39, 46, 48, 50, 57]"
5,"[48, 50, 19, 59, 57, 63, 49, 61, 14, 11, 29, 39, 4, 17, 21, 12, 3, 35, 23, 2, 58, 60, 38, 43, 28, 47, 5, 44, 15, 55, 8, 26]","[50, 12, 30, 23, 11, 61, 17, 58, 19, 55, 62, 43, 33, 2, 37, 21, 56, 4, 15, 24, 38, 45, 1, 28, 59, 48, 35, 6, 47, 8, 27, 22]","[2, 4, 8, 11, 12, 15, 17, 19, 21, 23, 28, 35, 38, 43, 47, 48, 50, 55, 58, 59, 61]"
6,"[34, 2, 12, 54, 13, 41, 57, 42, 21, 59, 26, 10, 6, 35, 27, 16, 1, 44, 8, 11, 14, 7, 62, 20, 30, 19, 32, 9, 43, 39, 22, 24]","[18, 41, 49, 56, 1, 3, 45, 36, 17, 34, 50, 46, 29, 30, 61, 32, 14, 52, 24, 51, 5, 25, 31, 55, 37, 0, 23, 40, 28, 20, 22, 63]","[1, 14, 20, 22, 24, 30, 32, 34, 41]"
7,"[49, 61, 9, 23, 27, 21, 47, 37, 54, 32, 18, 14, 22, 13, 62, 46, 0, 26, 4, 11, 60, 34, 25, 50, 6, 51, 59, 8, 35, 41, 29, 17]","[33, 21, 49, 54, 6, 27, 3, 47, 4, 20, 43, 41, 8, 24, 0, 57, 28, 35, 15, 17, 46, 23, 13, 9, 45, 31, 22, 12, 5, 29, 50, 7]","[0, 4, 6, 8, 9, 13, 17, 21, 22, 23, 27, 29, 35, 41, 46, 47, 49, 50, 54]"
8,"[55, 59, 60, 13, 41, 15, 38, 52, 35, 5, 9, 61, 57, 34, 47, 22, 21, 1, 27, 11, 36, 2, 6, 58, 62, 51, 23, 50, 8, 39, 28, 54]","[37, 14, 4, 55, 50, 17, 8, 19, 10, 44, 0, 31, 27, 53, 39, 35, 30, 5, 62, 24, 26, 29, 54, 45, 40, 3, 43, 11, 12, 25, 41, 42]","[5, 8, 11, 27, 35, 39, 41, 50, 54, 55, 62]"
9,"[20, 12, 52, 56, 36, 51, 59, 40, 55, 33, 41, 38, 28, 45, 13, 2, 43, 27, 35, 7, 9, 0, 10, 37, 29, 15, 14, 49, 17, 63, 25, 32]","[11, 13, 19, 6, 21, 54, 36, 14, 58, 26, 2, 39, 53, 22, 50, 51, 24, 16, 5, 17, 1, 60, 57, 23, 35, 33, 42, 18, 61, 29, 47, 8]","[2, 13, 14, 17, 29, 33, 35, 36, 51]"
10,"[24, 21, 51, 37, 54, 22, 18, 38, 14, 30, 48, 49, 28, 47, 10, 44, 58, 29, 3, 45, 26, 15, 9, 6, 33, 2, 34, 17, 20, 25, 0, 1]","[3, 0, 20, 1, 24, 45, 25, 52, 13, 43, 38, 15, 22, 53, 27, 8, 42, 40, 59, 32, 21, 60, 30, 46, 51, 47, 14, 50, 5, 62, 57, 28]","[0, 1, 3, 14, 15, 20, 21, 22, 24, 25, 28, 30, 38, 45, 47, 51]"
11,"[58, 52, 51, 15, 42, 26, 19, 30, 28, 6, 40, 11, 25, 53, 18, 47, 21, 12, 41, 45, 43, 7, 35, 48, 27, 3, 32, 2, 4, 62, 17, 29]","[41, 4, 0, 35, 25, 29, 14, 62, 45, 2, 37, 11, 15, 8, 30, 39, 58, 19, 56, 42, 17, 51, 24, 28, 44, 27, 13, 18, 26, 47, 53, 43]","[2, 4, 11, 15, 17, 18, 19, 25, 26, 27, 28, 29, 30, 35, 41, 42, 43, 45, 47, 51, 53, 58, 62]"
12,"[8, 17, 23, 38, 24, 47, 61, 3, 46, 43, 58, 39, 27, 21, 26, 14, 62, 1, 15, 19, 37, 53, 55, 6, 51, 57, 52, 25, 16, 22, 33, 54]","[2, 18, 15, 17, 23, 45, 14, 36, 53, 7, 27, 32, 31, 21, 8, 38, 16, 61, 6, 58, 3, 39, 49, 19, 22, 42, 0, 12, 30, 60, 26, 46]","[3, 6, 8, 14, 15, 16, 17, 19, 21, 22, 23, 26, 27, 38, 39, 46, 53, 58, 61]"
13,"[58, 10, 28, 52, 51, 48, 49, 13, 53, 25, 55, 6, 4, 15, 30, 56, 54, 41, 38, 42, 21, 33, 44, 18, 37, 43, 31, 20, 3, 2, 50, 0]","[54, 3, 32, 44, 26, 49, 0, 9, 35, 51, 25, 33, 62, 55, 47, 2, 29, 11, 42, 18, 4, 23, 31, 41, 20, 7, 58, 52, 13, 36, 5, 53]","[0, 2, 3, 4, 13, 18, 20, 25, 31, 33, 41, 42, 44, 49, 51, 52, 53, 54, 55, 58]"
14,"[12, 18, 22, 38, 6, 23, 54, 37, 40, 44, 19, 46, 35, 47, 7, 10, 16, 24, 4, 42, 31, 30, 0, 63, 25, 57, 39, 51, 3, 60, 49, 28]","[40, 6, 12, 18, 19, 34, 17, 47, 4, 29, 53, 3, 15, 7, 37, 1, 59, 42, 33, 35, 52, 16, 61, 13, 9, 51, 32, 60, 24, 54, 38, 46]","[3, 4, 6, 7, 12, 16, 18, 19, 24, 35, 37, 38, 40, 42, 46, 47, 51, 54, 60]"
15,"[61, 62, 10, 53, 17, 20, 28, 54, 55, 59, 4, 1, 11, 34, 5, 35, 56, 38, 60, 29, 43, 42, 63, 50, 24, 40, 47, 52, 16, 39, 31, 19]","[60, 24, 50, 45, 23, 18, 20, 31, 29, 35, 43, 44, 59, 41, 51, 46, 16, 63, 38, 3, 42, 25, 4, 17, 5, 9, 61, 7, 27, 54, 19, 39]","[4, 5, 16, 17, 19, 20, 24, 29, 31, 35, 38, 39, 42, 43, 50, 54, 59, 60, 61, 63]"
16,"[12, 2, 21, 59, 49, 30, 31, 14, 23, 39, 5, 15, 4, 19, 27, 43, 6, 34, 0, 22, 16, 60, 17, 48, 40, 9, 56, 1, 63, 8, 45, 51]","[40, 4, 38, 7, 1, 47, 44, 16, 58, 11, 25, 35, 3, 51, 26, 10, 41, 60, 46, 6, 34, 19, 2, 61, 21, 31, 8, 22, 12, 53, 15, 50]","[1, 2, 4, 6, 8, 12, 15, 16, 19, 21, 22, 31, 34, 40, 51, 60]"
17,"[26, 8, 53, 37, 45, 60, 32, 44, 19, 39, 36, 16, 25, 9, 6, 50, 38, 47, 30, 63, 42, 52, 57, 10, 7, 27, 14, 1, 41, 58, 59, 62]","[28, 12, 29, 21, 63, 34, 17, 49, 56, 4, 15, 39, 1, 46, 22, 62, 9, 43, 0, 50, 23, 54, 44, 31, 5, 51, 11, 37, 8, 61, 13, 42]","[1, 8, 9, 37, 39, 42, 44, 50, 62, 63]"
18,"[9, 58, 28, 53, 3, 18, 45, 33, 11, 5, 2, 47, 4, 59, 38, 30, 61, 15, 21, 48, 41, 25, 26, 13, 60, 23, 6, 55, 17, 36, 62, 10]","[43, 15, 16, 10, 33, 5, 13, 62, 41, 53, 0, 32, 54, 23, 26, 19, 25, 9, 37, 49, 38, 21, 28, 27, 40, 45, 4, 61, 29, 3, 55, 18]","[3, 4, 5, 9, 10, 13, 15, 18, 21, 23, 25, 26, 28, 33, 38, 41, 45, 53, 55, 61, 62]"
19,"[26, 63, 42, 19, 6, 62, 39, 14, 24, 17, 44, 31, 8, 7, 10, 16, 1, 56, 45, 43, 50, 57, 54, 51, 58, 59, 5, 37, 3, 21, 13, 30]","[60, 3, 1, 34, 17, 55, 50, 21, 0, 46, 62, 59, 47, 36, 15, 22, 19, 5, 2, 38, 58, 12, 32, 27, 28, 18, 24, 31, 26, 63, 51, 53]","[1, 3, 5, 17, 19, 21, 24, 26, 31, 50, 51, 58, 59, 62, 63]"
20,"[30, 31, 28, 56, 54, 29, 61, 18, 1, 46, 34, 5, 15, 63, 26, 45, 4, 47, 40, 21, 3, 9, 2, 27, 7, 6, 24, 19, 42, 11, 35, 41]","[57, 5, 54, 42, 41, 31, 12, 13, 9, 34, 21, 23, 7, 48, 22, 29, 19, 14, 0, 43, 3, 27, 26, 4, 16, 25, 53, 51, 10, 11, 52, 20]","[3, 4, 5, 7, 9, 11, 19, 21, 26, 27, 29, 31, 34, 41, 42, 54]"
21,"[9, 12, 51, 48, 23, 6, 50, 14, 53, 15, 58, 44, 32, 59, 24, 42, 27, 41, 29, 10, 45, 34, 0, 46, 3, 36, 25, 16, 13, 63, 49, 52]","[16, 15, 51, 37, 20, 27, 47, 36, 45, 59, 0, 41, 40, 2, 28, 31, 17, 1, 21, 22, 5, 58, 18, 57, 34, 39, 54, 9, 53, 33, 60, 19]","[0, 9, 15, 16, 27, 34, 36, 41, 45, 51, 53, 58, 59]"
22,"[57, 44, 59, 3, 16, 5, 17, 6, 52, 0, 18, 40, 47, 11, 45, 14, 1, 49, 30, 55, 27, 12, 50, 10, 7, 39, 46, 22, 23, 38, 34, 41]","[44, 48, 9, 58, 28, 40, 4, 56, 49, 19, 53, 42, 47, 35, 25, 34, 29, 43, 33, 32, 6, 55, 37, 26, 20, 11, 2, 27, 31, 62, 54, 39]","[6, 11, 27, 34, 39, 40, 44, 47, 49, 55]"
23,"[32, 25, 2, 13, 11, 23, 54, 49, 9, 57, 59, 6, 61, 47, 37, 34, 18, 29, 46, 45, 56, 31, 14, 17, 48, 55, 7, 50, 27, 51, 63, 44]","[49, 34, 46, 32, 17, 50, 51, 54, 61, 14, 52, 21, 56, 16, 44, 33, 25, 57, 2, 28, 35, 19, 55, 11, 22, 9, 48, 20, 53, 29, 45, 18]","[2, 9, 11, 14, 17, 18, 25, 29, 32, 34, 44, 45, 46, 48, 49, 50, 51, 54, 55, 56, 57, 61]"
24,"[23, 16, 41, 14, 10, 42, 9, 27, 35, 51, 24, 4, 59, 47, 55, 12, 18, 58, 7, 63, 28, 32, 22, 49, 37, 31, 13, 1, 21, 39, 36, 30]","[39, 6, 63, 37, 27, 19, 40, 16, 18, 54, 22, 20, 2, 30, 23, 59, 46, 52, 43, 10, 21, 41, 31, 4, 12, 24, 32, 38, 3, 13, 47, 53]","[4, 10, 12, 13, 16, 18, 21, 22, 23, 24, 27, 30, 31, 32, 37, 39, 41, 47, 59, 63]"
25,"[20, 5, 41, 40, 24, 60, 2, 6, 59, 50, 34, 47, 10, 0, 14, 29, 35, 28, 39, 58, 13, 16, 27, 4, 18, 52, 56, 21, 45, 15, 32, 30]","[2, 23, 40, 31, 7, 52, 55, 18, 59, 56, 60, 44, 38, 54, 35, 4, 46, 1, 12, 47, 10, 3, 13, 29, 48, 43, 6, 11, 20, 24, 45, 34]","[2, 4, 6, 10, 13, 18, 20, 24, 29, 34, 35, 40, 45, 47, 52, 56, 59, 60]"
26,"[60, 39, 4, 62, 16, 57, 49, 41, 25, 59, 55, 35, 53, 33, 17, 5, 18, 13, 46, 30, 45, 38, 1, 20, 22, 44, 11, 15, 42, 7, 21, 28]","[57, 27, 24, 15, 44, 13, 60, 35, 62, 47, 38, 59, 42, 52, 49, 43, 10, 0, 53, 6, 37, 18, 19, 36, 51, 58, 3, 34, 23, 21, 63, 40]","[13, 15, 18, 21, 35, 38, 42, 44, 49, 53, 57, 59, 60, 62]"
27,"[9, 48, 28, 3, 61, 4, 1, 22, 62, 57, 18, 21, 34, 26, 25, 8, 12, 38, 27, 49, 46, 6, 40, 56, 10, 16, 36, 5, 45, 44, 51, 42]","[10, 36, 20, 5, 45, 34, 16, 18, 21, 51, 60, 17, 57, 50, 42, 54, 46, 63, 39, 38, 58, 3, 24, 53, 37, 26, 27, 48, 22, 44, 49, 8]","[3, 5, 8, 10, 16, 18, 21, 22, 26, 27, 34, 36, 38, 42, 44, 45, 46, 48, 49, 51, 57]"
28,"[17, 42, 40, 38, 58, 19, 63, 22, 50, 18, 8, 16, 12, 15, 61, 10, 52, 9, 44, 13, 60, 24, 41, 56, 35, 46, 21, 36, 28, 0, 48, 6]","[6, 33, 10, 5, 23, 41, 53, 30, 58, 22, 45, 42, 61, 7, 12, 19, 56, 60, 2, 28, 62, 36, 39, 43, 27, 20, 16, 55, 37, 40, 9, 32]","[6, 9, 10, 12, 16, 19, 22, 28, 36, 40, 41, 42, 56, 58, 60, 61]"
29,"[1, 4, 35, 57, 2, 11, 43, 56, 16, 9, 51, 8, 26, 0, 59, 31, 22, 25, 29, 50, 13, 44, 12, 32, 30, 27, 19, 36, 42, 61, 7, 38]","[59, 35, 54, 49, 7, 45, 33, 57, 32, 41, 18, 47, 55, 56, 58, 5, 4, 46, 21, 9, 63, 52, 34, 2, 62, 8, 48, 22, 51, 11, 1, 16]","[1, 2, 4, 7, 8, 9, 11, 16, 22, 32, 35, 51, 56, 57, 59]"
30,"[54, 2, 52, 36, 21, 37, 13, 28, 39, 17, 27, 0, 42, 56, 10, 4, 60, 48, 49, 24, 20, 16, 5, 62, 14, 47, 53, 1, 7, 32, 34, 12]","[38, 41, 13, 32, 31, 63, 11, 62, 1, 18, 52, 58, 56, 51, 7, 37, 36, 22, 9, 35, 43, 0, 46, 4, 55, 44, 25, 8, 24, 14, 34, 47]","[0, 1, 4, 7, 13, 14, 24, 32, 34, 36, 37, 47, 52, 56, 62]"
31,"[6, 32, 2, 58, 25, 19, 31, 0, 30, 28, 46, 49, 41, 48, 45, 44, 59, 51, 22, 3, 38, 36, 1, 15, 11, 26, 37, 24, 55, 9, 14, 61]","[10, 56, 39, 4, 34, 11, 29, 14, 57, 15, 60, 20, 9, 43, 53, 40, 8, 44, 50, 27, 47, 19, 36, 52, 6, 62, 45, 63, 12, 21, 51, 58]","[6, 9, 11, 14, 15, 19, 36, 44, 45, 51, 58]"
32,"[24, 51, 50, 19, 63, 42, 29, 59, 41, 9, 38, 28, 25, 4, 18, 40, 12, 1, 58, 34, 15, 30, 54, 6, 46, 27, 39, 55, 23, 61, 5, 36]","[56, 17, 24, 11, 35, 20, 15, 10, 3, 45, 26, 33, 21, 60, 8, 32, 22, 48, 25, 49, 41, 14, 13, 18, 19, 61, 2, 43, 52, 16, 5, 27]","[5, 15, 18, 19, 24, 25, 27, 41, 61]"
33,"[27, 37, 6, 7, 2, 32, 28, 11, 24, 43, 5, 15, 12, 18, 36, 26, 55, 35, 57, 56, 29, 54, 30, 9, 3, 20, 38, 48, 63, 25, 16, 10]","[21, 34, 3, 20, 2, 13, 56, 32, 25, 58, 61, 51, 59, 53, 6, 27, 8, 48, 50, 43, 46, 52, 63, 11, 42, 12, 19, 45, 9, 39, 55, 54]","[2, 3, 6, 9, 11, 12, 20, 25, 27, 32, 43, 48, 54, 55, 56, 63]"
34,"[22, 52, 23, 8, 46, 5, 19, 37, 31, 51, 6, 17, 21, 13, 29, 4, 58, 0, 32, 40, 9, 33, 55, 34, 11, 30, 24, 20, 3, 39, 2, 25]","[51, 20, 56, 37, 9, 19, 38, 53, 43, 35, 39, 23, 46, 8, 11, 3, 28, 49, 13, 22, 52, 2, 42, 26, 21, 30, 58, 24, 59, 40, 5, 6]","[2, 3, 5, 6, 8, 9, 11, 13, 19, 20, 21, 22, 23, 24, 30, 37, 39, 40, 46, 51, 52, 58]"
35,"[9, 37, 45, 60, 18, 38, 55, 14, 44, 49, 27, 19, 6, 2, 51, 26, 11, 24, 54, 32, 48, 57, 34, 3, 42, 5, 39, 31, 53, 62, 43, 41]","[61, 28, 30, 25, 33, 43, 46, 56, 58, 62, 21, 17, 16, 50, 29, 41, 13, 38, 54, 63, 40, 18, 35, 10, 36, 20, 7, 9, 8, 45, 19, 52]","[9, 18, 19, 38, 41, 43, 45, 54, 62]"
36,"[45, 26, 14, 2, 25, 41, 59, 58, 42, 39, 56, 46, 1, 48, 30, 31, 63, 36, 33, 5, 60, 19, 21, 57, 62, 35, 17, 37, 6, 3, 38, 13]","[43, 32, 60, 56, 36, 22, 59, 6, 39, 63, 46, 8, 26, 38, 57, 31, 29, 25, 45, 18, 55, 52, 13, 10, 62, 35, 30, 7, 47, 14, 37, 21]","[6, 13, 14, 21, 25, 26, 30, 31, 35, 36, 37, 38, 39, 45, 46, 56, 57, 59, 60, 62, 63]"
37,"[47, 52, 1, 22, 16, 56, 5, 30, 43, 54, 3, 48, 21, 17, 33, 9, 57, 11, 4, 46, 15, 26, 12, 7, 32, 44, 6, 41, 31, 14, 49, 59]","[42, 44, 49, 59, 58, 61, 57, 6, 46, 3, 7, 31, 43, 1, 34, 22, 12, 16, 4, 54, 55, 45, 27, 5, 26, 48, 13, 17, 19, 51, 39, 47]","[1, 3, 4, 5, 6, 7, 12, 16, 17, 22, 26, 31, 43, 44, 46, 47, 48, 49, 54, 57, 59]"
38,"[28, 27, 51, 11, 2, 31, 14, 6, 33, 25, 42, 49, 59, 60, 17, 10, 56, 12, 23, 36, 37, 53, 18, 52, 26, 21, 62, 63, 38, 22, 16, 44]","[52, 53, 6, 9, 40, 47, 14, 3, 34, 29, 18, 48, 7, 58, 20, 50, 51, 22, 5, 46, 28, 37, 60, 61, 55, 27, 1, 4, 49, 45, 39, 24]","[6, 14, 18, 22, 27, 28, 37, 49, 51, 52, 53, 60]"
39,"[41, 11, 6, 43, 60, 48, 37, 55, 31, 39, 7, 13, 58, 42, 62, 44, 21, 56, 35, 19, 49, 9, 36, 34, 14, 10, 8, 54, 30, 32, 52, 2]","[0, 36, 42, 58, 13, 38, 31, 45, 11, 61, 18, 28, 32, 60, 17, 57, 10, 2, 3, 59, 51, 35, 12, 9, 7, 50, 63, 41, 48, 34, 39, 49]","[2, 7, 9, 10, 11, 13, 31, 32, 34, 35, 36, 39, 41, 42, 48, 49, 58, 60]"
40,"[27, 26, 20, 51, 10, 56, 49, 22, 31, 61, 44, 24, 32, 17, 50, 29, 30, 19, 3, 4, 12, 0, 43, 41, 35, 58, 33, 15, 37, 34, 57, 25]","[54, 29, 52, 49, 45, 30, 48, 7, 11, 19, 47, 46, 10, 38, 16, 36, 40, 5, 41, 1, 23, 8, 42, 33, 56, 14, 59, 2, 58, 0, 63, 62]","[0, 10, 19, 29, 30, 33, 41, 49, 56, 58]"
41,"[44, 7, 43, 52, 38, 18, 47, 2, 49, 41, 36, 42, 57, 1, 23, 27, 39, 50, 31, 51, 16, 29, 30, 26, 40, 24, 10, 20, 6, 11, 62, 19]","[47, 21, 60, 51, 62, 55, 28, 48, 16, 2, 52, 36, 10, 18, 63, 3, 45, 32, 50, 43, 19, 44, 27, 56, 26, 1, 8, 29, 25, 41, 11, 38]","[1, 2, 10, 11, 16, 18, 19, 26, 27, 29, 36, 38, 41, 43, 44, 47, 50, 51, 52, 62]"
42,"[11, 29, 26, 5, 13, 32, 53, 10, 25, 60, 52, 39, 35, 55, 23, 17, 49, 47, 28, 20, 4, 50, 2, 31, 19, 48, 34, 6, 0, 54, 16, 37]","[59, 30, 29, 23, 49, 57, 25, 16, 37, 27, 1, 17, 20, 42, 55, 47, 41, 7, 33, 6, 52, 48, 34, 51, 13, 3, 56, 11, 26, 50, 54, 46]","[6, 11, 13, 16, 17, 20, 23, 25, 26, 29, 34, 37, 47, 48, 49, 50, 52, 54, 55]"
43,"[2, 21, 7, 46, 49, 10, 25, 20, 32, 23, 55, 26, 4, 34, 15, 16, 28, 50, 30, 42, 37, 45, 44, 1, 39, 5, 6, 13, 24, 11, 38, 14]","[29, 45, 42, 8, 21, 9, 1, 5, 15, 61, 62, 51, 54, 41, 38, 31, 7, 56, 43, 13, 36, 0, 60, 10, 59, 48, 25, 3, 34, 19, 23, 27]","[1, 5, 7, 10, 13, 15, 21, 23, 25, 34, 38, 42, 45]"
44,"[53, 2, 10, 19, 21, 8, 35, 56, 49, 5, 45, 42, 39, 16, 38, 32, 20, 9, 25, 41, 15, 29, 61, 7, 1, 11, 6, 47, 57, 36, 40, 28]","[23, 59, 3, 54, 22, 50, 47, 18, 37, 24, 27, 26, 48, 6, 34, 45, 16, 28, 55, 60, 33, 30, 52, 19, 7, 17, 13, 58, 35, 46, 62, 2]","[2, 6, 7, 16, 19, 28, 35, 45, 47]"
45,"[46, 13, 6, 58, 35, 57, 18, 2, 53, 30, 31, 28, 60, 5, 21, 56, 52, 48, 55, 39, 59, 12, 23, 45, 36, 22, 50, 0, 20, 4, 29, 32]","[45, 2, 20, 60, 13, 35, 22, 57, 24, 55, 5, 58, 51, 32, 56, 4, 0, 8, 7, 54, 41, 36, 48, 53, 23, 34, 38, 39, 28, 29, 61, 30]","[0, 2, 4, 5, 13, 20, 22, 23, 28, 29, 30, 32, 35, 36, 39, 45, 48, 53, 55, 56, 57, 58, 60]"
46,"[49, 54, 43, 3, 33, 63, 61, 57, 53, 42, 58, 48, 11, 51, 50, 55, 39, 1, 9, 28, 30, 6, 21, 20, 7, 47, 32, 19, 15, 5, 36, 40]","[44, 18, 40, 59, 58, 54, 0, 29, 38, 30, 48, 24, 55, 17, 52, 43, 11, 60, 31, 53, 20, 45, 41, 63, 3, 36, 23, 56, 35, 19, 14, 39]","[3, 11, 19, 20, 30, 36, 39, 40, 43, 48, 53, 54, 55, 58, 63]"
47,"[20, 13, 57, 11, 8, 58, 9, 4, 43, 10, 12, 61, 48, 40, 22, 32, 50, 2, 25, 41, 17, 21, 33, 5, 1, 37, 34, 19, 31, 47, 15, 3]","[58, 10, 51, 3, 1, 39, 41, 38, 46, 8, 42, 12, 20, 32, 43, 5, 2, 50, 25, 17, 18, 55, 27, 40, 16, 19, 30, 57, 31, 47, 48, 37]","[1, 2, 3, 5, 8, 10, 12, 17, 19, 20, 25, 31, 32, 37, 40, 41, 43, 47, 48, 50, 57, 58]"
48,"[39, 3, 45, 11, 22, 60, 1, 19, 25, 55, 18, 40, 35, 4, 58, 28, 8, 36, 41, 44, 30, 61, 50, 9, 2, 5, 15, 48, 12, 32, 31, 56]","[26, 19, 24, 8, 39, 44, 22, 30, 18, 31, 58, 11, 12, 63, 57, 17, 49, 45, 55, 23, 2, 42, 59, 60, 47, 0, 5, 21, 1, 29, 41, 27]","[1, 2, 5, 8, 11, 12, 18, 19, 22, 30, 31, 39, 41, 44, 45, 55, 58, 60]"
49,"[39, 40, 9, 0, 34, 57, 30, 43, 7, 35, 6, 24, 41, 63, 44, 36, 8, 13, 45, 15, 28, 55, 61, 42, 11, 48, 12, 38, 5, 27, 50, 59]","[9, 40, 0, 15, 52, 31, 45, 7, 57, 55, 28, 44, 26, 29, 11, 56, 38, 17, 3, 63, 42, 43, 5, 60, 30, 10, 58, 47, 41, 50, 54, 48]","[0, 5, 7, 9, 11, 15, 28, 30, 38, 40, 41, 42, 43, 44, 45, 48, 50, 55, 57, 63]"
50,"[27, 33, 14, 63, 0, 59, 54, 9, 62, 31, 21, 53, 39, 19, 10, 2, 22, 16, 29, 44, 17, 24, 60, 35, 12, 56, 4, 34, 36, 57, 30, 26]","[24, 36, 50, 3, 63, 58, 17, 22, 56, 0, 60, 7, 27, 55, 4, 11, 40, 31, 62, 14, 19, 35, 39, 33, 43, 21, 10, 6, 45, 59, 8, 18]","[0, 4, 10, 14, 17, 19, 21, 22, 24, 27, 31, 33, 35, 36, 39, 56, 59, 60, 62, 63]"
51,"[2, 27, 29, 42, 14, 34, 24, 58, 31, 4, 43, 62, 7, 1, 9, 5, 10, 53, 21, 49, 26, 23, 32, 3, 35, 51, 59, 55, 30, 39, 13, 16]","[57, 4, 11, 56, 37, 33, 63, 21, 30, 24, 55, 60, 48, 19, 46, 54, 44, 47, 7, 25, 31, 17, 18, 15, 45, 13, 10, 29, 0, 6, 61, 1]","[1, 4, 7, 10, 13, 21, 24, 29, 30, 31, 55]"
52,"[26, 63, 60, 20, 62, 17, 52, 35, 56, 12, 51, 10, 31, 42, 50, 18, 4, 39, 11, 44, 22, 25, 33, 5, 32, 13, 45, 0, 28, 23, 48, 59]","[36, 4, 35, 53, 22, 42, 55, 7, 18, 19, 13, 54, 52, 29, 27, 40, 25, 46, 15, 31, 63, 43, 57, 33, 38, 37, 1, 39, 9, 41, 45, 16]","[4, 13, 18, 22, 25, 31, 33, 35, 39, 42, 45, 52, 63]"
53,"[30, 10, 36, 20, 63, 2, 43, 62, 25, 33, 9, 4, 24, 60, 21, 57, 26, 40, 53, 18, 17, 45, 23, 50, 3, 48, 41, 12, 52, 47, 59, 0]","[15, 55, 6, 43, 41, 46, 32, 30, 48, 39, 9, 28, 58, 16, 8, 7, 33, 56, 20, 2, 21, 24, 34, 49, 1, 23, 17, 11, 45, 0, 44, 60]","[0, 2, 9, 17, 20, 21, 23, 24, 30, 33, 41, 43, 45, 48, 60]"
54,"[34, 24, 6, 4, 11, 52, 45, 54, 27, 49, 63, 16, 1, 28, 44, 33, 20, 22, 2, 57, 3, 40, 23, 30, 7, 41, 8, 62, 43, 58, 17, 46]","[61, 27, 43, 59, 55, 46, 10, 24, 12, 60, 1, 22, 23, 19, 52, 29, 40, 50, 39, 37, 26, 0, 63, 49, 56, 35, 6, 17, 41, 33, 9, 25]","[1, 6, 17, 22, 23, 24, 27, 33, 40, 41, 43, 46, 49, 52, 63]"
55,"[40, 62, 51, 34, 3, 26, 52, 29, 5, 44, 18, 23, 61, 10, 50, 24, 47, 43, 37, 7, 38, 11, 15, 59, 36, 49, 53, 42, 48, 45, 56, 58]","[4, 28, 22, 9, 35, 30, 5, 2, 54, 33, 26, 11, 13, 6, 25, 31, 20, 17, 34, 27, 36, 55, 48, 8, 32, 19, 56, 42, 46, 21, 57, 41]","[5, 11, 26, 34, 36, 42, 48, 56]"
56,"[49, 63, 30, 15, 54, 9, 6, 42, 8, 27, 3, 12, 48, 2, 36, 1, 26, 11, 43, 16, 61, 0, 62, 25, 53, 24, 51, 7, 19, 20, 14, 41]","[37, 55, 44, 8, 35, 43, 10, 36, 17, 32, 51, 7, 9, 59, 56, 16, 33, 19, 14, 58, 15, 6, 28, 53, 60, 50, 30, 41, 2, 23, 61, 34]","[2, 6, 7, 8, 9, 14, 15, 16, 19, 30, 36, 41, 43, 51, 53, 61]"
57,"[26, 10, 13, 42, 6, 50, 47, 34, 27, 36, 46, 3, 14, 61, 5, 44, 15, 55, 30, 41, 52, 28, 8, 2, 21, 38, 40, 11, 0, 62, 1, 16]","[19, 26, 14, 7, 13, 1, 15, 29, 4, 63, 22, 59, 47, 60, 51, 35, 23, 50, 58, 30, 57, 2, 49, 31, 62, 25, 24, 53, 20, 45, 54, 12]","[1, 2, 13, 14, 15, 26, 30, 47, 50, 62]"
58,"[43, 24, 41, 12, 33, 52, 34, 30, 39, 51, 1, 37, 49, 14, 50, 40, 23, 42, 17, 6, 31, 7, 3, 61, 21, 38, 63, 57, 20, 45, 9, 36]","[60, 34, 57, 3, 41, 49, 50, 23, 40, 14, 42, 58, 55, 19, 54, 22, 59, 21, 15, 20, 9, 28, 63, 17, 51, 27, 37, 13, 4, 2, 33, 1]","[1, 3, 9, 14, 17, 20, 21, 23, 33, 34, 37, 40, 41, 42, 49, 50, 51, 57, 63]"
59,"[5, 19, 20, 41, 52, 7, 49, 50, 28, 18, 1, 40, 33, 55, 53, 2, 22, 47, 27, 62, 29, 17, 58, 4, 43, 39, 14, 15, 45, 26, 10, 21]","[62, 61, 27, 26, 7, 25, 40, 4, 32, 14, 42, 50, 20, 39, 24, 3, 58, 2, 57, 5, 1, 17, 11, 9, 8, 38, 18, 46, 51, 29, 23, 33]","[1, 2, 4, 5, 7, 14, 17, 18, 20, 26, 27, 29, 33, 39, 40, 50, 58, 62]"
60,"[33, 32, 31, 53, 61, 4, 40, 55, 1, 43, 26, 25, 18, 17, 45, 46, 59, 21, 23, 35, 10, 27, 12, 50, 38, 42, 30, 2, 13, 29, 5, 14]","[13, 26, 30, 15, 50, 61, 2, 42, 52, 46, 32, 23, 17, 14, 21, 44, 40, 53, 8, 33, 59, 31, 28, 20, 4, 5, 55, 60, 56, 41, 24, 27]","[2, 4, 5, 13, 14, 17, 21, 23, 26, 27, 30, 31, 32, 33, 40, 42, 46, 50, 53, 55, 59, 61]"
61,"[44, 60, 25, 59, 56, 22, 42, 5, 12, 4, 31, 35, 50, 2, 43, 19, 62, 53, 24, 15, 47, 13, 37, 6, 29, 9, 34, 49, 1, 27, 55, 0]","[48, 18, 47, 60, 25, 34, 3, 13, 36, 15, 54, 35, 2, 57, 9, 40, 42, 4, 24, 43, 51, 61, 62, 26, 56, 0, 53, 11, 5, 28, 58, 19]","[0, 2, 4, 5, 9, 13, 15, 19, 24, 25, 34, 35, 42, 43, 47, 53, 56, 60, 62]"
62,"[16, 53, 6, 40, 31, 42, 45, 61, 37, 33, 27, 17, 57, 44, 2, 28, 15, 41, 8, 35, 5, 62, 1, 0, 22, 34, 21, 4, 18, 25, 36, 3]","[19, 28, 56, 32, 47, 62, 48, 43, 39, 3, 26, 38, 52, 31, 12, 33, 24, 46, 36, 51, 61, 27, 8, 57, 2, 63, 6, 9, 29, 54, 5, 13]","[2, 3, 5, 6, 8, 27, 28, 31, 33, 36, 57, 61, 62]"
63,"[46, 10, 18, 3, 15, 4, 23, 13, 31, 6, 30, 39, 16, 35, 56, 59, 28, 25, 27, 26, 50, 54, 34, 36, 12, 37, 33, 42, 40, 32, 0, 5]","[56, 41, 25, 26, 3, 4, 63, 30, 20, 59, 23, 35, 39, 62, 53, 47, 52, 27, 28, 6, 50, 18, 46, 55, 33, 13, 34, 32, 10, 29, 16, 0]","[0, 3, 4, 6, 10, 13, 16, 18, 23, 25, 26, 27, 28, 30, 32, 33, 34, 35, 39, 46, 50, 56, 59]"
64,"[47, 11, 4, 10, 52, 54, 43, 50, 18, 60, 34, 39, 36, 30, 37, 23, 41, 32, 5, 15, 2, 58, 40, 28, 27, 38, 12, 0, 20, 42, 26, 19]","[22, 18, 31, 62, 33, 15, 38, 4, 49, 17, 26, 50, 41, 27, 46, 35, 48, 36, 29, 9, 16, 24, 23, 56, 19, 5, 1, 12, 34, 61, 8, 55]","[4, 5, 12, 15, 18, 19, 23, 26, 27, 34, 36, 38, 41, 50]"
65,"[34, 4, 44, 39, 29, 25, 16, 35, 10, 51, 62, 40, 5, 20, 6, 32, 48, 42, 23, 22, 7, 33, 3, 19, 8, 27, 52, 21, 13, 53, 36, 12]","[38, 2, 46, 35, 7, 44, 1, 49, 45, 27, 57, 0, 19, 61, 59, 11, 16, 18, 51, 8, 60, 9, 12, 15, 23, 6, 40, 22, 14, 30, 50, 31]","[6, 7, 8, 12, 16, 19, 22, 23, 27, 35, 40, 44, 51]"
66,"[28, 39, 33, 2, 21, 53, 14, 12, 18, 7, 45, 43, 37, 60, 54, 42, 11, 38, 23, 9, 50, 26, 22, 62, 15, 5, 8, 0, 20, 13, 56, 30]","[51, 18, 47, 54, 4, 60, 48, 62, 61, 56, 50, 40, 14, 28, 39, 2, 25, 9, 0, 7, 13, 32, 33, 35, 30, 11, 8, 20, 23, 49, 12, 22]","[0, 2, 7, 8, 9, 11, 12, 13, 14, 18, 20, 22, 23, 28, 30, 33, 39, 50, 54, 56, 60, 62]"
67,"[56, 61, 32, 49, 34, 25, 16, 14, 0, 28, 10, 55, 46, 53, 27, 52, 39, 37, 63, 6, 43, 21, 19, 30, 29, 50, 41, 8, 31, 18, 33, 40]","[22, 51, 50, 8, 32, 45, 6, 38, 34, 3, 10, 43, 54, 37, 1, 13, 61, 55, 47, 5, 20, 23, 9, 11, 58, 59, 48, 27, 17, 42, 31, 25]","[6, 8, 10, 25, 27, 31, 32, 34, 37, 43, 50, 55, 61]"
68,"[32, 56, 63, 19, 46, 60, 23, 2, 62, 44, 53, 51, 49, 54, 33, 4, 31, 6, 47, 34, 61, 21, 12, 26, 55, 5, 27, 29, 15, 45, 52, 38]","[49, 8, 24, 36, 0, 3, 33, 51, 16, 11, 43, 40, 2, 29, 41, 38, 7, 39, 17, 55, 18, 62, 25, 20, 48, 14, 10, 13, 30, 22, 19, 50]","[2, 19, 29, 33, 38, 49, 51, 55, 62]"
69,"[10, 62, 7, 61, 52, 43, 6, 14, 42, 13, 23, 30, 11, 22, 3, 8, 21, 63, 1, 34, 35, 4, 19, 36, 27, 26, 33, 28, 29, 59, 60, 16]","[31, 63, 8, 6, 32, 52, 48, 30, 53, 49, 5, 26, 2, 14, 47, 43, 51, 18, 44, 33, 55, 4, 20, 17, 42, 7, 15, 10, 24, 3, 59, 39]","[3, 4, 6, 7, 8, 10, 14, 26, 30, 33, 42, 43, 52, 59, 63]"
70,"[9, 22, 57, 5, 0, 10, 56, 20, 8, 23, 4, 3, 58, 50, 38, 18, 1, 14, 17, 40, 21, 11, 48, 36, 27, 31, 2, 30, 34, 37, 49, 7]","[41, 36, 45, 4, 6, 42, 30, 10, 33, 54, 44, 47, 18, 40, 27, 9, 2, 21, 49, 60, 34, 1, 5, 23, 50, 46, 57, 32, 22, 26, 7, 11]","[1, 2, 4, 5, 7, 9, 10, 11, 18, 21, 22, 23, 27, 30, 34, 36, 40, 49, 50, 57]"
71,"[57, 29, 41, 52, 62, 54, 6, 11, 36, 0, 44, 9, 35, 59, 63, 32, 47, 49, 38, 34, 8, 53, 18, 13, 27, 60, 3, 10, 19, 61, 25, 28]","[10, 62, 39, 11, 16, 28, 14, 37, 23, 8, 17, 25, 58, 45, 7, 56, 36, 61, 48, 12, 13, 4, 33, 55, 27, 42, 20, 46, 32, 31, 43, 21]","[8, 10, 11, 13, 25, 27, 28, 32, 36, 61, 62]"
72,"[63, 8, 51, 13, 28, 52, 10, 41, 46, 34, 14, 9, 20, 39, 11, 25, 7, 21, 59, 5, 56, 23, 43, 47, 27, 35, 54, 30, 16, 37, 57, 2]","[19, 18, 24, 37, 58, 17, 9, 13, 2, 50, 16, 63, 3, 39, 53, 4, 35, 49, 22, 42, 45, 43, 20, 14, 47, 32, 12, 52, 26, 56, 11, 29]","[2, 9, 11, 13, 14, 16, 20, 35, 37, 39, 43, 47, 52, 56, 63]"
73,"[56, 35, 29, 20, 24, 27, 31, 12, 2, 4, 33, 11, 60, 16, 7, 8, 58, 63, 46, 49, 36, 52, 53, 41, 30, 32, 51, 47, 62, 21, 15, 0]","[51, 26, 31, 25, 47, 60, 49, 45, 9, 34, 61, 33, 38, 44, 53, 59, 3, 14, 48, 8, 22, 4, 19, 55, 6, 43, 37, 5, 50, 27, 40, 17]","[4, 8, 27, 31, 33, 47, 49, 51, 53, 60]"
74,"[17, 33, 36, 34, 27, 54, 37, 29, 38, 57, 21, 40, 43, 20, 48, 10, 41, 28, 22, 4, 32, 30, 31, 59, 47, 23, 14, 5, 1, 42, 50, 44]","[13, 23, 10, 14, 51, 12, 21, 40, 32, 3, 29, 56, 33, 50, 37, 22, 63, 47, 24, 38, 35, 43, 5, 26, 16, 27, 31, 1, 49, 46, 8, 52]","[1, 5, 10, 14, 21, 22, 23, 27, 29, 31, 32, 33, 37, 38, 40, 43, 47, 50]"
75,"[57, 37, 60, 46, 20, 41, 33, 42, 26, 55, 39, 4, 36, 10, 32, 31, 58, 9, 3, 59, 22, 2, 34, 17, 0, 61, 16, 53, 12, 25, 50, 23]","[54, 19, 15, 49, 33, 31, 8, 28, 17, 38, 27, 55, 14, 4, 45, 6, 9, 60, 10, 24, 61, 63, 13, 47, 46, 2, 20, 36, 48, 7, 53, 23]","[2, 4, 9, 10, 17, 20, 23, 31, 33, 36, 46, 53, 55, 60, 61]"
76,"[20, 56, 53, 3, 34, 4, 2, 6, 27, 15, 63, 23, 55, 39, 14, 36, 42, 25, 35, 38, 43, 1, 37, 51, 16, 29, 31, 47, 26, 28, 10, 45]","[33, 19, 20, 42, 10, 11, 48, 4, 47, 26, 9, 37, 55, 30, 58, 8, 41, 46, 59, 50, 34, 43, 18, 5, 62, 49, 23, 21, 61, 57, 51, 15]","[4, 10, 15, 20, 23, 26, 34, 37, 42, 43, 47, 51, 55]"
77,"[23, 14, 10, 28, 7, 25, 2, 0, 29, 1, 35, 8, 54, 58, 51, 24, 21, 41, 3, 38, 44, 45, 39, 5, 53, 55, 17, 48, 6, 20, 18, 34]","[2, 53, 46, 41, 62, 43, 12, 63, 10, 32, 22, 59, 51, 13, 25, 23, 14, 36, 16, 11, 58, 57, 9, 61, 42, 47, 37, 50, 33, 3, 6, 15]","[2, 3, 6, 10, 14, 23, 25, 41, 51, 53, 58]"
78,"[41, 50, 43, 38, 1, 44, 15, 61, 23, 26, 19, 9, 6, 31, 54, 18, 56, 10, 16, 29, 42, 39, 11, 12, 60, 52, 45, 63, 0, 30, 20, 53]","[58, 44, 4, 38, 11, 39, 60, 59, 22, 46, 50, 7, 15, 13, 8, 36, 5, 26, 28, 10, 53, 1, 23, 20, 43, 61, 51, 40, 57, 9, 54, 14]","[1, 9, 10, 11, 15, 20, 23, 26, 38, 39, 43, 44, 50, 53, 54, 60, 61]"
79,"[33, 36, 54, 26, 59, 28, 0, 10, 1, 63, 45, 11, 53, 56, 6, 4, 27, 40, 39, 61, 55, 18, 3, 48, 9, 22, 2, 34, 15, 16, 60, 42]","[54, 63, 16, 12, 53, 27, 34, 8, 1, 41, 36, 52, 58, 24, 59, 23, 30, 6, 44, 32, 37, 48, 3, 42, 9, 45, 51, 14, 22, 61, 50, 4]","[1, 3, 4, 6, 9, 16, 22, 27, 34, 36, 42, 45, 48, 53, 54, 59, 61, 63]"
80,"[50, 47, 26, 38, 60, 19, 14, 61, 55, 2, 31, 9, 29, 11, 62, 58, 5, 24, 25, 17, 13, 53, 37, 1, 34, 6, 43, 54, 33, 12, 41, 7]","[16, 62, 31, 60, 50, 29, 10, 20, 39, 2, 42, 14, 22, 1, 13, 59, 0, 26, 11, 34, 19, 6, 7, 54, 8, 38, 33, 61, 17, 25, 58, 47]","[1, 2, 6, 7, 11, 13, 14, 17, 19, 25, 26, 29, 31, 33, 34, 38, 47, 50, 54, 58, 60, 61, 62]"
81,"[61, 3, 10, 49, 21, 43, 46, 18, 16, 57, 4, 2, 19, 14, 34, 62, 26, 25, 1, 5, 6, 52, 63, 13, 36, 7, 45, 39, 48, 15, 54, 33]","[47, 48, 6, 16, 31, 13, 56, 17, 21, 55, 36, 40, 35, 2, 50, 3, 53, 38, 51, 23, 12, 11, 24, 34, 15, 46, 45, 8, 1, 20, 22, 39]","[1, 2, 3, 6, 13, 15, 16, 21, 34, 36, 39, 45, 46, 48]"
82,"[30, 47, 32, 19, 28, 45, 23, 13, 37, 0, 40, 16, 14, 26, 5, 43, 12, 41, 3, 6, 53, 51, 63, 24, 7, 61, 20, 22, 39, 11, 33, 34]","[9, 38, 46, 16, 6, 21, 39, 51, 1, 54, 13, 18, 57, 58, 8, 48, 29, 10, 31, 44, 17, 28, 27, 45, 34, 47, 60, 4, 5, 42, 15, 50]","[5, 6, 13, 16, 28, 34, 39, 45, 47, 51]"
83,"[18, 15, 28, 52, 23, 43, 45, 19, 34, 37, 21, 8, 27, 14, 2, 4, 47, 42, 16, 17, 60, 29, 39, 0, 58, 5, 46, 33, 12, 32, 55, 10]","[51, 27, 18, 40, 45, 32, 60, 0, 53, 4, 23, 28, 10, 15, 29, 17, 24, 2, 5, 34, 21, 22, 52, 11, 12, 50, 44, 9, 3, 42, 39, 48]","[0, 2, 4, 5, 10, 12, 15, 17, 18, 21, 23, 27, 28, 29, 32, 34, 39, 42, 45, 52, 60]"
84,"[16, 49, 22, 56, 0, 53, 12, 26, 9, 51, 20, 14, 38, 29, 36, 13, 19, 40, 6, 44, 48, 43, 32, 15, 42, 62, 39, 52, 23, 7, 60, 50]","[45, 50, 38, 19, 63, 9, 26, 20, 31, 4, 62, 54, 29, 61, 47, 16, 18, 10, 52, 39, 35, 17, 23, 56, 51, 14, 27, 49, 40, 30, 58, 15]","[9, 14, 15, 16, 19, 20, 23, 26, 29, 38, 39, 40, 49, 50, 51, 52, 56, 62]"
85,"[41, 56, 11, 28, 36, 57, 6, 23, 49, 29, 20, 5, 63, 39, 58, 51, 42, 37, 18, 0, 19, 31, 47, 10, 32, 48, 38, 7, 13, 44, 45, 8]","[29, 5, 60, 63, 11, 12, 43, 20, 42, 30, 21, 3, 6, 49, 58, 17, 36, 15, 1, 44, 24, 41, 59, 51, 53, 32, 38, 56, 37, 57, 23, 33]","[5, 6, 11, 20, 23, 29, 32, 36, 37, 38, 41, 42, 44, 49, 51, 56, 57, 58, 63]"
86,"[19, 38, 45, 33, 6, 24, 36, 10, 29, 30, 21, 9, 59, 25, 32, 11, 4, 2, 5, 57, 20, 40, 35, 55, 15, 1, 34, 44, 3, 8, 23, 18]","[37, 42, 17, 16, 6, 55, 43, 0, 56, 53, 31, 14, 21, 44, 26, 61, 49, 25, 12, 27, 28, 18, 32, 51, 13, 50, 52, 19, 54, 58, 30, 48]","[6, 18, 19, 21, 25, 30, 32, 44, 55]"
87,"[28, 38, 31, 55, 61, 37, 62, 60, 25, 6, 41, 15, 9, 4, 18, 7, 12, 49, 24, 0, 23, 46, 44, 3, 30, 59, 5, 8, 2, 34, 13, 11]","[22, 34, 53, 40, 60, 36, 27, 43, 1, 10, 17, 15, 25, 51, 48, 57, 13, 33, 54, 7, 30, 16, 38, 29, 26, 0, 44, 14, 12, 19, 42, 31]","[0, 7, 12, 13, 15, 25, 30, 31, 34, 38, 44, 60]"
88,"[60, 43, 34, 28, 48, 25, 29, 15, 16, 46, 26, 54, 4, 38, 11, 61, 39, 20, 17, 50, 27, 2, 49, 14, 36, 24, 5, 53, 41, 55, 10, 3]","[56, 48, 63, 6, 54, 38, 21, 42, 39, 47, 20, 11, 49, 14, 28, 46, 53, 61, 23, 9, 24, 34, 10, 43, 0, 52, 5, 29, 44, 59, 27, 16]","[5, 10, 11, 14, 16, 20, 24, 27, 28, 29, 34, 38, 39, 43, 46, 48, 49, 53, 54, 61]"
89,"[24, 23, 8, 45, 17, 37, 35, 10, 58, 57, 3, 61, 18, 29, 15, 4, 13, 43, 5, 19, 26, 49, 0, 1, 27, 39, 6, 20, 16, 50, 14, 34]","[38, 63, 5, 49, 47, 18, 39, 60, 29, 26, 44, 3, 0, 10, 52, 61, 14, 4, 15, 35, 59, 8, 57, 50, 54, 20, 28, 24, 16, 1, 55, 25]","[0, 1, 3, 4, 5, 8, 10, 14, 15, 16, 18, 20, 24, 26, 29, 35, 39, 49, 50, 57, 61]"
90,"[21, 35, 6, 49, 16, 39, 20, 27, 28, 57, 13, 29, 32, 61, 33, 46, 60, 38, 54, 45, 19, 59, 43, 36, 51, 31, 24, 4, 52, 50, 9, 63]","[13, 2, 42, 49, 59, 5, 27, 53, 33, 44, 16, 25, 15, 48, 52, 11, 47, 32, 7, 56, 17, 10, 14, 43, 24, 31, 0, 37, 51, 4, 30, 19]","[4, 13, 16, 19, 24, 27, 31, 32, 33, 43, 49, 51, 52, 59]"
91,"[38, 36, 34, 17, 18, 46, 20, 3, 15, 57, 23, 42, 4, 25, 2, 7, 55, 24, 19, 51, 52, 31, 21, 28, 16, 62, 9, 12, 27, 13, 48, 1]","[52, 28, 54, 22, 51, 18, 19, 8, 26, 43, 55, 4, 21, 35, 1, 37, 46, 9, 44, 39, 0, 23, 15, 42, 57, 25, 27, 49, 34, 17, 13, 11]","[1, 4, 9, 13, 15, 17, 18, 19, 21, 23, 25, 27, 28, 34, 42, 46, 51, 52, 55, 57]"
92,"[59, 17, 41, 57, 60, 46, 5, 52, 20, 38, 28, 45, 50, 58, 22, 54, 36, 56, 47, 32, 27, 3, 1, 10, 53, 24, 31, 23, 49, 6, 35, 0]","[59, 41, 20, 24, 53, 19, 46, 5, 35, 31, 38, 37, 36, 0, 52, 16, 2, 45, 17, 33, 21, 57, 50, 61, 56, 11, 8, 29, 18, 54, 10, 47]","[0, 5, 10, 17, 20, 24, 31, 35, 36, 38, 41, 45, 46, 47, 50, 52, 53, 54, 56, 57, 59]"
93,"[11, 52, 33, 43, 9, 23, 21, 61, 10, 49, 20, 15, 58, 63, 62, 16, 45, 2, 37, 28, 35, 34, 31, 24, 3, 44, 29, 30, 19, 8, 32, 38]","[49, 29, 32, 0, 20, 53, 39, 26, 44, 23, 6, 35, 10, 15, 57, 7, 61, 56, 60, 17, 4, 42, 18, 55, 46, 28, 21, 41, 24, 33, 13, 47]","[10, 15, 20, 21, 23, 24, 28, 29, 32, 33, 35, 44, 49, 61]"
94,"[8, 3, 10, 61, 33, 57, 38, 37, 20, 0, 35, 40, 58, 19, 25, 4, 24, 22, 13, 56, 45, 16, 27, 51, 46, 29, 59, 34, 15, 31, 44, 39]","[58, 55, 44, 60, 31, 8, 40, 18, 13, 26, 7, 61, 38, 19, 37, 51, 57, 53, 29, 4, 50, 46, 35, 33, 39, 5, 45, 24, 36, 34, 3, 63]","[3, 4, 8, 13, 19, 24, 29, 31, 33, 34, 35, 37, 38, 39, 40, 44, 45, 46, 51, 57, 58, 61]"
95,"[12, 23, 31, 47, 17, 22, 27, 29, 16, 37, 0, 7, 4, 50, 39, 45, 46, 19, 20, 3, 30, 41, 62, 60, 8, 18, 35, 56, 11, 32, 14, 24]","[16, 13, 5, 49, 42, 12, 40, 34, 23, 48, 36, 51, 18, 7, 62, 31, 19, 61, 25, 58, 53, 54, 60, 17, 46, 59, 41, 52, 10, 33, 63, 26]","[7, 12, 16, 17, 18, 19, 23, 31, 41, 46, 60, 62]"
96,"[22, 41, 48, 14, 11, 34, 2, 16, 3, 6, 21, 56, 61, 29, 19, 52, 18, 38, 49, 15, 12, 43, 62, 50, 63, 46, 55, 28, 0, 30, 51, 27]","[5, 2, 11, 26, 30, 40, 49, 47, 62, 54, 4, 17, 60, 44, 61, 28, 18, 35, 39, 24, 37, 57, 8, 7, 20, 45, 10, 12, 25, 3, 38, 36]","[2, 3, 11, 12, 18, 28, 30, 38, 49, 61, 62]"
97,"[2, 62, 8, 22, 15, 60, 59, 14, 0, 10, 33, 34, 50, 4, 19, 31, 58, 1, 16, 53, 17, 24, 27, 18, 32, 11, 51, 43, 54, 42, 28, 39]","[57, 54, 13, 47, 2, 15, 7, 58, 43, 16, 22, 0, 36, 35, 23, 38, 21, 55, 33, 19, 46, 8, 29, 42, 60, 27, 32, 53, 49, 31, 9, 28]","[0, 2, 8, 15, 16, 19, 22, 27, 28, 31, 32, 33, 42, 43, 53, 54, 58, 60]"
98,"[62, 54, 43, 14, 61, 0, 42, 40, 15, 12, 50, 30, 29, 47, 37, 27, 20, 33, 7, 38, 2, 5, 53, 60, 11, 16, 35, 25, 6, 21, 55, 17]","[38, 7, 54, 31, 47, 28, 34, 8, 12, 20, 3, 63, 0, 52, 36, 55, 60, 25, 17, 15, 13, 46, 33, 56, 26, 11, 14, 16, 40, 4, 37, 45]","[0, 7, 11, 12, 14, 15, 16, 17, 20, 25, 33, 37, 38, 40, 47, 54, 55, 60]"
99,"[2, 41, 3, 17, 26, 4, 9, 58, 7, 42, 49, 21, 55, 40, 53, 8, 50, 18, 29, 0, 13, 44, 63, 5, 39, 48, 24, 36, 47, 54, 19, 38]","[10, 45, 1, 18, 8, 0, 16, 15, 55, 39, 25, 6, 61, 14, 3, 34, 49, 51, 43, 46, 36, 33, 28, 57, 52, 12, 9, 35, 23, 42, 11, 31]","[0, 3, 8, 9, 18, 36, 39, 42, 49, 55]"
1 ID SET1 SET2 INTERSECTION
2 0 [11, 60, 1, 49, 21, 33, 14, 56, 54, 15, 23, 40, 45, 22, 7, 28, 20, 46, 51, 6, 34, 37, 3, 50, 17, 8, 25, 0, 35, 47, 18, 19] [31, 11, 4, 63, 38, 58, 59, 24, 61, 14, 32, 39, 27, 46, 48, 19, 52, 57, 50, 56, 3, 2, 53, 29, 5, 37, 62, 41, 36, 12, 49, 16] [3, 11, 14, 19, 37, 46, 49, 50, 56]
3 1 [28, 58, 36, 18, 37, 31, 44, 39, 34, 51, 12, 56, 21, 27, 7, 24, 46, 1, 25, 2, 41, 6, 45, 29, 49, 42, 35, 30, 54, 55, 10, 50] [4, 16, 28, 46, 49, 21, 58, 30, 19, 1, 37, 15, 3, 59, 51, 24, 10, 12, 34, 20, 40, 44, 35, 23, 36, 0, 43, 54, 2, 31, 57, 41] [1, 2, 10, 12, 21, 24, 28, 30, 31, 34, 35, 36, 37, 41, 44, 46, 49, 51, 54, 58]
4 2 [32, 24, 17, 27, 51, 19, 50, 59, 8, 18, 41, 36, 43, 39, 49, 4, 5, 31, 30, 60, 48, 61, 10, 16, 47, 58, 9, 54, 40, 37, 1, 11] [44, 27, 33, 46, 51, 17, 28, 18, 4, 23, 32, 49, 58, 1, 20, 40, 39, 52, 30, 55, 26, 19, 63, 31, 57, 13, 47, 61, 10, 6, 38, 41] [1, 4, 10, 17, 18, 19, 27, 30, 31, 32, 39, 40, 41, 47, 49, 51, 58, 61]
5 3 [22, 38, 13, 31, 63, 6, 59, 17, 27, 20, 21, 42, 24, 4, 25, 15, 28, 29, 19, 49, 40, 30, 34, 0, 53, 23, 12, 62, 36, 51, 39, 45] [21, 29, 30, 28, 31, 55, 2, 22, 19, 4, 46, 32, 37, 43, 23, 15, 58, 56, 11, 50, 48, 54, 41, 45, 51, 7, 42, 38, 18, 9, 6, 1] [4, 6, 15, 19, 21, 22, 23, 28, 29, 30, 31, 38, 42, 45, 51]
6 4 [4, 26, 48, 7, 42, 60, 31, 36, 25, 20, 14, 50, 21, 30, 12, 10, 23, 8, 39, 13, 46, 32, 11, 34, 6, 2, 57, 0, 17, 33, 18, 24] [1, 37, 48, 28, 39, 58, 53, 10, 6, 50, 17, 9, 51, 56, 38, 52, 8, 30, 46, 62, 5, 24, 61, 22, 57, 14, 44, 11, 47, 35, 63, 36] [6, 8, 10, 11, 14, 17, 24, 30, 36, 39, 46, 48, 50, 57]
7 5 [48, 50, 19, 59, 57, 63, 49, 61, 14, 11, 29, 39, 4, 17, 21, 12, 3, 35, 23, 2, 58, 60, 38, 43, 28, 47, 5, 44, 15, 55, 8, 26] [50, 12, 30, 23, 11, 61, 17, 58, 19, 55, 62, 43, 33, 2, 37, 21, 56, 4, 15, 24, 38, 45, 1, 28, 59, 48, 35, 6, 47, 8, 27, 22] [2, 4, 8, 11, 12, 15, 17, 19, 21, 23, 28, 35, 38, 43, 47, 48, 50, 55, 58, 59, 61]
8 6 [34, 2, 12, 54, 13, 41, 57, 42, 21, 59, 26, 10, 6, 35, 27, 16, 1, 44, 8, 11, 14, 7, 62, 20, 30, 19, 32, 9, 43, 39, 22, 24] [18, 41, 49, 56, 1, 3, 45, 36, 17, 34, 50, 46, 29, 30, 61, 32, 14, 52, 24, 51, 5, 25, 31, 55, 37, 0, 23, 40, 28, 20, 22, 63] [1, 14, 20, 22, 24, 30, 32, 34, 41]
9 7 [49, 61, 9, 23, 27, 21, 47, 37, 54, 32, 18, 14, 22, 13, 62, 46, 0, 26, 4, 11, 60, 34, 25, 50, 6, 51, 59, 8, 35, 41, 29, 17] [33, 21, 49, 54, 6, 27, 3, 47, 4, 20, 43, 41, 8, 24, 0, 57, 28, 35, 15, 17, 46, 23, 13, 9, 45, 31, 22, 12, 5, 29, 50, 7] [0, 4, 6, 8, 9, 13, 17, 21, 22, 23, 27, 29, 35, 41, 46, 47, 49, 50, 54]
10 8 [55, 59, 60, 13, 41, 15, 38, 52, 35, 5, 9, 61, 57, 34, 47, 22, 21, 1, 27, 11, 36, 2, 6, 58, 62, 51, 23, 50, 8, 39, 28, 54] [37, 14, 4, 55, 50, 17, 8, 19, 10, 44, 0, 31, 27, 53, 39, 35, 30, 5, 62, 24, 26, 29, 54, 45, 40, 3, 43, 11, 12, 25, 41, 42] [5, 8, 11, 27, 35, 39, 41, 50, 54, 55, 62]
11 9 [20, 12, 52, 56, 36, 51, 59, 40, 55, 33, 41, 38, 28, 45, 13, 2, 43, 27, 35, 7, 9, 0, 10, 37, 29, 15, 14, 49, 17, 63, 25, 32] [11, 13, 19, 6, 21, 54, 36, 14, 58, 26, 2, 39, 53, 22, 50, 51, 24, 16, 5, 17, 1, 60, 57, 23, 35, 33, 42, 18, 61, 29, 47, 8] [2, 13, 14, 17, 29, 33, 35, 36, 51]
12 10 [24, 21, 51, 37, 54, 22, 18, 38, 14, 30, 48, 49, 28, 47, 10, 44, 58, 29, 3, 45, 26, 15, 9, 6, 33, 2, 34, 17, 20, 25, 0, 1] [3, 0, 20, 1, 24, 45, 25, 52, 13, 43, 38, 15, 22, 53, 27, 8, 42, 40, 59, 32, 21, 60, 30, 46, 51, 47, 14, 50, 5, 62, 57, 28] [0, 1, 3, 14, 15, 20, 21, 22, 24, 25, 28, 30, 38, 45, 47, 51]
13 11 [58, 52, 51, 15, 42, 26, 19, 30, 28, 6, 40, 11, 25, 53, 18, 47, 21, 12, 41, 45, 43, 7, 35, 48, 27, 3, 32, 2, 4, 62, 17, 29] [41, 4, 0, 35, 25, 29, 14, 62, 45, 2, 37, 11, 15, 8, 30, 39, 58, 19, 56, 42, 17, 51, 24, 28, 44, 27, 13, 18, 26, 47, 53, 43] [2, 4, 11, 15, 17, 18, 19, 25, 26, 27, 28, 29, 30, 35, 41, 42, 43, 45, 47, 51, 53, 58, 62]
14 12 [8, 17, 23, 38, 24, 47, 61, 3, 46, 43, 58, 39, 27, 21, 26, 14, 62, 1, 15, 19, 37, 53, 55, 6, 51, 57, 52, 25, 16, 22, 33, 54] [2, 18, 15, 17, 23, 45, 14, 36, 53, 7, 27, 32, 31, 21, 8, 38, 16, 61, 6, 58, 3, 39, 49, 19, 22, 42, 0, 12, 30, 60, 26, 46] [3, 6, 8, 14, 15, 16, 17, 19, 21, 22, 23, 26, 27, 38, 39, 46, 53, 58, 61]
15 13 [58, 10, 28, 52, 51, 48, 49, 13, 53, 25, 55, 6, 4, 15, 30, 56, 54, 41, 38, 42, 21, 33, 44, 18, 37, 43, 31, 20, 3, 2, 50, 0] [54, 3, 32, 44, 26, 49, 0, 9, 35, 51, 25, 33, 62, 55, 47, 2, 29, 11, 42, 18, 4, 23, 31, 41, 20, 7, 58, 52, 13, 36, 5, 53] [0, 2, 3, 4, 13, 18, 20, 25, 31, 33, 41, 42, 44, 49, 51, 52, 53, 54, 55, 58]
16 14 [12, 18, 22, 38, 6, 23, 54, 37, 40, 44, 19, 46, 35, 47, 7, 10, 16, 24, 4, 42, 31, 30, 0, 63, 25, 57, 39, 51, 3, 60, 49, 28] [40, 6, 12, 18, 19, 34, 17, 47, 4, 29, 53, 3, 15, 7, 37, 1, 59, 42, 33, 35, 52, 16, 61, 13, 9, 51, 32, 60, 24, 54, 38, 46] [3, 4, 6, 7, 12, 16, 18, 19, 24, 35, 37, 38, 40, 42, 46, 47, 51, 54, 60]
17 15 [61, 62, 10, 53, 17, 20, 28, 54, 55, 59, 4, 1, 11, 34, 5, 35, 56, 38, 60, 29, 43, 42, 63, 50, 24, 40, 47, 52, 16, 39, 31, 19] [60, 24, 50, 45, 23, 18, 20, 31, 29, 35, 43, 44, 59, 41, 51, 46, 16, 63, 38, 3, 42, 25, 4, 17, 5, 9, 61, 7, 27, 54, 19, 39] [4, 5, 16, 17, 19, 20, 24, 29, 31, 35, 38, 39, 42, 43, 50, 54, 59, 60, 61, 63]
18 16 [12, 2, 21, 59, 49, 30, 31, 14, 23, 39, 5, 15, 4, 19, 27, 43, 6, 34, 0, 22, 16, 60, 17, 48, 40, 9, 56, 1, 63, 8, 45, 51] [40, 4, 38, 7, 1, 47, 44, 16, 58, 11, 25, 35, 3, 51, 26, 10, 41, 60, 46, 6, 34, 19, 2, 61, 21, 31, 8, 22, 12, 53, 15, 50] [1, 2, 4, 6, 8, 12, 15, 16, 19, 21, 22, 31, 34, 40, 51, 60]
19 17 [26, 8, 53, 37, 45, 60, 32, 44, 19, 39, 36, 16, 25, 9, 6, 50, 38, 47, 30, 63, 42, 52, 57, 10, 7, 27, 14, 1, 41, 58, 59, 62] [28, 12, 29, 21, 63, 34, 17, 49, 56, 4, 15, 39, 1, 46, 22, 62, 9, 43, 0, 50, 23, 54, 44, 31, 5, 51, 11, 37, 8, 61, 13, 42] [1, 8, 9, 37, 39, 42, 44, 50, 62, 63]
20 18 [9, 58, 28, 53, 3, 18, 45, 33, 11, 5, 2, 47, 4, 59, 38, 30, 61, 15, 21, 48, 41, 25, 26, 13, 60, 23, 6, 55, 17, 36, 62, 10] [43, 15, 16, 10, 33, 5, 13, 62, 41, 53, 0, 32, 54, 23, 26, 19, 25, 9, 37, 49, 38, 21, 28, 27, 40, 45, 4, 61, 29, 3, 55, 18] [3, 4, 5, 9, 10, 13, 15, 18, 21, 23, 25, 26, 28, 33, 38, 41, 45, 53, 55, 61, 62]
21 19 [26, 63, 42, 19, 6, 62, 39, 14, 24, 17, 44, 31, 8, 7, 10, 16, 1, 56, 45, 43, 50, 57, 54, 51, 58, 59, 5, 37, 3, 21, 13, 30] [60, 3, 1, 34, 17, 55, 50, 21, 0, 46, 62, 59, 47, 36, 15, 22, 19, 5, 2, 38, 58, 12, 32, 27, 28, 18, 24, 31, 26, 63, 51, 53] [1, 3, 5, 17, 19, 21, 24, 26, 31, 50, 51, 58, 59, 62, 63]
22 20 [30, 31, 28, 56, 54, 29, 61, 18, 1, 46, 34, 5, 15, 63, 26, 45, 4, 47, 40, 21, 3, 9, 2, 27, 7, 6, 24, 19, 42, 11, 35, 41] [57, 5, 54, 42, 41, 31, 12, 13, 9, 34, 21, 23, 7, 48, 22, 29, 19, 14, 0, 43, 3, 27, 26, 4, 16, 25, 53, 51, 10, 11, 52, 20] [3, 4, 5, 7, 9, 11, 19, 21, 26, 27, 29, 31, 34, 41, 42, 54]
23 21 [9, 12, 51, 48, 23, 6, 50, 14, 53, 15, 58, 44, 32, 59, 24, 42, 27, 41, 29, 10, 45, 34, 0, 46, 3, 36, 25, 16, 13, 63, 49, 52] [16, 15, 51, 37, 20, 27, 47, 36, 45, 59, 0, 41, 40, 2, 28, 31, 17, 1, 21, 22, 5, 58, 18, 57, 34, 39, 54, 9, 53, 33, 60, 19] [0, 9, 15, 16, 27, 34, 36, 41, 45, 51, 53, 58, 59]
24 22 [57, 44, 59, 3, 16, 5, 17, 6, 52, 0, 18, 40, 47, 11, 45, 14, 1, 49, 30, 55, 27, 12, 50, 10, 7, 39, 46, 22, 23, 38, 34, 41] [44, 48, 9, 58, 28, 40, 4, 56, 49, 19, 53, 42, 47, 35, 25, 34, 29, 43, 33, 32, 6, 55, 37, 26, 20, 11, 2, 27, 31, 62, 54, 39] [6, 11, 27, 34, 39, 40, 44, 47, 49, 55]
25 23 [32, 25, 2, 13, 11, 23, 54, 49, 9, 57, 59, 6, 61, 47, 37, 34, 18, 29, 46, 45, 56, 31, 14, 17, 48, 55, 7, 50, 27, 51, 63, 44] [49, 34, 46, 32, 17, 50, 51, 54, 61, 14, 52, 21, 56, 16, 44, 33, 25, 57, 2, 28, 35, 19, 55, 11, 22, 9, 48, 20, 53, 29, 45, 18] [2, 9, 11, 14, 17, 18, 25, 29, 32, 34, 44, 45, 46, 48, 49, 50, 51, 54, 55, 56, 57, 61]
26 24 [23, 16, 41, 14, 10, 42, 9, 27, 35, 51, 24, 4, 59, 47, 55, 12, 18, 58, 7, 63, 28, 32, 22, 49, 37, 31, 13, 1, 21, 39, 36, 30] [39, 6, 63, 37, 27, 19, 40, 16, 18, 54, 22, 20, 2, 30, 23, 59, 46, 52, 43, 10, 21, 41, 31, 4, 12, 24, 32, 38, 3, 13, 47, 53] [4, 10, 12, 13, 16, 18, 21, 22, 23, 24, 27, 30, 31, 32, 37, 39, 41, 47, 59, 63]
27 25 [20, 5, 41, 40, 24, 60, 2, 6, 59, 50, 34, 47, 10, 0, 14, 29, 35, 28, 39, 58, 13, 16, 27, 4, 18, 52, 56, 21, 45, 15, 32, 30] [2, 23, 40, 31, 7, 52, 55, 18, 59, 56, 60, 44, 38, 54, 35, 4, 46, 1, 12, 47, 10, 3, 13, 29, 48, 43, 6, 11, 20, 24, 45, 34] [2, 4, 6, 10, 13, 18, 20, 24, 29, 34, 35, 40, 45, 47, 52, 56, 59, 60]
28 26 [60, 39, 4, 62, 16, 57, 49, 41, 25, 59, 55, 35, 53, 33, 17, 5, 18, 13, 46, 30, 45, 38, 1, 20, 22, 44, 11, 15, 42, 7, 21, 28] [57, 27, 24, 15, 44, 13, 60, 35, 62, 47, 38, 59, 42, 52, 49, 43, 10, 0, 53, 6, 37, 18, 19, 36, 51, 58, 3, 34, 23, 21, 63, 40] [13, 15, 18, 21, 35, 38, 42, 44, 49, 53, 57, 59, 60, 62]
29 27 [9, 48, 28, 3, 61, 4, 1, 22, 62, 57, 18, 21, 34, 26, 25, 8, 12, 38, 27, 49, 46, 6, 40, 56, 10, 16, 36, 5, 45, 44, 51, 42] [10, 36, 20, 5, 45, 34, 16, 18, 21, 51, 60, 17, 57, 50, 42, 54, 46, 63, 39, 38, 58, 3, 24, 53, 37, 26, 27, 48, 22, 44, 49, 8] [3, 5, 8, 10, 16, 18, 21, 22, 26, 27, 34, 36, 38, 42, 44, 45, 46, 48, 49, 51, 57]
30 28 [17, 42, 40, 38, 58, 19, 63, 22, 50, 18, 8, 16, 12, 15, 61, 10, 52, 9, 44, 13, 60, 24, 41, 56, 35, 46, 21, 36, 28, 0, 48, 6] [6, 33, 10, 5, 23, 41, 53, 30, 58, 22, 45, 42, 61, 7, 12, 19, 56, 60, 2, 28, 62, 36, 39, 43, 27, 20, 16, 55, 37, 40, 9, 32] [6, 9, 10, 12, 16, 19, 22, 28, 36, 40, 41, 42, 56, 58, 60, 61]
31 29 [1, 4, 35, 57, 2, 11, 43, 56, 16, 9, 51, 8, 26, 0, 59, 31, 22, 25, 29, 50, 13, 44, 12, 32, 30, 27, 19, 36, 42, 61, 7, 38] [59, 35, 54, 49, 7, 45, 33, 57, 32, 41, 18, 47, 55, 56, 58, 5, 4, 46, 21, 9, 63, 52, 34, 2, 62, 8, 48, 22, 51, 11, 1, 16] [1, 2, 4, 7, 8, 9, 11, 16, 22, 32, 35, 51, 56, 57, 59]
32 30 [54, 2, 52, 36, 21, 37, 13, 28, 39, 17, 27, 0, 42, 56, 10, 4, 60, 48, 49, 24, 20, 16, 5, 62, 14, 47, 53, 1, 7, 32, 34, 12] [38, 41, 13, 32, 31, 63, 11, 62, 1, 18, 52, 58, 56, 51, 7, 37, 36, 22, 9, 35, 43, 0, 46, 4, 55, 44, 25, 8, 24, 14, 34, 47] [0, 1, 4, 7, 13, 14, 24, 32, 34, 36, 37, 47, 52, 56, 62]
33 31 [6, 32, 2, 58, 25, 19, 31, 0, 30, 28, 46, 49, 41, 48, 45, 44, 59, 51, 22, 3, 38, 36, 1, 15, 11, 26, 37, 24, 55, 9, 14, 61] [10, 56, 39, 4, 34, 11, 29, 14, 57, 15, 60, 20, 9, 43, 53, 40, 8, 44, 50, 27, 47, 19, 36, 52, 6, 62, 45, 63, 12, 21, 51, 58] [6, 9, 11, 14, 15, 19, 36, 44, 45, 51, 58]
34 32 [24, 51, 50, 19, 63, 42, 29, 59, 41, 9, 38, 28, 25, 4, 18, 40, 12, 1, 58, 34, 15, 30, 54, 6, 46, 27, 39, 55, 23, 61, 5, 36] [56, 17, 24, 11, 35, 20, 15, 10, 3, 45, 26, 33, 21, 60, 8, 32, 22, 48, 25, 49, 41, 14, 13, 18, 19, 61, 2, 43, 52, 16, 5, 27] [5, 15, 18, 19, 24, 25, 27, 41, 61]
35 33 [27, 37, 6, 7, 2, 32, 28, 11, 24, 43, 5, 15, 12, 18, 36, 26, 55, 35, 57, 56, 29, 54, 30, 9, 3, 20, 38, 48, 63, 25, 16, 10] [21, 34, 3, 20, 2, 13, 56, 32, 25, 58, 61, 51, 59, 53, 6, 27, 8, 48, 50, 43, 46, 52, 63, 11, 42, 12, 19, 45, 9, 39, 55, 54] [2, 3, 6, 9, 11, 12, 20, 25, 27, 32, 43, 48, 54, 55, 56, 63]
36 34 [22, 52, 23, 8, 46, 5, 19, 37, 31, 51, 6, 17, 21, 13, 29, 4, 58, 0, 32, 40, 9, 33, 55, 34, 11, 30, 24, 20, 3, 39, 2, 25] [51, 20, 56, 37, 9, 19, 38, 53, 43, 35, 39, 23, 46, 8, 11, 3, 28, 49, 13, 22, 52, 2, 42, 26, 21, 30, 58, 24, 59, 40, 5, 6] [2, 3, 5, 6, 8, 9, 11, 13, 19, 20, 21, 22, 23, 24, 30, 37, 39, 40, 46, 51, 52, 58]
37 35 [9, 37, 45, 60, 18, 38, 55, 14, 44, 49, 27, 19, 6, 2, 51, 26, 11, 24, 54, 32, 48, 57, 34, 3, 42, 5, 39, 31, 53, 62, 43, 41] [61, 28, 30, 25, 33, 43, 46, 56, 58, 62, 21, 17, 16, 50, 29, 41, 13, 38, 54, 63, 40, 18, 35, 10, 36, 20, 7, 9, 8, 45, 19, 52] [9, 18, 19, 38, 41, 43, 45, 54, 62]
38 36 [45, 26, 14, 2, 25, 41, 59, 58, 42, 39, 56, 46, 1, 48, 30, 31, 63, 36, 33, 5, 60, 19, 21, 57, 62, 35, 17, 37, 6, 3, 38, 13] [43, 32, 60, 56, 36, 22, 59, 6, 39, 63, 46, 8, 26, 38, 57, 31, 29, 25, 45, 18, 55, 52, 13, 10, 62, 35, 30, 7, 47, 14, 37, 21] [6, 13, 14, 21, 25, 26, 30, 31, 35, 36, 37, 38, 39, 45, 46, 56, 57, 59, 60, 62, 63]
39 37 [47, 52, 1, 22, 16, 56, 5, 30, 43, 54, 3, 48, 21, 17, 33, 9, 57, 11, 4, 46, 15, 26, 12, 7, 32, 44, 6, 41, 31, 14, 49, 59] [42, 44, 49, 59, 58, 61, 57, 6, 46, 3, 7, 31, 43, 1, 34, 22, 12, 16, 4, 54, 55, 45, 27, 5, 26, 48, 13, 17, 19, 51, 39, 47] [1, 3, 4, 5, 6, 7, 12, 16, 17, 22, 26, 31, 43, 44, 46, 47, 48, 49, 54, 57, 59]
40 38 [28, 27, 51, 11, 2, 31, 14, 6, 33, 25, 42, 49, 59, 60, 17, 10, 56, 12, 23, 36, 37, 53, 18, 52, 26, 21, 62, 63, 38, 22, 16, 44] [52, 53, 6, 9, 40, 47, 14, 3, 34, 29, 18, 48, 7, 58, 20, 50, 51, 22, 5, 46, 28, 37, 60, 61, 55, 27, 1, 4, 49, 45, 39, 24] [6, 14, 18, 22, 27, 28, 37, 49, 51, 52, 53, 60]
41 39 [41, 11, 6, 43, 60, 48, 37, 55, 31, 39, 7, 13, 58, 42, 62, 44, 21, 56, 35, 19, 49, 9, 36, 34, 14, 10, 8, 54, 30, 32, 52, 2] [0, 36, 42, 58, 13, 38, 31, 45, 11, 61, 18, 28, 32, 60, 17, 57, 10, 2, 3, 59, 51, 35, 12, 9, 7, 50, 63, 41, 48, 34, 39, 49] [2, 7, 9, 10, 11, 13, 31, 32, 34, 35, 36, 39, 41, 42, 48, 49, 58, 60]
42 40 [27, 26, 20, 51, 10, 56, 49, 22, 31, 61, 44, 24, 32, 17, 50, 29, 30, 19, 3, 4, 12, 0, 43, 41, 35, 58, 33, 15, 37, 34, 57, 25] [54, 29, 52, 49, 45, 30, 48, 7, 11, 19, 47, 46, 10, 38, 16, 36, 40, 5, 41, 1, 23, 8, 42, 33, 56, 14, 59, 2, 58, 0, 63, 62] [0, 10, 19, 29, 30, 33, 41, 49, 56, 58]
43 41 [44, 7, 43, 52, 38, 18, 47, 2, 49, 41, 36, 42, 57, 1, 23, 27, 39, 50, 31, 51, 16, 29, 30, 26, 40, 24, 10, 20, 6, 11, 62, 19] [47, 21, 60, 51, 62, 55, 28, 48, 16, 2, 52, 36, 10, 18, 63, 3, 45, 32, 50, 43, 19, 44, 27, 56, 26, 1, 8, 29, 25, 41, 11, 38] [1, 2, 10, 11, 16, 18, 19, 26, 27, 29, 36, 38, 41, 43, 44, 47, 50, 51, 52, 62]
44 42 [11, 29, 26, 5, 13, 32, 53, 10, 25, 60, 52, 39, 35, 55, 23, 17, 49, 47, 28, 20, 4, 50, 2, 31, 19, 48, 34, 6, 0, 54, 16, 37] [59, 30, 29, 23, 49, 57, 25, 16, 37, 27, 1, 17, 20, 42, 55, 47, 41, 7, 33, 6, 52, 48, 34, 51, 13, 3, 56, 11, 26, 50, 54, 46] [6, 11, 13, 16, 17, 20, 23, 25, 26, 29, 34, 37, 47, 48, 49, 50, 52, 54, 55]
45 43 [2, 21, 7, 46, 49, 10, 25, 20, 32, 23, 55, 26, 4, 34, 15, 16, 28, 50, 30, 42, 37, 45, 44, 1, 39, 5, 6, 13, 24, 11, 38, 14] [29, 45, 42, 8, 21, 9, 1, 5, 15, 61, 62, 51, 54, 41, 38, 31, 7, 56, 43, 13, 36, 0, 60, 10, 59, 48, 25, 3, 34, 19, 23, 27] [1, 5, 7, 10, 13, 15, 21, 23, 25, 34, 38, 42, 45]
46 44 [53, 2, 10, 19, 21, 8, 35, 56, 49, 5, 45, 42, 39, 16, 38, 32, 20, 9, 25, 41, 15, 29, 61, 7, 1, 11, 6, 47, 57, 36, 40, 28] [23, 59, 3, 54, 22, 50, 47, 18, 37, 24, 27, 26, 48, 6, 34, 45, 16, 28, 55, 60, 33, 30, 52, 19, 7, 17, 13, 58, 35, 46, 62, 2] [2, 6, 7, 16, 19, 28, 35, 45, 47]
47 45 [46, 13, 6, 58, 35, 57, 18, 2, 53, 30, 31, 28, 60, 5, 21, 56, 52, 48, 55, 39, 59, 12, 23, 45, 36, 22, 50, 0, 20, 4, 29, 32] [45, 2, 20, 60, 13, 35, 22, 57, 24, 55, 5, 58, 51, 32, 56, 4, 0, 8, 7, 54, 41, 36, 48, 53, 23, 34, 38, 39, 28, 29, 61, 30] [0, 2, 4, 5, 13, 20, 22, 23, 28, 29, 30, 32, 35, 36, 39, 45, 48, 53, 55, 56, 57, 58, 60]
48 46 [49, 54, 43, 3, 33, 63, 61, 57, 53, 42, 58, 48, 11, 51, 50, 55, 39, 1, 9, 28, 30, 6, 21, 20, 7, 47, 32, 19, 15, 5, 36, 40] [44, 18, 40, 59, 58, 54, 0, 29, 38, 30, 48, 24, 55, 17, 52, 43, 11, 60, 31, 53, 20, 45, 41, 63, 3, 36, 23, 56, 35, 19, 14, 39] [3, 11, 19, 20, 30, 36, 39, 40, 43, 48, 53, 54, 55, 58, 63]
49 47 [20, 13, 57, 11, 8, 58, 9, 4, 43, 10, 12, 61, 48, 40, 22, 32, 50, 2, 25, 41, 17, 21, 33, 5, 1, 37, 34, 19, 31, 47, 15, 3] [58, 10, 51, 3, 1, 39, 41, 38, 46, 8, 42, 12, 20, 32, 43, 5, 2, 50, 25, 17, 18, 55, 27, 40, 16, 19, 30, 57, 31, 47, 48, 37] [1, 2, 3, 5, 8, 10, 12, 17, 19, 20, 25, 31, 32, 37, 40, 41, 43, 47, 48, 50, 57, 58]
50 48 [39, 3, 45, 11, 22, 60, 1, 19, 25, 55, 18, 40, 35, 4, 58, 28, 8, 36, 41, 44, 30, 61, 50, 9, 2, 5, 15, 48, 12, 32, 31, 56] [26, 19, 24, 8, 39, 44, 22, 30, 18, 31, 58, 11, 12, 63, 57, 17, 49, 45, 55, 23, 2, 42, 59, 60, 47, 0, 5, 21, 1, 29, 41, 27] [1, 2, 5, 8, 11, 12, 18, 19, 22, 30, 31, 39, 41, 44, 45, 55, 58, 60]
51 49 [39, 40, 9, 0, 34, 57, 30, 43, 7, 35, 6, 24, 41, 63, 44, 36, 8, 13, 45, 15, 28, 55, 61, 42, 11, 48, 12, 38, 5, 27, 50, 59] [9, 40, 0, 15, 52, 31, 45, 7, 57, 55, 28, 44, 26, 29, 11, 56, 38, 17, 3, 63, 42, 43, 5, 60, 30, 10, 58, 47, 41, 50, 54, 48] [0, 5, 7, 9, 11, 15, 28, 30, 38, 40, 41, 42, 43, 44, 45, 48, 50, 55, 57, 63]
52 50 [27, 33, 14, 63, 0, 59, 54, 9, 62, 31, 21, 53, 39, 19, 10, 2, 22, 16, 29, 44, 17, 24, 60, 35, 12, 56, 4, 34, 36, 57, 30, 26] [24, 36, 50, 3, 63, 58, 17, 22, 56, 0, 60, 7, 27, 55, 4, 11, 40, 31, 62, 14, 19, 35, 39, 33, 43, 21, 10, 6, 45, 59, 8, 18] [0, 4, 10, 14, 17, 19, 21, 22, 24, 27, 31, 33, 35, 36, 39, 56, 59, 60, 62, 63]
53 51 [2, 27, 29, 42, 14, 34, 24, 58, 31, 4, 43, 62, 7, 1, 9, 5, 10, 53, 21, 49, 26, 23, 32, 3, 35, 51, 59, 55, 30, 39, 13, 16] [57, 4, 11, 56, 37, 33, 63, 21, 30, 24, 55, 60, 48, 19, 46, 54, 44, 47, 7, 25, 31, 17, 18, 15, 45, 13, 10, 29, 0, 6, 61, 1] [1, 4, 7, 10, 13, 21, 24, 29, 30, 31, 55]
54 52 [26, 63, 60, 20, 62, 17, 52, 35, 56, 12, 51, 10, 31, 42, 50, 18, 4, 39, 11, 44, 22, 25, 33, 5, 32, 13, 45, 0, 28, 23, 48, 59] [36, 4, 35, 53, 22, 42, 55, 7, 18, 19, 13, 54, 52, 29, 27, 40, 25, 46, 15, 31, 63, 43, 57, 33, 38, 37, 1, 39, 9, 41, 45, 16] [4, 13, 18, 22, 25, 31, 33, 35, 39, 42, 45, 52, 63]
55 53 [30, 10, 36, 20, 63, 2, 43, 62, 25, 33, 9, 4, 24, 60, 21, 57, 26, 40, 53, 18, 17, 45, 23, 50, 3, 48, 41, 12, 52, 47, 59, 0] [15, 55, 6, 43, 41, 46, 32, 30, 48, 39, 9, 28, 58, 16, 8, 7, 33, 56, 20, 2, 21, 24, 34, 49, 1, 23, 17, 11, 45, 0, 44, 60] [0, 2, 9, 17, 20, 21, 23, 24, 30, 33, 41, 43, 45, 48, 60]
56 54 [34, 24, 6, 4, 11, 52, 45, 54, 27, 49, 63, 16, 1, 28, 44, 33, 20, 22, 2, 57, 3, 40, 23, 30, 7, 41, 8, 62, 43, 58, 17, 46] [61, 27, 43, 59, 55, 46, 10, 24, 12, 60, 1, 22, 23, 19, 52, 29, 40, 50, 39, 37, 26, 0, 63, 49, 56, 35, 6, 17, 41, 33, 9, 25] [1, 6, 17, 22, 23, 24, 27, 33, 40, 41, 43, 46, 49, 52, 63]
57 55 [40, 62, 51, 34, 3, 26, 52, 29, 5, 44, 18, 23, 61, 10, 50, 24, 47, 43, 37, 7, 38, 11, 15, 59, 36, 49, 53, 42, 48, 45, 56, 58] [4, 28, 22, 9, 35, 30, 5, 2, 54, 33, 26, 11, 13, 6, 25, 31, 20, 17, 34, 27, 36, 55, 48, 8, 32, 19, 56, 42, 46, 21, 57, 41] [5, 11, 26, 34, 36, 42, 48, 56]
58 56 [49, 63, 30, 15, 54, 9, 6, 42, 8, 27, 3, 12, 48, 2, 36, 1, 26, 11, 43, 16, 61, 0, 62, 25, 53, 24, 51, 7, 19, 20, 14, 41] [37, 55, 44, 8, 35, 43, 10, 36, 17, 32, 51, 7, 9, 59, 56, 16, 33, 19, 14, 58, 15, 6, 28, 53, 60, 50, 30, 41, 2, 23, 61, 34] [2, 6, 7, 8, 9, 14, 15, 16, 19, 30, 36, 41, 43, 51, 53, 61]
59 57 [26, 10, 13, 42, 6, 50, 47, 34, 27, 36, 46, 3, 14, 61, 5, 44, 15, 55, 30, 41, 52, 28, 8, 2, 21, 38, 40, 11, 0, 62, 1, 16] [19, 26, 14, 7, 13, 1, 15, 29, 4, 63, 22, 59, 47, 60, 51, 35, 23, 50, 58, 30, 57, 2, 49, 31, 62, 25, 24, 53, 20, 45, 54, 12] [1, 2, 13, 14, 15, 26, 30, 47, 50, 62]
60 58 [43, 24, 41, 12, 33, 52, 34, 30, 39, 51, 1, 37, 49, 14, 50, 40, 23, 42, 17, 6, 31, 7, 3, 61, 21, 38, 63, 57, 20, 45, 9, 36] [60, 34, 57, 3, 41, 49, 50, 23, 40, 14, 42, 58, 55, 19, 54, 22, 59, 21, 15, 20, 9, 28, 63, 17, 51, 27, 37, 13, 4, 2, 33, 1] [1, 3, 9, 14, 17, 20, 21, 23, 33, 34, 37, 40, 41, 42, 49, 50, 51, 57, 63]
61 59 [5, 19, 20, 41, 52, 7, 49, 50, 28, 18, 1, 40, 33, 55, 53, 2, 22, 47, 27, 62, 29, 17, 58, 4, 43, 39, 14, 15, 45, 26, 10, 21] [62, 61, 27, 26, 7, 25, 40, 4, 32, 14, 42, 50, 20, 39, 24, 3, 58, 2, 57, 5, 1, 17, 11, 9, 8, 38, 18, 46, 51, 29, 23, 33] [1, 2, 4, 5, 7, 14, 17, 18, 20, 26, 27, 29, 33, 39, 40, 50, 58, 62]
62 60 [33, 32, 31, 53, 61, 4, 40, 55, 1, 43, 26, 25, 18, 17, 45, 46, 59, 21, 23, 35, 10, 27, 12, 50, 38, 42, 30, 2, 13, 29, 5, 14] [13, 26, 30, 15, 50, 61, 2, 42, 52, 46, 32, 23, 17, 14, 21, 44, 40, 53, 8, 33, 59, 31, 28, 20, 4, 5, 55, 60, 56, 41, 24, 27] [2, 4, 5, 13, 14, 17, 21, 23, 26, 27, 30, 31, 32, 33, 40, 42, 46, 50, 53, 55, 59, 61]
63 61 [44, 60, 25, 59, 56, 22, 42, 5, 12, 4, 31, 35, 50, 2, 43, 19, 62, 53, 24, 15, 47, 13, 37, 6, 29, 9, 34, 49, 1, 27, 55, 0] [48, 18, 47, 60, 25, 34, 3, 13, 36, 15, 54, 35, 2, 57, 9, 40, 42, 4, 24, 43, 51, 61, 62, 26, 56, 0, 53, 11, 5, 28, 58, 19] [0, 2, 4, 5, 9, 13, 15, 19, 24, 25, 34, 35, 42, 43, 47, 53, 56, 60, 62]
64 62 [16, 53, 6, 40, 31, 42, 45, 61, 37, 33, 27, 17, 57, 44, 2, 28, 15, 41, 8, 35, 5, 62, 1, 0, 22, 34, 21, 4, 18, 25, 36, 3] [19, 28, 56, 32, 47, 62, 48, 43, 39, 3, 26, 38, 52, 31, 12, 33, 24, 46, 36, 51, 61, 27, 8, 57, 2, 63, 6, 9, 29, 54, 5, 13] [2, 3, 5, 6, 8, 27, 28, 31, 33, 36, 57, 61, 62]
65 63 [46, 10, 18, 3, 15, 4, 23, 13, 31, 6, 30, 39, 16, 35, 56, 59, 28, 25, 27, 26, 50, 54, 34, 36, 12, 37, 33, 42, 40, 32, 0, 5] [56, 41, 25, 26, 3, 4, 63, 30, 20, 59, 23, 35, 39, 62, 53, 47, 52, 27, 28, 6, 50, 18, 46, 55, 33, 13, 34, 32, 10, 29, 16, 0] [0, 3, 4, 6, 10, 13, 16, 18, 23, 25, 26, 27, 28, 30, 32, 33, 34, 35, 39, 46, 50, 56, 59]
66 64 [47, 11, 4, 10, 52, 54, 43, 50, 18, 60, 34, 39, 36, 30, 37, 23, 41, 32, 5, 15, 2, 58, 40, 28, 27, 38, 12, 0, 20, 42, 26, 19] [22, 18, 31, 62, 33, 15, 38, 4, 49, 17, 26, 50, 41, 27, 46, 35, 48, 36, 29, 9, 16, 24, 23, 56, 19, 5, 1, 12, 34, 61, 8, 55] [4, 5, 12, 15, 18, 19, 23, 26, 27, 34, 36, 38, 41, 50]
67 65 [34, 4, 44, 39, 29, 25, 16, 35, 10, 51, 62, 40, 5, 20, 6, 32, 48, 42, 23, 22, 7, 33, 3, 19, 8, 27, 52, 21, 13, 53, 36, 12] [38, 2, 46, 35, 7, 44, 1, 49, 45, 27, 57, 0, 19, 61, 59, 11, 16, 18, 51, 8, 60, 9, 12, 15, 23, 6, 40, 22, 14, 30, 50, 31] [6, 7, 8, 12, 16, 19, 22, 23, 27, 35, 40, 44, 51]
68 66 [28, 39, 33, 2, 21, 53, 14, 12, 18, 7, 45, 43, 37, 60, 54, 42, 11, 38, 23, 9, 50, 26, 22, 62, 15, 5, 8, 0, 20, 13, 56, 30] [51, 18, 47, 54, 4, 60, 48, 62, 61, 56, 50, 40, 14, 28, 39, 2, 25, 9, 0, 7, 13, 32, 33, 35, 30, 11, 8, 20, 23, 49, 12, 22] [0, 2, 7, 8, 9, 11, 12, 13, 14, 18, 20, 22, 23, 28, 30, 33, 39, 50, 54, 56, 60, 62]
69 67 [56, 61, 32, 49, 34, 25, 16, 14, 0, 28, 10, 55, 46, 53, 27, 52, 39, 37, 63, 6, 43, 21, 19, 30, 29, 50, 41, 8, 31, 18, 33, 40] [22, 51, 50, 8, 32, 45, 6, 38, 34, 3, 10, 43, 54, 37, 1, 13, 61, 55, 47, 5, 20, 23, 9, 11, 58, 59, 48, 27, 17, 42, 31, 25] [6, 8, 10, 25, 27, 31, 32, 34, 37, 43, 50, 55, 61]
70 68 [32, 56, 63, 19, 46, 60, 23, 2, 62, 44, 53, 51, 49, 54, 33, 4, 31, 6, 47, 34, 61, 21, 12, 26, 55, 5, 27, 29, 15, 45, 52, 38] [49, 8, 24, 36, 0, 3, 33, 51, 16, 11, 43, 40, 2, 29, 41, 38, 7, 39, 17, 55, 18, 62, 25, 20, 48, 14, 10, 13, 30, 22, 19, 50] [2, 19, 29, 33, 38, 49, 51, 55, 62]
71 69 [10, 62, 7, 61, 52, 43, 6, 14, 42, 13, 23, 30, 11, 22, 3, 8, 21, 63, 1, 34, 35, 4, 19, 36, 27, 26, 33, 28, 29, 59, 60, 16] [31, 63, 8, 6, 32, 52, 48, 30, 53, 49, 5, 26, 2, 14, 47, 43, 51, 18, 44, 33, 55, 4, 20, 17, 42, 7, 15, 10, 24, 3, 59, 39] [3, 4, 6, 7, 8, 10, 14, 26, 30, 33, 42, 43, 52, 59, 63]
72 70 [9, 22, 57, 5, 0, 10, 56, 20, 8, 23, 4, 3, 58, 50, 38, 18, 1, 14, 17, 40, 21, 11, 48, 36, 27, 31, 2, 30, 34, 37, 49, 7] [41, 36, 45, 4, 6, 42, 30, 10, 33, 54, 44, 47, 18, 40, 27, 9, 2, 21, 49, 60, 34, 1, 5, 23, 50, 46, 57, 32, 22, 26, 7, 11] [1, 2, 4, 5, 7, 9, 10, 11, 18, 21, 22, 23, 27, 30, 34, 36, 40, 49, 50, 57]
73 71 [57, 29, 41, 52, 62, 54, 6, 11, 36, 0, 44, 9, 35, 59, 63, 32, 47, 49, 38, 34, 8, 53, 18, 13, 27, 60, 3, 10, 19, 61, 25, 28] [10, 62, 39, 11, 16, 28, 14, 37, 23, 8, 17, 25, 58, 45, 7, 56, 36, 61, 48, 12, 13, 4, 33, 55, 27, 42, 20, 46, 32, 31, 43, 21] [8, 10, 11, 13, 25, 27, 28, 32, 36, 61, 62]
74 72 [63, 8, 51, 13, 28, 52, 10, 41, 46, 34, 14, 9, 20, 39, 11, 25, 7, 21, 59, 5, 56, 23, 43, 47, 27, 35, 54, 30, 16, 37, 57, 2] [19, 18, 24, 37, 58, 17, 9, 13, 2, 50, 16, 63, 3, 39, 53, 4, 35, 49, 22, 42, 45, 43, 20, 14, 47, 32, 12, 52, 26, 56, 11, 29] [2, 9, 11, 13, 14, 16, 20, 35, 37, 39, 43, 47, 52, 56, 63]
75 73 [56, 35, 29, 20, 24, 27, 31, 12, 2, 4, 33, 11, 60, 16, 7, 8, 58, 63, 46, 49, 36, 52, 53, 41, 30, 32, 51, 47, 62, 21, 15, 0] [51, 26, 31, 25, 47, 60, 49, 45, 9, 34, 61, 33, 38, 44, 53, 59, 3, 14, 48, 8, 22, 4, 19, 55, 6, 43, 37, 5, 50, 27, 40, 17] [4, 8, 27, 31, 33, 47, 49, 51, 53, 60]
76 74 [17, 33, 36, 34, 27, 54, 37, 29, 38, 57, 21, 40, 43, 20, 48, 10, 41, 28, 22, 4, 32, 30, 31, 59, 47, 23, 14, 5, 1, 42, 50, 44] [13, 23, 10, 14, 51, 12, 21, 40, 32, 3, 29, 56, 33, 50, 37, 22, 63, 47, 24, 38, 35, 43, 5, 26, 16, 27, 31, 1, 49, 46, 8, 52] [1, 5, 10, 14, 21, 22, 23, 27, 29, 31, 32, 33, 37, 38, 40, 43, 47, 50]
77 75 [57, 37, 60, 46, 20, 41, 33, 42, 26, 55, 39, 4, 36, 10, 32, 31, 58, 9, 3, 59, 22, 2, 34, 17, 0, 61, 16, 53, 12, 25, 50, 23] [54, 19, 15, 49, 33, 31, 8, 28, 17, 38, 27, 55, 14, 4, 45, 6, 9, 60, 10, 24, 61, 63, 13, 47, 46, 2, 20, 36, 48, 7, 53, 23] [2, 4, 9, 10, 17, 20, 23, 31, 33, 36, 46, 53, 55, 60, 61]
78 76 [20, 56, 53, 3, 34, 4, 2, 6, 27, 15, 63, 23, 55, 39, 14, 36, 42, 25, 35, 38, 43, 1, 37, 51, 16, 29, 31, 47, 26, 28, 10, 45] [33, 19, 20, 42, 10, 11, 48, 4, 47, 26, 9, 37, 55, 30, 58, 8, 41, 46, 59, 50, 34, 43, 18, 5, 62, 49, 23, 21, 61, 57, 51, 15] [4, 10, 15, 20, 23, 26, 34, 37, 42, 43, 47, 51, 55]
79 77 [23, 14, 10, 28, 7, 25, 2, 0, 29, 1, 35, 8, 54, 58, 51, 24, 21, 41, 3, 38, 44, 45, 39, 5, 53, 55, 17, 48, 6, 20, 18, 34] [2, 53, 46, 41, 62, 43, 12, 63, 10, 32, 22, 59, 51, 13, 25, 23, 14, 36, 16, 11, 58, 57, 9, 61, 42, 47, 37, 50, 33, 3, 6, 15] [2, 3, 6, 10, 14, 23, 25, 41, 51, 53, 58]
80 78 [41, 50, 43, 38, 1, 44, 15, 61, 23, 26, 19, 9, 6, 31, 54, 18, 56, 10, 16, 29, 42, 39, 11, 12, 60, 52, 45, 63, 0, 30, 20, 53] [58, 44, 4, 38, 11, 39, 60, 59, 22, 46, 50, 7, 15, 13, 8, 36, 5, 26, 28, 10, 53, 1, 23, 20, 43, 61, 51, 40, 57, 9, 54, 14] [1, 9, 10, 11, 15, 20, 23, 26, 38, 39, 43, 44, 50, 53, 54, 60, 61]
81 79 [33, 36, 54, 26, 59, 28, 0, 10, 1, 63, 45, 11, 53, 56, 6, 4, 27, 40, 39, 61, 55, 18, 3, 48, 9, 22, 2, 34, 15, 16, 60, 42] [54, 63, 16, 12, 53, 27, 34, 8, 1, 41, 36, 52, 58, 24, 59, 23, 30, 6, 44, 32, 37, 48, 3, 42, 9, 45, 51, 14, 22, 61, 50, 4] [1, 3, 4, 6, 9, 16, 22, 27, 34, 36, 42, 45, 48, 53, 54, 59, 61, 63]
82 80 [50, 47, 26, 38, 60, 19, 14, 61, 55, 2, 31, 9, 29, 11, 62, 58, 5, 24, 25, 17, 13, 53, 37, 1, 34, 6, 43, 54, 33, 12, 41, 7] [16, 62, 31, 60, 50, 29, 10, 20, 39, 2, 42, 14, 22, 1, 13, 59, 0, 26, 11, 34, 19, 6, 7, 54, 8, 38, 33, 61, 17, 25, 58, 47] [1, 2, 6, 7, 11, 13, 14, 17, 19, 25, 26, 29, 31, 33, 34, 38, 47, 50, 54, 58, 60, 61, 62]
83 81 [61, 3, 10, 49, 21, 43, 46, 18, 16, 57, 4, 2, 19, 14, 34, 62, 26, 25, 1, 5, 6, 52, 63, 13, 36, 7, 45, 39, 48, 15, 54, 33] [47, 48, 6, 16, 31, 13, 56, 17, 21, 55, 36, 40, 35, 2, 50, 3, 53, 38, 51, 23, 12, 11, 24, 34, 15, 46, 45, 8, 1, 20, 22, 39] [1, 2, 3, 6, 13, 15, 16, 21, 34, 36, 39, 45, 46, 48]
84 82 [30, 47, 32, 19, 28, 45, 23, 13, 37, 0, 40, 16, 14, 26, 5, 43, 12, 41, 3, 6, 53, 51, 63, 24, 7, 61, 20, 22, 39, 11, 33, 34] [9, 38, 46, 16, 6, 21, 39, 51, 1, 54, 13, 18, 57, 58, 8, 48, 29, 10, 31, 44, 17, 28, 27, 45, 34, 47, 60, 4, 5, 42, 15, 50] [5, 6, 13, 16, 28, 34, 39, 45, 47, 51]
85 83 [18, 15, 28, 52, 23, 43, 45, 19, 34, 37, 21, 8, 27, 14, 2, 4, 47, 42, 16, 17, 60, 29, 39, 0, 58, 5, 46, 33, 12, 32, 55, 10] [51, 27, 18, 40, 45, 32, 60, 0, 53, 4, 23, 28, 10, 15, 29, 17, 24, 2, 5, 34, 21, 22, 52, 11, 12, 50, 44, 9, 3, 42, 39, 48] [0, 2, 4, 5, 10, 12, 15, 17, 18, 21, 23, 27, 28, 29, 32, 34, 39, 42, 45, 52, 60]
86 84 [16, 49, 22, 56, 0, 53, 12, 26, 9, 51, 20, 14, 38, 29, 36, 13, 19, 40, 6, 44, 48, 43, 32, 15, 42, 62, 39, 52, 23, 7, 60, 50] [45, 50, 38, 19, 63, 9, 26, 20, 31, 4, 62, 54, 29, 61, 47, 16, 18, 10, 52, 39, 35, 17, 23, 56, 51, 14, 27, 49, 40, 30, 58, 15] [9, 14, 15, 16, 19, 20, 23, 26, 29, 38, 39, 40, 49, 50, 51, 52, 56, 62]
87 85 [41, 56, 11, 28, 36, 57, 6, 23, 49, 29, 20, 5, 63, 39, 58, 51, 42, 37, 18, 0, 19, 31, 47, 10, 32, 48, 38, 7, 13, 44, 45, 8] [29, 5, 60, 63, 11, 12, 43, 20, 42, 30, 21, 3, 6, 49, 58, 17, 36, 15, 1, 44, 24, 41, 59, 51, 53, 32, 38, 56, 37, 57, 23, 33] [5, 6, 11, 20, 23, 29, 32, 36, 37, 38, 41, 42, 44, 49, 51, 56, 57, 58, 63]
88 86 [19, 38, 45, 33, 6, 24, 36, 10, 29, 30, 21, 9, 59, 25, 32, 11, 4, 2, 5, 57, 20, 40, 35, 55, 15, 1, 34, 44, 3, 8, 23, 18] [37, 42, 17, 16, 6, 55, 43, 0, 56, 53, 31, 14, 21, 44, 26, 61, 49, 25, 12, 27, 28, 18, 32, 51, 13, 50, 52, 19, 54, 58, 30, 48] [6, 18, 19, 21, 25, 30, 32, 44, 55]
89 87 [28, 38, 31, 55, 61, 37, 62, 60, 25, 6, 41, 15, 9, 4, 18, 7, 12, 49, 24, 0, 23, 46, 44, 3, 30, 59, 5, 8, 2, 34, 13, 11] [22, 34, 53, 40, 60, 36, 27, 43, 1, 10, 17, 15, 25, 51, 48, 57, 13, 33, 54, 7, 30, 16, 38, 29, 26, 0, 44, 14, 12, 19, 42, 31] [0, 7, 12, 13, 15, 25, 30, 31, 34, 38, 44, 60]
90 88 [60, 43, 34, 28, 48, 25, 29, 15, 16, 46, 26, 54, 4, 38, 11, 61, 39, 20, 17, 50, 27, 2, 49, 14, 36, 24, 5, 53, 41, 55, 10, 3] [56, 48, 63, 6, 54, 38, 21, 42, 39, 47, 20, 11, 49, 14, 28, 46, 53, 61, 23, 9, 24, 34, 10, 43, 0, 52, 5, 29, 44, 59, 27, 16] [5, 10, 11, 14, 16, 20, 24, 27, 28, 29, 34, 38, 39, 43, 46, 48, 49, 53, 54, 61]
91 89 [24, 23, 8, 45, 17, 37, 35, 10, 58, 57, 3, 61, 18, 29, 15, 4, 13, 43, 5, 19, 26, 49, 0, 1, 27, 39, 6, 20, 16, 50, 14, 34] [38, 63, 5, 49, 47, 18, 39, 60, 29, 26, 44, 3, 0, 10, 52, 61, 14, 4, 15, 35, 59, 8, 57, 50, 54, 20, 28, 24, 16, 1, 55, 25] [0, 1, 3, 4, 5, 8, 10, 14, 15, 16, 18, 20, 24, 26, 29, 35, 39, 49, 50, 57, 61]
92 90 [21, 35, 6, 49, 16, 39, 20, 27, 28, 57, 13, 29, 32, 61, 33, 46, 60, 38, 54, 45, 19, 59, 43, 36, 51, 31, 24, 4, 52, 50, 9, 63] [13, 2, 42, 49, 59, 5, 27, 53, 33, 44, 16, 25, 15, 48, 52, 11, 47, 32, 7, 56, 17, 10, 14, 43, 24, 31, 0, 37, 51, 4, 30, 19] [4, 13, 16, 19, 24, 27, 31, 32, 33, 43, 49, 51, 52, 59]
93 91 [38, 36, 34, 17, 18, 46, 20, 3, 15, 57, 23, 42, 4, 25, 2, 7, 55, 24, 19, 51, 52, 31, 21, 28, 16, 62, 9, 12, 27, 13, 48, 1] [52, 28, 54, 22, 51, 18, 19, 8, 26, 43, 55, 4, 21, 35, 1, 37, 46, 9, 44, 39, 0, 23, 15, 42, 57, 25, 27, 49, 34, 17, 13, 11] [1, 4, 9, 13, 15, 17, 18, 19, 21, 23, 25, 27, 28, 34, 42, 46, 51, 52, 55, 57]
94 92 [59, 17, 41, 57, 60, 46, 5, 52, 20, 38, 28, 45, 50, 58, 22, 54, 36, 56, 47, 32, 27, 3, 1, 10, 53, 24, 31, 23, 49, 6, 35, 0] [59, 41, 20, 24, 53, 19, 46, 5, 35, 31, 38, 37, 36, 0, 52, 16, 2, 45, 17, 33, 21, 57, 50, 61, 56, 11, 8, 29, 18, 54, 10, 47] [0, 5, 10, 17, 20, 24, 31, 35, 36, 38, 41, 45, 46, 47, 50, 52, 53, 54, 56, 57, 59]
95 93 [11, 52, 33, 43, 9, 23, 21, 61, 10, 49, 20, 15, 58, 63, 62, 16, 45, 2, 37, 28, 35, 34, 31, 24, 3, 44, 29, 30, 19, 8, 32, 38] [49, 29, 32, 0, 20, 53, 39, 26, 44, 23, 6, 35, 10, 15, 57, 7, 61, 56, 60, 17, 4, 42, 18, 55, 46, 28, 21, 41, 24, 33, 13, 47] [10, 15, 20, 21, 23, 24, 28, 29, 32, 33, 35, 44, 49, 61]
96 94 [8, 3, 10, 61, 33, 57, 38, 37, 20, 0, 35, 40, 58, 19, 25, 4, 24, 22, 13, 56, 45, 16, 27, 51, 46, 29, 59, 34, 15, 31, 44, 39] [58, 55, 44, 60, 31, 8, 40, 18, 13, 26, 7, 61, 38, 19, 37, 51, 57, 53, 29, 4, 50, 46, 35, 33, 39, 5, 45, 24, 36, 34, 3, 63] [3, 4, 8, 13, 19, 24, 29, 31, 33, 34, 35, 37, 38, 39, 40, 44, 45, 46, 51, 57, 58, 61]
97 95 [12, 23, 31, 47, 17, 22, 27, 29, 16, 37, 0, 7, 4, 50, 39, 45, 46, 19, 20, 3, 30, 41, 62, 60, 8, 18, 35, 56, 11, 32, 14, 24] [16, 13, 5, 49, 42, 12, 40, 34, 23, 48, 36, 51, 18, 7, 62, 31, 19, 61, 25, 58, 53, 54, 60, 17, 46, 59, 41, 52, 10, 33, 63, 26] [7, 12, 16, 17, 18, 19, 23, 31, 41, 46, 60, 62]
98 96 [22, 41, 48, 14, 11, 34, 2, 16, 3, 6, 21, 56, 61, 29, 19, 52, 18, 38, 49, 15, 12, 43, 62, 50, 63, 46, 55, 28, 0, 30, 51, 27] [5, 2, 11, 26, 30, 40, 49, 47, 62, 54, 4, 17, 60, 44, 61, 28, 18, 35, 39, 24, 37, 57, 8, 7, 20, 45, 10, 12, 25, 3, 38, 36] [2, 3, 11, 12, 18, 28, 30, 38, 49, 61, 62]
99 97 [2, 62, 8, 22, 15, 60, 59, 14, 0, 10, 33, 34, 50, 4, 19, 31, 58, 1, 16, 53, 17, 24, 27, 18, 32, 11, 51, 43, 54, 42, 28, 39] [57, 54, 13, 47, 2, 15, 7, 58, 43, 16, 22, 0, 36, 35, 23, 38, 21, 55, 33, 19, 46, 8, 29, 42, 60, 27, 32, 53, 49, 31, 9, 28] [0, 2, 8, 15, 16, 19, 22, 27, 28, 31, 32, 33, 42, 43, 53, 54, 58, 60]
100 98 [62, 54, 43, 14, 61, 0, 42, 40, 15, 12, 50, 30, 29, 47, 37, 27, 20, 33, 7, 38, 2, 5, 53, 60, 11, 16, 35, 25, 6, 21, 55, 17] [38, 7, 54, 31, 47, 28, 34, 8, 12, 20, 3, 63, 0, 52, 36, 55, 60, 25, 17, 15, 13, 46, 33, 56, 26, 11, 14, 16, 40, 4, 37, 45] [0, 7, 11, 12, 14, 15, 16, 17, 20, 25, 33, 37, 38, 40, 47, 54, 55, 60]
101 99 [2, 41, 3, 17, 26, 4, 9, 58, 7, 42, 49, 21, 55, 40, 53, 8, 50, 18, 29, 0, 13, 44, 63, 5, 39, 48, 24, 36, 47, 54, 19, 38] [10, 45, 1, 18, 8, 0, 16, 15, 55, 39, 25, 6, 61, 14, 3, 34, 49, 51, 43, 46, 36, 33, 28, 57, 52, 12, 9, 35, 23, 42, 11, 31] [0, 3, 8, 9, 18, 36, 39, 42, 49, 55]
@@ -0,0 +1,730 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# The source code is adapted from the sorting source code written by
# Nils Blach.
#
# main author: Robert Gerstenberger
import os
import logging
import datetime
import json
import csv
from typing import Dict, List, Callable, Union
from graph_of_thoughts import controller, operations, prompter, parser
from . import utils
class SetIntersectionPrompter(prompter.Prompter):
"""
SetIntersectionPrompter provides the generation of prompts specific to the
set intersection example for the language models.
Inherits from the Prompter class and implements its abstract methods.
"""
intersection_prompt = """<Instruction> Find the intersection of two sets of numbers. Output only the set of numbers that are present in both sets, no additional text. </Instruction>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Output: [40, 15, 5, 24, 35, 59, 16, 63]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Output: [115, 35, 90, 117, 63, 40, 30, 33, 15, 89, 50, 12, 2, 84, 7, 57, 96]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
intersection_prompt_cot = """<Instruction> Find the intersection of two sets of numbers. You can generate any intermediate solutions, but the final output should be the set of numbers that are present in both sets, prefixed with "Output: ". </Instruction>
<Approach>
To find the intersection of the two sets follow these steps:
1. Split the second input set of numbers into two to four subsets, each containing an equal number of elements from the original set (make sure they don't overlap).
2. For each subset find the set of numbers that are present in the subset and the first input set.
3. Merge the resulting sets into a single output set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Subsets of Input Set 2:
[25, 24, 10, 4, 27, 0, 14, 12]
[8, 2, 29, 20, 17, 19, 26, 23]
Intersected Subsets with Input Set 1:
[24, 10]
[8, 20]
Output: [24, 10, 8, 20]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Subsets of Input Set 2:
[16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53]
[58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Intersected Subsets with Input Set 1:
[16, 15, 5, 24]
[35, 63, 40, 59]
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Subsets of Input Set 2:
[13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122]
[85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12]
[65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81]
[124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Intersected Subsets with Input Set 1:
[35, 96]
[15, 33, 57, 30, 89, 12]
[84, 40, 7, 50, 90]
[63, 117, 115, 2]
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
tot_improve_prompt = """<Instruction> The following three sets represent two sets and an intersection set of those two sets. The intersection set is not correct. Fix the intersection set so that it is correct.
Make sure that the numbers in the intersection set can be found in both input sets. </Instruction>
<Approach>
To fix the incorrectly intersection set follow these steps:
1. Check for each number in the incorrect intersection set, whether it can be found in both input sets. If not, remove that number from the intersection set.
2. Iterate through the second input set and check whether each number is already in the incorrect intersection set and if not, check whether that number can also be found in the first input set. If so, add that number to the intersection set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Incorrect Intersection Set: [24, 20, 25]
Reason: The incorrect intersection set contains the number 25, which is not present in the first input set and is missing the numbers 10 and 8.
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Incorrect Intersection Set: [57, 16, 15, 24, 35, 10, 40]
Reason: The incorrect intersection set contains the numbers 57, which is not present in the second input set, and 10, which is not present in the first input set, and is missing the numbers 5, 63 and 59.
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Incorrect Intersection Set: [35, 96, 44, 15, 33, 57, 30, 50, 90, 119, 123, 63, 117, 115, 2]
Reason: The incorrect intersection set contains the numbers 44 and 119, which are not present in the second input set, and 123, which is not present in the first input set, and is missing the numbers 89, 12, 84, 40 and 7.
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}
Incorrect Intersection Set: {incorrect_intersection}
"""
got_split_prompt = """<Instruction> Split the following list of 32 numbers into 2 lists of 16 numbers each, the first list should contain the first 16 numbers and the second list the second 16 numbers.
Only output the 2 lists in the following format without any additional text or thoughts!:
{{
"List 1": [13, 16, 30, 6, 21, 7, 31, ...],
"List 2": [25, 24, 10, 4, 27, 0, 14, ...]
}} </Instruction>
<Example>
Input: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Output:
{{
"List 1": [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22],
"List 2": [33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
}}
</Example>
Input: {input}"""
got_merge_prompt = """<Instruction> Merge the following 2 lists of length {length1} each, into one list of length {length2} by appending the second list to the first list.
Only output the final list without any additional text or thoughts! </Instruction>
List 1: {input1}
List 2: {input2}
"""
def aggregation_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate an aggregation prompt for the language model.
:param state_dicts: The thought states that should be aggregated.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The aggregation prompt.
:rtype: str
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(state_dicts) == 2, "Expected two states for aggregation prompt."
len_input1 = len(utils.string_to_list(state_dicts[0]["current"]))
len_input2 = len(utils.string_to_list(state_dicts[1]["current"]))
if len_input1 == len_input2:
length = len_input1
elif len_input1 + len_input2 - 32 <= 16:
length = 16
else:
length = 32
return self.got_merge_prompt.format(
input1=state_dicts[0]["current"],
input2=state_dicts[1]["current"],
length1=length,
length2=length * 2,
)
def generate_prompt(
self,
num_branches: int,
set1: str,
set2: str,
current: str,
method: str,
**kwargs,
) -> str:
"""
Generate a generate prompt for the language model.
:param num_branches: The number of responses the prompt should ask the LM to generate.
:type num_branches: int
:param set1: First input set.
:type set1: str
:param set2: Second input set.
:type set2: str
:param current: Intermediate solution.
:type current: str
:param method: Method for which the generate prompt is generated.
:type method: str
:param kwargs: Additional keyword arguments.
:return: The generate prompt.
:rtype: str
:raise AssertionError: If the requested number of branches is not one.
"""
assert num_branches == 1, "Branching should be done via multiple requests."
if method.startswith("io"):
return self.intersection_prompt.format(set1=set1, set2=set2)
elif method.startswith("cot"):
return self.intersection_prompt_cot.format(set1=set1, set2=set2)
elif method.startswith("tot"):
if current is None or current == "":
return self.intersection_prompt.format(set1=set1, set2=set2)
return self.tot_improve_prompt.format(
set1=set1, set2=set2, incorrect_intersection=current
)
elif method.startswith("got"):
if kwargs["phase"] == 0:
return self.got_split_prompt.format(input=set2)
input_set = set2
if "subset" in kwargs and kwargs["subset"] != "":
input_set = kwargs["subset"]
return self.intersection_prompt.format(set1=set1, set2=input_set)
def improve_prompt(self, **kwargs) -> str:
"""
Generate an improve prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The improve prompt.
:rtype: str
"""
pass
def validation_prompt(self, **kwargs) -> str:
"""
Generate a validation prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The validation prompt.
:rtype: str
"""
pass
def score_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate a score prompt for the language model.
:param state_dicts: The thought states that should be scored,
if more than one, they should be scored together.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The score prompt.
:rtype: str
"""
pass
class SetIntersectionParser(parser.Parser):
"""
SetIntersectionParser provides the parsing of language model reponses
specific to the set intersection example.
Inherits from the Parser class and implements its abstract methods.
"""
def __init__(self) -> None:
"""
Inits the response cache.
"""
self.cache = {}
def parse_aggregation_answer(
self, states: List[Dict], texts: List[str]
) -> Union[Dict, List[Dict]]:
"""
Parse the response from the language model for an aggregation prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: Union[Dict, List[Dict]]
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(states) == 2, "Expected two states for aggregation answer."
new_states = []
for text in texts:
answers = text.strip().split("\n")
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers_stripped = [
answer for answer in answers if "[" in answer and "]" in answer
]
if len(answers_stripped) == 0:
for answer in answers:
answer = "[" + answer + "]"
try:
answer_converted = utils.string_to_list(answer)
if len(answer_converted) > 0:
answers_stripped.append(answer)
except:
pass
if len(answers_stripped) == 0:
logging.warning(
f"Could not parse aggregation answer: {text}. Returning empty list."
)
answer = "[]"
else:
answer = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers_stripped
][0]
states = sorted(states, key=lambda x: x["part"])
merged_subsets = states[0]["subset"][:-1] + ", " + states[1]["subset"][1:]
new_state = states[0].copy()
new_state["current"] = answer
new_state["subset"] = merged_subsets
new_states.append(new_state)
return new_states
def parse_improve_answer(self, state: Dict, texts: List[str]) -> Dict:
"""
Parse the response from the language model for an improve prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought state after parsing the responses from the language model.
:rtype: Dict
"""
pass
def parse_generate_answer(self, state: Dict, texts: List[str]) -> List[Dict]:
"""
Parse the response from the language model for a generate prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: List[Dict]
"""
new_states = []
for text in texts:
if state["method"].startswith("got") and state["phase"] == 0:
# We expect a json which contains the two lists named "List 1" and "List 2"
# cut everything until the opening bracket and everything after the closing bracket
try:
text = text[text.index("{") : text.index("}") + 1]
json_dict = json.loads(text)
if len(json_dict.keys()) != 2:
logging.warning(
f"Expected 2 lists in json, but found {len(json_dict.keys())}."
)
for key, value in json_dict.items():
if "List" not in key:
logging.warning(
f"Expected key to contain 'List', but found {key}."
)
continue
if not isinstance(value, list):
value = utils.string_to_list(value)
new_state = state.copy()
new_state["current"] = ""
new_state["subset"] = str(value)
new_state["phase"] = 1
new_state["part"] = key
new_states.append(new_state)
except Exception as e:
logging.error(
f"Could not parse step answer: {text}. Encountered exception: {e}"
)
else:
answers = text.strip().split("\n")
answers = [
answer for answer in answers if "[" in answer and "]" in answer
]
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers
]
if len(answers) == 0:
logging.warning(
f"Could not parse step answer: {text}. Returning empty list."
)
answer = "[]"
else:
if len(answers) > 1:
logging.warning(
f"Multiple answers found for step answer: {text}. Using the first one."
)
answer = answers[0]
new_state = state.copy()
new_state["current"] = answer
new_state["phase"] = 2
new_states.append(new_state)
return new_states
def parse_validation_answer(self, state: Dict, texts: List[str]) -> bool:
"""
Parse the response from the language model for a validation prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: Whether the thought state is valid or not.
:rtype: bool
"""
pass
def parse_score_answer(self, states: List[Dict], texts: List[str]) -> List[float]:
"""
Parse the response from the language model for a score prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The scores for the thought states.
:rtype: List[float]
"""
pass
def io() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the IO method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def cot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the CoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT method.
ToT uses a wider tree, where on each level there are more branches.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 20))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(1):
operations_graph.append_operation(operations.Generate(1, 20))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot2() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT2 method.
ToT2 uses a tree with more levels, but with fewer branches per level.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(2):
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def got() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the GoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
plans = operations.Generate(1, 1)
operations_graph.append_operation(plans) # generate the sublists
for i in range(1, 3):
list_id = f"List {i}"
sub_list = operations.Selector(
lambda thoughts, list_id=list_id: [
thought for thought in thoughts if thought.state["part"] == list_id
]
)
sub_list.add_predecessor(plans)
operations_graph.add_operation(sub_list)
intersected_subset = operations.Generate(1, 5)
intersected_subset.add_predecessor(sub_list)
operations_graph.add_operation(intersected_subset)
score_sub_list = operations.Score(1, False, utils.num_errors)
score_sub_list.add_predecessor(intersected_subset)
operations_graph.add_operation(score_sub_list)
keep_best_sub_list = operations.KeepBestN(1, False)
keep_best_sub_list.add_predecessor(score_sub_list)
operations_graph.add_operation(keep_best_sub_list)
final_aggregate = operations.Aggregate(10)
operations_graph.append_operation(final_aggregate)
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
keep_best_aggregate_final = operations.KeepBestN(1, False)
operations_graph.append_operation(keep_best_aggregate_final)
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def run(
data_ids: List[int],
methods: List[Callable[[], operations.GraphOfOperations]],
budget: float,
lm_name: str,
) -> float:
"""
Controller function that executes each specified method for each specified
sample while the budget is not exhausted.
:param data_ids: Indices of the sample to be run.
:type data_ids: List[int]
:param methods: List of functions to generate Graphs of Operations.
:type methods: Each function generates a Graph of Operation.
:param budget: Language model budget for the execution in dollars.
:type budget: float
:param lm_name: Name of the language model to be used.
:type lm_name: str
:return: Spent budget in dollars.
:rtype: float
"""
orig_budget = budget
path = os.path.join(os.path.dirname(__file__), "set_intersection_032.csv")
data = []
with open(path, "r") as f:
reader = csv.reader(f)
next(reader)
for row in reader:
data.append([int(row[0]), row[1], row[2], row[3]])
if data_ids is None or len(data_ids) == 0:
data_ids = list(range(len(data)))
selected_data = [data[i] for i in data_ids]
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
folder_name = f"results/{extra_info}_{timestamp}"
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
config = {
"data": selected_data,
"methods": [method.__name__ for method in methods],
"lm": lm_name,
"budget": budget,
}
with open(
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
) as f:
json.dump(config, f)
logging.basicConfig(
filename=f"{folder_name}/log.log",
filemode="w",
format="%(name)s - %(levelname)s - %(message)s",
level=logging.DEBUG,
)
for method in methods:
# create a results directory for the method
os.makedirs(
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
)
for data in selected_data:
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Data {data[0]} has not been run."
)
break
for method in methods:
logging.info(f"Running method {method.__name__}")
logging.info(f"Budget left: {budget}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Method {method.__name__} has not been run."
)
break
lm = controller.ChatGPT(
"../../graph_of_thoughts/controller/config.json",
model_name=lm_name,
cache=True,
)
operations_graph = method()
executor = controller.Controller(
lm,
operations_graph,
SetIntersectionPrompter(),
SetIntersectionParser(),
{
"set1": data[1],
"set2": data[2],
"result": data[3],
"current": "",
"phase": 0,
"method": method.__name__,
},
)
try:
executor.run()
except Exception as e:
logging.error(f"Exception: {e}")
path = os.path.join(
os.path.dirname(__file__),
folder_name,
method.__name__,
f"{data[0]}.json",
)
executor.output_graph(path)
budget -= lm.cost
return orig_budget - budget
if __name__ == "__main__":
"""
Input(x) : a list of 32 numbers between 0 and 63 (inclusive)
Input(y) : a list of 32 numbers between 0 and 63 (inclusive)
Output(z) : a list of the intersection between x and y
Correct : z = intersection(x, y)
Input Example:
[13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
[25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Output Example:
[24, 10, 20, 8]
"""
budget = 15
samples = [item for item in range(0, 100)]
approaches = [io, cot, tot, tot2, got]
spent = run(samples, approaches, budget, "chatgpt")
logging.info(f"Spent {spent} out of {budget} budget.")
@@ -0,0 +1,101 @@
ID,SET1,SET2,INTERSECTION
0,"[42, 73, 86, 39, 85, 77, 69, 59, 43, 127, 121, 88, 109, 53, 70, 66, 25, 51, 34, 78, 45, 11, 40, 99, 68, 47, 49, 41, 101, 31, 24, 84, 36, 29, 118, 75, 3, 27, 30, 80, 125, 8, 37, 46, 90, 21, 60, 83, 19, 6, 95, 117, 87, 18, 100, 13, 22, 10, 110, 102, 35, 81, 17, 63]","[34, 49, 116, 106, 112, 23, 5, 80, 18, 62, 90, 54, 32, 103, 37, 43, 9, 25, 92, 16, 111, 79, 64, 91, 107, 58, 72, 94, 7, 60, 33, 14, 19, 104, 28, 74, 96, 76, 38, 52, 114, 50, 17, 0, 3, 100, 69, 98, 2, 1, 99, 12, 95, 97, 123, 4, 126, 124, 82, 27, 67, 57, 115, 46]","[3, 17, 18, 19, 25, 27, 34, 37, 43, 46, 49, 60, 69, 80, 90, 95, 99, 100]"
1,"[50, 23, 70, 14, 54, 85, 106, 108, 6, 113, 79, 48, 99, 112, 28, 69, 0, 19, 64, 37, 90, 4, 15, 30, 94, 109, 96, 87, 71, 43, 21, 117, 8, 63, 35, 66, 83, 40, 119, 26, 46, 5, 53, 62, 12, 126, 116, 100, 111, 29, 97, 27, 25, 36, 82, 42, 127, 11, 56, 121, 59, 52, 124, 2]","[112, 74, 109, 56, 57, 5, 43, 126, 61, 95, 60, 79, 21, 20, 100, 85, 66, 84, 19, 37, 67, 15, 75, 30, 106, 70, 11, 121, 55, 28, 34, 76, 62, 6, 53, 97, 69, 80, 114, 39, 82, 27, 26, 14, 23, 77, 65, 40, 108, 2, 50, 118, 59, 41, 54, 45, 0, 42, 110, 94, 92, 38, 91, 4]","[0, 2, 4, 5, 6, 11, 14, 15, 19, 21, 23, 26, 27, 28, 30, 37, 40, 42, 43, 50, 53, 54, 56, 59, 62, 66, 69, 70, 79, 82, 85, 94, 97, 100, 106, 108, 109, 112, 121, 126]"
2,"[91, 23, 41, 37, 31, 22, 50, 35, 111, 115, 77, 55, 2, 97, 68, 85, 122, 62, 110, 87, 27, 113, 96, 81, 117, 18, 83, 71, 34, 64, 32, 92, 116, 3, 1, 10, 106, 42, 30, 86, 121, 52, 108, 84, 102, 8, 100, 125, 16, 39, 58, 29, 24, 38, 15, 17, 6, 40, 9, 94, 51, 61, 54, 65]","[41, 50, 8, 115, 51, 91, 29, 104, 6, 85, 21, 5, 42, 58, 36, 93, 89, 113, 1, 46, 119, 90, 55, 123, 98, 84, 34, 71, 117, 94, 53, 65, 26, 86, 28, 44, 33, 37, 95, 22, 87, 63, 100, 17, 81, 68, 72, 39, 127, 2, 74, 30, 76, 111, 66, 106, 107, 4, 73, 121, 0, 67, 9, 10]","[1, 2, 6, 8, 9, 10, 17, 22, 29, 30, 34, 37, 39, 41, 42, 50, 51, 55, 58, 65, 68, 71, 81, 84, 85, 86, 87, 91, 94, 100, 106, 111, 113, 115, 117, 121]"
3,"[12, 43, 39, 18, 95, 36, 51, 26, 30, 100, 85, 29, 75, 32, 79, 57, 101, 34, 108, 10, 23, 106, 16, 9, 7, 72, 82, 68, 105, 0, 37, 65, 64, 67, 62, 25, 13, 66, 77, 33, 121, 15, 122, 17, 3, 8, 45, 1, 70, 119, 76, 69, 92, 5, 2, 28, 110, 20, 102, 6, 93, 44, 98, 103]","[83, 118, 32, 94, 115, 39, 91, 74, 34, 70, 79, 76, 61, 126, 106, 31, 25, 11, 123, 5, 40, 58, 78, 24, 101, 82, 4, 109, 71, 86, 17, 29, 37, 92, 73, 66, 50, 111, 95, 30, 124, 116, 62, 0, 84, 108, 63, 104, 107, 38, 27, 18, 33, 9, 49, 64, 26, 13, 42, 35, 20, 43, 77, 127]","[0, 5, 9, 13, 17, 18, 20, 25, 26, 29, 30, 32, 33, 34, 37, 39, 43, 62, 64, 66, 70, 76, 77, 79, 82, 92, 95, 101, 106, 108]"
4,"[20, 116, 36, 54, 27, 67, 105, 51, 43, 57, 55, 44, 113, 38, 114, 64, 63, 37, 92, 76, 90, 35, 42, 117, 69, 2, 14, 81, 6, 78, 68, 11, 30, 52, 58, 98, 104, 21, 4, 85, 13, 47, 87, 62, 48, 109, 101, 0, 34, 53, 56, 59, 19, 88, 112, 28, 71, 18, 80, 50, 121, 75, 111, 49]","[5, 34, 55, 53, 113, 60, 22, 98, 16, 92, 126, 27, 70, 30, 61, 37, 64, 9, 36, 123, 79, 101, 15, 90, 62, 52, 72, 3, 29, 4, 110, 102, 17, 125, 26, 99, 86, 1, 20, 112, 24, 28, 31, 47, 85, 11, 42, 78, 25, 91, 7, 104, 12, 74, 71, 89, 48, 95, 43, 100, 103, 97, 107, 2]","[2, 4, 11, 20, 27, 28, 30, 34, 36, 37, 42, 43, 47, 48, 52, 53, 55, 62, 64, 71, 78, 85, 90, 92, 98, 101, 104, 112, 113]"
5,"[123, 114, 111, 64, 115, 14, 75, 67, 4, 125, 61, 11, 38, 104, 105, 7, 45, 113, 93, 41, 86, 77, 44, 0, 89, 112, 90, 52, 57, 74, 26, 29, 69, 108, 32, 121, 107, 102, 19, 42, 60, 51, 116, 39, 24, 37, 118, 68, 92, 87, 95, 79, 106, 13, 40, 53, 81, 85, 99, 36, 23, 97, 48, 47]","[61, 53, 116, 0, 75, 43, 89, 38, 101, 60, 51, 83, 29, 112, 36, 81, 55, 34, 94, 125, 68, 64, 84, 26, 40, 107, 82, 16, 24, 42, 108, 19, 111, 54, 6, 41, 120, 79, 9, 48, 44, 4, 106, 93, 30, 13, 39, 20, 124, 66, 33, 52, 57, 11, 105, 114, 72, 123, 67, 102, 71, 113, 3, 69]","[0, 4, 11, 13, 19, 24, 26, 29, 36, 38, 39, 40, 41, 42, 44, 48, 51, 52, 53, 57, 60, 61, 64, 67, 68, 69, 75, 79, 81, 89, 93, 102, 105, 106, 107, 108, 111, 112, 113, 114, 116, 123, 125]"
6,"[118, 20, 53, 85, 46, 51, 22, 52, 98, 28, 49, 64, 35, 124, 69, 58, 125, 34, 104, 106, 2, 74, 67, 111, 96, 0, 3, 33, 8, 91, 23, 43, 92, 72, 76, 26, 50, 6, 18, 68, 56, 101, 97, 37, 47, 24, 7, 57, 54, 75, 73, 1, 61, 12, 114, 87, 19, 48, 40, 62, 10, 36, 16, 123]","[94, 59, 117, 86, 6, 22, 110, 82, 34, 13, 89, 19, 122, 30, 7, 27, 44, 85, 112, 42, 17, 24, 31, 56, 43, 39, 115, 23, 15, 46, 83, 57, 127, 116, 47, 63, 102, 78, 121, 21, 103, 113, 88, 38, 16, 76, 100, 84, 9, 14, 49, 8, 60, 109, 41, 79, 99, 37, 105, 55, 108, 107, 77, 4]","[6, 7, 8, 16, 19, 22, 23, 24, 34, 37, 43, 46, 47, 49, 56, 57, 76, 85]"
7,"[2, 67, 120, 31, 16, 77, 61, 75, 4, 8, 76, 111, 23, 85, 97, 7, 19, 36, 54, 55, 124, 20, 74, 92, 90, 25, 114, 32, 123, 21, 38, 50, 6, 109, 70, 26, 64, 47, 45, 51, 60, 63, 62, 41, 53, 12, 11, 28, 122, 103, 105, 49, 68, 91, 100, 46, 17, 52, 121, 73, 1, 42, 37, 48]","[68, 89, 71, 107, 76, 98, 34, 54, 64, 42, 92, 84, 55, 93, 57, 53, 90, 91, 62, 120, 82, 51, 38, 121, 48, 109, 36, 126, 8, 50, 94, 43, 101, 37, 79, 72, 12, 27, 60, 81, 6, 88, 113, 103, 1, 17, 11, 119, 32, 18, 19, 105, 73, 111, 40, 100, 95, 2, 49, 58, 16, 65, 45, 29]","[1, 2, 6, 8, 11, 12, 16, 17, 19, 32, 36, 37, 38, 42, 45, 48, 49, 50, 51, 53, 54, 55, 60, 62, 64, 68, 73, 76, 90, 91, 92, 100, 103, 105, 109, 111, 120, 121]"
8,"[89, 83, 32, 27, 46, 99, 81, 73, 109, 80, 100, 84, 72, 29, 124, 122, 90, 25, 31, 38, 60, 62, 97, 104, 10, 108, 70, 16, 118, 6, 94, 23, 49, 7, 117, 92, 76, 55, 54, 15, 111, 85, 91, 67, 61, 95, 47, 114, 13, 42, 43, 11, 8, 14, 82, 52, 9, 78, 37, 71, 119, 22, 40, 123]","[83, 110, 121, 80, 20, 109, 119, 11, 114, 2, 12, 104, 64, 23, 66, 51, 93, 100, 41, 127, 4, 54, 44, 96, 14, 26, 42, 62, 21, 45, 112, 68, 77, 122, 69, 35, 115, 117, 79, 98, 15, 113, 50, 86, 40, 107, 34, 78, 105, 106, 49, 17, 90, 85, 125, 22, 58, 48, 102, 88, 24, 33, 0, 57]","[11, 14, 15, 22, 23, 40, 42, 49, 54, 62, 78, 80, 83, 85, 90, 100, 104, 109, 114, 117, 119, 122]"
9,"[122, 95, 15, 106, 92, 43, 38, 117, 75, 64, 16, 96, 71, 105, 1, 49, 57, 80, 101, 116, 77, 63, 39, 21, 66, 35, 120, 100, 85, 26, 99, 2, 46, 19, 74, 3, 113, 37, 108, 65, 32, 67, 11, 47, 27, 81, 73, 17, 22, 4, 121, 60, 40, 9, 87, 50, 119, 104, 28, 79, 124, 78, 94, 34]","[100, 37, 17, 8, 7, 75, 51, 107, 10, 93, 94, 124, 38, 6, 109, 24, 26, 47, 59, 86, 123, 0, 5, 54, 70, 18, 27, 19, 4, 56, 101, 68, 48, 61, 41, 112, 117, 125, 77, 69, 13, 102, 35, 97, 111, 110, 89, 72, 115, 83, 52, 76, 2, 44, 120, 42, 30, 53, 36, 88, 31, 55, 64, 103]","[2, 4, 17, 19, 26, 27, 35, 37, 38, 47, 64, 75, 77, 94, 100, 101, 117, 120, 124]"
10,"[55, 57, 69, 7, 29, 14, 73, 18, 10, 94, 8, 38, 25, 24, 78, 30, 84, 51, 60, 65, 28, 44, 116, 3, 81, 62, 26, 102, 120, 118, 125, 91, 4, 99, 106, 100, 52, 54, 74, 80, 17, 49, 19, 0, 47, 53, 108, 46, 1, 5, 86, 2, 107, 93, 109, 43, 50, 59, 33, 87, 119, 115, 40, 12]","[43, 4, 55, 46, 68, 32, 19, 15, 66, 16, 29, 112, 9, 108, 121, 125, 49, 6, 74, 126, 110, 100, 124, 34, 92, 7, 73, 47, 22, 63, 91, 87, 103, 101, 37, 105, 109, 97, 93, 42, 64, 62, 72, 84, 23, 82, 79, 114, 26, 48, 40, 60, 96, 30, 99, 88, 28, 41, 86, 50, 51, 0, 38, 24]","[0, 4, 7, 19, 24, 26, 28, 29, 30, 38, 40, 43, 46, 47, 49, 50, 51, 55, 60, 62, 73, 74, 84, 86, 87, 91, 93, 99, 100, 108, 109, 125]"
11,"[51, 76, 124, 93, 123, 53, 67, 4, 125, 103, 46, 64, 83, 72, 104, 106, 55, 7, 44, 114, 23, 58, 37, 31, 19, 63, 101, 42, 60, 92, 57, 2, 81, 21, 115, 32, 12, 66, 1, 112, 38, 5, 50, 35, 59, 34, 47, 78, 79, 127, 13, 9, 61, 96, 97, 8, 126, 86, 118, 6, 56, 48, 0, 121]","[108, 101, 72, 34, 124, 123, 0, 82, 121, 126, 70, 116, 104, 77, 61, 118, 112, 96, 95, 45, 71, 39, 115, 51, 48, 79, 66, 78, 58, 37, 44, 5, 42, 53, 57, 32, 56, 6, 16, 103, 80, 92, 35, 50, 127, 12, 69, 1, 102, 47, 97, 4, 109, 55, 86, 67, 9, 33, 100, 10, 38, 23, 19, 63]","[0, 1, 4, 5, 6, 9, 12, 19, 23, 32, 34, 35, 37, 38, 42, 44, 47, 48, 50, 51, 53, 55, 56, 57, 58, 61, 63, 66, 67, 72, 78, 79, 86, 92, 96, 97, 101, 103, 104, 112, 115, 118, 121, 123, 124, 126, 127]"
12,"[43, 67, 127, 22, 2, 85, 112, 0, 81, 6, 27, 116, 119, 32, 39, 95, 55, 121, 61, 123, 70, 49, 52, 37, 91, 117, 54, 97, 120, 107, 104, 51, 74, 111, 18, 108, 105, 44, 64, 4, 16, 122, 71, 88, 7, 47, 30, 48, 28, 38, 69, 35, 63, 40, 73, 29, 17, 13, 115, 53, 62, 96, 12, 3]","[2, 60, 126, 55, 39, 16, 97, 51, 12, 49, 122, 35, 116, 13, 25, 54, 69, 21, 87, 100, 31, 120, 92, 44, 23, 34, 85, 40, 96, 111, 67, 117, 108, 70, 95, 113, 99, 28, 121, 103, 37, 36, 68, 61, 42, 115, 91, 27, 10, 79, 72, 86, 77, 45, 29, 32, 7, 46, 105, 93, 53, 127, 114, 71]","[2, 7, 12, 13, 16, 27, 28, 29, 32, 35, 37, 39, 40, 44, 49, 51, 53, 54, 55, 61, 67, 69, 70, 71, 85, 91, 95, 96, 97, 105, 108, 111, 115, 116, 117, 120, 121, 122, 127]"
13,"[113, 60, 114, 85, 127, 46, 104, 111, 1, 68, 97, 109, 2, 108, 0, 36, 73, 65, 93, 43, 37, 67, 59, 116, 38, 121, 90, 98, 42, 35, 75, 78, 7, 8, 52, 3, 15, 81, 25, 57, 101, 69, 33, 13, 58, 72, 11, 99, 86, 4, 27, 107, 64, 30, 39, 18, 17, 100, 122, 32, 55, 54, 14, 76]","[78, 58, 41, 42, 100, 85, 44, 4, 6, 20, 55, 114, 65, 61, 40, 107, 11, 32, 29, 33, 28, 97, 76, 16, 38, 86, 39, 103, 102, 104, 30, 72, 62, 75, 15, 110, 108, 31, 53, 45, 54, 37, 57, 109, 46, 117, 60, 111, 36, 12, 116, 21, 7, 82, 43, 18, 3, 23, 123, 124, 99, 121, 35, 5]","[3, 4, 7, 11, 15, 18, 30, 32, 33, 35, 36, 37, 38, 39, 42, 43, 46, 54, 55, 57, 58, 60, 65, 72, 75, 76, 78, 85, 86, 97, 99, 100, 104, 107, 108, 109, 111, 114, 116, 121]"
14,"[41, 89, 93, 70, 47, 46, 17, 83, 113, 107, 111, 82, 58, 65, 12, 126, 124, 32, 68, 100, 108, 34, 67, 60, 4, 39, 9, 48, 81, 36, 127, 57, 20, 11, 2, 30, 110, 64, 61, 23, 79, 69, 35, 18, 71, 31, 21, 90, 119, 43, 66, 120, 105, 29, 97, 92, 74, 56, 27, 51, 91, 55, 22, 96]","[89, 64, 120, 26, 56, 16, 81, 100, 39, 125, 55, 28, 21, 123, 22, 52, 127, 66, 77, 107, 69, 97, 47, 4, 35, 85, 78, 101, 70, 5, 112, 102, 1, 124, 51, 74, 10, 36, 3, 60, 65, 6, 68, 113, 86, 88, 111, 72, 7, 41, 29, 48, 82, 93, 96, 104, 108, 75, 58, 87, 109, 45, 91, 31]","[4, 21, 22, 29, 31, 35, 36, 39, 41, 47, 48, 51, 55, 56, 58, 60, 64, 65, 66, 68, 69, 70, 74, 81, 82, 89, 91, 93, 96, 97, 100, 107, 108, 111, 113, 120, 124, 127]"
15,"[70, 41, 44, 50, 67, 77, 7, 81, 38, 125, 32, 115, 109, 61, 60, 56, 13, 85, 27, 4, 21, 19, 114, 68, 105, 14, 107, 31, 126, 0, 84, 54, 34, 108, 106, 98, 127, 92, 121, 95, 57, 3, 99, 48, 79, 110, 104, 45, 30, 73, 87, 111, 49, 93, 33, 103, 15, 42, 78, 94, 47, 58, 40, 80]","[90, 30, 17, 119, 56, 80, 16, 105, 34, 97, 48, 58, 19, 93, 84, 1, 98, 23, 110, 117, 118, 75, 126, 35, 25, 123, 114, 121, 33, 86, 67, 54, 49, 91, 41, 78, 15, 77, 14, 7, 61, 113, 79, 102, 109, 47, 92, 101, 31, 0, 72, 32, 52, 103, 68, 42, 100, 122, 13, 95, 3, 81, 18, 38]","[0, 3, 7, 13, 14, 15, 19, 30, 31, 32, 33, 34, 38, 41, 42, 47, 48, 49, 54, 56, 58, 61, 67, 68, 77, 78, 79, 80, 81, 84, 92, 93, 95, 98, 103, 105, 109, 110, 114, 121, 126]"
16,"[44, 65, 118, 22, 68, 125, 1, 34, 18, 58, 121, 63, 7, 23, 117, 6, 64, 105, 67, 25, 51, 88, 116, 40, 123, 53, 87, 13, 27, 8, 21, 16, 84, 48, 32, 26, 94, 19, 10, 4, 103, 2, 3, 41, 69, 127, 82, 50, 86, 78, 107, 20, 62, 79, 24, 52, 59, 106, 33, 36, 55, 70, 60, 29]","[107, 97, 1, 124, 116, 76, 105, 68, 87, 53, 67, 127, 99, 44, 65, 9, 66, 98, 34, 121, 63, 117, 83, 126, 94, 113, 11, 64, 62, 96, 35, 73, 47, 71, 37, 39, 70, 16, 23, 24, 42, 85, 17, 43, 106, 29, 45, 90, 88, 81, 41, 75, 46, 93, 110, 21, 100, 95, 102, 51, 123, 78, 4, 33]","[1, 4, 16, 21, 23, 24, 29, 33, 34, 41, 44, 51, 53, 62, 63, 64, 65, 67, 68, 70, 78, 87, 88, 94, 105, 106, 107, 116, 117, 121, 123, 127]"
17,"[43, 22, 51, 64, 25, 16, 67, 104, 58, 35, 33, 109, 50, 97, 18, 117, 36, 44, 98, 14, 103, 121, 27, 53, 82, 105, 119, 56, 10, 46, 20, 102, 127, 41, 71, 37, 116, 13, 89, 73, 79, 62, 78, 125, 106, 83, 21, 124, 59, 24, 65, 85, 76, 95, 57, 40, 100, 108, 66, 99, 90, 32, 47, 61]","[1, 81, 122, 77, 13, 107, 102, 124, 93, 99, 21, 100, 31, 6, 126, 110, 12, 96, 26, 75, 45, 86, 70, 32, 105, 63, 61, 9, 34, 5, 49, 119, 113, 4, 118, 123, 11, 2, 14, 48, 43, 115, 112, 57, 90, 7, 17, 30, 65, 120, 28, 52, 104, 79, 68, 23, 3, 18, 92, 91, 29, 94, 82, 51]","[13, 14, 18, 21, 32, 43, 51, 57, 61, 65, 79, 82, 90, 99, 100, 102, 104, 105, 119, 124]"
18,"[74, 113, 18, 102, 49, 28, 37, 34, 79, 67, 77, 17, 115, 43, 6, 53, 7, 12, 38, 122, 69, 123, 19, 71, 59, 60, 85, 29, 44, 125, 21, 2, 48, 50, 88, 15, 56, 35, 31, 109, 52, 47, 80, 87, 90, 99, 36, 22, 121, 107, 73, 98, 110, 120, 20, 23, 89, 94, 118, 51, 5, 46, 4, 41]","[125, 113, 1, 4, 34, 118, 37, 27, 75, 79, 92, 94, 87, 107, 46, 120, 106, 49, 52, 59, 124, 28, 41, 21, 72, 102, 29, 5, 67, 26, 7, 6, 89, 112, 111, 35, 65, 98, 93, 23, 69, 31, 96, 85, 80, 110, 9, 8, 2, 127, 50, 76, 71, 36, 19, 10, 33, 60, 25, 51, 17, 32, 16, 73]","[2, 4, 5, 6, 7, 17, 19, 21, 23, 28, 29, 31, 34, 35, 36, 37, 41, 46, 49, 50, 51, 52, 59, 60, 67, 69, 71, 73, 79, 80, 85, 87, 89, 94, 98, 102, 107, 110, 113, 118, 120, 125]"
19,"[38, 0, 14, 10, 87, 56, 113, 94, 45, 86, 39, 88, 111, 121, 74, 98, 102, 52, 107, 48, 50, 95, 90, 112, 118, 82, 19, 109, 49, 58, 99, 92, 110, 124, 59, 20, 43, 80, 73, 68, 18, 63, 78, 42, 77, 126, 15, 115, 57, 75, 53, 25, 83, 1, 5, 36, 104, 46, 61, 71, 119, 33, 81, 93]","[14, 104, 96, 108, 98, 65, 33, 44, 46, 72, 58, 42, 15, 90, 83, 126, 85, 109, 125, 32, 38, 61, 117, 118, 101, 103, 97, 55, 1, 47, 115, 7, 30, 40, 102, 41, 91, 10, 36, 75, 43, 62, 26, 71, 16, 4, 25, 51, 116, 31, 24, 23, 12, 107, 110, 119, 124, 67, 3, 79, 28, 54, 18, 52]","[1, 10, 14, 15, 18, 25, 33, 36, 38, 42, 43, 46, 52, 58, 61, 71, 75, 83, 90, 98, 102, 104, 107, 109, 110, 115, 118, 119, 124, 126]"
20,"[30, 109, 92, 124, 41, 116, 33, 94, 106, 71, 72, 119, 17, 125, 113, 120, 84, 80, 5, 117, 75, 52, 39, 20, 123, 61, 79, 44, 36, 115, 101, 100, 99, 81, 28, 58, 91, 54, 53, 64, 104, 74, 51, 1, 83, 60, 89, 48, 68, 78, 27, 82, 110, 35, 63, 69, 46, 43, 34, 0, 24, 67, 76, 105]","[40, 71, 122, 34, 63, 41, 15, 2, 102, 77, 38, 116, 104, 5, 0, 59, 9, 11, 86, 101, 51, 105, 99, 8, 53, 45, 92, 96, 67, 52, 26, 28, 10, 79, 118, 42, 39, 22, 84, 108, 3, 18, 73, 35, 98, 36, 13, 113, 21, 20, 126, 55, 117, 119, 30, 76, 23, 95, 82, 44, 37, 110, 48, 121]","[0, 5, 20, 28, 30, 34, 35, 36, 39, 41, 44, 48, 51, 52, 53, 63, 67, 71, 76, 79, 82, 84, 92, 99, 101, 104, 105, 110, 113, 116, 117, 119]"
21,"[66, 28, 126, 114, 37, 14, 51, 100, 0, 63, 2, 87, 101, 6, 85, 75, 72, 12, 111, 120, 96, 91, 19, 71, 11, 9, 3, 121, 88, 89, 103, 17, 52, 50, 84, 41, 78, 107, 124, 68, 27, 32, 57, 29, 104, 61, 93, 70, 86, 67, 56, 64, 125, 22, 102, 7, 10, 80, 117, 81, 74, 4, 99, 73]","[87, 47, 88, 38, 14, 52, 122, 77, 23, 126, 45, 4, 2, 85, 28, 70, 48, 98, 32, 13, 109, 94, 61, 36, 68, 121, 116, 108, 100, 95, 26, 92, 114, 58, 76, 123, 115, 112, 11, 99, 79, 6, 35, 20, 24, 9, 17, 65, 80, 25, 60, 39, 113, 19, 30, 71, 63, 18, 34, 44, 105, 37, 83, 74]","[2, 4, 6, 9, 11, 14, 17, 19, 28, 32, 37, 52, 61, 63, 68, 70, 71, 74, 80, 85, 87, 88, 99, 100, 114, 121, 126]"
22,"[37, 119, 60, 45, 97, 34, 12, 69, 89, 61, 112, 42, 77, 44, 51, 126, 100, 13, 17, 43, 66, 106, 25, 28, 15, 122, 101, 86, 49, 23, 83, 14, 48, 74, 39, 62, 80, 76, 71, 117, 96, 125, 114, 59, 67, 52, 79, 47, 113, 98, 50, 33, 118, 107, 57, 99, 70, 31, 1, 56, 55, 68, 4, 41]","[58, 28, 0, 32, 16, 47, 87, 116, 109, 44, 123, 45, 121, 93, 24, 103, 53, 41, 26, 6, 119, 111, 79, 52, 92, 22, 81, 36, 59, 99, 115, 73, 2, 82, 127, 55, 114, 100, 88, 63, 13, 40, 124, 113, 5, 117, 38, 49, 85, 21, 105, 108, 89, 83, 11, 27, 31, 18, 7, 9, 96, 72, 110, 91]","[13, 28, 31, 41, 44, 45, 47, 49, 52, 55, 59, 79, 83, 89, 96, 99, 100, 113, 114, 117, 119]"
23,"[83, 70, 69, 31, 72, 13, 6, 15, 56, 115, 29, 127, 109, 23, 111, 93, 27, 90, 49, 53, 22, 30, 105, 125, 76, 106, 37, 67, 104, 47, 65, 96, 52, 19, 81, 82, 112, 10, 63, 89, 88, 94, 62, 28, 26, 58, 121, 1, 36, 16, 44, 92, 11, 54, 98, 84, 103, 39, 123, 41, 42, 87, 100, 97]","[81, 88, 29, 94, 47, 106, 84, 95, 56, 74, 87, 69, 39, 5, 104, 16, 112, 45, 13, 41, 9, 22, 109, 82, 54, 96, 113, 0, 110, 49, 77, 90, 30, 26, 28, 125, 12, 120, 40, 58, 14, 115, 108, 72, 105, 65, 71, 111, 83, 62, 76, 20, 11, 127, 70, 31, 42, 89, 24, 6, 63, 50, 107, 37]","[6, 11, 13, 16, 22, 26, 28, 29, 30, 31, 37, 39, 41, 42, 47, 49, 54, 56, 58, 62, 63, 65, 69, 70, 72, 76, 81, 82, 83, 84, 87, 88, 89, 90, 94, 96, 104, 105, 106, 109, 111, 112, 115, 125, 127]"
24,"[11, 16, 14, 24, 106, 59, 73, 61, 77, 102, 96, 26, 78, 18, 67, 7, 113, 127, 34, 72, 48, 88, 104, 101, 87, 89, 75, 74, 44, 90, 83, 97, 29, 64, 81, 54, 79, 124, 38, 41, 6, 76, 5, 35, 91, 47, 121, 12, 114, 17, 109, 108, 42, 111, 99, 93, 36, 92, 28, 65, 9, 94, 115, 3]","[87, 54, 90, 3, 85, 42, 5, 36, 113, 49, 41, 10, 115, 114, 117, 59, 33, 105, 100, 108, 18, 19, 55, 65, 47, 73, 77, 37, 101, 99, 45, 44, 28, 83, 13, 63, 53, 98, 64, 25, 96, 12, 16, 6, 23, 14, 46, 88, 15, 52, 93, 71, 48, 97, 116, 92, 17, 124, 95, 89, 9, 75, 78, 72]","[3, 5, 6, 9, 12, 14, 16, 17, 18, 28, 36, 41, 42, 44, 47, 48, 54, 59, 64, 65, 72, 73, 75, 77, 78, 83, 87, 88, 89, 90, 92, 93, 96, 97, 99, 101, 108, 113, 114, 115, 124]"
25,"[66, 46, 43, 29, 31, 35, 69, 79, 113, 49, 108, 84, 18, 61, 65, 72, 104, 115, 47, 98, 2, 75, 76, 19, 73, 114, 119, 89, 101, 105, 125, 23, 16, 17, 6, 50, 88, 56, 52, 20, 24, 27, 34, 95, 38, 116, 15, 39, 77, 83, 51, 100, 106, 44, 107, 4, 112, 71, 36, 30, 41, 67, 14, 55]","[87, 101, 45, 97, 93, 12, 35, 77, 80, 30, 102, 89, 98, 119, 3, 106, 0, 105, 34, 4, 108, 61, 100, 65, 55, 5, 52, 56, 54, 32, 114, 81, 19, 49, 107, 59, 29, 22, 70, 86, 31, 113, 26, 39, 60, 69, 33, 92, 82, 67, 115, 66, 125, 68, 117, 38, 53, 43, 109, 28, 2, 20, 1, 46]","[2, 4, 19, 20, 29, 30, 31, 34, 35, 38, 39, 43, 46, 49, 52, 55, 56, 61, 65, 66, 67, 69, 77, 89, 98, 100, 101, 105, 106, 107, 108, 113, 114, 115, 119, 125]"
26,"[119, 125, 121, 34, 33, 46, 113, 56, 38, 15, 57, 21, 83, 12, 72, 48, 65, 85, 4, 24, 29, 31, 50, 26, 1, 86, 70, 63, 122, 92, 22, 10, 106, 59, 58, 76, 19, 87, 123, 20, 43, 81, 62, 30, 0, 97, 7, 11, 14, 114, 75, 41, 36, 80, 117, 64, 73, 118, 47, 98, 102, 89, 90, 25]","[70, 4, 91, 89, 82, 123, 31, 61, 74, 99, 22, 103, 47, 68, 90, 110, 77, 108, 6, 50, 58, 78, 85, 16, 5, 23, 46, 34, 96, 121, 124, 95, 55, 79, 60, 57, 69, 39, 93, 81, 44, 113, 51, 36, 56, 66, 14, 27, 38, 42, 43, 84, 26, 25, 111, 45, 100, 12, 127, 97, 114, 87, 28, 116]","[4, 12, 14, 22, 25, 26, 31, 34, 36, 38, 43, 46, 47, 50, 56, 57, 58, 70, 81, 85, 87, 89, 90, 97, 113, 114, 121, 123]"
27,"[90, 47, 3, 53, 98, 92, 80, 76, 32, 52, 28, 66, 94, 103, 70, 29, 91, 62, 46, 56, 68, 59, 86, 125, 77, 35, 116, 124, 101, 88, 73, 54, 9, 23, 38, 74, 41, 39, 31, 84, 69, 40, 24, 21, 97, 37, 19, 106, 123, 112, 78, 107, 34, 4, 65, 49, 85, 79, 57, 2, 6, 30, 63, 15]","[52, 107, 33, 85, 38, 8, 105, 2, 63, 117, 40, 77, 44, 20, 90, 94, 23, 116, 76, 84, 65, 86, 21, 29, 60, 97, 9, 22, 34, 83, 35, 124, 3, 16, 69, 72, 67, 39, 98, 37, 99, 45, 58, 25, 28, 112, 15, 127, 11, 17, 30, 24, 66, 78, 14, 41, 89, 113, 49, 19, 31, 57, 73, 92]","[2, 3, 9, 15, 19, 21, 23, 24, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 41, 49, 52, 57, 63, 65, 66, 69, 73, 76, 77, 78, 84, 85, 86, 90, 92, 94, 97, 98, 107, 112, 116, 124]"
28,"[28, 75, 38, 70, 106, 16, 99, 7, 37, 0, 110, 33, 120, 65, 127, 19, 66, 95, 50, 67, 34, 52, 105, 71, 93, 36, 125, 41, 55, 43, 54, 15, 4, 123, 46, 63, 11, 22, 109, 27, 13, 48, 81, 58, 49, 103, 45, 85, 31, 112, 92, 44, 89, 56, 62, 42, 2, 104, 25, 84, 77, 24, 61, 102]","[111, 13, 70, 30, 52, 45, 87, 103, 69, 21, 33, 98, 35, 65, 28, 15, 53, 93, 73, 92, 38, 67, 37, 84, 83, 32, 100, 62, 58, 118, 54, 115, 108, 51, 80, 90, 26, 119, 4, 81, 127, 85, 29, 95, 105, 47, 74, 122, 44, 91, 16, 31, 124, 64, 104, 101, 22, 75, 102, 7, 43, 60, 3, 57]","[4, 7, 13, 15, 16, 22, 28, 31, 33, 37, 38, 43, 44, 45, 52, 54, 58, 62, 65, 67, 70, 75, 81, 84, 85, 92, 93, 95, 102, 103, 104, 105, 127]"
29,"[29, 9, 37, 58, 97, 77, 19, 8, 32, 70, 62, 85, 44, 6, 7, 90, 21, 102, 108, 95, 67, 63, 12, 52, 18, 66, 110, 98, 68, 87, 38, 59, 5, 48, 83, 27, 104, 40, 46, 94, 53, 88, 106, 35, 43, 15, 36, 17, 28, 119, 42, 3, 56, 86, 109, 64, 123, 11, 51, 22, 60, 76, 79, 111]","[80, 121, 61, 7, 45, 116, 55, 71, 48, 24, 95, 87, 37, 76, 1, 58, 65, 124, 68, 9, 74, 26, 92, 5, 100, 90, 6, 103, 66, 86, 54, 104, 49, 96, 2, 113, 85, 78, 51, 17, 25, 32, 35, 64, 20, 13, 82, 125, 102, 77, 106, 10, 110, 43, 41, 62, 29, 16, 72, 4, 93, 127, 15, 12]","[5, 6, 7, 9, 12, 15, 17, 29, 32, 35, 37, 43, 48, 51, 58, 62, 64, 66, 68, 76, 77, 85, 86, 87, 90, 95, 102, 104, 106, 110]"
30,"[65, 87, 107, 50, 53, 7, 82, 62, 49, 112, 105, 90, 93, 45, 28, 122, 51, 24, 66, 41, 1, 18, 109, 94, 63, 72, 91, 47, 59, 119, 78, 56, 48, 42, 46, 115, 21, 92, 10, 39, 113, 96, 67, 37, 98, 121, 57, 111, 15, 86, 120, 100, 19, 23, 110, 69, 88, 95, 40, 6, 5, 33, 77, 16]","[24, 120, 43, 47, 12, 28, 69, 66, 113, 8, 23, 51, 25, 89, 14, 78, 114, 91, 101, 54, 32, 90, 31, 42, 116, 29, 76, 107, 64, 105, 40, 39, 70, 109, 71, 18, 127, 68, 111, 73, 87, 58, 13, 126, 121, 81, 30, 115, 77, 63, 5, 82, 124, 60, 21, 86, 65, 85, 74, 9, 17, 3, 2, 80]","[5, 18, 21, 23, 24, 28, 39, 40, 42, 47, 51, 63, 65, 66, 69, 77, 78, 82, 86, 87, 90, 91, 105, 107, 109, 111, 113, 115, 120, 121]"
31,"[89, 62, 125, 43, 101, 24, 123, 16, 113, 55, 8, 14, 3, 98, 65, 78, 57, 64, 114, 59, 110, 103, 30, 12, 72, 126, 42, 97, 74, 20, 69, 22, 91, 51, 109, 48, 81, 23, 6, 27, 2, 67, 49, 11, 111, 83, 73, 35, 66, 53, 25, 18, 120, 56, 115, 58, 4, 28, 32, 105, 41, 38, 124, 40]","[99, 88, 100, 17, 31, 40, 111, 72, 112, 70, 68, 63, 0, 116, 10, 1, 123, 19, 26, 15, 82, 44, 117, 41, 104, 62, 12, 76, 32, 85, 53, 52, 101, 120, 39, 119, 35, 115, 36, 86, 80, 125, 33, 71, 114, 11, 108, 13, 77, 107, 113, 45, 55, 2, 124, 90, 54, 25, 75, 5, 94, 89, 42, 122]","[2, 11, 12, 25, 32, 35, 40, 41, 42, 53, 55, 62, 72, 89, 101, 111, 113, 114, 115, 120, 123, 124, 125]"
32,"[45, 17, 7, 105, 16, 102, 10, 49, 97, 29, 90, 28, 18, 36, 84, 38, 35, 76, 73, 21, 120, 13, 79, 113, 127, 54, 110, 52, 44, 40, 8, 55, 11, 20, 125, 57, 75, 60, 39, 9, 43, 71, 3, 101, 33, 19, 95, 123, 37, 41, 1, 26, 87, 58, 85, 109, 51, 34, 66, 80, 91, 5, 12, 30]","[28, 47, 78, 96, 89, 69, 112, 10, 114, 99, 83, 49, 79, 72, 116, 50, 80, 3, 122, 64, 117, 59, 19, 38, 95, 33, 62, 70, 24, 94, 22, 25, 126, 46, 100, 101, 74, 92, 0, 42, 103, 115, 21, 55, 102, 60, 63, 81, 14, 104, 15, 77, 119, 93, 61, 111, 98, 27, 56, 121, 41, 18, 65, 73]","[3, 10, 18, 19, 21, 28, 33, 38, 41, 49, 55, 60, 73, 79, 80, 95, 101, 102]"
33,"[55, 120, 37, 77, 1, 33, 54, 91, 3, 27, 12, 101, 75, 119, 8, 58, 19, 68, 110, 84, 10, 124, 74, 60, 16, 125, 63, 104, 24, 25, 81, 100, 88, 50, 90, 40, 116, 23, 9, 47, 52, 4, 78, 39, 56, 57, 108, 15, 127, 66, 89, 32, 44, 85, 65, 53, 71, 14, 36, 45, 67, 115, 123, 48]","[14, 16, 49, 2, 101, 120, 74, 46, 64, 6, 78, 110, 5, 44, 65, 9, 92, 112, 57, 8, 15, 81, 40, 102, 100, 4, 34, 24, 22, 82, 90, 7, 70, 26, 80, 13, 42, 41, 73, 59, 123, 18, 33, 12, 125, 36, 1, 107, 122, 105, 98, 23, 63, 47, 77, 53, 97, 89, 21, 114, 38, 54, 96, 45]","[1, 4, 8, 9, 12, 14, 15, 16, 23, 24, 33, 36, 40, 44, 45, 47, 53, 54, 57, 63, 65, 74, 77, 78, 81, 89, 90, 100, 101, 110, 120, 123, 125]"
34,"[17, 28, 1, 97, 85, 70, 65, 68, 98, 19, 6, 55, 60, 82, 90, 41, 31, 125, 95, 112, 48, 86, 14, 49, 127, 92, 99, 15, 122, 43, 106, 58, 34, 80, 16, 91, 119, 46, 81, 2, 64, 8, 51, 52, 89, 20, 74, 12, 113, 72, 66, 36, 121, 37, 30, 115, 40, 44, 62, 117, 32, 123, 87, 79]","[62, 93, 113, 66, 122, 73, 68, 99, 112, 81, 25, 1, 127, 55, 0, 19, 60, 28, 18, 117, 49, 10, 43, 80, 95, 40, 4, 46, 31, 102, 3, 125, 20, 2, 21, 97, 121, 65, 52, 79, 41, 91, 17, 14, 33, 111, 100, 70, 13, 51, 35, 98, 105, 23, 64, 85, 61, 39, 92, 32, 48, 86, 118, 44]","[1, 2, 14, 17, 19, 20, 28, 31, 32, 40, 41, 43, 44, 46, 48, 49, 51, 52, 55, 60, 62, 64, 65, 66, 68, 70, 79, 80, 81, 85, 86, 91, 92, 95, 97, 98, 99, 112, 113, 117, 121, 122, 125, 127]"
35,"[51, 85, 64, 97, 39, 74, 25, 19, 3, 49, 62, 29, 45, 1, 115, 32, 8, 123, 15, 65, 50, 48, 58, 28, 82, 114, 22, 87, 31, 21, 76, 57, 125, 7, 55, 67, 88, 53, 43, 18, 27, 61, 36, 118, 26, 0, 68, 60, 46, 86, 13, 109, 92, 83, 56, 91, 23, 110, 12, 95, 81, 30, 34, 9]","[72, 20, 21, 90, 17, 68, 83, 33, 41, 51, 77, 84, 6, 108, 79, 115, 52, 54, 70, 61, 9, 57, 94, 107, 29, 63, 14, 53, 111, 47, 96, 18, 42, 36, 98, 106, 102, 100, 2, 120, 64, 121, 105, 73, 4, 104, 85, 69, 37, 89, 110, 127, 59, 24, 112, 16, 113, 101, 103, 7, 38, 10, 12, 19]","[7, 9, 12, 18, 19, 21, 29, 36, 51, 53, 57, 61, 64, 68, 83, 85, 110, 115]"
36,"[44, 96, 39, 51, 114, 97, 4, 124, 108, 77, 22, 80, 38, 26, 45, 3, 27, 25, 36, 120, 70, 46, 29, 57, 8, 99, 90, 64, 58, 9, 93, 56, 89, 106, 50, 122, 74, 48, 69, 102, 40, 37, 2, 86, 88, 47, 12, 33, 18, 13, 95, 105, 123, 110, 31, 73, 83, 82, 126, 0, 14, 54, 34, 11]","[39, 95, 123, 86, 88, 70, 89, 79, 50, 80, 56, 73, 25, 36, 71, 57, 3, 101, 21, 31, 30, 0, 121, 22, 12, 105, 2, 51, 82, 81, 9, 28, 14, 58, 4, 64, 108, 1, 109, 100, 23, 119, 61, 102, 63, 26, 29, 47, 53, 114, 126, 74, 54, 8, 16, 37, 69, 11, 60, 94, 62, 113, 27, 46]","[0, 2, 3, 4, 8, 9, 11, 12, 14, 22, 25, 26, 27, 29, 31, 36, 37, 39, 46, 47, 50, 51, 54, 56, 57, 58, 64, 69, 70, 73, 74, 80, 82, 86, 88, 89, 95, 102, 105, 108, 114, 123, 126]"
37,"[13, 43, 88, 51, 44, 101, 30, 71, 34, 127, 120, 28, 17, 60, 16, 4, 93, 107, 117, 75, 118, 18, 64, 50, 67, 46, 11, 52, 78, 27, 95, 12, 14, 97, 56, 5, 82, 74, 53, 15, 58, 54, 86, 36, 68, 47, 119, 87, 35, 8, 83, 104, 108, 76, 55, 29, 24, 21, 9, 92, 19, 102, 41, 91]","[66, 14, 109, 4, 115, 94, 34, 7, 45, 35, 101, 119, 50, 9, 25, 57, 30, 88, 71, 52, 19, 118, 17, 56, 38, 91, 5, 64, 24, 48, 29, 78, 21, 10, 70, 72, 2, 18, 104, 15, 13, 44, 108, 75, 58, 60, 97, 46, 36, 86, 93, 59, 100, 0, 43, 107, 125, 85, 80, 87, 32, 69, 55, 12]","[4, 5, 9, 12, 13, 14, 15, 17, 18, 19, 21, 24, 29, 30, 34, 35, 36, 43, 44, 46, 50, 52, 55, 56, 58, 60, 64, 71, 75, 78, 86, 87, 88, 91, 93, 97, 101, 104, 107, 108, 118, 119]"
38,"[27, 11, 109, 10, 64, 7, 43, 84, 17, 106, 71, 3, 5, 51, 73, 116, 54, 4, 80, 124, 38, 99, 33, 111, 81, 35, 95, 125, 25, 30, 67, 110, 82, 89, 49, 20, 39, 52, 68, 40, 32, 65, 105, 72, 96, 115, 93, 126, 24, 76, 102, 100, 97, 123, 101, 9, 50, 47, 44, 36, 23, 127, 66, 28]","[18, 106, 53, 121, 15, 49, 69, 86, 116, 114, 47, 73, 16, 112, 119, 52, 3, 45, 64, 33, 94, 91, 43, 1, 7, 75, 83, 55, 35, 23, 63, 5, 84, 56, 78, 12, 124, 46, 113, 2, 90, 126, 115, 120, 71, 0, 95, 93, 87, 77, 88, 19, 14, 70, 20, 29, 24, 31, 62, 37, 118, 79, 74, 111]","[3, 5, 7, 20, 23, 24, 33, 35, 43, 47, 49, 52, 64, 71, 73, 84, 93, 95, 106, 111, 115, 116, 124, 126]"
39,"[90, 50, 42, 2, 46, 10, 29, 55, 33, 108, 35, 53, 56, 83, 51, 114, 65, 75, 86, 30, 62, 22, 121, 32, 5, 43, 44, 77, 116, 106, 80, 23, 31, 69, 15, 93, 68, 96, 54, 97, 92, 73, 76, 123, 125, 79, 101, 24, 39, 9, 36, 72, 28, 37, 41, 105, 52, 6, 34, 16, 3, 104, 27, 1]","[76, 96, 83, 69, 104, 35, 15, 100, 33, 44, 91, 58, 10, 9, 29, 86, 70, 125, 112, 13, 108, 53, 65, 72, 66, 26, 117, 127, 126, 1, 120, 49, 109, 88, 43, 111, 39, 3, 123, 64, 54, 23, 77, 118, 30, 14, 12, 106, 37, 6, 19, 27, 48, 36, 63, 121, 74, 119, 22, 84, 50, 8, 107, 28]","[1, 3, 6, 9, 10, 15, 22, 23, 27, 28, 29, 30, 33, 35, 36, 37, 39, 43, 44, 50, 53, 54, 65, 69, 72, 76, 77, 83, 86, 96, 104, 106, 108, 121, 123, 125]"
40,"[34, 28, 122, 54, 84, 37, 59, 107, 5, 99, 80, 20, 73, 91, 88, 21, 50, 76, 1, 15, 100, 108, 78, 109, 7, 36, 6, 112, 114, 2, 16, 85, 118, 77, 49, 62, 66, 63, 95, 60, 19, 56, 105, 104, 57, 117, 17, 113, 92, 68, 102, 86, 23, 127, 11, 35, 69, 43, 74, 61, 3, 126, 47, 98]","[18, 57, 70, 79, 95, 24, 78, 111, 4, 9, 123, 110, 115, 90, 10, 125, 65, 32, 118, 8, 37, 83, 121, 3, 53, 116, 106, 40, 22, 98, 7, 81, 0, 21, 5, 97, 33, 46, 113, 12, 124, 119, 87, 29, 50, 2, 31, 103, 122, 41, 94, 76, 27, 99, 48, 45, 107, 114, 67, 96, 38, 91, 105, 80]","[2, 3, 5, 7, 21, 37, 50, 57, 76, 78, 80, 91, 95, 98, 99, 105, 107, 113, 114, 118, 122]"
41,"[76, 23, 20, 62, 38, 0, 32, 104, 80, 34, 58, 106, 36, 87, 15, 73, 44, 117, 40, 124, 35, 46, 114, 100, 53, 10, 66, 79, 88, 37, 31, 121, 48, 28, 122, 16, 63, 26, 72, 1, 126, 45, 4, 22, 9, 71, 5, 110, 118, 61, 13, 54, 78, 93, 30, 39, 103, 33, 41, 82, 113, 55, 68, 83]","[120, 125, 91, 103, 37, 0, 38, 15, 30, 23, 13, 117, 46, 7, 44, 66, 106, 20, 123, 29, 71, 74, 99, 77, 27, 54, 87, 126, 19, 124, 34, 85, 2, 48, 40, 42, 33, 93, 83, 80, 26, 57, 69, 100, 114, 45, 36, 14, 105, 9, 82, 122, 89, 58, 51, 59, 22, 81, 32, 62, 78, 24, 60, 10]","[0, 9, 10, 13, 15, 20, 22, 23, 26, 30, 32, 33, 34, 36, 37, 38, 40, 44, 45, 46, 48, 54, 58, 62, 66, 71, 78, 80, 82, 83, 87, 93, 100, 103, 106, 114, 117, 122, 124, 126]"
42,"[64, 26, 78, 51, 2, 113, 105, 6, 47, 79, 60, 18, 36, 7, 110, 4, 72, 32, 73, 27, 88, 45, 104, 14, 118, 123, 91, 121, 42, 68, 98, 111, 66, 106, 9, 10, 43, 52, 48, 102, 55, 95, 74, 5, 54, 56, 115, 114, 58, 120, 38, 37, 112, 99, 39, 62, 22, 20, 125, 81, 28, 82, 94, 71]","[85, 56, 80, 10, 91, 36, 126, 21, 18, 27, 86, 34, 121, 23, 72, 92, 50, 106, 70, 62, 12, 93, 7, 66, 52, 22, 81, 14, 47, 101, 64, 61, 90, 28, 41, 40, 99, 111, 74, 98, 94, 63, 120, 33, 45, 122, 123, 48, 82, 32, 0, 42, 57, 96, 110, 31, 71, 39, 44, 87, 5, 26, 54, 102]","[5, 7, 10, 14, 18, 22, 26, 27, 28, 32, 36, 39, 42, 45, 47, 48, 52, 54, 56, 62, 64, 66, 71, 72, 74, 81, 82, 91, 94, 98, 99, 102, 106, 110, 111, 120, 121, 123]"
43,"[5, 8, 7, 105, 3, 17, 46, 1, 104, 82, 118, 106, 91, 54, 102, 0, 39, 38, 19, 88, 94, 25, 85, 55, 113, 14, 18, 52, 35, 76, 57, 112, 9, 124, 123, 29, 80, 97, 33, 89, 78, 43, 22, 109, 126, 10, 34, 11, 108, 12, 96, 79, 121, 125, 86, 50, 92, 119, 42, 13, 58, 110, 60, 56]","[35, 73, 112, 30, 21, 77, 17, 88, 90, 14, 107, 113, 72, 44, 117, 31, 1, 105, 79, 47, 124, 10, 53, 28, 5, 96, 33, 119, 18, 66, 7, 83, 114, 23, 101, 13, 63, 74, 100, 85, 25, 115, 84, 103, 45, 99, 16, 2, 46, 62, 69, 81, 38, 41, 64, 126, 0, 65, 12, 19, 43, 49, 111, 67]","[0, 1, 5, 7, 10, 12, 13, 14, 17, 18, 19, 25, 33, 35, 38, 43, 46, 79, 85, 88, 96, 105, 112, 113, 119, 124, 126]"
44,"[26, 109, 77, 7, 110, 114, 125, 38, 98, 90, 57, 68, 72, 18, 13, 29, 82, 118, 30, 42, 31, 75, 21, 4, 37, 65, 56, 35, 8, 100, 105, 113, 5, 78, 70, 87, 92, 67, 59, 25, 9, 16, 79, 46, 6, 47, 55, 23, 44, 66, 49, 1, 20, 64, 40, 28, 48, 34, 115, 97, 85, 91, 22, 95]","[27, 117, 112, 38, 121, 98, 123, 43, 26, 88, 94, 35, 41, 29, 122, 116, 106, 73, 93, 36, 104, 126, 47, 12, 80, 58, 60, 84, 72, 18, 46, 32, 83, 119, 95, 52, 7, 53, 65, 127, 89, 86, 50, 109, 33, 39, 90, 107, 19, 111, 71, 61, 14, 96, 124, 2, 100, 118, 45, 15, 97, 17, 51, 34]","[7, 18, 26, 29, 34, 35, 38, 46, 47, 65, 72, 90, 95, 97, 98, 100, 109, 118]"
45,"[82, 6, 108, 31, 55, 89, 75, 40, 96, 45, 118, 44, 18, 116, 125, 81, 59, 65, 28, 14, 0, 117, 98, 91, 12, 35, 103, 120, 24, 99, 84, 43, 101, 66, 11, 5, 27, 53, 88, 104, 64, 62, 105, 70, 54, 2, 113, 50, 74, 49, 67, 114, 22, 1, 21, 85, 29, 77, 87, 63, 26, 111, 46, 79]","[35, 73, 18, 11, 5, 40, 113, 95, 2, 122, 103, 4, 104, 87, 58, 28, 125, 47, 118, 97, 85, 52, 124, 1, 72, 108, 44, 26, 55, 50, 81, 64, 117, 78, 92, 37, 76, 43, 66, 0, 98, 63, 91, 12, 75, 27, 53, 62, 99, 33, 45, 14, 20, 77, 105, 89, 101, 65, 84, 82, 49, 59, 21, 102]","[0, 1, 2, 5, 11, 12, 14, 18, 21, 26, 27, 28, 35, 40, 43, 44, 45, 49, 50, 53, 55, 59, 62, 63, 64, 65, 66, 75, 77, 81, 82, 84, 85, 87, 89, 91, 98, 99, 101, 103, 104, 105, 108, 113, 117, 118, 125]"
46,"[47, 75, 82, 0, 40, 46, 1, 6, 61, 66, 27, 55, 116, 71, 126, 12, 123, 69, 107, 49, 112, 28, 77, 120, 30, 88, 16, 91, 15, 21, 36, 124, 13, 81, 34, 70, 17, 68, 85, 22, 95, 53, 51, 39, 80, 5, 7, 106, 89, 19, 60, 44, 72, 25, 9, 64, 97, 42, 58, 35, 114, 57, 115, 59]","[71, 54, 96, 34, 27, 81, 0, 68, 63, 18, 20, 58, 44, 13, 113, 21, 117, 72, 127, 35, 75, 78, 89, 86, 17, 97, 110, 47, 24, 41, 12, 65, 92, 73, 74, 60, 120, 3, 7, 93, 108, 111, 26, 1, 48, 50, 116, 123, 14, 126, 80, 107, 38, 4, 98, 16, 46, 100, 90, 105, 11, 52, 31, 114]","[0, 1, 7, 12, 13, 16, 17, 21, 27, 34, 35, 44, 46, 47, 58, 60, 68, 71, 72, 75, 80, 81, 89, 97, 107, 114, 116, 120, 123, 126]"
47,"[17, 23, 27, 1, 67, 111, 69, 112, 19, 100, 45, 37, 21, 29, 14, 9, 116, 30, 85, 54, 117, 75, 108, 79, 11, 4, 33, 109, 114, 102, 90, 127, 55, 2, 34, 68, 74, 92, 97, 120, 47, 32, 78, 16, 8, 91, 6, 26, 89, 86, 76, 94, 15, 77, 13, 80, 18, 52, 25, 115, 64, 98, 124, 87]","[127, 65, 21, 48, 19, 20, 84, 1, 123, 87, 103, 33, 125, 79, 16, 105, 27, 64, 94, 109, 117, 23, 69, 25, 9, 45, 88, 90, 47, 5, 54, 74, 116, 102, 98, 12, 80, 37, 4, 106, 8, 96, 115, 18, 67, 95, 70, 60, 14, 89, 52, 26, 39, 34, 86, 44, 43, 112, 114, 29, 120, 75, 13, 72]","[1, 4, 8, 9, 13, 14, 16, 18, 19, 21, 23, 25, 26, 27, 29, 33, 34, 37, 45, 47, 52, 54, 64, 67, 69, 74, 75, 79, 80, 86, 87, 89, 90, 94, 98, 102, 109, 112, 114, 115, 116, 117, 120, 127]"
48,"[70, 41, 29, 23, 78, 32, 79, 125, 95, 63, 112, 39, 14, 100, 51, 20, 94, 98, 97, 52, 5, 73, 1, 75, 103, 62, 71, 88, 67, 69, 49, 127, 25, 99, 64, 17, 19, 45, 44, 80, 85, 89, 114, 34, 3, 50, 55, 12, 111, 9, 7, 38, 90, 53, 28, 82, 46, 36, 24, 65, 108, 119, 110, 40]","[103, 116, 24, 105, 82, 114, 56, 88, 39, 74, 63, 104, 36, 99, 32, 22, 61, 71, 51, 26, 72, 79, 57, 41, 43, 29, 83, 54, 62, 5, 106, 94, 64, 37, 110, 49, 98, 127, 112, 91, 3, 9, 84, 76, 10, 77, 8, 60, 34, 40, 78, 93, 44, 2, 102, 12, 45, 87, 1, 118, 19, 53, 125, 97]","[1, 3, 5, 9, 12, 19, 24, 29, 32, 34, 36, 39, 40, 41, 44, 45, 49, 51, 53, 62, 63, 64, 71, 78, 79, 82, 88, 94, 97, 98, 99, 103, 110, 112, 114, 125, 127]"
49,"[94, 92, 8, 3, 95, 14, 49, 69, 44, 105, 77, 74, 23, 81, 36, 35, 126, 127, 96, 123, 76, 62, 72, 104, 118, 65, 28, 70, 102, 4, 54, 0, 10, 12, 98, 122, 60, 108, 33, 84, 40, 87, 110, 43, 15, 97, 29, 16, 93, 83, 18, 11, 99, 64, 34, 75, 48, 53, 86, 125, 85, 116, 90, 66]","[121, 40, 44, 52, 94, 72, 76, 105, 60, 100, 104, 106, 83, 65, 91, 110, 95, 122, 20, 10, 99, 54, 57, 1, 15, 18, 66, 12, 14, 126, 28, 42, 3, 127, 56, 125, 88, 77, 6, 48, 5, 101, 17, 37, 113, 108, 120, 43, 67, 68, 51, 7, 11, 33, 29, 32, 8, 13, 90, 35, 23, 118, 34, 85]","[3, 8, 10, 11, 12, 14, 15, 18, 23, 28, 29, 33, 34, 35, 40, 43, 44, 48, 54, 60, 65, 66, 72, 76, 77, 83, 85, 90, 94, 95, 99, 104, 105, 108, 110, 118, 122, 125, 126, 127]"
50,"[49, 34, 40, 27, 1, 57, 46, 122, 73, 93, 77, 58, 42, 0, 36, 109, 96, 115, 98, 79, 8, 126, 68, 97, 102, 92, 60, 78, 24, 59, 26, 80, 100, 101, 85, 6, 39, 44, 94, 52, 56, 43, 107, 28, 114, 76, 11, 21, 65, 75, 63, 10, 104, 95, 23, 62, 103, 14, 16, 3, 118, 125, 5, 123]","[108, 43, 105, 23, 36, 26, 114, 104, 62, 6, 24, 92, 1, 7, 83, 5, 89, 28, 107, 42, 34, 110, 39, 64, 122, 87, 53, 55, 68, 40, 52, 106, 2, 78, 103, 56, 111, 98, 85, 79, 124, 60, 116, 15, 119, 27, 3, 54, 47, 126, 118, 65, 113, 100, 125, 49, 57, 9, 46, 32, 38, 123, 67, 95]","[1, 3, 5, 6, 23, 24, 26, 27, 28, 34, 36, 39, 40, 42, 43, 46, 49, 52, 56, 57, 60, 62, 65, 68, 78, 79, 85, 92, 95, 98, 100, 103, 104, 107, 114, 118, 122, 123, 125, 126]"
51,"[24, 41, 100, 35, 125, 3, 107, 51, 80, 82, 123, 71, 93, 47, 13, 14, 55, 30, 86, 64, 70, 122, 67, 38, 88, 8, 99, 117, 76, 89, 26, 29, 27, 39, 45, 102, 0, 53, 124, 7, 31, 79, 56, 23, 52, 75, 20, 42, 101, 108, 43, 33, 95, 69, 61, 98, 78, 115, 54, 40, 105, 87, 19, 44]","[1, 13, 122, 37, 35, 91, 54, 6, 89, 71, 50, 58, 16, 104, 116, 5, 25, 0, 95, 73, 2, 126, 110, 97, 103, 12, 90, 117, 72, 17, 53, 3, 43, 60, 68, 11, 109, 107, 105, 4, 62, 65, 34, 46, 81, 82, 40, 84, 106, 75, 74, 78, 9, 45, 15, 123, 111, 48, 41, 119, 83, 125, 28, 96]","[0, 3, 13, 35, 40, 41, 43, 45, 53, 54, 71, 75, 78, 82, 89, 95, 105, 107, 117, 122, 123, 125]"
52,"[89, 51, 33, 37, 49, 0, 84, 4, 65, 87, 125, 67, 90, 7, 19, 68, 11, 17, 46, 106, 39, 82, 62, 126, 120, 72, 45, 86, 93, 16, 50, 54, 105, 104, 55, 36, 58, 73, 43, 57, 103, 94, 76, 75, 70, 64, 127, 85, 53, 10, 35, 107, 31, 113, 47, 24, 124, 32, 108, 26, 60, 42, 74, 80]","[96, 34, 10, 67, 6, 86, 87, 82, 78, 15, 54, 59, 75, 23, 89, 88, 28, 99, 107, 27, 69, 94, 70, 120, 29, 46, 63, 71, 47, 83, 52, 122, 115, 7, 36, 13, 119, 116, 18, 112, 93, 80, 55, 8, 2, 51, 30, 9, 33, 60, 111, 38, 20, 21, 17, 35, 14, 81, 5, 101, 26, 19, 25, 39]","[7, 10, 17, 19, 26, 33, 35, 36, 39, 46, 47, 51, 54, 55, 60, 67, 70, 75, 80, 82, 86, 87, 89, 93, 94, 107, 120]"
53,"[115, 62, 77, 59, 8, 48, 85, 117, 63, 79, 34, 32, 3, 49, 105, 33, 23, 52, 57, 96, 121, 94, 90, 61, 27, 92, 30, 4, 64, 81, 20, 29, 106, 10, 98, 88, 60, 2, 45, 1, 46, 56, 26, 107, 19, 25, 82, 97, 36, 103, 100, 16, 110, 28, 70, 114, 80, 41, 84, 122, 53, 65, 76, 11]","[126, 16, 120, 111, 30, 86, 41, 42, 71, 7, 3, 74, 88, 89, 54, 67, 14, 121, 100, 73, 26, 77, 2, 103, 81, 83, 55, 6, 33, 13, 40, 69, 17, 85, 123, 80, 118, 29, 92, 1, 50, 39, 72, 84, 45, 46, 87, 4, 75, 34, 57, 95, 32, 117, 15, 76, 109, 66, 99, 61, 27, 112, 98, 104]","[1, 2, 3, 4, 16, 26, 27, 29, 30, 32, 33, 34, 41, 45, 46, 57, 61, 76, 77, 80, 81, 84, 85, 88, 92, 98, 100, 103, 117, 121]"
54,"[60, 111, 21, 57, 87, 100, 80, 20, 40, 63, 56, 90, 8, 76, 108, 94, 82, 73, 121, 45, 97, 65, 29, 34, 43, 114, 127, 72, 35, 4, 12, 125, 1, 123, 109, 105, 31, 5, 91, 124, 0, 99, 103, 78, 26, 6, 101, 92, 52, 10, 59, 41, 18, 36, 55, 96, 13, 42, 49, 28, 23, 66, 38, 2]","[90, 79, 63, 78, 29, 76, 106, 16, 103, 38, 48, 64, 82, 89, 73, 61, 60, 62, 21, 26, 18, 43, 2, 22, 52, 95, 70, 56, 102, 32, 33, 114, 53, 4, 111, 101, 15, 20, 113, 30, 3, 84, 44, 110, 119, 35, 68, 7, 91, 118, 57, 31, 55, 112, 14, 75, 0, 77, 121, 115, 46, 105, 104, 108]","[0, 2, 4, 18, 20, 21, 26, 29, 31, 35, 38, 43, 52, 55, 56, 57, 60, 63, 73, 76, 78, 82, 90, 91, 101, 103, 105, 108, 111, 114, 121]"
55,"[54, 42, 53, 36, 27, 101, 62, 3, 32, 20, 93, 122, 12, 69, 97, 46, 66, 5, 47, 19, 48, 10, 22, 6, 116, 91, 35, 63, 75, 45, 96, 14, 82, 59, 72, 102, 33, 76, 15, 23, 99, 4, 65, 52, 81, 114, 113, 94, 1, 43, 80, 24, 104, 31, 95, 49, 44, 120, 51, 118, 103, 106, 86, 8]","[86, 59, 83, 27, 13, 21, 85, 100, 98, 70, 18, 46, 0, 78, 25, 88, 19, 115, 10, 87, 2, 64, 117, 84, 121, 80, 33, 20, 65, 60, 110, 31, 125, 92, 63, 109, 57, 68, 74, 123, 67, 34, 50, 73, 41, 40, 42, 38, 56, 124, 37, 1, 29, 111, 119, 126, 91, 77, 61, 36, 6, 107, 17, 58]","[1, 6, 10, 19, 20, 27, 31, 33, 36, 42, 46, 59, 63, 65, 80, 86, 91]"
56,"[41, 9, 111, 20, 69, 47, 17, 35, 26, 25, 89, 93, 2, 37, 22, 118, 84, 5, 21, 126, 100, 60, 107, 104, 33, 1, 63, 86, 46, 12, 39, 29, 80, 3, 0, 77, 6, 108, 59, 76, 55, 30, 27, 14, 48, 4, 28, 53, 127, 11, 52, 58, 67, 92, 44, 122, 23, 51, 98, 94, 49, 90, 32, 31]","[92, 116, 84, 72, 88, 100, 94, 64, 52, 98, 122, 58, 106, 78, 112, 8, 111, 67, 27, 45, 2, 90, 125, 5, 50, 6, 42, 66, 39, 53, 16, 113, 69, 17, 123, 102, 93, 7, 13, 127, 68, 105, 91, 119, 37, 49, 3, 28, 20, 55, 35, 71, 99, 124, 121, 54, 70, 47, 120, 26, 126, 75, 25, 32]","[2, 3, 5, 6, 17, 20, 25, 26, 27, 28, 32, 35, 37, 39, 47, 49, 52, 53, 55, 58, 67, 69, 84, 90, 92, 93, 94, 98, 100, 111, 122, 126, 127]"
57,"[8, 71, 59, 118, 45, 96, 108, 7, 30, 73, 11, 92, 50, 28, 70, 19, 110, 0, 26, 53, 106, 49, 25, 88, 10, 121, 67, 1, 105, 61, 65, 4, 74, 86, 46, 37, 54, 16, 34, 38, 52, 100, 29, 39, 85, 27, 6, 94, 77, 107, 98, 33, 66, 40, 55, 14, 58, 44, 103, 2, 20, 112, 75, 114]","[95, 18, 101, 50, 108, 54, 126, 104, 62, 16, 76, 15, 99, 83, 115, 30, 3, 80, 7, 72, 125, 84, 117, 85, 28, 127, 79, 27, 56, 89, 78, 13, 2, 9, 68, 61, 22, 17, 5, 43, 40, 35, 102, 75, 121, 12, 63, 51, 23, 42, 109, 39, 21, 59, 49, 29, 81, 77, 48, 47, 73, 123, 113, 97]","[2, 7, 16, 27, 28, 29, 30, 39, 40, 49, 50, 54, 59, 61, 73, 75, 77, 85, 108, 121]"
58,"[32, 108, 121, 15, 20, 54, 115, 109, 19, 48, 9, 81, 57, 127, 27, 98, 60, 21, 47, 100, 76, 23, 126, 1, 36, 52, 2, 25, 66, 70, 31, 50, 46, 78, 14, 116, 45, 96, 92, 120, 93, 72, 4, 10, 17, 49, 103, 29, 82, 69, 102, 88, 125, 13, 110, 118, 18, 80, 62, 55, 39, 67, 94, 59]","[52, 74, 88, 111, 19, 116, 110, 78, 55, 121, 14, 73, 36, 104, 49, 86, 82, 102, 22, 124, 67, 51, 43, 10, 27, 123, 60, 79, 100, 127, 87, 2, 23, 98, 96, 44, 30, 24, 63, 89, 45, 90, 9, 108, 46, 68, 120, 64, 99, 26, 17, 91, 1, 32, 29, 21, 70, 56, 48, 62, 83, 103, 39, 57]","[1, 2, 9, 10, 14, 17, 19, 21, 23, 27, 29, 32, 36, 39, 45, 46, 48, 49, 52, 55, 57, 60, 62, 67, 70, 78, 82, 88, 96, 98, 100, 102, 103, 108, 110, 116, 120, 121, 127]"
59,"[115, 40, 65, 102, 105, 47, 27, 31, 121, 69, 54, 76, 67, 35, 15, 110, 118, 50, 32, 84, 42, 87, 108, 62, 9, 63, 94, 20, 106, 99, 86, 81, 122, 12, 89, 79, 68, 38, 7, 36, 75, 6, 55, 83, 48, 97, 95, 23, 1, 16, 93, 74, 70, 28, 77, 13, 72, 24, 92, 91, 5, 37, 57, 64]","[35, 50, 99, 76, 96, 42, 5, 71, 46, 12, 17, 28, 14, 6, 100, 87, 101, 27, 3, 37, 77, 48, 32, 52, 38, 80, 102, 49, 25, 118, 62, 31, 105, 59, 98, 20, 119, 18, 55, 45, 121, 24, 57, 56, 95, 54, 47, 73, 1, 70, 9, 117, 67, 41, 2, 33, 39, 92, 106, 90, 65, 88, 8, 108]","[1, 5, 6, 9, 12, 20, 24, 27, 28, 31, 32, 35, 37, 38, 42, 47, 48, 50, 54, 55, 57, 62, 65, 67, 70, 76, 77, 87, 92, 95, 99, 102, 105, 106, 108, 118, 121]"
60,"[49, 35, 9, 18, 108, 52, 69, 33, 29, 44, 80, 50, 94, 70, 64, 27, 32, 48, 59, 119, 92, 116, 78, 41, 76, 54, 19, 90, 61, 83, 13, 4, 42, 67, 101, 115, 22, 37, 102, 62, 11, 25, 85, 47, 56, 127, 55, 71, 2, 15, 122, 107, 100, 39, 30, 84, 38, 58, 34, 6, 43, 120, 72, 68]","[49, 114, 22, 29, 76, 94, 39, 4, 67, 16, 122, 36, 55, 47, 84, 74, 20, 6, 79, 100, 88, 44, 15, 14, 69, 119, 32, 64, 63, 52, 53, 72, 34, 102, 118, 57, 30, 11, 125, 35, 85, 21, 71, 83, 43, 18, 59, 40, 48, 50, 19, 60, 2, 37, 101, 86, 70, 98, 9, 93, 116, 58, 33, 61]","[2, 4, 6, 9, 11, 15, 18, 19, 22, 29, 30, 32, 33, 34, 35, 37, 39, 43, 44, 47, 48, 49, 50, 52, 55, 58, 59, 61, 64, 67, 69, 70, 71, 72, 76, 83, 84, 85, 94, 100, 101, 102, 116, 119, 122]"
61,"[87, 24, 107, 84, 36, 60, 94, 63, 57, 52, 82, 15, 13, 49, 114, 39, 0, 89, 74, 78, 44, 5, 102, 9, 28, 80, 90, 59, 27, 53, 73, 123, 124, 33, 119, 7, 45, 2, 50, 108, 75, 37, 69, 62, 66, 64, 79, 4, 14, 76, 29, 25, 101, 40, 20, 111, 51, 35, 121, 103, 96, 47, 58, 126]","[92, 88, 64, 83, 14, 33, 79, 44, 126, 119, 75, 11, 56, 60, 20, 69, 13, 118, 110, 63, 114, 102, 29, 74, 7, 113, 41, 97, 34, 2, 58, 89, 23, 82, 78, 87, 100, 19, 52, 57, 53, 77, 40, 5, 15, 107, 47, 105, 98, 67, 108, 27, 35, 54, 59, 55, 127, 91, 94, 16, 9, 18, 25, 8]","[2, 5, 7, 9, 13, 14, 15, 20, 25, 27, 29, 33, 35, 40, 44, 47, 52, 53, 57, 58, 59, 60, 63, 64, 69, 74, 75, 78, 79, 82, 87, 89, 94, 102, 107, 108, 114, 119, 126]"
62,"[86, 117, 27, 89, 65, 115, 24, 12, 40, 62, 77, 88, 2, 97, 21, 110, 64, 107, 34, 76, 37, 69, 108, 91, 124, 51, 72, 7, 75, 30, 120, 106, 70, 18, 10, 95, 116, 50, 122, 71, 94, 61, 41, 56, 67, 6, 59, 42, 111, 126, 19, 16, 92, 105, 104, 43, 81, 17, 29, 23, 8, 102, 48, 103]","[117, 88, 63, 32, 105, 23, 19, 87, 36, 67, 118, 112, 17, 73, 123, 35, 4, 7, 94, 15, 18, 57, 25, 84, 3, 100, 43, 66, 83, 114, 98, 44, 46, 41, 42, 121, 20, 37, 62, 40, 8, 52, 29, 93, 31, 61, 6, 30, 49, 21, 71, 80, 54, 16, 53, 28, 47, 60, 70, 120, 38, 39, 34, 26]","[6, 7, 8, 16, 17, 18, 19, 21, 23, 29, 30, 34, 37, 40, 41, 42, 43, 61, 62, 67, 70, 71, 88, 94, 105, 117, 120]"
63,"[22, 70, 26, 109, 94, 0, 29, 116, 19, 57, 3, 113, 59, 6, 101, 31, 54, 64, 118, 28, 91, 110, 25, 41, 16, 17, 12, 44, 51, 126, 82, 5, 72, 115, 84, 43, 7, 68, 98, 120, 102, 71, 14, 21, 85, 10, 47, 74, 121, 81, 56, 20, 87, 48, 15, 37, 32, 36, 96, 49, 67, 42, 30, 46]","[64, 121, 120, 62, 71, 46, 68, 84, 56, 82, 115, 78, 34, 59, 49, 57, 54, 116, 90, 47, 48, 21, 110, 102, 119, 75, 126, 42, 2, 67, 92, 3, 25, 127, 12, 32, 89, 74, 73, 17, 5, 30, 99, 26, 51, 1, 20, 58, 28, 100, 70, 0, 18, 118, 109, 91, 6, 36, 16, 113, 72, 106, 10, 66]","[0, 3, 5, 6, 10, 12, 16, 17, 20, 21, 25, 26, 28, 30, 32, 36, 42, 46, 47, 48, 49, 51, 54, 56, 57, 59, 64, 67, 68, 70, 71, 72, 74, 82, 84, 91, 102, 109, 110, 113, 115, 116, 118, 120, 121, 126]"
64,"[4, 0, 113, 53, 97, 107, 15, 18, 84, 54, 82, 110, 74, 11, 13, 39, 92, 115, 87, 116, 28, 37, 106, 99, 67, 111, 90, 88, 21, 96, 51, 64, 47, 26, 36, 30, 5, 3, 78, 9, 32, 75, 98, 73, 14, 89, 71, 2, 27, 19, 77, 69, 12, 49, 20, 63, 59, 101, 85, 65, 120, 124, 80, 91]","[19, 11, 96, 106, 127, 39, 2, 121, 87, 18, 51, 59, 76, 82, 41, 123, 13, 79, 46, 57, 77, 40, 15, 60, 93, 48, 9, 63, 4, 70, 73, 10, 108, 116, 102, 122, 95, 24, 113, 21, 36, 20, 12, 94, 99, 29, 83, 104, 28, 114, 117, 86, 118, 50, 14, 88, 8, 16, 105, 109, 52, 27, 55, 61]","[2, 4, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 27, 28, 36, 39, 51, 59, 63, 73, 77, 82, 87, 88, 96, 99, 106, 113, 116]"
65,"[22, 72, 41, 42, 8, 113, 92, 108, 11, 39, 99, 27, 53, 80, 28, 16, 13, 88, 76, 81, 46, 43, 3, 2, 26, 40, 12, 0, 115, 10, 50, 117, 52, 44, 25, 111, 107, 96, 85, 78, 63, 23, 89, 59, 18, 124, 32, 126, 90, 84, 101, 122, 20, 34, 60, 93, 98, 69, 51, 6, 95, 21, 64, 97]","[62, 93, 117, 8, 61, 114, 98, 57, 16, 1, 47, 119, 99, 121, 32, 11, 66, 92, 110, 38, 53, 113, 77, 44, 85, 112, 28, 25, 17, 107, 71, 73, 68, 67, 116, 4, 56, 19, 120, 87, 29, 31, 7, 127, 50, 79, 72, 75, 27, 83, 21, 24, 109, 108, 80, 118, 26, 34, 58, 9, 86, 0, 22, 94]","[0, 8, 11, 16, 21, 22, 25, 26, 27, 28, 32, 34, 44, 50, 53, 72, 80, 85, 92, 93, 98, 99, 107, 108, 113, 117]"
66,"[42, 117, 88, 35, 1, 25, 45, 85, 123, 105, 27, 54, 74, 46, 47, 24, 40, 36, 52, 29, 30, 53, 93, 122, 99, 39, 98, 63, 121, 50, 94, 72, 89, 84, 70, 2, 126, 112, 75, 69, 34, 95, 37, 71, 125, 66, 118, 67, 12, 33, 62, 101, 115, 65, 13, 55, 17, 14, 51, 76, 10, 120, 92, 59]","[74, 27, 85, 12, 125, 5, 96, 118, 104, 63, 40, 81, 57, 71, 69, 112, 92, 30, 65, 107, 75, 121, 99, 76, 1, 116, 39, 32, 115, 38, 51, 16, 17, 67, 25, 109, 59, 10, 28, 89, 33, 58, 42, 61, 13, 82, 119, 11, 54, 14, 45, 77, 34, 44, 24, 37, 46, 36, 70, 84, 80, 101, 29, 35]","[1, 10, 12, 13, 14, 17, 24, 25, 27, 29, 30, 33, 34, 35, 36, 37, 39, 40, 42, 45, 46, 51, 54, 59, 63, 65, 67, 69, 70, 71, 74, 75, 76, 84, 85, 89, 92, 99, 101, 112, 115, 118, 121, 125]"
67,"[87, 120, 29, 81, 48, 4, 89, 60, 106, 44, 76, 119, 125, 68, 55, 95, 69, 1, 78, 50, 56, 59, 114, 54, 5, 13, 108, 2, 115, 98, 28, 94, 20, 118, 116, 21, 45, 80, 117, 25, 65, 27, 74, 110, 58, 96, 77, 23, 16, 52, 93, 26, 71, 17, 22, 83, 49, 79, 47, 46, 9, 123, 102, 91]","[30, 79, 52, 6, 16, 38, 72, 119, 17, 90, 63, 95, 82, 51, 76, 22, 48, 32, 88, 124, 126, 15, 41, 7, 122, 93, 21, 10, 68, 19, 106, 108, 65, 99, 89, 111, 84, 64, 46, 112, 85, 44, 8, 14, 103, 115, 75, 31, 57, 13, 1, 118, 83, 23, 55, 60, 113, 20, 40, 67, 39, 11, 18, 107]","[1, 13, 16, 17, 20, 21, 22, 23, 44, 46, 48, 52, 55, 60, 65, 68, 76, 79, 83, 89, 93, 95, 106, 108, 115, 118, 119]"
68,"[33, 92, 85, 97, 21, 116, 15, 29, 24, 9, 42, 58, 72, 73, 5, 70, 25, 90, 108, 18, 59, 91, 66, 67, 19, 96, 88, 3, 99, 62, 71, 44, 68, 114, 89, 74, 117, 121, 107, 60, 53, 51, 27, 76, 34, 17, 122, 82, 1, 50, 106, 46, 4, 119, 95, 54, 75, 112, 52, 37, 13, 100, 28, 45]","[17, 23, 62, 9, 120, 22, 55, 61, 10, 105, 77, 49, 78, 84, 89, 36, 70, 124, 48, 79, 106, 101, 32, 34, 38, 109, 8, 66, 81, 97, 63, 56, 47, 42, 126, 93, 69, 7, 113, 43, 39, 87, 21, 115, 6, 0, 20, 123, 25, 86, 104, 102, 11, 33, 50, 98, 16, 24, 112, 12, 65, 28, 76, 80]","[9, 17, 21, 24, 25, 28, 33, 34, 42, 50, 62, 66, 70, 76, 89, 97, 106, 112]"
69,"[28, 3, 77, 42, 16, 67, 63, 24, 78, 23, 109, 45, 118, 7, 88, 30, 43, 76, 59, 21, 99, 37, 52, 25, 5, 19, 89, 115, 35, 95, 93, 13, 2, 121, 57, 80, 8, 17, 101, 98, 1, 106, 9, 96, 82, 111, 10, 22, 107, 113, 20, 38, 56, 79, 36, 91, 74, 31, 126, 29, 64, 71, 55, 60]","[120, 48, 73, 49, 45, 40, 82, 21, 7, 34, 31, 109, 41, 72, 83, 22, 47, 118, 99, 74, 100, 101, 54, 106, 116, 127, 123, 124, 75, 50, 44, 112, 96, 108, 76, 0, 10, 29, 94, 3, 11, 58, 39, 8, 92, 59, 30, 51, 37, 16, 9, 97, 28, 86, 2, 24, 55, 19, 122, 105, 67, 1, 63, 102]","[1, 2, 3, 7, 8, 9, 10, 16, 19, 21, 22, 24, 28, 29, 30, 31, 37, 45, 55, 59, 63, 67, 74, 76, 82, 96, 99, 101, 106, 109, 118]"
70,"[22, 105, 56, 122, 33, 11, 121, 42, 58, 110, 66, 7, 46, 104, 123, 99, 108, 52, 76, 92, 115, 124, 28, 75, 38, 119, 80, 67, 81, 47, 17, 49, 39, 71, 101, 82, 94, 68, 117, 78, 50, 69, 8, 21, 83, 62, 126, 61, 16, 51, 30, 10, 116, 98, 91, 114, 113, 34, 20, 73, 118, 63, 0, 35]","[39, 72, 40, 105, 126, 25, 93, 120, 29, 81, 7, 99, 102, 19, 97, 50, 90, 121, 57, 18, 41, 22, 86, 51, 95, 11, 8, 104, 80, 34, 92, 17, 61, 84, 124, 52, 33, 58, 116, 122, 38, 68, 0, 83, 44, 30, 49, 66, 73, 13, 27, 56, 28, 70, 101, 78, 62, 94, 53, 69, 63, 125, 67, 24]","[0, 7, 8, 11, 17, 22, 28, 30, 33, 34, 38, 39, 49, 50, 51, 52, 56, 58, 61, 62, 63, 66, 67, 68, 69, 73, 78, 80, 81, 83, 92, 94, 99, 101, 104, 105, 116, 121, 122, 124, 126]"
71,"[46, 93, 57, 66, 9, 83, 126, 120, 95, 16, 118, 42, 90, 37, 39, 96, 85, 31, 3, 17, 10, 45, 114, 100, 58, 87, 116, 106, 78, 113, 89, 51, 19, 86, 111, 105, 65, 53, 59, 55, 88, 84, 44, 82, 68, 27, 121, 11, 26, 108, 63, 30, 48, 12, 110, 15, 77, 29, 73, 20, 56, 119, 8, 32]","[23, 30, 37, 57, 65, 47, 106, 50, 25, 15, 49, 28, 77, 22, 43, 127, 12, 39, 112, 81, 52, 90, 2, 36, 35, 62, 115, 101, 109, 21, 103, 97, 92, 80, 104, 19, 67, 69, 29, 96, 86, 122, 117, 73, 125, 120, 99, 83, 20, 60, 3, 33, 61, 91, 38, 89, 26, 87, 123, 0, 6, 41, 14, 72]","[3, 12, 15, 19, 20, 26, 29, 30, 37, 39, 57, 65, 73, 77, 83, 86, 87, 89, 90, 96, 106, 120]"
72,"[37, 123, 98, 88, 11, 6, 14, 25, 23, 79, 59, 8, 18, 74, 110, 119, 109, 118, 7, 117, 78, 27, 56, 81, 101, 1, 47, 32, 48, 77, 46, 70, 52, 96, 116, 40, 71, 122, 85, 26, 2, 112, 125, 49, 42, 10, 36, 13, 22, 102, 68, 38, 19, 73, 89, 45, 62, 43, 55, 35, 121, 58, 114, 24]","[10, 90, 88, 104, 107, 116, 8, 81, 42, 109, 125, 56, 57, 89, 26, 92, 21, 28, 99, 87, 41, 82, 79, 86, 4, 18, 72, 123, 80, 91, 39, 50, 100, 32, 40, 46, 33, 3, 69, 30, 84, 115, 62, 74, 117, 127, 108, 35, 55, 101, 63, 96, 0, 53, 60, 25, 75, 49, 95, 27, 23, 94, 6, 98]","[6, 8, 10, 18, 23, 25, 26, 27, 32, 35, 40, 42, 46, 49, 55, 56, 62, 74, 79, 81, 88, 89, 96, 98, 101, 109, 116, 117, 123, 125]"
73,"[17, 89, 0, 40, 25, 32, 54, 114, 59, 39, 49, 3, 100, 85, 78, 84, 44, 81, 69, 123, 7, 13, 1, 43, 103, 30, 27, 127, 122, 53, 4, 28, 99, 126, 110, 46, 64, 11, 94, 41, 58, 5, 125, 113, 111, 77, 36, 104, 42, 62, 10, 63, 72, 8, 90, 73, 61, 22, 109, 79, 82, 51, 6, 118]","[96, 9, 18, 83, 81, 22, 84, 98, 38, 122, 35, 27, 29, 36, 106, 10, 37, 66, 21, 76, 56, 57, 101, 16, 53, 55, 59, 24, 60, 74, 12, 8, 95, 92, 67, 121, 97, 80, 126, 11, 87, 34, 25, 104, 33, 113, 105, 2, 116, 124, 119, 70, 71, 72, 39, 115, 93, 100, 88, 31, 107, 117, 85, 3]","[3, 8, 10, 11, 22, 25, 27, 36, 39, 53, 59, 72, 81, 84, 85, 100, 104, 113, 122, 126]"
74,"[74, 110, 68, 46, 84, 86, 98, 6, 10, 23, 116, 48, 117, 59, 31, 109, 36, 51, 55, 27, 29, 14, 20, 40, 124, 106, 47, 9, 2, 42, 71, 26, 92, 11, 44, 115, 111, 24, 101, 50, 70, 28, 17, 65, 76, 78, 81, 89, 94, 1, 122, 121, 39, 72, 45, 100, 112, 102, 62, 113, 126, 18, 38, 88]","[29, 98, 46, 11, 15, 24, 7, 42, 117, 106, 99, 60, 78, 108, 116, 72, 18, 110, 123, 20, 45, 31, 121, 5, 37, 23, 68, 69, 113, 94, 71, 38, 12, 61, 51, 120, 82, 127, 81, 102, 104, 16, 6, 115, 95, 28, 84, 59, 10, 73, 70, 80, 79, 32, 96, 22, 50, 25, 47, 49, 107, 26, 13, 27]","[6, 10, 11, 18, 20, 23, 24, 26, 27, 28, 29, 31, 38, 42, 45, 46, 47, 50, 51, 59, 68, 70, 71, 72, 78, 81, 84, 94, 98, 102, 106, 110, 113, 115, 116, 117, 121]"
75,"[82, 37, 121, 60, 8, 56, 98, 39, 14, 112, 87, 119, 85, 71, 36, 33, 11, 22, 81, 123, 83, 91, 99, 43, 126, 42, 9, 49, 64, 4, 68, 72, 84, 26, 78, 10, 5, 27, 76, 51, 12, 93, 48, 38, 75, 20, 25, 63, 124, 62, 21, 73, 47, 100, 46, 107, 103, 23, 28, 34, 61, 104, 53, 52]","[10, 23, 9, 119, 33, 31, 69, 78, 27, 13, 29, 63, 56, 26, 24, 60, 120, 6, 77, 99, 8, 86, 0, 80, 40, 50, 57, 114, 55, 42, 65, 94, 87, 82, 54, 30, 97, 122, 21, 38, 49, 102, 2, 104, 44, 52, 20, 4, 47, 39, 118, 7, 83, 109, 15, 1, 116, 115, 75, 18, 46, 124, 11, 36]","[4, 8, 9, 10, 11, 20, 21, 23, 26, 27, 33, 36, 38, 39, 42, 46, 47, 49, 52, 56, 60, 63, 75, 78, 82, 83, 87, 99, 104, 119, 124]"
76,"[43, 28, 91, 48, 52, 30, 45, 77, 44, 40, 2, 26, 5, 82, 101, 11, 47, 67, 112, 41, 49, 114, 69, 32, 92, 39, 85, 35, 68, 86, 78, 65, 23, 60, 117, 56, 75, 38, 118, 71, 58, 120, 64, 124, 14, 62, 16, 51, 127, 96, 12, 66, 24, 76, 7, 74, 10, 21, 13, 61, 108, 18, 27, 95]","[107, 57, 42, 11, 2, 45, 93, 7, 59, 83, 27, 112, 10, 21, 95, 26, 98, 104, 110, 60, 48, 18, 115, 71, 1, 3, 4, 116, 76, 75, 82, 25, 38, 100, 96, 28, 113, 47, 94, 5, 15, 24, 87, 55, 111, 105, 56, 6, 97, 92, 99, 80, 20, 117, 125, 37, 90, 119, 54, 123, 31, 50, 19, 0]","[2, 5, 7, 10, 11, 18, 21, 24, 26, 27, 28, 38, 45, 47, 48, 56, 60, 71, 75, 76, 82, 92, 95, 96, 112, 117]"
77,"[52, 40, 0, 107, 60, 91, 103, 81, 121, 85, 31, 72, 1, 80, 125, 63, 68, 109, 61, 76, 55, 22, 7, 111, 108, 93, 14, 39, 33, 15, 74, 12, 53, 106, 48, 71, 120, 46, 87, 100, 27, 102, 99, 126, 35, 62, 9, 38, 114, 64, 56, 86, 59, 84, 5, 36, 42, 25, 13, 66, 6, 49, 101, 50]","[84, 106, 72, 57, 82, 125, 34, 42, 19, 96, 89, 118, 103, 24, 23, 50, 124, 97, 17, 110, 22, 100, 107, 27, 9, 45, 43, 98, 47, 104, 109, 35, 16, 26, 60, 12, 90, 31, 69, 38, 11, 77, 95, 115, 5, 41, 44, 92, 21, 120, 25, 2, 105, 20, 78, 67, 123, 81, 83, 113, 51, 10, 122, 74]","[5, 9, 12, 22, 25, 27, 31, 35, 38, 42, 50, 60, 72, 74, 81, 84, 100, 103, 106, 107, 109, 120, 125]"
78,"[38, 19, 81, 65, 13, 100, 120, 33, 64, 66, 113, 63, 101, 107, 123, 46, 79, 109, 114, 7, 3, 91, 124, 35, 111, 60, 47, 68, 57, 4, 27, 110, 10, 5, 77, 62, 115, 117, 54, 84, 75, 44, 59, 72, 98, 83, 73, 92, 28, 82, 6, 99, 76, 58, 49, 88, 103, 9, 94, 22, 50, 40, 121, 21]","[108, 32, 116, 59, 4, 79, 104, 29, 97, 46, 100, 115, 98, 114, 83, 122, 20, 60, 7, 102, 15, 119, 35, 37, 63, 33, 21, 109, 62, 84, 85, 39, 31, 110, 44, 23, 72, 25, 61, 75, 28, 52, 55, 27, 89, 117, 17, 105, 86, 91, 53, 64, 40, 45, 6, 2, 80, 81, 47, 16, 54, 42, 120, 3]","[3, 4, 6, 7, 21, 27, 28, 33, 35, 40, 44, 46, 47, 54, 59, 60, 62, 63, 64, 72, 75, 79, 81, 83, 84, 91, 98, 100, 109, 110, 114, 115, 117, 120]"
79,"[53, 29, 12, 87, 104, 41, 63, 74, 73, 31, 92, 33, 69, 42, 46, 25, 19, 54, 101, 97, 52, 20, 39, 66, 7, 3, 55, 88, 32, 64, 28, 76, 40, 30, 44, 16, 102, 61, 113, 10, 95, 108, 37, 118, 116, 14, 77, 58, 91, 106, 62, 109, 18, 86, 59, 111, 78, 47, 21, 107, 49, 56, 115, 51]","[55, 59, 126, 89, 115, 105, 51, 107, 22, 108, 30, 100, 69, 40, 80, 91, 21, 66, 127, 12, 31, 24, 53, 7, 36, 8, 41, 117, 102, 85, 17, 120, 3, 68, 83, 38, 42, 43, 98, 58, 28, 99, 97, 9, 35, 103, 62, 44, 113, 118, 37, 49, 20, 106, 56, 10, 57, 114, 112, 104, 64, 82, 39, 73]","[3, 7, 10, 12, 20, 21, 28, 30, 31, 37, 39, 40, 41, 42, 44, 49, 51, 53, 55, 56, 58, 59, 62, 64, 66, 69, 73, 91, 97, 102, 104, 106, 107, 108, 113, 115, 118]"
80,"[16, 82, 98, 73, 97, 48, 8, 90, 104, 114, 120, 0, 34, 68, 38, 95, 46, 4, 74, 18, 6, 77, 111, 96, 50, 14, 3, 59, 28, 94, 62, 1, 9, 126, 30, 70, 78, 10, 39, 33, 81, 117, 84, 12, 122, 42, 118, 32, 103, 87, 85, 5, 112, 58, 123, 110, 109, 26, 54, 83, 105, 102, 31, 44]","[110, 4, 60, 31, 0, 28, 74, 59, 125, 48, 61, 87, 95, 54, 118, 94, 83, 45, 90, 38, 91, 73, 109, 78, 82, 51, 46, 2, 16, 85, 18, 10, 92, 56, 43, 111, 9, 70, 79, 8, 93, 3, 98, 50, 63, 53, 75, 96, 34, 104, 27, 126, 105, 84, 62, 39, 114, 42, 6, 113, 58, 29, 1, 44]","[0, 1, 3, 4, 6, 8, 9, 10, 16, 18, 28, 31, 34, 38, 39, 42, 44, 46, 48, 50, 54, 58, 59, 62, 70, 73, 74, 78, 82, 83, 84, 85, 87, 90, 94, 95, 96, 98, 104, 105, 109, 110, 111, 114, 118, 126]"
81,"[52, 46, 35, 22, 33, 103, 21, 19, 54, 40, 28, 27, 77, 127, 9, 44, 16, 39, 53, 29, 30, 65, 23, 70, 55, 118, 72, 6, 24, 0, 62, 32, 38, 69, 63, 47, 79, 67, 13, 20, 41, 66, 105, 64, 14, 112, 85, 25, 60, 100, 1, 59, 106, 113, 50, 17, 88, 82, 76, 80, 26, 92, 89, 49]","[5, 66, 94, 21, 15, 16, 85, 92, 47, 107, 105, 98, 77, 38, 99, 90, 14, 96, 45, 53, 35, 95, 42, 80, 32, 3, 9, 44, 57, 29, 91, 18, 59, 74, 33, 116, 119, 37, 4, 83, 97, 40, 52, 86, 121, 30, 76, 87, 36, 72, 54, 114, 126, 109, 17, 55, 62, 117, 102, 100, 78, 43, 101, 68]","[9, 14, 16, 17, 21, 29, 30, 32, 33, 35, 38, 40, 44, 47, 52, 53, 54, 55, 59, 62, 66, 72, 76, 77, 80, 85, 92, 100, 105]"
82,"[0, 9, 96, 11, 39, 70, 64, 105, 29, 80, 45, 82, 27, 117, 90, 46, 121, 99, 97, 42, 107, 66, 119, 108, 37, 26, 51, 8, 18, 3, 50, 47, 76, 106, 91, 24, 69, 58, 15, 12, 75, 49, 85, 7, 112, 118, 34, 55, 25, 30, 120, 38, 72, 5, 84, 104, 53, 102, 67, 101, 74, 62, 110, 71]","[27, 126, 16, 28, 50, 124, 117, 0, 7, 94, 88, 59, 18, 13, 81, 22, 25, 111, 23, 63, 47, 87, 41, 17, 20, 67, 127, 14, 61, 73, 15, 33, 85, 103, 105, 71, 56, 52, 57, 35, 83, 6, 82, 115, 86, 70, 1, 60, 21, 68, 4, 75, 26, 65, 116, 11, 9, 64, 36, 37, 100, 122, 93, 79]","[0, 7, 9, 11, 15, 18, 25, 26, 27, 37, 47, 50, 64, 67, 70, 71, 75, 82, 85, 105, 117]"
83,"[5, 3, 19, 26, 63, 92, 123, 86, 83, 121, 29, 60, 100, 0, 47, 61, 41, 126, 68, 94, 115, 111, 73, 93, 50, 10, 1, 64, 84, 37, 95, 116, 96, 51, 108, 15, 11, 62, 13, 55, 30, 57, 72, 8, 45, 104, 118, 23, 79, 103, 39, 90, 32, 78, 66, 122, 80, 88, 74, 124, 40, 54, 35, 76]","[63, 96, 39, 71, 15, 111, 87, 83, 95, 86, 54, 26, 122, 0, 22, 115, 66, 10, 107, 73, 58, 61, 91, 32, 90, 14, 34, 37, 44, 88, 93, 57, 70, 64, 40, 33, 74, 78, 46, 41, 84, 2, 82, 110, 77, 104, 5, 102, 3, 113, 125, 1, 116, 29, 9, 30, 59, 51, 72, 126, 108, 45, 120, 62]","[0, 1, 3, 5, 10, 15, 26, 29, 30, 32, 37, 39, 40, 41, 45, 51, 54, 57, 61, 62, 63, 64, 66, 72, 73, 74, 78, 83, 84, 86, 88, 90, 93, 95, 96, 104, 108, 111, 115, 116, 122, 126]"
84,"[110, 117, 67, 83, 25, 2, 27, 123, 127, 59, 57, 95, 68, 118, 73, 124, 50, 63, 71, 12, 8, 46, 106, 3, 7, 1, 16, 40, 49, 77, 55, 15, 94, 89, 125, 0, 108, 4, 80, 38, 10, 85, 79, 122, 9, 61, 11, 22, 105, 58, 18, 75, 92, 45, 69, 23, 62, 41, 26, 51, 24, 35, 52, 33]","[105, 12, 99, 67, 110, 4, 95, 8, 119, 46, 41, 103, 88, 73, 80, 111, 62, 7, 9, 24, 78, 10, 18, 21, 30, 123, 32, 19, 81, 116, 40, 36, 113, 27, 3, 37, 109, 55, 85, 1, 92, 26, 127, 106, 72, 101, 98, 38, 91, 44, 39, 22, 25, 104, 66, 75, 20, 45, 33, 120, 93, 34, 59, 108]","[1, 3, 4, 7, 8, 9, 10, 12, 18, 22, 24, 25, 26, 27, 33, 38, 40, 41, 45, 46, 55, 59, 62, 67, 73, 75, 80, 85, 92, 95, 105, 106, 108, 110, 123, 127]"
85,"[6, 67, 36, 125, 62, 56, 64, 7, 49, 103, 115, 52, 66, 13, 21, 93, 27, 110, 82, 58, 20, 16, 108, 17, 61, 2, 98, 121, 23, 92, 102, 107, 45, 78, 19, 120, 100, 112, 8, 40, 46, 55, 14, 122, 50, 124, 63, 3, 41, 90, 91, 15, 35, 9, 59, 42, 60, 76, 88, 39, 33, 0, 53, 80]","[19, 33, 82, 51, 103, 22, 64, 116, 52, 63, 127, 55, 72, 7, 100, 0, 20, 89, 3, 99, 113, 92, 115, 59, 40, 44, 28, 6, 101, 14, 80, 102, 11, 123, 56, 10, 76, 73, 50, 57, 43, 38, 18, 36, 15, 74, 16, 13, 37, 94, 24, 12, 84, 107, 61, 91, 39, 60, 62, 21, 49, 77, 122, 2]","[0, 2, 3, 6, 7, 13, 14, 15, 16, 19, 20, 21, 33, 36, 39, 40, 49, 50, 52, 55, 56, 59, 60, 61, 62, 63, 64, 76, 80, 82, 91, 92, 100, 102, 103, 107, 115, 122]"
86,"[10, 119, 45, 90, 12, 86, 66, 39, 99, 94, 97, 82, 52, 72, 120, 15, 65, 81, 30, 114, 76, 42, 61, 79, 26, 105, 27, 75, 123, 83, 98, 64, 11, 122, 6, 43, 8, 40, 41, 55, 23, 74, 58, 3, 31, 95, 13, 49, 17, 84, 77, 54, 51, 108, 89, 1, 0, 29, 63, 111, 22, 33, 24, 35]","[19, 100, 87, 102, 92, 73, 58, 112, 53, 35, 70, 52, 107, 119, 106, 48, 26, 85, 2, 47, 34, 14, 6, 117, 80, 4, 104, 12, 91, 13, 20, 56, 113, 96, 84, 18, 126, 38, 121, 60, 88, 114, 69, 46, 116, 97, 16, 71, 9, 124, 93, 120, 22, 109, 42, 29, 10, 44, 118, 63, 67, 15, 21, 11]","[6, 10, 11, 12, 13, 15, 22, 26, 29, 35, 42, 52, 58, 63, 84, 97, 114, 119, 120]"
87,"[47, 94, 0, 113, 89, 21, 105, 77, 80, 114, 12, 53, 64, 70, 10, 35, 123, 118, 30, 119, 85, 23, 111, 101, 8, 54, 125, 59, 60, 13, 14, 49, 124, 42, 65, 120, 74, 62, 108, 18, 103, 90, 9, 46, 121, 11, 81, 22, 16, 25, 93, 63, 33, 107, 102, 1, 40, 76, 45, 88, 73, 37, 7, 5]","[107, 92, 77, 102, 91, 87, 79, 76, 22, 116, 44, 111, 2, 29, 0, 51, 31, 47, 52, 10, 104, 20, 26, 112, 68, 36, 106, 14, 120, 86, 64, 95, 19, 78, 83, 118, 127, 59, 62, 71, 84, 73, 56, 80, 25, 9, 89, 35, 41, 40, 17, 61, 66, 98, 32, 37, 8, 69, 115, 109, 34, 75, 27, 21]","[0, 8, 9, 10, 14, 21, 22, 25, 35, 37, 40, 47, 59, 62, 64, 73, 76, 77, 80, 89, 102, 107, 111, 118, 120]"
88,"[71, 50, 28, 79, 54, 57, 45, 22, 65, 80, 18, 44, 67, 113, 127, 126, 91, 7, 14, 99, 58, 47, 51, 69, 4, 27, 77, 73, 110, 119, 60, 88, 97, 68, 115, 46, 81, 39, 106, 52, 29, 6, 42, 5, 86, 55, 66, 95, 104, 124, 123, 103, 90, 26, 108, 63, 24, 10, 61, 25, 17, 116, 83, 8]","[119, 88, 13, 76, 52, 102, 14, 97, 47, 50, 46, 85, 94, 112, 23, 96, 19, 83, 99, 7, 21, 26, 116, 71, 103, 6, 24, 73, 78, 8, 65, 45, 126, 56, 51, 124, 91, 106, 55, 109, 122, 68, 75, 22, 15, 113, 107, 74, 9, 29, 38, 63, 84, 53, 79, 58, 48, 81, 104, 54, 77, 34, 28, 80]","[6, 7, 8, 14, 22, 24, 26, 28, 29, 45, 46, 47, 50, 51, 52, 54, 55, 58, 63, 65, 68, 71, 73, 77, 79, 80, 81, 83, 88, 91, 97, 99, 103, 104, 106, 113, 116, 119, 124, 126]"
89,"[101, 65, 94, 68, 0, 96, 37, 81, 79, 107, 60, 109, 3, 11, 78, 36, 38, 52, 14, 41, 71, 23, 64, 93, 45, 21, 48, 54, 120, 6, 83, 43, 34, 121, 56, 63, 51, 61, 2, 115, 104, 40, 95, 17, 44, 55, 114, 4, 80, 39, 12, 99, 16, 8, 35, 32, 86, 91, 72, 5, 18, 15, 97, 59]","[83, 13, 45, 6, 66, 108, 5, 124, 99, 35, 119, 10, 43, 107, 94, 82, 15, 86, 65, 81, 95, 16, 101, 80, 4, 97, 56, 72, 39, 0, 77, 102, 69, 37, 122, 91, 114, 74, 41, 89, 11, 113, 64, 32, 21, 61, 53, 90, 63, 24, 48, 71, 60, 93, 120, 59, 20, 54, 23, 123, 7, 76, 36, 46]","[0, 4, 5, 6, 11, 15, 16, 21, 23, 32, 35, 36, 37, 39, 41, 43, 45, 48, 54, 56, 59, 60, 61, 63, 64, 65, 71, 72, 80, 81, 83, 86, 91, 93, 94, 95, 97, 99, 101, 107, 114, 120]"
90,"[25, 2, 118, 120, 0, 53, 21, 7, 55, 117, 37, 97, 72, 94, 122, 88, 29, 13, 24, 91, 19, 115, 27, 34, 4, 75, 112, 65, 116, 119, 31, 80, 42, 82, 79, 78, 111, 33, 93, 85, 41, 48, 49, 123, 95, 64, 108, 92, 32, 106, 12, 105, 38, 46, 124, 103, 77, 26, 30, 125, 8, 23, 16, 74]","[13, 28, 15, 70, 55, 76, 87, 24, 22, 119, 123, 20, 122, 92, 31, 35, 126, 98, 30, 14, 29, 68, 88, 115, 42, 41, 1, 57, 83, 8, 97, 54, 85, 21, 81, 113, 19, 109, 63, 37, 40, 51, 27, 104, 34, 3, 32, 79, 121, 18, 58, 59, 25, 0, 103, 16, 11, 6, 67, 84, 45, 73, 106, 5]","[0, 8, 13, 16, 19, 21, 24, 25, 27, 29, 30, 31, 32, 34, 37, 41, 42, 55, 79, 85, 88, 92, 97, 103, 106, 115, 119, 122, 123]"
91,"[15, 24, 121, 26, 100, 32, 107, 19, 48, 2, 49, 4, 0, 104, 94, 101, 5, 82, 86, 14, 90, 40, 22, 55, 20, 71, 97, 125, 98, 16, 119, 85, 6, 41, 117, 61, 63, 58, 37, 73, 12, 120, 17, 50, 127, 38, 66, 45, 109, 80, 115, 84, 88, 29, 54, 76, 99, 89, 11, 79, 59, 75, 23, 42]","[59, 34, 95, 14, 104, 20, 121, 127, 36, 19, 50, 76, 49, 63, 65, 97, 116, 66, 94, 17, 93, 84, 120, 55, 3, 16, 100, 107, 82, 69, 33, 83, 109, 7, 105, 12, 41, 64, 71, 67, 37, 23, 91, 10, 26, 38, 62, 115, 24, 72, 112, 98, 40, 117, 35, 99, 22, 45, 101, 48, 15, 47, 8, 1]","[12, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 37, 38, 40, 41, 45, 48, 49, 50, 55, 59, 63, 66, 71, 76, 82, 84, 94, 97, 98, 99, 100, 101, 104, 107, 109, 115, 117, 120, 121, 127]"
92,"[8, 52, 23, 16, 2, 66, 123, 94, 4, 31, 24, 44, 28, 75, 113, 82, 17, 53, 98, 124, 117, 45, 99, 87, 6, 57, 102, 15, 108, 37, 0, 114, 120, 9, 126, 46, 71, 116, 25, 49, 65, 110, 12, 92, 50, 21, 88, 18, 26, 90, 11, 68, 77, 14, 51, 33, 104, 72, 109, 69, 40, 81, 61, 34]","[100, 1, 76, 125, 54, 82, 67, 45, 2, 127, 116, 123, 6, 52, 0, 41, 124, 27, 77, 58, 57, 72, 25, 104, 8, 75, 5, 34, 30, 9, 91, 51, 95, 15, 113, 71, 35, 79, 87, 73, 24, 83, 126, 110, 66, 90, 49, 117, 16, 81, 31, 50, 23, 37, 120, 43, 68, 106, 40, 46, 55, 26, 85, 109]","[0, 2, 6, 8, 9, 15, 16, 23, 24, 25, 26, 31, 34, 37, 40, 45, 46, 49, 50, 51, 52, 57, 66, 68, 71, 72, 75, 77, 81, 82, 87, 90, 104, 109, 110, 113, 116, 117, 120, 123, 124, 126]"
93,"[18, 26, 30, 96, 37, 115, 48, 29, 31, 42, 24, 64, 47, 81, 8, 41, 59, 14, 25, 105, 110, 52, 70, 17, 10, 127, 54, 76, 124, 88, 82, 63, 67, 9, 100, 90, 92, 84, 0, 66, 51, 79, 68, 20, 97, 72, 62, 28, 60, 7, 33, 65, 95, 35, 5, 23, 119, 2, 106, 108, 102, 22, 123, 12]","[67, 110, 62, 63, 65, 7, 2, 119, 120, 98, 125, 86, 123, 93, 5, 91, 77, 37, 89, 108, 39, 69, 117, 3, 54, 97, 112, 101, 68, 25, 48, 87, 53, 116, 94, 51, 72, 103, 84, 109, 22, 99, 49, 27, 26, 4, 104, 118, 80, 96, 111, 126, 0, 81, 33, 113, 71, 31, 47, 32, 73, 107, 50, 15]","[0, 2, 5, 7, 22, 25, 26, 31, 33, 37, 47, 48, 51, 54, 62, 63, 65, 67, 68, 72, 81, 84, 96, 97, 108, 110, 119, 123]"
94,"[17, 84, 49, 51, 65, 67, 123, 90, 20, 35, 44, 11, 79, 94, 62, 110, 25, 3, 80, 113, 5, 64, 7, 32, 16, 59, 19, 100, 4, 78, 0, 29, 2, 86, 24, 27, 102, 58, 47, 82, 45, 68, 42, 37, 112, 55, 34, 14, 96, 85, 39, 116, 66, 77, 56, 125, 74, 88, 63, 48, 87, 26, 106, 69]","[85, 25, 15, 44, 68, 0, 17, 3, 49, 96, 9, 113, 55, 67, 121, 110, 107, 91, 59, 5, 7, 57, 102, 92, 119, 48, 109, 56, 62, 123, 101, 53, 90, 118, 87, 122, 19, 14, 74, 72, 76, 26, 112, 43, 79, 60, 42, 29, 77, 51, 47, 31, 106, 86, 18, 39, 20, 64, 32, 78, 1, 84, 16, 65]","[0, 3, 5, 7, 14, 16, 17, 19, 20, 25, 26, 29, 32, 39, 42, 44, 47, 48, 49, 51, 55, 56, 59, 62, 64, 65, 67, 68, 74, 77, 78, 79, 84, 85, 86, 87, 90, 96, 102, 106, 110, 112, 113, 123]"
95,"[123, 63, 33, 14, 0, 47, 6, 29, 70, 1, 85, 26, 19, 23, 112, 10, 51, 17, 104, 36, 82, 55, 27, 60, 81, 125, 64, 94, 5, 2, 22, 101, 15, 28, 41, 119, 62, 77, 67, 42, 120, 116, 127, 24, 48, 11, 97, 69, 39, 37, 89, 110, 103, 115, 3, 43, 49, 58, 32, 106, 122, 95, 53, 46]","[2, 80, 104, 109, 21, 7, 91, 123, 37, 78, 41, 35, 22, 33, 38, 4, 47, 34, 114, 108, 56, 81, 8, 39, 43, 124, 51, 0, 71, 113, 83, 3, 74, 87, 26, 59, 73, 10, 95, 52, 20, 17, 119, 99, 53, 58, 121, 107, 65, 111, 93, 69, 96, 49, 127, 29, 25, 18, 105, 50, 13, 100, 30, 40]","[0, 2, 3, 10, 17, 22, 26, 29, 33, 37, 39, 41, 43, 47, 49, 51, 53, 58, 69, 81, 95, 104, 119, 123, 127]"
96,"[19, 119, 55, 69, 33, 44, 6, 88, 20, 62, 8, 41, 3, 71, 101, 26, 65, 22, 53, 77, 84, 100, 57, 106, 5, 47, 80, 16, 114, 116, 112, 32, 12, 79, 60, 102, 35, 70, 87, 117, 11, 83, 66, 10, 113, 120, 61, 0, 118, 90, 108, 98, 68, 39, 36, 54, 111, 31, 7, 28, 86, 92, 126, 23]","[50, 84, 88, 29, 43, 107, 40, 68, 72, 123, 4, 93, 57, 85, 30, 124, 78, 18, 69, 81, 13, 115, 103, 109, 38, 110, 19, 79, 113, 5, 3, 89, 2, 53, 24, 102, 25, 125, 15, 116, 86, 1, 64, 112, 94, 61, 96, 49, 91, 67, 32, 73, 90, 59, 83, 63, 34, 7, 121, 28, 42, 122, 71, 16]","[3, 5, 7, 16, 19, 28, 32, 53, 57, 61, 68, 69, 71, 79, 83, 84, 86, 88, 90, 102, 112, 113, 116]"
97,"[32, 52, 10, 96, 43, 70, 103, 100, 55, 119, 28, 98, 41, 67, 54, 71, 66, 3, 15, 81, 9, 104, 97, 108, 22, 34, 42, 106, 1, 86, 61, 78, 21, 76, 4, 127, 40, 107, 5, 7, 112, 75, 74, 8, 57, 14, 6, 17, 90, 117, 44, 27, 20, 115, 83, 85, 63, 16, 51, 69, 60, 38, 53, 13]","[81, 79, 75, 58, 97, 77, 83, 90, 7, 54, 29, 37, 6, 118, 43, 107, 22, 96, 88, 15, 127, 3, 51, 10, 69, 80, 71, 17, 27, 101, 111, 95, 31, 0, 94, 1, 100, 82, 116, 52, 72, 41, 59, 113, 16, 34, 28, 18, 67, 122, 114, 86, 33, 9, 103, 73, 64, 119, 13, 87, 14, 76, 12, 106]","[1, 3, 6, 7, 9, 10, 13, 14, 15, 16, 17, 22, 27, 28, 34, 41, 43, 51, 52, 54, 67, 69, 71, 75, 76, 81, 83, 86, 90, 96, 97, 100, 103, 106, 107, 119, 127]"
98,"[108, 111, 30, 21, 113, 120, 70, 0, 72, 78, 41, 82, 54, 6, 89, 20, 22, 96, 115, 87, 61, 52, 116, 64, 66, 34, 65, 74, 118, 7, 50, 60, 59, 24, 126, 5, 16, 18, 51, 71, 104, 124, 28, 69, 1, 33, 79, 48, 95, 42, 122, 25, 81, 105, 43, 67, 77, 100, 36, 31, 107, 56, 2, 37]","[34, 12, 76, 98, 82, 96, 102, 70, 75, 113, 116, 125, 106, 63, 122, 3, 10, 57, 49, 84, 6, 72, 11, 83, 118, 37, 52, 31, 20, 4, 123, 46, 62, 108, 38, 69, 54, 25, 95, 119, 126, 100, 45, 124, 103, 71, 51, 41, 115, 67, 50, 86, 53, 78, 88, 42, 21, 2, 87, 13, 28, 39, 1, 81]","[1, 2, 6, 20, 21, 25, 28, 31, 34, 37, 41, 42, 50, 51, 52, 54, 67, 69, 70, 71, 72, 78, 81, 82, 87, 95, 96, 100, 108, 113, 115, 116, 118, 122, 124, 126]"
99,"[58, 108, 54, 110, 77, 65, 56, 98, 83, 99, 61, 12, 15, 116, 14, 67, 103, 63, 17, 39, 104, 51, 52, 5, 100, 49, 76, 48, 41, 25, 35, 111, 43, 81, 23, 47, 62, 127, 1, 88, 26, 69, 75, 85, 7, 24, 18, 112, 66, 71, 42, 73, 40, 107, 64, 87, 11, 9, 109, 45, 0, 31, 28, 29]","[46, 63, 9, 89, 111, 26, 101, 98, 84, 122, 53, 83, 42, 37, 4, 5, 79, 24, 92, 113, 57, 117, 126, 16, 121, 82, 114, 103, 70, 34, 115, 48, 6, 93, 15, 87, 107, 124, 66, 68, 97, 74, 60, 0, 32, 102, 10, 95, 105, 21, 120, 88, 2, 52, 33, 47, 86, 123, 55, 119, 96, 50, 14, 59]","[0, 5, 9, 14, 15, 24, 26, 42, 47, 48, 52, 63, 66, 83, 87, 88, 98, 103, 107, 111]"
1 ID SET1 SET2 INTERSECTION
2 0 [42, 73, 86, 39, 85, 77, 69, 59, 43, 127, 121, 88, 109, 53, 70, 66, 25, 51, 34, 78, 45, 11, 40, 99, 68, 47, 49, 41, 101, 31, 24, 84, 36, 29, 118, 75, 3, 27, 30, 80, 125, 8, 37, 46, 90, 21, 60, 83, 19, 6, 95, 117, 87, 18, 100, 13, 22, 10, 110, 102, 35, 81, 17, 63] [34, 49, 116, 106, 112, 23, 5, 80, 18, 62, 90, 54, 32, 103, 37, 43, 9, 25, 92, 16, 111, 79, 64, 91, 107, 58, 72, 94, 7, 60, 33, 14, 19, 104, 28, 74, 96, 76, 38, 52, 114, 50, 17, 0, 3, 100, 69, 98, 2, 1, 99, 12, 95, 97, 123, 4, 126, 124, 82, 27, 67, 57, 115, 46] [3, 17, 18, 19, 25, 27, 34, 37, 43, 46, 49, 60, 69, 80, 90, 95, 99, 100]
3 1 [50, 23, 70, 14, 54, 85, 106, 108, 6, 113, 79, 48, 99, 112, 28, 69, 0, 19, 64, 37, 90, 4, 15, 30, 94, 109, 96, 87, 71, 43, 21, 117, 8, 63, 35, 66, 83, 40, 119, 26, 46, 5, 53, 62, 12, 126, 116, 100, 111, 29, 97, 27, 25, 36, 82, 42, 127, 11, 56, 121, 59, 52, 124, 2] [112, 74, 109, 56, 57, 5, 43, 126, 61, 95, 60, 79, 21, 20, 100, 85, 66, 84, 19, 37, 67, 15, 75, 30, 106, 70, 11, 121, 55, 28, 34, 76, 62, 6, 53, 97, 69, 80, 114, 39, 82, 27, 26, 14, 23, 77, 65, 40, 108, 2, 50, 118, 59, 41, 54, 45, 0, 42, 110, 94, 92, 38, 91, 4] [0, 2, 4, 5, 6, 11, 14, 15, 19, 21, 23, 26, 27, 28, 30, 37, 40, 42, 43, 50, 53, 54, 56, 59, 62, 66, 69, 70, 79, 82, 85, 94, 97, 100, 106, 108, 109, 112, 121, 126]
4 2 [91, 23, 41, 37, 31, 22, 50, 35, 111, 115, 77, 55, 2, 97, 68, 85, 122, 62, 110, 87, 27, 113, 96, 81, 117, 18, 83, 71, 34, 64, 32, 92, 116, 3, 1, 10, 106, 42, 30, 86, 121, 52, 108, 84, 102, 8, 100, 125, 16, 39, 58, 29, 24, 38, 15, 17, 6, 40, 9, 94, 51, 61, 54, 65] [41, 50, 8, 115, 51, 91, 29, 104, 6, 85, 21, 5, 42, 58, 36, 93, 89, 113, 1, 46, 119, 90, 55, 123, 98, 84, 34, 71, 117, 94, 53, 65, 26, 86, 28, 44, 33, 37, 95, 22, 87, 63, 100, 17, 81, 68, 72, 39, 127, 2, 74, 30, 76, 111, 66, 106, 107, 4, 73, 121, 0, 67, 9, 10] [1, 2, 6, 8, 9, 10, 17, 22, 29, 30, 34, 37, 39, 41, 42, 50, 51, 55, 58, 65, 68, 71, 81, 84, 85, 86, 87, 91, 94, 100, 106, 111, 113, 115, 117, 121]
5 3 [12, 43, 39, 18, 95, 36, 51, 26, 30, 100, 85, 29, 75, 32, 79, 57, 101, 34, 108, 10, 23, 106, 16, 9, 7, 72, 82, 68, 105, 0, 37, 65, 64, 67, 62, 25, 13, 66, 77, 33, 121, 15, 122, 17, 3, 8, 45, 1, 70, 119, 76, 69, 92, 5, 2, 28, 110, 20, 102, 6, 93, 44, 98, 103] [83, 118, 32, 94, 115, 39, 91, 74, 34, 70, 79, 76, 61, 126, 106, 31, 25, 11, 123, 5, 40, 58, 78, 24, 101, 82, 4, 109, 71, 86, 17, 29, 37, 92, 73, 66, 50, 111, 95, 30, 124, 116, 62, 0, 84, 108, 63, 104, 107, 38, 27, 18, 33, 9, 49, 64, 26, 13, 42, 35, 20, 43, 77, 127] [0, 5, 9, 13, 17, 18, 20, 25, 26, 29, 30, 32, 33, 34, 37, 39, 43, 62, 64, 66, 70, 76, 77, 79, 82, 92, 95, 101, 106, 108]
6 4 [20, 116, 36, 54, 27, 67, 105, 51, 43, 57, 55, 44, 113, 38, 114, 64, 63, 37, 92, 76, 90, 35, 42, 117, 69, 2, 14, 81, 6, 78, 68, 11, 30, 52, 58, 98, 104, 21, 4, 85, 13, 47, 87, 62, 48, 109, 101, 0, 34, 53, 56, 59, 19, 88, 112, 28, 71, 18, 80, 50, 121, 75, 111, 49] [5, 34, 55, 53, 113, 60, 22, 98, 16, 92, 126, 27, 70, 30, 61, 37, 64, 9, 36, 123, 79, 101, 15, 90, 62, 52, 72, 3, 29, 4, 110, 102, 17, 125, 26, 99, 86, 1, 20, 112, 24, 28, 31, 47, 85, 11, 42, 78, 25, 91, 7, 104, 12, 74, 71, 89, 48, 95, 43, 100, 103, 97, 107, 2] [2, 4, 11, 20, 27, 28, 30, 34, 36, 37, 42, 43, 47, 48, 52, 53, 55, 62, 64, 71, 78, 85, 90, 92, 98, 101, 104, 112, 113]
7 5 [123, 114, 111, 64, 115, 14, 75, 67, 4, 125, 61, 11, 38, 104, 105, 7, 45, 113, 93, 41, 86, 77, 44, 0, 89, 112, 90, 52, 57, 74, 26, 29, 69, 108, 32, 121, 107, 102, 19, 42, 60, 51, 116, 39, 24, 37, 118, 68, 92, 87, 95, 79, 106, 13, 40, 53, 81, 85, 99, 36, 23, 97, 48, 47] [61, 53, 116, 0, 75, 43, 89, 38, 101, 60, 51, 83, 29, 112, 36, 81, 55, 34, 94, 125, 68, 64, 84, 26, 40, 107, 82, 16, 24, 42, 108, 19, 111, 54, 6, 41, 120, 79, 9, 48, 44, 4, 106, 93, 30, 13, 39, 20, 124, 66, 33, 52, 57, 11, 105, 114, 72, 123, 67, 102, 71, 113, 3, 69] [0, 4, 11, 13, 19, 24, 26, 29, 36, 38, 39, 40, 41, 42, 44, 48, 51, 52, 53, 57, 60, 61, 64, 67, 68, 69, 75, 79, 81, 89, 93, 102, 105, 106, 107, 108, 111, 112, 113, 114, 116, 123, 125]
8 6 [118, 20, 53, 85, 46, 51, 22, 52, 98, 28, 49, 64, 35, 124, 69, 58, 125, 34, 104, 106, 2, 74, 67, 111, 96, 0, 3, 33, 8, 91, 23, 43, 92, 72, 76, 26, 50, 6, 18, 68, 56, 101, 97, 37, 47, 24, 7, 57, 54, 75, 73, 1, 61, 12, 114, 87, 19, 48, 40, 62, 10, 36, 16, 123] [94, 59, 117, 86, 6, 22, 110, 82, 34, 13, 89, 19, 122, 30, 7, 27, 44, 85, 112, 42, 17, 24, 31, 56, 43, 39, 115, 23, 15, 46, 83, 57, 127, 116, 47, 63, 102, 78, 121, 21, 103, 113, 88, 38, 16, 76, 100, 84, 9, 14, 49, 8, 60, 109, 41, 79, 99, 37, 105, 55, 108, 107, 77, 4] [6, 7, 8, 16, 19, 22, 23, 24, 34, 37, 43, 46, 47, 49, 56, 57, 76, 85]
9 7 [2, 67, 120, 31, 16, 77, 61, 75, 4, 8, 76, 111, 23, 85, 97, 7, 19, 36, 54, 55, 124, 20, 74, 92, 90, 25, 114, 32, 123, 21, 38, 50, 6, 109, 70, 26, 64, 47, 45, 51, 60, 63, 62, 41, 53, 12, 11, 28, 122, 103, 105, 49, 68, 91, 100, 46, 17, 52, 121, 73, 1, 42, 37, 48] [68, 89, 71, 107, 76, 98, 34, 54, 64, 42, 92, 84, 55, 93, 57, 53, 90, 91, 62, 120, 82, 51, 38, 121, 48, 109, 36, 126, 8, 50, 94, 43, 101, 37, 79, 72, 12, 27, 60, 81, 6, 88, 113, 103, 1, 17, 11, 119, 32, 18, 19, 105, 73, 111, 40, 100, 95, 2, 49, 58, 16, 65, 45, 29] [1, 2, 6, 8, 11, 12, 16, 17, 19, 32, 36, 37, 38, 42, 45, 48, 49, 50, 51, 53, 54, 55, 60, 62, 64, 68, 73, 76, 90, 91, 92, 100, 103, 105, 109, 111, 120, 121]
10 8 [89, 83, 32, 27, 46, 99, 81, 73, 109, 80, 100, 84, 72, 29, 124, 122, 90, 25, 31, 38, 60, 62, 97, 104, 10, 108, 70, 16, 118, 6, 94, 23, 49, 7, 117, 92, 76, 55, 54, 15, 111, 85, 91, 67, 61, 95, 47, 114, 13, 42, 43, 11, 8, 14, 82, 52, 9, 78, 37, 71, 119, 22, 40, 123] [83, 110, 121, 80, 20, 109, 119, 11, 114, 2, 12, 104, 64, 23, 66, 51, 93, 100, 41, 127, 4, 54, 44, 96, 14, 26, 42, 62, 21, 45, 112, 68, 77, 122, 69, 35, 115, 117, 79, 98, 15, 113, 50, 86, 40, 107, 34, 78, 105, 106, 49, 17, 90, 85, 125, 22, 58, 48, 102, 88, 24, 33, 0, 57] [11, 14, 15, 22, 23, 40, 42, 49, 54, 62, 78, 80, 83, 85, 90, 100, 104, 109, 114, 117, 119, 122]
11 9 [122, 95, 15, 106, 92, 43, 38, 117, 75, 64, 16, 96, 71, 105, 1, 49, 57, 80, 101, 116, 77, 63, 39, 21, 66, 35, 120, 100, 85, 26, 99, 2, 46, 19, 74, 3, 113, 37, 108, 65, 32, 67, 11, 47, 27, 81, 73, 17, 22, 4, 121, 60, 40, 9, 87, 50, 119, 104, 28, 79, 124, 78, 94, 34] [100, 37, 17, 8, 7, 75, 51, 107, 10, 93, 94, 124, 38, 6, 109, 24, 26, 47, 59, 86, 123, 0, 5, 54, 70, 18, 27, 19, 4, 56, 101, 68, 48, 61, 41, 112, 117, 125, 77, 69, 13, 102, 35, 97, 111, 110, 89, 72, 115, 83, 52, 76, 2, 44, 120, 42, 30, 53, 36, 88, 31, 55, 64, 103] [2, 4, 17, 19, 26, 27, 35, 37, 38, 47, 64, 75, 77, 94, 100, 101, 117, 120, 124]
12 10 [55, 57, 69, 7, 29, 14, 73, 18, 10, 94, 8, 38, 25, 24, 78, 30, 84, 51, 60, 65, 28, 44, 116, 3, 81, 62, 26, 102, 120, 118, 125, 91, 4, 99, 106, 100, 52, 54, 74, 80, 17, 49, 19, 0, 47, 53, 108, 46, 1, 5, 86, 2, 107, 93, 109, 43, 50, 59, 33, 87, 119, 115, 40, 12] [43, 4, 55, 46, 68, 32, 19, 15, 66, 16, 29, 112, 9, 108, 121, 125, 49, 6, 74, 126, 110, 100, 124, 34, 92, 7, 73, 47, 22, 63, 91, 87, 103, 101, 37, 105, 109, 97, 93, 42, 64, 62, 72, 84, 23, 82, 79, 114, 26, 48, 40, 60, 96, 30, 99, 88, 28, 41, 86, 50, 51, 0, 38, 24] [0, 4, 7, 19, 24, 26, 28, 29, 30, 38, 40, 43, 46, 47, 49, 50, 51, 55, 60, 62, 73, 74, 84, 86, 87, 91, 93, 99, 100, 108, 109, 125]
13 11 [51, 76, 124, 93, 123, 53, 67, 4, 125, 103, 46, 64, 83, 72, 104, 106, 55, 7, 44, 114, 23, 58, 37, 31, 19, 63, 101, 42, 60, 92, 57, 2, 81, 21, 115, 32, 12, 66, 1, 112, 38, 5, 50, 35, 59, 34, 47, 78, 79, 127, 13, 9, 61, 96, 97, 8, 126, 86, 118, 6, 56, 48, 0, 121] [108, 101, 72, 34, 124, 123, 0, 82, 121, 126, 70, 116, 104, 77, 61, 118, 112, 96, 95, 45, 71, 39, 115, 51, 48, 79, 66, 78, 58, 37, 44, 5, 42, 53, 57, 32, 56, 6, 16, 103, 80, 92, 35, 50, 127, 12, 69, 1, 102, 47, 97, 4, 109, 55, 86, 67, 9, 33, 100, 10, 38, 23, 19, 63] [0, 1, 4, 5, 6, 9, 12, 19, 23, 32, 34, 35, 37, 38, 42, 44, 47, 48, 50, 51, 53, 55, 56, 57, 58, 61, 63, 66, 67, 72, 78, 79, 86, 92, 96, 97, 101, 103, 104, 112, 115, 118, 121, 123, 124, 126, 127]
14 12 [43, 67, 127, 22, 2, 85, 112, 0, 81, 6, 27, 116, 119, 32, 39, 95, 55, 121, 61, 123, 70, 49, 52, 37, 91, 117, 54, 97, 120, 107, 104, 51, 74, 111, 18, 108, 105, 44, 64, 4, 16, 122, 71, 88, 7, 47, 30, 48, 28, 38, 69, 35, 63, 40, 73, 29, 17, 13, 115, 53, 62, 96, 12, 3] [2, 60, 126, 55, 39, 16, 97, 51, 12, 49, 122, 35, 116, 13, 25, 54, 69, 21, 87, 100, 31, 120, 92, 44, 23, 34, 85, 40, 96, 111, 67, 117, 108, 70, 95, 113, 99, 28, 121, 103, 37, 36, 68, 61, 42, 115, 91, 27, 10, 79, 72, 86, 77, 45, 29, 32, 7, 46, 105, 93, 53, 127, 114, 71] [2, 7, 12, 13, 16, 27, 28, 29, 32, 35, 37, 39, 40, 44, 49, 51, 53, 54, 55, 61, 67, 69, 70, 71, 85, 91, 95, 96, 97, 105, 108, 111, 115, 116, 117, 120, 121, 122, 127]
15 13 [113, 60, 114, 85, 127, 46, 104, 111, 1, 68, 97, 109, 2, 108, 0, 36, 73, 65, 93, 43, 37, 67, 59, 116, 38, 121, 90, 98, 42, 35, 75, 78, 7, 8, 52, 3, 15, 81, 25, 57, 101, 69, 33, 13, 58, 72, 11, 99, 86, 4, 27, 107, 64, 30, 39, 18, 17, 100, 122, 32, 55, 54, 14, 76] [78, 58, 41, 42, 100, 85, 44, 4, 6, 20, 55, 114, 65, 61, 40, 107, 11, 32, 29, 33, 28, 97, 76, 16, 38, 86, 39, 103, 102, 104, 30, 72, 62, 75, 15, 110, 108, 31, 53, 45, 54, 37, 57, 109, 46, 117, 60, 111, 36, 12, 116, 21, 7, 82, 43, 18, 3, 23, 123, 124, 99, 121, 35, 5] [3, 4, 7, 11, 15, 18, 30, 32, 33, 35, 36, 37, 38, 39, 42, 43, 46, 54, 55, 57, 58, 60, 65, 72, 75, 76, 78, 85, 86, 97, 99, 100, 104, 107, 108, 109, 111, 114, 116, 121]
16 14 [41, 89, 93, 70, 47, 46, 17, 83, 113, 107, 111, 82, 58, 65, 12, 126, 124, 32, 68, 100, 108, 34, 67, 60, 4, 39, 9, 48, 81, 36, 127, 57, 20, 11, 2, 30, 110, 64, 61, 23, 79, 69, 35, 18, 71, 31, 21, 90, 119, 43, 66, 120, 105, 29, 97, 92, 74, 56, 27, 51, 91, 55, 22, 96] [89, 64, 120, 26, 56, 16, 81, 100, 39, 125, 55, 28, 21, 123, 22, 52, 127, 66, 77, 107, 69, 97, 47, 4, 35, 85, 78, 101, 70, 5, 112, 102, 1, 124, 51, 74, 10, 36, 3, 60, 65, 6, 68, 113, 86, 88, 111, 72, 7, 41, 29, 48, 82, 93, 96, 104, 108, 75, 58, 87, 109, 45, 91, 31] [4, 21, 22, 29, 31, 35, 36, 39, 41, 47, 48, 51, 55, 56, 58, 60, 64, 65, 66, 68, 69, 70, 74, 81, 82, 89, 91, 93, 96, 97, 100, 107, 108, 111, 113, 120, 124, 127]
17 15 [70, 41, 44, 50, 67, 77, 7, 81, 38, 125, 32, 115, 109, 61, 60, 56, 13, 85, 27, 4, 21, 19, 114, 68, 105, 14, 107, 31, 126, 0, 84, 54, 34, 108, 106, 98, 127, 92, 121, 95, 57, 3, 99, 48, 79, 110, 104, 45, 30, 73, 87, 111, 49, 93, 33, 103, 15, 42, 78, 94, 47, 58, 40, 80] [90, 30, 17, 119, 56, 80, 16, 105, 34, 97, 48, 58, 19, 93, 84, 1, 98, 23, 110, 117, 118, 75, 126, 35, 25, 123, 114, 121, 33, 86, 67, 54, 49, 91, 41, 78, 15, 77, 14, 7, 61, 113, 79, 102, 109, 47, 92, 101, 31, 0, 72, 32, 52, 103, 68, 42, 100, 122, 13, 95, 3, 81, 18, 38] [0, 3, 7, 13, 14, 15, 19, 30, 31, 32, 33, 34, 38, 41, 42, 47, 48, 49, 54, 56, 58, 61, 67, 68, 77, 78, 79, 80, 81, 84, 92, 93, 95, 98, 103, 105, 109, 110, 114, 121, 126]
18 16 [44, 65, 118, 22, 68, 125, 1, 34, 18, 58, 121, 63, 7, 23, 117, 6, 64, 105, 67, 25, 51, 88, 116, 40, 123, 53, 87, 13, 27, 8, 21, 16, 84, 48, 32, 26, 94, 19, 10, 4, 103, 2, 3, 41, 69, 127, 82, 50, 86, 78, 107, 20, 62, 79, 24, 52, 59, 106, 33, 36, 55, 70, 60, 29] [107, 97, 1, 124, 116, 76, 105, 68, 87, 53, 67, 127, 99, 44, 65, 9, 66, 98, 34, 121, 63, 117, 83, 126, 94, 113, 11, 64, 62, 96, 35, 73, 47, 71, 37, 39, 70, 16, 23, 24, 42, 85, 17, 43, 106, 29, 45, 90, 88, 81, 41, 75, 46, 93, 110, 21, 100, 95, 102, 51, 123, 78, 4, 33] [1, 4, 16, 21, 23, 24, 29, 33, 34, 41, 44, 51, 53, 62, 63, 64, 65, 67, 68, 70, 78, 87, 88, 94, 105, 106, 107, 116, 117, 121, 123, 127]
19 17 [43, 22, 51, 64, 25, 16, 67, 104, 58, 35, 33, 109, 50, 97, 18, 117, 36, 44, 98, 14, 103, 121, 27, 53, 82, 105, 119, 56, 10, 46, 20, 102, 127, 41, 71, 37, 116, 13, 89, 73, 79, 62, 78, 125, 106, 83, 21, 124, 59, 24, 65, 85, 76, 95, 57, 40, 100, 108, 66, 99, 90, 32, 47, 61] [1, 81, 122, 77, 13, 107, 102, 124, 93, 99, 21, 100, 31, 6, 126, 110, 12, 96, 26, 75, 45, 86, 70, 32, 105, 63, 61, 9, 34, 5, 49, 119, 113, 4, 118, 123, 11, 2, 14, 48, 43, 115, 112, 57, 90, 7, 17, 30, 65, 120, 28, 52, 104, 79, 68, 23, 3, 18, 92, 91, 29, 94, 82, 51] [13, 14, 18, 21, 32, 43, 51, 57, 61, 65, 79, 82, 90, 99, 100, 102, 104, 105, 119, 124]
20 18 [74, 113, 18, 102, 49, 28, 37, 34, 79, 67, 77, 17, 115, 43, 6, 53, 7, 12, 38, 122, 69, 123, 19, 71, 59, 60, 85, 29, 44, 125, 21, 2, 48, 50, 88, 15, 56, 35, 31, 109, 52, 47, 80, 87, 90, 99, 36, 22, 121, 107, 73, 98, 110, 120, 20, 23, 89, 94, 118, 51, 5, 46, 4, 41] [125, 113, 1, 4, 34, 118, 37, 27, 75, 79, 92, 94, 87, 107, 46, 120, 106, 49, 52, 59, 124, 28, 41, 21, 72, 102, 29, 5, 67, 26, 7, 6, 89, 112, 111, 35, 65, 98, 93, 23, 69, 31, 96, 85, 80, 110, 9, 8, 2, 127, 50, 76, 71, 36, 19, 10, 33, 60, 25, 51, 17, 32, 16, 73] [2, 4, 5, 6, 7, 17, 19, 21, 23, 28, 29, 31, 34, 35, 36, 37, 41, 46, 49, 50, 51, 52, 59, 60, 67, 69, 71, 73, 79, 80, 85, 87, 89, 94, 98, 102, 107, 110, 113, 118, 120, 125]
21 19 [38, 0, 14, 10, 87, 56, 113, 94, 45, 86, 39, 88, 111, 121, 74, 98, 102, 52, 107, 48, 50, 95, 90, 112, 118, 82, 19, 109, 49, 58, 99, 92, 110, 124, 59, 20, 43, 80, 73, 68, 18, 63, 78, 42, 77, 126, 15, 115, 57, 75, 53, 25, 83, 1, 5, 36, 104, 46, 61, 71, 119, 33, 81, 93] [14, 104, 96, 108, 98, 65, 33, 44, 46, 72, 58, 42, 15, 90, 83, 126, 85, 109, 125, 32, 38, 61, 117, 118, 101, 103, 97, 55, 1, 47, 115, 7, 30, 40, 102, 41, 91, 10, 36, 75, 43, 62, 26, 71, 16, 4, 25, 51, 116, 31, 24, 23, 12, 107, 110, 119, 124, 67, 3, 79, 28, 54, 18, 52] [1, 10, 14, 15, 18, 25, 33, 36, 38, 42, 43, 46, 52, 58, 61, 71, 75, 83, 90, 98, 102, 104, 107, 109, 110, 115, 118, 119, 124, 126]
22 20 [30, 109, 92, 124, 41, 116, 33, 94, 106, 71, 72, 119, 17, 125, 113, 120, 84, 80, 5, 117, 75, 52, 39, 20, 123, 61, 79, 44, 36, 115, 101, 100, 99, 81, 28, 58, 91, 54, 53, 64, 104, 74, 51, 1, 83, 60, 89, 48, 68, 78, 27, 82, 110, 35, 63, 69, 46, 43, 34, 0, 24, 67, 76, 105] [40, 71, 122, 34, 63, 41, 15, 2, 102, 77, 38, 116, 104, 5, 0, 59, 9, 11, 86, 101, 51, 105, 99, 8, 53, 45, 92, 96, 67, 52, 26, 28, 10, 79, 118, 42, 39, 22, 84, 108, 3, 18, 73, 35, 98, 36, 13, 113, 21, 20, 126, 55, 117, 119, 30, 76, 23, 95, 82, 44, 37, 110, 48, 121] [0, 5, 20, 28, 30, 34, 35, 36, 39, 41, 44, 48, 51, 52, 53, 63, 67, 71, 76, 79, 82, 84, 92, 99, 101, 104, 105, 110, 113, 116, 117, 119]
23 21 [66, 28, 126, 114, 37, 14, 51, 100, 0, 63, 2, 87, 101, 6, 85, 75, 72, 12, 111, 120, 96, 91, 19, 71, 11, 9, 3, 121, 88, 89, 103, 17, 52, 50, 84, 41, 78, 107, 124, 68, 27, 32, 57, 29, 104, 61, 93, 70, 86, 67, 56, 64, 125, 22, 102, 7, 10, 80, 117, 81, 74, 4, 99, 73] [87, 47, 88, 38, 14, 52, 122, 77, 23, 126, 45, 4, 2, 85, 28, 70, 48, 98, 32, 13, 109, 94, 61, 36, 68, 121, 116, 108, 100, 95, 26, 92, 114, 58, 76, 123, 115, 112, 11, 99, 79, 6, 35, 20, 24, 9, 17, 65, 80, 25, 60, 39, 113, 19, 30, 71, 63, 18, 34, 44, 105, 37, 83, 74] [2, 4, 6, 9, 11, 14, 17, 19, 28, 32, 37, 52, 61, 63, 68, 70, 71, 74, 80, 85, 87, 88, 99, 100, 114, 121, 126]
24 22 [37, 119, 60, 45, 97, 34, 12, 69, 89, 61, 112, 42, 77, 44, 51, 126, 100, 13, 17, 43, 66, 106, 25, 28, 15, 122, 101, 86, 49, 23, 83, 14, 48, 74, 39, 62, 80, 76, 71, 117, 96, 125, 114, 59, 67, 52, 79, 47, 113, 98, 50, 33, 118, 107, 57, 99, 70, 31, 1, 56, 55, 68, 4, 41] [58, 28, 0, 32, 16, 47, 87, 116, 109, 44, 123, 45, 121, 93, 24, 103, 53, 41, 26, 6, 119, 111, 79, 52, 92, 22, 81, 36, 59, 99, 115, 73, 2, 82, 127, 55, 114, 100, 88, 63, 13, 40, 124, 113, 5, 117, 38, 49, 85, 21, 105, 108, 89, 83, 11, 27, 31, 18, 7, 9, 96, 72, 110, 91] [13, 28, 31, 41, 44, 45, 47, 49, 52, 55, 59, 79, 83, 89, 96, 99, 100, 113, 114, 117, 119]
25 23 [83, 70, 69, 31, 72, 13, 6, 15, 56, 115, 29, 127, 109, 23, 111, 93, 27, 90, 49, 53, 22, 30, 105, 125, 76, 106, 37, 67, 104, 47, 65, 96, 52, 19, 81, 82, 112, 10, 63, 89, 88, 94, 62, 28, 26, 58, 121, 1, 36, 16, 44, 92, 11, 54, 98, 84, 103, 39, 123, 41, 42, 87, 100, 97] [81, 88, 29, 94, 47, 106, 84, 95, 56, 74, 87, 69, 39, 5, 104, 16, 112, 45, 13, 41, 9, 22, 109, 82, 54, 96, 113, 0, 110, 49, 77, 90, 30, 26, 28, 125, 12, 120, 40, 58, 14, 115, 108, 72, 105, 65, 71, 111, 83, 62, 76, 20, 11, 127, 70, 31, 42, 89, 24, 6, 63, 50, 107, 37] [6, 11, 13, 16, 22, 26, 28, 29, 30, 31, 37, 39, 41, 42, 47, 49, 54, 56, 58, 62, 63, 65, 69, 70, 72, 76, 81, 82, 83, 84, 87, 88, 89, 90, 94, 96, 104, 105, 106, 109, 111, 112, 115, 125, 127]
26 24 [11, 16, 14, 24, 106, 59, 73, 61, 77, 102, 96, 26, 78, 18, 67, 7, 113, 127, 34, 72, 48, 88, 104, 101, 87, 89, 75, 74, 44, 90, 83, 97, 29, 64, 81, 54, 79, 124, 38, 41, 6, 76, 5, 35, 91, 47, 121, 12, 114, 17, 109, 108, 42, 111, 99, 93, 36, 92, 28, 65, 9, 94, 115, 3] [87, 54, 90, 3, 85, 42, 5, 36, 113, 49, 41, 10, 115, 114, 117, 59, 33, 105, 100, 108, 18, 19, 55, 65, 47, 73, 77, 37, 101, 99, 45, 44, 28, 83, 13, 63, 53, 98, 64, 25, 96, 12, 16, 6, 23, 14, 46, 88, 15, 52, 93, 71, 48, 97, 116, 92, 17, 124, 95, 89, 9, 75, 78, 72] [3, 5, 6, 9, 12, 14, 16, 17, 18, 28, 36, 41, 42, 44, 47, 48, 54, 59, 64, 65, 72, 73, 75, 77, 78, 83, 87, 88, 89, 90, 92, 93, 96, 97, 99, 101, 108, 113, 114, 115, 124]
27 25 [66, 46, 43, 29, 31, 35, 69, 79, 113, 49, 108, 84, 18, 61, 65, 72, 104, 115, 47, 98, 2, 75, 76, 19, 73, 114, 119, 89, 101, 105, 125, 23, 16, 17, 6, 50, 88, 56, 52, 20, 24, 27, 34, 95, 38, 116, 15, 39, 77, 83, 51, 100, 106, 44, 107, 4, 112, 71, 36, 30, 41, 67, 14, 55] [87, 101, 45, 97, 93, 12, 35, 77, 80, 30, 102, 89, 98, 119, 3, 106, 0, 105, 34, 4, 108, 61, 100, 65, 55, 5, 52, 56, 54, 32, 114, 81, 19, 49, 107, 59, 29, 22, 70, 86, 31, 113, 26, 39, 60, 69, 33, 92, 82, 67, 115, 66, 125, 68, 117, 38, 53, 43, 109, 28, 2, 20, 1, 46] [2, 4, 19, 20, 29, 30, 31, 34, 35, 38, 39, 43, 46, 49, 52, 55, 56, 61, 65, 66, 67, 69, 77, 89, 98, 100, 101, 105, 106, 107, 108, 113, 114, 115, 119, 125]
28 26 [119, 125, 121, 34, 33, 46, 113, 56, 38, 15, 57, 21, 83, 12, 72, 48, 65, 85, 4, 24, 29, 31, 50, 26, 1, 86, 70, 63, 122, 92, 22, 10, 106, 59, 58, 76, 19, 87, 123, 20, 43, 81, 62, 30, 0, 97, 7, 11, 14, 114, 75, 41, 36, 80, 117, 64, 73, 118, 47, 98, 102, 89, 90, 25] [70, 4, 91, 89, 82, 123, 31, 61, 74, 99, 22, 103, 47, 68, 90, 110, 77, 108, 6, 50, 58, 78, 85, 16, 5, 23, 46, 34, 96, 121, 124, 95, 55, 79, 60, 57, 69, 39, 93, 81, 44, 113, 51, 36, 56, 66, 14, 27, 38, 42, 43, 84, 26, 25, 111, 45, 100, 12, 127, 97, 114, 87, 28, 116] [4, 12, 14, 22, 25, 26, 31, 34, 36, 38, 43, 46, 47, 50, 56, 57, 58, 70, 81, 85, 87, 89, 90, 97, 113, 114, 121, 123]
29 27 [90, 47, 3, 53, 98, 92, 80, 76, 32, 52, 28, 66, 94, 103, 70, 29, 91, 62, 46, 56, 68, 59, 86, 125, 77, 35, 116, 124, 101, 88, 73, 54, 9, 23, 38, 74, 41, 39, 31, 84, 69, 40, 24, 21, 97, 37, 19, 106, 123, 112, 78, 107, 34, 4, 65, 49, 85, 79, 57, 2, 6, 30, 63, 15] [52, 107, 33, 85, 38, 8, 105, 2, 63, 117, 40, 77, 44, 20, 90, 94, 23, 116, 76, 84, 65, 86, 21, 29, 60, 97, 9, 22, 34, 83, 35, 124, 3, 16, 69, 72, 67, 39, 98, 37, 99, 45, 58, 25, 28, 112, 15, 127, 11, 17, 30, 24, 66, 78, 14, 41, 89, 113, 49, 19, 31, 57, 73, 92] [2, 3, 9, 15, 19, 21, 23, 24, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 41, 49, 52, 57, 63, 65, 66, 69, 73, 76, 77, 78, 84, 85, 86, 90, 92, 94, 97, 98, 107, 112, 116, 124]
30 28 [28, 75, 38, 70, 106, 16, 99, 7, 37, 0, 110, 33, 120, 65, 127, 19, 66, 95, 50, 67, 34, 52, 105, 71, 93, 36, 125, 41, 55, 43, 54, 15, 4, 123, 46, 63, 11, 22, 109, 27, 13, 48, 81, 58, 49, 103, 45, 85, 31, 112, 92, 44, 89, 56, 62, 42, 2, 104, 25, 84, 77, 24, 61, 102] [111, 13, 70, 30, 52, 45, 87, 103, 69, 21, 33, 98, 35, 65, 28, 15, 53, 93, 73, 92, 38, 67, 37, 84, 83, 32, 100, 62, 58, 118, 54, 115, 108, 51, 80, 90, 26, 119, 4, 81, 127, 85, 29, 95, 105, 47, 74, 122, 44, 91, 16, 31, 124, 64, 104, 101, 22, 75, 102, 7, 43, 60, 3, 57] [4, 7, 13, 15, 16, 22, 28, 31, 33, 37, 38, 43, 44, 45, 52, 54, 58, 62, 65, 67, 70, 75, 81, 84, 85, 92, 93, 95, 102, 103, 104, 105, 127]
31 29 [29, 9, 37, 58, 97, 77, 19, 8, 32, 70, 62, 85, 44, 6, 7, 90, 21, 102, 108, 95, 67, 63, 12, 52, 18, 66, 110, 98, 68, 87, 38, 59, 5, 48, 83, 27, 104, 40, 46, 94, 53, 88, 106, 35, 43, 15, 36, 17, 28, 119, 42, 3, 56, 86, 109, 64, 123, 11, 51, 22, 60, 76, 79, 111] [80, 121, 61, 7, 45, 116, 55, 71, 48, 24, 95, 87, 37, 76, 1, 58, 65, 124, 68, 9, 74, 26, 92, 5, 100, 90, 6, 103, 66, 86, 54, 104, 49, 96, 2, 113, 85, 78, 51, 17, 25, 32, 35, 64, 20, 13, 82, 125, 102, 77, 106, 10, 110, 43, 41, 62, 29, 16, 72, 4, 93, 127, 15, 12] [5, 6, 7, 9, 12, 15, 17, 29, 32, 35, 37, 43, 48, 51, 58, 62, 64, 66, 68, 76, 77, 85, 86, 87, 90, 95, 102, 104, 106, 110]
32 30 [65, 87, 107, 50, 53, 7, 82, 62, 49, 112, 105, 90, 93, 45, 28, 122, 51, 24, 66, 41, 1, 18, 109, 94, 63, 72, 91, 47, 59, 119, 78, 56, 48, 42, 46, 115, 21, 92, 10, 39, 113, 96, 67, 37, 98, 121, 57, 111, 15, 86, 120, 100, 19, 23, 110, 69, 88, 95, 40, 6, 5, 33, 77, 16] [24, 120, 43, 47, 12, 28, 69, 66, 113, 8, 23, 51, 25, 89, 14, 78, 114, 91, 101, 54, 32, 90, 31, 42, 116, 29, 76, 107, 64, 105, 40, 39, 70, 109, 71, 18, 127, 68, 111, 73, 87, 58, 13, 126, 121, 81, 30, 115, 77, 63, 5, 82, 124, 60, 21, 86, 65, 85, 74, 9, 17, 3, 2, 80] [5, 18, 21, 23, 24, 28, 39, 40, 42, 47, 51, 63, 65, 66, 69, 77, 78, 82, 86, 87, 90, 91, 105, 107, 109, 111, 113, 115, 120, 121]
33 31 [89, 62, 125, 43, 101, 24, 123, 16, 113, 55, 8, 14, 3, 98, 65, 78, 57, 64, 114, 59, 110, 103, 30, 12, 72, 126, 42, 97, 74, 20, 69, 22, 91, 51, 109, 48, 81, 23, 6, 27, 2, 67, 49, 11, 111, 83, 73, 35, 66, 53, 25, 18, 120, 56, 115, 58, 4, 28, 32, 105, 41, 38, 124, 40] [99, 88, 100, 17, 31, 40, 111, 72, 112, 70, 68, 63, 0, 116, 10, 1, 123, 19, 26, 15, 82, 44, 117, 41, 104, 62, 12, 76, 32, 85, 53, 52, 101, 120, 39, 119, 35, 115, 36, 86, 80, 125, 33, 71, 114, 11, 108, 13, 77, 107, 113, 45, 55, 2, 124, 90, 54, 25, 75, 5, 94, 89, 42, 122] [2, 11, 12, 25, 32, 35, 40, 41, 42, 53, 55, 62, 72, 89, 101, 111, 113, 114, 115, 120, 123, 124, 125]
34 32 [45, 17, 7, 105, 16, 102, 10, 49, 97, 29, 90, 28, 18, 36, 84, 38, 35, 76, 73, 21, 120, 13, 79, 113, 127, 54, 110, 52, 44, 40, 8, 55, 11, 20, 125, 57, 75, 60, 39, 9, 43, 71, 3, 101, 33, 19, 95, 123, 37, 41, 1, 26, 87, 58, 85, 109, 51, 34, 66, 80, 91, 5, 12, 30] [28, 47, 78, 96, 89, 69, 112, 10, 114, 99, 83, 49, 79, 72, 116, 50, 80, 3, 122, 64, 117, 59, 19, 38, 95, 33, 62, 70, 24, 94, 22, 25, 126, 46, 100, 101, 74, 92, 0, 42, 103, 115, 21, 55, 102, 60, 63, 81, 14, 104, 15, 77, 119, 93, 61, 111, 98, 27, 56, 121, 41, 18, 65, 73] [3, 10, 18, 19, 21, 28, 33, 38, 41, 49, 55, 60, 73, 79, 80, 95, 101, 102]
35 33 [55, 120, 37, 77, 1, 33, 54, 91, 3, 27, 12, 101, 75, 119, 8, 58, 19, 68, 110, 84, 10, 124, 74, 60, 16, 125, 63, 104, 24, 25, 81, 100, 88, 50, 90, 40, 116, 23, 9, 47, 52, 4, 78, 39, 56, 57, 108, 15, 127, 66, 89, 32, 44, 85, 65, 53, 71, 14, 36, 45, 67, 115, 123, 48] [14, 16, 49, 2, 101, 120, 74, 46, 64, 6, 78, 110, 5, 44, 65, 9, 92, 112, 57, 8, 15, 81, 40, 102, 100, 4, 34, 24, 22, 82, 90, 7, 70, 26, 80, 13, 42, 41, 73, 59, 123, 18, 33, 12, 125, 36, 1, 107, 122, 105, 98, 23, 63, 47, 77, 53, 97, 89, 21, 114, 38, 54, 96, 45] [1, 4, 8, 9, 12, 14, 15, 16, 23, 24, 33, 36, 40, 44, 45, 47, 53, 54, 57, 63, 65, 74, 77, 78, 81, 89, 90, 100, 101, 110, 120, 123, 125]
36 34 [17, 28, 1, 97, 85, 70, 65, 68, 98, 19, 6, 55, 60, 82, 90, 41, 31, 125, 95, 112, 48, 86, 14, 49, 127, 92, 99, 15, 122, 43, 106, 58, 34, 80, 16, 91, 119, 46, 81, 2, 64, 8, 51, 52, 89, 20, 74, 12, 113, 72, 66, 36, 121, 37, 30, 115, 40, 44, 62, 117, 32, 123, 87, 79] [62, 93, 113, 66, 122, 73, 68, 99, 112, 81, 25, 1, 127, 55, 0, 19, 60, 28, 18, 117, 49, 10, 43, 80, 95, 40, 4, 46, 31, 102, 3, 125, 20, 2, 21, 97, 121, 65, 52, 79, 41, 91, 17, 14, 33, 111, 100, 70, 13, 51, 35, 98, 105, 23, 64, 85, 61, 39, 92, 32, 48, 86, 118, 44] [1, 2, 14, 17, 19, 20, 28, 31, 32, 40, 41, 43, 44, 46, 48, 49, 51, 52, 55, 60, 62, 64, 65, 66, 68, 70, 79, 80, 81, 85, 86, 91, 92, 95, 97, 98, 99, 112, 113, 117, 121, 122, 125, 127]
37 35 [51, 85, 64, 97, 39, 74, 25, 19, 3, 49, 62, 29, 45, 1, 115, 32, 8, 123, 15, 65, 50, 48, 58, 28, 82, 114, 22, 87, 31, 21, 76, 57, 125, 7, 55, 67, 88, 53, 43, 18, 27, 61, 36, 118, 26, 0, 68, 60, 46, 86, 13, 109, 92, 83, 56, 91, 23, 110, 12, 95, 81, 30, 34, 9] [72, 20, 21, 90, 17, 68, 83, 33, 41, 51, 77, 84, 6, 108, 79, 115, 52, 54, 70, 61, 9, 57, 94, 107, 29, 63, 14, 53, 111, 47, 96, 18, 42, 36, 98, 106, 102, 100, 2, 120, 64, 121, 105, 73, 4, 104, 85, 69, 37, 89, 110, 127, 59, 24, 112, 16, 113, 101, 103, 7, 38, 10, 12, 19] [7, 9, 12, 18, 19, 21, 29, 36, 51, 53, 57, 61, 64, 68, 83, 85, 110, 115]
38 36 [44, 96, 39, 51, 114, 97, 4, 124, 108, 77, 22, 80, 38, 26, 45, 3, 27, 25, 36, 120, 70, 46, 29, 57, 8, 99, 90, 64, 58, 9, 93, 56, 89, 106, 50, 122, 74, 48, 69, 102, 40, 37, 2, 86, 88, 47, 12, 33, 18, 13, 95, 105, 123, 110, 31, 73, 83, 82, 126, 0, 14, 54, 34, 11] [39, 95, 123, 86, 88, 70, 89, 79, 50, 80, 56, 73, 25, 36, 71, 57, 3, 101, 21, 31, 30, 0, 121, 22, 12, 105, 2, 51, 82, 81, 9, 28, 14, 58, 4, 64, 108, 1, 109, 100, 23, 119, 61, 102, 63, 26, 29, 47, 53, 114, 126, 74, 54, 8, 16, 37, 69, 11, 60, 94, 62, 113, 27, 46] [0, 2, 3, 4, 8, 9, 11, 12, 14, 22, 25, 26, 27, 29, 31, 36, 37, 39, 46, 47, 50, 51, 54, 56, 57, 58, 64, 69, 70, 73, 74, 80, 82, 86, 88, 89, 95, 102, 105, 108, 114, 123, 126]
39 37 [13, 43, 88, 51, 44, 101, 30, 71, 34, 127, 120, 28, 17, 60, 16, 4, 93, 107, 117, 75, 118, 18, 64, 50, 67, 46, 11, 52, 78, 27, 95, 12, 14, 97, 56, 5, 82, 74, 53, 15, 58, 54, 86, 36, 68, 47, 119, 87, 35, 8, 83, 104, 108, 76, 55, 29, 24, 21, 9, 92, 19, 102, 41, 91] [66, 14, 109, 4, 115, 94, 34, 7, 45, 35, 101, 119, 50, 9, 25, 57, 30, 88, 71, 52, 19, 118, 17, 56, 38, 91, 5, 64, 24, 48, 29, 78, 21, 10, 70, 72, 2, 18, 104, 15, 13, 44, 108, 75, 58, 60, 97, 46, 36, 86, 93, 59, 100, 0, 43, 107, 125, 85, 80, 87, 32, 69, 55, 12] [4, 5, 9, 12, 13, 14, 15, 17, 18, 19, 21, 24, 29, 30, 34, 35, 36, 43, 44, 46, 50, 52, 55, 56, 58, 60, 64, 71, 75, 78, 86, 87, 88, 91, 93, 97, 101, 104, 107, 108, 118, 119]
40 38 [27, 11, 109, 10, 64, 7, 43, 84, 17, 106, 71, 3, 5, 51, 73, 116, 54, 4, 80, 124, 38, 99, 33, 111, 81, 35, 95, 125, 25, 30, 67, 110, 82, 89, 49, 20, 39, 52, 68, 40, 32, 65, 105, 72, 96, 115, 93, 126, 24, 76, 102, 100, 97, 123, 101, 9, 50, 47, 44, 36, 23, 127, 66, 28] [18, 106, 53, 121, 15, 49, 69, 86, 116, 114, 47, 73, 16, 112, 119, 52, 3, 45, 64, 33, 94, 91, 43, 1, 7, 75, 83, 55, 35, 23, 63, 5, 84, 56, 78, 12, 124, 46, 113, 2, 90, 126, 115, 120, 71, 0, 95, 93, 87, 77, 88, 19, 14, 70, 20, 29, 24, 31, 62, 37, 118, 79, 74, 111] [3, 5, 7, 20, 23, 24, 33, 35, 43, 47, 49, 52, 64, 71, 73, 84, 93, 95, 106, 111, 115, 116, 124, 126]
41 39 [90, 50, 42, 2, 46, 10, 29, 55, 33, 108, 35, 53, 56, 83, 51, 114, 65, 75, 86, 30, 62, 22, 121, 32, 5, 43, 44, 77, 116, 106, 80, 23, 31, 69, 15, 93, 68, 96, 54, 97, 92, 73, 76, 123, 125, 79, 101, 24, 39, 9, 36, 72, 28, 37, 41, 105, 52, 6, 34, 16, 3, 104, 27, 1] [76, 96, 83, 69, 104, 35, 15, 100, 33, 44, 91, 58, 10, 9, 29, 86, 70, 125, 112, 13, 108, 53, 65, 72, 66, 26, 117, 127, 126, 1, 120, 49, 109, 88, 43, 111, 39, 3, 123, 64, 54, 23, 77, 118, 30, 14, 12, 106, 37, 6, 19, 27, 48, 36, 63, 121, 74, 119, 22, 84, 50, 8, 107, 28] [1, 3, 6, 9, 10, 15, 22, 23, 27, 28, 29, 30, 33, 35, 36, 37, 39, 43, 44, 50, 53, 54, 65, 69, 72, 76, 77, 83, 86, 96, 104, 106, 108, 121, 123, 125]
42 40 [34, 28, 122, 54, 84, 37, 59, 107, 5, 99, 80, 20, 73, 91, 88, 21, 50, 76, 1, 15, 100, 108, 78, 109, 7, 36, 6, 112, 114, 2, 16, 85, 118, 77, 49, 62, 66, 63, 95, 60, 19, 56, 105, 104, 57, 117, 17, 113, 92, 68, 102, 86, 23, 127, 11, 35, 69, 43, 74, 61, 3, 126, 47, 98] [18, 57, 70, 79, 95, 24, 78, 111, 4, 9, 123, 110, 115, 90, 10, 125, 65, 32, 118, 8, 37, 83, 121, 3, 53, 116, 106, 40, 22, 98, 7, 81, 0, 21, 5, 97, 33, 46, 113, 12, 124, 119, 87, 29, 50, 2, 31, 103, 122, 41, 94, 76, 27, 99, 48, 45, 107, 114, 67, 96, 38, 91, 105, 80] [2, 3, 5, 7, 21, 37, 50, 57, 76, 78, 80, 91, 95, 98, 99, 105, 107, 113, 114, 118, 122]
43 41 [76, 23, 20, 62, 38, 0, 32, 104, 80, 34, 58, 106, 36, 87, 15, 73, 44, 117, 40, 124, 35, 46, 114, 100, 53, 10, 66, 79, 88, 37, 31, 121, 48, 28, 122, 16, 63, 26, 72, 1, 126, 45, 4, 22, 9, 71, 5, 110, 118, 61, 13, 54, 78, 93, 30, 39, 103, 33, 41, 82, 113, 55, 68, 83] [120, 125, 91, 103, 37, 0, 38, 15, 30, 23, 13, 117, 46, 7, 44, 66, 106, 20, 123, 29, 71, 74, 99, 77, 27, 54, 87, 126, 19, 124, 34, 85, 2, 48, 40, 42, 33, 93, 83, 80, 26, 57, 69, 100, 114, 45, 36, 14, 105, 9, 82, 122, 89, 58, 51, 59, 22, 81, 32, 62, 78, 24, 60, 10] [0, 9, 10, 13, 15, 20, 22, 23, 26, 30, 32, 33, 34, 36, 37, 38, 40, 44, 45, 46, 48, 54, 58, 62, 66, 71, 78, 80, 82, 83, 87, 93, 100, 103, 106, 114, 117, 122, 124, 126]
44 42 [64, 26, 78, 51, 2, 113, 105, 6, 47, 79, 60, 18, 36, 7, 110, 4, 72, 32, 73, 27, 88, 45, 104, 14, 118, 123, 91, 121, 42, 68, 98, 111, 66, 106, 9, 10, 43, 52, 48, 102, 55, 95, 74, 5, 54, 56, 115, 114, 58, 120, 38, 37, 112, 99, 39, 62, 22, 20, 125, 81, 28, 82, 94, 71] [85, 56, 80, 10, 91, 36, 126, 21, 18, 27, 86, 34, 121, 23, 72, 92, 50, 106, 70, 62, 12, 93, 7, 66, 52, 22, 81, 14, 47, 101, 64, 61, 90, 28, 41, 40, 99, 111, 74, 98, 94, 63, 120, 33, 45, 122, 123, 48, 82, 32, 0, 42, 57, 96, 110, 31, 71, 39, 44, 87, 5, 26, 54, 102] [5, 7, 10, 14, 18, 22, 26, 27, 28, 32, 36, 39, 42, 45, 47, 48, 52, 54, 56, 62, 64, 66, 71, 72, 74, 81, 82, 91, 94, 98, 99, 102, 106, 110, 111, 120, 121, 123]
45 43 [5, 8, 7, 105, 3, 17, 46, 1, 104, 82, 118, 106, 91, 54, 102, 0, 39, 38, 19, 88, 94, 25, 85, 55, 113, 14, 18, 52, 35, 76, 57, 112, 9, 124, 123, 29, 80, 97, 33, 89, 78, 43, 22, 109, 126, 10, 34, 11, 108, 12, 96, 79, 121, 125, 86, 50, 92, 119, 42, 13, 58, 110, 60, 56] [35, 73, 112, 30, 21, 77, 17, 88, 90, 14, 107, 113, 72, 44, 117, 31, 1, 105, 79, 47, 124, 10, 53, 28, 5, 96, 33, 119, 18, 66, 7, 83, 114, 23, 101, 13, 63, 74, 100, 85, 25, 115, 84, 103, 45, 99, 16, 2, 46, 62, 69, 81, 38, 41, 64, 126, 0, 65, 12, 19, 43, 49, 111, 67] [0, 1, 5, 7, 10, 12, 13, 14, 17, 18, 19, 25, 33, 35, 38, 43, 46, 79, 85, 88, 96, 105, 112, 113, 119, 124, 126]
46 44 [26, 109, 77, 7, 110, 114, 125, 38, 98, 90, 57, 68, 72, 18, 13, 29, 82, 118, 30, 42, 31, 75, 21, 4, 37, 65, 56, 35, 8, 100, 105, 113, 5, 78, 70, 87, 92, 67, 59, 25, 9, 16, 79, 46, 6, 47, 55, 23, 44, 66, 49, 1, 20, 64, 40, 28, 48, 34, 115, 97, 85, 91, 22, 95] [27, 117, 112, 38, 121, 98, 123, 43, 26, 88, 94, 35, 41, 29, 122, 116, 106, 73, 93, 36, 104, 126, 47, 12, 80, 58, 60, 84, 72, 18, 46, 32, 83, 119, 95, 52, 7, 53, 65, 127, 89, 86, 50, 109, 33, 39, 90, 107, 19, 111, 71, 61, 14, 96, 124, 2, 100, 118, 45, 15, 97, 17, 51, 34] [7, 18, 26, 29, 34, 35, 38, 46, 47, 65, 72, 90, 95, 97, 98, 100, 109, 118]
47 45 [82, 6, 108, 31, 55, 89, 75, 40, 96, 45, 118, 44, 18, 116, 125, 81, 59, 65, 28, 14, 0, 117, 98, 91, 12, 35, 103, 120, 24, 99, 84, 43, 101, 66, 11, 5, 27, 53, 88, 104, 64, 62, 105, 70, 54, 2, 113, 50, 74, 49, 67, 114, 22, 1, 21, 85, 29, 77, 87, 63, 26, 111, 46, 79] [35, 73, 18, 11, 5, 40, 113, 95, 2, 122, 103, 4, 104, 87, 58, 28, 125, 47, 118, 97, 85, 52, 124, 1, 72, 108, 44, 26, 55, 50, 81, 64, 117, 78, 92, 37, 76, 43, 66, 0, 98, 63, 91, 12, 75, 27, 53, 62, 99, 33, 45, 14, 20, 77, 105, 89, 101, 65, 84, 82, 49, 59, 21, 102] [0, 1, 2, 5, 11, 12, 14, 18, 21, 26, 27, 28, 35, 40, 43, 44, 45, 49, 50, 53, 55, 59, 62, 63, 64, 65, 66, 75, 77, 81, 82, 84, 85, 87, 89, 91, 98, 99, 101, 103, 104, 105, 108, 113, 117, 118, 125]
48 46 [47, 75, 82, 0, 40, 46, 1, 6, 61, 66, 27, 55, 116, 71, 126, 12, 123, 69, 107, 49, 112, 28, 77, 120, 30, 88, 16, 91, 15, 21, 36, 124, 13, 81, 34, 70, 17, 68, 85, 22, 95, 53, 51, 39, 80, 5, 7, 106, 89, 19, 60, 44, 72, 25, 9, 64, 97, 42, 58, 35, 114, 57, 115, 59] [71, 54, 96, 34, 27, 81, 0, 68, 63, 18, 20, 58, 44, 13, 113, 21, 117, 72, 127, 35, 75, 78, 89, 86, 17, 97, 110, 47, 24, 41, 12, 65, 92, 73, 74, 60, 120, 3, 7, 93, 108, 111, 26, 1, 48, 50, 116, 123, 14, 126, 80, 107, 38, 4, 98, 16, 46, 100, 90, 105, 11, 52, 31, 114] [0, 1, 7, 12, 13, 16, 17, 21, 27, 34, 35, 44, 46, 47, 58, 60, 68, 71, 72, 75, 80, 81, 89, 97, 107, 114, 116, 120, 123, 126]
49 47 [17, 23, 27, 1, 67, 111, 69, 112, 19, 100, 45, 37, 21, 29, 14, 9, 116, 30, 85, 54, 117, 75, 108, 79, 11, 4, 33, 109, 114, 102, 90, 127, 55, 2, 34, 68, 74, 92, 97, 120, 47, 32, 78, 16, 8, 91, 6, 26, 89, 86, 76, 94, 15, 77, 13, 80, 18, 52, 25, 115, 64, 98, 124, 87] [127, 65, 21, 48, 19, 20, 84, 1, 123, 87, 103, 33, 125, 79, 16, 105, 27, 64, 94, 109, 117, 23, 69, 25, 9, 45, 88, 90, 47, 5, 54, 74, 116, 102, 98, 12, 80, 37, 4, 106, 8, 96, 115, 18, 67, 95, 70, 60, 14, 89, 52, 26, 39, 34, 86, 44, 43, 112, 114, 29, 120, 75, 13, 72] [1, 4, 8, 9, 13, 14, 16, 18, 19, 21, 23, 25, 26, 27, 29, 33, 34, 37, 45, 47, 52, 54, 64, 67, 69, 74, 75, 79, 80, 86, 87, 89, 90, 94, 98, 102, 109, 112, 114, 115, 116, 117, 120, 127]
50 48 [70, 41, 29, 23, 78, 32, 79, 125, 95, 63, 112, 39, 14, 100, 51, 20, 94, 98, 97, 52, 5, 73, 1, 75, 103, 62, 71, 88, 67, 69, 49, 127, 25, 99, 64, 17, 19, 45, 44, 80, 85, 89, 114, 34, 3, 50, 55, 12, 111, 9, 7, 38, 90, 53, 28, 82, 46, 36, 24, 65, 108, 119, 110, 40] [103, 116, 24, 105, 82, 114, 56, 88, 39, 74, 63, 104, 36, 99, 32, 22, 61, 71, 51, 26, 72, 79, 57, 41, 43, 29, 83, 54, 62, 5, 106, 94, 64, 37, 110, 49, 98, 127, 112, 91, 3, 9, 84, 76, 10, 77, 8, 60, 34, 40, 78, 93, 44, 2, 102, 12, 45, 87, 1, 118, 19, 53, 125, 97] [1, 3, 5, 9, 12, 19, 24, 29, 32, 34, 36, 39, 40, 41, 44, 45, 49, 51, 53, 62, 63, 64, 71, 78, 79, 82, 88, 94, 97, 98, 99, 103, 110, 112, 114, 125, 127]
51 49 [94, 92, 8, 3, 95, 14, 49, 69, 44, 105, 77, 74, 23, 81, 36, 35, 126, 127, 96, 123, 76, 62, 72, 104, 118, 65, 28, 70, 102, 4, 54, 0, 10, 12, 98, 122, 60, 108, 33, 84, 40, 87, 110, 43, 15, 97, 29, 16, 93, 83, 18, 11, 99, 64, 34, 75, 48, 53, 86, 125, 85, 116, 90, 66] [121, 40, 44, 52, 94, 72, 76, 105, 60, 100, 104, 106, 83, 65, 91, 110, 95, 122, 20, 10, 99, 54, 57, 1, 15, 18, 66, 12, 14, 126, 28, 42, 3, 127, 56, 125, 88, 77, 6, 48, 5, 101, 17, 37, 113, 108, 120, 43, 67, 68, 51, 7, 11, 33, 29, 32, 8, 13, 90, 35, 23, 118, 34, 85] [3, 8, 10, 11, 12, 14, 15, 18, 23, 28, 29, 33, 34, 35, 40, 43, 44, 48, 54, 60, 65, 66, 72, 76, 77, 83, 85, 90, 94, 95, 99, 104, 105, 108, 110, 118, 122, 125, 126, 127]
52 50 [49, 34, 40, 27, 1, 57, 46, 122, 73, 93, 77, 58, 42, 0, 36, 109, 96, 115, 98, 79, 8, 126, 68, 97, 102, 92, 60, 78, 24, 59, 26, 80, 100, 101, 85, 6, 39, 44, 94, 52, 56, 43, 107, 28, 114, 76, 11, 21, 65, 75, 63, 10, 104, 95, 23, 62, 103, 14, 16, 3, 118, 125, 5, 123] [108, 43, 105, 23, 36, 26, 114, 104, 62, 6, 24, 92, 1, 7, 83, 5, 89, 28, 107, 42, 34, 110, 39, 64, 122, 87, 53, 55, 68, 40, 52, 106, 2, 78, 103, 56, 111, 98, 85, 79, 124, 60, 116, 15, 119, 27, 3, 54, 47, 126, 118, 65, 113, 100, 125, 49, 57, 9, 46, 32, 38, 123, 67, 95] [1, 3, 5, 6, 23, 24, 26, 27, 28, 34, 36, 39, 40, 42, 43, 46, 49, 52, 56, 57, 60, 62, 65, 68, 78, 79, 85, 92, 95, 98, 100, 103, 104, 107, 114, 118, 122, 123, 125, 126]
53 51 [24, 41, 100, 35, 125, 3, 107, 51, 80, 82, 123, 71, 93, 47, 13, 14, 55, 30, 86, 64, 70, 122, 67, 38, 88, 8, 99, 117, 76, 89, 26, 29, 27, 39, 45, 102, 0, 53, 124, 7, 31, 79, 56, 23, 52, 75, 20, 42, 101, 108, 43, 33, 95, 69, 61, 98, 78, 115, 54, 40, 105, 87, 19, 44] [1, 13, 122, 37, 35, 91, 54, 6, 89, 71, 50, 58, 16, 104, 116, 5, 25, 0, 95, 73, 2, 126, 110, 97, 103, 12, 90, 117, 72, 17, 53, 3, 43, 60, 68, 11, 109, 107, 105, 4, 62, 65, 34, 46, 81, 82, 40, 84, 106, 75, 74, 78, 9, 45, 15, 123, 111, 48, 41, 119, 83, 125, 28, 96] [0, 3, 13, 35, 40, 41, 43, 45, 53, 54, 71, 75, 78, 82, 89, 95, 105, 107, 117, 122, 123, 125]
54 52 [89, 51, 33, 37, 49, 0, 84, 4, 65, 87, 125, 67, 90, 7, 19, 68, 11, 17, 46, 106, 39, 82, 62, 126, 120, 72, 45, 86, 93, 16, 50, 54, 105, 104, 55, 36, 58, 73, 43, 57, 103, 94, 76, 75, 70, 64, 127, 85, 53, 10, 35, 107, 31, 113, 47, 24, 124, 32, 108, 26, 60, 42, 74, 80] [96, 34, 10, 67, 6, 86, 87, 82, 78, 15, 54, 59, 75, 23, 89, 88, 28, 99, 107, 27, 69, 94, 70, 120, 29, 46, 63, 71, 47, 83, 52, 122, 115, 7, 36, 13, 119, 116, 18, 112, 93, 80, 55, 8, 2, 51, 30, 9, 33, 60, 111, 38, 20, 21, 17, 35, 14, 81, 5, 101, 26, 19, 25, 39] [7, 10, 17, 19, 26, 33, 35, 36, 39, 46, 47, 51, 54, 55, 60, 67, 70, 75, 80, 82, 86, 87, 89, 93, 94, 107, 120]
55 53 [115, 62, 77, 59, 8, 48, 85, 117, 63, 79, 34, 32, 3, 49, 105, 33, 23, 52, 57, 96, 121, 94, 90, 61, 27, 92, 30, 4, 64, 81, 20, 29, 106, 10, 98, 88, 60, 2, 45, 1, 46, 56, 26, 107, 19, 25, 82, 97, 36, 103, 100, 16, 110, 28, 70, 114, 80, 41, 84, 122, 53, 65, 76, 11] [126, 16, 120, 111, 30, 86, 41, 42, 71, 7, 3, 74, 88, 89, 54, 67, 14, 121, 100, 73, 26, 77, 2, 103, 81, 83, 55, 6, 33, 13, 40, 69, 17, 85, 123, 80, 118, 29, 92, 1, 50, 39, 72, 84, 45, 46, 87, 4, 75, 34, 57, 95, 32, 117, 15, 76, 109, 66, 99, 61, 27, 112, 98, 104] [1, 2, 3, 4, 16, 26, 27, 29, 30, 32, 33, 34, 41, 45, 46, 57, 61, 76, 77, 80, 81, 84, 85, 88, 92, 98, 100, 103, 117, 121]
56 54 [60, 111, 21, 57, 87, 100, 80, 20, 40, 63, 56, 90, 8, 76, 108, 94, 82, 73, 121, 45, 97, 65, 29, 34, 43, 114, 127, 72, 35, 4, 12, 125, 1, 123, 109, 105, 31, 5, 91, 124, 0, 99, 103, 78, 26, 6, 101, 92, 52, 10, 59, 41, 18, 36, 55, 96, 13, 42, 49, 28, 23, 66, 38, 2] [90, 79, 63, 78, 29, 76, 106, 16, 103, 38, 48, 64, 82, 89, 73, 61, 60, 62, 21, 26, 18, 43, 2, 22, 52, 95, 70, 56, 102, 32, 33, 114, 53, 4, 111, 101, 15, 20, 113, 30, 3, 84, 44, 110, 119, 35, 68, 7, 91, 118, 57, 31, 55, 112, 14, 75, 0, 77, 121, 115, 46, 105, 104, 108] [0, 2, 4, 18, 20, 21, 26, 29, 31, 35, 38, 43, 52, 55, 56, 57, 60, 63, 73, 76, 78, 82, 90, 91, 101, 103, 105, 108, 111, 114, 121]
57 55 [54, 42, 53, 36, 27, 101, 62, 3, 32, 20, 93, 122, 12, 69, 97, 46, 66, 5, 47, 19, 48, 10, 22, 6, 116, 91, 35, 63, 75, 45, 96, 14, 82, 59, 72, 102, 33, 76, 15, 23, 99, 4, 65, 52, 81, 114, 113, 94, 1, 43, 80, 24, 104, 31, 95, 49, 44, 120, 51, 118, 103, 106, 86, 8] [86, 59, 83, 27, 13, 21, 85, 100, 98, 70, 18, 46, 0, 78, 25, 88, 19, 115, 10, 87, 2, 64, 117, 84, 121, 80, 33, 20, 65, 60, 110, 31, 125, 92, 63, 109, 57, 68, 74, 123, 67, 34, 50, 73, 41, 40, 42, 38, 56, 124, 37, 1, 29, 111, 119, 126, 91, 77, 61, 36, 6, 107, 17, 58] [1, 6, 10, 19, 20, 27, 31, 33, 36, 42, 46, 59, 63, 65, 80, 86, 91]
58 56 [41, 9, 111, 20, 69, 47, 17, 35, 26, 25, 89, 93, 2, 37, 22, 118, 84, 5, 21, 126, 100, 60, 107, 104, 33, 1, 63, 86, 46, 12, 39, 29, 80, 3, 0, 77, 6, 108, 59, 76, 55, 30, 27, 14, 48, 4, 28, 53, 127, 11, 52, 58, 67, 92, 44, 122, 23, 51, 98, 94, 49, 90, 32, 31] [92, 116, 84, 72, 88, 100, 94, 64, 52, 98, 122, 58, 106, 78, 112, 8, 111, 67, 27, 45, 2, 90, 125, 5, 50, 6, 42, 66, 39, 53, 16, 113, 69, 17, 123, 102, 93, 7, 13, 127, 68, 105, 91, 119, 37, 49, 3, 28, 20, 55, 35, 71, 99, 124, 121, 54, 70, 47, 120, 26, 126, 75, 25, 32] [2, 3, 5, 6, 17, 20, 25, 26, 27, 28, 32, 35, 37, 39, 47, 49, 52, 53, 55, 58, 67, 69, 84, 90, 92, 93, 94, 98, 100, 111, 122, 126, 127]
59 57 [8, 71, 59, 118, 45, 96, 108, 7, 30, 73, 11, 92, 50, 28, 70, 19, 110, 0, 26, 53, 106, 49, 25, 88, 10, 121, 67, 1, 105, 61, 65, 4, 74, 86, 46, 37, 54, 16, 34, 38, 52, 100, 29, 39, 85, 27, 6, 94, 77, 107, 98, 33, 66, 40, 55, 14, 58, 44, 103, 2, 20, 112, 75, 114] [95, 18, 101, 50, 108, 54, 126, 104, 62, 16, 76, 15, 99, 83, 115, 30, 3, 80, 7, 72, 125, 84, 117, 85, 28, 127, 79, 27, 56, 89, 78, 13, 2, 9, 68, 61, 22, 17, 5, 43, 40, 35, 102, 75, 121, 12, 63, 51, 23, 42, 109, 39, 21, 59, 49, 29, 81, 77, 48, 47, 73, 123, 113, 97] [2, 7, 16, 27, 28, 29, 30, 39, 40, 49, 50, 54, 59, 61, 73, 75, 77, 85, 108, 121]
60 58 [32, 108, 121, 15, 20, 54, 115, 109, 19, 48, 9, 81, 57, 127, 27, 98, 60, 21, 47, 100, 76, 23, 126, 1, 36, 52, 2, 25, 66, 70, 31, 50, 46, 78, 14, 116, 45, 96, 92, 120, 93, 72, 4, 10, 17, 49, 103, 29, 82, 69, 102, 88, 125, 13, 110, 118, 18, 80, 62, 55, 39, 67, 94, 59] [52, 74, 88, 111, 19, 116, 110, 78, 55, 121, 14, 73, 36, 104, 49, 86, 82, 102, 22, 124, 67, 51, 43, 10, 27, 123, 60, 79, 100, 127, 87, 2, 23, 98, 96, 44, 30, 24, 63, 89, 45, 90, 9, 108, 46, 68, 120, 64, 99, 26, 17, 91, 1, 32, 29, 21, 70, 56, 48, 62, 83, 103, 39, 57] [1, 2, 9, 10, 14, 17, 19, 21, 23, 27, 29, 32, 36, 39, 45, 46, 48, 49, 52, 55, 57, 60, 62, 67, 70, 78, 82, 88, 96, 98, 100, 102, 103, 108, 110, 116, 120, 121, 127]
61 59 [115, 40, 65, 102, 105, 47, 27, 31, 121, 69, 54, 76, 67, 35, 15, 110, 118, 50, 32, 84, 42, 87, 108, 62, 9, 63, 94, 20, 106, 99, 86, 81, 122, 12, 89, 79, 68, 38, 7, 36, 75, 6, 55, 83, 48, 97, 95, 23, 1, 16, 93, 74, 70, 28, 77, 13, 72, 24, 92, 91, 5, 37, 57, 64] [35, 50, 99, 76, 96, 42, 5, 71, 46, 12, 17, 28, 14, 6, 100, 87, 101, 27, 3, 37, 77, 48, 32, 52, 38, 80, 102, 49, 25, 118, 62, 31, 105, 59, 98, 20, 119, 18, 55, 45, 121, 24, 57, 56, 95, 54, 47, 73, 1, 70, 9, 117, 67, 41, 2, 33, 39, 92, 106, 90, 65, 88, 8, 108] [1, 5, 6, 9, 12, 20, 24, 27, 28, 31, 32, 35, 37, 38, 42, 47, 48, 50, 54, 55, 57, 62, 65, 67, 70, 76, 77, 87, 92, 95, 99, 102, 105, 106, 108, 118, 121]
62 60 [49, 35, 9, 18, 108, 52, 69, 33, 29, 44, 80, 50, 94, 70, 64, 27, 32, 48, 59, 119, 92, 116, 78, 41, 76, 54, 19, 90, 61, 83, 13, 4, 42, 67, 101, 115, 22, 37, 102, 62, 11, 25, 85, 47, 56, 127, 55, 71, 2, 15, 122, 107, 100, 39, 30, 84, 38, 58, 34, 6, 43, 120, 72, 68] [49, 114, 22, 29, 76, 94, 39, 4, 67, 16, 122, 36, 55, 47, 84, 74, 20, 6, 79, 100, 88, 44, 15, 14, 69, 119, 32, 64, 63, 52, 53, 72, 34, 102, 118, 57, 30, 11, 125, 35, 85, 21, 71, 83, 43, 18, 59, 40, 48, 50, 19, 60, 2, 37, 101, 86, 70, 98, 9, 93, 116, 58, 33, 61] [2, 4, 6, 9, 11, 15, 18, 19, 22, 29, 30, 32, 33, 34, 35, 37, 39, 43, 44, 47, 48, 49, 50, 52, 55, 58, 59, 61, 64, 67, 69, 70, 71, 72, 76, 83, 84, 85, 94, 100, 101, 102, 116, 119, 122]
63 61 [87, 24, 107, 84, 36, 60, 94, 63, 57, 52, 82, 15, 13, 49, 114, 39, 0, 89, 74, 78, 44, 5, 102, 9, 28, 80, 90, 59, 27, 53, 73, 123, 124, 33, 119, 7, 45, 2, 50, 108, 75, 37, 69, 62, 66, 64, 79, 4, 14, 76, 29, 25, 101, 40, 20, 111, 51, 35, 121, 103, 96, 47, 58, 126] [92, 88, 64, 83, 14, 33, 79, 44, 126, 119, 75, 11, 56, 60, 20, 69, 13, 118, 110, 63, 114, 102, 29, 74, 7, 113, 41, 97, 34, 2, 58, 89, 23, 82, 78, 87, 100, 19, 52, 57, 53, 77, 40, 5, 15, 107, 47, 105, 98, 67, 108, 27, 35, 54, 59, 55, 127, 91, 94, 16, 9, 18, 25, 8] [2, 5, 7, 9, 13, 14, 15, 20, 25, 27, 29, 33, 35, 40, 44, 47, 52, 53, 57, 58, 59, 60, 63, 64, 69, 74, 75, 78, 79, 82, 87, 89, 94, 102, 107, 108, 114, 119, 126]
64 62 [86, 117, 27, 89, 65, 115, 24, 12, 40, 62, 77, 88, 2, 97, 21, 110, 64, 107, 34, 76, 37, 69, 108, 91, 124, 51, 72, 7, 75, 30, 120, 106, 70, 18, 10, 95, 116, 50, 122, 71, 94, 61, 41, 56, 67, 6, 59, 42, 111, 126, 19, 16, 92, 105, 104, 43, 81, 17, 29, 23, 8, 102, 48, 103] [117, 88, 63, 32, 105, 23, 19, 87, 36, 67, 118, 112, 17, 73, 123, 35, 4, 7, 94, 15, 18, 57, 25, 84, 3, 100, 43, 66, 83, 114, 98, 44, 46, 41, 42, 121, 20, 37, 62, 40, 8, 52, 29, 93, 31, 61, 6, 30, 49, 21, 71, 80, 54, 16, 53, 28, 47, 60, 70, 120, 38, 39, 34, 26] [6, 7, 8, 16, 17, 18, 19, 21, 23, 29, 30, 34, 37, 40, 41, 42, 43, 61, 62, 67, 70, 71, 88, 94, 105, 117, 120]
65 63 [22, 70, 26, 109, 94, 0, 29, 116, 19, 57, 3, 113, 59, 6, 101, 31, 54, 64, 118, 28, 91, 110, 25, 41, 16, 17, 12, 44, 51, 126, 82, 5, 72, 115, 84, 43, 7, 68, 98, 120, 102, 71, 14, 21, 85, 10, 47, 74, 121, 81, 56, 20, 87, 48, 15, 37, 32, 36, 96, 49, 67, 42, 30, 46] [64, 121, 120, 62, 71, 46, 68, 84, 56, 82, 115, 78, 34, 59, 49, 57, 54, 116, 90, 47, 48, 21, 110, 102, 119, 75, 126, 42, 2, 67, 92, 3, 25, 127, 12, 32, 89, 74, 73, 17, 5, 30, 99, 26, 51, 1, 20, 58, 28, 100, 70, 0, 18, 118, 109, 91, 6, 36, 16, 113, 72, 106, 10, 66] [0, 3, 5, 6, 10, 12, 16, 17, 20, 21, 25, 26, 28, 30, 32, 36, 42, 46, 47, 48, 49, 51, 54, 56, 57, 59, 64, 67, 68, 70, 71, 72, 74, 82, 84, 91, 102, 109, 110, 113, 115, 116, 118, 120, 121, 126]
66 64 [4, 0, 113, 53, 97, 107, 15, 18, 84, 54, 82, 110, 74, 11, 13, 39, 92, 115, 87, 116, 28, 37, 106, 99, 67, 111, 90, 88, 21, 96, 51, 64, 47, 26, 36, 30, 5, 3, 78, 9, 32, 75, 98, 73, 14, 89, 71, 2, 27, 19, 77, 69, 12, 49, 20, 63, 59, 101, 85, 65, 120, 124, 80, 91] [19, 11, 96, 106, 127, 39, 2, 121, 87, 18, 51, 59, 76, 82, 41, 123, 13, 79, 46, 57, 77, 40, 15, 60, 93, 48, 9, 63, 4, 70, 73, 10, 108, 116, 102, 122, 95, 24, 113, 21, 36, 20, 12, 94, 99, 29, 83, 104, 28, 114, 117, 86, 118, 50, 14, 88, 8, 16, 105, 109, 52, 27, 55, 61] [2, 4, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 27, 28, 36, 39, 51, 59, 63, 73, 77, 82, 87, 88, 96, 99, 106, 113, 116]
67 65 [22, 72, 41, 42, 8, 113, 92, 108, 11, 39, 99, 27, 53, 80, 28, 16, 13, 88, 76, 81, 46, 43, 3, 2, 26, 40, 12, 0, 115, 10, 50, 117, 52, 44, 25, 111, 107, 96, 85, 78, 63, 23, 89, 59, 18, 124, 32, 126, 90, 84, 101, 122, 20, 34, 60, 93, 98, 69, 51, 6, 95, 21, 64, 97] [62, 93, 117, 8, 61, 114, 98, 57, 16, 1, 47, 119, 99, 121, 32, 11, 66, 92, 110, 38, 53, 113, 77, 44, 85, 112, 28, 25, 17, 107, 71, 73, 68, 67, 116, 4, 56, 19, 120, 87, 29, 31, 7, 127, 50, 79, 72, 75, 27, 83, 21, 24, 109, 108, 80, 118, 26, 34, 58, 9, 86, 0, 22, 94] [0, 8, 11, 16, 21, 22, 25, 26, 27, 28, 32, 34, 44, 50, 53, 72, 80, 85, 92, 93, 98, 99, 107, 108, 113, 117]
68 66 [42, 117, 88, 35, 1, 25, 45, 85, 123, 105, 27, 54, 74, 46, 47, 24, 40, 36, 52, 29, 30, 53, 93, 122, 99, 39, 98, 63, 121, 50, 94, 72, 89, 84, 70, 2, 126, 112, 75, 69, 34, 95, 37, 71, 125, 66, 118, 67, 12, 33, 62, 101, 115, 65, 13, 55, 17, 14, 51, 76, 10, 120, 92, 59] [74, 27, 85, 12, 125, 5, 96, 118, 104, 63, 40, 81, 57, 71, 69, 112, 92, 30, 65, 107, 75, 121, 99, 76, 1, 116, 39, 32, 115, 38, 51, 16, 17, 67, 25, 109, 59, 10, 28, 89, 33, 58, 42, 61, 13, 82, 119, 11, 54, 14, 45, 77, 34, 44, 24, 37, 46, 36, 70, 84, 80, 101, 29, 35] [1, 10, 12, 13, 14, 17, 24, 25, 27, 29, 30, 33, 34, 35, 36, 37, 39, 40, 42, 45, 46, 51, 54, 59, 63, 65, 67, 69, 70, 71, 74, 75, 76, 84, 85, 89, 92, 99, 101, 112, 115, 118, 121, 125]
69 67 [87, 120, 29, 81, 48, 4, 89, 60, 106, 44, 76, 119, 125, 68, 55, 95, 69, 1, 78, 50, 56, 59, 114, 54, 5, 13, 108, 2, 115, 98, 28, 94, 20, 118, 116, 21, 45, 80, 117, 25, 65, 27, 74, 110, 58, 96, 77, 23, 16, 52, 93, 26, 71, 17, 22, 83, 49, 79, 47, 46, 9, 123, 102, 91] [30, 79, 52, 6, 16, 38, 72, 119, 17, 90, 63, 95, 82, 51, 76, 22, 48, 32, 88, 124, 126, 15, 41, 7, 122, 93, 21, 10, 68, 19, 106, 108, 65, 99, 89, 111, 84, 64, 46, 112, 85, 44, 8, 14, 103, 115, 75, 31, 57, 13, 1, 118, 83, 23, 55, 60, 113, 20, 40, 67, 39, 11, 18, 107] [1, 13, 16, 17, 20, 21, 22, 23, 44, 46, 48, 52, 55, 60, 65, 68, 76, 79, 83, 89, 93, 95, 106, 108, 115, 118, 119]
70 68 [33, 92, 85, 97, 21, 116, 15, 29, 24, 9, 42, 58, 72, 73, 5, 70, 25, 90, 108, 18, 59, 91, 66, 67, 19, 96, 88, 3, 99, 62, 71, 44, 68, 114, 89, 74, 117, 121, 107, 60, 53, 51, 27, 76, 34, 17, 122, 82, 1, 50, 106, 46, 4, 119, 95, 54, 75, 112, 52, 37, 13, 100, 28, 45] [17, 23, 62, 9, 120, 22, 55, 61, 10, 105, 77, 49, 78, 84, 89, 36, 70, 124, 48, 79, 106, 101, 32, 34, 38, 109, 8, 66, 81, 97, 63, 56, 47, 42, 126, 93, 69, 7, 113, 43, 39, 87, 21, 115, 6, 0, 20, 123, 25, 86, 104, 102, 11, 33, 50, 98, 16, 24, 112, 12, 65, 28, 76, 80] [9, 17, 21, 24, 25, 28, 33, 34, 42, 50, 62, 66, 70, 76, 89, 97, 106, 112]
71 69 [28, 3, 77, 42, 16, 67, 63, 24, 78, 23, 109, 45, 118, 7, 88, 30, 43, 76, 59, 21, 99, 37, 52, 25, 5, 19, 89, 115, 35, 95, 93, 13, 2, 121, 57, 80, 8, 17, 101, 98, 1, 106, 9, 96, 82, 111, 10, 22, 107, 113, 20, 38, 56, 79, 36, 91, 74, 31, 126, 29, 64, 71, 55, 60] [120, 48, 73, 49, 45, 40, 82, 21, 7, 34, 31, 109, 41, 72, 83, 22, 47, 118, 99, 74, 100, 101, 54, 106, 116, 127, 123, 124, 75, 50, 44, 112, 96, 108, 76, 0, 10, 29, 94, 3, 11, 58, 39, 8, 92, 59, 30, 51, 37, 16, 9, 97, 28, 86, 2, 24, 55, 19, 122, 105, 67, 1, 63, 102] [1, 2, 3, 7, 8, 9, 10, 16, 19, 21, 22, 24, 28, 29, 30, 31, 37, 45, 55, 59, 63, 67, 74, 76, 82, 96, 99, 101, 106, 109, 118]
72 70 [22, 105, 56, 122, 33, 11, 121, 42, 58, 110, 66, 7, 46, 104, 123, 99, 108, 52, 76, 92, 115, 124, 28, 75, 38, 119, 80, 67, 81, 47, 17, 49, 39, 71, 101, 82, 94, 68, 117, 78, 50, 69, 8, 21, 83, 62, 126, 61, 16, 51, 30, 10, 116, 98, 91, 114, 113, 34, 20, 73, 118, 63, 0, 35] [39, 72, 40, 105, 126, 25, 93, 120, 29, 81, 7, 99, 102, 19, 97, 50, 90, 121, 57, 18, 41, 22, 86, 51, 95, 11, 8, 104, 80, 34, 92, 17, 61, 84, 124, 52, 33, 58, 116, 122, 38, 68, 0, 83, 44, 30, 49, 66, 73, 13, 27, 56, 28, 70, 101, 78, 62, 94, 53, 69, 63, 125, 67, 24] [0, 7, 8, 11, 17, 22, 28, 30, 33, 34, 38, 39, 49, 50, 51, 52, 56, 58, 61, 62, 63, 66, 67, 68, 69, 73, 78, 80, 81, 83, 92, 94, 99, 101, 104, 105, 116, 121, 122, 124, 126]
73 71 [46, 93, 57, 66, 9, 83, 126, 120, 95, 16, 118, 42, 90, 37, 39, 96, 85, 31, 3, 17, 10, 45, 114, 100, 58, 87, 116, 106, 78, 113, 89, 51, 19, 86, 111, 105, 65, 53, 59, 55, 88, 84, 44, 82, 68, 27, 121, 11, 26, 108, 63, 30, 48, 12, 110, 15, 77, 29, 73, 20, 56, 119, 8, 32] [23, 30, 37, 57, 65, 47, 106, 50, 25, 15, 49, 28, 77, 22, 43, 127, 12, 39, 112, 81, 52, 90, 2, 36, 35, 62, 115, 101, 109, 21, 103, 97, 92, 80, 104, 19, 67, 69, 29, 96, 86, 122, 117, 73, 125, 120, 99, 83, 20, 60, 3, 33, 61, 91, 38, 89, 26, 87, 123, 0, 6, 41, 14, 72] [3, 12, 15, 19, 20, 26, 29, 30, 37, 39, 57, 65, 73, 77, 83, 86, 87, 89, 90, 96, 106, 120]
74 72 [37, 123, 98, 88, 11, 6, 14, 25, 23, 79, 59, 8, 18, 74, 110, 119, 109, 118, 7, 117, 78, 27, 56, 81, 101, 1, 47, 32, 48, 77, 46, 70, 52, 96, 116, 40, 71, 122, 85, 26, 2, 112, 125, 49, 42, 10, 36, 13, 22, 102, 68, 38, 19, 73, 89, 45, 62, 43, 55, 35, 121, 58, 114, 24] [10, 90, 88, 104, 107, 116, 8, 81, 42, 109, 125, 56, 57, 89, 26, 92, 21, 28, 99, 87, 41, 82, 79, 86, 4, 18, 72, 123, 80, 91, 39, 50, 100, 32, 40, 46, 33, 3, 69, 30, 84, 115, 62, 74, 117, 127, 108, 35, 55, 101, 63, 96, 0, 53, 60, 25, 75, 49, 95, 27, 23, 94, 6, 98] [6, 8, 10, 18, 23, 25, 26, 27, 32, 35, 40, 42, 46, 49, 55, 56, 62, 74, 79, 81, 88, 89, 96, 98, 101, 109, 116, 117, 123, 125]
75 73 [17, 89, 0, 40, 25, 32, 54, 114, 59, 39, 49, 3, 100, 85, 78, 84, 44, 81, 69, 123, 7, 13, 1, 43, 103, 30, 27, 127, 122, 53, 4, 28, 99, 126, 110, 46, 64, 11, 94, 41, 58, 5, 125, 113, 111, 77, 36, 104, 42, 62, 10, 63, 72, 8, 90, 73, 61, 22, 109, 79, 82, 51, 6, 118] [96, 9, 18, 83, 81, 22, 84, 98, 38, 122, 35, 27, 29, 36, 106, 10, 37, 66, 21, 76, 56, 57, 101, 16, 53, 55, 59, 24, 60, 74, 12, 8, 95, 92, 67, 121, 97, 80, 126, 11, 87, 34, 25, 104, 33, 113, 105, 2, 116, 124, 119, 70, 71, 72, 39, 115, 93, 100, 88, 31, 107, 117, 85, 3] [3, 8, 10, 11, 22, 25, 27, 36, 39, 53, 59, 72, 81, 84, 85, 100, 104, 113, 122, 126]
76 74 [74, 110, 68, 46, 84, 86, 98, 6, 10, 23, 116, 48, 117, 59, 31, 109, 36, 51, 55, 27, 29, 14, 20, 40, 124, 106, 47, 9, 2, 42, 71, 26, 92, 11, 44, 115, 111, 24, 101, 50, 70, 28, 17, 65, 76, 78, 81, 89, 94, 1, 122, 121, 39, 72, 45, 100, 112, 102, 62, 113, 126, 18, 38, 88] [29, 98, 46, 11, 15, 24, 7, 42, 117, 106, 99, 60, 78, 108, 116, 72, 18, 110, 123, 20, 45, 31, 121, 5, 37, 23, 68, 69, 113, 94, 71, 38, 12, 61, 51, 120, 82, 127, 81, 102, 104, 16, 6, 115, 95, 28, 84, 59, 10, 73, 70, 80, 79, 32, 96, 22, 50, 25, 47, 49, 107, 26, 13, 27] [6, 10, 11, 18, 20, 23, 24, 26, 27, 28, 29, 31, 38, 42, 45, 46, 47, 50, 51, 59, 68, 70, 71, 72, 78, 81, 84, 94, 98, 102, 106, 110, 113, 115, 116, 117, 121]
77 75 [82, 37, 121, 60, 8, 56, 98, 39, 14, 112, 87, 119, 85, 71, 36, 33, 11, 22, 81, 123, 83, 91, 99, 43, 126, 42, 9, 49, 64, 4, 68, 72, 84, 26, 78, 10, 5, 27, 76, 51, 12, 93, 48, 38, 75, 20, 25, 63, 124, 62, 21, 73, 47, 100, 46, 107, 103, 23, 28, 34, 61, 104, 53, 52] [10, 23, 9, 119, 33, 31, 69, 78, 27, 13, 29, 63, 56, 26, 24, 60, 120, 6, 77, 99, 8, 86, 0, 80, 40, 50, 57, 114, 55, 42, 65, 94, 87, 82, 54, 30, 97, 122, 21, 38, 49, 102, 2, 104, 44, 52, 20, 4, 47, 39, 118, 7, 83, 109, 15, 1, 116, 115, 75, 18, 46, 124, 11, 36] [4, 8, 9, 10, 11, 20, 21, 23, 26, 27, 33, 36, 38, 39, 42, 46, 47, 49, 52, 56, 60, 63, 75, 78, 82, 83, 87, 99, 104, 119, 124]
78 76 [43, 28, 91, 48, 52, 30, 45, 77, 44, 40, 2, 26, 5, 82, 101, 11, 47, 67, 112, 41, 49, 114, 69, 32, 92, 39, 85, 35, 68, 86, 78, 65, 23, 60, 117, 56, 75, 38, 118, 71, 58, 120, 64, 124, 14, 62, 16, 51, 127, 96, 12, 66, 24, 76, 7, 74, 10, 21, 13, 61, 108, 18, 27, 95] [107, 57, 42, 11, 2, 45, 93, 7, 59, 83, 27, 112, 10, 21, 95, 26, 98, 104, 110, 60, 48, 18, 115, 71, 1, 3, 4, 116, 76, 75, 82, 25, 38, 100, 96, 28, 113, 47, 94, 5, 15, 24, 87, 55, 111, 105, 56, 6, 97, 92, 99, 80, 20, 117, 125, 37, 90, 119, 54, 123, 31, 50, 19, 0] [2, 5, 7, 10, 11, 18, 21, 24, 26, 27, 28, 38, 45, 47, 48, 56, 60, 71, 75, 76, 82, 92, 95, 96, 112, 117]
79 77 [52, 40, 0, 107, 60, 91, 103, 81, 121, 85, 31, 72, 1, 80, 125, 63, 68, 109, 61, 76, 55, 22, 7, 111, 108, 93, 14, 39, 33, 15, 74, 12, 53, 106, 48, 71, 120, 46, 87, 100, 27, 102, 99, 126, 35, 62, 9, 38, 114, 64, 56, 86, 59, 84, 5, 36, 42, 25, 13, 66, 6, 49, 101, 50] [84, 106, 72, 57, 82, 125, 34, 42, 19, 96, 89, 118, 103, 24, 23, 50, 124, 97, 17, 110, 22, 100, 107, 27, 9, 45, 43, 98, 47, 104, 109, 35, 16, 26, 60, 12, 90, 31, 69, 38, 11, 77, 95, 115, 5, 41, 44, 92, 21, 120, 25, 2, 105, 20, 78, 67, 123, 81, 83, 113, 51, 10, 122, 74] [5, 9, 12, 22, 25, 27, 31, 35, 38, 42, 50, 60, 72, 74, 81, 84, 100, 103, 106, 107, 109, 120, 125]
80 78 [38, 19, 81, 65, 13, 100, 120, 33, 64, 66, 113, 63, 101, 107, 123, 46, 79, 109, 114, 7, 3, 91, 124, 35, 111, 60, 47, 68, 57, 4, 27, 110, 10, 5, 77, 62, 115, 117, 54, 84, 75, 44, 59, 72, 98, 83, 73, 92, 28, 82, 6, 99, 76, 58, 49, 88, 103, 9, 94, 22, 50, 40, 121, 21] [108, 32, 116, 59, 4, 79, 104, 29, 97, 46, 100, 115, 98, 114, 83, 122, 20, 60, 7, 102, 15, 119, 35, 37, 63, 33, 21, 109, 62, 84, 85, 39, 31, 110, 44, 23, 72, 25, 61, 75, 28, 52, 55, 27, 89, 117, 17, 105, 86, 91, 53, 64, 40, 45, 6, 2, 80, 81, 47, 16, 54, 42, 120, 3] [3, 4, 6, 7, 21, 27, 28, 33, 35, 40, 44, 46, 47, 54, 59, 60, 62, 63, 64, 72, 75, 79, 81, 83, 84, 91, 98, 100, 109, 110, 114, 115, 117, 120]
81 79 [53, 29, 12, 87, 104, 41, 63, 74, 73, 31, 92, 33, 69, 42, 46, 25, 19, 54, 101, 97, 52, 20, 39, 66, 7, 3, 55, 88, 32, 64, 28, 76, 40, 30, 44, 16, 102, 61, 113, 10, 95, 108, 37, 118, 116, 14, 77, 58, 91, 106, 62, 109, 18, 86, 59, 111, 78, 47, 21, 107, 49, 56, 115, 51] [55, 59, 126, 89, 115, 105, 51, 107, 22, 108, 30, 100, 69, 40, 80, 91, 21, 66, 127, 12, 31, 24, 53, 7, 36, 8, 41, 117, 102, 85, 17, 120, 3, 68, 83, 38, 42, 43, 98, 58, 28, 99, 97, 9, 35, 103, 62, 44, 113, 118, 37, 49, 20, 106, 56, 10, 57, 114, 112, 104, 64, 82, 39, 73] [3, 7, 10, 12, 20, 21, 28, 30, 31, 37, 39, 40, 41, 42, 44, 49, 51, 53, 55, 56, 58, 59, 62, 64, 66, 69, 73, 91, 97, 102, 104, 106, 107, 108, 113, 115, 118]
82 80 [16, 82, 98, 73, 97, 48, 8, 90, 104, 114, 120, 0, 34, 68, 38, 95, 46, 4, 74, 18, 6, 77, 111, 96, 50, 14, 3, 59, 28, 94, 62, 1, 9, 126, 30, 70, 78, 10, 39, 33, 81, 117, 84, 12, 122, 42, 118, 32, 103, 87, 85, 5, 112, 58, 123, 110, 109, 26, 54, 83, 105, 102, 31, 44] [110, 4, 60, 31, 0, 28, 74, 59, 125, 48, 61, 87, 95, 54, 118, 94, 83, 45, 90, 38, 91, 73, 109, 78, 82, 51, 46, 2, 16, 85, 18, 10, 92, 56, 43, 111, 9, 70, 79, 8, 93, 3, 98, 50, 63, 53, 75, 96, 34, 104, 27, 126, 105, 84, 62, 39, 114, 42, 6, 113, 58, 29, 1, 44] [0, 1, 3, 4, 6, 8, 9, 10, 16, 18, 28, 31, 34, 38, 39, 42, 44, 46, 48, 50, 54, 58, 59, 62, 70, 73, 74, 78, 82, 83, 84, 85, 87, 90, 94, 95, 96, 98, 104, 105, 109, 110, 111, 114, 118, 126]
83 81 [52, 46, 35, 22, 33, 103, 21, 19, 54, 40, 28, 27, 77, 127, 9, 44, 16, 39, 53, 29, 30, 65, 23, 70, 55, 118, 72, 6, 24, 0, 62, 32, 38, 69, 63, 47, 79, 67, 13, 20, 41, 66, 105, 64, 14, 112, 85, 25, 60, 100, 1, 59, 106, 113, 50, 17, 88, 82, 76, 80, 26, 92, 89, 49] [5, 66, 94, 21, 15, 16, 85, 92, 47, 107, 105, 98, 77, 38, 99, 90, 14, 96, 45, 53, 35, 95, 42, 80, 32, 3, 9, 44, 57, 29, 91, 18, 59, 74, 33, 116, 119, 37, 4, 83, 97, 40, 52, 86, 121, 30, 76, 87, 36, 72, 54, 114, 126, 109, 17, 55, 62, 117, 102, 100, 78, 43, 101, 68] [9, 14, 16, 17, 21, 29, 30, 32, 33, 35, 38, 40, 44, 47, 52, 53, 54, 55, 59, 62, 66, 72, 76, 77, 80, 85, 92, 100, 105]
84 82 [0, 9, 96, 11, 39, 70, 64, 105, 29, 80, 45, 82, 27, 117, 90, 46, 121, 99, 97, 42, 107, 66, 119, 108, 37, 26, 51, 8, 18, 3, 50, 47, 76, 106, 91, 24, 69, 58, 15, 12, 75, 49, 85, 7, 112, 118, 34, 55, 25, 30, 120, 38, 72, 5, 84, 104, 53, 102, 67, 101, 74, 62, 110, 71] [27, 126, 16, 28, 50, 124, 117, 0, 7, 94, 88, 59, 18, 13, 81, 22, 25, 111, 23, 63, 47, 87, 41, 17, 20, 67, 127, 14, 61, 73, 15, 33, 85, 103, 105, 71, 56, 52, 57, 35, 83, 6, 82, 115, 86, 70, 1, 60, 21, 68, 4, 75, 26, 65, 116, 11, 9, 64, 36, 37, 100, 122, 93, 79] [0, 7, 9, 11, 15, 18, 25, 26, 27, 37, 47, 50, 64, 67, 70, 71, 75, 82, 85, 105, 117]
85 83 [5, 3, 19, 26, 63, 92, 123, 86, 83, 121, 29, 60, 100, 0, 47, 61, 41, 126, 68, 94, 115, 111, 73, 93, 50, 10, 1, 64, 84, 37, 95, 116, 96, 51, 108, 15, 11, 62, 13, 55, 30, 57, 72, 8, 45, 104, 118, 23, 79, 103, 39, 90, 32, 78, 66, 122, 80, 88, 74, 124, 40, 54, 35, 76] [63, 96, 39, 71, 15, 111, 87, 83, 95, 86, 54, 26, 122, 0, 22, 115, 66, 10, 107, 73, 58, 61, 91, 32, 90, 14, 34, 37, 44, 88, 93, 57, 70, 64, 40, 33, 74, 78, 46, 41, 84, 2, 82, 110, 77, 104, 5, 102, 3, 113, 125, 1, 116, 29, 9, 30, 59, 51, 72, 126, 108, 45, 120, 62] [0, 1, 3, 5, 10, 15, 26, 29, 30, 32, 37, 39, 40, 41, 45, 51, 54, 57, 61, 62, 63, 64, 66, 72, 73, 74, 78, 83, 84, 86, 88, 90, 93, 95, 96, 104, 108, 111, 115, 116, 122, 126]
86 84 [110, 117, 67, 83, 25, 2, 27, 123, 127, 59, 57, 95, 68, 118, 73, 124, 50, 63, 71, 12, 8, 46, 106, 3, 7, 1, 16, 40, 49, 77, 55, 15, 94, 89, 125, 0, 108, 4, 80, 38, 10, 85, 79, 122, 9, 61, 11, 22, 105, 58, 18, 75, 92, 45, 69, 23, 62, 41, 26, 51, 24, 35, 52, 33] [105, 12, 99, 67, 110, 4, 95, 8, 119, 46, 41, 103, 88, 73, 80, 111, 62, 7, 9, 24, 78, 10, 18, 21, 30, 123, 32, 19, 81, 116, 40, 36, 113, 27, 3, 37, 109, 55, 85, 1, 92, 26, 127, 106, 72, 101, 98, 38, 91, 44, 39, 22, 25, 104, 66, 75, 20, 45, 33, 120, 93, 34, 59, 108] [1, 3, 4, 7, 8, 9, 10, 12, 18, 22, 24, 25, 26, 27, 33, 38, 40, 41, 45, 46, 55, 59, 62, 67, 73, 75, 80, 85, 92, 95, 105, 106, 108, 110, 123, 127]
87 85 [6, 67, 36, 125, 62, 56, 64, 7, 49, 103, 115, 52, 66, 13, 21, 93, 27, 110, 82, 58, 20, 16, 108, 17, 61, 2, 98, 121, 23, 92, 102, 107, 45, 78, 19, 120, 100, 112, 8, 40, 46, 55, 14, 122, 50, 124, 63, 3, 41, 90, 91, 15, 35, 9, 59, 42, 60, 76, 88, 39, 33, 0, 53, 80] [19, 33, 82, 51, 103, 22, 64, 116, 52, 63, 127, 55, 72, 7, 100, 0, 20, 89, 3, 99, 113, 92, 115, 59, 40, 44, 28, 6, 101, 14, 80, 102, 11, 123, 56, 10, 76, 73, 50, 57, 43, 38, 18, 36, 15, 74, 16, 13, 37, 94, 24, 12, 84, 107, 61, 91, 39, 60, 62, 21, 49, 77, 122, 2] [0, 2, 3, 6, 7, 13, 14, 15, 16, 19, 20, 21, 33, 36, 39, 40, 49, 50, 52, 55, 56, 59, 60, 61, 62, 63, 64, 76, 80, 82, 91, 92, 100, 102, 103, 107, 115, 122]
88 86 [10, 119, 45, 90, 12, 86, 66, 39, 99, 94, 97, 82, 52, 72, 120, 15, 65, 81, 30, 114, 76, 42, 61, 79, 26, 105, 27, 75, 123, 83, 98, 64, 11, 122, 6, 43, 8, 40, 41, 55, 23, 74, 58, 3, 31, 95, 13, 49, 17, 84, 77, 54, 51, 108, 89, 1, 0, 29, 63, 111, 22, 33, 24, 35] [19, 100, 87, 102, 92, 73, 58, 112, 53, 35, 70, 52, 107, 119, 106, 48, 26, 85, 2, 47, 34, 14, 6, 117, 80, 4, 104, 12, 91, 13, 20, 56, 113, 96, 84, 18, 126, 38, 121, 60, 88, 114, 69, 46, 116, 97, 16, 71, 9, 124, 93, 120, 22, 109, 42, 29, 10, 44, 118, 63, 67, 15, 21, 11] [6, 10, 11, 12, 13, 15, 22, 26, 29, 35, 42, 52, 58, 63, 84, 97, 114, 119, 120]
89 87 [47, 94, 0, 113, 89, 21, 105, 77, 80, 114, 12, 53, 64, 70, 10, 35, 123, 118, 30, 119, 85, 23, 111, 101, 8, 54, 125, 59, 60, 13, 14, 49, 124, 42, 65, 120, 74, 62, 108, 18, 103, 90, 9, 46, 121, 11, 81, 22, 16, 25, 93, 63, 33, 107, 102, 1, 40, 76, 45, 88, 73, 37, 7, 5] [107, 92, 77, 102, 91, 87, 79, 76, 22, 116, 44, 111, 2, 29, 0, 51, 31, 47, 52, 10, 104, 20, 26, 112, 68, 36, 106, 14, 120, 86, 64, 95, 19, 78, 83, 118, 127, 59, 62, 71, 84, 73, 56, 80, 25, 9, 89, 35, 41, 40, 17, 61, 66, 98, 32, 37, 8, 69, 115, 109, 34, 75, 27, 21] [0, 8, 9, 10, 14, 21, 22, 25, 35, 37, 40, 47, 59, 62, 64, 73, 76, 77, 80, 89, 102, 107, 111, 118, 120]
90 88 [71, 50, 28, 79, 54, 57, 45, 22, 65, 80, 18, 44, 67, 113, 127, 126, 91, 7, 14, 99, 58, 47, 51, 69, 4, 27, 77, 73, 110, 119, 60, 88, 97, 68, 115, 46, 81, 39, 106, 52, 29, 6, 42, 5, 86, 55, 66, 95, 104, 124, 123, 103, 90, 26, 108, 63, 24, 10, 61, 25, 17, 116, 83, 8] [119, 88, 13, 76, 52, 102, 14, 97, 47, 50, 46, 85, 94, 112, 23, 96, 19, 83, 99, 7, 21, 26, 116, 71, 103, 6, 24, 73, 78, 8, 65, 45, 126, 56, 51, 124, 91, 106, 55, 109, 122, 68, 75, 22, 15, 113, 107, 74, 9, 29, 38, 63, 84, 53, 79, 58, 48, 81, 104, 54, 77, 34, 28, 80] [6, 7, 8, 14, 22, 24, 26, 28, 29, 45, 46, 47, 50, 51, 52, 54, 55, 58, 63, 65, 68, 71, 73, 77, 79, 80, 81, 83, 88, 91, 97, 99, 103, 104, 106, 113, 116, 119, 124, 126]
91 89 [101, 65, 94, 68, 0, 96, 37, 81, 79, 107, 60, 109, 3, 11, 78, 36, 38, 52, 14, 41, 71, 23, 64, 93, 45, 21, 48, 54, 120, 6, 83, 43, 34, 121, 56, 63, 51, 61, 2, 115, 104, 40, 95, 17, 44, 55, 114, 4, 80, 39, 12, 99, 16, 8, 35, 32, 86, 91, 72, 5, 18, 15, 97, 59] [83, 13, 45, 6, 66, 108, 5, 124, 99, 35, 119, 10, 43, 107, 94, 82, 15, 86, 65, 81, 95, 16, 101, 80, 4, 97, 56, 72, 39, 0, 77, 102, 69, 37, 122, 91, 114, 74, 41, 89, 11, 113, 64, 32, 21, 61, 53, 90, 63, 24, 48, 71, 60, 93, 120, 59, 20, 54, 23, 123, 7, 76, 36, 46] [0, 4, 5, 6, 11, 15, 16, 21, 23, 32, 35, 36, 37, 39, 41, 43, 45, 48, 54, 56, 59, 60, 61, 63, 64, 65, 71, 72, 80, 81, 83, 86, 91, 93, 94, 95, 97, 99, 101, 107, 114, 120]
92 90 [25, 2, 118, 120, 0, 53, 21, 7, 55, 117, 37, 97, 72, 94, 122, 88, 29, 13, 24, 91, 19, 115, 27, 34, 4, 75, 112, 65, 116, 119, 31, 80, 42, 82, 79, 78, 111, 33, 93, 85, 41, 48, 49, 123, 95, 64, 108, 92, 32, 106, 12, 105, 38, 46, 124, 103, 77, 26, 30, 125, 8, 23, 16, 74] [13, 28, 15, 70, 55, 76, 87, 24, 22, 119, 123, 20, 122, 92, 31, 35, 126, 98, 30, 14, 29, 68, 88, 115, 42, 41, 1, 57, 83, 8, 97, 54, 85, 21, 81, 113, 19, 109, 63, 37, 40, 51, 27, 104, 34, 3, 32, 79, 121, 18, 58, 59, 25, 0, 103, 16, 11, 6, 67, 84, 45, 73, 106, 5] [0, 8, 13, 16, 19, 21, 24, 25, 27, 29, 30, 31, 32, 34, 37, 41, 42, 55, 79, 85, 88, 92, 97, 103, 106, 115, 119, 122, 123]
93 91 [15, 24, 121, 26, 100, 32, 107, 19, 48, 2, 49, 4, 0, 104, 94, 101, 5, 82, 86, 14, 90, 40, 22, 55, 20, 71, 97, 125, 98, 16, 119, 85, 6, 41, 117, 61, 63, 58, 37, 73, 12, 120, 17, 50, 127, 38, 66, 45, 109, 80, 115, 84, 88, 29, 54, 76, 99, 89, 11, 79, 59, 75, 23, 42] [59, 34, 95, 14, 104, 20, 121, 127, 36, 19, 50, 76, 49, 63, 65, 97, 116, 66, 94, 17, 93, 84, 120, 55, 3, 16, 100, 107, 82, 69, 33, 83, 109, 7, 105, 12, 41, 64, 71, 67, 37, 23, 91, 10, 26, 38, 62, 115, 24, 72, 112, 98, 40, 117, 35, 99, 22, 45, 101, 48, 15, 47, 8, 1] [12, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 37, 38, 40, 41, 45, 48, 49, 50, 55, 59, 63, 66, 71, 76, 82, 84, 94, 97, 98, 99, 100, 101, 104, 107, 109, 115, 117, 120, 121, 127]
94 92 [8, 52, 23, 16, 2, 66, 123, 94, 4, 31, 24, 44, 28, 75, 113, 82, 17, 53, 98, 124, 117, 45, 99, 87, 6, 57, 102, 15, 108, 37, 0, 114, 120, 9, 126, 46, 71, 116, 25, 49, 65, 110, 12, 92, 50, 21, 88, 18, 26, 90, 11, 68, 77, 14, 51, 33, 104, 72, 109, 69, 40, 81, 61, 34] [100, 1, 76, 125, 54, 82, 67, 45, 2, 127, 116, 123, 6, 52, 0, 41, 124, 27, 77, 58, 57, 72, 25, 104, 8, 75, 5, 34, 30, 9, 91, 51, 95, 15, 113, 71, 35, 79, 87, 73, 24, 83, 126, 110, 66, 90, 49, 117, 16, 81, 31, 50, 23, 37, 120, 43, 68, 106, 40, 46, 55, 26, 85, 109] [0, 2, 6, 8, 9, 15, 16, 23, 24, 25, 26, 31, 34, 37, 40, 45, 46, 49, 50, 51, 52, 57, 66, 68, 71, 72, 75, 77, 81, 82, 87, 90, 104, 109, 110, 113, 116, 117, 120, 123, 124, 126]
95 93 [18, 26, 30, 96, 37, 115, 48, 29, 31, 42, 24, 64, 47, 81, 8, 41, 59, 14, 25, 105, 110, 52, 70, 17, 10, 127, 54, 76, 124, 88, 82, 63, 67, 9, 100, 90, 92, 84, 0, 66, 51, 79, 68, 20, 97, 72, 62, 28, 60, 7, 33, 65, 95, 35, 5, 23, 119, 2, 106, 108, 102, 22, 123, 12] [67, 110, 62, 63, 65, 7, 2, 119, 120, 98, 125, 86, 123, 93, 5, 91, 77, 37, 89, 108, 39, 69, 117, 3, 54, 97, 112, 101, 68, 25, 48, 87, 53, 116, 94, 51, 72, 103, 84, 109, 22, 99, 49, 27, 26, 4, 104, 118, 80, 96, 111, 126, 0, 81, 33, 113, 71, 31, 47, 32, 73, 107, 50, 15] [0, 2, 5, 7, 22, 25, 26, 31, 33, 37, 47, 48, 51, 54, 62, 63, 65, 67, 68, 72, 81, 84, 96, 97, 108, 110, 119, 123]
96 94 [17, 84, 49, 51, 65, 67, 123, 90, 20, 35, 44, 11, 79, 94, 62, 110, 25, 3, 80, 113, 5, 64, 7, 32, 16, 59, 19, 100, 4, 78, 0, 29, 2, 86, 24, 27, 102, 58, 47, 82, 45, 68, 42, 37, 112, 55, 34, 14, 96, 85, 39, 116, 66, 77, 56, 125, 74, 88, 63, 48, 87, 26, 106, 69] [85, 25, 15, 44, 68, 0, 17, 3, 49, 96, 9, 113, 55, 67, 121, 110, 107, 91, 59, 5, 7, 57, 102, 92, 119, 48, 109, 56, 62, 123, 101, 53, 90, 118, 87, 122, 19, 14, 74, 72, 76, 26, 112, 43, 79, 60, 42, 29, 77, 51, 47, 31, 106, 86, 18, 39, 20, 64, 32, 78, 1, 84, 16, 65] [0, 3, 5, 7, 14, 16, 17, 19, 20, 25, 26, 29, 32, 39, 42, 44, 47, 48, 49, 51, 55, 56, 59, 62, 64, 65, 67, 68, 74, 77, 78, 79, 84, 85, 86, 87, 90, 96, 102, 106, 110, 112, 113, 123]
97 95 [123, 63, 33, 14, 0, 47, 6, 29, 70, 1, 85, 26, 19, 23, 112, 10, 51, 17, 104, 36, 82, 55, 27, 60, 81, 125, 64, 94, 5, 2, 22, 101, 15, 28, 41, 119, 62, 77, 67, 42, 120, 116, 127, 24, 48, 11, 97, 69, 39, 37, 89, 110, 103, 115, 3, 43, 49, 58, 32, 106, 122, 95, 53, 46] [2, 80, 104, 109, 21, 7, 91, 123, 37, 78, 41, 35, 22, 33, 38, 4, 47, 34, 114, 108, 56, 81, 8, 39, 43, 124, 51, 0, 71, 113, 83, 3, 74, 87, 26, 59, 73, 10, 95, 52, 20, 17, 119, 99, 53, 58, 121, 107, 65, 111, 93, 69, 96, 49, 127, 29, 25, 18, 105, 50, 13, 100, 30, 40] [0, 2, 3, 10, 17, 22, 26, 29, 33, 37, 39, 41, 43, 47, 49, 51, 53, 58, 69, 81, 95, 104, 119, 123, 127]
98 96 [19, 119, 55, 69, 33, 44, 6, 88, 20, 62, 8, 41, 3, 71, 101, 26, 65, 22, 53, 77, 84, 100, 57, 106, 5, 47, 80, 16, 114, 116, 112, 32, 12, 79, 60, 102, 35, 70, 87, 117, 11, 83, 66, 10, 113, 120, 61, 0, 118, 90, 108, 98, 68, 39, 36, 54, 111, 31, 7, 28, 86, 92, 126, 23] [50, 84, 88, 29, 43, 107, 40, 68, 72, 123, 4, 93, 57, 85, 30, 124, 78, 18, 69, 81, 13, 115, 103, 109, 38, 110, 19, 79, 113, 5, 3, 89, 2, 53, 24, 102, 25, 125, 15, 116, 86, 1, 64, 112, 94, 61, 96, 49, 91, 67, 32, 73, 90, 59, 83, 63, 34, 7, 121, 28, 42, 122, 71, 16] [3, 5, 7, 16, 19, 28, 32, 53, 57, 61, 68, 69, 71, 79, 83, 84, 86, 88, 90, 102, 112, 113, 116]
99 97 [32, 52, 10, 96, 43, 70, 103, 100, 55, 119, 28, 98, 41, 67, 54, 71, 66, 3, 15, 81, 9, 104, 97, 108, 22, 34, 42, 106, 1, 86, 61, 78, 21, 76, 4, 127, 40, 107, 5, 7, 112, 75, 74, 8, 57, 14, 6, 17, 90, 117, 44, 27, 20, 115, 83, 85, 63, 16, 51, 69, 60, 38, 53, 13] [81, 79, 75, 58, 97, 77, 83, 90, 7, 54, 29, 37, 6, 118, 43, 107, 22, 96, 88, 15, 127, 3, 51, 10, 69, 80, 71, 17, 27, 101, 111, 95, 31, 0, 94, 1, 100, 82, 116, 52, 72, 41, 59, 113, 16, 34, 28, 18, 67, 122, 114, 86, 33, 9, 103, 73, 64, 119, 13, 87, 14, 76, 12, 106] [1, 3, 6, 7, 9, 10, 13, 14, 15, 16, 17, 22, 27, 28, 34, 41, 43, 51, 52, 54, 67, 69, 71, 75, 76, 81, 83, 86, 90, 96, 97, 100, 103, 106, 107, 119, 127]
100 98 [108, 111, 30, 21, 113, 120, 70, 0, 72, 78, 41, 82, 54, 6, 89, 20, 22, 96, 115, 87, 61, 52, 116, 64, 66, 34, 65, 74, 118, 7, 50, 60, 59, 24, 126, 5, 16, 18, 51, 71, 104, 124, 28, 69, 1, 33, 79, 48, 95, 42, 122, 25, 81, 105, 43, 67, 77, 100, 36, 31, 107, 56, 2, 37] [34, 12, 76, 98, 82, 96, 102, 70, 75, 113, 116, 125, 106, 63, 122, 3, 10, 57, 49, 84, 6, 72, 11, 83, 118, 37, 52, 31, 20, 4, 123, 46, 62, 108, 38, 69, 54, 25, 95, 119, 126, 100, 45, 124, 103, 71, 51, 41, 115, 67, 50, 86, 53, 78, 88, 42, 21, 2, 87, 13, 28, 39, 1, 81] [1, 2, 6, 20, 21, 25, 28, 31, 34, 37, 41, 42, 50, 51, 52, 54, 67, 69, 70, 71, 72, 78, 81, 82, 87, 95, 96, 100, 108, 113, 115, 116, 118, 122, 124, 126]
101 99 [58, 108, 54, 110, 77, 65, 56, 98, 83, 99, 61, 12, 15, 116, 14, 67, 103, 63, 17, 39, 104, 51, 52, 5, 100, 49, 76, 48, 41, 25, 35, 111, 43, 81, 23, 47, 62, 127, 1, 88, 26, 69, 75, 85, 7, 24, 18, 112, 66, 71, 42, 73, 40, 107, 64, 87, 11, 9, 109, 45, 0, 31, 28, 29] [46, 63, 9, 89, 111, 26, 101, 98, 84, 122, 53, 83, 42, 37, 4, 5, 79, 24, 92, 113, 57, 117, 126, 16, 121, 82, 114, 103, 70, 34, 115, 48, 6, 93, 15, 87, 107, 124, 66, 68, 97, 74, 60, 0, 32, 102, 10, 95, 105, 21, 120, 88, 2, 52, 33, 47, 86, 123, 55, 119, 96, 50, 14, 59] [0, 5, 9, 14, 15, 24, 26, 42, 47, 48, 52, 63, 66, 83, 87, 88, 98, 103, 107, 111]
@@ -0,0 +1,760 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# The source code is adapted from the sorting source code written by
# Nils Blach.
#
# main author: Robert Gerstenberger
import os
import logging
import datetime
import json
import csv
from typing import Dict, List, Callable, Union
from graph_of_thoughts import controller, operations, prompter, parser
from . import utils
class SetIntersectionPrompter(prompter.Prompter):
"""
SetIntersectionPrompter provides the generation of prompts specific to the
set intersection example for the language models.
Inherits from the Prompter class and implements its abstract methods.
"""
intersection_prompt = """<Instruction> Find the intersection of two sets of numbers. Output only the set of numbers that are present in both sets, no additional text. </Instruction>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Output: [40, 15, 5, 24, 35, 59, 16, 63]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Output: [115, 35, 90, 117, 63, 40, 30, 33, 15, 89, 50, 12, 2, 84, 7, 57, 96]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
intersection_prompt_cot = """<Instruction> Find the intersection of two sets of numbers. You can generate any intermediate solutions, but the final output should be the set of numbers that are present in both sets, prefixed with "Output: ". </Instruction>
<Approach>
To find the intersection of the two sets follow these steps:
1. Split the second input set of numbers into two to four subsets, each containing an equal number of elements from the original set (make sure they don't overlap).
2. For each subset find the set of numbers that are present in the subset and the first input set.
3. Merge the resulting sets into a single output set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Subsets of Input Set 2:
[25, 24, 10, 4, 27, 0, 14, 12]
[8, 2, 29, 20, 17, 19, 26, 23]
Intersected Subsets with Input Set 1:
[24, 10]
[8, 20]
Output: [24, 10, 8, 20]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Subsets of Input Set 2:
[16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53]
[58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Intersected Subsets with Input Set 1:
[16, 15, 5, 24]
[35, 63, 40, 59]
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Subsets of Input Set 2:
[13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122]
[85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12]
[65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81]
[124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Intersected Subsets with Input Set 1:
[35, 96]
[15, 33, 57, 30, 89, 12]
[84, 40, 7, 50, 90]
[63, 117, 115, 2]
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
tot_improve_prompt = """<Instruction> The following three sets represent two sets and an intersection set of those two sets. The intersection set is not correct. Fix the intersection set so that it is correct.
Make sure that the numbers in the intersection set can be found in both input sets. </Instruction>
<Approach>
To fix the incorrectly intersection set follow these steps:
1. Check for each number in the incorrect intersection set, whether it can be found in both input sets. If not, remove that number from the intersection set.
2. Iterate through the second input set and check whether each number is already in the incorrect intersection set and if not, check whether that number can also be found in the first input set. If so, add that number to the intersection set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Incorrect Intersection Set: [24, 20, 25]
Reason: The incorrect intersection set contains the number 25, which is not present in the first input set and is missing the numbers 10 and 8.
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Incorrect Intersection Set: [57, 16, 15, 24, 35, 10, 40]
Reason: The incorrect intersection set contains the numbers 57, which is not present in the second input set, and 10, which is not present in the first input set, and is missing the numbers 5, 63 and 59.
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Incorrect Intersection Set: [35, 96, 44, 15, 33, 57, 30, 50, 90, 119, 123, 63, 117, 115, 2]
Reason: The incorrect intersection set contains the numbers 44 and 119, which are not present in the second input set, and 123, which is not present in the first input set, and is missing the numbers 89, 12, 84, 40 and 7.
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}
Incorrect Intersection Set: {incorrect_intersection}
"""
got_split_prompt = """<Instruction> Split the following list of 64 numbers into 4 lists of 16 numbers each, the first list should contain the first 16 numbers, the second list the second 16 numbers, the third list the third 16 numbers and the fourth list the fourth 16 numbers.
Only output the 4 lists in the following format without any additional text or thoughts!:
{{
"List 1": [13, 35, 20, 96, 34, 18, 47, ...],
"List 2": [127, 126, 9, 21, 16, 77, 22, ...],
"List 3": [111, 122, 85, 73, 42, 105, 123, ...],
"List 4": [15, 33, 59, 67, 57, 104, 8, ...]
}} </Instruction>
<Example>
Input: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Output:
{{
"List 1": [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1],
"List 2": [118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29],
"List 3": [58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98],
"List 4": [52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
}}
</Example>
Input: {input}"""
got_merge_prompt = """<Instruction> Merge the following 2 lists of length {length1} each, into one list of length {length2} by appending the second list to the first list.
Only output the final list without any additional text or thoughts! </Instruction>
List 1: {input1}
List 2: {input2}
"""
def aggregation_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate an aggregation prompt for the language model.
:param state_dicts: The thought states that should be aggregated.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The aggregation prompt.
:rtype: str
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(state_dicts) == 2, "Expected two states for aggregation prompt."
len_input1 = len(utils.string_to_list(state_dicts[0]["current"]))
len_input2 = len(utils.string_to_list(state_dicts[1]["current"]))
if len_input1 == len_input2:
length = len_input1
elif len_input1 + len_input2 - 32 <= 16:
length = 16
else:
length = 32
return self.got_merge_prompt.format(
input1=state_dicts[0]["current"],
input2=state_dicts[1]["current"],
length1=length,
length2=length * 2,
)
def generate_prompt(
self,
num_branches: int,
set1: str,
set2: str,
current: str,
method: str,
**kwargs,
) -> str:
"""
Generate a generate prompt for the language model.
:param num_branches: The number of responses the prompt should ask the LM to generate.
:type num_branches: int
:param set1: First input set.
:type set1: str
:param set2: Second input set.
:type set2: str
:param current: Intermediate solution.
:type current: str
:param method: Method for which the generate prompt is generated.
:type method: str
:param kwargs: Additional keyword arguments.
:return: The generate prompt.
:rtype: str
:raise AssertionError: If the requested number of branches is not one.
"""
assert num_branches == 1, "Branching should be done via multiple requests."
if method.startswith("io"):
return self.intersection_prompt.format(set1=set1, set2=set2)
elif method.startswith("cot"):
return self.intersection_prompt_cot.format(set1=set1, set2=set2)
elif method.startswith("tot"):
if current is None or current == "":
return self.intersection_prompt.format(set1=set1, set2=set2)
return self.tot_improve_prompt.format(
set1=set1, set2=set2, incorrect_intersection=current
)
elif method.startswith("got"):
if kwargs["phase"] == 0:
return self.got_split_prompt.format(input=set2)
input_set = set2
if "subset" in kwargs and kwargs["subset"] != "":
input_set = kwargs["subset"]
return self.intersection_prompt.format(set1=set1, set2=input_set)
def improve_prompt(self, **kwargs) -> str:
"""
Generate an improve prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The improve prompt.
:rtype: str
"""
pass
def validation_prompt(self, **kwargs) -> str:
"""
Generate a validation prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The validation prompt.
:rtype: str
"""
pass
def score_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate a score prompt for the language model.
:param state_dicts: The thought states that should be scored,
if more than one, they should be scored together.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The score prompt.
:rtype: str
"""
pass
class SetIntersectionParser(parser.Parser):
"""
SetIntersectionParser provides the parsing of language model reponses
specific to the set intersection example.
Inherits from the Parser class and implements its abstract methods.
"""
def __init__(self) -> None:
"""
Inits the response cache.
"""
self.cache = {}
def parse_aggregation_answer(
self, states: List[Dict], texts: List[str]
) -> Union[Dict, List[Dict]]:
"""
Parse the response from the language model for an aggregation prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: Union[Dict, List[Dict]]
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(states) == 2, "Expected two states for aggregation answer."
new_states = []
for text in texts:
answers = text.strip().split("\n")
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers_stripped = [
answer for answer in answers if "[" in answer and "]" in answer
]
if len(answers_stripped) == 0:
for answer in answers:
answer = "[" + answer + "]"
try:
answer_converted = utils.string_to_list(answer)
if len(answer_converted) > 0:
answers_stripped.append(answer)
except:
pass
if len(answers_stripped) == 0:
logging.warning(
f"Could not parse aggregation answer: {text}. Returning empty list."
)
answer = "[]"
else:
answer = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers_stripped
][0]
states = sorted(states, key=lambda x: x["part"])
merged_subsets = states[0]["subset"][:-1] + ", " + states[1]["subset"][1:]
new_state = states[0].copy()
new_state["current"] = answer
new_state["subset"] = merged_subsets
new_states.append(new_state)
return new_states
def parse_improve_answer(self, state: Dict, texts: List[str]) -> Dict:
"""
Parse the response from the language model for an improve prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought state after parsing the responses from the language model.
:rtype: Dict
"""
pass
def parse_generate_answer(self, state: Dict, texts: List[str]) -> List[Dict]:
"""
Parse the response from the language model for a generate prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: List[Dict]
"""
new_states = []
for text in texts:
if state["method"].startswith("got") and state["phase"] == 0:
# We expect a json which contains the two lists named "List 1" and "List 2"
# cut everything until the opening bracket and everything after the closing bracket
try:
text = text[text.index("{") : text.index("}") + 1]
json_dict = json.loads(text)
if len(json_dict.keys()) != 4:
logging.warning(
f"Expected 4 lists in json, but found {len(json_dict.keys())}."
)
for key, value in json_dict.items():
if "List" not in key:
logging.warning(
f"Expected key to contain 'List', but found {key}."
)
continue
if not isinstance(value, list):
value = utils.string_to_list(value)
new_state = state.copy()
new_state["current"] = ""
new_state["subset"] = str(value)
new_state["phase"] = 1
new_state["part"] = key
new_states.append(new_state)
except Exception as e:
logging.error(
f"Could not parse step answer: {text}. Encountered exception: {e}"
)
else:
answers = text.strip().split("\n")
answers = [
answer for answer in answers if "[" in answer and "]" in answer
]
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers
]
if len(answers) == 0:
logging.warning(
f"Could not parse step answer: {text}. Returning empty list."
)
answer = "[]"
else:
if len(answers) > 1:
logging.warning(
f"Multiple answers found for step answer: {text}. Using the first one."
)
answer = answers[0]
new_state = state.copy()
new_state["current"] = answer
new_state["phase"] = 2
new_states.append(new_state)
return new_states
def parse_validation_answer(self, state: Dict, texts: List[str]) -> bool:
"""
Parse the response from the language model for a validation prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: Whether the thought state is valid or not.
:rtype: bool
"""
pass
def parse_score_answer(self, states: List[Dict], texts: List[str]) -> List[float]:
"""
Parse the response from the language model for a score prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The scores for the thought states.
:rtype: List[float]
"""
pass
def io() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the IO method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def cot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the CoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT method.
ToT uses a wider tree, where on each level there are more branches.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 20))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(3):
operations_graph.append_operation(operations.Generate(1, 20))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot2() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT2 method.
ToT2 uses a tree with more levels, but with fewer branches per level.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(6):
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def got() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the GoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
plans = operations.Generate(1, 1)
operations_graph.append_operation(plans) # generate the sublists
solved_subsets = []
for i in range(1, 5):
list_id = f"List {i}"
sub_list = operations.Selector(
lambda thoughts, list_id=list_id: [
thought for thought in thoughts if thought.state["part"] == list_id
]
)
sub_list.add_predecessor(plans)
operations_graph.add_operation(sub_list)
intersected_subset = operations.Generate(1, 5)
intersected_subset.add_predecessor(sub_list)
operations_graph.add_operation(intersected_subset)
score_sub_list = operations.Score(1, False, utils.num_errors)
score_sub_list.add_predecessor(intersected_subset)
operations_graph.add_operation(score_sub_list)
keep_best_sub_list = operations.KeepBestN(1, False)
keep_best_sub_list.add_predecessor(score_sub_list)
operations_graph.add_operation(keep_best_sub_list)
solved_subsets.append(keep_best_sub_list)
aggregate_1 = operations.Aggregate(10)
aggregate_1.add_predecessor(solved_subsets[0])
aggregate_1.add_predecessor(solved_subsets[1])
operations_graph.add_operation(aggregate_1)
score_aggregate_1 = operations.Score(1, False, utils.num_errors)
score_aggregate_1.add_predecessor(aggregate_1)
operations_graph.add_operation(score_aggregate_1)
keep_best_aggregate_1 = operations.KeepBestN(1, False)
keep_best_aggregate_1.add_predecessor(score_aggregate_1)
operations_graph.add_operation(keep_best_aggregate_1)
aggregate_2 = operations.Aggregate(10)
aggregate_2.add_predecessor(solved_subsets[2])
aggregate_2.add_predecessor(solved_subsets[3])
operations_graph.add_operation(aggregate_2)
score_aggregate_2 = operations.Score(1, False, utils.num_errors)
score_aggregate_2.add_predecessor(aggregate_2)
operations_graph.add_operation(score_aggregate_2)
keep_best_aggregate_2 = operations.KeepBestN(1, False)
keep_best_aggregate_2.add_predecessor(score_aggregate_2)
operations_graph.add_operation(keep_best_aggregate_2)
final_aggregate = operations.Aggregate(10)
operations_graph.append_operation(final_aggregate)
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
keep_best_aggregate_final = operations.KeepBestN(1, False)
operations_graph.append_operation(keep_best_aggregate_final)
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def run(
data_ids: List[int],
methods: List[Callable[[], operations.GraphOfOperations]],
budget: float,
lm_name: str,
) -> float:
"""
Controller function that executes each specified method for each specified
sample while the budget is not exhausted.
:param data_ids: Indices of the sample to be run.
:type data_ids: List[int]
:param methods: List of functions to generate Graphs of Operations.
:type methods: Each function generates a Graph of Operation.
:param budget: Language model budget for the execution in dollars.
:type budget: float
:param lm_name: Name of the language model to be used.
:type lm_name: str
:return: Spent budget in dollars.
:rtype: float
"""
orig_budget = budget
path = os.path.join(os.path.dirname(__file__), "set_intersection_064.csv")
data = []
with open(path, "r") as f:
reader = csv.reader(f)
next(reader)
for row in reader:
data.append([int(row[0]), row[1], row[2], row[3]])
if data_ids is None or len(data_ids) == 0:
data_ids = list(range(len(data)))
selected_data = [data[i] for i in data_ids]
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
folder_name = f"results/{extra_info}_{timestamp}"
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
config = {
"data": selected_data,
"methods": [method.__name__ for method in methods],
"lm": lm_name,
"budget": budget,
}
with open(
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
) as f:
json.dump(config, f)
logging.basicConfig(
filename=f"{folder_name}/log.log",
filemode="w",
format="%(name)s - %(levelname)s - %(message)s",
level=logging.DEBUG,
)
for method in methods:
# create a results directory for the method
os.makedirs(
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
)
for data in selected_data:
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Data {data[0]} has not been run."
)
break
for method in methods:
logging.info(f"Running method {method.__name__}")
logging.info(f"Budget left: {budget}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Method {method.__name__} has not been run."
)
break
lm = controller.ChatGPT(
"../../graph_of_thoughts/controller/config.json",
model_name=lm_name,
cache=True,
)
operations_graph = method()
executor = controller.Controller(
lm,
operations_graph,
SetIntersectionPrompter(),
SetIntersectionParser(),
{
"set1": data[1],
"set2": data[2],
"result": data[3],
"current": "",
"phase": 0,
"method": method.__name__,
},
)
try:
executor.run()
except Exception as e:
logging.error(f"Exception: {e}")
path = os.path.join(
os.path.dirname(__file__),
folder_name,
method.__name__,
f"{data[0]}.json",
)
executor.output_graph(path)
budget -= lm.cost
return orig_budget - budget
if __name__ == "__main__":
"""
Input(x) : a list of 64 numbers between 0 and 127 (inclusive)
Input(y) : a list of 64 numbers between 0 and 127 (inclusive)
Output(z) : a list of the intersection between x and y
Correct : z = intersection(x, y)
Input Example:
[26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
[16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Output Example:
[40, 15, 5, 24, 35, 59, 16, 63]
"""
budget = 15
samples = [item for item in range(0, 100)]
approaches = [io, cot, tot, tot2, got]
spent = run(samples, approaches, budget, "chatgpt")
logging.info(f"Spent {spent} out of {budget} budget.")
@@ -0,0 +1,101 @@
ID,SET1,SET2,INTERSECTION
0,"[132, 75, 157, 25, 199, 202, 147, 109, 221, 110, 220, 251, 213, 11, 224, 101, 200, 170, 155, 71, 119, 122, 39, 1, 29, 113, 189, 212, 10, 219, 49, 28, 151, 40, 103, 8, 145, 214, 114, 91, 175, 107, 152, 163, 148, 246, 176, 181, 18, 106, 74, 115, 144, 0, 205, 121, 46, 234, 142, 223, 228, 162, 96, 97, 130, 156, 172, 241, 33, 186, 137, 150, 65, 161, 226, 116, 111, 12, 146, 38, 167, 4, 108, 169, 61, 93, 190, 252, 22, 31, 3, 9, 13, 35, 23, 141, 129, 198, 85, 84, 62, 158, 201, 67, 117, 59, 41, 191, 56, 90, 51, 227, 143, 83, 184, 174, 125, 98, 232, 238, 57, 225, 54, 179, 177, 237, 37, 95]","[27, 162, 187, 254, 128, 227, 2, 165, 143, 109, 140, 46, 160, 26, 139, 171, 42, 199, 207, 30, 205, 117, 213, 48, 40, 212, 185, 196, 197, 94, 136, 35, 229, 193, 36, 7, 15, 43, 4, 203, 142, 144, 49, 31, 240, 124, 116, 69, 37, 250, 95, 105, 103, 168, 126, 64, 73, 206, 24, 157, 135, 118, 34, 134, 45, 62, 153, 5, 47, 239, 216, 222, 80, 231, 102, 21, 57, 215, 149, 141, 236, 32, 188, 204, 194, 23, 233, 83, 154, 210, 159, 70, 202, 253, 20, 71, 166, 242, 221, 228, 78, 230, 29, 145, 147, 81, 104, 235, 66, 100, 131, 132, 244, 195, 68, 72, 53, 182, 79, 248, 3, 82, 211, 173, 180, 17, 77, 51]","[3, 4, 23, 29, 31, 35, 37, 40, 46, 49, 51, 57, 62, 71, 83, 95, 103, 109, 116, 117, 132, 141, 142, 143, 144, 145, 147, 157, 162, 199, 202, 205, 212, 213, 221, 227, 228]"
1,"[95, 68, 8, 76, 195, 92, 25, 19, 109, 146, 36, 2, 191, 164, 200, 189, 113, 203, 45, 52, 244, 210, 167, 91, 133, 139, 231, 202, 93, 22, 158, 239, 39, 94, 97, 40, 6, 213, 56, 16, 153, 14, 145, 172, 182, 226, 161, 130, 174, 44, 84, 112, 99, 204, 105, 64, 227, 198, 196, 42, 38, 129, 4, 208, 107, 70, 47, 49, 243, 178, 28, 148, 125, 80, 55, 104, 132, 90, 100, 175, 229, 185, 46, 154, 187, 63, 18, 184, 241, 12, 31, 218, 29, 72, 21, 255, 103, 150, 83, 73, 89, 71, 157, 11, 9, 188, 220, 65, 140, 27, 162, 66, 119, 116, 152, 205, 143, 147, 61, 88, 235, 5, 141, 33, 75, 13, 102, 128]","[239, 240, 54, 97, 1, 39, 70, 25, 125, 243, 155, 19, 115, 133, 213, 227, 31, 29, 130, 40, 203, 209, 174, 64, 36, 128, 161, 83, 57, 139, 107, 212, 112, 90, 147, 149, 14, 118, 129, 42, 110, 188, 235, 16, 51, 108, 92, 73, 196, 158, 126, 113, 79, 208, 71, 63, 103, 167, 109, 255, 91, 10, 181, 6, 68, 238, 191, 189, 201, 156, 20, 43, 220, 205, 144, 215, 4, 162, 74, 18, 183, 185, 67, 194, 231, 81, 84, 101, 69, 24, 94, 152, 104, 22, 241, 11, 48, 76, 95, 237, 199, 135, 140, 9, 173, 58, 190, 8, 65, 210, 12, 169, 37, 200, 246, 178, 98, 93, 202, 226, 157, 166, 47, 142, 150, 197, 244, 121]","[4, 6, 8, 9, 11, 12, 14, 16, 18, 19, 22, 25, 29, 31, 36, 39, 40, 42, 47, 63, 64, 65, 68, 70, 71, 73, 76, 83, 84, 90, 91, 92, 93, 94, 95, 97, 103, 104, 107, 109, 112, 113, 125, 128, 129, 130, 133, 139, 140, 147, 150, 152, 157, 158, 161, 162, 167, 174, 178, 185, 188, 189, 191, 196, 200, 202, 203, 205, 208, 210, 213, 220, 226, 227, 231, 235, 239, 241, 243, 244, 255]"
2,"[249, 62, 255, 65, 140, 234, 237, 148, 166, 170, 6, 36, 215, 179, 208, 213, 194, 145, 58, 241, 83, 81, 176, 239, 216, 33, 235, 117, 250, 14, 94, 39, 178, 132, 201, 37, 231, 177, 93, 183, 23, 125, 152, 159, 78, 1, 246, 108, 205, 247, 160, 175, 238, 49, 127, 77, 103, 27, 242, 34, 167, 196, 133, 143, 124, 182, 225, 106, 146, 104, 97, 10, 162, 233, 55, 163, 184, 66, 31, 224, 217, 68, 20, 131, 84, 147, 24, 38, 218, 232, 203, 137, 57, 154, 47, 3, 21, 115, 169, 198, 2, 110, 197, 161, 67, 136, 191, 149, 61, 53, 227, 80, 128, 188, 42, 153, 230, 109, 220, 5, 116, 252, 85, 11, 228, 105, 113, 151]","[76, 196, 243, 230, 147, 154, 57, 64, 140, 49, 149, 223, 215, 207, 255, 174, 79, 188, 54, 106, 77, 33, 245, 240, 2, 175, 165, 254, 97, 62, 89, 66, 234, 219, 136, 42, 176, 38, 195, 212, 241, 135, 20, 41, 35, 55, 128, 166, 95, 171, 0, 68, 127, 114, 186, 137, 162, 161, 69, 225, 181, 192, 153, 14, 239, 8, 110, 115, 104, 156, 78, 7, 81, 129, 133, 96, 50, 36, 141, 113, 47, 23, 172, 39, 112, 151, 244, 204, 145, 99, 93, 6, 169, 236, 4, 116, 216, 70, 132, 179, 217, 10, 19, 53, 84, 88, 74, 24, 155, 18, 193, 203, 189, 94, 237, 63, 163, 218, 9, 178, 48, 180, 201, 202, 233, 185, 183, 197]","[2, 6, 10, 14, 20, 23, 24, 33, 36, 38, 39, 42, 47, 49, 53, 55, 57, 62, 66, 68, 77, 78, 81, 84, 93, 94, 97, 104, 106, 110, 113, 115, 116, 127, 128, 132, 133, 136, 137, 140, 145, 147, 149, 151, 153, 154, 161, 162, 163, 166, 169, 175, 176, 178, 179, 183, 188, 196, 197, 201, 203, 215, 216, 217, 218, 225, 230, 233, 234, 237, 239, 241, 255]"
3,"[229, 37, 83, 1, 214, 179, 159, 5, 235, 120, 88, 61, 213, 234, 194, 108, 59, 200, 118, 170, 73, 91, 250, 215, 68, 255, 35, 122, 150, 33, 193, 227, 133, 197, 56, 225, 137, 17, 173, 18, 171, 82, 31, 140, 254, 39, 217, 10, 36, 75, 64, 246, 8, 22, 232, 238, 223, 162, 85, 15, 121, 201, 220, 221, 218, 101, 13, 100, 12, 177, 92, 105, 157, 199, 29, 188, 69, 4, 58, 9, 224, 47, 182, 115, 25, 119, 131, 117, 80, 183, 132, 135, 219, 62, 129, 2, 42, 106, 205, 191, 207, 87, 45, 202, 172, 154, 139, 142, 102, 14, 41, 16, 241, 94, 156, 89, 86, 78, 99, 252, 253, 77, 6, 116, 204, 206, 110, 251]","[61, 155, 205, 169, 2, 83, 114, 74, 191, 131, 185, 130, 172, 0, 95, 84, 118, 76, 78, 213, 214, 195, 8, 234, 173, 64, 59, 113, 48, 170, 109, 244, 41, 183, 23, 248, 73, 68, 150, 149, 223, 46, 91, 133, 175, 212, 33, 165, 29, 108, 94, 79, 227, 249, 112, 138, 70, 89, 232, 164, 245, 250, 87, 30, 202, 57, 174, 101, 1, 242, 67, 239, 148, 188, 126, 143, 21, 226, 122, 102, 19, 97, 129, 7, 134, 56, 182, 60, 81, 45, 32, 28, 34, 186, 22, 176, 208, 159, 136, 24, 43, 139, 194, 85, 26, 75, 218, 254, 111, 217, 50, 233, 144, 36, 82, 147, 16, 128, 222, 90, 241, 203, 51, 189, 15, 58, 251, 211]","[1, 2, 8, 15, 16, 22, 29, 33, 36, 41, 45, 56, 58, 59, 61, 64, 68, 73, 75, 78, 82, 83, 85, 87, 89, 91, 94, 101, 102, 108, 118, 122, 129, 131, 133, 139, 150, 159, 170, 172, 173, 182, 183, 188, 191, 194, 202, 205, 213, 214, 217, 218, 223, 227, 232, 234, 241, 250, 251, 254]"
4,"[96, 78, 17, 90, 12, 255, 235, 160, 229, 219, 83, 102, 163, 158, 142, 215, 28, 106, 45, 47, 95, 36, 65, 30, 181, 146, 59, 197, 170, 118, 42, 13, 29, 178, 192, 186, 168, 79, 222, 39, 161, 26, 56, 88, 180, 33, 179, 69, 206, 144, 230, 38, 32, 82, 250, 99, 72, 159, 204, 9, 140, 58, 14, 50, 22, 19, 116, 169, 173, 35, 80, 200, 183, 149, 124, 213, 171, 216, 24, 141, 148, 175, 242, 86, 37, 221, 245, 1, 48, 157, 184, 89, 34, 54, 214, 198, 93, 6, 109, 44, 125, 153, 208, 132, 52, 211, 165, 167, 251, 147, 239, 103, 98, 240, 61, 203, 143, 67, 226, 176, 66, 131, 166, 207, 43, 232, 133, 15]","[57, 250, 63, 207, 20, 27, 80, 205, 96, 166, 78, 37, 164, 100, 217, 134, 163, 135, 115, 155, 200, 125, 82, 174, 83, 50, 0, 231, 75, 232, 84, 93, 239, 86, 2, 196, 222, 215, 58, 172, 220, 61, 122, 247, 66, 42, 161, 234, 153, 6, 236, 162, 230, 194, 8, 35, 168, 74, 70, 112, 87, 195, 81, 145, 121, 40, 137, 227, 38, 60, 139, 17, 201, 76, 118, 245, 229, 41, 95, 173, 146, 218, 176, 19, 225, 3, 209, 211, 5, 109, 228, 51, 108, 131, 170, 182, 179, 183, 159, 254, 152, 212, 190, 28, 13, 97, 219, 91, 54, 157, 104, 79, 253, 68, 103, 177, 148, 114, 116, 185, 25, 208, 191, 49, 22, 221, 31, 45]","[6, 13, 17, 19, 22, 28, 35, 37, 38, 42, 45, 50, 54, 58, 61, 66, 78, 79, 80, 82, 83, 86, 93, 95, 96, 103, 109, 116, 118, 125, 131, 146, 148, 153, 157, 159, 161, 163, 166, 168, 170, 173, 176, 179, 183, 200, 207, 208, 211, 215, 219, 221, 222, 229, 230, 232, 239, 245, 250]"
5,"[76, 34, 18, 92, 100, 226, 228, 56, 80, 29, 126, 55, 109, 182, 27, 176, 179, 68, 246, 128, 137, 218, 187, 189, 0, 183, 162, 74, 255, 12, 15, 96, 202, 135, 210, 177, 51, 142, 111, 152, 205, 14, 75, 171, 107, 133, 233, 38, 32, 253, 180, 242, 25, 129, 10, 247, 156, 39, 48, 221, 203, 197, 19, 155, 16, 4, 166, 40, 188, 131, 49, 191, 185, 208, 122, 72, 108, 245, 227, 206, 115, 231, 3, 9, 174, 103, 232, 195, 17, 73, 144, 151, 158, 141, 62, 67, 21, 211, 123, 114, 209, 30, 252, 31, 229, 91, 125, 219, 79, 58, 204, 127, 136, 214, 148, 59, 238, 169, 87, 23, 37, 192, 119, 254, 94, 134, 90, 11]","[31, 18, 105, 11, 25, 165, 47, 58, 94, 72, 221, 171, 157, 228, 229, 242, 65, 40, 92, 111, 237, 16, 209, 62, 155, 186, 3, 119, 117, 27, 158, 235, 148, 24, 215, 177, 0, 120, 144, 114, 135, 180, 91, 59, 208, 198, 55, 96, 44, 134, 243, 89, 121, 214, 56, 73, 210, 64, 52, 8, 126, 38, 12, 227, 9, 238, 4, 127, 204, 212, 103, 15, 46, 131, 48, 90, 76, 241, 156, 150, 108, 128, 218, 80, 222, 6, 203, 81, 202, 35, 29, 151, 175, 142, 140, 2, 84, 192, 61, 206, 87, 146, 247, 51, 170, 244, 234, 125, 70, 232, 123, 10, 182, 153, 50, 60, 100, 115, 137, 133, 129, 19, 188, 68, 179, 97, 205, 75]","[0, 3, 4, 9, 10, 11, 12, 15, 16, 18, 19, 25, 27, 29, 31, 38, 40, 48, 51, 55, 56, 58, 59, 62, 68, 72, 73, 75, 76, 80, 87, 90, 91, 92, 94, 96, 100, 103, 108, 111, 114, 115, 119, 123, 125, 126, 127, 128, 129, 131, 133, 134, 135, 137, 142, 144, 148, 151, 155, 156, 158, 171, 177, 179, 180, 182, 188, 192, 202, 203, 204, 205, 206, 208, 209, 210, 214, 218, 221, 227, 228, 229, 232, 238, 242, 247]"
6,"[105, 245, 208, 74, 185, 27, 32, 157, 60, 169, 173, 94, 237, 140, 151, 124, 193, 142, 198, 247, 43, 63, 120, 125, 141, 189, 110, 231, 98, 96, 72, 175, 80, 100, 207, 53, 252, 16, 107, 114, 49, 180, 164, 184, 11, 119, 129, 218, 66, 61, 155, 18, 213, 170, 73, 243, 148, 205, 147, 106, 68, 211, 143, 95, 152, 75, 203, 192, 99, 145, 235, 233, 44, 54, 171, 116, 81, 0, 136, 3, 103, 165, 59, 52, 45, 230, 177, 33, 31, 50, 82, 232, 13, 255, 183, 111, 176, 181, 39, 122, 101, 221, 92, 88, 70, 135, 115, 130, 79, 7, 89, 137, 191, 179, 236, 65, 250, 174, 48, 134, 104, 90, 108, 113, 42, 226, 85, 132]","[43, 187, 54, 201, 121, 66, 163, 154, 109, 62, 171, 19, 166, 81, 135, 227, 240, 238, 246, 172, 78, 10, 223, 241, 108, 58, 250, 107, 239, 153, 191, 204, 149, 15, 210, 150, 213, 180, 103, 28, 131, 17, 184, 1, 57, 86, 29, 138, 162, 206, 159, 243, 127, 199, 79, 136, 37, 75, 235, 5, 216, 14, 133, 20, 93, 32, 77, 67, 118, 234, 190, 25, 76, 217, 44, 7, 147, 249, 160, 175, 219, 174, 35, 12, 102, 47, 41, 94, 61, 55, 46, 170, 69, 16, 214, 53, 242, 194, 140, 168, 165, 228, 244, 202, 9, 161, 56, 2, 157, 142, 117, 114, 40, 233, 123, 6, 182, 36, 18, 26, 87, 146, 71, 224, 139, 222, 212, 23]","[7, 16, 18, 32, 43, 44, 53, 54, 61, 66, 75, 79, 81, 94, 103, 107, 108, 114, 135, 136, 140, 142, 147, 157, 165, 170, 171, 174, 175, 180, 184, 191, 213, 233, 235, 243, 250]"
7,"[22, 201, 171, 46, 62, 25, 104, 220, 219, 160, 91, 200, 174, 42, 145, 26, 80, 255, 234, 214, 11, 228, 44, 147, 69, 167, 73, 185, 115, 162, 252, 4, 105, 64, 72, 126, 204, 157, 249, 92, 88, 202, 27, 203, 155, 111, 5, 15, 124, 61, 208, 224, 0, 1, 18, 85, 28, 239, 76, 55, 79, 48, 140, 19, 36, 8, 21, 66, 217, 169, 142, 56, 35, 113, 193, 103, 131, 39, 130, 45, 161, 84, 143, 141, 232, 97, 94, 209, 57, 173, 150, 41, 159, 53, 86, 23, 49, 17, 250, 40, 213, 241, 195, 50, 78, 121, 178, 137, 199, 149, 106, 74, 235, 226, 245, 135, 166, 144, 134, 120, 186, 102, 148, 225, 132, 125, 70, 89]","[255, 23, 91, 158, 203, 120, 209, 212, 38, 105, 73, 226, 187, 145, 163, 219, 70, 216, 57, 76, 241, 225, 249, 30, 131, 181, 224, 178, 69, 31, 153, 134, 168, 210, 4, 127, 242, 125, 33, 87, 86, 102, 100, 175, 121, 133, 77, 9, 35, 54, 149, 55, 2, 247, 166, 250, 234, 143, 232, 215, 5, 64, 78, 227, 179, 117, 171, 90, 204, 60, 177, 27, 148, 24, 49, 113, 88, 160, 34, 180, 140, 235, 20, 220, 122, 106, 185, 186, 108, 150, 46, 63, 200, 191, 95, 146, 82, 6, 26, 176, 50, 174, 61, 245, 217, 202, 45, 254, 65, 137, 193, 115, 107, 79, 164, 135, 39, 197, 213, 111, 126, 118, 195, 252, 97, 190, 40, 182]","[4, 5, 23, 26, 27, 35, 39, 40, 45, 46, 49, 50, 55, 57, 61, 64, 69, 70, 73, 76, 78, 79, 86, 88, 91, 97, 102, 105, 106, 111, 113, 115, 120, 121, 125, 126, 131, 134, 135, 137, 140, 143, 145, 148, 149, 150, 160, 166, 171, 174, 178, 185, 186, 193, 195, 200, 202, 203, 204, 209, 213, 217, 219, 220, 224, 225, 226, 232, 234, 235, 241, 245, 249, 250, 252, 255]"
8,"[134, 245, 157, 213, 19, 34, 38, 230, 144, 18, 168, 146, 73, 64, 91, 89, 198, 87, 65, 32, 36, 148, 131, 221, 58, 84, 132, 41, 83, 67, 249, 42, 237, 136, 250, 35, 60, 69, 176, 125, 116, 117, 85, 106, 61, 133, 244, 46, 96, 23, 166, 188, 120, 139, 15, 123, 238, 162, 129, 212, 175, 227, 138, 97, 72, 6, 9, 47, 119, 103, 192, 88, 63, 8, 233, 77, 251, 70, 200, 30, 16, 126, 202, 183, 173, 81, 169, 223, 102, 164, 105, 218, 231, 180, 33, 78, 118, 150, 165, 191, 152, 178, 53, 153, 205, 189, 51, 243, 141, 40, 204, 151, 20, 5, 239, 254, 48, 14, 135, 98, 197, 2, 54, 111, 122, 232, 59, 107]","[26, 3, 87, 214, 121, 5, 23, 123, 254, 27, 66, 248, 152, 209, 191, 39, 171, 154, 149, 193, 92, 45, 228, 199, 223, 173, 21, 104, 226, 101, 44, 136, 224, 140, 155, 220, 117, 29, 109, 194, 49, 89, 216, 55, 4, 114, 202, 61, 184, 225, 13, 76, 183, 174, 75, 57, 48, 71, 38, 190, 7, 210, 243, 138, 246, 67, 163, 18, 247, 34, 6, 103, 237, 54, 102, 82, 97, 169, 221, 147, 74, 72, 144, 222, 128, 37, 217, 162, 12, 68, 33, 80, 17, 203, 164, 195, 125, 240, 127, 252, 22, 115, 151, 130, 143, 200, 106, 253, 201, 11, 10, 113, 16, 28, 234, 63, 150, 141, 24, 124, 79, 232, 215, 167, 31, 108, 181, 206]","[5, 6, 16, 18, 23, 33, 34, 38, 48, 54, 61, 63, 67, 72, 87, 89, 97, 102, 103, 106, 117, 123, 125, 136, 138, 141, 144, 150, 151, 152, 162, 164, 169, 173, 183, 191, 200, 202, 221, 223, 232, 237, 243, 254]"
9,"[71, 207, 57, 0, 118, 134, 100, 10, 216, 119, 218, 42, 102, 184, 82, 146, 249, 90, 136, 12, 164, 248, 220, 176, 158, 47, 9, 224, 250, 25, 159, 110, 14, 125, 231, 39, 174, 116, 143, 147, 81, 124, 40, 156, 11, 103, 217, 152, 87, 196, 80, 28, 52, 43, 121, 4, 138, 72, 140, 85, 169, 91, 153, 198, 53, 206, 128, 93, 246, 188, 243, 68, 59, 212, 240, 31, 142, 139, 60, 65, 18, 67, 221, 187, 226, 127, 89, 48, 44, 252, 154, 74, 84, 222, 75, 208, 45, 66, 199, 170, 200, 235, 227, 233, 78, 145, 168, 113, 186, 107, 209, 27, 6, 79, 55, 228, 144, 17, 22, 49, 236, 117, 223, 69, 133, 32, 15, 173]","[128, 234, 195, 96, 104, 83, 34, 78, 120, 244, 97, 189, 239, 38, 139, 188, 56, 6, 185, 109, 46, 26, 89, 118, 157, 35, 243, 170, 115, 108, 226, 49, 213, 123, 149, 225, 71, 184, 74, 64, 165, 2, 182, 15, 3, 162, 31, 20, 137, 155, 135, 177, 4, 114, 196, 151, 207, 29, 132, 88, 105, 214, 197, 167, 211, 92, 242, 99, 179, 144, 42, 41, 166, 201, 63, 18, 16, 222, 230, 28, 163, 101, 194, 241, 106, 255, 13, 36, 32, 130, 70, 7, 161, 229, 171, 205, 183, 21, 235, 95, 176, 145, 50, 73, 191, 200, 215, 98, 58, 77, 164, 236, 47, 175, 112, 212, 129, 190, 192, 227, 55, 125, 79, 238, 86, 208, 148, 76]","[4, 6, 15, 18, 28, 31, 32, 42, 47, 49, 55, 71, 74, 78, 79, 89, 118, 125, 128, 139, 144, 145, 164, 170, 176, 184, 188, 196, 200, 207, 208, 212, 222, 226, 227, 235, 236, 243]"
10,"[182, 73, 5, 39, 24, 235, 225, 81, 15, 153, 123, 80, 93, 46, 247, 91, 69, 236, 185, 212, 184, 42, 135, 168, 54, 19, 230, 72, 76, 211, 180, 97, 86, 40, 109, 51, 63, 206, 37, 115, 34, 100, 102, 158, 237, 103, 137, 251, 234, 6, 204, 68, 117, 29, 244, 49, 111, 165, 85, 224, 161, 146, 90, 176, 10, 56, 28, 189, 213, 202, 245, 178, 58, 50, 220, 107, 129, 243, 171, 195, 13, 122, 66, 149, 33, 166, 20, 104, 144, 105, 45, 89, 2, 152, 193, 98, 145, 38, 155, 229, 120, 191, 163, 143, 57, 95, 113, 92, 17, 154, 12, 41, 106, 7, 132, 84, 227, 133, 249, 157, 83, 164, 101, 118, 179, 170, 71, 138]","[112, 85, 138, 202, 102, 142, 224, 178, 25, 30, 52, 78, 21, 187, 239, 126, 20, 164, 58, 190, 149, 250, 92, 24, 12, 69, 0, 1, 235, 55, 242, 89, 182, 118, 97, 39, 73, 99, 124, 135, 79, 32, 22, 162, 207, 157, 184, 122, 16, 84, 180, 192, 76, 222, 19, 230, 57, 133, 81, 160, 27, 109, 174, 11, 150, 134, 255, 98, 199, 188, 43, 245, 218, 147, 179, 183, 63, 238, 132, 146, 232, 111, 165, 244, 60, 166, 34, 101, 181, 220, 44, 74, 143, 38, 113, 154, 13, 42, 47, 23, 171, 29, 223, 66, 7, 186, 231, 177, 153, 159, 221, 53, 83, 35, 167, 4, 129, 252, 50, 61, 214, 201, 205, 2, 217, 213, 5, 41]","[2, 5, 7, 12, 13, 19, 20, 24, 29, 34, 38, 39, 41, 42, 50, 57, 58, 63, 66, 69, 73, 76, 81, 83, 84, 85, 89, 92, 97, 98, 101, 102, 109, 111, 113, 118, 122, 129, 132, 133, 135, 138, 143, 146, 149, 153, 154, 157, 164, 165, 166, 171, 178, 179, 180, 182, 184, 202, 213, 220, 224, 230, 235, 244, 245]"
11,"[42, 176, 29, 59, 122, 184, 171, 137, 82, 136, 41, 80, 95, 5, 187, 32, 138, 68, 185, 43, 75, 49, 224, 88, 69, 111, 196, 247, 126, 117, 56, 105, 98, 37, 153, 54, 87, 114, 19, 180, 238, 93, 90, 223, 165, 124, 227, 241, 125, 210, 128, 242, 116, 120, 40, 55, 228, 26, 45, 218, 21, 107, 132, 119, 57, 189, 199, 27, 141, 97, 83, 109, 127, 164, 231, 17, 76, 209, 215, 159, 172, 84, 65, 1, 73, 143, 30, 202, 252, 94, 103, 52, 96, 170, 86, 130, 154, 4, 8, 134, 174, 79, 102, 175, 91, 200, 216, 36, 9, 63, 192, 207, 62, 225, 167, 77, 35, 155, 100, 212, 129, 115, 240, 149, 12, 16, 255, 123]","[117, 134, 8, 87, 41, 32, 19, 131, 196, 83, 54, 84, 4, 80, 238, 252, 176, 242, 17, 149, 46, 225, 102, 18, 76, 42, 55, 229, 200, 108, 228, 115, 151, 164, 231, 171, 1, 159, 23, 170, 167, 88, 180, 45, 98, 59, 215, 68, 216, 77, 130, 66, 12, 158, 114, 205, 3, 166, 187, 35, 99, 165, 29, 195, 182, 129, 125, 185, 30, 27, 120, 21, 213, 36, 147, 85, 234, 143, 97, 123, 109, 189, 86, 190, 153, 81, 9, 74, 255, 16, 126, 70, 155, 184, 82, 207, 6, 140, 223, 227, 208, 241, 79, 162, 69, 127, 212, 247, 132, 128, 44, 191, 91, 107, 217, 111, 26, 47, 177, 100, 93, 37, 110, 235, 202, 137, 138, 73]","[1, 4, 8, 9, 12, 16, 17, 19, 21, 26, 27, 29, 30, 32, 35, 36, 37, 41, 42, 45, 54, 55, 59, 68, 69, 73, 76, 77, 79, 80, 82, 83, 84, 86, 87, 88, 91, 93, 97, 98, 100, 102, 107, 109, 111, 114, 115, 117, 120, 123, 125, 126, 127, 128, 129, 130, 132, 134, 137, 138, 143, 149, 153, 155, 159, 164, 165, 167, 170, 171, 176, 180, 184, 185, 187, 189, 196, 200, 202, 207, 212, 215, 216, 223, 225, 227, 228, 231, 238, 241, 242, 247, 252, 255]"
12,"[127, 104, 110, 26, 245, 157, 167, 84, 78, 210, 59, 41, 1, 123, 181, 85, 168, 69, 86, 138, 30, 94, 36, 8, 50, 77, 228, 19, 23, 63, 103, 216, 173, 152, 82, 202, 112, 139, 254, 250, 121, 47, 195, 243, 241, 109, 51, 183, 61, 65, 193, 122, 133, 180, 194, 158, 175, 182, 42, 10, 12, 171, 64, 154, 108, 252, 170, 113, 177, 48, 53, 115, 197, 4, 219, 99, 239, 159, 226, 211, 143, 235, 32, 20, 222, 169, 229, 15, 43, 106, 129, 221, 233, 33, 11, 114, 7, 18, 144, 204, 253, 119, 49, 0, 45, 187, 67, 9, 98, 29, 255, 125, 27, 232, 142, 134, 68, 101, 205, 70, 97, 223, 225, 185, 176, 72, 136, 107]","[32, 37, 144, 113, 109, 179, 87, 176, 108, 107, 152, 129, 254, 170, 211, 169, 174, 246, 42, 171, 187, 41, 99, 225, 11, 186, 85, 64, 63, 101, 136, 68, 159, 57, 19, 95, 156, 104, 224, 189, 110, 103, 138, 219, 117, 131, 229, 172, 163, 72, 194, 123, 3, 112, 21, 165, 139, 202, 177, 185, 60, 40, 197, 52, 88, 114, 124, 226, 73, 150, 216, 164, 133, 175, 118, 44, 50, 10, 121, 127, 77, 234, 46, 1, 151, 206, 115, 245, 241, 36, 223, 147, 56, 205, 61, 28, 94, 180, 141, 166, 83, 247, 132, 240, 192, 157, 204, 74, 193, 217, 86, 196, 30, 243, 78, 98, 53, 120, 49, 119, 250, 238, 236, 48, 232, 13, 65, 182]","[1, 10, 11, 19, 30, 32, 36, 41, 42, 48, 49, 50, 53, 61, 63, 64, 65, 68, 72, 77, 78, 85, 86, 94, 98, 99, 101, 103, 104, 107, 108, 109, 110, 112, 113, 114, 115, 119, 121, 123, 127, 129, 133, 136, 138, 139, 144, 152, 157, 159, 169, 170, 171, 175, 176, 177, 180, 182, 185, 187, 193, 194, 197, 202, 204, 205, 211, 216, 219, 223, 225, 226, 229, 232, 241, 243, 245, 250, 254]"
13,"[76, 5, 56, 132, 218, 246, 20, 237, 225, 62, 23, 58, 175, 177, 34, 183, 12, 67, 199, 164, 117, 93, 174, 171, 255, 130, 244, 36, 0, 249, 112, 4, 11, 221, 111, 113, 137, 253, 90, 166, 95, 241, 7, 138, 88, 63, 180, 185, 213, 26, 220, 208, 210, 105, 242, 8, 124, 158, 92, 9, 181, 135, 103, 35, 81, 106, 97, 94, 27, 204, 155, 205, 184, 32, 142, 17, 121, 89, 141, 245, 53, 151, 82, 98, 45, 233, 6, 198, 71, 195, 128, 161, 109, 226, 172, 129, 86, 201, 157, 217, 19, 99, 70, 122, 165, 28, 46, 209, 29, 131, 116, 57, 152, 176, 43, 230, 178, 119, 194, 40, 30, 190, 232, 143, 51, 48, 169, 216]","[51, 110, 203, 45, 249, 0, 136, 122, 217, 176, 111, 213, 244, 4, 67, 63, 5, 147, 191, 177, 81, 80, 104, 134, 130, 65, 133, 212, 181, 155, 94, 56, 28, 185, 208, 106, 88, 161, 233, 105, 226, 169, 12, 222, 251, 18, 82, 20, 142, 184, 135, 250, 204, 90, 151, 35, 178, 1, 202, 91, 159, 128, 86, 139, 163, 174, 187, 32, 26, 148, 112, 7, 164, 179, 49, 158, 83, 96, 69, 29, 123, 61, 168, 165, 68, 107, 166, 216, 193, 232, 113, 8, 138, 71, 225, 93, 223, 170, 237, 255, 132, 17, 57, 129, 53, 72, 197, 171, 24, 76, 221, 201, 2, 209, 99, 66, 73, 175, 162, 97, 23, 37, 200, 241, 101, 218, 150, 108]","[0, 4, 5, 7, 8, 12, 17, 20, 23, 26, 28, 29, 32, 35, 45, 51, 53, 56, 57, 63, 67, 71, 76, 81, 82, 86, 88, 90, 93, 94, 97, 99, 105, 106, 111, 112, 113, 122, 128, 129, 130, 132, 135, 138, 142, 151, 155, 158, 161, 164, 165, 166, 169, 171, 174, 175, 176, 177, 178, 181, 184, 185, 201, 204, 208, 209, 213, 216, 217, 218, 221, 225, 226, 232, 233, 237, 241, 244, 249, 255]"
14,"[82, 156, 200, 53, 194, 3, 80, 8, 120, 141, 179, 84, 1, 208, 79, 148, 125, 130, 63, 127, 62, 146, 248, 152, 215, 210, 74, 135, 242, 83, 162, 115, 47, 164, 233, 108, 134, 68, 13, 67, 45, 173, 54, 126, 251, 195, 16, 123, 250, 186, 128, 255, 168, 90, 157, 119, 136, 227, 36, 38, 104, 238, 99, 244, 185, 247, 236, 29, 206, 165, 226, 225, 132, 60, 103, 77, 142, 216, 55, 32, 253, 159, 129, 91, 205, 232, 163, 78, 150, 50, 193, 167, 37, 81, 71, 145, 188, 66, 26, 114, 211, 76, 196, 106, 4, 30, 202, 237, 151, 110, 51, 2, 154, 94, 46, 109, 11, 143, 92, 21, 241, 97, 124, 219, 166, 221, 34, 137]","[132, 216, 245, 247, 222, 210, 190, 235, 18, 227, 215, 208, 187, 90, 68, 197, 94, 121, 95, 50, 52, 64, 217, 49, 230, 183, 127, 77, 125, 239, 115, 72, 103, 62, 250, 139, 9, 176, 111, 8, 154, 136, 74, 2, 143, 225, 54, 87, 141, 129, 60, 155, 170, 99, 23, 148, 126, 53, 171, 147, 97, 145, 163, 45, 140, 84, 110, 168, 29, 195, 101, 67, 251, 137, 91, 73, 173, 223, 81, 243, 82, 119, 175, 167, 252, 92, 93, 32, 79, 221, 22, 51, 112, 185, 12, 130, 241, 138, 233, 192, 142, 219, 104, 46, 254, 248, 229, 150, 169, 232, 1, 198, 212, 57, 63, 59, 238, 105, 213, 13, 158, 134, 3, 240, 135, 36, 128, 76]","[1, 2, 3, 8, 13, 29, 32, 36, 45, 46, 50, 51, 53, 54, 60, 62, 63, 67, 68, 74, 76, 77, 79, 81, 82, 84, 90, 91, 92, 94, 97, 99, 103, 104, 110, 115, 119, 125, 126, 127, 128, 129, 130, 132, 134, 135, 136, 137, 141, 142, 143, 145, 148, 150, 154, 163, 167, 168, 173, 185, 195, 208, 210, 215, 216, 219, 221, 225, 227, 232, 233, 238, 241, 247, 248, 250, 251]"
15,"[245, 178, 15, 66, 12, 133, 241, 198, 186, 107, 210, 199, 62, 55, 194, 190, 92, 175, 127, 76, 22, 161, 126, 173, 101, 88, 211, 129, 204, 136, 3, 5, 98, 187, 213, 157, 89, 205, 226, 32, 94, 160, 233, 197, 123, 193, 214, 182, 74, 150, 121, 240, 0, 50, 181, 31, 58, 17, 177, 172, 128, 69, 73, 16, 159, 102, 28, 83, 23, 147, 59, 20, 11, 195, 222, 46, 243, 119, 248, 41, 218, 217, 65, 224, 149, 131, 191, 34, 207, 228, 143, 54, 44, 48, 132, 184, 171, 154, 114, 103, 67, 206, 29, 180, 10, 120, 219, 118, 87, 1, 153, 163, 14, 100, 42, 231, 75, 237, 189, 232, 24, 125, 202, 93, 148, 52, 104, 167]","[42, 139, 183, 54, 228, 208, 238, 146, 177, 22, 73, 32, 231, 132, 151, 57, 148, 154, 122, 218, 240, 6, 194, 0, 134, 28, 128, 76, 15, 119, 166, 232, 173, 165, 17, 244, 193, 131, 120, 121, 205, 3, 104, 46, 1, 147, 78, 11, 49, 62, 30, 60, 214, 140, 13, 69, 10, 143, 171, 115, 108, 101, 178, 58, 40, 124, 251, 220, 235, 103, 59, 82, 160, 102, 107, 249, 48, 174, 118, 185, 230, 74, 44, 229, 210, 138, 7, 213, 5, 94, 136, 87, 239, 190, 180, 20, 27, 182, 162, 142, 167, 252, 129, 172, 31, 170, 159, 243, 181, 222, 184, 158, 197, 155, 92, 211, 242, 90, 163, 88, 175, 187, 24, 186, 123, 81, 80, 133]","[0, 1, 3, 5, 10, 11, 15, 17, 20, 22, 24, 28, 31, 32, 42, 44, 46, 48, 54, 58, 59, 62, 69, 73, 74, 76, 87, 88, 92, 94, 101, 102, 103, 104, 107, 118, 119, 120, 121, 123, 128, 129, 131, 132, 133, 136, 143, 147, 148, 154, 159, 160, 163, 167, 171, 172, 173, 175, 177, 178, 180, 181, 182, 184, 186, 187, 190, 193, 194, 197, 205, 210, 211, 213, 214, 218, 222, 228, 231, 232, 240, 243]"
16,"[240, 13, 120, 4, 65, 20, 250, 254, 84, 22, 220, 105, 121, 95, 112, 46, 8, 150, 238, 99, 114, 171, 182, 55, 41, 122, 90, 6, 60, 23, 44, 235, 64, 50, 123, 162, 133, 30, 205, 125, 29, 115, 109, 151, 199, 40, 159, 212, 241, 37, 2, 88, 80, 74, 106, 131, 253, 0, 32, 86, 153, 113, 39, 7, 58, 208, 179, 14, 28, 19, 201, 166, 203, 149, 25, 27, 107, 119, 219, 152, 76, 18, 140, 12, 234, 138, 168, 144, 216, 164, 67, 239, 173, 102, 198, 130, 89, 81, 177, 77, 62, 26, 53, 213, 48, 132, 129, 193, 135, 35, 10, 214, 194, 137, 127, 170, 209, 101, 185, 141, 233, 15, 190, 21, 71, 229, 202, 155]","[242, 78, 19, 137, 224, 99, 152, 55, 113, 143, 24, 135, 183, 12, 129, 114, 211, 188, 172, 248, 30, 91, 40, 254, 16, 49, 25, 90, 212, 175, 119, 163, 8, 142, 117, 170, 6, 164, 180, 182, 171, 26, 22, 246, 160, 85, 186, 157, 147, 138, 220, 84, 107, 223, 64, 39, 5, 74, 11, 35, 201, 29, 9, 145, 149, 177, 41, 2, 87, 57, 249, 118, 82, 14, 151, 44, 232, 210, 100, 215, 66, 205, 47, 236, 96, 7, 219, 227, 140, 167, 176, 228, 15, 38, 95, 109, 0, 72, 120, 251, 124, 75, 127, 203, 200, 3, 54, 101, 144, 68, 46, 93, 71, 63, 125, 4, 89, 115, 92, 165, 158, 18, 13, 181, 148, 130, 146, 42]","[0, 2, 4, 6, 7, 8, 12, 13, 14, 15, 18, 19, 22, 25, 26, 29, 30, 35, 39, 40, 41, 44, 46, 55, 64, 71, 74, 84, 89, 90, 95, 99, 101, 107, 109, 113, 114, 115, 119, 120, 125, 127, 129, 130, 135, 137, 138, 140, 144, 149, 151, 152, 164, 170, 171, 177, 182, 201, 203, 205, 212, 219, 220, 254]"
17,"[225, 235, 155, 37, 56, 40, 237, 163, 191, 211, 0, 93, 43, 107, 122, 134, 52, 165, 171, 145, 19, 164, 194, 101, 94, 9, 173, 88, 31, 124, 240, 183, 97, 90, 76, 147, 72, 35, 137, 2, 13, 140, 128, 241, 115, 6, 22, 158, 50, 223, 192, 119, 41, 184, 196, 175, 25, 58, 33, 74, 89, 62, 215, 248, 96, 16, 98, 143, 12, 160, 121, 104, 68, 80, 17, 84, 53, 92, 182, 130, 153, 133, 148, 114, 23, 185, 159, 154, 78, 100, 87, 73, 47, 49, 108, 34, 5, 109, 149, 157, 129, 169, 28, 127, 233, 126, 193, 57, 207, 125, 206, 189, 249, 71, 4, 199, 63, 113, 131, 46, 142, 91, 112, 51, 170, 39, 77, 64]","[58, 84, 239, 219, 30, 54, 179, 194, 78, 52, 183, 236, 85, 45, 12, 167, 213, 253, 177, 14, 165, 38, 237, 61, 29, 116, 226, 83, 171, 48, 225, 67, 146, 32, 60, 182, 188, 251, 36, 103, 70, 228, 123, 75, 181, 69, 222, 235, 162, 221, 53, 3, 223, 135, 113, 8, 66, 152, 140, 174, 178, 180, 111, 19, 127, 156, 108, 232, 244, 15, 241, 195, 187, 231, 74, 27, 7, 56, 240, 202, 24, 93, 220, 184, 173, 79, 11, 41, 216, 106, 31, 217, 198, 26, 203, 238, 33, 141, 160, 218, 20, 247, 72, 252, 229, 155, 166, 18, 161, 118, 126, 139, 10, 68, 51, 63, 212, 151, 132, 21, 62, 159, 59, 208, 193, 176, 168, 86]","[12, 19, 31, 33, 41, 51, 52, 53, 56, 58, 62, 63, 68, 72, 74, 78, 84, 93, 108, 113, 126, 127, 140, 155, 159, 160, 165, 171, 173, 182, 183, 184, 193, 194, 223, 225, 235, 237, 240, 241]"
18,"[67, 52, 148, 72, 183, 24, 175, 149, 31, 252, 93, 95, 171, 36, 105, 140, 138, 27, 104, 50, 219, 5, 159, 160, 135, 124, 185, 141, 32, 89, 184, 218, 34, 133, 18, 58, 119, 11, 38, 189, 143, 198, 78, 91, 29, 121, 188, 162, 158, 221, 103, 240, 62, 42, 204, 26, 6, 68, 60, 90, 44, 139, 63, 165, 254, 94, 194, 45, 116, 115, 152, 2, 110, 250, 157, 241, 209, 215, 41, 51, 40, 19, 156, 123, 107, 12, 128, 101, 231, 224, 208, 192, 161, 33, 39, 21, 48, 168, 75, 69, 22, 76, 245, 179, 0, 132, 117, 70, 200, 213, 79, 74, 106, 114, 30, 230, 56, 13, 239, 120, 113, 233, 109, 57, 155, 81, 237, 23]","[72, 40, 133, 181, 24, 153, 179, 187, 232, 90, 51, 225, 152, 115, 13, 254, 188, 158, 218, 30, 175, 138, 107, 71, 32, 19, 5, 114, 228, 79, 184, 219, 91, 0, 6, 62, 239, 233, 54, 48, 183, 140, 68, 69, 159, 155, 148, 162, 207, 9, 120, 34, 87, 29, 75, 38, 17, 56, 76, 246, 104, 176, 142, 78, 147, 25, 211, 247, 241, 44, 11, 80, 251, 177, 221, 99, 16, 50, 204, 88, 61, 165, 199, 112, 116, 89, 171, 123, 121, 197, 226, 65, 42, 168, 41, 136, 173, 31, 36, 198, 244, 119, 150, 97, 58, 193, 7, 190, 45, 93, 216, 2, 110, 101, 57, 74, 94, 185, 70, 83, 245, 126, 39, 27, 195, 157, 18, 161]","[0, 2, 5, 6, 11, 13, 18, 19, 24, 27, 29, 30, 31, 32, 34, 36, 38, 39, 40, 41, 42, 44, 45, 48, 50, 51, 56, 57, 58, 62, 68, 69, 70, 72, 74, 75, 76, 78, 79, 89, 90, 91, 93, 94, 101, 104, 107, 110, 114, 115, 116, 119, 120, 121, 123, 133, 138, 140, 148, 152, 155, 157, 158, 159, 161, 162, 165, 168, 171, 175, 179, 183, 184, 185, 188, 198, 204, 218, 219, 221, 233, 239, 241, 245, 254]"
19,"[48, 72, 149, 243, 127, 11, 222, 132, 158, 183, 90, 191, 179, 74, 186, 87, 26, 232, 42, 20, 43, 201, 193, 190, 167, 122, 199, 161, 92, 86, 100, 235, 54, 130, 57, 231, 224, 123, 139, 140, 65, 152, 254, 83, 49, 192, 202, 221, 62, 197, 73, 156, 27, 189, 113, 160, 252, 40, 157, 207, 106, 103, 217, 94, 150, 47, 169, 219, 71, 69, 151, 204, 203, 10, 15, 182, 31, 29, 39, 107, 8, 118, 24, 177, 226, 155, 25, 81, 110, 97, 131, 168, 214, 143, 237, 115, 55, 23, 176, 144, 244, 22, 12, 227, 93, 185, 223, 95, 4, 56, 76, 121, 208, 109, 129, 146, 242, 88, 145, 17, 5, 6, 18, 236, 163, 80, 200, 141]","[4, 121, 99, 115, 201, 233, 194, 193, 116, 59, 202, 216, 234, 25, 236, 21, 104, 42, 0, 228, 87, 7, 192, 47, 165, 119, 197, 17, 127, 106, 35, 81, 39, 235, 254, 231, 154, 161, 3, 248, 95, 175, 79, 60, 184, 52, 217, 67, 187, 251, 54, 133, 212, 98, 245, 205, 132, 75, 103, 224, 138, 229, 50, 73, 163, 239, 230, 11, 172, 183, 112, 92, 13, 253, 151, 180, 221, 26, 91, 126, 86, 9, 150, 93, 232, 120, 88, 38, 55, 178, 20, 46, 185, 243, 2, 16, 252, 199, 44, 134, 241, 237, 109, 177, 174, 108, 142, 15, 36, 63, 51, 209, 22, 100, 215, 255, 62, 34, 48, 89, 28, 139, 196, 168, 43, 94, 223, 162]","[4, 11, 15, 17, 20, 22, 25, 26, 39, 42, 43, 47, 48, 54, 55, 62, 73, 81, 86, 87, 88, 92, 93, 94, 95, 100, 103, 106, 109, 115, 121, 127, 132, 139, 150, 151, 161, 163, 168, 177, 183, 185, 192, 193, 197, 199, 201, 202, 217, 221, 223, 224, 231, 232, 235, 236, 237, 243, 252, 254]"
20,"[8, 91, 14, 177, 25, 233, 95, 5, 166, 157, 80, 232, 114, 2, 187, 230, 74, 186, 92, 229, 33, 131, 161, 32, 31, 68, 127, 196, 171, 7, 222, 48, 113, 165, 59, 86, 141, 243, 96, 149, 181, 21, 146, 77, 81, 29, 200, 99, 122, 204, 40, 13, 198, 39, 94, 58, 47, 71, 102, 185, 223, 98, 88, 155, 97, 119, 49, 11, 61, 55, 132, 234, 135, 46, 116, 70, 138, 35, 192, 6, 208, 214, 199, 51, 150, 154, 103, 37, 241, 190, 43, 87, 160, 117, 26, 23, 101, 184, 17, 137, 189, 209, 175, 129, 56, 20, 89, 78, 44, 42, 125, 213, 227, 15, 140, 191, 179, 69, 124, 133, 93, 134, 105, 79, 254, 168, 130, 83]","[219, 23, 154, 109, 111, 99, 68, 187, 150, 241, 179, 166, 201, 220, 128, 31, 216, 81, 71, 63, 112, 67, 144, 181, 39, 238, 153, 191, 106, 196, 232, 0, 57, 157, 16, 91, 95, 80, 198, 158, 160, 192, 25, 48, 141, 59, 66, 180, 252, 228, 170, 124, 3, 113, 188, 182, 58, 172, 211, 247, 114, 240, 88, 45, 231, 225, 131, 69, 152, 34, 72, 130, 183, 121, 123, 4, 235, 35, 167, 50, 87, 138, 115, 92, 75, 205, 32, 155, 8, 210, 49, 173, 118, 119, 239, 202, 27, 215, 60, 133, 11, 104, 56, 37, 178, 229, 62, 40, 214, 47, 156, 46, 2, 105, 186, 185, 122, 206, 64, 253, 7, 107, 168, 129, 135, 255, 147, 190]","[2, 7, 8, 11, 23, 25, 31, 32, 35, 37, 39, 40, 46, 47, 48, 49, 56, 58, 59, 68, 69, 71, 80, 81, 87, 88, 91, 92, 95, 99, 105, 113, 114, 119, 122, 124, 129, 130, 131, 133, 135, 138, 141, 150, 154, 155, 157, 160, 166, 168, 179, 181, 185, 186, 187, 190, 191, 192, 196, 198, 214, 229, 232, 241]"
21,"[155, 142, 202, 88, 19, 121, 2, 216, 28, 132, 124, 23, 187, 237, 207, 169, 89, 204, 98, 160, 240, 173, 120, 41, 227, 49, 0, 172, 38, 182, 59, 232, 103, 54, 134, 222, 91, 69, 37, 122, 26, 238, 33, 20, 236, 146, 221, 171, 43, 74, 159, 24, 133, 253, 193, 163, 78, 174, 210, 176, 13, 178, 229, 144, 138, 96, 55, 139, 235, 211, 183, 115, 203, 101, 81, 112, 255, 228, 175, 252, 53, 27, 197, 212, 114, 136, 199, 51, 12, 84, 108, 177, 107, 249, 10, 82, 48, 57, 165, 179, 40, 198, 166, 102, 191, 99, 190, 123, 76, 164, 147, 224, 145, 68, 77, 194, 42, 22, 129, 135, 109, 247, 32, 94, 73, 161, 185, 60]","[50, 116, 218, 37, 100, 194, 107, 212, 31, 12, 213, 167, 4, 228, 204, 169, 155, 30, 156, 102, 94, 206, 91, 226, 14, 232, 105, 121, 227, 98, 56, 18, 170, 185, 178, 166, 8, 149, 162, 58, 158, 202, 73, 97, 69, 172, 99, 223, 147, 234, 211, 32, 33, 145, 131, 214, 5, 200, 229, 0, 140, 19, 254, 103, 137, 208, 123, 207, 62, 217, 118, 49, 80, 219, 109, 101, 237, 184, 46, 195, 65, 72, 183, 153, 24, 28, 23, 242, 54, 113, 110, 90, 151, 16, 47, 1, 230, 83, 87, 15, 78, 187, 245, 251, 177, 17, 64, 7, 240, 157, 129, 10, 128, 89, 114, 29, 67, 55, 86, 63, 246, 25, 92, 179, 70, 96, 44, 205]","[0, 10, 12, 19, 23, 24, 28, 32, 33, 37, 49, 54, 55, 69, 73, 78, 89, 91, 94, 96, 98, 99, 101, 102, 103, 107, 109, 114, 121, 123, 129, 145, 147, 155, 166, 169, 172, 177, 178, 179, 183, 185, 187, 194, 202, 204, 207, 211, 212, 227, 228, 229, 232, 237, 240]"
22,"[132, 44, 226, 229, 117, 145, 14, 169, 177, 1, 195, 235, 71, 21, 99, 101, 184, 32, 178, 139, 134, 173, 74, 93, 66, 18, 26, 180, 73, 67, 54, 196, 191, 162, 157, 10, 128, 107, 222, 38, 144, 142, 53, 102, 237, 233, 137, 59, 39, 97, 200, 230, 82, 171, 160, 212, 158, 49, 114, 8, 77, 94, 165, 141, 122, 188, 154, 4, 198, 143, 9, 55, 13, 105, 106, 227, 210, 2, 80, 95, 203, 201, 118, 152, 252, 187, 156, 116, 125, 199, 151, 197, 243, 79, 228, 185, 170, 96, 121, 84, 186, 214, 78, 64, 127, 255, 253, 164, 98, 103, 100, 3, 146, 48, 211, 30, 75, 245, 155, 153, 92, 81, 22, 7, 194, 27, 206, 131]","[187, 19, 217, 89, 130, 212, 56, 140, 53, 23, 230, 196, 181, 38, 168, 170, 70, 189, 244, 147, 191, 242, 247, 225, 183, 203, 17, 24, 224, 133, 164, 119, 1, 25, 219, 83, 64, 21, 37, 72, 62, 234, 40, 91, 251, 74, 128, 141, 204, 178, 0, 77, 7, 249, 154, 30, 245, 193, 127, 213, 51, 161, 28, 250, 12, 63, 118, 107, 68, 129, 175, 166, 208, 75, 205, 92, 120, 60, 190, 109, 221, 36, 155, 246, 210, 5, 14, 220, 135, 228, 248, 115, 113, 43, 34, 20, 88, 145, 136, 138, 100, 42, 45, 253, 11, 47, 134, 29, 15, 6, 240, 48, 55, 182, 69, 46, 61, 104, 159, 126, 99, 39, 124, 238, 194, 27, 96, 3]","[1, 3, 7, 14, 21, 27, 30, 38, 39, 48, 53, 55, 64, 74, 75, 77, 92, 96, 99, 100, 107, 118, 127, 128, 134, 141, 145, 154, 155, 164, 170, 178, 187, 191, 194, 196, 203, 210, 212, 228, 230, 245, 253]"
23,"[25, 37, 51, 69, 36, 237, 182, 163, 29, 144, 211, 39, 139, 204, 32, 126, 250, 56, 114, 111, 156, 30, 55, 72, 179, 124, 14, 203, 88, 110, 38, 18, 58, 170, 174, 148, 42, 57, 138, 87, 91, 207, 108, 66, 62, 184, 175, 90, 122, 149, 15, 172, 140, 92, 26, 193, 153, 28, 159, 160, 217, 173, 120, 221, 116, 191, 46, 2, 98, 161, 113, 115, 83, 198, 24, 65, 251, 240, 76, 209, 150, 195, 249, 186, 134, 162, 21, 5, 143, 4, 226, 100, 127, 52, 254, 44, 80, 215, 97, 107, 155, 82, 73, 197, 8, 225, 192, 45, 10, 81, 243, 189, 54, 164, 40, 19, 137, 158, 129, 68, 70, 53, 231, 176, 196, 165, 136, 43]","[155, 179, 247, 45, 85, 26, 131, 110, 4, 149, 103, 180, 43, 210, 19, 143, 18, 50, 46, 240, 120, 62, 67, 76, 113, 181, 172, 162, 156, 92, 126, 69, 107, 48, 56, 221, 170, 29, 164, 207, 129, 96, 183, 127, 111, 23, 253, 205, 97, 226, 90, 88, 161, 231, 25, 157, 132, 37, 39, 136, 40, 153, 100, 254, 160, 191, 198, 204, 223, 6, 0, 30, 163, 193, 151, 174, 190, 237, 108, 51, 24, 245, 73, 98, 251, 82, 38, 182, 91, 138, 49, 242, 79, 14, 200, 72, 173, 186, 93, 145, 133, 249, 197, 232, 57, 150, 134, 166, 8, 68, 189, 54, 227, 52, 235, 16, 58, 211, 80, 219, 139, 15, 70, 114, 158, 1, 81, 5]","[4, 5, 8, 14, 15, 18, 19, 24, 25, 26, 29, 30, 37, 38, 39, 40, 43, 45, 46, 51, 52, 54, 56, 57, 58, 62, 68, 69, 70, 72, 73, 76, 80, 81, 82, 88, 90, 91, 92, 97, 98, 100, 107, 108, 110, 111, 113, 114, 120, 126, 127, 129, 134, 136, 138, 139, 143, 149, 150, 153, 155, 156, 158, 160, 161, 162, 163, 164, 170, 172, 173, 174, 179, 182, 186, 189, 191, 193, 197, 198, 204, 207, 211, 221, 226, 231, 237, 240, 249, 251, 254]"
24,"[142, 130, 105, 108, 209, 10, 177, 52, 106, 33, 126, 4, 5, 118, 44, 24, 47, 39, 190, 81, 125, 104, 249, 57, 86, 28, 124, 62, 13, 234, 14, 150, 189, 148, 58, 87, 240, 43, 22, 80, 245, 12, 115, 244, 121, 171, 159, 90, 102, 247, 131, 163, 218, 120, 196, 61, 141, 70, 139, 220, 56, 117, 93, 100, 162, 6, 133, 37, 53, 25, 137, 122, 94, 119, 7, 111, 151, 188, 98, 84, 164, 213, 26, 67, 233, 59, 11, 16, 223, 101, 204, 210, 224, 250, 216, 54, 74, 36, 46, 91, 49, 252, 170, 158, 76, 32, 138, 198, 0, 73, 181, 60, 161, 9, 95, 174, 232, 173, 77, 254, 132, 21, 85, 144, 55, 140, 194, 68]","[5, 94, 118, 244, 186, 15, 138, 101, 198, 164, 209, 204, 57, 180, 21, 56, 182, 217, 93, 80, 223, 205, 140, 183, 59, 250, 150, 91, 72, 192, 137, 45, 4, 87, 120, 16, 58, 126, 194, 134, 30, 35, 151, 73, 26, 195, 13, 153, 33, 83, 95, 224, 191, 55, 131, 75, 129, 254, 113, 0, 202, 188, 90, 156, 46, 96, 201, 108, 218, 216, 144, 103, 53, 251, 11, 184, 111, 125, 88, 61, 104, 25, 114, 84, 36, 24, 8, 127, 106, 48, 231, 196, 234, 133, 2, 64, 77, 197, 68, 132, 67, 161, 154, 181, 149, 42, 115, 155, 121, 74, 245, 6, 52, 167, 38, 34, 158, 78, 28, 100, 208, 82, 81, 232, 105, 10, 62, 43]","[0, 4, 5, 6, 10, 11, 13, 16, 21, 24, 25, 26, 28, 33, 36, 43, 46, 52, 53, 55, 56, 57, 58, 59, 61, 62, 67, 68, 73, 74, 77, 80, 81, 84, 87, 90, 91, 93, 94, 95, 100, 101, 104, 105, 106, 108, 111, 115, 118, 120, 121, 125, 126, 131, 132, 133, 137, 138, 140, 144, 150, 151, 158, 161, 164, 181, 188, 194, 196, 198, 204, 209, 216, 218, 223, 224, 232, 234, 244, 245, 250, 254]"
25,"[24, 28, 167, 253, 5, 86, 156, 224, 164, 97, 66, 87, 171, 95, 124, 99, 240, 137, 14, 200, 209, 210, 185, 198, 148, 234, 25, 9, 64, 108, 184, 59, 30, 121, 149, 195, 150, 130, 117, 89, 191, 93, 225, 84, 161, 199, 16, 172, 173, 182, 63, 162, 21, 113, 189, 54, 70, 129, 19, 128, 165, 49, 180, 114, 122, 177, 220, 231, 135, 141, 69, 250, 73, 105, 212, 232, 183, 136, 140, 160, 96, 205, 211, 27, 35, 88, 252, 103, 203, 100, 174, 127, 197, 223, 42, 46, 222, 236, 77, 85, 106, 43, 82, 41, 152, 10, 18, 153, 65, 229, 142, 76, 36, 45, 22, 192, 169, 34, 71, 217, 90, 79, 201, 111, 33, 179, 2, 1]","[157, 21, 175, 8, 58, 25, 135, 173, 180, 128, 129, 171, 179, 48, 90, 237, 122, 189, 187, 228, 77, 207, 114, 30, 63, 18, 95, 152, 22, 155, 247, 250, 5, 225, 165, 20, 137, 185, 218, 126, 248, 36, 72, 118, 242, 96, 233, 142, 17, 98, 146, 54, 106, 205, 42, 34, 198, 147, 10, 252, 140, 74, 73, 161, 202, 193, 226, 209, 254, 133, 145, 7, 102, 59, 158, 255, 177, 41, 60, 195, 156, 83, 105, 84, 2, 125, 87, 220, 43, 70, 206, 52, 19, 213, 32, 243, 49, 111, 181, 82, 76, 124, 188, 251, 33, 236, 44, 66, 191, 127, 183, 184, 16, 182, 11, 62, 27, 28, 134, 210, 245, 154, 78, 196, 249, 232, 108, 115]","[2, 5, 10, 16, 18, 19, 21, 22, 25, 27, 28, 30, 33, 34, 36, 41, 42, 43, 49, 54, 59, 63, 66, 70, 73, 76, 77, 82, 84, 87, 90, 95, 96, 105, 106, 108, 111, 114, 122, 124, 127, 128, 129, 135, 137, 140, 142, 152, 156, 161, 165, 171, 173, 177, 179, 180, 182, 183, 184, 185, 189, 191, 195, 198, 205, 209, 210, 220, 225, 232, 236, 250, 252]"
26,"[43, 89, 58, 116, 35, 166, 155, 190, 75, 19, 14, 90, 8, 12, 42, 147, 96, 39, 93, 123, 29, 245, 127, 34, 134, 163, 241, 18, 197, 192, 11, 66, 235, 234, 229, 132, 118, 145, 33, 194, 223, 198, 176, 172, 57, 152, 76, 1, 13, 218, 68, 253, 140, 113, 105, 15, 74, 246, 128, 44, 6, 122, 250, 86, 72, 32, 3, 148, 84, 171, 121, 104, 45, 177, 5, 71, 125, 219, 249, 21, 151, 178, 181, 238, 109, 187, 142, 99, 150, 203, 54, 85, 213, 17, 63, 211, 62, 102, 156, 195, 82, 205, 65, 252, 95, 111, 168, 38, 164, 46, 25, 226, 88, 56, 107, 40, 108, 199, 16, 83, 196, 70, 153, 91, 188, 126, 10, 144]","[67, 175, 70, 227, 244, 2, 49, 59, 26, 29, 139, 6, 77, 4, 157, 36, 43, 167, 173, 101, 172, 25, 98, 88, 203, 150, 155, 42, 54, 185, 144, 28, 226, 178, 99, 39, 252, 176, 34, 3, 187, 100, 10, 1, 18, 5, 241, 214, 192, 19, 180, 79, 204, 159, 27, 196, 237, 13, 75, 81, 137, 108, 201, 212, 149, 218, 16, 184, 110, 86, 37, 51, 160, 142, 40, 87, 60, 165, 170, 230, 50, 221, 135, 89, 217, 223, 174, 200, 125, 140, 46, 111, 106, 158, 191, 181, 20, 208, 240, 228, 48, 35, 128, 107, 236, 235, 82, 71, 182, 31, 8, 143, 138, 246, 194, 0, 162, 78, 24, 231, 136, 220, 242, 65, 163, 216, 11, 73]","[1, 3, 5, 6, 8, 10, 11, 13, 16, 18, 19, 25, 29, 34, 35, 39, 40, 42, 43, 46, 54, 65, 70, 71, 75, 82, 86, 88, 89, 99, 107, 108, 111, 125, 128, 140, 142, 144, 150, 155, 163, 172, 176, 178, 181, 187, 192, 194, 196, 203, 218, 223, 226, 235, 241, 246, 252]"
27,"[113, 186, 51, 131, 184, 25, 224, 238, 253, 121, 204, 201, 87, 3, 202, 15, 163, 84, 203, 82, 55, 37, 1, 150, 172, 67, 206, 161, 61, 83, 148, 60, 237, 49, 31, 234, 24, 166, 134, 77, 124, 22, 104, 177, 152, 114, 162, 158, 23, 78, 102, 75, 189, 249, 226, 105, 2, 69, 180, 254, 157, 58, 181, 153, 229, 70, 164, 27, 59, 56, 174, 191, 41, 250, 182, 47, 178, 97, 213, 179, 12, 199, 194, 72, 146, 140, 111, 44, 221, 240, 255, 96, 214, 252, 123, 193, 143, 95, 248, 232, 159, 73, 175, 195, 39, 40, 91, 200, 116, 88, 17, 43, 168, 144, 223, 64, 137, 90, 212, 149, 130, 133, 188, 38, 71, 100, 230, 20]","[147, 36, 25, 228, 20, 111, 120, 184, 165, 75, 188, 35, 217, 189, 70, 114, 45, 15, 177, 16, 104, 65, 24, 23, 44, 238, 94, 30, 105, 195, 163, 87, 102, 204, 159, 166, 97, 154, 182, 124, 5, 214, 221, 183, 67, 113, 220, 93, 109, 131, 91, 3, 203, 199, 146, 71, 142, 4, 66, 148, 175, 193, 82, 230, 74, 19, 49, 200, 108, 96, 73, 149, 253, 106, 140, 56, 38, 69, 81, 122, 179, 99, 255, 144, 245, 78, 224, 169, 153, 46, 89, 186, 47, 229, 12, 248, 254, 137, 37, 158, 205, 234, 201, 173, 246, 202, 6, 85, 170, 150, 90, 168, 152, 22, 134, 222, 161, 232, 247, 180, 32, 100, 55, 194, 125, 164, 50, 112]","[3, 12, 15, 20, 22, 23, 24, 25, 37, 38, 44, 47, 49, 55, 56, 67, 69, 70, 71, 73, 75, 78, 82, 87, 90, 91, 96, 97, 100, 102, 104, 105, 111, 113, 114, 124, 131, 134, 137, 140, 144, 146, 148, 149, 150, 152, 153, 158, 159, 161, 163, 164, 166, 168, 175, 177, 179, 180, 182, 184, 186, 188, 189, 193, 194, 195, 199, 200, 201, 202, 203, 204, 214, 221, 224, 229, 230, 232, 234, 238, 248, 253, 254, 255]"
28,"[48, 238, 196, 250, 226, 236, 129, 187, 130, 169, 167, 94, 110, 122, 138, 114, 56, 165, 184, 14, 220, 18, 149, 132, 45, 46, 71, 252, 108, 237, 76, 69, 73, 180, 245, 34, 163, 171, 195, 159, 41, 248, 151, 51, 131, 228, 9, 103, 16, 158, 241, 235, 12, 64, 136, 77, 81, 142, 58, 135, 203, 70, 198, 125, 234, 4, 75, 80, 90, 5, 182, 153, 23, 208, 112, 183, 244, 47, 50, 86, 141, 100, 38, 162, 115, 178, 113, 26, 200, 177, 22, 19, 249, 150, 83, 33, 181, 223, 209, 35, 140, 253, 215, 144, 102, 246, 85, 118, 13, 20, 105, 55, 123, 119, 225, 239, 172, 63, 72, 44, 15, 188, 166, 65, 157, 43, 201, 78]","[139, 52, 132, 164, 53, 102, 149, 214, 147, 3, 144, 163, 244, 67, 58, 205, 15, 203, 33, 200, 22, 46, 157, 57, 204, 105, 27, 92, 35, 175, 245, 77, 10, 54, 178, 253, 187, 138, 241, 66, 88, 34, 101, 216, 64, 32, 254, 255, 26, 236, 169, 252, 135, 104, 70, 30, 81, 198, 73, 61, 24, 121, 158, 192, 39, 9, 165, 196, 197, 21, 50, 160, 191, 145, 184, 123, 207, 224, 99, 93, 136, 112, 249, 199, 155, 231, 85, 250, 185, 190, 94, 186, 68, 44, 56, 237, 242, 180, 209, 28, 113, 118, 124, 19, 177, 251, 173, 60, 167, 233, 40, 218, 116, 153, 14, 188, 129, 159, 225, 48, 193, 170, 95, 195, 74, 211, 161, 43]","[9, 14, 15, 19, 22, 26, 33, 34, 35, 43, 44, 46, 48, 50, 56, 58, 64, 70, 73, 77, 81, 85, 94, 102, 105, 112, 113, 118, 123, 129, 132, 135, 136, 138, 144, 149, 153, 157, 158, 159, 163, 165, 167, 169, 177, 178, 180, 184, 187, 188, 195, 196, 198, 200, 203, 209, 225, 236, 237, 241, 244, 245, 249, 250, 252, 253]"
29,"[217, 50, 160, 234, 240, 53, 162, 13, 84, 171, 1, 245, 0, 67, 138, 238, 198, 71, 27, 173, 28, 132, 24, 47, 255, 101, 176, 82, 252, 150, 151, 66, 106, 226, 222, 81, 70, 10, 79, 48, 211, 152, 126, 131, 207, 202, 94, 181, 122, 105, 83, 38, 17, 212, 178, 58, 188, 29, 148, 64, 135, 118, 100, 104, 12, 117, 95, 57, 113, 200, 14, 169, 22, 8, 5, 158, 233, 232, 194, 179, 85, 25, 154, 149, 16, 90, 140, 201, 223, 196, 184, 2, 129, 103, 157, 86, 144, 93, 96, 187, 30, 239, 143, 37, 120, 36, 237, 220, 130, 209, 210, 190, 180, 119, 197, 251, 254, 121, 205, 65, 192, 213, 107, 111, 75, 136, 49, 97]","[67, 193, 39, 161, 246, 15, 158, 175, 54, 63, 28, 180, 96, 224, 184, 140, 111, 113, 59, 192, 204, 194, 249, 160, 238, 32, 166, 51, 84, 243, 10, 75, 247, 80, 202, 124, 186, 13, 103, 201, 72, 248, 1, 190, 97, 200, 93, 90, 242, 198, 79, 153, 30, 207, 255, 241, 139, 203, 228, 99, 214, 235, 106, 16, 41, 128, 183, 86, 58, 212, 0, 221, 208, 42, 218, 87, 55, 4, 151, 73, 254, 250, 122, 231, 71, 19, 145, 85, 244, 24, 112, 206, 174, 22, 138, 101, 225, 215, 88, 92, 150, 2, 14, 25, 177, 102, 155, 47, 62, 20, 74, 252, 134, 45, 147, 125, 240, 98, 53, 8, 209, 130, 229, 107, 156, 169, 196, 109]","[0, 1, 2, 8, 10, 13, 14, 16, 22, 24, 25, 28, 30, 47, 53, 58, 67, 71, 75, 79, 84, 85, 86, 90, 93, 96, 97, 101, 103, 106, 107, 111, 113, 122, 130, 138, 140, 150, 151, 158, 160, 169, 180, 184, 190, 192, 194, 196, 198, 200, 201, 202, 207, 209, 212, 238, 240, 252, 254, 255]"
30,"[91, 89, 254, 244, 22, 229, 57, 178, 175, 124, 187, 46, 82, 201, 81, 165, 49, 43, 139, 8, 222, 156, 243, 172, 132, 159, 205, 88, 3, 138, 16, 193, 116, 20, 214, 144, 208, 241, 52, 13, 167, 2, 12, 182, 207, 253, 196, 230, 38, 92, 56, 4, 17, 169, 29, 11, 195, 247, 40, 173, 255, 102, 125, 202, 204, 100, 237, 210, 110, 251, 18, 197, 71, 34, 250, 10, 21, 15, 80, 137, 134, 161, 37, 79, 109, 184, 26, 65, 74, 51, 112, 85, 60, 185, 25, 93, 223, 5, 142, 234, 6, 203, 36, 150, 106, 168, 32, 105, 114, 141, 14, 158, 33, 9, 59, 231, 28, 216, 236, 68, 115, 145, 129, 240, 95, 180, 45, 119]","[81, 189, 225, 86, 113, 64, 168, 62, 129, 22, 84, 145, 56, 112, 229, 103, 108, 132, 41, 191, 98, 59, 65, 167, 138, 73, 51, 159, 11, 28, 176, 158, 100, 165, 74, 208, 245, 38, 219, 150, 164, 3, 6, 152, 200, 90, 94, 232, 50, 154, 171, 174, 239, 102, 151, 221, 27, 126, 34, 30, 178, 179, 139, 17, 131, 63, 36, 5, 123, 141, 52, 244, 235, 10, 210, 172, 121, 31, 220, 201, 144, 99, 248, 125, 8, 24, 107, 215, 49, 42, 39, 162, 190, 161, 228, 14, 58, 116, 160, 70, 188, 209, 43, 253, 55, 170, 227, 230, 207, 237, 78, 66, 157, 68, 12, 18, 242, 163, 47, 236, 7, 224, 46, 184, 197, 203, 1, 198]","[3, 5, 6, 8, 10, 11, 12, 14, 17, 18, 22, 28, 34, 36, 38, 43, 46, 49, 51, 52, 56, 59, 65, 68, 74, 81, 100, 102, 112, 116, 125, 129, 132, 138, 139, 141, 144, 145, 150, 158, 159, 161, 165, 167, 168, 172, 178, 184, 197, 201, 203, 207, 208, 210, 229, 230, 236, 237, 244, 253]"
31,"[94, 211, 43, 174, 255, 68, 1, 254, 0, 183, 198, 160, 64, 79, 164, 38, 97, 167, 220, 70, 35, 87, 54, 76, 75, 10, 213, 148, 212, 133, 22, 56, 14, 85, 197, 141, 236, 137, 202, 244, 31, 184, 143, 182, 93, 72, 168, 52, 50, 130, 246, 46, 17, 120, 203, 139, 81, 101, 151, 229, 116, 9, 95, 221, 102, 3, 201, 19, 176, 173, 59, 65, 108, 227, 224, 129, 53, 241, 172, 121, 251, 30, 234, 44, 84, 34, 159, 214, 2, 6, 24, 126, 88, 125, 112, 175, 189, 29, 163, 13, 240, 92, 186, 181, 238, 57, 4, 71, 122, 131, 178, 144, 158, 250, 61, 247, 216, 135, 231, 41, 170, 82, 98, 40, 217, 199, 243, 195]","[44, 23, 96, 80, 81, 0, 100, 85, 24, 90, 152, 210, 179, 63, 71, 143, 89, 97, 123, 28, 170, 27, 107, 32, 178, 101, 248, 41, 197, 253, 193, 221, 243, 192, 99, 74, 228, 75, 52, 124, 47, 154, 66, 142, 153, 43, 102, 137, 38, 149, 139, 191, 204, 215, 234, 6, 8, 196, 70, 106, 88, 111, 36, 25, 249, 15, 200, 211, 168, 150, 128, 105, 17, 254, 255, 78, 226, 86, 180, 83, 91, 138, 77, 68, 103, 218, 185, 206, 30, 140, 232, 209, 5, 60, 239, 122, 87, 203, 18, 16, 231, 219, 212, 235, 230, 49, 159, 108, 146, 229, 241, 233, 169, 165, 190, 9, 42, 245, 164, 37, 46, 252, 171, 136, 118, 237, 217, 194]","[0, 6, 9, 17, 24, 30, 38, 41, 43, 44, 46, 52, 68, 70, 71, 75, 81, 85, 87, 88, 97, 101, 102, 108, 122, 137, 139, 143, 159, 164, 168, 170, 178, 197, 203, 211, 212, 217, 221, 229, 231, 234, 241, 243, 254, 255]"
32,"[250, 139, 20, 180, 73, 192, 45, 242, 170, 184, 114, 98, 228, 134, 113, 130, 178, 123, 56, 161, 253, 9, 102, 186, 110, 84, 30, 59, 94, 3, 44, 33, 19, 5, 187, 26, 150, 203, 104, 215, 108, 181, 244, 243, 148, 46, 13, 37, 103, 223, 87, 202, 149, 214, 15, 82, 191, 23, 6, 117, 251, 229, 50, 67, 36, 60, 52, 120, 107, 85, 121, 81, 128, 7, 152, 158, 38, 43, 217, 183, 175, 249, 163, 95, 124, 116, 92, 35, 18, 236, 157, 80, 162, 112, 8, 90, 255, 125, 63, 173, 254, 99, 198, 126, 232, 118, 68, 88, 140, 89, 189, 194, 32, 10, 25, 119, 145, 34, 39, 234, 61, 166, 100, 218, 40, 168, 156, 83]","[181, 100, 237, 192, 35, 252, 14, 111, 215, 129, 219, 7, 77, 235, 9, 207, 125, 86, 170, 201, 245, 169, 69, 72, 105, 92, 42, 155, 16, 55, 224, 101, 231, 157, 177, 17, 28, 171, 64, 66, 248, 74, 0, 227, 172, 62, 199, 106, 79, 205, 216, 126, 145, 70, 222, 122, 6, 114, 39, 31, 1, 134, 226, 61, 141, 220, 144, 189, 160, 133, 110, 193, 127, 137, 27, 158, 115, 41, 63, 75, 230, 131, 135, 221, 103, 179, 246, 143, 73, 178, 2, 206, 254, 29, 211, 210, 53, 147, 167, 138, 54, 195, 113, 33, 24, 194, 214, 132, 123, 247, 255, 109, 150, 165, 15, 76, 240, 57, 51, 93, 146, 153, 228, 202, 161, 238, 213, 78]","[6, 7, 9, 15, 33, 35, 39, 61, 63, 73, 92, 100, 103, 110, 113, 114, 123, 125, 126, 134, 145, 150, 157, 158, 161, 170, 178, 181, 189, 192, 194, 202, 214, 215, 228, 254, 255]"
33,"[54, 182, 21, 237, 130, 154, 133, 138, 144, 220, 62, 3, 188, 231, 198, 213, 48, 209, 66, 178, 164, 14, 129, 131, 83, 233, 73, 156, 30, 151, 58, 94, 176, 86, 125, 17, 91, 45, 147, 205, 16, 247, 81, 162, 57, 63, 107, 23, 110, 253, 7, 120, 174, 67, 89, 194, 26, 19, 27, 68, 15, 72, 168, 226, 146, 5, 215, 199, 113, 59, 111, 163, 87, 245, 181, 218, 104, 126, 22, 179, 56, 10, 11, 189, 0, 42, 169, 202, 187, 75, 224, 210, 24, 141, 177, 193, 158, 225, 98, 76, 248, 88, 82, 135, 20, 186, 171, 219, 53, 201, 142, 175, 127, 35, 40, 249, 92, 32, 132, 80, 208, 115, 191, 84, 90, 4, 109, 97]","[143, 58, 8, 76, 173, 87, 241, 213, 54, 180, 136, 156, 107, 193, 38, 147, 82, 75, 68, 30, 174, 28, 59, 78, 245, 72, 185, 135, 69, 191, 138, 92, 225, 150, 45, 226, 234, 109, 81, 130, 190, 52, 62, 90, 247, 103, 211, 154, 37, 108, 46, 53, 157, 22, 146, 84, 220, 73, 91, 224, 232, 79, 231, 26, 121, 2, 229, 116, 66, 228, 182, 152, 55, 153, 210, 160, 218, 131, 246, 127, 149, 238, 70, 235, 250, 114, 117, 183, 165, 196, 33, 199, 163, 12, 142, 178, 115, 113, 16, 243, 64, 99, 105, 171, 10, 132, 63, 244, 44, 118, 96, 161, 122, 255, 40, 134, 188, 39, 110, 200, 187, 14, 219, 41, 42, 0, 221, 24]","[0, 10, 14, 16, 22, 24, 26, 30, 40, 42, 45, 53, 54, 58, 59, 62, 63, 66, 68, 72, 73, 75, 76, 81, 82, 84, 87, 90, 91, 92, 107, 109, 110, 113, 115, 127, 130, 131, 132, 135, 138, 142, 146, 147, 154, 156, 163, 171, 174, 178, 182, 187, 188, 191, 193, 199, 210, 213, 218, 219, 220, 224, 225, 226, 231, 245, 247]"
34,"[118, 74, 66, 206, 224, 64, 238, 170, 37, 113, 27, 82, 105, 67, 63, 134, 24, 35, 81, 40, 42, 189, 55, 214, 87, 204, 34, 232, 144, 159, 31, 195, 116, 91, 59, 123, 152, 28, 72, 254, 175, 6, 162, 45, 234, 223, 176, 245, 76, 211, 142, 241, 120, 61, 137, 210, 36, 166, 225, 71, 124, 22, 209, 103, 92, 203, 133, 10, 83, 213, 228, 236, 14, 136, 46, 255, 68, 197, 243, 149, 54, 160, 193, 191, 77, 168, 218, 49, 114, 230, 32, 147, 125, 121, 172, 151, 226, 178, 16, 110, 251, 235, 84, 132, 252, 192, 180, 97, 38, 39, 237, 102, 58, 139, 13, 246, 78, 70, 150, 108, 248, 85, 33, 4, 26, 143, 201, 186]","[28, 235, 117, 142, 130, 194, 61, 31, 144, 180, 40, 71, 59, 233, 66, 21, 118, 16, 110, 195, 148, 46, 18, 139, 58, 55, 143, 22, 211, 214, 231, 38, 197, 187, 186, 226, 113, 155, 241, 87, 45, 175, 13, 83, 39, 115, 42, 108, 6, 78, 93, 185, 8, 164, 68, 137, 149, 203, 163, 212, 74, 136, 179, 98, 34, 229, 170, 123, 84, 188, 204, 27, 49, 33, 10, 152, 120, 107, 26, 3, 191, 166, 111, 159, 95, 97, 134, 54, 252, 72, 238, 151, 19, 213, 12, 132, 245, 99, 218, 184, 30, 43, 102, 217, 63, 36, 244, 224, 206, 167, 192, 62, 4, 236, 82, 60, 24, 70, 92, 64, 234, 190, 77, 14, 56, 219, 37, 222]","[4, 6, 10, 13, 14, 16, 22, 24, 26, 27, 28, 31, 33, 34, 36, 37, 38, 39, 40, 42, 45, 46, 49, 54, 55, 58, 59, 61, 63, 64, 66, 68, 70, 71, 72, 74, 77, 78, 82, 83, 84, 87, 92, 97, 102, 108, 110, 113, 118, 120, 123, 132, 134, 136, 137, 139, 142, 143, 144, 149, 151, 152, 159, 166, 170, 175, 180, 186, 191, 192, 195, 197, 203, 204, 206, 211, 213, 214, 218, 224, 226, 234, 235, 236, 238, 241, 245, 252]"
35,"[22, 111, 13, 56, 148, 208, 202, 10, 47, 174, 14, 131, 192, 99, 254, 212, 103, 130, 24, 40, 100, 233, 124, 253, 105, 118, 133, 195, 119, 138, 216, 38, 140, 106, 6, 127, 21, 53, 28, 242, 4, 101, 80, 123, 48, 180, 117, 31, 190, 160, 17, 179, 59, 178, 139, 75, 102, 169, 1, 250, 246, 41, 36, 193, 172, 5, 96, 128, 222, 228, 25, 211, 63, 196, 98, 205, 241, 74, 125, 30, 165, 168, 94, 9, 170, 232, 217, 82, 81, 91, 78, 69, 86, 177, 29, 199, 219, 46, 3, 8, 184, 161, 152, 23, 116, 113, 115, 70, 244, 92, 164, 88, 110, 19, 84, 76, 32, 66, 181, 173, 166, 231, 155, 104, 52, 159, 223, 15]","[220, 79, 56, 237, 34, 19, 202, 55, 70, 214, 43, 215, 41, 241, 11, 177, 16, 109, 9, 163, 63, 136, 154, 246, 124, 120, 206, 100, 49, 204, 247, 2, 213, 188, 145, 108, 168, 167, 229, 72, 67, 64, 232, 42, 208, 185, 187, 198, 35, 81, 95, 221, 165, 218, 201, 226, 242, 51, 200, 111, 10, 44, 240, 26, 175, 155, 129, 183, 248, 12, 150, 190, 141, 59, 126, 23, 238, 210, 116, 182, 33, 32, 93, 54, 224, 207, 130, 217, 77, 176, 252, 114, 4, 227, 132, 60, 45, 179, 0, 37, 73, 105, 191, 255, 157, 235, 83, 135, 239, 189, 244, 203, 234, 76, 174, 166, 223, 71, 162, 112, 144, 50, 97, 158, 27, 7, 230, 58]","[4, 9, 10, 19, 23, 32, 41, 56, 59, 63, 70, 76, 81, 100, 105, 111, 116, 124, 130, 155, 165, 166, 168, 174, 177, 179, 190, 202, 208, 217, 223, 232, 241, 242, 244, 246]"
36,"[45, 64, 25, 225, 224, 111, 127, 9, 185, 107, 13, 68, 237, 23, 216, 32, 72, 190, 202, 100, 240, 5, 17, 200, 160, 244, 71, 51, 35, 136, 118, 170, 254, 95, 201, 149, 236, 43, 153, 159, 38, 196, 58, 75, 192, 155, 252, 151, 138, 2, 18, 89, 233, 49, 122, 203, 142, 70, 179, 229, 66, 162, 57, 186, 222, 53, 113, 231, 146, 246, 211, 125, 166, 86, 182, 22, 143, 248, 253, 131, 117, 54, 30, 114, 173, 139, 226, 59, 154, 126, 78, 48, 215, 243, 50, 187, 65, 56, 21, 37, 133, 110, 1, 195, 27, 115, 130, 164, 123, 74, 26, 157, 145, 234, 47, 106, 92, 239, 230, 24, 19, 242, 208, 93, 193, 12, 39, 171]","[91, 145, 33, 196, 35, 20, 203, 79, 26, 184, 59, 88, 72, 193, 25, 39, 105, 24, 46, 215, 217, 65, 201, 110, 186, 225, 198, 250, 144, 239, 125, 19, 120, 75, 127, 149, 77, 222, 10, 53, 218, 138, 92, 113, 213, 171, 38, 178, 192, 182, 100, 23, 154, 168, 226, 152, 32, 43, 190, 70, 64, 132, 212, 161, 208, 58, 86, 183, 179, 48, 130, 45, 2, 244, 34, 129, 31, 22, 200, 68, 37, 90, 162, 18, 51, 112, 156, 232, 139, 160, 27, 180, 123, 111, 4, 204, 253, 89, 74, 142, 93, 249, 47, 214, 211, 6, 67, 119, 153, 21, 243, 252, 3, 254, 187, 95, 185, 155, 57, 126, 216, 150, 151, 81, 195, 122, 56, 9]","[2, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 38, 39, 43, 45, 47, 48, 51, 53, 56, 57, 58, 59, 64, 65, 68, 70, 72, 74, 75, 86, 89, 92, 93, 95, 100, 110, 111, 113, 122, 123, 125, 126, 127, 130, 138, 139, 142, 145, 149, 151, 153, 154, 155, 160, 162, 171, 179, 182, 185, 186, 187, 190, 192, 193, 195, 196, 200, 201, 203, 208, 211, 215, 216, 222, 225, 226, 239, 243, 244, 252, 253, 254]"
37,"[90, 131, 196, 213, 45, 24, 38, 142, 147, 158, 118, 190, 40, 76, 245, 3, 170, 100, 37, 126, 140, 6, 246, 129, 194, 181, 111, 5, 85, 73, 46, 167, 54, 211, 89, 87, 74, 117, 183, 161, 15, 7, 136, 1, 200, 239, 19, 180, 207, 124, 16, 47, 27, 224, 187, 145, 144, 98, 165, 152, 134, 184, 235, 159, 55, 34, 219, 4, 30, 164, 252, 202, 191, 41, 56, 214, 21, 249, 238, 229, 23, 78, 67, 75, 139, 60, 250, 226, 110, 17, 18, 59, 8, 2, 137, 209, 189, 77, 72, 102, 119, 132, 188, 148, 61, 91, 69, 113, 66, 174, 208, 22, 58, 168, 70, 153, 138, 169, 146, 84, 48, 35, 123, 221, 106, 29, 151, 154]","[110, 3, 108, 117, 7, 181, 18, 66, 139, 90, 16, 248, 5, 241, 46, 124, 118, 19, 27, 40, 170, 196, 24, 69, 36, 245, 188, 61, 153, 246, 134, 78, 14, 45, 253, 98, 50, 71, 229, 112, 8, 59, 202, 140, 38, 119, 232, 79, 194, 159, 144, 228, 32, 180, 148, 77, 189, 213, 60, 238, 127, 158, 41, 255, 192, 96, 215, 131, 55, 242, 76, 161, 226, 254, 176, 102, 6, 73, 126, 129, 221, 193, 47, 164, 239, 37, 191, 80, 186, 113, 1, 165, 123, 141, 233, 172, 72, 166, 101, 68, 49, 184, 136, 135, 97, 197, 2, 89, 74, 63, 216, 137, 250, 54, 155, 84, 0, 212, 252, 114, 67, 111, 30, 185, 230, 244, 171, 138]","[1, 2, 3, 5, 6, 7, 8, 16, 18, 19, 24, 27, 30, 37, 38, 40, 41, 45, 46, 47, 54, 55, 59, 60, 61, 66, 67, 69, 72, 73, 74, 76, 77, 78, 84, 89, 90, 98, 102, 110, 111, 113, 117, 118, 119, 123, 124, 126, 129, 131, 134, 136, 137, 138, 139, 140, 144, 148, 153, 158, 159, 161, 164, 165, 170, 180, 181, 184, 188, 189, 191, 194, 196, 202, 213, 221, 226, 229, 238, 239, 245, 246, 250, 252]"
38,"[68, 42, 242, 215, 126, 155, 33, 181, 21, 125, 87, 102, 173, 60, 164, 174, 36, 131, 143, 63, 34, 86, 80, 58, 207, 239, 222, 9, 24, 202, 175, 128, 228, 187, 133, 151, 19, 92, 224, 30, 98, 0, 61, 201, 203, 116, 50, 113, 190, 14, 53, 49, 56, 191, 106, 22, 172, 109, 132, 205, 122, 140, 152, 195, 188, 107, 135, 197, 17, 81, 123, 245, 176, 97, 120, 213, 184, 100, 27, 5, 54, 161, 226, 158, 130, 31, 199, 232, 96, 229, 55, 112, 160, 10, 146, 101, 193, 99, 117, 51, 48, 104, 88, 7, 129, 77, 139, 37, 217, 94, 124, 119, 142, 66, 8, 238, 29, 74, 157, 4, 20, 134, 41, 148, 166, 103, 247, 147]","[83, 184, 29, 42, 91, 229, 253, 117, 49, 13, 205, 85, 218, 208, 9, 183, 122, 101, 189, 67, 14, 37, 76, 94, 48, 17, 62, 149, 61, 159, 170, 75, 44, 90, 142, 164, 249, 7, 47, 126, 139, 132, 216, 10, 173, 26, 25, 254, 89, 70, 248, 154, 18, 68, 198, 155, 69, 163, 103, 32, 79, 228, 217, 2, 241, 45, 121, 204, 255, 144, 71, 141, 224, 145, 60, 210, 236, 230, 213, 35, 30, 11, 78, 225, 15, 169, 22, 64, 252, 219, 178, 54, 251, 186, 168, 8, 151, 95, 28, 74, 63, 200, 220, 143, 55, 99, 112, 114, 156, 92, 110, 96, 223, 100, 171, 136, 209, 240, 129, 21, 84, 59, 3, 82, 40, 177, 138, 88]","[7, 8, 9, 10, 14, 17, 21, 22, 29, 30, 37, 42, 48, 49, 54, 55, 60, 61, 63, 68, 74, 88, 92, 94, 96, 99, 100, 101, 103, 112, 117, 122, 126, 129, 132, 139, 142, 143, 151, 155, 164, 173, 184, 205, 213, 217, 224, 228, 229]"
39,"[253, 41, 93, 243, 136, 238, 188, 85, 212, 55, 91, 61, 75, 116, 66, 81, 248, 120, 159, 207, 111, 6, 139, 164, 186, 12, 24, 181, 123, 112, 69, 50, 138, 189, 39, 29, 68, 163, 227, 146, 214, 187, 60, 18, 162, 228, 153, 23, 137, 210, 182, 99, 98, 155, 87, 203, 0, 209, 144, 173, 26, 96, 4, 179, 217, 74, 7, 208, 221, 104, 114, 180, 10, 77, 70, 40, 67, 82, 28, 191, 178, 252, 130, 21, 175, 165, 201, 51, 117, 32, 218, 34, 83, 25, 16, 128, 31, 194, 171, 9, 36, 193, 202, 109, 48, 127, 236, 73, 255, 13, 241, 240, 232, 115, 254, 172, 157, 101, 72, 251, 35, 131, 76, 237, 147, 79, 233, 121]","[0, 143, 97, 32, 13, 85, 181, 228, 114, 218, 17, 38, 72, 186, 23, 252, 12, 69, 1, 238, 197, 88, 116, 99, 81, 75, 10, 248, 173, 100, 115, 92, 198, 162, 237, 70, 167, 255, 193, 43, 172, 241, 156, 188, 149, 203, 184, 199, 21, 145, 242, 253, 26, 66, 15, 20, 146, 120, 147, 7, 61, 98, 179, 30, 196, 180, 57, 102, 229, 240, 121, 125, 76, 91, 174, 42, 243, 50, 127, 158, 68, 141, 117, 207, 110, 175, 164, 122, 227, 190, 39, 3, 126, 47, 206, 166, 89, 101, 35, 140, 134, 123, 132, 239, 29, 194, 33, 73, 235, 195, 65, 182, 189, 64, 109, 246, 220, 159, 254, 202, 103, 19, 25, 60, 58, 78, 124, 170]","[0, 7, 10, 12, 13, 21, 23, 25, 26, 29, 32, 35, 39, 50, 60, 61, 66, 68, 69, 70, 72, 73, 75, 76, 81, 85, 91, 98, 99, 101, 109, 114, 115, 116, 117, 120, 121, 123, 127, 146, 147, 159, 162, 164, 172, 173, 175, 179, 180, 181, 182, 186, 188, 189, 193, 194, 202, 203, 207, 218, 227, 228, 237, 238, 240, 241, 243, 248, 252, 253, 254, 255]"
40,"[255, 12, 158, 117, 69, 26, 154, 159, 219, 109, 70, 245, 136, 49, 127, 167, 128, 124, 94, 32, 152, 96, 142, 112, 46, 92, 139, 48, 18, 161, 236, 134, 57, 45, 53, 211, 192, 133, 30, 52, 17, 223, 71, 50, 232, 213, 33, 61, 156, 40, 4, 103, 146, 137, 121, 25, 1, 63, 244, 87, 175, 165, 64, 157, 11, 180, 107, 222, 37, 31, 101, 99, 191, 42, 148, 183, 65, 56, 111, 77, 5, 58, 227, 108, 78, 179, 166, 212, 120, 125, 238, 215, 131, 2, 171, 89, 116, 234, 114, 47, 36, 196, 151, 93, 230, 9, 155, 68, 15, 59, 119, 110, 35, 226, 126, 178, 23, 209, 170, 16, 248, 22, 144, 203, 143, 186, 100, 206]","[85, 8, 108, 182, 146, 245, 64, 250, 174, 25, 172, 127, 168, 90, 179, 100, 76, 177, 249, 229, 73, 18, 228, 50, 116, 55, 231, 6, 199, 158, 113, 96, 82, 52, 132, 66, 19, 247, 242, 107, 80, 20, 236, 214, 176, 43, 138, 150, 15, 163, 209, 44, 79, 84, 86, 218, 21, 41, 67, 180, 173, 81, 104, 160, 101, 221, 224, 165, 35, 195, 200, 185, 243, 110, 14, 26, 34, 219, 189, 122, 204, 181, 115, 207, 239, 233, 24, 106, 202, 190, 156, 232, 112, 246, 147, 71, 136, 91, 140, 192, 118, 17, 28, 119, 208, 123, 164, 213, 241, 135, 54, 9, 70, 210, 36, 13, 145, 38, 46, 244, 222, 184, 149, 153, 75, 141, 154, 87]","[9, 15, 17, 18, 25, 26, 35, 36, 46, 50, 52, 64, 70, 71, 87, 96, 100, 101, 107, 108, 110, 112, 116, 119, 127, 136, 146, 154, 156, 158, 165, 179, 180, 192, 209, 213, 219, 222, 232, 236, 244, 245]"
41,"[83, 142, 66, 130, 202, 11, 13, 139, 92, 100, 214, 21, 245, 176, 210, 71, 189, 235, 74, 9, 227, 226, 58, 122, 247, 104, 81, 194, 110, 20, 161, 249, 157, 150, 143, 121, 173, 204, 118, 133, 107, 10, 95, 8, 237, 37, 85, 2, 126, 75, 137, 233, 234, 28, 218, 219, 138, 148, 171, 47, 119, 170, 144, 31, 33, 30, 162, 223, 127, 147, 211, 236, 206, 63, 117, 35, 101, 67, 229, 106, 64, 158, 91, 141, 39, 222, 196, 89, 129, 19, 187, 14, 205, 169, 25, 99, 178, 42, 1, 77, 78, 132, 69, 193, 114, 61, 55, 164, 116, 41, 23, 242, 96, 108, 38, 84, 182, 238, 52, 22, 241, 215, 51, 217, 212, 140, 252, 70]","[138, 185, 225, 196, 101, 129, 76, 108, 40, 106, 78, 128, 216, 195, 182, 189, 198, 171, 158, 130, 148, 21, 163, 126, 56, 1, 215, 74, 71, 154, 223, 54, 34, 240, 10, 233, 247, 234, 96, 70, 91, 169, 241, 0, 141, 88, 239, 160, 67, 63, 16, 18, 19, 159, 61, 58, 104, 173, 222, 205, 95, 111, 203, 238, 186, 103, 17, 150, 83, 85, 123, 212, 153, 110, 69, 48, 208, 105, 15, 31, 62, 59, 92, 80, 55, 84, 190, 2, 52, 115, 114, 109, 226, 64, 29, 42, 13, 152, 143, 107, 155, 236, 99, 132, 20, 142, 33, 100, 246, 51, 140, 35, 214, 177, 122, 37, 237, 219, 166, 11, 184, 176, 38, 180, 200, 66, 161, 97]","[1, 2, 10, 11, 13, 19, 20, 21, 31, 33, 35, 37, 38, 42, 51, 52, 55, 58, 61, 63, 64, 66, 67, 69, 70, 71, 74, 78, 83, 84, 85, 91, 92, 95, 96, 99, 100, 101, 104, 106, 107, 108, 110, 114, 122, 126, 129, 130, 132, 138, 140, 141, 142, 143, 148, 150, 158, 161, 169, 171, 173, 176, 182, 189, 196, 205, 212, 214, 215, 219, 222, 223, 226, 233, 234, 236, 237, 238, 241, 247]"
42,"[26, 67, 91, 13, 45, 255, 131, 76, 211, 176, 126, 18, 237, 97, 15, 124, 128, 88, 66, 89, 30, 65, 83, 149, 236, 144, 160, 23, 79, 207, 94, 203, 197, 7, 218, 161, 205, 42, 80, 72, 107, 22, 209, 60, 172, 247, 157, 81, 99, 179, 95, 82, 139, 53, 216, 188, 70, 204, 12, 19, 213, 167, 104, 175, 59, 186, 222, 29, 116, 86, 181, 148, 38, 156, 168, 110, 184, 194, 130, 164, 122, 34, 252, 192, 78, 137, 242, 56, 74, 198, 193, 84, 75, 47, 2, 85, 240, 35, 163, 152, 63, 25, 61, 103, 234, 180, 182, 62, 173, 132, 100, 28, 151, 31, 190, 155, 206, 73, 231, 166, 158, 111, 127, 165, 229, 191, 93, 50]","[95, 224, 84, 10, 143, 18, 91, 223, 104, 42, 140, 221, 179, 32, 186, 144, 236, 216, 164, 200, 247, 109, 110, 29, 85, 210, 2, 241, 71, 252, 19, 23, 135, 234, 211, 150, 168, 66, 159, 92, 141, 4, 48, 240, 245, 127, 3, 61, 57, 129, 125, 250, 130, 182, 38, 230, 166, 36, 83, 94, 111, 207, 249, 22, 72, 193, 116, 58, 12, 45, 112, 167, 74, 215, 190, 103, 24, 98, 138, 30, 147, 183, 16, 56, 152, 99, 217, 59, 96, 148, 142, 79, 105, 194, 254, 222, 47, 41, 9, 160, 205, 60, 26, 25, 35, 73, 49, 7, 123, 184, 65, 177, 227, 176, 87, 82, 67, 76, 237, 128, 6, 77, 157, 149, 131, 62, 97, 220]","[2, 7, 12, 18, 19, 22, 23, 25, 26, 29, 30, 35, 38, 42, 45, 47, 56, 59, 60, 61, 62, 65, 66, 67, 72, 73, 74, 76, 79, 82, 83, 84, 85, 91, 94, 95, 97, 99, 103, 104, 110, 111, 116, 127, 128, 130, 131, 144, 148, 149, 152, 157, 160, 164, 166, 167, 168, 176, 179, 182, 184, 186, 190, 193, 194, 205, 207, 211, 216, 222, 234, 236, 237, 240, 247, 252]"
43,"[132, 30, 65, 191, 88, 168, 60, 170, 142, 146, 53, 250, 75, 143, 155, 57, 100, 4, 208, 243, 56, 246, 157, 120, 113, 206, 77, 21, 121, 255, 166, 227, 117, 219, 40, 89, 147, 254, 198, 144, 45, 141, 134, 164, 108, 232, 63, 245, 150, 66, 221, 48, 222, 0, 44, 167, 55, 244, 138, 26, 46, 3, 10, 237, 145, 54, 223, 95, 105, 11, 42, 160, 188, 27, 71, 24, 131, 51, 230, 76, 185, 62, 127, 156, 91, 234, 178, 13, 172, 73, 50, 86, 165, 87, 28, 96, 129, 217, 158, 114, 111, 8, 242, 136, 7, 201, 2, 41, 133, 104, 52, 94, 203, 162, 9, 124, 173, 37, 139, 70, 194, 115, 43, 161, 163, 205, 204, 72]","[46, 31, 3, 220, 117, 1, 206, 77, 164, 126, 169, 200, 194, 223, 80, 0, 137, 144, 246, 11, 92, 15, 29, 209, 138, 202, 100, 129, 51, 99, 27, 216, 147, 5, 177, 131, 244, 240, 163, 104, 124, 96, 2, 132, 112, 24, 36, 66, 114, 247, 190, 97, 182, 91, 253, 18, 186, 72, 207, 239, 153, 47, 183, 249, 233, 61, 155, 17, 192, 32, 184, 60, 205, 214, 39, 168, 154, 122, 69, 90, 217, 151, 48, 57, 235, 19, 176, 16, 135, 152, 119, 59, 102, 236, 67, 89, 224, 110, 128, 158, 162, 187, 62, 238, 157, 40, 52, 73, 23, 30, 230, 231, 136, 65, 83, 212, 56, 252, 133, 118, 225, 20, 21, 181, 215, 78, 120, 197]","[0, 2, 3, 11, 21, 24, 27, 30, 40, 46, 48, 51, 52, 56, 57, 60, 62, 65, 66, 72, 73, 77, 89, 91, 96, 100, 104, 114, 117, 120, 124, 129, 131, 132, 133, 136, 138, 144, 147, 155, 157, 158, 162, 163, 164, 168, 194, 205, 206, 217, 223, 230, 244, 246]"
44,"[89, 250, 21, 160, 71, 68, 188, 26, 192, 87, 54, 72, 162, 210, 254, 82, 149, 204, 77, 85, 75, 69, 63, 1, 35, 114, 62, 45, 109, 38, 224, 132, 147, 20, 172, 191, 70, 86, 84, 176, 27, 140, 99, 50, 226, 13, 64, 238, 104, 112, 74, 235, 105, 125, 164, 159, 40, 227, 234, 7, 228, 121, 128, 96, 156, 198, 163, 56, 37, 4, 44, 146, 73, 173, 168, 81, 80, 25, 52, 208, 16, 60, 245, 55, 138, 0, 53, 6, 102, 221, 95, 136, 24, 177, 142, 211, 233, 215, 33, 43, 110, 48, 17, 122, 83, 120, 248, 246, 103, 100, 223, 29, 141, 167, 115, 155, 135, 65, 126, 137, 134, 31, 219, 184, 255, 46, 212, 32]","[7, 12, 224, 207, 2, 178, 126, 25, 116, 166, 56, 124, 102, 113, 30, 85, 91, 94, 232, 101, 1, 123, 183, 180, 244, 212, 181, 78, 225, 36, 150, 93, 127, 10, 185, 76, 8, 67, 48, 249, 200, 128, 100, 218, 205, 238, 108, 66, 243, 240, 221, 158, 174, 246, 11, 51, 251, 217, 97, 253, 237, 168, 220, 165, 61, 175, 43, 190, 139, 39, 194, 28, 131, 72, 154, 192, 195, 161, 3, 230, 59, 199, 219, 104, 187, 6, 201, 197, 164, 233, 148, 34, 235, 15, 152, 50, 241, 19, 9, 18, 5, 88, 68, 86, 92, 73, 118, 26, 242, 119, 90, 42, 170, 142, 203, 186, 193, 236, 214, 35, 80, 89, 64, 252, 111, 22, 38, 206]","[1, 6, 7, 25, 26, 35, 38, 43, 48, 50, 56, 64, 68, 72, 73, 80, 85, 86, 89, 100, 102, 104, 126, 128, 142, 164, 168, 192, 212, 219, 221, 224, 233, 235, 238, 246]"
45,"[74, 9, 207, 177, 24, 175, 211, 229, 87, 222, 143, 252, 7, 134, 132, 5, 0, 250, 204, 59, 151, 201, 187, 155, 58, 118, 223, 67, 139, 146, 137, 88, 232, 172, 210, 153, 10, 77, 208, 178, 72, 39, 157, 46, 47, 221, 57, 82, 214, 159, 56, 119, 63, 168, 51, 79, 35, 125, 180, 103, 99, 147, 169, 26, 94, 148, 127, 171, 224, 212, 138, 251, 34, 198, 161, 135, 102, 238, 89, 20, 195, 209, 216, 239, 122, 234, 247, 140, 236, 182, 14, 116, 48, 129, 249, 206, 37, 170, 81, 131, 150, 245, 18, 235, 141, 106, 244, 144, 183, 154, 130, 33, 228, 52, 42, 101, 40, 230, 184, 97, 112, 133, 117, 191, 124, 50, 126, 108]","[25, 171, 74, 148, 207, 177, 237, 143, 59, 57, 150, 123, 35, 70, 40, 37, 19, 139, 144, 228, 122, 132, 155, 94, 211, 89, 138, 80, 160, 72, 226, 81, 14, 244, 252, 219, 233, 206, 126, 247, 20, 255, 184, 5, 198, 117, 169, 214, 120, 168, 108, 39, 232, 127, 216, 251, 182, 239, 51, 115, 201, 170, 79, 110, 209, 175, 88, 134, 26, 16, 87, 235, 50, 130, 77, 92, 161, 188, 137, 102, 31, 180, 124, 55, 56, 157, 222, 199, 119, 86, 32, 145, 61, 0, 68, 186, 42, 78, 142, 146, 34, 82, 103, 125, 221, 204, 128, 212, 97, 196, 141, 147, 241, 250, 236, 49, 191, 249, 99, 245, 44, 58, 7, 116, 159, 224, 63, 43]","[0, 5, 7, 14, 20, 26, 34, 35, 37, 39, 40, 42, 50, 51, 56, 57, 58, 59, 63, 72, 74, 77, 79, 81, 82, 87, 88, 89, 94, 97, 99, 102, 103, 108, 116, 117, 119, 122, 124, 125, 126, 127, 130, 132, 134, 137, 138, 139, 141, 143, 144, 146, 147, 148, 150, 155, 157, 159, 161, 168, 169, 170, 171, 175, 177, 180, 182, 184, 191, 198, 201, 204, 206, 207, 209, 211, 212, 214, 216, 221, 222, 224, 228, 232, 235, 236, 239, 244, 245, 247, 249, 250, 251, 252]"
46,"[25, 113, 164, 213, 27, 166, 238, 202, 149, 130, 30, 197, 127, 143, 174, 24, 240, 63, 89, 126, 139, 175, 26, 173, 35, 237, 169, 115, 16, 241, 234, 88, 68, 154, 137, 8, 190, 97, 110, 21, 224, 236, 170, 140, 124, 232, 13, 81, 57, 9, 228, 181, 94, 233, 69, 204, 7, 47, 18, 17, 128, 201, 251, 105, 243, 43, 176, 199, 117, 39, 46, 112, 100, 101, 82, 239, 3, 151, 62, 203, 98, 158, 119, 72, 231, 247, 210, 198, 165, 150, 83, 65, 152, 193, 12, 48, 96, 93, 15, 219, 19, 29, 131, 206, 54, 85, 230, 148, 211, 45, 120, 160, 122, 207, 161, 133, 147, 36, 156, 185, 6, 10, 90, 53, 87, 220, 1, 168]","[92, 179, 14, 39, 41, 63, 174, 148, 45, 21, 18, 182, 212, 40, 8, 197, 237, 66, 46, 126, 116, 79, 195, 5, 149, 137, 167, 43, 36, 95, 205, 246, 85, 211, 127, 163, 60, 133, 221, 47, 83, 42, 24, 156, 180, 164, 252, 183, 123, 124, 188, 19, 192, 208, 44, 161, 110, 51, 122, 86, 112, 11, 111, 218, 236, 177, 228, 17, 49, 58, 157, 125, 254, 239, 59, 186, 26, 229, 233, 73, 106, 37, 120, 217, 90, 10, 16, 215, 169, 87, 235, 64, 105, 159, 3, 6, 166, 160, 70, 154, 191, 220, 189, 81, 171, 115, 76, 196, 118, 253, 241, 200, 68, 74, 88, 248, 91, 1, 141, 72, 245, 146, 32, 34, 25, 244, 98, 53]","[1, 3, 6, 8, 10, 16, 17, 18, 19, 21, 24, 25, 26, 36, 39, 43, 45, 46, 47, 53, 63, 68, 72, 81, 83, 85, 87, 88, 90, 98, 105, 110, 112, 115, 120, 122, 124, 126, 127, 133, 137, 148, 149, 154, 156, 160, 161, 164, 166, 169, 174, 197, 211, 220, 228, 233, 236, 237, 239, 241]"
47,"[223, 221, 49, 78, 141, 190, 66, 147, 10, 34, 58, 134, 136, 244, 250, 65, 108, 181, 91, 44, 178, 0, 88, 85, 224, 100, 29, 98, 127, 39, 245, 219, 177, 242, 198, 77, 251, 8, 180, 193, 128, 133, 15, 42, 68, 73, 76, 225, 90, 164, 110, 195, 145, 56, 246, 131, 236, 35, 53, 95, 204, 212, 214, 18, 211, 20, 14, 87, 231, 158, 72, 184, 43, 57, 249, 59, 149, 218, 107, 240, 47, 167, 192, 227, 123, 109, 4, 50, 121, 142, 74, 96, 122, 202, 186, 169, 124, 111, 33, 137, 156, 126, 45, 89, 84, 38, 93, 37, 60, 28, 206, 187, 201, 171, 146, 222, 5, 116, 25, 30, 26, 54, 154, 41, 165, 159, 252, 148]","[41, 137, 138, 116, 65, 221, 240, 193, 202, 159, 36, 52, 120, 10, 68, 241, 156, 84, 71, 251, 227, 39, 5, 180, 28, 178, 66, 233, 177, 76, 165, 158, 34, 44, 190, 79, 123, 216, 128, 33, 219, 45, 72, 140, 184, 22, 176, 59, 56, 214, 194, 147, 38, 143, 26, 49, 0, 109, 89, 19, 98, 54, 247, 25, 69, 75, 64, 1, 42, 136, 108, 179, 226, 175, 80, 232, 231, 85, 201, 81, 58, 27, 228, 250, 87, 17, 154, 55, 14, 130, 30, 218, 131, 51, 127, 20, 198, 205, 107, 244, 187, 141, 53, 126, 167, 246, 96, 134, 62, 90, 225, 73, 245, 206, 100, 43, 70, 35, 78, 168, 212, 121, 252, 162, 220, 145, 47, 197]","[0, 5, 10, 14, 20, 25, 26, 28, 30, 33, 34, 35, 38, 39, 41, 42, 43, 44, 45, 47, 49, 53, 54, 56, 58, 59, 65, 66, 68, 72, 73, 76, 78, 84, 85, 87, 89, 90, 96, 98, 100, 107, 108, 109, 116, 121, 123, 126, 127, 128, 131, 134, 136, 137, 141, 145, 147, 154, 156, 158, 159, 165, 167, 177, 178, 180, 184, 187, 190, 193, 198, 201, 202, 206, 212, 214, 218, 219, 221, 225, 227, 231, 240, 244, 245, 246, 250, 251, 252]"
48,"[199, 71, 243, 12, 84, 29, 115, 128, 255, 7, 31, 175, 155, 49, 188, 39, 165, 180, 60, 97, 50, 206, 189, 85, 4, 65, 116, 185, 126, 46, 23, 114, 159, 2, 75, 101, 152, 63, 25, 88, 141, 147, 28, 229, 87, 125, 57, 173, 19, 54, 251, 77, 135, 113, 26, 191, 211, 86, 138, 208, 235, 66, 253, 151, 170, 131, 240, 194, 48, 62, 51, 55, 139, 80, 37, 160, 237, 91, 45, 92, 190, 148, 187, 98, 34, 58, 78, 216, 0, 119, 82, 111, 109, 1, 213, 90, 17, 79, 145, 18, 212, 112, 238, 94, 171, 225, 83, 169, 164, 89, 153, 27, 69, 42, 33, 100, 105, 195, 30, 32, 96, 76, 149, 120, 110, 202, 186, 95]","[93, 185, 78, 251, 128, 153, 4, 237, 16, 69, 148, 204, 233, 224, 84, 60, 213, 252, 126, 81, 196, 255, 244, 113, 31, 71, 98, 243, 77, 229, 19, 219, 49, 163, 138, 190, 159, 100, 183, 18, 23, 54, 51, 27, 234, 228, 231, 7, 58, 35, 2, 14, 130, 73, 162, 123, 157, 67, 175, 179, 248, 12, 253, 86, 217, 24, 85, 116, 68, 53, 74, 109, 95, 189, 182, 239, 250, 43, 191, 211, 26, 235, 207, 104, 197, 34, 240, 133, 142, 227, 174, 29, 42, 76, 247, 117, 226, 1, 202, 110, 83, 145, 63, 135, 212, 90, 170, 147, 129, 88, 242, 176, 38, 173, 57, 225, 55, 177, 156, 201, 238, 39, 3, 194, 152, 64, 120, 112]","[1, 2, 4, 7, 12, 18, 19, 23, 26, 27, 29, 31, 34, 39, 42, 49, 51, 54, 55, 57, 58, 60, 63, 69, 71, 76, 77, 78, 83, 84, 85, 86, 88, 90, 95, 98, 100, 109, 110, 112, 113, 116, 120, 126, 128, 135, 138, 145, 147, 148, 152, 153, 159, 170, 173, 175, 185, 189, 190, 191, 194, 202, 211, 212, 213, 225, 229, 235, 237, 238, 240, 243, 251, 253, 255]"
49,"[208, 165, 238, 245, 104, 110, 220, 233, 95, 70, 122, 60, 117, 244, 47, 135, 76, 154, 216, 97, 0, 180, 204, 255, 7, 181, 211, 75, 100, 72, 91, 49, 144, 124, 38, 232, 65, 251, 230, 137, 241, 50, 20, 193, 174, 80, 162, 224, 57, 142, 133, 253, 1, 202, 147, 148, 158, 191, 43, 41, 126, 85, 13, 27, 82, 222, 196, 182, 30, 68, 221, 141, 112, 134, 212, 2, 44, 113, 74, 176, 153, 52, 164, 9, 78, 48, 189, 121, 219, 84, 198, 105, 73, 163, 6, 127, 28, 225, 194, 145, 66, 160, 123, 203, 16, 71, 35, 101, 23, 33, 188, 90, 125, 237, 139, 63, 99, 40, 24, 128, 118, 248, 214, 69, 231, 177, 161, 39]","[237, 213, 89, 171, 0, 14, 161, 113, 85, 23, 198, 202, 110, 126, 172, 230, 244, 86, 50, 33, 155, 201, 60, 197, 95, 13, 196, 241, 5, 143, 163, 165, 49, 160, 131, 97, 53, 133, 106, 79, 231, 81, 117, 39, 121, 100, 246, 167, 1, 168, 26, 127, 66, 219, 224, 253, 195, 71, 139, 41, 211, 142, 235, 159, 10, 188, 124, 158, 254, 57, 20, 65, 73, 137, 189, 242, 16, 148, 226, 112, 52, 27, 58, 51, 22, 56, 122, 7, 218, 30, 11, 42, 150, 225, 250, 228, 68, 38, 144, 236, 40, 180, 104, 153, 99, 47, 233, 248, 61, 177, 2, 204, 232, 96, 193, 245, 6, 69, 107, 185, 88, 67, 216, 15, 173, 90, 72, 102]","[0, 1, 2, 6, 7, 13, 16, 20, 23, 27, 30, 33, 38, 39, 40, 41, 47, 49, 50, 52, 57, 60, 65, 66, 68, 69, 71, 72, 73, 85, 90, 95, 97, 99, 100, 104, 110, 112, 113, 117, 121, 122, 124, 126, 127, 133, 137, 139, 142, 144, 148, 153, 158, 160, 161, 163, 165, 177, 180, 188, 189, 193, 196, 198, 202, 204, 211, 216, 219, 224, 225, 230, 231, 232, 233, 237, 241, 244, 245, 248, 253]"
50,"[249, 29, 241, 55, 181, 41, 44, 67, 25, 149, 192, 228, 191, 164, 143, 96, 0, 112, 105, 193, 92, 220, 206, 119, 141, 30, 211, 214, 32, 196, 226, 243, 117, 85, 132, 78, 39, 59, 24, 238, 147, 171, 16, 5, 204, 110, 185, 202, 46, 144, 95, 199, 54, 186, 80, 73, 43, 120, 34, 62, 47, 135, 146, 205, 82, 166, 51, 72, 114, 231, 244, 248, 21, 33, 69, 131, 198, 79, 137, 174, 1, 45, 180, 18, 187, 63, 170, 107, 40, 179, 176, 50, 200, 88, 175, 203, 98, 35, 124, 84, 224, 13, 86, 28, 127, 14, 142, 115, 74, 128, 37, 104, 253, 77, 208, 100, 102, 157, 91, 81, 217, 255, 15, 168, 136, 195, 17, 230]","[213, 208, 193, 55, 98, 76, 28, 223, 180, 241, 69, 146, 152, 65, 226, 120, 53, 158, 99, 103, 170, 41, 111, 84, 62, 187, 175, 116, 154, 77, 96, 25, 26, 137, 91, 171, 2, 224, 173, 27, 86, 206, 5, 119, 32, 161, 85, 33, 68, 236, 23, 139, 196, 217, 13, 6, 14, 167, 124, 144, 88, 174, 172, 233, 219, 106, 133, 108, 44, 30, 122, 100, 190, 205, 129, 57, 74, 238, 29, 132, 189, 166, 239, 127, 204, 20, 228, 11, 63, 254, 186, 168, 56, 24, 47, 230, 0, 94, 207, 177, 34, 40, 73, 15, 3, 184, 66, 81, 147, 249, 50, 67, 220, 235, 141, 51, 181, 107, 102, 214, 198, 72, 78, 130, 80, 110, 8, 203]","[0, 5, 13, 14, 15, 24, 25, 28, 29, 30, 32, 33, 34, 40, 41, 44, 47, 50, 51, 55, 62, 63, 67, 69, 72, 73, 74, 77, 78, 80, 81, 84, 85, 86, 88, 91, 96, 98, 100, 102, 107, 110, 119, 120, 124, 127, 132, 137, 141, 144, 146, 147, 166, 168, 170, 171, 174, 175, 180, 181, 186, 187, 193, 196, 198, 203, 204, 205, 206, 208, 214, 217, 220, 224, 226, 228, 230, 238, 241, 249]"
51,"[71, 12, 53, 20, 90, 244, 87, 51, 238, 24, 126, 109, 11, 129, 40, 191, 103, 154, 167, 124, 43, 72, 41, 56, 99, 84, 42, 57, 235, 39, 215, 115, 199, 212, 149, 182, 61, 97, 22, 165, 125, 221, 185, 106, 138, 35, 63, 189, 1, 140, 116, 184, 83, 234, 159, 172, 176, 195, 78, 48, 174, 59, 114, 45, 194, 246, 218, 197, 29, 60, 26, 128, 204, 150, 156, 2, 14, 5, 69, 3, 8, 47, 33, 81, 4, 190, 148, 161, 229, 52, 21, 153, 111, 119, 163, 139, 117, 94, 67, 36, 232, 102, 9, 7, 101, 50, 188, 137, 132, 198, 44, 136, 216, 224, 170, 6, 169, 92, 219, 134, 177, 0, 118, 183, 88, 211, 147, 104]","[252, 212, 160, 236, 209, 109, 202, 143, 255, 105, 228, 106, 156, 54, 62, 229, 58, 82, 223, 139, 68, 49, 136, 126, 253, 254, 187, 52, 217, 129, 124, 19, 41, 99, 247, 190, 91, 173, 33, 40, 220, 18, 46, 115, 231, 107, 164, 240, 64, 29, 59, 83, 76, 70, 86, 179, 26, 237, 55, 251, 79, 174, 137, 71, 180, 225, 207, 241, 37, 140, 153, 192, 81, 51, 80, 93, 61, 16, 171, 249, 60, 155, 245, 53, 210, 121, 222, 43, 244, 130, 34, 213, 122, 248, 108, 10, 158, 239, 196, 98, 205, 185, 32, 238, 57, 120, 227, 145, 191, 21, 193, 141, 165, 206, 150, 89, 38, 250, 135, 24, 200, 157, 168, 0, 87, 39, 66, 214]","[0, 21, 24, 26, 29, 33, 39, 40, 41, 43, 51, 52, 53, 57, 59, 60, 61, 71, 81, 83, 87, 99, 106, 109, 115, 124, 126, 129, 136, 137, 139, 140, 150, 153, 156, 165, 174, 185, 190, 191, 212, 229, 238, 244]"
52,"[207, 108, 194, 18, 182, 186, 195, 117, 223, 222, 92, 132, 235, 40, 127, 107, 189, 228, 31, 101, 119, 97, 28, 42, 116, 155, 204, 93, 241, 89, 21, 149, 27, 252, 14, 202, 104, 206, 34, 163, 136, 177, 248, 209, 133, 237, 78, 190, 130, 16, 10, 70, 175, 11, 167, 60, 20, 148, 32, 154, 231, 110, 173, 103, 105, 114, 17, 123, 94, 251, 232, 214, 152, 96, 210, 122, 12, 64, 215, 75, 196, 69, 197, 98, 166, 63, 48, 128, 198, 181, 54, 184, 255, 246, 76, 1, 67, 147, 211, 52, 65, 129, 139, 137, 242, 143, 36, 102, 8, 22, 55, 200, 15, 165, 77, 185, 134, 58, 82, 39, 205, 124, 45, 157, 26, 191, 106, 49]","[115, 42, 104, 175, 26, 56, 86, 210, 65, 164, 233, 91, 228, 97, 223, 38, 47, 46, 10, 155, 102, 126, 108, 177, 133, 254, 161, 122, 227, 63, 176, 90, 83, 106, 225, 142, 78, 71, 22, 234, 206, 55, 64, 229, 17, 185, 103, 209, 128, 21, 93, 198, 131, 28, 25, 245, 179, 199, 189, 19, 62, 188, 138, 100, 134, 213, 201, 51, 193, 44, 75, 121, 214, 23, 170, 148, 12, 50, 3, 6, 238, 187, 68, 24, 207, 178, 89, 15, 72, 84, 145, 35, 172, 45, 251, 58, 31, 190, 174, 162, 252, 53, 4, 147, 1, 57, 80, 74, 76, 135, 79, 29, 219, 224, 95, 249, 0, 212, 194, 220, 73, 87, 173, 69, 247, 60, 248, 125]","[1, 10, 12, 15, 17, 21, 22, 26, 28, 31, 42, 45, 55, 58, 60, 63, 64, 65, 69, 75, 76, 78, 89, 93, 97, 102, 103, 104, 106, 108, 122, 128, 133, 134, 147, 148, 155, 173, 175, 177, 185, 189, 190, 194, 198, 206, 207, 209, 210, 214, 223, 228, 248, 251, 252]"
53,"[218, 189, 239, 222, 104, 165, 160, 85, 49, 72, 166, 177, 97, 130, 164, 147, 84, 172, 156, 106, 204, 255, 60, 51, 212, 221, 25, 196, 87, 79, 183, 149, 86, 200, 138, 181, 241, 113, 76, 224, 24, 73, 245, 63, 96, 159, 3, 48, 11, 137, 182, 57, 142, 112, 140, 31, 80, 95, 89, 211, 82, 23, 206, 227, 75, 167, 152, 151, 194, 173, 146, 135, 58, 64, 157, 213, 55, 192, 199, 188, 249, 56, 240, 186, 207, 145, 161, 148, 35, 108, 32, 78, 105, 66, 17, 109, 2, 118, 228, 4, 44, 65, 27, 125, 169, 208, 93, 10, 126, 6, 28, 36, 33, 144, 14, 155, 179, 232, 59, 154, 94, 237, 229, 54, 226, 114, 53, 201]","[201, 181, 225, 249, 65, 183, 159, 20, 162, 171, 212, 121, 241, 138, 38, 207, 194, 191, 30, 210, 143, 216, 45, 218, 245, 158, 50, 197, 209, 118, 66, 18, 117, 135, 125, 234, 48, 157, 43, 146, 92, 19, 208, 119, 86, 0, 128, 93, 29, 8, 104, 46, 74, 172, 17, 177, 75, 202, 87, 122, 79, 99, 195, 12, 69, 133, 186, 156, 80, 180, 51, 149, 170, 175, 124, 35, 68, 193, 243, 169, 107, 251, 2, 228, 15, 206, 63, 78, 23, 132, 10, 98, 154, 56, 40, 205, 3, 247, 178, 163, 14, 164, 88, 176, 130, 248, 114, 190, 81, 196, 55, 185, 33, 145, 165, 24, 214, 53, 82, 37, 96, 21, 221, 230, 77, 103, 168, 153]","[2, 3, 10, 14, 17, 23, 24, 33, 35, 48, 51, 53, 55, 56, 63, 65, 66, 75, 78, 79, 80, 82, 86, 87, 93, 96, 104, 114, 118, 125, 130, 135, 138, 145, 146, 149, 154, 156, 157, 159, 164, 165, 169, 172, 177, 181, 183, 186, 194, 196, 201, 206, 207, 208, 212, 218, 221, 228, 241, 245, 249]"
54,"[26, 21, 179, 2, 178, 236, 125, 167, 175, 150, 160, 218, 153, 1, 133, 91, 136, 112, 227, 67, 119, 97, 84, 131, 243, 65, 43, 188, 156, 108, 46, 33, 177, 142, 5, 115, 171, 211, 207, 121, 85, 10, 76, 149, 134, 203, 47, 198, 22, 73, 144, 27, 100, 143, 70, 234, 37, 32, 122, 140, 20, 225, 217, 190, 111, 71, 34, 135, 127, 75, 223, 226, 186, 185, 154, 99, 39, 53, 102, 132, 29, 101, 106, 15, 83, 244, 189, 155, 214, 36, 230, 251, 183, 77, 204, 38, 18, 42, 170, 197, 161, 195, 0, 69, 128, 90, 61, 123, 235, 16, 93, 107, 216, 68, 252, 95, 191, 166, 7, 172, 41, 253, 9, 199, 62, 221, 8, 120]","[5, 43, 162, 166, 67, 134, 12, 214, 13, 137, 149, 181, 188, 39, 7, 109, 139, 41, 237, 80, 210, 128, 60, 99, 154, 21, 100, 165, 204, 61, 226, 152, 83, 224, 192, 48, 88, 253, 55, 73, 132, 160, 126, 174, 219, 178, 11, 247, 122, 96, 143, 74, 69, 78, 133, 118, 10, 163, 213, 175, 177, 225, 25, 233, 199, 236, 6, 53, 54, 216, 52, 235, 56, 14, 158, 205, 92, 58, 142, 117, 108, 249, 114, 200, 66, 62, 120, 63, 238, 57, 153, 197, 230, 155, 182, 18, 2, 0, 141, 22, 27, 107, 159, 26, 82, 85, 90, 202, 30, 33, 16, 176, 211, 157, 76, 242, 189, 35, 196, 59, 40, 203, 91, 215, 212, 254, 187, 190]","[0, 2, 5, 7, 10, 16, 18, 21, 22, 26, 27, 33, 39, 41, 43, 53, 61, 62, 67, 69, 73, 76, 83, 85, 90, 91, 99, 100, 107, 108, 120, 122, 128, 132, 133, 134, 142, 143, 149, 153, 154, 155, 160, 166, 175, 177, 178, 188, 189, 190, 197, 199, 203, 204, 211, 214, 216, 225, 226, 230, 235, 236, 253]"
55,"[248, 222, 131, 31, 201, 184, 74, 197, 154, 88, 137, 226, 82, 217, 255, 171, 9, 6, 219, 57, 161, 145, 155, 100, 234, 106, 77, 191, 12, 37, 199, 229, 200, 85, 118, 22, 69, 47, 90, 177, 214, 183, 60, 46, 38, 20, 249, 81, 196, 190, 34, 108, 56, 231, 241, 114, 211, 54, 243, 207, 78, 232, 136, 61, 45, 179, 95, 27, 185, 122, 125, 192, 83, 59, 166, 18, 63, 208, 151, 170, 93, 147, 14, 115, 101, 120, 104, 167, 41, 29, 159, 25, 92, 213, 209, 216, 124, 17, 33, 188, 19, 10, 75, 181, 228, 142, 50, 66, 253, 238, 130, 0, 4, 113, 133, 84, 202, 21, 76, 129, 237, 138, 99, 91, 148, 127, 52, 157]","[166, 73, 172, 182, 45, 212, 186, 13, 226, 129, 195, 216, 134, 144, 47, 198, 162, 107, 219, 202, 165, 206, 220, 128, 109, 79, 35, 2, 126, 152, 239, 210, 121, 96, 204, 29, 39, 193, 163, 132, 247, 41, 249, 3, 189, 80, 36, 93, 88, 178, 175, 43, 141, 28, 22, 52, 174, 103, 11, 253, 177, 230, 223, 67, 5, 140, 252, 65, 15, 111, 55, 4, 112, 98, 68, 17, 246, 237, 218, 23, 217, 176, 34, 26, 100, 155, 250, 203, 48, 72, 51, 105, 145, 97, 173, 149, 236, 139, 54, 8, 214, 62, 194, 42, 241, 233, 85, 58, 242, 19, 180, 168, 151, 119, 244, 254, 225, 169, 49, 32, 238, 187, 24, 117, 59, 158, 84, 156]","[4, 17, 19, 22, 29, 34, 41, 45, 47, 52, 54, 59, 84, 85, 88, 93, 100, 129, 145, 151, 155, 166, 177, 202, 214, 216, 217, 219, 226, 237, 238, 241, 249, 253]"
56,"[87, 195, 76, 243, 23, 130, 241, 205, 215, 107, 117, 236, 252, 201, 79, 29, 103, 193, 210, 203, 80, 175, 143, 221, 174, 45, 2, 37, 36, 65, 116, 154, 5, 32, 240, 16, 225, 250, 124, 147, 25, 11, 151, 44, 242, 59, 19, 227, 249, 46, 224, 198, 128, 163, 92, 74, 142, 96, 12, 213, 83, 145, 49, 52, 105, 155, 67, 72, 35, 207, 159, 10, 56, 177, 211, 42, 248, 62, 123, 17, 78, 84, 244, 81, 218, 57, 104, 41, 73, 208, 8, 39, 66, 38, 141, 48, 157, 223, 217, 149, 136, 125, 133, 101, 111, 183, 43, 194, 22, 132, 34, 68, 165, 138, 184, 171, 127, 122, 181, 94, 20, 70, 53, 173, 232, 18, 89, 14]","[112, 105, 200, 252, 167, 71, 80, 99, 201, 203, 89, 182, 117, 243, 223, 225, 177, 79, 62, 173, 38, 110, 130, 86, 220, 57, 210, 239, 77, 207, 83, 24, 43, 124, 116, 133, 34, 114, 152, 135, 214, 254, 139, 233, 49, 184, 67, 199, 134, 150, 101, 171, 151, 174, 0, 216, 1, 44, 248, 98, 186, 149, 215, 168, 36, 48, 120, 95, 178, 96, 32, 190, 88, 118, 228, 229, 163, 192, 121, 21, 81, 146, 156, 108, 8, 61, 137, 53, 218, 230, 60, 23, 40, 250, 142, 14, 52, 31, 54, 56, 45, 5, 123, 245, 68, 27, 13, 249, 29, 138, 74, 176, 136, 155, 10, 238, 170, 213, 191, 232, 104, 158, 69, 59, 97, 47, 166, 189]","[5, 8, 10, 14, 23, 29, 32, 34, 36, 38, 43, 44, 45, 48, 49, 52, 53, 56, 57, 59, 62, 67, 68, 74, 79, 80, 81, 83, 89, 96, 101, 104, 105, 116, 117, 123, 124, 130, 133, 136, 138, 142, 149, 151, 155, 163, 171, 173, 174, 177, 184, 201, 203, 207, 210, 213, 215, 218, 223, 225, 232, 243, 248, 249, 250, 252]"
57,"[122, 222, 51, 117, 128, 41, 133, 136, 30, 149, 140, 37, 130, 47, 38, 107, 218, 48, 177, 84, 132, 213, 112, 36, 220, 67, 164, 90, 243, 26, 144, 254, 101, 61, 211, 118, 18, 57, 45, 99, 46, 234, 215, 111, 221, 131, 89, 188, 25, 141, 127, 71, 54, 148, 150, 85, 153, 207, 72, 102, 251, 171, 170, 96, 119, 92, 44, 185, 87, 236, 248, 50, 55, 80, 239, 192, 21, 70, 91, 125, 28, 223, 10, 142, 155, 20, 249, 181, 79, 9, 233, 199, 235, 83, 53, 43, 24, 88, 156, 166, 73, 81, 151, 16, 143, 98, 172, 174, 137, 78, 175, 49, 31, 56, 8, 193, 93, 3, 216, 86, 110, 252, 202, 146, 162, 6, 255, 109]","[73, 173, 100, 98, 99, 253, 86, 40, 164, 245, 171, 128, 5, 12, 218, 201, 63, 53, 181, 160, 229, 68, 153, 19, 147, 179, 233, 158, 212, 85, 197, 91, 42, 97, 0, 113, 39, 69, 204, 194, 64, 29, 228, 249, 200, 106, 183, 241, 220, 76, 244, 89, 15, 10, 105, 242, 232, 255, 166, 94, 108, 152, 9, 135, 95, 122, 22, 23, 170, 163, 189, 208, 178, 203, 167, 18, 214, 165, 168, 141, 58, 49, 154, 65, 44, 247, 33, 190, 92, 2, 77, 226, 195, 224, 180, 134, 60, 14, 117, 75, 32, 188, 74, 62, 126, 121, 4, 206, 37, 192, 176, 116, 198, 82, 34, 139, 110, 28, 182, 236, 26, 25, 54, 6, 38, 205, 84, 115]","[6, 9, 10, 18, 25, 26, 28, 37, 38, 44, 49, 53, 54, 73, 84, 85, 86, 89, 91, 92, 98, 99, 110, 117, 122, 128, 141, 153, 164, 166, 170, 171, 181, 188, 192, 218, 220, 233, 236, 249, 255]"
58,"[98, 26, 62, 141, 81, 214, 132, 127, 158, 160, 15, 195, 103, 153, 61, 56, 254, 228, 181, 152, 213, 130, 203, 197, 43, 251, 220, 71, 164, 2, 165, 194, 146, 46, 94, 76, 240, 5, 140, 65, 83, 134, 167, 151, 29, 52, 120, 136, 105, 128, 119, 112, 122, 217, 216, 123, 173, 116, 25, 107, 115, 74, 55, 226, 21, 60, 87, 96, 243, 176, 182, 20, 8, 200, 38, 121, 91, 129, 66, 64, 7, 222, 183, 187, 84, 209, 117, 114, 180, 199, 40, 168, 14, 33, 193, 102, 82, 13, 99, 162, 3, 234, 67, 31, 238, 19, 157, 93, 161, 17, 241, 9, 172, 125, 166, 135, 126, 24, 139, 48, 111, 92, 225, 106, 150, 50, 49, 95]","[189, 209, 166, 52, 130, 210, 78, 186, 216, 151, 107, 6, 95, 251, 93, 21, 17, 191, 22, 18, 87, 79, 164, 212, 106, 69, 84, 147, 105, 201, 56, 66, 127, 195, 31, 114, 185, 141, 10, 88, 99, 125, 197, 158, 57, 211, 145, 46, 167, 16, 104, 61, 118, 0, 204, 174, 225, 25, 113, 172, 128, 206, 24, 182, 26, 41, 171, 215, 40, 190, 50, 165, 74, 221, 110, 98, 1, 7, 250, 67, 27, 229, 47, 238, 112, 162, 157, 188, 246, 102, 83, 123, 135, 153, 9, 144, 239, 120, 134, 150, 187, 160, 176, 237, 208, 2, 129, 39, 217, 220, 60, 11, 76, 80, 228, 152, 33, 103, 91, 173, 82, 94, 117, 68, 81, 131, 5, 96]","[2, 5, 7, 9, 17, 21, 24, 25, 26, 31, 33, 40, 46, 50, 52, 56, 60, 61, 66, 67, 74, 76, 81, 82, 83, 84, 87, 91, 93, 94, 95, 96, 98, 99, 102, 103, 105, 106, 107, 112, 114, 117, 120, 123, 125, 127, 128, 129, 130, 134, 135, 141, 150, 151, 152, 153, 157, 158, 160, 162, 164, 165, 166, 167, 172, 173, 176, 182, 187, 195, 197, 209, 216, 217, 220, 225, 228, 238, 251]"
59,"[205, 159, 8, 189, 121, 29, 225, 76, 99, 6, 149, 37, 150, 216, 88, 203, 127, 58, 211, 93, 190, 16, 241, 47, 81, 195, 11, 129, 71, 178, 40, 122, 154, 89, 21, 20, 146, 96, 69, 73, 214, 39, 160, 38, 255, 219, 4, 84, 196, 184, 87, 209, 162, 103, 166, 42, 155, 2, 74, 238, 169, 145, 142, 168, 98, 163, 75, 35, 234, 179, 1, 67, 41, 111, 56, 107, 62, 23, 77, 152, 36, 104, 181, 172, 217, 156, 125, 180, 198, 210, 165, 183, 212, 64, 27, 100, 0, 220, 236, 106, 177, 112, 148, 113, 230, 199, 153, 24, 5, 90, 201, 60, 82, 19, 101, 65, 186, 18, 192, 171, 120, 229, 114, 70, 12, 237, 108, 30]","[49, 203, 179, 153, 67, 25, 93, 0, 40, 89, 218, 146, 70, 9, 120, 138, 104, 31, 41, 96, 80, 76, 106, 195, 69, 141, 197, 10, 130, 121, 215, 20, 65, 201, 187, 82, 237, 183, 226, 160, 191, 101, 139, 103, 102, 21, 100, 71, 108, 238, 16, 4, 44, 239, 174, 202, 241, 184, 37, 229, 214, 55, 131, 190, 231, 99, 36, 244, 161, 118, 17, 50, 39, 95, 137, 219, 177, 148, 149, 216, 129, 30, 233, 33, 147, 29, 236, 74, 230, 87, 19, 181, 88, 144, 166, 143, 105, 134, 196, 73, 27, 75, 18, 164, 109, 204, 113, 222, 59, 176, 245, 135, 171, 162, 119, 34, 156, 35, 173, 8, 167, 5, 248, 90, 126, 47, 81, 136]","[0, 4, 5, 8, 16, 18, 19, 20, 21, 27, 29, 30, 35, 36, 37, 39, 40, 41, 47, 65, 67, 69, 70, 71, 73, 74, 75, 76, 81, 82, 87, 88, 89, 90, 93, 96, 99, 100, 101, 103, 104, 106, 108, 113, 120, 121, 129, 146, 148, 149, 153, 156, 160, 162, 166, 171, 177, 179, 181, 183, 184, 190, 195, 196, 201, 203, 214, 216, 219, 229, 230, 236, 237, 238, 241]"
60,"[162, 122, 131, 126, 97, 205, 36, 83, 163, 15, 52, 232, 1, 93, 156, 200, 72, 245, 176, 189, 64, 207, 241, 77, 172, 65, 151, 228, 67, 40, 90, 21, 128, 130, 142, 124, 28, 68, 250, 174, 51, 179, 54, 31, 27, 248, 158, 238, 210, 20, 127, 252, 191, 16, 177, 8, 82, 63, 78, 84, 96, 199, 0, 37, 53, 29, 193, 114, 129, 19, 35, 111, 226, 13, 88, 14, 203, 227, 103, 175, 201, 17, 33, 121, 157, 55, 133, 94, 18, 143, 89, 188, 212, 148, 185, 71, 221, 135, 100, 106, 184, 236, 60, 87, 164, 233, 42, 117, 108, 239, 242, 196, 102, 46, 47, 118, 73, 186, 110, 182, 69, 149, 224, 198, 217, 234, 99, 225]","[31, 130, 4, 99, 187, 88, 213, 103, 205, 162, 93, 117, 192, 200, 225, 155, 236, 151, 242, 252, 181, 253, 89, 165, 7, 66, 10, 85, 37, 223, 204, 87, 77, 20, 138, 21, 241, 65, 0, 72, 13, 232, 206, 212, 108, 51, 133, 42, 18, 122, 209, 69, 142, 12, 248, 60, 16, 196, 239, 110, 136, 102, 164, 17, 221, 73, 55, 174, 226, 134, 220, 234, 27, 54, 145, 52, 158, 63, 71, 15, 104, 100, 157, 105, 149, 215, 36, 70, 128, 57, 97, 120, 129, 189, 111, 179, 78, 148, 34, 107, 240, 67, 19, 44, 47, 175, 40, 53, 125, 94, 182, 201, 191, 127, 245, 80, 166, 171, 118, 14, 217, 203, 186, 84, 227, 82, 83, 32]","[0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 27, 31, 36, 37, 40, 42, 47, 51, 52, 53, 54, 55, 60, 63, 65, 67, 69, 71, 72, 73, 77, 78, 82, 83, 84, 87, 88, 89, 93, 94, 97, 99, 100, 102, 103, 108, 110, 111, 117, 118, 122, 127, 128, 129, 130, 133, 142, 148, 149, 151, 157, 158, 162, 164, 174, 175, 179, 182, 186, 189, 191, 196, 200, 201, 203, 205, 212, 217, 221, 225, 226, 227, 232, 234, 236, 239, 241, 242, 245, 248, 252]"
61,"[247, 207, 102, 61, 8, 6, 189, 186, 219, 213, 148, 200, 98, 248, 129, 35, 109, 174, 240, 69, 106, 160, 146, 40, 48, 107, 224, 208, 175, 90, 122, 123, 209, 149, 62, 126, 110, 236, 85, 9, 68, 217, 121, 137, 24, 212, 50, 65, 203, 71, 187, 56, 76, 178, 222, 158, 156, 30, 143, 99, 54, 112, 111, 7, 130, 125, 183, 100, 53, 152, 227, 46, 211, 170, 167, 241, 5, 182, 173, 74, 23, 171, 80, 242, 243, 124, 27, 39, 221, 72, 190, 89, 153, 141, 215, 206, 231, 3, 0, 66, 17, 169, 44, 16, 25, 131, 210, 2, 154, 97, 192, 163, 179, 84, 63, 28, 14, 57, 250, 114, 161, 92, 191, 249, 75, 188, 103, 15]","[57, 235, 242, 204, 22, 77, 120, 15, 103, 183, 11, 222, 213, 124, 149, 115, 189, 107, 186, 36, 30, 17, 80, 239, 65, 44, 122, 50, 234, 54, 10, 87, 49, 26, 164, 152, 248, 176, 162, 39, 190, 203, 3, 27, 221, 137, 148, 105, 142, 109, 205, 66, 179, 0, 91, 14, 214, 151, 175, 254, 136, 6, 206, 131, 128, 73, 58, 19, 16, 38, 99, 42, 31, 225, 158, 188, 90, 134, 112, 219, 174, 171, 194, 25, 249, 212, 211, 228, 43, 60, 64, 102, 62, 146, 130, 97, 156, 53, 56, 170, 8, 29, 143, 55, 250, 100, 68, 106, 84, 138, 215, 180, 236, 198, 224, 231, 165, 114, 76, 226, 207, 35, 1, 246, 144, 23, 7, 126]","[0, 3, 6, 7, 8, 14, 15, 16, 17, 23, 25, 27, 30, 35, 39, 44, 50, 53, 54, 56, 57, 62, 65, 66, 68, 76, 80, 84, 90, 97, 99, 100, 102, 103, 106, 107, 109, 112, 114, 122, 124, 126, 130, 131, 137, 143, 146, 148, 149, 152, 156, 158, 170, 171, 174, 175, 179, 183, 186, 188, 189, 190, 203, 206, 207, 211, 212, 213, 215, 219, 221, 222, 224, 231, 236, 242, 248, 249, 250]"
62,"[208, 179, 190, 88, 105, 214, 166, 177, 2, 126, 157, 170, 51, 225, 158, 140, 142, 108, 80, 21, 143, 175, 40, 106, 81, 95, 115, 230, 69, 189, 249, 181, 94, 124, 121, 62, 103, 114, 9, 137, 152, 162, 90, 198, 195, 125, 82, 217, 71, 112, 244, 7, 8, 98, 30, 53, 49, 155, 251, 13, 97, 58, 18, 15, 20, 202, 64, 79, 70, 42, 240, 47, 39, 14, 73, 222, 224, 160, 24, 92, 104, 25, 72, 60, 44, 57, 133, 45, 43, 91, 176, 68, 29, 174, 83, 46, 3, 247, 17, 169, 110, 229, 220, 250, 149, 22, 194, 54, 116, 138, 163, 135, 172, 210, 241, 35, 151, 159, 215, 76, 48, 231, 66, 243, 197, 93, 218, 128]","[70, 38, 131, 66, 245, 25, 210, 61, 45, 173, 121, 34, 206, 23, 164, 150, 27, 51, 252, 106, 240, 204, 40, 32, 109, 226, 148, 2, 203, 238, 77, 134, 58, 190, 132, 144, 241, 179, 65, 230, 207, 158, 111, 123, 196, 198, 102, 172, 193, 175, 156, 36, 221, 153, 15, 98, 76, 8, 149, 220, 188, 222, 41, 53, 236, 182, 49, 95, 69, 214, 30, 233, 139, 39, 225, 84, 191, 119, 228, 26, 211, 19, 4, 89, 129, 120, 244, 5, 217, 199, 87, 146, 189, 22, 99, 154, 212, 64, 74, 93, 201, 213, 94, 200, 247, 163, 169, 197, 31, 162, 138, 168, 101, 14, 209, 85, 44, 42, 56, 78, 242, 232, 60, 127, 103, 80, 110, 12]","[2, 8, 14, 15, 22, 25, 30, 39, 40, 42, 44, 45, 49, 51, 53, 58, 60, 64, 66, 69, 70, 76, 80, 93, 94, 95, 98, 103, 106, 110, 121, 138, 149, 158, 162, 163, 169, 172, 175, 179, 189, 190, 197, 198, 210, 214, 217, 220, 222, 225, 230, 240, 241, 244, 247]"
63,"[242, 44, 174, 36, 133, 90, 72, 124, 95, 223, 182, 157, 16, 58, 85, 57, 167, 180, 196, 225, 220, 68, 156, 203, 6, 191, 15, 76, 117, 148, 131, 108, 70, 104, 13, 150, 123, 240, 151, 55, 132, 201, 89, 173, 98, 199, 237, 127, 186, 206, 253, 20, 140, 244, 61, 22, 27, 79, 38, 137, 49, 210, 154, 92, 97, 75, 112, 142, 252, 32, 159, 135, 51, 169, 39, 3, 200, 181, 62, 218, 195, 83, 143, 205, 19, 96, 26, 202, 236, 18, 145, 43, 184, 2, 197, 65, 121, 109, 229, 107, 221, 190, 47, 73, 8, 93, 35, 41, 129, 155, 211, 31, 146, 23, 78, 136, 149, 50, 81, 217, 162, 100, 185, 34, 77, 130, 71, 110]","[75, 136, 163, 146, 228, 117, 112, 154, 184, 78, 77, 164, 63, 242, 43, 62, 200, 193, 202, 93, 35, 87, 123, 20, 122, 26, 220, 14, 131, 165, 148, 185, 142, 172, 2, 8, 197, 237, 130, 240, 222, 1, 253, 86, 182, 196, 76, 84, 135, 36, 18, 73, 90, 114, 236, 143, 103, 229, 214, 167, 181, 232, 129, 157, 124, 221, 15, 34, 223, 206, 44, 38, 169, 16, 195, 89, 175, 141, 115, 6, 159, 186, 155, 210, 145, 180, 219, 42, 32, 156, 56, 137, 246, 11, 92, 65, 127, 201, 107, 108, 51, 91, 191, 179, 70, 58, 31, 10, 160, 94, 48, 3, 104, 208, 85, 27, 133, 194, 121, 71, 13, 151, 68, 96, 9, 162, 203, 41]","[2, 3, 6, 8, 13, 15, 16, 18, 20, 26, 27, 31, 32, 34, 35, 36, 38, 41, 43, 44, 51, 58, 62, 65, 68, 70, 71, 73, 75, 76, 77, 78, 85, 89, 90, 92, 93, 96, 104, 107, 108, 112, 117, 121, 123, 124, 127, 129, 130, 131, 133, 135, 136, 137, 142, 143, 145, 146, 148, 151, 154, 155, 156, 157, 159, 162, 167, 169, 180, 181, 182, 184, 185, 186, 191, 195, 196, 197, 200, 201, 202, 203, 206, 210, 220, 221, 223, 229, 236, 237, 240, 242, 253]"
64,"[122, 85, 222, 137, 183, 115, 151, 4, 68, 161, 72, 254, 251, 216, 13, 248, 141, 60, 153, 110, 90, 9, 191, 185, 36, 109, 174, 98, 166, 46, 38, 41, 242, 233, 203, 130, 143, 80, 17, 78, 99, 255, 34, 39, 89, 158, 40, 220, 120, 214, 69, 223, 45, 84, 202, 81, 65, 5, 207, 170, 201, 199, 239, 77, 209, 43, 25, 107, 11, 96, 102, 194, 240, 140, 2, 200, 111, 27, 87, 52, 1, 234, 6, 18, 227, 197, 21, 83, 106, 173, 231, 148, 70, 213, 159, 128, 224, 252, 103, 75, 145, 236, 92, 243, 135, 178, 226, 117, 86, 19, 55, 112, 14, 119, 57, 79, 28, 238, 94, 168, 164, 132, 229, 88, 190, 249, 37, 108]","[217, 163, 75, 35, 27, 242, 148, 124, 202, 137, 11, 254, 83, 28, 142, 67, 206, 55, 115, 86, 66, 48, 172, 245, 213, 98, 214, 65, 49, 77, 68, 127, 32, 39, 46, 237, 90, 9, 78, 203, 31, 149, 88, 225, 110, 246, 91, 160, 208, 135, 114, 20, 171, 192, 250, 167, 244, 164, 221, 113, 190, 226, 247, 29, 50, 57, 3, 232, 122, 52, 118, 168, 151, 14, 139, 117, 25, 21, 169, 64, 37, 58, 154, 188, 74, 161, 255, 182, 8, 10, 36, 56, 72, 165, 84, 136, 178, 17, 215, 22, 7, 26, 159, 183, 16, 235, 41, 177, 180, 179, 143, 43, 23, 44, 107, 71, 191, 195, 193, 85, 76, 62, 105, 59, 131, 243, 1, 150]","[1, 9, 11, 14, 17, 21, 25, 27, 28, 36, 37, 39, 41, 43, 46, 52, 55, 57, 65, 68, 72, 75, 77, 78, 83, 84, 85, 86, 88, 90, 98, 107, 110, 115, 117, 122, 135, 137, 143, 148, 151, 159, 161, 164, 168, 178, 183, 190, 191, 202, 203, 213, 214, 226, 242, 243, 254, 255]"
65,"[46, 31, 41, 76, 252, 144, 214, 109, 7, 193, 153, 99, 137, 170, 1, 140, 94, 149, 100, 221, 198, 56, 2, 136, 61, 119, 51, 60, 133, 254, 247, 224, 161, 82, 45, 199, 26, 255, 75, 85, 156, 248, 102, 101, 70, 229, 215, 12, 25, 241, 71, 186, 173, 192, 132, 62, 27, 36, 80, 239, 98, 96, 223, 246, 110, 121, 208, 207, 106, 95, 131, 124, 22, 57, 163, 164, 18, 35, 44, 23, 167, 81, 118, 225, 234, 103, 90, 33, 204, 177, 78, 114, 120, 151, 55, 104, 49, 77, 138, 185, 200, 92, 37, 157, 253, 128, 171, 29, 152, 211, 216, 145, 84, 218, 4, 3, 190, 182, 139, 11, 123, 117, 168, 19, 179, 107, 48, 162]","[83, 173, 51, 85, 217, 58, 250, 56, 69, 40, 8, 18, 57, 5, 129, 87, 147, 222, 188, 30, 144, 89, 184, 12, 59, 139, 43, 66, 15, 32, 201, 49, 31, 1, 218, 172, 181, 186, 228, 211, 74, 73, 153, 94, 127, 109, 195, 154, 75, 108, 236, 171, 206, 194, 116, 21, 166, 125, 10, 233, 246, 191, 62, 167, 65, 101, 151, 3, 148, 175, 170, 23, 105, 67, 149, 152, 248, 117, 24, 64, 46, 63, 130, 229, 237, 119, 251, 121, 252, 13, 86, 19, 213, 182, 238, 254, 92, 138, 189, 197, 111, 203, 126, 42, 240, 230, 68, 190, 204, 45, 38, 16, 88, 47, 11, 176, 20, 122, 25, 123, 17, 247, 209, 115, 220, 96, 192, 22]","[1, 3, 11, 12, 18, 19, 22, 23, 25, 31, 45, 46, 49, 51, 56, 57, 62, 75, 85, 92, 94, 96, 101, 109, 117, 119, 121, 123, 138, 139, 144, 149, 151, 152, 153, 167, 170, 171, 173, 182, 186, 190, 192, 204, 211, 218, 229, 246, 247, 248, 252, 254]"
66,"[89, 218, 185, 164, 114, 157, 141, 104, 148, 60, 234, 5, 73, 128, 26, 43, 171, 93, 91, 62, 244, 146, 100, 94, 109, 117, 34, 65, 90, 231, 124, 83, 14, 155, 125, 228, 127, 33, 163, 25, 129, 181, 174, 31, 106, 103, 32, 173, 84, 39, 241, 15, 169, 145, 233, 3, 123, 119, 160, 86, 120, 133, 247, 121, 2, 180, 229, 215, 107, 210, 116, 137, 110, 208, 152, 11, 205, 147, 80, 156, 194, 97, 52, 151, 59, 201, 167, 162, 4, 102, 144, 58, 245, 64, 252, 158, 55, 200, 239, 42, 198, 132, 16, 204, 46, 219, 143, 226, 192, 56, 206, 48, 214, 36, 191, 131, 150, 177, 136, 130, 232, 196, 24, 35, 225, 7, 72, 111]","[130, 92, 249, 210, 134, 95, 226, 102, 141, 247, 155, 64, 220, 26, 80, 160, 232, 159, 245, 229, 248, 191, 166, 183, 208, 136, 145, 129, 25, 42, 36, 132, 218, 217, 51, 231, 93, 164, 196, 176, 146, 152, 137, 239, 185, 66, 241, 215, 49, 103, 135, 175, 94, 110, 48, 13, 120, 44, 99, 128, 4, 7, 233, 173, 214, 234, 131, 158, 167, 197, 124, 83, 252, 91, 97, 23, 228, 148, 157, 27, 35, 165, 238, 121, 65, 168, 212, 52, 106, 211, 174, 89, 24, 127, 209, 72, 206, 243, 151, 180, 161, 111, 114, 235, 117, 73, 60, 162, 5, 169, 56, 242, 12, 79, 223, 195, 78, 201, 216, 34, 138, 33, 43, 3, 107, 59, 119, 171]","[3, 4, 5, 7, 24, 25, 26, 33, 34, 35, 36, 42, 43, 48, 52, 56, 59, 60, 64, 65, 72, 73, 80, 83, 89, 91, 93, 94, 97, 102, 103, 106, 107, 110, 111, 114, 117, 119, 120, 121, 124, 127, 128, 129, 130, 131, 132, 136, 137, 141, 145, 146, 148, 151, 152, 155, 157, 158, 160, 162, 164, 167, 169, 171, 173, 174, 180, 185, 191, 196, 201, 206, 208, 210, 214, 215, 218, 226, 228, 229, 231, 232, 233, 234, 239, 241, 245, 247, 252]"
67,"[79, 188, 139, 172, 53, 200, 153, 31, 60, 61, 156, 145, 215, 30, 90, 255, 248, 144, 147, 87, 182, 131, 196, 163, 243, 114, 120, 104, 242, 160, 224, 138, 107, 42, 164, 73, 99, 191, 125, 43, 25, 216, 94, 86, 148, 178, 194, 8, 212, 170, 204, 74, 82, 195, 254, 197, 106, 155, 158, 231, 228, 180, 124, 113, 143, 173, 140, 17, 58, 103, 12, 190, 189, 48, 203, 136, 27, 223, 142, 67, 51, 57, 102, 141, 64, 151, 121, 209, 133, 11, 183, 134, 177, 240, 137, 171, 72, 55, 16, 165, 135, 3, 47, 222, 122, 146, 205, 201, 33, 202, 18, 83, 157, 59, 95, 34, 52, 226, 97, 2, 29, 207, 150, 213, 192, 41, 44, 229]","[17, 159, 164, 181, 74, 34, 213, 121, 29, 43, 111, 75, 11, 152, 182, 0, 238, 195, 62, 145, 220, 243, 21, 41, 137, 202, 149, 201, 35, 154, 130, 97, 234, 98, 168, 70, 224, 215, 241, 94, 136, 138, 87, 68, 200, 40, 61, 49, 48, 175, 244, 245, 252, 187, 19, 210, 160, 6, 106, 249, 36, 88, 63, 14, 167, 96, 208, 38, 101, 163, 214, 89, 10, 132, 193, 194, 117, 123, 82, 144, 65, 1, 23, 166, 156, 12, 90, 4, 242, 248, 115, 24, 211, 196, 169, 165, 217, 126, 39, 16, 71, 229, 157, 46, 251, 198, 188, 66, 32, 15, 204, 93, 206, 100, 47, 236, 58, 255, 79, 172, 84, 127, 104, 221, 103, 83, 223, 51]","[11, 12, 16, 17, 29, 34, 41, 43, 47, 48, 51, 58, 61, 74, 79, 82, 83, 87, 90, 94, 97, 103, 104, 106, 121, 136, 137, 138, 144, 145, 156, 157, 160, 163, 164, 165, 172, 182, 188, 194, 195, 196, 200, 201, 202, 204, 213, 215, 223, 224, 229, 242, 243, 248, 255]"
68,"[27, 62, 111, 247, 156, 113, 97, 18, 215, 13, 160, 151, 199, 230, 167, 47, 28, 214, 40, 253, 59, 212, 61, 148, 218, 107, 140, 70, 172, 76, 185, 95, 126, 57, 246, 78, 254, 65, 25, 96, 71, 16, 94, 80, 15, 171, 72, 19, 10, 24, 3, 115, 188, 183, 118, 128, 31, 92, 180, 251, 63, 58, 60, 26, 30, 141, 198, 6, 133, 55, 211, 179, 0, 243, 74, 177, 64, 223, 112, 77, 75, 21, 184, 157, 125, 67, 101, 201, 209, 145, 36, 106, 81, 120, 1, 52, 9, 164, 105, 213, 196, 82, 135, 129, 149, 7, 200, 222, 226, 186, 91, 165, 237, 136, 20, 166, 161, 8, 147, 38, 207, 37, 234, 104, 150, 83, 73, 49]","[153, 55, 216, 33, 195, 82, 167, 173, 36, 245, 24, 23, 189, 102, 194, 249, 54, 241, 233, 86, 14, 110, 196, 87, 22, 57, 124, 13, 227, 207, 32, 170, 137, 242, 109, 41, 90, 97, 205, 2, 66, 9, 193, 56, 134, 44, 247, 121, 11, 203, 117, 231, 120, 230, 8, 221, 187, 60, 138, 159, 68, 176, 17, 101, 69, 127, 160, 174, 100, 103, 246, 12, 88, 228, 81, 204, 218, 220, 71, 99, 79, 64, 107, 212, 59, 53, 122, 51, 156, 191, 98, 236, 182, 244, 108, 89, 225, 154, 208, 52, 163, 84, 200, 85, 190, 112, 229, 143, 92, 133, 50, 29, 146, 238, 37, 226, 210, 206, 39, 178, 34, 43, 46, 123, 5, 147, 181, 38]","[8, 9, 13, 24, 36, 37, 38, 52, 55, 57, 59, 60, 64, 71, 81, 82, 92, 97, 101, 107, 112, 120, 133, 147, 156, 160, 167, 196, 200, 207, 212, 218, 226, 230, 246, 247]"
69,"[73, 21, 161, 32, 5, 130, 48, 78, 43, 11, 102, 186, 172, 46, 213, 188, 204, 98, 180, 22, 82, 142, 248, 83, 138, 202, 207, 25, 37, 167, 151, 71, 80, 219, 227, 86, 109, 252, 245, 45, 36, 169, 147, 175, 242, 247, 50, 157, 103, 193, 235, 222, 9, 59, 85, 89, 214, 53, 114, 20, 35, 170, 81, 143, 146, 243, 26, 68, 91, 65, 54, 218, 16, 236, 116, 174, 123, 154, 234, 145, 208, 69, 49, 215, 122, 126, 72, 87, 128, 239, 155, 33, 7, 115, 141, 93, 231, 56, 62, 41, 183, 144, 95, 199, 230, 88, 75, 139, 182, 197, 63, 134, 150, 195, 246, 162, 12, 163, 149, 15, 55, 100, 132, 189, 112, 232, 38, 28]","[63, 221, 61, 189, 252, 198, 14, 146, 246, 242, 41, 175, 140, 170, 116, 158, 135, 204, 186, 80, 156, 173, 219, 215, 128, 117, 169, 55, 110, 240, 159, 144, 58, 45, 120, 171, 51, 190, 137, 200, 168, 213, 253, 53, 142, 99, 207, 193, 96, 153, 67, 39, 81, 69, 4, 11, 161, 86, 237, 91, 68, 40, 78, 203, 233, 65, 244, 228, 172, 113, 187, 12, 194, 184, 202, 25, 88, 148, 62, 84, 208, 9, 178, 238, 220, 160, 214, 47, 147, 195, 15, 44, 212, 138, 76, 201, 209, 19, 35, 196, 255, 174, 192, 254, 199, 155, 56, 176, 90, 105, 133, 102, 104, 106, 21, 29, 118, 49, 234, 179, 166, 241, 82, 230, 151, 43, 239, 26]","[9, 11, 12, 15, 21, 25, 26, 35, 41, 43, 45, 49, 53, 55, 56, 62, 63, 65, 68, 69, 78, 80, 81, 82, 86, 88, 91, 102, 116, 128, 138, 142, 144, 146, 147, 151, 155, 161, 169, 170, 172, 174, 175, 186, 189, 193, 195, 199, 202, 204, 207, 208, 213, 214, 215, 219, 230, 234, 239, 242, 246, 252]"
70,"[95, 195, 213, 163, 33, 172, 98, 70, 4, 56, 83, 232, 227, 21, 89, 119, 5, 94, 197, 127, 223, 130, 108, 156, 199, 205, 63, 75, 206, 198, 170, 61, 136, 80, 160, 154, 147, 161, 209, 74, 228, 171, 186, 238, 13, 182, 251, 29, 179, 242, 178, 233, 104, 84, 46, 219, 49, 48, 105, 194, 114, 116, 222, 151, 153, 100, 117, 188, 193, 77, 14, 200, 248, 244, 102, 234, 62, 26, 162, 246, 87, 22, 67, 166, 155, 212, 236, 96, 68, 176, 34, 167, 134, 247, 144, 66, 69, 208, 53, 60, 164, 1, 73, 42, 132, 91, 216, 252, 231, 28, 146, 86, 52, 128, 8, 9, 131, 175, 183, 241, 250, 174, 152, 191, 12, 215, 220, 221]","[91, 81, 20, 122, 61, 21, 25, 112, 175, 113, 183, 255, 30, 108, 198, 121, 95, 168, 68, 163, 233, 82, 33, 160, 181, 232, 87, 169, 164, 230, 243, 127, 26, 2, 70, 226, 34, 74, 220, 193, 253, 155, 170, 117, 49, 139, 172, 240, 178, 162, 84, 100, 199, 4, 231, 53, 196, 40, 222, 57, 77, 156, 133, 63, 79, 105, 119, 130, 94, 215, 58, 48, 144, 75, 116, 10, 188, 97, 17, 206, 12, 132, 88, 131, 64, 227, 182, 234, 161, 96, 128, 15, 153, 76, 29, 194, 147, 9, 114, 83, 251, 51, 135, 89, 252, 6, 171, 213, 248, 52, 124, 24, 28, 242, 32, 145, 72, 99, 3, 179, 80, 134, 78, 67, 157, 46, 92, 152]","[4, 9, 12, 21, 26, 28, 29, 33, 34, 46, 48, 49, 52, 53, 61, 63, 67, 68, 70, 74, 75, 77, 80, 83, 84, 87, 89, 91, 94, 95, 96, 100, 105, 108, 114, 116, 117, 119, 127, 128, 130, 131, 132, 134, 144, 147, 152, 153, 155, 156, 160, 161, 162, 163, 164, 170, 171, 172, 175, 178, 179, 182, 183, 188, 193, 194, 198, 199, 206, 213, 215, 220, 222, 227, 231, 232, 233, 234, 242, 248, 251, 252]"
71,"[5, 50, 214, 206, 113, 163, 116, 245, 165, 186, 88, 228, 155, 89, 175, 2, 230, 212, 193, 108, 107, 48, 130, 176, 111, 106, 187, 125, 69, 117, 147, 172, 83, 208, 61, 1, 233, 136, 96, 58, 160, 44, 252, 36, 105, 41, 213, 149, 62, 164, 132, 255, 99, 153, 229, 118, 253, 34, 197, 224, 123, 151, 104, 145, 35, 95, 53, 30, 169, 64, 33, 236, 171, 237, 27, 205, 85, 66, 167, 238, 135, 65, 177, 76, 184, 77, 242, 221, 115, 146, 216, 217, 120, 98, 3, 200, 49, 114, 144, 159, 60, 188, 240, 195, 109, 192, 174, 43, 202, 196, 86, 198, 189, 78, 18, 156, 170, 215, 124, 25, 220, 45, 219, 127, 57, 227, 103, 21]","[225, 131, 209, 152, 230, 79, 47, 239, 63, 0, 238, 168, 224, 22, 134, 232, 162, 164, 218, 163, 173, 252, 254, 204, 251, 38, 27, 122, 26, 81, 190, 6, 9, 59, 108, 34, 3, 171, 32, 90, 31, 8, 28, 23, 75, 74, 228, 165, 247, 101, 56, 210, 113, 37, 84, 60, 241, 223, 212, 120, 226, 183, 112, 61, 11, 208, 148, 25, 245, 109, 5, 87, 44, 72, 243, 42, 203, 40, 118, 211, 19, 166, 138, 144, 234, 39, 244, 69, 52, 180, 248, 29, 194, 80, 124, 1, 151, 205, 193, 188, 64, 201, 58, 246, 7, 179, 4, 150, 149, 174, 92, 68, 161, 100, 200, 71, 160, 86, 130, 250, 50, 35, 97, 17, 91, 231, 126, 85]","[1, 3, 5, 25, 27, 34, 35, 44, 50, 58, 60, 61, 64, 69, 85, 86, 108, 109, 113, 118, 120, 124, 130, 144, 149, 151, 160, 163, 164, 165, 171, 174, 188, 193, 200, 205, 208, 212, 224, 228, 230, 238, 245, 252]"
72,"[221, 136, 42, 53, 109, 1, 51, 103, 113, 25, 33, 141, 10, 148, 250, 76, 175, 32, 94, 81, 213, 115, 118, 72, 219, 48, 74, 58, 142, 34, 150, 100, 220, 245, 46, 55, 95, 230, 167, 60, 7, 71, 105, 41, 82, 50, 3, 101, 56, 181, 247, 216, 145, 18, 196, 21, 47, 215, 203, 31, 114, 149, 17, 6, 16, 176, 228, 57, 116, 65, 238, 164, 61, 102, 119, 123, 191, 155, 170, 59, 84, 218, 9, 198, 15, 224, 29, 144, 184, 93, 67, 45, 192, 157, 234, 77, 152, 129, 173, 134, 19, 232, 49, 241, 147, 98, 174, 197, 26, 223, 24, 252, 185, 107, 227, 68, 117, 13, 200, 194, 190, 211, 14, 205, 231, 235, 70, 137]","[164, 99, 107, 117, 211, 251, 114, 26, 40, 97, 84, 60, 138, 147, 77, 230, 233, 98, 177, 13, 54, 110, 213, 245, 25, 195, 85, 42, 129, 156, 0, 113, 122, 142, 9, 170, 92, 46, 8, 18, 29, 246, 49, 243, 212, 141, 15, 192, 56, 191, 35, 95, 250, 108, 159, 23, 79, 100, 204, 154, 131, 165, 244, 182, 232, 180, 200, 111, 45, 22, 66, 36, 72, 4, 83, 139, 7, 158, 144, 102, 183, 160, 128, 223, 91, 229, 228, 58, 217, 241, 21, 106, 215, 197, 80, 253, 186, 133, 239, 136, 187, 17, 220, 234, 103, 20, 169, 61, 52, 155, 12, 39, 10, 43, 126, 64, 193, 227, 90, 73, 34, 14, 63, 71, 38, 189, 19, 132]","[7, 9, 10, 13, 14, 15, 17, 18, 19, 21, 25, 26, 29, 34, 42, 45, 46, 49, 56, 58, 60, 61, 71, 72, 77, 84, 95, 98, 100, 102, 103, 107, 113, 114, 117, 129, 136, 141, 142, 144, 147, 155, 164, 170, 191, 192, 197, 200, 211, 213, 215, 220, 223, 227, 228, 230, 232, 234, 241, 245, 250]"
73,"[168, 98, 228, 244, 44, 78, 37, 23, 50, 73, 254, 90, 134, 215, 25, 84, 156, 20, 95, 127, 190, 143, 30, 39, 140, 234, 123, 13, 86, 210, 62, 2, 14, 173, 255, 225, 132, 151, 180, 24, 224, 105, 96, 38, 76, 160, 233, 16, 128, 150, 223, 51, 120, 226, 0, 15, 252, 48, 110, 251, 113, 40, 213, 47, 185, 19, 9, 89, 43, 131, 35, 77, 183, 216, 109, 181, 83, 21, 157, 125, 31, 27, 107, 52, 201, 172, 235, 102, 74, 1, 179, 97, 207, 58, 218, 56, 117, 81, 69, 246, 115, 85, 64, 28, 135, 243, 142, 170, 196, 227, 68, 220, 169, 103, 4, 212, 6, 10, 71, 144, 198, 54, 8, 200, 22, 250, 82, 165]","[26, 106, 42, 72, 61, 116, 167, 18, 119, 49, 108, 205, 9, 193, 48, 30, 96, 240, 194, 80, 91, 94, 155, 232, 149, 146, 209, 25, 27, 121, 137, 148, 192, 7, 71, 236, 218, 63, 50, 239, 253, 93, 118, 126, 234, 136, 66, 2, 104, 175, 127, 76, 11, 10, 81, 223, 115, 88, 231, 235, 198, 31, 237, 154, 44, 37, 186, 220, 164, 147, 204, 65, 130, 5, 156, 191, 166, 124, 230, 162, 3, 212, 189, 57, 141, 77, 90, 62, 23, 99, 196, 17, 55, 153, 46, 8, 150, 73, 159, 35, 32, 70, 161, 210, 98, 68, 195, 217, 168, 170, 188, 176, 199, 202, 242, 145, 182, 177, 34, 86, 238, 139, 214, 92, 203, 114, 36, 171]","[2, 8, 9, 10, 23, 25, 27, 30, 31, 35, 37, 44, 48, 50, 62, 68, 71, 73, 76, 77, 81, 86, 90, 96, 98, 115, 127, 150, 156, 168, 170, 196, 198, 210, 212, 218, 220, 223, 234, 235]"
74,"[197, 1, 2, 190, 229, 221, 236, 194, 147, 241, 143, 171, 233, 13, 129, 77, 141, 179, 228, 40, 74, 19, 8, 248, 186, 174, 166, 182, 136, 79, 175, 90, 119, 115, 109, 111, 130, 67, 33, 242, 14, 206, 97, 112, 184, 18, 108, 224, 20, 22, 50, 45, 103, 76, 59, 71, 235, 159, 231, 86, 253, 148, 107, 56, 25, 142, 55, 24, 162, 146, 127, 84, 131, 94, 93, 38, 4, 200, 161, 126, 43, 213, 134, 208, 188, 7, 150, 240, 102, 11, 101, 28, 114, 113, 100, 21, 31, 211, 110, 57, 61, 44, 15, 106, 201, 48, 170, 10, 157, 124, 132, 87, 180, 123, 9, 125, 16, 244, 243, 133, 196, 98, 178, 23, 153, 138, 251, 128]","[100, 140, 126, 98, 249, 116, 119, 107, 185, 222, 214, 21, 17, 139, 55, 217, 33, 171, 136, 213, 204, 133, 161, 151, 64, 195, 70, 76, 131, 79, 158, 7, 188, 111, 197, 88, 172, 190, 108, 179, 180, 194, 174, 175, 101, 37, 61, 60, 102, 134, 248, 200, 62, 103, 239, 130, 146, 16, 6, 170, 152, 141, 150, 144, 74, 159, 233, 147, 90, 173, 39, 25, 94, 241, 122, 168, 71, 22, 177, 99, 142, 96, 225, 236, 156, 4, 181, 231, 11, 85, 84, 221, 18, 53, 124, 12, 105, 243, 245, 209, 2, 13, 66, 196, 169, 57, 251, 38, 40, 148, 93, 115, 54, 29, 43, 83, 252, 91, 52, 206, 125, 234, 67, 201, 220, 95, 41, 238]","[2, 4, 7, 11, 13, 16, 18, 21, 22, 25, 33, 38, 40, 43, 55, 57, 61, 67, 71, 74, 76, 79, 84, 90, 93, 94, 98, 100, 101, 102, 103, 107, 108, 111, 115, 119, 124, 125, 126, 130, 131, 133, 134, 136, 141, 142, 146, 147, 148, 150, 159, 161, 170, 171, 174, 175, 179, 180, 188, 190, 194, 196, 197, 200, 201, 206, 213, 221, 231, 233, 236, 241, 243, 248, 251]"
75,"[77, 51, 29, 200, 57, 32, 28, 188, 96, 113, 137, 204, 146, 235, 242, 93, 84, 56, 109, 63, 153, 219, 50, 171, 232, 41, 72, 251, 2, 227, 148, 58, 76, 21, 118, 14, 175, 173, 139, 40, 121, 39, 147, 230, 182, 144, 215, 174, 60, 180, 165, 0, 143, 16, 43, 222, 192, 34, 151, 30, 199, 103, 130, 190, 85, 150, 91, 228, 53, 178, 95, 217, 168, 97, 98, 189, 142, 193, 194, 163, 123, 117, 234, 47, 71, 141, 129, 102, 161, 248, 124, 152, 250, 54, 229, 19, 249, 164, 114, 156, 253, 3, 233, 18, 176, 197, 212, 223, 64, 67, 145, 70, 112, 52, 101, 115, 158, 44, 20, 255, 211, 23, 237, 87, 61, 8, 46, 83]","[38, 29, 220, 104, 206, 165, 246, 221, 126, 173, 222, 223, 148, 116, 53, 41, 43, 114, 241, 228, 23, 120, 129, 162, 59, 224, 57, 122, 156, 45, 183, 111, 54, 187, 215, 40, 58, 235, 35, 227, 247, 83, 219, 163, 20, 137, 239, 185, 3, 101, 196, 194, 108, 32, 67, 117, 8, 75, 204, 179, 86, 167, 55, 121, 39, 21, 152, 88, 177, 110, 84, 31, 47, 19, 142, 68, 65, 181, 184, 95, 202, 230, 205, 232, 42, 172, 89, 123, 132, 87, 158, 24, 7, 125, 138, 107, 73, 96, 208, 214, 70, 195, 237, 243, 105, 72, 143, 85, 66, 154, 115, 131, 186, 99, 134, 124, 25, 211, 1, 171, 36, 74, 113, 146, 189, 151, 119, 79]","[3, 8, 19, 20, 21, 23, 29, 32, 39, 40, 41, 43, 47, 53, 54, 57, 58, 67, 70, 72, 83, 84, 85, 87, 95, 96, 101, 113, 114, 115, 117, 121, 123, 124, 129, 137, 142, 143, 146, 148, 151, 152, 156, 158, 163, 165, 171, 173, 189, 194, 204, 211, 215, 219, 222, 223, 227, 228, 230, 232, 235, 237]"
76,"[73, 143, 50, 223, 38, 182, 76, 201, 119, 172, 142, 149, 65, 101, 140, 79, 35, 33, 47, 229, 165, 234, 215, 192, 173, 102, 136, 219, 78, 174, 111, 153, 162, 159, 122, 220, 178, 34, 147, 13, 133, 239, 245, 80, 68, 124, 171, 237, 110, 87, 199, 6, 154, 92, 69, 21, 17, 95, 99, 186, 37, 112, 202, 49, 134, 151, 22, 26, 39, 148, 118, 168, 98, 43, 139, 54, 114, 120, 10, 189, 167, 75, 81, 224, 66, 246, 163, 193, 9, 108, 161, 179, 51, 117, 197, 41, 24, 30, 255, 225, 194, 209, 125, 82, 19, 5, 187, 141, 230, 127, 100, 253, 218, 93, 184, 181, 158, 8, 106, 115, 7, 175, 105, 40, 48, 150, 14, 83]","[117, 72, 229, 209, 62, 173, 160, 170, 66, 221, 204, 138, 128, 41, 153, 25, 146, 145, 76, 102, 124, 123, 36, 32, 231, 185, 230, 166, 177, 11, 159, 19, 137, 254, 197, 196, 217, 144, 95, 251, 210, 38, 15, 20, 89, 135, 208, 129, 13, 140, 222, 106, 28, 199, 63, 86, 33, 121, 82, 47, 220, 184, 51, 85, 55, 49, 42, 171, 228, 107, 31, 61, 52, 104, 162, 195, 23, 237, 188, 53, 205, 136, 249, 12, 247, 167, 50, 172, 88, 201, 83, 59, 35, 9, 39, 1, 176, 130, 126, 116, 8, 40, 206, 29, 68, 0, 243, 200, 80, 152, 30, 227, 101, 198, 60, 216, 98, 4, 75, 100, 235, 139, 178, 232, 48, 103, 65, 161]","[8, 9, 13, 19, 30, 33, 35, 38, 39, 40, 41, 47, 48, 49, 50, 51, 65, 66, 68, 75, 76, 80, 82, 83, 95, 98, 100, 101, 102, 106, 117, 124, 136, 139, 140, 153, 159, 161, 162, 167, 171, 172, 173, 178, 184, 197, 199, 201, 209, 220, 229, 230, 237]"
77,"[160, 254, 249, 32, 122, 201, 152, 18, 132, 120, 242, 225, 141, 230, 7, 146, 199, 180, 127, 216, 12, 128, 30, 211, 179, 197, 17, 62, 137, 60, 98, 45, 80, 25, 207, 110, 241, 86, 50, 87, 54, 185, 8, 36, 40, 3, 150, 131, 186, 135, 237, 49, 23, 212, 229, 187, 74, 205, 82, 165, 58, 59, 156, 183, 22, 76, 130, 193, 178, 94, 107, 114, 47, 102, 245, 70, 15, 92, 63, 19, 196, 56, 41, 111, 208, 108, 52, 35, 190, 159, 123, 194, 144, 9, 75, 85, 239, 97, 153, 99, 168, 158, 188, 118, 95, 121, 84, 170, 33, 31, 105, 24, 145, 106, 147, 67, 214, 164, 21, 103, 10, 129, 115, 139, 5, 231, 133, 161]","[4, 206, 201, 87, 86, 191, 89, 110, 6, 84, 96, 16, 195, 111, 116, 12, 103, 1, 194, 72, 62, 31, 200, 213, 19, 51, 91, 240, 182, 25, 237, 225, 26, 56, 43, 8, 234, 70, 123, 104, 215, 98, 94, 55, 57, 217, 250, 3, 28, 150, 199, 204, 85, 196, 63, 90, 37, 223, 121, 38, 53, 125, 138, 142, 224, 46, 143, 140, 202, 236, 136, 151, 246, 177, 128, 17, 174, 15, 61, 255, 166, 18, 58, 164, 197, 109, 100, 227, 169, 157, 95, 222, 216, 209, 184, 112, 171, 71, 108, 176, 238, 11, 154, 42, 189, 252, 115, 13, 30, 134, 60, 124, 44, 167, 47, 173, 251, 119, 221, 78, 214, 27, 229, 178, 160, 253, 65, 79]","[3, 8, 12, 15, 17, 18, 19, 25, 30, 31, 47, 56, 58, 60, 62, 63, 70, 84, 85, 86, 87, 94, 95, 98, 103, 108, 110, 111, 115, 121, 123, 128, 150, 160, 164, 178, 194, 196, 197, 199, 201, 214, 216, 225, 229, 237]"
78,"[167, 43, 198, 217, 90, 94, 132, 183, 236, 172, 98, 195, 118, 121, 19, 30, 93, 235, 12, 201, 81, 4, 29, 148, 64, 2, 20, 27, 77, 86, 46, 17, 207, 152, 140, 14, 214, 245, 166, 71, 48, 175, 241, 44, 229, 184, 185, 219, 153, 124, 63, 95, 161, 155, 196, 133, 56, 209, 141, 34, 149, 151, 82, 38, 247, 85, 128, 96, 54, 25, 160, 120, 108, 127, 92, 252, 39, 254, 58, 68, 146, 249, 21, 41, 53, 80, 234, 136, 173, 142, 22, 18, 50, 224, 170, 104, 130, 197, 251, 176, 208, 206, 139, 47, 72, 116, 114, 194, 189, 212, 61, 177, 156, 144, 154, 200, 40, 119, 1, 76, 51, 15, 135, 158, 70, 138, 218, 230]","[152, 37, 128, 234, 23, 219, 28, 108, 254, 31, 19, 36, 173, 231, 217, 154, 122, 30, 235, 106, 248, 58, 212, 33, 26, 155, 123, 135, 158, 216, 16, 90, 4, 71, 15, 180, 185, 86, 238, 196, 85, 65, 195, 104, 161, 214, 151, 107, 13, 126, 125, 247, 134, 236, 43, 96, 119, 245, 177, 109, 98, 87, 11, 47, 174, 178, 60, 181, 78, 226, 127, 191, 81, 64, 82, 242, 80, 164, 75, 246, 250, 102, 156, 218, 77, 194, 241, 160, 171, 232, 157, 150, 175, 130, 120, 103, 51, 101, 53, 144, 118, 39, 94, 2, 32, 227, 167, 210, 52, 153, 48, 179, 211, 42, 3, 131, 69, 129, 165, 132, 67, 20, 139, 0, 184, 62, 46, 73]","[2, 4, 15, 19, 20, 30, 39, 43, 46, 47, 48, 51, 53, 58, 64, 71, 77, 80, 81, 82, 85, 86, 90, 94, 96, 98, 104, 108, 118, 119, 120, 127, 128, 130, 132, 135, 139, 144, 151, 152, 153, 154, 155, 156, 158, 160, 161, 167, 173, 175, 177, 184, 185, 194, 195, 196, 212, 214, 217, 218, 219, 234, 235, 236, 241, 245, 247, 254]"
79,"[71, 63, 10, 149, 82, 115, 8, 20, 162, 142, 199, 120, 218, 214, 210, 174, 42, 163, 105, 197, 116, 238, 50, 55, 154, 26, 16, 134, 220, 117, 64, 194, 87, 157, 173, 213, 180, 196, 2, 241, 123, 60, 159, 183, 83, 225, 191, 107, 126, 90, 39, 27, 224, 86, 146, 53, 219, 138, 128, 170, 91, 156, 187, 85, 176, 160, 54, 236, 45, 179, 204, 141, 161, 145, 30, 21, 195, 244, 182, 110, 245, 52, 114, 235, 240, 51, 246, 32, 155, 175, 88, 84, 7, 136, 234, 168, 131, 73, 229, 100, 254, 185, 217, 221, 148, 121, 216, 206, 188, 43, 34, 76, 125, 144, 253, 104, 94, 66, 230, 99, 127, 227, 208, 97, 178, 232, 31, 250]","[63, 5, 208, 115, 39, 132, 21, 113, 154, 180, 210, 231, 44, 146, 179, 186, 36, 238, 165, 243, 200, 84, 254, 61, 149, 51, 34, 241, 62, 20, 189, 91, 2, 82, 118, 100, 137, 198, 105, 121, 70, 174, 14, 83, 71, 148, 246, 69, 116, 150, 89, 136, 76, 46, 57, 98, 177, 250, 43, 32, 197, 104, 45, 52, 194, 68, 159, 18, 96, 54, 139, 8, 25, 224, 245, 42, 90, 242, 253, 126, 171, 12, 151, 216, 161, 114, 211, 67, 201, 176, 170, 128, 199, 26, 109, 135, 244, 124, 223, 234, 66, 58, 190, 162, 131, 214, 140, 73, 187, 41, 173, 202, 182, 252, 125, 64, 196, 193, 10, 95, 9, 13, 147, 178, 106, 217, 50, 205]","[2, 8, 10, 20, 21, 26, 32, 34, 39, 42, 43, 45, 50, 51, 52, 54, 63, 64, 66, 71, 73, 76, 82, 83, 84, 90, 91, 100, 104, 105, 114, 115, 116, 121, 125, 126, 128, 131, 136, 146, 148, 149, 154, 159, 161, 162, 170, 173, 174, 176, 178, 179, 180, 182, 187, 194, 196, 197, 199, 208, 210, 214, 216, 217, 224, 234, 238, 241, 244, 245, 246, 250, 253, 254]"
80,"[53, 193, 196, 87, 121, 49, 167, 74, 113, 168, 14, 126, 100, 52, 96, 133, 132, 172, 80, 68, 7, 111, 22, 243, 42, 95, 166, 94, 12, 173, 142, 93, 128, 191, 23, 57, 101, 3, 106, 141, 207, 158, 189, 175, 13, 112, 183, 150, 127, 34, 29, 198, 194, 103, 24, 26, 82, 56, 225, 9, 105, 240, 222, 115, 20, 8, 138, 174, 206, 90, 62, 186, 97, 31, 204, 131, 159, 137, 170, 226, 114, 129, 61, 209, 60, 180, 212, 47, 162, 125, 169, 30, 233, 55, 165, 6, 184, 35, 199, 255, 134, 107, 5, 152, 215, 177, 66, 37, 120, 21, 241, 124, 251, 148, 41, 192, 157, 40, 201, 118, 64, 220, 236, 117, 69, 135, 77, 164]","[150, 172, 131, 62, 194, 134, 63, 82, 117, 189, 127, 253, 207, 185, 170, 69, 7, 46, 232, 105, 193, 241, 43, 51, 159, 101, 141, 96, 164, 31, 87, 209, 125, 166, 100, 199, 129, 118, 240, 21, 66, 169, 48, 238, 97, 60, 55, 247, 59, 0, 12, 165, 177, 204, 93, 58, 50, 61, 47, 49, 126, 111, 64, 128, 179, 231, 57, 157, 220, 65, 77, 80, 78, 99, 115, 144, 39, 244, 138, 135, 52, 90, 27, 25, 23, 103, 20, 73, 10, 130, 29, 124, 94, 227, 212, 175, 158, 113, 95, 230, 14, 234, 222, 120, 252, 206, 1, 190, 140, 30, 3, 237, 24, 36, 42, 112, 152, 226, 74, 167, 201, 215, 40, 168, 22, 191, 34, 9]","[3, 7, 9, 12, 14, 20, 21, 22, 23, 24, 29, 30, 31, 34, 40, 42, 47, 49, 52, 55, 57, 60, 61, 62, 64, 66, 69, 74, 77, 80, 82, 87, 90, 93, 94, 95, 96, 97, 100, 101, 103, 105, 111, 112, 113, 115, 117, 118, 120, 124, 125, 126, 127, 128, 129, 131, 134, 135, 138, 141, 150, 152, 157, 158, 159, 164, 165, 166, 167, 168, 169, 170, 172, 175, 177, 189, 191, 193, 194, 199, 201, 204, 206, 207, 209, 212, 215, 220, 222, 226, 240, 241]"
81,"[122, 218, 255, 78, 64, 244, 88, 99, 101, 183, 35, 93, 20, 236, 56, 157, 70, 19, 60, 77, 11, 85, 196, 197, 69, 90, 195, 135, 202, 113, 118, 172, 213, 224, 29, 72, 249, 25, 108, 112, 58, 75, 240, 94, 221, 92, 175, 91, 252, 128, 38, 203, 200, 247, 27, 208, 250, 41, 169, 48, 121, 239, 166, 46, 179, 206, 205, 152, 146, 97, 13, 22, 192, 164, 162, 80, 76, 156, 26, 168, 187, 248, 142, 12, 52, 161, 237, 253, 109, 233, 3, 31, 151, 133, 114, 18, 23, 130, 153, 149, 4, 147, 126, 137, 176, 180, 106, 7, 10, 74, 243, 30, 131, 150, 0, 51, 117, 98, 220, 125, 198, 217, 228, 160, 193, 144, 134, 158]","[14, 211, 147, 6, 186, 27, 134, 155, 77, 37, 65, 34, 150, 10, 4, 2, 115, 195, 218, 138, 73, 213, 222, 180, 187, 235, 193, 229, 89, 233, 91, 54, 214, 209, 153, 46, 17, 103, 83, 234, 129, 161, 249, 239, 237, 196, 41, 171, 64, 253, 85, 11, 181, 84, 90, 245, 159, 59, 21, 170, 177, 116, 104, 148, 208, 45, 119, 183, 28, 133, 61, 248, 51, 29, 48, 108, 143, 5, 96, 52, 106, 165, 136, 42, 13, 39, 75, 250, 242, 125, 216, 95, 87, 44, 212, 200, 189, 123, 107, 122, 162, 207, 190, 74, 231, 240, 128, 226, 230, 141, 78, 247, 243, 58, 36, 174, 191, 157, 168, 68, 63, 97, 23, 50, 164, 194, 252, 20]","[4, 10, 11, 13, 20, 23, 27, 29, 41, 46, 48, 51, 52, 58, 64, 74, 75, 77, 78, 85, 90, 91, 97, 106, 108, 122, 125, 128, 133, 134, 147, 150, 153, 157, 161, 162, 164, 168, 180, 183, 187, 193, 195, 196, 200, 208, 213, 218, 233, 237, 239, 240, 243, 247, 248, 249, 250, 252, 253]"
82,"[158, 147, 85, 53, 35, 103, 30, 155, 111, 36, 139, 87, 91, 28, 220, 186, 239, 164, 75, 203, 191, 146, 222, 79, 125, 250, 167, 223, 27, 54, 58, 196, 80, 229, 26, 76, 136, 83, 50, 177, 120, 182, 157, 32, 121, 254, 143, 245, 71, 246, 23, 230, 199, 106, 37, 130, 131, 151, 96, 137, 231, 134, 107, 135, 174, 127, 38, 13, 59, 179, 189, 145, 208, 184, 166, 154, 141, 17, 9, 110, 16, 227, 34, 39, 1, 224, 202, 4, 77, 228, 5, 212, 185, 68, 140, 180, 93, 104, 232, 144, 49, 152, 29, 173, 101, 81, 194, 205, 129, 210, 124, 176, 86, 74, 25, 117, 66, 178, 61, 201, 119, 219, 200, 181, 112, 97, 198, 42]","[92, 218, 55, 208, 193, 59, 189, 213, 34, 150, 177, 20, 159, 15, 71, 247, 237, 238, 10, 172, 18, 41, 225, 102, 72, 161, 198, 73, 184, 134, 126, 96, 86, 248, 245, 22, 58, 62, 115, 23, 240, 28, 69, 209, 109, 255, 136, 99, 204, 44, 215, 42, 64, 70, 3, 13, 162, 217, 85, 214, 234, 45, 90, 207, 12, 88, 25, 82, 169, 164, 43, 246, 95, 104, 63, 84, 108, 80, 7, 79, 49, 78, 127, 21, 91, 24, 107, 180, 188, 142, 165, 253, 226, 235, 224, 103, 168, 61, 222, 32, 233, 101, 6, 187, 35, 216, 190, 128, 39, 163, 170, 192, 154, 166, 30, 242, 132, 46, 116, 33, 52, 89, 98, 236, 243, 17, 195, 183]","[13, 17, 23, 25, 28, 30, 32, 34, 35, 39, 42, 49, 58, 59, 61, 71, 79, 80, 85, 86, 91, 96, 101, 103, 104, 107, 127, 134, 136, 154, 164, 166, 177, 180, 184, 189, 198, 208, 222, 224, 245, 246]"
83,"[9, 111, 16, 236, 44, 121, 177, 93, 132, 151, 213, 6, 109, 203, 230, 201, 66, 181, 168, 13, 18, 30, 202, 216, 183, 199, 176, 200, 105, 42, 173, 245, 161, 188, 195, 102, 71, 144, 97, 26, 49, 197, 250, 61, 184, 94, 27, 77, 76, 209, 226, 90, 98, 170, 101, 7, 92, 75, 52, 186, 22, 62, 45, 59, 122, 85, 108, 56, 24, 215, 223, 115, 210, 175, 74, 155, 82, 158, 140, 19, 46, 193, 67, 80, 214, 10, 43, 156, 130, 243, 189, 1, 221, 206, 91, 2, 48, 73, 113, 137, 128, 169, 225, 222, 36, 60, 229, 47, 191, 55, 136, 127, 134, 153, 100, 119, 172, 57, 83, 159, 244, 248, 192, 187, 4, 25, 190, 240]","[235, 36, 128, 147, 184, 100, 204, 92, 93, 197, 170, 90, 236, 158, 183, 222, 209, 17, 48, 22, 26, 127, 20, 132, 176, 233, 200, 150, 55, 195, 8, 210, 216, 243, 81, 45, 155, 144, 129, 98, 203, 37, 213, 113, 140, 159, 181, 101, 31, 30, 18, 24, 99, 238, 122, 27, 164, 62, 16, 208, 248, 167, 207, 199, 85, 1, 231, 118, 228, 225, 19, 82, 148, 104, 49, 135, 121, 191, 25, 202, 67, 54, 11, 111, 77, 226, 91, 255, 189, 240, 68, 201, 149, 120, 245, 151, 142, 125, 44, 143, 6, 86, 206, 133, 174, 40, 7, 247, 76, 41, 33, 47, 187, 97, 160, 168, 145, 250, 108, 130, 241, 136, 52, 94, 105, 61, 66, 230]","[1, 6, 7, 16, 18, 19, 22, 24, 25, 26, 27, 30, 36, 44, 45, 47, 48, 49, 52, 55, 61, 62, 66, 67, 76, 77, 82, 85, 90, 91, 92, 93, 94, 97, 98, 100, 101, 105, 108, 111, 113, 121, 122, 127, 128, 130, 132, 136, 140, 144, 151, 155, 158, 159, 168, 170, 176, 181, 183, 184, 187, 189, 191, 195, 197, 199, 200, 201, 202, 203, 206, 209, 210, 213, 216, 222, 225, 226, 230, 236, 240, 243, 245, 248, 250]"
84,"[83, 105, 15, 77, 189, 213, 46, 190, 134, 234, 254, 73, 232, 151, 81, 1, 37, 85, 164, 93, 16, 143, 54, 228, 176, 247, 118, 203, 221, 86, 168, 103, 80, 101, 43, 11, 3, 194, 90, 69, 210, 67, 237, 49, 45, 162, 96, 34, 76, 79, 208, 204, 242, 58, 13, 51, 22, 147, 124, 60, 121, 135, 82, 52, 249, 193, 173, 200, 112, 230, 158, 160, 115, 71, 119, 215, 250, 88, 114, 53, 41, 236, 84, 231, 206, 59, 122, 175, 74, 97, 255, 21, 156, 104, 169, 141, 110, 233, 92, 212, 146, 64, 78, 133, 205, 48, 33, 12, 0, 35, 226, 14, 132, 187, 61, 216, 5, 106, 155, 152, 163, 4, 201, 20, 120, 24, 27, 128]","[51, 22, 185, 127, 203, 246, 237, 133, 31, 54, 193, 93, 72, 145, 83, 52, 82, 107, 249, 61, 220, 25, 216, 104, 59, 1, 34, 197, 149, 23, 135, 123, 78, 236, 180, 224, 74, 40, 163, 189, 157, 9, 192, 15, 117, 222, 18, 29, 144, 207, 119, 122, 114, 150, 183, 24, 199, 8, 154, 5, 85, 254, 204, 241, 103, 165, 247, 194, 43, 96, 223, 158, 140, 97, 177, 2, 7, 116, 187, 162, 75, 118, 239, 109, 242, 46, 244, 131, 186, 188, 12, 206, 99, 47, 210, 53, 68, 91, 77, 124, 218, 10, 20, 35, 14, 184, 232, 173, 49, 86, 128, 87, 84, 4, 80, 178, 175, 67, 198, 3, 16, 221, 255, 160, 228, 182, 234, 201]","[1, 3, 4, 5, 12, 14, 15, 16, 20, 22, 24, 34, 35, 43, 46, 49, 51, 52, 53, 54, 59, 61, 67, 74, 77, 78, 80, 82, 83, 84, 85, 86, 93, 96, 97, 103, 104, 114, 118, 119, 122, 124, 128, 133, 135, 158, 160, 162, 163, 173, 175, 187, 189, 193, 194, 201, 203, 204, 206, 210, 216, 221, 228, 232, 234, 236, 237, 242, 247, 249, 254, 255]"
85,"[92, 30, 150, 106, 205, 143, 89, 62, 231, 63, 86, 119, 5, 66, 204, 209, 167, 28, 108, 147, 23, 69, 153, 162, 164, 14, 55, 90, 88, 29, 118, 148, 171, 180, 145, 253, 238, 215, 41, 199, 61, 75, 9, 202, 131, 242, 31, 227, 72, 240, 217, 109, 73, 239, 140, 241, 2, 194, 77, 95, 24, 195, 48, 187, 50, 160, 121, 96, 100, 65, 82, 128, 222, 44, 154, 243, 146, 101, 93, 105, 110, 193, 183, 250, 225, 78, 151, 18, 47, 22, 11, 117, 216, 188, 49, 26, 36, 0, 33, 6, 85, 179, 184, 57, 255, 114, 220, 247, 53, 173, 102, 125, 172, 12, 126, 139, 221, 133, 141, 212, 165, 149, 7, 3, 144, 59, 35, 191]","[63, 90, 116, 243, 184, 136, 226, 139, 216, 199, 10, 84, 95, 182, 132, 97, 147, 89, 138, 160, 221, 83, 77, 66, 236, 141, 194, 140, 131, 146, 49, 206, 61, 87, 47, 75, 45, 54, 249, 125, 150, 119, 190, 208, 235, 81, 59, 9, 52, 15, 166, 126, 48, 164, 153, 134, 26, 38, 204, 3, 8, 17, 240, 121, 112, 36, 103, 0, 102, 172, 250, 238, 218, 6, 113, 124, 60, 76, 71, 193, 41, 14, 91, 154, 178, 186, 144, 98, 101, 88, 253, 223, 50, 108, 133, 123, 174, 185, 156, 152, 201, 31, 167, 237, 127, 4, 114, 255, 227, 85, 148, 162, 30, 33, 248, 62, 96, 177, 22, 209, 58, 57, 73, 183, 173, 11, 247, 217]","[0, 3, 6, 9, 11, 14, 22, 26, 30, 31, 33, 36, 41, 47, 48, 49, 50, 57, 59, 61, 62, 63, 66, 73, 75, 77, 85, 88, 89, 90, 95, 96, 101, 102, 108, 114, 119, 121, 125, 126, 131, 133, 139, 140, 141, 144, 146, 147, 148, 150, 153, 154, 160, 162, 164, 167, 172, 173, 183, 184, 193, 194, 199, 204, 209, 216, 217, 221, 227, 238, 240, 243, 247, 250, 253, 255]"
86,"[226, 15, 208, 173, 64, 66, 110, 202, 33, 112, 74, 225, 177, 252, 105, 80, 47, 246, 182, 248, 16, 7, 237, 189, 25, 19, 1, 140, 104, 222, 79, 26, 94, 203, 97, 126, 174, 160, 238, 48, 188, 96, 151, 135, 103, 196, 124, 198, 84, 82, 136, 159, 27, 115, 253, 109, 90, 199, 190, 86, 53, 101, 169, 142, 167, 77, 68, 43, 168, 17, 31, 83, 114, 236, 205, 11, 234, 59, 42, 98, 23, 176, 197, 55, 215, 217, 134, 184, 113, 207, 49, 30, 214, 32, 57, 209, 5, 243, 228, 156, 254, 186, 133, 181, 85, 144, 128, 163, 155, 146, 200, 158, 171, 162, 10, 250, 121, 120, 12, 220, 40, 152, 130, 111, 249, 212, 193, 178]","[229, 140, 47, 176, 150, 73, 134, 89, 118, 157, 44, 163, 209, 18, 92, 217, 234, 192, 101, 222, 202, 223, 31, 63, 164, 75, 102, 53, 48, 83, 211, 219, 179, 119, 96, 187, 232, 180, 141, 122, 21, 28, 195, 153, 72, 186, 206, 9, 129, 145, 81, 148, 233, 65, 242, 91, 210, 0, 52, 19, 178, 116, 196, 212, 221, 43, 137, 247, 58, 239, 138, 62, 146, 131, 35, 54, 95, 41, 175, 112, 204, 29, 34, 143, 236, 45, 240, 218, 144, 226, 139, 15, 6, 166, 20, 167, 106, 213, 99, 14, 121, 4, 1, 165, 189, 93, 151, 39, 154, 231, 36, 184, 100, 255, 161, 181, 56, 149, 37, 185, 147, 22, 17, 194, 252, 49, 70, 224]","[1, 15, 17, 19, 31, 43, 47, 48, 49, 53, 83, 96, 101, 112, 121, 134, 140, 144, 146, 151, 163, 167, 176, 178, 181, 184, 186, 189, 196, 202, 209, 212, 217, 222, 226, 234, 236, 252]"
87,"[232, 96, 28, 45, 44, 19, 24, 129, 49, 27, 111, 109, 237, 50, 245, 17, 60, 200, 90, 145, 91, 54, 120, 73, 81, 59, 101, 115, 103, 139, 174, 180, 110, 67, 221, 61, 218, 143, 196, 104, 173, 80, 225, 22, 147, 235, 108, 86, 236, 113, 185, 164, 247, 171, 201, 211, 242, 43, 222, 74, 135, 75, 202, 83, 48, 138, 176, 51, 119, 11, 5, 165, 224, 182, 189, 220, 253, 188, 41, 217, 46, 118, 249, 56, 149, 57, 14, 152, 126, 64, 47, 114, 15, 199, 121, 216, 195, 223, 102, 35, 97, 32, 95, 85, 107, 36, 175, 58, 166, 4, 156, 153, 230, 18, 133, 89, 78, 100, 243, 132, 227, 0, 42, 20, 183, 226, 167, 112]","[194, 230, 112, 78, 30, 52, 32, 90, 27, 42, 71, 61, 191, 83, 164, 202, 208, 29, 56, 176, 25, 130, 68, 64, 118, 66, 123, 167, 21, 147, 209, 174, 210, 190, 163, 155, 206, 224, 221, 158, 10, 117, 166, 110, 105, 82, 192, 50, 254, 143, 70, 6, 33, 136, 92, 31, 236, 138, 3, 24, 170, 44, 131, 88, 151, 89, 93, 36, 146, 18, 228, 172, 231, 133, 28, 137, 182, 195, 248, 94, 19, 240, 76, 65, 127, 212, 237, 62, 187, 197, 139, 2, 162, 60, 108, 116, 213, 34, 140, 53, 100, 46, 169, 252, 159, 196, 38, 72, 7, 128, 26, 47, 156, 200, 111, 1, 91, 80, 253, 148, 40, 79, 142, 20, 141, 23, 178, 106]","[18, 19, 20, 24, 27, 28, 32, 36, 42, 44, 46, 47, 50, 56, 60, 61, 64, 78, 80, 83, 89, 90, 91, 100, 108, 110, 111, 112, 118, 133, 138, 139, 143, 147, 156, 164, 166, 167, 174, 176, 182, 195, 196, 200, 202, 221, 224, 230, 236, 237, 253]"
88,"[163, 37, 59, 83, 95, 242, 175, 250, 67, 185, 135, 66, 228, 157, 53, 105, 60, 43, 180, 219, 164, 99, 78, 162, 179, 29, 82, 130, 30, 189, 36, 199, 57, 144, 26, 19, 155, 160, 87, 223, 126, 134, 64, 46, 0, 159, 24, 212, 55, 54, 100, 85, 48, 96, 65, 178, 10, 6, 149, 109, 112, 153, 169, 4, 232, 137, 139, 9, 237, 102, 16, 113, 1, 77, 90, 84, 238, 63, 49, 91, 146, 123, 25, 121, 94, 235, 131, 211, 114, 214, 174, 45, 209, 231, 129, 103, 72, 142, 172, 246, 251, 61, 190, 215, 218, 140, 208, 161, 33, 191, 50, 197, 40, 88, 222, 220, 27, 31, 71, 234, 184, 230, 249, 217, 150, 76, 154, 115]","[212, 24, 21, 219, 152, 161, 229, 197, 18, 39, 168, 160, 189, 231, 232, 0, 98, 246, 132, 149, 209, 67, 77, 122, 173, 195, 140, 146, 102, 94, 105, 54, 66, 91, 109, 249, 221, 188, 139, 194, 162, 63, 182, 95, 57, 50, 199, 90, 52, 53, 25, 178, 154, 191, 96, 167, 130, 206, 86, 157, 253, 114, 254, 227, 183, 116, 71, 58, 185, 218, 126, 72, 4, 5, 43, 112, 135, 108, 151, 223, 73, 205, 169, 247, 234, 220, 186, 100, 87, 19, 20, 215, 147, 17, 193, 10, 175, 83, 103, 210, 192, 55, 222, 180, 136, 76, 142, 250, 2, 213, 30, 113, 107, 242, 163, 36, 14, 79, 137, 99, 104, 22, 64, 141, 29, 144, 251, 164]","[0, 4, 10, 19, 24, 25, 29, 30, 36, 43, 50, 53, 54, 55, 57, 63, 64, 66, 67, 71, 72, 76, 77, 83, 87, 90, 91, 94, 95, 96, 99, 100, 102, 103, 105, 109, 112, 113, 114, 126, 130, 135, 137, 139, 140, 142, 144, 146, 149, 154, 157, 160, 161, 162, 163, 164, 169, 175, 178, 180, 185, 189, 191, 197, 199, 209, 212, 215, 218, 219, 220, 222, 223, 231, 232, 234, 242, 246, 249, 250, 251]"
89,"[21, 132, 215, 96, 71, 240, 242, 193, 165, 154, 100, 158, 59, 75, 249, 79, 62, 81, 29, 9, 47, 144, 241, 112, 101, 129, 185, 27, 151, 16, 37, 84, 90, 92, 38, 78, 145, 152, 160, 203, 87, 167, 236, 122, 6, 1, 250, 220, 105, 124, 88, 103, 175, 52, 243, 33, 162, 178, 217, 164, 137, 174, 20, 76, 5, 189, 72, 91, 17, 210, 58, 104, 26, 148, 182, 173, 131, 39, 231, 65, 139, 70, 15, 150, 234, 36, 82, 63, 126, 186, 18, 48, 41, 206, 11, 163, 247, 128, 177, 55, 196, 40, 181, 111, 32, 223, 66, 89, 30, 183, 60, 28, 74, 190, 85, 255, 141, 212, 166, 0, 176, 146, 208, 50, 86, 93, 31, 169]","[148, 62, 51, 34, 16, 108, 91, 103, 169, 173, 207, 231, 102, 101, 63, 72, 183, 234, 163, 9, 115, 243, 52, 160, 5, 215, 50, 150, 6, 70, 180, 121, 134, 213, 0, 75, 158, 199, 87, 100, 96, 76, 241, 193, 170, 25, 21, 110, 248, 74, 190, 20, 88, 120, 165, 222, 112, 210, 64, 212, 58, 166, 217, 159, 39, 152, 90, 19, 26, 57, 98, 176, 253, 242, 85, 53, 139, 132, 200, 92, 136, 174, 137, 182, 71, 144, 79, 29, 227, 141, 240, 107, 17, 128, 93, 175, 95, 238, 109, 105, 36, 195, 89, 247, 143, 185, 77, 145, 187, 13, 154, 196, 84, 38, 122, 255, 48, 99, 179, 60, 22, 226, 205, 27, 116, 33, 124, 118]","[0, 5, 6, 9, 16, 17, 20, 21, 26, 27, 29, 33, 36, 38, 39, 48, 50, 52, 58, 60, 62, 63, 70, 71, 72, 74, 75, 76, 79, 84, 85, 87, 88, 89, 90, 91, 92, 93, 96, 100, 101, 103, 105, 112, 122, 124, 128, 132, 137, 139, 141, 144, 145, 148, 150, 152, 154, 158, 160, 163, 165, 166, 169, 173, 174, 175, 176, 182, 183, 185, 190, 193, 196, 210, 212, 215, 217, 231, 234, 240, 241, 242, 243, 247, 255]"
90,"[19, 173, 102, 86, 253, 56, 25, 135, 250, 126, 91, 137, 146, 45, 100, 209, 12, 1, 238, 225, 109, 208, 43, 184, 116, 93, 84, 89, 136, 92, 186, 166, 8, 99, 62, 159, 90, 32, 160, 153, 194, 37, 110, 83, 108, 80, 247, 192, 204, 72, 224, 185, 113, 81, 234, 33, 187, 44, 22, 123, 24, 76, 133, 164, 17, 2, 206, 47, 105, 107, 52, 36, 223, 176, 53, 236, 3, 71, 88, 249, 60, 245, 198, 4, 195, 151, 121, 175, 58, 154, 241, 213, 196, 205, 18, 57, 203, 248, 20, 42, 134, 49, 211, 95, 142, 230, 150, 15, 118, 233, 131, 190, 178, 28, 177, 39, 170, 148, 174, 183, 70, 179, 127, 104, 152, 157, 252, 54]","[59, 222, 183, 169, 127, 24, 158, 85, 204, 152, 115, 37, 136, 1, 47, 72, 198, 214, 252, 75, 8, 98, 148, 0, 248, 108, 167, 23, 49, 62, 182, 99, 199, 64, 225, 162, 41, 84, 22, 220, 137, 56, 65, 42, 7, 101, 6, 68, 138, 243, 126, 143, 34, 106, 18, 172, 224, 30, 102, 231, 55, 161, 170, 173, 97, 189, 200, 124, 219, 160, 44, 46, 146, 235, 73, 79, 70, 234, 40, 150, 33, 10, 216, 178, 88, 230, 129, 105, 166, 197, 19, 14, 109, 87, 63, 147, 181, 188, 130, 168, 236, 104, 195, 95, 144, 254, 51, 132, 128, 202, 26, 131, 134, 5, 193, 61, 107, 226, 60, 4, 17, 139, 89, 103, 58, 180, 39, 93]","[1, 4, 8, 17, 18, 19, 22, 24, 33, 37, 39, 42, 44, 47, 49, 56, 58, 60, 62, 70, 72, 84, 88, 89, 93, 95, 99, 102, 104, 105, 107, 108, 109, 126, 127, 131, 134, 136, 137, 146, 148, 150, 152, 160, 166, 170, 173, 178, 183, 195, 198, 204, 224, 225, 230, 234, 236, 248, 252]"
91,"[231, 211, 124, 114, 87, 47, 213, 139, 111, 176, 113, 103, 163, 20, 202, 174, 54, 53, 158, 19, 0, 29, 39, 179, 105, 6, 102, 92, 122, 226, 232, 162, 195, 233, 194, 67, 12, 91, 149, 65, 35, 27, 245, 48, 125, 108, 248, 96, 78, 64, 198, 30, 38, 212, 9, 109, 200, 132, 61, 217, 100, 94, 24, 76, 119, 218, 249, 222, 57, 237, 106, 28, 137, 210, 167, 135, 49, 225, 110, 221, 240, 214, 189, 14, 242, 123, 16, 21, 165, 197, 82, 68, 4, 26, 36, 42, 193, 80, 169, 55, 129, 89, 5, 33, 10, 227, 157, 229, 219, 187, 13, 126, 185, 160, 17, 152, 107, 171, 177, 164, 146, 25, 51, 70, 203, 97, 18, 134]","[149, 39, 217, 47, 10, 250, 233, 216, 110, 17, 213, 37, 67, 229, 26, 121, 164, 120, 102, 153, 48, 61, 249, 169, 27, 195, 14, 38, 174, 51, 45, 28, 176, 97, 244, 170, 254, 232, 80, 142, 139, 187, 9, 179, 163, 41, 103, 106, 210, 82, 202, 138, 167, 159, 194, 24, 251, 46, 15, 215, 171, 162, 86, 81, 150, 208, 214, 172, 184, 243, 52, 35, 11, 0, 70, 87, 8, 245, 13, 247, 131, 219, 207, 91, 115, 75, 33, 177, 96, 64, 132, 122, 211, 137, 130, 19, 22, 36, 218, 156, 178, 116, 114, 29, 49, 125, 57, 20, 168, 175, 95, 78, 212, 225, 73, 111, 124, 248, 12, 205, 99, 112, 152, 65, 222, 92, 113, 54]","[0, 9, 10, 12, 13, 14, 17, 19, 20, 24, 26, 27, 28, 29, 33, 35, 36, 38, 39, 47, 48, 49, 51, 54, 57, 61, 64, 65, 67, 70, 78, 80, 82, 87, 91, 92, 96, 97, 102, 103, 106, 110, 111, 113, 114, 122, 124, 125, 132, 137, 139, 149, 152, 162, 163, 164, 167, 169, 171, 174, 176, 177, 179, 187, 194, 195, 202, 210, 211, 212, 213, 214, 217, 218, 219, 222, 225, 229, 232, 233, 245, 248, 249]"
92,"[108, 79, 59, 203, 244, 151, 39, 102, 112, 219, 128, 35, 11, 235, 251, 153, 240, 12, 32, 125, 211, 164, 218, 3, 229, 139, 34, 16, 189, 253, 236, 127, 57, 143, 7, 114, 48, 146, 252, 72, 197, 18, 38, 93, 199, 176, 149, 0, 129, 109, 170, 115, 222, 180, 220, 183, 15, 56, 230, 2, 107, 106, 168, 100, 111, 152, 136, 210, 173, 30, 86, 88, 204, 123, 28, 166, 226, 137, 84, 9, 228, 26, 36, 67, 122, 82, 20, 117, 160, 174, 175, 22, 171, 154, 5, 55, 40, 165, 50, 184, 94, 52, 195, 144, 51, 121, 14, 198, 8, 196, 120, 187, 21, 233, 249, 163, 75, 140, 142, 110, 224, 97, 25, 178, 104, 132, 54, 73]","[241, 182, 195, 229, 235, 249, 174, 98, 142, 51, 233, 94, 97, 196, 7, 6, 106, 203, 186, 251, 175, 34, 11, 56, 42, 156, 171, 40, 140, 149, 14, 152, 180, 22, 36, 128, 215, 93, 198, 189, 204, 114, 20, 104, 243, 90, 109, 39, 116, 236, 177, 224, 139, 117, 38, 83, 253, 165, 153, 58, 162, 99, 154, 239, 143, 244, 252, 57, 66, 48, 81, 183, 50, 199, 70, 222, 88, 84, 62, 144, 138, 9, 5, 120, 173, 218, 54, 150, 202, 32, 16, 220, 193, 64, 67, 49, 105, 230, 212, 110, 100, 226, 107, 44, 238, 169, 194, 201, 181, 125, 21, 141, 2, 240, 4, 0, 146, 115, 59, 250, 46, 72, 65, 78, 221, 3, 37, 136]","[0, 2, 3, 5, 7, 9, 11, 14, 16, 20, 21, 22, 32, 34, 36, 38, 39, 40, 48, 50, 51, 54, 56, 57, 59, 67, 72, 84, 88, 93, 94, 97, 100, 104, 106, 107, 109, 110, 114, 115, 117, 120, 125, 128, 136, 139, 140, 142, 143, 144, 146, 149, 152, 153, 154, 165, 171, 173, 174, 175, 180, 183, 189, 195, 196, 198, 199, 203, 204, 218, 220, 222, 224, 226, 229, 230, 233, 235, 236, 240, 244, 249, 251, 252, 253]"
93,"[59, 142, 165, 194, 103, 159, 67, 84, 41, 116, 151, 157, 20, 222, 217, 135, 97, 60, 40, 29, 108, 6, 225, 22, 8, 68, 83, 224, 255, 209, 250, 182, 207, 58, 14, 130, 70, 66, 133, 39, 214, 77, 80, 132, 90, 45, 96, 153, 88, 65, 134, 120, 146, 232, 74, 49, 95, 124, 5, 156, 136, 223, 176, 198, 28, 181, 100, 127, 64, 10, 190, 203, 73, 240, 110, 38, 140, 188, 242, 93, 125, 75, 152, 158, 46, 197, 19, 117, 33, 178, 227, 115, 123, 101, 121, 251, 154, 236, 113, 37, 91, 162, 34, 53, 109, 216, 143, 48, 138, 106, 253, 50, 56, 89, 85, 184, 220, 51, 218, 185, 26, 206, 241, 183, 175, 169, 27, 245]","[214, 30, 120, 101, 162, 126, 167, 182, 193, 109, 96, 83, 90, 3, 146, 69, 179, 129, 84, 213, 68, 184, 40, 119, 206, 176, 152, 21, 192, 29, 150, 72, 144, 139, 220, 174, 180, 57, 191, 202, 2, 200, 246, 231, 199, 147, 195, 127, 161, 56, 170, 238, 80, 12, 27, 212, 141, 128, 92, 219, 243, 148, 164, 172, 241, 158, 64, 81, 208, 151, 14, 248, 115, 177, 88, 252, 181, 201, 215, 225, 15, 35, 7, 205, 60, 228, 85, 54, 42, 61, 10, 137, 6, 36, 18, 229, 67, 204, 169, 66, 47, 166, 132, 31, 65, 138, 253, 190, 91, 19, 48, 103, 232, 133, 226, 125, 16, 249, 32, 185, 49, 175, 244, 70, 247, 230, 183, 99]","[6, 10, 14, 19, 27, 29, 40, 48, 49, 56, 60, 64, 65, 66, 67, 68, 70, 80, 83, 84, 85, 88, 90, 91, 96, 101, 103, 109, 115, 120, 125, 127, 132, 133, 138, 146, 151, 152, 158, 162, 169, 175, 176, 181, 182, 183, 184, 185, 190, 206, 214, 220, 225, 232, 241, 253]"
94,"[76, 151, 57, 73, 22, 42, 24, 90, 186, 139, 200, 16, 128, 137, 160, 74, 165, 152, 38, 66, 21, 156, 205, 54, 198, 102, 81, 176, 122, 202, 61, 65, 159, 111, 167, 179, 226, 8, 109, 210, 10, 101, 146, 1, 185, 4, 112, 204, 192, 168, 115, 41, 108, 121, 64, 217, 119, 44, 103, 83, 241, 232, 148, 30, 55, 104, 140, 199, 173, 71, 120, 9, 93, 164, 123, 252, 191, 78, 97, 184, 117, 182, 126, 189, 197, 143, 194, 247, 37, 26, 222, 45, 15, 105, 216, 27, 62, 39, 246, 130, 153, 98, 47, 174, 135, 82, 35, 13, 234, 211, 40, 209, 195, 110, 154, 229, 17, 89, 106, 29, 99, 178, 113, 136, 212, 18, 129, 158]","[204, 55, 90, 175, 210, 196, 98, 149, 191, 31, 95, 239, 13, 110, 9, 236, 33, 82, 41, 67, 102, 136, 153, 217, 121, 85, 166, 74, 108, 123, 216, 176, 246, 158, 64, 180, 6, 198, 119, 186, 107, 147, 241, 131, 26, 179, 128, 111, 211, 230, 190, 206, 17, 15, 151, 89, 1, 178, 57, 187, 73, 104, 62, 30, 137, 24, 125, 78, 139, 240, 247, 189, 134, 45, 194, 60, 207, 27, 101, 99, 197, 10, 92, 35, 69, 22, 237, 229, 195, 212, 28, 58, 65, 8, 61, 109, 117, 168, 36, 159, 145, 251, 38, 129, 148, 182, 25, 11, 254, 97, 93, 66, 146, 192, 174, 126, 234, 29, 72, 209, 156, 81, 39, 37, 12, 83, 71, 48]","[1, 8, 9, 10, 13, 15, 17, 22, 24, 26, 27, 29, 30, 35, 37, 38, 39, 41, 45, 55, 57, 61, 62, 64, 65, 66, 71, 73, 74, 78, 81, 82, 83, 89, 90, 93, 97, 98, 99, 101, 102, 104, 108, 109, 110, 111, 117, 119, 121, 123, 126, 128, 129, 136, 137, 139, 146, 148, 151, 153, 156, 158, 159, 168, 174, 176, 178, 179, 182, 186, 189, 191, 192, 194, 195, 197, 198, 204, 209, 210, 211, 212, 216, 217, 229, 234, 241, 246, 247]"
95,"[50, 65, 223, 73, 121, 91, 127, 148, 45, 242, 95, 198, 253, 171, 169, 25, 135, 3, 166, 92, 98, 123, 207, 24, 149, 90, 180, 13, 31, 153, 68, 132, 79, 140, 40, 44, 4, 2, 17, 110, 168, 129, 165, 30, 14, 158, 155, 41, 118, 239, 226, 77, 164, 228, 23, 200, 111, 105, 144, 229, 170, 85, 194, 61, 214, 36, 141, 26, 234, 101, 197, 71, 106, 219, 16, 252, 125, 54, 67, 182, 213, 134, 227, 143, 255, 47, 160, 48, 43, 108, 39, 1, 230, 94, 42, 222, 206, 152, 52, 51, 20, 11, 5, 185, 245, 120, 57, 34, 83, 187, 174, 56, 89, 137, 231, 27, 145, 75, 193, 190, 66, 96, 115, 102, 32, 201, 37, 114]","[159, 37, 170, 232, 122, 210, 177, 7, 211, 126, 220, 111, 63, 49, 190, 85, 230, 56, 103, 247, 22, 185, 234, 218, 244, 129, 81, 120, 51, 239, 109, 1, 186, 149, 60, 199, 58, 21, 78, 46, 171, 4, 141, 45, 19, 31, 27, 11, 213, 175, 73, 44, 135, 235, 184, 254, 246, 193, 42, 204, 24, 139, 137, 173, 82, 121, 201, 95, 202, 150, 187, 71, 38, 225, 91, 28, 64, 221, 136, 145, 124, 216, 15, 76, 180, 14, 18, 90, 162, 9, 233, 147, 251, 167, 8, 10, 212, 181, 32, 203, 176, 87, 69, 86, 128, 29, 72, 237, 113, 189, 205, 156, 241, 39, 155, 243, 209, 238, 92, 83, 47, 179, 196, 74, 255, 101, 5, 114]","[1, 4, 5, 11, 14, 24, 27, 31, 32, 37, 39, 42, 44, 45, 47, 51, 56, 71, 73, 83, 85, 90, 91, 92, 95, 101, 111, 114, 120, 121, 129, 135, 137, 141, 145, 149, 155, 170, 171, 180, 185, 187, 190, 193, 201, 213, 230, 234, 239, 255]"
96,"[108, 104, 142, 134, 39, 173, 143, 83, 127, 158, 11, 151, 1, 50, 253, 113, 24, 150, 53, 17, 90, 224, 112, 124, 74, 98, 206, 160, 250, 156, 178, 120, 153, 137, 107, 129, 60, 35, 217, 176, 184, 70, 0, 12, 52, 101, 48, 86, 210, 201, 66, 19, 163, 223, 131, 194, 167, 152, 102, 6, 182, 226, 190, 29, 38, 96, 140, 87, 133, 193, 208, 166, 79, 27, 132, 13, 110, 236, 212, 192, 118, 203, 62, 149, 161, 23, 76, 85, 213, 43, 99, 130, 197, 46, 254, 97, 7, 205, 185, 81, 196, 111, 195, 92, 199, 123, 44, 80, 187, 128, 58, 22, 237, 200, 45, 57, 144, 247, 91, 221, 243, 51, 215, 68, 75, 69, 183, 64]","[83, 19, 171, 79, 167, 177, 207, 46, 229, 126, 10, 241, 64, 168, 238, 121, 115, 235, 85, 141, 231, 213, 89, 15, 82, 243, 230, 35, 5, 191, 189, 17, 12, 44, 119, 218, 156, 86, 215, 33, 67, 142, 219, 109, 129, 169, 249, 179, 93, 214, 2, 7, 61, 244, 140, 147, 111, 209, 22, 133, 103, 223, 37, 25, 41, 188, 114, 106, 248, 23, 53, 155, 31, 84, 175, 148, 6, 196, 255, 246, 154, 50, 87, 192, 228, 165, 232, 245, 34, 202, 159, 96, 158, 73, 63, 130, 138, 78, 247, 65, 220, 125, 80, 144, 240, 252, 150, 117, 206, 236, 16, 132, 18, 194, 47, 251, 174, 1, 94, 66, 105, 71, 99, 134, 239, 42, 13, 136]","[1, 6, 7, 12, 13, 17, 19, 22, 23, 35, 44, 46, 50, 53, 64, 66, 79, 80, 83, 85, 86, 87, 96, 99, 111, 129, 130, 132, 133, 134, 140, 142, 144, 150, 156, 158, 167, 192, 194, 196, 206, 213, 215, 223, 236, 243, 247]"
97,"[176, 194, 118, 22, 208, 218, 108, 242, 33, 62, 157, 211, 17, 89, 213, 214, 49, 178, 142, 103, 150, 141, 54, 171, 126, 229, 45, 201, 240, 99, 2, 97, 82, 162, 192, 102, 18, 121, 66, 190, 151, 12, 254, 138, 198, 137, 155, 173, 71, 179, 90, 0, 129, 147, 161, 223, 46, 215, 234, 57, 28, 125, 60, 196, 250, 177, 123, 225, 159, 205, 139, 243, 37, 25, 128, 120, 131, 24, 111, 8, 56, 42, 1, 85, 156, 72, 195, 92, 26, 93, 187, 36, 81, 64, 228, 226, 227, 53, 167, 59, 210, 52, 189, 83, 95, 116, 182, 135, 132, 79, 236, 9, 148, 237, 169, 55, 199, 222, 105, 20, 255, 140, 113, 217, 122, 124, 146, 143]","[142, 208, 205, 157, 71, 72, 200, 1, 143, 209, 99, 8, 117, 168, 82, 98, 171, 79, 24, 166, 223, 241, 238, 22, 60, 103, 158, 43, 89, 201, 118, 147, 235, 186, 178, 90, 56, 59, 64, 4, 104, 247, 192, 250, 86, 145, 130, 49, 88, 19, 167, 169, 196, 210, 95, 85, 17, 225, 189, 226, 148, 121, 154, 40, 84, 230, 3, 80, 122, 213, 73, 214, 92, 26, 227, 67, 216, 124, 57, 212, 231, 31, 202, 54, 179, 13, 141, 127, 245, 173, 164, 195, 44, 155, 170, 242, 239, 181, 18, 58, 183, 138, 132, 14, 110, 97, 37, 68, 101, 28, 87, 81, 111, 236, 215, 123, 135, 62, 172, 55, 180, 45, 187, 106, 93, 246, 129, 70]","[1, 8, 17, 18, 22, 24, 26, 28, 37, 45, 49, 54, 55, 56, 57, 59, 60, 62, 64, 71, 72, 79, 81, 82, 85, 89, 90, 92, 93, 95, 97, 99, 103, 111, 118, 121, 122, 123, 124, 129, 132, 135, 138, 141, 142, 143, 147, 148, 155, 157, 167, 169, 171, 173, 178, 179, 187, 189, 192, 195, 196, 201, 205, 208, 210, 213, 214, 215, 223, 225, 226, 227, 236, 242, 250]"
98,"[154, 94, 248, 0, 212, 211, 77, 235, 79, 140, 121, 245, 15, 46, 172, 76, 30, 162, 194, 198, 26, 142, 209, 243, 96, 21, 184, 135, 213, 218, 63, 42, 171, 208, 146, 220, 95, 20, 173, 25, 55, 199, 53, 253, 34, 227, 112, 226, 52, 192, 167, 221, 105, 223, 64, 126, 164, 152, 13, 204, 239, 117, 128, 123, 175, 185, 233, 91, 149, 75, 11, 205, 9, 85, 107, 81, 155, 153, 141, 203, 240, 165, 54, 148, 17, 33, 68, 39, 120, 86, 187, 237, 137, 150, 118, 252, 157, 136, 195, 45, 103, 202, 111, 206, 108, 181, 176, 83, 23, 210, 32, 62, 48, 109, 37, 166, 170, 124, 196, 36, 160, 127, 110, 100, 177, 169, 29, 130]","[96, 119, 233, 113, 48, 24, 166, 130, 50, 235, 5, 136, 245, 102, 201, 90, 72, 49, 164, 109, 175, 2, 36, 210, 58, 11, 240, 31, 131, 237, 198, 67, 171, 52, 196, 26, 129, 77, 236, 56, 203, 121, 139, 213, 209, 112, 182, 224, 81, 86, 84, 134, 0, 186, 168, 15, 162, 63, 16, 208, 98, 199, 123, 43, 178, 212, 71, 218, 107, 179, 38, 191, 78, 180, 126, 4, 219, 9, 153, 30, 118, 21, 29, 120, 7, 76, 145, 69, 185, 35, 99, 124, 13, 105, 32, 54, 184, 181, 189, 159, 174, 128, 110, 234, 33, 82, 195, 73, 249, 37, 204, 230, 248, 141, 202, 220, 44, 59, 194, 154, 143, 20, 3, 160, 148, 34, 74, 250]","[0, 9, 11, 13, 15, 20, 21, 26, 29, 30, 32, 33, 34, 36, 37, 48, 52, 54, 63, 76, 77, 81, 86, 96, 105, 107, 109, 110, 112, 118, 120, 121, 123, 124, 126, 128, 130, 136, 141, 148, 153, 154, 160, 162, 164, 166, 171, 175, 181, 184, 185, 194, 195, 196, 198, 199, 202, 203, 204, 208, 209, 210, 212, 213, 218, 220, 233, 235, 237, 240, 245, 248]"
99,"[107, 192, 88, 185, 186, 100, 34, 0, 22, 235, 239, 69, 64, 240, 21, 74, 232, 230, 175, 91, 189, 193, 13, 43, 247, 6, 85, 161, 57, 54, 231, 188, 31, 98, 11, 32, 217, 72, 200, 215, 199, 224, 10, 245, 152, 120, 253, 180, 182, 46, 196, 228, 243, 109, 187, 160, 70, 80, 65, 174, 241, 110, 158, 30, 112, 129, 146, 3, 76, 9, 208, 97, 254, 29, 165, 190, 227, 163, 149, 211, 134, 123, 204, 198, 221, 169, 82, 181, 203, 5, 168, 219, 154, 14, 170, 71, 155, 16, 130, 116, 73, 205, 195, 15, 103, 136, 118, 101, 58, 95, 191, 226, 89, 166, 17, 50, 59, 61, 66, 233, 83, 68, 183, 184, 63, 117, 99, 77]","[100, 229, 45, 88, 62, 52, 119, 22, 233, 91, 4, 27, 138, 24, 158, 48, 6, 255, 242, 145, 167, 41, 205, 28, 237, 47, 126, 139, 248, 85, 197, 30, 246, 14, 69, 58, 102, 65, 214, 225, 130, 131, 223, 107, 108, 251, 201, 37, 97, 204, 238, 78, 44, 73, 218, 86, 232, 244, 149, 216, 212, 38, 79, 92, 230, 196, 173, 2, 169, 179, 87, 156, 254, 54, 93, 206, 101, 143, 147, 89, 209, 252, 25, 104, 249, 127, 96, 81, 153, 114, 133, 36, 122, 241, 82, 150, 176, 171, 162, 98, 178, 210, 188, 181, 148, 42, 203, 164, 90, 213, 33, 144, 105, 175, 39, 70, 3, 222, 236, 240, 128, 111, 226, 51, 202, 56, 31, 113]","[3, 6, 14, 22, 30, 31, 54, 58, 65, 69, 70, 73, 82, 85, 88, 89, 91, 97, 98, 100, 101, 107, 130, 149, 158, 169, 175, 181, 188, 196, 203, 204, 205, 226, 230, 232, 233, 240, 241, 254]"
1 ID SET1 SET2 INTERSECTION
2 0 [132, 75, 157, 25, 199, 202, 147, 109, 221, 110, 220, 251, 213, 11, 224, 101, 200, 170, 155, 71, 119, 122, 39, 1, 29, 113, 189, 212, 10, 219, 49, 28, 151, 40, 103, 8, 145, 214, 114, 91, 175, 107, 152, 163, 148, 246, 176, 181, 18, 106, 74, 115, 144, 0, 205, 121, 46, 234, 142, 223, 228, 162, 96, 97, 130, 156, 172, 241, 33, 186, 137, 150, 65, 161, 226, 116, 111, 12, 146, 38, 167, 4, 108, 169, 61, 93, 190, 252, 22, 31, 3, 9, 13, 35, 23, 141, 129, 198, 85, 84, 62, 158, 201, 67, 117, 59, 41, 191, 56, 90, 51, 227, 143, 83, 184, 174, 125, 98, 232, 238, 57, 225, 54, 179, 177, 237, 37, 95] [27, 162, 187, 254, 128, 227, 2, 165, 143, 109, 140, 46, 160, 26, 139, 171, 42, 199, 207, 30, 205, 117, 213, 48, 40, 212, 185, 196, 197, 94, 136, 35, 229, 193, 36, 7, 15, 43, 4, 203, 142, 144, 49, 31, 240, 124, 116, 69, 37, 250, 95, 105, 103, 168, 126, 64, 73, 206, 24, 157, 135, 118, 34, 134, 45, 62, 153, 5, 47, 239, 216, 222, 80, 231, 102, 21, 57, 215, 149, 141, 236, 32, 188, 204, 194, 23, 233, 83, 154, 210, 159, 70, 202, 253, 20, 71, 166, 242, 221, 228, 78, 230, 29, 145, 147, 81, 104, 235, 66, 100, 131, 132, 244, 195, 68, 72, 53, 182, 79, 248, 3, 82, 211, 173, 180, 17, 77, 51] [3, 4, 23, 29, 31, 35, 37, 40, 46, 49, 51, 57, 62, 71, 83, 95, 103, 109, 116, 117, 132, 141, 142, 143, 144, 145, 147, 157, 162, 199, 202, 205, 212, 213, 221, 227, 228]
3 1 [95, 68, 8, 76, 195, 92, 25, 19, 109, 146, 36, 2, 191, 164, 200, 189, 113, 203, 45, 52, 244, 210, 167, 91, 133, 139, 231, 202, 93, 22, 158, 239, 39, 94, 97, 40, 6, 213, 56, 16, 153, 14, 145, 172, 182, 226, 161, 130, 174, 44, 84, 112, 99, 204, 105, 64, 227, 198, 196, 42, 38, 129, 4, 208, 107, 70, 47, 49, 243, 178, 28, 148, 125, 80, 55, 104, 132, 90, 100, 175, 229, 185, 46, 154, 187, 63, 18, 184, 241, 12, 31, 218, 29, 72, 21, 255, 103, 150, 83, 73, 89, 71, 157, 11, 9, 188, 220, 65, 140, 27, 162, 66, 119, 116, 152, 205, 143, 147, 61, 88, 235, 5, 141, 33, 75, 13, 102, 128] [239, 240, 54, 97, 1, 39, 70, 25, 125, 243, 155, 19, 115, 133, 213, 227, 31, 29, 130, 40, 203, 209, 174, 64, 36, 128, 161, 83, 57, 139, 107, 212, 112, 90, 147, 149, 14, 118, 129, 42, 110, 188, 235, 16, 51, 108, 92, 73, 196, 158, 126, 113, 79, 208, 71, 63, 103, 167, 109, 255, 91, 10, 181, 6, 68, 238, 191, 189, 201, 156, 20, 43, 220, 205, 144, 215, 4, 162, 74, 18, 183, 185, 67, 194, 231, 81, 84, 101, 69, 24, 94, 152, 104, 22, 241, 11, 48, 76, 95, 237, 199, 135, 140, 9, 173, 58, 190, 8, 65, 210, 12, 169, 37, 200, 246, 178, 98, 93, 202, 226, 157, 166, 47, 142, 150, 197, 244, 121] [4, 6, 8, 9, 11, 12, 14, 16, 18, 19, 22, 25, 29, 31, 36, 39, 40, 42, 47, 63, 64, 65, 68, 70, 71, 73, 76, 83, 84, 90, 91, 92, 93, 94, 95, 97, 103, 104, 107, 109, 112, 113, 125, 128, 129, 130, 133, 139, 140, 147, 150, 152, 157, 158, 161, 162, 167, 174, 178, 185, 188, 189, 191, 196, 200, 202, 203, 205, 208, 210, 213, 220, 226, 227, 231, 235, 239, 241, 243, 244, 255]
4 2 [249, 62, 255, 65, 140, 234, 237, 148, 166, 170, 6, 36, 215, 179, 208, 213, 194, 145, 58, 241, 83, 81, 176, 239, 216, 33, 235, 117, 250, 14, 94, 39, 178, 132, 201, 37, 231, 177, 93, 183, 23, 125, 152, 159, 78, 1, 246, 108, 205, 247, 160, 175, 238, 49, 127, 77, 103, 27, 242, 34, 167, 196, 133, 143, 124, 182, 225, 106, 146, 104, 97, 10, 162, 233, 55, 163, 184, 66, 31, 224, 217, 68, 20, 131, 84, 147, 24, 38, 218, 232, 203, 137, 57, 154, 47, 3, 21, 115, 169, 198, 2, 110, 197, 161, 67, 136, 191, 149, 61, 53, 227, 80, 128, 188, 42, 153, 230, 109, 220, 5, 116, 252, 85, 11, 228, 105, 113, 151] [76, 196, 243, 230, 147, 154, 57, 64, 140, 49, 149, 223, 215, 207, 255, 174, 79, 188, 54, 106, 77, 33, 245, 240, 2, 175, 165, 254, 97, 62, 89, 66, 234, 219, 136, 42, 176, 38, 195, 212, 241, 135, 20, 41, 35, 55, 128, 166, 95, 171, 0, 68, 127, 114, 186, 137, 162, 161, 69, 225, 181, 192, 153, 14, 239, 8, 110, 115, 104, 156, 78, 7, 81, 129, 133, 96, 50, 36, 141, 113, 47, 23, 172, 39, 112, 151, 244, 204, 145, 99, 93, 6, 169, 236, 4, 116, 216, 70, 132, 179, 217, 10, 19, 53, 84, 88, 74, 24, 155, 18, 193, 203, 189, 94, 237, 63, 163, 218, 9, 178, 48, 180, 201, 202, 233, 185, 183, 197] [2, 6, 10, 14, 20, 23, 24, 33, 36, 38, 39, 42, 47, 49, 53, 55, 57, 62, 66, 68, 77, 78, 81, 84, 93, 94, 97, 104, 106, 110, 113, 115, 116, 127, 128, 132, 133, 136, 137, 140, 145, 147, 149, 151, 153, 154, 161, 162, 163, 166, 169, 175, 176, 178, 179, 183, 188, 196, 197, 201, 203, 215, 216, 217, 218, 225, 230, 233, 234, 237, 239, 241, 255]
5 3 [229, 37, 83, 1, 214, 179, 159, 5, 235, 120, 88, 61, 213, 234, 194, 108, 59, 200, 118, 170, 73, 91, 250, 215, 68, 255, 35, 122, 150, 33, 193, 227, 133, 197, 56, 225, 137, 17, 173, 18, 171, 82, 31, 140, 254, 39, 217, 10, 36, 75, 64, 246, 8, 22, 232, 238, 223, 162, 85, 15, 121, 201, 220, 221, 218, 101, 13, 100, 12, 177, 92, 105, 157, 199, 29, 188, 69, 4, 58, 9, 224, 47, 182, 115, 25, 119, 131, 117, 80, 183, 132, 135, 219, 62, 129, 2, 42, 106, 205, 191, 207, 87, 45, 202, 172, 154, 139, 142, 102, 14, 41, 16, 241, 94, 156, 89, 86, 78, 99, 252, 253, 77, 6, 116, 204, 206, 110, 251] [61, 155, 205, 169, 2, 83, 114, 74, 191, 131, 185, 130, 172, 0, 95, 84, 118, 76, 78, 213, 214, 195, 8, 234, 173, 64, 59, 113, 48, 170, 109, 244, 41, 183, 23, 248, 73, 68, 150, 149, 223, 46, 91, 133, 175, 212, 33, 165, 29, 108, 94, 79, 227, 249, 112, 138, 70, 89, 232, 164, 245, 250, 87, 30, 202, 57, 174, 101, 1, 242, 67, 239, 148, 188, 126, 143, 21, 226, 122, 102, 19, 97, 129, 7, 134, 56, 182, 60, 81, 45, 32, 28, 34, 186, 22, 176, 208, 159, 136, 24, 43, 139, 194, 85, 26, 75, 218, 254, 111, 217, 50, 233, 144, 36, 82, 147, 16, 128, 222, 90, 241, 203, 51, 189, 15, 58, 251, 211] [1, 2, 8, 15, 16, 22, 29, 33, 36, 41, 45, 56, 58, 59, 61, 64, 68, 73, 75, 78, 82, 83, 85, 87, 89, 91, 94, 101, 102, 108, 118, 122, 129, 131, 133, 139, 150, 159, 170, 172, 173, 182, 183, 188, 191, 194, 202, 205, 213, 214, 217, 218, 223, 227, 232, 234, 241, 250, 251, 254]
6 4 [96, 78, 17, 90, 12, 255, 235, 160, 229, 219, 83, 102, 163, 158, 142, 215, 28, 106, 45, 47, 95, 36, 65, 30, 181, 146, 59, 197, 170, 118, 42, 13, 29, 178, 192, 186, 168, 79, 222, 39, 161, 26, 56, 88, 180, 33, 179, 69, 206, 144, 230, 38, 32, 82, 250, 99, 72, 159, 204, 9, 140, 58, 14, 50, 22, 19, 116, 169, 173, 35, 80, 200, 183, 149, 124, 213, 171, 216, 24, 141, 148, 175, 242, 86, 37, 221, 245, 1, 48, 157, 184, 89, 34, 54, 214, 198, 93, 6, 109, 44, 125, 153, 208, 132, 52, 211, 165, 167, 251, 147, 239, 103, 98, 240, 61, 203, 143, 67, 226, 176, 66, 131, 166, 207, 43, 232, 133, 15] [57, 250, 63, 207, 20, 27, 80, 205, 96, 166, 78, 37, 164, 100, 217, 134, 163, 135, 115, 155, 200, 125, 82, 174, 83, 50, 0, 231, 75, 232, 84, 93, 239, 86, 2, 196, 222, 215, 58, 172, 220, 61, 122, 247, 66, 42, 161, 234, 153, 6, 236, 162, 230, 194, 8, 35, 168, 74, 70, 112, 87, 195, 81, 145, 121, 40, 137, 227, 38, 60, 139, 17, 201, 76, 118, 245, 229, 41, 95, 173, 146, 218, 176, 19, 225, 3, 209, 211, 5, 109, 228, 51, 108, 131, 170, 182, 179, 183, 159, 254, 152, 212, 190, 28, 13, 97, 219, 91, 54, 157, 104, 79, 253, 68, 103, 177, 148, 114, 116, 185, 25, 208, 191, 49, 22, 221, 31, 45] [6, 13, 17, 19, 22, 28, 35, 37, 38, 42, 45, 50, 54, 58, 61, 66, 78, 79, 80, 82, 83, 86, 93, 95, 96, 103, 109, 116, 118, 125, 131, 146, 148, 153, 157, 159, 161, 163, 166, 168, 170, 173, 176, 179, 183, 200, 207, 208, 211, 215, 219, 221, 222, 229, 230, 232, 239, 245, 250]
7 5 [76, 34, 18, 92, 100, 226, 228, 56, 80, 29, 126, 55, 109, 182, 27, 176, 179, 68, 246, 128, 137, 218, 187, 189, 0, 183, 162, 74, 255, 12, 15, 96, 202, 135, 210, 177, 51, 142, 111, 152, 205, 14, 75, 171, 107, 133, 233, 38, 32, 253, 180, 242, 25, 129, 10, 247, 156, 39, 48, 221, 203, 197, 19, 155, 16, 4, 166, 40, 188, 131, 49, 191, 185, 208, 122, 72, 108, 245, 227, 206, 115, 231, 3, 9, 174, 103, 232, 195, 17, 73, 144, 151, 158, 141, 62, 67, 21, 211, 123, 114, 209, 30, 252, 31, 229, 91, 125, 219, 79, 58, 204, 127, 136, 214, 148, 59, 238, 169, 87, 23, 37, 192, 119, 254, 94, 134, 90, 11] [31, 18, 105, 11, 25, 165, 47, 58, 94, 72, 221, 171, 157, 228, 229, 242, 65, 40, 92, 111, 237, 16, 209, 62, 155, 186, 3, 119, 117, 27, 158, 235, 148, 24, 215, 177, 0, 120, 144, 114, 135, 180, 91, 59, 208, 198, 55, 96, 44, 134, 243, 89, 121, 214, 56, 73, 210, 64, 52, 8, 126, 38, 12, 227, 9, 238, 4, 127, 204, 212, 103, 15, 46, 131, 48, 90, 76, 241, 156, 150, 108, 128, 218, 80, 222, 6, 203, 81, 202, 35, 29, 151, 175, 142, 140, 2, 84, 192, 61, 206, 87, 146, 247, 51, 170, 244, 234, 125, 70, 232, 123, 10, 182, 153, 50, 60, 100, 115, 137, 133, 129, 19, 188, 68, 179, 97, 205, 75] [0, 3, 4, 9, 10, 11, 12, 15, 16, 18, 19, 25, 27, 29, 31, 38, 40, 48, 51, 55, 56, 58, 59, 62, 68, 72, 73, 75, 76, 80, 87, 90, 91, 92, 94, 96, 100, 103, 108, 111, 114, 115, 119, 123, 125, 126, 127, 128, 129, 131, 133, 134, 135, 137, 142, 144, 148, 151, 155, 156, 158, 171, 177, 179, 180, 182, 188, 192, 202, 203, 204, 205, 206, 208, 209, 210, 214, 218, 221, 227, 228, 229, 232, 238, 242, 247]
8 6 [105, 245, 208, 74, 185, 27, 32, 157, 60, 169, 173, 94, 237, 140, 151, 124, 193, 142, 198, 247, 43, 63, 120, 125, 141, 189, 110, 231, 98, 96, 72, 175, 80, 100, 207, 53, 252, 16, 107, 114, 49, 180, 164, 184, 11, 119, 129, 218, 66, 61, 155, 18, 213, 170, 73, 243, 148, 205, 147, 106, 68, 211, 143, 95, 152, 75, 203, 192, 99, 145, 235, 233, 44, 54, 171, 116, 81, 0, 136, 3, 103, 165, 59, 52, 45, 230, 177, 33, 31, 50, 82, 232, 13, 255, 183, 111, 176, 181, 39, 122, 101, 221, 92, 88, 70, 135, 115, 130, 79, 7, 89, 137, 191, 179, 236, 65, 250, 174, 48, 134, 104, 90, 108, 113, 42, 226, 85, 132] [43, 187, 54, 201, 121, 66, 163, 154, 109, 62, 171, 19, 166, 81, 135, 227, 240, 238, 246, 172, 78, 10, 223, 241, 108, 58, 250, 107, 239, 153, 191, 204, 149, 15, 210, 150, 213, 180, 103, 28, 131, 17, 184, 1, 57, 86, 29, 138, 162, 206, 159, 243, 127, 199, 79, 136, 37, 75, 235, 5, 216, 14, 133, 20, 93, 32, 77, 67, 118, 234, 190, 25, 76, 217, 44, 7, 147, 249, 160, 175, 219, 174, 35, 12, 102, 47, 41, 94, 61, 55, 46, 170, 69, 16, 214, 53, 242, 194, 140, 168, 165, 228, 244, 202, 9, 161, 56, 2, 157, 142, 117, 114, 40, 233, 123, 6, 182, 36, 18, 26, 87, 146, 71, 224, 139, 222, 212, 23] [7, 16, 18, 32, 43, 44, 53, 54, 61, 66, 75, 79, 81, 94, 103, 107, 108, 114, 135, 136, 140, 142, 147, 157, 165, 170, 171, 174, 175, 180, 184, 191, 213, 233, 235, 243, 250]
9 7 [22, 201, 171, 46, 62, 25, 104, 220, 219, 160, 91, 200, 174, 42, 145, 26, 80, 255, 234, 214, 11, 228, 44, 147, 69, 167, 73, 185, 115, 162, 252, 4, 105, 64, 72, 126, 204, 157, 249, 92, 88, 202, 27, 203, 155, 111, 5, 15, 124, 61, 208, 224, 0, 1, 18, 85, 28, 239, 76, 55, 79, 48, 140, 19, 36, 8, 21, 66, 217, 169, 142, 56, 35, 113, 193, 103, 131, 39, 130, 45, 161, 84, 143, 141, 232, 97, 94, 209, 57, 173, 150, 41, 159, 53, 86, 23, 49, 17, 250, 40, 213, 241, 195, 50, 78, 121, 178, 137, 199, 149, 106, 74, 235, 226, 245, 135, 166, 144, 134, 120, 186, 102, 148, 225, 132, 125, 70, 89] [255, 23, 91, 158, 203, 120, 209, 212, 38, 105, 73, 226, 187, 145, 163, 219, 70, 216, 57, 76, 241, 225, 249, 30, 131, 181, 224, 178, 69, 31, 153, 134, 168, 210, 4, 127, 242, 125, 33, 87, 86, 102, 100, 175, 121, 133, 77, 9, 35, 54, 149, 55, 2, 247, 166, 250, 234, 143, 232, 215, 5, 64, 78, 227, 179, 117, 171, 90, 204, 60, 177, 27, 148, 24, 49, 113, 88, 160, 34, 180, 140, 235, 20, 220, 122, 106, 185, 186, 108, 150, 46, 63, 200, 191, 95, 146, 82, 6, 26, 176, 50, 174, 61, 245, 217, 202, 45, 254, 65, 137, 193, 115, 107, 79, 164, 135, 39, 197, 213, 111, 126, 118, 195, 252, 97, 190, 40, 182] [4, 5, 23, 26, 27, 35, 39, 40, 45, 46, 49, 50, 55, 57, 61, 64, 69, 70, 73, 76, 78, 79, 86, 88, 91, 97, 102, 105, 106, 111, 113, 115, 120, 121, 125, 126, 131, 134, 135, 137, 140, 143, 145, 148, 149, 150, 160, 166, 171, 174, 178, 185, 186, 193, 195, 200, 202, 203, 204, 209, 213, 217, 219, 220, 224, 225, 226, 232, 234, 235, 241, 245, 249, 250, 252, 255]
10 8 [134, 245, 157, 213, 19, 34, 38, 230, 144, 18, 168, 146, 73, 64, 91, 89, 198, 87, 65, 32, 36, 148, 131, 221, 58, 84, 132, 41, 83, 67, 249, 42, 237, 136, 250, 35, 60, 69, 176, 125, 116, 117, 85, 106, 61, 133, 244, 46, 96, 23, 166, 188, 120, 139, 15, 123, 238, 162, 129, 212, 175, 227, 138, 97, 72, 6, 9, 47, 119, 103, 192, 88, 63, 8, 233, 77, 251, 70, 200, 30, 16, 126, 202, 183, 173, 81, 169, 223, 102, 164, 105, 218, 231, 180, 33, 78, 118, 150, 165, 191, 152, 178, 53, 153, 205, 189, 51, 243, 141, 40, 204, 151, 20, 5, 239, 254, 48, 14, 135, 98, 197, 2, 54, 111, 122, 232, 59, 107] [26, 3, 87, 214, 121, 5, 23, 123, 254, 27, 66, 248, 152, 209, 191, 39, 171, 154, 149, 193, 92, 45, 228, 199, 223, 173, 21, 104, 226, 101, 44, 136, 224, 140, 155, 220, 117, 29, 109, 194, 49, 89, 216, 55, 4, 114, 202, 61, 184, 225, 13, 76, 183, 174, 75, 57, 48, 71, 38, 190, 7, 210, 243, 138, 246, 67, 163, 18, 247, 34, 6, 103, 237, 54, 102, 82, 97, 169, 221, 147, 74, 72, 144, 222, 128, 37, 217, 162, 12, 68, 33, 80, 17, 203, 164, 195, 125, 240, 127, 252, 22, 115, 151, 130, 143, 200, 106, 253, 201, 11, 10, 113, 16, 28, 234, 63, 150, 141, 24, 124, 79, 232, 215, 167, 31, 108, 181, 206] [5, 6, 16, 18, 23, 33, 34, 38, 48, 54, 61, 63, 67, 72, 87, 89, 97, 102, 103, 106, 117, 123, 125, 136, 138, 141, 144, 150, 151, 152, 162, 164, 169, 173, 183, 191, 200, 202, 221, 223, 232, 237, 243, 254]
11 9 [71, 207, 57, 0, 118, 134, 100, 10, 216, 119, 218, 42, 102, 184, 82, 146, 249, 90, 136, 12, 164, 248, 220, 176, 158, 47, 9, 224, 250, 25, 159, 110, 14, 125, 231, 39, 174, 116, 143, 147, 81, 124, 40, 156, 11, 103, 217, 152, 87, 196, 80, 28, 52, 43, 121, 4, 138, 72, 140, 85, 169, 91, 153, 198, 53, 206, 128, 93, 246, 188, 243, 68, 59, 212, 240, 31, 142, 139, 60, 65, 18, 67, 221, 187, 226, 127, 89, 48, 44, 252, 154, 74, 84, 222, 75, 208, 45, 66, 199, 170, 200, 235, 227, 233, 78, 145, 168, 113, 186, 107, 209, 27, 6, 79, 55, 228, 144, 17, 22, 49, 236, 117, 223, 69, 133, 32, 15, 173] [128, 234, 195, 96, 104, 83, 34, 78, 120, 244, 97, 189, 239, 38, 139, 188, 56, 6, 185, 109, 46, 26, 89, 118, 157, 35, 243, 170, 115, 108, 226, 49, 213, 123, 149, 225, 71, 184, 74, 64, 165, 2, 182, 15, 3, 162, 31, 20, 137, 155, 135, 177, 4, 114, 196, 151, 207, 29, 132, 88, 105, 214, 197, 167, 211, 92, 242, 99, 179, 144, 42, 41, 166, 201, 63, 18, 16, 222, 230, 28, 163, 101, 194, 241, 106, 255, 13, 36, 32, 130, 70, 7, 161, 229, 171, 205, 183, 21, 235, 95, 176, 145, 50, 73, 191, 200, 215, 98, 58, 77, 164, 236, 47, 175, 112, 212, 129, 190, 192, 227, 55, 125, 79, 238, 86, 208, 148, 76] [4, 6, 15, 18, 28, 31, 32, 42, 47, 49, 55, 71, 74, 78, 79, 89, 118, 125, 128, 139, 144, 145, 164, 170, 176, 184, 188, 196, 200, 207, 208, 212, 222, 226, 227, 235, 236, 243]
12 10 [182, 73, 5, 39, 24, 235, 225, 81, 15, 153, 123, 80, 93, 46, 247, 91, 69, 236, 185, 212, 184, 42, 135, 168, 54, 19, 230, 72, 76, 211, 180, 97, 86, 40, 109, 51, 63, 206, 37, 115, 34, 100, 102, 158, 237, 103, 137, 251, 234, 6, 204, 68, 117, 29, 244, 49, 111, 165, 85, 224, 161, 146, 90, 176, 10, 56, 28, 189, 213, 202, 245, 178, 58, 50, 220, 107, 129, 243, 171, 195, 13, 122, 66, 149, 33, 166, 20, 104, 144, 105, 45, 89, 2, 152, 193, 98, 145, 38, 155, 229, 120, 191, 163, 143, 57, 95, 113, 92, 17, 154, 12, 41, 106, 7, 132, 84, 227, 133, 249, 157, 83, 164, 101, 118, 179, 170, 71, 138] [112, 85, 138, 202, 102, 142, 224, 178, 25, 30, 52, 78, 21, 187, 239, 126, 20, 164, 58, 190, 149, 250, 92, 24, 12, 69, 0, 1, 235, 55, 242, 89, 182, 118, 97, 39, 73, 99, 124, 135, 79, 32, 22, 162, 207, 157, 184, 122, 16, 84, 180, 192, 76, 222, 19, 230, 57, 133, 81, 160, 27, 109, 174, 11, 150, 134, 255, 98, 199, 188, 43, 245, 218, 147, 179, 183, 63, 238, 132, 146, 232, 111, 165, 244, 60, 166, 34, 101, 181, 220, 44, 74, 143, 38, 113, 154, 13, 42, 47, 23, 171, 29, 223, 66, 7, 186, 231, 177, 153, 159, 221, 53, 83, 35, 167, 4, 129, 252, 50, 61, 214, 201, 205, 2, 217, 213, 5, 41] [2, 5, 7, 12, 13, 19, 20, 24, 29, 34, 38, 39, 41, 42, 50, 57, 58, 63, 66, 69, 73, 76, 81, 83, 84, 85, 89, 92, 97, 98, 101, 102, 109, 111, 113, 118, 122, 129, 132, 133, 135, 138, 143, 146, 149, 153, 154, 157, 164, 165, 166, 171, 178, 179, 180, 182, 184, 202, 213, 220, 224, 230, 235, 244, 245]
13 11 [42, 176, 29, 59, 122, 184, 171, 137, 82, 136, 41, 80, 95, 5, 187, 32, 138, 68, 185, 43, 75, 49, 224, 88, 69, 111, 196, 247, 126, 117, 56, 105, 98, 37, 153, 54, 87, 114, 19, 180, 238, 93, 90, 223, 165, 124, 227, 241, 125, 210, 128, 242, 116, 120, 40, 55, 228, 26, 45, 218, 21, 107, 132, 119, 57, 189, 199, 27, 141, 97, 83, 109, 127, 164, 231, 17, 76, 209, 215, 159, 172, 84, 65, 1, 73, 143, 30, 202, 252, 94, 103, 52, 96, 170, 86, 130, 154, 4, 8, 134, 174, 79, 102, 175, 91, 200, 216, 36, 9, 63, 192, 207, 62, 225, 167, 77, 35, 155, 100, 212, 129, 115, 240, 149, 12, 16, 255, 123] [117, 134, 8, 87, 41, 32, 19, 131, 196, 83, 54, 84, 4, 80, 238, 252, 176, 242, 17, 149, 46, 225, 102, 18, 76, 42, 55, 229, 200, 108, 228, 115, 151, 164, 231, 171, 1, 159, 23, 170, 167, 88, 180, 45, 98, 59, 215, 68, 216, 77, 130, 66, 12, 158, 114, 205, 3, 166, 187, 35, 99, 165, 29, 195, 182, 129, 125, 185, 30, 27, 120, 21, 213, 36, 147, 85, 234, 143, 97, 123, 109, 189, 86, 190, 153, 81, 9, 74, 255, 16, 126, 70, 155, 184, 82, 207, 6, 140, 223, 227, 208, 241, 79, 162, 69, 127, 212, 247, 132, 128, 44, 191, 91, 107, 217, 111, 26, 47, 177, 100, 93, 37, 110, 235, 202, 137, 138, 73] [1, 4, 8, 9, 12, 16, 17, 19, 21, 26, 27, 29, 30, 32, 35, 36, 37, 41, 42, 45, 54, 55, 59, 68, 69, 73, 76, 77, 79, 80, 82, 83, 84, 86, 87, 88, 91, 93, 97, 98, 100, 102, 107, 109, 111, 114, 115, 117, 120, 123, 125, 126, 127, 128, 129, 130, 132, 134, 137, 138, 143, 149, 153, 155, 159, 164, 165, 167, 170, 171, 176, 180, 184, 185, 187, 189, 196, 200, 202, 207, 212, 215, 216, 223, 225, 227, 228, 231, 238, 241, 242, 247, 252, 255]
14 12 [127, 104, 110, 26, 245, 157, 167, 84, 78, 210, 59, 41, 1, 123, 181, 85, 168, 69, 86, 138, 30, 94, 36, 8, 50, 77, 228, 19, 23, 63, 103, 216, 173, 152, 82, 202, 112, 139, 254, 250, 121, 47, 195, 243, 241, 109, 51, 183, 61, 65, 193, 122, 133, 180, 194, 158, 175, 182, 42, 10, 12, 171, 64, 154, 108, 252, 170, 113, 177, 48, 53, 115, 197, 4, 219, 99, 239, 159, 226, 211, 143, 235, 32, 20, 222, 169, 229, 15, 43, 106, 129, 221, 233, 33, 11, 114, 7, 18, 144, 204, 253, 119, 49, 0, 45, 187, 67, 9, 98, 29, 255, 125, 27, 232, 142, 134, 68, 101, 205, 70, 97, 223, 225, 185, 176, 72, 136, 107] [32, 37, 144, 113, 109, 179, 87, 176, 108, 107, 152, 129, 254, 170, 211, 169, 174, 246, 42, 171, 187, 41, 99, 225, 11, 186, 85, 64, 63, 101, 136, 68, 159, 57, 19, 95, 156, 104, 224, 189, 110, 103, 138, 219, 117, 131, 229, 172, 163, 72, 194, 123, 3, 112, 21, 165, 139, 202, 177, 185, 60, 40, 197, 52, 88, 114, 124, 226, 73, 150, 216, 164, 133, 175, 118, 44, 50, 10, 121, 127, 77, 234, 46, 1, 151, 206, 115, 245, 241, 36, 223, 147, 56, 205, 61, 28, 94, 180, 141, 166, 83, 247, 132, 240, 192, 157, 204, 74, 193, 217, 86, 196, 30, 243, 78, 98, 53, 120, 49, 119, 250, 238, 236, 48, 232, 13, 65, 182] [1, 10, 11, 19, 30, 32, 36, 41, 42, 48, 49, 50, 53, 61, 63, 64, 65, 68, 72, 77, 78, 85, 86, 94, 98, 99, 101, 103, 104, 107, 108, 109, 110, 112, 113, 114, 115, 119, 121, 123, 127, 129, 133, 136, 138, 139, 144, 152, 157, 159, 169, 170, 171, 175, 176, 177, 180, 182, 185, 187, 193, 194, 197, 202, 204, 205, 211, 216, 219, 223, 225, 226, 229, 232, 241, 243, 245, 250, 254]
15 13 [76, 5, 56, 132, 218, 246, 20, 237, 225, 62, 23, 58, 175, 177, 34, 183, 12, 67, 199, 164, 117, 93, 174, 171, 255, 130, 244, 36, 0, 249, 112, 4, 11, 221, 111, 113, 137, 253, 90, 166, 95, 241, 7, 138, 88, 63, 180, 185, 213, 26, 220, 208, 210, 105, 242, 8, 124, 158, 92, 9, 181, 135, 103, 35, 81, 106, 97, 94, 27, 204, 155, 205, 184, 32, 142, 17, 121, 89, 141, 245, 53, 151, 82, 98, 45, 233, 6, 198, 71, 195, 128, 161, 109, 226, 172, 129, 86, 201, 157, 217, 19, 99, 70, 122, 165, 28, 46, 209, 29, 131, 116, 57, 152, 176, 43, 230, 178, 119, 194, 40, 30, 190, 232, 143, 51, 48, 169, 216] [51, 110, 203, 45, 249, 0, 136, 122, 217, 176, 111, 213, 244, 4, 67, 63, 5, 147, 191, 177, 81, 80, 104, 134, 130, 65, 133, 212, 181, 155, 94, 56, 28, 185, 208, 106, 88, 161, 233, 105, 226, 169, 12, 222, 251, 18, 82, 20, 142, 184, 135, 250, 204, 90, 151, 35, 178, 1, 202, 91, 159, 128, 86, 139, 163, 174, 187, 32, 26, 148, 112, 7, 164, 179, 49, 158, 83, 96, 69, 29, 123, 61, 168, 165, 68, 107, 166, 216, 193, 232, 113, 8, 138, 71, 225, 93, 223, 170, 237, 255, 132, 17, 57, 129, 53, 72, 197, 171, 24, 76, 221, 201, 2, 209, 99, 66, 73, 175, 162, 97, 23, 37, 200, 241, 101, 218, 150, 108] [0, 4, 5, 7, 8, 12, 17, 20, 23, 26, 28, 29, 32, 35, 45, 51, 53, 56, 57, 63, 67, 71, 76, 81, 82, 86, 88, 90, 93, 94, 97, 99, 105, 106, 111, 112, 113, 122, 128, 129, 130, 132, 135, 138, 142, 151, 155, 158, 161, 164, 165, 166, 169, 171, 174, 175, 176, 177, 178, 181, 184, 185, 201, 204, 208, 209, 213, 216, 217, 218, 221, 225, 226, 232, 233, 237, 241, 244, 249, 255]
16 14 [82, 156, 200, 53, 194, 3, 80, 8, 120, 141, 179, 84, 1, 208, 79, 148, 125, 130, 63, 127, 62, 146, 248, 152, 215, 210, 74, 135, 242, 83, 162, 115, 47, 164, 233, 108, 134, 68, 13, 67, 45, 173, 54, 126, 251, 195, 16, 123, 250, 186, 128, 255, 168, 90, 157, 119, 136, 227, 36, 38, 104, 238, 99, 244, 185, 247, 236, 29, 206, 165, 226, 225, 132, 60, 103, 77, 142, 216, 55, 32, 253, 159, 129, 91, 205, 232, 163, 78, 150, 50, 193, 167, 37, 81, 71, 145, 188, 66, 26, 114, 211, 76, 196, 106, 4, 30, 202, 237, 151, 110, 51, 2, 154, 94, 46, 109, 11, 143, 92, 21, 241, 97, 124, 219, 166, 221, 34, 137] [132, 216, 245, 247, 222, 210, 190, 235, 18, 227, 215, 208, 187, 90, 68, 197, 94, 121, 95, 50, 52, 64, 217, 49, 230, 183, 127, 77, 125, 239, 115, 72, 103, 62, 250, 139, 9, 176, 111, 8, 154, 136, 74, 2, 143, 225, 54, 87, 141, 129, 60, 155, 170, 99, 23, 148, 126, 53, 171, 147, 97, 145, 163, 45, 140, 84, 110, 168, 29, 195, 101, 67, 251, 137, 91, 73, 173, 223, 81, 243, 82, 119, 175, 167, 252, 92, 93, 32, 79, 221, 22, 51, 112, 185, 12, 130, 241, 138, 233, 192, 142, 219, 104, 46, 254, 248, 229, 150, 169, 232, 1, 198, 212, 57, 63, 59, 238, 105, 213, 13, 158, 134, 3, 240, 135, 36, 128, 76] [1, 2, 3, 8, 13, 29, 32, 36, 45, 46, 50, 51, 53, 54, 60, 62, 63, 67, 68, 74, 76, 77, 79, 81, 82, 84, 90, 91, 92, 94, 97, 99, 103, 104, 110, 115, 119, 125, 126, 127, 128, 129, 130, 132, 134, 135, 136, 137, 141, 142, 143, 145, 148, 150, 154, 163, 167, 168, 173, 185, 195, 208, 210, 215, 216, 219, 221, 225, 227, 232, 233, 238, 241, 247, 248, 250, 251]
17 15 [245, 178, 15, 66, 12, 133, 241, 198, 186, 107, 210, 199, 62, 55, 194, 190, 92, 175, 127, 76, 22, 161, 126, 173, 101, 88, 211, 129, 204, 136, 3, 5, 98, 187, 213, 157, 89, 205, 226, 32, 94, 160, 233, 197, 123, 193, 214, 182, 74, 150, 121, 240, 0, 50, 181, 31, 58, 17, 177, 172, 128, 69, 73, 16, 159, 102, 28, 83, 23, 147, 59, 20, 11, 195, 222, 46, 243, 119, 248, 41, 218, 217, 65, 224, 149, 131, 191, 34, 207, 228, 143, 54, 44, 48, 132, 184, 171, 154, 114, 103, 67, 206, 29, 180, 10, 120, 219, 118, 87, 1, 153, 163, 14, 100, 42, 231, 75, 237, 189, 232, 24, 125, 202, 93, 148, 52, 104, 167] [42, 139, 183, 54, 228, 208, 238, 146, 177, 22, 73, 32, 231, 132, 151, 57, 148, 154, 122, 218, 240, 6, 194, 0, 134, 28, 128, 76, 15, 119, 166, 232, 173, 165, 17, 244, 193, 131, 120, 121, 205, 3, 104, 46, 1, 147, 78, 11, 49, 62, 30, 60, 214, 140, 13, 69, 10, 143, 171, 115, 108, 101, 178, 58, 40, 124, 251, 220, 235, 103, 59, 82, 160, 102, 107, 249, 48, 174, 118, 185, 230, 74, 44, 229, 210, 138, 7, 213, 5, 94, 136, 87, 239, 190, 180, 20, 27, 182, 162, 142, 167, 252, 129, 172, 31, 170, 159, 243, 181, 222, 184, 158, 197, 155, 92, 211, 242, 90, 163, 88, 175, 187, 24, 186, 123, 81, 80, 133] [0, 1, 3, 5, 10, 11, 15, 17, 20, 22, 24, 28, 31, 32, 42, 44, 46, 48, 54, 58, 59, 62, 69, 73, 74, 76, 87, 88, 92, 94, 101, 102, 103, 104, 107, 118, 119, 120, 121, 123, 128, 129, 131, 132, 133, 136, 143, 147, 148, 154, 159, 160, 163, 167, 171, 172, 173, 175, 177, 178, 180, 181, 182, 184, 186, 187, 190, 193, 194, 197, 205, 210, 211, 213, 214, 218, 222, 228, 231, 232, 240, 243]
18 16 [240, 13, 120, 4, 65, 20, 250, 254, 84, 22, 220, 105, 121, 95, 112, 46, 8, 150, 238, 99, 114, 171, 182, 55, 41, 122, 90, 6, 60, 23, 44, 235, 64, 50, 123, 162, 133, 30, 205, 125, 29, 115, 109, 151, 199, 40, 159, 212, 241, 37, 2, 88, 80, 74, 106, 131, 253, 0, 32, 86, 153, 113, 39, 7, 58, 208, 179, 14, 28, 19, 201, 166, 203, 149, 25, 27, 107, 119, 219, 152, 76, 18, 140, 12, 234, 138, 168, 144, 216, 164, 67, 239, 173, 102, 198, 130, 89, 81, 177, 77, 62, 26, 53, 213, 48, 132, 129, 193, 135, 35, 10, 214, 194, 137, 127, 170, 209, 101, 185, 141, 233, 15, 190, 21, 71, 229, 202, 155] [242, 78, 19, 137, 224, 99, 152, 55, 113, 143, 24, 135, 183, 12, 129, 114, 211, 188, 172, 248, 30, 91, 40, 254, 16, 49, 25, 90, 212, 175, 119, 163, 8, 142, 117, 170, 6, 164, 180, 182, 171, 26, 22, 246, 160, 85, 186, 157, 147, 138, 220, 84, 107, 223, 64, 39, 5, 74, 11, 35, 201, 29, 9, 145, 149, 177, 41, 2, 87, 57, 249, 118, 82, 14, 151, 44, 232, 210, 100, 215, 66, 205, 47, 236, 96, 7, 219, 227, 140, 167, 176, 228, 15, 38, 95, 109, 0, 72, 120, 251, 124, 75, 127, 203, 200, 3, 54, 101, 144, 68, 46, 93, 71, 63, 125, 4, 89, 115, 92, 165, 158, 18, 13, 181, 148, 130, 146, 42] [0, 2, 4, 6, 7, 8, 12, 13, 14, 15, 18, 19, 22, 25, 26, 29, 30, 35, 39, 40, 41, 44, 46, 55, 64, 71, 74, 84, 89, 90, 95, 99, 101, 107, 109, 113, 114, 115, 119, 120, 125, 127, 129, 130, 135, 137, 138, 140, 144, 149, 151, 152, 164, 170, 171, 177, 182, 201, 203, 205, 212, 219, 220, 254]
19 17 [225, 235, 155, 37, 56, 40, 237, 163, 191, 211, 0, 93, 43, 107, 122, 134, 52, 165, 171, 145, 19, 164, 194, 101, 94, 9, 173, 88, 31, 124, 240, 183, 97, 90, 76, 147, 72, 35, 137, 2, 13, 140, 128, 241, 115, 6, 22, 158, 50, 223, 192, 119, 41, 184, 196, 175, 25, 58, 33, 74, 89, 62, 215, 248, 96, 16, 98, 143, 12, 160, 121, 104, 68, 80, 17, 84, 53, 92, 182, 130, 153, 133, 148, 114, 23, 185, 159, 154, 78, 100, 87, 73, 47, 49, 108, 34, 5, 109, 149, 157, 129, 169, 28, 127, 233, 126, 193, 57, 207, 125, 206, 189, 249, 71, 4, 199, 63, 113, 131, 46, 142, 91, 112, 51, 170, 39, 77, 64] [58, 84, 239, 219, 30, 54, 179, 194, 78, 52, 183, 236, 85, 45, 12, 167, 213, 253, 177, 14, 165, 38, 237, 61, 29, 116, 226, 83, 171, 48, 225, 67, 146, 32, 60, 182, 188, 251, 36, 103, 70, 228, 123, 75, 181, 69, 222, 235, 162, 221, 53, 3, 223, 135, 113, 8, 66, 152, 140, 174, 178, 180, 111, 19, 127, 156, 108, 232, 244, 15, 241, 195, 187, 231, 74, 27, 7, 56, 240, 202, 24, 93, 220, 184, 173, 79, 11, 41, 216, 106, 31, 217, 198, 26, 203, 238, 33, 141, 160, 218, 20, 247, 72, 252, 229, 155, 166, 18, 161, 118, 126, 139, 10, 68, 51, 63, 212, 151, 132, 21, 62, 159, 59, 208, 193, 176, 168, 86] [12, 19, 31, 33, 41, 51, 52, 53, 56, 58, 62, 63, 68, 72, 74, 78, 84, 93, 108, 113, 126, 127, 140, 155, 159, 160, 165, 171, 173, 182, 183, 184, 193, 194, 223, 225, 235, 237, 240, 241]
20 18 [67, 52, 148, 72, 183, 24, 175, 149, 31, 252, 93, 95, 171, 36, 105, 140, 138, 27, 104, 50, 219, 5, 159, 160, 135, 124, 185, 141, 32, 89, 184, 218, 34, 133, 18, 58, 119, 11, 38, 189, 143, 198, 78, 91, 29, 121, 188, 162, 158, 221, 103, 240, 62, 42, 204, 26, 6, 68, 60, 90, 44, 139, 63, 165, 254, 94, 194, 45, 116, 115, 152, 2, 110, 250, 157, 241, 209, 215, 41, 51, 40, 19, 156, 123, 107, 12, 128, 101, 231, 224, 208, 192, 161, 33, 39, 21, 48, 168, 75, 69, 22, 76, 245, 179, 0, 132, 117, 70, 200, 213, 79, 74, 106, 114, 30, 230, 56, 13, 239, 120, 113, 233, 109, 57, 155, 81, 237, 23] [72, 40, 133, 181, 24, 153, 179, 187, 232, 90, 51, 225, 152, 115, 13, 254, 188, 158, 218, 30, 175, 138, 107, 71, 32, 19, 5, 114, 228, 79, 184, 219, 91, 0, 6, 62, 239, 233, 54, 48, 183, 140, 68, 69, 159, 155, 148, 162, 207, 9, 120, 34, 87, 29, 75, 38, 17, 56, 76, 246, 104, 176, 142, 78, 147, 25, 211, 247, 241, 44, 11, 80, 251, 177, 221, 99, 16, 50, 204, 88, 61, 165, 199, 112, 116, 89, 171, 123, 121, 197, 226, 65, 42, 168, 41, 136, 173, 31, 36, 198, 244, 119, 150, 97, 58, 193, 7, 190, 45, 93, 216, 2, 110, 101, 57, 74, 94, 185, 70, 83, 245, 126, 39, 27, 195, 157, 18, 161] [0, 2, 5, 6, 11, 13, 18, 19, 24, 27, 29, 30, 31, 32, 34, 36, 38, 39, 40, 41, 42, 44, 45, 48, 50, 51, 56, 57, 58, 62, 68, 69, 70, 72, 74, 75, 76, 78, 79, 89, 90, 91, 93, 94, 101, 104, 107, 110, 114, 115, 116, 119, 120, 121, 123, 133, 138, 140, 148, 152, 155, 157, 158, 159, 161, 162, 165, 168, 171, 175, 179, 183, 184, 185, 188, 198, 204, 218, 219, 221, 233, 239, 241, 245, 254]
21 19 [48, 72, 149, 243, 127, 11, 222, 132, 158, 183, 90, 191, 179, 74, 186, 87, 26, 232, 42, 20, 43, 201, 193, 190, 167, 122, 199, 161, 92, 86, 100, 235, 54, 130, 57, 231, 224, 123, 139, 140, 65, 152, 254, 83, 49, 192, 202, 221, 62, 197, 73, 156, 27, 189, 113, 160, 252, 40, 157, 207, 106, 103, 217, 94, 150, 47, 169, 219, 71, 69, 151, 204, 203, 10, 15, 182, 31, 29, 39, 107, 8, 118, 24, 177, 226, 155, 25, 81, 110, 97, 131, 168, 214, 143, 237, 115, 55, 23, 176, 144, 244, 22, 12, 227, 93, 185, 223, 95, 4, 56, 76, 121, 208, 109, 129, 146, 242, 88, 145, 17, 5, 6, 18, 236, 163, 80, 200, 141] [4, 121, 99, 115, 201, 233, 194, 193, 116, 59, 202, 216, 234, 25, 236, 21, 104, 42, 0, 228, 87, 7, 192, 47, 165, 119, 197, 17, 127, 106, 35, 81, 39, 235, 254, 231, 154, 161, 3, 248, 95, 175, 79, 60, 184, 52, 217, 67, 187, 251, 54, 133, 212, 98, 245, 205, 132, 75, 103, 224, 138, 229, 50, 73, 163, 239, 230, 11, 172, 183, 112, 92, 13, 253, 151, 180, 221, 26, 91, 126, 86, 9, 150, 93, 232, 120, 88, 38, 55, 178, 20, 46, 185, 243, 2, 16, 252, 199, 44, 134, 241, 237, 109, 177, 174, 108, 142, 15, 36, 63, 51, 209, 22, 100, 215, 255, 62, 34, 48, 89, 28, 139, 196, 168, 43, 94, 223, 162] [4, 11, 15, 17, 20, 22, 25, 26, 39, 42, 43, 47, 48, 54, 55, 62, 73, 81, 86, 87, 88, 92, 93, 94, 95, 100, 103, 106, 109, 115, 121, 127, 132, 139, 150, 151, 161, 163, 168, 177, 183, 185, 192, 193, 197, 199, 201, 202, 217, 221, 223, 224, 231, 232, 235, 236, 237, 243, 252, 254]
22 20 [8, 91, 14, 177, 25, 233, 95, 5, 166, 157, 80, 232, 114, 2, 187, 230, 74, 186, 92, 229, 33, 131, 161, 32, 31, 68, 127, 196, 171, 7, 222, 48, 113, 165, 59, 86, 141, 243, 96, 149, 181, 21, 146, 77, 81, 29, 200, 99, 122, 204, 40, 13, 198, 39, 94, 58, 47, 71, 102, 185, 223, 98, 88, 155, 97, 119, 49, 11, 61, 55, 132, 234, 135, 46, 116, 70, 138, 35, 192, 6, 208, 214, 199, 51, 150, 154, 103, 37, 241, 190, 43, 87, 160, 117, 26, 23, 101, 184, 17, 137, 189, 209, 175, 129, 56, 20, 89, 78, 44, 42, 125, 213, 227, 15, 140, 191, 179, 69, 124, 133, 93, 134, 105, 79, 254, 168, 130, 83] [219, 23, 154, 109, 111, 99, 68, 187, 150, 241, 179, 166, 201, 220, 128, 31, 216, 81, 71, 63, 112, 67, 144, 181, 39, 238, 153, 191, 106, 196, 232, 0, 57, 157, 16, 91, 95, 80, 198, 158, 160, 192, 25, 48, 141, 59, 66, 180, 252, 228, 170, 124, 3, 113, 188, 182, 58, 172, 211, 247, 114, 240, 88, 45, 231, 225, 131, 69, 152, 34, 72, 130, 183, 121, 123, 4, 235, 35, 167, 50, 87, 138, 115, 92, 75, 205, 32, 155, 8, 210, 49, 173, 118, 119, 239, 202, 27, 215, 60, 133, 11, 104, 56, 37, 178, 229, 62, 40, 214, 47, 156, 46, 2, 105, 186, 185, 122, 206, 64, 253, 7, 107, 168, 129, 135, 255, 147, 190] [2, 7, 8, 11, 23, 25, 31, 32, 35, 37, 39, 40, 46, 47, 48, 49, 56, 58, 59, 68, 69, 71, 80, 81, 87, 88, 91, 92, 95, 99, 105, 113, 114, 119, 122, 124, 129, 130, 131, 133, 135, 138, 141, 150, 154, 155, 157, 160, 166, 168, 179, 181, 185, 186, 187, 190, 191, 192, 196, 198, 214, 229, 232, 241]
23 21 [155, 142, 202, 88, 19, 121, 2, 216, 28, 132, 124, 23, 187, 237, 207, 169, 89, 204, 98, 160, 240, 173, 120, 41, 227, 49, 0, 172, 38, 182, 59, 232, 103, 54, 134, 222, 91, 69, 37, 122, 26, 238, 33, 20, 236, 146, 221, 171, 43, 74, 159, 24, 133, 253, 193, 163, 78, 174, 210, 176, 13, 178, 229, 144, 138, 96, 55, 139, 235, 211, 183, 115, 203, 101, 81, 112, 255, 228, 175, 252, 53, 27, 197, 212, 114, 136, 199, 51, 12, 84, 108, 177, 107, 249, 10, 82, 48, 57, 165, 179, 40, 198, 166, 102, 191, 99, 190, 123, 76, 164, 147, 224, 145, 68, 77, 194, 42, 22, 129, 135, 109, 247, 32, 94, 73, 161, 185, 60] [50, 116, 218, 37, 100, 194, 107, 212, 31, 12, 213, 167, 4, 228, 204, 169, 155, 30, 156, 102, 94, 206, 91, 226, 14, 232, 105, 121, 227, 98, 56, 18, 170, 185, 178, 166, 8, 149, 162, 58, 158, 202, 73, 97, 69, 172, 99, 223, 147, 234, 211, 32, 33, 145, 131, 214, 5, 200, 229, 0, 140, 19, 254, 103, 137, 208, 123, 207, 62, 217, 118, 49, 80, 219, 109, 101, 237, 184, 46, 195, 65, 72, 183, 153, 24, 28, 23, 242, 54, 113, 110, 90, 151, 16, 47, 1, 230, 83, 87, 15, 78, 187, 245, 251, 177, 17, 64, 7, 240, 157, 129, 10, 128, 89, 114, 29, 67, 55, 86, 63, 246, 25, 92, 179, 70, 96, 44, 205] [0, 10, 12, 19, 23, 24, 28, 32, 33, 37, 49, 54, 55, 69, 73, 78, 89, 91, 94, 96, 98, 99, 101, 102, 103, 107, 109, 114, 121, 123, 129, 145, 147, 155, 166, 169, 172, 177, 178, 179, 183, 185, 187, 194, 202, 204, 207, 211, 212, 227, 228, 229, 232, 237, 240]
24 22 [132, 44, 226, 229, 117, 145, 14, 169, 177, 1, 195, 235, 71, 21, 99, 101, 184, 32, 178, 139, 134, 173, 74, 93, 66, 18, 26, 180, 73, 67, 54, 196, 191, 162, 157, 10, 128, 107, 222, 38, 144, 142, 53, 102, 237, 233, 137, 59, 39, 97, 200, 230, 82, 171, 160, 212, 158, 49, 114, 8, 77, 94, 165, 141, 122, 188, 154, 4, 198, 143, 9, 55, 13, 105, 106, 227, 210, 2, 80, 95, 203, 201, 118, 152, 252, 187, 156, 116, 125, 199, 151, 197, 243, 79, 228, 185, 170, 96, 121, 84, 186, 214, 78, 64, 127, 255, 253, 164, 98, 103, 100, 3, 146, 48, 211, 30, 75, 245, 155, 153, 92, 81, 22, 7, 194, 27, 206, 131] [187, 19, 217, 89, 130, 212, 56, 140, 53, 23, 230, 196, 181, 38, 168, 170, 70, 189, 244, 147, 191, 242, 247, 225, 183, 203, 17, 24, 224, 133, 164, 119, 1, 25, 219, 83, 64, 21, 37, 72, 62, 234, 40, 91, 251, 74, 128, 141, 204, 178, 0, 77, 7, 249, 154, 30, 245, 193, 127, 213, 51, 161, 28, 250, 12, 63, 118, 107, 68, 129, 175, 166, 208, 75, 205, 92, 120, 60, 190, 109, 221, 36, 155, 246, 210, 5, 14, 220, 135, 228, 248, 115, 113, 43, 34, 20, 88, 145, 136, 138, 100, 42, 45, 253, 11, 47, 134, 29, 15, 6, 240, 48, 55, 182, 69, 46, 61, 104, 159, 126, 99, 39, 124, 238, 194, 27, 96, 3] [1, 3, 7, 14, 21, 27, 30, 38, 39, 48, 53, 55, 64, 74, 75, 77, 92, 96, 99, 100, 107, 118, 127, 128, 134, 141, 145, 154, 155, 164, 170, 178, 187, 191, 194, 196, 203, 210, 212, 228, 230, 245, 253]
25 23 [25, 37, 51, 69, 36, 237, 182, 163, 29, 144, 211, 39, 139, 204, 32, 126, 250, 56, 114, 111, 156, 30, 55, 72, 179, 124, 14, 203, 88, 110, 38, 18, 58, 170, 174, 148, 42, 57, 138, 87, 91, 207, 108, 66, 62, 184, 175, 90, 122, 149, 15, 172, 140, 92, 26, 193, 153, 28, 159, 160, 217, 173, 120, 221, 116, 191, 46, 2, 98, 161, 113, 115, 83, 198, 24, 65, 251, 240, 76, 209, 150, 195, 249, 186, 134, 162, 21, 5, 143, 4, 226, 100, 127, 52, 254, 44, 80, 215, 97, 107, 155, 82, 73, 197, 8, 225, 192, 45, 10, 81, 243, 189, 54, 164, 40, 19, 137, 158, 129, 68, 70, 53, 231, 176, 196, 165, 136, 43] [155, 179, 247, 45, 85, 26, 131, 110, 4, 149, 103, 180, 43, 210, 19, 143, 18, 50, 46, 240, 120, 62, 67, 76, 113, 181, 172, 162, 156, 92, 126, 69, 107, 48, 56, 221, 170, 29, 164, 207, 129, 96, 183, 127, 111, 23, 253, 205, 97, 226, 90, 88, 161, 231, 25, 157, 132, 37, 39, 136, 40, 153, 100, 254, 160, 191, 198, 204, 223, 6, 0, 30, 163, 193, 151, 174, 190, 237, 108, 51, 24, 245, 73, 98, 251, 82, 38, 182, 91, 138, 49, 242, 79, 14, 200, 72, 173, 186, 93, 145, 133, 249, 197, 232, 57, 150, 134, 166, 8, 68, 189, 54, 227, 52, 235, 16, 58, 211, 80, 219, 139, 15, 70, 114, 158, 1, 81, 5] [4, 5, 8, 14, 15, 18, 19, 24, 25, 26, 29, 30, 37, 38, 39, 40, 43, 45, 46, 51, 52, 54, 56, 57, 58, 62, 68, 69, 70, 72, 73, 76, 80, 81, 82, 88, 90, 91, 92, 97, 98, 100, 107, 108, 110, 111, 113, 114, 120, 126, 127, 129, 134, 136, 138, 139, 143, 149, 150, 153, 155, 156, 158, 160, 161, 162, 163, 164, 170, 172, 173, 174, 179, 182, 186, 189, 191, 193, 197, 198, 204, 207, 211, 221, 226, 231, 237, 240, 249, 251, 254]
26 24 [142, 130, 105, 108, 209, 10, 177, 52, 106, 33, 126, 4, 5, 118, 44, 24, 47, 39, 190, 81, 125, 104, 249, 57, 86, 28, 124, 62, 13, 234, 14, 150, 189, 148, 58, 87, 240, 43, 22, 80, 245, 12, 115, 244, 121, 171, 159, 90, 102, 247, 131, 163, 218, 120, 196, 61, 141, 70, 139, 220, 56, 117, 93, 100, 162, 6, 133, 37, 53, 25, 137, 122, 94, 119, 7, 111, 151, 188, 98, 84, 164, 213, 26, 67, 233, 59, 11, 16, 223, 101, 204, 210, 224, 250, 216, 54, 74, 36, 46, 91, 49, 252, 170, 158, 76, 32, 138, 198, 0, 73, 181, 60, 161, 9, 95, 174, 232, 173, 77, 254, 132, 21, 85, 144, 55, 140, 194, 68] [5, 94, 118, 244, 186, 15, 138, 101, 198, 164, 209, 204, 57, 180, 21, 56, 182, 217, 93, 80, 223, 205, 140, 183, 59, 250, 150, 91, 72, 192, 137, 45, 4, 87, 120, 16, 58, 126, 194, 134, 30, 35, 151, 73, 26, 195, 13, 153, 33, 83, 95, 224, 191, 55, 131, 75, 129, 254, 113, 0, 202, 188, 90, 156, 46, 96, 201, 108, 218, 216, 144, 103, 53, 251, 11, 184, 111, 125, 88, 61, 104, 25, 114, 84, 36, 24, 8, 127, 106, 48, 231, 196, 234, 133, 2, 64, 77, 197, 68, 132, 67, 161, 154, 181, 149, 42, 115, 155, 121, 74, 245, 6, 52, 167, 38, 34, 158, 78, 28, 100, 208, 82, 81, 232, 105, 10, 62, 43] [0, 4, 5, 6, 10, 11, 13, 16, 21, 24, 25, 26, 28, 33, 36, 43, 46, 52, 53, 55, 56, 57, 58, 59, 61, 62, 67, 68, 73, 74, 77, 80, 81, 84, 87, 90, 91, 93, 94, 95, 100, 101, 104, 105, 106, 108, 111, 115, 118, 120, 121, 125, 126, 131, 132, 133, 137, 138, 140, 144, 150, 151, 158, 161, 164, 181, 188, 194, 196, 198, 204, 209, 216, 218, 223, 224, 232, 234, 244, 245, 250, 254]
27 25 [24, 28, 167, 253, 5, 86, 156, 224, 164, 97, 66, 87, 171, 95, 124, 99, 240, 137, 14, 200, 209, 210, 185, 198, 148, 234, 25, 9, 64, 108, 184, 59, 30, 121, 149, 195, 150, 130, 117, 89, 191, 93, 225, 84, 161, 199, 16, 172, 173, 182, 63, 162, 21, 113, 189, 54, 70, 129, 19, 128, 165, 49, 180, 114, 122, 177, 220, 231, 135, 141, 69, 250, 73, 105, 212, 232, 183, 136, 140, 160, 96, 205, 211, 27, 35, 88, 252, 103, 203, 100, 174, 127, 197, 223, 42, 46, 222, 236, 77, 85, 106, 43, 82, 41, 152, 10, 18, 153, 65, 229, 142, 76, 36, 45, 22, 192, 169, 34, 71, 217, 90, 79, 201, 111, 33, 179, 2, 1] [157, 21, 175, 8, 58, 25, 135, 173, 180, 128, 129, 171, 179, 48, 90, 237, 122, 189, 187, 228, 77, 207, 114, 30, 63, 18, 95, 152, 22, 155, 247, 250, 5, 225, 165, 20, 137, 185, 218, 126, 248, 36, 72, 118, 242, 96, 233, 142, 17, 98, 146, 54, 106, 205, 42, 34, 198, 147, 10, 252, 140, 74, 73, 161, 202, 193, 226, 209, 254, 133, 145, 7, 102, 59, 158, 255, 177, 41, 60, 195, 156, 83, 105, 84, 2, 125, 87, 220, 43, 70, 206, 52, 19, 213, 32, 243, 49, 111, 181, 82, 76, 124, 188, 251, 33, 236, 44, 66, 191, 127, 183, 184, 16, 182, 11, 62, 27, 28, 134, 210, 245, 154, 78, 196, 249, 232, 108, 115] [2, 5, 10, 16, 18, 19, 21, 22, 25, 27, 28, 30, 33, 34, 36, 41, 42, 43, 49, 54, 59, 63, 66, 70, 73, 76, 77, 82, 84, 87, 90, 95, 96, 105, 106, 108, 111, 114, 122, 124, 127, 128, 129, 135, 137, 140, 142, 152, 156, 161, 165, 171, 173, 177, 179, 180, 182, 183, 184, 185, 189, 191, 195, 198, 205, 209, 210, 220, 225, 232, 236, 250, 252]
28 26 [43, 89, 58, 116, 35, 166, 155, 190, 75, 19, 14, 90, 8, 12, 42, 147, 96, 39, 93, 123, 29, 245, 127, 34, 134, 163, 241, 18, 197, 192, 11, 66, 235, 234, 229, 132, 118, 145, 33, 194, 223, 198, 176, 172, 57, 152, 76, 1, 13, 218, 68, 253, 140, 113, 105, 15, 74, 246, 128, 44, 6, 122, 250, 86, 72, 32, 3, 148, 84, 171, 121, 104, 45, 177, 5, 71, 125, 219, 249, 21, 151, 178, 181, 238, 109, 187, 142, 99, 150, 203, 54, 85, 213, 17, 63, 211, 62, 102, 156, 195, 82, 205, 65, 252, 95, 111, 168, 38, 164, 46, 25, 226, 88, 56, 107, 40, 108, 199, 16, 83, 196, 70, 153, 91, 188, 126, 10, 144] [67, 175, 70, 227, 244, 2, 49, 59, 26, 29, 139, 6, 77, 4, 157, 36, 43, 167, 173, 101, 172, 25, 98, 88, 203, 150, 155, 42, 54, 185, 144, 28, 226, 178, 99, 39, 252, 176, 34, 3, 187, 100, 10, 1, 18, 5, 241, 214, 192, 19, 180, 79, 204, 159, 27, 196, 237, 13, 75, 81, 137, 108, 201, 212, 149, 218, 16, 184, 110, 86, 37, 51, 160, 142, 40, 87, 60, 165, 170, 230, 50, 221, 135, 89, 217, 223, 174, 200, 125, 140, 46, 111, 106, 158, 191, 181, 20, 208, 240, 228, 48, 35, 128, 107, 236, 235, 82, 71, 182, 31, 8, 143, 138, 246, 194, 0, 162, 78, 24, 231, 136, 220, 242, 65, 163, 216, 11, 73] [1, 3, 5, 6, 8, 10, 11, 13, 16, 18, 19, 25, 29, 34, 35, 39, 40, 42, 43, 46, 54, 65, 70, 71, 75, 82, 86, 88, 89, 99, 107, 108, 111, 125, 128, 140, 142, 144, 150, 155, 163, 172, 176, 178, 181, 187, 192, 194, 196, 203, 218, 223, 226, 235, 241, 246, 252]
29 27 [113, 186, 51, 131, 184, 25, 224, 238, 253, 121, 204, 201, 87, 3, 202, 15, 163, 84, 203, 82, 55, 37, 1, 150, 172, 67, 206, 161, 61, 83, 148, 60, 237, 49, 31, 234, 24, 166, 134, 77, 124, 22, 104, 177, 152, 114, 162, 158, 23, 78, 102, 75, 189, 249, 226, 105, 2, 69, 180, 254, 157, 58, 181, 153, 229, 70, 164, 27, 59, 56, 174, 191, 41, 250, 182, 47, 178, 97, 213, 179, 12, 199, 194, 72, 146, 140, 111, 44, 221, 240, 255, 96, 214, 252, 123, 193, 143, 95, 248, 232, 159, 73, 175, 195, 39, 40, 91, 200, 116, 88, 17, 43, 168, 144, 223, 64, 137, 90, 212, 149, 130, 133, 188, 38, 71, 100, 230, 20] [147, 36, 25, 228, 20, 111, 120, 184, 165, 75, 188, 35, 217, 189, 70, 114, 45, 15, 177, 16, 104, 65, 24, 23, 44, 238, 94, 30, 105, 195, 163, 87, 102, 204, 159, 166, 97, 154, 182, 124, 5, 214, 221, 183, 67, 113, 220, 93, 109, 131, 91, 3, 203, 199, 146, 71, 142, 4, 66, 148, 175, 193, 82, 230, 74, 19, 49, 200, 108, 96, 73, 149, 253, 106, 140, 56, 38, 69, 81, 122, 179, 99, 255, 144, 245, 78, 224, 169, 153, 46, 89, 186, 47, 229, 12, 248, 254, 137, 37, 158, 205, 234, 201, 173, 246, 202, 6, 85, 170, 150, 90, 168, 152, 22, 134, 222, 161, 232, 247, 180, 32, 100, 55, 194, 125, 164, 50, 112] [3, 12, 15, 20, 22, 23, 24, 25, 37, 38, 44, 47, 49, 55, 56, 67, 69, 70, 71, 73, 75, 78, 82, 87, 90, 91, 96, 97, 100, 102, 104, 105, 111, 113, 114, 124, 131, 134, 137, 140, 144, 146, 148, 149, 150, 152, 153, 158, 159, 161, 163, 164, 166, 168, 175, 177, 179, 180, 182, 184, 186, 188, 189, 193, 194, 195, 199, 200, 201, 202, 203, 204, 214, 221, 224, 229, 230, 232, 234, 238, 248, 253, 254, 255]
30 28 [48, 238, 196, 250, 226, 236, 129, 187, 130, 169, 167, 94, 110, 122, 138, 114, 56, 165, 184, 14, 220, 18, 149, 132, 45, 46, 71, 252, 108, 237, 76, 69, 73, 180, 245, 34, 163, 171, 195, 159, 41, 248, 151, 51, 131, 228, 9, 103, 16, 158, 241, 235, 12, 64, 136, 77, 81, 142, 58, 135, 203, 70, 198, 125, 234, 4, 75, 80, 90, 5, 182, 153, 23, 208, 112, 183, 244, 47, 50, 86, 141, 100, 38, 162, 115, 178, 113, 26, 200, 177, 22, 19, 249, 150, 83, 33, 181, 223, 209, 35, 140, 253, 215, 144, 102, 246, 85, 118, 13, 20, 105, 55, 123, 119, 225, 239, 172, 63, 72, 44, 15, 188, 166, 65, 157, 43, 201, 78] [139, 52, 132, 164, 53, 102, 149, 214, 147, 3, 144, 163, 244, 67, 58, 205, 15, 203, 33, 200, 22, 46, 157, 57, 204, 105, 27, 92, 35, 175, 245, 77, 10, 54, 178, 253, 187, 138, 241, 66, 88, 34, 101, 216, 64, 32, 254, 255, 26, 236, 169, 252, 135, 104, 70, 30, 81, 198, 73, 61, 24, 121, 158, 192, 39, 9, 165, 196, 197, 21, 50, 160, 191, 145, 184, 123, 207, 224, 99, 93, 136, 112, 249, 199, 155, 231, 85, 250, 185, 190, 94, 186, 68, 44, 56, 237, 242, 180, 209, 28, 113, 118, 124, 19, 177, 251, 173, 60, 167, 233, 40, 218, 116, 153, 14, 188, 129, 159, 225, 48, 193, 170, 95, 195, 74, 211, 161, 43] [9, 14, 15, 19, 22, 26, 33, 34, 35, 43, 44, 46, 48, 50, 56, 58, 64, 70, 73, 77, 81, 85, 94, 102, 105, 112, 113, 118, 123, 129, 132, 135, 136, 138, 144, 149, 153, 157, 158, 159, 163, 165, 167, 169, 177, 178, 180, 184, 187, 188, 195, 196, 198, 200, 203, 209, 225, 236, 237, 241, 244, 245, 249, 250, 252, 253]
31 29 [217, 50, 160, 234, 240, 53, 162, 13, 84, 171, 1, 245, 0, 67, 138, 238, 198, 71, 27, 173, 28, 132, 24, 47, 255, 101, 176, 82, 252, 150, 151, 66, 106, 226, 222, 81, 70, 10, 79, 48, 211, 152, 126, 131, 207, 202, 94, 181, 122, 105, 83, 38, 17, 212, 178, 58, 188, 29, 148, 64, 135, 118, 100, 104, 12, 117, 95, 57, 113, 200, 14, 169, 22, 8, 5, 158, 233, 232, 194, 179, 85, 25, 154, 149, 16, 90, 140, 201, 223, 196, 184, 2, 129, 103, 157, 86, 144, 93, 96, 187, 30, 239, 143, 37, 120, 36, 237, 220, 130, 209, 210, 190, 180, 119, 197, 251, 254, 121, 205, 65, 192, 213, 107, 111, 75, 136, 49, 97] [67, 193, 39, 161, 246, 15, 158, 175, 54, 63, 28, 180, 96, 224, 184, 140, 111, 113, 59, 192, 204, 194, 249, 160, 238, 32, 166, 51, 84, 243, 10, 75, 247, 80, 202, 124, 186, 13, 103, 201, 72, 248, 1, 190, 97, 200, 93, 90, 242, 198, 79, 153, 30, 207, 255, 241, 139, 203, 228, 99, 214, 235, 106, 16, 41, 128, 183, 86, 58, 212, 0, 221, 208, 42, 218, 87, 55, 4, 151, 73, 254, 250, 122, 231, 71, 19, 145, 85, 244, 24, 112, 206, 174, 22, 138, 101, 225, 215, 88, 92, 150, 2, 14, 25, 177, 102, 155, 47, 62, 20, 74, 252, 134, 45, 147, 125, 240, 98, 53, 8, 209, 130, 229, 107, 156, 169, 196, 109] [0, 1, 2, 8, 10, 13, 14, 16, 22, 24, 25, 28, 30, 47, 53, 58, 67, 71, 75, 79, 84, 85, 86, 90, 93, 96, 97, 101, 103, 106, 107, 111, 113, 122, 130, 138, 140, 150, 151, 158, 160, 169, 180, 184, 190, 192, 194, 196, 198, 200, 201, 202, 207, 209, 212, 238, 240, 252, 254, 255]
32 30 [91, 89, 254, 244, 22, 229, 57, 178, 175, 124, 187, 46, 82, 201, 81, 165, 49, 43, 139, 8, 222, 156, 243, 172, 132, 159, 205, 88, 3, 138, 16, 193, 116, 20, 214, 144, 208, 241, 52, 13, 167, 2, 12, 182, 207, 253, 196, 230, 38, 92, 56, 4, 17, 169, 29, 11, 195, 247, 40, 173, 255, 102, 125, 202, 204, 100, 237, 210, 110, 251, 18, 197, 71, 34, 250, 10, 21, 15, 80, 137, 134, 161, 37, 79, 109, 184, 26, 65, 74, 51, 112, 85, 60, 185, 25, 93, 223, 5, 142, 234, 6, 203, 36, 150, 106, 168, 32, 105, 114, 141, 14, 158, 33, 9, 59, 231, 28, 216, 236, 68, 115, 145, 129, 240, 95, 180, 45, 119] [81, 189, 225, 86, 113, 64, 168, 62, 129, 22, 84, 145, 56, 112, 229, 103, 108, 132, 41, 191, 98, 59, 65, 167, 138, 73, 51, 159, 11, 28, 176, 158, 100, 165, 74, 208, 245, 38, 219, 150, 164, 3, 6, 152, 200, 90, 94, 232, 50, 154, 171, 174, 239, 102, 151, 221, 27, 126, 34, 30, 178, 179, 139, 17, 131, 63, 36, 5, 123, 141, 52, 244, 235, 10, 210, 172, 121, 31, 220, 201, 144, 99, 248, 125, 8, 24, 107, 215, 49, 42, 39, 162, 190, 161, 228, 14, 58, 116, 160, 70, 188, 209, 43, 253, 55, 170, 227, 230, 207, 237, 78, 66, 157, 68, 12, 18, 242, 163, 47, 236, 7, 224, 46, 184, 197, 203, 1, 198] [3, 5, 6, 8, 10, 11, 12, 14, 17, 18, 22, 28, 34, 36, 38, 43, 46, 49, 51, 52, 56, 59, 65, 68, 74, 81, 100, 102, 112, 116, 125, 129, 132, 138, 139, 141, 144, 145, 150, 158, 159, 161, 165, 167, 168, 172, 178, 184, 197, 201, 203, 207, 208, 210, 229, 230, 236, 237, 244, 253]
33 31 [94, 211, 43, 174, 255, 68, 1, 254, 0, 183, 198, 160, 64, 79, 164, 38, 97, 167, 220, 70, 35, 87, 54, 76, 75, 10, 213, 148, 212, 133, 22, 56, 14, 85, 197, 141, 236, 137, 202, 244, 31, 184, 143, 182, 93, 72, 168, 52, 50, 130, 246, 46, 17, 120, 203, 139, 81, 101, 151, 229, 116, 9, 95, 221, 102, 3, 201, 19, 176, 173, 59, 65, 108, 227, 224, 129, 53, 241, 172, 121, 251, 30, 234, 44, 84, 34, 159, 214, 2, 6, 24, 126, 88, 125, 112, 175, 189, 29, 163, 13, 240, 92, 186, 181, 238, 57, 4, 71, 122, 131, 178, 144, 158, 250, 61, 247, 216, 135, 231, 41, 170, 82, 98, 40, 217, 199, 243, 195] [44, 23, 96, 80, 81, 0, 100, 85, 24, 90, 152, 210, 179, 63, 71, 143, 89, 97, 123, 28, 170, 27, 107, 32, 178, 101, 248, 41, 197, 253, 193, 221, 243, 192, 99, 74, 228, 75, 52, 124, 47, 154, 66, 142, 153, 43, 102, 137, 38, 149, 139, 191, 204, 215, 234, 6, 8, 196, 70, 106, 88, 111, 36, 25, 249, 15, 200, 211, 168, 150, 128, 105, 17, 254, 255, 78, 226, 86, 180, 83, 91, 138, 77, 68, 103, 218, 185, 206, 30, 140, 232, 209, 5, 60, 239, 122, 87, 203, 18, 16, 231, 219, 212, 235, 230, 49, 159, 108, 146, 229, 241, 233, 169, 165, 190, 9, 42, 245, 164, 37, 46, 252, 171, 136, 118, 237, 217, 194] [0, 6, 9, 17, 24, 30, 38, 41, 43, 44, 46, 52, 68, 70, 71, 75, 81, 85, 87, 88, 97, 101, 102, 108, 122, 137, 139, 143, 159, 164, 168, 170, 178, 197, 203, 211, 212, 217, 221, 229, 231, 234, 241, 243, 254, 255]
34 32 [250, 139, 20, 180, 73, 192, 45, 242, 170, 184, 114, 98, 228, 134, 113, 130, 178, 123, 56, 161, 253, 9, 102, 186, 110, 84, 30, 59, 94, 3, 44, 33, 19, 5, 187, 26, 150, 203, 104, 215, 108, 181, 244, 243, 148, 46, 13, 37, 103, 223, 87, 202, 149, 214, 15, 82, 191, 23, 6, 117, 251, 229, 50, 67, 36, 60, 52, 120, 107, 85, 121, 81, 128, 7, 152, 158, 38, 43, 217, 183, 175, 249, 163, 95, 124, 116, 92, 35, 18, 236, 157, 80, 162, 112, 8, 90, 255, 125, 63, 173, 254, 99, 198, 126, 232, 118, 68, 88, 140, 89, 189, 194, 32, 10, 25, 119, 145, 34, 39, 234, 61, 166, 100, 218, 40, 168, 156, 83] [181, 100, 237, 192, 35, 252, 14, 111, 215, 129, 219, 7, 77, 235, 9, 207, 125, 86, 170, 201, 245, 169, 69, 72, 105, 92, 42, 155, 16, 55, 224, 101, 231, 157, 177, 17, 28, 171, 64, 66, 248, 74, 0, 227, 172, 62, 199, 106, 79, 205, 216, 126, 145, 70, 222, 122, 6, 114, 39, 31, 1, 134, 226, 61, 141, 220, 144, 189, 160, 133, 110, 193, 127, 137, 27, 158, 115, 41, 63, 75, 230, 131, 135, 221, 103, 179, 246, 143, 73, 178, 2, 206, 254, 29, 211, 210, 53, 147, 167, 138, 54, 195, 113, 33, 24, 194, 214, 132, 123, 247, 255, 109, 150, 165, 15, 76, 240, 57, 51, 93, 146, 153, 228, 202, 161, 238, 213, 78] [6, 7, 9, 15, 33, 35, 39, 61, 63, 73, 92, 100, 103, 110, 113, 114, 123, 125, 126, 134, 145, 150, 157, 158, 161, 170, 178, 181, 189, 192, 194, 202, 214, 215, 228, 254, 255]
35 33 [54, 182, 21, 237, 130, 154, 133, 138, 144, 220, 62, 3, 188, 231, 198, 213, 48, 209, 66, 178, 164, 14, 129, 131, 83, 233, 73, 156, 30, 151, 58, 94, 176, 86, 125, 17, 91, 45, 147, 205, 16, 247, 81, 162, 57, 63, 107, 23, 110, 253, 7, 120, 174, 67, 89, 194, 26, 19, 27, 68, 15, 72, 168, 226, 146, 5, 215, 199, 113, 59, 111, 163, 87, 245, 181, 218, 104, 126, 22, 179, 56, 10, 11, 189, 0, 42, 169, 202, 187, 75, 224, 210, 24, 141, 177, 193, 158, 225, 98, 76, 248, 88, 82, 135, 20, 186, 171, 219, 53, 201, 142, 175, 127, 35, 40, 249, 92, 32, 132, 80, 208, 115, 191, 84, 90, 4, 109, 97] [143, 58, 8, 76, 173, 87, 241, 213, 54, 180, 136, 156, 107, 193, 38, 147, 82, 75, 68, 30, 174, 28, 59, 78, 245, 72, 185, 135, 69, 191, 138, 92, 225, 150, 45, 226, 234, 109, 81, 130, 190, 52, 62, 90, 247, 103, 211, 154, 37, 108, 46, 53, 157, 22, 146, 84, 220, 73, 91, 224, 232, 79, 231, 26, 121, 2, 229, 116, 66, 228, 182, 152, 55, 153, 210, 160, 218, 131, 246, 127, 149, 238, 70, 235, 250, 114, 117, 183, 165, 196, 33, 199, 163, 12, 142, 178, 115, 113, 16, 243, 64, 99, 105, 171, 10, 132, 63, 244, 44, 118, 96, 161, 122, 255, 40, 134, 188, 39, 110, 200, 187, 14, 219, 41, 42, 0, 221, 24] [0, 10, 14, 16, 22, 24, 26, 30, 40, 42, 45, 53, 54, 58, 59, 62, 63, 66, 68, 72, 73, 75, 76, 81, 82, 84, 87, 90, 91, 92, 107, 109, 110, 113, 115, 127, 130, 131, 132, 135, 138, 142, 146, 147, 154, 156, 163, 171, 174, 178, 182, 187, 188, 191, 193, 199, 210, 213, 218, 219, 220, 224, 225, 226, 231, 245, 247]
36 34 [118, 74, 66, 206, 224, 64, 238, 170, 37, 113, 27, 82, 105, 67, 63, 134, 24, 35, 81, 40, 42, 189, 55, 214, 87, 204, 34, 232, 144, 159, 31, 195, 116, 91, 59, 123, 152, 28, 72, 254, 175, 6, 162, 45, 234, 223, 176, 245, 76, 211, 142, 241, 120, 61, 137, 210, 36, 166, 225, 71, 124, 22, 209, 103, 92, 203, 133, 10, 83, 213, 228, 236, 14, 136, 46, 255, 68, 197, 243, 149, 54, 160, 193, 191, 77, 168, 218, 49, 114, 230, 32, 147, 125, 121, 172, 151, 226, 178, 16, 110, 251, 235, 84, 132, 252, 192, 180, 97, 38, 39, 237, 102, 58, 139, 13, 246, 78, 70, 150, 108, 248, 85, 33, 4, 26, 143, 201, 186] [28, 235, 117, 142, 130, 194, 61, 31, 144, 180, 40, 71, 59, 233, 66, 21, 118, 16, 110, 195, 148, 46, 18, 139, 58, 55, 143, 22, 211, 214, 231, 38, 197, 187, 186, 226, 113, 155, 241, 87, 45, 175, 13, 83, 39, 115, 42, 108, 6, 78, 93, 185, 8, 164, 68, 137, 149, 203, 163, 212, 74, 136, 179, 98, 34, 229, 170, 123, 84, 188, 204, 27, 49, 33, 10, 152, 120, 107, 26, 3, 191, 166, 111, 159, 95, 97, 134, 54, 252, 72, 238, 151, 19, 213, 12, 132, 245, 99, 218, 184, 30, 43, 102, 217, 63, 36, 244, 224, 206, 167, 192, 62, 4, 236, 82, 60, 24, 70, 92, 64, 234, 190, 77, 14, 56, 219, 37, 222] [4, 6, 10, 13, 14, 16, 22, 24, 26, 27, 28, 31, 33, 34, 36, 37, 38, 39, 40, 42, 45, 46, 49, 54, 55, 58, 59, 61, 63, 64, 66, 68, 70, 71, 72, 74, 77, 78, 82, 83, 84, 87, 92, 97, 102, 108, 110, 113, 118, 120, 123, 132, 134, 136, 137, 139, 142, 143, 144, 149, 151, 152, 159, 166, 170, 175, 180, 186, 191, 192, 195, 197, 203, 204, 206, 211, 213, 214, 218, 224, 226, 234, 235, 236, 238, 241, 245, 252]
37 35 [22, 111, 13, 56, 148, 208, 202, 10, 47, 174, 14, 131, 192, 99, 254, 212, 103, 130, 24, 40, 100, 233, 124, 253, 105, 118, 133, 195, 119, 138, 216, 38, 140, 106, 6, 127, 21, 53, 28, 242, 4, 101, 80, 123, 48, 180, 117, 31, 190, 160, 17, 179, 59, 178, 139, 75, 102, 169, 1, 250, 246, 41, 36, 193, 172, 5, 96, 128, 222, 228, 25, 211, 63, 196, 98, 205, 241, 74, 125, 30, 165, 168, 94, 9, 170, 232, 217, 82, 81, 91, 78, 69, 86, 177, 29, 199, 219, 46, 3, 8, 184, 161, 152, 23, 116, 113, 115, 70, 244, 92, 164, 88, 110, 19, 84, 76, 32, 66, 181, 173, 166, 231, 155, 104, 52, 159, 223, 15] [220, 79, 56, 237, 34, 19, 202, 55, 70, 214, 43, 215, 41, 241, 11, 177, 16, 109, 9, 163, 63, 136, 154, 246, 124, 120, 206, 100, 49, 204, 247, 2, 213, 188, 145, 108, 168, 167, 229, 72, 67, 64, 232, 42, 208, 185, 187, 198, 35, 81, 95, 221, 165, 218, 201, 226, 242, 51, 200, 111, 10, 44, 240, 26, 175, 155, 129, 183, 248, 12, 150, 190, 141, 59, 126, 23, 238, 210, 116, 182, 33, 32, 93, 54, 224, 207, 130, 217, 77, 176, 252, 114, 4, 227, 132, 60, 45, 179, 0, 37, 73, 105, 191, 255, 157, 235, 83, 135, 239, 189, 244, 203, 234, 76, 174, 166, 223, 71, 162, 112, 144, 50, 97, 158, 27, 7, 230, 58] [4, 9, 10, 19, 23, 32, 41, 56, 59, 63, 70, 76, 81, 100, 105, 111, 116, 124, 130, 155, 165, 166, 168, 174, 177, 179, 190, 202, 208, 217, 223, 232, 241, 242, 244, 246]
38 36 [45, 64, 25, 225, 224, 111, 127, 9, 185, 107, 13, 68, 237, 23, 216, 32, 72, 190, 202, 100, 240, 5, 17, 200, 160, 244, 71, 51, 35, 136, 118, 170, 254, 95, 201, 149, 236, 43, 153, 159, 38, 196, 58, 75, 192, 155, 252, 151, 138, 2, 18, 89, 233, 49, 122, 203, 142, 70, 179, 229, 66, 162, 57, 186, 222, 53, 113, 231, 146, 246, 211, 125, 166, 86, 182, 22, 143, 248, 253, 131, 117, 54, 30, 114, 173, 139, 226, 59, 154, 126, 78, 48, 215, 243, 50, 187, 65, 56, 21, 37, 133, 110, 1, 195, 27, 115, 130, 164, 123, 74, 26, 157, 145, 234, 47, 106, 92, 239, 230, 24, 19, 242, 208, 93, 193, 12, 39, 171] [91, 145, 33, 196, 35, 20, 203, 79, 26, 184, 59, 88, 72, 193, 25, 39, 105, 24, 46, 215, 217, 65, 201, 110, 186, 225, 198, 250, 144, 239, 125, 19, 120, 75, 127, 149, 77, 222, 10, 53, 218, 138, 92, 113, 213, 171, 38, 178, 192, 182, 100, 23, 154, 168, 226, 152, 32, 43, 190, 70, 64, 132, 212, 161, 208, 58, 86, 183, 179, 48, 130, 45, 2, 244, 34, 129, 31, 22, 200, 68, 37, 90, 162, 18, 51, 112, 156, 232, 139, 160, 27, 180, 123, 111, 4, 204, 253, 89, 74, 142, 93, 249, 47, 214, 211, 6, 67, 119, 153, 21, 243, 252, 3, 254, 187, 95, 185, 155, 57, 126, 216, 150, 151, 81, 195, 122, 56, 9] [2, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 38, 39, 43, 45, 47, 48, 51, 53, 56, 57, 58, 59, 64, 65, 68, 70, 72, 74, 75, 86, 89, 92, 93, 95, 100, 110, 111, 113, 122, 123, 125, 126, 127, 130, 138, 139, 142, 145, 149, 151, 153, 154, 155, 160, 162, 171, 179, 182, 185, 186, 187, 190, 192, 193, 195, 196, 200, 201, 203, 208, 211, 215, 216, 222, 225, 226, 239, 243, 244, 252, 253, 254]
39 37 [90, 131, 196, 213, 45, 24, 38, 142, 147, 158, 118, 190, 40, 76, 245, 3, 170, 100, 37, 126, 140, 6, 246, 129, 194, 181, 111, 5, 85, 73, 46, 167, 54, 211, 89, 87, 74, 117, 183, 161, 15, 7, 136, 1, 200, 239, 19, 180, 207, 124, 16, 47, 27, 224, 187, 145, 144, 98, 165, 152, 134, 184, 235, 159, 55, 34, 219, 4, 30, 164, 252, 202, 191, 41, 56, 214, 21, 249, 238, 229, 23, 78, 67, 75, 139, 60, 250, 226, 110, 17, 18, 59, 8, 2, 137, 209, 189, 77, 72, 102, 119, 132, 188, 148, 61, 91, 69, 113, 66, 174, 208, 22, 58, 168, 70, 153, 138, 169, 146, 84, 48, 35, 123, 221, 106, 29, 151, 154] [110, 3, 108, 117, 7, 181, 18, 66, 139, 90, 16, 248, 5, 241, 46, 124, 118, 19, 27, 40, 170, 196, 24, 69, 36, 245, 188, 61, 153, 246, 134, 78, 14, 45, 253, 98, 50, 71, 229, 112, 8, 59, 202, 140, 38, 119, 232, 79, 194, 159, 144, 228, 32, 180, 148, 77, 189, 213, 60, 238, 127, 158, 41, 255, 192, 96, 215, 131, 55, 242, 76, 161, 226, 254, 176, 102, 6, 73, 126, 129, 221, 193, 47, 164, 239, 37, 191, 80, 186, 113, 1, 165, 123, 141, 233, 172, 72, 166, 101, 68, 49, 184, 136, 135, 97, 197, 2, 89, 74, 63, 216, 137, 250, 54, 155, 84, 0, 212, 252, 114, 67, 111, 30, 185, 230, 244, 171, 138] [1, 2, 3, 5, 6, 7, 8, 16, 18, 19, 24, 27, 30, 37, 38, 40, 41, 45, 46, 47, 54, 55, 59, 60, 61, 66, 67, 69, 72, 73, 74, 76, 77, 78, 84, 89, 90, 98, 102, 110, 111, 113, 117, 118, 119, 123, 124, 126, 129, 131, 134, 136, 137, 138, 139, 140, 144, 148, 153, 158, 159, 161, 164, 165, 170, 180, 181, 184, 188, 189, 191, 194, 196, 202, 213, 221, 226, 229, 238, 239, 245, 246, 250, 252]
40 38 [68, 42, 242, 215, 126, 155, 33, 181, 21, 125, 87, 102, 173, 60, 164, 174, 36, 131, 143, 63, 34, 86, 80, 58, 207, 239, 222, 9, 24, 202, 175, 128, 228, 187, 133, 151, 19, 92, 224, 30, 98, 0, 61, 201, 203, 116, 50, 113, 190, 14, 53, 49, 56, 191, 106, 22, 172, 109, 132, 205, 122, 140, 152, 195, 188, 107, 135, 197, 17, 81, 123, 245, 176, 97, 120, 213, 184, 100, 27, 5, 54, 161, 226, 158, 130, 31, 199, 232, 96, 229, 55, 112, 160, 10, 146, 101, 193, 99, 117, 51, 48, 104, 88, 7, 129, 77, 139, 37, 217, 94, 124, 119, 142, 66, 8, 238, 29, 74, 157, 4, 20, 134, 41, 148, 166, 103, 247, 147] [83, 184, 29, 42, 91, 229, 253, 117, 49, 13, 205, 85, 218, 208, 9, 183, 122, 101, 189, 67, 14, 37, 76, 94, 48, 17, 62, 149, 61, 159, 170, 75, 44, 90, 142, 164, 249, 7, 47, 126, 139, 132, 216, 10, 173, 26, 25, 254, 89, 70, 248, 154, 18, 68, 198, 155, 69, 163, 103, 32, 79, 228, 217, 2, 241, 45, 121, 204, 255, 144, 71, 141, 224, 145, 60, 210, 236, 230, 213, 35, 30, 11, 78, 225, 15, 169, 22, 64, 252, 219, 178, 54, 251, 186, 168, 8, 151, 95, 28, 74, 63, 200, 220, 143, 55, 99, 112, 114, 156, 92, 110, 96, 223, 100, 171, 136, 209, 240, 129, 21, 84, 59, 3, 82, 40, 177, 138, 88] [7, 8, 9, 10, 14, 17, 21, 22, 29, 30, 37, 42, 48, 49, 54, 55, 60, 61, 63, 68, 74, 88, 92, 94, 96, 99, 100, 101, 103, 112, 117, 122, 126, 129, 132, 139, 142, 143, 151, 155, 164, 173, 184, 205, 213, 217, 224, 228, 229]
41 39 [253, 41, 93, 243, 136, 238, 188, 85, 212, 55, 91, 61, 75, 116, 66, 81, 248, 120, 159, 207, 111, 6, 139, 164, 186, 12, 24, 181, 123, 112, 69, 50, 138, 189, 39, 29, 68, 163, 227, 146, 214, 187, 60, 18, 162, 228, 153, 23, 137, 210, 182, 99, 98, 155, 87, 203, 0, 209, 144, 173, 26, 96, 4, 179, 217, 74, 7, 208, 221, 104, 114, 180, 10, 77, 70, 40, 67, 82, 28, 191, 178, 252, 130, 21, 175, 165, 201, 51, 117, 32, 218, 34, 83, 25, 16, 128, 31, 194, 171, 9, 36, 193, 202, 109, 48, 127, 236, 73, 255, 13, 241, 240, 232, 115, 254, 172, 157, 101, 72, 251, 35, 131, 76, 237, 147, 79, 233, 121] [0, 143, 97, 32, 13, 85, 181, 228, 114, 218, 17, 38, 72, 186, 23, 252, 12, 69, 1, 238, 197, 88, 116, 99, 81, 75, 10, 248, 173, 100, 115, 92, 198, 162, 237, 70, 167, 255, 193, 43, 172, 241, 156, 188, 149, 203, 184, 199, 21, 145, 242, 253, 26, 66, 15, 20, 146, 120, 147, 7, 61, 98, 179, 30, 196, 180, 57, 102, 229, 240, 121, 125, 76, 91, 174, 42, 243, 50, 127, 158, 68, 141, 117, 207, 110, 175, 164, 122, 227, 190, 39, 3, 126, 47, 206, 166, 89, 101, 35, 140, 134, 123, 132, 239, 29, 194, 33, 73, 235, 195, 65, 182, 189, 64, 109, 246, 220, 159, 254, 202, 103, 19, 25, 60, 58, 78, 124, 170] [0, 7, 10, 12, 13, 21, 23, 25, 26, 29, 32, 35, 39, 50, 60, 61, 66, 68, 69, 70, 72, 73, 75, 76, 81, 85, 91, 98, 99, 101, 109, 114, 115, 116, 117, 120, 121, 123, 127, 146, 147, 159, 162, 164, 172, 173, 175, 179, 180, 181, 182, 186, 188, 189, 193, 194, 202, 203, 207, 218, 227, 228, 237, 238, 240, 241, 243, 248, 252, 253, 254, 255]
42 40 [255, 12, 158, 117, 69, 26, 154, 159, 219, 109, 70, 245, 136, 49, 127, 167, 128, 124, 94, 32, 152, 96, 142, 112, 46, 92, 139, 48, 18, 161, 236, 134, 57, 45, 53, 211, 192, 133, 30, 52, 17, 223, 71, 50, 232, 213, 33, 61, 156, 40, 4, 103, 146, 137, 121, 25, 1, 63, 244, 87, 175, 165, 64, 157, 11, 180, 107, 222, 37, 31, 101, 99, 191, 42, 148, 183, 65, 56, 111, 77, 5, 58, 227, 108, 78, 179, 166, 212, 120, 125, 238, 215, 131, 2, 171, 89, 116, 234, 114, 47, 36, 196, 151, 93, 230, 9, 155, 68, 15, 59, 119, 110, 35, 226, 126, 178, 23, 209, 170, 16, 248, 22, 144, 203, 143, 186, 100, 206] [85, 8, 108, 182, 146, 245, 64, 250, 174, 25, 172, 127, 168, 90, 179, 100, 76, 177, 249, 229, 73, 18, 228, 50, 116, 55, 231, 6, 199, 158, 113, 96, 82, 52, 132, 66, 19, 247, 242, 107, 80, 20, 236, 214, 176, 43, 138, 150, 15, 163, 209, 44, 79, 84, 86, 218, 21, 41, 67, 180, 173, 81, 104, 160, 101, 221, 224, 165, 35, 195, 200, 185, 243, 110, 14, 26, 34, 219, 189, 122, 204, 181, 115, 207, 239, 233, 24, 106, 202, 190, 156, 232, 112, 246, 147, 71, 136, 91, 140, 192, 118, 17, 28, 119, 208, 123, 164, 213, 241, 135, 54, 9, 70, 210, 36, 13, 145, 38, 46, 244, 222, 184, 149, 153, 75, 141, 154, 87] [9, 15, 17, 18, 25, 26, 35, 36, 46, 50, 52, 64, 70, 71, 87, 96, 100, 101, 107, 108, 110, 112, 116, 119, 127, 136, 146, 154, 156, 158, 165, 179, 180, 192, 209, 213, 219, 222, 232, 236, 244, 245]
43 41 [83, 142, 66, 130, 202, 11, 13, 139, 92, 100, 214, 21, 245, 176, 210, 71, 189, 235, 74, 9, 227, 226, 58, 122, 247, 104, 81, 194, 110, 20, 161, 249, 157, 150, 143, 121, 173, 204, 118, 133, 107, 10, 95, 8, 237, 37, 85, 2, 126, 75, 137, 233, 234, 28, 218, 219, 138, 148, 171, 47, 119, 170, 144, 31, 33, 30, 162, 223, 127, 147, 211, 236, 206, 63, 117, 35, 101, 67, 229, 106, 64, 158, 91, 141, 39, 222, 196, 89, 129, 19, 187, 14, 205, 169, 25, 99, 178, 42, 1, 77, 78, 132, 69, 193, 114, 61, 55, 164, 116, 41, 23, 242, 96, 108, 38, 84, 182, 238, 52, 22, 241, 215, 51, 217, 212, 140, 252, 70] [138, 185, 225, 196, 101, 129, 76, 108, 40, 106, 78, 128, 216, 195, 182, 189, 198, 171, 158, 130, 148, 21, 163, 126, 56, 1, 215, 74, 71, 154, 223, 54, 34, 240, 10, 233, 247, 234, 96, 70, 91, 169, 241, 0, 141, 88, 239, 160, 67, 63, 16, 18, 19, 159, 61, 58, 104, 173, 222, 205, 95, 111, 203, 238, 186, 103, 17, 150, 83, 85, 123, 212, 153, 110, 69, 48, 208, 105, 15, 31, 62, 59, 92, 80, 55, 84, 190, 2, 52, 115, 114, 109, 226, 64, 29, 42, 13, 152, 143, 107, 155, 236, 99, 132, 20, 142, 33, 100, 246, 51, 140, 35, 214, 177, 122, 37, 237, 219, 166, 11, 184, 176, 38, 180, 200, 66, 161, 97] [1, 2, 10, 11, 13, 19, 20, 21, 31, 33, 35, 37, 38, 42, 51, 52, 55, 58, 61, 63, 64, 66, 67, 69, 70, 71, 74, 78, 83, 84, 85, 91, 92, 95, 96, 99, 100, 101, 104, 106, 107, 108, 110, 114, 122, 126, 129, 130, 132, 138, 140, 141, 142, 143, 148, 150, 158, 161, 169, 171, 173, 176, 182, 189, 196, 205, 212, 214, 215, 219, 222, 223, 226, 233, 234, 236, 237, 238, 241, 247]
44 42 [26, 67, 91, 13, 45, 255, 131, 76, 211, 176, 126, 18, 237, 97, 15, 124, 128, 88, 66, 89, 30, 65, 83, 149, 236, 144, 160, 23, 79, 207, 94, 203, 197, 7, 218, 161, 205, 42, 80, 72, 107, 22, 209, 60, 172, 247, 157, 81, 99, 179, 95, 82, 139, 53, 216, 188, 70, 204, 12, 19, 213, 167, 104, 175, 59, 186, 222, 29, 116, 86, 181, 148, 38, 156, 168, 110, 184, 194, 130, 164, 122, 34, 252, 192, 78, 137, 242, 56, 74, 198, 193, 84, 75, 47, 2, 85, 240, 35, 163, 152, 63, 25, 61, 103, 234, 180, 182, 62, 173, 132, 100, 28, 151, 31, 190, 155, 206, 73, 231, 166, 158, 111, 127, 165, 229, 191, 93, 50] [95, 224, 84, 10, 143, 18, 91, 223, 104, 42, 140, 221, 179, 32, 186, 144, 236, 216, 164, 200, 247, 109, 110, 29, 85, 210, 2, 241, 71, 252, 19, 23, 135, 234, 211, 150, 168, 66, 159, 92, 141, 4, 48, 240, 245, 127, 3, 61, 57, 129, 125, 250, 130, 182, 38, 230, 166, 36, 83, 94, 111, 207, 249, 22, 72, 193, 116, 58, 12, 45, 112, 167, 74, 215, 190, 103, 24, 98, 138, 30, 147, 183, 16, 56, 152, 99, 217, 59, 96, 148, 142, 79, 105, 194, 254, 222, 47, 41, 9, 160, 205, 60, 26, 25, 35, 73, 49, 7, 123, 184, 65, 177, 227, 176, 87, 82, 67, 76, 237, 128, 6, 77, 157, 149, 131, 62, 97, 220] [2, 7, 12, 18, 19, 22, 23, 25, 26, 29, 30, 35, 38, 42, 45, 47, 56, 59, 60, 61, 62, 65, 66, 67, 72, 73, 74, 76, 79, 82, 83, 84, 85, 91, 94, 95, 97, 99, 103, 104, 110, 111, 116, 127, 128, 130, 131, 144, 148, 149, 152, 157, 160, 164, 166, 167, 168, 176, 179, 182, 184, 186, 190, 193, 194, 205, 207, 211, 216, 222, 234, 236, 237, 240, 247, 252]
45 43 [132, 30, 65, 191, 88, 168, 60, 170, 142, 146, 53, 250, 75, 143, 155, 57, 100, 4, 208, 243, 56, 246, 157, 120, 113, 206, 77, 21, 121, 255, 166, 227, 117, 219, 40, 89, 147, 254, 198, 144, 45, 141, 134, 164, 108, 232, 63, 245, 150, 66, 221, 48, 222, 0, 44, 167, 55, 244, 138, 26, 46, 3, 10, 237, 145, 54, 223, 95, 105, 11, 42, 160, 188, 27, 71, 24, 131, 51, 230, 76, 185, 62, 127, 156, 91, 234, 178, 13, 172, 73, 50, 86, 165, 87, 28, 96, 129, 217, 158, 114, 111, 8, 242, 136, 7, 201, 2, 41, 133, 104, 52, 94, 203, 162, 9, 124, 173, 37, 139, 70, 194, 115, 43, 161, 163, 205, 204, 72] [46, 31, 3, 220, 117, 1, 206, 77, 164, 126, 169, 200, 194, 223, 80, 0, 137, 144, 246, 11, 92, 15, 29, 209, 138, 202, 100, 129, 51, 99, 27, 216, 147, 5, 177, 131, 244, 240, 163, 104, 124, 96, 2, 132, 112, 24, 36, 66, 114, 247, 190, 97, 182, 91, 253, 18, 186, 72, 207, 239, 153, 47, 183, 249, 233, 61, 155, 17, 192, 32, 184, 60, 205, 214, 39, 168, 154, 122, 69, 90, 217, 151, 48, 57, 235, 19, 176, 16, 135, 152, 119, 59, 102, 236, 67, 89, 224, 110, 128, 158, 162, 187, 62, 238, 157, 40, 52, 73, 23, 30, 230, 231, 136, 65, 83, 212, 56, 252, 133, 118, 225, 20, 21, 181, 215, 78, 120, 197] [0, 2, 3, 11, 21, 24, 27, 30, 40, 46, 48, 51, 52, 56, 57, 60, 62, 65, 66, 72, 73, 77, 89, 91, 96, 100, 104, 114, 117, 120, 124, 129, 131, 132, 133, 136, 138, 144, 147, 155, 157, 158, 162, 163, 164, 168, 194, 205, 206, 217, 223, 230, 244, 246]
46 44 [89, 250, 21, 160, 71, 68, 188, 26, 192, 87, 54, 72, 162, 210, 254, 82, 149, 204, 77, 85, 75, 69, 63, 1, 35, 114, 62, 45, 109, 38, 224, 132, 147, 20, 172, 191, 70, 86, 84, 176, 27, 140, 99, 50, 226, 13, 64, 238, 104, 112, 74, 235, 105, 125, 164, 159, 40, 227, 234, 7, 228, 121, 128, 96, 156, 198, 163, 56, 37, 4, 44, 146, 73, 173, 168, 81, 80, 25, 52, 208, 16, 60, 245, 55, 138, 0, 53, 6, 102, 221, 95, 136, 24, 177, 142, 211, 233, 215, 33, 43, 110, 48, 17, 122, 83, 120, 248, 246, 103, 100, 223, 29, 141, 167, 115, 155, 135, 65, 126, 137, 134, 31, 219, 184, 255, 46, 212, 32] [7, 12, 224, 207, 2, 178, 126, 25, 116, 166, 56, 124, 102, 113, 30, 85, 91, 94, 232, 101, 1, 123, 183, 180, 244, 212, 181, 78, 225, 36, 150, 93, 127, 10, 185, 76, 8, 67, 48, 249, 200, 128, 100, 218, 205, 238, 108, 66, 243, 240, 221, 158, 174, 246, 11, 51, 251, 217, 97, 253, 237, 168, 220, 165, 61, 175, 43, 190, 139, 39, 194, 28, 131, 72, 154, 192, 195, 161, 3, 230, 59, 199, 219, 104, 187, 6, 201, 197, 164, 233, 148, 34, 235, 15, 152, 50, 241, 19, 9, 18, 5, 88, 68, 86, 92, 73, 118, 26, 242, 119, 90, 42, 170, 142, 203, 186, 193, 236, 214, 35, 80, 89, 64, 252, 111, 22, 38, 206] [1, 6, 7, 25, 26, 35, 38, 43, 48, 50, 56, 64, 68, 72, 73, 80, 85, 86, 89, 100, 102, 104, 126, 128, 142, 164, 168, 192, 212, 219, 221, 224, 233, 235, 238, 246]
47 45 [74, 9, 207, 177, 24, 175, 211, 229, 87, 222, 143, 252, 7, 134, 132, 5, 0, 250, 204, 59, 151, 201, 187, 155, 58, 118, 223, 67, 139, 146, 137, 88, 232, 172, 210, 153, 10, 77, 208, 178, 72, 39, 157, 46, 47, 221, 57, 82, 214, 159, 56, 119, 63, 168, 51, 79, 35, 125, 180, 103, 99, 147, 169, 26, 94, 148, 127, 171, 224, 212, 138, 251, 34, 198, 161, 135, 102, 238, 89, 20, 195, 209, 216, 239, 122, 234, 247, 140, 236, 182, 14, 116, 48, 129, 249, 206, 37, 170, 81, 131, 150, 245, 18, 235, 141, 106, 244, 144, 183, 154, 130, 33, 228, 52, 42, 101, 40, 230, 184, 97, 112, 133, 117, 191, 124, 50, 126, 108] [25, 171, 74, 148, 207, 177, 237, 143, 59, 57, 150, 123, 35, 70, 40, 37, 19, 139, 144, 228, 122, 132, 155, 94, 211, 89, 138, 80, 160, 72, 226, 81, 14, 244, 252, 219, 233, 206, 126, 247, 20, 255, 184, 5, 198, 117, 169, 214, 120, 168, 108, 39, 232, 127, 216, 251, 182, 239, 51, 115, 201, 170, 79, 110, 209, 175, 88, 134, 26, 16, 87, 235, 50, 130, 77, 92, 161, 188, 137, 102, 31, 180, 124, 55, 56, 157, 222, 199, 119, 86, 32, 145, 61, 0, 68, 186, 42, 78, 142, 146, 34, 82, 103, 125, 221, 204, 128, 212, 97, 196, 141, 147, 241, 250, 236, 49, 191, 249, 99, 245, 44, 58, 7, 116, 159, 224, 63, 43] [0, 5, 7, 14, 20, 26, 34, 35, 37, 39, 40, 42, 50, 51, 56, 57, 58, 59, 63, 72, 74, 77, 79, 81, 82, 87, 88, 89, 94, 97, 99, 102, 103, 108, 116, 117, 119, 122, 124, 125, 126, 127, 130, 132, 134, 137, 138, 139, 141, 143, 144, 146, 147, 148, 150, 155, 157, 159, 161, 168, 169, 170, 171, 175, 177, 180, 182, 184, 191, 198, 201, 204, 206, 207, 209, 211, 212, 214, 216, 221, 222, 224, 228, 232, 235, 236, 239, 244, 245, 247, 249, 250, 251, 252]
48 46 [25, 113, 164, 213, 27, 166, 238, 202, 149, 130, 30, 197, 127, 143, 174, 24, 240, 63, 89, 126, 139, 175, 26, 173, 35, 237, 169, 115, 16, 241, 234, 88, 68, 154, 137, 8, 190, 97, 110, 21, 224, 236, 170, 140, 124, 232, 13, 81, 57, 9, 228, 181, 94, 233, 69, 204, 7, 47, 18, 17, 128, 201, 251, 105, 243, 43, 176, 199, 117, 39, 46, 112, 100, 101, 82, 239, 3, 151, 62, 203, 98, 158, 119, 72, 231, 247, 210, 198, 165, 150, 83, 65, 152, 193, 12, 48, 96, 93, 15, 219, 19, 29, 131, 206, 54, 85, 230, 148, 211, 45, 120, 160, 122, 207, 161, 133, 147, 36, 156, 185, 6, 10, 90, 53, 87, 220, 1, 168] [92, 179, 14, 39, 41, 63, 174, 148, 45, 21, 18, 182, 212, 40, 8, 197, 237, 66, 46, 126, 116, 79, 195, 5, 149, 137, 167, 43, 36, 95, 205, 246, 85, 211, 127, 163, 60, 133, 221, 47, 83, 42, 24, 156, 180, 164, 252, 183, 123, 124, 188, 19, 192, 208, 44, 161, 110, 51, 122, 86, 112, 11, 111, 218, 236, 177, 228, 17, 49, 58, 157, 125, 254, 239, 59, 186, 26, 229, 233, 73, 106, 37, 120, 217, 90, 10, 16, 215, 169, 87, 235, 64, 105, 159, 3, 6, 166, 160, 70, 154, 191, 220, 189, 81, 171, 115, 76, 196, 118, 253, 241, 200, 68, 74, 88, 248, 91, 1, 141, 72, 245, 146, 32, 34, 25, 244, 98, 53] [1, 3, 6, 8, 10, 16, 17, 18, 19, 21, 24, 25, 26, 36, 39, 43, 45, 46, 47, 53, 63, 68, 72, 81, 83, 85, 87, 88, 90, 98, 105, 110, 112, 115, 120, 122, 124, 126, 127, 133, 137, 148, 149, 154, 156, 160, 161, 164, 166, 169, 174, 197, 211, 220, 228, 233, 236, 237, 239, 241]
49 47 [223, 221, 49, 78, 141, 190, 66, 147, 10, 34, 58, 134, 136, 244, 250, 65, 108, 181, 91, 44, 178, 0, 88, 85, 224, 100, 29, 98, 127, 39, 245, 219, 177, 242, 198, 77, 251, 8, 180, 193, 128, 133, 15, 42, 68, 73, 76, 225, 90, 164, 110, 195, 145, 56, 246, 131, 236, 35, 53, 95, 204, 212, 214, 18, 211, 20, 14, 87, 231, 158, 72, 184, 43, 57, 249, 59, 149, 218, 107, 240, 47, 167, 192, 227, 123, 109, 4, 50, 121, 142, 74, 96, 122, 202, 186, 169, 124, 111, 33, 137, 156, 126, 45, 89, 84, 38, 93, 37, 60, 28, 206, 187, 201, 171, 146, 222, 5, 116, 25, 30, 26, 54, 154, 41, 165, 159, 252, 148] [41, 137, 138, 116, 65, 221, 240, 193, 202, 159, 36, 52, 120, 10, 68, 241, 156, 84, 71, 251, 227, 39, 5, 180, 28, 178, 66, 233, 177, 76, 165, 158, 34, 44, 190, 79, 123, 216, 128, 33, 219, 45, 72, 140, 184, 22, 176, 59, 56, 214, 194, 147, 38, 143, 26, 49, 0, 109, 89, 19, 98, 54, 247, 25, 69, 75, 64, 1, 42, 136, 108, 179, 226, 175, 80, 232, 231, 85, 201, 81, 58, 27, 228, 250, 87, 17, 154, 55, 14, 130, 30, 218, 131, 51, 127, 20, 198, 205, 107, 244, 187, 141, 53, 126, 167, 246, 96, 134, 62, 90, 225, 73, 245, 206, 100, 43, 70, 35, 78, 168, 212, 121, 252, 162, 220, 145, 47, 197] [0, 5, 10, 14, 20, 25, 26, 28, 30, 33, 34, 35, 38, 39, 41, 42, 43, 44, 45, 47, 49, 53, 54, 56, 58, 59, 65, 66, 68, 72, 73, 76, 78, 84, 85, 87, 89, 90, 96, 98, 100, 107, 108, 109, 116, 121, 123, 126, 127, 128, 131, 134, 136, 137, 141, 145, 147, 154, 156, 158, 159, 165, 167, 177, 178, 180, 184, 187, 190, 193, 198, 201, 202, 206, 212, 214, 218, 219, 221, 225, 227, 231, 240, 244, 245, 246, 250, 251, 252]
50 48 [199, 71, 243, 12, 84, 29, 115, 128, 255, 7, 31, 175, 155, 49, 188, 39, 165, 180, 60, 97, 50, 206, 189, 85, 4, 65, 116, 185, 126, 46, 23, 114, 159, 2, 75, 101, 152, 63, 25, 88, 141, 147, 28, 229, 87, 125, 57, 173, 19, 54, 251, 77, 135, 113, 26, 191, 211, 86, 138, 208, 235, 66, 253, 151, 170, 131, 240, 194, 48, 62, 51, 55, 139, 80, 37, 160, 237, 91, 45, 92, 190, 148, 187, 98, 34, 58, 78, 216, 0, 119, 82, 111, 109, 1, 213, 90, 17, 79, 145, 18, 212, 112, 238, 94, 171, 225, 83, 169, 164, 89, 153, 27, 69, 42, 33, 100, 105, 195, 30, 32, 96, 76, 149, 120, 110, 202, 186, 95] [93, 185, 78, 251, 128, 153, 4, 237, 16, 69, 148, 204, 233, 224, 84, 60, 213, 252, 126, 81, 196, 255, 244, 113, 31, 71, 98, 243, 77, 229, 19, 219, 49, 163, 138, 190, 159, 100, 183, 18, 23, 54, 51, 27, 234, 228, 231, 7, 58, 35, 2, 14, 130, 73, 162, 123, 157, 67, 175, 179, 248, 12, 253, 86, 217, 24, 85, 116, 68, 53, 74, 109, 95, 189, 182, 239, 250, 43, 191, 211, 26, 235, 207, 104, 197, 34, 240, 133, 142, 227, 174, 29, 42, 76, 247, 117, 226, 1, 202, 110, 83, 145, 63, 135, 212, 90, 170, 147, 129, 88, 242, 176, 38, 173, 57, 225, 55, 177, 156, 201, 238, 39, 3, 194, 152, 64, 120, 112] [1, 2, 4, 7, 12, 18, 19, 23, 26, 27, 29, 31, 34, 39, 42, 49, 51, 54, 55, 57, 58, 60, 63, 69, 71, 76, 77, 78, 83, 84, 85, 86, 88, 90, 95, 98, 100, 109, 110, 112, 113, 116, 120, 126, 128, 135, 138, 145, 147, 148, 152, 153, 159, 170, 173, 175, 185, 189, 190, 191, 194, 202, 211, 212, 213, 225, 229, 235, 237, 238, 240, 243, 251, 253, 255]
51 49 [208, 165, 238, 245, 104, 110, 220, 233, 95, 70, 122, 60, 117, 244, 47, 135, 76, 154, 216, 97, 0, 180, 204, 255, 7, 181, 211, 75, 100, 72, 91, 49, 144, 124, 38, 232, 65, 251, 230, 137, 241, 50, 20, 193, 174, 80, 162, 224, 57, 142, 133, 253, 1, 202, 147, 148, 158, 191, 43, 41, 126, 85, 13, 27, 82, 222, 196, 182, 30, 68, 221, 141, 112, 134, 212, 2, 44, 113, 74, 176, 153, 52, 164, 9, 78, 48, 189, 121, 219, 84, 198, 105, 73, 163, 6, 127, 28, 225, 194, 145, 66, 160, 123, 203, 16, 71, 35, 101, 23, 33, 188, 90, 125, 237, 139, 63, 99, 40, 24, 128, 118, 248, 214, 69, 231, 177, 161, 39] [237, 213, 89, 171, 0, 14, 161, 113, 85, 23, 198, 202, 110, 126, 172, 230, 244, 86, 50, 33, 155, 201, 60, 197, 95, 13, 196, 241, 5, 143, 163, 165, 49, 160, 131, 97, 53, 133, 106, 79, 231, 81, 117, 39, 121, 100, 246, 167, 1, 168, 26, 127, 66, 219, 224, 253, 195, 71, 139, 41, 211, 142, 235, 159, 10, 188, 124, 158, 254, 57, 20, 65, 73, 137, 189, 242, 16, 148, 226, 112, 52, 27, 58, 51, 22, 56, 122, 7, 218, 30, 11, 42, 150, 225, 250, 228, 68, 38, 144, 236, 40, 180, 104, 153, 99, 47, 233, 248, 61, 177, 2, 204, 232, 96, 193, 245, 6, 69, 107, 185, 88, 67, 216, 15, 173, 90, 72, 102] [0, 1, 2, 6, 7, 13, 16, 20, 23, 27, 30, 33, 38, 39, 40, 41, 47, 49, 50, 52, 57, 60, 65, 66, 68, 69, 71, 72, 73, 85, 90, 95, 97, 99, 100, 104, 110, 112, 113, 117, 121, 122, 124, 126, 127, 133, 137, 139, 142, 144, 148, 153, 158, 160, 161, 163, 165, 177, 180, 188, 189, 193, 196, 198, 202, 204, 211, 216, 219, 224, 225, 230, 231, 232, 233, 237, 241, 244, 245, 248, 253]
52 50 [249, 29, 241, 55, 181, 41, 44, 67, 25, 149, 192, 228, 191, 164, 143, 96, 0, 112, 105, 193, 92, 220, 206, 119, 141, 30, 211, 214, 32, 196, 226, 243, 117, 85, 132, 78, 39, 59, 24, 238, 147, 171, 16, 5, 204, 110, 185, 202, 46, 144, 95, 199, 54, 186, 80, 73, 43, 120, 34, 62, 47, 135, 146, 205, 82, 166, 51, 72, 114, 231, 244, 248, 21, 33, 69, 131, 198, 79, 137, 174, 1, 45, 180, 18, 187, 63, 170, 107, 40, 179, 176, 50, 200, 88, 175, 203, 98, 35, 124, 84, 224, 13, 86, 28, 127, 14, 142, 115, 74, 128, 37, 104, 253, 77, 208, 100, 102, 157, 91, 81, 217, 255, 15, 168, 136, 195, 17, 230] [213, 208, 193, 55, 98, 76, 28, 223, 180, 241, 69, 146, 152, 65, 226, 120, 53, 158, 99, 103, 170, 41, 111, 84, 62, 187, 175, 116, 154, 77, 96, 25, 26, 137, 91, 171, 2, 224, 173, 27, 86, 206, 5, 119, 32, 161, 85, 33, 68, 236, 23, 139, 196, 217, 13, 6, 14, 167, 124, 144, 88, 174, 172, 233, 219, 106, 133, 108, 44, 30, 122, 100, 190, 205, 129, 57, 74, 238, 29, 132, 189, 166, 239, 127, 204, 20, 228, 11, 63, 254, 186, 168, 56, 24, 47, 230, 0, 94, 207, 177, 34, 40, 73, 15, 3, 184, 66, 81, 147, 249, 50, 67, 220, 235, 141, 51, 181, 107, 102, 214, 198, 72, 78, 130, 80, 110, 8, 203] [0, 5, 13, 14, 15, 24, 25, 28, 29, 30, 32, 33, 34, 40, 41, 44, 47, 50, 51, 55, 62, 63, 67, 69, 72, 73, 74, 77, 78, 80, 81, 84, 85, 86, 88, 91, 96, 98, 100, 102, 107, 110, 119, 120, 124, 127, 132, 137, 141, 144, 146, 147, 166, 168, 170, 171, 174, 175, 180, 181, 186, 187, 193, 196, 198, 203, 204, 205, 206, 208, 214, 217, 220, 224, 226, 228, 230, 238, 241, 249]
53 51 [71, 12, 53, 20, 90, 244, 87, 51, 238, 24, 126, 109, 11, 129, 40, 191, 103, 154, 167, 124, 43, 72, 41, 56, 99, 84, 42, 57, 235, 39, 215, 115, 199, 212, 149, 182, 61, 97, 22, 165, 125, 221, 185, 106, 138, 35, 63, 189, 1, 140, 116, 184, 83, 234, 159, 172, 176, 195, 78, 48, 174, 59, 114, 45, 194, 246, 218, 197, 29, 60, 26, 128, 204, 150, 156, 2, 14, 5, 69, 3, 8, 47, 33, 81, 4, 190, 148, 161, 229, 52, 21, 153, 111, 119, 163, 139, 117, 94, 67, 36, 232, 102, 9, 7, 101, 50, 188, 137, 132, 198, 44, 136, 216, 224, 170, 6, 169, 92, 219, 134, 177, 0, 118, 183, 88, 211, 147, 104] [252, 212, 160, 236, 209, 109, 202, 143, 255, 105, 228, 106, 156, 54, 62, 229, 58, 82, 223, 139, 68, 49, 136, 126, 253, 254, 187, 52, 217, 129, 124, 19, 41, 99, 247, 190, 91, 173, 33, 40, 220, 18, 46, 115, 231, 107, 164, 240, 64, 29, 59, 83, 76, 70, 86, 179, 26, 237, 55, 251, 79, 174, 137, 71, 180, 225, 207, 241, 37, 140, 153, 192, 81, 51, 80, 93, 61, 16, 171, 249, 60, 155, 245, 53, 210, 121, 222, 43, 244, 130, 34, 213, 122, 248, 108, 10, 158, 239, 196, 98, 205, 185, 32, 238, 57, 120, 227, 145, 191, 21, 193, 141, 165, 206, 150, 89, 38, 250, 135, 24, 200, 157, 168, 0, 87, 39, 66, 214] [0, 21, 24, 26, 29, 33, 39, 40, 41, 43, 51, 52, 53, 57, 59, 60, 61, 71, 81, 83, 87, 99, 106, 109, 115, 124, 126, 129, 136, 137, 139, 140, 150, 153, 156, 165, 174, 185, 190, 191, 212, 229, 238, 244]
54 52 [207, 108, 194, 18, 182, 186, 195, 117, 223, 222, 92, 132, 235, 40, 127, 107, 189, 228, 31, 101, 119, 97, 28, 42, 116, 155, 204, 93, 241, 89, 21, 149, 27, 252, 14, 202, 104, 206, 34, 163, 136, 177, 248, 209, 133, 237, 78, 190, 130, 16, 10, 70, 175, 11, 167, 60, 20, 148, 32, 154, 231, 110, 173, 103, 105, 114, 17, 123, 94, 251, 232, 214, 152, 96, 210, 122, 12, 64, 215, 75, 196, 69, 197, 98, 166, 63, 48, 128, 198, 181, 54, 184, 255, 246, 76, 1, 67, 147, 211, 52, 65, 129, 139, 137, 242, 143, 36, 102, 8, 22, 55, 200, 15, 165, 77, 185, 134, 58, 82, 39, 205, 124, 45, 157, 26, 191, 106, 49] [115, 42, 104, 175, 26, 56, 86, 210, 65, 164, 233, 91, 228, 97, 223, 38, 47, 46, 10, 155, 102, 126, 108, 177, 133, 254, 161, 122, 227, 63, 176, 90, 83, 106, 225, 142, 78, 71, 22, 234, 206, 55, 64, 229, 17, 185, 103, 209, 128, 21, 93, 198, 131, 28, 25, 245, 179, 199, 189, 19, 62, 188, 138, 100, 134, 213, 201, 51, 193, 44, 75, 121, 214, 23, 170, 148, 12, 50, 3, 6, 238, 187, 68, 24, 207, 178, 89, 15, 72, 84, 145, 35, 172, 45, 251, 58, 31, 190, 174, 162, 252, 53, 4, 147, 1, 57, 80, 74, 76, 135, 79, 29, 219, 224, 95, 249, 0, 212, 194, 220, 73, 87, 173, 69, 247, 60, 248, 125] [1, 10, 12, 15, 17, 21, 22, 26, 28, 31, 42, 45, 55, 58, 60, 63, 64, 65, 69, 75, 76, 78, 89, 93, 97, 102, 103, 104, 106, 108, 122, 128, 133, 134, 147, 148, 155, 173, 175, 177, 185, 189, 190, 194, 198, 206, 207, 209, 210, 214, 223, 228, 248, 251, 252]
55 53 [218, 189, 239, 222, 104, 165, 160, 85, 49, 72, 166, 177, 97, 130, 164, 147, 84, 172, 156, 106, 204, 255, 60, 51, 212, 221, 25, 196, 87, 79, 183, 149, 86, 200, 138, 181, 241, 113, 76, 224, 24, 73, 245, 63, 96, 159, 3, 48, 11, 137, 182, 57, 142, 112, 140, 31, 80, 95, 89, 211, 82, 23, 206, 227, 75, 167, 152, 151, 194, 173, 146, 135, 58, 64, 157, 213, 55, 192, 199, 188, 249, 56, 240, 186, 207, 145, 161, 148, 35, 108, 32, 78, 105, 66, 17, 109, 2, 118, 228, 4, 44, 65, 27, 125, 169, 208, 93, 10, 126, 6, 28, 36, 33, 144, 14, 155, 179, 232, 59, 154, 94, 237, 229, 54, 226, 114, 53, 201] [201, 181, 225, 249, 65, 183, 159, 20, 162, 171, 212, 121, 241, 138, 38, 207, 194, 191, 30, 210, 143, 216, 45, 218, 245, 158, 50, 197, 209, 118, 66, 18, 117, 135, 125, 234, 48, 157, 43, 146, 92, 19, 208, 119, 86, 0, 128, 93, 29, 8, 104, 46, 74, 172, 17, 177, 75, 202, 87, 122, 79, 99, 195, 12, 69, 133, 186, 156, 80, 180, 51, 149, 170, 175, 124, 35, 68, 193, 243, 169, 107, 251, 2, 228, 15, 206, 63, 78, 23, 132, 10, 98, 154, 56, 40, 205, 3, 247, 178, 163, 14, 164, 88, 176, 130, 248, 114, 190, 81, 196, 55, 185, 33, 145, 165, 24, 214, 53, 82, 37, 96, 21, 221, 230, 77, 103, 168, 153] [2, 3, 10, 14, 17, 23, 24, 33, 35, 48, 51, 53, 55, 56, 63, 65, 66, 75, 78, 79, 80, 82, 86, 87, 93, 96, 104, 114, 118, 125, 130, 135, 138, 145, 146, 149, 154, 156, 157, 159, 164, 165, 169, 172, 177, 181, 183, 186, 194, 196, 201, 206, 207, 208, 212, 218, 221, 228, 241, 245, 249]
56 54 [26, 21, 179, 2, 178, 236, 125, 167, 175, 150, 160, 218, 153, 1, 133, 91, 136, 112, 227, 67, 119, 97, 84, 131, 243, 65, 43, 188, 156, 108, 46, 33, 177, 142, 5, 115, 171, 211, 207, 121, 85, 10, 76, 149, 134, 203, 47, 198, 22, 73, 144, 27, 100, 143, 70, 234, 37, 32, 122, 140, 20, 225, 217, 190, 111, 71, 34, 135, 127, 75, 223, 226, 186, 185, 154, 99, 39, 53, 102, 132, 29, 101, 106, 15, 83, 244, 189, 155, 214, 36, 230, 251, 183, 77, 204, 38, 18, 42, 170, 197, 161, 195, 0, 69, 128, 90, 61, 123, 235, 16, 93, 107, 216, 68, 252, 95, 191, 166, 7, 172, 41, 253, 9, 199, 62, 221, 8, 120] [5, 43, 162, 166, 67, 134, 12, 214, 13, 137, 149, 181, 188, 39, 7, 109, 139, 41, 237, 80, 210, 128, 60, 99, 154, 21, 100, 165, 204, 61, 226, 152, 83, 224, 192, 48, 88, 253, 55, 73, 132, 160, 126, 174, 219, 178, 11, 247, 122, 96, 143, 74, 69, 78, 133, 118, 10, 163, 213, 175, 177, 225, 25, 233, 199, 236, 6, 53, 54, 216, 52, 235, 56, 14, 158, 205, 92, 58, 142, 117, 108, 249, 114, 200, 66, 62, 120, 63, 238, 57, 153, 197, 230, 155, 182, 18, 2, 0, 141, 22, 27, 107, 159, 26, 82, 85, 90, 202, 30, 33, 16, 176, 211, 157, 76, 242, 189, 35, 196, 59, 40, 203, 91, 215, 212, 254, 187, 190] [0, 2, 5, 7, 10, 16, 18, 21, 22, 26, 27, 33, 39, 41, 43, 53, 61, 62, 67, 69, 73, 76, 83, 85, 90, 91, 99, 100, 107, 108, 120, 122, 128, 132, 133, 134, 142, 143, 149, 153, 154, 155, 160, 166, 175, 177, 178, 188, 189, 190, 197, 199, 203, 204, 211, 214, 216, 225, 226, 230, 235, 236, 253]
57 55 [248, 222, 131, 31, 201, 184, 74, 197, 154, 88, 137, 226, 82, 217, 255, 171, 9, 6, 219, 57, 161, 145, 155, 100, 234, 106, 77, 191, 12, 37, 199, 229, 200, 85, 118, 22, 69, 47, 90, 177, 214, 183, 60, 46, 38, 20, 249, 81, 196, 190, 34, 108, 56, 231, 241, 114, 211, 54, 243, 207, 78, 232, 136, 61, 45, 179, 95, 27, 185, 122, 125, 192, 83, 59, 166, 18, 63, 208, 151, 170, 93, 147, 14, 115, 101, 120, 104, 167, 41, 29, 159, 25, 92, 213, 209, 216, 124, 17, 33, 188, 19, 10, 75, 181, 228, 142, 50, 66, 253, 238, 130, 0, 4, 113, 133, 84, 202, 21, 76, 129, 237, 138, 99, 91, 148, 127, 52, 157] [166, 73, 172, 182, 45, 212, 186, 13, 226, 129, 195, 216, 134, 144, 47, 198, 162, 107, 219, 202, 165, 206, 220, 128, 109, 79, 35, 2, 126, 152, 239, 210, 121, 96, 204, 29, 39, 193, 163, 132, 247, 41, 249, 3, 189, 80, 36, 93, 88, 178, 175, 43, 141, 28, 22, 52, 174, 103, 11, 253, 177, 230, 223, 67, 5, 140, 252, 65, 15, 111, 55, 4, 112, 98, 68, 17, 246, 237, 218, 23, 217, 176, 34, 26, 100, 155, 250, 203, 48, 72, 51, 105, 145, 97, 173, 149, 236, 139, 54, 8, 214, 62, 194, 42, 241, 233, 85, 58, 242, 19, 180, 168, 151, 119, 244, 254, 225, 169, 49, 32, 238, 187, 24, 117, 59, 158, 84, 156] [4, 17, 19, 22, 29, 34, 41, 45, 47, 52, 54, 59, 84, 85, 88, 93, 100, 129, 145, 151, 155, 166, 177, 202, 214, 216, 217, 219, 226, 237, 238, 241, 249, 253]
58 56 [87, 195, 76, 243, 23, 130, 241, 205, 215, 107, 117, 236, 252, 201, 79, 29, 103, 193, 210, 203, 80, 175, 143, 221, 174, 45, 2, 37, 36, 65, 116, 154, 5, 32, 240, 16, 225, 250, 124, 147, 25, 11, 151, 44, 242, 59, 19, 227, 249, 46, 224, 198, 128, 163, 92, 74, 142, 96, 12, 213, 83, 145, 49, 52, 105, 155, 67, 72, 35, 207, 159, 10, 56, 177, 211, 42, 248, 62, 123, 17, 78, 84, 244, 81, 218, 57, 104, 41, 73, 208, 8, 39, 66, 38, 141, 48, 157, 223, 217, 149, 136, 125, 133, 101, 111, 183, 43, 194, 22, 132, 34, 68, 165, 138, 184, 171, 127, 122, 181, 94, 20, 70, 53, 173, 232, 18, 89, 14] [112, 105, 200, 252, 167, 71, 80, 99, 201, 203, 89, 182, 117, 243, 223, 225, 177, 79, 62, 173, 38, 110, 130, 86, 220, 57, 210, 239, 77, 207, 83, 24, 43, 124, 116, 133, 34, 114, 152, 135, 214, 254, 139, 233, 49, 184, 67, 199, 134, 150, 101, 171, 151, 174, 0, 216, 1, 44, 248, 98, 186, 149, 215, 168, 36, 48, 120, 95, 178, 96, 32, 190, 88, 118, 228, 229, 163, 192, 121, 21, 81, 146, 156, 108, 8, 61, 137, 53, 218, 230, 60, 23, 40, 250, 142, 14, 52, 31, 54, 56, 45, 5, 123, 245, 68, 27, 13, 249, 29, 138, 74, 176, 136, 155, 10, 238, 170, 213, 191, 232, 104, 158, 69, 59, 97, 47, 166, 189] [5, 8, 10, 14, 23, 29, 32, 34, 36, 38, 43, 44, 45, 48, 49, 52, 53, 56, 57, 59, 62, 67, 68, 74, 79, 80, 81, 83, 89, 96, 101, 104, 105, 116, 117, 123, 124, 130, 133, 136, 138, 142, 149, 151, 155, 163, 171, 173, 174, 177, 184, 201, 203, 207, 210, 213, 215, 218, 223, 225, 232, 243, 248, 249, 250, 252]
59 57 [122, 222, 51, 117, 128, 41, 133, 136, 30, 149, 140, 37, 130, 47, 38, 107, 218, 48, 177, 84, 132, 213, 112, 36, 220, 67, 164, 90, 243, 26, 144, 254, 101, 61, 211, 118, 18, 57, 45, 99, 46, 234, 215, 111, 221, 131, 89, 188, 25, 141, 127, 71, 54, 148, 150, 85, 153, 207, 72, 102, 251, 171, 170, 96, 119, 92, 44, 185, 87, 236, 248, 50, 55, 80, 239, 192, 21, 70, 91, 125, 28, 223, 10, 142, 155, 20, 249, 181, 79, 9, 233, 199, 235, 83, 53, 43, 24, 88, 156, 166, 73, 81, 151, 16, 143, 98, 172, 174, 137, 78, 175, 49, 31, 56, 8, 193, 93, 3, 216, 86, 110, 252, 202, 146, 162, 6, 255, 109] [73, 173, 100, 98, 99, 253, 86, 40, 164, 245, 171, 128, 5, 12, 218, 201, 63, 53, 181, 160, 229, 68, 153, 19, 147, 179, 233, 158, 212, 85, 197, 91, 42, 97, 0, 113, 39, 69, 204, 194, 64, 29, 228, 249, 200, 106, 183, 241, 220, 76, 244, 89, 15, 10, 105, 242, 232, 255, 166, 94, 108, 152, 9, 135, 95, 122, 22, 23, 170, 163, 189, 208, 178, 203, 167, 18, 214, 165, 168, 141, 58, 49, 154, 65, 44, 247, 33, 190, 92, 2, 77, 226, 195, 224, 180, 134, 60, 14, 117, 75, 32, 188, 74, 62, 126, 121, 4, 206, 37, 192, 176, 116, 198, 82, 34, 139, 110, 28, 182, 236, 26, 25, 54, 6, 38, 205, 84, 115] [6, 9, 10, 18, 25, 26, 28, 37, 38, 44, 49, 53, 54, 73, 84, 85, 86, 89, 91, 92, 98, 99, 110, 117, 122, 128, 141, 153, 164, 166, 170, 171, 181, 188, 192, 218, 220, 233, 236, 249, 255]
60 58 [98, 26, 62, 141, 81, 214, 132, 127, 158, 160, 15, 195, 103, 153, 61, 56, 254, 228, 181, 152, 213, 130, 203, 197, 43, 251, 220, 71, 164, 2, 165, 194, 146, 46, 94, 76, 240, 5, 140, 65, 83, 134, 167, 151, 29, 52, 120, 136, 105, 128, 119, 112, 122, 217, 216, 123, 173, 116, 25, 107, 115, 74, 55, 226, 21, 60, 87, 96, 243, 176, 182, 20, 8, 200, 38, 121, 91, 129, 66, 64, 7, 222, 183, 187, 84, 209, 117, 114, 180, 199, 40, 168, 14, 33, 193, 102, 82, 13, 99, 162, 3, 234, 67, 31, 238, 19, 157, 93, 161, 17, 241, 9, 172, 125, 166, 135, 126, 24, 139, 48, 111, 92, 225, 106, 150, 50, 49, 95] [189, 209, 166, 52, 130, 210, 78, 186, 216, 151, 107, 6, 95, 251, 93, 21, 17, 191, 22, 18, 87, 79, 164, 212, 106, 69, 84, 147, 105, 201, 56, 66, 127, 195, 31, 114, 185, 141, 10, 88, 99, 125, 197, 158, 57, 211, 145, 46, 167, 16, 104, 61, 118, 0, 204, 174, 225, 25, 113, 172, 128, 206, 24, 182, 26, 41, 171, 215, 40, 190, 50, 165, 74, 221, 110, 98, 1, 7, 250, 67, 27, 229, 47, 238, 112, 162, 157, 188, 246, 102, 83, 123, 135, 153, 9, 144, 239, 120, 134, 150, 187, 160, 176, 237, 208, 2, 129, 39, 217, 220, 60, 11, 76, 80, 228, 152, 33, 103, 91, 173, 82, 94, 117, 68, 81, 131, 5, 96] [2, 5, 7, 9, 17, 21, 24, 25, 26, 31, 33, 40, 46, 50, 52, 56, 60, 61, 66, 67, 74, 76, 81, 82, 83, 84, 87, 91, 93, 94, 95, 96, 98, 99, 102, 103, 105, 106, 107, 112, 114, 117, 120, 123, 125, 127, 128, 129, 130, 134, 135, 141, 150, 151, 152, 153, 157, 158, 160, 162, 164, 165, 166, 167, 172, 173, 176, 182, 187, 195, 197, 209, 216, 217, 220, 225, 228, 238, 251]
61 59 [205, 159, 8, 189, 121, 29, 225, 76, 99, 6, 149, 37, 150, 216, 88, 203, 127, 58, 211, 93, 190, 16, 241, 47, 81, 195, 11, 129, 71, 178, 40, 122, 154, 89, 21, 20, 146, 96, 69, 73, 214, 39, 160, 38, 255, 219, 4, 84, 196, 184, 87, 209, 162, 103, 166, 42, 155, 2, 74, 238, 169, 145, 142, 168, 98, 163, 75, 35, 234, 179, 1, 67, 41, 111, 56, 107, 62, 23, 77, 152, 36, 104, 181, 172, 217, 156, 125, 180, 198, 210, 165, 183, 212, 64, 27, 100, 0, 220, 236, 106, 177, 112, 148, 113, 230, 199, 153, 24, 5, 90, 201, 60, 82, 19, 101, 65, 186, 18, 192, 171, 120, 229, 114, 70, 12, 237, 108, 30] [49, 203, 179, 153, 67, 25, 93, 0, 40, 89, 218, 146, 70, 9, 120, 138, 104, 31, 41, 96, 80, 76, 106, 195, 69, 141, 197, 10, 130, 121, 215, 20, 65, 201, 187, 82, 237, 183, 226, 160, 191, 101, 139, 103, 102, 21, 100, 71, 108, 238, 16, 4, 44, 239, 174, 202, 241, 184, 37, 229, 214, 55, 131, 190, 231, 99, 36, 244, 161, 118, 17, 50, 39, 95, 137, 219, 177, 148, 149, 216, 129, 30, 233, 33, 147, 29, 236, 74, 230, 87, 19, 181, 88, 144, 166, 143, 105, 134, 196, 73, 27, 75, 18, 164, 109, 204, 113, 222, 59, 176, 245, 135, 171, 162, 119, 34, 156, 35, 173, 8, 167, 5, 248, 90, 126, 47, 81, 136] [0, 4, 5, 8, 16, 18, 19, 20, 21, 27, 29, 30, 35, 36, 37, 39, 40, 41, 47, 65, 67, 69, 70, 71, 73, 74, 75, 76, 81, 82, 87, 88, 89, 90, 93, 96, 99, 100, 101, 103, 104, 106, 108, 113, 120, 121, 129, 146, 148, 149, 153, 156, 160, 162, 166, 171, 177, 179, 181, 183, 184, 190, 195, 196, 201, 203, 214, 216, 219, 229, 230, 236, 237, 238, 241]
62 60 [162, 122, 131, 126, 97, 205, 36, 83, 163, 15, 52, 232, 1, 93, 156, 200, 72, 245, 176, 189, 64, 207, 241, 77, 172, 65, 151, 228, 67, 40, 90, 21, 128, 130, 142, 124, 28, 68, 250, 174, 51, 179, 54, 31, 27, 248, 158, 238, 210, 20, 127, 252, 191, 16, 177, 8, 82, 63, 78, 84, 96, 199, 0, 37, 53, 29, 193, 114, 129, 19, 35, 111, 226, 13, 88, 14, 203, 227, 103, 175, 201, 17, 33, 121, 157, 55, 133, 94, 18, 143, 89, 188, 212, 148, 185, 71, 221, 135, 100, 106, 184, 236, 60, 87, 164, 233, 42, 117, 108, 239, 242, 196, 102, 46, 47, 118, 73, 186, 110, 182, 69, 149, 224, 198, 217, 234, 99, 225] [31, 130, 4, 99, 187, 88, 213, 103, 205, 162, 93, 117, 192, 200, 225, 155, 236, 151, 242, 252, 181, 253, 89, 165, 7, 66, 10, 85, 37, 223, 204, 87, 77, 20, 138, 21, 241, 65, 0, 72, 13, 232, 206, 212, 108, 51, 133, 42, 18, 122, 209, 69, 142, 12, 248, 60, 16, 196, 239, 110, 136, 102, 164, 17, 221, 73, 55, 174, 226, 134, 220, 234, 27, 54, 145, 52, 158, 63, 71, 15, 104, 100, 157, 105, 149, 215, 36, 70, 128, 57, 97, 120, 129, 189, 111, 179, 78, 148, 34, 107, 240, 67, 19, 44, 47, 175, 40, 53, 125, 94, 182, 201, 191, 127, 245, 80, 166, 171, 118, 14, 217, 203, 186, 84, 227, 82, 83, 32] [0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 27, 31, 36, 37, 40, 42, 47, 51, 52, 53, 54, 55, 60, 63, 65, 67, 69, 71, 72, 73, 77, 78, 82, 83, 84, 87, 88, 89, 93, 94, 97, 99, 100, 102, 103, 108, 110, 111, 117, 118, 122, 127, 128, 129, 130, 133, 142, 148, 149, 151, 157, 158, 162, 164, 174, 175, 179, 182, 186, 189, 191, 196, 200, 201, 203, 205, 212, 217, 221, 225, 226, 227, 232, 234, 236, 239, 241, 242, 245, 248, 252]
63 61 [247, 207, 102, 61, 8, 6, 189, 186, 219, 213, 148, 200, 98, 248, 129, 35, 109, 174, 240, 69, 106, 160, 146, 40, 48, 107, 224, 208, 175, 90, 122, 123, 209, 149, 62, 126, 110, 236, 85, 9, 68, 217, 121, 137, 24, 212, 50, 65, 203, 71, 187, 56, 76, 178, 222, 158, 156, 30, 143, 99, 54, 112, 111, 7, 130, 125, 183, 100, 53, 152, 227, 46, 211, 170, 167, 241, 5, 182, 173, 74, 23, 171, 80, 242, 243, 124, 27, 39, 221, 72, 190, 89, 153, 141, 215, 206, 231, 3, 0, 66, 17, 169, 44, 16, 25, 131, 210, 2, 154, 97, 192, 163, 179, 84, 63, 28, 14, 57, 250, 114, 161, 92, 191, 249, 75, 188, 103, 15] [57, 235, 242, 204, 22, 77, 120, 15, 103, 183, 11, 222, 213, 124, 149, 115, 189, 107, 186, 36, 30, 17, 80, 239, 65, 44, 122, 50, 234, 54, 10, 87, 49, 26, 164, 152, 248, 176, 162, 39, 190, 203, 3, 27, 221, 137, 148, 105, 142, 109, 205, 66, 179, 0, 91, 14, 214, 151, 175, 254, 136, 6, 206, 131, 128, 73, 58, 19, 16, 38, 99, 42, 31, 225, 158, 188, 90, 134, 112, 219, 174, 171, 194, 25, 249, 212, 211, 228, 43, 60, 64, 102, 62, 146, 130, 97, 156, 53, 56, 170, 8, 29, 143, 55, 250, 100, 68, 106, 84, 138, 215, 180, 236, 198, 224, 231, 165, 114, 76, 226, 207, 35, 1, 246, 144, 23, 7, 126] [0, 3, 6, 7, 8, 14, 15, 16, 17, 23, 25, 27, 30, 35, 39, 44, 50, 53, 54, 56, 57, 62, 65, 66, 68, 76, 80, 84, 90, 97, 99, 100, 102, 103, 106, 107, 109, 112, 114, 122, 124, 126, 130, 131, 137, 143, 146, 148, 149, 152, 156, 158, 170, 171, 174, 175, 179, 183, 186, 188, 189, 190, 203, 206, 207, 211, 212, 213, 215, 219, 221, 222, 224, 231, 236, 242, 248, 249, 250]
64 62 [208, 179, 190, 88, 105, 214, 166, 177, 2, 126, 157, 170, 51, 225, 158, 140, 142, 108, 80, 21, 143, 175, 40, 106, 81, 95, 115, 230, 69, 189, 249, 181, 94, 124, 121, 62, 103, 114, 9, 137, 152, 162, 90, 198, 195, 125, 82, 217, 71, 112, 244, 7, 8, 98, 30, 53, 49, 155, 251, 13, 97, 58, 18, 15, 20, 202, 64, 79, 70, 42, 240, 47, 39, 14, 73, 222, 224, 160, 24, 92, 104, 25, 72, 60, 44, 57, 133, 45, 43, 91, 176, 68, 29, 174, 83, 46, 3, 247, 17, 169, 110, 229, 220, 250, 149, 22, 194, 54, 116, 138, 163, 135, 172, 210, 241, 35, 151, 159, 215, 76, 48, 231, 66, 243, 197, 93, 218, 128] [70, 38, 131, 66, 245, 25, 210, 61, 45, 173, 121, 34, 206, 23, 164, 150, 27, 51, 252, 106, 240, 204, 40, 32, 109, 226, 148, 2, 203, 238, 77, 134, 58, 190, 132, 144, 241, 179, 65, 230, 207, 158, 111, 123, 196, 198, 102, 172, 193, 175, 156, 36, 221, 153, 15, 98, 76, 8, 149, 220, 188, 222, 41, 53, 236, 182, 49, 95, 69, 214, 30, 233, 139, 39, 225, 84, 191, 119, 228, 26, 211, 19, 4, 89, 129, 120, 244, 5, 217, 199, 87, 146, 189, 22, 99, 154, 212, 64, 74, 93, 201, 213, 94, 200, 247, 163, 169, 197, 31, 162, 138, 168, 101, 14, 209, 85, 44, 42, 56, 78, 242, 232, 60, 127, 103, 80, 110, 12] [2, 8, 14, 15, 22, 25, 30, 39, 40, 42, 44, 45, 49, 51, 53, 58, 60, 64, 66, 69, 70, 76, 80, 93, 94, 95, 98, 103, 106, 110, 121, 138, 149, 158, 162, 163, 169, 172, 175, 179, 189, 190, 197, 198, 210, 214, 217, 220, 222, 225, 230, 240, 241, 244, 247]
65 63 [242, 44, 174, 36, 133, 90, 72, 124, 95, 223, 182, 157, 16, 58, 85, 57, 167, 180, 196, 225, 220, 68, 156, 203, 6, 191, 15, 76, 117, 148, 131, 108, 70, 104, 13, 150, 123, 240, 151, 55, 132, 201, 89, 173, 98, 199, 237, 127, 186, 206, 253, 20, 140, 244, 61, 22, 27, 79, 38, 137, 49, 210, 154, 92, 97, 75, 112, 142, 252, 32, 159, 135, 51, 169, 39, 3, 200, 181, 62, 218, 195, 83, 143, 205, 19, 96, 26, 202, 236, 18, 145, 43, 184, 2, 197, 65, 121, 109, 229, 107, 221, 190, 47, 73, 8, 93, 35, 41, 129, 155, 211, 31, 146, 23, 78, 136, 149, 50, 81, 217, 162, 100, 185, 34, 77, 130, 71, 110] [75, 136, 163, 146, 228, 117, 112, 154, 184, 78, 77, 164, 63, 242, 43, 62, 200, 193, 202, 93, 35, 87, 123, 20, 122, 26, 220, 14, 131, 165, 148, 185, 142, 172, 2, 8, 197, 237, 130, 240, 222, 1, 253, 86, 182, 196, 76, 84, 135, 36, 18, 73, 90, 114, 236, 143, 103, 229, 214, 167, 181, 232, 129, 157, 124, 221, 15, 34, 223, 206, 44, 38, 169, 16, 195, 89, 175, 141, 115, 6, 159, 186, 155, 210, 145, 180, 219, 42, 32, 156, 56, 137, 246, 11, 92, 65, 127, 201, 107, 108, 51, 91, 191, 179, 70, 58, 31, 10, 160, 94, 48, 3, 104, 208, 85, 27, 133, 194, 121, 71, 13, 151, 68, 96, 9, 162, 203, 41] [2, 3, 6, 8, 13, 15, 16, 18, 20, 26, 27, 31, 32, 34, 35, 36, 38, 41, 43, 44, 51, 58, 62, 65, 68, 70, 71, 73, 75, 76, 77, 78, 85, 89, 90, 92, 93, 96, 104, 107, 108, 112, 117, 121, 123, 124, 127, 129, 130, 131, 133, 135, 136, 137, 142, 143, 145, 146, 148, 151, 154, 155, 156, 157, 159, 162, 167, 169, 180, 181, 182, 184, 185, 186, 191, 195, 196, 197, 200, 201, 202, 203, 206, 210, 220, 221, 223, 229, 236, 237, 240, 242, 253]
66 64 [122, 85, 222, 137, 183, 115, 151, 4, 68, 161, 72, 254, 251, 216, 13, 248, 141, 60, 153, 110, 90, 9, 191, 185, 36, 109, 174, 98, 166, 46, 38, 41, 242, 233, 203, 130, 143, 80, 17, 78, 99, 255, 34, 39, 89, 158, 40, 220, 120, 214, 69, 223, 45, 84, 202, 81, 65, 5, 207, 170, 201, 199, 239, 77, 209, 43, 25, 107, 11, 96, 102, 194, 240, 140, 2, 200, 111, 27, 87, 52, 1, 234, 6, 18, 227, 197, 21, 83, 106, 173, 231, 148, 70, 213, 159, 128, 224, 252, 103, 75, 145, 236, 92, 243, 135, 178, 226, 117, 86, 19, 55, 112, 14, 119, 57, 79, 28, 238, 94, 168, 164, 132, 229, 88, 190, 249, 37, 108] [217, 163, 75, 35, 27, 242, 148, 124, 202, 137, 11, 254, 83, 28, 142, 67, 206, 55, 115, 86, 66, 48, 172, 245, 213, 98, 214, 65, 49, 77, 68, 127, 32, 39, 46, 237, 90, 9, 78, 203, 31, 149, 88, 225, 110, 246, 91, 160, 208, 135, 114, 20, 171, 192, 250, 167, 244, 164, 221, 113, 190, 226, 247, 29, 50, 57, 3, 232, 122, 52, 118, 168, 151, 14, 139, 117, 25, 21, 169, 64, 37, 58, 154, 188, 74, 161, 255, 182, 8, 10, 36, 56, 72, 165, 84, 136, 178, 17, 215, 22, 7, 26, 159, 183, 16, 235, 41, 177, 180, 179, 143, 43, 23, 44, 107, 71, 191, 195, 193, 85, 76, 62, 105, 59, 131, 243, 1, 150] [1, 9, 11, 14, 17, 21, 25, 27, 28, 36, 37, 39, 41, 43, 46, 52, 55, 57, 65, 68, 72, 75, 77, 78, 83, 84, 85, 86, 88, 90, 98, 107, 110, 115, 117, 122, 135, 137, 143, 148, 151, 159, 161, 164, 168, 178, 183, 190, 191, 202, 203, 213, 214, 226, 242, 243, 254, 255]
67 65 [46, 31, 41, 76, 252, 144, 214, 109, 7, 193, 153, 99, 137, 170, 1, 140, 94, 149, 100, 221, 198, 56, 2, 136, 61, 119, 51, 60, 133, 254, 247, 224, 161, 82, 45, 199, 26, 255, 75, 85, 156, 248, 102, 101, 70, 229, 215, 12, 25, 241, 71, 186, 173, 192, 132, 62, 27, 36, 80, 239, 98, 96, 223, 246, 110, 121, 208, 207, 106, 95, 131, 124, 22, 57, 163, 164, 18, 35, 44, 23, 167, 81, 118, 225, 234, 103, 90, 33, 204, 177, 78, 114, 120, 151, 55, 104, 49, 77, 138, 185, 200, 92, 37, 157, 253, 128, 171, 29, 152, 211, 216, 145, 84, 218, 4, 3, 190, 182, 139, 11, 123, 117, 168, 19, 179, 107, 48, 162] [83, 173, 51, 85, 217, 58, 250, 56, 69, 40, 8, 18, 57, 5, 129, 87, 147, 222, 188, 30, 144, 89, 184, 12, 59, 139, 43, 66, 15, 32, 201, 49, 31, 1, 218, 172, 181, 186, 228, 211, 74, 73, 153, 94, 127, 109, 195, 154, 75, 108, 236, 171, 206, 194, 116, 21, 166, 125, 10, 233, 246, 191, 62, 167, 65, 101, 151, 3, 148, 175, 170, 23, 105, 67, 149, 152, 248, 117, 24, 64, 46, 63, 130, 229, 237, 119, 251, 121, 252, 13, 86, 19, 213, 182, 238, 254, 92, 138, 189, 197, 111, 203, 126, 42, 240, 230, 68, 190, 204, 45, 38, 16, 88, 47, 11, 176, 20, 122, 25, 123, 17, 247, 209, 115, 220, 96, 192, 22] [1, 3, 11, 12, 18, 19, 22, 23, 25, 31, 45, 46, 49, 51, 56, 57, 62, 75, 85, 92, 94, 96, 101, 109, 117, 119, 121, 123, 138, 139, 144, 149, 151, 152, 153, 167, 170, 171, 173, 182, 186, 190, 192, 204, 211, 218, 229, 246, 247, 248, 252, 254]
68 66 [89, 218, 185, 164, 114, 157, 141, 104, 148, 60, 234, 5, 73, 128, 26, 43, 171, 93, 91, 62, 244, 146, 100, 94, 109, 117, 34, 65, 90, 231, 124, 83, 14, 155, 125, 228, 127, 33, 163, 25, 129, 181, 174, 31, 106, 103, 32, 173, 84, 39, 241, 15, 169, 145, 233, 3, 123, 119, 160, 86, 120, 133, 247, 121, 2, 180, 229, 215, 107, 210, 116, 137, 110, 208, 152, 11, 205, 147, 80, 156, 194, 97, 52, 151, 59, 201, 167, 162, 4, 102, 144, 58, 245, 64, 252, 158, 55, 200, 239, 42, 198, 132, 16, 204, 46, 219, 143, 226, 192, 56, 206, 48, 214, 36, 191, 131, 150, 177, 136, 130, 232, 196, 24, 35, 225, 7, 72, 111] [130, 92, 249, 210, 134, 95, 226, 102, 141, 247, 155, 64, 220, 26, 80, 160, 232, 159, 245, 229, 248, 191, 166, 183, 208, 136, 145, 129, 25, 42, 36, 132, 218, 217, 51, 231, 93, 164, 196, 176, 146, 152, 137, 239, 185, 66, 241, 215, 49, 103, 135, 175, 94, 110, 48, 13, 120, 44, 99, 128, 4, 7, 233, 173, 214, 234, 131, 158, 167, 197, 124, 83, 252, 91, 97, 23, 228, 148, 157, 27, 35, 165, 238, 121, 65, 168, 212, 52, 106, 211, 174, 89, 24, 127, 209, 72, 206, 243, 151, 180, 161, 111, 114, 235, 117, 73, 60, 162, 5, 169, 56, 242, 12, 79, 223, 195, 78, 201, 216, 34, 138, 33, 43, 3, 107, 59, 119, 171] [3, 4, 5, 7, 24, 25, 26, 33, 34, 35, 36, 42, 43, 48, 52, 56, 59, 60, 64, 65, 72, 73, 80, 83, 89, 91, 93, 94, 97, 102, 103, 106, 107, 110, 111, 114, 117, 119, 120, 121, 124, 127, 128, 129, 130, 131, 132, 136, 137, 141, 145, 146, 148, 151, 152, 155, 157, 158, 160, 162, 164, 167, 169, 171, 173, 174, 180, 185, 191, 196, 201, 206, 208, 210, 214, 215, 218, 226, 228, 229, 231, 232, 233, 234, 239, 241, 245, 247, 252]
69 67 [79, 188, 139, 172, 53, 200, 153, 31, 60, 61, 156, 145, 215, 30, 90, 255, 248, 144, 147, 87, 182, 131, 196, 163, 243, 114, 120, 104, 242, 160, 224, 138, 107, 42, 164, 73, 99, 191, 125, 43, 25, 216, 94, 86, 148, 178, 194, 8, 212, 170, 204, 74, 82, 195, 254, 197, 106, 155, 158, 231, 228, 180, 124, 113, 143, 173, 140, 17, 58, 103, 12, 190, 189, 48, 203, 136, 27, 223, 142, 67, 51, 57, 102, 141, 64, 151, 121, 209, 133, 11, 183, 134, 177, 240, 137, 171, 72, 55, 16, 165, 135, 3, 47, 222, 122, 146, 205, 201, 33, 202, 18, 83, 157, 59, 95, 34, 52, 226, 97, 2, 29, 207, 150, 213, 192, 41, 44, 229] [17, 159, 164, 181, 74, 34, 213, 121, 29, 43, 111, 75, 11, 152, 182, 0, 238, 195, 62, 145, 220, 243, 21, 41, 137, 202, 149, 201, 35, 154, 130, 97, 234, 98, 168, 70, 224, 215, 241, 94, 136, 138, 87, 68, 200, 40, 61, 49, 48, 175, 244, 245, 252, 187, 19, 210, 160, 6, 106, 249, 36, 88, 63, 14, 167, 96, 208, 38, 101, 163, 214, 89, 10, 132, 193, 194, 117, 123, 82, 144, 65, 1, 23, 166, 156, 12, 90, 4, 242, 248, 115, 24, 211, 196, 169, 165, 217, 126, 39, 16, 71, 229, 157, 46, 251, 198, 188, 66, 32, 15, 204, 93, 206, 100, 47, 236, 58, 255, 79, 172, 84, 127, 104, 221, 103, 83, 223, 51] [11, 12, 16, 17, 29, 34, 41, 43, 47, 48, 51, 58, 61, 74, 79, 82, 83, 87, 90, 94, 97, 103, 104, 106, 121, 136, 137, 138, 144, 145, 156, 157, 160, 163, 164, 165, 172, 182, 188, 194, 195, 196, 200, 201, 202, 204, 213, 215, 223, 224, 229, 242, 243, 248, 255]
70 68 [27, 62, 111, 247, 156, 113, 97, 18, 215, 13, 160, 151, 199, 230, 167, 47, 28, 214, 40, 253, 59, 212, 61, 148, 218, 107, 140, 70, 172, 76, 185, 95, 126, 57, 246, 78, 254, 65, 25, 96, 71, 16, 94, 80, 15, 171, 72, 19, 10, 24, 3, 115, 188, 183, 118, 128, 31, 92, 180, 251, 63, 58, 60, 26, 30, 141, 198, 6, 133, 55, 211, 179, 0, 243, 74, 177, 64, 223, 112, 77, 75, 21, 184, 157, 125, 67, 101, 201, 209, 145, 36, 106, 81, 120, 1, 52, 9, 164, 105, 213, 196, 82, 135, 129, 149, 7, 200, 222, 226, 186, 91, 165, 237, 136, 20, 166, 161, 8, 147, 38, 207, 37, 234, 104, 150, 83, 73, 49] [153, 55, 216, 33, 195, 82, 167, 173, 36, 245, 24, 23, 189, 102, 194, 249, 54, 241, 233, 86, 14, 110, 196, 87, 22, 57, 124, 13, 227, 207, 32, 170, 137, 242, 109, 41, 90, 97, 205, 2, 66, 9, 193, 56, 134, 44, 247, 121, 11, 203, 117, 231, 120, 230, 8, 221, 187, 60, 138, 159, 68, 176, 17, 101, 69, 127, 160, 174, 100, 103, 246, 12, 88, 228, 81, 204, 218, 220, 71, 99, 79, 64, 107, 212, 59, 53, 122, 51, 156, 191, 98, 236, 182, 244, 108, 89, 225, 154, 208, 52, 163, 84, 200, 85, 190, 112, 229, 143, 92, 133, 50, 29, 146, 238, 37, 226, 210, 206, 39, 178, 34, 43, 46, 123, 5, 147, 181, 38] [8, 9, 13, 24, 36, 37, 38, 52, 55, 57, 59, 60, 64, 71, 81, 82, 92, 97, 101, 107, 112, 120, 133, 147, 156, 160, 167, 196, 200, 207, 212, 218, 226, 230, 246, 247]
71 69 [73, 21, 161, 32, 5, 130, 48, 78, 43, 11, 102, 186, 172, 46, 213, 188, 204, 98, 180, 22, 82, 142, 248, 83, 138, 202, 207, 25, 37, 167, 151, 71, 80, 219, 227, 86, 109, 252, 245, 45, 36, 169, 147, 175, 242, 247, 50, 157, 103, 193, 235, 222, 9, 59, 85, 89, 214, 53, 114, 20, 35, 170, 81, 143, 146, 243, 26, 68, 91, 65, 54, 218, 16, 236, 116, 174, 123, 154, 234, 145, 208, 69, 49, 215, 122, 126, 72, 87, 128, 239, 155, 33, 7, 115, 141, 93, 231, 56, 62, 41, 183, 144, 95, 199, 230, 88, 75, 139, 182, 197, 63, 134, 150, 195, 246, 162, 12, 163, 149, 15, 55, 100, 132, 189, 112, 232, 38, 28] [63, 221, 61, 189, 252, 198, 14, 146, 246, 242, 41, 175, 140, 170, 116, 158, 135, 204, 186, 80, 156, 173, 219, 215, 128, 117, 169, 55, 110, 240, 159, 144, 58, 45, 120, 171, 51, 190, 137, 200, 168, 213, 253, 53, 142, 99, 207, 193, 96, 153, 67, 39, 81, 69, 4, 11, 161, 86, 237, 91, 68, 40, 78, 203, 233, 65, 244, 228, 172, 113, 187, 12, 194, 184, 202, 25, 88, 148, 62, 84, 208, 9, 178, 238, 220, 160, 214, 47, 147, 195, 15, 44, 212, 138, 76, 201, 209, 19, 35, 196, 255, 174, 192, 254, 199, 155, 56, 176, 90, 105, 133, 102, 104, 106, 21, 29, 118, 49, 234, 179, 166, 241, 82, 230, 151, 43, 239, 26] [9, 11, 12, 15, 21, 25, 26, 35, 41, 43, 45, 49, 53, 55, 56, 62, 63, 65, 68, 69, 78, 80, 81, 82, 86, 88, 91, 102, 116, 128, 138, 142, 144, 146, 147, 151, 155, 161, 169, 170, 172, 174, 175, 186, 189, 193, 195, 199, 202, 204, 207, 208, 213, 214, 215, 219, 230, 234, 239, 242, 246, 252]
72 70 [95, 195, 213, 163, 33, 172, 98, 70, 4, 56, 83, 232, 227, 21, 89, 119, 5, 94, 197, 127, 223, 130, 108, 156, 199, 205, 63, 75, 206, 198, 170, 61, 136, 80, 160, 154, 147, 161, 209, 74, 228, 171, 186, 238, 13, 182, 251, 29, 179, 242, 178, 233, 104, 84, 46, 219, 49, 48, 105, 194, 114, 116, 222, 151, 153, 100, 117, 188, 193, 77, 14, 200, 248, 244, 102, 234, 62, 26, 162, 246, 87, 22, 67, 166, 155, 212, 236, 96, 68, 176, 34, 167, 134, 247, 144, 66, 69, 208, 53, 60, 164, 1, 73, 42, 132, 91, 216, 252, 231, 28, 146, 86, 52, 128, 8, 9, 131, 175, 183, 241, 250, 174, 152, 191, 12, 215, 220, 221] [91, 81, 20, 122, 61, 21, 25, 112, 175, 113, 183, 255, 30, 108, 198, 121, 95, 168, 68, 163, 233, 82, 33, 160, 181, 232, 87, 169, 164, 230, 243, 127, 26, 2, 70, 226, 34, 74, 220, 193, 253, 155, 170, 117, 49, 139, 172, 240, 178, 162, 84, 100, 199, 4, 231, 53, 196, 40, 222, 57, 77, 156, 133, 63, 79, 105, 119, 130, 94, 215, 58, 48, 144, 75, 116, 10, 188, 97, 17, 206, 12, 132, 88, 131, 64, 227, 182, 234, 161, 96, 128, 15, 153, 76, 29, 194, 147, 9, 114, 83, 251, 51, 135, 89, 252, 6, 171, 213, 248, 52, 124, 24, 28, 242, 32, 145, 72, 99, 3, 179, 80, 134, 78, 67, 157, 46, 92, 152] [4, 9, 12, 21, 26, 28, 29, 33, 34, 46, 48, 49, 52, 53, 61, 63, 67, 68, 70, 74, 75, 77, 80, 83, 84, 87, 89, 91, 94, 95, 96, 100, 105, 108, 114, 116, 117, 119, 127, 128, 130, 131, 132, 134, 144, 147, 152, 153, 155, 156, 160, 161, 162, 163, 164, 170, 171, 172, 175, 178, 179, 182, 183, 188, 193, 194, 198, 199, 206, 213, 215, 220, 222, 227, 231, 232, 233, 234, 242, 248, 251, 252]
73 71 [5, 50, 214, 206, 113, 163, 116, 245, 165, 186, 88, 228, 155, 89, 175, 2, 230, 212, 193, 108, 107, 48, 130, 176, 111, 106, 187, 125, 69, 117, 147, 172, 83, 208, 61, 1, 233, 136, 96, 58, 160, 44, 252, 36, 105, 41, 213, 149, 62, 164, 132, 255, 99, 153, 229, 118, 253, 34, 197, 224, 123, 151, 104, 145, 35, 95, 53, 30, 169, 64, 33, 236, 171, 237, 27, 205, 85, 66, 167, 238, 135, 65, 177, 76, 184, 77, 242, 221, 115, 146, 216, 217, 120, 98, 3, 200, 49, 114, 144, 159, 60, 188, 240, 195, 109, 192, 174, 43, 202, 196, 86, 198, 189, 78, 18, 156, 170, 215, 124, 25, 220, 45, 219, 127, 57, 227, 103, 21] [225, 131, 209, 152, 230, 79, 47, 239, 63, 0, 238, 168, 224, 22, 134, 232, 162, 164, 218, 163, 173, 252, 254, 204, 251, 38, 27, 122, 26, 81, 190, 6, 9, 59, 108, 34, 3, 171, 32, 90, 31, 8, 28, 23, 75, 74, 228, 165, 247, 101, 56, 210, 113, 37, 84, 60, 241, 223, 212, 120, 226, 183, 112, 61, 11, 208, 148, 25, 245, 109, 5, 87, 44, 72, 243, 42, 203, 40, 118, 211, 19, 166, 138, 144, 234, 39, 244, 69, 52, 180, 248, 29, 194, 80, 124, 1, 151, 205, 193, 188, 64, 201, 58, 246, 7, 179, 4, 150, 149, 174, 92, 68, 161, 100, 200, 71, 160, 86, 130, 250, 50, 35, 97, 17, 91, 231, 126, 85] [1, 3, 5, 25, 27, 34, 35, 44, 50, 58, 60, 61, 64, 69, 85, 86, 108, 109, 113, 118, 120, 124, 130, 144, 149, 151, 160, 163, 164, 165, 171, 174, 188, 193, 200, 205, 208, 212, 224, 228, 230, 238, 245, 252]
74 72 [221, 136, 42, 53, 109, 1, 51, 103, 113, 25, 33, 141, 10, 148, 250, 76, 175, 32, 94, 81, 213, 115, 118, 72, 219, 48, 74, 58, 142, 34, 150, 100, 220, 245, 46, 55, 95, 230, 167, 60, 7, 71, 105, 41, 82, 50, 3, 101, 56, 181, 247, 216, 145, 18, 196, 21, 47, 215, 203, 31, 114, 149, 17, 6, 16, 176, 228, 57, 116, 65, 238, 164, 61, 102, 119, 123, 191, 155, 170, 59, 84, 218, 9, 198, 15, 224, 29, 144, 184, 93, 67, 45, 192, 157, 234, 77, 152, 129, 173, 134, 19, 232, 49, 241, 147, 98, 174, 197, 26, 223, 24, 252, 185, 107, 227, 68, 117, 13, 200, 194, 190, 211, 14, 205, 231, 235, 70, 137] [164, 99, 107, 117, 211, 251, 114, 26, 40, 97, 84, 60, 138, 147, 77, 230, 233, 98, 177, 13, 54, 110, 213, 245, 25, 195, 85, 42, 129, 156, 0, 113, 122, 142, 9, 170, 92, 46, 8, 18, 29, 246, 49, 243, 212, 141, 15, 192, 56, 191, 35, 95, 250, 108, 159, 23, 79, 100, 204, 154, 131, 165, 244, 182, 232, 180, 200, 111, 45, 22, 66, 36, 72, 4, 83, 139, 7, 158, 144, 102, 183, 160, 128, 223, 91, 229, 228, 58, 217, 241, 21, 106, 215, 197, 80, 253, 186, 133, 239, 136, 187, 17, 220, 234, 103, 20, 169, 61, 52, 155, 12, 39, 10, 43, 126, 64, 193, 227, 90, 73, 34, 14, 63, 71, 38, 189, 19, 132] [7, 9, 10, 13, 14, 15, 17, 18, 19, 21, 25, 26, 29, 34, 42, 45, 46, 49, 56, 58, 60, 61, 71, 72, 77, 84, 95, 98, 100, 102, 103, 107, 113, 114, 117, 129, 136, 141, 142, 144, 147, 155, 164, 170, 191, 192, 197, 200, 211, 213, 215, 220, 223, 227, 228, 230, 232, 234, 241, 245, 250]
75 73 [168, 98, 228, 244, 44, 78, 37, 23, 50, 73, 254, 90, 134, 215, 25, 84, 156, 20, 95, 127, 190, 143, 30, 39, 140, 234, 123, 13, 86, 210, 62, 2, 14, 173, 255, 225, 132, 151, 180, 24, 224, 105, 96, 38, 76, 160, 233, 16, 128, 150, 223, 51, 120, 226, 0, 15, 252, 48, 110, 251, 113, 40, 213, 47, 185, 19, 9, 89, 43, 131, 35, 77, 183, 216, 109, 181, 83, 21, 157, 125, 31, 27, 107, 52, 201, 172, 235, 102, 74, 1, 179, 97, 207, 58, 218, 56, 117, 81, 69, 246, 115, 85, 64, 28, 135, 243, 142, 170, 196, 227, 68, 220, 169, 103, 4, 212, 6, 10, 71, 144, 198, 54, 8, 200, 22, 250, 82, 165] [26, 106, 42, 72, 61, 116, 167, 18, 119, 49, 108, 205, 9, 193, 48, 30, 96, 240, 194, 80, 91, 94, 155, 232, 149, 146, 209, 25, 27, 121, 137, 148, 192, 7, 71, 236, 218, 63, 50, 239, 253, 93, 118, 126, 234, 136, 66, 2, 104, 175, 127, 76, 11, 10, 81, 223, 115, 88, 231, 235, 198, 31, 237, 154, 44, 37, 186, 220, 164, 147, 204, 65, 130, 5, 156, 191, 166, 124, 230, 162, 3, 212, 189, 57, 141, 77, 90, 62, 23, 99, 196, 17, 55, 153, 46, 8, 150, 73, 159, 35, 32, 70, 161, 210, 98, 68, 195, 217, 168, 170, 188, 176, 199, 202, 242, 145, 182, 177, 34, 86, 238, 139, 214, 92, 203, 114, 36, 171] [2, 8, 9, 10, 23, 25, 27, 30, 31, 35, 37, 44, 48, 50, 62, 68, 71, 73, 76, 77, 81, 86, 90, 96, 98, 115, 127, 150, 156, 168, 170, 196, 198, 210, 212, 218, 220, 223, 234, 235]
76 74 [197, 1, 2, 190, 229, 221, 236, 194, 147, 241, 143, 171, 233, 13, 129, 77, 141, 179, 228, 40, 74, 19, 8, 248, 186, 174, 166, 182, 136, 79, 175, 90, 119, 115, 109, 111, 130, 67, 33, 242, 14, 206, 97, 112, 184, 18, 108, 224, 20, 22, 50, 45, 103, 76, 59, 71, 235, 159, 231, 86, 253, 148, 107, 56, 25, 142, 55, 24, 162, 146, 127, 84, 131, 94, 93, 38, 4, 200, 161, 126, 43, 213, 134, 208, 188, 7, 150, 240, 102, 11, 101, 28, 114, 113, 100, 21, 31, 211, 110, 57, 61, 44, 15, 106, 201, 48, 170, 10, 157, 124, 132, 87, 180, 123, 9, 125, 16, 244, 243, 133, 196, 98, 178, 23, 153, 138, 251, 128] [100, 140, 126, 98, 249, 116, 119, 107, 185, 222, 214, 21, 17, 139, 55, 217, 33, 171, 136, 213, 204, 133, 161, 151, 64, 195, 70, 76, 131, 79, 158, 7, 188, 111, 197, 88, 172, 190, 108, 179, 180, 194, 174, 175, 101, 37, 61, 60, 102, 134, 248, 200, 62, 103, 239, 130, 146, 16, 6, 170, 152, 141, 150, 144, 74, 159, 233, 147, 90, 173, 39, 25, 94, 241, 122, 168, 71, 22, 177, 99, 142, 96, 225, 236, 156, 4, 181, 231, 11, 85, 84, 221, 18, 53, 124, 12, 105, 243, 245, 209, 2, 13, 66, 196, 169, 57, 251, 38, 40, 148, 93, 115, 54, 29, 43, 83, 252, 91, 52, 206, 125, 234, 67, 201, 220, 95, 41, 238] [2, 4, 7, 11, 13, 16, 18, 21, 22, 25, 33, 38, 40, 43, 55, 57, 61, 67, 71, 74, 76, 79, 84, 90, 93, 94, 98, 100, 101, 102, 103, 107, 108, 111, 115, 119, 124, 125, 126, 130, 131, 133, 134, 136, 141, 142, 146, 147, 148, 150, 159, 161, 170, 171, 174, 175, 179, 180, 188, 190, 194, 196, 197, 200, 201, 206, 213, 221, 231, 233, 236, 241, 243, 248, 251]
77 75 [77, 51, 29, 200, 57, 32, 28, 188, 96, 113, 137, 204, 146, 235, 242, 93, 84, 56, 109, 63, 153, 219, 50, 171, 232, 41, 72, 251, 2, 227, 148, 58, 76, 21, 118, 14, 175, 173, 139, 40, 121, 39, 147, 230, 182, 144, 215, 174, 60, 180, 165, 0, 143, 16, 43, 222, 192, 34, 151, 30, 199, 103, 130, 190, 85, 150, 91, 228, 53, 178, 95, 217, 168, 97, 98, 189, 142, 193, 194, 163, 123, 117, 234, 47, 71, 141, 129, 102, 161, 248, 124, 152, 250, 54, 229, 19, 249, 164, 114, 156, 253, 3, 233, 18, 176, 197, 212, 223, 64, 67, 145, 70, 112, 52, 101, 115, 158, 44, 20, 255, 211, 23, 237, 87, 61, 8, 46, 83] [38, 29, 220, 104, 206, 165, 246, 221, 126, 173, 222, 223, 148, 116, 53, 41, 43, 114, 241, 228, 23, 120, 129, 162, 59, 224, 57, 122, 156, 45, 183, 111, 54, 187, 215, 40, 58, 235, 35, 227, 247, 83, 219, 163, 20, 137, 239, 185, 3, 101, 196, 194, 108, 32, 67, 117, 8, 75, 204, 179, 86, 167, 55, 121, 39, 21, 152, 88, 177, 110, 84, 31, 47, 19, 142, 68, 65, 181, 184, 95, 202, 230, 205, 232, 42, 172, 89, 123, 132, 87, 158, 24, 7, 125, 138, 107, 73, 96, 208, 214, 70, 195, 237, 243, 105, 72, 143, 85, 66, 154, 115, 131, 186, 99, 134, 124, 25, 211, 1, 171, 36, 74, 113, 146, 189, 151, 119, 79] [3, 8, 19, 20, 21, 23, 29, 32, 39, 40, 41, 43, 47, 53, 54, 57, 58, 67, 70, 72, 83, 84, 85, 87, 95, 96, 101, 113, 114, 115, 117, 121, 123, 124, 129, 137, 142, 143, 146, 148, 151, 152, 156, 158, 163, 165, 171, 173, 189, 194, 204, 211, 215, 219, 222, 223, 227, 228, 230, 232, 235, 237]
78 76 [73, 143, 50, 223, 38, 182, 76, 201, 119, 172, 142, 149, 65, 101, 140, 79, 35, 33, 47, 229, 165, 234, 215, 192, 173, 102, 136, 219, 78, 174, 111, 153, 162, 159, 122, 220, 178, 34, 147, 13, 133, 239, 245, 80, 68, 124, 171, 237, 110, 87, 199, 6, 154, 92, 69, 21, 17, 95, 99, 186, 37, 112, 202, 49, 134, 151, 22, 26, 39, 148, 118, 168, 98, 43, 139, 54, 114, 120, 10, 189, 167, 75, 81, 224, 66, 246, 163, 193, 9, 108, 161, 179, 51, 117, 197, 41, 24, 30, 255, 225, 194, 209, 125, 82, 19, 5, 187, 141, 230, 127, 100, 253, 218, 93, 184, 181, 158, 8, 106, 115, 7, 175, 105, 40, 48, 150, 14, 83] [117, 72, 229, 209, 62, 173, 160, 170, 66, 221, 204, 138, 128, 41, 153, 25, 146, 145, 76, 102, 124, 123, 36, 32, 231, 185, 230, 166, 177, 11, 159, 19, 137, 254, 197, 196, 217, 144, 95, 251, 210, 38, 15, 20, 89, 135, 208, 129, 13, 140, 222, 106, 28, 199, 63, 86, 33, 121, 82, 47, 220, 184, 51, 85, 55, 49, 42, 171, 228, 107, 31, 61, 52, 104, 162, 195, 23, 237, 188, 53, 205, 136, 249, 12, 247, 167, 50, 172, 88, 201, 83, 59, 35, 9, 39, 1, 176, 130, 126, 116, 8, 40, 206, 29, 68, 0, 243, 200, 80, 152, 30, 227, 101, 198, 60, 216, 98, 4, 75, 100, 235, 139, 178, 232, 48, 103, 65, 161] [8, 9, 13, 19, 30, 33, 35, 38, 39, 40, 41, 47, 48, 49, 50, 51, 65, 66, 68, 75, 76, 80, 82, 83, 95, 98, 100, 101, 102, 106, 117, 124, 136, 139, 140, 153, 159, 161, 162, 167, 171, 172, 173, 178, 184, 197, 199, 201, 209, 220, 229, 230, 237]
79 77 [160, 254, 249, 32, 122, 201, 152, 18, 132, 120, 242, 225, 141, 230, 7, 146, 199, 180, 127, 216, 12, 128, 30, 211, 179, 197, 17, 62, 137, 60, 98, 45, 80, 25, 207, 110, 241, 86, 50, 87, 54, 185, 8, 36, 40, 3, 150, 131, 186, 135, 237, 49, 23, 212, 229, 187, 74, 205, 82, 165, 58, 59, 156, 183, 22, 76, 130, 193, 178, 94, 107, 114, 47, 102, 245, 70, 15, 92, 63, 19, 196, 56, 41, 111, 208, 108, 52, 35, 190, 159, 123, 194, 144, 9, 75, 85, 239, 97, 153, 99, 168, 158, 188, 118, 95, 121, 84, 170, 33, 31, 105, 24, 145, 106, 147, 67, 214, 164, 21, 103, 10, 129, 115, 139, 5, 231, 133, 161] [4, 206, 201, 87, 86, 191, 89, 110, 6, 84, 96, 16, 195, 111, 116, 12, 103, 1, 194, 72, 62, 31, 200, 213, 19, 51, 91, 240, 182, 25, 237, 225, 26, 56, 43, 8, 234, 70, 123, 104, 215, 98, 94, 55, 57, 217, 250, 3, 28, 150, 199, 204, 85, 196, 63, 90, 37, 223, 121, 38, 53, 125, 138, 142, 224, 46, 143, 140, 202, 236, 136, 151, 246, 177, 128, 17, 174, 15, 61, 255, 166, 18, 58, 164, 197, 109, 100, 227, 169, 157, 95, 222, 216, 209, 184, 112, 171, 71, 108, 176, 238, 11, 154, 42, 189, 252, 115, 13, 30, 134, 60, 124, 44, 167, 47, 173, 251, 119, 221, 78, 214, 27, 229, 178, 160, 253, 65, 79] [3, 8, 12, 15, 17, 18, 19, 25, 30, 31, 47, 56, 58, 60, 62, 63, 70, 84, 85, 86, 87, 94, 95, 98, 103, 108, 110, 111, 115, 121, 123, 128, 150, 160, 164, 178, 194, 196, 197, 199, 201, 214, 216, 225, 229, 237]
80 78 [167, 43, 198, 217, 90, 94, 132, 183, 236, 172, 98, 195, 118, 121, 19, 30, 93, 235, 12, 201, 81, 4, 29, 148, 64, 2, 20, 27, 77, 86, 46, 17, 207, 152, 140, 14, 214, 245, 166, 71, 48, 175, 241, 44, 229, 184, 185, 219, 153, 124, 63, 95, 161, 155, 196, 133, 56, 209, 141, 34, 149, 151, 82, 38, 247, 85, 128, 96, 54, 25, 160, 120, 108, 127, 92, 252, 39, 254, 58, 68, 146, 249, 21, 41, 53, 80, 234, 136, 173, 142, 22, 18, 50, 224, 170, 104, 130, 197, 251, 176, 208, 206, 139, 47, 72, 116, 114, 194, 189, 212, 61, 177, 156, 144, 154, 200, 40, 119, 1, 76, 51, 15, 135, 158, 70, 138, 218, 230] [152, 37, 128, 234, 23, 219, 28, 108, 254, 31, 19, 36, 173, 231, 217, 154, 122, 30, 235, 106, 248, 58, 212, 33, 26, 155, 123, 135, 158, 216, 16, 90, 4, 71, 15, 180, 185, 86, 238, 196, 85, 65, 195, 104, 161, 214, 151, 107, 13, 126, 125, 247, 134, 236, 43, 96, 119, 245, 177, 109, 98, 87, 11, 47, 174, 178, 60, 181, 78, 226, 127, 191, 81, 64, 82, 242, 80, 164, 75, 246, 250, 102, 156, 218, 77, 194, 241, 160, 171, 232, 157, 150, 175, 130, 120, 103, 51, 101, 53, 144, 118, 39, 94, 2, 32, 227, 167, 210, 52, 153, 48, 179, 211, 42, 3, 131, 69, 129, 165, 132, 67, 20, 139, 0, 184, 62, 46, 73] [2, 4, 15, 19, 20, 30, 39, 43, 46, 47, 48, 51, 53, 58, 64, 71, 77, 80, 81, 82, 85, 86, 90, 94, 96, 98, 104, 108, 118, 119, 120, 127, 128, 130, 132, 135, 139, 144, 151, 152, 153, 154, 155, 156, 158, 160, 161, 167, 173, 175, 177, 184, 185, 194, 195, 196, 212, 214, 217, 218, 219, 234, 235, 236, 241, 245, 247, 254]
81 79 [71, 63, 10, 149, 82, 115, 8, 20, 162, 142, 199, 120, 218, 214, 210, 174, 42, 163, 105, 197, 116, 238, 50, 55, 154, 26, 16, 134, 220, 117, 64, 194, 87, 157, 173, 213, 180, 196, 2, 241, 123, 60, 159, 183, 83, 225, 191, 107, 126, 90, 39, 27, 224, 86, 146, 53, 219, 138, 128, 170, 91, 156, 187, 85, 176, 160, 54, 236, 45, 179, 204, 141, 161, 145, 30, 21, 195, 244, 182, 110, 245, 52, 114, 235, 240, 51, 246, 32, 155, 175, 88, 84, 7, 136, 234, 168, 131, 73, 229, 100, 254, 185, 217, 221, 148, 121, 216, 206, 188, 43, 34, 76, 125, 144, 253, 104, 94, 66, 230, 99, 127, 227, 208, 97, 178, 232, 31, 250] [63, 5, 208, 115, 39, 132, 21, 113, 154, 180, 210, 231, 44, 146, 179, 186, 36, 238, 165, 243, 200, 84, 254, 61, 149, 51, 34, 241, 62, 20, 189, 91, 2, 82, 118, 100, 137, 198, 105, 121, 70, 174, 14, 83, 71, 148, 246, 69, 116, 150, 89, 136, 76, 46, 57, 98, 177, 250, 43, 32, 197, 104, 45, 52, 194, 68, 159, 18, 96, 54, 139, 8, 25, 224, 245, 42, 90, 242, 253, 126, 171, 12, 151, 216, 161, 114, 211, 67, 201, 176, 170, 128, 199, 26, 109, 135, 244, 124, 223, 234, 66, 58, 190, 162, 131, 214, 140, 73, 187, 41, 173, 202, 182, 252, 125, 64, 196, 193, 10, 95, 9, 13, 147, 178, 106, 217, 50, 205] [2, 8, 10, 20, 21, 26, 32, 34, 39, 42, 43, 45, 50, 51, 52, 54, 63, 64, 66, 71, 73, 76, 82, 83, 84, 90, 91, 100, 104, 105, 114, 115, 116, 121, 125, 126, 128, 131, 136, 146, 148, 149, 154, 159, 161, 162, 170, 173, 174, 176, 178, 179, 180, 182, 187, 194, 196, 197, 199, 208, 210, 214, 216, 217, 224, 234, 238, 241, 244, 245, 246, 250, 253, 254]
82 80 [53, 193, 196, 87, 121, 49, 167, 74, 113, 168, 14, 126, 100, 52, 96, 133, 132, 172, 80, 68, 7, 111, 22, 243, 42, 95, 166, 94, 12, 173, 142, 93, 128, 191, 23, 57, 101, 3, 106, 141, 207, 158, 189, 175, 13, 112, 183, 150, 127, 34, 29, 198, 194, 103, 24, 26, 82, 56, 225, 9, 105, 240, 222, 115, 20, 8, 138, 174, 206, 90, 62, 186, 97, 31, 204, 131, 159, 137, 170, 226, 114, 129, 61, 209, 60, 180, 212, 47, 162, 125, 169, 30, 233, 55, 165, 6, 184, 35, 199, 255, 134, 107, 5, 152, 215, 177, 66, 37, 120, 21, 241, 124, 251, 148, 41, 192, 157, 40, 201, 118, 64, 220, 236, 117, 69, 135, 77, 164] [150, 172, 131, 62, 194, 134, 63, 82, 117, 189, 127, 253, 207, 185, 170, 69, 7, 46, 232, 105, 193, 241, 43, 51, 159, 101, 141, 96, 164, 31, 87, 209, 125, 166, 100, 199, 129, 118, 240, 21, 66, 169, 48, 238, 97, 60, 55, 247, 59, 0, 12, 165, 177, 204, 93, 58, 50, 61, 47, 49, 126, 111, 64, 128, 179, 231, 57, 157, 220, 65, 77, 80, 78, 99, 115, 144, 39, 244, 138, 135, 52, 90, 27, 25, 23, 103, 20, 73, 10, 130, 29, 124, 94, 227, 212, 175, 158, 113, 95, 230, 14, 234, 222, 120, 252, 206, 1, 190, 140, 30, 3, 237, 24, 36, 42, 112, 152, 226, 74, 167, 201, 215, 40, 168, 22, 191, 34, 9] [3, 7, 9, 12, 14, 20, 21, 22, 23, 24, 29, 30, 31, 34, 40, 42, 47, 49, 52, 55, 57, 60, 61, 62, 64, 66, 69, 74, 77, 80, 82, 87, 90, 93, 94, 95, 96, 97, 100, 101, 103, 105, 111, 112, 113, 115, 117, 118, 120, 124, 125, 126, 127, 128, 129, 131, 134, 135, 138, 141, 150, 152, 157, 158, 159, 164, 165, 166, 167, 168, 169, 170, 172, 175, 177, 189, 191, 193, 194, 199, 201, 204, 206, 207, 209, 212, 215, 220, 222, 226, 240, 241]
83 81 [122, 218, 255, 78, 64, 244, 88, 99, 101, 183, 35, 93, 20, 236, 56, 157, 70, 19, 60, 77, 11, 85, 196, 197, 69, 90, 195, 135, 202, 113, 118, 172, 213, 224, 29, 72, 249, 25, 108, 112, 58, 75, 240, 94, 221, 92, 175, 91, 252, 128, 38, 203, 200, 247, 27, 208, 250, 41, 169, 48, 121, 239, 166, 46, 179, 206, 205, 152, 146, 97, 13, 22, 192, 164, 162, 80, 76, 156, 26, 168, 187, 248, 142, 12, 52, 161, 237, 253, 109, 233, 3, 31, 151, 133, 114, 18, 23, 130, 153, 149, 4, 147, 126, 137, 176, 180, 106, 7, 10, 74, 243, 30, 131, 150, 0, 51, 117, 98, 220, 125, 198, 217, 228, 160, 193, 144, 134, 158] [14, 211, 147, 6, 186, 27, 134, 155, 77, 37, 65, 34, 150, 10, 4, 2, 115, 195, 218, 138, 73, 213, 222, 180, 187, 235, 193, 229, 89, 233, 91, 54, 214, 209, 153, 46, 17, 103, 83, 234, 129, 161, 249, 239, 237, 196, 41, 171, 64, 253, 85, 11, 181, 84, 90, 245, 159, 59, 21, 170, 177, 116, 104, 148, 208, 45, 119, 183, 28, 133, 61, 248, 51, 29, 48, 108, 143, 5, 96, 52, 106, 165, 136, 42, 13, 39, 75, 250, 242, 125, 216, 95, 87, 44, 212, 200, 189, 123, 107, 122, 162, 207, 190, 74, 231, 240, 128, 226, 230, 141, 78, 247, 243, 58, 36, 174, 191, 157, 168, 68, 63, 97, 23, 50, 164, 194, 252, 20] [4, 10, 11, 13, 20, 23, 27, 29, 41, 46, 48, 51, 52, 58, 64, 74, 75, 77, 78, 85, 90, 91, 97, 106, 108, 122, 125, 128, 133, 134, 147, 150, 153, 157, 161, 162, 164, 168, 180, 183, 187, 193, 195, 196, 200, 208, 213, 218, 233, 237, 239, 240, 243, 247, 248, 249, 250, 252, 253]
84 82 [158, 147, 85, 53, 35, 103, 30, 155, 111, 36, 139, 87, 91, 28, 220, 186, 239, 164, 75, 203, 191, 146, 222, 79, 125, 250, 167, 223, 27, 54, 58, 196, 80, 229, 26, 76, 136, 83, 50, 177, 120, 182, 157, 32, 121, 254, 143, 245, 71, 246, 23, 230, 199, 106, 37, 130, 131, 151, 96, 137, 231, 134, 107, 135, 174, 127, 38, 13, 59, 179, 189, 145, 208, 184, 166, 154, 141, 17, 9, 110, 16, 227, 34, 39, 1, 224, 202, 4, 77, 228, 5, 212, 185, 68, 140, 180, 93, 104, 232, 144, 49, 152, 29, 173, 101, 81, 194, 205, 129, 210, 124, 176, 86, 74, 25, 117, 66, 178, 61, 201, 119, 219, 200, 181, 112, 97, 198, 42] [92, 218, 55, 208, 193, 59, 189, 213, 34, 150, 177, 20, 159, 15, 71, 247, 237, 238, 10, 172, 18, 41, 225, 102, 72, 161, 198, 73, 184, 134, 126, 96, 86, 248, 245, 22, 58, 62, 115, 23, 240, 28, 69, 209, 109, 255, 136, 99, 204, 44, 215, 42, 64, 70, 3, 13, 162, 217, 85, 214, 234, 45, 90, 207, 12, 88, 25, 82, 169, 164, 43, 246, 95, 104, 63, 84, 108, 80, 7, 79, 49, 78, 127, 21, 91, 24, 107, 180, 188, 142, 165, 253, 226, 235, 224, 103, 168, 61, 222, 32, 233, 101, 6, 187, 35, 216, 190, 128, 39, 163, 170, 192, 154, 166, 30, 242, 132, 46, 116, 33, 52, 89, 98, 236, 243, 17, 195, 183] [13, 17, 23, 25, 28, 30, 32, 34, 35, 39, 42, 49, 58, 59, 61, 71, 79, 80, 85, 86, 91, 96, 101, 103, 104, 107, 127, 134, 136, 154, 164, 166, 177, 180, 184, 189, 198, 208, 222, 224, 245, 246]
85 83 [9, 111, 16, 236, 44, 121, 177, 93, 132, 151, 213, 6, 109, 203, 230, 201, 66, 181, 168, 13, 18, 30, 202, 216, 183, 199, 176, 200, 105, 42, 173, 245, 161, 188, 195, 102, 71, 144, 97, 26, 49, 197, 250, 61, 184, 94, 27, 77, 76, 209, 226, 90, 98, 170, 101, 7, 92, 75, 52, 186, 22, 62, 45, 59, 122, 85, 108, 56, 24, 215, 223, 115, 210, 175, 74, 155, 82, 158, 140, 19, 46, 193, 67, 80, 214, 10, 43, 156, 130, 243, 189, 1, 221, 206, 91, 2, 48, 73, 113, 137, 128, 169, 225, 222, 36, 60, 229, 47, 191, 55, 136, 127, 134, 153, 100, 119, 172, 57, 83, 159, 244, 248, 192, 187, 4, 25, 190, 240] [235, 36, 128, 147, 184, 100, 204, 92, 93, 197, 170, 90, 236, 158, 183, 222, 209, 17, 48, 22, 26, 127, 20, 132, 176, 233, 200, 150, 55, 195, 8, 210, 216, 243, 81, 45, 155, 144, 129, 98, 203, 37, 213, 113, 140, 159, 181, 101, 31, 30, 18, 24, 99, 238, 122, 27, 164, 62, 16, 208, 248, 167, 207, 199, 85, 1, 231, 118, 228, 225, 19, 82, 148, 104, 49, 135, 121, 191, 25, 202, 67, 54, 11, 111, 77, 226, 91, 255, 189, 240, 68, 201, 149, 120, 245, 151, 142, 125, 44, 143, 6, 86, 206, 133, 174, 40, 7, 247, 76, 41, 33, 47, 187, 97, 160, 168, 145, 250, 108, 130, 241, 136, 52, 94, 105, 61, 66, 230] [1, 6, 7, 16, 18, 19, 22, 24, 25, 26, 27, 30, 36, 44, 45, 47, 48, 49, 52, 55, 61, 62, 66, 67, 76, 77, 82, 85, 90, 91, 92, 93, 94, 97, 98, 100, 101, 105, 108, 111, 113, 121, 122, 127, 128, 130, 132, 136, 140, 144, 151, 155, 158, 159, 168, 170, 176, 181, 183, 184, 187, 189, 191, 195, 197, 199, 200, 201, 202, 203, 206, 209, 210, 213, 216, 222, 225, 226, 230, 236, 240, 243, 245, 248, 250]
86 84 [83, 105, 15, 77, 189, 213, 46, 190, 134, 234, 254, 73, 232, 151, 81, 1, 37, 85, 164, 93, 16, 143, 54, 228, 176, 247, 118, 203, 221, 86, 168, 103, 80, 101, 43, 11, 3, 194, 90, 69, 210, 67, 237, 49, 45, 162, 96, 34, 76, 79, 208, 204, 242, 58, 13, 51, 22, 147, 124, 60, 121, 135, 82, 52, 249, 193, 173, 200, 112, 230, 158, 160, 115, 71, 119, 215, 250, 88, 114, 53, 41, 236, 84, 231, 206, 59, 122, 175, 74, 97, 255, 21, 156, 104, 169, 141, 110, 233, 92, 212, 146, 64, 78, 133, 205, 48, 33, 12, 0, 35, 226, 14, 132, 187, 61, 216, 5, 106, 155, 152, 163, 4, 201, 20, 120, 24, 27, 128] [51, 22, 185, 127, 203, 246, 237, 133, 31, 54, 193, 93, 72, 145, 83, 52, 82, 107, 249, 61, 220, 25, 216, 104, 59, 1, 34, 197, 149, 23, 135, 123, 78, 236, 180, 224, 74, 40, 163, 189, 157, 9, 192, 15, 117, 222, 18, 29, 144, 207, 119, 122, 114, 150, 183, 24, 199, 8, 154, 5, 85, 254, 204, 241, 103, 165, 247, 194, 43, 96, 223, 158, 140, 97, 177, 2, 7, 116, 187, 162, 75, 118, 239, 109, 242, 46, 244, 131, 186, 188, 12, 206, 99, 47, 210, 53, 68, 91, 77, 124, 218, 10, 20, 35, 14, 184, 232, 173, 49, 86, 128, 87, 84, 4, 80, 178, 175, 67, 198, 3, 16, 221, 255, 160, 228, 182, 234, 201] [1, 3, 4, 5, 12, 14, 15, 16, 20, 22, 24, 34, 35, 43, 46, 49, 51, 52, 53, 54, 59, 61, 67, 74, 77, 78, 80, 82, 83, 84, 85, 86, 93, 96, 97, 103, 104, 114, 118, 119, 122, 124, 128, 133, 135, 158, 160, 162, 163, 173, 175, 187, 189, 193, 194, 201, 203, 204, 206, 210, 216, 221, 228, 232, 234, 236, 237, 242, 247, 249, 254, 255]
87 85 [92, 30, 150, 106, 205, 143, 89, 62, 231, 63, 86, 119, 5, 66, 204, 209, 167, 28, 108, 147, 23, 69, 153, 162, 164, 14, 55, 90, 88, 29, 118, 148, 171, 180, 145, 253, 238, 215, 41, 199, 61, 75, 9, 202, 131, 242, 31, 227, 72, 240, 217, 109, 73, 239, 140, 241, 2, 194, 77, 95, 24, 195, 48, 187, 50, 160, 121, 96, 100, 65, 82, 128, 222, 44, 154, 243, 146, 101, 93, 105, 110, 193, 183, 250, 225, 78, 151, 18, 47, 22, 11, 117, 216, 188, 49, 26, 36, 0, 33, 6, 85, 179, 184, 57, 255, 114, 220, 247, 53, 173, 102, 125, 172, 12, 126, 139, 221, 133, 141, 212, 165, 149, 7, 3, 144, 59, 35, 191] [63, 90, 116, 243, 184, 136, 226, 139, 216, 199, 10, 84, 95, 182, 132, 97, 147, 89, 138, 160, 221, 83, 77, 66, 236, 141, 194, 140, 131, 146, 49, 206, 61, 87, 47, 75, 45, 54, 249, 125, 150, 119, 190, 208, 235, 81, 59, 9, 52, 15, 166, 126, 48, 164, 153, 134, 26, 38, 204, 3, 8, 17, 240, 121, 112, 36, 103, 0, 102, 172, 250, 238, 218, 6, 113, 124, 60, 76, 71, 193, 41, 14, 91, 154, 178, 186, 144, 98, 101, 88, 253, 223, 50, 108, 133, 123, 174, 185, 156, 152, 201, 31, 167, 237, 127, 4, 114, 255, 227, 85, 148, 162, 30, 33, 248, 62, 96, 177, 22, 209, 58, 57, 73, 183, 173, 11, 247, 217] [0, 3, 6, 9, 11, 14, 22, 26, 30, 31, 33, 36, 41, 47, 48, 49, 50, 57, 59, 61, 62, 63, 66, 73, 75, 77, 85, 88, 89, 90, 95, 96, 101, 102, 108, 114, 119, 121, 125, 126, 131, 133, 139, 140, 141, 144, 146, 147, 148, 150, 153, 154, 160, 162, 164, 167, 172, 173, 183, 184, 193, 194, 199, 204, 209, 216, 217, 221, 227, 238, 240, 243, 247, 250, 253, 255]
88 86 [226, 15, 208, 173, 64, 66, 110, 202, 33, 112, 74, 225, 177, 252, 105, 80, 47, 246, 182, 248, 16, 7, 237, 189, 25, 19, 1, 140, 104, 222, 79, 26, 94, 203, 97, 126, 174, 160, 238, 48, 188, 96, 151, 135, 103, 196, 124, 198, 84, 82, 136, 159, 27, 115, 253, 109, 90, 199, 190, 86, 53, 101, 169, 142, 167, 77, 68, 43, 168, 17, 31, 83, 114, 236, 205, 11, 234, 59, 42, 98, 23, 176, 197, 55, 215, 217, 134, 184, 113, 207, 49, 30, 214, 32, 57, 209, 5, 243, 228, 156, 254, 186, 133, 181, 85, 144, 128, 163, 155, 146, 200, 158, 171, 162, 10, 250, 121, 120, 12, 220, 40, 152, 130, 111, 249, 212, 193, 178] [229, 140, 47, 176, 150, 73, 134, 89, 118, 157, 44, 163, 209, 18, 92, 217, 234, 192, 101, 222, 202, 223, 31, 63, 164, 75, 102, 53, 48, 83, 211, 219, 179, 119, 96, 187, 232, 180, 141, 122, 21, 28, 195, 153, 72, 186, 206, 9, 129, 145, 81, 148, 233, 65, 242, 91, 210, 0, 52, 19, 178, 116, 196, 212, 221, 43, 137, 247, 58, 239, 138, 62, 146, 131, 35, 54, 95, 41, 175, 112, 204, 29, 34, 143, 236, 45, 240, 218, 144, 226, 139, 15, 6, 166, 20, 167, 106, 213, 99, 14, 121, 4, 1, 165, 189, 93, 151, 39, 154, 231, 36, 184, 100, 255, 161, 181, 56, 149, 37, 185, 147, 22, 17, 194, 252, 49, 70, 224] [1, 15, 17, 19, 31, 43, 47, 48, 49, 53, 83, 96, 101, 112, 121, 134, 140, 144, 146, 151, 163, 167, 176, 178, 181, 184, 186, 189, 196, 202, 209, 212, 217, 222, 226, 234, 236, 252]
89 87 [232, 96, 28, 45, 44, 19, 24, 129, 49, 27, 111, 109, 237, 50, 245, 17, 60, 200, 90, 145, 91, 54, 120, 73, 81, 59, 101, 115, 103, 139, 174, 180, 110, 67, 221, 61, 218, 143, 196, 104, 173, 80, 225, 22, 147, 235, 108, 86, 236, 113, 185, 164, 247, 171, 201, 211, 242, 43, 222, 74, 135, 75, 202, 83, 48, 138, 176, 51, 119, 11, 5, 165, 224, 182, 189, 220, 253, 188, 41, 217, 46, 118, 249, 56, 149, 57, 14, 152, 126, 64, 47, 114, 15, 199, 121, 216, 195, 223, 102, 35, 97, 32, 95, 85, 107, 36, 175, 58, 166, 4, 156, 153, 230, 18, 133, 89, 78, 100, 243, 132, 227, 0, 42, 20, 183, 226, 167, 112] [194, 230, 112, 78, 30, 52, 32, 90, 27, 42, 71, 61, 191, 83, 164, 202, 208, 29, 56, 176, 25, 130, 68, 64, 118, 66, 123, 167, 21, 147, 209, 174, 210, 190, 163, 155, 206, 224, 221, 158, 10, 117, 166, 110, 105, 82, 192, 50, 254, 143, 70, 6, 33, 136, 92, 31, 236, 138, 3, 24, 170, 44, 131, 88, 151, 89, 93, 36, 146, 18, 228, 172, 231, 133, 28, 137, 182, 195, 248, 94, 19, 240, 76, 65, 127, 212, 237, 62, 187, 197, 139, 2, 162, 60, 108, 116, 213, 34, 140, 53, 100, 46, 169, 252, 159, 196, 38, 72, 7, 128, 26, 47, 156, 200, 111, 1, 91, 80, 253, 148, 40, 79, 142, 20, 141, 23, 178, 106] [18, 19, 20, 24, 27, 28, 32, 36, 42, 44, 46, 47, 50, 56, 60, 61, 64, 78, 80, 83, 89, 90, 91, 100, 108, 110, 111, 112, 118, 133, 138, 139, 143, 147, 156, 164, 166, 167, 174, 176, 182, 195, 196, 200, 202, 221, 224, 230, 236, 237, 253]
90 88 [163, 37, 59, 83, 95, 242, 175, 250, 67, 185, 135, 66, 228, 157, 53, 105, 60, 43, 180, 219, 164, 99, 78, 162, 179, 29, 82, 130, 30, 189, 36, 199, 57, 144, 26, 19, 155, 160, 87, 223, 126, 134, 64, 46, 0, 159, 24, 212, 55, 54, 100, 85, 48, 96, 65, 178, 10, 6, 149, 109, 112, 153, 169, 4, 232, 137, 139, 9, 237, 102, 16, 113, 1, 77, 90, 84, 238, 63, 49, 91, 146, 123, 25, 121, 94, 235, 131, 211, 114, 214, 174, 45, 209, 231, 129, 103, 72, 142, 172, 246, 251, 61, 190, 215, 218, 140, 208, 161, 33, 191, 50, 197, 40, 88, 222, 220, 27, 31, 71, 234, 184, 230, 249, 217, 150, 76, 154, 115] [212, 24, 21, 219, 152, 161, 229, 197, 18, 39, 168, 160, 189, 231, 232, 0, 98, 246, 132, 149, 209, 67, 77, 122, 173, 195, 140, 146, 102, 94, 105, 54, 66, 91, 109, 249, 221, 188, 139, 194, 162, 63, 182, 95, 57, 50, 199, 90, 52, 53, 25, 178, 154, 191, 96, 167, 130, 206, 86, 157, 253, 114, 254, 227, 183, 116, 71, 58, 185, 218, 126, 72, 4, 5, 43, 112, 135, 108, 151, 223, 73, 205, 169, 247, 234, 220, 186, 100, 87, 19, 20, 215, 147, 17, 193, 10, 175, 83, 103, 210, 192, 55, 222, 180, 136, 76, 142, 250, 2, 213, 30, 113, 107, 242, 163, 36, 14, 79, 137, 99, 104, 22, 64, 141, 29, 144, 251, 164] [0, 4, 10, 19, 24, 25, 29, 30, 36, 43, 50, 53, 54, 55, 57, 63, 64, 66, 67, 71, 72, 76, 77, 83, 87, 90, 91, 94, 95, 96, 99, 100, 102, 103, 105, 109, 112, 113, 114, 126, 130, 135, 137, 139, 140, 142, 144, 146, 149, 154, 157, 160, 161, 162, 163, 164, 169, 175, 178, 180, 185, 189, 191, 197, 199, 209, 212, 215, 218, 219, 220, 222, 223, 231, 232, 234, 242, 246, 249, 250, 251]
91 89 [21, 132, 215, 96, 71, 240, 242, 193, 165, 154, 100, 158, 59, 75, 249, 79, 62, 81, 29, 9, 47, 144, 241, 112, 101, 129, 185, 27, 151, 16, 37, 84, 90, 92, 38, 78, 145, 152, 160, 203, 87, 167, 236, 122, 6, 1, 250, 220, 105, 124, 88, 103, 175, 52, 243, 33, 162, 178, 217, 164, 137, 174, 20, 76, 5, 189, 72, 91, 17, 210, 58, 104, 26, 148, 182, 173, 131, 39, 231, 65, 139, 70, 15, 150, 234, 36, 82, 63, 126, 186, 18, 48, 41, 206, 11, 163, 247, 128, 177, 55, 196, 40, 181, 111, 32, 223, 66, 89, 30, 183, 60, 28, 74, 190, 85, 255, 141, 212, 166, 0, 176, 146, 208, 50, 86, 93, 31, 169] [148, 62, 51, 34, 16, 108, 91, 103, 169, 173, 207, 231, 102, 101, 63, 72, 183, 234, 163, 9, 115, 243, 52, 160, 5, 215, 50, 150, 6, 70, 180, 121, 134, 213, 0, 75, 158, 199, 87, 100, 96, 76, 241, 193, 170, 25, 21, 110, 248, 74, 190, 20, 88, 120, 165, 222, 112, 210, 64, 212, 58, 166, 217, 159, 39, 152, 90, 19, 26, 57, 98, 176, 253, 242, 85, 53, 139, 132, 200, 92, 136, 174, 137, 182, 71, 144, 79, 29, 227, 141, 240, 107, 17, 128, 93, 175, 95, 238, 109, 105, 36, 195, 89, 247, 143, 185, 77, 145, 187, 13, 154, 196, 84, 38, 122, 255, 48, 99, 179, 60, 22, 226, 205, 27, 116, 33, 124, 118] [0, 5, 6, 9, 16, 17, 20, 21, 26, 27, 29, 33, 36, 38, 39, 48, 50, 52, 58, 60, 62, 63, 70, 71, 72, 74, 75, 76, 79, 84, 85, 87, 88, 89, 90, 91, 92, 93, 96, 100, 101, 103, 105, 112, 122, 124, 128, 132, 137, 139, 141, 144, 145, 148, 150, 152, 154, 158, 160, 163, 165, 166, 169, 173, 174, 175, 176, 182, 183, 185, 190, 193, 196, 210, 212, 215, 217, 231, 234, 240, 241, 242, 243, 247, 255]
92 90 [19, 173, 102, 86, 253, 56, 25, 135, 250, 126, 91, 137, 146, 45, 100, 209, 12, 1, 238, 225, 109, 208, 43, 184, 116, 93, 84, 89, 136, 92, 186, 166, 8, 99, 62, 159, 90, 32, 160, 153, 194, 37, 110, 83, 108, 80, 247, 192, 204, 72, 224, 185, 113, 81, 234, 33, 187, 44, 22, 123, 24, 76, 133, 164, 17, 2, 206, 47, 105, 107, 52, 36, 223, 176, 53, 236, 3, 71, 88, 249, 60, 245, 198, 4, 195, 151, 121, 175, 58, 154, 241, 213, 196, 205, 18, 57, 203, 248, 20, 42, 134, 49, 211, 95, 142, 230, 150, 15, 118, 233, 131, 190, 178, 28, 177, 39, 170, 148, 174, 183, 70, 179, 127, 104, 152, 157, 252, 54] [59, 222, 183, 169, 127, 24, 158, 85, 204, 152, 115, 37, 136, 1, 47, 72, 198, 214, 252, 75, 8, 98, 148, 0, 248, 108, 167, 23, 49, 62, 182, 99, 199, 64, 225, 162, 41, 84, 22, 220, 137, 56, 65, 42, 7, 101, 6, 68, 138, 243, 126, 143, 34, 106, 18, 172, 224, 30, 102, 231, 55, 161, 170, 173, 97, 189, 200, 124, 219, 160, 44, 46, 146, 235, 73, 79, 70, 234, 40, 150, 33, 10, 216, 178, 88, 230, 129, 105, 166, 197, 19, 14, 109, 87, 63, 147, 181, 188, 130, 168, 236, 104, 195, 95, 144, 254, 51, 132, 128, 202, 26, 131, 134, 5, 193, 61, 107, 226, 60, 4, 17, 139, 89, 103, 58, 180, 39, 93] [1, 4, 8, 17, 18, 19, 22, 24, 33, 37, 39, 42, 44, 47, 49, 56, 58, 60, 62, 70, 72, 84, 88, 89, 93, 95, 99, 102, 104, 105, 107, 108, 109, 126, 127, 131, 134, 136, 137, 146, 148, 150, 152, 160, 166, 170, 173, 178, 183, 195, 198, 204, 224, 225, 230, 234, 236, 248, 252]
93 91 [231, 211, 124, 114, 87, 47, 213, 139, 111, 176, 113, 103, 163, 20, 202, 174, 54, 53, 158, 19, 0, 29, 39, 179, 105, 6, 102, 92, 122, 226, 232, 162, 195, 233, 194, 67, 12, 91, 149, 65, 35, 27, 245, 48, 125, 108, 248, 96, 78, 64, 198, 30, 38, 212, 9, 109, 200, 132, 61, 217, 100, 94, 24, 76, 119, 218, 249, 222, 57, 237, 106, 28, 137, 210, 167, 135, 49, 225, 110, 221, 240, 214, 189, 14, 242, 123, 16, 21, 165, 197, 82, 68, 4, 26, 36, 42, 193, 80, 169, 55, 129, 89, 5, 33, 10, 227, 157, 229, 219, 187, 13, 126, 185, 160, 17, 152, 107, 171, 177, 164, 146, 25, 51, 70, 203, 97, 18, 134] [149, 39, 217, 47, 10, 250, 233, 216, 110, 17, 213, 37, 67, 229, 26, 121, 164, 120, 102, 153, 48, 61, 249, 169, 27, 195, 14, 38, 174, 51, 45, 28, 176, 97, 244, 170, 254, 232, 80, 142, 139, 187, 9, 179, 163, 41, 103, 106, 210, 82, 202, 138, 167, 159, 194, 24, 251, 46, 15, 215, 171, 162, 86, 81, 150, 208, 214, 172, 184, 243, 52, 35, 11, 0, 70, 87, 8, 245, 13, 247, 131, 219, 207, 91, 115, 75, 33, 177, 96, 64, 132, 122, 211, 137, 130, 19, 22, 36, 218, 156, 178, 116, 114, 29, 49, 125, 57, 20, 168, 175, 95, 78, 212, 225, 73, 111, 124, 248, 12, 205, 99, 112, 152, 65, 222, 92, 113, 54] [0, 9, 10, 12, 13, 14, 17, 19, 20, 24, 26, 27, 28, 29, 33, 35, 36, 38, 39, 47, 48, 49, 51, 54, 57, 61, 64, 65, 67, 70, 78, 80, 82, 87, 91, 92, 96, 97, 102, 103, 106, 110, 111, 113, 114, 122, 124, 125, 132, 137, 139, 149, 152, 162, 163, 164, 167, 169, 171, 174, 176, 177, 179, 187, 194, 195, 202, 210, 211, 212, 213, 214, 217, 218, 219, 222, 225, 229, 232, 233, 245, 248, 249]
94 92 [108, 79, 59, 203, 244, 151, 39, 102, 112, 219, 128, 35, 11, 235, 251, 153, 240, 12, 32, 125, 211, 164, 218, 3, 229, 139, 34, 16, 189, 253, 236, 127, 57, 143, 7, 114, 48, 146, 252, 72, 197, 18, 38, 93, 199, 176, 149, 0, 129, 109, 170, 115, 222, 180, 220, 183, 15, 56, 230, 2, 107, 106, 168, 100, 111, 152, 136, 210, 173, 30, 86, 88, 204, 123, 28, 166, 226, 137, 84, 9, 228, 26, 36, 67, 122, 82, 20, 117, 160, 174, 175, 22, 171, 154, 5, 55, 40, 165, 50, 184, 94, 52, 195, 144, 51, 121, 14, 198, 8, 196, 120, 187, 21, 233, 249, 163, 75, 140, 142, 110, 224, 97, 25, 178, 104, 132, 54, 73] [241, 182, 195, 229, 235, 249, 174, 98, 142, 51, 233, 94, 97, 196, 7, 6, 106, 203, 186, 251, 175, 34, 11, 56, 42, 156, 171, 40, 140, 149, 14, 152, 180, 22, 36, 128, 215, 93, 198, 189, 204, 114, 20, 104, 243, 90, 109, 39, 116, 236, 177, 224, 139, 117, 38, 83, 253, 165, 153, 58, 162, 99, 154, 239, 143, 244, 252, 57, 66, 48, 81, 183, 50, 199, 70, 222, 88, 84, 62, 144, 138, 9, 5, 120, 173, 218, 54, 150, 202, 32, 16, 220, 193, 64, 67, 49, 105, 230, 212, 110, 100, 226, 107, 44, 238, 169, 194, 201, 181, 125, 21, 141, 2, 240, 4, 0, 146, 115, 59, 250, 46, 72, 65, 78, 221, 3, 37, 136] [0, 2, 3, 5, 7, 9, 11, 14, 16, 20, 21, 22, 32, 34, 36, 38, 39, 40, 48, 50, 51, 54, 56, 57, 59, 67, 72, 84, 88, 93, 94, 97, 100, 104, 106, 107, 109, 110, 114, 115, 117, 120, 125, 128, 136, 139, 140, 142, 143, 144, 146, 149, 152, 153, 154, 165, 171, 173, 174, 175, 180, 183, 189, 195, 196, 198, 199, 203, 204, 218, 220, 222, 224, 226, 229, 230, 233, 235, 236, 240, 244, 249, 251, 252, 253]
95 93 [59, 142, 165, 194, 103, 159, 67, 84, 41, 116, 151, 157, 20, 222, 217, 135, 97, 60, 40, 29, 108, 6, 225, 22, 8, 68, 83, 224, 255, 209, 250, 182, 207, 58, 14, 130, 70, 66, 133, 39, 214, 77, 80, 132, 90, 45, 96, 153, 88, 65, 134, 120, 146, 232, 74, 49, 95, 124, 5, 156, 136, 223, 176, 198, 28, 181, 100, 127, 64, 10, 190, 203, 73, 240, 110, 38, 140, 188, 242, 93, 125, 75, 152, 158, 46, 197, 19, 117, 33, 178, 227, 115, 123, 101, 121, 251, 154, 236, 113, 37, 91, 162, 34, 53, 109, 216, 143, 48, 138, 106, 253, 50, 56, 89, 85, 184, 220, 51, 218, 185, 26, 206, 241, 183, 175, 169, 27, 245] [214, 30, 120, 101, 162, 126, 167, 182, 193, 109, 96, 83, 90, 3, 146, 69, 179, 129, 84, 213, 68, 184, 40, 119, 206, 176, 152, 21, 192, 29, 150, 72, 144, 139, 220, 174, 180, 57, 191, 202, 2, 200, 246, 231, 199, 147, 195, 127, 161, 56, 170, 238, 80, 12, 27, 212, 141, 128, 92, 219, 243, 148, 164, 172, 241, 158, 64, 81, 208, 151, 14, 248, 115, 177, 88, 252, 181, 201, 215, 225, 15, 35, 7, 205, 60, 228, 85, 54, 42, 61, 10, 137, 6, 36, 18, 229, 67, 204, 169, 66, 47, 166, 132, 31, 65, 138, 253, 190, 91, 19, 48, 103, 232, 133, 226, 125, 16, 249, 32, 185, 49, 175, 244, 70, 247, 230, 183, 99] [6, 10, 14, 19, 27, 29, 40, 48, 49, 56, 60, 64, 65, 66, 67, 68, 70, 80, 83, 84, 85, 88, 90, 91, 96, 101, 103, 109, 115, 120, 125, 127, 132, 133, 138, 146, 151, 152, 158, 162, 169, 175, 176, 181, 182, 183, 184, 185, 190, 206, 214, 220, 225, 232, 241, 253]
96 94 [76, 151, 57, 73, 22, 42, 24, 90, 186, 139, 200, 16, 128, 137, 160, 74, 165, 152, 38, 66, 21, 156, 205, 54, 198, 102, 81, 176, 122, 202, 61, 65, 159, 111, 167, 179, 226, 8, 109, 210, 10, 101, 146, 1, 185, 4, 112, 204, 192, 168, 115, 41, 108, 121, 64, 217, 119, 44, 103, 83, 241, 232, 148, 30, 55, 104, 140, 199, 173, 71, 120, 9, 93, 164, 123, 252, 191, 78, 97, 184, 117, 182, 126, 189, 197, 143, 194, 247, 37, 26, 222, 45, 15, 105, 216, 27, 62, 39, 246, 130, 153, 98, 47, 174, 135, 82, 35, 13, 234, 211, 40, 209, 195, 110, 154, 229, 17, 89, 106, 29, 99, 178, 113, 136, 212, 18, 129, 158] [204, 55, 90, 175, 210, 196, 98, 149, 191, 31, 95, 239, 13, 110, 9, 236, 33, 82, 41, 67, 102, 136, 153, 217, 121, 85, 166, 74, 108, 123, 216, 176, 246, 158, 64, 180, 6, 198, 119, 186, 107, 147, 241, 131, 26, 179, 128, 111, 211, 230, 190, 206, 17, 15, 151, 89, 1, 178, 57, 187, 73, 104, 62, 30, 137, 24, 125, 78, 139, 240, 247, 189, 134, 45, 194, 60, 207, 27, 101, 99, 197, 10, 92, 35, 69, 22, 237, 229, 195, 212, 28, 58, 65, 8, 61, 109, 117, 168, 36, 159, 145, 251, 38, 129, 148, 182, 25, 11, 254, 97, 93, 66, 146, 192, 174, 126, 234, 29, 72, 209, 156, 81, 39, 37, 12, 83, 71, 48] [1, 8, 9, 10, 13, 15, 17, 22, 24, 26, 27, 29, 30, 35, 37, 38, 39, 41, 45, 55, 57, 61, 62, 64, 65, 66, 71, 73, 74, 78, 81, 82, 83, 89, 90, 93, 97, 98, 99, 101, 102, 104, 108, 109, 110, 111, 117, 119, 121, 123, 126, 128, 129, 136, 137, 139, 146, 148, 151, 153, 156, 158, 159, 168, 174, 176, 178, 179, 182, 186, 189, 191, 192, 194, 195, 197, 198, 204, 209, 210, 211, 212, 216, 217, 229, 234, 241, 246, 247]
97 95 [50, 65, 223, 73, 121, 91, 127, 148, 45, 242, 95, 198, 253, 171, 169, 25, 135, 3, 166, 92, 98, 123, 207, 24, 149, 90, 180, 13, 31, 153, 68, 132, 79, 140, 40, 44, 4, 2, 17, 110, 168, 129, 165, 30, 14, 158, 155, 41, 118, 239, 226, 77, 164, 228, 23, 200, 111, 105, 144, 229, 170, 85, 194, 61, 214, 36, 141, 26, 234, 101, 197, 71, 106, 219, 16, 252, 125, 54, 67, 182, 213, 134, 227, 143, 255, 47, 160, 48, 43, 108, 39, 1, 230, 94, 42, 222, 206, 152, 52, 51, 20, 11, 5, 185, 245, 120, 57, 34, 83, 187, 174, 56, 89, 137, 231, 27, 145, 75, 193, 190, 66, 96, 115, 102, 32, 201, 37, 114] [159, 37, 170, 232, 122, 210, 177, 7, 211, 126, 220, 111, 63, 49, 190, 85, 230, 56, 103, 247, 22, 185, 234, 218, 244, 129, 81, 120, 51, 239, 109, 1, 186, 149, 60, 199, 58, 21, 78, 46, 171, 4, 141, 45, 19, 31, 27, 11, 213, 175, 73, 44, 135, 235, 184, 254, 246, 193, 42, 204, 24, 139, 137, 173, 82, 121, 201, 95, 202, 150, 187, 71, 38, 225, 91, 28, 64, 221, 136, 145, 124, 216, 15, 76, 180, 14, 18, 90, 162, 9, 233, 147, 251, 167, 8, 10, 212, 181, 32, 203, 176, 87, 69, 86, 128, 29, 72, 237, 113, 189, 205, 156, 241, 39, 155, 243, 209, 238, 92, 83, 47, 179, 196, 74, 255, 101, 5, 114] [1, 4, 5, 11, 14, 24, 27, 31, 32, 37, 39, 42, 44, 45, 47, 51, 56, 71, 73, 83, 85, 90, 91, 92, 95, 101, 111, 114, 120, 121, 129, 135, 137, 141, 145, 149, 155, 170, 171, 180, 185, 187, 190, 193, 201, 213, 230, 234, 239, 255]
98 96 [108, 104, 142, 134, 39, 173, 143, 83, 127, 158, 11, 151, 1, 50, 253, 113, 24, 150, 53, 17, 90, 224, 112, 124, 74, 98, 206, 160, 250, 156, 178, 120, 153, 137, 107, 129, 60, 35, 217, 176, 184, 70, 0, 12, 52, 101, 48, 86, 210, 201, 66, 19, 163, 223, 131, 194, 167, 152, 102, 6, 182, 226, 190, 29, 38, 96, 140, 87, 133, 193, 208, 166, 79, 27, 132, 13, 110, 236, 212, 192, 118, 203, 62, 149, 161, 23, 76, 85, 213, 43, 99, 130, 197, 46, 254, 97, 7, 205, 185, 81, 196, 111, 195, 92, 199, 123, 44, 80, 187, 128, 58, 22, 237, 200, 45, 57, 144, 247, 91, 221, 243, 51, 215, 68, 75, 69, 183, 64] [83, 19, 171, 79, 167, 177, 207, 46, 229, 126, 10, 241, 64, 168, 238, 121, 115, 235, 85, 141, 231, 213, 89, 15, 82, 243, 230, 35, 5, 191, 189, 17, 12, 44, 119, 218, 156, 86, 215, 33, 67, 142, 219, 109, 129, 169, 249, 179, 93, 214, 2, 7, 61, 244, 140, 147, 111, 209, 22, 133, 103, 223, 37, 25, 41, 188, 114, 106, 248, 23, 53, 155, 31, 84, 175, 148, 6, 196, 255, 246, 154, 50, 87, 192, 228, 165, 232, 245, 34, 202, 159, 96, 158, 73, 63, 130, 138, 78, 247, 65, 220, 125, 80, 144, 240, 252, 150, 117, 206, 236, 16, 132, 18, 194, 47, 251, 174, 1, 94, 66, 105, 71, 99, 134, 239, 42, 13, 136] [1, 6, 7, 12, 13, 17, 19, 22, 23, 35, 44, 46, 50, 53, 64, 66, 79, 80, 83, 85, 86, 87, 96, 99, 111, 129, 130, 132, 133, 134, 140, 142, 144, 150, 156, 158, 167, 192, 194, 196, 206, 213, 215, 223, 236, 243, 247]
99 97 [176, 194, 118, 22, 208, 218, 108, 242, 33, 62, 157, 211, 17, 89, 213, 214, 49, 178, 142, 103, 150, 141, 54, 171, 126, 229, 45, 201, 240, 99, 2, 97, 82, 162, 192, 102, 18, 121, 66, 190, 151, 12, 254, 138, 198, 137, 155, 173, 71, 179, 90, 0, 129, 147, 161, 223, 46, 215, 234, 57, 28, 125, 60, 196, 250, 177, 123, 225, 159, 205, 139, 243, 37, 25, 128, 120, 131, 24, 111, 8, 56, 42, 1, 85, 156, 72, 195, 92, 26, 93, 187, 36, 81, 64, 228, 226, 227, 53, 167, 59, 210, 52, 189, 83, 95, 116, 182, 135, 132, 79, 236, 9, 148, 237, 169, 55, 199, 222, 105, 20, 255, 140, 113, 217, 122, 124, 146, 143] [142, 208, 205, 157, 71, 72, 200, 1, 143, 209, 99, 8, 117, 168, 82, 98, 171, 79, 24, 166, 223, 241, 238, 22, 60, 103, 158, 43, 89, 201, 118, 147, 235, 186, 178, 90, 56, 59, 64, 4, 104, 247, 192, 250, 86, 145, 130, 49, 88, 19, 167, 169, 196, 210, 95, 85, 17, 225, 189, 226, 148, 121, 154, 40, 84, 230, 3, 80, 122, 213, 73, 214, 92, 26, 227, 67, 216, 124, 57, 212, 231, 31, 202, 54, 179, 13, 141, 127, 245, 173, 164, 195, 44, 155, 170, 242, 239, 181, 18, 58, 183, 138, 132, 14, 110, 97, 37, 68, 101, 28, 87, 81, 111, 236, 215, 123, 135, 62, 172, 55, 180, 45, 187, 106, 93, 246, 129, 70] [1, 8, 17, 18, 22, 24, 26, 28, 37, 45, 49, 54, 55, 56, 57, 59, 60, 62, 64, 71, 72, 79, 81, 82, 85, 89, 90, 92, 93, 95, 97, 99, 103, 111, 118, 121, 122, 123, 124, 129, 132, 135, 138, 141, 142, 143, 147, 148, 155, 157, 167, 169, 171, 173, 178, 179, 187, 189, 192, 195, 196, 201, 205, 208, 210, 213, 214, 215, 223, 225, 226, 227, 236, 242, 250]
100 98 [154, 94, 248, 0, 212, 211, 77, 235, 79, 140, 121, 245, 15, 46, 172, 76, 30, 162, 194, 198, 26, 142, 209, 243, 96, 21, 184, 135, 213, 218, 63, 42, 171, 208, 146, 220, 95, 20, 173, 25, 55, 199, 53, 253, 34, 227, 112, 226, 52, 192, 167, 221, 105, 223, 64, 126, 164, 152, 13, 204, 239, 117, 128, 123, 175, 185, 233, 91, 149, 75, 11, 205, 9, 85, 107, 81, 155, 153, 141, 203, 240, 165, 54, 148, 17, 33, 68, 39, 120, 86, 187, 237, 137, 150, 118, 252, 157, 136, 195, 45, 103, 202, 111, 206, 108, 181, 176, 83, 23, 210, 32, 62, 48, 109, 37, 166, 170, 124, 196, 36, 160, 127, 110, 100, 177, 169, 29, 130] [96, 119, 233, 113, 48, 24, 166, 130, 50, 235, 5, 136, 245, 102, 201, 90, 72, 49, 164, 109, 175, 2, 36, 210, 58, 11, 240, 31, 131, 237, 198, 67, 171, 52, 196, 26, 129, 77, 236, 56, 203, 121, 139, 213, 209, 112, 182, 224, 81, 86, 84, 134, 0, 186, 168, 15, 162, 63, 16, 208, 98, 199, 123, 43, 178, 212, 71, 218, 107, 179, 38, 191, 78, 180, 126, 4, 219, 9, 153, 30, 118, 21, 29, 120, 7, 76, 145, 69, 185, 35, 99, 124, 13, 105, 32, 54, 184, 181, 189, 159, 174, 128, 110, 234, 33, 82, 195, 73, 249, 37, 204, 230, 248, 141, 202, 220, 44, 59, 194, 154, 143, 20, 3, 160, 148, 34, 74, 250] [0, 9, 11, 13, 15, 20, 21, 26, 29, 30, 32, 33, 34, 36, 37, 48, 52, 54, 63, 76, 77, 81, 86, 96, 105, 107, 109, 110, 112, 118, 120, 121, 123, 124, 126, 128, 130, 136, 141, 148, 153, 154, 160, 162, 164, 166, 171, 175, 181, 184, 185, 194, 195, 196, 198, 199, 202, 203, 204, 208, 209, 210, 212, 213, 218, 220, 233, 235, 237, 240, 245, 248]
101 99 [107, 192, 88, 185, 186, 100, 34, 0, 22, 235, 239, 69, 64, 240, 21, 74, 232, 230, 175, 91, 189, 193, 13, 43, 247, 6, 85, 161, 57, 54, 231, 188, 31, 98, 11, 32, 217, 72, 200, 215, 199, 224, 10, 245, 152, 120, 253, 180, 182, 46, 196, 228, 243, 109, 187, 160, 70, 80, 65, 174, 241, 110, 158, 30, 112, 129, 146, 3, 76, 9, 208, 97, 254, 29, 165, 190, 227, 163, 149, 211, 134, 123, 204, 198, 221, 169, 82, 181, 203, 5, 168, 219, 154, 14, 170, 71, 155, 16, 130, 116, 73, 205, 195, 15, 103, 136, 118, 101, 58, 95, 191, 226, 89, 166, 17, 50, 59, 61, 66, 233, 83, 68, 183, 184, 63, 117, 99, 77] [100, 229, 45, 88, 62, 52, 119, 22, 233, 91, 4, 27, 138, 24, 158, 48, 6, 255, 242, 145, 167, 41, 205, 28, 237, 47, 126, 139, 248, 85, 197, 30, 246, 14, 69, 58, 102, 65, 214, 225, 130, 131, 223, 107, 108, 251, 201, 37, 97, 204, 238, 78, 44, 73, 218, 86, 232, 244, 149, 216, 212, 38, 79, 92, 230, 196, 173, 2, 169, 179, 87, 156, 254, 54, 93, 206, 101, 143, 147, 89, 209, 252, 25, 104, 249, 127, 96, 81, 153, 114, 133, 36, 122, 241, 82, 150, 176, 171, 162, 98, 178, 210, 188, 181, 148, 42, 203, 164, 90, 213, 33, 144, 105, 175, 39, 70, 3, 222, 236, 240, 128, 111, 226, 51, 202, 56, 31, 113] [3, 6, 14, 22, 30, 31, 54, 58, 65, 69, 70, 73, 82, 85, 88, 89, 91, 97, 98, 100, 101, 107, 130, 149, 158, 169, 175, 181, 188, 196, 203, 204, 205, 226, 230, 232, 233, 240, 241, 254]
@@ -0,0 +1,812 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# The source code is adapted from the sorting source code written by
# Nils Blach.
#
# main author: Robert Gerstenberger
import os
import logging
import datetime
import json
import csv
from typing import Dict, List, Callable, Union
from graph_of_thoughts import controller, operations, prompter, parser
from . import utils
class SetIntersectionPrompter(prompter.Prompter):
"""
SetIntersectionPrompter provides the generation of prompts specific to the
set intersection example for the language models.
Inherits from the Prompter class and implements its abstract methods.
"""
intersection_prompt = """<Instruction> Find the intersection of two sets of numbers. Output only the set of numbers that are present in both sets, no additional text. </Instruction>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Output: [40, 15, 5, 24, 35, 59, 16, 63]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Output: [115, 35, 90, 117, 63, 40, 30, 33, 15, 89, 50, 12, 2, 84, 7, 57, 96]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
intersection_prompt_cot = """<Instruction> Find the intersection of two sets of numbers. You can generate any intermediate solutions, but the final output should be the set of numbers that are present in both sets, prefixed with "Output: ". </Instruction>
<Approach>
To find the intersection of the two sets follow these steps:
1. Split the second input set of numbers into two to four subsets, each containing an equal number of elements from the original set (make sure they don't overlap).
2. For each subset find the set of numbers that are present in the subset and the first input set.
3. Merge the resulting sets into a single output set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Subsets of Input Set 2:
[25, 24, 10, 4, 27, 0, 14, 12]
[8, 2, 29, 20, 17, 19, 26, 23]
Intersected Subsets with Input Set 1:
[24, 10]
[8, 20]
Output: [24, 10, 8, 20]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Subsets of Input Set 2:
[16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53]
[58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Intersected Subsets with Input Set 1:
[16, 15, 5, 24]
[35, 63, 40, 59]
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Subsets of Input Set 2:
[13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122]
[85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12]
[65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81]
[124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Intersected Subsets with Input Set 1:
[35, 96]
[15, 33, 57, 30, 89, 12]
[84, 40, 7, 50, 90]
[63, 117, 115, 2]
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}"""
tot_improve_prompt = """<Instruction> The following three sets represent two sets and an intersection set of those two sets. The intersection set is not correct. Fix the intersection set so that it is correct.
Make sure that the numbers in the intersection set can be found in both input sets. </Instruction>
<Approach>
To fix the incorrectly intersection set follow these steps:
1. Check for each number in the incorrect intersection set, whether it can be found in both input sets. If not, remove that number from the intersection set.
2. Iterate through the second input set and check whether each number is already in the incorrect intersection set and if not, check whether that number can also be found in the first input set. If so, add that number to the intersection set.
</Approach>
<Examples>
Input Set 1: [13, 16, 30, 6, 21, 7, 31, 15, 11, 1, 24, 10, 9, 3, 20, 8]
Input Set 2: [25, 24, 10, 4, 27, 0, 14, 12, 8, 2, 29, 20, 17, 19, 26, 23]
Incorrect Intersection Set: [24, 20, 25]
Reason: The incorrect intersection set contains the number 25, which is not present in the first input set and is missing the numbers 10 and 8.
Output: [24, 10, 20, 8]
Input Set 1: [26, 40, 42, 57, 15, 31, 5, 32, 11, 4, 24, 28, 51, 54, 12, 22, 33, 35, 7, 13, 2, 59, 8, 23, 43, 16, 29, 55, 25, 63, 21, 18]
Input Set 2: [16, 60, 36, 48, 0, 15, 5, 19, 46, 24, 1, 6, 61, 10, 38, 53, 58, 9, 44, 14, 35, 63, 52, 20, 27, 17, 39, 47, 34, 56, 40, 59]
Incorrect Intersection Set: [57, 16, 15, 24, 35, 10, 40]
Reason: The incorrect intersection set contains the numbers 57, which is not present in the second input set, and 10, which is not present in the first input set, and is missing the numbers 5, 63 and 59.
Output: [16, 15, 5, 24, 35, 63, 40, 59]
Input Set 1: [115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
Input Set 2: [13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Incorrect Intersection Set: [35, 96, 44, 15, 33, 57, 30, 50, 90, 119, 123, 63, 117, 115, 2]
Reason: The incorrect intersection set contains the numbers 44 and 119, which are not present in the second input set, and 123, which is not present in the first input set, and is missing the numbers 89, 12, 84, 40 and 7.
Output: [35, 96, 15, 33, 57, 30, 89, 12, 84, 40, 7, 50, 90, 63, 117, 115, 2]
</Examples>
Input Set 1: {set1}
Input Set 2: {set2}
Incorrect Intersection Set: {incorrect_intersection}
"""
got_split_prompt = """<Instruction> Split the following list of 128 numbers into 8 lists of 16 numbers each, the first list should contain the first 16 numbers, the second list the second 16 numbers, the third list the third 16 numbers and the fourth list the fourth 16 numbers, the fifth list the fifth 16 numbers and so on.
Only output the 8 lists in the following format without any additional text or thoughts!:
{{
"List 1": [13, 35, 20, 96, 34, 18, 47, ...],
"List 2": [127, 126, 9, 21, 16, 77, 22, ...],
"List 3": [111, 122, 85, 73, 42, 105, 123, ...],
"List 4": [15, 33, 59, 67, 57, 104, 8, ...],
"List 5": [30, 89, 76, 12, 65, 84, 32, ...],
"List 6": [40, 7, 100, 108, 50, 14, 28, ...],
"List 7": [24, 53, 90, 17, 91, 81, 124, ...],
"List 8": [63, 5, 46, 125, 93, 49, 66, ...]
}} </Instruction>
<Example>
Input: [124, 100, 176, 65, 28, 214, 201, 67, 127, 40, 193, 26, 212, 196, 12, 205, 39, 162, 190, 152, 186, 182, 125, 229, 114, 70, 189, 242, 155, 32, 47, 113, 99, 177, 57, 103, 156, 107, 226, 188, 31, 25, 49, 171, 17, 64, 254, 217, 35, 22, 248, 88, 251, 219, 84, 82, 167, 14, 116, 92, 105, 148, 119, 58, 13, 160, 81, 120, 74, 94, 173, 38, 101, 104, 91, 135, 208, 118, 136, 87, 75, 41, 197, 76, 249, 240, 86, 246, 231, 44, 29, 141, 241, 227, 239, 142, 222, 115, 129, 255, 216, 153, 0, 110, 36, 130, 6, 102, 209, 37, 143, 30, 51, 146, 71, 27, 181, 183, 2, 122, 77, 184, 56, 225, 108, 83, 106, 15]
Output:
{{
"List 1": [124, 100, 176, 65, 28, 214, 201, 67, 127, 40, 193, 26, 212, 196, 12, 205],
"List 2": [39, 162, 190, 152, 186, 182, 125, 229, 114, 70, 189, 242, 155, 32, 47, 113],
"List 3": [99, 177, 57, 103, 156, 107, 226, 188, 31, 25, 49, 171, 17, 64, 254, 217],
"List 4": [35, 22, 248, 88, 251, 219, 84, 82, 167, 14, 116, 92, 105, 148, 119, 58],
"List 5": [13, 160, 81, 120, 74, 94, 173, 38, 101, 104, 91, 135, 208, 118, 136, 87],
"List 6": [75, 41, 197, 76, 249, 240, 86, 246, 231, 44, 29, 141, 241, 227, 239, 142],
"List 7": [222, 115, 129, 255, 216, 153, 0, 110, 36, 130, 6, 102, 209, 37, 143, 30],
"List 8": [51, 146, 71, 27, 181, 183, 2, 122, 77, 184, 56, 225, 108, 83, 106, 15]
}}
</Example>
Input: {input}"""
got_merge_prompt = """<Instruction> Merge the following 2 lists of length {length1} each, into one list of length {length2} by appending the second list to the first list.
Only output the final list without any additional text or thoughts! </Instruction>
List 1: {input1}
List 2: {input2}
"""
def aggregation_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate an aggregation prompt for the language model.
:param state_dicts: The thought states that should be aggregated.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The aggregation prompt.
:rtype: str
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(state_dicts) == 2, "Expected two states for aggregation prompt."
len_input1 = len(utils.string_to_list(state_dicts[0]["current"]))
len_input2 = len(utils.string_to_list(state_dicts[1]["current"]))
if len_input1 == len_input2:
length = len_input1
elif len_input1 + len_input2 - 32 <= 16:
length = 16
elif len_input1 + len_input2 - 64 <= 32:
length = 32
else:
length = 64
return self.got_merge_prompt.format(
input1=state_dicts[0]["current"],
input2=state_dicts[1]["current"],
length1=length,
length2=length * 2,
)
def generate_prompt(
self,
num_branches: int,
set1: str,
set2: str,
current: str,
method: str,
**kwargs,
) -> str:
"""
Generate a generate prompt for the language model.
:param num_branches: The number of responses the prompt should ask the LM to generate.
:type num_branches: int
:param set1: First input set.
:type set1: str
:param set2: Second input set.
:type set2: str
:param current: Intermediate solution.
:type current: str
:param method: Method for which the generate prompt is generated.
:type method: str
:param kwargs: Additional keyword arguments.
:return: The generate prompt.
:rtype: str
:raise AssertionError: If the requested number of branches is not one.
"""
assert num_branches == 1, "Branching should be done via multiple requests."
if method.startswith("io"):
return self.intersection_prompt.format(set1=set1, set2=set2)
elif method.startswith("cot"):
return self.intersection_prompt_cot.format(set1=set1, set2=set2)
elif method.startswith("tot"):
if current is None or current == "":
return self.intersection_prompt.format(set1=set1, set2=set2)
return self.tot_improve_prompt.format(
set1=set1, set2=set2, incorrect_intersection=current
)
elif method.startswith("got"):
if kwargs["phase"] == 0:
return self.got_split_prompt.format(input=set2)
input_set = set2
if "subset" in kwargs and kwargs["subset"] != "":
input_set = kwargs["subset"]
return self.intersection_prompt.format(set1=set1, set2=input_set)
def improve_prompt(self, **kwargs) -> str:
"""
Generate an improve prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The improve prompt.
:rtype: str
"""
pass
def validation_prompt(self, **kwargs) -> str:
"""
Generate a validation prompt for the language model.
:param kwargs: Additional keyword arguments.
:return: The validation prompt.
:rtype: str
"""
pass
def score_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
"""
Generate a score prompt for the language model.
:param state_dicts: The thought states that should be scored,
if more than one, they should be scored together.
:type state_dicts: List[Dict]
:param kwargs: Additional keyword arguments.
:return: The score prompt.
:rtype: str
"""
pass
class SetIntersectionParser(parser.Parser):
"""
SetIntersectionParser provides the parsing of language model reponses
specific to the set intersection example.
Inherits from the Parser class and implements its abstract methods.
"""
def __init__(self) -> None:
"""
Inits the response cache.
"""
self.cache = {}
def parse_aggregation_answer(
self, states: List[Dict], texts: List[str]
) -> Union[Dict, List[Dict]]:
"""
Parse the response from the language model for an aggregation prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: Union[Dict, List[Dict]]
:raise AssertionError: If not exactly two thought states are provided.
"""
assert len(states) == 2, "Expected two states for aggregation answer."
new_states = []
for text in texts:
answers = text.strip().split("\n")
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers_stripped = [
answer for answer in answers if "[" in answer and "]" in answer
]
if len(answers_stripped) == 0:
for answer in answers:
answer = "[" + answer + "]"
try:
answer_converted = utils.string_to_list(answer)
if len(answer_converted) > 0:
answers_stripped.append(answer)
except:
pass
if len(answers_stripped) == 0:
logging.warning(
f"Could not parse aggregation answer: {text}. Returning empty list."
)
answer = "[]"
else:
answer = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers_stripped
][0]
states = sorted(states, key=lambda x: x["part"])
merged_subsets = states[0]["subset"][:-1] + ", " + states[1]["subset"][1:]
new_state = states[0].copy()
new_state["current"] = answer
new_state["subset"] = merged_subsets
new_states.append(new_state)
return new_states
def parse_improve_answer(self, state: Dict, texts: List[str]) -> Dict:
"""
Parse the response from the language model for an improve prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought state after parsing the responses from the language model.
:rtype: Dict
"""
pass
def parse_generate_answer(self, state: Dict, texts: List[str]) -> List[Dict]:
"""
Parse the response from the language model for a generate prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The new thought states after parsing the respones from the language model.
:rtype: List[Dict]
"""
new_states = []
for text in texts:
if state["method"].startswith("got") and state["phase"] == 0:
# We expect a json which contains the two lists named "List 1" and "List 2"
# cut everything until the opening bracket and everything after the closing bracket
try:
text = text[text.index("{") : text.index("}") + 1]
json_dict = json.loads(text)
if len(json_dict.keys()) != 8:
logging.warning(
f"Expected 8 lists in json, but found {len(json_dict.keys())}."
)
for key, value in json_dict.items():
if "List" not in key:
logging.warning(
f"Expected key to contain 'List', but found {key}."
)
continue
if not isinstance(value, list):
value = utils.string_to_list(value)
new_state = state.copy()
new_state["current"] = ""
new_state["subset"] = str(value)
new_state["phase"] = 1
new_state["part"] = key
new_states.append(new_state)
except Exception as e:
logging.error(
f"Could not parse step answer: {text}. Encountered exception: {e}"
)
else:
answers = text.strip().split("\n")
answers = [
answer for answer in answers if "[" in answer and "]" in answer
]
if any(["Output" in answer for answer in answers]):
# cut elements until last output is found
for answer in reversed(answers):
if "Output" in answer:
answers = answers[answers.index(answer) :]
break
answers = [
answer[answer.index("[") : answer.index("]") + 1]
for answer in answers
]
if len(answers) == 0:
logging.warning(
f"Could not parse step answer: {text}. Returning empty list."
)
answer = "[]"
else:
if len(answers) > 1:
logging.warning(
f"Multiple answers found for step answer: {text}. Using the first one."
)
answer = answers[0]
new_state = state.copy()
new_state["current"] = answer
new_state["phase"] = 2
new_states.append(new_state)
return new_states
def parse_validation_answer(self, state: Dict, texts: List[str]) -> bool:
"""
Parse the response from the language model for a validation prompt.
:param state: The thought state used to generate the prompt.
:type state: Dict
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: Whether the thought state is valid or not.
:rtype: bool
"""
pass
def parse_score_answer(self, states: List[Dict], texts: List[str]) -> List[float]:
"""
Parse the response from the language model for a score prompt.
:param states: The thought states used to generate the prompt.
:type states: List[Dict]
:param texts: The responses to the prompt from the language model.
:type texts: List[str]
:return: The scores for the thought states.
:rtype: List[float]
"""
pass
def io() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the IO method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def cot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the CoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 1))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT method.
ToT uses a wider tree, where on each level there are more branches.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 25))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(3):
operations_graph.append_operation(operations.Generate(1, 25))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def tot2() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the ToT2 method.
ToT2 uses a tree with more levels, but with fewer branches per level.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_1 = operations.KeepBestN(1, False)
operations_graph.append_operation(op_1)
for _ in range(8):
operations_graph.append_operation(operations.Generate(1, 10))
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
op_2 = operations.KeepBestN(1, False)
op_2.add_predecessor(op_1)
operations_graph.append_operation(op_2)
op_1 = op_2
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def got() -> operations.GraphOfOperations:
"""
Generates the Graph of Operations for the GoT method.
:return: Graph of Operations
:rtype: GraphOfOperations
"""
operations_graph = operations.GraphOfOperations()
plans = operations.Generate(1, 1)
operations_graph.append_operation(plans) # generate the sublists
solved_subsets = []
for i in range(1, 9):
list_id = f"List {i}"
sub_list = operations.Selector(
lambda thoughts, list_id=list_id: [
thought for thought in thoughts if thought.state["part"] == list_id
]
)
sub_list.add_predecessor(plans)
operations_graph.add_operation(sub_list)
intersected_subset = operations.Generate(1, 5)
intersected_subset.add_predecessor(sub_list)
operations_graph.add_operation(intersected_subset)
score_sub_list = operations.Score(1, False, utils.num_errors)
score_sub_list.add_predecessor(intersected_subset)
operations_graph.add_operation(score_sub_list)
keep_best_sub_list = operations.KeepBestN(1, False)
keep_best_sub_list.add_predecessor(score_sub_list)
operations_graph.add_operation(keep_best_sub_list)
solved_subsets.append(keep_best_sub_list)
aggregate_1 = operations.Aggregate(5)
aggregate_1.add_predecessor(solved_subsets[0])
aggregate_1.add_predecessor(solved_subsets[1])
operations_graph.add_operation(aggregate_1)
score_aggregate_1 = operations.Score(1, False, utils.num_errors)
score_aggregate_1.add_predecessor(aggregate_1)
operations_graph.add_operation(score_aggregate_1)
keep_best_aggregate_1 = operations.KeepBestN(1, False)
keep_best_aggregate_1.add_predecessor(score_aggregate_1)
operations_graph.add_operation(keep_best_aggregate_1)
aggregate_2 = operations.Aggregate(5)
aggregate_2.add_predecessor(solved_subsets[2])
aggregate_2.add_predecessor(solved_subsets[3])
operations_graph.add_operation(aggregate_2)
score_aggregate_2 = operations.Score(1, False, utils.num_errors)
score_aggregate_2.add_predecessor(aggregate_2)
operations_graph.add_operation(score_aggregate_2)
keep_best_aggregate_2 = operations.KeepBestN(1, False)
keep_best_aggregate_2.add_predecessor(score_aggregate_2)
operations_graph.add_operation(keep_best_aggregate_2)
aggregate_3 = operations.Aggregate(5)
aggregate_3.add_predecessor(solved_subsets[4])
aggregate_3.add_predecessor(solved_subsets[5])
operations_graph.add_operation(aggregate_3)
score_aggregate_3 = operations.Score(1, False, utils.num_errors)
score_aggregate_3.add_predecessor(aggregate_3)
operations_graph.add_operation(score_aggregate_3)
keep_best_aggregate_3 = operations.KeepBestN(1, False)
keep_best_aggregate_3.add_predecessor(score_aggregate_3)
operations_graph.add_operation(keep_best_aggregate_3)
aggregate_4 = operations.Aggregate(5)
aggregate_4.add_predecessor(solved_subsets[6])
aggregate_4.add_predecessor(solved_subsets[7])
operations_graph.add_operation(aggregate_4)
score_aggregate_4 = operations.Score(1, False, utils.num_errors)
score_aggregate_4.add_predecessor(aggregate_4)
operations_graph.add_operation(score_aggregate_4)
keep_best_aggregate_4 = operations.KeepBestN(1, False)
keep_best_aggregate_4.add_predecessor(score_aggregate_4)
operations_graph.add_operation(keep_best_aggregate_4)
aggregate_1_2 = operations.Aggregate(5)
aggregate_1_2.add_predecessor(keep_best_aggregate_1)
aggregate_1_2.add_predecessor(keep_best_aggregate_2)
operations_graph.add_operation(aggregate_1_2)
score_aggregate_1_2 = operations.Score(1, False, utils.num_errors)
score_aggregate_1_2.add_predecessor(aggregate_1_2)
operations_graph.add_operation(score_aggregate_1_2)
keep_best_aggregate_1_2 = operations.KeepBestN(1, False)
keep_best_aggregate_1_2.add_predecessor(score_aggregate_1_2)
operations_graph.add_operation(keep_best_aggregate_1_2)
aggregate_3_4 = operations.Aggregate(5)
aggregate_3_4.add_predecessor(keep_best_aggregate_3)
aggregate_3_4.add_predecessor(keep_best_aggregate_4)
operations_graph.add_operation(aggregate_3_4)
score_aggregate_3_4 = operations.Score(1, False, utils.num_errors)
score_aggregate_3_4.add_predecessor(aggregate_3_4)
operations_graph.add_operation(score_aggregate_3_4)
keep_best_aggregate_3_4 = operations.KeepBestN(1, False)
keep_best_aggregate_3_4.add_predecessor(score_aggregate_3_4)
operations_graph.add_operation(keep_best_aggregate_3_4)
final_aggregate = operations.Aggregate(5)
operations_graph.append_operation(final_aggregate)
operations_graph.append_operation(operations.Score(1, False, utils.num_errors))
keep_best_aggregate_final = operations.KeepBestN(1, False)
operations_graph.append_operation(keep_best_aggregate_final)
operations_graph.append_operation(
operations.GroundTruth(utils.test_set_intersection)
)
return operations_graph
def run(
data_ids: List[int],
methods: List[Callable[[], operations.GraphOfOperations]],
budget: float,
lm_name: str,
) -> float:
"""
Controller function that executes each specified method for each specified
sample while the budget is not exhausted.
:param data_ids: Indices of the sample to be run.
:type data_ids: List[int]
:param methods: List of functions to generate Graphs of Operations.
:type methods: Each function generates a Graph of Operation.
:param budget: Language model budget for the execution in dollars.
:type budget: float
:param lm_name: Name of the language model to be used.
:type lm_name: str
:return: Spent budget in dollars.
:rtype: float
"""
orig_budget = budget
path = os.path.join(os.path.dirname(__file__), "set_intersection_128.csv")
data = []
with open(path, "r") as f:
reader = csv.reader(f)
next(reader)
for row in reader:
data.append([int(row[0]), row[1], row[2], row[3]])
if data_ids is None or len(data_ids) == 0:
data_ids = list(range(len(data)))
selected_data = [data[i] for i in data_ids]
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
folder_name = f"results/{extra_info}_{timestamp}"
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
config = {
"data": selected_data,
"methods": [method.__name__ for method in methods],
"lm": lm_name,
"budget": budget,
}
with open(
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
) as f:
json.dump(config, f)
logging.basicConfig(
filename=f"{folder_name}/log.log",
filemode="w",
format="%(name)s - %(levelname)s - %(message)s",
level=logging.DEBUG,
)
for method in methods:
# create a results directory for the method
os.makedirs(
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
)
for data in selected_data:
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Data {data[0]} has not been run."
)
break
for method in methods:
logging.info(f"Running method {method.__name__}")
logging.info(f"Budget left: {budget}")
if budget <= 0.0:
logging.error(
f"Budget has been depleted, stopping. Method {method.__name__} has not been run."
)
break
lm = controller.ChatGPT(
"../../graph_of_thoughts/controller/config.json",
model_name=lm_name,
cache=True,
)
operations_graph = method()
executor = controller.Controller(
lm,
operations_graph,
SetIntersectionPrompter(),
SetIntersectionParser(),
{
"set1": data[1],
"set2": data[2],
"result": data[3],
"current": "",
"phase": 0,
"method": method.__name__,
},
)
try:
executor.run()
except Exception as e:
logging.error(f"Exception: {e}")
path = os.path.join(
os.path.dirname(__file__),
folder_name,
method.__name__,
f"{data[0]}.json",
)
executor.output_graph(path)
budget -= lm.cost
return orig_budget - budget
if __name__ == "__main__":
"""
Input(x) : a list of 128 numbers between 0 and 255 (inclusive)
Input(y) : a list of 128 numbers between 0 and 255 (inclusive)
Output(z) : a list of the intersection between x and y
Correct : z = intersection(x, y)
Input Example:
[115, 61, 35, 103, 90, 117, 86, 44, 63, 45, 40, 30, 74, 33, 31, 1, 118, 48, 38, 0, 119, 51, 64, 78, 15, 121, 89, 101, 79, 69, 120, 29, 58, 50, 116, 11, 60, 12, 39, 95, 23, 2, 109, 84, 7, 43, 99, 98, 52, 70, 75, 102, 57, 19, 94, 36, 114, 88, 71, 56, 83, 6, 96, 107]
[13, 35, 20, 96, 34, 18, 47, 127, 126, 9, 21, 16, 77, 22, 111, 122, 85, 73, 42, 105, 123, 15, 33, 59, 67, 57, 104, 8, 30, 89, 76, 12, 65, 84, 32, 40, 7, 100, 108, 50, 14, 28, 24, 53, 90, 17, 91, 81, 124, 63, 5, 46, 125, 93, 49, 66, 117, 37, 115, 113, 2, 106, 41, 72]
Output Example:
[115, 35, 90, 117, 63, 40, 30, 33, 15, 89, 50, 12, 2, 84, 7, 57, 96]
"""
budget = 25
samples = [item for item in range(0, 100)]
approaches = [io, cot, tot, tot2, got]
spent = run(samples, approaches, budget, "chatgpt")
logging.info(f"Spent {spent} out of {budget} budget.")
+99
View File
@@ -0,0 +1,99 @@
# Copyright (c) 2023 ETH Zurich.
# All rights reserved.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# The source code is adapted from the sorting source code written by
# Nils Blach.
#
# main author: Robert Gerstenberger
from typing import Dict, List, Set
def string_to_list(string: str) -> List[int]:
"""
Helper function to convert a list encoded inside a string into a Python
list object of integer elements.
:param string: Input string containing a list.
:type string: str
:return: List of integer elements.
:rtype: List[int]
:raise AssertionError: If input string does not contain a list.
"""
assert string[0] == "[" and string[-1] == "]", "String is not a list."
return [int(num) for num in string[1:-1].split(",")]
def string_to_set(string: str) -> Set[int]:
"""
Helper function to convert a list encoded inside a string into a Python
set object of integer elements.
:param string: Input string containing a list.
:type string: str
:return: Set of integer elements.
:rtype: Set[int]
:raise AssertionError: If input string does not contain a list.
"""
assert string[0] == "[" and string[-1] == "]", "String is not a list."
return {int(num) for num in string[1:-1].split(",")}
def test_set_intersection(state: Dict) -> bool:
"""
Function to test whether the final solution matches ground truth.
:param state: Thought state that represents the final solution.
:type state: Dict
:return: Returns whether the solution matches the ground truth.
:rtype: bool
"""
# convert string to list
try:
correct_list = string_to_list(state["result"])
sorted_list = sorted(string_to_list(state["current"]))
return sorted_list == correct_list
except:
return False
def num_errors(state: Dict) -> float:
"""
Function to locally count the number of errors that serves as a score.
:param state: Thought state to be scored.
:type state: Dict
:return: Number of errors.
:rtype: float
"""
try:
set1 = string_to_set(state["set1"])
set2 = string_to_set(state["set2"])
if "subset" in state and state["subset"] != "" and state["subset"] is not None:
set2 = string_to_set(state["subset"])
common = sorted(list(set1 & set2))
llm_solution = sorted(string_to_list(state["current"]))
num_errors = 0
common_idx = 0
llm_idx = 0
while common_idx < len(common) and llm_idx < len(llm_solution):
if common[common_idx] == llm_solution[llm_idx]:
common_idx += 1
llm_idx += 1
elif common[common_idx] < llm_solution[llm_idx]:
common_idx += 1
num_errors += 1
elif common[common_idx] > llm_solution[llm_idx]:
llm_idx += 1
num_errors += 1
num_errors += len(common) - common_idx + len(llm_solution) - llm_idx
return num_errors
except:
return 1000