diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6702297
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+model.pt
\ No newline at end of file
diff --git a/README.md b/README.md
index 0bd558a..a184112 100644
--- a/README.md
+++ b/README.md
@@ -11,9 +11,9 @@
Developed using Databricks with ❤️
+## Overview
-
-#### Sparse mixture of experts language model from scratch inspired by (and largely based on) Andrej Karpathy's makemore (https://github.com/karpathy/makemore) :)
+**Sparse mixture of experts language model from scratch inspired by (and largely based on) Andrej Karpathy's makemore (https://github.com/karpathy/makemore) :)**
HuggingFace Community Blog that walks through this: https://huggingface.co/blog/AviSoori1x/makemoe-from-scratch
@@ -55,3 +55,16 @@ makeMoE_Concise.ipynb is the consolidated hackable implementation that I encoura
**Please note that the implementation emphasizes readability and hackability vs. performance, so there are many ways in which you could improve this. Please try and let me know!**
Hope you find this useful. Happy hacking!!
+
+
+## Usage
+
+* train
+
+```bash
+python makeMoE.py
+```
+
+* visualize: [visualize-router-output.ipynb](./visualize-router-output.ipynb)
+
+
diff --git a/makeMoE.py b/makeMoE.py
index 524f930..ee30a30 100644
--- a/makeMoE.py
+++ b/makeMoE.py
@@ -1,59 +1,67 @@
+import numpy as np
import torch
import torch.nn as nn
from torch.nn import functional as F
from torch.nn import init
# hyperparameters
-batch_size = 16 # how many independent sequences will we process in parallel?
-block_size = 32 # what is the maximum context length for predictions?
-max_iters = 5000
+batch_size = 16 # how many independent sequences will we process in parallel?
+block_size = 32 # what is the maximum context length for predictions?
+max_iters = 2000
eval_interval = 100
learning_rate = 1e-3
-device = 'cuda' if torch.cuda.is_available() else 'cpu'
+device = "cuda" if torch.cuda.is_available() else "cpu"
eval_iters = 400
head_size = 16
n_embed = 128
n_head = 8
n_layer = 8
dropout = 0.1
-num_experts = 8 # This can be adjusted depending on the overall number of parameters
-top_k = 2 # This controls the number of active parameters
+num_experts = 8 # This can be adjusted depending on the overall number of parameters
+top_k = 2 # This controls the number of active parameters
+hook_router_output = True
torch.manual_seed(1337)
-with open('input.txt', 'r', encoding='utf-8') as f:
+with open("input.txt", "r", encoding="utf-8") as f:
text = f.read()
# here are all the unique characters that occur in this text
chars = sorted(list(set(text)))
vocab_size = len(chars)
# create a mapping from characters to integers
-stoi = { ch:i for i,ch in enumerate(chars) }
-itos = { i:ch for i,ch in enumerate(chars) }
-encode = lambda s: [stoi[c] for c in s] # encoder: take a string, output a list of integers
-decode = lambda l: ''.join([itos[i] for i in l]) # decoder: take a list of integers, output a string
+stoi = {ch: i for i, ch in enumerate(chars)}
+itos = {i: ch for i, ch in enumerate(chars)}
+encode = lambda s: [
+ stoi[c] for c in s
+] # encoder: take a string, output a list of integers
+decode = lambda l: "".join(
+ [itos[i] for i in l]
+) # decoder: take a list of integers, output a string
# Train and test splits
data = torch.tensor(encode(text), dtype=torch.long)
-n = int(0.9*len(data)) # first 90% will be train, rest val
+n = int(0.9 * len(data)) # first 90% will be train, rest val
train_data = data[:n]
val_data = data[n:]
+
# data loading
def get_batch(split):
# generate a small batch of data of inputs x and targets y
- data = train_data if split == 'train' else val_data
+ data = train_data if split == "train" else val_data
ix = torch.randint(len(data) - block_size, (batch_size,))
- x = torch.stack([data[i:i+block_size] for i in ix])
- y = torch.stack([data[i+1:i+block_size+1] for i in ix])
+ x = torch.stack([data[i : i + block_size] for i in ix])
+ y = torch.stack([data[i + 1 : i + block_size + 1] for i in ix])
x, y = x.to(device), y.to(device)
return x, y
+
@torch.no_grad()
def estimate_loss(model):
out = {}
model.eval()
- for split in ['train', 'val']:
+ for split in ["train", "val"]:
losses = torch.zeros(eval_iters)
for k in range(eval_iters):
X, Y = get_batch(split)
@@ -63,34 +71,36 @@ def estimate_loss(model):
model.train()
return out
+
class Head(nn.Module):
- """ one head of self-attention """
+ """one head of self-attention"""
def __init__(self, head_size):
super().__init__()
self.key = nn.Linear(n_embed, head_size, bias=False)
self.query = nn.Linear(n_embed, head_size, bias=False)
self.value = nn.Linear(n_embed, head_size, bias=False)
- self.register_buffer('tril', torch.tril(torch.ones(block_size, block_size)))
+ self.register_buffer("tril", torch.tril(torch.ones(block_size, block_size)))
self.dropout = nn.Dropout(dropout)
def forward(self, x):
- B,T,C = x.shape
- k = self.key(x) # (B,T,C)
- q = self.query(x) # (B,T,C)
+ B, T, C = x.shape
+ k = self.key(x) # (B,T,C)
+ q = self.query(x) # (B,T,C)
# compute attention scores ("affinities")
- wei = q @ k.transpose(-2,-1) * C**-0.5 # (B, T, C) @ (B, C, T) -> (B, T, T)
- wei = wei.masked_fill(self.tril[:T, :T] == 0, float('-inf')) # (B, T, T)
- wei = F.softmax(wei, dim=-1) # (B, T, T)
+ wei = q @ k.transpose(-2, -1) * C**-0.5 # (B, T, C) @ (B, C, T) -> (B, T, T)
+ wei = wei.masked_fill(self.tril[:T, :T] == 0, float("-inf")) # (B, T, T)
+ wei = F.softmax(wei, dim=-1) # (B, T, T)
wei = self.dropout(wei)
# perform the weighted aggregation of the values
- v = self.value(x) # (B,T,C)
- out = wei @ v # (B, T, T) @ (B, T, C) -> (B, T, C)
+ v = self.value(x) # (B,T,C)
+ out = wei @ v # (B, T, T) @ (B, T, C) -> (B, T, C)
return out
-#Multi-Headed Self Attention
+
+# Multi-Headed Self Attention
class MultiHeadAttention(nn.Module):
- """ multiple heads of self-attention in parallel """
+ """multiple heads of self-attention in parallel"""
def __init__(self, num_heads, head_size):
super().__init__()
@@ -102,9 +112,11 @@ def forward(self, x):
out = torch.cat([h(x) for h in self.heads], dim=-1)
out = self.dropout(self.proj(out))
return out
-#Expert module
+
+
+# Expert module
class Expert(nn.Module):
- """ An MLP is a simple linear layer followed by a non-linearity i.e. each Expert """
+ """An MLP is a simple linear layer followed by a non-linearity i.e. each Expert"""
def __init__(self, n_embed):
super().__init__()
@@ -118,33 +130,35 @@ def __init__(self, n_embed):
def forward(self, x):
return self.net(x)
-#noisy top-k gating
+
+# noisy top-k gating
class NoisyTopkRouter(nn.Module):
def __init__(self, n_embed, num_experts, top_k):
super(NoisyTopkRouter, self).__init__()
self.top_k = top_k
- #layer for router logits
+ # layer for router logits
self.topkroute_linear = nn.Linear(n_embed, num_experts)
- self.noise_linear =nn.Linear(n_embed, num_experts)
+ self.noise_linear = nn.Linear(n_embed, num_experts)
def forward(self, mh_output):
# mh_ouput is the output tensor from multihead self attention block
logits = self.topkroute_linear(mh_output)
- #Noise logits
+ # Noise logits
noise_logits = self.noise_linear(mh_output)
- #Adding scaled unit gaussian noise to the logits
- noise = torch.randn_like(logits)*F.softplus(noise_logits)
+ # Adding scaled unit gaussian noise to the logits
+ noise = torch.randn_like(logits) * F.softplus(noise_logits)
noisy_logits = logits + noise
top_k_logits, indices = noisy_logits.topk(self.top_k, dim=-1)
- zeros = torch.full_like(noisy_logits, float('-inf'))
+ zeros = torch.full_like(noisy_logits, float("-inf"))
sparse_logits = zeros.scatter(-1, indices, top_k_logits)
router_output = F.softmax(sparse_logits, dim=-1)
return router_output, indices
-#Now create the sparse mixture of experts module
+
+# Now create the sparse mixture of experts module
class SparseMoE(nn.Module):
@@ -155,19 +169,21 @@ def __init__(self, n_embed, num_experts, top_k, capacity_factor=1.0):
self.top_k = top_k
self.capacity_factor = capacity_factor
self.num_experts = num_experts
-
+
def forward(self, x):
- # Assuming x has shape [batch_size, seq_len, n_embd]
+ # Assuming x has shape [batch_size, seq_len, n_embd]
batch_size, seq_len, _ = x.shape
gating_output, indices = self.router(x)
final_output = torch.zeros_like(x)
# Flatten the batch and sequence dimensions to treat each token independently
- flat_x = x.view(-1, x.size(-1))
+ flat_x = x.view(-1, x.size(-1))
flat_gating_output = gating_output.view(-1, gating_output.size(-1))
tokens_per_batch = batch_size * seq_len * self.top_k
- expert_capacity = int((tokens_per_batch / self.num_experts) * self.capacity_factor)
+ expert_capacity = int(
+ (tokens_per_batch / self.num_experts) * self.capacity_factor
+ )
updates = torch.zeros_like(flat_x)
@@ -175,7 +191,11 @@ def forward(self, x):
expert_mask = (indices == i).any(dim=-1)
flat_mask = expert_mask.view(-1)
selected_indices = torch.nonzero(flat_mask).squeeze(-1)
- limited_indices = selected_indices[:expert_capacity] if selected_indices.numel() > expert_capacity else selected_indices
+ limited_indices = (
+ selected_indices[:expert_capacity]
+ if selected_indices.numel() > expert_capacity
+ else selected_indices
+ )
if limited_indices.numel() > 0:
expert_input = flat_x[limited_indices]
expert_output = expert(expert_input)
@@ -187,12 +207,14 @@ def forward(self, x):
final_output += updates.view(batch_size, seq_len, -1)
return final_output
-
-#First create a self attention + mixture of experts block, that may be repeated several number of times
-#Copy pasting key architecture variables for clarity
+
+
+# First create a self attention + mixture of experts block, that may be repeated several number of times
+# Copy pasting key architecture variables for clarity
+
class Block(nn.Module):
- """ Mixture of Experts Transformer block: communication followed by computation (multi-head self attention + SparseMoE) """
+ """Mixture of Experts Transformer block: communication followed by computation (multi-head self attention + SparseMoE)"""
def __init__(self, n_embed, n_head, num_experts, top_k):
# n_embed: embedding dimension, n_head: the number of heads we'd like
@@ -207,8 +229,9 @@ def forward(self, x):
x = x + self.sa(self.ln1(x))
x = x + self.smoe(self.ln2(x))
return x
-
-#Finally putting it all together to crease a sparse mixture of experts language model
+
+
+# Finally putting it all together to crease a sparse mixture of experts language model
class SparseMoELanguageModel(nn.Module):
def __init__(self):
@@ -216,27 +239,32 @@ def __init__(self):
# each token directly reads off the logits for the next token from a lookup table
self.token_embedding_table = nn.Embedding(vocab_size, n_embed)
self.position_embedding_table = nn.Embedding(block_size, n_embed)
- self.blocks = nn.Sequential(*[Block(n_embed, n_head=n_head, num_experts=num_experts,top_k=top_k) for _ in range(n_layer)])
- self.ln_f = nn.LayerNorm(n_embed) # final layer norm
+ self.blocks = nn.Sequential(
+ *[
+ Block(n_embed, n_head=n_head, num_experts=num_experts, top_k=top_k)
+ for _ in range(n_layer)
+ ]
+ )
+ self.ln_f = nn.LayerNorm(n_embed) # final layer norm
self.lm_head = nn.Linear(n_embed, vocab_size)
def forward(self, idx, targets=None):
B, T = idx.shape
# idx and targets are both (B,T) tensor of integers
- tok_emb = self.token_embedding_table(idx) # (B,T,C)
- pos_emb = self.position_embedding_table(torch.arange(T, device=device)) # (T,C)
- x = tok_emb + pos_emb # (B,T,C)
- x = self.blocks(x) # (B,T,C)
- x = self.ln_f(x) # (B,T,C)
- logits = self.lm_head(x) # (B,T,vocab_size)
+ tok_emb = self.token_embedding_table(idx) # (B,T,C)
+ pos_emb = self.position_embedding_table(torch.arange(T, device=device)) # (T,C)
+ x = tok_emb + pos_emb # (B,T,C)
+ x = self.blocks(x) # (B,T,C)
+ x = self.ln_f(x) # (B,T,C)
+ logits = self.lm_head(x) # (B,T,vocab_size)
if targets is None:
loss = None
else:
B, T, C = logits.shape
- logits = logits.view(B*T, C)
- targets = targets.view(B*T)
+ logits = logits.view(B * T, C)
+ targets = targets.view(B * T)
loss = F.cross_entropy(logits, targets)
return logits, loss
@@ -249,31 +277,64 @@ def generate(self, idx, max_new_tokens):
# get the predictions
logits, loss = self(idx_cond)
# focus only on the last time step
- logits = logits[:, -1, :] # becomes (B, C)
+ logits = logits[:, -1, :] # becomes (B, C)
# apply softmax to get probabilities
- probs = F.softmax(logits, dim=-1) # (B, C)
+ probs = F.softmax(logits, dim=-1) # (B, C)
# sample from the distribution
- idx_next = torch.multinomial(probs, num_samples=1) # (B, 1)
+ idx_next = torch.multinomial(probs, num_samples=1) # (B, 1)
# append sampled index to the running sequence
- idx = torch.cat((idx, idx_next), dim=1) # (B, T+1)
+ idx = torch.cat((idx, idx_next), dim=1) # (B, T+1)
return idx
-
+
def kaiming_init_weights(m):
- if isinstance (m, (nn.Linear)):
+ if isinstance(m, (nn.Linear)):
init.kaiming_normal_(m.weight)
+
+class RouterOutputHook:
+ def __init__(self, block_index):
+ self.block_index = block_index
+
+ def __call__(self, module, inputs, output):
+ routed_indices = output[1].detach().cpu().flatten()
+ expert_indices, token_counts = np.unique(routed_indices, return_counts=True)
+ # set token count default to 0
+ row = ["0"] * 8
+ for e, cnt in zip(expert_indices, token_counts):
+ row[e] = str(cnt)
+ # row formated: layer_index, token_counts for per expert.
+ row = [str(self.block_index)] + row
+
+ line = ",".join(row) + "\n"
+ with open("router-output.log.csv", "a") as f:
+ f.write(line)
+
+
def main():
model = SparseMoELanguageModel()
- model.apply(kaiming_init_weights)
+ # Register hooks with block indices
+ if hook_router_output:
+ hooks = [
+ b.smoe.router.register_forward_hook(RouterOutputHook(i))
+ for i, b in enumerate(model.blocks)
+ ]
+
+ try:
+ model.load_state_dict(torch.load("model.pt").state_dict())
+ print("Successfully load checkpoint from model.pt file.")
+ except (FileNotFoundError, RuntimeError):
+ # Kaiming uniform initialization, also known as He initialization,work well with layers that use the ReLU activation function.
+ print("Initialized model parameters using Kaiming uniform initialization.")
+ model.apply(kaiming_init_weights)
model = model.to(device)
- print(sum(p.numel() for p in model.parameters()) / 1e6, 'M parameters')
+ print(sum(p.numel() for p in model.parameters()) / 1e6, "M parameters")
optimizer = torch.optim.AdamW(model.parameters(), lr=learning_rate)
m = model.to(device)
# print the number of parameters in the model
- print(sum(p.numel() for p in m.parameters())/1e6, 'M parameters')
+ print(sum(p.numel() for p in m.parameters()) / 1e6, "M parameters")
# create a PyTorch optimizer
optimizer = torch.optim.AdamW(model.parameters(), lr=learning_rate)
@@ -283,16 +344,23 @@ def main():
# every once in a while evaluate the loss on train and val sets
if iter % eval_interval == 0 or iter == max_iters - 1:
losses = estimate_loss(model)
- print(f"step {iter}: train loss {losses['train']:.4f}, val loss {losses['val']:.4f}")
+ print(
+ f"step {iter}: train loss {losses['train']:.4f}, val loss {losses['val']:.4f}"
+ )
+ torch.save(model, "model.pt")
# sample a batch of data
- xb, yb = get_batch('train')
+ xb, yb = get_batch("train")
# evaluate the loss
logits, loss = model(xb, yb)
optimizer.zero_grad(set_to_none=True)
loss.backward()
optimizer.step()
+ # remove hooks
+ if hook_router_output:
+ [h.remove() for h in hooks]
+
if __name__ == "__main__":
main()
diff --git a/router-output.log.csv b/router-output.log.csv
new file mode 100644
index 0000000..7885792
--- /dev/null
+++ b/router-output.log.csv
@@ -0,0 +1,2800 @@
+0,166,114,122,131,162,110,104,115
+1,92,175,205,150,169,72,110,51
+2,203,117,75,2,148,183,131,165
+3,104,22,36,186,158,175,118,225
+4,22,51,323,0,105,252,5,266
+5,6,1,194,141,1,23,153,505
+6,0,493,378,107,9,19,0,18
+7,0,511,9,156,194,142,0,12
+0,192,117,109,136,161,108,77,124
+1,95,170,191,163,165,68,114,58
+2,196,133,68,2,160,168,130,167
+3,90,56,37,202,133,185,120,201
+4,16,70,328,3,125,226,3,253
+5,4,1,184,126,3,37,164,505
+6,0,480,378,108,16,20,3,19
+7,2,510,6,173,207,107,0,19
+0,182,125,118,111,162,114,102,110
+1,96,165,176,163,174,70,121,59
+2,208,145,62,1,138,177,133,160
+3,106,43,38,179,149,173,129,207
+4,16,63,322,3,103,246,7,264
+5,9,1,179,139,2,29,159,506
+6,0,483,371,122,17,13,3,15
+7,3,512,4,168,199,127,0,11
+0,197,118,104,131,149,116,93,116
+1,94,151,190,162,172,72,133,50
+2,201,130,68,0,153,160,137,175
+3,107,45,31,177,140,175,141,208
+4,21,52,331,1,108,256,5,250
+5,6,0,174,135,3,22,178,506
+6,1,480,373,115,19,15,7,14
+7,1,511,9,158,197,138,1,9
+0,178,148,111,118,173,105,92,99
+1,88,177,190,149,168,69,121,62
+2,203,124,62,2,148,185,139,161
+3,119,34,43,149,142,177,123,237
+4,30,47,339,0,132,240,1,235
+5,2,0,195,133,1,17,169,507
+6,0,489,391,103,13,8,3,17
+7,1,512,7,182,186,122,0,14
+0,200,107,132,144,138,93,103,107
+1,105,174,192,160,159,64,108,62
+2,223,123,97,1,143,167,121,149
+3,110,34,41,175,158,162,124,220
+4,17,57,331,3,119,231,3,263
+5,0,0,219,121,0,14,167,503
+6,0,490,389,110,10,13,0,12
+7,3,511,7,167,209,118,0,9
+0,204,121,107,113,163,109,102,105
+1,102,171,195,151,159,62,129,55
+2,199,137,84,3,145,188,109,159
+3,111,54,34,177,140,181,112,215
+4,14,67,328,0,112,251,3,249
+5,5,0,187,130,1,34,163,504
+6,1,479,349,136,18,16,2,23
+7,2,510,5,154,204,130,0,19
+0,193,124,111,133,161,95,97,110
+1,100,173,180,173,159,52,128,59
+2,190,118,74,2,166,184,143,147
+3,107,69,48,198,127,163,120,192
+4,22,90,311,3,130,238,2,228
+5,8,1,185,133,1,25,167,504
+6,1,476,373,111,17,15,4,27
+7,3,511,14,164,183,123,0,26
+0,194,124,118,129,143,97,98,121
+1,99,188,190,140,177,65,105,60
+2,212,116,70,3,152,172,133,166
+3,109,33,31,180,153,182,118,218
+4,20,53,343,0,117,236,4,251
+5,2,0,197,128,0,21,167,509
+6,1,492,395,95,14,12,2,13
+7,1,511,5,168,197,129,0,13
+0,155,127,116,142,150,115,109,110
+1,98,159,185,173,176,72,101,60
+2,211,116,68,2,158,165,127,177
+3,101,45,31,191,148,175,128,205
+4,23,58,328,3,131,222,4,255
+5,1,0,185,131,1,27,171,508
+6,1,486,389,104,15,14,3,12
+7,0,512,4,171,216,107,1,13
+0,184,115,114,134,152,94,94,137
+1,97,169,174,169,179,67,109,60
+2,205,127,73,2,144,178,122,173
+3,102,34,30,176,147,181,125,229
+4,32,47,328,0,124,245,0,248
+5,8,0,190,116,1,19,182,508
+6,0,491,376,111,14,8,7,17
+7,0,509,8,198,178,120,2,9
+0,171,137,117,124,154,92,110,119
+1,98,180,176,179,159,72,109,51
+2,196,139,52,1,156,186,121,173
+3,89,42,38,185,148,172,121,229
+4,26,55,315,3,133,237,3,252
+5,10,0,182,127,1,19,178,507
+6,1,485,387,101,15,13,3,19
+7,0,510,5,171,182,133,1,22
+0,183,144,107,146,153,97,92,102
+1,94,176,194,153,164,67,120,56
+2,187,129,82,2,169,180,122,153
+3,120,47,41,204,148,151,117,196
+4,26,67,319,0,127,234,6,245
+5,5,0,184,118,0,30,177,510
+6,1,479,385,111,19,12,1,16
+7,2,511,7,168,194,120,0,22
+0,173,110,119,135,171,115,117,84
+1,97,168,169,196,134,57,138,65
+2,179,123,75,3,168,176,132,168
+3,107,62,34,216,133,162,104,206
+4,26,79,315,2,115,253,4,230
+5,6,0,186,106,3,46,169,508
+6,0,474,377,126,22,12,3,10
+7,1,512,8,168,179,126,1,29
+0,204,127,102,131,143,108,93,116
+1,90,176,172,199,159,66,117,45
+2,187,111,90,1,166,171,117,181
+3,102,55,19,194,124,192,106,232
+4,19,64,346,1,86,261,3,244
+5,6,0,182,138,0,28,164,506
+6,1,479,371,115,22,12,4,20
+7,0,511,11,155,199,124,0,24
+0,208,127,102,115,158,98,110,106
+1,98,188,162,152,151,71,133,69
+2,201,140,98,4,124,189,106,162
+3,117,39,39,198,140,160,115,216
+4,18,58,328,2,121,244,5,248
+5,5,1,188,145,1,27,150,507
+6,0,479,364,127,14,17,1,22
+7,0,510,12,155,191,135,2,19
+0,184,123,108,126,170,97,95,121
+1,97,161,209,167,152,72,101,65
+2,189,149,71,3,150,182,111,169
+3,124,32,51,168,142,168,109,230
+4,25,49,312,0,123,257,3,255
+5,4,0,194,130,0,24,167,505
+6,0,486,370,111,18,10,2,27
+7,0,511,8,170,193,132,0,10
+0,189,145,96,122,148,102,108,114
+1,90,174,181,174,167,70,114,54
+2,204,112,72,1,146,186,128,175
+3,119,52,32,200,127,168,108,218
+4,24,62,316,2,119,256,2,243
+5,9,0,181,148,2,29,151,504
+6,1,477,375,117,22,9,3,20
+7,1,510,6,179,189,116,0,23
+0,206,126,100,119,133,101,108,131
+1,94,169,177,154,175,69,120,66
+2,210,106,68,1,140,184,135,180
+3,124,39,33,172,134,189,126,207
+4,16,73,323,1,131,233,5,242
+5,2,0,189,131,1,26,169,506
+6,0,482,389,104,20,12,4,13
+7,1,512,9,182,171,131,1,17
+0,189,121,118,133,149,125,85,104
+1,100,169,193,173,158,63,114,54
+2,205,132,78,1,170,169,111,158
+3,109,48,34,196,149,163,126,199
+4,26,63,314,2,140,223,8,248
+5,2,2,214,133,0,30,138,505
+6,2,481,379,117,18,14,3,10
+7,0,512,3,155,208,131,2,13
+0,208,148,102,103,159,95,100,109
+1,94,204,165,156,157,70,122,56
+2,203,106,75,2,147,195,116,180
+3,119,37,35,176,142,181,116,218
+4,25,57,321,4,110,251,7,249
+5,8,0,197,127,0,32,151,509
+6,3,480,372,115,15,19,2,18
+7,0,509,8,167,183,134,0,23
+0,171,137,102,123,155,117,102,117
+1,103,185,193,139,167,72,106,59
+2,217,128,77,2,128,187,109,176
+3,127,18,41,152,143,191,123,229
+4,22,39,358,0,132,229,2,242
+5,1,0,196,121,0,17,184,505
+6,0,492,381,105,8,15,4,19
+7,0,512,7,149,217,128,1,10
+0,193,128,100,129,169,97,93,115
+1,85,167,187,174,159,70,120,62
+2,189,139,64,3,141,192,130,166
+3,118,47,38,160,139,196,110,216
+4,23,59,327,1,121,260,2,231
+5,2,0,179,122,2,38,176,505
+6,0,480,388,103,19,16,3,15
+7,1,511,10,165,176,138,2,21
+0,203,115,112,131,151,95,109,108
+1,103,177,172,162,142,83,118,67
+2,207,133,86,2,150,173,128,145
+3,134,42,43,174,143,157,125,206
+4,26,68,320,3,119,247,3,238
+5,2,1,190,126,0,35,165,505
+6,1,480,375,108,22,12,7,19
+7,1,510,8,146,189,153,1,16
+0,203,125,91,128,149,100,104,124
+1,84,159,162,209,156,63,140,51
+2,188,113,99,0,159,164,133,168
+3,83,75,28,198,120,167,131,222
+4,22,78,324,5,116,249,7,223
+5,9,1,182,136,0,31,161,504
+6,1,477,368,122,21,13,3,19
+7,2,509,4,175,195,103,0,36
+0,212,109,95,135,153,115,102,103
+1,95,160,168,181,146,66,137,71
+2,175,111,88,1,165,178,148,158
+3,122,80,28,200,112,165,107,210
+4,20,92,311,9,115,255,5,217
+5,13,1,173,147,0,42,144,504
+6,0,452,342,145,41,18,2,24
+7,0,506,16,159,175,127,4,37
+0,213,105,107,141,150,104,85,119
+1,96,184,168,165,170,57,135,49
+2,199,120,93,0,151,178,113,170
+3,116,50,30,165,135,185,127,216
+4,25,65,331,5,116,232,5,245
+5,2,1,186,119,1,34,176,505
+6,1,482,381,107,20,11,3,19
+7,1,512,9,164,192,121,2,23
+0,210,131,94,97,150,122,102,118
+1,90,176,172,186,156,72,115,57
+2,194,121,95,2,151,161,138,162
+3,113,63,43,208,128,158,108,203
+4,22,86,316,1,127,246,5,221
+5,5,0,181,148,1,34,149,506
+6,0,467,363,134,22,16,4,18
+7,0,511,8,178,188,118,0,21
+0,187,123,117,104,162,110,112,109
+1,95,181,189,158,156,79,106,60
+2,190,135,74,3,145,188,120,169
+3,126,38,28,175,147,170,109,231
+4,23,48,318,0,122,263,0,250
+5,5,0,200,134,0,22,157,506
+6,0,486,368,114,14,21,6,15
+7,1,511,9,177,187,123,0,16
+0,177,137,113,119,159,111,104,104
+1,100,176,191,151,150,71,119,66
+2,191,148,74,5,150,182,131,143
+3,122,41,38,197,154,152,112,208
+4,14,52,314,2,124,285,5,228
+5,7,0,205,134,2,23,144,509
+6,1,480,360,124,16,14,5,24
+7,0,510,8,155,185,145,1,20
+0,210,120,105,123,153,109,93,111
+1,93,184,157,163,165,66,133,63
+2,176,132,87,3,142,184,132,168
+3,108,58,39,205,140,151,109,214
+4,22,70,314,2,121,251,6,238
+5,7,0,171,134,1,45,159,507
+6,1,469,363,126,30,14,3,18
+7,0,510,11,177,167,137,1,21
+0,185,133,109,111,173,110,88,115
+1,92,184,176,139,167,78,119,69
+2,197,132,84,1,143,174,133,160
+3,122,48,32,193,140,167,109,213
+4,16,59,330,2,122,239,8,248
+5,6,0,191,109,2,28,178,510
+6,0,483,368,124,18,12,3,16
+7,1,512,6,170,192,127,0,16
+0,204,142,95,116,145,110,94,118
+1,85,187,178,159,156,77,131,51
+2,185,120,82,3,148,173,139,174
+3,119,60,36,191,122,174,107,215
+4,22,80,328,4,120,234,5,231
+5,9,0,176,139,0,39,158,503
+6,0,468,371,118,32,13,4,18
+7,0,507,6,171,191,120,1,28
+0,203,128,106,125,143,100,103,116
+1,100,193,190,138,170,72,100,61
+2,223,121,84,2,128,173,122,171
+3,107,17,33,167,146,182,129,243
+4,20,40,322,0,137,255,2,248
+5,3,0,203,151,0,18,145,504
+6,0,493,397,99,10,12,3,10
+7,0,512,11,155,196,140,1,9
+0,196,125,106,134,165,98,94,106
+1,85,164,184,181,152,62,128,68
+2,192,136,73,1,159,182,120,161
+3,102,68,38,190,136,165,108,217
+4,29,70,321,6,125,237,3,233
+5,21,1,186,115,0,38,162,501
+6,6,468,358,123,25,17,8,19
+7,3,506,9,171,179,113,1,42
+0,197,128,111,122,178,79,98,111
+1,91,180,179,169,154,63,122,66
+2,190,137,74,3,138,197,110,175
+3,120,36,31,185,135,181,109,227
+4,25,50,326,1,113,254,7,248
+5,3,1,198,115,0,29,176,502
+6,0,481,372,125,14,15,2,15
+7,0,510,10,144,177,162,1,20
+0,206,133,108,119,155,98,108,97
+1,99,197,177,137,152,69,136,57
+2,202,119,70,6,152,196,114,165
+3,132,44,40,155,151,161,109,232
+4,20,55,326,4,117,261,3,238
+5,8,1,186,136,1,31,157,504
+6,0,483,373,111,26,9,7,15
+7,1,509,6,144,194,136,1,33
+0,232,120,95,118,144,107,90,118
+1,87,149,181,170,163,59,151,64
+2,187,124,88,1,155,167,142,160
+3,105,72,39,185,133,173,108,209
+4,27,79,316,4,125,252,4,217
+5,6,1,170,139,0,39,165,504
+6,1,466,374,116,27,19,1,20
+7,0,510,10,161,174,135,2,32
+0,180,127,118,123,171,103,95,107
+1,96,174,164,173,152,84,121,60
+2,199,128,74,2,170,169,115,167
+3,126,47,31,175,155,165,98,227
+4,27,54,319,1,122,271,4,226
+5,3,0,211,117,1,33,151,508
+6,1,485,364,126,18,9,5,16
+7,2,510,4,144,182,152,2,28
+0,202,126,110,130,151,85,99,121
+1,87,175,197,158,167,58,103,79
+2,212,151,71,1,128,193,94,174
+3,109,20,43,166,151,176,111,248
+4,25,36,332,0,143,231,3,254
+5,3,0,188,128,0,15,184,506
+6,0,494,407,86,11,9,4,13
+7,1,512,12,156,205,131,0,7
+0,186,118,108,139,140,108,108,117
+1,91,185,195,154,170,61,108,60
+2,232,121,81,2,139,162,111,176
+3,114,19,39,170,140,183,115,244
+4,23,40,344,0,157,211,2,247
+5,2,0,209,145,0,16,148,504
+6,0,491,396,96,12,10,2,17
+7,0,512,8,156,194,145,0,9
+0,162,152,113,122,163,85,98,129
+1,89,173,193,157,162,68,112,70
+2,210,133,63,5,147,188,117,161
+3,123,27,46,187,147,150,119,225
+4,34,48,331,1,116,271,2,221
+5,4,0,204,125,0,21,168,502
+6,0,490,389,101,12,11,1,20
+7,1,511,6,156,190,145,1,14
+0,193,118,105,121,166,100,107,114
+1,96,174,192,152,157,85,110,58
+2,186,138,81,6,148,176,116,173
+3,126,34,34,181,129,183,114,223
+4,27,49,318,1,132,249,4,244
+5,4,0,191,144,1,26,150,508
+6,1,484,351,127,20,9,6,26
+7,2,512,14,177,179,132,1,7
+0,193,140,116,116,143,92,107,117
+1,106,180,176,156,158,78,110,60
+2,198,150,70,1,136,187,108,174
+3,118,19,29,170,150,174,127,237
+4,18,30,336,1,121,252,2,264
+5,3,0,207,134,0,8,164,508
+6,0,492,386,102,10,14,5,15
+7,0,512,7,145,219,129,1,11
+0,205,129,108,117,166,86,87,126
+1,102,182,167,163,148,73,133,56
+2,198,96,91,2,154,172,137,174
+3,105,65,26,184,131,176,98,239
+4,27,70,327,1,104,247,1,247
+5,8,0,187,127,1,38,155,508
+6,0,471,366,124,27,9,5,22
+7,1,508,7,175,179,125,0,29
+0,201,126,103,119,179,90,92,114
+1,94,175,189,164,151,81,101,69
+2,203,126,82,0,145,199,98,171
+3,135,48,36,162,133,178,117,215
+4,28,59,316,4,127,256,6,228
+5,4,0,184,138,1,23,170,504
+6,0,482,369,128,20,6,1,18
+7,0,510,13,168,187,125,4,17
+0,198,137,109,115,153,97,98,117
+1,92,171,181,149,167,60,139,65
+2,197,132,67,0,149,186,120,173
+3,106,45,37,179,144,179,108,226
+4,23,53,311,2,127,252,4,252
+5,4,1,183,123,1,38,174,500
+6,2,480,378,113,20,13,4,14
+7,2,510,15,159,172,139,2,25
+0,205,129,102,122,140,106,85,135
+1,92,180,182,178,171,62,110,49
+2,216,126,60,3,140,187,107,185
+3,116,32,32,163,124,200,142,215
+4,24,51,338,0,122,239,4,246
+5,0,0,182,133,1,27,175,506
+6,0,486,381,113,17,9,4,14
+7,1,512,12,188,193,112,0,6
+0,201,128,89,96,158,120,113,119
+1,88,177,168,186,171,64,112,58
+2,190,112,79,1,140,186,118,198
+3,113,50,34,185,119,186,119,218
+4,29,66,315,7,130,243,3,231
+5,4,2,198,133,2,33,152,500
+6,0,479,383,106,16,11,7,22
+7,1,510,8,164,182,136,0,23
+0,219,112,103,123,139,117,96,115
+1,91,161,183,173,154,81,129,52
+2,194,133,78,0,164,165,135,155
+3,113,63,32,203,134,156,110,213
+4,18,63,333,4,121,259,6,220
+5,10,0,172,160,0,22,157,503
+6,0,479,355,137,18,10,2,23
+7,1,507,6,165,189,124,0,32
+0,193,134,107,135,146,94,95,120
+1,89,182,175,159,180,58,120,61
+2,219,118,75,2,130,174,118,188
+3,95,17,33,175,155,203,124,222
+4,27,45,328,2,146,212,3,261
+5,4,0,187,133,0,16,182,502
+6,1,491,410,91,6,14,0,11
+7,0,512,4,185,196,116,1,10
+0,193,118,108,140,167,111,84,103
+1,93,191,178,162,153,75,113,59
+2,204,140,75,1,143,190,113,158
+3,131,44,39,181,145,153,117,214
+4,22,64,317,3,130,244,3,241
+5,4,1,192,139,1,30,153,504
+6,1,480,378,116,19,11,4,15
+7,0,509,16,146,184,145,2,22
+0,208,117,109,99,177,99,113,102
+1,87,151,180,166,150,77,135,78
+2,179,131,92,1,151,187,138,145
+3,124,73,37,184,126,167,105,208
+4,32,82,297,7,120,272,3,211
+5,10,1,190,119,2,40,159,503
+6,1,467,354,139,25,11,0,27
+7,1,507,11,168,174,127,2,34
+0,187,106,107,122,156,103,121,122
+1,86,165,183,190,159,65,118,58
+2,195,132,79,1,148,175,117,177
+3,110,44,27,205,135,179,110,214
+4,27,68,316,2,118,234,2,257
+5,5,0,173,136,2,42,159,507
+6,0,478,356,133,24,8,7,18
+7,1,512,8,170,201,112,1,19
+0,184,123,106,137,125,110,111,128
+1,96,194,191,147,177,67,103,49
+2,216,125,63,0,135,189,108,188
+3,111,20,36,177,144,184,128,224
+4,19,30,329,1,141,238,5,261
+5,3,0,207,144,3,16,149,502
+6,0,494,387,96,7,18,1,21
+7,0,512,4,161,215,123,0,9
+0,170,147,115,136,127,88,92,149
+1,100,179,187,143,175,72,110,58
+2,215,134,72,2,135,173,121,172
+3,117,23,32,154,159,194,117,228
+4,28,36,340,1,121,226,4,268
+5,1,0,205,128,1,19,162,508
+6,0,493,401,88,10,11,1,20
+7,0,510,12,161,201,128,0,12
+0,196,123,113,138,123,109,106,116
+1,99,182,175,165,171,64,114,54
+2,210,116,73,1,133,197,114,180
+3,120,25,39,155,137,185,122,241
+4,21,49,344,1,119,236,1,253
+5,3,1,189,146,1,23,157,504
+6,1,488,391,99,8,15,3,19
+7,1,510,8,162,206,125,0,12
+0,201,138,101,114,144,118,96,112
+1,92,202,191,162,153,58,106,60
+2,192,116,65,2,163,182,136,168
+3,119,40,38,179,128,183,122,215
+4,26,60,334,0,115,257,2,230
+5,5,1,192,131,1,33,157,504
+6,0,484,382,114,16,15,1,12
+7,0,511,8,163,187,126,1,28
+0,194,132,120,128,135,104,96,115
+1,90,191,159,178,169,63,119,55
+2,206,120,82,0,153,179,115,169
+3,106,46,32,171,144,172,116,237
+4,23,54,322,5,119,248,2,251
+5,13,0,180,136,0,29,162,504
+6,1,481,370,118,18,10,4,22
+7,0,510,9,155,192,133,1,24
+0,195,129,113,134,152,106,87,108
+1,99,163,172,157,172,78,116,67
+2,200,125,69,2,163,177,125,163
+3,108,38,38,173,151,182,109,225
+4,18,64,326,0,131,243,4,238
+5,5,1,186,118,3,27,178,506
+6,1,483,363,126,19,11,0,21
+7,3,512,7,183,182,113,0,24
+0,232,122,105,131,130,103,94,107
+1,97,183,161,173,153,70,141,46
+2,178,121,101,4,178,177,125,140
+3,109,75,26,205,137,153,103,216
+4,13,78,312,4,107,273,2,235
+5,10,0,188,145,2,44,129,506
+6,2,469,352,123,28,20,4,26
+7,0,508,8,149,185,125,1,48
+0,215,125,103,124,146,99,96,116
+1,91,164,193,138,159,77,145,57
+2,196,142,63,2,144,189,120,168
+3,116,31,30,168,134,195,114,236
+4,25,56,331,2,114,232,4,260
+5,5,0,200,140,0,23,150,506
+6,0,489,381,112,16,11,1,14
+7,0,512,7,162,196,129,2,16
+0,181,130,111,124,159,103,102,114
+1,97,149,182,155,173,79,114,75
+2,194,139,73,3,131,184,126,174
+3,125,33,34,160,154,182,113,223
+4,27,39,323,0,125,250,4,256
+5,4,1,191,121,0,26,175,506
+6,0,485,368,124,18,11,5,13
+7,0,512,9,147,203,139,0,14
+0,196,127,107,121,170,97,85,121
+1,98,159,173,160,167,74,120,73
+2,197,131,73,2,137,185,129,170
+3,124,45,35,187,133,177,106,217
+4,27,67,326,0,115,252,6,231
+5,1,0,184,124,1,41,165,508
+6,0,484,372,119,20,11,6,12
+7,2,512,8,167,175,144,0,16
+0,207,129,105,108,154,91,117,113
+1,103,165,192,165,150,64,123,62
+2,190,126,82,1,140,185,132,168
+3,113,68,29,191,129,170,104,220
+4,17,73,319,2,109,271,5,228
+5,9,1,178,124,1,34,172,505
+6,1,473,374,121,22,11,5,17
+7,1,511,11,171,177,125,3,25
+0,227,112,110,141,132,102,99,101
+1,106,185,168,164,160,59,119,63
+2,214,120,77,5,147,184,114,163
+3,106,42,34,179,136,176,122,229
+4,19,63,319,1,128,247,4,243
+5,2,0,211,135,0,28,141,507
+6,1,486,386,105,16,11,5,14
+7,1,510,10,141,221,124,1,16
+0,211,111,110,131,136,102,88,135
+1,93,164,173,175,175,61,125,58
+2,219,118,80,2,149,160,134,162
+3,91,38,33,189,143,180,112,238
+4,23,55,331,1,124,241,4,245
+5,2,0,186,137,0,23,170,506
+6,1,488,386,105,10,15,5,14
+7,0,511,7,181,194,114,0,17
+0,183,144,109,142,133,94,90,129
+1,92,188,180,142,179,63,122,58
+2,197,120,76,0,146,187,118,180
+3,111,32,36,171,143,197,111,223
+4,27,50,334,2,116,257,1,237
+5,0,0,182,144,3,22,168,505
+6,0,492,385,103,12,10,4,18
+7,0,510,10,154,190,143,2,15
+0,206,123,109,123,155,98,92,118
+1,97,160,190,150,167,68,123,69
+2,213,128,81,0,146,167,126,163
+3,108,39,39,180,137,180,109,232
+4,26,62,326,0,133,228,5,244
+5,6,0,190,141,1,19,163,504
+6,0,484,393,97,19,12,5,14
+7,0,512,9,179,174,129,0,21
+0,192,132,106,114,161,97,103,119
+1,90,181,159,180,159,70,119,66
+2,196,125,66,1,138,180,126,192
+3,102,36,37,187,150,184,102,226
+4,31,45,313,3,125,258,3,246
+5,10,0,183,135,0,26,170,500
+6,1,483,383,103,18,11,6,19
+7,0,511,12,151,197,134,0,19
+0,192,149,110,118,151,92,95,117
+1,90,177,176,151,162,66,132,70
+2,195,152,75,3,161,170,126,142
+3,113,47,44,196,148,151,111,214
+4,30,54,296,2,137,251,6,248
+5,9,0,196,126,0,25,160,508
+6,3,473,378,111,25,15,3,16
+7,2,511,11,160,188,137,0,15
+0,211,125,111,151,131,108,96,91
+1,92,172,188,156,163,53,139,61
+2,203,138,76,0,147,177,122,161
+3,117,34,28,201,145,159,125,215
+4,16,59,311,0,138,248,1,251
+5,1,0,199,117,1,40,157,509
+6,0,483,388,103,17,13,1,19
+7,1,512,6,157,213,123,2,10
+0,200,124,102,138,156,107,101,96
+1,90,188,176,168,168,59,117,58
+2,191,121,77,2,157,198,112,166
+3,116,64,31,173,126,171,112,231
+4,20,70,321,6,129,253,1,224
+5,14,1,202,132,1,27,147,500
+6,1,482,370,111,20,11,5,24
+7,1,505,15,162,174,135,0,32
+0,203,112,104,118,162,101,103,121
+1,92,185,180,166,162,72,104,63
+2,202,145,61,2,125,185,123,181
+3,115,40,30,174,135,197,109,224
+4,23,50,347,2,113,247,2,240
+5,9,0,192,127,2,32,158,504
+6,0,493,377,108,12,9,3,22
+7,0,510,7,160,179,143,0,25
+0,212,117,108,125,149,101,93,119
+1,96,171,174,177,150,67,130,59
+2,212,119,69,3,161,173,133,154
+3,110,57,36,169,136,173,119,224
+4,25,66,312,6,127,247,3,238
+5,10,0,187,140,2,30,146,509
+6,0,476,392,107,21,16,4,8
+7,0,512,10,162,193,118,0,29
+0,181,135,117,139,139,112,98,103
+1,109,191,181,154,163,70,104,52
+2,239,123,92,2,138,158,112,160
+3,94,19,21,194,167,167,133,229
+4,15,41,330,1,120,246,0,271
+5,4,0,196,145,0,16,155,508
+6,0,493,392,97,10,13,3,16
+7,1,512,10,136,240,116,0,9
+0,205,129,94,129,146,98,102,121
+1,86,175,180,169,157,69,137,51
+2,185,112,64,0,155,193,124,191
+3,110,55,31,194,125,184,110,215
+4,23,75,323,5,103,265,7,223
+5,5,2,164,132,1,38,178,504
+6,0,475,372,117,21,14,4,21
+7,1,509,5,183,166,126,1,33
+0,215,134,100,114,146,110,97,108
+1,92,171,168,176,157,74,123,63
+2,195,108,84,0,145,188,146,158
+3,121,55,34,186,127,175,109,217
+4,20,76,311,1,127,250,4,235
+5,2,1,193,141,0,32,150,505
+6,0,466,362,123,31,13,4,25
+7,2,510,8,163,173,148,1,19
+0,195,126,110,109,155,105,111,113
+1,94,180,190,140,181,56,115,68
+2,219,141,86,2,129,173,110,164
+3,112,26,31,172,152,178,128,225
+4,23,46,324,1,141,247,3,239
+5,1,1,204,133,1,24,155,505
+6,0,490,393,94,14,10,2,21
+7,0,512,6,178,181,136,0,11
+0,214,126,93,114,148,120,97,112
+1,90,162,192,173,150,71,125,61
+2,193,127,81,1,159,178,140,145
+3,125,59,41,197,134,164,108,196
+4,23,80,316,2,119,250,7,227
+5,3,1,196,125,3,46,144,506
+6,1,470,366,128,26,14,4,15
+7,2,509,10,178,177,121,3,24
+0,176,137,107,130,158,108,89,119
+1,94,180,192,157,154,63,117,67
+2,178,141,86,1,153,176,126,163
+3,118,54,39,181,137,175,101,219
+4,20,64,311,3,134,269,2,221
+5,4,0,175,129,2,35,173,506
+6,1,476,369,116,24,14,5,19
+7,2,510,7,159,174,152,2,18
+0,201,125,95,132,126,100,103,142
+1,90,174,206,129,171,68,116,70
+2,200,132,85,2,131,179,125,170
+3,109,28,39,171,143,188,118,228
+4,16,43,318,0,142,248,3,254
+5,3,0,192,144,0,21,161,503
+6,0,483,376,109,17,12,4,23
+7,0,512,8,140,211,141,0,12
+0,193,122,118,130,151,81,97,132
+1,100,164,206,145,167,77,102,63
+2,191,156,79,0,141,181,129,147
+3,137,29,34,173,151,168,113,219
+4,21,48,316,1,128,261,2,247
+5,1,2,213,125,2,19,157,505
+6,0,484,374,122,15,11,3,15
+7,0,512,10,150,198,142,0,12
+0,213,111,106,142,121,110,105,116
+1,94,185,172,180,166,50,128,49
+2,209,118,73,3,157,173,126,165
+3,113,46,31,201,144,159,117,213
+4,17,67,314,0,119,263,5,239
+5,5,0,190,138,1,28,155,507
+6,0,480,377,110,22,15,4,16
+7,1,511,8,162,183,136,1,22
+0,196,120,118,120,161,103,104,102
+1,102,182,200,170,159,61,84,66
+2,220,134,65,2,139,171,111,182
+3,111,20,36,181,144,183,128,221
+4,16,45,341,2,133,242,2,243
+5,0,0,209,118,0,19,171,507
+6,0,492,405,91,12,10,1,13
+7,0,512,7,164,200,124,1,16
+0,206,118,110,121,157,91,100,121
+1,103,176,182,160,160,73,120,50
+2,191,135,67,2,147,192,119,171
+3,104,38,34,173,152,187,109,227
+4,19,51,323,2,117,245,3,264
+5,3,0,185,138,1,35,157,505
+6,0,486,375,117,19,7,4,16
+7,1,512,8,172,184,126,3,18
+0,183,108,118,150,136,94,100,135
+1,102,178,189,146,163,70,111,65
+2,216,125,77,3,145,157,107,194
+3,93,28,30,189,155,177,110,242
+4,28,39,327,2,133,250,2,243
+5,2,0,187,132,2,29,167,505
+6,0,490,384,113,12,11,4,10
+7,0,512,11,176,198,114,0,13
+0,199,117,116,121,158,105,88,120
+1,96,178,175,166,165,70,108,66
+2,196,153,70,1,150,174,125,155
+3,119,30,41,189,154,164,106,221
+4,30,48,324,0,123,260,3,236
+5,1,1,183,140,0,23,169,507
+6,0,487,380,116,19,6,3,13
+7,3,512,12,159,190,139,1,8
+0,213,124,113,130,145,100,93,106
+1,98,166,185,174,141,65,128,67
+2,187,122,84,1,174,173,136,147
+3,120,69,35,189,130,153,110,218
+4,18,86,309,1,129,242,5,234
+5,7,0,183,122,1,43,164,504
+6,0,465,374,130,24,11,2,18
+7,1,507,4,172,189,119,1,31
+0,213,125,101,129,141,105,89,121
+1,91,173,177,179,166,53,129,56
+2,178,133,66,4,165,183,123,172
+3,102,58,36,192,119,185,119,213
+4,21,76,329,4,116,239,4,235
+5,12,0,174,128,4,38,162,506
+6,1,475,389,97,24,15,2,21
+7,0,508,12,168,183,133,1,19
+0,172,143,113,124,163,79,95,135
+1,98,160,203,145,172,89,87,70
+2,215,145,69,1,124,185,111,174
+3,106,15,41,146,154,187,137,238
+4,23,28,342,0,136,228,1,266
+5,0,1,206,135,1,11,165,505
+6,0,499,382,98,7,11,3,24
+7,0,512,10,168,206,124,0,4
+0,199,132,111,123,155,121,91,92
+1,92,186,169,167,155,61,126,68
+2,191,106,80,1,162,177,137,170
+3,128,58,35,177,129,163,108,226
+4,17,69,319,1,134,250,6,228
+5,6,0,190,129,1,34,158,506
+6,0,468,375,114,33,10,5,19
+7,1,510,10,177,164,138,1,23
+0,198,135,104,116,174,90,91,116
+1,89,154,173,158,158,86,136,70
+2,183,164,79,2,148,177,133,138
+3,127,56,34,194,139,154,114,206
+4,19,64,313,6,118,268,2,234
+5,7,0,177,127,2,34,171,506
+6,1,474,361,134,24,10,1,19
+7,0,512,5,167,191,121,0,28
+0,181,154,114,124,153,91,90,117
+1,102,202,187,132,173,62,106,60
+2,212,130,77,1,124,182,124,174
+3,111,20,27,190,146,184,126,220
+4,24,40,332,1,114,252,2,259
+5,1,0,188,133,2,18,174,508
+6,0,486,384,110,15,13,1,15
+7,0,512,9,173,208,116,1,5
+0,192,129,113,120,159,80,110,121
+1,98,172,175,166,166,68,119,60
+2,196,130,83,1,148,184,113,169
+3,122,41,35,209,149,166,99,203
+4,25,57,315,4,121,240,3,259
+5,9,1,187,126,1,31,164,505
+6,0,487,357,131,17,13,1,18
+7,1,509,8,144,193,147,1,21
+0,210,109,103,120,179,102,94,107
+1,92,173,173,172,159,67,122,66
+2,172,140,76,1,152,178,131,174
+3,122,50,35,184,126,185,105,217
+4,31,70,330,0,125,237,5,226
+5,4,0,185,116,1,33,181,504
+6,2,477,371,109,23,14,8,20
+7,0,510,10,156,183,144,1,20
+0,201,144,100,114,156,80,103,126
+1,94,178,181,162,153,74,115,67
+2,199,136,70,1,148,179,124,167
+3,119,33,30,168,141,183,117,233
+4,20,53,334,1,104,245,3,264
+5,3,0,190,128,2,25,170,506
+6,0,483,384,112,17,12,5,11
+7,1,512,11,172,190,123,0,15
+0,225,119,104,118,131,110,104,113
+1,92,166,179,151,157,81,143,55
+2,194,128,62,1,151,176,132,180
+3,111,53,36,183,127,180,109,225
+4,34,55,325,1,132,254,4,219
+5,12,1,177,128,0,29,171,506
+6,0,478,369,122,19,13,5,18
+7,0,507,12,169,183,130,2,21
+0,206,123,108,127,145,127,96,92
+1,92,183,171,179,165,59,116,59
+2,194,116,83,1,152,176,119,183
+3,97,59,33,183,130,173,118,231
+4,20,69,330,2,112,245,4,242
+5,5,0,183,131,0,37,164,504
+6,1,469,370,121,24,15,2,22
+7,1,509,8,158,184,140,1,23
+0,198,157,108,100,154,94,98,115
+1,105,173,200,143,155,72,107,69
+2,202,137,70,2,151,188,121,153
+3,116,47,37,180,142,167,114,221
+4,26,60,310,3,132,240,4,249
+5,2,1,202,134,0,23,154,508
+6,0,487,376,108,18,9,3,23
+7,0,512,4,155,199,132,1,21
+0,222,123,91,125,159,116,98,90
+1,83,145,170,162,158,74,170,62
+2,162,128,56,3,167,177,146,185
+3,124,73,46,189,122,175,94,201
+4,23,94,326,1,93,258,3,226
+5,5,0,160,134,1,41,179,504
+6,1,453,360,123,38,16,5,28
+7,1,509,11,168,171,139,2,23
+0,191,129,102,109,151,127,112,103
+1,86,152,199,150,166,75,129,67
+2,184,132,66,2,134,194,137,175
+3,126,39,40,174,129,174,115,227
+4,22,56,328,1,127,247,5,238
+5,5,1,186,142,1,30,154,505
+6,0,482,375,109,26,7,5,20
+7,0,510,12,162,174,147,0,19
+0,198,145,100,115,153,114,86,113
+1,86,162,188,163,158,67,136,64
+2,179,121,86,4,166,166,139,163
+3,116,66,39,199,140,163,106,195
+4,21,80,308,3,121,268,4,219
+5,6,0,170,134,3,43,160,508
+6,0,461,365,129,39,11,4,15
+7,1,512,10,173,166,134,1,27
+0,184,116,109,128,135,96,114,142
+1,94,163,189,164,172,58,118,66
+2,208,129,75,1,142,174,121,174
+3,110,38,34,172,147,169,120,234
+4,21,47,322,1,138,242,3,250
+5,5,0,184,145,0,27,160,503
+6,0,484,375,105,15,12,7,26
+7,0,511,5,156,202,132,2,16
+0,207,103,109,126,135,103,111,130
+1,98,185,177,141,165,75,126,57
+2,194,126,88,1,127,192,115,181
+3,117,36,34,160,137,183,108,249
+4,22,50,329,3,125,257,4,234
+5,5,1,183,126,0,33,170,506
+6,0,487,368,113,18,11,6,21
+7,1,510,8,163,183,144,1,14
+0,214,125,91,123,148,101,110,112
+1,82,168,183,163,159,56,139,74
+2,178,140,82,4,149,182,142,147
+3,121,57,46,185,137,160,109,209
+4,27,60,313,3,137,257,3,224
+5,3,0,185,110,1,46,173,506
+6,0,481,375,99,20,21,8,20
+7,2,508,13,167,179,128,1,26
+0,207,134,101,104,139,128,107,104
+1,92,167,184,164,159,57,133,68
+2,203,122,78,3,136,171,136,175
+3,106,49,38,190,127,181,113,220
+4,20,65,323,3,133,249,5,226
+5,5,2,168,147,2,37,161,502
+6,1,469,379,120,25,12,6,12
+7,0,509,14,170,179,127,3,22
+0,217,136,102,122,163,95,88,101
+1,96,174,176,175,154,70,117,62
+2,197,132,78,2,152,176,116,171
+3,110,45,33,190,129,187,105,225
+4,22,61,330,4,130,255,4,218
+5,6,1,193,122,0,31,164,507
+6,1,480,382,111,17,13,4,16
+7,2,509,5,151,192,136,1,28
+0,194,138,106,114,153,114,94,111
+1,94,177,175,182,164,72,109,51
+2,202,116,74,5,169,177,131,150
+3,124,58,31,190,145,150,115,211
+4,26,78,315,2,129,238,2,234
+5,12,2,187,142,1,31,144,505
+6,1,481,369,125,19,11,4,14
+7,0,508,7,177,192,117,2,21
+0,145,164,112,120,154,110,109,110
+1,93,193,189,162,157,76,106,48
+2,200,136,67,2,138,186,116,179
+3,124,26,30,159,149,189,127,220
+4,23,49,332,0,115,255,6,244
+5,2,0,198,122,1,27,167,507
+6,0,489,391,102,15,9,4,14
+7,0,512,4,179,188,132,0,9
+0,196,143,104,107,163,88,92,131
+1,93,185,187,156,153,86,110,54
+2,188,122,80,2,155,188,121,168
+3,118,51,37,180,135,167,116,220
+4,18,57,336,1,104,266,3,239
+5,4,0,189,131,1,41,151,507
+6,0,484,379,107,18,12,3,21
+7,0,511,6,171,174,134,2,26
+0,192,124,105,128,161,102,96,116
+1,85,182,162,184,171,66,126,48
+2,193,116,84,2,144,189,118,178
+3,110,61,27,192,130,169,109,226
+4,23,72,313,3,117,264,3,229
+5,3,0,187,133,0,37,159,505
+6,0,475,364,124,21,14,4,22
+7,0,509,8,173,170,138,2,24
+0,191,149,109,110,148,96,101,120
+1,95,199,195,122,172,79,101,61
+2,207,136,82,1,131,194,108,165
+3,120,32,44,151,142,180,127,228
+4,21,39,335,0,125,241,3,260
+5,1,0,197,151,0,17,155,503
+6,1,491,380,111,12,11,1,17
+7,0,512,6,152,187,151,1,15
+0,176,146,98,143,151,80,88,142
+1,94,167,189,139,194,77,107,57
+2,208,123,55,2,135,187,129,185
+3,110,23,37,148,134,205,116,251
+4,28,37,339,1,134,217,2,266
+5,2,0,192,116,0,18,189,507
+6,0,497,394,96,6,10,3,18
+7,1,510,1,187,196,114,0,15
+0,206,129,95,120,159,111,95,109
+1,96,146,194,168,165,70,111,74
+2,189,128,81,1,155,177,126,167
+3,112,57,43,187,121,164,120,220
+4,23,72,322,2,132,240,6,227
+5,7,0,184,123,1,32,176,501
+6,0,471,373,121,27,11,2,19
+7,0,509,11,176,173,134,1,20
+0,211,113,111,127,159,81,91,131
+1,102,186,172,174,167,50,109,64
+2,195,114,86,2,162,174,119,172
+3,97,58,30,186,144,170,112,227
+4,22,61,315,5,116,236,4,265
+5,4,1,179,124,0,40,170,506
+6,0,483,382,114,17,13,1,14
+7,1,511,8,152,206,122,0,24
+0,184,137,117,110,140,104,116,116
+1,105,180,180,131,165,81,109,73
+2,215,143,80,3,116,202,103,162
+3,125,20,41,168,161,182,98,229
+4,16,35,325,0,143,257,1,247
+5,2,1,199,141,2,16,161,502
+6,0,494,363,124,9,7,2,25
+7,0,512,8,142,186,165,1,10
+0,217,122,103,117,144,104,99,118
+1,86,167,176,174,158,65,128,70
+2,178,128,68,1,149,185,135,180
+3,105,52,48,188,130,180,104,217
+4,29,61,329,3,119,243,6,234
+5,5,0,164,137,1,31,182,504
+6,0,471,367,130,24,13,7,12
+7,2,510,12,170,162,138,2,28
+0,206,110,115,123,159,95,110,106
+1,99,149,180,173,156,71,128,68
+2,186,141,69,2,162,179,133,152
+3,111,53,41,176,148,172,95,228
+4,29,68,323,1,120,235,7,241
+5,10,1,189,117,1,27,174,505
+6,1,477,371,116,25,10,0,24
+7,1,510,13,162,171,138,4,25
+0,208,114,101,115,160,98,103,125
+1,90,166,175,167,167,70,123,66
+2,186,130,63,1,139,200,127,178
+3,110,42,38,166,133,196,109,230
+4,28,54,330,4,118,237,4,249
+5,5,1,183,120,1,25,185,504
+6,1,483,370,124,22,9,3,12
+7,1,512,8,172,184,131,0,16
+0,189,140,105,127,155,115,100,93
+1,102,188,197,153,153,64,109,58
+2,196,115,75,3,153,197,114,171
+3,129,38,35,168,138,176,124,216
+4,17,54,329,2,123,266,1,232
+5,5,0,195,135,1,26,153,509
+6,1,484,373,125,16,9,5,11
+7,0,511,11,168,188,126,1,19
+0,173,123,116,150,153,99,82,128
+1,99,166,205,151,170,77,95,61
+2,228,134,73,3,134,177,110,165
+3,107,25,40,171,141,187,125,228
+4,29,49,343,2,111,240,3,247
+5,2,1,196,120,0,18,180,507
+6,0,489,392,98,13,12,4,16
+7,0,511,9,176,191,128,0,9
+0,220,133,99,115,146,100,101,110
+1,93,163,179,150,157,76,137,69
+2,189,133,71,3,150,190,131,157
+3,121,50,37,169,143,174,112,218
+4,20,56,323,4,131,249,2,239
+5,5,1,185,123,2,40,161,507
+6,0,473,373,117,26,11,3,21
+7,1,512,7,169,177,140,1,17
+0,212,123,108,132,136,105,98,110
+1,103,187,179,161,155,72,114,53
+2,199,119,89,2,146,188,121,160
+3,121,38,31,189,139,163,123,220
+4,15,52,325,0,122,252,3,255
+5,4,0,198,148,2,24,142,506
+6,0,485,372,114,18,11,9,15
+7,1,512,4,163,189,143,1,11
+0,202,124,115,128,148,85,88,134
+1,101,165,192,161,164,72,112,57
+2,208,134,66,1,158,184,107,166
+3,107,27,30,195,146,184,125,210
+4,20,46,334,1,124,242,2,255
+5,4,0,200,115,1,25,172,507
+6,0,481,400,91,17,15,1,19
+7,0,511,8,163,195,136,2,9
+0,197,123,104,118,142,121,110,109
+1,96,165,171,179,160,70,119,64
+2,199,135,72,2,153,170,126,167
+3,112,48,29,187,144,167,120,217
+4,25,63,320,2,109,249,8,248
+5,4,1,187,134,0,37,157,504
+6,0,478,373,118,20,13,4,18
+7,0,509,10,165,201,117,0,22
+0,201,134,95,129,141,121,95,108
+1,96,195,197,147,155,57,125,52
+2,197,112,79,1,144,187,128,176
+3,118,47,34,169,138,185,114,219
+4,21,53,331,1,114,256,4,244
+5,6,1,181,142,1,36,158,499
+6,0,476,378,108,19,15,5,23
+7,0,508,9,174,179,126,1,27
+0,220,118,102,134,136,134,76,104
+1,87,163,179,177,159,58,143,58
+2,184,116,86,0,185,153,143,157
+3,95,69,33,210,136,161,104,216
+4,23,85,317,4,119,231,1,244
+5,4,1,173,136,0,42,164,504
+6,0,478,380,111,24,13,4,14
+7,2,510,8,173,193,110,0,28
+0,226,133,95,100,134,112,101,123
+1,100,167,186,167,164,73,114,53
+2,181,123,87,3,168,171,132,159
+3,120,75,39,200,119,156,128,187
+4,15,90,317,3,110,251,5,233
+5,6,1,177,143,4,45,149,499
+6,2,467,362,125,32,17,5,14
+7,1,509,14,170,168,128,4,30
+0,206,131,101,129,159,81,99,118
+1,93,173,199,167,158,63,107,64
+2,191,142,52,2,152,191,119,175
+3,128,38,35,161,132,180,120,230
+4,20,44,333,4,121,258,6,238
+5,8,0,202,124,1,21,164,504
+6,0,488,378,106,20,8,3,21
+7,0,510,7,156,186,142,0,23
+0,201,144,99,112,166,93,101,108
+1,90,177,187,151,157,75,116,71
+2,203,129,67,5,139,195,114,172
+3,122,47,40,177,127,169,110,232
+4,25,59,326,1,129,245,4,235
+5,11,0,190,130,1,30,158,504
+6,0,480,378,113,20,10,1,22
+7,1,510,8,171,170,139,3,22
+0,202,121,119,133,134,104,97,114
+1,102,180,170,174,166,66,112,54
+2,211,120,84,2,150,179,115,163
+3,112,47,36,188,140,154,125,222
+4,23,55,317,3,116,248,1,261
+5,9,0,208,138,0,25,137,507
+6,0,480,371,124,22,10,4,13
+7,2,511,11,164,197,121,0,18
+0,187,124,119,132,168,93,85,116
+1,101,200,155,167,166,56,110,69
+2,207,132,74,3,144,181,117,166
+3,116,27,34,182,146,177,125,217
+4,27,52,321,1,132,227,3,261
+5,1,0,199,141,0,23,160,500
+6,0,488,389,110,15,9,1,12
+7,1,512,6,154,200,132,1,18
+0,185,142,97,142,152,86,92,128
+1,87,185,178,155,172,79,113,55
+2,198,130,68,0,127,197,112,192
+3,112,30,36,175,134,187,113,237
+4,30,52,331,0,130,233,5,243
+5,3,0,188,131,1,29,166,506
+6,0,491,399,100,12,11,2,9
+7,0,510,2,174,189,131,0,18
+0,211,116,106,159,117,91,80,144
+1,96,161,181,162,170,62,137,55
+2,214,127,58,1,134,172,134,184
+3,113,30,37,170,144,188,109,233
+4,24,49,326,0,130,227,5,263
+5,1,0,189,137,1,28,162,506
+6,1,484,387,106,16,11,3,16
+7,0,512,10,173,179,130,0,20
+0,188,148,115,119,151,97,83,123
+1,104,192,164,163,157,72,106,66
+2,193,146,80,2,149,173,128,153
+3,123,50,39,188,150,160,109,205
+4,20,58,320,4,105,268,3,246
+5,15,0,186,135,0,22,159,507
+6,1,479,374,112,19,15,3,21
+7,0,509,7,174,180,123,0,31
+0,198,117,110,133,159,101,90,116
+1,101,174,177,141,171,83,121,56
+2,200,138,73,0,136,188,119,170
+3,111,34,37,186,146,165,128,217
+4,22,51,324,3,128,245,5,246
+5,0,0,175,147,0,27,166,509
+6,1,480,370,116,24,12,4,17
+7,0,512,13,156,196,136,1,10
+0,205,113,103,124,134,125,103,117
+1,96,177,174,161,178,67,119,52
+2,204,117,70,5,142,180,125,181
+3,117,32,26,177,128,194,115,235
+4,24,55,331,2,124,236,2,250
+5,3,0,180,138,2,33,163,505
+6,0,481,384,109,18,13,6,13
+7,0,512,10,177,188,118,5,14
+0,185,138,115,117,153,111,89,116
+1,100,180,191,155,166,70,89,73
+2,221,129,63,0,135,179,112,185
+3,112,27,36,172,145,184,129,219
+4,26,49,331,0,131,244,4,239
+5,3,0,193,119,1,29,172,507
+6,2,488,399,97,15,8,1,14
+7,0,511,7,174,207,119,0,6
+0,217,97,98,138,131,143,91,109
+1,82,147,169,197,153,63,160,53
+2,169,106,92,3,171,179,128,176
+3,111,87,23,222,130,152,96,203
+4,13,87,314,3,107,276,3,221
+5,9,0,174,132,2,48,152,507
+6,1,460,338,137,36,15,3,34
+7,1,508,11,169,180,120,1,34
+0,212,129,94,125,129,106,122,107
+1,82,187,178,191,156,41,138,51
+2,184,103,78,1,149,188,136,185
+3,103,76,31,181,124,180,108,221
+4,26,68,325,10,107,249,6,233
+5,13,1,179,114,2,36,177,502
+6,2,477,380,111,24,10,2,18
+7,1,510,5,171,173,130,0,34
+0,228,117,101,115,149,123,83,108
+1,99,170,161,195,146,69,130,54
+2,190,118,89,1,171,179,128,148
+3,119,64,37,187,135,157,121,204
+4,20,69,325,6,112,265,2,225
+5,8,0,196,149,0,30,135,506
+6,1,475,352,128,29,11,5,23
+7,0,511,10,166,186,122,0,29
+0,189,116,114,156,145,105,91,108
+1,98,184,182,157,159,73,122,49
+2,197,136,77,2,157,178,122,155
+3,111,35,28,182,149,174,125,220
+4,24,51,312,1,118,249,4,265
+5,4,0,190,133,0,18,168,511
+6,0,489,380,113,15,7,4,16
+7,0,512,7,163,205,121,3,13
+0,214,116,94,124,140,119,108,109
+1,93,175,172,173,149,68,126,68
+2,195,123,80,2,156,184,136,148
+3,116,78,40,179,131,161,106,213
+4,22,86,310,7,122,252,4,221
+5,13,2,178,132,3,40,157,499
+6,4,474,367,115,22,11,5,26
+7,2,509,11,153,188,128,0,33
+0,201,152,107,102,152,93,107,110
+1,99,194,174,153,155,65,119,65
+2,207,136,76,0,130,179,133,163
+3,120,32,40,156,149,189,114,224
+4,33,50,332,5,128,253,3,220
+5,3,0,179,130,2,29,174,507
+6,0,487,393,98,16,13,5,12
+7,0,512,5,173,186,137,1,10
+0,170,135,106,143,146,100,94,130
+1,87,158,201,140,172,74,130,62
+2,198,143,70,1,146,179,130,157
+3,114,41,39,175,144,172,118,221
+4,23,54,328,2,132,235,3,247
+5,1,1,201,119,0,28,166,508
+6,0,482,381,108,17,11,4,21
+7,1,511,7,174,198,113,0,20
+0,204,119,107,130,133,98,102,131
+1,97,150,212,169,159,57,123,57
+2,186,124,88,1,160,169,133,163
+3,124,57,37,192,119,173,117,205
+4,20,60,321,3,128,261,4,227
+5,1,0,182,130,1,40,166,504
+6,0,479,366,124,23,10,5,17
+7,0,509,10,155,176,142,0,32
+0,198,113,111,119,155,110,109,109
+1,100,187,191,141,161,69,103,72
+2,200,126,91,1,140,181,108,177
+3,109,36,41,150,151,191,105,241
+4,32,45,333,3,139,237,4,231
+5,7,0,178,141,0,27,167,504
+6,0,492,380,111,13,11,2,15
+7,1,510,7,150,197,144,2,13
+0,203,132,104,127,149,95,95,119
+1,91,165,195,159,161,66,128,59
+2,195,126,69,1,139,183,134,177
+3,107,37,37,189,128,181,114,231
+4,23,48,334,0,134,246,1,238
+5,4,0,185,122,1,24,182,506
+6,0,482,390,107,17,10,2,16
+7,2,511,7,172,206,118,0,8
+0,196,140,105,129,146,104,93,111
+1,89,182,196,160,164,62,112,59
+2,205,124,90,2,156,180,126,141
+3,121,48,37,198,143,156,114,207
+4,19,73,313,3,142,232,5,237
+5,5,0,196,130,0,33,156,504
+6,0,481,391,96,26,7,2,21
+7,0,509,9,176,185,119,1,25
+0,242,95,101,125,122,128,101,110
+1,96,161,182,152,167,67,138,61
+2,192,112,84,0,157,173,140,166
+3,118,70,36,191,133,157,118,201
+4,16,94,323,1,117,248,4,221
+5,5,0,164,147,1,51,152,504
+6,0,469,362,124,30,13,4,22
+7,0,509,11,183,173,122,2,24
+0,203,127,115,124,139,104,104,108
+1,97,197,175,151,161,77,119,47
+2,197,116,60,0,150,196,123,182
+3,111,35,24,171,143,196,117,227
+4,20,50,329,1,119,260,1,244
+5,2,0,181,161,1,28,155,496
+6,0,486,377,113,17,11,4,16
+7,2,511,8,144,194,147,1,17
+0,213,119,110,127,152,96,93,114
+1,93,160,195,158,156,73,119,70
+2,197,134,67,2,153,192,134,145
+3,127,45,45,192,143,149,110,213
+4,24,66,315,0,131,248,2,238
+5,3,0,198,120,0,33,164,506
+6,0,475,378,110,22,12,7,20
+7,1,512,12,150,181,147,1,20
+0,195,125,102,132,164,95,95,116
+1,82,173,172,161,163,79,127,67
+2,177,144,72,3,142,188,119,179
+3,129,50,32,181,127,173,114,218
+4,27,68,327,1,124,237,4,236
+5,5,0,172,129,0,38,175,505
+6,0,477,387,106,23,12,6,13
+7,0,510,10,163,182,139,4,16
+0,205,106,116,129,158,107,94,109
+1,94,178,176,155,149,77,129,66
+2,192,138,71,1,141,185,118,178
+3,115,38,36,190,152,171,100,222
+4,19,51,322,0,121,265,1,245
+5,4,0,182,144,1,37,152,504
+6,0,473,361,129,27,12,4,18
+7,2,511,11,159,172,149,0,20
+0,207,130,107,133,133,104,95,115
+1,103,182,192,133,175,77,116,46
+2,204,125,80,1,125,184,114,191
+3,120,24,30,149,154,189,116,242
+4,21,32,338,1,131,241,5,255
+5,0,0,196,154,1,24,145,504
+6,0,489,362,126,17,11,2,17
+7,0,512,11,156,192,140,1,12
+0,191,139,107,133,134,85,107,128
+1,99,187,187,151,169,65,113,53
+2,214,120,77,3,144,168,116,182
+3,105,44,33,179,144,169,115,235
+4,26,49,308,3,135,255,3,245
+5,2,0,191,132,0,25,169,505
+6,1,487,388,107,13,12,2,14
+7,1,511,5,182,191,114,1,19
+0,208,121,100,109,162,93,113,118
+1,91,144,182,152,180,83,120,72
+2,189,156,90,3,136,178,114,158
+3,119,30,52,182,141,174,108,218
+4,29,51,325,0,134,227,1,257
+5,3,0,184,145,2,23,160,507
+6,0,485,369,127,18,9,5,11
+7,0,509,8,172,179,139,2,15
+0,208,106,97,149,150,116,83,115
+1,92,186,192,170,158,55,118,53
+2,198,111,82,4,151,175,130,173
+3,107,44,36,188,130,173,123,223
+4,19,59,328,2,139,230,5,242
+5,5,0,172,132,1,37,167,510
+6,1,484,392,101,17,11,2,16
+7,2,511,11,184,184,112,0,20
+0,202,122,106,124,152,94,85,139
+1,94,201,176,169,165,52,114,53
+2,202,117,73,0,150,189,119,174
+3,112,40,35,178,142,179,115,223
+4,26,51,339,2,105,243,4,254
+5,5,0,187,122,2,37,165,506
+6,0,486,373,116,16,12,4,17
+7,1,508,8,167,184,131,2,23
+0,191,129,104,135,154,107,94,110
+1,95,147,186,178,176,63,116,63
+2,209,125,86,3,148,170,122,161
+3,95,34,41,194,144,175,129,212
+4,30,54,312,1,140,235,2,250
+5,4,0,185,121,1,28,175,510
+6,0,486,393,98,12,9,5,21
+7,0,511,6,171,215,109,0,12
+0,213,132,101,95,161,132,86,104
+1,97,181,164,174,162,62,117,67
+2,213,115,86,4,158,166,129,153
+3,109,53,41,183,137,161,124,216
+4,17,80,309,1,152,226,5,234
+5,6,0,187,138,0,35,151,507
+6,0,475,374,113,22,10,4,26
+7,1,511,6,177,192,123,0,14
+0,205,138,101,134,152,96,93,105
+1,88,175,169,163,153,80,127,69
+2,178,134,71,2,165,181,135,158
+3,106,67,44,191,131,170,92,223
+4,26,70,313,4,124,255,1,231
+5,10,0,181,131,0,41,157,504
+6,2,472,368,119,29,11,3,20
+7,2,509,12,164,167,137,1,32
+0,199,130,113,121,144,98,102,117
+1,103,164,183,173,150,75,110,66
+2,195,124,74,2,162,183,118,166
+3,115,49,40,190,147,170,115,198
+4,20,63,314,2,131,248,5,241
+5,5,1,200,108,2,38,164,506
+6,0,474,381,112,22,11,4,20
+7,0,506,3,161,193,134,1,26
+0,217,109,93,131,156,113,111,94
+1,90,171,175,162,154,76,144,52
+2,186,139,78,0,138,199,107,177
+3,105,40,41,194,131,189,107,217
+4,27,49,327,3,124,254,5,235
+5,4,0,179,136,3,27,172,503
+6,0,492,381,116,9,14,2,10
+7,0,508,7,161,178,147,1,22
+0,189,144,106,100,159,117,98,111
+1,92,167,177,176,156,70,123,63
+2,188,136,74,3,159,183,124,157
+3,117,56,49,169,139,159,118,217
+4,26,68,332,5,124,236,4,229
+5,7,0,181,123,0,41,168,504
+6,4,474,363,129,24,14,1,15
+7,0,510,6,149,182,147,0,30
+0,178,138,103,135,161,108,93,108
+1,85,173,189,178,168,68,109,54
+2,190,121,65,2,156,199,126,165
+3,104,68,30,179,135,173,112,223
+4,25,72,319,5,120,247,1,235
+5,15,2,183,132,0,31,159,502
+6,0,471,372,115,29,15,4,18
+7,1,510,10,160,186,131,1,25
+0,167,159,96,112,174,88,117,111
+1,86,165,206,142,163,66,111,85
+2,191,163,60,4,122,196,109,179
+3,118,23,43,165,141,186,104,244
+4,34,37,325,0,143,229,7,249
+5,2,0,202,125,0,21,170,504
+6,0,490,372,105,13,14,3,27
+7,0,512,6,144,206,148,0,8
+0,191,131,104,109,178,104,100,107
+1,80,164,197,171,153,65,122,72
+2,179,137,73,2,153,170,147,163
+3,110,58,46,203,142,165,83,217
+4,25,70,321,2,125,262,4,215
+5,2,0,168,129,1,34,184,506
+6,0,478,395,107,21,8,2,13
+7,0,511,9,170,172,130,2,30
+0,211,116,100,112,136,113,116,120
+1,93,181,173,174,150,65,127,61
+2,194,124,72,1,148,191,114,180
+3,124,33,34,177,134,186,119,217
+4,24,49,335,2,122,246,1,245
+5,3,0,188,138,2,31,157,505
+6,1,489,377,107,13,14,6,17
+7,1,509,10,150,199,140,0,15
+0,212,110,87,136,125,96,114,144
+1,84,165,180,172,168,62,136,57
+2,192,139,84,1,132,175,113,188
+3,107,54,35,193,135,164,103,233
+4,20,56,317,3,123,258,5,242
+5,10,0,171,128,1,34,173,507
+6,0,476,361,124,21,11,4,27
+7,0,509,5,177,172,142,0,19
+0,227,119,97,105,170,79,91,136
+1,90,158,171,156,169,75,131,74
+2,185,148,74,1,137,174,128,177
+3,115,42,31,183,136,196,110,211
+4,23,61,318,1,126,245,2,248
+5,1,0,167,160,1,33,161,501
+6,0,474,349,143,24,11,5,18
+7,0,512,9,175,171,139,3,15
+0,185,138,101,137,136,93,101,133
+1,80,173,189,162,171,68,129,52
+2,189,111,75,2,131,196,128,192
+3,115,32,34,170,132,187,123,231
+4,23,48,339,0,131,246,1,236
+5,2,0,165,132,0,31,189,505
+6,1,488,383,104,13,11,5,19
+7,1,512,5,178,189,128,1,10
+0,185,133,110,128,153,89,104,122
+1,96,168,186,161,166,67,107,73
+2,200,152,65,1,142,170,128,166
+3,115,21,34,163,154,192,109,236
+4,32,46,334,3,143,221,4,241
+5,5,0,199,125,2,20,170,503
+6,0,492,399,91,7,15,6,14
+7,0,512,9,159,200,133,1,10
+0,192,129,104,125,145,94,109,126
+1,95,172,188,167,162,63,109,68
+2,209,136,79,3,136,172,125,164
+3,111,32,43,183,139,180,115,221
+4,27,59,327,1,130,250,6,224
+5,3,0,193,131,2,27,160,508
+6,2,482,381,112,17,12,4,14
+7,3,508,5,166,191,130,3,18
+0,215,107,106,132,139,113,97,115
+1,99,174,176,153,174,61,124,63
+2,203,121,90,3,147,170,137,153
+3,98,55,36,183,138,166,116,232
+4,22,66,319,1,127,220,2,267
+5,6,0,188,142,0,35,150,503
+6,0,480,386,108,23,7,0,20
+7,0,510,10,163,211,111,0,19
+0,197,132,95,117,163,102,98,120
+1,89,166,177,176,153,73,133,57
+2,164,136,67,4,160,182,134,177
+3,106,76,33,207,126,172,106,198
+4,26,77,320,3,107,261,2,228
+5,8,0,161,132,1,47,167,508
+6,4,465,370,125,26,11,4,19
+7,0,502,10,182,180,105,2,43
+0,229,110,102,112,165,97,102,107
+1,100,173,166,172,150,70,129,64
+2,191,125,71,5,148,174,137,173
+3,110,57,32,184,129,180,113,219
+4,25,67,317,2,128,232,3,250
+5,8,0,174,132,0,35,172,503
+6,0,475,374,115,21,14,4,21
+7,1,512,5,175,172,135,2,22
+0,216,122,93,116,126,128,115,108
+1,84,176,169,154,160,65,149,67
+2,175,135,76,0,163,186,135,154
+3,109,67,56,196,124,170,94,208
+4,28,77,326,1,112,246,4,230
+5,6,1,176,132,1,33,169,506
+6,1,464,366,128,23,17,2,23
+7,1,510,10,163,176,135,3,26
+0,192,120,112,120,158,106,102,114
+1,84,165,171,199,139,80,126,60
+2,181,128,75,0,162,172,137,169
+3,119,57,38,198,136,164,104,208
+4,26,87,312,0,107,247,6,239
+5,6,0,187,122,2,41,159,507
+6,1,475,381,115,22,16,2,12
+7,2,511,5,169,195,121,1,20
+0,222,109,109,135,132,106,80,131
+1,99,174,172,159,168,61,132,59
+2,217,132,75,2,138,171,126,163
+3,106,40,42,174,150,175,116,221
+4,28,52,329,1,129,220,1,264
+5,2,0,192,121,5,31,167,506
+6,0,486,394,101,15,14,7,7
+7,0,510,12,167,204,121,0,10
+0,179,140,112,117,149,102,109,116
+1,87,160,183,168,155,77,127,67
+2,175,137,74,2,160,181,137,158
+3,113,60,40,202,139,172,97,201
+4,18,64,331,1,111,268,5,226
+5,4,0,188,114,1,41,171,505
+6,1,472,361,124,18,18,5,25
+7,2,507,11,160,174,141,0,29
+0,192,143,106,108,156,89,97,133
+1,108,171,202,151,165,78,88,61
+2,216,142,68,0,134,183,118,163
+3,122,31,32,194,138,177,118,212
+4,17,50,319,1,138,241,5,253
+5,1,2,212,128,0,19,160,502
+6,0,491,365,118,16,7,5,22
+7,1,511,4,161,203,129,0,15
+0,214,123,100,125,143,99,94,126
+1,94,179,183,178,159,54,127,50
+2,201,130,74,5,141,183,116,174
+3,113,48,31,188,147,181,109,207
+4,23,69,316,3,110,263,6,234
+5,7,0,201,131,0,29,150,506
+6,1,480,371,116,18,14,5,19
+7,0,508,11,186,171,125,0,23
+0,190,105,109,141,158,97,106,118
+1,90,173,176,179,164,45,131,66
+2,189,121,82,2,151,191,118,170
+3,114,46,37,175,134,185,104,229
+4,20,55,323,1,125,256,4,240
+5,3,1,188,123,1,33,168,507
+6,0,482,390,109,20,8,1,14
+7,1,512,12,162,180,142,0,15
+0,193,135,99,110,155,102,119,111
+1,102,175,177,161,168,79,107,55
+2,196,132,79,2,140,183,122,170
+3,124,40,39,183,132,188,114,204
+4,25,46,320,0,123,269,3,238
+5,5,0,203,136,1,26,146,507
+6,0,487,354,121,18,15,4,25
+7,0,512,6,169,180,143,2,12
+0,198,121,109,122,130,124,106,114
+1,88,175,178,189,158,61,123,52
+2,189,84,97,1,170,166,151,166
+3,106,70,36,188,134,181,101,208
+4,20,85,324,4,115,251,6,219
+5,2,0,165,129,1,41,180,506
+6,2,469,374,118,27,11,5,18
+7,2,511,7,178,177,117,2,30
+0,193,125,122,126,151,88,85,134
+1,105,177,185,160,165,73,95,64
+2,206,138,61,3,147,183,109,177
+3,109,28,33,159,143,194,122,236
+4,29,39,334,2,122,224,3,271
+5,6,0,202,123,1,20,166,506
+6,0,490,375,116,16,10,5,12
+7,1,510,5,163,199,133,1,12
+0,197,134,103,110,152,103,103,122
+1,94,166,181,163,155,74,127,64
+2,187,137,70,2,154,193,132,149
+3,143,47,34,173,130,169,121,207
+4,20,56,311,2,125,246,6,258
+5,5,0,189,130,0,34,159,507
+6,1,469,370,126,21,14,1,22
+7,0,509,9,163,188,135,0,20
+0,208,127,102,134,140,79,105,129
+1,94,199,192,140,167,53,119,60
+2,206,132,70,4,139,192,119,162
+3,121,41,37,175,139,170,119,222
+4,23,58,330,0,130,244,4,235
+5,5,0,186,151,1,32,149,500
+6,2,479,379,99,19,18,5,23
+7,0,510,10,144,185,160,4,11
+0,204,142,96,99,168,102,102,111
+1,92,176,188,149,153,74,129,63
+2,185,134,76,3,157,183,118,168
+3,121,59,34,192,137,172,100,209
+4,22,70,314,4,143,244,3,224
+5,1,1,183,132,1,40,163,503
+6,0,480,361,121,21,15,4,22
+7,0,508,3,167,184,130,1,31
+0,171,130,119,125,151,87,116,125
+1,94,175,182,164,177,77,102,53
+2,195,128,74,2,153,182,109,181
+3,102,31,31,193,152,177,115,223
+4,25,46,328,1,112,239,4,269
+5,5,0,197,128,2,31,153,508
+6,0,488,373,116,14,11,6,16
+7,1,509,7,156,204,131,1,15
+0,204,113,104,145,140,95,102,121
+1,97,172,184,172,157,70,113,59
+2,208,121,79,3,140,185,118,170
+3,106,40,35,184,135,190,118,216
+4,22,53,336,1,134,237,4,237
+5,5,0,174,131,0,37,172,505
+6,1,487,383,103,13,18,3,16
+7,0,509,8,176,195,109,0,27
+0,181,115,111,136,148,108,114,111
+1,102,176,192,152,165,67,106,64
+2,212,138,86,1,120,183,110,174
+3,117,26,39,179,145,172,105,241
+4,26,42,342,2,142,226,1,243
+5,4,0,192,134,1,19,166,508
+6,0,486,385,103,14,11,5,20
+7,0,511,6,127,217,154,0,9
+0,187,128,119,127,161,92,91,119
+1,97,170,188,151,173,63,103,79
+2,210,142,79,2,135,170,117,169
+3,121,26,36,179,158,169,110,225
+4,24,44,335,1,136,243,3,238
+5,1,0,203,135,1,22,161,501
+6,0,486,377,107,16,16,3,19
+7,2,512,7,156,201,137,2,7
+0,192,138,106,130,145,94,106,113
+1,90,186,198,160,158,76,105,51
+2,204,120,74,1,140,200,107,178
+3,119,33,31,189,143,175,109,225
+4,17,49,325,0,140,239,4,250
+5,3,0,189,141,1,26,160,504
+6,0,492,376,109,17,9,4,17
+7,1,512,3,173,195,126,2,12
+0,207,131,98,132,134,91,106,125
+1,92,179,179,160,168,67,128,51
+2,198,128,73,1,148,187,120,169
+3,113,33,27,168,128,192,119,244
+4,13,54,328,0,126,257,5,241
+5,2,0,187,135,0,25,174,501
+6,0,484,383,106,14,14,6,17
+7,0,508,6,173,194,122,2,19
+0,209,127,103,108,146,124,96,111
+1,91,188,181,160,161,70,119,54
+2,195,120,67,3,139,189,131,180
+3,119,41,31,177,142,175,112,227
+4,28,54,331,3,117,254,2,235
+5,8,1,197,118,2,34,160,504
+6,0,486,387,101,17,12,7,14
+7,1,512,9,172,169,143,0,18
+0,201,130,102,113,152,102,95,129
+1,90,180,183,175,153,67,122,54
+2,189,117,77,6,160,168,144,163
+3,132,61,37,195,122,166,111,200
+4,20,88,328,3,113,242,8,222
+5,2,0,183,138,0,34,162,505
+6,2,462,360,125,35,10,4,26
+7,2,512,6,183,171,128,2,20
+0,172,146,113,118,154,110,107,104
+1,98,195,199,156,162,59,96,59
+2,196,144,60,0,136,186,121,181
+3,121,36,34,166,150,188,117,212
+4,23,46,323,2,133,244,4,249
+5,4,0,194,136,2,16,167,505
+6,0,491,390,107,14,6,1,15
+7,0,512,8,168,184,144,0,8
+0,183,135,113,134,142,102,103,112
+1,99,155,179,174,161,74,121,61
+2,205,117,82,3,153,169,127,168
+3,106,36,34,189,148,177,109,225
+4,17,56,328,0,120,257,6,240
+5,6,1,176,132,1,27,172,509
+6,0,483,384,113,14,15,5,10
+7,0,508,8,167,194,120,1,26
+0,187,123,99,131,155,112,111,106
+1,78,164,184,181,160,65,126,66
+2,183,138,78,4,153,177,128,163
+3,121,54,38,192,129,184,97,209
+4,31,58,327,3,132,249,4,220
+5,9,0,181,127,0,32,168,507
+6,0,474,372,119,21,11,7,20
+7,1,507,13,174,171,140,0,18
+0,195,147,99,109,146,98,107,123
+1,93,169,198,145,159,71,124,65
+2,198,144,90,1,128,173,129,161
+3,119,53,38,178,137,173,106,220
+4,20,62,329,3,124,252,6,228
+5,4,1,169,155,0,30,162,503
+6,1,476,385,105,21,15,2,19
+7,1,512,10,170,177,128,1,25
+0,188,125,114,150,149,91,84,123
+1,108,177,187,154,178,58,106,56
+2,221,131,70,1,148,186,98,169
+3,124,24,36,172,146,171,135,216
+4,18,45,312,0,148,233,4,264
+5,2,0,223,124,3,19,144,509
+6,0,492,375,113,12,11,2,19
+7,0,511,5,169,214,112,0,13
+0,189,119,103,119,152,108,108,126
+1,86,171,176,171,142,77,139,62
+2,174,128,85,4,164,162,138,169
+3,115,49,31,197,136,175,123,198
+4,27,74,324,2,99,255,6,237
+5,7,0,185,119,0,39,168,506
+6,0,481,382,114,17,14,3,13
+7,0,508,7,177,202,101,2,27
+0,227,116,99,108,128,109,121,116
+1,104,166,176,164,151,72,125,66
+2,203,115,99,3,152,186,116,150
+3,110,71,43,182,136,160,111,211
+4,21,71,316,2,143,246,7,218
+5,6,2,188,133,1,37,154,503
+6,2,477,372,116,23,11,3,20
+7,1,509,11,146,178,152,1,26
+0,199,148,111,134,143,94,89,106
+1,107,174,182,169,153,82,108,49
+2,228,131,67,4,154,185,115,140
+3,123,32,30,184,153,151,135,216
+4,23,60,296,0,138,229,4,274
+5,3,0,226,127,0,25,137,506
+6,1,485,370,114,16,17,0,21
+7,0,511,7,160,216,118,0,12
+0,195,113,119,134,137,101,100,125
+1,101,185,182,158,172,68,99,59
+2,224,125,76,4,142,164,113,176
+3,98,13,33,173,147,184,128,248
+4,23,39,331,0,149,219,2,261
+5,1,0,194,150,1,14,159,505
+6,0,497,403,95,7,11,1,10
+7,1,511,4,157,229,114,0,8
+0,181,153,103,129,139,93,93,133
+1,90,171,198,150,172,63,117,63
+2,205,142,64,1,138,186,115,173
+3,104,25,39,171,133,195,124,233
+4,21,34,330,2,134,261,4,238
+5,2,0,186,133,1,24,176,502
+6,0,493,393,95,8,11,4,20
+7,0,509,8,160,198,138,0,11
+0,180,159,102,128,139,107,95,114
+1,96,184,195,136,153,74,127,59
+2,209,126,71,2,138,199,115,164
+3,141,26,35,144,139,182,137,220
+4,20,49,342,2,121,249,3,238
+5,3,0,193,128,1,25,169,505
+6,0,487,377,110,18,11,5,16
+7,0,512,11,152,195,145,0,9
+0,183,139,107,123,162,95,88,127
+1,96,202,185,147,170,65,96,63
+2,225,135,67,1,128,189,98,181
+3,105,15,37,172,143,192,123,237
+4,30,29,334,1,136,242,2,250
+5,1,0,209,124,0,10,175,505
+6,0,493,396,88,10,11,3,23
+7,0,512,10,159,201,135,0,7
+0,176,151,117,121,164,90,91,114
+1,93,166,192,153,168,71,107,74
+2,207,139,61,1,134,185,120,177
+3,112,39,42,181,153,169,109,219
+4,29,54,327,4,124,230,7,249
+5,4,0,192,119,2,21,177,509
+6,1,482,382,105,18,12,2,22
+7,1,509,11,167,194,124,1,17
+0,173,154,118,116,144,91,103,125
+1,105,157,207,147,154,79,101,74
+2,195,163,56,1,137,189,125,158
+3,130,28,34,169,153,174,119,217
+4,16,37,316,2,136,247,6,264
+5,1,0,213,117,0,26,162,505
+6,0,488,372,111,21,8,3,21
+7,2,511,8,165,194,133,0,11
+0,178,146,114,123,124,118,98,123
+1,104,181,197,159,172,79,81,51
+2,235,127,81,0,144,162,115,160
+3,99,16,34,175,156,177,138,229
+4,20,29,337,1,109,256,5,267
+5,0,0,214,139,3,20,143,505
+6,0,499,389,95,6,15,0,20
+7,0,512,2,165,217,123,0,5
+0,181,129,116,124,145,118,96,115
+1,88,177,197,154,163,73,114,58
+2,194,138,72,0,133,187,106,194
+3,110,24,40,166,147,192,107,238
+4,23,48,331,1,121,249,1,250
+5,1,2,170,134,2,30,179,506
+6,0,490,389,109,15,8,3,10
+7,0,510,10,169,180,142,1,12
+0,194,140,111,111,159,83,106,120
+1,104,187,169,160,177,75,98,54
+2,227,131,72,1,151,180,104,158
+3,128,16,42,187,148,164,125,214
+4,18,53,316,1,139,232,1,264
+5,3,0,221,127,2,19,141,511
+6,0,492,381,99,15,10,5,22
+7,0,511,9,153,202,135,0,14
+0,228,118,106,119,134,88,95,136
+1,94,177,190,150,148,65,135,65
+2,181,126,91,4,157,183,125,157
+3,113,63,31,203,143,171,98,202
+4,16,75,305,0,117,272,2,237
+5,3,0,173,133,1,42,168,504
+6,1,478,358,135,18,12,2,20
+7,2,511,8,176,178,125,1,23
+0,201,141,102,138,160,107,88,87
+1,84,157,179,181,137,70,147,69
+2,170,136,80,3,163,182,132,158
+3,122,60,39,183,134,162,112,212
+4,23,78,317,6,116,263,5,216
+5,2,1,194,113,2,43,163,506
+6,1,470,372,119,29,9,1,23
+7,0,508,10,177,184,120,3,22
+0,210,124,99,115,142,117,92,125
+1,94,173,159,184,161,70,128,55
+2,184,124,85,1,156,179,132,163
+3,115,54,33,205,145,161,107,204
+4,26,83,304,1,123,239,8,240
+5,6,0,176,140,2,47,146,507
+6,0,471,364,133,26,15,3,12
+7,1,512,7,174,165,135,1,29
+0,179,144,120,103,166,104,110,98
+1,99,177,193,154,139,79,105,78
+2,198,143,69,4,137,201,107,165
+3,120,38,44,166,157,171,110,218
+4,24,71,312,0,117,246,4,250
+5,7,0,197,128,1,23,164,504
+6,0,476,374,117,20,13,4,20
+7,0,511,7,157,191,137,2,19
+0,205,120,102,111,150,95,109,132
+1,98,169,173,157,160,72,137,58
+2,187,143,72,3,149,180,120,170
+3,109,35,33,178,138,185,117,229
+4,23,47,325,0,123,259,2,245
+5,2,0,185,135,0,30,166,506
+6,1,481,378,111,15,13,2,23
+7,0,512,8,179,176,129,0,20
+0,180,144,105,108,170,96,106,115
+1,98,165,189,159,172,64,115,62
+2,211,122,69,2,141,175,118,186
+3,126,36,37,184,128,173,119,221
+4,20,42,333,3,137,240,3,246
+5,2,2,188,127,0,29,173,503
+6,0,488,382,97,15,14,5,23
+7,0,511,12,173,183,134,0,11
+0,212,122,102,98,151,104,100,135
+1,94,172,175,170,154,78,116,65
+2,201,140,69,3,141,181,130,159
+3,116,42,40,171,143,179,115,218
+4,20,59,316,2,127,240,4,256
+5,4,0,181,135,0,33,165,506
+6,0,477,375,108,17,14,7,26
+7,0,511,7,177,172,143,1,13
+0,208,121,104,137,169,78,69,138
+1,97,177,174,176,153,71,110,66
+2,189,139,78,6,159,173,125,155
+3,103,61,33,187,131,178,114,217
+4,20,72,325,5,106,256,3,237
+5,11,0,179,137,1,36,151,509
+6,2,465,366,129,29,20,3,10
+7,1,510,6,178,183,110,1,35
+0,203,120,109,135,145,114,102,96
+1,91,169,178,179,150,68,129,60
+2,189,124,82,3,163,179,131,153
+3,119,52,36,197,137,165,105,213
+4,21,78,310,2,135,242,1,235
+5,3,0,182,147,1,39,147,505
+6,0,472,377,116,26,10,2,21
+7,1,509,10,157,193,131,3,20
+0,206,121,101,129,164,94,102,107
+1,84,154,171,172,159,62,147,75
+2,167,123,83,0,165,194,145,147
+3,123,77,43,180,120,164,104,213
+4,25,93,320,3,123,254,8,198
+5,7,1,172,134,1,43,162,504
+6,0,471,365,116,32,14,4,22
+7,3,511,7,162,179,124,1,37
+0,187,135,112,117,153,105,113,102
+1,99,173,181,177,152,73,117,52
+2,198,122,72,2,158,187,119,166
+3,115,40,34,191,144,161,117,222
+4,16,61,314,2,120,263,1,247
+5,7,0,203,122,0,26,160,506
+6,0,483,352,130,13,16,0,30
+7,0,510,10,158,190,139,1,16
+0,206,121,101,133,141,93,90,139
+1,94,184,182,153,162,61,130,58
+2,209,124,77,1,126,177,132,178
+3,107,36,41,165,138,190,112,235
+4,20,48,323,2,138,256,1,236
+5,7,0,184,136,0,30,160,507
+6,0,483,377,112,18,14,3,17
+7,0,512,11,189,164,137,0,11
+0,207,122,93,131,156,101,96,118
+1,82,176,176,175,148,59,146,62
+2,181,118,69,2,156,196,144,158
+3,119,70,32,182,134,175,100,212
+4,25,70,327,5,114,248,5,230
+5,5,1,176,119,1,40,174,508
+6,0,476,367,115,24,14,6,22
+7,1,508,8,193,159,121,1,33
+0,191,124,107,164,130,90,85,133
+1,97,169,175,150,179,75,131,48
+2,208,147,68,1,132,172,106,190
+3,110,24,26,171,148,184,120,241
+4,27,39,325,0,132,241,3,257
+5,2,0,192,136,0,19,168,507
+6,0,488,381,111,11,15,5,13
+7,1,512,7,173,214,112,0,5
+0,216,123,107,133,152,84,96,113
+1,89,186,155,194,160,63,118,59
+2,192,110,69,2,162,181,129,179
+3,100,57,22,181,122,199,111,232
+4,31,62,347,5,94,238,0,247
+5,12,0,177,134,2,34,161,504
+6,0,479,367,122,23,6,5,22
+7,0,509,9,167,186,124,1,28
+0,222,133,90,118,141,100,94,126
+1,87,160,175,179,171,68,134,50
+2,191,115,68,3,151,175,139,182
+3,98,67,27,196,130,180,111,215
+4,22,73,318,2,134,235,4,236
+5,6,1,154,164,0,33,161,505
+6,1,471,367,118,25,13,6,23
+7,2,509,14,189,171,113,0,26
+0,191,143,102,138,150,93,96,111
+1,93,164,207,141,166,79,116,58
+2,187,144,65,3,126,210,127,162
+3,132,31,37,157,153,186,100,228
+4,27,49,327,2,113,251,3,252
+5,5,0,190,134,0,27,163,505
+6,1,482,359,126,18,14,3,21
+7,0,511,10,175,180,135,1,12
+0,205,110,104,120,158,111,98,118
+1,94,169,186,143,164,69,124,75
+2,203,138,76,0,149,180,125,153
+3,119,41,43,174,142,175,109,221
+4,20,60,321,1,137,243,3,239
+5,7,0,192,137,2,29,151,506
+6,1,480,359,120,22,16,3,23
+7,0,511,8,167,175,139,0,24
+0,208,133,106,121,144,119,91,102
+1,96,179,173,162,155,75,123,61
+2,204,126,81,0,140,180,113,180
+3,122,40,39,180,138,162,114,229
+4,16,55,325,0,129,248,5,246
+5,1,0,175,145,2,39,165,497
+6,1,483,389,104,19,11,2,15
+7,3,511,7,161,193,126,2,21
+0,182,137,111,153,141,108,85,107
+1,100,177,174,159,168,65,125,56
+2,203,120,75,1,144,177,129,175
+3,107,39,27,178,155,181,100,237
+4,28,50,333,1,113,243,4,252
+5,2,0,197,125,2,30,160,508
+6,0,483,385,105,14,14,4,19
+7,1,511,4,160,203,127,0,18
+0,188,141,113,123,162,109,86,102
+1,102,178,181,155,162,65,103,78
+2,193,140,81,0,160,165,126,159
+3,106,42,45,178,142,170,119,222
+4,34,50,314,1,132,254,2,237
+5,1,0,209,124,1,29,153,507
+6,0,486,391,102,14,11,1,19
+7,1,510,5,162,206,124,1,15
+0,216,115,119,133,150,109,83,99
+1,107,177,168,152,149,71,139,61
+2,202,117,94,0,162,164,126,159
+3,102,55,30,190,161,159,113,214
+4,16,69,301,0,116,269,5,248
+5,3,0,196,130,2,32,151,510
+6,0,471,390,112,25,11,2,13
+7,1,512,6,146,212,120,1,26
+0,221,114,102,133,122,118,101,113
+1,84,185,177,177,150,65,130,56
+2,184,113,77,4,176,166,147,157
+3,110,77,35,197,131,168,100,206
+4,22,93,309,8,98,272,5,217
+5,11,1,185,131,1,45,145,505
+6,0,471,376,111,30,11,5,20
+7,1,505,9,185,172,114,0,38
+0,196,138,95,130,136,106,96,127
+1,92,186,189,170,165,61,110,51
+2,214,111,66,0,148,175,132,178
+3,115,39,35,173,128,188,128,218
+4,32,57,319,1,131,234,1,249
+5,0,0,190,124,1,35,169,505
+6,1,483,391,94,13,14,3,25
+7,0,510,6,182,197,117,0,12
+0,214,120,108,122,168,110,83,99
+1,92,169,148,176,163,72,136,68
+2,186,133,109,2,161,163,122,148
+3,116,65,30,210,132,151,115,205
+4,25,78,311,3,114,256,2,235
+5,7,1,183,138,3,35,150,507
+6,2,472,345,132,24,19,7,23
+7,1,510,9,167,178,121,2,36
+0,190,128,114,117,143,100,112,120
+1,101,165,164,172,169,75,126,52
+2,206,122,85,2,149,172,135,153
+3,109,45,35,205,147,161,113,209
+4,21,52,314,2,120,255,3,257
+5,5,0,192,143,1,22,152,509
+6,0,480,370,121,21,9,6,17
+7,0,509,5,182,190,120,0,18
+0,186,113,113,135,152,102,91,132
+1,98,170,179,171,170,75,104,57
+2,202,127,68,2,146,179,115,185
+3,125,36,35,166,145,180,115,222
+4,27,48,336,1,129,241,2,240
+5,4,1,195,130,1,23,163,507
+6,0,485,372,118,16,12,3,18
+7,0,511,8,183,168,133,3,18
+0,212,111,101,135,163,98,99,105
+1,97,159,175,186,148,61,135,63
+2,182,124,82,1,172,179,122,162
+3,104,69,37,213,130,163,96,212
+4,23,85,299,1,116,259,5,236
+5,4,0,175,141,1,49,148,506
+6,1,464,359,131,35,13,4,17
+7,0,509,16,163,168,134,2,32
+0,189,138,98,139,153,101,110,96
+1,93,181,165,162,173,63,123,64
+2,205,113,85,4,140,187,97,193
+3,119,35,23,191,135,170,121,230
+4,24,52,330,1,114,246,7,250
+5,6,0,208,120,2,23,163,502
+6,0,481,366,112,18,13,8,26
+7,1,510,7,155,188,151,1,11
+0,211,130,98,103,140,93,119,130
+1,88,157,181,158,162,73,150,55
+2,177,124,86,2,138,185,122,190
+3,120,59,37,186,129,166,104,223
+4,21,57,330,4,126,251,3,232
+5,5,0,179,128,1,43,163,505
+6,0,482,371,121,21,14,2,13
+7,1,509,5,172,175,133,1,28
+0,196,145,105,119,153,106,102,98
+1,101,174,178,150,159,61,133,68
+2,201,125,85,1,149,181,133,149
+3,130,48,43,176,133,159,113,222
+4,20,63,320,3,144,236,6,232
+5,8,0,195,133,2,28,157,501
+6,1,478,371,125,17,13,2,17
+7,1,510,9,145,174,164,1,20
+0,202,136,100,114,146,95,125,106
+1,89,180,185,139,172,63,133,63
+2,200,133,80,2,126,194,124,165
+3,127,29,35,160,138,188,115,232
+4,26,49,342,4,133,225,7,238
+5,4,1,185,140,0,24,166,504
+6,0,487,390,94,20,7,4,22
+7,1,511,10,163,176,148,1,14
+0,221,119,97,118,151,127,97,94
+1,97,179,170,194,135,61,131,57
+2,170,102,89,6,185,190,142,140
+3,123,99,34,220,116,140,107,185
+4,17,124,303,9,106,266,6,193
+5,16,0,170,132,1,58,140,507
+6,2,450,344,144,39,10,3,32
+7,1,507,23,157,158,123,7,48
+0,199,150,96,114,148,89,104,124
+1,90,178,176,158,151,71,134,66
+2,183,128,81,0,151,193,124,164
+3,126,47,30,191,129,170,118,213
+4,25,63,323,1,126,247,4,235
+5,3,0,186,146,0,31,153,505
+6,0,480,366,112,19,12,7,28
+7,0,510,11,161,180,147,0,15
+0,205,133,107,118,152,93,95,121
+1,95,183,168,185,149,61,124,59
+2,177,147,78,1,145,178,124,174
+3,120,42,36,191,128,186,121,200
+4,25,54,324,1,123,254,0,243
+5,7,0,185,137,1,32,159,503
+6,0,487,375,116,13,12,4,17
+7,1,510,8,165,181,140,0,19
+0,188,151,101,121,159,92,93,119
+1,94,171,195,166,147,71,116,64
+2,172,142,70,3,173,195,124,145
+3,123,72,35,207,131,146,111,199
+4,26,81,296,4,115,268,4,230
+5,7,0,195,130,0,43,144,505
+6,0,469,346,139,31,13,4,22
+7,1,509,16,142,172,148,3,33
+0,186,139,115,129,138,85,100,132
+1,100,181,194,145,175,68,92,69
+2,220,145,68,3,139,184,113,152
+3,108,27,41,171,143,171,130,233
+4,27,37,320,2,155,232,4,247
+5,1,0,208,130,2,17,160,506
+6,1,496,409,80,9,13,0,16
+7,0,510,3,164,208,130,0,9
+0,203,127,100,99,166,104,95,130
+1,92,172,187,151,170,75,106,71
+2,194,140,77,1,141,180,128,163
+3,112,43,38,185,138,174,108,226
+4,32,54,313,1,124,251,7,242
+5,3,1,199,136,1,26,154,504
+6,0,476,364,135,20,11,3,15
+7,2,512,8,174,190,124,1,13
+0,177,126,107,125,162,81,95,151
+1,93,179,165,159,184,78,105,61
+2,210,124,76,1,137,187,107,182
+3,103,37,30,180,145,171,128,230
+4,28,49,329,1,128,235,4,250
+5,7,1,196,119,0,26,169,506
+6,2,485,377,107,11,14,7,21
+7,1,510,7,172,189,129,1,15
+0,204,133,109,122,155,91,101,109
+1,102,171,171,158,156,71,131,64
+2,187,130,61,2,168,200,117,159
+3,115,53,32,180,133,181,111,219
+4,19,75,310,0,116,259,2,243
+5,0,0,194,117,1,41,166,505
+6,0,477,351,131,25,11,4,25
+7,1,510,8,170,177,133,2,23
+0,221,102,107,120,157,111,108,98
+1,98,189,182,165,152,66,124,48
+2,201,120,89,1,143,182,109,179
+3,112,50,23,183,138,180,108,230
+4,21,65,329,1,133,230,6,239
+5,1,0,180,150,0,39,150,504
+6,1,475,367,116,24,13,2,26
+7,0,512,11,166,189,127,2,17
+0,200,154,99,117,155,94,96,109
+1,102,182,184,156,150,66,118,66
+2,192,151,70,2,135,195,102,177
+3,115,34,42,164,134,194,126,215
+4,22,61,327,1,125,247,2,239
+5,3,1,194,142,1,31,146,506
+6,0,489,382,113,9,13,4,14
+7,0,512,7,162,182,140,0,21
+0,213,103,108,134,142,114,91,119
+1,98,167,182,175,161,72,103,66
+2,199,129,79,0,159,184,130,144
+3,116,54,45,193,141,170,102,203
+4,30,63,322,3,123,245,0,238
+5,11,0,194,144,2,29,141,503
+6,0,477,362,124,26,9,3,23
+7,1,510,12,149,181,145,0,26
+0,211,127,100,130,152,96,96,112
+1,98,185,175,166,168,60,116,56
+2,206,118,82,4,130,179,125,180
+3,108,44,34,160,131,187,132,228
+4,28,54,330,3,126,225,5,253
+5,1,1,183,133,0,37,169,500
+6,0,479,376,120,15,14,3,17
+7,1,511,11,178,171,135,0,17
+0,202,138,106,123,150,93,99,113
+1,106,183,191,148,162,83,100,51
+2,205,133,73,1,136,192,106,178
+3,125,27,39,161,143,186,128,215
+4,21,45,340,2,128,243,2,243
+5,2,1,195,130,1,19,176,500
+6,0,488,375,111,11,16,1,22
+7,0,512,7,164,197,135,0,9
+0,197,126,105,126,123,87,118,142
+1,84,176,199,163,162,63,130,47
+2,193,124,62,1,138,190,112,204
+3,114,38,35,153,140,194,111,239
+4,21,53,341,1,100,259,7,242
+5,5,0,177,128,1,30,183,500
+6,0,489,381,104,15,15,1,19
+7,2,512,7,168,174,141,1,19
+0,161,123,115,136,145,107,110,127
+1,95,171,174,169,189,65,117,44
+2,215,124,65,0,149,159,116,196
+3,87,25,27,178,154,198,110,245
+4,31,33,342,1,119,231,4,263
+5,2,0,186,130,0,26,172,508
+6,0,496,401,89,8,13,3,14
+7,0,510,10,170,201,117,0,16
+0,182,143,127,129,139,89,90,125
+1,102,198,183,149,163,66,102,61
+2,201,131,75,3,138,186,116,174
+3,110,27,34,170,160,182,114,227
+4,23,39,331,1,113,251,2,264
+5,4,0,195,151,4,21,143,506
+6,0,488,375,112,16,14,4,15
+7,0,510,6,170,198,129,0,11
+0,204,137,102,113,143,106,98,121
+1,94,192,174,154,162,67,119,62
+2,194,136,75,3,141,182,131,162
+3,117,55,38,173,135,178,115,213
+4,24,66,316,2,129,241,7,239
+5,0,0,189,138,1,37,157,502
+6,1,482,390,109,19,11,3,9
+7,1,509,10,163,184,140,0,17
+0,188,134,105,140,117,106,107,127
+1,91,185,188,170,153,65,131,41
+2,204,147,67,1,141,184,113,167
+3,107,32,23,203,143,186,120,210
+4,21,43,334,1,115,254,3,253
+5,8,0,194,126,0,18,171,507
+6,1,488,384,102,12,21,1,15
+7,0,512,5,153,216,123,1,14
+0,185,136,109,127,132,104,111,120
+1,94,163,178,181,159,80,122,47
+2,187,109,65,2,159,185,135,182
+3,104,53,25,195,131,182,106,228
+4,33,53,340,6,97,249,3,243
+5,9,2,175,129,0,39,165,505
+6,1,474,368,122,22,11,4,22
+7,1,504,10,167,192,118,1,31
+0,165,130,121,137,155,97,102,117
+1,93,155,193,174,153,80,113,63
+2,187,152,72,1,143,180,129,160
+3,126,35,34,187,151,156,114,221
+4,31,54,326,0,113,242,1,257
+5,3,0,187,145,4,33,147,505
+6,0,481,367,124,20,12,1,19
+7,0,511,14,169,190,128,1,11
+0,207,141,97,109,159,96,82,133
+1,88,180,175,144,185,78,118,56
+2,200,130,75,1,126,178,120,194
+3,130,29,39,154,133,180,117,242
+4,24,35,339,3,120,243,1,259
+5,4,0,179,137,0,22,183,499
+6,0,490,384,104,15,8,3,20
+7,1,512,4,177,181,134,1,14
+0,186,137,108,136,165,108,75,109
+1,93,178,186,178,152,76,98,63
+2,205,131,65,2,161,173,134,153
+3,120,36,30,188,148,171,127,204
+4,25,49,327,0,132,249,4,238
+5,5,0,209,116,1,22,165,506
+6,1,481,372,122,19,16,2,11
+7,0,512,5,154,203,135,0,15
+0,197,130,104,126,141,108,99,119
+1,97,177,197,159,170,63,105,56
+2,202,137,68,2,153,177,120,165
+3,109,51,35,189,140,167,111,222
+4,21,68,318,1,110,260,3,243
+5,10,0,181,131,2,28,163,509
+6,1,477,373,117,19,8,6,23
+7,1,511,8,173,186,124,1,20
+0,218,156,99,99,141,102,96,113
+1,94,181,169,147,161,77,127,68
+2,198,132,64,0,126,194,125,185
+3,125,35,34,169,151,173,115,222
+4,24,44,324,2,122,255,3,250
+5,4,0,186,152,0,22,153,507
+6,1,491,386,101,11,8,2,24
+7,0,512,6,154,193,142,1,16
+0,191,132,110,124,161,84,103,119
+1,97,161,200,138,170,75,124,59
+2,188,128,78,2,147,180,119,182
+3,108,31,32,174,145,194,103,237
+4,24,46,344,1,97,245,3,264
+5,4,0,180,149,1,21,163,506
+6,0,489,386,104,16,9,2,18
+7,0,511,2,174,193,132,2,10
+0,204,138,115,113,164,87,92,111
+1,100,155,172,157,153,74,137,76
+2,195,124,83,1,146,184,134,157
+3,114,52,50,191,138,159,108,212
+4,27,68,303,2,135,238,7,244
+5,7,1,196,130,0,33,152,505
+6,2,476,383,109,24,12,3,15
+7,1,511,11,158,187,134,1,21
+0,188,120,124,147,144,88,93,120
+1,103,170,167,175,177,68,106,58
+2,213,117,82,0,163,159,113,177
+3,103,37,39,190,139,177,106,233
+4,26,54,316,6,138,205,4,275
+5,8,0,197,121,0,28,164,506
+6,0,493,391,109,14,7,3,7
+7,1,509,8,164,216,111,0,15
+0,198,147,98,114,155,88,91,133
+1,88,154,175,157,180,67,138,65
+2,191,138,64,1,131,178,134,187
+3,104,32,35,191,146,178,119,219
+4,28,45,325,2,121,249,5,249
+5,1,0,182,125,1,31,177,507
+6,0,479,381,104,20,14,4,22
+7,1,511,9,181,173,134,0,15
+0,201,135,102,142,122,104,111,107
+1,95,189,179,137,164,72,144,44
+2,192,121,75,2,140,199,112,183
+3,111,40,23,159,136,192,124,239
+4,13,55,323,2,118,245,4,264
+5,2,0,177,149,1,35,157,503
+6,1,480,367,115,20,16,3,22
+7,2,511,3,146,203,141,2,16
+0,203,125,110,134,155,89,95,113
+1,96,167,184,154,171,65,127,60
+2,208,129,74,2,156,178,116,161
+3,107,42,39,179,134,174,113,236
+4,22,65,314,1,136,234,3,249
+5,2,1,191,130,0,35,161,504
+6,0,482,388,103,23,8,2,18
+7,0,512,12,162,196,128,1,13
+0,195,123,104,131,144,111,99,117
+1,98,169,176,170,164,63,130,54
+2,203,120,68,3,163,170,122,175
+3,112,42,31,196,151,172,104,216
+4,18,53,316,2,115,262,4,254
+5,12,0,184,136,2,26,158,506
+6,0,482,378,113,20,10,3,18
+7,1,508,6,168,199,116,1,25
+0,194,124,104,119,157,101,92,133
+1,88,165,175,166,159,64,136,71
+2,200,133,78,3,152,171,131,156
+3,117,53,33,190,143,166,109,213
+4,24,61,324,3,128,239,6,239
+5,6,1,184,134,2,30,165,502
+6,2,480,376,119,21,6,2,18
+7,1,509,9,173,181,121,2,28
+0,195,129,119,131,138,97,99,116
+1,110,204,196,140,158,75,94,47
+2,215,141,73,1,146,192,89,167
+3,127,32,33,157,143,187,128,217
+4,17,44,334,4,118,244,3,260
+5,4,1,192,159,0,25,140,503
+6,0,489,382,110,21,6,2,14
+7,0,512,9,152,203,136,1,11
+0,246,107,86,141,128,114,97,105
+1,84,167,181,171,145,70,152,54
+2,188,105,71,4,162,188,136,170
+3,127,70,43,195,116,166,112,195
+4,17,85,318,4,99,276,10,215
+5,5,1,180,116,1,42,172,507
+6,0,466,375,115,26,15,2,25
+7,0,510,8,184,181,110,3,28
+0,201,120,112,130,157,83,103,118
+1,107,174,181,160,168,61,106,67
+2,207,141,68,3,140,178,112,175
+3,100,27,36,169,154,198,110,230
+4,24,38,332,2,141,240,4,243
+5,5,0,207,139,0,15,151,507
+6,1,494,384,101,9,11,5,19
+7,0,511,11,162,188,132,0,20
+0,176,132,113,136,153,104,86,124
+1,98,165,188,163,160,74,116,60
+2,200,130,73,0,145,185,123,168
+3,99,41,33,191,149,175,113,223
+4,19,61,320,1,111,239,4,269
+5,3,0,187,131,3,34,161,505
+6,0,481,379,124,17,9,2,12
+7,1,511,7,166,203,112,1,23
+0,207,114,106,124,149,107,93,124
+1,104,166,180,162,155,79,116,62
+2,207,134,69,1,165,151,141,156
+3,98,51,34,209,139,170,122,201
+4,14,67,327,2,123,248,3,240
+5,8,0,184,143,0,32,152,505
+6,1,476,366,126,24,13,0,18
+7,1,511,12,155,191,129,0,25
+0,227,106,97,121,157,111,101,104
+1,93,156,179,179,155,71,121,70
+2,183,138,90,0,147,195,122,149
+3,132,60,36,172,145,171,94,214
+4,16,76,313,3,126,251,3,236
+5,5,0,180,135,1,49,148,506
+6,0,465,353,142,26,18,1,19
+7,2,510,9,149,181,142,2,29
+0,184,163,104,109,166,83,101,114
+1,92,181,183,136,156,83,126,67
+2,206,123,74,1,141,190,125,164
+3,124,47,39,172,142,164,117,219
+4,28,66,334,0,119,232,6,239
+5,3,0,187,133,1,32,163,505
+6,0,473,386,108,21,9,2,25
+7,0,511,8,153,181,149,3,19
+0,179,127,113,136,145,121,96,107
+1,88,159,191,187,151,71,122,55
+2,176,116,79,2,161,188,120,182
+3,115,55,30,206,132,161,110,215
+4,21,67,320,4,104,277,7,224
+5,11,1,190,123,1,39,153,506
+6,2,473,367,122,25,9,3,23
+7,0,509,12,171,182,124,1,25
+0,199,126,106,119,158,112,99,105
+1,89,154,173,189,166,66,125,62
+2,181,121,79,2,143,180,128,190
+3,111,59,29,192,124,187,115,207
+4,26,68,312,0,126,247,4,241
+5,5,0,172,140,1,51,146,509
+6,1,473,367,119,26,14,6,18
+7,1,510,13,179,169,126,1,25
+0,187,147,113,110,153,97,110,107
+1,87,185,183,142,155,65,136,71
+2,189,150,69,2,135,194,116,169
+3,131,31,41,149,147,179,111,235
+4,22,43,327,2,133,255,4,238
+5,5,1,206,136,4,21,145,506
+6,1,482,370,110,16,12,7,26
+7,1,507,13,144,180,160,0,19
+0,181,130,115,117,158,108,106,109
+1,98,184,179,163,158,74,105,63
+2,211,126,72,1,150,171,126,167
+3,109,33,33,184,142,176,128,219
+4,32,54,320,1,127,238,2,250
+5,3,1,207,138,1,27,143,504
+6,0,485,374,119,14,10,6,16
+7,1,512,8,161,199,129,1,13
+0,203,126,110,117,146,102,101,119
+1,92,185,172,153,176,78,112,56
+2,206,125,76,1,140,186,117,173
+3,111,35,36,163,152,180,114,233
+4,16,48,327,0,133,240,7,253
+5,5,0,193,141,0,24,158,503
+6,0,484,385,105,17,11,2,20
+7,2,511,5,175,182,136,1,12
+0,218,114,98,128,142,97,100,127
+1,91,173,173,177,164,60,133,53
+2,182,131,79,3,156,173,133,167
+3,120,52,27,190,133,167,111,224
+4,32,61,323,6,99,245,5,253
+5,4,1,183,136,1,36,160,503
+6,1,480,373,114,22,11,5,18
+7,2,511,9,161,199,119,2,21
+0,188,126,113,115,154,103,104,121
+1,90,182,188,156,170,75,98,65
+2,217,148,75,1,132,178,112,161
+3,114,25,35,185,145,170,122,228
+4,22,38,332,2,152,232,5,241
+5,1,1,195,150,1,21,151,504
+6,0,490,396,96,12,11,5,14
+7,0,512,6,141,211,142,0,12
+0,201,123,108,121,153,102,108,108
+1,90,143,170,176,164,74,145,62
+2,193,122,92,4,155,172,124,162
+3,105,54,41,200,145,156,110,213
+4,25,58,313,2,124,251,3,248
+5,4,0,183,128,2,37,162,508
+6,0,479,365,124,23,12,4,17
+7,0,509,10,153,199,123,1,29
+0,192,134,104,120,148,101,115,110
+1,100,182,181,145,150,72,129,65
+2,201,137,79,1,132,187,111,176
+3,120,41,37,178,144,168,124,212
+4,17,61,317,1,142,227,6,253
+5,4,1,203,138,2,30,137,509
+6,0,481,382,103,21,10,4,23
+7,0,508,10,155,205,130,1,15
+0,206,128,109,115,158,95,94,119
+1,92,196,192,151,158,57,118,60
+2,208,133,65,3,134,186,113,182
+3,110,27,41,153,130,196,127,240
+4,23,45,340,1,129,242,3,241
+5,3,0,208,122,0,30,160,501
+6,0,483,380,114,17,12,4,14
+7,0,512,7,159,187,152,1,6
+0,186,134,102,132,151,97,99,123
+1,95,187,183,148,166,67,129,49
+2,204,112,78,4,145,185,113,183
+3,113,37,35,165,134,188,123,229
+4,28,43,347,2,114,251,6,233
+5,4,0,189,128,0,35,165,503
+6,0,487,385,106,14,14,3,15
+7,0,510,5,163,199,126,1,20
+0,192,129,101,124,145,102,120,111
+1,92,171,188,154,159,70,122,68
+2,197,121,76,2,130,183,126,189
+3,114,43,29,168,125,197,110,238
+4,22,53,340,3,130,233,2,241
+5,12,1,174,133,2,25,174,503
+6,1,481,362,124,20,9,1,26
+7,0,508,8,178,186,128,1,15
+0,194,130,109,135,150,93,90,123
+1,103,191,173,162,173,55,113,54
+2,210,144,72,3,134,195,97,169
+3,112,25,32,182,145,169,128,231
+4,21,38,323,2,132,234,2,272
+5,1,0,199,123,0,26,169,506
+6,0,492,393,100,12,10,2,15
+7,1,512,5,146,218,132,0,10
+0,193,117,101,144,129,104,117,119
+1,88,184,183,168,159,56,128,58
+2,181,137,79,1,160,190,112,164
+3,117,58,38,202,138,154,103,214
+4,21,71,305,3,135,257,3,229
+5,4,0,172,148,1,40,153,506
+6,1,467,363,121,31,22,4,15
+7,0,508,9,183,165,123,3,33
+0,205,123,118,107,141,114,96,120
+1,100,178,169,173,155,73,118,58
+2,201,130,75,2,144,181,132,159
+3,102,41,41,194,152,165,110,219
+4,23,60,326,1,127,245,4,238
+5,3,0,199,139,1,25,153,504
+6,1,481,375,115,20,11,2,19
+7,0,509,15,162,188,134,1,15
+0,182,144,108,110,144,110,100,126
+1,97,198,187,149,167,71,97,58
+2,216,114,70,2,134,188,114,186
+3,109,28,33,167,151,185,129,222
+4,18,44,339,0,116,240,5,262
+5,3,1,195,136,2,21,164,502
+6,0,492,395,90,11,14,3,19
+7,0,512,7,172,196,124,1,12
+0,190,140,97,134,159,102,84,118
+1,88,150,191,163,161,77,120,74
+2,200,124,80,3,140,180,132,165
+3,123,34,38,165,127,168,138,231
+4,23,54,327,2,139,228,3,248
+5,2,0,208,129,0,22,157,506
+6,0,476,379,108,23,16,5,17
+7,0,511,15,181,181,122,1,13
+0,215,114,102,126,141,108,101,117
+1,93,160,170,167,171,71,138,54
+2,195,132,80,2,138,182,102,193
+3,115,45,27,184,138,181,114,220
+4,17,54,334,0,121,264,10,224
+5,4,1,184,141,0,28,159,507
+6,1,481,364,123,21,13,2,19
+7,1,512,14,184,174,126,0,13
+0,195,128,99,125,162,98,98,119
+1,97,162,176,171,169,54,139,56
+2,195,121,77,2,139,180,136,174
+3,112,53,39,200,129,165,118,208
+4,34,60,322,3,99,247,2,257
+5,4,2,183,149,1,25,164,496
+6,0,478,370,122,20,13,2,19
+7,0,512,11,163,186,135,0,17
+0,199,129,118,132,147,92,94,113
+1,95,182,173,146,158,77,127,66
+2,201,126,83,2,148,180,118,166
+3,112,54,32,179,140,169,111,227
+4,25,68,311,1,133,246,3,237
+5,10,0,175,137,0,31,171,500
+6,6,473,364,128,21,10,5,17
+7,0,509,11,153,185,136,3,27
+0,187,124,103,111,168,97,117,117
+1,85,141,174,209,164,70,129,52
+2,183,125,62,3,166,179,130,176
+3,118,80,41,192,123,166,107,197
+4,30,92,311,2,110,240,5,234
+5,6,1,191,114,1,41,163,507
+6,2,465,356,129,29,11,5,27
+7,2,510,17,167,165,135,1,27
+0,179,125,105,139,143,91,109,133
+1,92,171,181,163,168,67,119,63
+2,197,135,75,4,146,170,130,167
+3,114,42,25,183,135,172,112,241
+4,27,59,304,2,128,258,3,243
+5,4,1,196,126,2,19,169,507
+6,1,483,373,102,18,13,9,25
+7,0,508,5,172,191,130,0,18
+0,204,142,102,105,165,103,99,104
+1,87,168,184,147,157,77,143,61
+2,192,134,82,4,137,186,125,164
+3,123,45,44,181,134,176,100,221
+4,20,57,311,0,132,261,4,239
+5,5,0,182,137,1,31,162,506
+6,1,477,363,128,16,14,4,21
+7,0,508,16,163,167,147,1,22
+0,200,135,106,117,120,119,104,123
+1,94,194,195,172,173,56,98,42
+2,217,118,68,1,143,176,125,176
+3,105,47,33,172,140,175,125,227
+4,29,67,333,4,116,233,2,240
+5,4,1,184,143,1,31,157,503
+6,0,488,386,106,15,11,2,16
+7,1,512,6,175,195,115,0,20
+0,187,120,107,120,169,106,104,111
+1,98,188,188,161,150,72,108,59
+2,196,135,71,3,136,179,113,191
+3,121,30,39,170,133,192,117,222
+4,22,39,337,2,125,255,4,240
+5,0,0,204,141,2,28,146,503
+6,0,489,374,118,8,14,3,18
+7,0,511,15,169,173,144,1,11
+0,176,157,120,127,148,90,100,106
+1,99,185,197,165,156,74,102,46
+2,197,148,67,3,147,192,115,155
+3,137,18,30,196,154,155,121,213
+4,19,52,318,0,115,243,3,274
+5,2,0,219,131,0,27,137,508
+6,0,487,366,116,13,19,4,19
+7,1,512,6,167,207,121,2,8
+0,205,127,98,129,150,107,91,117
+1,92,174,181,162,155,69,130,61
+2,182,127,79,2,150,184,140,160
+3,125,51,34,200,121,174,111,208
+4,25,72,319,4,103,263,4,234
+5,4,0,176,122,1,43,167,511
+6,0,476,375,117,23,15,5,13
+7,1,507,5,167,187,129,4,24
+0,187,132,103,114,169,101,115,103
+1,91,184,183,149,165,68,108,76
+2,200,149,84,2,122,188,127,152
+3,120,20,40,175,145,168,123,233
+4,25,33,332,0,160,233,4,237
+5,2,0,182,160,1,21,158,500
+6,1,490,370,115,11,12,6,19
+7,0,512,9,152,199,141,0,11
+0,175,127,110,145,155,107,73,132
+1,95,168,176,171,168,67,120,59
+2,188,126,76,3,170,163,130,168
+3,101,51,27,207,142,164,112,220
+4,28,70,328,1,96,257,3,241
+5,6,0,187,116,1,37,172,505
+6,0,470,380,111,28,16,3,16
+7,0,512,14,162,194,115,1,26
+0,194,134,113,119,157,89,98,120
+1,93,186,184,141,161,71,126,62
+2,204,140,84,3,135,181,115,162
+3,118,28,35,165,148,179,116,235
+4,18,53,329,2,129,244,4,245
+5,4,0,190,140,0,22,160,508
+6,0,490,383,100,12,16,3,20
+7,0,512,6,165,192,138,0,11
+0,190,125,119,129,148,110,83,120
+1,100,166,185,159,174,72,110,58
+2,205,141,78,1,134,168,142,155
+3,107,28,31,191,158,170,125,214
+4,21,51,321,1,119,246,7,258
+5,3,0,183,142,1,24,165,506
+6,0,485,387,110,15,10,3,14
+7,0,512,11,169,209,110,0,13
+0,198,113,110,145,149,81,107,121
+1,84,180,191,152,167,61,132,57
+2,203,106,59,4,132,189,123,208
+3,108,37,28,154,130,206,110,251
+4,27,48,340,1,115,238,5,250
+5,3,0,185,123,1,19,188,505
+6,0,487,412,84,10,17,4,10
+7,0,511,7,192,174,130,2,8
+0,190,121,111,143,141,98,102,118
+1,93,144,175,183,176,62,120,71
+2,200,116,75,1,169,154,138,171
+3,102,56,28,187,140,183,106,222
+4,30,72,321,3,113,246,4,235
+5,9,0,183,117,0,43,163,509
+6,0,479,383,110,21,11,2,18
+7,2,510,7,184,172,124,1,24
+0,209,129,100,113,161,105,88,119
+1,90,172,155,175,164,67,137,64
+2,205,116,75,1,154,179,128,166
+3,116,52,29,199,119,182,119,208
+4,23,78,316,2,116,247,9,233
+5,4,1,173,138,1,37,161,509
+6,1,472,377,120,24,7,6,17
+7,0,512,10,169,191,126,1,15
+0,172,140,109,144,148,86,99,126
+1,102,157,196,164,163,77,104,61
+2,200,136,68,1,146,190,116,167
+3,127,46,43,185,152,149,119,203
+4,22,55,318,5,138,245,5,236
+5,10,0,198,126,1,27,160,502
+6,0,485,368,116,16,12,0,27
+7,0,510,9,149,194,140,1,21
+0,198,113,110,145,155,73,118,112
+1,93,166,181,164,165,67,129,59
+2,198,141,83,2,127,177,115,181
+3,106,32,30,182,134,197,110,233
+4,27,44,335,3,105,255,2,253
+5,7,1,180,130,1,22,180,503
+6,0,493,396,97,11,11,2,14
+7,1,512,8,155,184,152,0,12
+0,168,121,125,134,156,104,102,114
+1,89,167,184,152,168,69,127,68
+2,194,145,73,2,137,183,128,162
+3,118,32,44,177,147,170,109,227
+4,24,54,344,0,116,248,2,236
+5,4,0,182,135,0,25,172,506
+6,0,480,383,109,15,11,4,22
+7,0,509,12,160,190,131,0,22
+0,204,114,108,141,153,89,102,113
+1,96,153,182,170,154,66,143,60
+2,190,134,80,4,157,181,122,156
+3,98,59,35,192,141,170,113,216
+4,20,74,301,2,121,256,3,247
+5,4,2,190,118,0,44,160,506
+6,2,478,368,121,20,9,5,21
+7,1,509,6,155,195,129,1,28
+0,198,135,106,139,143,91,96,116
+1,89,177,189,170,158,66,116,59
+2,211,112,72,2,142,187,129,169
+3,119,42,38,191,134,163,120,217
+4,18,66,331,4,132,226,5,242
+5,4,1,201,134,3,26,146,509
+6,0,481,374,116,19,13,2,19
+7,0,511,11,175,194,117,2,14
+0,180,142,114,111,141,109,111,116
+1,96,188,169,156,165,71,129,50
+2,192,116,83,0,151,177,129,176
+3,97,56,36,175,145,165,120,230
+4,25,51,319,7,123,263,3,233
+5,13,0,195,126,0,31,154,505
+6,0,483,382,105,16,9,9,20
+7,0,507,12,148,177,150,1,29
+0,208,130,100,134,132,103,103,114
+1,90,179,183,175,168,64,124,41
+2,210,112,66,3,140,204,106,183
+3,118,35,32,175,133,188,126,217
+4,19,53,355,1,118,234,2,242
+5,6,0,193,127,0,27,162,509
+6,1,483,382,107,19,14,5,13
+7,2,510,8,159,197,131,0,17
+0,223,99,111,137,138,97,93,126
+1,103,164,177,159,171,66,126,58
+2,209,137,81,0,158,157,121,161
+3,108,53,30,198,149,169,108,209
+4,15,76,307,2,125,238,2,259
+5,6,0,185,142,0,29,158,504
+6,0,480,366,126,21,11,2,18
+7,1,510,8,171,208,107,3,16
+0,192,132,107,115,157,98,96,127
+1,99,186,185,147,160,81,102,64
+2,209,140,79,2,126,191,102,175
+3,132,28,32,165,147,176,124,220
+4,27,48,329,1,130,231,2,256
+5,2,1,206,136,0,25,147,507
+6,0,492,370,117,10,11,7,17
+7,0,512,7,166,200,130,0,9
+0,183,143,109,134,142,75,101,137
+1,99,167,200,137,168,81,112,60
+2,206,147,79,1,140,184,104,163
+3,141,33,39,169,144,164,124,210
+4,19,51,327,1,135,245,2,244
+5,4,0,204,131,0,18,161,506
+6,0,486,383,106,13,15,3,18
+7,0,511,6,162,195,138,0,12
+0,194,140,103,139,130,99,102,117
+1,89,189,205,137,174,56,124,50
+2,217,134,73,2,113,197,109,179
+3,117,26,39,164,144,181,115,238
+4,22,38,330,0,140,225,9,260
+5,3,0,186,146,0,22,162,505
+6,0,488,384,106,14,12,3,17
+7,0,510,11,161,190,138,0,14
+0,188,130,107,123,160,103,108,105
+1,93,168,192,156,162,77,116,60
+2,183,142,78,0,132,193,121,175
+3,141,37,41,174,149,168,101,213
+4,16,55,333,2,111,269,3,235
+5,3,0,196,144,4,30,144,503
+6,0,483,362,123,21,8,4,23
+7,0,509,15,148,175,155,1,21
+0,175,153,122,117,156,96,110,95
+1,88,162,170,158,165,86,128,67
+2,184,128,68,0,155,189,127,173
+3,122,46,37,184,146,154,100,235
+4,31,67,309,2,123,265,4,223
+5,3,0,196,110,0,32,175,508
+6,1,478,374,121,20,8,4,18
+7,0,509,12,164,181,137,1,20
+0,208,121,107,130,145,117,72,124
+1,103,180,179,162,163,57,120,60
+2,210,131,81,2,153,175,121,151
+3,115,39,46,182,142,167,116,217
+4,18,58,326,4,133,235,3,247
+5,3,1,201,141,0,22,152,504
+6,0,482,382,104,19,11,5,21
+7,1,508,17,154,185,139,0,20
+0,188,107,109,127,172,124,93,104
+1,98,161,185,150,160,68,127,75
+2,194,137,88,1,146,174,126,158
+3,126,45,41,194,136,158,114,210
+4,27,62,321,1,127,266,3,217
+5,5,0,189,137,0,34,160,499
+6,0,475,375,110,22,14,3,25
+7,0,509,4,161,181,148,1,20
+0,210,121,113,127,134,92,103,124
+1,91,180,186,151,162,80,114,60
+2,202,130,73,3,141,175,120,180
+3,106,26,38,174,143,178,120,239
+4,15,38,338,1,137,238,6,251
+5,5,1,189,132,0,19,178,500
+6,1,487,404,93,16,8,3,12
+7,0,511,13,160,200,128,1,11
+0,215,119,108,114,174,98,93,103
+1,95,175,174,181,160,64,103,72
+2,201,135,66,2,143,185,126,166
+3,125,36,41,179,144,183,112,204
+4,31,58,308,0,152,244,4,227
+5,2,1,204,129,0,27,154,507
+6,0,480,379,111,22,13,3,16
+7,0,512,15,160,183,146,1,7
+0,184,129,109,135,136,102,105,124
+1,95,173,193,157,173,68,113,52
+2,195,144,67,4,137,186,115,176
+3,112,40,33,172,143,180,121,223
+4,19,50,327,0,124,243,3,258
+5,5,0,195,132,1,22,162,507
+6,1,486,389,105,15,10,3,15
+7,2,511,5,151,214,124,0,17
+0,214,124,99,105,124,115,115,128
+1,95,166,186,162,170,69,124,52
+2,209,124,90,1,133,175,134,158
+3,121,57,39,188,132,160,115,212
+4,11,74,324,0,129,244,3,239
+5,7,0,167,147,0,40,158,505
+6,0,477,368,116,21,17,2,23
+7,1,511,14,152,174,152,1,19
+0,206,135,100,122,152,105,102,102
+1,94,158,184,187,145,68,124,64
+2,173,135,91,2,171,175,126,151
+3,97,75,39,201,130,170,104,208
+4,21,81,314,7,114,247,3,237
+5,15,1,180,130,1,37,155,505
+6,6,473,373,118,18,15,1,20
+7,2,504,13,171,188,107,0,39
+0,178,138,112,143,138,92,102,121
+1,92,192,174,154,174,67,118,53
+2,202,138,66,1,127,189,118,183
+3,122,27,41,167,140,189,108,230
+4,29,36,350,2,111,242,3,251
+5,9,0,174,137,0,23,178,503
+6,0,492,388,107,9,12,1,15
+7,0,511,9,150,199,138,0,17
+0,193,136,107,120,152,100,111,105
+1,91,161,190,161,165,70,118,68
+2,195,124,94,3,157,163,137,151
+3,115,67,41,188,132,169,101,211
+4,20,78,313,4,138,246,2,223
+5,9,0,186,127,2,38,154,508
+6,3,472,373,126,19,13,4,14
+7,1,508,8,160,178,125,2,42
+0,174,125,114,115,178,111,101,106
+1,97,161,169,200,157,76,108,56
+2,194,129,72,1,137,180,131,180
+3,110,24,30,183,150,197,102,228
+4,30,51,339,0,103,251,5,245
+5,1,0,197,117,0,27,174,508
+6,0,487,384,109,17,8,2,17
+7,1,512,10,164,194,127,1,15
+0,211,116,100,118,148,105,101,125
+1,96,175,168,161,172,66,124,62
+2,211,109,86,0,142,176,126,174
+3,119,31,29,159,124,206,116,240
+4,23,50,346,0,109,243,6,247
+5,0,0,190,141,0,21,166,506
+6,0,483,378,110,17,12,3,21
+7,0,512,9,163,207,121,0,12
+0,156,150,102,114,185,88,100,129
+1,92,163,199,158,156,77,112,67
+2,198,138,72,3,130,184,128,171
+3,112,29,28,180,144,190,123,218
+4,36,39,332,0,115,254,3,245
+5,9,0,193,126,0,18,174,504
+6,0,488,382,108,14,12,1,19
+7,1,512,9,162,184,144,1,11
+0,187,142,117,114,148,109,99,108
+1,99,198,184,154,156,66,107,60
+2,200,124,83,1,138,203,103,172
+3,128,43,42,168,151,159,109,224
+4,23,60,330,3,125,245,4,234
+5,2,1,200,129,1,34,154,503
+6,0,487,381,111,20,11,2,12
+7,0,508,6,152,189,150,0,19
+0,182,138,103,124,149,104,99,125
+1,105,178,191,139,170,65,121,55
+2,205,123,86,2,131,174,136,167
+3,115,39,27,186,141,180,112,224
+4,14,53,337,2,123,238,7,250
+5,5,0,171,144,1,24,173,506
+6,0,481,369,119,20,12,4,19
+7,1,511,7,179,190,122,2,12
+0,177,139,110,124,158,104,107,105
+1,90,173,179,163,166,75,113,65
+2,190,144,65,0,136,190,108,191
+3,129,40,40,171,139,176,104,225
+4,36,53,315,1,122,247,2,248
+5,3,0,172,127,0,36,180,506
+6,0,483,386,110,19,12,6,8
+7,0,512,9,164,173,149,1,16
+0,182,124,110,138,138,110,91,131
+1,97,184,177,135,179,73,129,50
+2,208,124,70,4,147,185,108,178
+3,109,26,34,159,153,184,120,239
+4,31,35,329,0,121,265,2,241
+5,5,0,196,138,0,25,154,506
+6,0,491,380,113,14,10,1,15
+7,0,512,9,185,180,126,1,11
diff --git a/router-output.log.svg b/router-output.log.svg
new file mode 100644
index 0000000..8e93d75
--- /dev/null
+++ b/router-output.log.svg
@@ -0,0 +1,1626 @@
+
+
+
diff --git a/visualize-router-output.ipynb b/visualize-router-output.ipynb
new file mode 100644
index 0000000..f3125d3
--- /dev/null
+++ b/visualize-router-output.ipynb
@@ -0,0 +1,98300 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
| \n", + " | step | \n", + "layer | \n", + "e0 | \n", + "e1 | \n", + "e2 | \n", + "e3 | \n", + "e4 | \n", + "e5 | \n", + "e6 | \n", + "e7 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "121 | \n", + "128 | \n", + "126 | \n", + "101 | \n", + "131 | \n", + "110 | \n", + "190 | \n", + "117 | \n", + "
| 1 | \n", + "1 | \n", + "1 | \n", + "102 | \n", + "196 | \n", + "142 | \n", + "127 | \n", + "192 | \n", + "74 | \n", + "164 | \n", + "27 | \n", + "
| 2 | \n", + "2 | \n", + "2 | \n", + "242 | \n", + "149 | \n", + "11 | \n", + "15 | \n", + "190 | \n", + "215 | \n", + "124 | \n", + "78 | \n", + "
| 3 | \n", + "3 | \n", + "3 | \n", + "134 | \n", + "48 | \n", + "10 | \n", + "145 | \n", + "165 | \n", + "240 | \n", + "53 | \n", + "229 | \n", + "
| 4 | \n", + "4 | \n", + "4 | \n", + "22 | \n", + "37 | \n", + "369 | \n", + "3 | \n", + "196 | \n", + "120 | \n", + "14 | \n", + "263 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 307552 | \n", + "307552 | \n", + "3 | \n", + "105 | \n", + "42 | \n", + "42 | \n", + "149 | \n", + "149 | \n", + "190 | \n", + "124 | \n", + "223 | \n", + "
| 307553 | \n", + "307553 | \n", + "4 | \n", + "36 | \n", + "57 | \n", + "342 | \n", + "0 | \n", + "72 | \n", + "270 | \n", + "1 | \n", + "246 | \n", + "
| 307554 | \n", + "307554 | \n", + "5 | \n", + "7 | \n", + "0 | \n", + "200 | \n", + "113 | \n", + "1 | \n", + "23 | \n", + "177 | \n", + "503 | \n", + "
| 307555 | \n", + "307555 | \n", + "6 | \n", + "0 | \n", + "482 | \n", + "434 | \n", + "69 | \n", + "14 | \n", + "7 | \n", + "3 | \n", + "15 | \n", + "
| 307556 | \n", + "307556 | \n", + "7 | \n", + "3 | \n", + "512 | \n", + "15 | \n", + "161 | \n", + "188 | \n", + "129 | \n", + "1 | \n", + "15 | \n", + "
307557 rows × 10 columns
\n", + "| \n", + " | e0 | \n", + "e1 | \n", + "e2 | \n", + "e3 | \n", + "e4 | \n", + "e5 | \n", + "e6 | \n", + "e7 | \n", + "
|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "156.633424 | \n", + "142.795032 | \n", + "113.844037 | \n", + "123.804682 | \n", + "147.189934 | \n", + "113.391364 | \n", + "118.411419 | \n", + "107.930108 | \n", + "
| 1 | \n", + "94.317519 | \n", + "175.356639 | \n", + "177.955001 | \n", + "152.263962 | \n", + "174.626583 | \n", + "73.389309 | \n", + "126.856496 | \n", + "49.234491 | \n", + "
| 2 | \n", + "179.010274 | \n", + "144.477253 | \n", + "55.837014 | \n", + "25.756795 | \n", + "144.920042 | \n", + "189.987515 | \n", + "133.595474 | \n", + "150.415633 | \n", + "
| 3 | \n", + "98.467031 | \n", + "49.257849 | \n", + "43.154793 | \n", + "195.374015 | \n", + "138.539134 | \n", + "184.365119 | \n", + "117.224477 | \n", + "197.617584 | \n", + "
| 4 | \n", + "47.293016 | \n", + "56.561139 | \n", + "295.924776 | \n", + "10.543790 | \n", + "102.232982 | \n", + "243.825543 | \n", + "8.242190 | \n", + "259.376564 | \n", + "
| 5 | \n", + "7.666424 | \n", + "4.740870 | \n", + "189.410753 | \n", + "139.315498 | \n", + "19.025648 | \n", + "22.297003 | \n", + "145.389788 | \n", + "496.154016 | \n", + "
| 6 | \n", + "3.141010 | \n", + "482.742196 | \n", + "395.554235 | \n", + "83.697508 | \n", + "12.304521 | \n", + "19.028691 | \n", + "9.870175 | \n", + "17.661664 | \n", + "
| 7 | \n", + "13.630866 | \n", + "504.017324 | \n", + "15.960800 | \n", + "300.170976 | \n", + "100.900791 | \n", + "68.327047 | \n", + "5.828842 | \n", + "15.163354 | \n", + "
| \n", + " | index | \n", + "step | \n", + "layer | \n", + "e0 | \n", + "e1 | \n", + "e2 | \n", + "e3 | \n", + "e4 | \n", + "e5 | \n", + "e6 | \n", + "e7 | \n", + "iter | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "121 | \n", + "128 | \n", + "126 | \n", + "101 | \n", + "131 | \n", + "110 | \n", + "190 | \n", + "117 | \n", + "0 | \n", + "
| 1 | \n", + "1 | \n", + "8 | \n", + "0 | \n", + "115 | \n", + "140 | \n", + "126 | \n", + "111 | \n", + "121 | \n", + "109 | \n", + "174 | \n", + "128 | \n", + "1 | \n", + "
| 2 | \n", + "2 | \n", + "16 | \n", + "0 | \n", + "143 | \n", + "117 | \n", + "110 | \n", + "99 | \n", + "134 | \n", + "123 | \n", + "170 | \n", + "128 | \n", + "2 | \n", + "
| 3 | \n", + "3 | \n", + "24 | \n", + "0 | \n", + "107 | \n", + "164 | \n", + "123 | \n", + "106 | \n", + "140 | \n", + "89 | \n", + "179 | \n", + "116 | \n", + "3 | \n", + "
| 4 | \n", + "4 | \n", + "32 | \n", + "0 | \n", + "123 | \n", + "129 | \n", + "120 | \n", + "99 | \n", + "129 | \n", + "96 | \n", + "192 | \n", + "136 | \n", + "4 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 38439 | \n", + "38439 | \n", + "307524 | \n", + "7 | \n", + "7 | \n", + "512 | \n", + "15 | \n", + "143 | \n", + "175 | \n", + "142 | \n", + "1 | \n", + "29 | \n", + "38439 | \n", + "
| 38440 | \n", + "38440 | \n", + "307532 | \n", + "7 | \n", + "9 | \n", + "510 | \n", + "14 | \n", + "164 | \n", + "177 | \n", + "107 | \n", + "1 | \n", + "42 | \n", + "38440 | \n", + "
| 38441 | \n", + "38441 | \n", + "307540 | \n", + "7 | \n", + "7 | \n", + "511 | \n", + "19 | \n", + "154 | \n", + "178 | \n", + "129 | \n", + "0 | \n", + "26 | \n", + "38441 | \n", + "
| 38442 | \n", + "38442 | \n", + "307548 | \n", + "7 | \n", + "4 | \n", + "512 | \n", + "16 | \n", + "126 | \n", + "208 | \n", + "139 | \n", + "0 | \n", + "19 | \n", + "38442 | \n", + "
| 38443 | \n", + "38443 | \n", + "307556 | \n", + "7 | \n", + "3 | \n", + "512 | \n", + "15 | \n", + "161 | \n", + "188 | \n", + "129 | \n", + "1 | \n", + "15 | \n", + "38443 | \n", + "
307557 rows × 12 columns
\n", + "