diff --git a/pdm.lock b/pdm.lock
index d5f3208..8053296 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -5,7 +5,7 @@
groups = ["default", "notebooks", "trials"]
strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1"
-content_hash = "sha256:7574154c6728ede3eaf76a8b1a3b5d4339fcc8f2dc8c41042401004b6583e151"
+content_hash = "sha256:8781981bde2786c60273cd73599f4ab6a388d0b435484d5ba0afa0656723dd98"
[[package]]
name = "annotated-types"
@@ -432,6 +432,19 @@ files = [
{file = "dash_core_components-2.0.0.tar.gz", hash = "sha256:c6733874af975e552f95a1398a16c2ee7df14ce43fa60bb3718a3c6e0b63ffee"},
]
+[[package]]
+name = "dash-cytoscape"
+version = "1.0.1"
+requires_python = ">=3.8"
+summary = "A Component Library for Dash aimed at facilitating network visualization in Python, wrapped around Cytoscape.js"
+groups = ["trials"]
+dependencies = [
+ "dash",
+]
+files = [
+ {file = "dash_cytoscape-1.0.1.tar.gz", hash = "sha256:1bcd1587b2d8b432945585e2295e76393d3eb829f606c198693cd2b45bea6adc"},
+]
+
[[package]]
name = "dash-html-components"
version = "2.0.0"
diff --git a/pyproject.toml b/pyproject.toml
index fd2ab1c..e092c6f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,6 +33,7 @@ notebooks = [
trials = [
"plotly>=5.22.0",
"dash>=2.17.0",
+ "dash-cytoscape>=1.0.1",
]
[tool.ruff]
diff --git a/scripts/analyse_dataset.py b/scripts/analyse_dataset.py
index 766d7be..17dfaf6 100644
--- a/scripts/analyse_dataset.py
+++ b/scripts/analyse_dataset.py
@@ -28,6 +28,8 @@ from lang_main.pipelines.predefined import (
)
from lang_main.types import (
ObjectID,
+ PandasIndex,
+ SpacyDoc,
TimelineCandidates,
)
from pandas import DataFrame, Series
@@ -37,7 +39,7 @@ from pandas import DataFrame, Series
def run_preprocessing() -> DataFrame:
create_saving_folder(
saving_path_folder=SAVE_PATH_FOLDER,
- overwrite_existing=True,
+ overwrite_existing=False,
)
# run pipelines
ret = typing.cast(
@@ -56,15 +58,16 @@ def run_preprocessing() -> DataFrame:
def run_token_analysis(
preprocessed_data: DataFrame,
-) -> TokenGraph:
+) -> tuple[TokenGraph, dict[PandasIndex, SpacyDoc]]:
# build token graph
- (tk_graph,) = typing.cast(
- tuple[TokenGraph], pipe_token_analysis.run(starting_values=(preprocessed_data,))
+ (tk_graph, docs_mapping) = typing.cast(
+ tuple[TokenGraph, dict[PandasIndex, SpacyDoc]],
+ pipe_token_analysis.run(starting_values=(preprocessed_data,)),
)
tk_graph.save_graph(SAVE_PATH_FOLDER, directed=False)
tk_graph.to_pickle(SAVE_PATH_FOLDER, filename=f'{pipe_token_analysis.name}-TokenGraph')
- return tk_graph
+ return tk_graph, docs_mapping
def run_graph_postprocessing(
@@ -127,9 +130,9 @@ def main() -> None:
'Preprocessing step skipped. Token analysis cannot be performed.'
)
preprocessed_data_trunc = typing.cast(
- DataFrame, preprocessed_data[['entry', 'num_occur']].copy()
+ DataFrame, preprocessed_data[['batched_idxs', 'entry', 'num_occur']].copy()
) # type: ignore
- tk_graph = run_token_analysis(preprocessed_data_trunc)
+ tk_graph, docs_mapping = run_token_analysis(preprocessed_data_trunc)
elif not SKIP_TOKEN_ANALYSIS:
# !! hardcoded result filenames
# whole graph
diff --git a/test-notebooks/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl b/scripts/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl
similarity index 100%
rename from test-notebooks/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl
rename to scripts/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl
diff --git a/test-notebooks/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl b/scripts/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
similarity index 100%
rename from test-notebooks/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
rename to scripts/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
diff --git a/test-notebooks/dashboard/app.py b/scripts/dashboard/app.py
similarity index 90%
rename from test-notebooks/dashboard/app.py
rename to scripts/dashboard/app.py
index 21ae693..4a977b6 100644
--- a/test-notebooks/dashboard/app.py
+++ b/scripts/dashboard/app.py
@@ -16,7 +16,6 @@ from dash import (
dcc,
html,
)
-from lang_main import CALLER_PATH
from lang_main.io import load_pickle
from lang_main.types import ObjectID, TimelineCandidates
from pandas import DataFrame
@@ -24,12 +23,8 @@ from pandas import DataFrame
# df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')
# ** data
-# p_df = Path(r'.\test-notebooks\dashboard\Pipe-TargetFeature_Step-3_remove_NA.pkl')
-p_df = CALLER_PATH.joinpath('./Pipe-TargetFeature_Step-3_remove_NA.pkl')
-# p_tl = Path(
-# r'.\test-notebooks\dashboard\Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl'
-# )
-p_tl = CALLER_PATH.joinpath('./Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl')
+p_df = Path(r'./Pipe-TargetFeature_Step-3_remove_NA.pkl').resolve()
+p_tl = Path(r'/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl').resolve()
ret = cast(DataFrame, load_pickle(p_df))
data = ret[0]
ret = cast(tuple[TimelineCandidates, dict[ObjectID, str]], load_pickle(p_tl))
@@ -133,7 +128,7 @@ def update_timeline(index, obj_id):
cands_obj_id = cands[obj_id]
cands_choice = cands_obj_id[int(index) - 1]
# data
- df = data.loc[list(cands_choice)].sort_index()
+ df = data.loc[list(cands_choice)].sort_index() # type: ignore
# figure
fig = px.line(
data_frame=df,
@@ -164,7 +159,7 @@ def update_table_candidates(index, obj_id):
cands_obj_id = cands[obj_id]
cands_choice = cands_obj_id[int(index) - 1]
# data
- df = data.loc[list(cands_choice)].sort_index()
+ df = data.loc[list(cands_choice)].sort_index() # type: ignore
df = df.filter(items=table_feats, axis=1).sort_values(
by='ErstellungsDatum', ascending=True
)
diff --git a/test-notebooks/dashboard/archive/data.pkl b/scripts/dashboard/archive/data.pkl
similarity index 100%
rename from test-notebooks/dashboard/archive/data.pkl
rename to scripts/dashboard/archive/data.pkl
diff --git a/test-notebooks/dashboard/archive/map_candidates.pkl b/scripts/dashboard/archive/map_candidates.pkl
similarity index 100%
rename from test-notebooks/dashboard/archive/map_candidates.pkl
rename to scripts/dashboard/archive/map_candidates.pkl
diff --git a/test-notebooks/dashboard/archive/map_texts.pkl b/scripts/dashboard/archive/map_texts.pkl
similarity index 100%
rename from test-notebooks/dashboard/archive/map_texts.pkl
rename to scripts/dashboard/archive/map_texts.pkl
diff --git a/scripts/dashboard/cyto.py b/scripts/dashboard/cyto.py
new file mode 100644
index 0000000..919655b
--- /dev/null
+++ b/scripts/dashboard/cyto.py
@@ -0,0 +1,203 @@
+import time
+import webbrowser
+from pathlib import Path
+from threading import Thread
+from typing import cast
+
+import dash_cytoscape as cyto
+import lang_main.io
+from dash import Dash, Input, Output, State, dcc, html
+from lang_main.analysis import graphs
+
+target = '../results/test_20240529/Pipe-Token_Analysis_Step-1_build_token_graph.pkl'
+p = Path(target).resolve()
+ret = lang_main.io.load_pickle(p)
+tk_graph = cast(graphs.TokenGraph, ret[0])
+tk_graph_filtered = tk_graph.filter_by_edge_weight(150)
+tk_graph_filtered = tk_graph_filtered.filter_by_node_degree(1)
+cyto_data, weight_data = graphs.convert_graph_to_cytoscape(tk_graph_filtered)
+
+MIN_WEIGHT = weight_data['min']
+MAX_WEIGHT = weight_data['max']
+
+
+cyto.load_extra_layouts()
+app = Dash(__name__)
+
+my_stylesheet = [
+ # Group selectors
+ {
+ 'selector': 'node',
+ 'style': {
+ 'shape': 'circle',
+ 'content': 'data(label)',
+ 'background-color': '#B10DC9',
+ 'border-width': 2,
+ 'border-color': 'black',
+ 'border-opacity': 1,
+ 'opacity': 1,
+ 'color': 'black',
+ 'text-opacity': 1,
+ 'font-size': 12,
+ 'z-index': 9999,
+ },
+ },
+ {
+ 'selector': 'edge',
+ 'style': {
+ 'width': 2,
+ 'curve-style': 'bezier',
+ 'line-color': 'grey',
+ 'line-style': 'solid',
+ 'line-opacity': 1,
+ },
+ },
+ # Class selectors
+ # {'selector': '.red', 'style': {'background-color': 'red', 'line-color': 'red'}},
+ # {'selector': '.triangle', 'style': {'shape': 'triangle'}},
+]
+
+app.layout = html.Div(
+ [
+ html.Button('Reset', id='bt-reset'),
+ dcc.Dropdown(
+ id='layout_choice_internal',
+ options=[
+ 'random',
+ 'grid',
+ 'circle',
+ 'concentric',
+ 'breadthfirst',
+ 'cose',
+ ],
+ value='cose',
+ clearable=False,
+ ),
+ dcc.Dropdown(
+ id='layout_choice_external',
+ options=[
+ 'cose-bilkent',
+ 'cola',
+ 'euler',
+ 'spread',
+ 'dagre',
+ 'klay',
+ ],
+ clearable=False,
+ ),
+ dcc.RangeSlider(
+ id='weight_slider',
+ min=MIN_WEIGHT,
+ max=MAX_WEIGHT,
+ step=1000,
+ ),
+ cyto.Cytoscape(
+ id='cytoscape-graph',
+ layout={'name': 'cose'},
+ style={'width': '100%', 'height': '600px'},
+ stylesheet=my_stylesheet,
+ elements=cyto_data,
+ zoom=1,
+ ),
+ ]
+)
+
+
+@app.callback(
+ Output('cytoscape-graph', 'layout', allow_duplicate=True),
+ Input('layout_choice_internal', 'value'),
+ prevent_initial_call=True,
+)
+def update_layout_internal(layout_choice):
+ return {'name': layout_choice}
+
+
+@app.callback(
+ Output('cytoscape-graph', 'layout', allow_duplicate=True),
+ Input('layout_choice_external', 'value'),
+ prevent_initial_call=True,
+)
+def update_layout_external(layout_choice):
+ return {'name': layout_choice}
+
+
+@app.callback(
+ Output('cytoscape-graph', 'zoom'),
+ Output('cytoscape-graph', 'elements'),
+ Input('bt-reset', 'n_clicks'),
+ prevent_initial_call=True,
+)
+def reset_layout(n_clicks):
+ return (1, cyto_data)
+
+
+# @app.callback(
+# Output('cytoscape-graph', 'stylesheet'),
+# Input('weight_slider', 'value'),
+# State('cytoscape-graph', 'stylesheet'),
+# prevent_initial_call=True,
+# )
+# def select_weight(range_chosen, stylesheet):
+# min_weight, max_weight = range_chosen
+# new_stylesheet = stylesheet.copy()
+# new_stylesheet.append(
+# {
+# 'selector': f'[weight >= {min_weight}]',
+# 'style': {'line-color': 'blue', 'line-style': 'dashed'},
+# }
+# )
+# new_stylesheet.append(
+# {
+# 'selector': f'[weight <= {max_weight}]',
+# 'style': {'line-color': 'blue', 'line-style': 'dashed'},
+# }
+# )
+# return new_stylesheet
+
+
+# app.layout = html.Div(
+# [
+# cyto.Cytoscape(
+# id='cytoscape-two-nodes',
+# layout={'name': 'preset'},
+# style={'width': '100%', 'height': '400px'},
+# stylesheet=my_stylesheet,
+# elements=[
+# {
+# 'data': {
+# 'id': 'one',
+# 'label': 'Titel 1',
+# },
+# 'position': {'x': 75, 'y': 75},
+# 'grabbable': False,
+# #'locked': True,
+# 'classes': 'red',
+# },
+# {
+# 'data': {'id': 'two', 'label': 'Title 2'},
+# 'position': {'x': 200, 'y': 200},
+# 'classes': 'triangle',
+# },
+# {'data': {'source': 'one', 'target': 'two', 'weight': 2000}},
+# ],
+# )
+# ]
+# )
+
+
+def _start_webbrowser():
+ host = '127.0.0.1'
+ port = '8050'
+ adress = f'http://{host}:{port}/'
+ time.sleep(2)
+ webbrowser.open_new(adress)
+
+
+def main():
+ webbrowser_thread = Thread(target=_start_webbrowser, daemon=True)
+ webbrowser_thread.start()
+ app.run(debug=True)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/dashboard/cyto_2.py b/scripts/dashboard/cyto_2.py
new file mode 100644
index 0000000..7276328
--- /dev/null
+++ b/scripts/dashboard/cyto_2.py
@@ -0,0 +1,368 @@
+import json
+import os
+
+import dash
+import dash_cytoscape as cyto
+from dash import Input, Output, State, callback, dcc, html
+
+# Load extra layouts
+cyto.load_extra_layouts()
+
+
+# Display utility functions
+def _merge(a, b):
+ return dict(a, **b)
+
+
+def _omit(omitted_keys, d):
+ return {k: v for k, v in d.items() if k not in omitted_keys}
+
+
+# Custom Display Components
+def Card(children, **kwargs):
+ return html.Section(
+ children,
+ style=_merge(
+ {
+ 'padding': 20,
+ 'margin': 5,
+ 'borderRadius': 5,
+ 'border': 'thin lightgrey solid',
+ 'background-color': 'white',
+ # Remove possibility to select the text for better UX
+ 'user-select': 'none',
+ '-moz-user-select': 'none',
+ '-webkit-user-select': 'none',
+ '-ms-user-select': 'none',
+ },
+ kwargs.get('style', {}),
+ ),
+ **_omit(['style'], kwargs),
+ )
+
+
+def SectionTitle(title, size, align='center', color='#222'):
+ return html.Div(
+ style={'text-align': align, 'color': color},
+ children=dcc.Markdown('#' * size + ' ' + title),
+ )
+
+
+def NamedCard(title, size, children, **kwargs):
+ size = min(size, 6)
+ size = max(size, 1)
+
+ return html.Div([Card([SectionTitle(title, size, align='left')] + children, **kwargs)])
+
+
+def NamedSlider(name, **kwargs):
+ return html.Div(
+ style={'padding': '20px 10px 25px 4px'},
+ children=[
+ html.P(f'{name}:'),
+ html.Div(style={'margin-left': '6px'}, children=dcc.Slider(**kwargs)),
+ ],
+ )
+
+
+def NamedDropdown(name, **kwargs):
+ return html.Div(
+ style={'margin': '10px 0px'},
+ children=[
+ html.P(children=f'{name}:', style={'margin-left': '3px'}),
+ dcc.Dropdown(**kwargs),
+ ],
+ )
+
+
+def NamedRadioItems(name, **kwargs):
+ return html.Div(
+ style={'padding': '20px 10px 25px 4px'},
+ children=[html.P(children=f'{name}:'), dcc.RadioItems(**kwargs)],
+ )
+
+
+def NamedInput(name, **kwargs):
+ return html.Div(children=[html.P(children=f'{name}:'), dcc.Input(**kwargs)])
+
+
+# Utils
+def DropdownOptionsList(*args):
+ return [{'label': val.capitalize(), 'value': val} for val in args]
+
+
+asset_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'assets')
+
+app = dash.Dash(__name__, assets_folder=asset_path)
+server = app.server
+
+
+# ###################### DATA PREPROCESSING ######################
+# Load data
+with open('sample_network.txt', 'r', encoding='utf-8') as f:
+ network_data = f.read().split('\n')
+
+# We select the first 750 edges and associated nodes for an easier visualization
+edges = network_data[:750]
+nodes = set()
+
+following_node_di = {} # user id -> list of users they are following
+following_edges_di = {} # user id -> list of cy edges starting from user id
+
+followers_node_di = {} # user id -> list of followers (cy_node format)
+followers_edges_di = {} # user id -> list of cy edges ending at user id
+
+cy_edges = []
+cy_nodes = []
+
+for edge in edges:
+ if ' ' not in edge:
+ continue
+
+ source, target = edge.split(' ')
+
+ cy_edge = {'data': {'id': source + target, 'source': source, 'target': target}}
+ cy_target = {'data': {'id': target, 'label': 'User #' + str(target[-5:])}}
+ cy_source = {'data': {'id': source, 'label': 'User #' + str(source[-5:])}}
+
+ if source not in nodes:
+ nodes.add(source)
+ cy_nodes.append(cy_source)
+ if target not in nodes:
+ nodes.add(target)
+ cy_nodes.append(cy_target)
+
+ # Process dictionary of following
+ if not following_node_di.get(source):
+ following_node_di[source] = []
+ if not following_edges_di.get(source):
+ following_edges_di[source] = []
+
+ following_node_di[source].append(cy_target)
+ following_edges_di[source].append(cy_edge)
+
+ # Process dictionary of followers
+ if not followers_node_di.get(target):
+ followers_node_di[target] = []
+ if not followers_edges_di.get(target):
+ followers_edges_di[target] = []
+
+ followers_node_di[target].append(cy_source)
+ followers_edges_di[target].append(cy_edge)
+
+genesis_node = cy_nodes[0]
+genesis_node['classes'] = 'genesis'
+default_elements = [genesis_node]
+
+default_stylesheet = [
+ {'selector': 'node', 'style': {'opacity': 0.65, 'z-index': 9999}},
+ {
+ 'selector': 'edge',
+ 'style': {'curve-style': 'bezier', 'opacity': 0.45, 'z-index': 5000},
+ },
+ {'selector': '.followerNode', 'style': {'background-color': '#0074D9'}},
+ {
+ 'selector': '.followerEdge',
+ 'style': {
+ 'mid-target-arrow-color': 'blue',
+ 'mid-target-arrow-shape': 'vee',
+ 'line-color': '#0074D9',
+ },
+ },
+ {'selector': '.followingNode', 'style': {'background-color': '#FF4136'}},
+ {
+ 'selector': '.followingEdge',
+ 'style': {
+ 'mid-target-arrow-color': 'red',
+ 'mid-target-arrow-shape': 'vee',
+ 'line-color': '#FF4136',
+ },
+ },
+ {
+ 'selector': '.genesis',
+ 'style': {
+ 'background-color': '#B10DC9',
+ 'border-width': 2,
+ 'border-color': 'purple',
+ 'border-opacity': 1,
+ 'opacity': 1,
+ 'label': 'data(label)',
+ 'color': '#B10DC9',
+ 'text-opacity': 1,
+ 'font-size': 12,
+ 'z-index': 9999,
+ },
+ },
+ {
+ 'selector': ':selected',
+ 'style': {
+ 'border-width': 2,
+ 'border-color': 'black',
+ 'border-opacity': 1,
+ 'opacity': 1,
+ 'label': 'data(label)',
+ 'color': 'black',
+ 'font-size': 12,
+ 'z-index': 9999,
+ },
+ },
+]
+
+# ################################# APP LAYOUT ################################
+styles = {
+ 'json-output': {
+ 'overflow-y': 'scroll',
+ 'height': 'calc(50% - 25px)',
+ 'border': 'thin lightgrey solid',
+ },
+ 'tab': {'height': 'calc(98vh - 80px)'},
+}
+
+app.layout = html.Div(
+ [
+ html.Div(
+ className='eight columns',
+ children=[
+ cyto.Cytoscape(
+ id='cytoscape',
+ elements=default_elements,
+ stylesheet=default_stylesheet,
+ style={'height': '95vh', 'width': '100%'},
+ )
+ ],
+ ),
+ html.Div(
+ className='four columns',
+ children=[
+ dcc.Tabs(
+ id='tabs',
+ children=[
+ dcc.Tab(
+ label='Control Panel',
+ children=[
+ NamedDropdown(
+ name='Layout',
+ id='dropdown-layout',
+ options=DropdownOptionsList(
+ 'random',
+ 'grid',
+ 'circle',
+ 'concentric',
+ 'breadthfirst',
+ 'cose',
+ 'cose-bilkent',
+ 'dagre',
+ 'cola',
+ 'klay',
+ 'spread',
+ 'euler',
+ ),
+ value='grid',
+ clearable=False,
+ ),
+ NamedRadioItems(
+ name='Expand',
+ id='radio-expand',
+ options=DropdownOptionsList('followers', 'following'),
+ value='followers',
+ ),
+ ],
+ ),
+ dcc.Tab(
+ label='JSON',
+ children=[
+ html.Div(
+ style=styles['tab'],
+ children=[
+ html.P('Node Object JSON:'),
+ html.Pre(
+ id='tap-node-json-output',
+ style=styles['json-output'],
+ ),
+ html.P('Edge Object JSON:'),
+ html.Pre(
+ id='tap-edge-json-output',
+ style=styles['json-output'],
+ ),
+ ],
+ )
+ ],
+ ),
+ ],
+ ),
+ ],
+ ),
+ ]
+)
+
+
+# ############################## CALLBACKS ####################################
+@callback(Output('tap-node-json-output', 'children'), Input('cytoscape', 'tapNode'))
+def display_tap_node(data):
+ return json.dumps(data, indent=2)
+
+
+@callback(Output('tap-edge-json-output', 'children'), Input('cytoscape', 'tapEdge'))
+def display_tap_edge(data):
+ return json.dumps(data, indent=2)
+
+
+@callback(Output('cytoscape', 'layout'), Input('dropdown-layout', 'value'))
+def update_cytoscape_layout(layout):
+ return {'name': layout}
+
+
+@callback(
+ Output('cytoscape', 'elements'),
+ Input('cytoscape', 'tapNodeData'),
+ State('cytoscape', 'elements'),
+ State('radio-expand', 'value'),
+)
+def generate_elements(nodeData, elements, expansion_mode):
+ if not nodeData:
+ return default_elements
+
+ # If the node has already been expanded, we don't expand it again
+ if nodeData.get('expanded'):
+ return elements
+
+ # This retrieves the currently selected element, and tag it as expanded
+ for element in elements:
+ if nodeData['id'] == element.get('data').get('id'):
+ element['data']['expanded'] = True
+ break
+
+ if expansion_mode == 'followers':
+ followers_nodes = followers_node_di.get(nodeData['id'])
+ followers_edges = followers_edges_di.get(nodeData['id'])
+
+ if followers_nodes:
+ for node in followers_nodes:
+ node['classes'] = 'followerNode'
+ elements.extend(followers_nodes)
+
+ if followers_edges:
+ for follower_edge in followers_edges:
+ follower_edge['classes'] = 'followerEdge'
+ elements.extend(followers_edges)
+
+ elif expansion_mode == 'following':
+ following_nodes = following_node_di.get(nodeData['id'])
+ following_edges = following_edges_di.get(nodeData['id'])
+
+ if following_nodes:
+ for node in following_nodes:
+ if node['data']['id'] != genesis_node['data']['id']:
+ node['classes'] = 'followingNode'
+ elements.append(node)
+
+ if following_edges:
+ for follower_edge in following_edges:
+ follower_edge['classes'] = 'followingEdge'
+ elements.extend(following_edges)
+
+ return elements
+
+
+if __name__ == '__main__':
+ app.run_server(debug=True)
diff --git a/test-notebooks/dashboard/lang_main_config.toml b/scripts/dashboard/lang_main_config.toml
similarity index 100%
rename from test-notebooks/dashboard/lang_main_config.toml
rename to scripts/dashboard/lang_main_config.toml
diff --git a/test-notebooks/dashboard/new/Pipe-TargetFeature_Step-3_remove_NA.pkl b/scripts/dashboard/new/Pipe-TargetFeature_Step-3_remove_NA.pkl
similarity index 100%
rename from test-notebooks/dashboard/new/Pipe-TargetFeature_Step-3_remove_NA.pkl
rename to scripts/dashboard/new/Pipe-TargetFeature_Step-3_remove_NA.pkl
diff --git a/test-notebooks/dashboard/new/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl b/scripts/dashboard/new/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
similarity index 100%
rename from test-notebooks/dashboard/new/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
rename to scripts/dashboard/new/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
diff --git a/scripts/dashboard/sample_network.txt b/scripts/dashboard/sample_network.txt
new file mode 100644
index 0000000..7af6dcd
--- /dev/null
+++ b/scripts/dashboard/sample_network.txt
@@ -0,0 +1,10297 @@
+108082478497335384404 113210431006401244170
+101261243957067319422 101832196121408756348
+100257676670422660178 109335713877994755095
+111654284395316165338 107753428759636856492
+101261243957067319422 117693415411676715849
+117691391504351341685 109581870574956225297
+115739378269261680935 115109077044202722504
+105901259206530390933 109170680659355634945
+109581870574956225297 102178700954286324866
+115478779964227301239 116388668762198604003
+105207943512906810696 111538009015644508967
+115109077044202722504 111538009015644508967
+114244914082871792125 108082478497335384404
+113166718268343560861 104191514233385365427
+102034052532213921839 110318982509514011806
+100084737546039360199 101213524574984631953
+112944532473909341307 101094440579835956866
+101261243957067319422 113475277239647026452
+104612091113514802664 117421021456205115327
+106665185918564754695 112276589013569458330
+109504122343901736603 104560124403688998123
+112016425853417877466 108000051912603578599
+115739378269261680935 109170680659355634945
+115739378269261680935 112364132652438722780
+115920538018564742940 109388259228280605303
+107896527414017792767 113247423264358423892
+112339769006469685593 118207880179234484610
+107519026002586025827 113475277239647026452
+115341960624782381062 114152150496380806218
+111310990991240556038 110318982509514011806
+111538009015644508967 115017401467423642930
+105901259206530390933 112844561713780016118
+115565811010545226083 113920721823301219308
+111091089527727420853 102512310412972518336
+107896527414017792767 107519026002586025827
+106312895983244085949 116388668762198604003
+101261243957067319422 107896527414017792767
+111538009015644508967 115706830138905259568
+117377434815709898403 118357356982727825178
+105400903062771750089 113164038788726940319
+101261243957067319422 107699711897781234810
+107129852879758941909 115341960624782381062
+108832773152747423283 112844561713780016118
+109170680659355634945 109009089551467495747
+106312895983244085949 105076678694475690385
+109182513536739786206 106189723444098348646
+103100496883422151101 102034052532213921839
+107033731246200681024 117377434815709898403
+111538009015644508967 115478779964227301239
+100397511207083609950 107117483540235115863
+115064258994656104138 108255750659110762991
+105705665708025552983 109581870574956225297
+105376842241046675559 114079920283986872783
+107006059340452534782 118207880179234484610
+101213524574984631953 105076678694475690385
+114918561167106576639 116374117927631468606
+113612142759476883204 109778238062128383421
+113166718268343560861 113116318008017777871
+106026445270708973611 114821161730370452301
+108434394145774737013 104191514233385365427
+104987932455782713675 109809835379677001002
+104612091113514802664 107133948555394893679
+118418436905562612953 108771911258181286059
+109581870574956225297 110286587261352351537
+112944532473909341307 106345802537137414958
+111666959095947698908 115360979797396777969
+106224435901697064976 115478779964227301239
+101261243957067319422 103100496883422151101
+108894779805940659869 113247423264358423892
+118418436905562612953 110318982509514011806
+103100496883422151101 104450760987525660219
+112944532473909341307 108434394145774737013
+116621986644249676039 107234826207633309420
+106224435901697064976 108082478497335384404
+114918561167106576639 115963821022986200770
+109174551750397653742 106665185918564754695
+103153499873703329897 100397143564111754723
+115403621788538540544 101704103161442695877
+113047102292798770205 112063946124358686266
+115963821022986200770 108082478497335384404
+113612142759476883204 103207773865797007066
+115109077044202722504 106096957694385885466
+114152150496380806218 107626068753267217775
+104277680236688325392 115302451851587317396
+118418436905562612953 108255750659110762991
+109174551750397653742 114461903539732780109
+109780617142585395916 118156281382429939997
+115622466243011136115 109809835379677001002
+109170680659355634945 103582267051807991527
+111091089527727420853 115047896996200277508
+103207773865797007066 103012564142649561853
+113166718268343560861 104364058018116761460
+100397511207083609950 116773104421165750126
+108243648069327964538 108000051912603578599
+114991987213662121376 102425976203575211068
+115392876317176762477 116926943858449614201
+117691391504351341685 117693415411676715849
+107303107611470093265 107117483540235115863
+104618664838382110366 112878918236054024365
+111538009015644508967 109895887909967698705
+116107530889292552664 104191514233385365427
+105076678694475690385 106096957694385885466
+111975545018506506119 107234826207633309420
+114918561167106576639 114549564725160709822
+104364058018116761460 108434394145774737013
+109182513536739786206 113612142759476883204
+117921656724816772352 112290361600843238282
+118418436905562612953 103325969492772452485
+103016521073558596116 111091089527727420853
+110448924610029803960 111285782175840598932
+106345802537137414958 112944532473909341307
+116207701819773193333 115565811010545226083
+111091089527727420853 107006059340452534782
+100397511207083609950 110367546804237452889
+109809835379677001002 104364058018116761460
+104364058018116761460 114244914082871792125
+100001826804813287036 112364132652438722780
+113164038788726940319 114244914082871792125
+102512310412972518336 113612142759476883204
+105705665708025552983 109809835379677001002
+106312895983244085949 115360979797396777969
+103100496883422151101 113068441549452664746
+115360979797396777969 100262595546646927505
+102512310412972518336 116388668762198604003
+108082478497335384404 112844561713780016118
+103207773865797007066 118156281382429939997
+106345802537137414958 109182513536739786206
+108817085747440374986 110727249496967897430
+107006059340452534782 100173452066172931939
+114790574178411061829 101094440579835956866
+115920538018564742940 116927391465690022495
+113116318008017777871 115963821022986200770
+113164038788726940319 102178700954286324866
+106925005603331131101 114991987213662121376
+112852253337028739987 116374117927631468606
+115739148151601573808 109519167630731639094
+107519026002586025827 109412257237874861202
+113612142759476883204 115360979797396777969
+103016521073558596116 113247423264358423892
+107781761552417614958 104450760987525660219
+112016425853417877466 115064258994656104138
+102034052532213921839 104450760987525660219
+100871232248276491534 106822154985570317672
+115360979797396777969 107968787521028284191
+110318982509514011806 101213524574984631953
+112944532473909341307 105030465637303791249
+114244914082871792125 106224435901697064976
+100397511207083609950 105400903062771750089
+117554116577922048636 111601729473858041964
+109504122343901736603 101261243957067319422
+113166718268343560861 113612142759476883204
+106122462724662012890 112276589013569458330
+117377434815709898403 113166718268343560861
+101092351652012588236 116762461061414014956
+100871232248276491534 107626068753267217775
+116768967108862685383 100537991844787325512
+111422286077941361166 105822688186016123722
+109504122343901736603 114991987213662121376
+117550971892000156946 106695181236161584825
+115017401467423642930 104191514233385365427
+112339769006469685593 114632854492678778509
+111538009015644508967 109813896768294978296
+100397511207083609950 106312895983244085949
+102034052532213921839 115622466243011136115
+109504122343901736603 115565811010545226083
+112016425853417877466 113801236315350503728
+100001826804813287036 103207773865797007066
+106695181236161584825 104618664838382110366
+112016425853417877466 115706830138905259568
+106224435901697064976 118264184129842070900
+115739148151601573808 101629211371073711149
+108817085747440374986 116762461061414014956
+101126226710566561379 107308976571078250231
+115739378269261680935 109780617142585395916
+111091089527727420853 103100496883422151101
+114918561167106576639 103660543175586203250
+111310990991240556038 102034052532213921839
+113164038788726940319 108082478497335384404
+113164038788726940319 103716847685048716973
+103493459351957813291 108832773152747423283
+104412682128547752131 111091089527727420853
+104450760987525660219 102034052532213921839
+101213524574984631953 103325969492772452485
+118086737936443306746 108817085747440374986
+104364058018116761460 114758749740576519343
+116762461061414014956 109813896768294978296
+110774757382682582490 107968787521028284191
+103493459351957813291 118245559326500322262
+105076678694475690385 111666959095947698908
+113116318008017777871 116491285067171323298
+115064258994656104138 100084737546039360199
+109304903996729396661 112276589013569458330
+114991987213662121376 109247306373593947755
+111538009015644508967 118264184129842070900
+114832793541825307503 111171416539633276676
+101481313915867030905 104364058018116761460
+107587075873786034394 113920721823301219308
+102654570556058167176 106100296973968329853
+118357356982727825178 109182513536739786206
+108899222163640713555 109388259228280605303
+108594511384403031361 114632854492678778509
+111422286077941361166 110649214929620497857
+106312895983244085949 100269980559891536109
+111171416539633276676 106623900962110772648
+111538009015644508967 103325969492772452485
+109170680659355634945 118156281382429939997
+111422286077941361166 103475991020114516832
+101246601531247561585 103975368181760158212
+115565811010545226083 105076678694475690385
+118245559326500322262 102048265612444661933
+115478779964227301239 101261243957067319422
+102048265612444661933 105400903062771750089
+100397511207083609950 104364058018116761460
+116374117927631468606 118264184129842070900
+108314259245584185142 116374117927631468606
+109174551750397653742 106189723444098348646
+116762461061414014956 107793717361981126032
+116491285067171323298 107753428759636856492
+110731951130561423918 103207773865797007066
+105822688186016123722 115565811010545226083
+100084737546039360199 107753428759636856492
+103207773865797007066 115403621788538540544
+117377434815709898403 104987932455782713675
+117477042502591652021 115739148151601573808
+107896527414017792767 112063946124358686266
+105705665708025552983 102545157386069758709
+103493459351957813291 105822688186016123722
+101261243957067319422 115360979797396777969
+104450760987525660219 112339769006469685593
+109304903996729396661 104560124403688998123
+103207773865797007066 104964811874969620954
+116374117927631468606 100269980559891536109
+100535338638690515335 103716847685048716973
+115341960624782381062 101057616370673656059
+114244914082871792125 107033731246200681024
+104364058018116761460 100019606796298306813
+111310990991240556038 108817085747440374986
+118245559326500322262 103716847685048716973
+104191514233385365427 117477042502591652021
+116374117927631468606 102484577222269062816
+114244914082871792125 108594511384403031361
+109247306373593947755 115017401467423642930
+112364132652438722780 113247423264358423892
+115064258994656104138 116762461061414014956
+100894876340926769800 114832793541825307503
+108817085747440374986 109519167630731639094
+104618664838382110366 115739148151601573808
+112276589013569458330 108434394145774737013
+107755092517418534815 105703999093618427814
+103016521073558596116 116374117927631468606
+115622466243011136115 114632854492678778509
+111666959095947698908 107117483540235115863
+105076678694475690385 102512310412972518336
+111654284395316165338 102178700954286324866
+100535338638690515335 118264184129842070900
+115963821022986200770 103100496883422151101
+112820512550939559523 111091089527727420853
+114244914082871792125 110286587261352351537
+102034052532213921839 113247423264358423892
+107133948555394893679 103716847685048716973
+109304903996729396661 117377434815709898403
+117421021456205115327 104560124403688998123
+111310990991240556038 114632854492678778509
+111091089527727420853 115341960624782381062
+115109077044202722504 101704103161442695877
+113116318008017777871 100523784851251213675
+102512310412972518336 115478779964227301239
+104450760987525660219 101849747879612982297
+102034052532213921839 103012564142649561853
+114244914082871792125 104612091113514802664
+105006381068870463173 109813896768294978296
+103016521073558596116 112944532473909341307
+106812355611465528242 104792450024518550569
+112364132652438722780 116927391465690022495
+112364132652438722780 105822688186016123722
+100093902492789669774 104450760987525660219
+106695181236161584825 110318982509514011806
+110318982509514011806 106345802537137414958
+108434394145774737013 106345802537137414958
+113612142759476883204 109813896768294978296
+114832793541825307503 103153499873703329897
+104612091113514802664 108082478497335384404
+103325969492772452485 113475277239647026452
+107753428759636856492 110727249496967897430
+114918561167106576639 114244914082871792125
+118086737936443306746 111285782175840598932
+115963821022986200770 104450760987525660219
+101261243957067319422 110286587261352351537
+108574688020691152748 103112588675637065591
+103207773865797007066 114152150496380806218
+109247306373593947755 109170680659355634945
+106026445270708973611 118357356982727825178
+102654570556058167176 109170680659355634945
+108082478497335384404 118264184129842070900
+107519026002586025827 113612142759476883204
+101246601531247561585 107117483540235115863
+117693415411676715849 103171849011748425097
+105006381068870463173 105076678694475690385
+103016521073558596116 103171849011748425097
+116773104421165750126 109813896768294978296
+109009089551467495747 105863188856924083857
+114244914082871792125 116621986644249676039
+117550971892000156946 113164038788726940319
+112852253337028739987 117550971892000156946
+118245559326500322262 109813896768294978296
+104412682128547752131 102654570556058167176
+104364058018116761460 115064258994656104138
+105705665708025552983 103325969492772452485
+116207701819773193333 100535338638690515335
+101126226710566561379 117921656724816772352
+117377434815709898403 109074857816744029470
+101720949843787442951 101263833299534001868
+112016425853417877466 113210431006401244170
+101261243957067319422 110727249496967897430
+115622466243011136115 113210431006401244170
+107006059340452534782 101261243957067319422
+102512310412972518336 109304903996729396661
+113116318008017777871 105376842241046675559
+109170680659355634945 110318982509514011806
+104870518715355770532 108082478497335384404
+104450760987525660219 113166718268343560861
+117157132370347986579 102034052532213921839
+114751436351490918894 110014891370822989957
+107519026002586025827 105400903062771750089
+117377434815709898403 115360979797396777969
+112276589013569458330 110286587261352351537
+103207773865797007066 104870518715355770532
+103207773865797007066 103100496883422151101
+115963821022986200770 104560124403688998123
+108894779805940659869 116768967108862685383
+113068441549452664746 114461903539732780109
+100397511207083609950 110727249496967897430
+111538009015644508967 112844561713780016118
+115739378269261680935 103100496883422151101
+109174551750397653742 105076678694475690385
+103016521073558596116 112852253337028739987
+109174551750397653742 113612142759476883204
+103100496883422151101 109182513536739786206
+112276589013569458330 101569655404865588155
+112944532473909341307 111538009015644508967
+111091089527727420853 117377434815709898403
+108832773152747423283 103493459351957813291
+115565811010545226083 105634350975670602787
+109182513536739786206 104450760987525660219
+106096957694385885466 116926943858449614201
+109304903996729396661 107992936493665613654
+109581870574956225297 103112588675637065591
+115739378269261680935 101832771958125915909
+117477042502591652021 115706830138905259568
+109247306373593947755 102545157386069758709
+105076678694475690385 107896527414017792767
+106665185918564754695 118264184129842070900
+103016521073558596116 113117251731252114390
+118357356982727825178 104364058018116761460
+106665185918564754695 116762461061414014956
+114991987213662121376 105376842241046675559
+112820512550939559523 101213524574984631953
+109182513536739786206 106345802537137414958
+105400903062771750089 109174551750397653742
+112016425853417877466 104560124403688998123
+108817085747440374986 107033731246200681024
+112944532473909341307 104450760987525660219
+115302451851587317396 111654284395316165338
+114791921155677330282 100537991844787325512
+101600577333348274552 115047896996200277508
+103207773865797007066 110318982509514011806
+108434394145774737013 114991987213662121376
+115047896996200277508 109074857816744029470
+113351703941294630458 107968787521028284191
+118357356982727825178 107753428759636856492
+104450760987525660219 112852253337028739987
+100269980559891536109 103325969492772452485
+108143819792337559199 106345802537137414958
+106695181236161584825 118320665823821681206
+112944532473909341307 105705665708025552983
+107753428759636856492 114790574178411061829
+105901259206530390933 100397511207083609950
+108082478497335384404 111654284395316165338
+112944532473909341307 112276589013569458330
+110318982509514011806 118357356982727825178
+114832793541825307503 100894876340926769800
+111975545018506506119 100535338638690515335
+103171849011748425097 100084737546039360199
+108952536790629690817 108787861479092510435
+105076678694475690385 101849747879612982297
+117691391504351341685 115863474911002159675
+111538009015644508967 109778238062128383421
+100173452066172931939 111091089527727420853
+106026445270708973611 106224435901697064976
+112878918236054024365 108817085747440374986
+105207943512906810696 112063946124358686266
+108082478497335384404 117421021456205115327
+113612142759476883204 115478779964227301239
+118245559326500322262 105822688186016123722
+114244914082871792125 102216887206636463918
+107519026002586025827 109813896768294978296
+118156281382429939997 110728349411116483031
+107587075873786034394 108574688020691152748
+117691391504351341685 113116318008017777871
+106224435901697064976 108574688020691152748
+112944532473909341307 107117483540235115863
+115565811010545226083 108082478497335384404
+107753428759636856492 105822688186016123722
+107006059340452534782 110727249496967897430
+106026445270708973611 113166718268343560861
+109304903996729396661 101225750534150134109
+118357356982727825178 102034052532213921839
+104412682128547752131 109780617142585395916
+105662484616118909569 101246601531247561585
+101481313915867030905 100019606796298306813
+115739378269261680935 113612142759476883204
+102088173699409175139 106837636108890930395
+103325969492772452485 114790574178411061829
+100093902492789669774 111091089527727420853
+100084737546039360199 103100496883422151101
+115622466243011136115 112878918236054024365
+114918561167106576639 103112588675637065591
+112364132652438722780 109304903996729396661
+112016425853417877466 106665185918564754695
+109182513536739786206 115478779964227301239
+106312895983244085949 107968787521028284191
+100353346783543697435 109813896768294978296
+101261243957067319422 107968787521028284191
+107006059340452534782 117691391504351341685
+113801236315350503728 110318982509514011806
+113164038788726940319 100084737546039360199
+118418436905562612953 103475991020114516832
+113920721823301219308 103012564142649561853
+116374117927631468606 106312895983244085949
+112944532473909341307 118086737936443306746
+114244914082871792125 117550971892000156946
+109182513536739786206 113166718268343560861
+107133948555394893679 103475991020114516832
+111975545018506506119 116621986644249676039
+114758749740576519343 115622466243011136115
+100856165335040300712 104792450024518550569
+107896527414017792767 116388668762198604003
+105207943512906810696 111310990991240556038
+107753428759636856492 104450760987525660219
+112364132652438722780 116388668762198604003
+105705665708025552983 104364058018116761460
+117377434815709898403 112276589013569458330
+116374117927631468606 101704103161442695877
+108894779805940659869 107753428759636856492
+110731951130561423918 112063946124358686266
+112820512550939559523 103171849011748425097
+115739378269261680935 101126226710566561379
+109196389259504239326 117693415411676715849
+116207701819773193333 106189723444098348646
+108314259245584185142 102484577222269062816
+102512310412972518336 109388259228280605303
+108082478497335384404 104612091113514802664
+107090629815001792243 107626068753267217775
+115706830138905259568 113475277239647026452
+111538009015644508967 111285782175840598932
+111422286077941361166 101629211371073711149
+105901259206530390933 103475991020114516832
+105901259206530390933 115739148151601573808
+115739378269261680935 106100296973968329853
+101261243957067319422 101094440579835956866
+113475277239647026452 109809835379677001002
+105207943512906810696 105076678694475690385
+101261243957067319422 103012564142649561853
+101213524574984631953 100535338638690515335
+106812355611465528242 116927391465690022495
+117921656724816772352 106100296973968329853
+117921656724816772352 104066486855641683676
+117691391504351341685 106695181236161584825
+112820512550939559523 116388668762198604003
+105705665708025552983 114991987213662121376
+115478779964227301239 110318982509514011806
+113116318008017777871 109170680659355634945
+113166718268343560861 116762461061414014956
+115963821022986200770 101185406398932804414
+104450760987525660219 101720949843787442951
+100173452066172931939 103691312271671214670
+100269980559891536109 114791921155677330282
+113166718268343560861 110318982509514011806
+111538009015644508967 111310990991240556038
+113612142759476883204 103716847685048716973
+107090629815001792243 106812355611465528242
+102545157386069758709 115017401467423642930
+108000051912603578599 114461903539732780109
+106224435901697064976 104364058018116761460
+101057616370673656059 103100496883422151101
+110728349411116483031 103691312271671214670
+115109077044202722504 116107530889292552664
+111538009015644508967 111337216646096594888
+114758749740576519343 113210431006401244170
+111707854651652464890 108314259245584185142
+114244914082871792125 100269980559891536109
+115047896996200277508 103716847685048716973
+109182513536739786206 115565811010545226083
+113351703941294630458 113920721823301219308
+111975545018506506119 117691391504351341685
+113612142759476883204 110286587261352351537
+111654284395316165338 108082478497335384404
+101720949843787442951 109931095616224405271
+101126226710566561379 104870518715355770532
+103660543175586203250 104450760987525660219
+103016521073558596116 114791921155677330282
+109247306373593947755 103020619410065980303
+113166718268343560861 101704103161442695877
+108817085747440374986 114918561167106576639
+116388668762198604003 108082478497335384404
+115478779964227301239 108574688020691152748
+115739378269261680935 115565811010545226083
+104450760987525660219 104612091113514802664
+113116318008017777871 116388668762198604003
+111538009015644508967 114991987213662121376
+103207773865797007066 118245559326500322262
+110014891370822989957 114751436351490918894
+101213524574984631953 108817085747440374986
+100397511207083609950 107106500560002041088
+108952536790629690817 103537420161725387429
+103153499873703329897 110318982509514011806
+115527632958457358109 115478779964227301239
+117421021456205115327 109182513536739786206
+102403331307606219198 115963821022986200770
+100871232248276491534 113801236315350503728
+108899222163640713555 104066486855641683676
+115360979797396777969 100535338638690515335
+115739378269261680935 111601729473858041964
+104383523254857614001 109388259228280605303
+115963821022986200770 113116318008017777871
+113166718268343560861 101261243957067319422
+109247306373593947755 115739378269261680935
+104618664838382110366 104450760987525660219
+111091089527727420853 113612142759476883204
+109504122343901736603 106925005603331131101
+112276589013569458330 115863474911002159675
+111538009015644508967 100262595546646927505
+117550971892000156946 115478779964227301239
+107519026002586025827 115963821022986200770
+104412682128547752131 111806715084467662398
+114790574178411061829 108082478497335384404
+109809835379677001002 101225750534150134109
+110774757382682582490 115047896996200277508
+104412682128547752131 103975368181760158212
+112820512550939559523 108574688020691152748
+116107530889292552664 112944532473909341307
+105703999093618427814 115109077044202722504
+117477042502591652021 109247306373593947755
+104870518715355770532 106096957694385885466
+112878918236054024365 114244914082871792125
+109304903996729396661 112063946124358686266
+100871232248276491534 106189723444098348646
+117377434815709898403 108176814619778619437
+102545157386069758709 105705665708025552983
+101600577333348274552 109182513536739786206
+114244914082871792125 115565811010545226083
+103207773865797007066 101185406398932804414
+101225750534150134109 105376842241046675559
+115302451851587317396 117693415411676715849
+100093902492789669774 115017401467423642930
+105076678694475690385 103112588675637065591
+102512310412972518336 107090629815001792243
+105076678694475690385 100084737546039360199
+101849747879612982297 110318982509514011806
+107519026002586025827 115064258994656104138
+118207880179234484610 106665185918564754695
+107196172964000631645 102178700954286324866
+118086737936443306746 115622466243011136115
+113116318008017777871 110774757382682582490
+115565811010545226083 107753428759636856492
+113166718268343560861 117421021456205115327
+100353346783543697435 105376842241046675559
+116723923766489326849 105006381068870463173
+118017787526225833770 115392876317176762477
+113475277239647026452 106189723444098348646
+117550971892000156946 104560124403688998123
+108000051912603578599 110727249496967897430
+116491285067171323298 109174551750397653742
+111975545018506506119 114791921155677330282
+100093902492789669774 113801236315350503728
+104364058018116761460 108817085747440374986
+106026445270708973611 116927391465690022495
+107896527414017792767 115478779964227301239
+112878918236054024365 114918561167106576639
+111310990991240556038 104364058018116761460
+112290361600843238282 106096957694385885466
+108574688020691152748 115478779964227301239
+107033731246200681024 115622466243011136115
+111806715084467662398 109247306373593947755
+107896527414017792767 118357356982727825178
+115478779964227301239 109174551750397653742
+111975545018506506119 112844561713780016118
+100397511207083609950 107090629815001792243
+103567864289861449366 115527632958457358109
+100353346783543697435 103171849011748425097
+104450760987525660219 107781761552417614958
+111261496925076985134 118320665823821681206
+106925005603331131101 101246601531247561585
+100084737546039360199 115863474911002159675
+108894779805940659869 118156281382429939997
+111538009015644508967 108434394145774737013
+112364132652438722780 105076678694475690385
+109174551750397653742 113475277239647026452
+115565811010545226083 102034052532213921839
+101057616370673656059 108832773152747423283
+104612091113514802664 109504122343901736603
+113612142759476883204 100537991844787325512
+109809835379677001002 102178700954286324866
+109247306373593947755 109009089551467495747
+115739378269261680935 100173452066172931939
+114244914082871792125 105662484616118909569
+100397511207083609950 103171849011748425097
+105705665708025552983 109778238062128383421
+115963821022986200770 106695181236161584825
+117693415411676715849 116768967108862685383
+113047102292798770205 105076678694475690385
+102088173699409175139 105400369085832308485
+105901259206530390933 102403331307606219198
+103016521073558596116 103112588675637065591
+116207701819773193333 115047896996200277508
+116374117927631468606 108817085747440374986
+101094440579835956866 101213524574984631953
+103016521073558596116 115109077044202722504
+111975545018506506119 101849747879612982297
+114790574178411061829 108255750659110762991
+100093902492789669774 101261243957067319422
+114918561167106576639 105376842241046675559
+113166718268343560861 115527632958457358109
+117550971892000156946 113612142759476883204
+100397511207083609950 115047896996200277508
+107133948555394893679 110318982509514011806
+114244914082871792125 115478779964227301239
+102216887206636463918 106026445270708973611
+116374117927631468606 110318982509514011806
+116762461061414014956 103475991020114516832
+118357356982727825178 109581870574956225297
+108894779805940659869 110318982509514011806
+109809835379677001002 102034052532213921839
+104612091113514802664 105400903062771750089
+115109077044202722504 103493459351957813291
+115565811010545226083 102178700954286324866
+111975545018506506119 116926943858449614201
+114244914082871792125 116768967108862685383
+100269980559891536109 109778238062128383421
+100084737546039360199 100262595546646927505
+110731951130561423918 108899222163640713555
+100269980559891536109 111310990991240556038
+117691391504351341685 116388668762198604003
+103016521073558596116 108314259245584185142
+112878918236054024365 103475991020114516832
+110448924610029803960 106122462724662012890
+115360979797396777969 101094440579835956866
+101261243957067319422 101849747879612982297
+100093902492789669774 115739378269261680935
+111091089527727420853 114152150496380806218
+101832196121408756348 102654570556058167176
+102216887206636463918 111538009015644508967
+106026445270708973611 115047896996200277508
+106026445270708973611 103475991020114516832
+102216887206636463918 111285782175840598932
+104612091113514802664 111538009015644508967
+101057616370673656059 101849747879612982297
+111538009015644508967 113247423264358423892
+100353346783543697435 107117483540235115863
+115963821022986200770 118264184129842070900
+117550971892000156946 114918561167106576639
+100173452066172931939 107090629815001792243
+105006381068870463173 113801236315350503728
+100397511207083609950 105822688186016123722
+111538009015644508967 109388259228280605303
+117377434815709898403 101261243957067319422
+101261243957067319422 105400903062771750089
+101094440579835956866 116388668762198604003
+108129202557078877094 114948739867290323960
+111975545018506506119 115047896996200277508
+108894779805940659869 100871232248276491534
+111091089527727420853 109581870574956225297
+115739378269261680935 115047896996200277508
+107753428759636856492 101185406398932804414
+114918561167106576639 115739378269261680935
+117477042502591652021 118245559326500322262
+106388983874370865380 108176814619778619437
+116374117927631468606 103660543175586203250
+106096957694385885466 107699711897781234810
+107753428759636856492 113475277239647026452
+112364132652438722780 107626068753267217775
+105076678694475690385 109780617142585395916
+100397511207083609950 103493459351957813291
+100535338638690515335 117550971892000156946
+109174551750397653742 114632854492678778509
+105076678694475690385 109813896768294978296
+111310990991240556038 106189723444098348646
+111975545018506506119 101261243957067319422
+107896527414017792767 118320665823821681206
+114918561167106576639 100537991844787325512
+104450760987525660219 107992936493665613654
+118207880179234484610 106189723444098348646
+115622466243011136115 107033731246200681024
+112364132652438722780 100537991844787325512
+100353346783543697435 100939735623367202041
+107753428759636856492 102034052532213921839
+109170680659355634945 114790574178411061829
+103207773865797007066 117012574629989558450
+100397511207083609950 106812355611465528242
+115963821022986200770 103325969492772452485
+109581870574956225297 105006381068870463173
+100397511207083609950 101704103161442695877
+111091089527727420853 115739148151601573808
+116207701819773193333 103493459351957813291
+100173452066172931939 117421021456205115327
+103100496883422151101 104364058018116761460
+110318982509514011806 107033731246200681024
+118418436905562612953 102048265612444661933
+104987932455782713675 113210431006401244170
+106026445270708973611 101261243957067319422
+117421021456205115327 113247423264358423892
+103016521073558596116 117921656724816772352
+115739378269261680935 101246601531247561585
+107006059340452534782 114791921155677330282
+109009089551467495747 109170680659355634945
+112878918236054024365 106695181236161584825
+112944532473909341307 103012564142649561853
+100397511207083609950 103475991020114516832
+111538009015644508967 106345802537137414958
+109304903996729396661 117421021456205115327
+108000051912603578599 118086737936443306746
+109170680659355634945 115883560681104199404
+112364132652438722780 104560124403688998123
+108082478497335384404 109813896768294978296
+114152150496380806218 113722523501415106689
+107753428759636856492 107992936493665613654
+112276589013569458330 113247423264358423892
+100173452066172931939 112844561713780016118
+103016521073558596116 106312895983244085949
+116374117927631468606 103016521073558596116
+108434394145774737013 116762461061414014956
+101246601531247561585 109603191376504998413
+107519026002586025827 107896527414017792767
+115565811010545226083 103537420161725387429
+108817085747440374986 109895887909967698705
+105076678694475690385 107117483540235115863
+117921656724816772352 113624688426259176181
+115622466243011136115 114790574178411061829
+112016425853417877466 107234826207633309420
+116374117927631468606 111091089527727420853
+111975545018506506119 115109077044202722504
+109182513536739786206 112364132652438722780
+112016425853417877466 100262595546646927505
+114918561167106576639 115360979797396777969
+109182513536739786206 109778238062128383421
+115360979797396777969 107006059340452534782
+113612142759476883204 118245559326500322262
+109780617142585395916 105006381068870463173
+106312895983244085949 115478779964227301239
+104618664838382110366 104612091113514802664
+106122462724662012890 106189723444098348646
+102545157386069758709 108255750659110762991
+112016425853417877466 105400903062771750089
+104383523254857614001 117921656724816772352
+103100496883422151101 104191514233385365427
+108082478497335384404 115565811010545226083
+109809835379677001002 115047896996200277508
+100093902492789669774 109895887909967698705
+101057616370673656059 113920721823301219308
+100397511207083609950 104987932455782713675
+116192724891839469024 103691312271671214670
+109304903996729396661 109809835379677001002
+102545157386069758709 104450760987525660219
+106026445270708973611 114244914082871792125
+100397511207083609950 115478779964227301239
+117377434815709898403 116762461061414014956
+101246601531247561585 110318982509514011806
+111091089527727420853 111285782175840598932
+107519026002586025827 100084737546039360199
+109170680659355634945 117477042502591652021
+108000051912603578599 116388668762198604003
+115622466243011136115 103660543175586203250
+110774757382682582490 114632854492678778509
+106224435901697064976 109809835379677001002
+111091089527727420853 100523784851251213675
+103016521073558596116 101849747879612982297
+117421021456205115327 100397511207083609950
+110731951130561423918 115920538018564742940
+112364132652438722780 112063946124358686266
+115739378269261680935 104964811874969620954
+111707854651652464890 101261243957067319422
+102512310412972518336 103153499873703329897
+106925005603331131101 104364058018116761460
+115739148151601573808 117477042502591652021
+109304903996729396661 109412257237874861202
+107753428759636856492 109581870574956225297
+100397511207083609950 111091089527727420853
+111310990991240556038 100019606796298306813
+118245559326500322262 114918561167106576639
+105076678694475690385 103660543175586203250
+100871232248276491534 108176814619778619437
+102512310412972518336 115565811010545226083
+102512310412972518336 100173452066172931939
+112944532473909341307 115478779964227301239
+108574688020691152748 114632854492678778509
+108894779805940659869 102714736581619876511
+101094440579835956866 118207880179234484610
+111538009015644508967 113166718268343560861
+115739378269261680935 100537991844787325512
+102034052532213921839 106345802537137414958
+109247306373593947755 102178700954286324866
+106695181236161584825 100019606796298306813
+109581870574956225297 118320665823821681206
+105901259206530390933 103716847685048716973
+115739378269261680935 104066486855641683676
+117477042502591652021 107992936493665613654
+107090629815001792243 115341960624782381062
+113166718268343560861 103171849011748425097
+102034052532213921839 109895887909967698705
+116548025566090395827 100353346783543697435
+110650241045258158224 110728349411116483031
+108869261693909788407 104066486855641683676
+109009089551467495747 115706830138905259568
+104364058018116761460 112844561713780016118
+102512310412972518336 103112588675637065591
+113047102292798770205 106695181236161584825
+100269980559891536109 107519026002586025827
+103100496883422151101 113164038788726940319
+109504122343901736603 117550971892000156946
+109304903996729396661 100397511207083609950
+104870518715355770532 110286587261352351537
+105127770807562691674 118245559326500322262
+105822688186016123722 108817085747440374986
+112276589013569458330 101213524574984631953
+113801236315350503728 116723923766489326849
+101261243957067319422 114790574178411061829
+102216887206636463918 116621986644249676039
+115064258994656104138 107117483540235115863
+113920721823301219308 111654284395316165338
+107781761552417614958 103660543175586203250
+100397511207083609950 116768967108862685383
+108574688020691152748 102048265612444661933
+101057616370673656059 109412257237874861202
+113116318008017777871 109182513536739786206
+106224435901697064976 112844561713780016118
+102403331307606219198 116107530889292552664
+118418436905562612953 110286587261352351537
+115527632958457358109 117421021456205115327
+108899222163640713555 105006381068870463173
+105705665708025552983 106189723444098348646
+115064258994656104138 106224435901697064976
+114244914082871792125 111091089527727420853
+100353346783543697435 102010610384685218706
+103016521073558596116 100173452066172931939
+117377434815709898403 113920721823301219308
+115478779964227301239 117691391504351341685
+108129202557078877094 115064258994656104138
+115963821022986200770 107133948555394893679
+102216887206636463918 100535338638690515335
+108894779805940659869 104383523254857614001
+114244914082871792125 114632854492678778509
+100535338638690515335 112063946124358686266
+101057616370673656059 104612091113514802664
+115403621788538540544 118156281382429939997
+115963821022986200770 109412257237874861202
+115109077044202722504 116621986644249676039
+112016425853417877466 107753428759636856492
+109931095616224405271 104618664838382110366
+106312895983244085949 114079920283986872783
+100894876340926769800 103153499873703329897
+114918561167106576639 100269980559891536109
+106312895983244085949 105822688186016123722
+107006059340452534782 113920721823301219308
+117421021456205115327 105705665708025552983
+113612142759476883204 100523784851251213675
+109504122343901736603 114918561167106576639
+109504122343901736603 109778238062128383421
+105705665708025552983 115565811010545226083
+118245559326500322262 105127770807562691674
+108082478497335384404 108574688020691152748
+109504122343901736603 103660543175586203250
+102088173699409175139 102216887206636463918
+109504122343901736603 109813896768294978296
+101720949843787442951 115565811010545226083
+103207773865797007066 109780617142585395916
+103207773865797007066 116192724891839469024
+111666959095947698908 103567864289861449366
+111666959095947698908 106189723444098348646
+100173452066172931939 107781761552417614958
+100084737546039360199 115047896996200277508
+117691391504351341685 112820512550939559523
+105076678694475690385 109412257237874861202
+107519026002586025827 100262595546646927505
+107896527414017792767 103112588675637065591
+102034052532213921839 115565811010545226083
+102216887206636463918 118264184129842070900
+116773104421165750126 103207773865797007066
+109182513536739786206 114991987213662121376
+116207701819773193333 109813896768294978296
+113612142759476883204 110318982509514011806
+107896527414017792767 103100496883422151101
+105076678694475690385 101057616370673656059
+100397511207083609950 113475277239647026452
+100397511207083609950 113351703941294630458
+115047896996200277508 107303107611470093265
+109170680659355634945 103975368181760158212
+107793717361981126032 105703999093618427814
+105901259206530390933 107781761552417614958
+104987932455782713675 102178700954286324866
+112820512550939559523 106312895983244085949
+117550971892000156946 112063946124358686266
+118245559326500322262 104560124403688998123
+102216887206636463918 107033731246200681024
+101246601531247561585 104450760987525660219
+102654570556058167176 115047896996200277508
+102088173699409175139 113612142759476883204
+117421021456205115327 117693415411676715849
+103100496883422151101 103660543175586203250
+111975545018506506119 111337216646096594888
+115109077044202722504 102654570556058167176
+100397511207083609950 105634350975670602787
+107781761552417614958 109778238062128383421
+103207773865797007066 114244914082871792125
+109304903996729396661 112364132652438722780
+118245559326500322262 108082478497335384404
+112364132652438722780 109074857816744029470
+106312895983244085949 103112588675637065591
+100535338638690515335 109895887909967698705
+100535338638690515335 102034052532213921839
+108832773152747423283 115963821022986200770
+101213524574984631953 108082478497335384404
+110731951130561423918 107968787521028284191
+114758749740576519343 106925005603331131101
+113612142759476883204 115565811010545226083
+113116318008017777871 104987932455782713675
+107519026002586025827 100415723513846680553
+106224435901697064976 100084737546039360199
+112878918236054024365 101600577333348274552
+112364132652438722780 100001826804813287036
+106026445270708973611 103716847685048716973
+108817085747440374986 104226321884965863264
+102512310412972518336 102484577222269062816
+103020619410065980303 109170680659355634945
+113166718268343560861 112339769006469685593
+100397511207083609950 108771911258181286059
+113612142759476883204 109074857816744029470
+112364132652438722780 100084737546039360199
+110728349411116483031 108894779805940659869
+114991987213662121376 108434394145774737013
+112276589013569458330 114790574178411061829
+115739378269261680935 107033731246200681024
+118245559326500322262 113351703941294630458
+112820512550939559523 117691391504351341685
+113047102292798770205 115739148151601573808
+100269980559891536109 118207880179234484610
+116374117927631468606 109809835379677001002
+115739378269261680935 117421021456205115327
+104450760987525660219 104560124403688998123
+115064258994656104138 107753428759636856492
+112364132652438722780 110727249496967897430
+103660543175586203250 114632854492678778509
+114918561167106576639 106312895983244085949
+106812355611465528242 106822154985570317672
+104364058018116761460 103325969492772452485
+102216887206636463918 107753428759636856492
+107753428759636856492 112944532473909341307
+105207943512906810696 109412257237874861202
+104612091113514802664 107753428759636856492
+114918561167106576639 115739148151601573808
+115109077044202722504 101185406398932804414
+102545157386069758709 104964811874969620954
+103975368181760158212 118156281382429939997
+107587075873786034394 105705665708025552983
+101246601531247561585 115403621788538540544
+115963821022986200770 108255750659110762991
+118418436905562612953 114790574178411061829
+104987932455782713675 104612091113514802664
+113801236315350503728 113164038788726940319
+116207701819773193333 115017401467423642930
+103975368181760158212 109170680659355634945
+114918561167106576639 116388668762198604003
+118086737936443306746 101213524574984631953
+101094440579835956866 107753428759636856492
+117683744929337064105 113116318008017777871
+115109077044202722504 112364132652438722780
+117691391504351341685 116374117927631468606
+112944532473909341307 109174551750397653742
+104191514233385365427 105822688186016123722
+102403331307606219198 111422286077941361166
+110318982509514011806 115706830138905259568
+106695181236161584825 101261243957067319422
+113351703941294630458 110318982509514011806
+102654570556058167176 100397143564111754723
+109581870574956225297 116388668762198604003
+109304903996729396661 113612142759476883204
+106122462724662012890 103012564142649561853
+101246601531247561585 111806715084467662398
+106096957694385885466 108869261693909788407
+110014891370822989957 115302451851587317396
+111091089527727420853 101832196121408756348
+109170680659355634945 101704103161442695877
+115109077044202722504 102088173699409175139
+115064258994656104138 101094440579835956866
+115360979797396777969 101057616370673656059
+112276589013569458330 113612142759476883204
+106388983874370865380 101263833299534001868
+105076678694475690385 106100296973968329853
+115622466243011136115 115478779964227301239
+100084737546039360199 114244914082871792125
+114244914082871792125 114790574178411061829
+116621986644249676039 110286587261352351537
+101261243957067319422 104383523254857614001
+109170680659355634945 108434394145774737013
+106312895983244085949 105376842241046675559
+116374117927631468606 100535338638690515335
+112276589013569458330 109895887909967698705
+106096957694385885466 111538009015644508967
+108082478497335384404 104560124403688998123
+101094440579835956866 113116318008017777871
+111422286077941361166 107968787521028284191
+113166718268343560861 111091089527727420853
+104364058018116761460 113247423264358423892
+109581870574956225297 112063946124358686266
+110728349411116483031 111538009015644508967
+115883560681104199404 104191514233385365427
+113351703941294630458 113166718268343560861
+112364132652438722780 103207773865797007066
+102034052532213921839 101213524574984631953
+100397511207083609950 103016521073558596116
+104364058018116761460 115706830138905259568
+113920721823301219308 102034052532213921839
+109174551750397653742 118418436905562612953
+106665185918564754695 115622466243011136115
+103207773865797007066 104987932455782713675
+110774757382682582490 110318982509514011806
+107755092517418534815 116762461061414014956
+112364132652438722780 105376842241046675559
+117691391504351341685 113475277239647026452
+110774757382682582490 118264184129842070900
+108594511384403031361 115963821022986200770
+113116318008017777871 102512310412972518336
+103207773865797007066 107033731246200681024
+108243648069327964538 115706830138905259568
+107519026002586025827 115478779964227301239
+105207943512906810696 118320665823821681206
+112364132652438722780 112016425853417877466
+112364132652438722780 107519026002586025827
+115047896996200277508 111285782175840598932
+107117418142368704725 115047896996200277508
+111666959095947698908 117421021456205115327
+101720949843787442951 104450760987525660219
+109778238062128383421 112276589013569458330
+104612091113514802664 108771911258181286059
+112276589013569458330 114758749740576519343
+110774757382682582490 107117418142368704725
+108082478497335384404 115622466243011136115
+108314259245584185142 107968787521028284191
+107896527414017792767 108082478497335384404
+108082478497335384404 117550971892000156946
+118357356982727825178 103012564142649561853
+107133948555394893679 115963821022986200770
+105901259206530390933 117421021456205115327
+116762461061414014956 112820512550939559523
+104987932455782713675 101261243957067319422
+111538009015644508967 114079920283986872783
+105076678694475690385 118156281382429939997
+103207773865797007066 115302451851587317396
+101600577333348274552 114758749740576519343
+101720949843787442951 115622466243011136115
+101261243957067319422 112339769006469685593
+107753428759636856492 117421021456205115327
+113164038788726940319 114790574178411061829
+105076678694475690385 113247423264358423892
+103016521073558596116 115739148151601573808
+100535338638690515335 100262595546646927505
+108082478497335384404 100523784851251213675
+111091089527727420853 109174551750397653742
+104364058018116761460 107992936493665613654
+104364058018116761460 117477042502591652021
+118357356982727825178 116762461061414014956
+113612142759476883204 101261243957067319422
+115302451851587317396 102178700954286324866
+113920721823301219308 118320665823821681206
+107896527414017792767 114758749740576519343
+115403621788538540544 109247306373593947755
+107753428759636856492 109778238062128383421
+100269980559891536109 112276589013569458330
+115341960624782381062 105703999093618427814
+106695181236161584825 103660543175586203250
+102545157386069758709 102178700954286324866
+106224435901697064976 110318982509514011806
+100093902492789669774 106096957694385885466
+115622466243011136115 107097980510051172895
+101261243957067319422 116773104421165750126
+110318982509514011806 101261243957067319422
+105901259206530390933 111091089527727420853
+115706830138905259568 108000051912603578599
+105901259206530390933 103171849011748425097
+118418436905562612953 108082478497335384404
+114244914082871792125 110727249496967897430
+109247306373593947755 111806715084467662398
+113722523501415106689 116927391465690022495
+115739148151601573808 109247306373593947755
+108894779805940659869 100093902492789669774
+108082478497335384404 107896527414017792767
+111975545018506506119 118320665823821681206
+113166718268343560861 100173452066172931939
+108817085747440374986 116927391465690022495
+102216887206636463918 109813896768294978296
+109778238062128383421 107753428759636856492
+118357356982727825178 107117483540235115863
+112944532473909341307 117421021456205115327
+106026445270708973611 109174551750397653742
+116374117927631468606 107781761552417614958
+111654284395316165338 114244914082871792125
+107519026002586025827 114991987213662121376
+112364132652438722780 109388259228280605303
+105901259206530390933 111310990991240556038
+113612142759476883204 109519167630731639094
+109388259228280605303 116621986644249676039
+106026445270708973611 100856165335040300712
+105901259206530390933 113116318008017777871
+105006381068870463173 106100296973968329853
+101185406398932804414 106312895983244085949
+112820512550939559523 113612142759476883204
+104450760987525660219 113920721823301219308
+107133948555394893679 107753428759636856492
+107519026002586025827 107097980510051172895
+112276589013569458330 100269980559891536109
+115739378269261680935 107968787521028284191
+102545157386069758709 100397143564111754723
+104612091113514802664 107992936493665613654
+105006381068870463173 107699711897781234810
+110774757382682582490 102178700954286324866
+113116318008017777871 107896527414017792767
+101185406398932804414 109174551750397653742
+112878918236054024365 107519026002586025827
+105076678694475690385 113920721823301219308
+107033731246200681024 118207880179234484610
+112364132652438722780 109813896768294978296
+113047102292798770205 108817085747440374986
+116762461061414014956 112944532473909341307
+108817085747440374986 107896527414017792767
+114244914082871792125 110318982509514011806
+104450760987525660219 105705665708025552983
+109581870574956225297 105705665708025552983
+107587075873786034394 117550971892000156946
+102034052532213921839 118418436905562612953
+104450760987525660219 115706830138905259568
+104364058018116761460 109813896768294978296
+107753428759636856492 107968787521028284191
+107006059340452534782 103100496883422151101
+108894779805940659869 109813896768294978296
+108894779805940659869 108952536790629690817
+111422286077941361166 104450760987525660219
+105400903062771750089 113116318008017777871
+104612091113514802664 111285782175840598932
+107133948555394893679 103325969492772452485
+116768967108862685383 109813896768294978296
+105705665708025552983 108434394145774737013
+115302451851587317396 110286587261352351537
+106665185918564754695 100262595546646927505
+101057616370673656059 100856165335040300712
+116773104421165750126 107793717361981126032
+105901259206530390933 102048265612444661933
+117691391504351341685 103171849011748425097
+113920721823301219308 110318982509514011806
+108894779805940659869 107234826207633309420
+109778238062128383421 108255750659110762991
+113166718268343560861 102088173699409175139
+113068441549452664746 114632854492678778509
+107753428759636856492 105076678694475690385
+104364058018116761460 109247306373593947755
+117691391504351341685 114632854492678778509
+113475277239647026452 104560124403688998123
+106224435901697064976 104450760987525660219
+112016425853417877466 108574688020691152748
+115064258994656104138 101261243957067319422
+109504122343901736603 105076678694475690385
+117550971892000156946 117421021456205115327
+105901259206530390933 111707854651652464890
+115478779964227301239 109519167630731639094
+111666959095947698908 107753428759636856492
+104450760987525660219 104618664838382110366
+107753428759636856492 100537991844787325512
+109196389259504239326 103537420161725387429
+114244914082871792125 109809835379677001002
+100173452066172931939 111601729473858041964
+110318982509514011806 102048265612444661933
+105822688186016123722 113612142759476883204
+101057616370673656059 104987932455782713675
+118207880179234484610 109074857816744029470
+111091089527727420853 100173452066172931939
+116374117927631468606 100397511207083609950
+107196172964000631645 101261243957067319422
+114790574178411061829 115047896996200277508
+109504122343901736603 111091089527727420853
+117377434815709898403 111285782175840598932
+113164038788726940319 105400903062771750089
+116773104421165750126 104560124403688998123
+103207773865797007066 104412682128547752131
+101849747879612982297 102216887206636463918
+106096957694385885466 103207773865797007066
+106312895983244085949 118357356982727825178
+100871232248276491534 108952536790629690817
+111091089527727420853 107129852879758941909
+100871232248276491534 109813896768294978296
+112364132652438722780 106312895983244085949
+112820512550939559523 115478779964227301239
+116374117927631468606 115478779964227301239
+104618664838382110366 114632854492678778509
+109504122343901736603 115478779964227301239
+100397511207083609950 102178700954286324866
+118245559326500322262 111091089527727420853
+114918561167106576639 112820512550939559523
+111091089527727420853 115739378269261680935
+114991987213662121376 108000051912603578599
+102484577222269062816 108787861479092510435
+109182513536739786206 103012564142649561853
+105076678694475690385 112063946124358686266
+113612142759476883204 118264184129842070900
+110731951130561423918 104066486855641683676
+100173452066172931939 107753428759636856492
+103100496883422151101 114790574178411061829
+114758749740576519343 109778238062128383421
+108574688020691152748 109809835379677001002
+117550971892000156946 109813896768294978296
+103691312271671214670 101261243957067319422
+100397511207083609950 115527632958457358109
+118245559326500322262 110649214929620497857
+102654570556058167176 101832771958125915909
+107755092517418534815 107896527414017792767
+111337216646096594888 101185406398932804414
+111538009015644508967 105705665708025552983
+112276589013569458330 103716847685048716973
+107753428759636856492 104412682128547752131
+112364132652438722780 113475277239647026452
+112364132652438722780 113210431006401244170
+107519026002586025827 116762461061414014956
+115565811010545226083 103012564142649561853
+115403621788538540544 111337216646096594888
+104987932455782713675 115863474911002159675
+107896527414017792767 100523784851251213675
+109335713877994755095 103567864289861449366
+111654284395316165338 110286587261352351537
+100093902492789669774 116768967108862685383
+109304903996729396661 100269980559891536109
+116207701819773193333 107090629815001792243
+104870518715355770532 103207773865797007066
+106312895983244085949 101569655404865588155
+104612091113514802664 108817085747440374986
+101057616370673656059 100173452066172931939
+106695181236161584825 102048265612444661933
+110318982509514011806 114790574178411061829
+102034052532213921839 112339769006469685593
+111091089527727420853 108832773152747423283
+112820512550939559523 118264184129842070900
+114918561167106576639 109778238062128383421
+114152150496380806218 114359738470992181937
+117477042502591652021 103475991020114516832
+112820512550939559523 110318982509514011806
+105076678694475690385 113116318008017777871
+108894779805940659869 113801236315350503728
+113116318008017777871 118207880179234484610
+108082478497335384404 117691391504351341685
+101261243957067319422 106096957694385885466
+104987932455782713675 114790574178411061829
+104450760987525660219 109809835379677001002
+104450760987525660219 117693415411676715849
+112016425853417877466 103171849011748425097
+102484577222269062816 109931095616224405271
+117691391504351341685 107006059340452534782
+114549564725160709822 111091089527727420853
+110774757382682582490 111285782175840598932
+116621986644249676039 114632854492678778509
+109388259228280605303 118156281382429939997
+111538009015644508967 113612142759476883204
+101263833299534001868 108314259245584185142
+113166718268343560861 113351703941294630458
+100269980559891536109 114948739867290323960
+106096957694385885466 114856222286197208502
+104612091113514802664 116374117927631468606
+103100496883422151101 115863474911002159675
+115047896996200277508 118086737936443306746
+103207773865797007066 101126226710566561379
+105705665708025552983 108082478497335384404
+101246601531247561585 115739378269261680935
+113612142759476883204 109412257237874861202
+100397511207083609950 114790574178411061829
+103016521073558596116 105376842241046675559
+103171849011748425097 108082478497335384404
+111975545018506506119 104987932455782713675
+100173452066172931939 101185406398932804414
+112878918236054024365 107968787521028284191
+111261496925076985134 103207773865797007066
+108000051912603578599 109519167630731639094
+115565811010545226083 107117483540235115863
+106122462724662012890 103325969492772452485
+101569655404865588155 107753428759636856492
+107699711897781234810 101832196121408756348
+109174551750397653742 105376842241046675559
+105901259206530390933 106100296973968329853
+106312895983244085949 108817085747440374986
+110318982509514011806 113116318008017777871
+100397511207083609950 118418436905562612953
+106224435901697064976 109813896768294978296
+103171849011748425097 109813896768294978296
+102512310412972518336 113116318008017777871
+113116318008017777871 103171849011748425097
+100397511207083609950 114244914082871792125
+108952536790629690817 114979733565079457374
+109809835379677001002 107896527414017792767
+117377434815709898403 106925005603331131101
+107133948555394893679 111654284395316165338
+103171849011748425097 104560124403688998123
+113116318008017777871 107117483540235115863
+108817085747440374986 104987932455782713675
+100871232248276491534 114549564725160709822
+107196172964000631645 101849747879612982297
+109182513536739786206 107097980510051172895
+111261496925076985134 101261243957067319422
+113116318008017777871 102048265612444661933
+105076678694475690385 109074857816744029470
+100535338638690515335 104364058018116761460
+108817085747440374986 104612091113514802664
+113116318008017777871 114758749740576519343
+104450760987525660219 109247306373593947755
+103100496883422151101 112944532473909341307
+102034052532213921839 117377434815709898403
+117691391504351341685 109813896768294978296
+103171849011748425097 115565811010545226083
+104412682128547752131 110318982509514011806
+111806715084467662398 118156281382429939997
+104618664838382110366 105901259206530390933
+100084737546039360199 113116318008017777871
+101225750534150134109 113475277239647026452
+107587075873786034394 114758749740576519343
+104383523254857614001 110731951130561423918
+101720949843787442951 113166718268343560861
+106665185918564754695 107992936493665613654
+104450760987525660219 109581870574956225297
+114918561167106576639 111707854651652464890
+107519026002586025827 114791921155677330282
+100535338638690515335 113117251731252114390
+107303107611470093265 111285782175840598932
+109304903996729396661 108574688020691152748
+116926943858449614201 111975545018506506119
+109778238062128383421 108434394145774737013
+117421021456205115327 113117251731252114390
+112016425853417877466 103100496883422151101
+101261243957067319422 109519167630731639094
+108817085747440374986 114979733565079457374
+109170680659355634945 111806715084467662398
+109504122343901736603 111422286077941361166
+111538009015644508967 103020619410065980303
+111538009015644508967 109009089551467495747
+107781761552417614958 108952536790629690817
+101261243957067319422 106837636108890930395
+115527632958457358109 117693415411676715849
+105662484616118909569 106096957694385885466
+108817085747440374986 118357356982727825178
+114918561167106576639 114790574178411061829
+106812355611465528242 115739378269261680935
+100269980559891536109 112339769006469685593
+113116318008017777871 104450760987525660219
+116762461061414014956 106665185918564754695
+115478779964227301239 113210431006401244170
+113047102292798770205 115565811010545226083
+112016425853417877466 112276589013569458330
+106925005603331131101 109778238062128383421
+113116318008017777871 109174551750397653742
+108082478497335384404 109182513536739786206
+100084737546039360199 103171849011748425097
+108832773152747423283 101057616370673656059
+102403331307606219198 103716847685048716973
+104987932455782713675 112364132652438722780
+113166718268343560861 103691312271671214670
+106122462724662012890 115478779964227301239
+109170680659355634945 113166718268343560861
+101261243957067319422 109388259228280605303
+107699711897781234810 115109077044202722504
+102512310412972518336 115064258994656104138
+100093902492789669774 104560124403688998123
+108817085747440374986 100523784851251213675
+109504122343901736603 103171849011748425097
+105076678694475690385 116927391465690022495
+100084737546039360199 112063946124358686266
+113475277239647026452 105076678694475690385
+112944532473909341307 115883560681104199404
+115565811010545226083 109182513536739786206
+106096957694385885466 103582267051807991527
+113164038788726940319 103100496883422151101
+111538009015644508967 116388668762198604003
+116768967108862685383 118418436905562612953
+105400903062771750089 111285782175840598932
+115963821022986200770 102048265612444661933
+101057616370673656059 102512310412972518336
+106026445270708973611 110727249496967897430
+116773104421165750126 106100296973968329853
+104364058018116761460 100397511207083609950
+118418436905562612953 118207880179234484610
+108817085747440374986 109809835379677001002
+101261243957067319422 108000051912603578599
+100173452066172931939 102088173699409175139
+116374117927631468606 109519167630731639094
+102034052532213921839 117691391504351341685
+104987932455782713675 111975545018506506119
+106122462724662012890 115064258994656104138
+100353346783543697435 107753428759636856492
+102216887206636463918 101057616370673656059
+106224435901697064976 116388668762198604003
+115047896996200277508 110448924610029803960
+110728349411116483031 114244914082871792125
+100535338638690515335 100269980559891536109
+101261243957067319422 115527632958457358109
+101261243957067319422 118357356982727825178
+112820512550939559523 107896527414017792767
+106695181236161584825 103716847685048716973
+118156281382429939997 103207773865797007066
+116374117927631468606 109247306373593947755
+115360979797396777969 104364058018116761460
+106224435901697064976 106189723444098348646
+106026445270708973611 105376842241046675559
+109009089551467495747 106925005603331131101
+107519026002586025827 118357356982727825178
+105076678694475690385 107006059340452534782
+114918561167106576639 118245559326500322262
+104450760987525660219 105822688186016123722
+108000051912603578599 114790574178411061829
+109304903996729396661 112339769006469685593
+109778238062128383421 102048265612444661933
+105076678694475690385 115064258994656104138
+110318982509514011806 109182513536739786206
+101261243957067319422 116723923766489326849
+106312895983244085949 112063946124358686266
+107196172964000631645 104560124403688998123
+116374117927631468606 108082478497335384404
+104450760987525660219 101225750534150134109
+112852253337028739987 103475991020114516832
+105901259206530390933 118207880179234484610
+101261243957067319422 102048265612444661933
+117921656724816772352 111032944513257134357
+105901259206530390933 103207773865797007066
+107896527414017792767 100084737546039360199
+108894779805940659869 115047896996200277508
+100856165335040300712 113722523501415106689
+117421021456205115327 100523784851251213675
+102403331307606219198 116621986644249676039
+116762461061414014956 106695181236161584825
+108082478497335384404 116388668762198604003
+112820512550939559523 114790574178411061829
+116773104421165750126 102216887206636463918
+115360979797396777969 106224435901697064976
+106026445270708973611 107626068753267217775
+114244914082871792125 117691391504351341685
+113351703941294630458 116768967108862685383
+108314259245584185142 110286587261352351537
+107133948555394893679 101261243957067319422
+109581870574956225297 115064258994656104138
+107587075873786034394 100019606796298306813
+117377434815709898403 106189723444098348646
+104870518715355770532 106822154985570317672
+107519026002586025827 102178700954286324866
+116723923766489326849 116927391465690022495
+116762461061414014956 104612091113514802664
+107896527414017792767 101057616370673656059
+115565811010545226083 114758749740576519343
+107753428759636856492 113164038788726940319
+100397511207083609950 107699711897781234810
+113612142759476883204 107968787521028284191
+113166718268343560861 108434394145774737013
+113164038788726940319 101261243957067319422
+103207773865797007066 117421021456205115327
+105076678694475690385 109388259228280605303
+108082478497335384404 113117251731252114390
+104618664838382110366 118320665823821681206
+109809835379677001002 118264184129842070900
+108817085747440374986 113166718268343560861
+110014891370822989957 102714736581619876511
+102484577222269062816 101263833299534001868
+102034052532213921839 113920721823301219308
+114152150496380806218 106822154985570317672
+109182513536739786206 105076678694475690385
+102034052532213921839 107234826207633309420
+104450760987525660219 106695181236161584825
+101057616370673656059 111538009015644508967
+109778238062128383421 113116318008017777871
+105632941129656401917 115739378269261680935
+111337216646096594888 105662484616118909569
+103016521073558596116 117477042502591652021
+107090629815001792243 103207773865797007066
+103100496883422151101 109813896768294978296
+107755092517418534815 109170680659355634945
+102545157386069758709 108000051912603578599
+115360979797396777969 109895887909967698705
+106224435901697064976 112276589013569458330
+103016521073558596116 111654284395316165338
+108817085747440374986 116621986644249676039
+102034052532213921839 112844561713780016118
+100415723513846680553 103660543175586203250
+113920721823301219308 108255750659110762991
+117693415411676715849 114821161730370452301
+109780617142585395916 102654570556058167176
+115706830138905259568 108255750659110762991
+108000051912603578599 118207880179234484610
+113612142759476883204 108082478497335384404
+118207880179234484610 109813896768294978296
+105076678694475690385 115863474911002159675
+116491285067171323298 113116318008017777871
+109504122343901736603 109182513536739786206
+106122462724662012890 107519026002586025827
+113475277239647026452 103112588675637065591
+103207773865797007066 111285782175840598932
+112339769006469685593 106665185918564754695
+101126226710566561379 110728349411116483031
+114832793541825307503 104560124403688998123
+108594511384403031361 110649214929620497857
+111975545018506506119 104191514233385365427
+116207701819773193333 114790574178411061829
+102034052532213921839 111091089527727420853
+113116318008017777871 103100496883422151101
+107992936493665613654 107781761552417614958
+101261243957067319422 113801236315350503728
+103100496883422151101 115565811010545226083
+107896527414017792767 113475277239647026452
+105076678694475690385 101261243957067319422
+107753428759636856492 109074857816744029470
+103325969492772452485 111091089527727420853
+116762461061414014956 113116318008017777871
+109304903996729396661 102034052532213921839
+109809835379677001002 103716847685048716973
+117377434815709898403 102425976203575211068
+102512310412972518336 109581870574956225297
+100173452066172931939 104792450024518550569
+100173452066172931939 106026445270708973611
+117477042502591652021 114244914082871792125
+108143819792337559199 108000051912603578599
+117550971892000156946 107587075873786034394
+101261243957067319422 115739378269261680935
+105076678694475690385 111538009015644508967
+111666959095947698908 104560124403688998123
+113920721823301219308 103112588675637065591
+117012574629989558450 106096957694385885466
+105901259206530390933 101849747879612982297
+106312895983244085949 112844561713780016118
+108817085747440374986 109780617142585395916
+106096957694385885466 106100296973968329853
+111337216646096594888 101246601531247561585
+116621986644249676039 100262595546646927505
+112276589013569458330 116762461061414014956
+112339769006469685593 111091089527727420853
+104364058018116761460 114079920283986872783
+111538009015644508967 116773104421165750126
+104612091113514802664 105076678694475690385
+104612091113514802664 105705665708025552983
+109196389259504239326 101213524574984631953
+103020619410065980303 104191514233385365427
+118245559326500322262 115047896996200277508
+108434394145774737013 104412682128547752131
+103493459351957813291 108894779805940659869
+115565811010545226083 108817085747440374986
+101225750534150134109 117683744929337064105
+109182513536739786206 115622466243011136115
+104450760987525660219 105376842241046675559
+113351703941294630458 115565811010545226083
+117377434815709898403 100397511207083609950
+108817085747440374986 108255750659110762991
+111091089527727420853 115622466243011136115
+107129852879758941909 104191514233385365427
+105705665708025552983 109182513536739786206
+103016521073558596116 105901259206530390933
+106312895983244085949 113612142759476883204
+111538009015644508967 108817085747440374986
+104450760987525660219 111285782175840598932
+100397511207083609950 104412682128547752131
+115565811010545226083 113351703941294630458
+115883560681104199404 109182513536739786206
+100535338638690515335 106312895983244085949
+112364132652438722780 115863474911002159675
+104364058018116761460 101094440579835956866
+106224435901697064976 103012564142649561853
+115109077044202722504 104792450024518550569
+109196389259504239326 115064258994656104138
+101832196121408756348 102088173699409175139
+109174551750397653742 109519167630731639094
+100084737546039360199 114791921155677330282
+117421021456205115327 118207880179234484610
+115739148151601573808 107753428759636856492
+115017401467423642930 109388259228280605303
+115047896996200277508 107753428759636856492
+109504122343901736603 118245559326500322262
+104191514233385365427 115739378269261680935
+104870518715355770532 107968787521028284191
+109304903996729396661 118264184129842070900
+105901259206530390933 107896527414017792767
+111538009015644508967 110318982509514011806
+116374117927631468606 114244914082871792125
+109809835379677001002 112276589013569458330
+113801236315350503728 111091089527727420853
+109174551750397653742 109074857816744029470
+103207773865797007066 107308976571078250231
+105634350975670602787 101213524574984631953
+117691391504351341685 113612142759476883204
+100173452066172931939 112276589013569458330
+115739148151601573808 101849747879612982297
+112364132652438722780 116107530889292552664
+111422286077941361166 100262595546646927505
+102034052532213921839 113801236315350503728
+103100496883422151101 106665185918564754695
+106026445270708973611 112063946124358686266
+107006059340452534782 101057616370673656059
+101261243957067319422 117477042502591652021
+100397511207083609950 113247423264358423892
+109174551750397653742 104450760987525660219
+103493459351957813291 115017401467423642930
+101569655404865588155 103112588675637065591
+102512310412972518336 117693415411676715849
+113166718268343560861 117377434815709898403
+113164038788726940319 110286587261352351537
+103207773865797007066 103325969492772452485
+107006059340452534782 106312895983244085949
+113047102292798770205 117477042502591652021
+104412682128547752131 101261243957067319422
+111422286077941361166 110286587261352351537
+108832773152747423283 104450760987525660219
+103207773865797007066 106096957694385885466
+104870518715355770532 115302451851587317396
+117377434815709898403 113247423264358423892
+104612091113514802664 104987932455782713675
+114734885658057433270 105400903062771750089
+111538009015644508967 114632854492678778509
+103016521073558596116 118207880179234484610
+107753428759636856492 101481313915867030905
+115478779964227301239 118207880179234484610
+107117418142368704725 111285782175840598932
+103100496883422151101 111091089527727420853
+106096957694385885466 113624688426259176181
+109603191376504998413 114832793541825307503
+106096957694385885466 110286587261352351537
+102512310412972518336 106100296973968329853
+100894876340926769800 115302451851587317396
+107519026002586025827 114790574178411061829
+118245559326500322262 106100296973968329853
+116192724891839469024 104870518715355770532
+111975545018506506119 118207880179234484610
+115302451851587317396 107753428759636856492
+111091089527727420853 106822154985570317672
+113166718268343560861 117693415411676715849
+112016425853417877466 102088173699409175139
+102512310412972518336 101849747879612982297
+115739378269261680935 103691312271671214670
+102034052532213921839 107587075873786034394
+114152150496380806218 112364132652438722780
+100173452066172931939 106312895983244085949
+110318982509514011806 116762461061414014956
+106925005603331131101 104450760987525660219
+112276589013569458330 107753428759636856492
+104987932455782713675 107234826207633309420
+118017787526225833770 104870518715355770532
+116762461061414014956 102545157386069758709
+116621986644249676039 101704103161442695877
+107196172964000631645 107896527414017792767
+109247306373593947755 116621986644249676039
+104612091113514802664 116762461061414014956
+107753428759636856492 117377434815709898403
+115739378269261680935 115017401467423642930
+109182513536739786206 114790574178411061829
+105901259206530390933 102088173699409175139
+109196389259504239326 115047896996200277508
+116762461061414014956 113801236315350503728
+100397511207083609950 101057616370673656059
+113166718268343560861 112364132652438722780
+102654570556058167176 103582267051807991527
+111538009015644508967 118357356982727825178
+109581870574956225297 114991987213662121376
+114549564725160709822 111285782175840598932
+108952536790629690817 102484577222269062816
+100084737546039360199 105076678694475690385
+115739378269261680935 116927391465690022495
+115739378269261680935 102088173699409175139
+104618664838382110366 101261243957067319422
+117377434815709898403 100084737546039360199
+103016521073558596116 106100296973968329853
+103691312271671214670 113801236315350503728
+106925005603331131101 114758749740576519343
+103325969492772452485 118357356982727825178
+102034052532213921839 107519026002586025827
+107006059340452534782 117693415411676715849
+108832773152747423283 104987932455782713675
+107896527414017792767 105076678694475690385
+116723923766489326849 107699711897781234810
+117691391504351341685 117550971892000156946
+110731951130561423918 106263529626268281828
+114991987213662121376 100019606796298306813
+105076678694475690385 107033731246200681024
+103100496883422151101 108434394145774737013
+109581870574956225297 115622466243011136115
+112016425853417877466 118264184129842070900
+108434394145774737013 107896527414017792767
+116374117927631468606 109074857816744029470
+117377434815709898403 102545157386069758709
+109504122343901736603 108817085747440374986
+116374117927631468606 109931095616224405271
+102512310412972518336 118357356982727825178
+113116318008017777871 111654284395316165338
+115527632958457358109 107968787521028284191
+115109077044202722504 105076678694475690385
+109809835379677001002 101094440579835956866
+102403331307606219198 110286587261352351537
+115478779964227301239 113920721823301219308
+102403331307606219198 114244914082871792125
+115622466243011136115 109504122343901736603
+109247306373593947755 102484577222269062816
+106312895983244085949 118264184129842070900
+100173452066172931939 103207773865797007066
+112016425853417877466 118357356982727825178
+109174551750397653742 113247423264358423892
+116621986644249676039 102512310412972518336
+116762461061414014956 107097980510051172895
+100397511207083609950 106189723444098348646
+104612091113514802664 100084737546039360199
+105076678694475690385 104450760987525660219
+117921656724816772352 103691312271671214670
+100084737546039360199 101094440579835956866
+104364058018116761460 106122462724662012890
+100397511207083609950 114979733565079457374
+106695181236161584825 102034052532213921839
+109247306373593947755 103207773865797007066
+105822688186016123722 109581870574956225297
+106925005603331131101 115478779964227301239
+110731951130561423918 115739378269261680935
+118086737936443306746 114991987213662121376
+114758749740576519343 113117251731252114390
+107896527414017792767 103325969492772452485
+103016521073558596116 107992936493665613654
+104364058018116761460 107117483540235115863
+107587075873786034394 103660543175586203250
+115017401467423642930 103207773865797007066
+108817085747440374986 109074857816744029470
+101261243957067319422 114549564725160709822
+117377434815709898403 101094440579835956866
+109581870574956225297 110318982509514011806
+107133948555394893679 108082478497335384404
+114991987213662121376 115883560681104199404
+108000051912603578599 114979733565079457374
+101849747879612982297 107896527414017792767
+101261243957067319422 114821161730370452301
+112944532473909341307 106925005603331131101
+104870518715355770532 107753428759636856492
+113047102292798770205 118207880179234484610
+116762461061414014956 108255750659110762991
+109809835379677001002 108255750659110762991
+118017787526225833770 104066486855641683676
+117477042502591652021 108817085747440374986
+106665185918564754695 103012564142649561853
+112364132652438722780 115017401467423642930
+116762461061414014956 109504122343901736603
+100397511207083609950 106100296973968329853
+109170680659355634945 116107530889292552664
+117691391504351341685 110286587261352351537
+117377434815709898403 117691391504351341685
+110728349411116483031 115920538018564742940
+107587075873786034394 109809835379677001002
+104612091113514802664 113801236315350503728
+107129852879758941909 107308976571078250231
+104450760987525660219 115739148151601573808
+103171849011748425097 118207880179234484610
+102034052532213921839 105376842241046675559
+115963821022986200770 101261243957067319422
+103691312271671214670 103207773865797007066
+111091089527727420853 105030465637303791249
+108817085747440374986 112276589013569458330
+108817085747440374986 113047102292798770205
+104450760987525660219 100019606796298306813
+104412682128547752131 114948739867290323960
+109931095616224405271 104612091113514802664
+102034052532213921839 106925005603331131101
+117691391504351341685 105705665708025552983
+115360979797396777969 118207880179234484610
+111310990991240556038 104612091113514802664
+117691391504351341685 109895887909967698705
+118418436905562612953 104987932455782713675
+102512310412972518336 101261243957067319422
+103207773865797007066 109247306373593947755
+101261243957067319422 111091089527727420853
+111975545018506506119 108894779805940659869
+107519026002586025827 116388668762198604003
+115739378269261680935 106026445270708973611
+112339769006469685593 112063946124358686266
+115565811010545226083 109174551750397653742
+101057616370673656059 100257676670422660178
+105006381068870463173 105901259206530390933
+115739148151601573808 105076678694475690385
+116762461061414014956 115706830138905259568
+104450760987525660219 111310990991240556038
+112364132652438722780 113612142759476883204
+101849747879612982297 115360979797396777969
+105076678694475690385 115047896996200277508
+100173452066172931939 113920721823301219308
+115360979797396777969 116388668762198604003
+108082478497335384404 102178700954286324866
+105662484616118909569 104412682128547752131
+117921656724816772352 108176814619778619437
+117377434815709898403 100535338638690515335
+109504122343901736603 102403331307606219198
+117377434815709898403 106312895983244085949
+111806715084467662398 115739378269261680935
+115739378269261680935 112063946124358686266
+111422286077941361166 115739148151601573808
+116374117927631468606 109174551750397653742
+105076678694475690385 109809835379677001002
+100871232248276491534 106096957694385885466
+117377434815709898403 111538009015644508967
+107781761552417614958 109581870574956225297
+117691391504351341685 112276589013569458330
+108574688020691152748 103171849011748425097
+115963821022986200770 118418436905562612953
+116762461061414014956 107753428759636856492
+109504122343901736603 113210431006401244170
+107117418142368704725 112339769006469685593
+110318982509514011806 104191514233385365427
+109809835379677001002 107753428759636856492
+102403331307606219198 115047896996200277508
+107196172964000631645 108314259245584185142
+115739378269261680935 109581870574956225297
+105076678694475690385 100173452066172931939
+107196172964000631645 107133948555394893679
+113164038788726940319 113247423264358423892
+115047896996200277508 117693415411676715849
+103691312271671214670 112364132652438722780
+108817085747440374986 111285782175840598932
+100084737546039360199 106312895983244085949
+103493459351957813291 116773104421165750126
+113612142759476883204 118418436905562612953
+115360979797396777969 112063946124358686266
+109304903996729396661 110727249496967897430
+106224435901697064976 105076678694475690385
+109809835379677001002 106312895983244085949
+113166718268343560861 110286587261352351537
+103207773865797007066 105632941129656401917
+102545157386069758709 114079920283986872783
+108082478497335384404 103325969492772452485
+109174551750397653742 106312895983244085949
+107755092517418534815 115109077044202722504
+104612091113514802664 108255750659110762991
+118207880179234484610 109174551750397653742
+115302451851587317396 109335713877994755095
+111538009015644508967 105076678694475690385
+100084737546039360199 115706830138905259568
+105705665708025552983 103716847685048716973
+108314259245584185142 108787861479092510435
+111538009015644508967 108000051912603578599
+111538009015644508967 103493459351957813291
+115739378269261680935 113116318008017777871
+107196172964000631645 112063946124358686266
+115109077044202722504 118207880179234484610
+100173452066172931939 118320665823821681206
+102034052532213921839 114790574178411061829
+113920721823301219308 101261243957067319422
+110774757382682582490 116773104421165750126
+107519026002586025827 109581870574956225297
+115064258994656104138 103012564142649561853
+109170680659355634945 109247306373593947755
+104612091113514802664 104450760987525660219
+103325969492772452485 108255750659110762991
+101481313915867030905 115047896996200277508
+116207701819773193333 108574688020691152748
+116374117927631468606 111707854651652464890
+101261243957067319422 104987932455782713675
+107196172964000631645 103171849011748425097
+107033731246200681024 103012564142649561853
+107519026002586025827 108817085747440374986
+115302451851587317396 109412257237874861202
+104618664838382110366 114918561167106576639
+104987932455782713675 112339769006469685593
+115478779964227301239 101629211371073711149
+108832773152747423283 108082478497335384404
+116207701819773193333 107033731246200681024
+104618664838382110366 115963821022986200770
+117691391504351341685 107992936493665613654
+116374117927631468606 105076678694475690385
+106925005603331131101 106695181236161584825
+101481313915867030905 109504122343901736603
+114918561167106576639 107097980510051172895
+115109077044202722504 106189723444098348646
+116762461061414014956 102048265612444661933
+107519026002586025827 110649214929620497857
+115478779964227301239 114758749740576519343
+102034052532213921839 103493459351957813291
+115360979797396777969 112276589013569458330
+113116318008017777871 102545157386069758709
+101213524574984631953 114790574178411061829
+106122462724662012890 104987932455782713675
+115047896996200277508 105006381068870463173
+102545157386069758709 103112588675637065591
+114991987213662121376 104412682128547752131
+115739378269261680935 117693415411676715849
+117377434815709898403 114790574178411061829
+107753428759636856492 106695181236161584825
+112944532473909341307 114991987213662121376
+111707854651652464890 116374117927631468606
+106695181236161584825 114758749740576519343
+117691391504351341685 101261243957067319422
+103207773865797007066 100001826804813287036
+109196389259504239326 114791921155677330282
+105632941129656401917 104226321884965863264
+107587075873786034394 107781761552417614958
+113166718268343560861 109813896768294978296
+101720949843787442951 102403331307606219198
+103112588675637065591 106224435901697064976
+108314259245584185142 108176814619778619437
+111806715084467662398 109170680659355634945
+114244914082871792125 114549564725160709822
+111538009015644508967 108255750659110762991
+115478779964227301239 102034052532213921839
+111310990991240556038 113116318008017777871
+108817085747440374986 109388259228280605303
+100173452066172931939 116762461061414014956
+101057616370673656059 110774757382682582490
+106026445270708973611 101094440579835956866
+116762461061414014956 106189723444098348646
+116773104421165750126 101261243957067319422
+104612091113514802664 114632854492678778509
+103691312271671214670 115109077044202722504
+101261243957067319422 116374117927631468606
+115017401467423642930 109335713877994755095
+106224435901697064976 109174551750397653742
+111310990991240556038 102048265612444661933
+109182513536739786206 108817085747440374986
+115963821022986200770 102403331307606219198
+116621986644249676039 112844561713780016118
+108000051912603578599 107097980510051172895
+114790574178411061829 109074857816744029470
+109170680659355634945 102654570556058167176
+113166718268343560861 115565811010545226083
+101261243957067319422 110367546804237452889
+113068441549452664746 103012564142649561853
+105400369085832308485 112364132652438722780
+105703999093618427814 106822154985570317672
+115527632958457358109 118418436905562612953
+115565811010545226083 103716847685048716973
+106026445270708973611 105400903062771750089
+101225750534150134109 102178700954286324866
+101057616370673656059 109074857816744029470
+101600577333348274552 116374117927631468606
+103016521073558596116 109412257237874861202
+109182513536739786206 110318982509514011806
+112364132652438722780 116621986644249676039
+117377434815709898403 105006381068870463173
+112016425853417877466 107033731246200681024
+100093902492789669774 105006381068870463173
+115739148151601573808 118245559326500322262
+116762461061414014956 104870518715355770532
+115706830138905259568 109412257237874861202
+100093902492789669774 106189723444098348646
+112820512550939559523 115047896996200277508
+109388259228280605303 116927391465690022495
+100856165335040300712 101057616370673656059
+113612142759476883204 113210431006401244170
+103207773865797007066 118017787526225833770
+109182513536739786206 114979733565079457374
+117691391504351341685 105634350975670602787
+113801236315350503728 118245559326500322262
+116762461061414014956 104987932455782713675
+109809835379677001002 107587075873786034394
+102512310412972518336 109074857816744029470
+108574688020691152748 118264184129842070900
+103691312271671214670 111261496925076985134
+116388668762198604003 103716847685048716973
+103207773865797007066 108314259245584185142
+112276589013569458330 102178700954286324866
+107196172964000631645 106695181236161584825
+103660543175586203250 109519167630731639094
+102216887206636463918 116773104421165750126
+113475277239647026452 103171849011748425097
+100535338638690515335 111285782175840598932
+112820512550939559523 112844561713780016118
+118086737936443306746 108000051912603578599
+102034052532213921839 116768967108862685383
+110318982509514011806 112878918236054024365
+115739148151601573808 103171849011748425097
+101832196121408756348 115017401467423642930
+109304903996729396661 113475277239647026452
+102654570556058167176 104560124403688998123
+100856165335040300712 103100496883422151101
+100535338638690515335 104987932455782713675
+102034052532213921839 106189723444098348646
+106096957694385885466 105006381068870463173
+115302451851587317396 111666959095947698908
+115963821022986200770 110727249496967897430
+103100496883422151101 100535338638690515335
+115739148151601573808 102403331307606219198
+102654570556058167176 103207773865797007066
+109809835379677001002 106189723444098348646
+102403331307606219198 105076678694475690385
+112339769006469685593 107117418142368704725
+103016521073558596116 108176814619778619437
+108817085747440374986 112944532473909341307
+112364132652438722780 101057616370673656059
+109247306373593947755 117477042502591652021
+100397143564111754723 118245559326500322262
+102034052532213921839 115478779964227301239
+104450760987525660219 100415723513846680553
+102512310412972518336 103012564142649561853
+111032944513257134357 104870518715355770532
+101832196121408756348 113166718268343560861
+102403331307606219198 103207773865797007066
+111091089527727420853 100397511207083609950
+102545157386069758709 109813896768294978296
+102034052532213921839 106665185918564754695
+111337216646096594888 109247306373593947755
+105076678694475690385 116621986644249676039
+108894779805940659869 100537991844787325512
+114079920283986872783 103171849011748425097
+101832196121408756348 107699711897781234810
+104987932455782713675 103171849011748425097
+102088173699409175139 111538009015644508967
+111310990991240556038 102545157386069758709
+106345802537137414958 104191514233385365427
+104612091113514802664 112276589013569458330
+102484577222269062816 110286587261352351537
+109504122343901736603 113116318008017777871
+104618664838382110366 106695181236161584825
+105207943512906810696 103112588675637065591
+104618664838382110366 103475991020114516832
+100856165335040300712 115109077044202722504
+113116318008017777871 115360979797396777969
+112878918236054024365 100019606796298306813
+113047102292798770205 103012564142649561853
+104412682128547752131 114790574178411061829
+109196389259504239326 118357356982727825178
+106312895983244085949 111666959095947698908
+111538009015644508967 114790574178411061829
+104870518715355770532 116773104421165750126
+101261243957067319422 115017401467423642930
+107090629815001792243 101261243957067319422
+109304903996729396661 114790574178411061829
+109182513536739786206 118357356982727825178
+103207773865797007066 105400369085832308485
+113612142759476883204 105376842241046675559
+107753428759636856492 117691391504351341685
+115622466243011136115 109581870574956225297
+111091089527727420853 104618664838382110366
+115360979797396777969 107117418142368704725
+108000051912603578599 102034052532213921839
+105207943512906810696 100537991844787325512
+106312895983244085949 107006059340452534782
+115739148151601573808 112852253337028739987
+111310990991240556038 112844561713780016118
+106096957694385885466 103475991020114516832
+117377434815709898403 102048265612444661933
+111538009015644508967 117477042502591652021
+104612091113514802664 102403331307606219198
+115963821022986200770 103171849011748425097
+113920721823301219308 113210431006401244170
+100415723513846680553 114758749740576519343
+111422286077941361166 114632854492678778509
+112820512550939559523 107133948555394893679
+103493459351957813291 115739378269261680935
+112364132652438722780 103493459351957813291
+101569655404865588155 100084737546039360199
+101057616370673656059 116768967108862685383
+104450760987525660219 103112588675637065591
+115739148151601573808 118320665823821681206
+101246601531247561585 102654570556058167176
+116388668762198604003 104560124403688998123
+112364132652438722780 102178700954286324866
+100084737546039360199 102048265612444661933
+101720949843787442951 114632854492678778509
+111422286077941361166 109504122343901736603
+109504122343901736603 116388668762198604003
+115622466243011136115 107117483540235115863
+117421021456205115327 114790574178411061829
+116762461061414014956 108434394145774737013
+115109077044202722504 116723923766489326849
+108817085747440374986 104191514233385365427
+115047896996200277508 103112588675637065591
+105207943512906810696 108832773152747423283
+114832793541825307503 111285782175840598932
+101246601531247561585 109519167630731639094
+111666959095947698908 113351703941294630458
+100397511207083609950 114758749740576519343
+116207701819773193333 118357356982727825178
+115527632958457358109 103325969492772452485
+109182513536739786206 109581870574956225297
+105901259206530390933 111975545018506506119
+107519026002586025827 107033731246200681024
+103207773865797007066 105822688186016123722
+113047102292798770205 109813896768294978296
+106224435901697064976 115565811010545226083
+110731951130561423918 105822688186016123722
+105705665708025552983 107033731246200681024
+112276589013569458330 115963821022986200770
+113116318008017777871 101225750534150134109
+113166718268343560861 109412257237874861202
+102512310412972518336 112063946124358686266
+100084737546039360199 104450760987525660219
+118357356982727825178 109813896768294978296
+110728349411116483031 103207773865797007066
+116207701819773193333 103537420161725387429
+116374117927631468606 104612091113514802664
+115302451851587317396 112157588278319557323
+102425976203575211068 108817085747440374986
+107303107611470093265 109196389259504239326
+113164038788726940319 101057616370673656059
+113722523501415106689 107090629815001792243
+113116318008017777871 115064258994656104138
+108817085747440374986 102545157386069758709
+113164038788726940319 109519167630731639094
+108082478497335384404 105634350975670602787
+115963821022986200770 116388668762198604003
+115739378269261680935 101261243957067319422
+103153499873703329897 100856165335040300712
+114918561167106576639 107196172964000631645
+105076678694475690385 103493459351957813291
+115360979797396777969 114244914082871792125
+105076678694475690385 115706830138905259568
+102034052532213921839 109813896768294978296
+116374117927631468606 112063946124358686266
+108894779805940659869 110286587261352351537
+110318982509514011806 115478779964227301239
+112276589013569458330 118357356982727825178
+114918561167106576639 107781761552417614958
+105076678694475690385 115017401467423642930
+101600577333348274552 103660543175586203250
+111091089527727420853 101629211371073711149
+112016425853417877466 114549564725160709822
+117691391504351341685 114790574178411061829
+107896527414017792767 115963821022986200770
+111975545018506506119 115017401467423642930
+107753428759636856492 106122462724662012890
+107006059340452534782 107968787521028284191
+102403331307606219198 112878918236054024365
+115739378269261680935 104560124403688998123
+116762461061414014956 109182513536739786206
+100269980559891536109 107896527414017792767
+111091089527727420853 116927391465690022495
+107896527414017792767 114979733565079457374
+101057616370673656059 113116318008017777871
+106695181236161584825 113047102292798770205
+104412682128547752131 108434394145774737013
+113351703941294630458 101720949843787442951
+115622466243011136115 113247423264358423892
+101057616370673656059 111310990991240556038
+112016425853417877466 107968787521028284191
+101057616370673656059 101261243957067319422
+107753428759636856492 103112588675637065591
+112944532473909341307 109895887909967698705
+115109077044202722504 110209787594312878744
+109304903996729396661 112844561713780016118
+106695181236161584825 115963821022986200770
+103016521073558596116 103012564142649561853
+106665185918564754695 111091089527727420853
+115739148151601573808 113247423264358423892
+109196389259504239326 105400903062771750089
+107781761552417614958 102425976203575211068
+109581870574956225297 103171849011748425097
+114244914082871792125 101261243957067319422
+117691391504351341685 105376842241046675559
+107090629815001792243 114152150496380806218
+103016521073558596116 115622466243011136115
+111091089527727420853 100084737546039360199
+107090629815001792243 116107530889292552664
+108000051912603578599 115622466243011136115
+100084737546039360199 105400903062771750089
+117691391504351341685 101225750534150134109
+110448924610029803960 100353346783543697435
+117550971892000156946 115963821022986200770
+103325969492772452485 106312895983244085949
+117377434815709898403 115863474911002159675
+100856165335040300712 103716847685048716973
+107753428759636856492 114991987213662121376
+112339769006469685593 106122462724662012890
+103691312271671214670 110318982509514011806
+109778238062128383421 102034052532213921839
+109247306373593947755 107587075873786034394
+100415723513846680553 114632854492678778509
+106122462724662012890 102048265612444661933
+109778238062128383421 114758749740576519343
+114758749740576519343 113116318008017777871
+100871232248276491534 106100296973968329853
+101246601531247561585 109170680659355634945
+114918561167106576639 106925005603331131101
+112276589013569458330 112820512550939559523
+109304903996729396661 115863474911002159675
+103016521073558596116 100537991844787325512
+112016425853417877466 107992936493665613654
+108000051912603578599 113116318008017777871
+109009089551467495747 109388259228280605303
+104612091113514802664 109519167630731639094
+104612091113514802664 115739148151601573808
+108000051912603578599 110318982509514011806
+101261243957067319422 107519026002586025827
+111261496925076985134 106096957694385885466
+100093902492789669774 101849747879612982297
+102545157386069758709 106189723444098348646
+107519026002586025827 117550971892000156946
+105901259206530390933 108771911258181286059
+103016521073558596116 113351703941294630458
+113116318008017777871 107097980510051172895
+108000051912603578599 103012564142649561853
+111707854651652464890 115392876317176762477
+116762461061414014956 104191514233385365427
+100173452066172931939 112364132652438722780
+107753428759636856492 109247306373593947755
+102512310412972518336 118264184129842070900
+109247306373593947755 106189723444098348646
+113166718268343560861 118207880179234484610
+101261243957067319422 107781761552417614958
+118357356982727825178 103325969492772452485
+114244914082871792125 113210431006401244170
+115622466243011136115 103475991020114516832
+100093902492789669774 100537991844787325512
+103016521073558596116 103716847685048716973
+116207701819773193333 113284787225540728296
+107519026002586025827 100537991844787325512
+104612091113514802664 101261243957067319422
+107133948555394893679 109931095616224405271
+115047896996200277508 102048265612444661933
+112944532473909341307 113047102292798770205
+106026445270708973611 108082478497335384404
+111091089527727420853 116762461061414014956
+100871232248276491534 100001826804813287036
+110318982509514011806 105822688186016123722
+103207773865797007066 113210431006401244170
+113166718268343560861 100871232248276491534
+113166718268343560861 102048265612444661933
+104450760987525660219 101263833299534001868
+113166718268343560861 112276589013569458330
+117691391504351341685 115360979797396777969
+118086737936443306746 100269980559891536109
+103016521073558596116 103207773865797007066
+104612091113514802664 115565811010545226083
+117377434815709898403 107781761552417614958
+109182513536739786206 108000051912603578599
+115920538018564742940 110728349411116483031
+107519026002586025827 109174551750397653742
+104612091113514802664 107896527414017792767
+112016425853417877466 106100296973968329853
+101720949843787442951 114918561167106576639
+115047896996200277508 109809835379677001002
+109304903996729396661 113164038788726940319
+116762461061414014956 106026445270708973611
+117691391504351341685 103325969492772452485
+115963821022986200770 111091089527727420853
+102403331307606219198 106695181236161584825
+108255750659110762991 110318982509514011806
+102654570556058167176 118156281382429939997
+113116318008017777871 102425976203575211068
+109335713877994755095 106837636108890930395
+115739148151601573808 106026445270708973611
+111091089527727420853 110318982509514011806
+104450760987525660219 115863474911002159675
+105705665708025552983 104560124403688998123
+115565811010545226083 117421021456205115327
+104450760987525660219 116927391465690022495
+105822688186016123722 107896527414017792767
+117421021456205115327 102034052532213921839
+108894779805940659869 105006381068870463173
+109809835379677001002 112063946124358686266
+115360979797396777969 104560124403688998123
+104612091113514802664 108434394145774737013
+107303107611470093265 116548025566090395827
+105822688186016123722 101600577333348274552
+107699711897781234810 102088173699409175139
+109247306373593947755 104364058018116761460
+114918561167106576639 103012564142649561853
+107033731246200681024 105076678694475690385
+103016521073558596116 117421021456205115327
+106665185918564754695 102048265612444661933
+113612142759476883204 104450760987525660219
+112944532473909341307 106665185918564754695
+104612091113514802664 109813896768294978296
+106026445270708973611 108832773152747423283
+109170680659355634945 115017401467423642930
+115360979797396777969 108082478497335384404
+112016425853417877466 103493459351957813291
+100871232248276491534 101261243957067319422
+118086737936443306746 114791921155677330282
+101261243957067319422 100084737546039360199
+104987932455782713675 104226321884965863264
+117691391504351341685 113164038788726940319
+104364058018116761460 111654284395316165338
+115109077044202722504 117550971892000156946
+105632941129656401917 113166718268343560861
+114918561167106576639 115047896996200277508
+114991987213662121376 106345802537137414958
+115360979797396777969 103012564142649561853
+100084737546039360199 107117483540235115863
+100173452066172931939 107117483540235115863
+100856165335040300712 111601729473858041964
+113612142759476883204 108176814619778619437
+100173452066172931939 110318982509514011806
+117157132370347986579 103012564142649561853
+113116318008017777871 113351703941294630458
+118245559326500322262 111310990991240556038
+104364058018116761460 114790574178411061829
+104612091113514802664 117550971892000156946
+115478779964227301239 115622466243011136115
+106623900962110772648 103716847685048716973
+111996414642516891950 114832793541825307503
+103691312271671214670 117921656724816772352
+114918561167106576639 106224435901697064976
+105006381068870463173 103691312271671214670
+114918561167106576639 111422286077941361166
+102034052532213921839 111654284395316165338
+100397511207083609950 100606519862794948506
+109778238062128383421 117421021456205115327
+115527632958457358109 100262595546646927505
+105901259206530390933 109074857816744029470
+108832773152747423283 112276589013569458330
+109174551750397653742 103171849011748425097
+101261243957067319422 103112588675637065591
+117377434815709898403 109182513536739786206
+103100496883422151101 115064258994656104138
+108817085747440374986 101092351652012588236
+112016425853417877466 111601729473858041964
+103493459351957813291 113612142759476883204
+107587075873786034394 101213524574984631953
+105006381068870463173 109388259228280605303
+107896527414017792767 107234826207633309420
+100397511207083609950 109412257237874861202
+103207773865797007066 113475277239647026452
+110731951130561423918 118017787526225833770
+102512310412972518336 102216887206636463918
+115739378269261680935 109074857816744029470
+102034052532213921839 105400903062771750089
+117550971892000156946 100523784851251213675
+107992936493665613654 108000051912603578599
+115883560681104199404 100019606796298306813
+117377434815709898403 113164038788726940319
+116548025566090395827 105376842241046675559
+114758749740576519343 105076678694475690385
+109504122343901736603 118207880179234484610
+107129852879758941909 110367546804237452889
+113116318008017777871 107519026002586025827
+108817085747440374986 115109077044202722504
+108894779805940659869 107308976571078250231
+102425976203575211068 108000051912603578599
+116207701819773193333 113920721823301219308
+115527632958457358109 110286587261352351537
+115064258994656104138 102178700954286324866
+115109077044202722504 107117483540235115863
+110318982509514011806 102545157386069758709
+103171849011748425097 109581870574956225297
+107519026002586025827 118086737936443306746
+101225750534150134109 112276589013569458330
+105076678694475690385 107519026002586025827
+108952536790629690817 100535338638690515335
+114991987213662121376 107753428759636856492
+114832793541825307503 100856165335040300712
+115360979797396777969 111091089527727420853
+103975368181760158212 116621986644249676039
+100397511207083609950 112276589013569458330
+118086737936443306746 100353346783543697435
+105901259206530390933 100523784851251213675
+111091089527727420853 111975545018506506119
+103100496883422151101 116773104421165750126
+116621986644249676039 103716847685048716973
+116388668762198604003 102048265612444661933
+104191514233385365427 116107530889292552664
+112364132652438722780 106812355611465528242
+104412682128547752131 111337216646096594888
+102216887206636463918 115047896996200277508
+116374117927631468606 101720949843787442951
+115527632958457358109 111601729473858041964
+104450760987525660219 108817085747440374986
+104364058018116761460 107033731246200681024
+110728349411116483031 118156281382429939997
+100535338638690515335 102048265612444661933
+112944532473909341307 115706830138905259568
+109170680659355634945 107753428759636856492
+112364132652438722780 103171849011748425097
+117691391504351341685 115963821022986200770
+115109077044202722504 116927391465690022495
+103207773865797007066 108082478497335384404
+110728349411116483031 104560124403688998123
+107090629815001792243 106026445270708973611
+111975545018506506119 109412257237874861202
+101832196121408756348 111285782175840598932
+100535338638690515335 110318982509514011806
+109388259228280605303 115047896996200277508
+113164038788726940319 104560124403688998123
+113612142759476883204 113801236315350503728
+107090629815001792243 118207880179234484610
+106122462724662012890 110286587261352351537
+115963821022986200770 103012564142649561853
+115047896996200277508 114079920283986872783
+109388259228280605303 115403621788538540544
+107699711897781234810 116621986644249676039
+117693415411676715849 105822688186016123722
+101261243957067319422 100262595546646927505
+111975545018506506119 115920538018564742940
+104870518715355770532 106263529626268281828
+104412682128547752131 108894779805940659869
+109170680659355634945 116621986644249676039
+115109077044202722504 107755092517418534815
+113920721823301219308 100523784851251213675
+114244914082871792125 103325969492772452485
+116773104421165750126 106812355611465528242
+113047102292798770205 101720949843787442951
+114758749740576519343 113612142759476883204
+110731951130561423918 103665895112864974869
+110728349411116483031 116192724891839469024
+112016425853417877466 100173452066172931939
+114549564725160709822 106026445270708973611
+104450760987525660219 115360979797396777969
+102545157386069758709 118207880179234484610
+115478779964227301239 113612142759476883204
+112276589013569458330 113116318008017777871
+102034052532213921839 109581870574956225297
+103207773865797007066 100871232248276491534
+104364058018116761460 103716847685048716973
+114918561167106576639 111285782175840598932
+109581870574956225297 115863474911002159675
+102688620589277847136 116762461061414014956
+109780617142585395916 109170680659355634945
+103016521073558596116 117691391504351341685
+112820512550939559523 106695181236161584825
+112016425853417877466 109895887909967698705
+105207943512906810696 116374117927631468606
+111538009015644508967 116723923766489326849
+113166718268343560861 113475277239647026452
+116207701819773193333 103716847685048716973
+115064258994656104138 106122462724662012890
+113116318008017777871 105076678694475690385
+105076678694475690385 106224435901697064976
+111261496925076985134 107234826207633309420
+108082478497335384404 106189723444098348646
+113612142759476883204 116768967108862685383
+106665185918564754695 107033731246200681024
+115706830138905259568 107753428759636856492
+113047102292798770205 102178700954286324866
+108817085747440374986 114758749740576519343
+109581870574956225297 108434394145774737013
+112944532473909341307 102048265612444661933
+105076678694475690385 107090629815001792243
+103207773865797007066 105076678694475690385
+106312895983244085949 104560124403688998123
+115963821022986200770 115622466243011136115
+115109077044202722504 109813896768294978296
+113166718268343560861 107033731246200681024
+116762461061414014956 107896527414017792767
+102088173699409175139 107699711897781234810
+111975545018506506119 106189723444098348646
+104612091113514802664 100415723513846680553
+101261243957067319422 113116318008017777871
+103171849011748425097 111285782175840598932
+115360979797396777969 103171849011748425097
+117477042502591652021 103660543175586203250
+104450760987525660219 114948739867290323960
+102034052532213921839 117550971892000156946
+104364058018116761460 106189723444098348646
+104364058018116761460 115360979797396777969
+115109077044202722504 116773104421165750126
+117477042502591652021 108000051912603578599
+113612142759476883204 115622466243011136115
+100084737546039360199 108082478497335384404
+104987932455782713675 105822688186016123722
+105006381068870463173 106189723444098348646
+113047102292798770205 117421021456205115327
+113475277239647026452 106312895983244085949
+101261243957067319422 100537991844787325512
+105822688186016123722 115963821022986200770
+112276589013569458330 110318982509514011806
+112820512550939559523 105634350975670602787
+102216887206636463918 117421021456205115327
+115302451851587317396 100894876340926769800
+106695181236161584825 109778238062128383421
+112944532473909341307 107097980510051172895
+113801236315350503728 113612142759476883204
+100939735623367202041 101213524574984631953
+102034052532213921839 103100496883422151101
+107753428759636856492 114461903539732780109
+113116318008017777871 101094440579835956866
+109335713877994755095 109388259228280605303
+117921656724816772352 111261496925076985134
+103493459351957813291 109388259228280605303
+100535338638690515335 109174551750397653742
+108255750659110762991 116762461061414014956
+100084737546039360199 101261243957067319422
+105632941129656401917 116107530889292552664
+104364058018116761460 106925005603331131101
+117691391504351341685 113920721823301219308
+111091089527727420853 103691312271671214670
+102512310412972518336 113284787225540728296
+105076678694475690385 114821161730370452301
+111538009015644508967 109581870574956225297
+108574688020691152748 108082478497335384404
+113612142759476883204 105006381068870463173
+108817085747440374986 107753428759636856492
+108817085747440374986 100019606796298306813
+105076678694475690385 107133948555394893679
+101849747879612982297 112844561713780016118
+108894779805940659869 111091089527727420853
+109504122343901736603 103325969492772452485
+101261243957067319422 107117483540235115863
+104450760987525660219 102403331307606219198
+116374117927631468606 116768967108862685383
+104612091113514802664 118264184129842070900
+105207943512906810696 115360979797396777969
+102216887206636463918 112844561713780016118
+106122462724662012890 107033731246200681024
+112364132652438722780 107117418142368704725
+100397511207083609950 101246601531247561585
+102216887206636463918 115360979797396777969
+111666959095947698908 103012564142649561853
+116374117927631468606 113068441549452664746
+110318982509514011806 111310990991240556038
+107753428759636856492 114791921155677330282
+115047896996200277508 108255750659110762991
+103016521073558596116 111666959095947698908
+106925005603331131101 103325969492772452485
+105076678694475690385 106189723444098348646
+107196172964000631645 107968787521028284191
+107992936493665613654 113116318008017777871
+114918561167106576639 108817085747440374986
+113116318008017777871 110286587261352351537
+108952536790629690817 113166718268343560861
+104612091113514802664 109778238062128383421
+106122462724662012890 106665185918564754695
+118086737936443306746 103100496883422151101
+115739378269261680935 109388259228280605303
+102545157386069758709 116762461061414014956
+100269980559891536109 108255750659110762991
+103207773865797007066 104066486855641683676
+117691391504351341685 114948739867290323960
+109182513536739786206 108143819792337559199
+114790574178411061829 115478779964227301239
+114244914082871792125 104450760987525660219
+110318982509514011806 100084737546039360199
+113116318008017777871 115109077044202722504
+109504122343901736603 115739148151601573808
+112820512550939559523 115739148151601573808
+108082478497335384404 104364058018116761460
+116773104421165750126 116768967108862685383
+103207773865797007066 107968787521028284191
+113116318008017777871 101261243957067319422
+100173452066172931939 100397511207083609950
+111654284395316165338 109412257237874861202
+108817085747440374986 114991987213662121376
+112339769006469685593 107033731246200681024
+101185406398932804414 113210431006401244170
+111422286077941361166 109182513536739786206
+107755092517418534815 107626068753267217775
+103207773865797007066 111975545018506506119
+103207773865797007066 117921656724816772352
+115963821022986200770 115047896996200277508
+107519026002586025827 109182513536739786206
+113920721823301219308 118207880179234484610
+102034052532213921839 111538009015644508967
+113116318008017777871 113117251731252114390
+115478779964227301239 109809835379677001002
+118418436905562612953 106665185918564754695
+100894876340926769800 101832771958125915909
+104412682128547752131 103207773865797007066
+108952536790629690817 108314259245584185142
+111310990991240556038 109174551750397653742
+116374117927631468606 104450760987525660219
+108832773152747423283 113612142759476883204
+107090629815001792243 107793717361981126032
+100397511207083609950 117691391504351341685
+112339769006469685593 110286587261352351537
+115341960624782381062 106026445270708973611
+118245559326500322262 100262595546646927505
+117012574629989558450 104066486855641683676
+101720949843787442951 117421021456205115327
+108817085747440374986 106695181236161584825
+114152150496380806218 100856165335040300712
+113920721823301219308 116388668762198604003
+111091089527727420853 112276589013569458330
+102512310412972518336 116773104421165750126
+106096957694385885466 114979733565079457374
+113920721823301219308 109412257237874861202
+106665185918564754695 103112588675637065591
+115302451851587317396 101057616370673656059
+116762461061414014956 103325969492772452485
+105822688186016123722 111654284395316165338
+112016425853417877466 113351703941294630458
+111091089527727420853 105006381068870463173
+117421021456205115327 112276589013569458330
+112016425853417877466 108314259245584185142
+103691312271671214670 105006381068870463173
+109182513536739786206 108771911258181286059
+115739378269261680935 118418436905562612953
+102654570556058167176 100262595546646927505
+107519026002586025827 106695181236161584825
+100173452066172931939 100535338638690515335
+115064258994656104138 104364058018116761460
+115047896996200277508 104560124403688998123
+115963821022986200770 117550971892000156946
+115739378269261680935 109247306373593947755
+112016425853417877466 100537991844787325512
+101213524574984631953 110318982509514011806
+108314259245584185142 111707854651652464890
+115302451851587317396 113475277239647026452
+111538009015644508967 115109077044202722504
+112276589013569458330 102034052532213921839
+102034052532213921839 100019606796298306813
+117691391504351341685 107196172964000631645
+118245559326500322262 102403331307606219198
+100871232248276491534 101263833299534001868
+110318982509514011806 109813896768294978296
+102403331307606219198 116374117927631468606
+100397511207083609950 100173452066172931939
+106096957694385885466 106388983874370865380
+116374117927631468606 105030465637303791249
+117377434815709898403 115622466243011136115
+100001826804813287036 115109077044202722504
+100535338638690515335 116762461061414014956
+116374117927631468606 109813896768294978296
+113047102292798770205 113247423264358423892
+100084737546039360199 106665185918564754695
+100397511207083609950 105901259206530390933
+114832793541825307503 106623900962110772648
+103171849011748425097 116388668762198604003
+102654570556058167176 104191514233385365427
+112339769006469685593 102178700954286324866
+104450760987525660219 100397143564111754723
+107753428759636856492 108255750659110762991
+105901259206530390933 100269980559891536109
+101720949843787442951 108817085747440374986
+103016521073558596116 114979733565079457374
+112276589013569458330 117691391504351341685
+115360979797396777969 112844561713780016118
+107896527414017792767 103171849011748425097
+104612091113514802664 108832773152747423283
+116723923766489326849 102088173699409175139
+118086737936443306746 106122462724662012890
+105006381068870463173 109895887909967698705
+107699711897781234810 101261243957067319422
+111091089527727420853 118207880179234484610
+117377434815709898403 106665185918564754695
+104870518715355770532 105822688186016123722
+115739378269261680935 118320665823821681206
+100397511207083609950 100262595546646927505
+101261243957067319422 111538009015644508967
+115963821022986200770 104364058018116761460
+108082478497335384404 110727249496967897430
+113166718268343560861 101185406398932804414
+105207943512906810696 117693415411676715849
+115963821022986200770 114632854492678778509
+115302451851587317396 102048265612444661933
+115739148151601573808 109339805471557551388
+100397511207083609950 112820512550939559523
+107896527414017792767 107033731246200681024
+111538009015644508967 103691312271671214670
+103153499873703329897 116107530889292552664
+100535338638690515335 103100496883422151101
+115302451851587317396 102714736581619876511
+112364132652438722780 118357356982727825178
+109182513536739786206 111091089527727420853
+106026445270708973611 111666959095947698908
+116374117927631468606 115739378269261680935
+109170680659355634945 101261243957067319422
+107753428759636856492 100523784851251213675
+109809835379677001002 107033731246200681024
+116762461061414014956 101225750534150134109
+116374117927631468606 103325969492772452485
+107196172964000631645 111310990991240556038
+106623900962110772648 102714736581619876511
+105632941129656401917 117550971892000156946
+101261243957067319422 104191514233385365427
+106312895983244085949 101225750534150134109
+100001826804813287036 101704103161442695877
+104612091113514802664 101213524574984631953
+106263529626268281828 104066486855641683676
+100001826804813287036 106812355611465528242
+105822688186016123722 104450760987525660219
+116374117927631468606 110727249496967897430
+104450760987525660219 103660543175586203250
+102512310412972518336 101094440579835956866
+103207773865797007066 110367546804237452889
+112944532473909341307 107781761552417614958
+111654284395316165338 103100496883422151101
+108894779805940659869 103171849011748425097
+105076678694475690385 113612142759476883204
+113047102292798770205 113068441549452664746
+115565811010545226083 113210431006401244170
+105822688186016123722 113166718268343560861
+117377434815709898403 111654284395316165338
+112364132652438722780 103012564142649561853
+107519026002586025827 109504122343901736603
+105703999093618427814 106812355611465528242
+105822688186016123722 108255750659110762991
+112016425853417877466 101094440579835956866
+104612091113514802664 115863474911002159675
+116762461061414014956 107033731246200681024
+104612091113514802664 105822688186016123722
+105076678694475690385 109174551750397653742
+111091089527727420853 112063946124358686266
+102034052532213921839 117421021456205115327
+100353346783543697435 101261243957067319422
+102403331307606219198 104560124403688998123
+108082478497335384404 115478779964227301239
+115047896996200277508 109196389259504239326
+110650241045258158224 109388259228280605303
+106096957694385885466 115047896996200277508
+118418436905562612953 115739378269261680935
+100397511207083609950 111601729473858041964
+114244914082871792125 115622466243011136115
+110318982509514011806 103112588675637065591
+107519026002586025827 112276589013569458330
+101057616370673656059 102048265612444661933
+105376842241046675559 109412257237874861202
+103016521073558596116 112364132652438722780
+111091089527727420853 109304903996729396661
+101057616370673656059 115109077044202722504
+116762461061414014956 109170680659355634945
+115341960624782381062 113722523501415106689
+102545157386069758709 117691391504351341685
+111310990991240556038 114790574178411061829
+113722523501415106689 112016425853417877466
+115360979797396777969 113612142759476883204
+103325969492772452485 101185406398932804414
+103660543175586203250 109174551750397653742
+106925005603331131101 109895887909967698705
+105207943512906810696 107117483540235115863
+115017401467423642930 101832771958125915909
+100084737546039360199 103475991020114516832
+103207773865797007066 104612091113514802664
+100871232248276491534 107793717361981126032
+118418436905562612953 113116318008017777871
+108894779805940659869 104412682128547752131
+111091089527727420853 115478779964227301239
+102425976203575211068 109895887909967698705
+116207701819773193333 115863474911002159675
+116388668762198604003 111654284395316165338
+109174551750397653742 102178700954286324866
+107133948555394893679 102178700954286324866
+101246601531247561585 101704103161442695877
+113166718268343560861 107234826207633309420
+107753428759636856492 114079920283986872783
+115017401467423642930 102512310412972518336
+113047102292798770205 104450760987525660219
+115341960624782381062 104792450024518550569
+112276589013569458330 109174551750397653742
+104450760987525660219 113801236315350503728
+104450760987525660219 107519026002586025827
+112364132652438722780 107117483540235115863
+106096957694385885466 108314259245584185142
+112944532473909341307 107519026002586025827
+100269980559891536109 109182513536739786206
+103016521073558596116 108832773152747423283
+105863188856924083857 115403621788538540544
+112820512550939559523 103112588675637065591
+116374117927631468606 116621986644249676039
+104450760987525660219 104226321884965863264
+102654570556058167176 101246601531247561585
+100871232248276491534 111538009015644508967
+114244914082871792125 103112588675637065591
+109931095616224405271 116374117927631468606
+107699711897781234810 116723923766489326849
+109170680659355634945 115403621788538540544
+117550971892000156946 112878918236054024365
+103100496883422151101 109519167630731639094
+111538009015644508967 102088173699409175139
+105207943512906810696 111654284395316165338
+103020619410065980303 115706830138905259568
+109581870574956225297 106312895983244085949
+117691391504351341685 103100496883422151101
+104618664838382110366 114948739867290323960
+103100496883422151101 118207880179234484610
+115739148151601573808 109504122343901736603
+106096957694385885466 115739378269261680935
+100093902492789669774 100871232248276491534
+105901259206530390933 107117483540235115863
+109247306373593947755 103493459351957813291
+101261243957067319422 115739148151601573808
+104870518715355770532 104066486855641683676
+105901259206530390933 116723923766489326849
+112364132652438722780 101185406398932804414
+106122462724662012890 114244914082871792125
+107006059340452534782 103171849011748425097
+102512310412972518336 114821161730370452301
+112944532473909341307 109412257237874861202
+113164038788726940319 108176814619778619437
+100353346783543697435 104560124403688998123
+109780617142585395916 104191514233385365427
+116621986644249676039 105076678694475690385
+104987932455782713675 112063946124358686266
+116768967108862685383 113351703941294630458
+111975545018506506119 109813896768294978296
+113722523501415106689 115341960624782381062
+109388259228280605303 111091089527727420853
+109247306373593947755 101261243957067319422
+117477042502591652021 114549564725160709822
+116762461061414014956 116107530889292552664
+115360979797396777969 117421021456205115327
+101094440579835956866 102048265612444661933
+100084737546039360199 117377434815709898403
+104450760987525660219 109182513536739786206
+100084737546039360199 115622466243011136115
+109182513536739786206 111538009015644508967
+111091089527727420853 114549564725160709822
+113166718268343560861 113210431006401244170
+101832196121408756348 102216887206636463918
+111422286077941361166 114979733565079457374
+115064258994656104138 113164038788726940319
+113166718268343560861 103475991020114516832
+104450760987525660219 117421021456205115327
+104226321884965863264 108817085747440374986
+116762461061414014956 107133948555394893679
+107303107611470093265 117157132370347986579
+109778238062128383421 109809835379677001002
+109196389259504239326 116207701819773193333
+117421021456205115327 111310990991240556038
+118156281382429939997 117477042502591652021
+105076678694475690385 107753428759636856492
+107753428759636856492 113116318008017777871
+101246601531247561585 114918561167106576639
+110774757382682582490 103112588675637065591
+111091089527727420853 101704103161442695877
+117477042502591652021 116621986644249676039
+115360979797396777969 110727249496967897430
+112852253337028739987 107097980510051172895
+105901259206530390933 114979733565079457374
+109388259228280605303 110286587261352351537
+109174551750397653742 101185406398932804414
+115963821022986200770 109813896768294978296
+118418436905562612953 113612142759476883204
+112878918236054024365 110318982509514011806
+105662484616118909569 111538009015644508967
+109504122343901736603 114790574178411061829
+107896527414017792767 111091089527727420853
+105901259206530390933 109895887909967698705
+116773104421165750126 114152150496380806218
+115360979797396777969 100084737546039360199
+104412682128547752131 109247306373593947755
+103493459351957813291 101261243957067319422
+108832773152747423283 111538009015644508967
+116762461061414014956 107755092517418534815
+101261243957067319422 113210431006401244170
+111666959095947698908 105076678694475690385
+117550971892000156946 101629211371073711149
+115963821022986200770 103475991020114516832
+101720949843787442951 112339769006469685593
+115109077044202722504 101832196121408756348
+118245559326500322262 115739148151601573808
+101600577333348274552 107097980510051172895
+101832196121408756348 106096957694385885466
+106925005603331131101 114790574178411061829
+109304903996729396661 100084737546039360199
+100535338638690515335 108082478497335384404
+101261243957067319422 103691312271671214670
+108894779805940659869 111806715084467662398
+107587075873786034394 106925005603331131101
+109182513536739786206 103171849011748425097
+103016521073558596116 104450760987525660219
+108594511384403031361 114244914082871792125
+106695181236161584825 101629211371073711149
+106837636108890930395 102088173699409175139
+107753428759636856492 112063946124358686266
+113166718268343560861 115622466243011136115
+101832196121408756348 109388259228280605303
+109304903996729396661 109182513536739786206
+100269980559891536109 109174551750397653742
+103016521073558596116 118245559326500322262
+102484577222269062816 103660543175586203250
+108082478497335384404 109581870574956225297
+100871232248276491534 114821161730370452301
+115706830138905259568 103012564142649561853
+103171849011748425097 103012564142649561853
+103016521073558596116 100269980559891536109
+102088173699409175139 103691312271671214670
+105901259206530390933 115739378269261680935
+113164038788726940319 113920721823301219308
+111091089527727420853 103112588675637065591
+111422286077941361166 114244914082871792125
+115109077044202722504 106822154985570317672
+114758749740576519343 109895887909967698705
+111538009015644508967 101832196121408756348
+115739378269261680935 113166718268343560861
+110318982509514011806 109304903996729396661
+108255750659110762991 118264184129842070900
+112364132652438722780 117691391504351341685
+100535338638690515335 112339769006469685593
+113116318008017777871 118418436905562612953
+113920721823301219308 110774757382682582490
+106224435901697064976 101094440579835956866
+109581870574956225297 113920721823301219308
+116374117927631468606 102216887206636463918
+106096957694385885466 117921656724816772352
+102545157386069758709 108082478497335384404
+114790574178411061829 109412257237874861202
+117477042502591652021 101629211371073711149
+103325969492772452485 112063946124358686266
+109170680659355634945 100019606796298306813
+111707854651652464890 116926943858449614201
+104618664838382110366 118245559326500322262
+109388259228280605303 115706830138905259568
+117421021456205115327 100269980559891536109
+109182513536739786206 109504122343901736603
+103207773865797007066 114791921155677330282
+116762461061414014956 112339769006469685593
+114918561167106576639 109581870574956225297
+109174551750397653742 103112588675637065591
+115064258994656104138 111310990991240556038
+105901259206530390933 107519026002586025827
+104412682128547752131 118156281382429939997
+102403331307606219198 107968787521028284191
+101261243957067319422 112820512550939559523
+109388259228280605303 102654570556058167176
+100173452066172931939 106822154985570317672
+108894779805940659869 115109077044202722504
+103016521073558596116 105076678694475690385
+101849747879612982297 118207880179234484610
+116374117927631468606 101849747879612982297
+107519026002586025827 114461903539732780109
+114918561167106576639 116621986644249676039
+116491285067171323298 100262595546646927505
+102512310412972518336 116621986644249676039
+116107530889292552664 116762461061414014956
+102403331307606219198 101629211371073711149
+115478779964227301239 103012564142649561853
+102088173699409175139 105076678694475690385
+114918561167106576639 110649214929620497857
+104450760987525660219 116621986644249676039
+103691312271671214670 104066486855641683676
+104450760987525660219 116388668762198604003
+115565811010545226083 106695181236161584825
+102403331307606219198 104450760987525660219
+103207773865797007066 108869261693909788407
+114758749740576519343 109581870574956225297
+111666959095947698908 115565811010545226083
+110468193592032465149 105376842241046675559
+108817085747440374986 109182513536739786206
+106665185918564754695 109813896768294978296
+109196389259504239326 107303107611470093265
+103016521073558596116 117550971892000156946
+113612142759476883204 113068441549452664746
+108817085747440374986 108314259245584185142
+115963821022986200770 113801236315350503728
+115739378269261680935 109009089551467495747
+115302451851587317396 109074857816744029470
+108817085747440374986 113920721823301219308
+107753428759636856492 115963821022986200770
+118418436905562612953 111091089527727420853
+102216887206636463918 117691391504351341685
+109170680659355634945 109388259228280605303
+112339769006469685593 107519026002586025827
+112290361600843238282 103691312271671214670
+107896527414017792767 113612142759476883204
+114832793541825307503 109074857816744029470
+117691391504351341685 102048265612444661933
+117693415411676715849 115527632958457358109
+117691391504351341685 105400903062771750089
+102403331307606219198 118264184129842070900
+103207773865797007066 114979733565079457374
+101261243957067319422 112844561713780016118
+106312895983244085949 101261243957067319422
+103016521073558596116 100523784851251213675
+111091089527727420853 108082478497335384404
+111091089527727420853 111654284395316165338
+101094440579835956866 113475277239647026452
+102034052532213921839 106312895983244085949
+104870518715355770532 104383523254857614001
+105076678694475690385 115963821022986200770
+112944532473909341307 105822688186016123722
+112944532473909341307 111310990991240556038
+115064258994656104138 109813896768294978296
+118086737936443306746 109778238062128383421
+114790574178411061829 103012564142649561853
+112944532473909341307 113116318008017777871
+115360979797396777969 113210431006401244170
+109388259228280605303 101832771958125915909
+116374117927631468606 107117483540235115863
+113116318008017777871 102178700954286324866
+118245559326500322262 111538009015644508967
+115360979797396777969 113475277239647026452
+109778238062128383421 115064258994656104138
+100084737546039360199 109813896768294978296
+108894779805940659869 110367546804237452889
+118245559326500322262 111285782175840598932
+102216887206636463918 106312895983244085949
+104618664838382110366 112852253337028739987
+114790574178411061829 110318982509514011806
+114918561167106576639 111654284395316165338
+104618664838382110366 112063946124358686266
+113116318008017777871 113801236315350503728
+101246601531247561585 106925005603331131101
+106026445270708973611 110318982509514011806
+102216887206636463918 107234826207633309420
+115109077044202722504 103207773865797007066
+109304903996729396661 113210431006401244170
+103016521073558596116 103325969492772452485
+117421021456205115327 113164038788726940319
+115527632958457358109 108771911258181286059
+102512310412972518336 118207880179234484610
+100093902492789669774 108082478497335384404
+112276589013569458330 112844561713780016118
+112276589013569458330 102048265612444661933
+109196389259504239326 115302451851587317396
+115360979797396777969 116621986644249676039
+117157132370347986579 114790574178411061829
+117377434815709898403 101225750534150134109
+106122462724662012890 107117483540235115863
+110318982509514011806 103325969492772452485
+111422286077941361166 114918561167106576639
+110468193592032465149 113116318008017777871
+117421021456205115327 107117483540235115863
+102512310412972518336 100856165335040300712
+111666959095947698908 105376842241046675559
+112878918236054024365 102705549361550492663
+113166718268343560861 108817085747440374986
+115739378269261680935 116107530889292552664
+114758749740576519343 107753428759636856492
+118086737936443306746 117550971892000156946
+115109077044202722504 109388259228280605303
+115565811010545226083 106925005603331131101
+112944532473909341307 102034052532213921839
+115622466243011136115 113351703941294630458
+111975545018506506119 115739378269261680935
+100535338638690515335 107992936493665613654
+110728349411116483031 113624688426259176181
+116374117927631468606 105822688186016123722
+103171849011748425097 113210431006401244170
+111091089527727420853 109339805471557551388
+115017401467423642930 115739378269261680935
+105076678694475690385 109170680659355634945
+105901259206530390933 113612142759476883204
+116374117927631468606 107968787521028284191
+103171849011748425097 114079920283986872783
+111538009015644508967 111091089527727420853
+113475277239647026452 105400903062771750089
+117377434815709898403 109809835379677001002
+115047896996200277508 103171849011748425097
+103691312271671214670 102088173699409175139
+112364132652438722780 116768967108862685383
+113166718268343560861 115047896996200277508
+102545157386069758709 104412682128547752131
+117921656724816772352 108952536790629690817
+111091089527727420853 116374117927631468606
+105400903062771750089 102178700954286324866
+108894779805940659869 116192724891839469024
+117012574629989558450 110728349411116483031
+117550971892000156946 117691391504351341685
+104450760987525660219 108176814619778619437
+116762461061414014956 105705665708025552983
+111538009015644508967 102034052532213921839
+101225750534150134109 105400903062771750089
+115739148151601573808 104618664838382110366
+114152150496380806218 105703999093618427814
+109009089551467495747 115017401467423642930
+115341960624782381062 115390494223651393388
+104364058018116761460 115622466243011136115
+106224435901697064976 111091089527727420853
+110318982509514011806 105705665708025552983
+113612142759476883204 102048265612444661933
+115739378269261680935 104383523254857614001
+101057616370673656059 107234826207633309420
+114244914082871792125 113475277239647026452
+115017401467423642930 103582267051807991527
+109247306373593947755 118357356982727825178
+103100496883422151101 104560124403688998123
+105400903062771750089 113475277239647026452
+103207773865797007066 103493459351957813291
+106312895983244085949 114791921155677330282
+113166718268343560861 106695181236161584825
+107781761552417614958 111285782175840598932
+108817085747440374986 106345802537137414958
+115064258994656104138 112276589013569458330
+101261243957067319422 101704103161442695877
+114758749740576519343 104450760987525660219
+116207701819773193333 107117483540235115863
+117691391504351341685 104450760987525660219
+115565811010545226083 107781761552417614958
+111171416539633276676 116768967108862685383
+116374117927631468606 101213524574984631953
+101261243957067319422 118207880179234484610
+100269980559891536109 104560124403688998123
+101057616370673656059 112339769006469685593
+108255750659110762991 101225750534150134109
+114758749740576519343 108255750659110762991
+106263529626268281828 117921656724816772352
+111996414642516891950 102512310412972518336
+105705665708025552983 102425976203575211068
+112364132652438722780 105703999093618427814
+108817085747440374986 101057616370673656059
+117377434815709898403 107753428759636856492
+108000051912603578599 106189723444098348646
+103016521073558596116 115963821022986200770
+108869261693909788407 110728349411116483031
+108817085747440374986 104364058018116761460
+109581870574956225297 109074857816744029470
+114758749740576519343 106695181236161584825
+108314259245584185142 108952536790629690817
+105901259206530390933 102654570556058167176
+105705665708025552983 109247306373593947755
+115739378269261680935 102216887206636463918
+116207701819773193333 105400903062771750089
+108894779805940659869 109170680659355634945
+100535338638690515335 100397511207083609950
+115302451851587317396 111285782175840598932
+100535338638690515335 107234826207633309420
+100173452066172931939 109174551750397653742
+110318982509514011806 104450760987525660219
+116207701819773193333 107234826207633309420
+109581870574956225297 102425976203575211068
+111422286077941361166 102484577222269062816
+114918561167106576639 108255750659110762991
+111975545018506506119 113801236315350503728
+105822688186016123722 117550971892000156946
+114244914082871792125 116374117927631468606
+115622466243011136115 109519167630731639094
+118177473010760322916 109388259228280605303
+116374117927631468606 104987932455782713675
+115478779964227301239 107519026002586025827
+102705549361550492663 109504122343901736603
+101261243957067319422 106345802537137414958
+105006381068870463173 115047896996200277508
+100269980559891536109 107033731246200681024
+110318982509514011806 107781761552417614958
+111171416539633276676 106189723444098348646
+108787861479092510435 100537991844787325512
+109335713877994755095 115017401467423642930
+113166718268343560861 116374117927631468606
+101261243957067319422 108255750659110762991
+112878918236054024365 115017401467423642930
+103100496883422151101 112364132652438722780
+105076678694475690385 112339769006469685593
+115064258994656104138 118207880179234484610
+105400903062771750089 101225750534150134109
+112016425853417877466 113475277239647026452
+108082478497335384404 118320665823821681206
+101600577333348274552 103171849011748425097
+118086737936443306746 101094440579835956866
+112944532473909341307 102425976203575211068
+108000051912603578599 102425976203575211068
+100173452066172931939 118207880179234484610
+104450760987525660219 109339805471557551388
+102403331307606219198 114918561167106576639
+115963821022986200770 115360979797396777969
+105207943512906810696 109813896768294978296
+107129852879758941909 109388259228280605303
+112016425853417877466 110727249496967897430
+115360979797396777969 114791921155677330282
+106312895983244085949 109074857816744029470
+115565811010545226083 115622466243011136115
+100397511207083609950 103325969492772452485
+115622466243011136115 107587075873786034394
+112276589013569458330 111310990991240556038
+103207773865797007066 107133948555394893679
+104618664838382110366 117421021456205115327
+112944532473909341307 109074857816744029470
+111261496925076985134 104870518715355770532
+111654284395316165338 104450760987525660219
+112364132652438722780 115109077044202722504
+102088173699409175139 100173452066172931939
+103207773865797007066 109412257237874861202
+117691391504351341685 107896527414017792767
+101261243957067319422 103716847685048716973
+114791921155677330282 117693415411676715849
+108894779805940659869 106096957694385885466
+106122462724662012890 109813896768294978296
+117550971892000156946 113475277239647026452
+113166718268343560861 100093902492789669774
+109778238062128383421 107896527414017792767
+118017787526225833770 117921656724816772352
+100535338638690515335 109809835379677001002
+108817085747440374986 106925005603331131101
+100397511207083609950 110286587261352351537
+103207773865797007066 111091089527727420853
+101261243957067319422 105662484616118909569
+108574688020691152748 105634350975670602787
+101261243957067319422 111285782175840598932
+115739378269261680935 112276589013569458330
+102545157386069758709 111337216646096594888
+111091089527727420853 110727249496967897430
+109174551750397653742 102545157386069758709
+117377434815709898403 101629211371073711149
+113164038788726940319 100269980559891536109
+100397511207083609950 100523784851251213675
+118245559326500322262 111171416539633276676
+103691312271671214670 112063946124358686266
+115739148151601573808 101600577333348274552
+100535338638690515335 103112588675637065591
+105901259206530390933 113117251731252114390
+108016228299742896694 114832793541825307503
+117550971892000156946 104964811874969620954
+112276589013569458330 113920721823301219308
+103691312271671214670 115739378269261680935
+117550971892000156946 109519167630731639094
+107896527414017792767 109182513536739786206
+108817085747440374986 108176814619778619437
+114918561167106576639 103325969492772452485
+114991987213662121376 109504122343901736603
+116491285067171323298 110318982509514011806
+100535338638690515335 109581870574956225297
+113920721823301219308 107117483540235115863
+112276589013569458330 107117483540235115863
+117477042502591652021 101704103161442695877
+103207773865797007066 106100296973968329853
+102216887206636463918 107117483540235115863
+111422286077941361166 104618664838382110366
+107006059340452534782 113612142759476883204
+109778238062128383421 101569655404865588155
+109304903996729396661 105705665708025552983
+107519026002586025827 103716847685048716973
+101261243957067319422 111654284395316165338
+114991987213662121376 114079920283986872783
+106026445270708973611 116107530889292552664
+100856165335040300712 107626068753267217775
+118357356982727825178 113116318008017777871
+109174551750397653742 102048265612444661933
+109504122343901736603 107519026002586025827
+109182513536739786206 106695181236161584825
+104450760987525660219 107753428759636856492
+100353346783543697435 111285782175840598932
+113351703941294630458 106189723444098348646
+118357356982727825178 108082478497335384404
+117691391504351341685 101057616370673656059
+114991987213662121376 109009089551467495747
+113164038788726940319 106189723444098348646
+111310990991240556038 117691391504351341685
+115739378269261680935 111285782175840598932
+116207701819773193333 115527632958457358109
+113612142759476883204 109581870574956225297
+115739378269261680935 112844561713780016118
+100397511207083609950 103207773865797007066
+105901259206530390933 107133948555394893679
+104450760987525660219 107755092517418534815
+113047102292798770205 111285782175840598932
+111538009015644508967 103171849011748425097
+118017787526225833770 114244914082871792125
+103691312271671214670 108894779805940659869
+111091089527727420853 109182513536739786206
+111091089527727420853 102088173699409175139
+115883560681104199404 105705665708025552983
+113116318008017777871 104364058018116761460
+100093902492789669774 110286587261352351537
+108832773152747423283 107234826207633309420
+100084737546039360199 107133948555394893679
+114549564725160709822 100173452066172931939
+115739378269261680935 114791921155677330282
+113920721823301219308 113116318008017777871
+114244914082871792125 118418436905562612953
+112364132652438722780 109581870574956225297
+115706830138905259568 114790574178411061829
+115302451851587317396 105376842241046675559
+113920721823301219308 109809835379677001002
+113116318008017777871 117421021456205115327
+114549564725160709822 107793717361981126032
+104450760987525660219 102048265612444661933
+100871232248276491534 114152150496380806218
+106026445270708973611 107033731246200681024
+114918561167106576639 107133948555394893679
+111091089527727420853 112364132652438722780
+118418436905562612953 112844561713780016118
+108129202557078877094 104412682128547752131
+112339769006469685593 103716847685048716973
+106623900962110772648 114856222286197208502
+101246601531247561585 110649214929620497857
+113475277239647026452 109174551750397653742
+107133948555394893679 112820512550939559523
+113166718268343560861 108314259245584185142
+113068441549452664746 118264184129842070900
+117550971892000156946 103325969492772452485
+116762461061414014956 100019606796298306813
+112016425853417877466 103716847685048716973
+104618664838382110366 105076678694475690385
+111091089527727420853 108817085747440374986
+112276589013569458330 117421021456205115327
+116621986644249676039 109412257237874861202
+111091089527727420853 101261243957067319422
+102010610384685218706 107303107611470093265
+114790574178411061829 102048265612444661933
+111091089527727420853 118357356982727825178
+117421021456205115327 103207773865797007066
+103493459351957813291 112844561713780016118
+117691391504351341685 102178700954286324866
+111261496925076985134 104612091113514802664
+102484577222269062816 104450760987525660219
+109504122343901736603 115622466243011136115
+107753428759636856492 103100496883422151101
+101261243957067319422 102216887206636463918
+108314259245584185142 111654284395316165338
+109170680659355634945 103475991020114516832
+109778238062128383421 109895887909967698705
+109581870574956225297 101261243957067319422
+118264184129842070900 109174551750397653742
+116773104421165750126 108894779805940659869
+106925005603331131101 109174551750397653742
+102654570556058167176 103493459351957813291
+115109077044202722504 115739378269261680935
+100093902492789669774 113210431006401244170
+108082478497335384404 101094440579835956866
+111091089527727420853 107781761552417614958
+108314259245584185142 113166718268343560861
+108082478497335384404 103012564142649561853
+107090629815001792243 107755092517418534815
+100397511207083609950 103012564142649561853
+107896527414017792767 108434394145774737013
+102088173699409175139 106100296973968329853
+109170680659355634945 106822154985570317672
+113612142759476883204 117693415411676715849
+113116318008017777871 105400903062771750089
+109174551750397653742 109778238062128383421
+115360979797396777969 106312895983244085949
+101246601531247561585 107968787521028284191
+109778238062128383421 105705665708025552983
+115360979797396777969 109074857816744029470
+106312895983244085949 104450760987525660219
+112339769006469685593 114790574178411061829
+104612091113514802664 112063946124358686266
+112016425853417877466 115360979797396777969
+107781761552417614958 108000051912603578599
+116773104421165750126 112364132652438722780
+104450760987525660219 114918561167106576639
+106026445270708973611 113068441549452664746
+103016521073558596116 101185406398932804414
+100415723513846680553 106695181236161584825
+112339769006469685593 103012564142649561853
+111091089527727420853 102010610384685218706
+111310990991240556038 113247423264358423892
+113920721823301219308 113612142759476883204
+107781761552417614958 115622466243011136115
+115109077044202722504 100173452066172931939
+109304903996729396661 117691391504351341685
+115064258994656104138 112844561713780016118
+103171849011748425097 104450760987525660219
+106122462724662012890 114790574178411061829
+112364132652438722780 112844561713780016118
+111091089527727420853 100262595546646927505
+109581870574956225297 116374117927631468606
+109809835379677001002 101213524574984631953
+111091089527727420853 110649214929620497857
+116762461061414014956 107519026002586025827
+107519026002586025827 118207880179234484610
+115963821022986200770 107033731246200681024
+103493459351957813291 116621986644249676039
+106695181236161584825 105822688186016123722
+109809835379677001002 118207880179234484610
+112364132652438722780 114791921155677330282
+100173452066172931939 115739378269261680935
+103207773865797007066 104560124403688998123
+115963821022986200770 109895887909967698705
+107519026002586025827 107587075873786034394
+100397511207083609950 100535338638690515335
+106026445270708973611 116773104421165750126
+115047896996200277508 113612142759476883204
+101225750534150134109 103325969492772452485
+105822688186016123722 106312895983244085949
+109174551750397653742 103716847685048716973
+115739148151601573808 115963821022986200770
+113116318008017777871 109809835379677001002
+117377434815709898403 115478779964227301239
+109778238062128383421 104364058018116761460
+115739378269261680935 103325969492772452485
+108314259245584185142 107033731246200681024
+116768967108862685383 103493459351957813291
+105076678694475690385 100397511207083609950
+106122462724662012890 103100496883422151101
+101185406398932804414 103325969492772452485
+100173452066172931939 117693415411676715849
+113047102292798770205 110649214929620497857
+114549564725160709822 115047896996200277508
+110728349411116483031 117921656724816772352
+105705665708025552983 107896527414017792767
+115302451851587317396 104277680236688325392
+112364132652438722780 106189723444098348646
+111337216646096594888 108000051912603578599
+113166718268343560861 104964811874969620954
+100415723513846680553 100019606796298306813
+107699711897781234810 113166718268343560861
+111091089527727420853 111601729473858041964
+101057616370673656059 100535338638690515335
+108255750659110762991 107587075873786034394
+117691391504351341685 115109077044202722504
+112339769006469685593 100535338638690515335
+112944532473909341307 102545157386069758709
+100173452066172931939 114791921155677330282
+116762461061414014956 114244914082871792125
+112944532473909341307 107033731246200681024
+106026445270708973611 115739378269261680935
+115478779964227301239 106189723444098348646
+103207773865797007066 104191514233385365427
+100535338638690515335 115527632958457358109
+115739378269261680935 116621986644249676039
+111975545018506506119 113117251731252114390
+111538009015644508967 116927391465690022495
+109504122343901736603 107968787521028284191
+104612091113514802664 107781761552417614958
+105705665708025552983 107133948555394893679
+100093902492789669774 103716847685048716973
+113166718268343560861 114549564725160709822
+109247306373593947755 114991987213662121376
+109581870574956225297 103660543175586203250
+115527632958457358109 105901259206530390933
+107196172964000631645 105076678694475690385
+110318982509514011806 109388259228280605303
+109304903996729396661 107033731246200681024
+102034052532213921839 115047896996200277508
+104618664838382110366 111538009015644508967
+112016425853417877466 116207701819773193333
+115341960624782381062 107090629815001792243
+112820512550939559523 100535338638690515335
+106026445270708973611 110209787594312878744
+109388259228280605303 111538009015644508967
+112276589013569458330 109519167630731639094
+112339769006469685593 115622466243011136115
+115963821022986200770 111654284395316165338
+103325969492772452485 102178700954286324866
+105705665708025552983 108574688020691152748
+101094440579835956866 107117483540235115863
+112820512550939559523 101261243957067319422
+109780617142585395916 103475991020114516832
+108000051912603578599 111538009015644508967
+105076678694475690385 104412682128547752131
+107896527414017792767 102178700954286324866
+107303107611470093265 110774757382682582490
+108817085747440374986 107117483540235115863
+109174551750397653742 117683744929337064105
+109304903996729396661 108255750659110762991
+107781761552417614958 106695181236161584825
+116768967108862685383 100262595546646927505
+116374117927631468606 107896527414017792767
+115565811010545226083 100269980559891536109
+115739148151601573808 114632854492678778509
+109182513536739786206 102034052532213921839
+115527632958457358109 107519026002586025827
+117157132370347986579 117377434815709898403
+101057616370673656059 100269980559891536109
+100269980559891536109 107753428759636856492
+107793717361981126032 115109077044202722504
+115622466243011136115 109813896768294978296
+113612142759476883204 111666959095947698908
+102403331307606219198 103660543175586203250
+109182513536739786206 107992936493665613654
+116762461061414014956 118418436905562612953
+115302451851587317396 113612142759476883204
+114549564725160709822 103207773865797007066
+105376842241046675559 103171849011748425097
+107896527414017792767 102048265612444661933
+100397511207083609950 104870518715355770532
+107781761552417614958 112944532473909341307
+102034052532213921839 114791921155677330282
+114244914082871792125 110649214929620497857
+116374117927631468606 100523784851251213675
+114244914082871792125 103475991020114516832
+103020619410065980303 106925005603331131101
+114244914082871792125 118264184129842070900
+100939735623367202041 107303107611470093265
+109304903996729396661 115622466243011136115
+112339769006469685593 103112588675637065591
+112364132652438722780 103325969492772452485
+104450760987525660219 106345802537137414958
+113116318008017777871 112339769006469685593
+118418436905562612953 103207773865797007066
+104870518715355770532 115920538018564742940
+107196172964000631645 107753428759636856492
+100535338638690515335 107519026002586025827
+100535338638690515335 118418436905562612953
+105901259206530390933 109519167630731639094
+109388259228280605303 106096957694385885466
+108000051912603578599 115706830138905259568
+114991987213662121376 101246601531247561585
+100397511207083609950 111654284395316165338
+111091089527727420853 106224435901697064976
+103153499873703329897 115017401467423642930
+109581870574956225297 100269980559891536109
+107896527414017792767 113116318008017777871
+118207880179234484610 102048265612444661933
+113164038788726940319 110727249496967897430
+105400903062771750089 107117483540235115863
+114079920283986872783 104364058018116761460
+112364132652438722780 111654284395316165338
+111422286077941361166 111091089527727420853
+104870518715355770532 109895887909967698705
+104364058018116761460 102178700954286324866
+111091089527727420853 112339769006469685593
+111310990991240556038 103171849011748425097
+115302451851587317396 115478779964227301239
+116192724891839469024 109388259228280605303
+111654284395316165338 111091089527727420853
+109170680659355634945 115739148151601573808
+109182513536739786206 115863474911002159675
+111091089527727420853 102216887206636463918
+106312895983244085949 115863474911002159675
+108817085747440374986 113247423264358423892
+100535338638690515335 112276589013569458330
+116762461061414014956 102688620589277847136
+111091089527727420853 107117483540235115863
+105822688186016123722 103475991020114516832
+107519026002586025827 100535338638690515335
+101832196121408756348 118156281382429939997
+109809835379677001002 104987932455782713675
+100856165335040300712 116927391465690022495
+115739148151601573808 104450760987525660219
+105076678694475690385 102545157386069758709
+116621986644249676039 104560124403688998123
+114244914082871792125 103100496883422151101
+115360979797396777969 101261243957067319422
+105822688186016123722 106695181236161584825
+116388668762198604003 109074857816744029470
+104450760987525660219 102545157386069758709
+107896527414017792767 109412257237874861202
+112276589013569458330 107587075873786034394
+105901259206530390933 115017401467423642930
+109778238062128383421 100269980559891536109
+114918561167106576639 113920721823301219308
+113166718268343560861 107992936493665613654
+112820512550939559523 111285782175840598932
+107519026002586025827 109895887909967698705
+116207701819773193333 113210431006401244170
+115478779964227301239 102048265612444661933
+115963821022986200770 107196172964000631645
+105705665708025552983 105400903062771750089
+115403621788538540544 109780617142585395916
+104870518715355770532 108176814619778619437
+102545157386069758709 117477042502591652021
+115360979797396777969 100537991844787325512
+114549564725160709822 103100496883422151101
+107896527414017792767 114244914082871792125
+107753428759636856492 101569655404865588155
+108952536790629690817 107968787521028284191
+101246601531247561585 118156281382429939997
+110318982509514011806 106665185918564754695
+112016425853417877466 111538009015644508967
+113475277239647026452 116388668762198604003
+108817085747440374986 108082478497335384404
+103112588675637065591 118264184129842070900
+109778238062128383421 103660543175586203250
+112339769006469685593 115360979797396777969
+104364058018116761460 113210431006401244170
+116207701819773193333 109074857816744029470
+106224435901697064976 110727249496967897430
+111538009015644508967 113801236315350503728
+104364058018116761460 113801236315350503728
+118245559326500322262 106189723444098348646
+102654570556058167176 115403621788538540544
+115302451851587317396 110014891370822989957
+115392876317176762477 111707854651652464890
+112276589013569458330 101261243957067319422
+104612091113514802664 105376842241046675559
+101261243957067319422 104450760987525660219
+114244914082871792125 112852253337028739987
+115739378269261680935 100001826804813287036
+101569655404865588155 101225750534150134109
+107133948555394893679 113475277239647026452
+109304903996729396661 118357356982727825178
+108082478497335384404 112364132652438722780
+115963821022986200770 118320665823821681206
+110318982509514011806 109895887909967698705
+103016521073558596116 106189723444098348646
+115739148151601573808 104560124403688998123
+112276589013569458330 112339769006469685593
+117691391504351341685 115622466243011136115
+102545157386069758709 101057616370673656059
+115302451851587317396 107033731246200681024
+101569655404865588155 117377434815709898403
+116768967108862685383 105822688186016123722
+100856165335040300712 115341960624782381062
+114918561167106576639 104618664838382110366
+108787861479092510435 103207773865797007066
+113920721823301219308 102048265612444661933
+115706830138905259568 108082478497335384404
+113116318008017777871 106189723444098348646
+115527632958457358109 103493459351957813291
+107519026002586025827 104450760987525660219
+104987932455782713675 113116318008017777871
+116621986644249676039 111091089527727420853
+100871232248276491534 103100496883422151101
+101720949843787442951 115739148151601573808
+104870518715355770532 115047896996200277508
+115739378269261680935 100397511207083609950
+115706830138905259568 103325969492772452485
+107519026002586025827 104612091113514802664
+104383523254857614001 100871232248276491534
+103016521073558596116 104987932455782713675
+106026445270708973611 106312895983244085949
+109335713877994755095 109780617142585395916
+113116318008017777871 109304903996729396661
+112364132652438722780 118418436905562612953
+115478779964227301239 109581870574956225297
+118086737936443306746 113475277239647026452
+115527632958457358109 112276589013569458330
+103016521073558596116 101126226710566561379
+111538009015644508967 106695181236161584825
+101094440579835956866 104560124403688998123
+103171849011748425097 106189723444098348646
+105207943512906810696 105030465637303791249
+110731951130561423918 117921656724816772352
+106122462724662012890 112820512550939559523
+108082478497335384404 113475277239647026452
+109182513536739786206 103100496883422151101
+100001826804813287036 100871232248276491534
+102034052532213921839 108082478497335384404
+109009089551467495747 115739378269261680935
+100093902492789669774 118418436905562612953
+113116318008017777871 107587075873786034394
+101261243957067319422 115565811010545226083
+104987932455782713675 113117251731252114390
+103171849011748425097 111091089527727420853
+100535338638690515335 115064258994656104138
+116762461061414014956 110318982509514011806
+108832773152747423283 110286587261352351537
+100535338638690515335 112844561713780016118
+108082478497335384404 106312895983244085949
+106312895983244085949 101185406398932804414
+112364132652438722780 101094440579835956866
+112276589013569458330 109813896768294978296
+103171849011748425097 114632854492678778509
+104618664838382110366 109519167630731639094
+110728349411116483031 107308976571078250231
+100084737546039360199 107992936493665613654
+113116318008017777871 106925005603331131101
+116388668762198604003 117691391504351341685
+104412682128547752131 106925005603331131101
+116207701819773193333 115064258994656104138
+106812355611465528242 100856165335040300712
+117377434815709898403 109412257237874861202
+112276589013569458330 107097980510051172895
+115739148151601573808 103660543175586203250
+105376842241046675559 115047896996200277508
+113166718268343560861 102178700954286324866
+117377434815709898403 116768967108862685383
+108143819792337559199 114758749740576519343
+109304903996729396661 107234826207633309420
+102545157386069758709 103325969492772452485
+104612091113514802664 101720949843787442951
+114549564725160709822 113801236315350503728
+114918561167106576639 113351703941294630458
+105006381068870463173 108894779805940659869
+111091089527727420853 105705665708025552983
+117421021456205115327 106189723444098348646
+109388259228280605303 104412682128547752131
+104870518715355770532 114856222286197208502
+115706830138905259568 105705665708025552983
+109388259228280605303 101246601531247561585
+117691391504351341685 112063946124358686266
+108817085747440374986 103171849011748425097
+115739378269261680935 108082478497335384404
+103660543175586203250 116388668762198604003
+116374117927631468606 116388668762198604003
+115360979797396777969 102178700954286324866
+108817085747440374986 115739148151601573808
+106224435901697064976 114632854492678778509
+116207701819773193333 101094440579835956866
+111806715084467662398 101704103161442695877
+103016521073558596116 107303107611470093265
+101213524574984631953 115478779964227301239
+101057616370673656059 110209787594312878744
+112339769006469685593 112878918236054024365
+102512310412972518336 100523784851251213675
+106812355611465528242 114152150496380806218
+108894779805940659869 101832771958125915909
+108243648069327964538 103537420161725387429
+116762461061414014956 115478779964227301239
+115109077044202722504 115017401467423642930
+101225750534150134109 115478779964227301239
+103153499873703329897 106623900962110772648
+112016425853417877466 101057616370673656059
+105076678694475690385 102654570556058167176
+111091089527727420853 110209787594312878744
+102048265612444661933 103171849011748425097
+112016425853417877466 107090629815001792243
+106122462724662012890 103716847685048716973
+110728349411116483031 100871232248276491534
+104383523254857614001 106096957694385885466
+112820512550939559523 109412257237874861202
+113166718268343560861 105901259206530390933
+105632941129656401917 116762461061414014956
+100535338638690515335 107896527414017792767
+102484577222269062816 108952536790629690817
+100269980559891536109 113475277239647026452
+114918561167106576639 115622466243011136115
+111538009015644508967 114979733565079457374
+103207773865797007066 103582267051807991527
+112339769006469685593 107234826207633309420
+111975545018506506119 105901259206530390933
+107133948555394893679 106189723444098348646
+101263833299534001868 118245559326500322262
+115109077044202722504 110367546804237452889
+110318982509514011806 111538009015644508967
+111337216646096594888 108817085747440374986
+111654284395316165338 116388668762198604003
+118245559326500322262 108176814619778619437
+111538009015644508967 102178700954286324866
+108869261693909788407 115739378269261680935
+103325969492772452485 113116318008017777871
+113166718268343560861 108952536790629690817
+105400903062771750089 103112588675637065591
+109504122343901736603 101629211371073711149
+114244914082871792125 106100296973968329853
+118086737936443306746 118264184129842070900
+116762461061414014956 114979733565079457374
+100535338638690515335 118320665823821681206
+106665185918564754695 105705665708025552983
+115565811010545226083 117683744929337064105
+107033731246200681024 117421021456205115327
+107519026002586025827 112844561713780016118
+115739378269261680935 101092351652012588236
+107090629815001792243 105703999093618427814
+111975545018506506119 115360979797396777969
+108082478497335384404 101213524574984631953
+105076678694475690385 101832196121408756348
+115963821022986200770 100269980559891536109
+113116318008017777871 112276589013569458330
+116762461061414014956 107090629815001792243
+100001826804813287036 115341960624782381062
+103207773865797007066 107006059340452534782
+104364058018116761460 103100496883422151101
+109170680659355634945 103207773865797007066
+116762461061414014956 110727249496967897430
+112820512550939559523 112063946124358686266
+102512310412972518336 112157588278319557323
+111666959095947698908 109813896768294978296
+106224435901697064976 105400903062771750089
+100257676670422660178 102512310412972518336
+101832196121408756348 116621986644249676039
+112364132652438722780 102654570556058167176
+118017787526225833770 107699711897781234810
+109009089551467495747 100019606796298306813
+113116318008017777871 103493459351957813291
+103207773865797007066 115565811010545226083
+100084737546039360199 107234826207633309420
+108434394145774737013 116927391465690022495
+112276589013569458330 109074857816744029470
+100084737546039360199 111310990991240556038
+104450760987525660219 112063946124358686266
+109170680659355634945 115739378269261680935
+115739148151601573808 104612091113514802664
+116762461061414014956 100724441783060587617
+103325969492772452485 107117483540235115863
+113116318008017777871 111538009015644508967
+116762461061414014956 104450760987525660219
+108243648069327964538 107090629815001792243
+110731951130561423918 117012574629989558450
+117477042502591652021 109778238062128383421
+105006381068870463173 109581870574956225297
+100269980559891536109 113164038788726940319
+104612091113514802664 104560124403688998123
+112944532473909341307 114790574178411061829
+100093902492789669774 116773104421165750126
+107753428759636856492 105400903062771750089
+112016425853417877466 106189723444098348646
+112016425853417877466 115302451851587317396
+113801236315350503728 101261243957067319422
+108314259245584185142 101263833299534001868
+118156281382429939997 104412682128547752131
+112878918236054024365 104191514233385365427
+109174551750397653742 117421021456205115327
+117691391504351341685 107968787521028284191
+109182513536739786206 117421021456205115327
+116374117927631468606 118320665823821681206
+112016425853417877466 109304903996729396661
+108314259245584185142 100093902492789669774
+116762461061414014956 102034052532213921839
+111091089527727420853 117477042502591652021
+115302451851587317396 109813896768294978296
+100397511207083609950 100871232248276491534
+109182513536739786206 116927391465690022495
+106096957694385885466 105662484616118909569
+114152150496380806218 106100296973968329853
+107033731246200681024 113351703941294630458
+114790574178411061829 103171849011748425097
+107753428759636856492 107117483540235115863
+103691312271671214670 114821161730370452301
+104612091113514802664 115478779964227301239
+105705665708025552983 103100496883422151101
+109304903996729396661 113117251731252114390
+117377434815709898403 101849747879612982297
+114152150496380806218 104792450024518550569
+102403331307606219198 118245559326500322262
+102034052532213921839 118357356982727825178
+101092351652012588236 116773104421165750126
+108817085747440374986 115706830138905259568
+107006059340452534782 105376842241046675559
+106812355611465528242 103207773865797007066
+115302451851587317396 109388259228280605303
+103016521073558596116 110727249496967897430
+115963821022986200770 117421021456205115327
+111975545018506506119 107033731246200681024
+104618664838382110366 108894779805940659869
+109388259228280605303 109170680659355634945
+113920721823301219308 109813896768294978296
+110731951130561423918 111032944513257134357
+112276589013569458330 104450760987525660219
+110774757382682582490 101261243957067319422
+101832196121408756348 115047896996200277508
+103112588675637065591 111091089527727420853
+115739148151601573808 104412682128547752131
+109388259228280605303 113801236315350503728
+113351703941294630458 103716847685048716973
+117377434815709898403 102034052532213921839
+109304903996729396661 113116318008017777871
+100397511207083609950 110318982509514011806
+101849747879612982297 118418436905562612953
+104450760987525660219 109174551750397653742
+109809835379677001002 111310990991240556038
+113801236315350503728 115360979797396777969
+114244914082871792125 115739148151601573808
+106096957694385885466 108894779805940659869
+116762461061414014956 111310990991240556038
+109174551750397653742 105400903062771750089
+100084737546039360199 107896527414017792767
+109196389259504239326 115706830138905259568
+113116318008017777871 106695181236161584825
+111538009015644508967 107992936493665613654
+102034052532213921839 107097980510051172895
+115739378269261680935 111337216646096594888
+102048265612444661933 102545157386069758709
+104450760987525660219 118245559326500322262
+109504122343901736603 114461903539732780109
+118086737936443306746 116762461061414014956
+111707854651652464890 113166718268343560861
+109174551750397653742 109412257237874861202
+114734885658057433270 101246601531247561585
+115565811010545226083 113116318008017777871
+105076678694475690385 103716847685048716973
+109504122343901736603 114632854492678778509
+104987932455782713675 110286587261352351537
+116374117927631468606 103475991020114516832
+111091089527727420853 100535338638690515335
+100084737546039360199 113210431006401244170
+117691391504351341685 105076678694475690385
+109388259228280605303 115017401467423642930
+116374117927631468606 107133948555394893679
+109581870574956225297 109519167630731639094
+104450760987525660219 118207880179234484610
+105662484616118909569 103153499873703329897
+108000051912603578599 103171849011748425097
+112944532473909341307 114758749740576519343
+109809835379677001002 109074857816744029470
+115064258994656104138 113210431006401244170
+114244914082871792125 101704103161442695877
+102048265612444661933 109813896768294978296
+101057616370673656059 107519026002586025827
+115341960624782381062 112016425853417877466
+117377434815709898403 109581870574956225297
+102403331307606219198 107781761552417614958
+107699711897781234810 103207773865797007066
+107519026002586025827 111310990991240556038
+107006059340452534782 115360979797396777969
+103171849011748425097 110727249496967897430
+106312895983244085949 100535338638690515335
+100397511207083609950 109895887909967698705
+117377434815709898403 107968787521028284191
+103100496883422151101 103012564142649561853
+103100496883422151101 102048265612444661933
+111538009015644508967 108894779805940659869
+109581870574956225297 107033731246200681024
+105901259206530390933 105006381068870463173
+104364058018116761460 109778238062128383421
+109182513536739786206 107519026002586025827
+101261243957067319422 116621986644249676039
+102034052532213921839 111310990991240556038
+103660543175586203250 115739148151601573808
+112276589013569458330 103112588675637065591
+115017401467423642930 116621986644249676039
+111538009015644508967 106096957694385885466
+113116318008017777871 110727249496967897430
+106026445270708973611 114790574178411061829
+103016521073558596116 111310990991240556038
+100084737546039360199 107968787521028284191
+117377434815709898403 103207773865797007066
+102034052532213921839 104364058018116761460
+110468193592032465149 116388668762198604003
+103171849011748425097 100523784851251213675
+109304903996729396661 109813896768294978296
+101261243957067319422 115622466243011136115
+115739378269261680935 103582267051807991527
+108000051912603578599 114791921155677330282
+115527632958457358109 100397511207083609950
+116207701819773193333 101213524574984631953
+100397511207083609950 103112588675637065591
+109388259228280605303 103582267051807991527
+107896527414017792767 117550971892000156946
+106096957694385885466 106263529626268281828
+113166718268343560861 118418436905562612953
+115706830138905259568 109778238062128383421
+102034052532213921839 118264184129842070900
+112364132652438722780 113116318008017777871
+101720949843787442951 111091089527727420853
+107196172964000631645 103207773865797007066
+117550971892000156946 116388668762198604003
+103171849011748425097 108574688020691152748
+100173452066172931939 103325969492772452485
+109778238062128383421 111091089527727420853
+117377434815709898403 109895887909967698705
+116207701819773193333 115302451851587317396
+103207773865797007066 113351703941294630458
+111091089527727420853 104987932455782713675
+118086737936443306746 107303107611470093265
+109504122343901736603 114979733565079457374
+112276589013569458330 115360979797396777969
+107753428759636856492 111666959095947698908
+113166718268343560861 105822688186016123722
+113116318008017777871 115863474911002159675
+105901259206530390933 111654284395316165338
+116388668762198604003 114790574178411061829
+113047102292798770205 109339805471557551388
+101261243957067319422 113351703941294630458
+107699711897781234810 106096957694385885466
+115527632958457358109 109895887909967698705
+104412682128547752131 108129202557078877094
+118418436905562612953 101261243957067319422
+109247306373593947755 106345802537137414958
+100084737546039360199 103716847685048716973
+106623900962110772648 106026445270708973611
+107196172964000631645 108082478497335384404
+114152150496380806218 107090629815001792243
+107090629815001792243 114359738470992181937
+113351703941294630458 115622466243011136115
+114991987213662121376 104450760987525660219
+101057616370673656059 102216887206636463918
+113166718268343560861 116927391465690022495
+100871232248276491534 103493459351957813291
+100173452066172931939 102178700954286324866
+113612142759476883204 117421021456205115327
+100084737546039360199 117421021456205115327
+107896527414017792767 100397511207083609950
+110318982509514011806 108000051912603578599
+100269980559891536109 113612142759476883204
+110318982509514011806 116621986644249676039
+108817085747440374986 107519026002586025827
+115739378269261680935 104412682128547752131
+109809835379677001002 112364132652438722780
+101261243957067319422 105822688186016123722
+108952536790629690817 102216887206636463918
+117377434815709898403 110318982509514011806
+115360979797396777969 113801236315350503728
+106122462724662012890 115565811010545226083
+109170680659355634945 112063946124358686266
+105901259206530390933 102178700954286324866
+101094440579835956866 108082478497335384404
+115064258994656104138 113116318008017777871
+116388668762198604003 107117483540235115863
+102403331307606219198 103475991020114516832
+111091089527727420853 107519026002586025827
+115047896996200277508 109813896768294978296
+117691391504351341685 103112588675637065591
+115360979797396777969 105634350975670602787
+108832773152747423283 107896527414017792767
+117421021456205115327 106312895983244085949
+115739378269261680935 108817085747440374986
+110318982509514011806 107753428759636856492
+100084737546039360199 115360979797396777969
+112339769006469685593 109581870574956225297
+107519026002586025827 117421021456205115327
+113920721823301219308 115622466243011136115
+105076678694475690385 115109077044202722504
+102484577222269062816 115047896996200277508
+102545157386069758709 116107530889292552664
+113351703941294630458 100537991844787325512
+102403331307606219198 114632854492678778509
+111538009015644508967 103100496883422151101
+104612091113514802664 118357356982727825178
+101261243957067319422 117421021456205115327
+110318982509514011806 116388668762198604003
+108314259245584185142 109074857816744029470
+116374117927631468606 100173452066172931939
+113164038788726940319 111091089527727420853
+106026445270708973611 101057616370673656059
+105901259206530390933 102216887206636463918
+117691391504351341685 108082478497335384404
+115341960624782381062 115109077044202722504
+100269980559891536109 103112588675637065591
+117691391504351341685 101849747879612982297
+113722523501415106689 111601729473858041964
+104364058018116761460 107781761552417614958
+107753428759636856492 114948739867290323960
+103493459351957813291 102178700954286324866
+109809835379677001002 111285782175840598932
+101261243957067319422 108832773152747423283
+100871232248276491534 102088173699409175139
+117921656724816772352 115739378269261680935
+109170680659355634945 102545157386069758709
+105705665708025552983 110286587261352351537
+109009089551467495747 101246601531247561585
+116207701819773193333 117693415411676715849
+107753428759636856492 114758749740576519343
+109304903996729396661 118207880179234484610
+112016425853417877466 115863474911002159675
+115706830138905259568 104191514233385365427
+109247306373593947755 107753428759636856492
+108314259245584185142 101849747879612982297
+116388668762198604003 109809835379677001002
+109174551750397653742 104560124403688998123
+111091089527727420853 111666959095947698908
+110014891370822989957 111996414642516891950
+100084737546039360199 113920721823301219308
+108899222163640713555 100871232248276491534
+109174551750397653742 113164038788726940319
+107753428759636856492 104987932455782713675
+101213524574984631953 106189723444098348646
+103207773865797007066 103716847685048716973
+106026445270708973611 116388668762198604003
+101246601531247561585 113351703941294630458
+108894779805940659869 106026445270708973611
+115478779964227301239 109182513536739786206
+117421021456205115327 109074857816744029470
+111310990991240556038 108255750659110762991
+115109077044202722504 103475991020114516832
+105006381068870463173 106837636108890930395
+113166718268343560861 109388259228280605303
+115403621788538540544 109170680659355634945
+112364132652438722780 101261243957067319422
+108314259245584185142 102178700954286324866
+101057616370673656059 115360979797396777969
+118086737936443306746 108771911258181286059
+104612091113514802664 113247423264358423892
+113116318008017777871 114948739867290323960
+112364132652438722780 113117251731252114390
+115706830138905259568 115863474911002159675
+100173452066172931939 118418436905562612953
+106695181236161584825 109182513536739786206
+100397511207083609950 117377434815709898403
+105705665708025552983 115064258994656104138
+114549564725160709822 111538009015644508967
+103016521073558596116 105400903062771750089
+102654570556058167176 101704103161442695877
+104618664838382110366 110286587261352351537
+102654570556058167176 106812355611465528242
+102512310412972518336 114832793541825307503
+113722523501415106689 114152150496380806218
+106026445270708973611 103493459351957813291
+110318982509514011806 108255750659110762991
+105207943512906810696 106189723444098348646
+104383523254857614001 103691312271671214670
+100397511207083609950 105006381068870463173
+118357356982727825178 116388668762198604003
+116388668762198604003 103660543175586203250
+115565811010545226083 113247423264358423892
+110318982509514011806 109809835379677001002
+101094440579835956866 111091089527727420853
+106026445270708973611 111538009015644508967
+109304903996729396661 109074857816744029470
+100093902492789669774 107117483540235115863
+110731951130561423918 101629211371073711149
+114991987213662121376 101481313915867030905
+110318982509514011806 115017401467423642930
+103207773865797007066 115360979797396777969
+107896527414017792767 110727249496967897430
+105006381068870463173 109412257237874861202
+106695181236161584825 112852253337028739987
+102403331307606219198 115739148151601573808
+105822688186016123722 116388668762198604003
+115064258994656104138 113475277239647026452
+109304903996729396661 115360979797396777969
+101094440579835956866 102178700954286324866
+100173452066172931939 114152150496380806218
+101057616370673656059 103716847685048716973
+114359738470992181937 110209787594312878744
+115622466243011136115 105634350975670602787
+107196172964000631645 118418436905562612953
+117377434815709898403 110727249496967897430
+115739148151601573808 117421021456205115327
+111666959095947698908 104450760987525660219
+112944532473909341307 107587075873786034394
+108817085747440374986 110318982509514011806
+105705665708025552983 116762461061414014956
+109504122343901736603 101600577333348274552
+111310990991240556038 107519026002586025827
+107896527414017792767 102034052532213921839
+100084737546039360199 103325969492772452485
+104450760987525660219 116374117927631468606
+114832793541825307503 114522811866073303399
+108894779805940659869 111538009015644508967
+104450760987525660219 108771911258181286059
+101600577333348274552 101629211371073711149
+108817085747440374986 107781761552417614958
+115047896996200277508 117157132370347986579
+102034052532213921839 114758749740576519343
+108817085747440374986 116388668762198604003
+108000051912603578599 111337216646096594888
+109809835379677001002 103325969492772452485
+115341960624782381062 112364132652438722780
+115360979797396777969 112364132652438722780
+100397511207083609950 109581870574956225297
+116374117927631468606 114632854492678778509
+100173452066172931939 115047896996200277508
+105076678694475690385 110286587261352351537
+101185406398932804414 117691391504351341685
+113116318008017777871 118264184129842070900
+112364132652438722780 114152150496380806218
+104450760987525660219 114991987213662121376
+101261243957067319422 117691391504351341685
+106695181236161584825 104612091113514802664
+103100496883422151101 110318982509514011806
+109581870574956225297 103012564142649561853
+111091089527727420853 103016521073558596116
+116207701819773193333 115706830138905259568
+112016425853417877466 109074857816744029470
+100397511207083609950 107992936493665613654
+109304903996729396661 114791921155677330282
+109009089551467495747 104191514233385365427
+102512310412972518336 108574688020691152748
+112820512550939559523 118320665823821681206
+110774757382682582490 115622466243011136115
+107753428759636856492 115863474911002159675
+115963821022986200770 101849747879612982297
+116762461061414014956 105632941129656401917
+113116318008017777871 118357356982727825178
+102654570556058167176 115739378269261680935
+105076678694475690385 114549564725160709822
+111975545018506506119 103016521073558596116
+109247306373593947755 104412682128547752131
+104981620794721816747 110318982509514011806
+102034052532213921839 110286587261352351537
+108255750659110762991 107992936493665613654
+111422286077941361166 104612091113514802664
+109304903996729396661 111285782175840598932
+101261243957067319422 111310990991240556038
+117691391504351341685 114244914082871792125
+106190212616572073606 106925005603331131101
+109581870574956225297 111538009015644508967
+105076678694475690385 107968787521028284191
+105076678694475690385 116773104421165750126
+103100496883422151101 101261243957067319422
+103207773865797007066 103016521073558596116
+100269980559891536109 116762461061414014956
+106695181236161584825 113116318008017777871
+102034052532213921839 107968787521028284191
+106312895983244085949 112339769006469685593
+101057616370673656059 117693415411676715849
+105822688186016123722 107992936493665613654
+107793717361981126032 107090629815001792243
+111975545018506506119 103207773865797007066
+102034052532213921839 101261243957067319422
+100093902492789669774 104383523254857614001
+117921656724816772352 117995161934475952507
+115017401467423642930 105006381068870463173
+118357356982727825178 109778238062128383421
+101057616370673656059 109174551750397653742
+115403621788538540544 109388259228280605303
+115302451851587317396 104560124403688998123
+105705665708025552983 106345802537137414958
+117550971892000156946 113116318008017777871
+116762461061414014956 109339805471557551388
+115109077044202722504 107090629815001792243
+108000051912603578599 104364058018116761460
+115047896996200277508 117683744929337064105
+101057616370673656059 107753428759636856492
+102512310412972518336 111171416539633276676
+112339769006469685593 118264184129842070900
+107196172964000631645 117421021456205115327
+114244914082871792125 109174551750397653742
+104364058018116761460 109809835379677001002
+109581870574956225297 107968787521028284191
+111091089527727420853 107097980510051172895
+111171416539633276676 100894876340926769800
+117377434815709898403 112339769006469685593
+117691391504351341685 100084737546039360199
+113166718268343560861 113284787225540728296
+116491285067171323298 101261243957067319422
+115565811010545226083 101569655404865588155
+118086737936443306746 104612091113514802664
+112364132652438722780 107793717361981126032
+108314259245584185142 101261243957067319422
+113164038788726940319 103171849011748425097
+109304903996729396661 101094440579835956866
+114244914082871792125 109247306373593947755
+103171849011748425097 107234826207633309420
+111806715084467662398 102654570556058167176
+107033731246200681024 109412257237874861202
+115739378269261680935 101185406398932804414
+114549564725160709822 109074857816744029470
+106345802537137414958 110318982509514011806
+115920538018564742940 100871232248276491534
+107519026002586025827 107234826207633309420
+111707854651652464890 100537991844787325512
+105076678694475690385 117693415411676715849
+113612142759476883204 113247423264358423892
+103016521073558596116 107117483540235115863
+105076678694475690385 101832771958125915909
+117377434815709898403 104364058018116761460
+109182513536739786206 102403331307606219198
+113116318008017777871 111310990991240556038
+103207773865797007066 101849747879612982297
+118086737936443306746 107992936493665613654
+100871232248276491534 115109077044202722504
+106312895983244085949 117421021456205115327
+100093902492789669774 110318982509514011806
+115739148151601573808 103207773865797007066
+117012574629989558450 103691312271671214670
+116621986644249676039 115047896996200277508
+101261243957067319422 106312895983244085949
+100269980559891536109 102048265612444661933
+112364132652438722780 108082478497335384404
+118207880179234484610 102178700954286324866
+113164038788726940319 115863474911002159675
+104987932455782713675 109813896768294978296
+115360979797396777969 111654284395316165338
+106026445270708973611 104792450024518550569
+102654570556058167176 109247306373593947755
+100084737546039360199 100535338638690515335
+102425976203575211068 117683744929337064105
+109182513536739786206 107234826207633309420
+104870518715355770532 110649214929620497857
+114244914082871792125 108832773152747423283
+108894779805940659869 107968787521028284191
+104450760987525660219 117477042502591652021
+109581870574956225297 102034052532213921839
+105376842241046675559 102178700954286324866
+110774757382682582490 112844561713780016118
+111310990991240556038 116762461061414014956
+116374117927631468606 113210431006401244170
+111091089527727420853 106925005603331131101
+103016521073558596116 116768967108862685383
+106026445270708973611 113920721823301219308
+109304903996729396661 111654284395316165338
+115739148151601573808 103112588675637065591
+114152150496380806218 116927391465690022495
+104618664838382110366 102403331307606219198
+110728349411116483031 110731951130561423918
+111337216646096594888 104412682128547752131
+111975545018506506119 102088173699409175139
+115739378269261680935 108894779805940659869
+103207773865797007066 116107530889292552664
+116762461061414014956 104364058018116761460
+117691391504351341685 100535338638690515335
+111538009015644508967 105376842241046675559
+113164038788726940319 105030465637303791249
+104364058018116761460 109581870574956225297
+103325969492772452485 110727249496967897430
+101246601531247561585 117477042502591652021
+112016425853417877466 115622466243011136115
+115920538018564742940 111975545018506506119
+114918561167106576639 112878918236054024365
+109304903996729396661 101261243957067319422
+113116318008017777871 104560124403688998123
+115739148151601573808 100537991844787325512
+116374117927631468606 113351703941294630458
+101261243957067319422 101832771958125915909
+115565811010545226083 116388668762198604003
+100871232248276491534 101704103161442695877
+106122462724662012890 101094440579835956866
+103171849011748425097 114790574178411061829
+115047896996200277508 101481313915867030905
+100269980559891536109 103171849011748425097
+118357356982727825178 115064258994656104138
+107755092517418534815 112364132652438722780
+112290361600843238282 110728349411116483031
+108082478497335384404 115527632958457358109
+116621986644249676039 109780617142585395916
+106312895983244085949 104612091113514802664
+106837636108890930395 109335713877994755095
+116621986644249676039 111310990991240556038
+113047102292798770205 111310990991240556038
+115064258994656104138 107033731246200681024
+115047896996200277508 110774757382682582490
+101600577333348274552 115739148151601573808
+103100496883422151101 116107530889292552664
+109778238062128383421 111310990991240556038
+109581870574956225297 105822688186016123722
+113116318008017777871 105634350975670602787
+112844561713780016118 101849747879612982297
+103016521073558596116 118320665823821681206
+117421021456205115327 117377434815709898403
+108255750659110762991 104364058018116761460
+107699711897781234810 111538009015644508967
+107755092517418534815 111601729473858041964
+109581870574956225297 117691391504351341685
+112820512550939559523 101094440579835956866
+106665185918564754695 109581870574956225297
+112339769006469685593 108255750659110762991
+108817085747440374986 114461903539732780109
+116374117927631468606 115622466243011136115
+104450760987525660219 107097980510051172895
+104870518715355770532 116762461061414014956
+112364132652438722780 113166718268343560861
+107992936493665613654 102425976203575211068
+103171849011748425097 102034052532213921839
+111337216646096594888 102654570556058167176
+102034052532213921839 117683744929337064105
+107129852879758941909 101704103161442695877
+102654570556058167176 111538009015644508967
+109247306373593947755 111538009015644508967
+115478779964227301239 104450760987525660219
+109388259228280605303 115739378269261680935
+109931095616224405271 115739148151601573808
+111091089527727420853 115527632958457358109
+104612091113514802664 106695181236161584825
+101261243957067319422 116388668762198604003
+107793717361981126032 100871232248276491534
+113164038788726940319 112844561713780016118
+111975545018506506119 112063946124358686266
+105076678694475690385 111310990991240556038
+116374117927631468606 110286587261352351537
+117377434815709898403 112844561713780016118
+101261243957067319422 107992936493665613654
+112276589013569458330 111091089527727420853
+103975368181760158212 104412682128547752131
+106122462724662012890 106312895983244085949
+111091089527727420853 107234826207633309420
+107793717361981126032 112364132652438722780
+104618664838382110366 111422286077941361166
+105901259206530390933 118418436905562612953
+106122462724662012890 114791921155677330282
+115963821022986200770 104987932455782713675
+109504122343901736603 100537991844787325512
+100871232248276491534 105703999093618427814
+100173452066172931939 114790574178411061829
+116491285067171323298 106312895983244085949
+113612142759476883204 103660543175586203250
+104987932455782713675 103325969492772452485
+113116318008017777871 103325969492772452485
+111654284395316165338 100535338638690515335
+100397511207083609950 107133948555394893679
+100397511207083609950 105705665708025552983
+113351703941294630458 108176814619778619437
+102512310412972518336 115017401467423642930
+107755092517418534815 114152150496380806218
+115047896996200277508 103012564142649561853
+111975545018506506119 109895887909967698705
+114244914082871792125 113164038788726940319
+102034052532213921839 109412257237874861202
+101261243957067319422 109813896768294978296
+109504122343901736603 112063946124358686266
+102216887206636463918 108082478497335384404
+107090629815001792243 106822154985570317672
+109304903996729396661 105376842241046675559
+106026445270708973611 100173452066172931939
+108832773152747423283 107033731246200681024
+101185406398932804414 115739378269261680935
+110318982509514011806 107117483540235115863
+102034052532213921839 115863474911002159675
+116374117927631468606 115527632958457358109
+101261243957067319422 101569655404865588155
+108594511384403031361 103660543175586203250
+104364058018116761460 104191514233385365427
+109170680659355634945 100397143564111754723
+104364058018116761460 103171849011748425097
+102545157386069758709 118320665823821681206
+102088173699409175139 115109077044202722504
+100084737546039360199 114948739867290323960
+106096957694385885466 103691312271671214670
+108243648069327964538 114821161730370452301
+118418436905562612953 103493459351957813291
+103153499873703329897 105662484616118909569
+108000051912603578599 105400903062771750089
+112944532473909341307 113920721823301219308
+102512310412972518336 100535338638690515335
+107753428759636856492 113612142759476883204
+101094440579835956866 114790574178411061829
+113116318008017777871 107992936493665613654
+113612142759476883204 112339769006469685593
+106695181236161584825 111091089527727420853
+112364132652438722780 111538009015644508967
+117691391504351341685 109778238062128383421
+104450760987525660219 110286587261352351537
+105705665708025552983 118418436905562612953
+111171416539633276676 110318982509514011806
+112276589013569458330 117377434815709898403
+107753428759636856492 115478779964227301239
+114758749740576519343 109182513536739786206
+115109077044202722504 103691312271671214670
+112820512550939559523 113920721823301219308
+116762461061414014956 116491285067171323298
+103016521073558596116 104191514233385365427
+102403331307606219198 111091089527727420853
+113475277239647026452 107117483540235115863
+100173452066172931939 108255750659110762991
+109196389259504239326 113351703941294630458
+106665185918564754695 110318982509514011806
+106665185918564754695 104450760987525660219
+111091089527727420853 113117251731252114390
+108894779805940659869 101704103161442695877
+116374117927631468606 102512310412972518336
+100397511207083609950 100269980559891536109
+107699711897781234810 108894779805940659869
+114244914082871792125 105076678694475690385
+108817085747440374986 113116318008017777871
+115064258994656104138 103716847685048716973
+115017401467423642930 101261243957067319422
+118086737936443306746 107519026002586025827
+102545157386069758709 112944532473909341307
+102545157386069758709 109247306373593947755
+106665185918564754695 108255750659110762991
+103020619410065980303 109895887909967698705
+113116318008017777871 105006381068870463173
+112820512550939559523 112276589013569458330
+107196172964000631645 105207943512906810696
+100397511207083609950 102484577222269062816
+100173452066172931939 103100496883422151101
+115622466243011136115 102034052532213921839
+110731951130561423918 104383523254857614001
+116374117927631468606 114790574178411061829
+107006059340452534782 101185406398932804414
+111091089527727420853 112852253337028739987
+113047102292798770205 114632854492678778509
+115963821022986200770 105822688186016123722
+105901259206530390933 116768967108862685383
+113612142759476883204 109174551750397653742
+109174551750397653742 103100496883422151101
+108832773152747423283 111654284395316165338
+100093902492789669774 107968787521028284191
+117421021456205115327 104612091113514802664
+100093902492789669774 109412257237874861202
+101246601531247561585 109780617142585395916
+109809835379677001002 103691312271671214670
+102034052532213921839 108000051912603578599
+103016521073558596116 104364058018116761460
+100397511207083609950 118320665823821681206
+109335713877994755095 113210431006401244170
+112364132652438722780 115478779964227301239
+106122462724662012890 118207880179234484610
+102403331307606219198 108817085747440374986
+117377434815709898403 111666959095947698908
+106026445270708973611 108574688020691152748
+101126226710566561379 115109077044202722504
+100084737546039360199 105376842241046675559
+107753428759636856492 103716847685048716973
+105634350975670602787 108574688020691152748
+116762461061414014956 103171849011748425097
+103100496883422151101 107753428759636856492
+106096957694385885466 107308976571078250231
+109170680659355634945 108176814619778619437
+117377434815709898403 114791921155677330282
+103171849011748425097 118357356982727825178
+107196172964000631645 110286587261352351537
+115739378269261680935 103475991020114516832
+116374117927631468606 102034052532213921839
+104987932455782713675 103493459351957813291
+118086737936443306746 109581870574956225297
+110318982509514011806 103020619410065980303
+106312895983244085949 100084737546039360199
+111310990991240556038 103660543175586203250
+100093902492789669774 114244914082871792125
+115478779964227301239 109074857816744029470
+115963821022986200770 109809835379677001002
+112820512550939559523 103716847685048716973
+116207701819773193333 114821161730370452301
+106122462724662012890 116621986644249676039
+101094440579835956866 103716847685048716973
+105076678694475690385 112844561713780016118
+115963821022986200770 108832773152747423283
+105901259206530390933 108255750659110762991
+110318982509514011806 109247306373593947755
+107117418142368704725 104450760987525660219
+104450760987525660219 107133948555394893679
+109504122343901736603 108082478497335384404
+100269980559891536109 117377434815709898403
+110728349411116483031 109388259228280605303
+106925005603331131101 116762461061414014956
+113166718268343560861 110727249496967897430
+113116318008017777871 116773104421165750126
+103207773865797007066 115920538018564742940
+103016521073558596116 100856165335040300712
+107133948555394893679 111310990991240556038
+114244914082871792125 116491285067171323298
+105400903062771750089 112276589013569458330
+102034052532213921839 105634350975670602787
+107755092517418534815 100856165335040300712
+109931095616224405271 102484577222269062816
+107133948555394893679 104612091113514802664
+102654570556058167176 115109077044202722504
+115706830138905259568 104364058018116761460
+106925005603331131101 107587075873786034394
+103100496883422151101 103325969492772452485
+115360979797396777969 103112588675637065591
+117377434815709898403 109174551750397653742
+109581870574956225297 100537991844787325512
+106925005603331131101 118086737936443306746
+115565811010545226083 110318982509514011806
+111975545018506506119 102216887206636463918
+117691391504351341685 113210431006401244170
+113612142759476883204 112063946124358686266
+109174551750397653742 111538009015644508967
+110318982509514011806 114991987213662121376
+108832773152747423283 103171849011748425097
+116762461061414014956 111538009015644508967
+104364058018116761460 114948739867290323960
+109809835379677001002 111538009015644508967
+112878918236054024365 100415723513846680553
+107519026002586025827 114632854492678778509
+117921656724816772352 115109077044202722504
+102654570556058167176 103691312271671214670
+109581870574956225297 107519026002586025827
+109581870574956225297 100535338638690515335
+109182513536739786206 107033731246200681024
+115622466243011136115 100084737546039360199
+104450760987525660219 115622466243011136115
+108817085747440374986 106312895983244085949
+103100496883422151101 108255750659110762991
+113920721823301219308 109581870574956225297
+118357356982727825178 117691391504351341685
+107753428759636856492 111285782175840598932
+107753428759636856492 113920721823301219308
+113612142759476883204 113116318008017777871
+105822688186016123722 114979733565079457374
+113920721823301219308 115565811010545226083
+106312895983244085949 115064258994656104138
+106122462724662012890 101213524574984631953
+103100496883422151101 109174551750397653742
+113722523501415106689 112364132652438722780
+112364132652438722780 106096957694385885466
+107519026002586025827 112944532473909341307
+105076678694475690385 115739378269261680935
+112016425853417877466 105703999093618427814
+101720949843787442951 112364132652438722780
+100269980559891536109 109581870574956225297
+102403331307606219198 108176814619778619437
+105076678694475690385 107699711897781234810
+112364132652438722780 104792450024518550569
+101849747879612982297 110286587261352351537
+115341960624782381062 101849747879612982297
+118156281382429939997 109388259228280605303
+105901259206530390933 107753428759636856492
+103016521073558596116 114632854492678778509
+104450760987525660219 113116318008017777871
+114751436351490918894 115302451851587317396
+100269980559891536109 103716847685048716973
+100397511207083609950 109247306373593947755
+100397511207083609950 113920721823301219308
+114244914082871792125 100173452066172931939
+115109077044202722504 116192724891839469024
+117421021456205115327 113116318008017777871
+106925005603331131101 103012564142649561853
+109388259228280605303 113612142759476883204
+108314259245584185142 108894779805940659869
+110318982509514011806 104364058018116761460
+108243648069327964538 113284787225540728296
+109304903996729396661 109581870574956225297
+111654284395316165338 109813896768294978296
+103171849011748425097 106345802537137414958
+101261243957067319422 110209787594312878744
+107896527414017792767 112844561713780016118
+104618664838382110366 116621986644249676039
+116548025566090395827 107303107611470093265
+115064258994656104138 116388668762198604003
+116621986644249676039 117477042502591652021
+115963821022986200770 100262595546646927505
+110728349411116483031 106263529626268281828
+100353346783543697435 107303107611470093265
+109778238062128383421 100415723513846680553
+115739378269261680935 100535338638690515335
+111091089527727420853 107753428759636856492
+115963821022986200770 107234826207633309420
+117691391504351341685 115565811010545226083
+116621986644249676039 106100296973968329853
+102484577222269062816 100537991844787325512
+104987932455782713675 117421021456205115327
+102512310412972518336 109780617142585395916
+115739378269261680935 111538009015644508967
+115109077044202722504 117477042502591652021
+112339769006469685593 109813896768294978296
+115478779964227301239 107117483540235115863
+109182513536739786206 104364058018116761460
+114758749740576519343 102034052532213921839
+106224435901697064976 100535338638690515335
+115064258994656104138 108434394145774737013
+111310990991240556038 113475277239647026452
+103493459351957813291 107753428759636856492
+113612142759476883204 113117251731252114390
+107090629815001792243 112016425853417877466
+111422286077941361166 117421021456205115327
+106312895983244085949 118320665823821681206
+102034052532213921839 108255750659110762991
+104364058018116761460 104987932455782713675
+108894779805940659869 101246601531247561585
+107519026002586025827 115863474911002159675
+105076678694475690385 108082478497335384404
+104191514233385365427 102654570556058167176
+100535338638690515335 103325969492772452485
+109778238062128383421 114461903539732780109
+108255750659110762991 114079920283986872783
+118357356982727825178 117377434815709898403
+107519026002586025827 101629211371073711149
+107753428759636856492 100262595546646927505
+103100496883422151101 115963821022986200770
+100856165335040300712 103153499873703329897
+101261243957067319422 104560124403688998123
+115739148151601573808 116374117927631468606
+114152150496380806218 107755092517418534815
+106263529626268281828 104870518715355770532
+115565811010545226083 114790574178411061829
+115478779964227301239 109412257237874861202
+115739148151601573808 110318982509514011806
+104612091113514802664 111310990991240556038
+111538009015644508967 110286587261352351537
+117421021456205115327 117550971892000156946
+108817085747440374986 112844561713780016118
+108000051912603578599 114758749740576519343
+115706830138905259568 103020619410065980303
+101832196121408756348 103691312271671214670
+108000051912603578599 102048265612444661933
+114549564725160709822 116773104421165750126
+109581870574956225297 113116318008017777871
+105076678694475690385 100523784851251213675
+115739378269261680935 106096957694385885466
+118264184129842070900 108574688020691152748
+104987932455782713675 109412257237874861202
+112016425853417877466 100397511207083609950
+115047896996200277508 102178700954286324866
+107896527414017792767 113210431006401244170
+103207773865797007066 100262595546646927505
+106122462724662012890 113116318008017777871
+113166718268343560861 116723923766489326849
+100093902492789669774 108952536790629690817
+101094440579835956866 107033731246200681024
+111091089527727420853 108255750659110762991
+116762461061414014956 111091089527727420853
+106096957694385885466 111032944513257134357
+116107530889292552664 105006381068870463173
+103016521073558596116 107006059340452534782
+108243648069327964538 109304903996729396661
+100397511207083609950 107234826207633309420
+106695181236161584825 114948739867290323960
+109247306373593947755 115706830138905259568
+113612142759476883204 105076678694475690385
+114244914082871792125 106312895983244085949
+103016521073558596116 100019606796298306813
+115109077044202722504 104412682128547752131
+108894779805940659869 106100296973968329853
+116773104421165750126 113722523501415106689
+102403331307606219198 108000051912603578599
+100535338638690515335 110209787594312878744
+108243648069327964538 105400903062771750089
+100093902492789669774 105703999093618427814
+100397511207083609950 113801236315350503728
+116374117927631468606 108176814619778619437
+101094440579835956866 103112588675637065591
+107753428759636856492 108817085747440374986
+115565811010545226083 107033731246200681024
+111975545018506506119 111666959095947698908
+104618664838382110366 118418436905562612953
+107519026002586025827 108000051912603578599
+101261243957067319422 102178700954286324866
+112016425853417877466 113612142759476883204
+104612091113514802664 100262595546646927505
+109504122343901736603 104612091113514802664
+109304903996729396661 107896527414017792767
+101261243957067319422 100523784851251213675
+107896527414017792767 113920721823301219308
+117421021456205115327 103112588675637065591
+115963821022986200770 111538009015644508967
+116388668762198604003 115360979797396777969
+100084737546039360199 115478779964227301239
+104364058018116761460 110727249496967897430
+100535338638690515335 106189723444098348646
+104364058018116761460 107587075873786034394
+116374117927631468606 106189723444098348646
+102216887206636463918 103171849011748425097
+103016521073558596116 116927391465690022495
+118086737936443306746 115064258994656104138
+115739378269261680935 104870518715355770532
+100001826804813287036 111601729473858041964
+101832196121408756348 116927391465690022495
+117691391504351341685 105822688186016123722
+109780617142585395916 109247306373593947755
+113116318008017777871 109778238062128383421
+113047102292798770205 115622466243011136115
+115739378269261680935 114821161730370452301
+115565811010545226083 109581870574956225297
+106067770652209688980 115302451851587317396
+111538009015644508967 115047896996200277508
+102512310412972518336 110286587261352351537
+113116318008017777871 117683744929337064105
+109170680659355634945 116762461061414014956
+109581870574956225297 108000051912603578599
+108000051912603578599 102178700954286324866
+104364058018116761460 116388668762198604003
+100535338638690515335 109813896768294978296
+102654570556058167176 113801236315350503728
+108000051912603578599 104412682128547752131
+115392876317176762477 101261243957067319422
+113116318008017777871 101213524574984631953
+111538009015644508967 104191514233385365427
+101261243957067319422 103325969492772452485
+104618664838382110366 100415723513846680553
+112364132652438722780 118207880179234484610
+108314259245584185142 118207880179234484610
+105901259206530390933 112944532473909341307
+102654570556058167176 104964811874969620954
+101849747879612982297 117691391504351341685
+101094440579835956866 115706830138905259568
+100397511207083609950 101185406398932804414
+115064258994656104138 109809835379677001002
+101246601531247561585 109388259228280605303
+111091089527727420853 115963821022986200770
+111996414642516891950 110014891370822989957
+115739378269261680935 105006381068870463173
+105705665708025552983 100019606796298306813
+111091089527727420853 113801236315350503728
+111975545018506506119 111091089527727420853
+116762461061414014956 109519167630731639094
+103207773865797007066 116491285067171323298
+117691391504351341685 113247423264358423892
+102512310412972518336 100257676670422660178
+113166718268343560861 115863474911002159675
+109504122343901736603 101481313915867030905
+107753428759636856492 111091089527727420853
+108817085747440374986 100269980559891536109
+106096957694385885466 109388259228280605303
+105076678694475690385 118418436905562612953
+116762461061414014956 111601729473858041964
+103153499873703329897 110286587261352351537
+116773104421165750126 101849747879612982297
+111666959095947698908 107033731246200681024
+115064258994656104138 114790574178411061829
+109809835379677001002 110318982509514011806
+105076678694475690385 114244914082871792125
+105901259206530390933 111285782175840598932
+104870518715355770532 106100296973968329853
+116207701819773193333 112063946124358686266
+103016521073558596116 101832196121408756348
+104450760987525660219 108243648069327964538
+100535338638690515335 109304903996729396661
+113920721823301219308 104987932455782713675
+101057616370673656059 107117483540235115863
+106312895983244085949 101094440579835956866
+100173452066172931939 113247423264358423892
+103975368181760158212 101832771958125915909
+103016521073558596116 113475277239647026452
+100084737546039360199 110318982509514011806
+101481313915867030905 114791921155677330282
+109581870574956225297 109182513536739786206
+102512310412972518336 115302451851587317396
+105901259206530390933 107033731246200681024
+109196389259504239326 116374117927631468606
+115706830138905259568 116762461061414014956
+115565811010545226083 100084737546039360199
+104412682128547752131 108000051912603578599
+108817085747440374986 103325969492772452485
+105076678694475690385 101569655404865588155
+116926943858449614201 115392876317176762477
+106312895983244085949 110318982509514011806
+107753428759636856492 118357356982727825178
+111091089527727420853 113351703941294630458
+110731951130561423918 104450760987525660219
+106812355611465528242 102654570556058167176
+109247306373593947755 109780617142585395916
+101057616370673656059 112276589013569458330
+100871232248276491534 110318982509514011806
+116374117927631468606 107006059340452534782
+117377434815709898403 118264184129842070900
+102034052532213921839 112944532473909341307
+118357356982727825178 106189723444098348646
+109247306373593947755 111337216646096594888
+102512310412972518336 113920721823301219308
+106026445270708973611 109388259228280605303
+118017787526225833770 100871232248276491534
+101720949843787442951 116374117927631468606
+112276589013569458330 111654284395316165338
+110014891370822989957 104277680236688325392
+104277680236688325392 110014891370822989957
+113166718268343560861 106026445270708973611
+116762461061414014956 100262595546646927505
+106312895983244085949 114244914082871792125
+116773104421165750126 113801236315350503728
+100173452066172931939 102034052532213921839
+106122462724662012890 111285782175840598932
+114079920283986872783 118357356982727825178
+108243648069327964538 115064258994656104138
+113047102292798770205 113612142759476883204
+109388259228280605303 103691312271671214670
+100871232248276491534 106812355611465528242
+108817085747440374986 101569655404865588155
+105705665708025552983 100535338638690515335
+107303107611470093265 118264184129842070900
+116388668762198604003 118357356982727825178
+102403331307606219198 109182513536739786206
+115739378269261680935 106189723444098348646
+113116318008017777871 105822688186016123722
+112276589013569458330 100535338638690515335
+103020619410065980303 108000051912603578599
+109581870574956225297 110209787594312878744
+105705665708025552983 107753428759636856492
+107133948555394893679 118320665823821681206
+107196172964000631645 112844561713780016118
+106122462724662012890 107234826207633309420
+112878918236054024365 100537991844787325512
+115403621788538540544 109009089551467495747
+102705549361550492663 114821161730370452301
+106026445270708973611 103660543175586203250
+111091089527727420853 107133948555394893679
+113612142759476883204 118207880179234484610
+109778238062128383421 116927391465690022495
+118357356982727825178 114790574178411061829
+104450760987525660219 115047896996200277508
+113801236315350503728 103207773865797007066
+111975545018506506119 103493459351957813291
+103171849011748425097 113612142759476883204
+101057616370673656059 111285782175840598932
+115739148151601573808 103475991020114516832
+113116318008017777871 116762461061414014956
+107129852879758941909 101185406398932804414
+108817085747440374986 112878918236054024365
+109504122343901736603 109581870574956225297
+103207773865797007066 106263529626268281828
+108000051912603578599 102403331307606219198
+105901259206530390933 117691391504351341685
+107090629815001792243 116927391465690022495
+104987932455782713675 103100496883422151101
+103100496883422151101 109895887909967698705
+112820512550939559523 114948739867290323960
+107196172964000631645 107033731246200681024
+109388259228280605303 115109077044202722504
+104450760987525660219 115963821022986200770
+106665185918564754695 113116318008017777871
+115109077044202722504 104191514233385365427
+101261243957067319422 100535338638690515335
+104612091113514802664 113047102292798770205
+109247306373593947755 110318982509514011806
+100093902492789669774 109813896768294978296
+100173452066172931939 117691391504351341685
+113116318008017777871 103012564142649561853
+116374117927631468606 112276589013569458330
+112944532473909341307 107992936493665613654
+105822688186016123722 113164038788726940319
+106312895983244085949 114821161730370452301
+115706830138905259568 104412682128547752131
+113166718268343560861 103493459351957813291
+104450760987525660219 109074857816744029470
+115360979797396777969 112820512550939559523
+105076678694475690385 102034052532213921839
+115064258994656104138 115622466243011136115
+116374117927631468606 115863474911002159675
+109809835379677001002 108082478497335384404
+116762461061414014956 117477042502591652021
+102034052532213921839 113612142759476883204
+102545157386069758709 104560124403688998123
+113612142759476883204 103171849011748425097
+118357356982727825178 107033731246200681024
+106312895983244085949 112276589013569458330
+103207773865797007066 115047896996200277508
+116374117927631468606 116491285067171323298
+113116318008017777871 107234826207633309420
+106224435901697064976 107117483540235115863
+113166718268343560861 114918561167106576639
+104987932455782713675 113920721823301219308
+110728349411116483031 106822154985570317672
+108314259245584185142 105076678694475690385
+107896527414017792767 109778238062128383421
+102545157386069758709 101261243957067319422
+109504122343901736603 108000051912603578599
+100535338638690515335 108255750659110762991
+101246601531247561585 109895887909967698705
+117550971892000156946 103475991020114516832
+113351703941294630458 113116318008017777871
+117921656724816772352 113166718268343560861
+101057616370673656059 116762461061414014956
+101126226710566561379 115739378269261680935
+113116318008017777871 100084737546039360199
+115565811010545226083 101629211371073711149
+114991987213662121376 107781761552417614958
+106026445270708973611 115706830138905259568
+109931095616224405271 111091089527727420853
+103020619410065980303 116762461061414014956
+112016425853417877466 102178700954286324866
+106665185918564754695 111538009015644508967
+100173452066172931939 113612142759476883204
+106312895983244085949 100523784851251213675
+112276589013569458330 115047896996200277508
+103016521073558596116 115360979797396777969
+112016425853417877466 109335713877994755095
+106026445270708973611 115478779964227301239
+117691391504351341685 107033731246200681024
+111538009015644508967 107033731246200681024
+106837636108890930395 102512310412972518336
+111310990991240556038 103112588675637065591
+115527632958457358109 113801236315350503728
+113116318008017777871 109504122343901736603
+109170680659355634945 111337216646096594888
+116207701819773193333 101849747879612982297
+108952536790629690817 117995161934475952507
+104383523254857614001 104066486855641683676
+113920721823301219308 106189723444098348646
+103691312271671214670 100173452066172931939
+103016521073558596116 101720949843787442951
+106312895983244085949 102034052532213921839
+113116318008017777871 108574688020691152748
+115706830138905259568 113210431006401244170
+114758749740576519343 102178700954286324866
+102512310412972518336 104560124403688998123
+100397511207083609950 105076678694475690385
+106312895983244085949 107896527414017792767
+113116318008017777871 101629211371073711149
+102034052532213921839 116388668762198604003
+111091089527727420853 115403621788538540544
+115360979797396777969 110318982509514011806
+118418436905562612953 116768967108862685383
+102545157386069758709 110318982509514011806
+107753428759636856492 103171849011748425097
+117691391504351341685 114758749740576519343
+113920721823301219308 100535338638690515335
+106925005603331131101 104412682128547752131
+115478779964227301239 113116318008017777871
+115403621788538540544 101246601531247561585
+106312895983244085949 108082478497335384404
+102545157386069758709 111091089527727420853
+104987932455782713675 110209787594312878744
+104987932455782713675 104618664838382110366
+104364058018116761460 118264184129842070900
+108082478497335384404 115863474911002159675
+114918561167106576639 108000051912603578599
+100269980559891536109 101094440579835956866
+107129852879758941909 100871232248276491534
+110731951130561423918 108314259245584185142
+112364132652438722780 116762461061414014956
+104612091113514802664 115622466243011136115
+108894779805940659869 103475991020114516832
+110774757382682582490 108574688020691152748
+115565811010545226083 107097980510051172895
+111310990991240556038 107753428759636856492
+116773104421165750126 115739378269261680935
+113166718268343560861 108894779805940659869
+101057616370673656059 100084737546039360199
+108817085747440374986 103207773865797007066
+104383523254857614001 115109077044202722504
+116207701819773193333 101569655404865588155
+107753428759636856492 105376842241046675559
+100535338638690515335 107753428759636856492
+104450760987525660219 102705549361550492663
+104987932455782713675 104364058018116761460
+103207773865797007066 109388259228280605303
+111091089527727420853 109895887909967698705
+100084737546039360199 104560124403688998123
+100173452066172931939 106812355611465528242
+115739378269261680935 101832196121408756348
+115920538018564742940 103691312271671214670
+111538009015644508967 104364058018116761460
+107753428759636856492 101225750534150134109
+115478779964227301239 108255750659110762991
+115739378269261680935 100093902492789669774
+112364132652438722780 114549564725160709822
+109304903996729396661 104364058018116761460
+109182513536739786206 103475991020114516832
+114244914082871792125 102178700954286324866
+100269980559891536109 117421021456205115327
+100397511207083609950 111538009015644508967
+109247306373593947755 101704103161442695877
+112276589013569458330 106312895983244085949
+117377434815709898403 105030465637303791249
+101094440579835956866 115565811010545226083
+115360979797396777969 118320665823821681206
+112364132652438722780 107968787521028284191
+115392876317176762477 108314259245584185142
+111996414642516891950 103153499873703329897
+111975545018506506119 103171849011748425097
+118357356982727825178 110727249496967897430
+109581870574956225297 106665185918564754695
+113166718268343560861 114979733565079457374
+101261243957067319422 110318982509514011806
+116207701819773193333 115622466243011136115
+116548025566090395827 114821161730370452301
+101261243957067319422 105634350975670602787
+110318982509514011806 103012564142649561853
+102545157386069758709 115047896996200277508
+102512310412972518336 108000051912603578599
+109809835379677001002 101569655404865588155
+116374117927631468606 116927391465690022495
+100173452066172931939 116107530889292552664
+109388259228280605303 111337216646096594888
+101261243957067319422 109182513536739786206
+106096957694385885466 116723923766489326849
+101126226710566561379 104066486855641683676
+100856165335040300712 106623900962110772648
+112016425853417877466 103112588675637065591
+100871232248276491534 106026445270708973611
+100397511207083609950 101720949843787442951
+114918561167106576639 101094440579835956866
+111171416539633276676 111091089527727420853
+108082478497335384404 115963821022986200770
+118245559326500322262 113801236315350503728
+105076678694475690385 110318982509514011806
+102034052532213921839 100084737546039360199
+102512310412972518336 111654284395316165338
+100535338638690515335 115863474911002159675
+115527632958457358109 114791921155677330282
+101246601531247561585 111538009015644508967
+115739378269261680935 107699711897781234810
+101246601531247561585 109009089551467495747
+103691312271671214670 108082478497335384404
+109504122343901736603 103475991020114516832
+110774757382682582490 105376842241046675559
+104191514233385365427 108434394145774737013
+100397511207083609950 108000051912603578599
+101849747879612982297 104560124403688998123
+111091089527727420853 101213524574984631953
+110318982509514011806 113475277239647026452
+101720949843787442951 104618664838382110366
+113166718268343560861 106100296973968329853
+102545157386069758709 109809835379677001002
+104612091113514802664 103475991020114516832
+116926943858449614201 110728349411116483031
+105207943512906810696 116388668762198604003
+113166718268343560861 109182513536739786206
+100093902492789669774 107033731246200681024
+108894779805940659869 112063946124358686266
+100173452066172931939 115109077044202722504
+113047102292798770205 107968787521028284191
+109809835379677001002 117157132370347986579
+113475277239647026452 102178700954286324866
+108082478497335384404 118357356982727825178
+109335713877994755095 115302451851587317396
+109504122343901736603 106189723444098348646
+115302451851587317396 102512310412972518336
+103016521073558596116 103537420161725387429
+103207773865797007066 102088173699409175139
+102512310412972518336 111538009015644508967
+118245559326500322262 115963821022986200770
+106925005603331131101 114461903539732780109
+115360979797396777969 100397511207083609950
+100397511207083609950 101094440579835956866
+105901259206530390933 107234826207633309420
+104450760987525660219 101261243957067319422
+117421021456205115327 103012564142649561853
+111091089527727420853 108894779805940659869
+117691391504351341685 108771911258181286059
+115622466243011136115 104560124403688998123
+105901259206530390933 109813896768294978296
+118418436905562612953 106100296973968329853
+101261243957067319422 115478779964227301239
+115109077044202722504 107753428759636856492
+100093902492789669774 108176814619778619437
+100173452066172931939 109412257237874861202
+106665185918564754695 107117483540235115863
+100535338638690515335 109074857816744029470
+104987932455782713675 117377434815709898403
+102688620589277847136 100606519862794948506
+114244914082871792125 118320665823821681206
+111091089527727420853 109247306373593947755
+111337216646096594888 101832771958125915909
+108255750659110762991 101094440579835956866
+116768967108862685383 108176814619778619437
+108082478497335384404 107519026002586025827
+105703999093618427814 106100296973968329853
+104450760987525660219 115565811010545226083
+113166718268343560861 106189723444098348646
+109504122343901736603 103012564142649561853
+104450760987525660219 107896527414017792767
+113116318008017777871 101849747879612982297
+107753428759636856492 111310990991240556038
+114758749740576519343 107519026002586025827
+100397511207083609950 111171416539633276676
+113116318008017777871 117550971892000156946
+114991987213662121376 114758749740576519343
+115360979797396777969 102034052532213921839
+109388259228280605303 109780617142585395916
+100353346783543697435 111538009015644508967
+106665185918564754695 107519026002586025827
+116374117927631468606 113475277239647026452
+115622466243011136115 100523784851251213675
+117377434815709898403 111601729473858041964
+106122462724662012890 118357356982727825178
+112364132652438722780 115565811010545226083
+106695181236161584825 104450760987525660219
+113166718268343560861 102216887206636463918
+106026445270708973611 109809835379677001002
+113612142759476883204 107992936493665613654
+109304903996729396661 107106500560002041088
+116762461061414014956 117421021456205115327
+115739378269261680935 108899222163640713555
+115565811010545226083 106189723444098348646
+113920721823301219308 111091089527727420853
+101057616370673656059 108255750659110762991
+105705665708025552983 111538009015644508967
+100084737546039360199 111654284395316165338
+108894779805940659869 103691312271671214670
+112276589013569458330 115478779964227301239
+107090629815001792243 104792450024518550569
+104450760987525660219 100262595546646927505
+104450760987525660219 109813896768294978296
+111538009015644508967 100871232248276491534
+116374117927631468606 115109077044202722504
+104987932455782713675 107992936493665613654
+113164038788726940319 109174551750397653742
+115109077044202722504 109412257237874861202
+118086737936443306746 116388668762198604003
+107753428759636856492 100084737546039360199
+115047896996200277508 108082478497335384404
+112016425853417877466 115527632958457358109
+115739378269261680935 103112588675637065591
+115064258994656104138 114948739867290323960
+112276589013569458330 106665185918564754695
+115706830138905259568 111538009015644508967
+104450760987525660219 101569655404865588155
+104364058018116761460 104612091113514802664
+100093902492789669774 108314259245584185142
+118357356982727825178 117421021456205115327
+114244914082871792125 103171849011748425097
+104226321884965863264 108771911258181286059
+117693415411676715849 113164038788726940319
+102425976203575211068 100019606796298306813
+112339769006469685593 105076678694475690385
+107129852879758941909 105006381068870463173
+104450760987525660219 117550971892000156946
+115963821022986200770 101094440579835956866
+111261496925076985134 111091089527727420853
+115360979797396777969 106189723444098348646
+106224435901697064976 107753428759636856492
+106122462724662012890 117691391504351341685
+100871232248276491534 110286587261352351537
+111091089527727420853 107196172964000631645
+111337216646096594888 114790574178411061829
+104450760987525660219 113210431006401244170
+100856165335040300712 106100296973968329853
+101261243957067319422 102034052532213921839
+115622466243011136115 100397511207083609950
+116762461061414014956 100084737546039360199
+108255750659110762991 101213524574984631953
+100871232248276491534 100537991844787325512
+115341960624782381062 107755092517418534815
+101057616370673656059 101094440579835956866
+108000051912603578599 109182513536739786206
+103567864289861449366 117693415411676715849
+102034052532213921839 114979733565079457374
+114918561167106576639 107519026002586025827
+113801236315350503728 112844561713780016118
+107753428759636856492 106925005603331131101
+105705665708025552983 108000051912603578599
+111666959095947698908 113116318008017777871
+109504122343901736603 118086737936443306746
+110774757382682582490 113068441549452664746
+100093902492789669774 105076678694475690385
+102654570556058167176 109780617142585395916
+111975545018506506119 107968787521028284191
+115478779964227301239 111091089527727420853
+109009089551467495747 111285782175840598932
+105076678694475690385 105822688186016123722
+106224435901697064976 115622466243011136115
+103207773865797007066 116768967108862685383
+103016521073558596116 107968787521028284191
+116491285067171323298 109813896768294978296
+108817085747440374986 111538009015644508967
+113047102292798770205 103660543175586203250
+116388668762198604003 102178700954286324866
+116621986644249676039 102654570556058167176
+103100496883422151101 116762461061414014956
+110318982509514011806 103171849011748425097
+113920721823301219308 103716847685048716973
+100535338638690515335 113116318008017777871
+118357356982727825178 114079920283986872783
+115920538018564742940 104066486855641683676
+107755092517418534815 112276589013569458330
+111538009015644508967 100019606796298306813
+108817085747440374986 114790574178411061829
+111707854651652464890 118320665823821681206
+111091089527727420853 107699711897781234810
+114991987213662121376 103020619410065980303
+105400903062771750089 101720949843787442951
+112276589013569458330 115565811010545226083
+115109077044202722504 117921656724816772352
+108894779805940659869 106837636108890930395
+108243648069327964538 108574688020691152748
+112852253337028739987 112878918236054024365
+107519026002586025827 100269980559891536109
+117691391504351341685 110727249496967897430
+102545157386069758709 112063946124358686266
+118156281382429939997 115739378269261680935
+116107530889292552664 114991987213662121376
+117691391504351341685 107106500560002041088
+109247306373593947755 115739148151601573808
+112276589013569458330 108255750659110762991
+109504122343901736603 101849747879612982297
+107793717361981126032 106026445270708973611
+116374117927631468606 114549564725160709822
+111422286077941361166 100397143564111754723
+112016425853417877466 101569655404865588155
+115527632958457358109 114244914082871792125
+104450760987525660219 107968787521028284191
+104612091113514802664 103716847685048716973
+107519026002586025827 103660543175586203250
+117421021456205115327 105822688186016123722
+112364132652438722780 101849747879612982297
+100871232248276491534 113166718268343560861
+102216887206636463918 109074857816744029470
+111310990991240556038 107896527414017792767
+105076678694475690385 103475991020114516832
+116621986644249676039 103207773865797007066
+111310990991240556038 112063946124358686266
+106665185918564754695 101094440579835956866
+112016425853417877466 109813896768294978296
+113351703941294630458 109074857816744029470
+111654284395316165338 101720949843787442951
+107519026002586025827 111538009015644508967
+117477042502591652021 117550971892000156946
+117477042502591652021 110649214929620497857
+111310990991240556038 108082478497335384404
+105901259206530390933 100397143564111754723
+102034052532213921839 103325969492772452485
+109581870574956225297 103325969492772452485
+115109077044202722504 100856165335040300712
+102034052532213921839 109074857816744029470
+102688620589277847136 104450760987525660219
+112878918236054024365 109778238062128383421
+104191514233385365427 109170680659355634945
+111310990991240556038 111538009015644508967
+109335713877994755095 102512310412972518336
+115109077044202722504 107626068753267217775
+106312895983244085949 107753428759636856492
+116374117927631468606 100537991844787325512
+116762461061414014956 103100496883422151101
+107699711897781234810 105006381068870463173
+100535338638690515335 111538009015644508967
+109247306373593947755 112944532473909341307
+106695181236161584825 115565811010545226083
+106026445270708973611 115109077044202722504
+103100496883422151101 111310990991240556038
+103016521073558596116 114244914082871792125
+115739148151601573808 111422286077941361166
+112878918236054024365 114979733565079457374
+106026445270708973611 112276589013569458330
+106096957694385885466 117012574629989558450
+109174551750397653742 118357356982727825178
+115963821022986200770 100397511207083609950
+101261243957067319422 114791921155677330282
+102216887206636463918 110318982509514011806
+106096957694385885466 101704103161442695877
+105901259206530390933 103660543175586203250
+115047896996200277508 111538009015644508967
+104618664838382110366 109931095616224405271
+112878918236054024365 109931095616224405271
+103691312271671214670 110286587261352351537
+100397511207083609950 116491285067171323298
+116374117927631468606 117693415411676715849
+100093902492789669774 106100296973968329853
+115622466243011136115 110468193592032465149
+115706830138905259568 101094440579835956866
+111091089527727420853 105901259206530390933
+115047896996200277508 102010610384685218706
+118245559326500322262 103475991020114516832
+112364132652438722780 117421021456205115327
+100084737546039360199 118357356982727825178
+114244914082871792125 113801236315350503728
+106122462724662012890 113068441549452664746
+101261243957067319422 116491285067171323298
+105822688186016123722 104618664838382110366
+101246601531247561585 105863188856924083857
+110731951130561423918 115047896996200277508
+100397511207083609950 115064258994656104138
+101246601531247561585 116621986644249676039
+113166718268343560861 107699711897781234810
+116374117927631468606 109412257237874861202
+106224435901697064976 100262595546646927505
+115064258994656104138 115863474911002159675
+109196389259504239326 115527632958457358109
+106122462724662012890 111091089527727420853
+116374117927631468606 103171849011748425097
+101213524574984631953 108255750659110762991
+115739378269261680935 118156281382429939997
+112364132652438722780 116773104421165750126
+109581870574956225297 115478779964227301239
+112276589013569458330 115739148151601573808
+107753428759636856492 118207880179234484610
+103493459351957813291 109247306373593947755
+109304903996729396661 108832773152747423283
+116491285067171323298 111091089527727420853
+114244914082871792125 105400903062771750089
+108952536790629690817 111091089527727420853
+100084737546039360199 109809835379677001002
+108082478497335384404 113116318008017777871
+117550971892000156946 101569655404865588155
+113351703941294630458 110468193592032465149
+104412682128547752131 101246601531247561585
+105006381068870463173 102654570556058167176
+115341960624782381062 100871232248276491534
+110318982509514011806 104987932455782713675
+108832773152747423283 105076678694475690385
+106026445270708973611 104612091113514802664
+106312895983244085949 108255750659110762991
+117377434815709898403 103112588675637065591
+102088173699409175139 100871232248276491534
+106665185918564754695 104560124403688998123
+113116318008017777871 107033731246200681024
+100084737546039360199 100523784851251213675
+108894779805940659869 104191514233385365427
+110318982509514011806 111285782175840598932
+117421021456205115327 109813896768294978296
+111538009015644508967 104412682128547752131
+100093902492789669774 118207880179234484610
+117377434815709898403 118207880179234484610
+102034052532213921839 102048265612444661933
+104870518715355770532 116374117927631468606
+115565811010545226083 118207880179234484610
+102088173699409175139 101261243957067319422
+103100496883422151101 103171849011748425097
+107896527414017792767 101213524574984631953
+103207773865797007066 102512310412972518336
+117421021456205115327 103171849011748425097
+104450760987525660219 109778238062128383421
+109170680659355634945 101092351652012588236
+109009089551467495747 104412682128547752131
+112016425853417877466 115478779964227301239
+109809835379677001002 107117483540235115863
+109581870574956225297 115963821022986200770
+114918561167106576639 114991987213662121376
+103493459351957813291 118320665823821681206
+106026445270708973611 102178700954286324866
+100269980559891536109 112844561713780016118
+107587075873786034394 114632854492678778509
+117921656724816772352 103207773865797007066
+108952536790629690817 101261243957067319422
+115739148151601573808 114979733565079457374
+111538009015644508967 103475991020114516832
+113351703941294630458 109412257237874861202
+101720949843787442951 104612091113514802664
+118357356982727825178 115565811010545226083
+109304903996729396661 115478779964227301239
+105901259206530390933 111666959095947698908
+112016425853417877466 116768967108862685383
+103100496883422151101 103716847685048716973
+107006059340452534782 117421021456205115327
+116762461061414014956 101213524574984631953
+117421021456205115327 112063946124358686266
+116762461061414014956 108817085747440374986
+115527632958457358109 101261243957067319422
+113116318008017777871 114791921155677330282
+107896527414017792767 103716847685048716973
+109304903996729396661 114632854492678778509
+100397511207083609950 106224435901697064976
+107753428759636856492 104612091113514802664
+100173452066172931939 110209787594312878744
+113116318008017777871 103660543175586203250
+110318982509514011806 108434394145774737013
+111091089527727420853 106695181236161584825
+111261496925076985134 116374117927631468606
+109304903996729396661 103171849011748425097
+104987932455782713675 118207880179234484610
+113047102292798770205 114244914082871792125
+100084737546039360199 106224435901697064976
+115963821022986200770 114918561167106576639
+108082478497335384404 107234826207633309420
+101832196121408756348 110367546804237452889
+100173452066172931939 113166718268343560861
+115360979797396777969 109813896768294978296
+112339769006469685593 111666959095947698908
+103016521073558596116 110286587261352351537
+115109077044202722504 104870518715355770532
+109170680659355634945 115706830138905259568
+102425976203575211068 109182513536739786206
+108255750659110762991 114758749740576519343
+104612091113514802664 115064258994656104138
+117377434815709898403 107090629815001792243
+105006381068870463173 113116318008017777871
+107753428759636856492 106312895983244085949
+115622466243011136115 102178700954286324866
+107033731246200681024 103112588675637065591
+105901259206530390933 104560124403688998123
+109304903996729396661 100262595546646927505
+104450760987525660219 107033731246200681024
+109581870574956225297 107117483540235115863
+106026445270708973611 103100496883422151101
+103016521073558596116 108082478497335384404
+108832773152747423283 100535338638690515335
+104412682128547752131 103716847685048716973
+102034052532213921839 109504122343901736603
+111538009015644508967 105822688186016123722
+111310990991240556038 106665185918564754695
+103660543175586203250 104612091113514802664
+107133948555394893679 116388668762198604003
+108314259245584185142 103537420161725387429
+117693415411676715849 100537991844787325512
+108082478497335384404 113612142759476883204
+101720949843787442951 103016521073558596116
+100535338638690515335 106665185918564754695
+109182513536739786206 100269980559891536109
+115565811010545226083 115863474911002159675
+107896527414017792767 101261243957067319422
+115739378269261680935 106822154985570317672
+104612091113514802664 113475277239647026452
+105076678694475690385 115622466243011136115
+115109077044202722504 113166718268343560861
+115109077044202722504 105006381068870463173
+116768967108862685383 107033731246200681024
+112944532473909341307 109247306373593947755
+106122462724662012890 104450760987525660219
+109304903996729396661 104450760987525660219
+115963821022986200770 118357356982727825178
+105076678694475690385 110209787594312878744
+103207773865797007066 107896527414017792767
+103325969492772452485 118207880179234484610
+111091089527727420853 107033731246200681024
+113351703941294630458 103660543175586203250
+113164038788726940319 100262595546646927505
+118357356982727825178 115478779964227301239
+118086737936443306746 114948739867290323960
+105703999093618427814 115341960624782381062
+112016425853417877466 113284787225540728296
+117691391504351341685 111091089527727420853
+112878918236054024365 102403331307606219198
+103100496883422151101 118357356982727825178
+117691391504351341685 109182513536739786206
+109778238062128383421 101225750534150134109
+102034052532213921839 108771911258181286059
+104412682128547752131 109170680659355634945
+112364132652438722780 109412257237874861202
+114790574178411061829 102178700954286324866
+107133948555394893679 100262595546646927505
+112944532473909341307 118207880179234484610
+117691391504351341685 102034052532213921839
+113116318008017777871 110318982509514011806
+115478779964227301239 115565811010545226083
+104987932455782713675 118418436905562612953
+104450760987525660219 110649214929620497857
+104450760987525660219 114461903539732780109
+106312895983244085949 117377434815709898403
+100397511207083609950 101213524574984631953
+111538009015644508967 104612091113514802664
+112276589013569458330 117550971892000156946
+104450760987525660219 115064258994656104138
+116762461061414014956 109412257237874861202
+115064258994656104138 106189723444098348646
+109504122343901736603 113047102292798770205
+102545157386069758709 103020619410065980303
+107519026002586025827 103325969492772452485
+109581870574956225297 108082478497335384404
+107753428759636856492 109412257237874861202
+113116318008017777871 108255750659110762991
+107006059340452534782 105076678694475690385
+108894779805940659869 102654570556058167176
+108899222163640713555 117921656724816772352
+111261496925076985134 103475991020114516832
+111091089527727420853 103716847685048716973
+113166718268343560861 105076678694475690385
+115706830138905259568 100019606796298306813
+109809835379677001002 108574688020691152748
+100535338638690515335 101569655404865588155
+100397511207083609950 116927391465690022495
+116548025566090395827 101629211371073711149
+103171849011748425097 109174551750397653742
+106122462724662012890 103171849011748425097
+109182513536739786206 107753428759636856492
+106312895983244085949 115047896996200277508
+106695181236161584825 117421021456205115327
+105400369085832308485 106026445270708973611
+103171849011748425097 115622466243011136115
+118245559326500322262 104450760987525660219
+115478779964227301239 109813896768294978296
+115622466243011136115 115863474911002159675
+111091089527727420853 109813896768294978296
+116762461061414014956 118207880179234484610
+116491285067171323298 103171849011748425097
+108817085747440374986 100537991844787325512
+115109077044202722504 114979733565079457374
+104612091113514802664 103660543175586203250
+104618664838382110366 109895887909967698705
+103153499873703329897 108016228299742896694
+117377434815709898403 107033731246200681024
+115478779964227301239 101569655404865588155
+100397511207083609950 102048265612444661933
+107033731246200681024 102034052532213921839
+101094440579835956866 103012564142649561853
+118418436905562612953 107234826207633309420
+103171849011748425097 100535338638690515335
+113116318008017777871 115622466243011136115
+111310990991240556038 109182513536739786206
+101261243957067319422 116207701819773193333
+105076678694475690385 116723923766489326849
+106096957694385885466 102088173699409175139
+107519026002586025827 107753428759636856492
+115064258994656104138 105705665708025552983
+106026445270708973611 100871232248276491534
+108817085747440374986 107097980510051172895
+102034052532213921839 116374117927631468606
+115622466243011136115 102048265612444661933
+115739378269261680935 108000051912603578599
+107753428759636856492 111538009015644508967
+104450760987525660219 114244914082871792125
+116491285067171323298 105376842241046675559
+112944532473909341307 110318982509514011806
+111654284395316165338 107117483540235115863
+117477042502591652021 109170680659355634945
+109174551750397653742 108894779805940659869
+100535338638690515335 105400903062771750089
+116621986644249676039 106189723444098348646
+112364132652438722780 106822154985570317672
+114079920283986872783 106122462724662012890
+118357356982727825178 113475277239647026452
+101720949843787442951 110286587261352351537
+111654284395316165338 113920721823301219308
+117421021456205115327 108176814619778619437
+116491285067171323298 115302451851587317396
+116207701819773193333 118207880179234484610
+103493459351957813291 118418436905562612953
+109304903996729396661 113247423264358423892
+100535338638690515335 118357356982727825178
+104987932455782713675 105076678694475690385
+104412682128547752131 115706830138905259568
+115047896996200277508 108574688020691152748
+103100496883422151101 110209787594312878744
+115739378269261680935 103207773865797007066
+109809835379677001002 116388668762198604003
+113116318008017777871 107753428759636856492
+106224435901697064976 103716847685048716973
+109196389259504239326 109335713877994755095
+115302451851587317396 110318982509514011806
+106312895983244085949 112364132652438722780
+108787861479092510435 108952536790629690817
+109931095616224405271 114632854492678778509
+102403331307606219198 105822688186016123722
+115739378269261680935 107308976571078250231
+113166718268343560861 103660543175586203250
+113801236315350503728 109388259228280605303
+112878918236054024365 104618664838382110366
+108894779805940659869 102088173699409175139
+106067770652209688980 114832793541825307503
+102654570556058167176 111806715084467662398
+100173452066172931939 115341960624782381062
+112276589013569458330 110727249496967897430
+109504122343901736603 109931095616224405271
+111538009015644508967 106665185918564754695
+109809835379677001002 103112588675637065591
+115360979797396777969 117550971892000156946
+109182513536739786206 100019606796298306813
+100084737546039360199 102178700954286324866
+109304903996729396661 111091089527727420853
+100397511207083609950 108817085747440374986
+104870518715355770532 115109077044202722504
+108817085747440374986 113801236315350503728
+112276589013569458330 106925005603331131101
+100856165335040300712 114832793541825307503
+102034052532213921839 113475277239647026452
+101092351652012588236 107781761552417614958
+117691391504351341685 100262595546646927505
+116762461061414014956 117691391504351341685
+103493459351957813291 105901259206530390933
+105822688186016123722 111285782175840598932
+102545157386069758709 106665185918564754695
+105662484616118909569 108894779805940659869
+100939735623367202041 105400903062771750089
+116773104421165750126 102088173699409175139
+105076678694475690385 104560124403688998123
+100397511207083609950 101832196121408756348
+110318982509514011806 117477042502591652021
+115527632958457358109 117550971892000156946
+103207773865797007066 114549564725160709822
+103016521073558596116 111601729473858041964
+118017787526225833770 109388259228280605303
+107519026002586025827 108255750659110762991
+108832773152747423283 100262595546646927505
+106224435901697064976 107033731246200681024
+106026445270708973611 118207880179234484610
+114790574178411061829 115565811010545226083
+111666959095947698908 118207880179234484610
+114991987213662121376 109182513536739786206
+109809835379677001002 117421021456205115327
+118264184129842070900 103100496883422151101
+106026445270708973611 102088173699409175139
+113164038788726940319 104450760987525660219
+107753428759636856492 105634350975670602787
+113351703941294630458 105376842241046675559
+109581870574956225297 109813896768294978296
+110650241045258158224 111707854651652464890
+114244914082871792125 103716847685048716973
+105076678694475690385 100269980559891536109
+115109077044202722504 115341960624782381062
+101261243957067319422 100173452066172931939
+110318982509514011806 113612142759476883204
+105400903062771750089 115064258994656104138
+105076678694475690385 118245559326500322262
+117691391504351341685 110318982509514011806
+102216887206636463918 113612142759476883204
+115739378269261680935 109412257237874861202
+113920721823301219308 107896527414017792767
+104226321884965863264 115302451851587317396
+115527632958457358109 103100496883422151101
+104612091113514802664 113612142759476883204
+112339769006469685593 109412257237874861202
+107006059340452534782 104560124403688998123
+115565811010545226083 118264184129842070900
+104412682128547752131 107753428759636856492
+113166718268343560861 101720949843787442951
+109182513536739786206 107587075873786034394
+109388259228280605303 104191514233385365427
+106096957694385885466 112290361600843238282
+108314259245584185142 107196172964000631645
+116762461061414014956 106925005603331131101
+110318982509514011806 115883560681104199404
+107896527414017792767 100269980559891536109
+106312895983244085949 105705665708025552983
+102512310412972518336 115527632958457358109
+115739378269261680935 105076678694475690385
+108832773152747423283 111601729473858041964
+107133948555394893679 111091089527727420853
+102034052532213921839 104612091113514802664
+109247306373593947755 104560124403688998123
+107753428759636856492 102048265612444661933
+117377434815709898403 110286587261352351537
+110318982509514011806 112844561713780016118
+108894779805940659869 109388259228280605303
+102088173699409175139 116192724891839469024
+107133948555394893679 114632854492678778509
+100535338638690515335 103493459351957813291
+103660543175586203250 101629211371073711149
+108082478497335384404 103691312271671214670
+113351703941294630458 118245559326500322262
+117691391504351341685 115478779964227301239
+112276589013569458330 109809835379677001002
+116768967108862685383 114549564725160709822
+101185406398932804414 113164038788726940319
+107519026002586025827 113116318008017777871
+106312895983244085949 102178700954286324866
+107896527414017792767 107753428759636856492
+108000051912603578599 103325969492772452485
+100084737546039360199 111091089527727420853
+117377434815709898403 104612091113514802664
+113164038788726940319 115706830138905259568
+114244914082871792125 103012564142649561853
+101261243957067319422 103493459351957813291
+100397143564111754723 104191514233385365427
+111666959095947698908 110318982509514011806
+110318982509514011806 118264184129842070900
+108817085747440374986 104450760987525660219
+107753428759636856492 104364058018116761460
+101213524574984631953 101094440579835956866
+108129202557078877094 116621986644249676039
+113116318008017777871 110468193592032465149
+100397511207083609950 114791921155677330282
+116388668762198604003 108255750659110762991
+115302451851587317396 118207880179234484610
+100871232248276491534 100093902492789669774
+103171849011748425097 103325969492772452485
+107753428759636856492 110318982509514011806
+108574688020691152748 111285782175840598932
+113116318008017777871 106665185918564754695
+103016521073558596116 105822688186016123722
+103975368181760158212 109247306373593947755
+101057616370673656059 113612142759476883204
+104987932455782713675 111654284395316165338
+115341960624782381062 111601729473858041964
+108832773152747423283 102034052532213921839
+104612091113514802664 103100496883422151101
+106312895983244085949 103325969492772452485
+103016521073558596116 109074857816744029470
+100269980559891536109 113247423264358423892
+107896527414017792767 115622466243011136115
+105006381068870463173 101704103161442695877
+112364132652438722780 111601729473858041964
+116207701819773193333 108000051912603578599
+116762461061414014956 103716847685048716973
+107781761552417614958 102034052532213921839
+112820512550939559523 107753428759636856492
+101720949843787442951 113047102292798770205
+107033731246200681024 115478779964227301239
+108817085747440374986 117691391504351341685
+111666959095947698908 102048265612444661933
+110774757382682582490 101629211371073711149
+114244914082871792125 112276589013569458330
+117550971892000156946 105822688186016123722
+103207773865797007066 112276589013569458330
+102034052532213921839 102178700954286324866
+105076678694475690385 118320665823821681206
+116768967108862685383 101261243957067319422
+111538009015644508967 114821161730370452301
+107006059340452534782 114821161730370452301
+111310990991240556038 118245559326500322262
+114790574178411061829 104364058018116761460
+102216887206636463918 114549564725160709822
+109174551750397653742 108255750659110762991
+118017787526225833770 100093902492789669774
+115739378269261680935 115920538018564742940
+102512310412972518336 115706830138905259568
+105705665708025552983 102178700954286324866
+117691391504351341685 100397511207083609950
+108082478497335384404 107033731246200681024
+104450760987525660219 103716847685048716973
+106925005603331131101 102034052532213921839
+116621986644249676039 115302451851587317396
+113920721823301219308 114790574178411061829
+104364058018116761460 118207880179234484610
+105400903062771750089 115478779964227301239
+101126226710566561379 106096957694385885466
+109182513536739786206 112276589013569458330
+113164038788726940319 102048265612444661933
+115064258994656104138 107896527414017792767
+107519026002586025827 113920721823301219308
+102512310412972518336 113351703941294630458
+107519026002586025827 109519167630731639094
+114244914082871792125 111285782175840598932
+109581870574956225297 116768967108862685383
+102048265612444661933 110318982509514011806
+107519026002586025827 117377434815709898403
+104870518715355770532 111032944513257134357
+109581870574956225297 107234826207633309420
+103100496883422151101 111538009015644508967
+113722523501415106689 105703999093618427814
+113612142759476883204 104560124403688998123
+110014891370822989957 105376842241046675559
+116762461061414014956 100535338638690515335
+100269980559891536109 115565811010545226083
+109504122343901736603 102034052532213921839
+111422286077941361166 105901259206530390933
+106026445270708973611 114549564725160709822
+109304903996729396661 110318982509514011806
+104450760987525660219 105634350975670602787
+114549564725160709822 114791921155677330282
+116388668762198604003 107753428759636856492
+113920721823301219308 107968787521028284191
+109174551750397653742 115622466243011136115
+111975545018506506119 102048265612444661933
+113920721823301219308 111310990991240556038
+102512310412972518336 103537420161725387429
+117377434815709898403 101720949843787442951
+104870518715355770532 115622466243011136115
+102484577222269062816 108176814619778619437
+101261243957067319422 108894779805940659869
+100353346783543697435 115047896996200277508
+109581870574956225297 112339769006469685593
+101261243957067319422 100397511207083609950
+100397511207083609950 115739148151601573808
+103016521073558596116 111285782175840598932
+109780617142585395916 101246601531247561585
+103691312271671214670 107753428759636856492
+103016521073558596116 111975545018506506119
+109504122343901736603 104450760987525660219
+104450760987525660219 109412257237874861202
+109778238062128383421 113612142759476883204
+116374117927631468606 109581870574956225297
+112364132652438722780 100535338638690515335
+111310990991240556038 105076678694475690385
+106812355611465528242 100173452066172931939
+113164038788726940319 111310990991240556038
+117377434815709898403 114522811866073303399
+118245559326500322262 107968787521028284191
+112820512550939559523 108255750659110762991
+115622466243011136115 107968787521028284191
+115392876317176762477 103207773865797007066
+100093902492789669774 103493459351957813291
+112339769006469685593 118320665823821681206
+115963821022986200770 112276589013569458330
+111975545018506506119 117421021456205115327
+109581870574956225297 106189723444098348646
+110448924610029803960 108771911258181286059
+112276589013569458330 103325969492772452485
+103016521073558596116 109174551750397653742
+114790574178411061829 105400903062771750089
+110448924610029803960 115047896996200277508
+109182513536739786206 105822688186016123722
+109174551750397653742 107753428759636856492
+113475277239647026452 109813896768294978296
+108817085747440374986 113164038788726940319
+101832196121408756348 104191514233385365427
+108314259245584185142 103493459351957813291
+111032944513257134357 117921656724816772352
+103016521073558596116 117693415411676715849
+108574688020691152748 115047896996200277508
+103207773865797007066 115109077044202722504
+102654570556058167176 108894779805940659869
+101261243957067319422 109895887909967698705
+101246601531247561585 109247306373593947755
+105705665708025552983 106695181236161584825
+110728349411116483031 112290361600843238282
+117477042502591652021 115109077044202722504
+108434394145774737013 108255750659110762991
+114918561167106576639 108574688020691152748
+118418436905562612953 104191514233385365427
+100084737546039360199 118207880179234484610
+112276589013569458330 109182513536739786206
+117550971892000156946 112276589013569458330
+115963821022986200770 100535338638690515335
+112364132652438722780 110209787594312878744
+118245559326500322262 109519167630731639094
+103153499873703329897 109603191376504998413
+114918561167106576639 109504122343901736603
+108000051912603578599 106345802537137414958
+102425976203575211068 109581870574956225297
+108817085747440374986 107968787521028284191
+115109077044202722504 111091089527727420853
+111422286077941361166 118320665823821681206
+110731951130561423918 115017401467423642930
+114991987213662121376 106925005603331131101
+105662484616118909569 104191514233385365427
+104870518715355770532 113801236315350503728
+101246601531247561585 114991987213662121376
+117921656724816772352 106096957694385885466
+103207773865797007066 106812355611465528242
+107133948555394893679 107896527414017792767
+100871232248276491534 107308976571078250231
+112364132652438722780 106100296973968329853
+117691391504351341685 104364058018116761460
+110728349411116483031 117995161934475952507
+115403621788538540544 105863188856924083857
+116768967108862685383 113210431006401244170
+117421021456205115327 107033731246200681024
+118207880179234484610 110318982509514011806
+111654284395316165338 108817085747440374986
+110774757382682582490 118245559326500322262
+103016521073558596116 116773104421165750126
+105901259206530390933 102034052532213921839
+101261243957067319422 102088173699409175139
+105376842241046675559 109174551750397653742
+105705665708025552983 118357356982727825178
+111261496925076985134 103691312271671214670
+104450760987525660219 113475277239647026452
+108255750659110762991 105705665708025552983
+101261243957067319422 109581870574956225297
+115047896996200277508 109247306373593947755
+115739378269261680935 102034052532213921839
+100856165335040300712 112364132652438722780
+108894779805940659869 108176814619778619437
+117921656724816772352 108899222163640713555
+116762461061414014956 115863474911002159675
+111091089527727420853 111538009015644508967
+109504122343901736603 107033731246200681024
+112820512550939559523 106189723444098348646
+100001826804813287036 102088173699409175139
+118086737936443306746 113247423264358423892
+116207701819773193333 111654284395316165338
+111975545018506506119 101832196121408756348
+115392876317176762477 118017787526225833770
+103325969492772452485 108082478497335384404
+109581870574956225297 100262595546646927505
+113166718268343560861 114632854492678778509
+106026445270708973611 103325969492772452485
+102216887206636463918 104560124403688998123
+107519026002586025827 103012564142649561853
+104450760987525660219 108082478497335384404
+115739378269261680935 104450760987525660219
+103153499873703329897 114522811866073303399
+100856165335040300712 106812355611465528242
+109174551750397653742 114790574178411061829
+112276589013569458330 118207880179234484610
+107793717361981126032 106812355611465528242
+115739378269261680935 104987932455782713675
+116374117927631468606 107033731246200681024
+118245559326500322262 101629211371073711149
+113801236315350503728 103171849011748425097
+103207773865797007066 108894779805940659869
+116773104421165750126 100871232248276491534
+106026445270708973611 116768967108862685383
+105705665708025552983 113116318008017777871
+114244914082871792125 101185406398932804414
+115706830138905259568 109813896768294978296
+100894876340926769800 111171416539633276676
+107033731246200681024 113247423264358423892
+107753428759636856492 100019606796298306813
+111091089527727420853 106026445270708973611
+104364058018116761460 105076678694475690385
+102034052532213921839 103112588675637065591
+115360979797396777969 113116318008017777871
+106122462724662012890 104364058018116761460
+112364132652438722780 102216887206636463918
+118245559326500322262 114632854492678778509
+115109077044202722504 104560124403688998123
+113166718268343560861 103975368181760158212
+106665185918564754695 109182513536739786206
+104870518715355770532 111707854651652464890
+115706830138905259568 103171849011748425097
+100856165335040300712 103207773865797007066
+105207943512906810696 118207880179234484610
+114918561167106576639 104191514233385365427
+108952536790629690817 103207773865797007066
+111422286077941361166 102403331307606219198
+112290361600843238282 104870518715355770532
+103691312271671214670 108899222163640713555
+113612142759476883204 103012564142649561853
+102545157386069758709 106312895983244085949
+117377434815709898403 113475277239647026452
+113612142759476883204 102216887206636463918
+117477042502591652021 112364132652438722780
+108082478497335384404 100084737546039360199
+109581870574956225297 112276589013569458330
+105705665708025552983 105076678694475690385
+101261243957067319422 113247423264358423892
+116773104421165750126 111538009015644508967
+101057616370673656059 104364058018116761460
+117157132370347986579 115047896996200277508
+107587075873786034394 106312895983244085949
+100397511207083609950 106345802537137414958
+100871232248276491534 103691312271671214670
+111654284395316165338 118320665823821681206
+117377434815709898403 118418436905562612953
+116374117927631468606 114918561167106576639
+115360979797396777969 105076678694475690385
+102088173699409175139 114821161730370452301
+106224435901697064976 113247423264358423892
+105705665708025552983 110318982509514011806
+106695181236161584825 102403331307606219198
+111091089527727420853 113624688426259176181
+105662484616118909569 103207773865797007066
+112276589013569458330 111538009015644508967
+102088173699409175139 113166718268343560861
+116762461061414014956 115109077044202722504
+112820512550939559523 104560124403688998123
+105901259206530390933 103493459351957813291
+109182513536739786206 114461903539732780109
+112944532473909341307 103112588675637065591
+107753428759636856492 107519026002586025827
+107133948555394893679 112844561713780016118
+109504122343901736603 114244914082871792125
+104450760987525660219 106665185918564754695
+118418436905562612953 117691391504351341685
+112016425853417877466 115017401467423642930
+104364058018116761460 109182513536739786206
+104364058018116761460 118357356982727825178
+103171849011748425097 105634350975670602787
+112944532473909341307 112063946124358686266
+102403331307606219198 109519167630731639094
+103100496883422151101 118264184129842070900
+118245559326500322262 112878918236054024365
+104987932455782713675 114979733565079457374
+118245559326500322262 100397143564111754723
+111171416539633276676 113117251731252114390
+113166718268343560861 101629211371073711149
+103493459351957813291 102048265612444661933
+101261243957067319422 103660543175586203250
+105705665708025552983 114079920283986872783
+100269980559891536109 118320665823821681206
+106312895983244085949 105634350975670602787
+106026445270708973611 113612142759476883204
+100084737546039360199 118320665823821681206
+103207773865797007066 116926943858449614201
+100535338638690515335 117421021456205115327
+104383523254857614001 107699711897781234810
+103207773865797007066 102654570556058167176
+107793717361981126032 115341960624782381062
+113166718268343560861 111707854651652464890
+115706830138905259568 102178700954286324866
+112364132652438722780 100173452066172931939
+115341960624782381062 107793717361981126032
+108255750659110762991 112844561713780016118
+100173452066172931939 106189723444098348646
+108434394145774737013 104364058018116761460
+116762461061414014956 108082478497335384404
+118418436905562612953 107117483540235115863
+115739378269261680935 118264184129842070900
+106312895983244085949 105400903062771750089
+112944532473909341307 109182513536739786206
+107303107611470093265 100939735623367202041
+118418436905562612953 114791921155677330282
+118418436905562612953 102216887206636463918
+101263833299534001868 108952536790629690817
+106925005603331131101 103171849011748425097
+113920721823301219308 104450760987525660219
+117693415411676715849 109581870574956225297
+109304903996729396661 107753428759636856492
+104364058018116761460 106695181236161584825
+112276589013569458330 108817085747440374986
+118245559326500322262 110286587261352351537
+112944532473909341307 115622466243011136115
+103100496883422151101 106026445270708973611
+107033731246200681024 113612142759476883204
+117377434815709898403 114979733565079457374
+110731951130561423918 101246601531247561585
+106026445270708973611 109813896768294978296
+106695181236161584825 114632854492678778509
+108082478497335384404 100262595546646927505
+104870518715355770532 103691312271671214670
+108894779805940659869 107129852879758941909
+115622466243011136115 101629211371073711149
+113612142759476883204 100269980559891536109
+100093902492789669774 107308976571078250231
+115565811010545226083 111091089527727420853
+116207701819773193333 104560124403688998123
+109581870574956225297 106695181236161584825
+104612091113514802664 114979733565079457374
+101057616370673656059 105376842241046675559
+115739148151601573808 113166718268343560861
+115302451851587317396 114790574178411061829
+103016521073558596116 101481313915867030905
+108817085747440374986 101261243957067319422
+115706830138905259568 110318982509514011806
+116374117927631468606 118207880179234484610
+108817085747440374986 105822688186016123722
+112276589013569458330 103171849011748425097
+108894779805940659869 108129202557078877094
+115064258994656104138 115478779964227301239
+111538009015644508967 115739378269261680935
+105705665708025552983 117421021456205115327
+112339769006469685593 113612142759476883204
+103207773865797007066 116374117927631468606
+109196389259504239326 102088173699409175139
+109504122343901736603 113612142759476883204
+116374117927631468606 105901259206530390933
+112364132652438722780 100269980559891536109
+115064258994656104138 114632854492678778509
+111261496925076985134 104066486855641683676
+112944532473909341307 106695181236161584825
+108817085747440374986 113475277239647026452
+109504122343901736603 109895887909967698705
+117377434815709898403 103716847685048716973
+107519026002586025827 116374117927631468606
+101261243957067319422 105076678694475690385
+115360979797396777969 100523784851251213675
+106224435901697064976 108255750659110762991
+101092351652012588236 109247306373593947755
+105006381068870463173 105822688186016123722
+107755092517418534815 106812355611465528242
+114079920283986872783 111285782175840598932
+101213524574984631953 114079920283986872783
+104870518715355770532 112844561713780016118
+112878918236054024365 115622466243011136115
+103691312271671214670 111538009015644508967
+109778238062128383421 100019606796298306813
+111538009015644508967 117691391504351341685
+109504122343901736603 102178700954286324866
+100397511207083609950 108434394145774737013
+101261243957067319422 105376842241046675559
+114790574178411061829 106189723444098348646
+100093902492789669774 101704103161442695877
+109304903996729396661 109895887909967698705
+117921656724816772352 117012574629989558450
+108082478497335384404 111310990991240556038
+109170680659355634945 104191514233385365427
+108314259245584185142 117995161934475952507
+115302451851587317396 109174551750397653742
+103207773865797007066 118207880179234484610
+102048265612444661933 100523784851251213675
+111261496925076985134 104560124403688998123
+113920721823301219308 115478779964227301239
+104226321884965863264 105632941129656401917
+115302451851587317396 114522811866073303399
+115739148151601573808 115478779964227301239
+105705665708025552983 102034052532213921839
+102034052532213921839 106695181236161584825
+112852253337028739987 116762461061414014956
+109304903996729396661 110286587261352351537
+111654284395316165338 113116318008017777871
+116207701819773193333 109581870574956225297
+101261243957067319422 103171849011748425097
+107753428759636856492 107781761552417614958
+102512310412972518336 107117483540235115863
+105076678694475690385 100262595546646927505
+113116318008017777871 109581870574956225297
+115109077044202722504 100001826804813287036
+109247306373593947755 115403621788538540544
+114790574178411061829 107587075873786034394
+112016425853417877466 116388668762198604003
+116621986644249676039 108082478497335384404
+102216887206636463918 103207773865797007066
+106122462724662012890 118086737936443306746
+112944532473909341307 100415723513846680553
+102048265612444661933 115622466243011136115
+115302451851587317396 103567864289861449366
+104612091113514802664 115360979797396777969
+112016425853417877466 114359738470992181937
+112016425853417877466 115341960624782381062
+112944532473909341307 114948739867290323960
+104364058018116761460 113475277239647026452
+106695181236161584825 107097980510051172895
+115064258994656104138 104450760987525660219
+118357356982727825178 113612142759476883204
+103171849011748425097 102048265612444661933
+103016521073558596116 118418436905562612953
+107117418142368704725 115360979797396777969
+111538009015644508967 112276589013569458330
+115047896996200277508 103325969492772452485
+100093902492789669774 115109077044202722504
+113116318008017777871 114790574178411061829
+104450760987525660219 103100496883422151101
+108817085747440374986 108771911258181286059
+108082478497335384404 107117483540235115863
+107033731246200681024 113116318008017777871
+103100496883422151101 110727249496967897430
+112364132652438722780 107033731246200681024
+102484577222269062816 100397143564111754723
+117421021456205115327 110286587261352351537
+106665185918564754695 103325969492772452485
+111091089527727420853 108000051912603578599
+116388668762198604003 110318982509514011806
+104987932455782713675 103012564142649561853
+112016425853417877466 109581870574956225297
+102034052532213921839 112063946124358686266
+113047102292798770205 104987932455782713675
+112364132652438722780 114821161730370452301
+111091089527727420853 103582267051807991527
+105076678694475690385 111337216646096594888
+107006059340452534782 113210431006401244170
+114790574178411061829 118207880179234484610
+117691391504351341685 115064258994656104138
+110650241045258158224 115109077044202722504
+117421021456205115327 101225750534150134109
+111975545018506506119 107117483540235115863
+107519026002586025827 104560124403688998123
+115478779964227301239 105634350975670602787
+102512310412972518336 100894876340926769800
+115739378269261680935 100269980559891536109
+114918561167106576639 114758749740576519343
+117421021456205115327 105400903062771750089
+108243648069327964538 101213524574984631953
+114918561167106576639 104612091113514802664
+116374117927631468606 117550971892000156946
+115622466243011136115 103012564142649561853
+104450760987525660219 110727249496967897430
+107753428759636856492 109182513536739786206
+103325969492772452485 109412257237874861202
+101720949843787442951 107308976571078250231
+106812355611465528242 115109077044202722504
+109780617142585395916 102512310412972518336
+112339769006469685593 100397511207083609950
+107753428759636856492 117477042502591652021
+101720949843787442951 113351703941294630458
+101261243957067319422 104364058018116761460
+113920721823301219308 109074857816744029470
+118418436905562612953 100537991844787325512
+111666959095947698908 102216887206636463918
+106096957694385885466 104066486855641683676
+102034052532213921839 114948739867290323960
+115739378269261680935 118017787526225833770
+114918561167106576639 115017401467423642930
+104612091113514802664 106312895983244085949
+100173452066172931939 103112588675637065591
+108000051912603578599 107781761552417614958
+105901259206530390933 111422286077941361166
+111654284395316165338 105822688186016123722
+104987932455782713675 107117483540235115863
+109247306373593947755 103325969492772452485
+103207773865797007066 100537991844787325512
+102216887206636463918 103100496883422151101
+115706830138905259568 107033731246200681024
+115883560681104199404 112944532473909341307
+102034052532213921839 112276589013569458330
+103016521073558596116 115527632958457358109
+100397511207083609950 107519026002586025827
+115360979797396777969 115963821022986200770
+116374117927631468606 113116318008017777871
+104612091113514802664 116388668762198604003
+103016521073558596116 118357356982727825178
+106026445270708973611 105703999093618427814
+116107530889292552664 107090629815001792243
+116374117927631468606 104870518715355770532
+100871232248276491534 110209787594312878744
+113116318008017777871 111285782175840598932
+111091089527727420853 107106500560002041088
+114991987213662121376 114979733565079457374
+114152150496380806218 115341960624782381062
+108899222163640713555 107308976571078250231
+104870518715355770532 116768967108862685383
+100093902492789669774 104066486855641683676
+107781761552417614958 103537420161725387429
+108000051912603578599 115478779964227301239
+108832773152747423283 118320665823821681206
+112016425853417877466 117693415411676715849
+115565811010545226083 103171849011748425097
+111310990991240556038 103325969492772452485
+109581870574956225297 103716847685048716973
+100939735623367202041 107117418142368704725
+116762461061414014956 109895887909967698705
+101849747879612982297 106189723444098348646
+114991987213662121376 108817085747440374986
+108817085747440374986 102178700954286324866
+107303107611470093265 100353346783543697435
+118357356982727825178 111091089527727420853
+117421021456205115327 101057616370673656059
+117421021456205115327 109581870574956225297
+115109077044202722504 110318982509514011806
+111975545018506506119 108082478497335384404
+110731951130561423918 111091089527727420853
+116374117927631468606 112852253337028739987
+107196172964000631645 100535338638690515335
+107753428759636856492 109809835379677001002
+104412682128547752131 115403621788538540544
+105006381068870463173 115017401467423642930
+109182513536739786206 109895887909967698705
+108314259245584185142 100262595546646927505
+100084737546039360199 102034052532213921839
+110728349411116483031 116723923766489326849
+108314259245584185142 117550971892000156946
+115739148151601573808 109182513536739786206
+108894779805940659869 115739378269261680935
+100535338638690515335 115360979797396777969
+113116318008017777871 108082478497335384404
+109809835379677001002 115565811010545226083
+105006381068870463173 101832196121408756348
+105076678694475690385 109778238062128383421
+114918561167106576639 112944532473909341307
+103153499873703329897 102512310412972518336
+117550971892000156946 101261243957067319422
+117477042502591652021 101246601531247561585
+115565811010545226083 101225750534150134109
+114244914082871792125 103660543175586203250
+103567864289861449366 115302451851587317396
+103325969492772452485 110318982509514011806
+101261243957067319422 101185406398932804414
+109778238062128383421 109519167630731639094
+111666959095947698908 103537420161725387429
+116621986644249676039 105006381068870463173
+107196172964000631645 113920721823301219308
+115047896996200277508 109174551750397653742
+100397511207083609950 107753428759636856492
+115478779964227301239 108000051912603578599
+103493459351957813291 103207773865797007066
+103153499873703329897 101832771958125915909
+117691391504351341685 100269980559891536109
+104412682128547752131 106345802537137414958
+116388668762198604003 109813896768294978296
+109304903996729396661 101057616370673656059
+106122462724662012890 106224435901697064976
+112820512550939559523 113210431006401244170
+105901259206530390933 110286587261352351537
+104870518715355770532 110728349411116483031
+117477042502591652021 116762461061414014956
+109196389259504239326 101094440579835956866
+116388668762198604003 105400903062771750089
+100397511207083609950 100397143564111754723
+100535338638690515335 115565811010545226083
+109196389259504239326 108574688020691152748
+109174551750397653742 118264184129842070900
+112944532473909341307 113612142759476883204
+101261243957067319422 109074857816744029470
+106312895983244085949 106189723444098348646
+100397511207083609950 112944532473909341307
+104450760987525660219 113612142759476883204
+107033731246200681024 102048265612444661933
+103691312271671214670 104870518715355770532
+103171849011748425097 102178700954286324866
+113047102292798770205 103171849011748425097
+115478779964227301239 115360979797396777969
+107587075873786034394 109778238062128383421
+116926943858449614201 114244914082871792125
+100535338638690515335 108771911258181286059
+111310990991240556038 105400903062771750089
+109581870574956225297 101094440579835956866
+104870518715355770532 101261243957067319422
+103016521073558596116 110209787594312878744
+113475277239647026452 111091089527727420853
+100084737546039360199 112820512550939559523
+109504122343901736603 111310990991240556038
+117377434815709898403 108143819792337559199
+101832196121408756348 101704103161442695877
+115739148151601573808 111091089527727420853
+109809835379677001002 115478779964227301239
+115739148151601573808 115047896996200277508
+104618664838382110366 103493459351957813291
+113612142759476883204 103537420161725387429
+112944532473909341307 116388668762198604003
+114918561167106576639 103475991020114516832
+112339769006469685593 109074857816744029470
+106122462724662012890 112844561713780016118
+115739378269261680935 115403621788538540544
+105076678694475690385 114632854492678778509
+104870518715355770532 115565811010545226083
+109196389259504239326 109304903996729396661
+115047896996200277508 114632854492678778509
+106695181236161584825 104364058018116761460
+117421021456205115327 102048265612444661933
+104612091113514802664 107234826207633309420
+101057616370673656059 105400903062771750089
+103016521073558596116 115739378269261680935
+113612142759476883204 115109077044202722504
+106026445270708973611 113164038788726940319
+111538009015644508967 109247306373593947755
+100397511207083609950 102034052532213921839
+113166718268343560861 106096957694385885466
+115565811010545226083 109778238062128383421
+115527632958457358109 115302451851587317396
+108082478497335384404 112276589013569458330
+116621986644249676039 107133948555394893679
+105901259206530390933 114549564725160709822
+109809835379677001002 113116318008017777871
+108952536790629690817 112063946124358686266
+106026445270708973611 111285782175840598932
+106695181236161584825 107896527414017792767
+102216887206636463918 102512310412972518336
+115963821022986200770 114979733565079457374
+113801236315350503728 114549564725160709822
+101261243957067319422 109778238062128383421
+112364132652438722780 101213524574984631953
+114244914082871792125 111654284395316165338
+100397511207083609950 117683744929337064105
+102512310412972518336 103567864289861449366
+101261243957067319422 105901259206530390933
+115706830138905259568 107992936493665613654
+104412682128547752131 103020619410065980303
+116762461061414014956 114991987213662121376
+115302451851587317396 114791921155677330282
+114918561167106576639 107992936493665613654
+111337216646096594888 118156281382429939997
+115047896996200277508 110286587261352351537
+117921656724816772352 104383523254857614001
+106122462724662012890 110318982509514011806
+110318982509514011806 104412682128547752131
+112820512550939559523 109813896768294978296
+116207701819773193333 114549564725160709822
+102088173699409175139 112364132652438722780
+102512310412972518336 108952536790629690817
+105705665708025552983 107992936493665613654
+106925005603331131101 108000051912603578599
+115302451851587317396 115565811010545226083
+117921656724816772352 118017787526225833770
+112364132652438722780 100856165335040300712
+105901259206530390933 104618664838382110366
+111091089527727420853 103325969492772452485
+111310990991240556038 115706830138905259568
+112364132652438722780 108255750659110762991
+116926943858449614201 111707854651652464890
+108817085747440374986 101629211371073711149
+117477042502591652021 104412682128547752131
+113920721823301219308 112844561713780016118
+116762461061414014956 107117483540235115863
+110318982509514011806 101832771958125915909
+115109077044202722504 113116318008017777871
+112276589013569458330 109778238062128383421
+101057616370673656059 103325969492772452485
+101225750534150134109 101569655404865588155
+104987932455782713675 102425976203575211068
+106312895983244085949 104364058018116761460
+107896527414017792767 118264184129842070900
+114991987213662121376 116762461061414014956
+116374117927631468606 111422286077941361166
+112364132652438722780 113722523501415106689
+115963821022986200770 105901259206530390933
+104450760987525660219 107117483540235115863
+107117418142368704725 110774757382682582490
+114549564725160709822 101057616370673656059
+101600577333348274552 114632854492678778509
+100535338638690515335 100523784851251213675
+114244914082871792125 100523784851251213675
+106026445270708973611 106623900962110772648
+113047102292798770205 109519167630731639094
+104450760987525660219 111091089527727420853
+111538009015644508967 101261243957067319422
+100397511207083609950 115739378269261680935
+109504122343901736603 103716847685048716973
+114244914082871792125 106189723444098348646
+105901259206530390933 115478779964227301239
+102034052532213921839 111601729473858041964
+107117418142368704725 112944532473909341307
+109174551750397653742 115064258994656104138
+113068441549452664746 111285782175840598932
+102088173699409175139 103207773865797007066
+102034052532213921839 110727249496967897430
+104612091113514802664 102034052532213921839
+115478779964227301239 114079920283986872783
+105207943512906810696 107196172964000631645
+109388259228280605303 111806715084467662398
+109335713877994755095 100257676670422660178
+110728349411116483031 101261243957067319422
+115302451851587317396 107968787521028284191
+107519026002586025827 117691391504351341685
+107753428759636856492 104191514233385365427
+109504122343901736603 107097980510051172895
+108832773152747423283 115064258994656104138
+102512310412972518336 102178700954286324866
+107033731246200681024 109813896768294978296
+115739148151601573808 101720949843787442951
+118357356982727825178 103171849011748425097
+107519026002586025827 103112588675637065591
+104987932455782713675 105901259206530390933
+115478779964227301239 114790574178411061829
+104412682128547752131 115739148151601573808
+112276589013569458330 118264184129842070900
+117691391504351341685 107133948555394893679
+101261243957067319422 101629211371073711149
+116768967108862685383 109074857816744029470
+109809835379677001002 113612142759476883204
+104450760987525660219 107308976571078250231
+106925005603331131101 114079920283986872783
+108000051912603578599 112944532473909341307
+103325969492772452485 104364058018116761460
+111310990991240556038 113210431006401244170
+107753428759636856492 108082478497335384404
+116207701819773193333 102088173699409175139
+114244914082871792125 102048265612444661933
+115963821022986200770 113920721823301219308
+101261243957067319422 105006381068870463173
+101057616370673656059 109335713877994755095
+107753428759636856492 104560124403688998123
+115739378269261680935 110367546804237452889
+115706830138905259568 118357356982727825178
+112364132652438722780 107896527414017792767
+109780617142585395916 104412682128547752131
+104412682128547752131 105662484616118909569
+103207773865797007066 105006381068870463173
+118357356982727825178 101225750534150134109
+109581870574956225297 104560124403688998123
+108817085747440374986 105400903062771750089
+115565811010545226083 103112588675637065591
+101720949843787442951 114790574178411061829
+106122462724662012890 113475277239647026452
+103660543175586203250 114979733565079457374
+114244914082871792125 109074857816744029470
+106312895983244085949 118207880179234484610
+113612142759476883204 107753428759636856492
+108000051912603578599 103020619410065980303
+112016425853417877466 105901259206530390933
+105632941129656401917 111091089527727420853
+118017787526225833770 110728349411116483031
+107755092517418534815 101057616370673656059
+113116318008017777871 105705665708025552983
+112944532473909341307 109809835379677001002
+101261243957067319422 115047896996200277508
+107519026002586025827 115622466243011136115
+105376842241046675559 107753428759636856492
+113116318008017777871 107968787521028284191
+115109077044202722504 100871232248276491534
+101185406398932804414 107006059340452534782
+102425976203575211068 107992936493665613654
+100397511207083609950 114821161730370452301
+109304903996729396661 101569655404865588155
+115392876317176762477 100093902492789669774
+101094440579835956866 108255750659110762991
+111091089527727420853 113164038788726940319
+114918561167106576639 114791921155677330282
+101213524574984631953 108574688020691152748
+101261243957067319422 113920721823301219308
+111337216646096594888 116621986644249676039
+117377434815709898403 105076678694475690385
+108574688020691152748 111091089527727420853
+113612142759476883204 108000051912603578599
+115064258994656104138 110727249496967897430
+104191514233385365427 114790574178411061829
+111091089527727420853 105822688186016123722
+107753428759636856492 115706830138905259568
+107519026002586025827 100523784851251213675
+118086737936443306746 112944532473909341307
+101057616370673656059 114549564725160709822
+116491285067171323298 104560124403688998123
+112820512550939559523 109809835379677001002
+104364058018116761460 107896527414017792767
+111806715084467662398 109388259228280605303
+103016521073558596116 103475991020114516832
+107781761552417614958 107587075873786034394
+115360979797396777969 115706830138905259568
+104364058018116761460 104450760987525660219
+103207773865797007066 117995161934475952507
+105076678694475690385 101094440579835956866
+102545157386069758709 111310990991240556038
+100535338638690515335 111654284395316165338
+104450760987525660219 113068441549452664746
+105901259206530390933 116926943858449614201
+108817085747440374986 101213524574984631953
+105705665708025552983 115706830138905259568
+107753428759636856492 112820512550939559523
+116374117927631468606 115017401467423642930
+102034052532213921839 108434394145774737013
+101094440579835956866 115478779964227301239
+106224435901697064976 115064258994656104138
+115341960624782381062 106822154985570317672
+117377434815709898403 111310990991240556038
+113920721823301219308 102178700954286324866
+108894779805940659869 116621986644249676039
+102088173699409175139 106822154985570317672
+114918561167106576639 103207773865797007066
+108000051912603578599 104560124403688998123
+106026445270708973611 106096957694385885466
+109778238062128383421 107033731246200681024
+106312895983244085949 111538009015644508967
+115360979797396777969 116374117927631468606
+109780617142585395916 105662484616118909569
+109009089551467495747 101832771958125915909
+109780617142585395916 109388259228280605303
+111654284395316165338 102034052532213921839
+108817085747440374986 109581870574956225297
+114758749740576519343 117421021456205115327
+103325969492772452485 109074857816744029470
+113116318008017777871 100173452066172931939
+109304903996729396661 106312895983244085949
+115883560681104199404 111538009015644508967
+105901259206530390933 115963821022986200770
+106224435901697064976 111285782175840598932
+113920721823301219308 112276589013569458330
+109780617142585395916 115706830138905259568
+102403331307606219198 118320665823821681206
+118418436905562612953 107896527414017792767
+112852253337028739987 114632854492678778509
+102034052532213921839 105901259206530390933
+102216887206636463918 100523784851251213675
+109504122343901736603 108176814619778619437
+109174551750397653742 101261243957067319422
+111091089527727420853 101832771958125915909
+102512310412972518336 116207701819773193333
+104450760987525660219 117691391504351341685
+115739148151601573808 115739378269261680935
+109504122343901736603 102048265612444661933
+109388259228280605303 101704103161442695877
+104412682128547752131 104450760987525660219
+103016521073558596116 113284787225540728296
+108832773152747423283 101261243957067319422
+112820512550939559523 113475277239647026452
+117421021456205115327 101094440579835956866
+100173452066172931939 109074857816744029470
+100856165335040300712 107090629815001792243
+104870518715355770532 108894779805940659869
+113116318008017777871 113210431006401244170
+101057616370673656059 110727249496967897430
+105901259206530390933 107992936493665613654
+106096957694385885466 114522811866073303399
+100084737546039360199 113247423264358423892
+106312895983244085949 111654284395316165338
+105901259206530390933 105076678694475690385
+115565811010545226083 117550971892000156946
+104612091113514802664 112852253337028739987
+103660543175586203250 110649214929620497857
+109174551750397653742 110318982509514011806
+103207773865797007066 106026445270708973611
+115739378269261680935 107117483540235115863
+107896527414017792767 115863474911002159675
+107896527414017792767 108255750659110762991
+105076678694475690385 103325969492772452485
+117377434815709898403 117421021456205115327
+113116318008017777871 117691391504351341685
+108574688020691152748 108255750659110762991
+101261243957067319422 101213524574984631953
+106026445270708973611 115739148151601573808
+115109077044202722504 100537991844787325512
+115360979797396777969 108176814619778619437
+109247306373593947755 100019606796298306813
+112276589013569458330 104612091113514802664
+100084737546039360199 104364058018116761460
+107006059340452534782 109074857816744029470
+111538009015644508967 109074857816744029470
+102088173699409175139 108894779805940659869
+107896527414017792767 104450760987525660219
+109335713877994755095 101832771958125915909
+109009089551467495747 115047896996200277508
+107896527414017792767 110318982509514011806
+113351703941294630458 113612142759476883204
+106026445270708973611 107755092517418534815
+112944532473909341307 114461903539732780109
+104612091113514802664 114790574178411061829
+104987932455782713675 100397511207083609950
+115478779964227301239 118264184129842070900
+106122462724662012890 101261243957067319422
+109170680659355634945 101832771958125915909
+105705665708025552983 102048265612444661933
+107753428759636856492 107033731246200681024
+113047102292798770205 110286587261352351537
+104450760987525660219 104987932455782713675
+112276589013569458330 109412257237874861202
+103171849011748425097 105400903062771750089
+105076678694475690385 116768967108862685383
+113116318008017777871 113920721823301219308
+113166718268343560861 115739378269261680935
+104450760987525660219 115478779964227301239
+100084737546039360199 108255750659110762991
+116207701819773193333 110727249496967897430
+116374117927631468606 110209787594312878744
+110318982509514011806 102034052532213921839
+109182513536739786206 118207880179234484610
+117691391504351341685 101094440579835956866
+109504122343901736603 116762461061414014956
+116374117927631468606 115302451851587317396
+106096957694385885466 116107530889292552664
+101092351652012588236 104191514233385365427
+109170680659355634945 104412682128547752131
+116374117927631468606 111261496925076985134
+110728349411116483031 113612142759476883204
+100093902492789669774 113117251731252114390
+100535338638690515335 105006381068870463173
+113047102292798770205 103475991020114516832
+104612091113514802664 103171849011748425097
+113116318008017777871 100262595546646927505
+100269980559891536109 110318982509514011806
+112364132652438722780 115963821022986200770
+101094440579835956866 118264184129842070900
+118418436905562612953 113247423264358423892
+105662484616118909569 104981620794721816747
+114244914082871792125 108255750659110762991
+115963821022986200770 101213524574984631953
+106345802537137414958 108434394145774737013
+103691312271671214670 113166718268343560861
+108817085747440374986 108894779805940659869
+107519026002586025827 103100496883422151101
+115047896996200277508 101261243957067319422
+113166718268343560861 105632941129656401917
+104612091113514802664 109174551750397653742
+115109077044202722504 114359738470992181937
+113612142759476883204 106189723444098348646
+105901259206530390933 116773104421165750126
+117691391504351341685 106189723444098348646
+116388668762198604003 104364058018116761460
+117691391504351341685 105006381068870463173
+106224435901697064976 117421021456205115327
+100173452066172931939 111285782175840598932
+103016521073558596116 109809835379677001002
+101849747879612982297 113612142759476883204
+111538009015644508967 118418436905562612953
+115963821022986200770 116762461061414014956
+104987932455782713675 100535338638690515335
+106623900962110772648 109603191376504998413
+105076678694475690385 101213524574984631953
+104364058018116761460 115565811010545226083
+106026445270708973611 100523784851251213675
+113801236315350503728 111538009015644508967
+104870518715355770532 108899222163640713555
+109809835379677001002 106665185918564754695
+108894779805940659869 107117483540235115863
+108000051912603578599 108817085747440374986
+106623900962110772648 111171416539633276676
+100269980559891536109 112063946124358686266
+115739148151601573808 109170680659355634945
+104450760987525660219 112878918236054024365
+110731951130561423918 109895887909967698705
+102034052532213921839 114991987213662121376
+104612091113514802664 118207880179234484610
+113801236315350503728 115047896996200277508
+105822688186016123722 112944532473909341307
+104364058018116761460 111310990991240556038
+109388259228280605303 118177473010760322916
+113116318008017777871 114522811866073303399
+100535338638690515335 115047896996200277508
+100093902492789669774 103171849011748425097
+105901259206530390933 104612091113514802664
+108314259245584185142 110318982509514011806
+116762461061414014956 110209787594312878744
+108082478497335384404 107753428759636856492
+109809835379677001002 113475277239647026452
+115739378269261680935 116192724891839469024
+105006381068870463173 109780617142585395916
+102545157386069758709 109412257237874861202
+102705549361550492663 105376842241046675559
+101832196121408756348 104412682128547752131
+100537991844787325512 116768967108862685383
+107090629815001792243 111601729473858041964
+103016521073558596116 110318982509514011806
+100084737546039360199 113475277239647026452
+114244914082871792125 107753428759636856492
+113612142759476883204 107519026002586025827
+102654570556058167176 110286587261352351537
+115360979797396777969 107234826207633309420
+106695181236161584825 109895887909967698705
+107755092517418534815 106026445270708973611
+105705665708025552983 112844561713780016118
+100535338638690515335 113612142759476883204
+111310990991240556038 118264184129842070900
+114991987213662121376 117477042502591652021
+108000051912603578599 105705665708025552983
+109581870574956225297 115739378269261680935
+106312895983244085949 113210431006401244170
+104450760987525660219 105400903062771750089
+107519026002586025827 109778238062128383421
+113166718268343560861 115109077044202722504
+111996414642516891950 109335713877994755095
+102654570556058167176 110318982509514011806
+104618664838382110366 100262595546646927505
+108817085747440374986 114632854492678778509
+106312895983244085949 106122462724662012890
+117477042502591652021 104364058018116761460
+109247306373593947755 102048265612444661933
+104450760987525660219 107234826207633309420
+111091089527727420853 101094440579835956866
+107753428759636856492 115739378269261680935
+115360979797396777969 112339769006469685593
+114790574178411061829 111538009015644508967
+107519026002586025827 115565811010545226083
+111666959095947698908 102034052532213921839
+101246601531247561585 111337216646096594888
+101057616370673656059 109813896768294978296
+112364132652438722780 113920721823301219308
+114549564725160709822 107753428759636856492
+103171849011748425097 113116318008017777871
+108817085747440374986 105376842241046675559
+104612091113514802664 114948739867290323960
+112878918236054024365 118245559326500322262
+106224435901697064976 103112588675637065591
+102512310412972518336 105400903062771750089
+106096957694385885466 101261243957067319422
+100856165335040300712 114549564725160709822
+100535338638690515335 107033731246200681024
+117550971892000156946 107097980510051172895
+116374117927631468606 115360979797396777969
+100173452066172931939 101261243957067319422
+107196172964000631645 110318982509514011806
+102512310412972518336 103716847685048716973
+107519026002586025827 114948739867290323960
+113116318008017777871 117377434815709898403
+104450760987525660219 101629211371073711149
+117921656724816772352 102583861614002135208
+103325969492772452485 102545157386069758709
+110448924610029803960 107303107611470093265
+109182513536739786206 104560124403688998123
+114790574178411061829 105634350975670602787
+118245559326500322262 103493459351957813291
+108082478497335384404 108255750659110762991
+103100496883422151101 106312895983244085949
+103100496883422151101 109412257237874861202
+104870518715355770532 111261496925076985134
+111975545018506506119 105076678694475690385
+104191514233385365427 109895887909967698705
+107587075873786034394 107097980510051172895
+103207773865797007066 115739378269261680935
+115109077044202722504 106837636108890930395
+116207701819773193333 113475277239647026452
+106096957694385885466 110728349411116483031
+112276589013569458330 113164038788726940319
+111666959095947698908 115302451851587317396
+115706830138905259568 105076678694475690385
+115109077044202722504 114152150496380806218
+106122462724662012890 115360979797396777969
+104618664838382110366 108817085747440374986
+108129202557078877094 105662484616118909569
+111091089527727420853 105076678694475690385
+112016425853417877466 115565811010545226083
+111538009015644508967 107781761552417614958
+116762461061414014956 118357356982727825178
+101261243957067319422 108176814619778619437
+100397511207083609950 118357356982727825178
+104450760987525660219 116548025566090395827
+113164038788726940319 105076678694475690385
+113116318008017777871 100537991844787325512
+101057616370673656059 103012564142649561853
+109174551750397653742 108574688020691152748
+116723923766489326849 107006059340452534782
+115064258994656104138 108574688020691152748
+116207701819773193333 116768967108862685383
+102512310412972518336 115360979797396777969
+108000051912603578599 100269980559891536109
+111091089527727420853 103012564142649561853
+117683744929337064105 115047896996200277508
+110318982509514011806 107133948555394893679
+113801236315350503728 104560124403688998123
+109247306373593947755 108434394145774737013
+103100496883422151101 117691391504351341685
+109504122343901736603 111285782175840598932
+113351703941294630458 111091089527727420853
+100535338638690515335 115478779964227301239
+107753428759636856492 112276589013569458330
+115109077044202722504 115047896996200277508
+113116318008017777871 100535338638690515335
+100856165335040300712 102216887206636463918
+103691312271671214670 115403621788538540544
+102216887206636463918 111091089527727420853
+109809835379677001002 110727249496967897430
+113166718268343560861 104987932455782713675
+103691312271671214670 101126226710566561379
+101057616370673656059 118357356982727825178
+109778238062128383421 108817085747440374986
+104612091113514802664 111091089527727420853
+109196389259504239326 118264184129842070900
+106925005603331131101 107753428759636856492
+116374117927631468606 112844561713780016118
+113116318008017777871 109074857816744029470
+100871232248276491534 115739378269261680935
+116374117927631468606 102178700954286324866
+108000051912603578599 116762461061414014956
+113166718268343560861 108176814619778619437
+106312895983244085949 107234826207633309420
+107519026002586025827 112339769006469685593
+108082478497335384404 115360979797396777969
+113166718268343560861 100262595546646927505
+109247306373593947755 103475991020114516832
+100856165335040300712 110209787594312878744
+103016521073558596116 113166718268343560861
+107117418142368704725 103171849011748425097
+113920721823301219308 112339769006469685593
+101057616370673656059 107755092517418534815
+107519026002586025827 105822688186016123722
+102425976203575211068 103012564142649561853
+109581870574956225297 100019606796298306813
+113166718268343560861 100269980559891536109
+115360979797396777969 113920721823301219308
+107303107611470093265 118086737936443306746
+104987932455782713675 103716847685048716973
+103493459351957813291 101832771958125915909
+103016521073558596116 113210431006401244170
+107196172964000631645 111091089527727420853
+115360979797396777969 109182513536739786206
+101057616370673656059 107968787521028284191
+102512310412972518336 103493459351957813291
+100397511207083609950 101849747879612982297
+100397511207083609950 114948739867290323960
+100001826804813287036 116927391465690022495
+106695181236161584825 113247423264358423892
+115739378269261680935 110286587261352351537
+100269980559891536109 108817085747440374986
+118245559326500322262 109504122343901736603
+105705665708025552983 118264184129842070900
+117691391504351341685 117477042502591652021
+103016521073558596116 112339769006469685593
+100269980559891536109 109519167630731639094
+101057616370673656059 111666959095947698908
+116762461061414014956 113612142759476883204
+114791921155677330282 116768967108862685383
+104191514233385365427 111538009015644508967
+104450760987525660219 113247423264358423892
+115360979797396777969 118264184129842070900
+106096957694385885466 110367546804237452889
+106695181236161584825 109581870574956225297
+115017401467423642930 110318982509514011806
+117377434815709898403 103012564142649561853
+107033731246200681024 105030465637303791249
+105076678694475690385 106312895983244085949
+100084737546039360199 105634350975670602787
+100353346783543697435 111091089527727420853
+102216887206636463918 102048265612444661933
+100084737546039360199 107519026002586025827
+109304903996729396661 111310990991240556038
+106122462724662012890 118264184129842070900
+112339769006469685593 102034052532213921839
+106837636108890930395 114821161730370452301
+115302451851587317396 106067770652209688980
+111654284395316165338 117691391504351341685
+113612142759476883204 109895887909967698705
+111538009015644508967 107117483540235115863
+109174551750397653742 106224435901697064976
+113164038788726940319 103325969492772452485
+106665185918564754695 100084737546039360199
+100397511207083609950 110209787594312878744
+109247306373593947755 109388259228280605303
+105901259206530390933 104987932455782713675
+105822688186016123722 117421021456205115327
+103016521073558596116 104560124403688998123
+109304903996729396661 115565811010545226083
+113116318008017777871 108000051912603578599
+108894779805940659869 116723923766489326849
+118245559326500322262 103207773865797007066
+104277680236688325392 105376842241046675559
+116762461061414014956 113166718268343560861
+110318982509514011806 118418436905562612953
+111538009015644508967 103012564142649561853
+108082478497335384404 111285782175840598932
+100173452066172931939 103171849011748425097
+116762461061414014956 103207773865797007066
+105076678694475690385 105901259206530390933
+107587075873786034394 108817085747440374986
+100397511207083609950 103100496883422151101
+109174551750397653742 115047896996200277508
+106096957694385885466 115920538018564742940
+112878918236054024365 115739148151601573808
+105076678694475690385 115527632958457358109
+106665185918564754695 112844561713780016118
+104987932455782713675 112878918236054024365
+106026445270708973611 107968787521028284191
+115963821022986200770 107117483540235115863
+115565811010545226083 109519167630731639094
+100269980559891536109 114632854492678778509
+100269980559891536109 106189723444098348646
+113164038788726940319 109412257237874861202
+101246601531247561585 113612142759476883204
+108000051912603578599 109247306373593947755
+113166718268343560861 102034052532213921839
+106122462724662012890 102034052532213921839
+113475277239647026452 105634350975670602787
+116192724891839469024 117921656724816772352
+115963821022986200770 109182513536739786206
+108082478497335384404 117693415411676715849
+105006381068870463173 113612142759476883204
+116621986644249676039 101261243957067319422
+115706830138905259568 118207880179234484610
+101832196121408756348 100537991844787325512
+113351703941294630458 109504122343901736603
+107519026002586025827 113210431006401244170
+109581870574956225297 107992936493665613654
+111091089527727420853 100269980559891536109
+103660543175586203250 101600577333348274552
+117477042502591652021 100019606796298306813
+109778238062128383421 114632854492678778509
+115739148151601573808 109931095616224405271
+101569655404865588155 115622466243011136115
+107303107611470093265 106189723444098348646
+114790574178411061829 113116318008017777871
+101057616370673656059 117691391504351341685
+105076678694475690385 113475277239647026452
+115739148151601573808 110649214929620497857
+108314259245584185142 113351703941294630458
+107196172964000631645 106189723444098348646
+101246601531247561585 100537991844787325512
+104450760987525660219 107117418142368704725
+100397511207083609950 116762461061414014956
+101261243957067319422 112364132652438722780
+113801236315350503728 107968787521028284191
+100535338638690515335 113475277239647026452
+107587075873786034394 104364058018116761460
+111310990991240556038 101261243957067319422
+101261243957067319422 114244914082871792125
+108817085747440374986 101600577333348274552
+106026445270708973611 104412682128547752131
+112878918236054024365 111422286077941361166
+100257676670422660178 115302451851587317396
+109778238062128383421 109182513536739786206
+104612091113514802664 101057616370673656059
+101057616370673656059 113117251731252114390
+108314259245584185142 107308976571078250231
+103207773865797007066 100093902492789669774
+118245559326500322262 107133948555394893679
+117691391504351341685 109809835379677001002
+117691391504351341685 117421021456205115327
+103691312271671214670 106096957694385885466
+111538009015644508967 101246601531247561585
+104612091113514802664 101600577333348274552
+116773104421165750126 103100496883422151101
+100269980559891536109 101261243957067319422
+107090629815001792243 103100496883422151101
+118357356982727825178 104612091113514802664
+115706830138905259568 115883560681104199404
+115478779964227301239 114632854492678778509
+102512310412972518336 110318982509514011806
+109581870574956225297 112844561713780016118
+115706830138905259568 109170680659355634945
+111310990991240556038 108000051912603578599
+103171849011748425097 104364058018116761460
+111538009015644508967 118207880179234484610
+113612142759476883204 117691391504351341685
+116374117927631468606 115047896996200277508
+114549564725160709822 102216887206636463918
+114244914082871792125 111538009015644508967
+115622466243011136115 108255750659110762991
+102512310412972518336 101213524574984631953
+115622466243011136115 105076678694475690385
+103016521073558596116 116491285067171323298
+105705665708025552983 112944532473909341307
+106026445270708973611 109074857816744029470
+109174551750397653742 113068441549452664746
+112820512550939559523 100262595546646927505
+100856165335040300712 111091089527727420853
+111091089527727420853 112944532473909341307
+104364058018116761460 107519026002586025827
+108894779805940659869 101261243957067319422
+113166718268343560861 105006381068870463173
+113164038788726940319 117691391504351341685
+115622466243011136115 104450760987525660219
+103207773865797007066 111538009015644508967
+102216887206636463918 100856165335040300712
+107753428759636856492 101213524574984631953
+113351703941294630458 103012564142649561853
+114918561167106576639 116762461061414014956
+115565811010545226083 102048265612444661933
+101261243957067319422 103207773865797007066
+113920721823301219308 104364058018116761460
+111422286077941361166 112878918236054024365
+104412682128547752131 100019606796298306813
+101057616370673656059 115478779964227301239
+102034052532213921839 100523784851251213675
+117691391504351341685 110209787594312878744
+118418436905562612953 116374117927631468606
+102545157386069758709 109170680659355634945
+107133948555394893679 117691391504351341685
+112364132652438722780 103100496883422151101
+118418436905562612953 111538009015644508967
+102088173699409175139 116927391465690022495
+115920538018564742940 104870518715355770532
+100397511207083609950 100084737546039360199
+112276589013569458330 116621986644249676039
+103207773865797007066 103475991020114516832
+108832773152747423283 111091089527727420853
+108000051912603578599 108255750659110762991
+114758749740576519343 112944532473909341307
+101092351652012588236 104412682128547752131
+106122462724662012890 112339769006469685593
+104612091113514802664 111654284395316165338
+106026445270708973611 105400369085832308485
+110731951130561423918 116192724891839469024
+108817085747440374986 103660543175586203250
+109780617142585395916 108817085747440374986
+100397511207083609950 108176814619778619437
+107519026002586025827 110318982509514011806
+118418436905562612953 115047896996200277508
+106695181236161584825 112878918236054024365
+115527632958457358109 107992936493665613654
+111422286077941361166 118245559326500322262
+110731951130561423918 107308976571078250231
+105901259206530390933 115109077044202722504
+117691391504351341685 114079920283986872783
+105822688186016123722 104987932455782713675
+103100496883422151101 114461903539732780109
+112364132652438722780 115390494223651393388
+107896527414017792767 100262595546646927505
+102034052532213921839 108817085747440374986
+105076678694475690385 110727249496967897430
+110728349411116483031 100093902492789669774
+111538009015644508967 110367546804237452889
+104450760987525660219 102178700954286324866
+114991987213662121376 109778238062128383421
+107755092517418534815 110209787594312878744
+100084737546039360199 117691391504351341685
+112276589013569458330 104191514233385365427
+115360979797396777969 107753428759636856492
+100397511207083609950 117477042502591652021
+114244914082871792125 101849747879612982297
+100084737546039360199 116388668762198604003
+101720949843787442951 100262595546646927505
+102654570556058167176 116621986644249676039
+112878918236054024365 103660543175586203250
+116374117927631468606 103493459351957813291
+106224435901697064976 111310990991240556038
+105006381068870463173 116723923766489326849
+106224435901697064976 113475277239647026452
+107303107611470093265 110448924610029803960
+116773104421165750126 113612142759476883204
+116762461061414014956 113475277239647026452
+106695181236161584825 118245559326500322262
+107006059340452534782 111091089527727420853
+104618664838382110366 114244914082871792125
+108000051912603578599 103112588675637065591
+101261243957067319422 109335713877994755095
+114244914082871792125 104560124403688998123
+113920721823301219308 118264184129842070900
+110318982509514011806 108817085747440374986
+115047896996200277508 115478779964227301239
+102512310412972518336 107033731246200681024
+101849747879612982297 112063946124358686266
+108817085747440374986 113612142759476883204
+108082478497335384404 114790574178411061829
+105076678694475690385 103207773865797007066
+108869261693909788407 103691312271671214670
+116762461061414014956 115341960624782381062
+115047896996200277508 118357356982727825178
+100173452066172931939 107133948555394893679
+102216887206636463918 114821161730370452301
+110774757382682582490 118207880179234484610
+111091089527727420853 114244914082871792125
+104450760987525660219 109895887909967698705
+112016425853417877466 107117483540235115863
+113116318008017777871 103112588675637065591
+118086737936443306746 107097980510051172895
+114790574178411061829 114079920283986872783
+106026445270708973611 102048265612444661933
+100084737546039360199 111538009015644508967
+101057616370673656059 104450760987525660219
+110014891370822989957 100257676670422660178
+117377434815709898403 114758749740576519343
+102048265612444661933 115565811010545226083
+117550971892000156946 112844561713780016118
+107753428759636856492 101261243957067319422
+111996414642516891950 115302451851587317396
+115109077044202722504 116768967108862685383
+100084737546039360199 113117251731252114390
+106925005603331131101 116548025566090395827
+100269980559891536109 115622466243011136115
+109809835379677001002 103171849011748425097
+100397511207083609950 105376842241046675559
+111091089527727420853 113116318008017777871
+104412682128547752131 114991987213662121376
+107753428759636856492 106189723444098348646
+100353346783543697435 103716847685048716973
+104364058018116761460 101481313915867030905
+107519026002586025827 108082478497335384404
+115622466243011136115 106695181236161584825
+108952536790629690817 107117483540235115863
+109778238062128383421 105076678694475690385
+111091089527727420853 116621986644249676039
+101261243957067319422 108082478497335384404
+104612091113514802664 107097980510051172895
+109009089551467495747 114948739867290323960
+110014891370822989957 103567864289861449366
+104618664838382110366 110649214929620497857
+115963821022986200770 112844561713780016118
+112016425853417877466 101849747879612982297
+117157132370347986579 109809835379677001002
+115565811010545226083 112063946124358686266
+108952536790629690817 108894779805940659869
+114244914082871792125 102403331307606219198
+112820512550939559523 101185406398932804414
+118086737936443306746 109504122343901736603
+110731951130561423918 102403331307606219198
+111975545018506506119 101185406398932804414
+109778238062128383421 112944532473909341307
+111538009015644508967 104560124403688998123
+107896527414017792767 109809835379677001002
+107033731246200681024 118357356982727825178
+117421021456205115327 103716847685048716973
+109174551750397653742 101225750534150134109
+107033731246200681024 115565811010545226083
+117691391504351341685 108434394145774737013
+108817085747440374986 107587075873786034394
+115360979797396777969 109174551750397653742
+111310990991240556038 114948739867290323960
+111975545018506506119 104450760987525660219
+113047102292798770205 114918561167106576639
+113920721823301219308 113475277239647026452
+104450760987525660219 118418436905562612953
+111310990991240556038 113612142759476883204
+116107530889292552664 106026445270708973611
+114991987213662121376 111538009015644508967
+109778238062128383421 107781761552417614958
+115047896996200277508 109412257237874861202
+108952536790629690817 107308976571078250231
+106026445270708973611 114791921155677330282
+100871232248276491534 108894779805940659869
+101213524574984631953 102545157386069758709
+105076678694475690385 103012564142649561853
+113475277239647026452 101225750534150134109
+102034052532213921839 103475991020114516832
+113164038788726940319 107753428759636856492
+109247306373593947755 101092351652012588236
+106312895983244085949 103012564142649561853
+117550971892000156946 101849747879612982297
+106096957694385885466 110731951130561423918
+100093902492789669774 112063946124358686266
+103016521073558596116 100262595546646927505
+108894779805940659869 105662484616118909569
+113166718268343560861 108082478497335384404
+116926943858449614201 108314259245584185142
+100084737546039360199 110727249496967897430
+110774757382682582490 103100496883422151101
+104191514233385365427 102545157386069758709
+101057616370673656059 100537991844787325512
+109182513536739786206 107781761552417614958
+115963821022986200770 110318982509514011806
+106665185918564754695 114790574178411061829
+112364132652438722780 109809835379677001002
+115622466243011136115 109074857816744029470
+103207773865797007066 104792450024518550569
+115739148151601573808 105822688186016123722
+112339769006469685593 104987932455782713675
+107755092517418534815 102512310412972518336
+108255750659110762991 105400903062771750089
+109778238062128383421 115478779964227301239
+109304903996729396661 103716847685048716973
+104612091113514802664 101629211371073711149
+107896527414017792767 113117251731252114390
+112276589013569458330 115622466243011136115
+116773104421165750126 106189723444098348646
+104870518715355770532 101126226710566561379
+112820512550939559523 106122462724662012890
+103016521073558596116 115706830138905259568
+109581870574956225297 111654284395316165338
+105376842241046675559 115302451851587317396
+101213524574984631953 102048265612444661933
+106312895983244085949 109412257237874861202
+117477042502591652021 115017401467423642930
+103153499873703329897 100894876340926769800
+107753428759636856492 115064258994656104138
+105400903062771750089 103660543175586203250
+111091089527727420853 100397143564111754723
+107896527414017792767 104364058018116761460
+103207773865797007066 112844561713780016118
+114244914082871792125 108574688020691152748
+114244914082871792125 112844561713780016118
+106096957694385885466 113801236315350503728
+117421021456205115327 103325969492772452485
+106837636108890930395 107699711897781234810
+110318982509514011806 118207880179234484610
+111975545018506506119 107753428759636856492
+107133948555394893679 107234826207633309420
+107753428759636856492 106345802537137414958
+103493459351957813291 118207880179234484610
+101225750534150134109 111285782175840598932
+109778238062128383421 106925005603331131101
+102654570556058167176 104412682128547752131
+109504122343901736603 110318982509514011806
+118086737936443306746 115863474911002159675
+100084737546039360199 105705665708025552983
+103016521073558596116 113116318008017777871
+117691391504351341685 111538009015644508967
+107133948555394893679 113247423264358423892
+115341960624782381062 100856165335040300712
+107006059340452534782 111285782175840598932
+112276589013569458330 105076678694475690385
+111337216646096594888 104191514233385365427
+107090629815001792243 115109077044202722504
+115478779964227301239 107753428759636856492
+111091089527727420853 107896527414017792767
+115883560681104199404 114991987213662121376
+111654284395316165338 106189723444098348646
+113475277239647026452 110727249496967897430
+118418436905562612953 103171849011748425097
+115478779964227301239 112276589013569458330
+117691391504351341685 109412257237874861202
+105901259206530390933 111538009015644508967
+104612091113514802664 103493459351957813291
+100871232248276491534 113247423264358423892
+105006381068870463173 115109077044202722504
+104450760987525660219 113164038788726940319
+104364058018116761460 117550971892000156946
+114918561167106576639 109809835379677001002
+107033731246200681024 115863474911002159675
+106925005603331131101 112944532473909341307
+109388259228280605303 104383523254857614001
+115302451851587317396 106189723444098348646
+111538009015644508967 109780617142585395916
+116388668762198604003 109778238062128383421
+105207943512906810696 110286587261352351537
+105705665708025552983 106665185918564754695
+118357356982727825178 111538009015644508967
+117693415411676715849 114791921155677330282
+109778238062128383421 104450760987525660219
+103567864289861449366 105376842241046675559
+112820512550939559523 102048265612444661933
+110731951130561423918 111538009015644508967
+101246601531247561585 111666959095947698908
+116207701819773193333 102178700954286324866
+112944532473909341307 115565811010545226083
+111091089527727420853 102403331307606219198
+105901259206530390933 108832773152747423283
+105207943512906810696 103171849011748425097
+113116318008017777871 113247423264358423892
+109182513536739786206 107117483540235115863
+100269980559891536109 109813896768294978296
+107781761552417614958 107992936493665613654
+106665185918564754695 112339769006469685593
+115739378269261680935 111666959095947698908
+113166718268343560861 117477042502591652021
+102403331307606219198 104612091113514802664
+100535338638690515335 110727249496967897430
+104450760987525660219 116768967108862685383
+103171849011748425097 105705665708025552983
+112944532473909341307 106189723444098348646
+114244914082871792125 115047896996200277508
+109809835379677001002 115963821022986200770
+100939735623367202041 105376842241046675559
+103493459351957813291 111538009015644508967
+111422286077941361166 115963821022986200770
+115109077044202722504 106100296973968329853
+105705665708025552983 100269980559891536109
+113801236315350503728 102178700954286324866
+100084737546039360199 112844561713780016118
+103153499873703329897 111171416539633276676
+108434394145774737013 114790574178411061829
+112364132652438722780 107753428759636856492
+103016521073558596116 107234826207633309420
+105705665708025552983 114948739867290323960
+107519026002586025827 107117483540235115863
+113116318008017777871 109895887909967698705
+107896527414017792767 111310990991240556038
+113166718268343560861 115739148151601573808
+109504122343901736603 112844561713780016118
+117691391504351341685 105901259206530390933
+108314259245584185142 105822688186016123722
+103020619410065980303 114991987213662121376
+101720949843787442951 105901259206530390933
+114918561167106576639 114632854492678778509
+109809835379677001002 111091089527727420853
+118418436905562612953 114979733565079457374
+113351703941294630458 112878918236054024365
+115064258994656104138 109778238062128383421
+106096957694385885466 103153499873703329897
+112016425853417877466 113116318008017777871
+100397511207083609950 111666959095947698908
+106312895983244085949 111091089527727420853
+101481313915867030905 118264184129842070900
+117421021456205115327 109412257237874861202
+116207701819773193333 100537991844787325512
+110728349411116483031 117012574629989558450
+100173452066172931939 108082478497335384404
+106096957694385885466 115302451851587317396
+102512310412972518336 110727249496967897430
+105901259206530390933 110318982509514011806
+108243648069327964538 113351703941294630458
+107519026002586025827 111654284395316165338
+118418436905562612953 100262595546646927505
+103016521073558596116 113612142759476883204
+107006059340452534782 113117251731252114390
+106122462724662012890 100537991844787325512
+115739148151601573808 100262595546646927505
+104612091113514802664 114791921155677330282
+106096957694385885466 102583861614002135208
+109170680659355634945 108894779805940659869
+100173452066172931939 106100296973968329853
+102034052532213921839 101629211371073711149
+118418436905562612953 102545157386069758709
+115565811010545226083 107519026002586025827
+101094440579835956866 113210431006401244170
+118245559326500322262 112276589013569458330
+103207773865797007066 101263833299534001868
+105076678694475690385 103171849011748425097
+113116318008017777871 100397511207083609950
+117691391504351341685 114821161730370452301
+104450760987525660219 114979733565079457374
+115109077044202722504 102216887206636463918
+102216887206636463918 103716847685048716973
+103016521073558596116 113801236315350503728
+109196389259504239326 111285782175840598932
+104618664838382110366 101720949843787442951
+117691391504351341685 109519167630731639094
+111091089527727420853 115302451851587317396
+115064258994656104138 109174551750397653742
+104612091113514802664 110286587261352351537
+116768967108862685383 114791921155677330282
+102034052532213921839 102425976203575211068
+106312895983244085949 110727249496967897430
+117421021456205115327 107968787521028284191
+113166718268343560861 116768967108862685383
+105076678694475690385 113210431006401244170
+115478779964227301239 109778238062128383421
+106224435901697064976 103171849011748425097
+116762461061414014956 100537991844787325512
+112016425853417877466 103207773865797007066
+106026445270708973611 104191514233385365427
+100535338638690515335 107133948555394893679
+102425976203575211068 112944532473909341307
+106122462724662012890 107753428759636856492
+115622466243011136115 106189723444098348646
+103207773865797007066 116927391465690022495
+102512310412972518336 101569655404865588155
+115739148151601573808 116621986644249676039
+115360979797396777969 114758749740576519343
+118086737936443306746 109182513536739786206
+111806715084467662398 115017401467423642930
+105705665708025552983 114790574178411061829
+104987932455782713675 106312895983244085949
+115739378269261680935 111091089527727420853
+105705665708025552983 114758749740576519343
+101569655404865588155 102034052532213921839
+115706830138905259568 113116318008017777871
+115622466243011136115 101261243957067319422
+112364132652438722780 114359738470992181937
+102512310412972518336 109813896768294978296
+112944532473909341307 115863474911002159675
+104612091113514802664 113116318008017777871
+115963821022986200770 107753428759636856492
+104191514233385365427 104412682128547752131
+104612091113514802664 110318982509514011806
+104412682128547752131 102545157386069758709
+117691391504351341685 111654284395316165338
+102403331307606219198 114979733565079457374
+118207880179234484610 113116318008017777871
+113351703941294630458 109813896768294978296
+115392876317176762477 108176814619778619437
+104364058018116761460 112276589013569458330
+107006059340452534782 103012564142649561853
+111337216646096594888 109388259228280605303
+111654284395316165338 107896527414017792767
+115622466243011136115 113920721823301219308
+111091089527727420853 113475277239647026452
+112339769006469685593 107117483540235115863
+116374117927631468606 112364132652438722780
+103153499873703329897 109388259228280605303
+106122462724662012890 115622466243011136115
+105400369085832308485 106096957694385885466
+101261243957067319422 104612091113514802664
+113116318008017777871 115478779964227301239
+113351703941294630458 113210431006401244170
+101057616370673656059 100523784851251213675
+108574688020691152748 106224435901697064976
+101057616370673656059 102178700954286324866
+104612091113514802664 114758749740576519343
+116207701819773193333 118264184129842070900
+101261243957067319422 114979733565079457374
+101261243957067319422 109412257237874861202
+108000051912603578599 112844561713780016118
+105901259206530390933 108594511384403031361
+108255750659110762991 110727249496967897430
+114918561167106576639 102403331307606219198
+111666959095947698908 110286587261352351537
+104412682128547752131 100537991844787325512
+109388259228280605303 108894779805940659869
+109778238062128383421 114244914082871792125
+101261243957067319422 104412682128547752131
+107781761552417614958 107033731246200681024
+109196389259504239326 100353346783543697435
+117421021456205115327 113612142759476883204
+114244914082871792125 107781761552417614958
+106122462724662012890 108255750659110762991
+103207773865797007066 103171849011748425097
+111538009015644508967 112944532473909341307
+102545157386069758709 103171849011748425097
+114079920283986872783 108255750659110762991
+107133948555394893679 100535338638690515335
+116762461061414014956 107626068753267217775
+105705665708025552983 103171849011748425097
+116374117927631468606 103207773865797007066
+115109077044202722504 114821161730370452301
+112364132652438722780 107755092517418534815
+111538009015644508967 116762461061414014956
+114359738470992181937 112364132652438722780
+106695181236161584825 109519167630731639094
+107519026002586025827 100397511207083609950
+108817085747440374986 103537420161725387429
+103567864289861449366 110014891370822989957
+116762461061414014956 102178700954286324866
+114991987213662121376 110318982509514011806
+111091089527727420853 110286587261352351537
+107781761552417614958 114758749740576519343
+112944532473909341307 109813896768294978296
+105207943512906810696 111091089527727420853
+101600577333348274552 113247423264358423892
+104450760987525660219 111654284395316165338
+115403621788538540544 104191514233385365427
+111091089527727420853 103207773865797007066
+118245559326500322262 102484577222269062816
+104364058018116761460 107968787521028284191
+115565811010545226083 104560124403688998123
+106312895983244085949 100262595546646927505
+117691391504351341685 103207773865797007066
+111538009015644508967 103207773865797007066
+108952536790629690817 113210431006401244170
+115739378269261680935 103493459351957813291
+115064258994656104138 109074857816744029470
+101057616370673656059 107106500560002041088
+101057616370673656059 115565811010545226083
+112944532473909341307 113475277239647026452
+113612142759476883204 114549564725160709822
+108817085747440374986 113351703941294630458
+105705665708025552983 115863474911002159675
+103016521073558596116 107755092517418534815
+115883560681104199404 108000051912603578599
+104612091113514802664 102178700954286324866
+102216887206636463918 109388259228280605303
+104412682128547752131 114632854492678778509
+109170680659355634945 111091089527727420853
+101832196121408756348 100871232248276491534
+110731951130561423918 101126226710566561379
+114244914082871792125 107106500560002041088
+114918561167106576639 107896527414017792767
+105822688186016123722 115739148151601573808
+105076678694475690385 111285782175840598932
+106925005603331131101 109182513536739786206
+116762461061414014956 114832793541825307503
+100173452066172931939 109813896768294978296
+115963821022986200770 118207880179234484610
+107519026002586025827 101261243957067319422
+110731951130561423918 110728349411116483031
+113116318008017777871 113612142759476883204
+106122462724662012890 113612142759476883204
+108817085747440374986 103012564142649561853
+104870518715355770532 117921656724816772352
+115064258994656104138 111091089527727420853
+102010610384685218706 100353346783543697435
+111975545018506506119 111538009015644508967
+113116318008017777871 113475277239647026452
+103100496883422151101 112276589013569458330
+113612142759476883204 118357356982727825178
+112844561713780016118 117691391504351341685
+106312895983244085949 103171849011748425097
+104191514233385365427 103020619410065980303
+113351703941294630458 109174551750397653742
+111806715084467662398 104191514233385365427
+102512310412972518336 116768967108862685383
+100084737546039360199 101569655404865588155
+105822688186016123722 111310990991240556038
+117691391504351341685 107753428759636856492
+108817085747440374986 117421021456205115327
+118245559326500322262 103171849011748425097
+113164038788726940319 109813896768294978296
+115739378269261680935 105901259206530390933
+117691391504351341685 112852253337028739987
+110318982509514011806 104560124403688998123
+102048265612444661933 106189723444098348646
+106312895983244085949 111310990991240556038
+114549564725160709822 117377434815709898403
+102654570556058167176 117477042502591652021
+113166718268343560861 111666959095947698908
+107753428759636856492 102545157386069758709
+106026445270708973611 102216887206636463918
+117477042502591652021 118156281382429939997
+109174551750397653742 108082478497335384404
+110318982509514011806 108082478497335384404
+111091089527727420853 109780617142585395916
+104450760987525660219 114632854492678778509
+105076678694475690385 111091089527727420853
+115302451851587317396 111996414642516891950
+107090629815001792243 113722523501415106689
+114918561167106576639 117550971892000156946
+107896527414017792767 106695181236161584825
+108082478497335384404 104450760987525660219
+118264184129842070900 111285782175840598932
+116374117927631468606 113801236315350503728
+112016425853417877466 114791921155677330282
+100397511207083609950 113284787225540728296
+117691391504351341685 101213524574984631953
+100084737546039360199 116762461061414014956
+107033731246200681024 109174551750397653742
+107753428759636856492 115360979797396777969
+108314259245584185142 115360979797396777969
+100353346783543697435 106189723444098348646
+100084737546039360199 112944532473909341307
+106623900962110772648 114832793541825307503
+109174551750397653742 115565811010545226083
+102512310412972518336 114791921155677330282
+117377434815709898403 108000051912603578599
+107006059340452534782 115739378269261680935
+107133948555394893679 118245559326500322262
+115739378269261680935 103171849011748425097
+103016521073558596116 114821161730370452301
+102048265612444661933 114790574178411061829
+102654570556058167176 101261243957067319422
+111707854651652464890 114791921155677330282
+108000051912603578599 115883560681104199404
+111654284395316165338 117421021456205115327
+110318982509514011806 100523784851251213675
+100397511207083609950 108574688020691152748
+115527632958457358109 115047896996200277508
+107519026002586025827 106189723444098348646
+113920721823301219308 104560124403688998123
+106695181236161584825 111538009015644508967
+117921656724816772352 107308976571078250231
+103691312271671214670 106100296973968329853
+100856165335040300712 114152150496380806218
+100397511207083609950 117550971892000156946
+104364058018116761460 100269980559891536109
+109388259228280605303 103537420161725387429
+103207773865797007066 116762461061414014956
+111538009015644508967 113475277239647026452
+103493459351957813291 107234826207633309420
+118418436905562612953 115017401467423642930
+100397511207083609950 114549564725160709822
+103493459351957813291 100262595546646927505
+107303107611470093265 115047896996200277508
+110318982509514011806 115622466243011136115
+114244914082871792125 102034052532213921839
+114758749740576519343 112276589013569458330
+115109077044202722504 106026445270708973611
+100871232248276491534 115047896996200277508
+115047896996200277508 118264184129842070900
+115706830138905259568 104450760987525660219
+106312895983244085949 108574688020691152748
+115360979797396777969 101849747879612982297
+117477042502591652021 113166718268343560861
+109335713877994755095 114522811866073303399
+111666959095947698908 107234826207633309420
+105901259206530390933 113801236315350503728
+114918561167106576639 115565811010545226083
+101057616370673656059 108082478497335384404
+109170680659355634945 109780617142585395916
+110318982509514011806 113801236315350503728
+118418436905562612953 105901259206530390933
+106096957694385885466 117995161934475952507
+113116318008017777871 111091089527727420853
+115302451851587317396 117691391504351341685
+109778238062128383421 101261243957067319422
+102425976203575211068 107781761552417614958
+104612091113514802664 109809835379677001002
+109304903996729396661 101849747879612982297
+115064258994656104138 110318982509514011806
+103691312271671214670 109388259228280605303
+102512310412972518336 113475277239647026452
+101263833299534001868 103207773865797007066
+115739148151601573808 115565811010545226083
+109581870574956225297 117377434815709898403
+115883560681104199404 114979733565079457374
+118086737936443306746 114790574178411061829
+108243648069327964538 109335713877994755095
+104412682128547752131 117477042502591652021
+117550971892000156946 112852253337028739987
+115706830138905259568 112276589013569458330
+113164038788726940319 108952536790629690817
+103016521073558596116 107033731246200681024
+104412682128547752131 117691391504351341685
+115360979797396777969 109809835379677001002
+107519026002586025827 110286587261352351537
+104618664838382110366 103716847685048716973
+104612091113514802664 103012564142649561853
+115739148151601573808 101261243957067319422
+102512310412972518336 101057616370673656059
+109778238062128383421 118086737936443306746
+109174551750397653742 113116318008017777871
+109174551750397653742 115478779964227301239
+105901259206530390933 112063946124358686266
+107519026002586025827 101569655404865588155
+106122462724662012890 107968787521028284191
+107699711897781234810 107129852879758941909
+105901259206530390933 113166718268343560861
+100397511207083609950 117693415411676715849
+103016521073558596116 107753428759636856492
+115963821022986200770 112852253337028739987
+101261243957067319422 100269980559891536109
+106122462724662012890 105705665708025552983
+100084737546039360199 104612091113514802664
+104612091113514802664 115047896996200277508
+114244914082871792125 110209787594312878744
+100173452066172931939 113116318008017777871
+118086737936443306746 107896527414017792767
+109931095616224405271 118245559326500322262
+109009089551467495747 102654570556058167176
+108817085747440374986 114244914082871792125
+102034052532213921839 107992936493665613654
+112364132652438722780 109174551750397653742
+112276589013569458330 113210431006401244170
+106224435901697064976 104560124403688998123
+107753428759636856492 103325969492772452485
+110731951130561423918 109504122343901736603
+110318982509514011806 105662484616118909569
+103207773865797007066 110209787594312878744
+102484577222269062816 118245559326500322262
+117377434815709898403 105634350975670602787
+100397511207083609950 112364132652438722780
+100397511207083609950 113166718268343560861
+102048265612444661933 101213524574984631953
+113612142759476883204 117377434815709898403
+113047102292798770205 101261243957067319422
+106096957694385885466 105400369085832308485
+104450760987525660219 113047102292798770205
+113164038788726940319 115478779964227301239
+101246601531247561585 104412682128547752131
+113612142759476883204 107781761552417614958
+101600577333348274552 104364058018116761460
+109174551750397653742 113210431006401244170
+109170680659355634945 110286587261352351537
+102545157386069758709 109895887909967698705
+103493459351957813291 113801236315350503728
+117477042502591652021 101832771958125915909
+116491285067171323298 105076678694475690385
+106837636108890930395 109388259228280605303
+106122462724662012890 109412257237874861202
+101481313915867030905 103325969492772452485
+105076678694475690385 108894779805940659869
+105901259206530390933 108082478497335384404
+109388259228280605303 105006381068870463173
+107781761552417614958 105822688186016123722
+115478779964227301239 109895887909967698705
+100173452066172931939 113210431006401244170
+108314259245584185142 115739148151601573808
+100353346783543697435 114791921155677330282
+115360979797396777969 104612091113514802664
+102216887206636463918 107968787521028284191
+103016521073558596116 103660543175586203250
+108000051912603578599 108434394145774737013
+112276589013569458330 107968787521028284191
+115302451851587317396 113210431006401244170
+101720949843787442951 110649214929620497857
+100269980559891536109 100537991844787325512
+108817085747440374986 112063946124358686266
+105076678694475690385 102178700954286324866
+105901259206530390933 106695181236161584825
+106096957694385885466 116192724891839469024
+105901259206530390933 106837636108890930395
+110774757382682582490 113920721823301219308
+102512310412972518336 100537991844787325512
+108817085747440374986 111654284395316165338
+118245559326500322262 111422286077941361166
+101057616370673656059 103207773865797007066
+102545157386069758709 114790574178411061829
+104364058018116761460 116762461061414014956
+115403621788538540544 117477042502591652021
+109504122343901736603 112878918236054024365
+100871232248276491534 113612142759476883204
+111538009015644508967 118156281382429939997
+107129852879758941909 107699711897781234810
+106312895983244085949 102048265612444661933
+108082478497335384404 100535338638690515335
+104364058018116761460 112852253337028739987
+109247306373593947755 104191514233385365427
+114918561167106576639 118264184129842070900
+102512310412972518336 101832771958125915909
+100856165335040300712 107755092517418534815
+115302451851587317396 116621986644249676039
+105400903062771750089 114790574178411061829
+107753428759636856492 105705665708025552983
+100093902492789669774 105822688186016123722
+118086737936443306746 108255750659110762991
+115109077044202722504 113801236315350503728
+101600577333348274552 117550971892000156946
+112820512550939559523 117421021456205115327
+102545157386069758709 111538009015644508967
+115064258994656104138 108082478497335384404
+109182513536739786206 114758749740576519343
+100353346783543697435 103207773865797007066
+104450760987525660219 106925005603331131101
+113164038788726940319 118264184129842070900
+118156281382429939997 109170680659355634945
+106026445270708973611 114152150496380806218
+108000051912603578599 107519026002586025827
+102545157386069758709 100535338638690515335
+102545157386069758709 106925005603331131101
+104450760987525660219 113351703941294630458
+100397511207083609950 113164038788726940319
+105006381068870463173 103207773865797007066
+111261496925076985134 117921656724816772352
+112276589013569458330 101094440579835956866
+109182513536739786206 108082478497335384404
+106925005603331131101 108255750659110762991
+112276589013569458330 103012564142649561853
+116773104421165750126 103171849011748425097
+114244914082871792125 118357356982727825178
+116388668762198604003 103112588675637065591
+112016425853417877466 108771911258181286059
+100084737546039360199 115565811010545226083
+113164038788726940319 117421021456205115327
+100856165335040300712 107793717361981126032
+111091089527727420853 101185406398932804414
+109196389259504239326 113920721823301219308
+108817085747440374986 101094440579835956866
+115565811010545226083 107992936493665613654
+104364058018116761460 112944532473909341307
+101057616370673656059 112364132652438722780
+100173452066172931939 115565811010545226083
+109581870574956225297 105076678694475690385
+106695181236161584825 108817085747440374986
+115109077044202722504 107793717361981126032
+104618664838382110366 115047896996200277508
+116374117927631468606 115963821022986200770
+115739148151601573808 108817085747440374986
+109174551750397653742 106925005603331131101
+100269980559891536109 115963821022986200770
+107519026002586025827 103171849011748425097
+104870518715355770532 117012574629989558450
+117693415411676715849 105376842241046675559
+111310990991240556038 111091089527727420853
+103325969492772452485 113612142759476883204
+100397511207083609950 117421021456205115327
+104612091113514802664 103207773865797007066
+105901259206530390933 101720949843787442951
+106096957694385885466 101832196121408756348
+114991987213662121376 118086737936443306746
+114152150496380806218 106812355611465528242
+103660543175586203250 107968787521028284191
+109809835379677001002 105400903062771750089
+111654284395316165338 115360979797396777969
+115739148151601573808 107968787521028284191
+103100496883422151101 103112588675637065591
+103016521073558596116 101261243957067319422
+116374117927631468606 115565811010545226083
+104450760987525660219 110318982509514011806
+113612142759476883204 103112588675637065591
+117421021456205115327 114632854492678778509
+100397511207083609950 118264184129842070900
+104870518715355770532 114979733565079457374
+106695181236161584825 117550971892000156946
+100397511207083609950 112339769006469685593
+116762461061414014956 102425976203575211068
+118245559326500322262 114979733565079457374
+115565811010545226083 103475991020114516832
+109247306373593947755 108894779805940659869
+101213524574984631953 109412257237874861202
+102034052532213921839 100537991844787325512
+109581870574956225297 112364132652438722780
+105901259206530390933 100535338638690515335
+109182513536739786206 112944532473909341307
+118418436905562612953 108176814619778619437
+118207880179234484610 107033731246200681024
+100269980559891536109 101720949843787442951
+112944532473909341307 103325969492772452485
+102545157386069758709 108434394145774737013
+104450760987525660219 103493459351957813291
+110728349411116483031 108869261693909788407
+111091089527727420853 106100296973968329853
+111171416539633276676 103153499873703329897
+116762461061414014956 113247423264358423892
+109182513536739786206 116762461061414014956
+101261243957067319422 118418436905562612953
+116374117927631468606 102403331307606219198
+114790574178411061829 112944532473909341307
+115109077044202722504 103171849011748425097
+102545157386069758709 106345802537137414958
+115047896996200277508 107117418142368704725
+108817085747440374986 105076678694475690385
+104364058018116761460 105634350975670602787
+115963821022986200770 108594511384403031361
+100871232248276491534 103207773865797007066
+106925005603331131101 107519026002586025827
+109581870574956225297 107753428759636856492
+113475277239647026452 118207880179234484610
+106096957694385885466 115109077044202722504
+103207773865797007066 107117483540235115863
+100093902492789669774 102088173699409175139
+115963821022986200770 113475277239647026452
+102088173699409175139 116723923766489326849
+116548025566090395827 106925005603331131101
+106345802537137414958 114632854492678778509
+118418436905562612953 105076678694475690385
+116491285067171323298 118207880179234484610
+108255750659110762991 100523784851251213675
+109304903996729396661 107117483540235115863
+113612142759476883204 109182513536739786206
+118086737936443306746 115963821022986200770
+113475277239647026452 107753428759636856492
+102216887206636463918 109895887909967698705
+115064258994656104138 113247423264358423892
+111091089527727420853 103493459351957813291
+103016521073558596116 115017401467423642930
+104987932455782713675 102034052532213921839
+114549564725160709822 105076678694475690385
+114549564725160709822 116926943858449614201
+100269980559891536109 105705665708025552983
+109809835379677001002 109581870574956225297
+117421021456205115327 107006059340452534782
+109581870574956225297 112944532473909341307
+115883560681104199404 109895887909967698705
+108255750659110762991 115706830138905259568
+101057616370673656059 111654284395316165338
+112944532473909341307 108082478497335384404
+107793717361981126032 103100496883422151101
+112364132652438722780 111666959095947698908
+101261243957067319422 115963821022986200770
+106026445270708973611 103207773865797007066
+108255750659110762991 115478779964227301239
+107896527414017792767 111654284395316165338
+116207701819773193333 109304903996729396661
+106312895983244085949 111285782175840598932
+103691312271671214670 111032944513257134357
+112364132652438722780 116491285067171323298
+116621986644249676039 104191514233385365427
+111538009015644508967 109412257237874861202
+115302451851587317396 107117483540235115863
+112944532473909341307 105400903062771750089
+117421021456205115327 112339769006469685593
+104450760987525660219 100084737546039360199
+109581870574956225297 107896527414017792767
+118207880179234484610 111091089527727420853
+107753428759636856492 112339769006469685593
+112016425853417877466 113920721823301219308
+114244914082871792125 104987932455782713675
+107753428759636856492 115047896996200277508
+101832196121408756348 115109077044202722504
+103016521073558596116 100939735623367202041
+109304903996729396661 109174551750397653742
+107196172964000631645 111707854651652464890
+109304903996729396661 108176814619778619437
+100269980559891536109 107234826207633309420
+100397511207083609950 107626068753267217775
+106312895983244085949 113920721823301219308
+112944532473909341307 108817085747440374986
+103016521073558596116 106345802537137414958
+106026445270708973611 103112588675637065591
+100269980559891536109 106312895983244085949
+104364058018116761460 108255750659110762991
+103660543175586203250 108817085747440374986
+108817085747440374986 107992936493665613654
+106190212616572073606 100019606796298306813
+100535338638690515335 104612091113514802664
+100871232248276491534 105400369085832308485
+105076678694475690385 105703999093618427814
+100397511207083609950 107006059340452534782
+106096957694385885466 100871232248276491534
+117377434815709898403 117157132370347986579
+114918561167106576639 115863474911002159675
+118418436905562612953 109895887909967698705
+107519026002586025827 101849747879612982297
+113920721823301219308 107753428759636856492
+100173452066172931939 100856165335040300712
+116374117927631468606 111310990991240556038
+113164038788726940319 101185406398932804414
+102216887206636463918 101849747879612982297
+107033731246200681024 108082478497335384404
+109304903996729396661 115963821022986200770
+117421021456205115327 109174551750397653742
+100871232248276491534 116927391465690022495
+106122462724662012890 112063946124358686266
+118245559326500322262 106695181236161584825
+103100496883422151101 114632854492678778509
+112016425853417877466 114790574178411061829
+106925005603331131101 102425976203575211068
+116773104421165750126 111091089527727420853
+102088173699409175139 115739378269261680935
+116374117927631468606 111538009015644508967
+118245559326500322262 113612142759476883204
+108016228299742896694 116107530889292552664
+115920538018564742940 117921656724816772352
+106224435901697064976 103660543175586203250
+108082478497335384404 107587075873786034394
+101213524574984631953 109809835379677001002
+108817085747440374986 111091089527727420853
+117477042502591652021 111285782175840598932
+115109077044202722504 105400369085832308485
+115706830138905259568 101261243957067319422
+103660543175586203250 116374117927631468606
+109778238062128383421 116388668762198604003
+100535338638690515335 113210431006401244170
+105006381068870463173 101832771958125915909
+104987932455782713675 109895887909967698705
+112944532473909341307 109581870574956225297
+108899222163640713555 110731951130561423918
+118086737936443306746 103325969492772452485
+107781761552417614958 109182513536739786206
+101094440579835956866 110318982509514011806
+109581870574956225297 118207880179234484610
+118017787526225833770 110731951130561423918
+106263529626268281828 110728349411116483031
+107896527414017792767 104987932455782713675
+112820512550939559523 111310990991240556038
+102034052532213921839 100262595546646927505
+109174551750397653742 111285782175840598932
+115109077044202722504 118418436905562612953
+100871232248276491534 117995161934475952507
+102034052532213921839 109809835379677001002
+100537991844787325512 114791921155677330282
+108832773152747423283 104560124403688998123
+108082478497335384404 110286587261352351537
+117377434815709898403 102178700954286324866
+111422286077941361166 109339805471557551388
+105705665708025552983 108255750659110762991
+106312895983244085949 103716847685048716973
+111310990991240556038 100262595546646927505
+102654570556058167176 102088173699409175139
+106695181236161584825 114244914082871792125
+108082478497335384404 101569655404865588155
+113116318008017777871 114079920283986872783
+116768967108862685383 117693415411676715849
+106122462724662012890 109182513536739786206
+116374117927631468606 101261243957067319422
+106312895983244085949 107097980510051172895
+107896527414017792767 116762461061414014956
+100173452066172931939 114821161730370452301
+113047102292798770205 112852253337028739987
+100397511207083609950 115863474911002159675
+112364132652438722780 112276589013569458330
+110731951130561423918 108176814619778619437
+116374117927631468606 107234826207633309420
+106312895983244085949 117691391504351341685
+107519026002586025827 115360979797396777969
+104450760987525660219 103325969492772452485
+103207773865797007066 113801236315350503728
+104987932455782713675 110318982509514011806
+113920721823301219308 105076678694475690385
+107133948555394893679 107196172964000631645
+118086737936443306746 103660543175586203250
+112364132652438722780 117550971892000156946
+114918561167106576639 112339769006469685593
+103493459351957813291 101849747879612982297
+114790574178411061829 107753428759636856492
+118418436905562612953 117550971892000156946
+101261243957067319422 115863474911002159675
+115064258994656104138 112063946124358686266
+111091089527727420853 114758749740576519343
+118418436905562612953 109809835379677001002
+115527632958457358109 115565811010545226083
+110731951130561423918 103691312271671214670
+107753428759636856492 116388668762198604003
+108817085747440374986 104560124403688998123
+114918561167106576639 101213524574984631953
+115047896996200277508 105400903062771750089
+113475277239647026452 107033731246200681024
+108894779805940659869 115017401467423642930
+103691312271671214670 109809835379677001002
+117421021456205115327 105076678694475690385
+112016425853417877466 109174551750397653742
+115963821022986200770 109581870574956225297
+103493459351957813291 110318982509514011806
+113801236315350503728 111310990991240556038
+112820512550939559523 116762461061414014956
+113164038788726940319 116388668762198604003
+105901259206530390933 106189723444098348646
+105006381068870463173 116621986644249676039
+112339769006469685593 112276589013569458330
+109182513536739786206 107896527414017792767
+100353346783543697435 110448924610029803960
+112276589013569458330 113475277239647026452
+115739378269261680935 114979733565079457374
+111261496925076985134 114979733565079457374
+118086737936443306746 105376842241046675559
+113164038788726940319 108255750659110762991
+100871232248276491534 115392876317176762477
+102403331307606219198 111310990991240556038
+118357356982727825178 105634350975670602787
+113722523501415106689 100856165335040300712
+105901259206530390933 103016521073558596116
+111337216646096594888 115017401467423642930
+117477042502591652021 109388259228280605303
+105207943512906810696 108176814619778619437
+100535338638690515335 107968787521028284191
+111091089527727420853 114632854492678778509
+110318982509514011806 111337216646096594888
+109778238062128383421 118264184129842070900
+100871232248276491534 107699711897781234810
+102088173699409175139 106026445270708973611
+116207701819773193333 109335713877994755095
+116762461061414014956 112063946124358686266
+101261243957067319422 115109077044202722504
+106623900962110772648 114821161730370452301
+110731951130561423918 111261496925076985134
+104612091113514802664 100535338638690515335
+111310990991240556038 108574688020691152748
+108000051912603578599 113612142759476883204
+116374117927631468606 114979733565079457374
+115392876317176762477 108952536790629690817
+115622466243011136115 116388668762198604003
+107699711897781234810 114979733565079457374
+100397511207083609950 109074857816744029470
+100084737546039360199 113164038788726940319
+115478779964227301239 105076678694475690385
+115739378269261680935 101704103161442695877
+115360979797396777969 103100496883422151101
+107587075873786034394 106695181236161584825
+100269980559891536109 110727249496967897430
+102545157386069758709 100262595546646927505
+103207773865797007066 112364132652438722780
+116621986644249676039 109813896768294978296
+115622466243011136115 105376842241046675559
+109247306373593947755 108000051912603578599
+115920538018564742940 112364132652438722780
+115739148151601573808 113801236315350503728
+100173452066172931939 107033731246200681024
+105901259206530390933 108894779805940659869
+117377434815709898403 112364132652438722780
+108000051912603578599 101213524574984631953
+115109077044202722504 105703999093618427814
+115047896996200277508 114790574178411061829
+112016425853417877466 106026445270708973611
+100084737546039360199 111285782175840598932
+107519026002586025827 110727249496967897430
+102034052532213921839 100535338638690515335
+109388259228280605303 105662484616118909569
+112944532473909341307 105634350975670602787
+104450760987525660219 106189723444098348646
+112016425853417877466 118207880179234484610
+112364132652438722780 108176814619778619437
+114549564725160709822 114821161730370452301
+118245559326500322262 101263833299534001868
+106925005603331131101 111538009015644508967
+113047102292798770205 112276589013569458330
+102484577222269062816 107968787521028284191
+111261496925076985134 113801236315350503728
+107196172964000631645 115963821022986200770
+113166718268343560861 103207773865797007066
+106665185918564754695 116388668762198604003
+115622466243011136115 103171849011748425097
+117691391504351341685 112944532473909341307
+112016425853417877466 112063946124358686266
+118156281382429939997 108894779805940659869
+114244914082871792125 115017401467423642930
+107133948555394893679 104560124403688998123
+109182513536739786206 106312895983244085949
+100093902492789669774 110728349411116483031
+115341960624782381062 107626068753267217775
+112364132652438722780 104987932455782713675
+111538009015644508967 104987932455782713675
+107133948555394893679 109813896768294978296
+117921656724816772352 101126226710566561379
+115706830138905259568 109809835379677001002
+111538009015644508967 108082478497335384404
+109581870574956225297 113247423264358423892
+115739378269261680935 116723923766489326849
+105705665708025552983 100084737546039360199
+114152150496380806218 115109077044202722504
+117683744929337064105 115565811010545226083
+107755092517418534815 103100496883422151101
+101057616370673656059 112844561713780016118
+101094440579835956866 109809835379677001002
+115047896996200277508 106189723444098348646
+108594511384403031361 103475991020114516832
+111091089527727420853 112820512550939559523
+113475277239647026452 113116318008017777871
+116491285067171323298 108082478497335384404
+100269980559891536109 104450760987525660219
+108243648069327964538 116207701819773193333
+114758749740576519343 111091089527727420853
+113166718268343560861 103012564142649561853
+107753428759636856492 113247423264358423892
+111310990991240556038 104450760987525660219
+106312895983244085949 101057616370673656059
+114856222286197208502 106623900962110772648
+109780617142585395916 109335713877994755095
+105076678694475690385 113117251731252114390
+103207773865797007066 107699711897781234810
+103207773865797007066 109170680659355634945
+113166718268343560861 109581870574956225297
+101057616370673656059 113351703941294630458
+118418436905562612953 113801236315350503728
+103207773865797007066 115527632958457358109
+104870518715355770532 111310990991240556038
+112290361600843238282 117921656724816772352
+112944532473909341307 107117418142368704725
+115622466243011136115 118207880179234484610
+116374117927631468606 118418436905562612953
+111654284395316165338 100262595546646927505
+109009089551467495747 114991987213662121376
+109247306373593947755 109778238062128383421
+117377434815709898403 107519026002586025827
+108000051912603578599 107587075873786034394
+114918561167106576639 101246601531247561585
+112852253337028739987 115963821022986200770
+107753428759636856492 103207773865797007066
+100353346783543697435 109196389259504239326
+115963821022986200770 103716847685048716973
+105006381068870463173 113166718268343560861
+108894779805940659869 105076678694475690385
+116762461061414014956 112844561713780016118
+103207773865797007066 113247423264358423892
+117377434815709898403 100269980559891536109
+102048265612444661933 115478779964227301239
+113351703941294630458 101057616370673656059
+105705665708025552983 111310990991240556038
+115064258994656104138 100535338638690515335
+115739148151601573808 112844561713780016118
+109504122343901736603 102705549361550492663
+109009089551467495747 105006381068870463173
+111091089527727420853 111310990991240556038
+106623900962110772648 103153499873703329897
+117157132370347986579 111285782175840598932
+113801236315350503728 115739378269261680935
+110731951130561423918 106096957694385885466
+115047896996200277508 100939735623367202041
+103016521073558596116 115047896996200277508
+111171416539633276676 102512310412972518336
+103660543175586203250 109895887909967698705
+116621986644249676039 113210431006401244170
+100871232248276491534 116773104421165750126
+109809835379677001002 115622466243011136115
+108000051912603578599 113475277239647026452
+104364058018116761460 115478779964227301239
+111310990991240556038 104560124403688998123
+108574688020691152748 109174551750397653742
+109581870574956225297 114758749740576519343
+115739378269261680935 107006059340452534782
+107753428759636856492 100535338638690515335
+103016521073558596116 113920721823301219308
+113612142759476883204 113351703941294630458
+112364132652438722780 114758749740576519343
+117477042502591652021 104191514233385365427
+108000051912603578599 102545157386069758709
+116548025566090395827 109182513536739786206
+113920721823301219308 111285782175840598932
+115360979797396777969 104987932455782713675
+117377434815709898403 113612142759476883204
+103691312271671214670 105076678694475690385
+116762461061414014956 106224435901697064976
+117550971892000156946 102048265612444661933
+117691391504351341685 109074857816744029470
+104612091113514802664 105901259206530390933
+111666959095947698908 101261243957067319422
+108894779805940659869 106189723444098348646
+117477042502591652021 113351703941294630458
+116762461061414014956 100269980559891536109
+115739148151601573808 112820512550939559523
+110728349411116483031 104066486855641683676
+110448924610029803960 107519026002586025827
+103016521073558596116 112276589013569458330
+101057616370673656059 117157132370347986579
+108255750659110762991 109778238062128383421
+100397511207083609950 105662484616118909569
+117477042502591652021 105863188856924083857
+101832196121408756348 105006381068870463173
+117921656724816772352 115920538018564742940
+114918561167106576639 101057616370673656059
+116762461061414014956 115739378269261680935
+117377434815709898403 107234826207633309420
+115527632958457358109 107133948555394893679
+111171416539633276676 109813896768294978296
+101057616370673656059 113210431006401244170
+108574688020691152748 114790574178411061829
+101057616370673656059 113475277239647026452
+109778238062128383421 109412257237874861202
+114549564725160709822 113612142759476883204
+108817085747440374986 110286587261352351537
+108314259245584185142 114918561167106576639
+105901259206530390933 113247423264358423892
+118418436905562612953 107519026002586025827
+101261243957067319422 113166718268343560861
+114991987213662121376 114461903539732780109
+103020619410065980303 109247306373593947755
+103691312271671214670 105863188856924083857
+116768967108862685383 107968787521028284191
+104450760987525660219 111422286077941361166
+113116318008017777871 106312895983244085949
+106122462724662012890 104560124403688998123
+109182513536739786206 109412257237874861202
+103493459351957813291 111091089527727420853
+105901259206530390933 116388668762198604003
+118357356982727825178 115863474911002159675
+115064258994656104138 105076678694475690385
+116374117927631468606 117421021456205115327
+111091089527727420853 101849747879612982297
+108000051912603578599 103660543175586203250
+103171849011748425097 101261243957067319422
+103207773865797007066 102216887206636463918
+100397511207083609950 101261243957067319422
+115706830138905259568 111310990991240556038
+107006059340452534782 106189723444098348646
+107519026002586025827 108434394145774737013
+100269980559891536109 103100496883422151101
+111538009015644508967 105006381068870463173
+117550971892000156946 111285782175840598932
+114244914082871792125 109581870574956225297
+116374117927631468606 109339805471557551388
+113612142759476883204 115739378269261680935
+118357356982727825178 109412257237874861202
+112878918236054024365 112852253337028739987
+117691391504351341685 117377434815709898403
+108255750659110762991 106665185918564754695
+112276589013569458330 105634350975670602787
+111091089527727420853 107090629815001792243
+116374117927631468606 103012564142649561853
+104612091113514802664 110649214929620497857
+102512310412972518336 114790574178411061829
+116207701819773193333 103112588675637065591
+104870518715355770532 103493459351957813291
+107006059340452534782 112364132652438722780
+117683744929337064105 104450760987525660219
+113475277239647026452 108255750659110762991
+107755092517418534815 115341960624782381062
+115565811010545226083 115478779964227301239
+107196172964000631645 112820512550939559523
+101246601531247561585 108894779805940659869
+103207773865797007066 107753428759636856492
+111091089527727420853 116388668762198604003
+115963821022986200770 117691391504351341685
+106224435901697064976 118207880179234484610
+117377434815709898403 101569655404865588155
+102034052532213921839 103171849011748425097
+112276589013569458330 105400903062771750089
+104364058018116761460 105822688186016123722
+100535338638690515335 108832773152747423283
+106695181236161584825 100415723513846680553
+115622466243011136115 111091089527727420853
+103171849011748425097 110318982509514011806
+104364058018116761460 103112588675637065591
+106925005603331131101 108434394145774737013
+109581870574956225297 114790574178411061829
+108952536790629690817 113117251731252114390
+100397511207083609950 116374117927631468606
+115739378269261680935 106837636108890930395
+101225750534150134109 115565811010545226083
+116388668762198604003 110468193592032465149
+100871232248276491534 110728349411116483031
+101261243957067319422 111666959095947698908
+115527632958457358109 102484577222269062816
+117421021456205115327 101261243957067319422
+104612091113514802664 109895887909967698705
+116107530889292552664 102403331307606219198
+116207701819773193333 100173452066172931939
+103100496883422151101 109581870574956225297
+109009089551467495747 109247306373593947755
+114758749740576519343 103171849011748425097
+104987932455782713675 111091089527727420853
+112944532473909341307 103100496883422151101
+110774757382682582490 117421021456205115327
+107753428759636856492 109174551750397653742
+106695181236161584825 110649214929620497857
+106224435901697064976 114079920283986872783
+116762461061414014956 113920721823301219308
+107896527414017792767 112276589013569458330
+108817085747440374986 109412257237874861202
+104612091113514802664 114244914082871792125
+111091089527727420853 117421021456205115327
+115109077044202722504 103100496883422151101
+100353346783543697435 110318982509514011806
+116773104421165750126 106026445270708973611
+112944532473909341307 108000051912603578599
+102512310412972518336 106189723444098348646
+117377434815709898403 116388668762198604003
+102034052532213921839 118207880179234484610
+116107530889292552664 105632941129656401917
+104450760987525660219 109504122343901736603
+108832773152747423283 100397511207083609950
+117691391504351341685 108817085747440374986
+114918561167106576639 113166718268343560861
+102034052532213921839 118320665823821681206
+109581870574956225297 113612142759476883204
+115360979797396777969 115047896996200277508
+112016425853417877466 117550971892000156946
+107519026002586025827 114758749740576519343
+101057616370673656059 107006059340452534782
+109174551750397653742 105705665708025552983
+101261243957067319422 106812355611465528242
+113612142759476883204 105634350975670602787
+118086737936443306746 106925005603331131101
+109170680659355634945 111666959095947698908
+109581870574956225297 115360979797396777969
+107519026002586025827 107992936493665613654
+113166718268343560861 100537991844787325512
+102088173699409175139 110367546804237452889
+105076678694475690385 109519167630731639094
+115302451851587317396 114821161730370452301
+108894779805940659869 100397143564111754723
+105006381068870463173 106096957694385885466
+113116318008017777871 114979733565079457374
+106837636108890930395 105030465637303791249
+118357356982727825178 102178700954286324866
+115478779964227301239 101225750534150134109
+117691391504351341685 114979733565079457374
+103207773865797007066 117691391504351341685
+108817085747440374986 103475991020114516832
+116207701819773193333 103012564142649561853
+112364132652438722780 112339769006469685593
+100871232248276491534 115341960624782381062
+102512310412972518336 116374117927631468606
+107033731246200681024 113920721823301219308
+110318982509514011806 103716847685048716973
+100353346783543697435 114821161730370452301
+105076678694475690385 118207880179234484610
+116773104421165750126 115109077044202722504
+113612142759476883204 113166718268343560861
+112276589013569458330 109581870574956225297
+115109077044202722504 106812355611465528242
+104870518715355770532 118418436905562612953
+100397511207083609950 112016425853417877466
+111422286077941361166 109931095616224405271
+107033731246200681024 109778238062128383421
+113166718268343560861 101849747879612982297
+114079920283986872783 111091089527727420853
+108952536790629690817 108082478497335384404
+113801236315350503728 100262595546646927505
+100535338638690515335 109412257237874861202
+115706830138905259568 108434394145774737013
+105901259206530390933 100262595546646927505
+115478779964227301239 103660543175586203250
+115739148151601573808 117550971892000156946
+109809835379677001002 104870518715355770532
+111091089527727420853 115863474911002159675
+109809835379677001002 103100496883422151101
+107699711897781234810 113801236315350503728
+105076678694475690385 101185406398932804414
+109504122343901736603 100397143564111754723
+109778238062128383421 109247306373593947755
+117012574629989558450 107308976571078250231
+108832773152747423283 104612091113514802664
+114244914082871792125 100084737546039360199
+102403331307606219198 109339805471557551388
+103493459351957813291 113116318008017777871
+103100496883422151101 105400903062771750089
+107519026002586025827 107968787521028284191
+111666959095947698908 109412257237874861202
+110318982509514011806 109412257237874861202
+106812355611465528242 107793717361981126032
+113047102292798770205 100535338638690515335
+112364132652438722780 101720949843787442951
+100397511207083609950 111310990991240556038
+117421021456205115327 105376842241046675559
+111091089527727420853 101720949843787442951
+109581870574956225297 109778238062128383421
+115047896996200277508 104364058018116761460
+115739148151601573808 112878918236054024365
+104450760987525660219 111538009015644508967
+102545157386069758709 105634350975670602787
+100269980559891536109 100535338638690515335
+110318982509514011806 112063946124358686266
+117921656724816772352 114856222286197208502
+112016425853417877466 103325969492772452485
+117421021456205115327 109895887909967698705
+117691391504351341685 103660543175586203250
+109304903996729396661 111666959095947698908
+104612091113514802664 103325969492772452485
+105076678694475690385 112276589013569458330
+113166718268343560861 113801236315350503728
+113475277239647026452 110318982509514011806
+106026445270708973611 100269980559891536109
+106312895983244085949 103100496883422151101
+113166718268343560861 118320665823821681206
+107896527414017792767 116374117927631468606
+102034052532213921839 107033731246200681024
+103207773865797007066 111666959095947698908
+112944532473909341307 109778238062128383421
+111310990991240556038 103012564142649561853
+107006059340452534782 100537991844787325512
+113166718268343560861 105662484616118909569
+114918561167106576639 101629211371073711149
+104191514233385365427 101261243957067319422
+103016521073558596116 101057616370673656059
+101057616370673656059 106189723444098348646
+117477042502591652021 104612091113514802664
+115360979797396777969 102216887206636463918
+106026445270708973611 107090629815001792243
+104364058018116761460 102048265612444661933
+101092351652012588236 109388259228280605303
+112820512550939559523 108082478497335384404
+111171416539633276676 108176814619778619437
+113166718268343560861 109895887909967698705
+100093902492789669774 117995161934475952507
+115341960624782381062 100173452066172931939
+103325969492772452485 111538009015644508967
+107896527414017792767 115360979797396777969
+103100496883422151101 117421021456205115327
+111091089527727420853 114979733565079457374
+103171849011748425097 109074857816744029470
+103016521073558596116 111538009015644508967
+112364132652438722780 114790574178411061829
+115360979797396777969 111285782175840598932
+111171416539633276676 107308976571078250231
+115739148151601573808 104191514233385365427
+114790574178411061829 103325969492772452485
+115478779964227301239 115706830138905259568
+118357356982727825178 110318982509514011806
+103207773865797007066 110286587261352351537
+117377434815709898403 101213524574984631953
+112364132652438722780 107106500560002041088
+115739378269261680935 113047102292798770205
+110731951130561423918 113117251731252114390
+115622466243011136115 101094440579835956866
+101057616370673656059 114791921155677330282
+115527632958457358109 106665185918564754695
+107896527414017792767 118207880179234484610
+115739378269261680935 111806715084467662398
+115565811010545226083 109412257237874861202
+109182513536739786206 113210431006401244170
+110774757382682582490 101057616370673656059
+106224435901697064976 103100496883422151101
+102545157386069758709 113116318008017777871
+115739148151601573808 111538009015644508967
+114549564725160709822 101261243957067319422
+115064258994656104138 103660543175586203250
+118086737936443306746 111654284395316165338
+114758749740576519343 106189723444098348646
+110318982509514011806 100262595546646927505
+112339769006469685593 104612091113514802664
+101094440579835956866 105076678694475690385
+116773104421165750126 115047896996200277508
+114244914082871792125 100397511207083609950
+111538009015644508967 106312895983244085949
+113166718268343560861 113247423264358423892
+107896527414017792767 114790574178411061829
+102654570556058167176 111091089527727420853
+113612142759476883204 102088173699409175139
+116762461061414014956 104560124403688998123
+106695181236161584825 107587075873786034394
+112364132652438722780 117377434815709898403
+113166718268343560861 107781761552417614958
+102654570556058167176 115017401467423642930
+113920721823301219308 101057616370673656059
+109009089551467495747 101704103161442695877
+109170680659355634945 103020619410065980303
+111310990991240556038 103716847685048716973
+103207773865797007066 116723923766489326849
+116768967108862685383 115739378269261680935
+105076678694475690385 117477042502591652021
+100353346783543697435 104987932455782713675
+108817085747440374986 118207880179234484610
+112878918236054024365 107097980510051172895
+106665185918564754695 102034052532213921839
+104612091113514802664 106189723444098348646
+100269980559891536109 103012564142649561853
+106312895983244085949 114790574178411061829
+103100496883422151101 114079920283986872783
+108894779805940659869 114979733565079457374
+102216887206636463918 106189723444098348646
+117921656724816772352 110286587261352351537
+100397143564111754723 105662484616118909569
+111091089527727420853 117693415411676715849
+107587075873786034394 118357356982727825178
+115622466243011136115 109174551750397653742
+101720949843787442951 105400903062771750089
+113116318008017777871 109813896768294978296
+101261243957067319422 109247306373593947755
+107133948555394893679 101849747879612982297
+112339769006469685593 118357356982727825178
+113475277239647026452 112063946124358686266
+107896527414017792767 106189723444098348646
+112276589013569458330 108574688020691152748
+112276589013569458330 112364132652438722780
+101720949843787442951 107968787521028284191
+115622466243011136115 110318982509514011806
+102216887206636463918 112364132652438722780
+100269980559891536109 115478779964227301239
+104987932455782713675 115478779964227301239
+107133948555394893679 106695181236161584825
+112016425853417877466 114821161730370452301
+112364132652438722780 107090629815001792243
+115920538018564742940 110731951130561423918
+111806715084467662398 104412682128547752131
+115341960624782381062 116927391465690022495
+107587075873786034394 118264184129842070900
+112364132652438722780 102048265612444661933
+109581870574956225297 116762461061414014956
+110318982509514011806 105634350975670602787
+113920721823301219308 108082478497335384404
+103207773865797007066 103691312271671214670
+101057616370673656059 116107530889292552664
+109778238062128383421 114790574178411061829
+117377434815709898403 102216887206636463918
+108082478497335384404 109809835379677001002
+115478779964227301239 101094440579835956866
+101481313915867030905 114991987213662121376
+100397511207083609950 109809835379677001002
+100397511207083609950 118207880179234484610
+115739148151601573808 108574688020691152748
+113166718268343560861 117691391504351341685
+105076678694475690385 117421021456205115327
+108255750659110762991 115064258994656104138
+104383523254857614001 110728349411116483031
+116388668762198604003 111091089527727420853
+112364132652438722780 115341960624782381062
+103171849011748425097 101569655404865588155
+117377434815709898403 111091089527727420853
+113920721823301219308 118357356982727825178
+101261243957067319422 108574688020691152748
+103171849011748425097 101225750534150134109
+106665185918564754695 107753428759636856492
+106122462724662012890 105076678694475690385
+106122462724662012890 103112588675637065591
+113920721823301219308 107033731246200681024
+111666959095947698908 115739378269261680935
+117377434815709898403 114632854492678778509
+108255750659110762991 106345802537137414958
+112276589013569458330 105376842241046675559
+102512310412972518336 102088173699409175139
+105705665708025552983 103012564142649561853
+107519026002586025827 118320665823821681206
+104612091113514802664 109412257237874861202
+107033731246200681024 109074857816744029470
+115064258994656104138 104560124403688998123
+105076678694475690385 118264184129842070900
+111091089527727420853 109074857816744029470
+108817085747440374986 102403331307606219198
+115963821022986200770 111310990991240556038
+114918561167106576639 107308976571078250231
+101094440579835956866 115622466243011136115
+102216887206636463918 113117251731252114390
+115109077044202722504 116762461061414014956
+109581870574956225297 117421021456205115327
+116374117927631468606 101629211371073711149
+112276589013569458330 114632854492678778509
+115341960624782381062 106100296973968329853
+100093902492789669774 109170680659355634945
+110318982509514011806 100397143564111754723
+113116318008017777871 109412257237874861202
+112016425853417877466 101213524574984631953
+115064258994656104138 114461903539732780109
+105901259206530390933 101261243957067319422
+109174551750397653742 111091089527727420853
+105207943512906810696 111707854651652464890
+108082478497335384404 110318982509514011806
+113801236315350503728 107519026002586025827
+100173452066172931939 115706830138905259568
+111261496925076985134 107308976571078250231
+115883560681104199404 109170680659355634945
+115706830138905259568 112944532473909341307
+116374117927631468606 106100296973968329853
+115739378269261680935 113117251731252114390
+108082478497335384404 100397511207083609950
+109809835379677001002 105076678694475690385
+112364132652438722780 111285782175840598932
+115302451851587317396 115622466243011136115
+108000051912603578599 106925005603331131101
+115963821022986200770 108574688020691152748
+115341960624782381062 110209787594312878744
+101600577333348274552 104612091113514802664
+111091089527727420853 106312895983244085949
+111091089527727420853 100871232248276491534
+103207773865797007066 100535338638690515335
+106665185918564754695 115064258994656104138
+112339769006469685593 117377434815709898403
+109196389259504239326 100173452066172931939
+105076678694475690385 113351703941294630458
+109504122343901736603 103112588675637065591
+101057616370673656059 106312895983244085949
+102034052532213921839 101569655404865588155
+106665185918564754695 112944532473909341307
+111975545018506506119 113612142759476883204
+102512310412972518336 115047896996200277508
+101092351652012588236 108817085747440374986
+115963821022986200770 102034052532213921839
+106224435901697064976 115360979797396777969
+117377434815709898403 108832773152747423283
+118086737936443306746 100019606796298306813
+118245559326500322262 109931095616224405271
+118156281382429939997 101246601531247561585
+105863188856924083857 117477042502591652021
+105006381068870463173 100523784851251213675
+110728349411116483031 108899222163640713555
+115047896996200277508 113068441549452664746
+117683744929337064105 103012564142649561853
+101225750534150134109 108255750659110762991
+104364058018116761460 114791921155677330282
+109778238062128383421 110318982509514011806
+100397511207083609950 107968787521028284191
+117477042502591652021 114991987213662121376
+106122462724662012890 115863474911002159675
+112016425853417877466 110286587261352351537
+113166718268343560861 105400369085832308485
+101092351652012588236 103475991020114516832
+112364132652438722780 111091089527727420853
+111666959095947698908 113612142759476883204
+108082478497335384404 109895887909967698705
+115360979797396777969 107896527414017792767
+115064258994656104138 106665185918564754695
+107896527414017792767 112852253337028739987
+109304903996729396661 102048265612444661933
+116621986644249676039 102178700954286324866
+113166718268343560861 107968787521028284191
+110774757382682582490 112276589013569458330
+115064258994656104138 101213524574984631953
+115392876317176762477 106096957694385885466
+111337216646096594888 101704103161442695877
+108894779805940659869 116762461061414014956
+115109077044202722504 107033731246200681024
+111091089527727420853 106345802537137414958
+102034052532213921839 100269980559891536109
+114152150496380806218 111601729473858041964
+105822688186016123722 107781761552417614958
+111975545018506506119 113210431006401244170
+108000051912603578599 109170680659355634945
+109247306373593947755 102654570556058167176
+115109077044202722504 113247423264358423892
+102034052532213921839 118086737936443306746
+111666959095947698908 115017401467423642930
+104612091113514802664 111422286077941361166
+105822688186016123722 103171849011748425097
+108894779805940659869 101832196121408756348
+113116318008017777871 107117418142368704725
+105076678694475690385 115360979797396777969
+100269980559891536109 116388668762198604003
+103207773865797007066 117477042502591652021
+116762461061414014956 116388668762198604003
+105006381068870463173 108082478497335384404
+100084737546039360199 114079920283986872783
+111091089527727420853 104383523254857614001
+113166718268343560861 109074857816744029470
+111091089527727420853 113210431006401244170
+106623900962110772648 115047896996200277508
+103207773865797007066 111337216646096594888
+108817085747440374986 106189723444098348646
+114244914082871792125 114918561167106576639
+101094440579835956866 113920721823301219308
+115302451851587317396 103012564142649561853
+118357356982727825178 105705665708025552983
+108817085747440374986 117550971892000156946
+108899222163640713555 116773104421165750126
+109809835379677001002 114079920283986872783
+117377434815709898403 113117251731252114390
+100397511207083609950 107781761552417614958
+108817085747440374986 115739378269261680935
+107753428759636856492 101094440579835956866
+111975545018506506119 116768967108862685383
+117550971892000156946 100262595546646927505
+104364058018116761460 104226321884965863264
+103207773865797007066 105901259206530390933
+118245559326500322262 110318982509514011806
+111975545018506506119 113116318008017777871
+112364132652438722780 109182513536739786206
+117421021456205115327 115064258994656104138
+114152150496380806218 100173452066172931939
+107587075873786034394 107519026002586025827
+115739148151601573808 111285782175840598932
+115963821022986200770 108176814619778619437
+101126226710566561379 110731951130561423918
+103171849011748425097 117377434815709898403
+112339769006469685593 100269980559891536109
+117550971892000156946 115047896996200277508
+108899222163640713555 104870518715355770532
+118086737936443306746 101629211371073711149
+111091089527727420853 102034052532213921839
+115565811010545226083 109813896768294978296
+103016521073558596116 112820512550939559523
+109196389259504239326 107090629815001792243
+115739378269261680935 101057616370673656059
+101057616370673656059 118207880179234484610
+104364058018116761460 106312895983244085949
+112339769006469685593 106189723444098348646
+104364058018116761460 102034052532213921839
+118245559326500322262 101849747879612982297
+100093902492789669774 109388259228280605303
+112364132652438722780 115047896996200277508
+105076678694475690385 103691312271671214670
+108243648069327964538 101569655404865588155
+105705665708025552983 115622466243011136115
+104612091113514802664 104364058018116761460
+115706830138905259568 109247306373593947755
+109581870574956225297 101629211371073711149
+100093902492789669774 113166718268343560861
+110774757382682582490 114244914082871792125
+109247306373593947755 118156281382429939997
+100871232248276491534 100856165335040300712
+108082478497335384404 111091089527727420853
+115963821022986200770 107896527414017792767
+105901259206530390933 116927391465690022495
+101261243957067319422 117550971892000156946
+115963821022986200770 118245559326500322262
+100939735623367202041 108574688020691152748
+112944532473909341307 117691391504351341685
+115017401467423642930 109780617142585395916
+103691312271671214670 107308976571078250231
+109182513536739786206 117377434815709898403
+114758749740576519343 114790574178411061829
+102216887206636463918 102088173699409175139
+102034052532213921839 109174551750397653742
+108082478497335384404 102034052532213921839
+112276589013569458330 112063946124358686266
+112016425853417877466 113722523501415106689
+109581870574956225297 108817085747440374986
+115963821022986200770 114790574178411061829
+118357356982727825178 100535338638690515335
+100084737546039360199 109074857816744029470
+103016521073558596116 112844561713780016118
+104450760987525660219 112944532473909341307
+109388259228280605303 108817085747440374986
+100397511207083609950 116621986644249676039
+115064258994656104138 105400903062771750089
+106026445270708973611 106812355611465528242
+115739378269261680935 104191514233385365427
+107303107611470093265 102010610384685218706
+100353346783543697435 116548025566090395827
+102512310412972518336 106837636108890930395
+100084737546039360199 115963821022986200770
+118418436905562612953 118264184129842070900
+107896527414017792767 117691391504351341685
+105076678694475690385 104191514233385365427
+116768967108862685383 108952536790629690817
+100535338638690515335 111601729473858041964
+114918561167106576639 102048265612444661933
+103493459351957813291 101704103161442695877
+111091089527727420853 112878918236054024365
+114244914082871792125 100535338638690515335
+103691312271671214670 107699711897781234810
+105822688186016123722 107097980510051172895
+115706830138905259568 102048265612444661933
+102545157386069758709 103716847685048716973
+118245559326500322262 104618664838382110366
+107519026002586025827 105076678694475690385
+103325969492772452485 109247306373593947755
+118017787526225833770 107308976571078250231
+104364058018116761460 109412257237874861202
+115047896996200277508 101225750534150134109
+115739378269261680935 103716847685048716973
+110318982509514011806 106312895983244085949
+113612142759476883204 115863474911002159675
+113166718268343560861 106837636108890930395
+104450760987525660219 106224435901697064976
+105705665708025552983 101261243957067319422
+106665185918564754695 118207880179234484610
+100535338638690515335 111310990991240556038
+104450760987525660219 101481313915867030905
+109304903996729396661 103112588675637065591
+117012574629989558450 110731951130561423918
+109304903996729396661 104612091113514802664
+108314259245584185142 106388983874370865380
+111975545018506506119 109388259228280605303
+103660543175586203250 105400903062771750089
+115739148151601573808 112276589013569458330
+107896527414017792767 101094440579835956866
+102545157386069758709 104191514233385365427
+116192724891839469024 102088173699409175139
+100397511207083609950 108082478497335384404
+115565811010545226083 107968787521028284191
+100257676670422660178 110014891370822989957
+107587075873786034394 108000051912603578599
+115047896996200277508 100353346783543697435
+115739378269261680935 113801236315350503728
+106026445270708973611 107793717361981126032
+116107530889292552664 109170680659355634945
+103171849011748425097 109412257237874861202
+108314259245584185142 118320665823821681206
+101849747879612982297 109412257237874861202
+109780617142585395916 116621986644249676039
+109581870574956225297 113166718268343560861
+108594511384403031361 112820512550939559523
+117921656724816772352 110728349411116483031
+116374117927631468606 109895887909967698705
+105705665708025552983 103112588675637065591
+100535338638690515335 105901259206530390933
+101261243957067319422 116762461061414014956
+117691391504351341685 100523784851251213675
+117691391504351341685 111285782175840598932
+113612142759476883204 111538009015644508967
+100397511207083609950 107033731246200681024
+109304903996729396661 116388668762198604003
+115739378269261680935 117012574629989558450
+112364132652438722780 113801236315350503728
+118245559326500322262 107308976571078250231
+105207943512906810696 113210431006401244170
+106096957694385885466 111996414642516891950
+103171849011748425097 103112588675637065591
+114244914082871792125 114979733565079457374
+115622466243011136115 113116318008017777871
+112276589013569458330 106224435901697064976
+103207773865797007066 104383523254857614001
+101849747879612982297 111091089527727420853
+103207773865797007066 109074857816744029470
+106312895983244085949 115963821022986200770
+111654284395316165338 100397511207083609950
+104870518715355770532 111538009015644508967
+118086737936443306746 104364058018116761460
+116374117927631468606 113247423264358423892
+106812355611465528242 103716847685048716973
+112016425853417877466 100535338638690515335
+107519026002586025827 101213524574984631953
+115017401467423642930 113612142759476883204
+117691391504351341685 107519026002586025827
+104612091113514802664 113920721823301219308
+115064258994656104138 110649214929620497857
+103207773865797007066 115017401467423642930
+111091089527727420853 118086737936443306746
+106665185918564754695 103716847685048716973
+108314259245584185142 103475991020114516832
+111337216646096594888 109170680659355634945
+112364132652438722780 104191514233385365427
+100269980559891536109 111091089527727420853
+108817085747440374986 109813896768294978296
+100397511207083609950 115017401467423642930
+102048265612444661933 103012564142649561853
+109780617142585395916 105863188856924083857
+106312895983244085949 113116318008017777871
+103207773865797007066 101704103161442695877
+113166718268343560861 107117483540235115863
+109196389259504239326 100537991844787325512
+102034052532213921839 109182513536739786206
+113164038788726940319 111538009015644508967
+103100496883422151101 106189723444098348646
+104612091113514802664 115706830138905259568
+100535338638690515335 117693415411676715849
+112944532473909341307 118357356982727825178
+101057616370673656059 105076678694475690385
+103207773865797007066 110650241045258158224
+106026445270708973611 113116318008017777871
+101600577333348274552 108817085747440374986
+103171849011748425097 109182513536739786206
+113722523501415106689 106812355611465528242
+109170680659355634945 103493459351957813291
+115565811010545226083 105822688186016123722
+115302451851587317396 103171849011748425097
+100093902492789669774 107753428759636856492
+112339769006469685593 115863474911002159675
+111091089527727420853 114461903539732780109
+107896527414017792767 107781761552417614958
+115963821022986200770 112063946124358686266
+109247306373593947755 114079920283986872783
+111538009015644508967 116107530889292552664
+109778238062128383421 103012564142649561853
+100269980559891536109 104612091113514802664
+103207773865797007066 113612142759476883204
+105076678694475690385 109581870574956225297
+103171849011748425097 107117483540235115863
+115963821022986200770 112820512550939559523
+104383523254857614001 104870518715355770532
+113047102292798770205 109895887909967698705
+113920721823301219308 106312895983244085949
+108000051912603578599 107992936493665613654
+106224435901697064976 102048265612444661933
+115739378269261680935 102654570556058167176
+106026445270708973611 103171849011748425097
+109182513536739786206 113116318008017777871
+101213524574984631953 103171849011748425097
+100397511207083609950 113117251731252114390
+113612142759476883204 101832196121408756348
+100397511207083609950 111285782175840598932
+104612091113514802664 104618664838382110366
+102512310412972518336 115622466243011136115
+101720949843787442951 103475991020114516832
+111666959095947698908 111091089527727420853
+109196389259504239326 115017401467423642930
+108082478497335384404 103171849011748425097
+113164038788726940319 117550971892000156946
+111538009015644508967 113164038788726940319
+109504122343901736603 107753428759636856492
+107753428759636856492 108574688020691152748
+109335713877994755095 101261243957067319422
+109304903996729396661 104987932455782713675
+109581870574956225297 107587075873786034394
+105705665708025552983 107234826207633309420
+100535338638690515335 116491285067171323298
+104450760987525660219 118086737936443306746
+116374117927631468606 118245559326500322262
+106312895983244085949 109581870574956225297
+107006059340452534782 112276589013569458330
+105822688186016123722 102403331307606219198
+100269980559891536109 109412257237874861202
+115478779964227301239 103716847685048716973
+105901259206530390933 104450760987525660219
+111261496925076985134 106100296973968329853
+103171849011748425097 109809835379677001002
+117477042502591652021 100537991844787325512
+115478779964227301239 105400903062771750089
+104870518715355770532 103100496883422151101
+100397511207083609950 100537991844787325512
+117691391504351341685 118207880179234484610
+115963821022986200770 103112588675637065591
+107196172964000631645 103716847685048716973
+103016521073558596116 114790574178411061829
+100269980559891536109 102178700954286324866
+115478779964227301239 107234826207633309420
+114244914082871792125 111666959095947698908
+113612142759476883204 111975545018506506119
+107793717361981126032 103207773865797007066
+113047102292798770205 104612091113514802664
+112364132652438722780 100397511207083609950
+104618664838382110366 117550971892000156946
+115360979797396777969 110209787594312878744
+117377434815709898403 106100296973968329853
+108817085747440374986 111337216646096594888
+100535338638690515335 113801236315350503728
+111422286077941361166 109519167630731639094
+102034052532213921839 105076678694475690385
+100084737546039360199 113612142759476883204
+112944532473909341307 109504122343901736603
+105901259206530390933 109388259228280605303
+111091089527727420853 117550971892000156946
+117691391504351341685 103012564142649561853
+103975368181760158212 109388259228280605303
+109170680659355634945 108000051912603578599
+114790574178411061829 118357356982727825178
+103207773865797007066 116621986644249676039
+101261243957067319422 116768967108862685383
+113116318008017777871 101569655404865588155
+106122462724662012890 110727249496967897430
+115963821022986200770 106312895983244085949
+114549564725160709822 102088173699409175139
+113166718268343560861 116107530889292552664
+106345802537137414958 114991987213662121376
+104364058018116761460 117421021456205115327
+113166718268343560861 112844561713780016118
+115739378269261680935 100871232248276491534
+107781761552417614958 113166718268343560861
+106695181236161584825 103475991020114516832
+117421021456205115327 104364058018116761460
+101213524574984631953 105634350975670602787
+108314259245584185142 113801236315350503728
+109931095616224405271 103475991020114516832
+106026445270708973611 115341960624782381062
+106388983874370865380 110286587261352351537
+114758749740576519343 107781761552417614958
+102545157386069758709 102048265612444661933
+106695181236161584825 115622466243011136115
+117377434815709898403 115565811010545226083
+101261243957067319422 113612142759476883204
+101569655404865588155 115478779964227301239
+102034052532213921839 107781761552417614958
+101261243957067319422 115302451851587317396
+109504122343901736603 113351703941294630458
+111538009015644508967 102654570556058167176
+113612142759476883204 100535338638690515335
+102034052532213921839 116762461061414014956
+100084737546039360199 109182513536739786206
+118086737936443306746 109809835379677001002
+103207773865797007066 101261243957067319422
+104987932455782713675 109182513536739786206
+100093902492789669774 107234826207633309420
+100415723513846680553 109778238062128383421
+113801236315350503728 116773104421165750126
+100397511207083609950 107896527414017792767
+100397511207083609950 115963821022986200770
+108817085747440374986 115622466243011136115
+115565811010545226083 113612142759476883204
+116374117927631468606 106665185918564754695
+109581870574956225297 106925005603331131101
+112364132652438722780 100523784851251213675
+101849747879612982297 113117251731252114390
+113801236315350503728 110286587261352351537
+112276589013569458330 103475991020114516832
+101261243957067319422 101057616370673656059
+109174551750397653742 102034052532213921839
+117377434815709898403 109813896768294978296
+111666959095947698908 111538009015644508967
+109335713877994755095 111538009015644508967
+108832773152747423283 113920721823301219308
+115739378269261680935 106812355611465528242
+105076678694475690385 104612091113514802664
+117421021456205115327 111654284395316165338
+108817085747440374986 116374117927631468606
+105207943512906810696 116768967108862685383
+117377434815709898403 105400903062771750089
+116621986644249676039 108894779805940659869
+115739378269261680935 108176814619778619437
+115622466243011136115 109182513536739786206
+113351703941294630458 115478779964227301239
+115739378269261680935 109174551750397653742
+107753428759636856492 103012564142649561853
+109778238062128383421 103100496883422151101
+107781761552417614958 113351703941294630458
+100269980559891536109 118264184129842070900
+100535338638690515335 101213524574984631953
+100871232248276491534 105076678694475690385
+104450760987525660219 100535338638690515335
+115565811010545226083 101094440579835956866
+111422286077941361166 116374117927631468606
+106224435901697064976 109519167630731639094
+115064258994656104138 115565811010545226083
+112944532473909341307 108255750659110762991
+115360979797396777969 113117251731252114390
+100084737546039360199 107033731246200681024
+116491285067171323298 113210431006401244170
+101057616370673656059 103171849011748425097
+112276589013569458330 106695181236161584825
+100173452066172931939 114549564725160709822
+116621986644249676039 111538009015644508967
+103171849011748425097 104191514233385365427
+112820512550939559523 107033731246200681024
+111091089527727420853 115360979797396777969
+100397511207083609950 106665185918564754695
+107587075873786034394 101569655404865588155
+117421021456205115327 113920721823301219308
+100535338638690515335 105076678694475690385
+109174551750397653742 109813896768294978296
+101092351652012588236 115706830138905259568
+114758749740576519343 115478779964227301239
+112016425853417877466 107519026002586025827
+112944532473909341307 108574688020691152748
+109304903996729396661 117550971892000156946
+112364132652438722780 108574688020691152748
+103207773865797007066 115739148151601573808
+116773104421165750126 105076678694475690385
+101057616370673656059 104560124403688998123
+113351703941294630458 102048265612444661933
+108817085747440374986 118245559326500322262
+110728349411116483031 106096957694385885466
+107033731246200681024 107117483540235115863
+103171849011748425097 111654284395316165338
+112364132652438722780 100871232248276491534
+100269980559891536109 102034052532213921839
+112276589013569458330 116388668762198604003
+112016425853417877466 103012564142649561853
+107519026002586025827 104987932455782713675
+107006059340452534782 107753428759636856492
+104987932455782713675 107097980510051172895
+103325969492772452485 115963821022986200770
+101185406398932804414 103207773865797007066
+118086737936443306746 115047896996200277508
+103975368181760158212 101246601531247561585
+106312895983244085949 109174551750397653742
+116374117927631468606 113612142759476883204
+107753428759636856492 116762461061414014956
+102034052532213921839 113116318008017777871
+114918561167106576639 115478779964227301239
+105662484616118909569 109388259228280605303
+114832793541825307503 109603191376504998413
+101261243957067319422 106695181236161584825
+118245559326500322262 102178700954286324866
+109304903996729396661 113920721823301219308
+108082478497335384404 105076678694475690385
+115706830138905259568 114991987213662121376
+117691391504351341685 118320665823821681206
+104450760987525660219 100269980559891536109
+109247306373593947755 115047896996200277508
+116374117927631468606 108255750659110762991
+112276589013569458330 113117251731252114390
+115622466243011136115 117377434815709898403
+113351703941294630458 104450760987525660219
+115963821022986200770 114244914082871792125
+108082478497335384404 102048265612444661933
+106096957694385885466 101849747879612982297
+117377434815709898403 113210431006401244170
+105076678694475690385 113068441549452664746
+109931095616224405271 102403331307606219198
+116374117927631468606 101600577333348274552
+107303107611470093265 110318982509514011806
+117550971892000156946 110318982509514011806
+115739148151601573808 103012564142649561853
+110728349411116483031 108176814619778619437
+116374117927631468606 111654284395316165338
+100397511207083609950 113612142759476883204
+117477042502591652021 102654570556058167176
+109247306373593947755 101246601531247561585
+103100496883422151101 107117483540235115863
+105901259206530390933 118245559326500322262
+110318982509514011806 115863474911002159675
+116762461061414014956 103012564142649561853
+116388668762198604003 109412257237874861202
+111091089527727420853 116491285067171323298
+107896527414017792767 107117483540235115863
+109009089551467495747 105662484616118909569
+104870518715355770532 116192724891839469024
+111310990991240556038 101213524574984631953
+100856165335040300712 106026445270708973611
+100001826804813287036 115739378269261680935
+115963821022986200770 106189723444098348646
+113116318008017777871 112844561713780016118
+115739378269261680935 107753428759636856492
+103207773865797007066 108817085747440374986
+100269980559891536109 108082478497335384404
+113801236315350503728 114979733565079457374
+106665185918564754695 111310990991240556038
+115963821022986200770 115739148151601573808
+106026445270708973611 118264184129842070900
+112944532473909341307 114079920283986872783
+108817085747440374986 108434394145774737013
+101261243957067319422 113117251731252114390
+107006059340452534782 113166718268343560861
+107519026002586025827 113247423264358423892
+107133948555394893679 107519026002586025827
+100093902492789669774 111538009015644508967
+105705665708025552983 109174551750397653742
+104450760987525660219 105030465637303791249
+118357356982727825178 114758749740576519343
+106665185918564754695 109174551750397653742
+113164038788726940319 113801236315350503728
+106096957694385885466 101629211371073711149
+116621986644249676039 115739378269261680935
+112820512550939559523 103325969492772452485
+100397511207083609950 113210431006401244170
+106026445270708973611 111310990991240556038
+111538009015644508967 102545157386069758709
+103016521073558596116 116548025566090395827
+114244914082871792125 117421021456205115327
+118156281382429939997 109780617142585395916
+101720949843787442951 111975545018506506119
+108832773152747423283 115565811010545226083
+106925005603331131101 102048265612444661933
+102216887206636463918 115017401467423642930
+101246601531247561585 101832771958125915909
+116374117927631468606 107753428759636856492
+112878918236054024365 107587075873786034394
+111975545018506506119 100537991844787325512
+101213524574984631953 118357356982727825178
+100397511207083609950 115302451851587317396
+107781761552417614958 115565811010545226083
+108952536790629690817 100093902492789669774
+104612091113514802664 107117483540235115863
+111261496925076985134 111538009015644508967
+107896527414017792767 103012564142649561853
+111091089527727420853 106122462724662012890
+111422286077941361166 102034052532213921839
+113166718268343560861 101094440579835956866
+106096957694385885466 104560124403688998123
+110774757382682582490 103171849011748425097
+103171849011748425097 112364132652438722780
+101261243957067319422 107133948555394893679
+110318982509514011806 103207773865797007066
+100535338638690515335 101057616370673656059
+116388668762198604003 106189723444098348646
+106122462724662012890 108082478497335384404
+111538009015644508967 106925005603331131101
+109809835379677001002 114790574178411061829
+108894779805940659869 113166718268343560861
+109778238062128383421 115565811010545226083
+115478779964227301239 108082478497335384404
+104618664838382110366 116374117927631468606
+108817085747440374986 101720949843787442951
+114244914082871792125 113247423264358423892
+118086737936443306746 105400903062771750089
+117550971892000156946 107753428759636856492
+118418436905562612953 112063946124358686266
+109196389259504239326 114549564725160709822
+107793717361981126032 116773104421165750126
+113351703941294630458 108243648069327964538
+107196172964000631645 101213524574984631953
+109581870574956225297 105400903062771750089
+111091089527727420853 117157132370347986579
+115478779964227301239 104560124403688998123
+114079920283986872783 101213524574984631953
+104612091113514802664 116926943858449614201
+101600577333348274552 116762461061414014956
+111422286077941361166 108817085747440374986
+107793717361981126032 114549564725160709822
+100397511207083609950 115622466243011136115
+102403331307606219198 107133948555394893679
+100397511207083609950 102216887206636463918
+101185406398932804414 115963821022986200770
+109170680659355634945 111538009015644508967
+114918561167106576639 113247423264358423892
+105662484616118909569 109170680659355634945
+115739378269261680935 105400369085832308485
+100535338638690515335 118207880179234484610
+109581870574956225297 109412257237874861202
+103207773865797007066 110727249496967897430
+115527632958457358109 111538009015644508967
+100397511207083609950 115565811010545226083
+114244914082871792125 107968787521028284191
+112016425853417877466 118418436905562612953
+116768967108862685383 104450760987525660219
+115963821022986200770 107519026002586025827
+103325969492772452485 103100496883422151101
+100535338638690515335 115963821022986200770
+115963821022986200770 114948739867290323960
+107303107611470093265 109412257237874861202
+103325969492772452485 107753428759636856492
+116762461061414014956 101092351652012588236
+109304903996729396661 118320665823821681206
+118086737936443306746 107781761552417614958
+104364058018116761460 101261243957067319422
+101057616370673656059 111091089527727420853
+115706830138905259568 116388668762198604003
+115064258994656104138 103171849011748425097
+115360979797396777969 109412257237874861202
+111091089527727420853 102545157386069758709
+101126226710566561379 103691312271671214670
+112944532473909341307 116762461061414014956
+104412682128547752131 111538009015644508967
+114918561167106576639 109182513536739786206
+109009089551467495747 118156281382429939997
+107519026002586025827 113164038788726940319
+115883560681104199404 106925005603331131101
+118245559326500322262 115565811010545226083
+109581870574956225297 117693415411676715849
+102088173699409175139 102654570556058167176
+109174551750397653742 107033731246200681024
+104450760987525660219 105076678694475690385
+111538009015644508967 113116318008017777871
+112276589013569458330 108176814619778619437
+105076678694475690385 117691391504351341685
+103016521073558596116 105207943512906810696
+116374117927631468606 101185406398932804414
+112820512550939559523 115963821022986200770
+116374117927631468606 107519026002586025827
+101261243957067319422 114632854492678778509
+103100496883422151101 105705665708025552983
+102216887206636463918 109412257237874861202
+109809835379677001002 112820512550939559523
+117421021456205115327 115565811010545226083
+115963821022986200770 104612091113514802664
+106695181236161584825 115739148151601573808
+104191514233385365427 113166718268343560861
+117691391504351341685 104987932455782713675
+110318982509514011806 103100496883422151101
+116762461061414014956 105634350975670602787
+116723923766489326849 110367546804237452889
+108082478497335384404 115047896996200277508
+110650241045258158224 106096957694385885466
+109174551750397653742 103012564142649561853
+110318982509514011806 112944532473909341307
+112339769006469685593 113166718268343560861
+107896527414017792767 111538009015644508967
+110731951130561423918 108894779805940659869
+102034052532213921839 103716847685048716973
+101213524574984631953 102178700954286324866
+107896527414017792767 100535338638690515335
+101261243957067319422 107033731246200681024
+109304903996729396661 107519026002586025827
+105901259206530390933 118320665823821681206
+108082478497335384404 113920721823301219308
+109304903996729396661 100535338638690515335
+117377434815709898403 115047896996200277508
+111422286077941361166 117550971892000156946
+106312895983244085949 104987932455782713675
+111538009015644508967 112063946124358686266
+113920721823301219308 101849747879612982297
+108899222163640713555 110728349411116483031
+100535338638690515335 105634350975670602787
+118245559326500322262 116374117927631468606
+108082478497335384404 112063946124358686266
+102654570556058167176 109388259228280605303
+102403331307606219198 107097980510051172895
+102545157386069758709 109009089551467495747
+108952536790629690817 109895887909967698705
+112364132652438722780 118320665823821681206
+101261243957067319422 109304903996729396661
+108817085747440374986 117477042502591652021
+110728349411116483031 101126226710566561379
+111654284395316165338 112063946124358686266
+101569655404865588155 106189723444098348646
+101849747879612982297 105076678694475690385
+117377434815709898403 103325969492772452485
+116207701819773193333 116388668762198604003
+110728349411116483031 115109077044202722504
+112016425853417877466 116374117927631468606
+104870518715355770532 115739378269261680935
+103207773865797007066 112339769006469685593
+117550971892000156946 104450760987525660219
+115739378269261680935 113247423264358423892
+113164038788726940319 117693415411676715849
+100093902492789669774 118156281382429939997
+101261243957067319422 106189723444098348646
+113920721823301219308 103171849011748425097
+106122462724662012890 115047896996200277508
+104191514233385365427 112878918236054024365
+109581870574956225297 113475277239647026452
+115302451851587317396 114751436351490918894
+101600577333348274552 109504122343901736603
+113116318008017777871 112063946124358686266
+115478779964227301239 112364132652438722780
+113166718268343560861 116621986644249676039
+103207773865797007066 106822154985570317672
+112016425853417877466 113117251731252114390
+108817085747440374986 111422286077941361166
+106026445270708973611 107196172964000631645
+116773104421165750126 110318982509514011806
+112364132652438722780 115739378269261680935
+116762461061414014956 101261243957067319422
+113612142759476883204 107033731246200681024
+109581870574956225297 114791921155677330282
+103207773865797007066 113166718268343560861
+111091089527727420853 107303107611470093265
+115360979797396777969 103716847685048716973
+114758749740576519343 108817085747440374986
+100871232248276491534 107117483540235115863
+112339769006469685593 104560124403688998123
+106096957694385885466 100093902492789669774
+118245559326500322262 108817085747440374986
+105006381068870463173 115739378269261680935
+101600577333348274552 102034052532213921839
+104412682128547752131 109388259228280605303
+117421021456205115327 115478779964227301239
+113164038788726940319 105822688186016123722
+118418436905562612953 113166718268343560861
+115706830138905259568 101213524574984631953
+114791921155677330282 114821161730370452301
+105901259206530390933 109412257237874861202
+114244914082871792125 107896527414017792767
+113351703941294630458 107033731246200681024
+116374117927631468606 117691391504351341685
+107303107611470093265 102048265612444661933
+101225750534150134109 103171849011748425097
+101057616370673656059 116388668762198604003
+106026445270708973611 113210431006401244170
+112339769006469685593 109809835379677001002
+116374117927631468606 111285782175840598932
+115109077044202722504 113612142759476883204
+100397511207083609950 106837636108890930395
+109196389259504239326 113284787225540728296
+109170680659355634945 104560124403688998123
+100397511207083609950 108255750659110762991
+107006059340452534782 105822688186016123722
+111091089527727420853 111171416539633276676
+110650241045258158224 115017401467423642930
+105901259206530390933 115047896996200277508
+108000051912603578599 109895887909967698705
+103016521073558596116 115565811010545226083
+100397511207083609950 109174551750397653742
+115739148151601573808 107133948555394893679
+108952536790629690817 101849747879612982297
+100397511207083609950 104450760987525660219
+116374117927631468606 103716847685048716973
+116374117927631468606 108771911258181286059
+113801236315350503728 107133948555394893679
+105207943512906810696 113801236315350503728
+109335713877994755095 116621986644249676039
+100535338638690515335 110286587261352351537
+115360979797396777969 107033731246200681024
+101057616370673656059 112063946124358686266
+113920721823301219308 117421021456205115327
+117421021456205115327 113210431006401244170
+115739148151601573808 110286587261352351537
+115478779964227301239 103171849011748425097
+104450760987525660219 100606519862794948506
+108817085747440374986 115963821022986200770
+100397511207083609950 112063946124358686266
+113920721823301219308 112364132652438722780
+113722523501415106689 116773104421165750126
+105006381068870463173 107117483540235115863
+100084737546039360199 114790574178411061829
+109304903996729396661 115064258994656104138
+102216887206636463918 110286587261352351537
+109174551750397653742 118207880179234484610
+112339769006469685593 113116318008017777871
+115622466243011136115 107519026002586025827
+101261243957067319422 116927391465690022495
+102545157386069758709 107117483540235115863
+117921656724816772352 106263529626268281828
+115302451851587317396 115527632958457358109
+104364058018116761460 105400903062771750089
+100269980559891536109 117691391504351341685
+118418436905562612953 105662484616118909569
+108817085747440374986 107234826207633309420
+117693415411676715849 115047896996200277508
+111091089527727420853 118418436905562612953
+117691391504351341685 108832773152747423283
+111091089527727420853 115565811010545226083
+109304903996729396661 103100496883422151101
+116548025566090395827 116762461061414014956
+111666959095947698908 117377434815709898403
+103207773865797007066 108899222163640713555
+104364058018116761460 109074857816744029470
+118245559326500322262 103660543175586203250
+104612091113514802664 110727249496967897430
+117421021456205115327 104450760987525660219
+113920721823301219308 101094440579835956866
+103016521073558596116 102034052532213921839
+103493459351957813291 104191514233385365427
+104191514233385365427 116762461061414014956
+100084737546039360199 114461903539732780109
+116374117927631468606 115739148151601573808
+112944532473909341307 103171849011748425097
+114244914082871792125 104364058018116761460
+118418436905562612953 111310990991240556038
+112276589013569458330 114244914082871792125
+107519026002586025827 104364058018116761460
+103171849011748425097 107753428759636856492
+103100496883422151101 102178700954286324866
+116374117927631468606 100262595546646927505
+103100496883422151101 112844561713780016118
+112276589013569458330 107519026002586025827
+112364132652438722780 101704103161442695877
+111538009015644508967 101704103161442695877
+100173452066172931939 100523784851251213675
+102216887206636463918 101261243957067319422
+100939735623367202041 114821161730370452301
+117377434815709898403 104450760987525660219
+100173452066172931939 101057616370673656059
+113351703941294630458 101261243957067319422
+105076678694475690385 114791921155677330282
+118086737936443306746 118357356982727825178
+115478779964227301239 117421021456205115327
+104612091113514802664 103112588675637065591
+115706830138905259568 106189723444098348646
+104364058018116761460 103012564142649561853
+115739378269261680935 100262595546646927505
+116768967108862685383 113612142759476883204
+104226321884965863264 114758749740576519343
+109778238062128383421 106695181236161584825
+117377434815709898403 108255750659110762991
+116374117927631468606 113920721823301219308
+106026445270708973611 107117483540235115863
+105076678694475690385 112364132652438722780
+108817085747440374986 105634350975670602787
+115392876317176762477 111091089527727420853
+104870518715355770532 111091089527727420853
+114244914082871792125 101720949843787442951
+100397511207083609950 103691312271671214670
+106026445270708973611 109412257237874861202
+105076678694475690385 105863188856924083857
+102512310412972518336 111666959095947698908
+112364132652438722780 117693415411676715849
+114152150496380806218 116773104421165750126
+109581870574956225297 109895887909967698705
+112364132652438722780 102088173699409175139
+109778238062128383421 104612091113514802664
+105207943512906810696 112844561713780016118
+100397511207083609950 108894779805940659869
+117550971892000156946 108817085747440374986
+116621986644249676039 115017401467423642930
+110318982509514011806 113920721823301219308
+114918561167106576639 106695181236161584825
+102545157386069758709 118357356982727825178
+108082478497335384404 106665185918564754695
+106096957694385885466 110318982509514011806
+105207943512906810696 103207773865797007066
+108082478497335384404 113247423264358423892
+102034052532213921839 108176814619778619437
+103493459351957813291 110286587261352351537
+117693415411676715849 115302451851587317396
+109388259228280605303 113166718268343560861
+104450760987525660219 117683744929337064105
+116374117927631468606 111601729473858041964
+108817085747440374986 104618664838382110366
+113166718268343560861 111285782175840598932
+107519026002586025827 108129202557078877094
+113166718268343560861 103020619410065980303
+101246601531247561585 114632854492678778509
+109170680659355634945 101246601531247561585
+105703999093618427814 100871232248276491534
+113166718268343560861 111538009015644508967
+103207773865797007066 107781761552417614958
+114758749740576519343 115565811010545226083
+109388259228280605303 101261243957067319422
+109304903996729396661 103325969492772452485
+106312895983244085949 107033731246200681024
+109581870574956225297 104987932455782713675
+105901259206530390933 116374117927631468606
+109778238062128383421 118357356982727825178
+114991987213662121376 116107530889292552664
+118418436905562612953 108894779805940659869
+107133948555394893679 110286587261352351537
+112944532473909341307 107753428759636856492
+109809835379677001002 114758749740576519343
+113166718268343560861 107753428759636856492
+108817085747440374986 115863474911002159675
+117550971892000156946 101213524574984631953
+115392876317176762477 104987932455782713675
+111538009015644508967 107753428759636856492
+103207773865797007066 115341960624782381062
+113116318008017777871 102034052532213921839
+117691391504351341685 112339769006469685593
+107753428759636856492 113210431006401244170
+100939735623367202041 100353346783543697435
+105400369085832308485 102088173699409175139
+108000051912603578599 109581870574956225297
+105703999093618427814 112364132652438722780
+108243648069327964538 115527632958457358109
+111975545018506506119 110318982509514011806
+115478779964227301239 101720949843787442951
+115739378269261680935 110728349411116483031
+111538009015644508967 106100296973968329853
+103171849011748425097 103716847685048716973
+110728349411116483031 118017787526225833770
+107896527414017792767 106312895983244085949
+106026445270708973611 113247423264358423892
+107519026002586025827 107781761552417614958
+114079920283986872783 105376842241046675559
+104870518715355770532 107234826207633309420
+109581870574956225297 107097980510051172895
+109196389259504239326 108000051912603578599
+109304903996729396661 100523784851251213675
+107519026002586025827 113801236315350503728
+113116318008017777871 117157132370347986579
+115739378269261680935 117691391504351341685
+112364132652438722780 104612091113514802664
+109581870574956225297 115565811010545226083
+107896527414017792767 104612091113514802664
+105076678694475690385 102048265612444661933
+108952536790629690817 110286587261352351537
+109335713877994755095 101057616370673656059
+101261243957067319422 115064258994656104138
+105400369085832308485 103691312271671214670
+111091089527727420853 103660543175586203250
+115017401467423642930 111538009015644508967
+100093902492789669774 118017787526225833770
+102034052532213921839 104560124403688998123
+118357356982727825178 112339769006469685593
+108243648069327964538 115302451851587317396
+106925005603331131101 108817085747440374986
+115109077044202722504 107699711897781234810
+112944532473909341307 104191514233385365427
+103016521073558596116 100535338638690515335
+113116318008017777871 108176814619778619437
+100535338638690515335 114948739867290323960
+117421021456205115327 111091089527727420853
+115478779964227301239 100084737546039360199
+102403331307606219198 100262595546646927505
+109182513536739786206 106925005603331131101
+115739148151601573808 106695181236161584825
+104364058018116761460 101213524574984631953
+115109077044202722504 107129852879758941909
+109581870574956225297 102048265612444661933
+113166718268343560861 111310990991240556038
+107090629815001792243 112364132652438722780
+115739148151601573808 113612142759476883204
+104364058018116761460 110318982509514011806
+109196389259504239326 114821161730370452301
+103171849011748425097 115360979797396777969
+109809835379677001002 109412257237874861202
+116207701819773193333 113116318008017777871
+110774757382682582490 106122462724662012890
+103691312271671214670 110728349411116483031
+103691312271671214670 115047896996200277508
+114918561167106576639 112276589013569458330
+115360979797396777969 102048265612444661933
+118418436905562612953 112276589013569458330
+112276589013569458330 108082478497335384404
+109304903996729396661 105400903062771750089
+116374117927631468606 113117251731252114390
+115739378269261680935 116768967108862685383
+107196172964000631645 117691391504351341685
+107519026002586025827 106925005603331131101
+115302451851587317396 100257676670422660178
+107753428759636856492 106665185918564754695
+111091089527727420853 109809835379677001002
+115109077044202722504 114549564725160709822
+108314259245584185142 111091089527727420853
+117691391504351341685 112844561713780016118
+112944532473909341307 104560124403688998123
+109304903996729396661 115047896996200277508
+106224435901697064976 101261243957067319422
+102034052532213921839 113210431006401244170
+115739148151601573808 107234826207633309420
+108082478497335384404 116374117927631468606
+114244914082871792125 115739378269261680935
+111310990991240556038 102178700954286324866
+112364132652438722780 111310990991240556038
+106122462724662012890 102178700954286324866
+108952536790629690817 107234826207633309420
+100084737546039360199 103112588675637065591
+100397511207083609950 108832773152747423283
+117691391504351341685 114791921155677330282
+100535338638690515335 102178700954286324866
+115739378269261680935 114918561167106576639
+115622466243011136115 108082478497335384404
+104981620794721816747 105662484616118909569
+108000051912603578599 101225750534150134109
+108817085747440374986 115565811010545226083
+116388668762198604003 115622466243011136115
+115739148151601573808 114918561167106576639
+109581870574956225297 101569655404865588155
+105076678694475690385 105662484616118909569
+116374117927631468606 108574688020691152748
+117377434815709898403 103100496883422151101
+109778238062128383421 115360979797396777969
+110728349411116483031 107699711897781234810
+111538009015644508967 109170680659355634945
+107090629815001792243 100173452066172931939
+118418436905562612953 104560124403688998123
+106695181236161584825 107519026002586025827
+111171416539633276676 110286587261352351537
+103016521073558596116 116621986644249676039
+106096957694385885466 101126226710566561379
+115064258994656104138 103112588675637065591
+101185406398932804414 101261243957067319422
+100084737546039360199 112364132652438722780
+102048265612444661933 118357356982727825178
+107781761552417614958 109412257237874861202
+108817085747440374986 110649214929620497857
+111091089527727420853 109412257237874861202
+116192724891839469024 104066486855641683676
+111091089527727420853 107968787521028284191
+108082478497335384404 101261243957067319422
+114790574178411061829 111310990991240556038
+103171849011748425097 105376842241046675559
+101057616370673656059 115047896996200277508
+104364058018116761460 108000051912603578599
+109504122343901736603 112276589013569458330
+110731951130561423918 101261243957067319422
+113116318008017777871 107781761552417614958
+118245559326500322262 105076678694475690385
+107896527414017792767 115565811010545226083
+107519026002586025827 112063946124358686266
+114918561167106576639 108314259245584185142
+116374117927631468606 102048265612444661933
+112339769006469685593 116388668762198604003
+107587075873786034394 112944532473909341307
+111091089527727420853 104612091113514802664
+100084737546039360199 112276589013569458330
+111091089527727420853 115109077044202722504
+100093902492789669774 104412682128547752131
+107753428759636856492 113068441549452664746
+111310990991240556038 103100496883422151101
+112364132652438722780 102034052532213921839
+118245559326500322262 116621986644249676039
+108894779805940659869 104618664838382110366
+115392876317176762477 110286587261352351537
+101057616370673656059 109182513536739786206
+114244914082871792125 107117483540235115863
+107896527414017792767 117421021456205115327
+117683744929337064105 101225750534150134109
+108894779805940659869 113612142759476883204
+114918561167106576639 113475277239647026452
+115360979797396777969 111310990991240556038
+102034052532213921839 100415723513846680553
+111538009015644508967 102048265612444661933
+117377434815709898403 117693415411676715849
+100397511207083609950 114632854492678778509
+101057616370673656059 117421021456205115327
+111707854651652464890 114918561167106576639
+111975545018506506119 102034052532213921839
+107519026002586025827 109809835379677001002
+104412682128547752131 115109077044202722504
+108314259245584185142 103207773865797007066
+107587075873786034394 105400903062771750089
+105705665708025552983 104612091113514802664
+110728349411116483031 115739378269261680935
+104364058018116761460 115047896996200277508
+100084737546039360199 109412257237874861202
+105901259206530390933 108176814619778619437
+100173452066172931939 116927391465690022495
+102512310412972518336 111996414642516891950
+113612142759476883204 102034052532213921839
+115341960624782381062 116762461061414014956
+114244914082871792125 116927391465690022495
+113116318008017777871 112364132652438722780
+101213524574984631953 107753428759636856492
+104364058018116761460 111538009015644508967
+116374117927631468606 118357356982727825178
+102034052532213921839 107753428759636856492
+109581870574956225297 104450760987525660219
+113166718268343560861 101832196121408756348
+112276589013569458330 104560124403688998123
+108000051912603578599 100537991844787325512
+107033731246200681024 106189723444098348646
+106665185918564754695 115478779964227301239
+101057616370673656059 103112588675637065591
+101246601531247561585 104191514233385365427
+112852253337028739987 108817085747440374986
+105400369085832308485 115109077044202722504
+118357356982727825178 112276589013569458330
+101261243957067319422 117377434815709898403
+100093902492789669774 107699711897781234810
+111654284395316165338 101213524574984631953
+106345802537137414958 108000051912603578599
+115109077044202722504 109174551750397653742
+105901259206530390933 103325969492772452485
+101057616370673656059 115302451851587317396
+100397511207083609950 109170680659355634945
+106122462724662012890 107587075873786034394
+103660543175586203250 115064258994656104138
+109581870574956225297 100397511207083609950
+100084737546039360199 117550971892000156946
+104870518715355770532 100397511207083609950
+106096957694385885466 104981620794721816747
+114790574178411061829 108574688020691152748
+103171849011748425097 111538009015644508967
+111975545018506506119 111310990991240556038
+107196172964000631645 109813896768294978296
+104450760987525660219 100523784851251213675
+102048265612444661933 105634350975670602787
+114244914082871792125 107006059340452534782
+112944532473909341307 104364058018116761460
+111091089527727420853 117691391504351341685
+104450760987525660219 101057616370673656059
+106026445270708973611 106189723444098348646
+112016425853417877466 112364132652438722780
+118418436905562612953 103716847685048716973
+109304903996729396661 108082478497335384404
+103171849011748425097 105076678694475690385
+118418436905562612953 107992936493665613654
+118418436905562612953 107133948555394893679
+104450760987525660219 101600577333348274552
+109174551750397653742 103660543175586203250
+113801236315350503728 109895887909967698705
+112276589013569458330 111285782175840598932
+115739148151601573808 113047102292798770205
+108000051912603578599 104191514233385365427
+102403331307606219198 116762461061414014956
+103325969492772452485 101225750534150134109
+113166718268343560861 104612091113514802664
+115739148151601573808 108594511384403031361
+116207701819773193333 113351703941294630458
+107781761552417614958 110318982509514011806
+112820512550939559523 107196172964000631645
+106812355611465528242 111601729473858041964
+113116318008017777871 101057616370673656059
+107129852879758941909 115017401467423642930
+105076678694475690385 101704103161442695877
+117691391504351341685 118418436905562612953
+118357356982727825178 109074857816744029470
+115478779964227301239 101213524574984631953
+117421021456205115327 115360979797396777969
+107090629815001792243 100856165335040300712
+117421021456205115327 108082478497335384404
+106925005603331131101 110318982509514011806
+102545157386069758709 101213524574984631953
+105662484616118909569 110318982509514011806
+102403331307606219198 109931095616224405271
+103207773865797007066 100173452066172931939
+100173452066172931939 114359738470992181937
+108899222163640713555 109170680659355634945
+111654284395316165338 118207880179234484610
+101261243957067319422 108952536790629690817
+101481313915867030905 114821161730370452301
+118207880179234484610 114790574178411061829
+112364132652438722780 104450760987525660219
+113351703941294630458 114632854492678778509
+107755092517418534815 107090629815001792243
+108817085747440374986 108000051912603578599
+114079920283986872783 117691391504351341685
+116762461061414014956 116927391465690022495
+113351703941294630458 101629211371073711149
+117691391504351341685 111666959095947698908
+116762461061414014956 108000051912603578599
+110318982509514011806 102178700954286324866
+108255750659110762991 104560124403688998123
+106312895983244085949 109813896768294978296
+102512310412972518336 114522811866073303399
+102654570556058167176 109009089551467495747
+118357356982727825178 102048265612444661933
+104987932455782713675 106189723444098348646
+107006059340452534782 109412257237874861202
+103207773865797007066 117550971892000156946
+106096957694385885466 113166718268343560861
+108817085747440374986 109778238062128383421
+111091089527727420853 111337216646096594888
+112364132652438722780 110318982509514011806
+102512310412972518336 113210431006401244170
+107090629815001792243 101057616370673656059
+108082478497335384404 112820512550939559523
+114152150496380806218 100871232248276491534
+113166718268343560861 100523784851251213675
+106665185918564754695 108434394145774737013
+103691312271671214670 104383523254857614001
+104612091113514802664 112364132652438722780
+108434394145774737013 112944532473909341307
+101185406398932804414 109074857816744029470
+100397511207083609950 115360979797396777969
+103207773865797007066 110728349411116483031
+102088173699409175139 114549564725160709822
+115622466243011136115 100269980559891536109
+109304903996729396661 103012564142649561853
+106312895983244085949 115565811010545226083
+100001826804813287036 105703999093618427814
+113116318008017777871 101720949843787442951
+104450760987525660219 117377434815709898403
+102654570556058167176 111337216646096594888
+108082478497335384404 109074857816744029470
+112364132652438722780 115622466243011136115
+112276589013569458330 103100496883422151101
+115478779964227301239 111285782175840598932
+115360979797396777969 115478779964227301239
+102034052532213921839 106122462724662012890
+108894779805940659869 107699711897781234810
+113475277239647026452 114790574178411061829
+111666959095947698908 115863474911002159675
+113920721823301219308 105400903062771750089
+116207701819773193333 115360979797396777969
+102034052532213921839 109778238062128383421
+105705665708025552983 115478779964227301239
+115739378269261680935 118207880179234484610
+100093902492789669774 115392876317176762477
+106096957694385885466 104870518715355770532
+109504122343901736603 112944532473909341307
+106026445270708973611 112364132652438722780
+101094440579835956866 106189723444098348646
+108000051912603578599 105634350975670602787
+113164038788726940319 103012564142649561853
+100269980559891536109 109074857816744029470
+111654284395316165338 113117251731252114390
+109581870574956225297 103100496883422151101
+116491285067171323298 106189723444098348646
+112364132652438722780 103660543175586203250
+115739378269261680935 109895887909967698705
+112364132652438722780 105006381068870463173
+117683744929337064105 118357356982727825178
+103691312271671214670 118017787526225833770
+108869261693909788407 106096957694385885466
+106925005603331131101 106190212616572073606
+100397511207083609950 103716847685048716973
+112339769006469685593 117421021456205115327
+114549564725160709822 116768967108862685383
+109780617142585395916 101832771958125915909
+111091089527727420853 100353346783543697435
+113116318008017777871 103716847685048716973
+115360979797396777969 117691391504351341685
+103207773865797007066 106312895983244085949
+102403331307606219198 101720949843787442951
+101261243957067319422 112063946124358686266
+104987932455782713675 115360979797396777969
+111091089527727420853 114948739867290323960
+107896527414017792767 109581870574956225297
+115047896996200277508 116548025566090395827
+100173452066172931939 113475277239647026452
+101720949843787442951 114979733565079457374
+113612142759476883204 114791921155677330282
+116374117927631468606 110649214929620497857
+101261243957067319422 112276589013569458330
+114991987213662121376 112944532473909341307
+102216887206636463918 102178700954286324866
+116207701819773193333 114791921155677330282
+100397511207083609950 104191514233385365427
+115064258994656104138 100269980559891536109
+115478779964227301239 118320665823821681206
+108894779805940659869 117477042502591652021
+106312895983244085949 107117483540235115863
+102034052532213921839 100397511207083609950
+108000051912603578599 108574688020691152748
+103207773865797007066 101832196121408756348
+108817085747440374986 102048265612444661933
+111666959095947698908 117691391504351341685
+112339769006469685593 113247423264358423892
+102088173699409175139 101704103161442695877
+107781761552417614958 113116318008017777871
+112820512550939559523 118207880179234484610
+106665185918564754695 110727249496967897430
+100397511207083609950 116388668762198604003
+115739378269261680935 110318982509514011806
+104364058018116761460 112063946124358686266
+100397511207083609950 101629211371073711149
+115360979797396777969 104450760987525660219
+101213524574984631953 103716847685048716973
+113612142759476883204 107117483540235115863
+117421021456205115327 105634350975670602787
+117377434815709898403 102705549361550492663
+104412682128547752131 109182513536739786206
+115739378269261680935 117921656724816772352
+105705665708025552983 104450760987525660219
+111310990991240556038 117421021456205115327
+103171849011748425097 115478779964227301239
+104450760987525660219 110468193592032465149
+112364132652438722780 103716847685048716973
+101720949843787442951 113801236315350503728
+113166718268343560861 115706830138905259568
+115064258994656104138 118357356982727825178
+114244914082871792125 103493459351957813291
+111422286077941361166 111538009015644508967
+113164038788726940319 103112588675637065591
+106312895983244085949 116768967108862685383
+116548025566090395827 111285782175840598932
+111538009015644508967 107699711897781234810
+118357356982727825178 104450760987525660219
+102403331307606219198 104618664838382110366
+114244914082871792125 117477042502591652021
+112878918236054024365 109581870574956225297
+104412682128547752131 115739378269261680935
+100535338638690515335 107117483540235115863
+106026445270708973611 106100296973968329853
+102512310412972518336 109335713877994755095
+111091089527727420853 116773104421165750126
+118245559326500322262 108894779805940659869
+117691391504351341685 107097980510051172895
+106312895983244085949 109809835379677001002
+118357356982727825178 108255750659110762991
+102034052532213921839 107117483540235115863
+116762461061414014956 109581870574956225297
+101092351652012588236 109170680659355634945
+112944532473909341307 100019606796298306813
+113475277239647026452 103325969492772452485
+101057616370673656059 107896527414017792767
+100084737546039360199 106189723444098348646
+101094440579835956866 103171849011748425097
+102216887206636463918 114791921155677330282
+100397511207083609950 102512310412972518336
+104450760987525660219 102688620589277847136
+113801236315350503728 118320665823821681206
+110318982509514011806 101094440579835956866
+113166718268343560861 109780617142585395916
+100173452066172931939 102216887206636463918
+116768967108862685383 113166718268343560861
+111171416539633276676 107117483540235115863
+115622466243011136115 115565811010545226083
+111091089527727420853 118320665823821681206
+101094440579835956866 109813896768294978296
+111538009015644508967 109174551750397653742
+102403331307606219198 100397143564111754723
+111091089527727420853 105662484616118909569
+101481313915867030905 111285782175840598932
+115565811010545226083 109074857816744029470
+108082478497335384404 103112588675637065591
+104450760987525660219 108434394145774737013
+104987932455782713675 108817085747440374986
+103207773865797007066 107129852879758941909
+115064258994656104138 102048265612444661933
+115302451851587317396 115047896996200277508
+117477042502591652021 105662484616118909569
+113166718268343560861 108255750659110762991
+107753428759636856492 118264184129842070900
+108000051912603578599 111310990991240556038
+115109077044202722504 108894779805940659869
+114244914082871792125 112063946124358686266
+104364058018116761460 107753428759636856492
+111310990991240556038 115478779964227301239
+107090629815001792243 110209787594312878744
+100856165335040300712 105703999093618427814
+113164038788726940319 100397511207083609950
+117477042502591652021 109182513536739786206
+104612091113514802664 102048265612444661933
+107896527414017792767 105822688186016123722
+111975545018506506119 101720949843787442951
+115047896996200277508 103207773865797007066
+113166718268343560861 104450760987525660219
+104987932455782713675 115739378269261680935
+106096957694385885466 104383523254857614001
+116374117927631468606 103112588675637065591
+117691391504351341685 113801236315350503728
+109581870574956225297 100523784851251213675
+109778238062128383421 114948739867290323960
+112339769006469685593 108574688020691152748
+101057616370673656059 117550971892000156946
+115109077044202722504 111285782175840598932
+110318982509514011806 100019606796298306813
+105006381068870463173 117377434815709898403
+118156281382429939997 109009089551467495747
+108000051912603578599 114991987213662121376
+100397511207083609950 115109077044202722504
+116374117927631468606 106695181236161584825
+100397511207083609950 109813896768294978296
+115565811010545226083 112844561713780016118
+115360979797396777969 107117483540235115863
+109581870574956225297 111310990991240556038
+118264184129842070900 113068441549452664746
+106695181236161584825 103012564142649561853
+108899222163640713555 107699711897781234810
+109809835379677001002 109182513536739786206
+112339769006469685593 109895887909967698705
+100871232248276491534 116723923766489326849
+115527632958457358109 105376842241046675559
+117421021456205115327 100535338638690515335
+109603191376504998413 103153499873703329897
+103153499873703329897 114832793541825307503
+115739378269261680935 105632941129656401917
+106665185918564754695 104364058018116761460
+109182513536739786206 102425976203575211068
+108000051912603578599 109813896768294978296
+116388668762198604003 111310990991240556038
+111091089527727420853 115017401467423642930
+112276589013569458330 106189723444098348646
+102034052532213921839 113117251731252114390
+104987932455782713675 111538009015644508967
+107117418142368704725 113116318008017777871
+113164038788726940319 109074857816744029470
+106067770652209688980 118245559326500322262
+106695181236161584825 112820512550939559523
+111806715084467662398 116621986644249676039
+113612142759476883204 118320665823821681206
+102403331307606219198 109504122343901736603
+106096957694385885466 111261496925076985134
+109304903996729396661 106189723444098348646
+117921656724816772352 116192724891839469024
+118357356982727825178 109247306373593947755
+100084737546039360199 106345802537137414958
+111261496925076985134 101849747879612982297
+104364058018116761460 111091089527727420853
+109182513536739786206 102048265612444661933
+106665185918564754695 103100496883422151101
+117691391504351341685 108574688020691152748
+109388259228280605303 103207773865797007066
+111091089527727420853 101057616370673656059
+111310990991240556038 115064258994656104138
+103207773865797007066 108952536790629690817
+103100496883422151101 113475277239647026452
+116207701819773193333 115478779964227301239
+108434394145774737013 115706830138905259568
+116374117927631468606 104618664838382110366
+100093902492789669774 103207773865797007066
+103016521073558596116 116388668762198604003
+104191514233385365427 110318982509514011806
+108787861479092510435 107308976571078250231
+100856165335040300712 116773104421165750126
+117377434815709898403 108082478497335384404
+113166718268343560861 104560124403688998123
+102545157386069758709 118418436905562612953
+114758749740576519343 109412257237874861202
+103020619410065980303 104412682128547752131
+109174551750397653742 107117483540235115863
+105076678694475690385 117377434815709898403
+100535338638690515335 116768967108862685383
+101569655404865588155 101261243957067319422
+107196172964000631645 109412257237874861202
+116926943858449614201 105376842241046675559
+112820512550939559523 105076678694475690385
+107090629815001792243 115390494223651393388
+111538009015644508967 110727249496967897430
+109247306373593947755 114790574178411061829
+115739378269261680935 116762461061414014956
+106122462724662012890 117421021456205115327
+108952536790629690817 108176814619778619437
+111654284395316165338 109895887909967698705
+114359738470992181937 111601729473858041964
+111091089527727420853 104412682128547752131
+115706830138905259568 103716847685048716973
+113116318008017777871 114359738470992181937
+105705665708025552983 116388668762198604003
+102654570556058167176 112364132652438722780
+105376842241046675559 111538009015644508967
+112276589013569458330 107033731246200681024
+118245559326500322262 104191514233385365427
+106837636108890930395 105006381068870463173
+115739378269261680935 114549564725160709822
+109931095616224405271 111422286077941361166
+102088173699409175139 116107530889292552664
+102088173699409175139 106096957694385885466
+115527632958457358109 118207880179234484610
+102654570556058167176 105006381068870463173
+103016521073558596116 109813896768294978296
+110774757382682582490 109412257237874861202
+115109077044202722504 101261243957067319422
+117377434815709898403 100537991844787325512
+115706830138905259568 115478779964227301239
+106312895983244085949 115622466243011136115
+110318982509514011806 106189723444098348646
+117377434815709898403 107117483540235115863
+106224435901697064976 102178700954286324866
+100093902492789669774 112364132652438722780
+114758749740576519343 104364058018116761460
+108787861479092510435 108314259245584185142
+104870518715355770532 117691391504351341685
+106925005603331131101 114948739867290323960
+113047102292798770205 102048265612444661933
+114549564725160709822 111310990991240556038
+110468193592032465149 115622466243011136115
+103112588675637065591 108574688020691152748
+116192724891839469024 110728349411116483031
+112852253337028739987 110649214929620497857
+109182513536739786206 109074857816744029470
+115706830138905259568 111091089527727420853
+100173452066172931939 109895887909967698705
+102216887206636463918 113116318008017777871
+100173452066172931939 100262595546646927505
+100871232248276491534 112364132652438722780
+107753428759636856492 102178700954286324866
+113920721823301219308 115360979797396777969
+101057616370673656059 110318982509514011806
+116491285067171323298 107117483540235115863
+100173452066172931939 107006059340452534782
+102088173699409175139 115017401467423642930
+108255750659110762991 101569655404865588155
+115047896996200277508 102705549361550492663
+106122462724662012890 114079920283986872783
+108817085747440374986 103716847685048716973
+101213524574984631953 112063946124358686266
+104612091113514802664 107519026002586025827
+100535338638690515335 116388668762198604003
+118245559326500322262 112844561713780016118
+102512310412972518336 115863474911002159675
+112276589013569458330 104364058018116761460
+102654570556058167176 113166718268343560861
+111538009015644508967 106189723444098348646
+106096957694385885466 108899222163640713555
+108082478497335384404 101849747879612982297
+103325969492772452485 112276589013569458330
+112820512550939559523 115360979797396777969
+114734885658057433270 114632854492678778509
+101263833299534001868 100537991844787325512
+112852253337028739987 104612091113514802664
+103207773865797007066 104450760987525660219
+103660543175586203250 109504122343901736603
+104612091113514802664 100523784851251213675
+111171416539633276676 115047896996200277508
+116374117927631468606 102088173699409175139
+116374117927631468606 109182513536739786206
+101832196121408756348 105662484616118909569
+115064258994656104138 102034052532213921839
+108817085747440374986 115478779964227301239
+104450760987525660219 114758749740576519343
+111666959095947698908 109174551750397653742
+117477042502591652021 107781761552417614958
+106026445270708973611 109581870574956225297
+115064258994656104138 107992936493665613654
+115064258994656104138 103100496883422151101
+102216887206636463918 112063946124358686266
+109504122343901736603 111538009015644508967
+118418436905562612953 101849747879612982297
+105207943512906810696 108314259245584185142
+102512310412972518336 103171849011748425097
+105822688186016123722 117693415411676715849
+102048265612444661933 108574688020691152748
+112364132652438722780 112820512550939559523
+111538009015644508967 109182513536739786206
+107519026002586025827 109074857816744029470
+103016521073558596116 109388259228280605303
+103691312271671214670 113612142759476883204
+105822688186016123722 112852253337028739987
+108434394145774737013 103100496883422151101
+106312895983244085949 109182513536739786206
+108894779805940659869 109780617142585395916
+100353346783543697435 110774757382682582490
+112364132652438722780 115360979797396777969
+107755092517418534815 116927391465690022495
+107753428759636856492 109813896768294978296
+117921656724816772352 108894779805940659869
+106026445270708973611 117421021456205115327
+104612091113514802664 107968787521028284191
+106695181236161584825 107753428759636856492
+106837636108890930395 101704103161442695877
+109388259228280605303 117477042502591652021
+104364058018116761460 113920721823301219308
+115622466243011136115 101569655404865588155
+112820512550939559523 113116318008017777871
+104364058018116761460 117377434815709898403
+113475277239647026452 118264184129842070900
+103016521073558596116 114549564725160709822
+117377434815709898403 100523784851251213675
+112016425853417877466 107133948555394893679
+115341960624782381062 103207773865797007066
+115478779964227301239 107033731246200681024
+112276589013569458330 101225750534150134109
+109182513536739786206 115883560681104199404
+107519026002586025827 101094440579835956866
+102034052532213921839 109304903996729396661
+102088173699409175139 101832196121408756348
+117550971892000156946 114979733565079457374
+109388259228280605303 110318982509514011806
+105207943512906810696 107753428759636856492
+115739378269261680935 109813896768294978296
+104618664838382110366 105822688186016123722
+108000051912603578599 100019606796298306813
+103207773865797007066 109174551750397653742
+102425976203575211068 102034052532213921839
+106224435901697064976 113210431006401244170
+117477042502591652021 106925005603331131101
+109247306373593947755 101832771958125915909
+114244914082871792125 111310990991240556038
+100535338638690515335 117377434815709898403
+111091089527727420853 104450760987525660219
+117421021456205115327 102178700954286324866
+114758749740576519343 107033731246200681024
+109009089551467495747 116621986644249676039
+111975545018506506119 100262595546646927505
+111310990991240556038 116388668762198604003
+114152150496380806218 103207773865797007066
+101126226710566561379 103207773865797007066
+101185406398932804414 107753428759636856492
+109182513536739786206 101094440579835956866
+112364132652438722780 103112588675637065591
+114856222286197208502 117921656724816772352
+115064258994656104138 111666959095947698908
+108082478497335384404 118207880179234484610
+103016521073558596116 102048265612444661933
+104364058018116761460 108082478497335384404
+109247306373593947755 104450760987525660219
+111975545018506506119 109170680659355634945
+116374117927631468606 112339769006469685593
+113164038788726940319 112063946124358686266
+113047102292798770205 109504122343901736603
+116207701819773193333 116374117927631468606
+101849747879612982297 118264184129842070900
+118245559326500322262 101261243957067319422
+108082478497335384404 109778238062128383421
+111422286077941361166 113047102292798770205
+116762461061414014956 112852253337028739987
+109504122343901736603 115047896996200277508
+100871232248276491534 104383523254857614001
+111091089527727420853 108176814619778619437
+111091089527727420853 106665185918564754695
+117377434815709898403 113116318008017777871
+107133948555394893679 112063946124358686266
+106026445270708973611 116374117927631468606
+116621986644249676039 118245559326500322262
+109809835379677001002 113210431006401244170
+108000051912603578599 109778238062128383421
+109182513536739786206 109813896768294978296
+101057616370673656059 114821161730370452301
+100397511207083609950 104612091113514802664
+107519026002586025827 102048265612444661933
+113801236315350503728 116374117927631468606
+100269980559891536109 103660543175586203250
+104364058018116761460 105705665708025552983
+100093902492789669774 117921656724816772352
+106665185918564754695 108082478497335384404
+112016425853417877466 103537420161725387429
+116621986644249676039 103475991020114516832
+103691312271671214670 114856222286197208502
+102034052532213921839 107133948555394893679
+106224435901697064976 114948739867290323960
+116773104421165750126 114549564725160709822
+116762461061414014956 114790574178411061829
+115622466243011136115 103112588675637065591
+111091089527727420853 116768967108862685383
+104450760987525660219 118320665823821681206
+102216887206636463918 118207880179234484610
+115047896996200277508 110318982509514011806
+106312895983244085949 113475277239647026452
+106026445270708973611 101213524574984631953
+115963821022986200770 105400903062771750089
+115739378269261680935 115739148151601573808
+104412682128547752131 109009089551467495747
+103207773865797007066 112063946124358686266
+103207773865797007066 109581870574956225297
+108255750659110762991 116388668762198604003
+117012574629989558450 104870518715355770532
+105705665708025552983 110727249496967897430
+104612091113514802664 101094440579835956866
+117691391504351341685 104412682128547752131
+116762461061414014956 103020619410065980303
+100871232248276491534 118017787526225833770
+117377434815709898403 112063946124358686266
+107033731246200681024 100523784851251213675
+103171849011748425097 113475277239647026452
+117421021456205115327 107133948555394893679
+115478779964227301239 106925005603331131101
+108082478497335384404 111538009015644508967
+117377434815709898403 103171849011748425097
+109581870574956225297 107781761552417614958
+114079920283986872783 114790574178411061829
+109581870574956225297 113210431006401244170
+106665185918564754695 106189723444098348646
+112364132652438722780 107234826207633309420
+117477042502591652021 115047896996200277508
+117683744929337064105 102425976203575211068
+100269980559891536109 111654284395316165338
+106925005603331131101 100019606796298306813
+117921656724816772352 101261243957067319422
+102654570556058167176 101832196121408756348
+117012574629989558450 117921656724816772352
+105662484616118909569 100397143564111754723
+100093902492789669774 111707854651652464890
+111091089527727420853 113247423264358423892
+100397511207083609950 113116318008017777871
+115047896996200277508 107117483540235115863
+103207773865797007066 116773104421165750126
+104987932455782713675 107753428759636856492
+109778238062128383421 109174551750397653742
+107753428759636856492 101057616370673656059
+103016521073558596116 105006381068870463173
+118418436905562612953 104450760987525660219
+110774757382682582490 111091089527727420853
+101263833299534001868 107308976571078250231
+106623900962110772648 111285782175840598932
+106122462724662012890 113920721823301219308
+111091089527727420853 106189723444098348646
+102512310412972518336 108176814619778619437
+110728349411116483031 110650241045258158224
+100093902492789669774 108894779805940659869
+118418436905562612953 116773104421165750126
+109304903996729396661 111538009015644508967
+105822688186016123722 108434394145774737013
+104364058018116761460 113116318008017777871
+102545157386069758709 100019606796298306813
+102545157386069758709 107753428759636856492
+108894779805940659869 115403621788538540544
+112276589013569458330 115064258994656104138
+111538009015644508967 101092351652012588236
+110728349411116483031 104383523254857614001
+112339769006469685593 101261243957067319422
+104612091113514802664 108176814619778619437
+106224435901697064976 114790574178411061829
+108894779805940659869 103207773865797007066
+115527632958457358109 113612142759476883204
+100353346783543697435 118086737936443306746
+114244914082871792125 116388668762198604003
+105207943512906810696 101849747879612982297
+117377434815709898403 112944532473909341307
+112276589013569458330 106345802537137414958
+108817085747440374986 102425976203575211068
+102216887206636463918 100173452066172931939
+113801236315350503728 118418436905562612953
+108817085747440374986 109504122343901736603
+107699711897781234810 104383523254857614001
+115478779964227301239 103112588675637065591
+109504122343901736603 108434394145774737013
+104450760987525660219 101213524574984631953
+113116318008017777871 107133948555394893679
+113351703941294630458 107781761552417614958
+116374117927631468606 111666959095947698908
+104450760987525660219 108574688020691152748
+106312895983244085949 113068441549452664746
+114244914082871792125 115360979797396777969
+115360979797396777969 115565811010545226083
+103207773865797007066 117693415411676715849
+101213524574984631953 111310990991240556038
+100397511207083609950 109182513536739786206
+100084737546039360199 109581870574956225297
+108574688020691152748 103716847685048716973
+112339769006469685593 102048265612444661933
+118357356982727825178 106312895983244085949
+111310990991240556038 105705665708025552983
+103020619410065980303 113166718268343560861
+104450760987525660219 103012564142649561853
+104987932455782713675 104450760987525660219
+105006381068870463173 113247423264358423892
+103100496883422151101 109074857816744029470
+115739378269261680935 117477042502591652021
+107699711897781234810 115739378269261680935
+110731951130561423918 110286587261352351537
+113116318008017777871 115565811010545226083
+104870518715355770532 118017787526225833770
+114549564725160709822 102178700954286324866
+106312895983244085949 101213524574984631953
+102034052532213921839 105705665708025552983
+107753428759636856492 108434394145774737013
+104612091113514802664 100269980559891536109
+101261243957067319422 107006059340452534782
+107006059340452534782 100523784851251213675
+109304903996729396661 105076678694475690385
+109196389259504239326 101569655404865588155
+117550971892000156946 106189723444098348646
+104450760987525660219 106122462724662012890
+117921656724816772352 104870518715355770532
+104450760987525660219 114790574178411061829
+105400369085832308485 100871232248276491534
+117377434815709898403 118320665823821681206
+105076678694475690385 115565811010545226083
+103691312271671214670 107117483540235115863
+107519026002586025827 100019606796298306813
+116548025566090395827 115047896996200277508
+100535338638690515335 111091089527727420853
+100535338638690515335 101261243957067319422
+104450760987525660219 109519167630731639094
+113116318008017777871 106100296973968329853
+100084737546039360199 101849747879612982297
+115739378269261680935 116773104421165750126
+103016521073558596116 102178700954286324866
+101092351652012588236 108000051912603578599
+116388668762198604003 113116318008017777871
+117377434815709898403 110209787594312878744
+112878918236054024365 116927391465690022495
+113920721823301219308 117691391504351341685
+100173452066172931939 107793717361981126032
+105705665708025552983 104191514233385365427
+114244914082871792125 108817085747440374986
+111337216646096594888 115706830138905259568
+100397511207083609950 102088173699409175139
+101126226710566561379 101261243957067319422
+105822688186016123722 107587075873786034394
+112016425853417877466 111654284395316165338
+111310990991240556038 118357356982727825178
+100093902492789669774 104191514233385365427
+108894779805940659869 104560124403688998123
+107519026002586025827 118264184129842070900
+103691312271671214670 108869261693909788407
+115706830138905259568 109895887909967698705
+117421021456205115327 115527632958457358109
+115360979797396777969 111666959095947698908
+103016521073558596116 112063946124358686266
+108817085747440374986 111310990991240556038
+116374117927631468606 104560124403688998123
+100093902492789669774 103691312271671214670
+102034052532213921839 101094440579835956866
+106096957694385885466 118017787526225833770
+104450760987525660219 107587075873786034394
+103100496883422151101 113247423264358423892
+116374117927631468606 103100496883422151101
+116374117927631468606 107992936493665613654
+101261243957067319422 109174551750397653742
+102216887206636463918 105076678694475690385
+103171849011748425097 117421021456205115327
+107699711897781234810 118017787526225833770
+116773104421165750126 111601729473858041964
+118086737936443306746 114758749740576519343
+106026445270708973611 108894779805940659869
+104412682128547752131 104191514233385365427
+111538009015644508967 104450760987525660219
+104450760987525660219 111666959095947698908
+107519026002586025827 111091089527727420853
+103016521073558596116 107896527414017792767
+105705665708025552983 113475277239647026452
+108817085747440374986 113210431006401244170
+100173452066172931939 111538009015644508967
+115706830138905259568 109182513536739786206
+111806715084467662398 101246601531247561585
+111310990991240556038 109809835379677001002
+114991987213662121376 105705665708025552983
+107090629815001792243 106100296973968329853
+100397511207083609950 109304903996729396661
+100093902492789669774 113612142759476883204
+105632941129656401917 103207773865797007066
+114991987213662121376 115706830138905259568
+106122462724662012890 107992936493665613654
+107129852879758941909 102088173699409175139
+106026445270708973611 116762461061414014956
+115360979797396777969 116768967108862685383
+101261243957067319422 106100296973968329853
+111261496925076985134 110731951130561423918
+111261496925076985134 100262595546646927505
+107753428759636856492 107587075873786034394
+101261243957067319422 104964811874969620954
+118418436905562612953 115963821022986200770
+100084737546039360199 118264184129842070900
+108817085747440374986 112852253337028739987
+113116318008017777871 115706830138905259568
+115047896996200277508 105376842241046675559
+101057616370673656059 107033731246200681024
+100397511207083609950 112844561713780016118
+100084737546039360199 103012564142649561853
+104612091113514802664 115963821022986200770
+108817085747440374986 102034052532213921839
+103207773865797007066 118177473010760322916
+105076678694475690385 115478779964227301239
+101246601531247561585 103207773865797007066
+104612091113514802664 109182513536739786206
diff --git a/scripts/lang_main_config.toml b/scripts/lang_main_config.toml
index 9a1fa04..a0b65d9 100644
--- a/scripts/lang_main_config.toml
+++ b/scripts/lang_main_config.toml
@@ -10,14 +10,14 @@ dataset = '../data/02_202307/Export4.csv'
#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv'
[control]
-preprocessing = true
-preprocessing_skip = true
-token_analysis = false
-token_analysis_skip = true
+preprocessing = false
+preprocessing_skip = false
+token_analysis = true
+token_analysis_skip = false
graph_postprocessing = false
graph_postprocessing_skip = true
-time_analysis = true
-time_analysis_skip = false
+time_analysis = false
+time_analysis_skip = true
#[export_filenames]
#filename_cossim_filter_candidates = 'CosSim-FilterCandidates'
diff --git a/tests/pre_test_examples.py b/scripts/pre_test_examples.py
similarity index 61%
rename from tests/pre_test_examples.py
rename to scripts/pre_test_examples.py
index 7b3b755..5416035 100644
--- a/tests/pre_test_examples.py
+++ b/scripts/pre_test_examples.py
@@ -1,9 +1,15 @@
+from pathlib import Path
+
from lang_main.constants import (
INPUT_PATH_FOLDER,
PATH_TO_DATASET,
SAVE_PATH_FOLDER,
+ input_path_conf,
)
print(SAVE_PATH_FOLDER, '\n')
print(INPUT_PATH_FOLDER, '\n')
print(PATH_TO_DATASET, '\n')
+
+print('------------------------')
+print(Path.cwd(), '\n', input_path_conf)
diff --git a/src/lang_main/__init__ copy.py b/src/lang_main/__init__ copy.py
new file mode 100644
index 0000000..62eb725
--- /dev/null
+++ b/src/lang_main/__init__ copy.py
@@ -0,0 +1,51 @@
+import inspect
+import logging
+import shutil
+import sys
+from pathlib import Path
+from time import gmtime
+from typing import Any, Final
+import warnings
+
+from lang_main.io import load_toml_config
+
+__all__ = [
+ 'CALLER_PATH',
+]
+
+logging.Formatter.converter = gmtime
+LOG_FMT: Final[str] = '%(asctime)s | %(module)s:%(levelname)s | %(message)s'
+LOG_DATE_FMT: Final[str] = '%Y-%m-%d %H:%M:%S +0000'
+logging.basicConfig(
+ stream=sys.stdout,
+ format=LOG_FMT,
+ datefmt=LOG_DATE_FMT,
+)
+
+CONFIG_FILENAME: Final[str] = 'lang_main_config.toml'
+USE_INTERNAL_CONFIG: Final[bool] = True
+pkg_dir = Path(__file__).parent
+cfg_path_internal = pkg_dir / CONFIG_FILENAME
+caller_file = Path(inspect.stack()[-1].filename)
+CALLER_PATH: Final[Path] = caller_file.parent.resolve()
+
+# load config data: internal/external
+if USE_INTERNAL_CONFIG:
+ loaded_cfg = load_toml_config(path_to_toml=cfg_path_internal)
+else:
+ cfg_path_external = CALLER_PATH / CONFIG_FILENAME
+ if not caller_file.exists():
+ warnings.warn('Caller file could not be correctly retrieved.')
+ if not cfg_path_external.exists():
+ shutil.copy(cfg_path_internal, cfg_path_external)
+ sys.exit(
+ (
+ 'No config file was found. A new one with default values was created '
+ 'in the execution path. Please fill in the necessary values and '
+ 'restart the programm.'
+ )
+ )
+ # raise NotImplementedError("External config data not implemented yet.")
+ loaded_cfg = load_toml_config(path_to_toml=cfg_path_external)
+
+CONFIG: Final[dict[str, Any]] = loaded_cfg.copy()
diff --git a/src/lang_main/__init__.py b/src/lang_main/__init__.py
index adf3a67..cf26f07 100644
--- a/src/lang_main/__init__.py
+++ b/src/lang_main/__init__.py
@@ -1,4 +1,3 @@
-import inspect
import logging
import shutil
import sys
@@ -8,10 +7,6 @@ from typing import Any, Final
from lang_main.io import load_toml_config
-__all__ = [
- 'CALLER_PATH',
-]
-
logging.Formatter.converter = gmtime
LOG_FMT: Final[str] = '%(asctime)s | %(module)s:%(levelname)s | %(message)s'
LOG_DATE_FMT: Final[str] = '%Y-%m-%d %H:%M:%S +0000'
@@ -24,17 +19,15 @@ logging.basicConfig(
CONFIG_FILENAME: Final[str] = 'lang_main_config.toml'
USE_INTERNAL_CONFIG: Final[bool] = False
pkg_dir = Path(__file__).parent
-cfg_path_internal = pkg_dir / CONFIG_FILENAME
-caller_file = Path(inspect.stack()[-1].filename)
-CALLER_PATH: Final[Path] = caller_file.parent.resolve()
+cfg_path_internal = (pkg_dir / CONFIG_FILENAME).resolve()
+# caller_file = Path(inspect.stack()[-1].filename)
+# CALLER_PATH: Final[Path] = caller_file.parent.resolve()
# load config data: internal/external
if USE_INTERNAL_CONFIG:
loaded_cfg = load_toml_config(path_to_toml=cfg_path_internal)
else:
- cfg_path_external = CALLER_PATH / CONFIG_FILENAME
- if not caller_file.exists():
- raise FileNotFoundError('Caller file could not be correctly retrieved.')
+ cfg_path_external = (Path.cwd() / CONFIG_FILENAME).resolve()
if not cfg_path_external.exists():
shutil.copy(cfg_path_internal, cfg_path_external)
sys.exit(
diff --git a/src/lang_main/analysis/graphs.py b/src/lang_main/analysis/graphs.py
index 562594f..af61496 100644
--- a/src/lang_main/analysis/graphs.py
+++ b/src/lang_main/analysis/graphs.py
@@ -3,7 +3,7 @@ import sys
import typing
from collections.abc import Hashable, Iterable
from pathlib import Path
-from typing import Any, Final, Literal, Self, overload
+from typing import Any, Final, Literal, Self, cast, overload
import networkx as nx
import numpy as np
@@ -13,6 +13,12 @@ from pandas import DataFrame
from lang_main.io import load_pickle, save_pickle
from lang_main.loggers import logger_graphs as logger
+from lang_main.types import (
+ CytoscapeData,
+ EdgeWeight,
+ NodeTitle,
+ WeightData,
+)
# TODO change logging behaviour, add logging to file
LOGGING_DEFAULT: Final[bool] = False
@@ -67,7 +73,7 @@ def update_graph(
batch: Iterable[tuple[Hashable, Hashable]] | None = None,
parent: Hashable | None = None,
child: Hashable | None = None,
- weight_connection: int = 1,
+ weight_connection: int | None = None,
) -> None:
# !! not necessary to check for existence of nodes
# !! feature already implemented in NetworkX ``add_edge``
@@ -78,6 +84,8 @@ def update_graph(
if child not in graph:
graph.add_node(child)
"""
+ if weight_connection is None:
+ weight_connection = 1
# check if edge not in Graph
if batch is not None:
graph.add_edges_from(batch, weight=weight_connection)
@@ -116,6 +124,51 @@ def convert_graph_to_undirected(
return graph_undir
+def convert_graph_to_cytoscape(
+ graph: Graph | DiGraph,
+) -> tuple[list[CytoscapeData], WeightData]:
+ cyto_data: list[CytoscapeData] = []
+ # iterate over nodes
+ nodes = cast(Iterable[NodeTitle], graph.nodes)
+ for i, node in enumerate(nodes):
+ node_data: CytoscapeData = {
+ 'data': {
+ 'id': node,
+ 'label': node,
+ }
+ }
+ cyto_data.append(node_data)
+ # iterate over edges
+ weights: set[int] = set()
+
+ edges = cast(
+ Iterable[
+ tuple[
+ NodeTitle,
+ NodeTitle,
+ EdgeWeight,
+ ]
+ ],
+ graph.edges.data('weight', default=1), # type: ignore
+ )
+ for i, (source, target, weight) in enumerate(edges):
+ weights.add(weight)
+ edge_data: CytoscapeData = {
+ 'data': {
+ 'source': source,
+ 'target': target,
+ 'weight': weight,
+ }
+ }
+ cyto_data.append(edge_data)
+
+ min_weight = min(weights)
+ max_weight = max(weights)
+ weight_metadata: WeightData = {'min': min_weight, 'max': max_weight}
+
+ return cyto_data, weight_metadata
+
+
class TokenGraph(DiGraph):
def __init__(
self,
@@ -200,7 +253,9 @@ class TokenGraph(DiGraph):
@overload
def to_undirected(
- self, inplace: bool = ..., logging: bool | None = ...
+ self,
+ inplace: bool = ...,
+ logging: bool | None = ...,
) -> Graph | None: ...
def to_undirected(
diff --git a/src/lang_main/analysis/preprocessing.py b/src/lang_main/analysis/preprocessing.py
index f290171..65ce4dc 100644
--- a/src/lang_main/analysis/preprocessing.py
+++ b/src/lang_main/analysis/preprocessing.py
@@ -214,20 +214,23 @@ def analyse_feature(
unique_feature_entries = feature_entries.unique()
# prepare result DataFrame
- cols = ['entry', 'len', 'num_occur', 'assoc_obj_ids', 'num_assoc_obj_ids']
+ cols = ['batched_idxs', 'entry', 'len', 'num_occur', 'assoc_obj_ids', 'num_assoc_obj_ids']
result_df = pd.DataFrame(columns=cols)
for entry in tqdm(unique_feature_entries, mininterval=1.0):
len_entry = len(entry)
filt = data[target_feature] == entry
temp = data[filt]
+ batched_idxs = temp.index.to_numpy()
assoc_obj_ids = temp['ObjektID'].unique()
assoc_obj_ids = np.sort(assoc_obj_ids, kind='stable')
num_assoc_obj_ids = len(assoc_obj_ids)
num_dupl = filt.sum()
conc_df = pd.DataFrame(
- data=[[entry, len_entry, num_dupl, assoc_obj_ids, num_assoc_obj_ids]],
+ data=[
+ [batched_idxs, entry, len_entry, num_dupl, assoc_obj_ids, num_assoc_obj_ids]
+ ],
columns=cols,
)
diff --git a/src/lang_main/analysis/shared.py b/src/lang_main/analysis/shared.py
index 277675b..c177acd 100644
--- a/src/lang_main/analysis/shared.py
+++ b/src/lang_main/analysis/shared.py
@@ -10,7 +10,6 @@ from networkx import Graph
from pandas import Series
from sentence_transformers import SentenceTransformer
from torch import Tensor
-from tqdm.auto import tqdm
from lang_main.analysis.graphs import get_graph_metadata, update_graph
from lang_main.types import PandasIndex
@@ -40,9 +39,8 @@ def candidates_by_index(
Yields
------
- Iterator[tuple[ObjectID, tuple[PandasIndex, PandasIndex]]]
- ObjectID and tuple of index pairs which meet the cosine
- similarity threshold
+ Iterator[tuple[PandasIndex, PandasIndex]]
+ tuple of index pairs which meet the cosine similarity threshold
"""
# embeddings
batch = cast(list[str], data_model_input.to_list())
diff --git a/src/lang_main/analysis/tokens.py b/src/lang_main/analysis/tokens.py
index 7adf9c9..705effb 100644
--- a/src/lang_main/analysis/tokens.py
+++ b/src/lang_main/analysis/tokens.py
@@ -1,11 +1,11 @@
import re
from collections.abc import Iterator
from itertools import combinations
-from typing import cast
+from typing import Literal, cast, overload
from dateutil.parser import parse
from pandas import DataFrame
-from spacy.lang.de import German as GermanSpacyModel
+from spacy.language import Language as GermanSpacyModel
from spacy.tokens.doc import Doc as SpacyDoc
from spacy.tokens.token import Token as SpacyToken
from tqdm.auto import tqdm
@@ -15,6 +15,7 @@ from lang_main.analysis.graphs import (
update_graph,
)
from lang_main.loggers import logger_token_analysis as logger
+from lang_main.types import PandasIndex
# ** POS
# POS_OF_INTEREST: frozenset[str] = frozenset(['NOUN', 'PROPN', 'ADJ', 'VERB', 'AUX'])
@@ -104,7 +105,7 @@ def obtain_relevant_descendants(
def add_doc_info_to_graph(
graph: TokenGraph,
doc: SpacyDoc,
- weight: int,
+ weight: int | None,
) -> None:
# iterate over sentences
for sent in doc.sents:
@@ -142,9 +143,121 @@ def add_doc_info_to_graph(
)
+@overload
def build_token_graph(
data: DataFrame,
model: GermanSpacyModel,
+ *,
+ target_feature: str = ...,
+ weights_feature: str | None = ...,
+ batch_idx_feature: str = ...,
+ build_map: Literal[False],
+ batch_size_model: int = ...,
+) -> tuple[TokenGraph, None]: ...
+
+
+@overload
+def build_token_graph(
+ data: DataFrame,
+ model: GermanSpacyModel,
+ *,
+ target_feature: str = ...,
+ weights_feature: str | None = ...,
+ batch_idx_feature: str = ...,
+ build_map: Literal[True] = ...,
+ batch_size_model: int = ...,
+) -> tuple[TokenGraph, dict[PandasIndex, SpacyDoc]]: ...
+
+
+def build_token_graph(
+ data: DataFrame,
+ model: GermanSpacyModel,
+ *,
+ target_feature: str = 'entry',
+ weights_feature: str | None = None,
+ batch_idx_feature: str = 'batched_idxs',
+ build_map: bool = True,
+ batch_size_model: int = 50,
+) -> tuple[TokenGraph, dict[PandasIndex, SpacyDoc] | None]:
+ graph = TokenGraph()
+ model_input = cast(tuple[str], tuple(data[target_feature].to_list()))
+ if weights_feature is not None:
+ weights = cast(tuple[int], tuple(data[weights_feature].to_list()))
+ else:
+ weights = None
+
+ docs_mapping: dict[PandasIndex, SpacyDoc] | None
+ if build_map:
+ indices = cast(tuple[list[PandasIndex]], tuple(data[batch_idx_feature].to_list()))
+ docs_mapping = {}
+ else:
+ indices = None
+ docs_mapping = None
+
+ index: int = 0
+
+ for doc in tqdm(
+ model.pipe(model_input, batch_size=batch_size_model), total=len(model_input)
+ ):
+ if weights is not None:
+ weight = weights[index]
+ else:
+ weight = None
+ add_doc_info_to_graph(
+ graph=graph,
+ doc=doc,
+ weight=weight,
+ )
+ # build map if option chosen
+ if indices is not None and docs_mapping is not None:
+ corresponding_indices = indices[index]
+ for idx in corresponding_indices:
+ docs_mapping[idx] = doc
+
+ index += 1
+
+ # metadata
+ graph.update_metadata()
+ # convert to undirected
+ graph.to_undirected()
+
+ return graph, docs_mapping
+
+
+def build_token_graph_simple(
+ data: DataFrame,
+ model: GermanSpacyModel,
+) -> tuple[TokenGraph, dict[PandasIndex, SpacyDoc]]:
+ graph = TokenGraph()
+ model_input = cast(tuple[str], tuple(data['entry'].to_list()))
+ weights = cast(tuple[int], tuple(data['num_occur'].to_list()))
+ indices = cast(tuple[list[PandasIndex]], tuple(data['batched_idxs'].to_list()))
+ index: int = 0
+ docs_mapping: dict[PandasIndex, SpacyDoc] = {}
+
+ for doc in tqdm(model.pipe(model_input, batch_size=50), total=len(model_input)):
+ add_doc_info_to_graph(
+ graph=graph,
+ doc=doc,
+ weight=weights[index],
+ )
+ corresponding_indices = indices[index]
+ for idx in corresponding_indices:
+ docs_mapping[idx] = doc
+
+ index += 1
+
+ # metadata
+ graph.update_metadata()
+ # convert to undirected
+ graph.to_undirected()
+
+ return graph, docs_mapping
+
+
+def build_token_graph_old(
+ data: DataFrame,
+ model: GermanSpacyModel,
) -> tuple[TokenGraph]:
# empty NetworkX directed graph
# graph = nx.DiGraph()
diff --git a/src/lang_main/constants.py b/src/lang_main/constants.py
index f70b329..62e3b0d 100644
--- a/src/lang_main/constants.py
+++ b/src/lang_main/constants.py
@@ -1,15 +1,28 @@
from pathlib import Path
from typing import Final
-from lang_main import CALLER_PATH, CONFIG
+import spacy
+from sentence_transformers import SentenceTransformer
+from spacy.language import Language as GermanSpacyModel
+
+from lang_main import CONFIG
+from lang_main.types import STFRDeviceTypes
# ** paths
-input_path_conf = Path(CONFIG['paths']['inputs'])
-INPUT_PATH_FOLDER: Final[Path] = (CALLER_PATH / input_path_conf).resolve()
-save_path_conf = Path(CONFIG['paths']['results'])
-SAVE_PATH_FOLDER: Final[Path] = (CALLER_PATH / save_path_conf).resolve()
-path_dataset_conf = Path(CONFIG['paths']['dataset'])
-PATH_TO_DATASET: Final[Path] = (CALLER_PATH / path_dataset_conf).resolve()
+input_path_conf = Path.cwd() / Path(CONFIG['paths']['inputs'])
+INPUT_PATH_FOLDER: Final[Path] = input_path_conf.resolve()
+# INPUT_PATH_FOLDER: Final[Path] = (CALLER_PATH / input_path_conf).resolve()
+# TODO reactivate later
+# if not INPUT_PATH_FOLDER.exists():
+# raise FileNotFoundError(f'Input path >>{INPUT_PATH_FOLDER}<< does not exist.')
+save_path_conf = Path.cwd() / Path(CONFIG['paths']['results'])
+SAVE_PATH_FOLDER: Final[Path] = save_path_conf.resolve()
+# SAVE_PATH_FOLDER: Final[Path] = (CALLER_PATH / save_path_conf).resolve()
+path_dataset_conf = Path.cwd() / Path(CONFIG['paths']['dataset'])
+PATH_TO_DATASET: Final[Path] = path_dataset_conf.resolve()
+# PATH_TO_DATASET: Final[Path] = (CALLER_PATH / path_dataset_conf).resolve()
+# if not PATH_TO_DATASET.exists():
+# raise FileNotFoundError(f'Dataset path >>{PATH_TO_DATASET}<< does not exist.')
# ** control
DO_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing']
SKIP_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing_skip']
@@ -19,8 +32,18 @@ DO_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing']
SKIP_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing_skip']
DO_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis']
SKIP_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis_skip']
-# ** export
+# ** models
+# ** sentence_transformers
+STFR_DEVICE: Final[STFRDeviceTypes] = STFRDeviceTypes.CPU
+STFR_MODEL: Final[SentenceTransformer] = SentenceTransformer(
+ 'sentence-transformers/all-mpnet-base-v2', device=STFR_DEVICE
+)
+
+# ** spacy
+SPCY_MODEL: Final[GermanSpacyModel] = spacy.load('de_dep_news_trf')
+
+# ** export
# ** preprocessing
FILENAME_COSSIM_FILTER_CANDIDATES: Final[str] = CONFIG['preprocess'][
'filename_cossim_filter_candidates'
diff --git a/src/lang_main/pipelines/predefined.py b/src/lang_main/pipelines/predefined.py
index ea168dc..b40a456 100644
--- a/src/lang_main/pipelines/predefined.py
+++ b/src/lang_main/pipelines/predefined.py
@@ -1,6 +1,3 @@
-import spacy
-from sentence_transformers import SentenceTransformer
-
from lang_main.analysis.preprocessing import (
analyse_feature,
clean_string_slim,
@@ -24,6 +21,8 @@ from lang_main.constants import (
FEATURE_NAME_OBJ_ID,
MODEL_INPUT_FEATURES,
SAVE_PATH_FOLDER,
+ SPCY_MODEL,
+ STFR_MODEL,
THRESHOLD_NUM_ACTIVITIES,
THRESHOLD_SIMILARITY,
THRESHOLD_TIMELINE_SIMILARITY,
@@ -49,6 +48,7 @@ pipe_target_feat.add(
'target_feature': 'VorgangsBeschreibung',
'cleansing_func': clean_string_slim,
},
+ save_result=True,
)
pipe_target_feat.add(
analyse_feature,
@@ -64,8 +64,7 @@ pipe_target_feat.add(
# ?? still needed?
# using similarity between entries to catch duplicates with typo or similar content
# pipe_embds = BasePipeline(name='Embedding1', working_dir=SAVE_PATH_FOLDER)
-model_spacy = spacy.load('de_dep_news_trf')
-model_stfr = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
+
# pipe_embds.add(build_cosSim_matrix, {'model': model_stfr}, save_result=True)
# pipe_embds.add(
@@ -88,7 +87,7 @@ pipe_merge = BasePipeline(name='Merge_Duplicates', working_dir=SAVE_PATH_FOLDER)
pipe_merge.add(
merge_similarity_dupl,
{
- 'model': model_stfr,
+ 'model': STFR_MODEL,
'cos_sim_threshold': THRESHOLD_SIMILARITY,
},
save_result=True,
@@ -99,7 +98,12 @@ pipe_token_analysis = BasePipeline(name='Token_Analysis', working_dir=SAVE_PATH_
pipe_token_analysis.add(
build_token_graph,
{
- 'model': model_spacy,
+ 'model': SPCY_MODEL,
+ 'target_feature': 'entry',
+ 'weights_feature': 'num_occur',
+ 'batch_idx_feature': 'batched_idxs',
+ 'build_map': True,
+ 'batch_size_model': 50,
},
save_result=True,
)
@@ -135,7 +139,7 @@ pipe_timeline.add(
pipe_timeline.add(
get_timeline_candidates,
{
- 'model': model_stfr,
+ 'model': STFR_MODEL,
'cos_sim_threshold': THRESHOLD_TIMELINE_SIMILARITY,
'feature_obj_id': FEATURE_NAME_OBJ_ID,
'model_input_feature': 'nlp_model_input',
diff --git a/src/lang_main/types.py b/src/lang_main/types.py
index e9f1c77..cafe29e 100644
--- a/src/lang_main/types.py
+++ b/src/lang_main/types.py
@@ -1,11 +1,12 @@
import enum
-from typing import TypeAlias
+from typing import Required, TypeAlias, TypedDict
import numpy as np
from spacy.tokens.doc import Doc as SpacyDoc
from torch import Tensor
+# ** logging
class LoggingLevels(enum.IntEnum):
DEBUG = 10
INFO = 20
@@ -14,8 +15,50 @@ class LoggingLevels(enum.IntEnum):
CRITICAL = 50
+# ** devices
+class STFRDeviceTypes(enum.StrEnum):
+ CPU = 'cpu'
+ GPU = 'cuda'
+
+
+# ** datatsets
PandasIndex: TypeAlias = int | np.int64
ObjectID: TypeAlias = int
Embedding: TypeAlias = SpacyDoc | Tensor
+# ** graphs
+NodeTitle: TypeAlias = str
+EdgeWeight: TypeAlias = int
+
+
+class NodeData(TypedDict):
+ id: NodeTitle
+ label: NodeTitle
+
+
+class EdgeData(TypedDict):
+ source: NodeTitle
+ target: NodeTitle
+ weight: EdgeWeight
+
+
+class WeightData(TypedDict):
+ min: EdgeWeight
+ max: EdgeWeight
+
+
+class CytoscapePosition(TypedDict):
+ x: int
+ y: int
+
+
+class CytoscapeData(TypedDict, total=False):
+ data: Required[EdgeData | NodeData]
+ position: CytoscapePosition
+ grabbable: bool
+ locked: bool
+ classes: str
+
+
+# ** timeline
TimelineCandidates: TypeAlias = dict[ObjectID, tuple[tuple[PandasIndex, ...], ...]]
diff --git a/test-notebooks/Analyse_5-1_Timeline.ipynb b/test-notebooks/Analyse_5-1_Timeline.ipynb
index 240ec21..77f292a 100644
--- a/test-notebooks/Analyse_5-1_Timeline.ipynb
+++ b/test-notebooks/Analyse_5-1_Timeline.ipynb
@@ -3087,7 +3087,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.8"
+ "version": "3.11.9"
}
},
"nbformat": 4,
diff --git a/test-notebooks/Preprocess_Pipeline.ipynb b/test-notebooks/Preprocess_Pipeline.ipynb
index c6c6626..2d87570 100644
--- a/test-notebooks/Preprocess_Pipeline.ipynb
+++ b/test-notebooks/Preprocess_Pipeline.ipynb
@@ -1077,7 +1077,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.8"
+ "version": "3.11.9"
}
},
"nbformat": 4,
diff --git a/test-notebooks/Token_Analysis.ipynb b/test-notebooks/Token_Analysis.ipynb
index 62a6fc2..0a663a5 100644
--- a/test-notebooks/Token_Analysis.ipynb
+++ b/test-notebooks/Token_Analysis.ipynb
@@ -2267,7 +2267,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.8"
+ "version": "3.11.9"
}
},
"nbformat": 4,
diff --git a/test-notebooks/display_results.ipynb b/test-notebooks/display_results.ipynb
index ce71331..0bdd751 100644
--- a/test-notebooks/display_results.ipynb
+++ b/test-notebooks/display_results.ipynb
@@ -2,19 +2,38 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 20,
- "id": "3760b040-985c-46ec-ba77-13f0f7a52c83",
+ "execution_count": 1,
+ "id": "9d7dae43-e799-469c-afe2-50dba45eeaa7",
"metadata": {},
"outputs": [],
"source": [
- "from pathlib import Path\n",
- "\n",
- "from lang_main import load_pickle"
+ "%load_ext autoreload\n",
+ "%autoreload 2"
]
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 2,
+ "id": "3760b040-985c-46ec-ba77-13f0f7a52c83",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-06-05 11:24:20 +0000 | io:INFO | Loaded TOML config file successfully.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pathlib import Path\n",
+ "from lang_main.analysis.graphs import convert_graph_to_cytoscape\n",
+ "from lang_main.io import load_pickle"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
"id": "97487448-82c8-4b3d-8a1a-ccccaaac8d86",
"metadata": {},
"outputs": [],
@@ -27,7 +46,7 @@
},
{
"cell_type": "code",
- "execution_count": 87,
+ "execution_count": 4,
"id": "598f4d99-9d35-49c9-8c5d-113d4c80cecf",
"metadata": {},
"outputs": [
@@ -35,11 +54,15 @@
"data": {
"text/plain": [
"(WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-TargetFeature_Step-3_remove_NA.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-TargetFeature_Step-4_entry_wise_cleansing.pkl'),\n",
" WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-TargetFeature_Step-5_analyse_feature.pkl'),\n",
- " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-Merge_Duplicates_Step-1_merge_similarity_dupl.pkl'))"
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-Merge_Duplicates_Step-1_merge_similarity_dupl.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Pipe-Token_Analysis_Step-1_build_token_graph.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/TokenGraph.graphml'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/Token_Analysis-TokenGraph.pickle'))"
]
},
- "execution_count": 87,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -51,28 +74,350 @@
},
{
"cell_type": "code",
- "execution_count": 88,
+ "execution_count": 5,
"id": "55ad4af3-87cd-4189-9309-171aba4e04a6",
"metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:441: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n",
+ " _torch_pytree._register_pytree_node(\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-06-05 11:24:36 +0000 | io:INFO | Loaded file successfully.\n"
+ ]
+ }
+ ],
+ "source": [
+ "file = files[-3]\n",
+ "ret = load_pickle(file)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "1757d83e-2be9-4fae-9ee2-90bc1ce33de4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tk_graph = ret[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "dd5d9785-9aab-4552-b791-f201e69b04e8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "TokenGraph(name: TokenGraph, number of nodes: 6028, number of edges: 17950)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tk_graph"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5b262bdc-1bb8-473d-aab4-0073c94428cc",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "a8b2b53c-d7e4-428b-bb12-0d746c68af4f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cyto_data = convert_graph_to_cytoscape(tk_graph, batch_size=10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "b8b10f74-00ac-4f22-b325-46013db96cb2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[{'data': {'id': 'Wartungstätigkeit', 'label': 'Wartungstätigkeit'}},\n",
+ " {'data': {'id': 'Vorgabe', 'label': 'Vorgabe'}},\n",
+ " {'data': {'id': 'Maschinenhersteller', 'label': 'Maschinenhersteller'}},\n",
+ " {'data': {'id': 'Sichtkontrolle', 'label': 'Sichtkontrolle'}},\n",
+ " {'data': {'id': 'Reinigung', 'label': 'Reinigung'}},\n",
+ " {'data': {'id': 'Überprüfung', 'label': 'Überprüfung'}},\n",
+ " {'data': {'id': 'Ölabscheider', 'label': 'Ölabscheider'}},\n",
+ " {'data': {'id': 'Kontrolle', 'label': 'Kontrolle'}},\n",
+ " {'data': {'id': 'C-Anlage', 'label': 'C-Anlage'}},\n",
+ " {'data': {'id': 'Stabbreithalter', 'label': 'Stabbreithalter'}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Vorgabe',\n",
+ " 'weight': 92690}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Maschinenhersteller',\n",
+ " 'weight': 92690}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Maschinenbediener',\n",
+ " 'weight': 242}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Laserabteilung',\n",
+ " 'weight': 242}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Arbeitsplan',\n",
+ " 'weight': 244}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'abarbeiten',\n",
+ " 'weight': 242}},\n",
+ " {'data': {'source': 'Wartungstätigkeit',\n",
+ " 'target': 'Webmaschinenkontrollliste',\n",
+ " 'weight': 2}},\n",
+ " {'data': {'source': 'Wartungstätigkeit', 'target': 'sehen', 'weight': 2}},\n",
+ " {'data': {'source': 'Vorgabe',\n",
+ " 'target': 'Maschinenhersteller',\n",
+ " 'weight': 92690}},\n",
+ " {'data': {'source': 'Vorgabe', 'target': 'Wartungsplan', 'weight': 2032}}]"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cyto_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "id": "9b7c87ba-2976-4431-b00d-cef08b580914",
+ "metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "shared:INFO | 2024-05-29 12:49:47 +0000 | Loaded file successfully.\n"
+ "Wartungstätigkeit\n",
+ "Vorgabe\n",
+ "Maschinenhersteller\n",
+ "Sichtkontrolle\n",
+ "Reinigung\n",
+ "Überprüfung\n",
+ "Ölabscheider\n",
+ "Kontrolle\n",
+ "C-Anlage\n",
+ "Stabbreithalter\n"
]
}
],
"source": [
- "file = files[-1]\n",
- "ret = load_pickle(file)"
+ "for node in list(tk_graph.nodes)[:10]:\n",
+ " print(node)"
]
},
{
"cell_type": "code",
- "execution_count": 89,
+ "execution_count": 67,
+ "id": "eb62fe03-3e57-4fa0-a23e-7229d92588ab",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wartungstätigkeit\n",
+ "Vorgabe\n",
+ "Maschinenhersteller\n",
+ "Sichtkontrolle\n",
+ "Reinigung\n",
+ "Überprüfung\n",
+ "Ölabscheider\n",
+ "Kontrolle\n",
+ "C-Anlage\n",
+ "Stabbreithalter\n",
+ "Scharniere\n"
+ ]
+ }
+ ],
+ "source": [
+ "# target: data fields\n",
+ "elements = []\n",
+ "\n",
+ "for i, node in enumerate(tk_graph):\n",
+ " print(node)\n",
+ " if i == 10:\n",
+ " break\n",
+ " node_info = {\n",
+ " 'data': {\n",
+ " 'id': node,\n",
+ " 'label': node,\n",
+ " }\n",
+ " }\n",
+ " elements.append(node_info)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "id": "562879d0-446d-4fdb-a27e-51c8ce91c4d7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[{'data': {'id': 'Wartungstätigkeit', 'label': 'Wartungstätigkeit'}},\n",
+ " {'data': {'id': 'Vorgabe', 'label': 'Vorgabe'}},\n",
+ " {'data': {'id': 'Maschinenhersteller', 'label': 'Maschinenhersteller'}},\n",
+ " {'data': {'id': 'Sichtkontrolle', 'label': 'Sichtkontrolle'}},\n",
+ " {'data': {'id': 'Reinigung', 'label': 'Reinigung'}},\n",
+ " {'data': {'id': 'Überprüfung', 'label': 'Überprüfung'}},\n",
+ " {'data': {'id': 'Ölabscheider', 'label': 'Ölabscheider'}},\n",
+ " {'data': {'id': 'Kontrolle', 'label': 'Kontrolle'}},\n",
+ " {'data': {'id': 'C-Anlage', 'label': 'C-Anlage'}},\n",
+ " {'data': {'id': 'Stabbreithalter', 'label': 'Stabbreithalter'}}]"
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "elements"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "id": "07d3be40-063a-47d4-b0fc-2e1b2da058a0",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "edges = []\n",
+ "\n",
+ "for i, (source, target, weight) in enumerate(tk_graph.edges.data('weight', default=1)):\n",
+ " if i == 10:\n",
+ " break\n",
+ " edge_info = {\n",
+ " 'data': {\n",
+ " 'source': source,\n",
+ " 'target': target,\n",
+ " 'weight': weight,\n",
+ " }\n",
+ " }\n",
+ " edges.append(edge_info)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "id": "c48bd728-7776-43f5-be42-b5374c678c11",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'data': {'source': 'Vorgabe', 'target': 'Wartungsplan', 'weight': 2032}}"
+ ]
+ },
+ "execution_count": 72,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "edge_info"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f46c2f9a-8c8e-4d0f-8ae5-baded18dcfdd",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "81b710bb-410a-46c1-9541-0a394b400265",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "id": "5c0e04a1-8351-4b1a-9027-ca00901a05bc",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'weight': 92690}"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tk_graph['Wartungstätigkeit']['Vorgabe']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "5085d797-0783-4329-bcb0-9f966d2768dc",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-06-05 08:16:14 +0000 | graphs:INFO | Successfully saved graph as GraphML file under A:\\Arbeitsaufgaben\\lang-main\\test-notebooks\\TokenGraph.graphml.\n"
+ ]
+ }
+ ],
+ "source": [
+ "tk_graph.save_graph(Path.cwd())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
"id": "540f4720-a2bf-4171-8db5-8e6993d38c13",
"metadata": {},
+ "outputs": [],
+ "source": [
+ "batched = ret[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "2b145475-a9e4-4c56-b40c-0ca725dd886f",
+ "metadata": {},
"outputs": [
{
"data": {
@@ -95,6 +440,7 @@
" \n",
" \n",
" \n",
+ " batched_idxs \n",
" entry \n",
" len \n",
" num_occur \n",
@@ -105,6 +451,7 @@
"
4545 rows × 5 columns
\n", + "4545 rows × 6 columns
\n", "" ], "text/plain": [ - " entry ... num_assoc_obj_ids\n", - "162 Tägliche Wartungstätigkeiten nach Vorgabe des ... ... 206\n", - "33 Wöchentliche Sichtkontrolle / Reinigung ... 74\n", - "131 Tägliche Überprüfung der Ölabscheider ... 4\n", - "160 Wöchentliche Kontrolle der C-Anlagen ... 11\n", - "140 Halbjährliche Kontrolle des Stabbreithalters ... 166\n", - "... ... ... ...\n", - "2559 Fehler 9723 Leistungsversorgung Antrieb defekt ... 1\n", - "2558 T-Warp-Let-Off1 schleppfehler ... 1\n", - "2557 Fahrräder wurden gewartet und gereinigt. ... 1\n", - "2556 Bohrlöcher an Gebots- und Verbotszeichen anbri... ... 1\n", - "6782 Befestigung Deckel für Batteriefach defekt ... ... 2\n", + " batched_idxs \\\n", + "162 [232, 241, 242, 244, 247, 249, 268, 269, 289, ... \n", + "33 [37, 50, 57, 61, 129, 245, 246, 266, 353, 378,... \n", + "131 [179, 196, 216, 350, 355, 408, 426, 427, 428, ... \n", + "160 [224, 276, 277, 278, 279, 280, 281, 282, 283, ... \n", + "140 [191, 192, 194, 243, 248, 254, 296, 300, 302, ... \n", + "... ... \n", + "2557 [21406] \n", + "2556 [21405] \n", + "2555 [21404] \n", + "2554 [21385] \n", + "6771 [123456] \n", "\n", - "[4545 rows x 5 columns]" + " entry len num_occur \\\n", + "162 Tägliche Wartungstätigkeiten nach Vorgabe des ... 66 92592 \n", + "33 Wöchentliche Sichtkontrolle / Reinigung 39 3108 \n", + "131 Tägliche Überprüfung der Ölabscheider 37 1619 \n", + "160 Wöchentliche Kontrolle der C-Anlagen 36 1265 \n", + "140 Halbjährliche Kontrolle des Stabbreithalters 44 687 \n", + "... ... ... ... \n", + "2557 Fehler 9723 Leistungsversorgung Antrieb defekt 46 1 \n", + "2556 T-Warp-Let-Off1 schleppfehler 29 1 \n", + "2555 Fahrräder wurden gewartet und gereinigt. 40 1 \n", + "2554 Bohrlöcher an Gebots- und Verbotszeichen anbri... 173 1 \n", + "6771 Befestigung Deckel für Batteriefach defekt Hal... 99 2 \n", + "\n", + " assoc_obj_ids num_assoc_obj_ids \n", + "162 [0, 17, 41, 42, 43, 44, 45, 46, 47, 51, 52, 53... 206 \n", + "33 [301, 304, 305, 313, 314, 323, 329, 331, 332, ... 74 \n", + "131 [0, 970, 2134, 2137] 4 \n", + "160 [1352, 1353, 1354, 1684, 1685, 1686, 1687, 168... 11 \n", + "140 [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 6... 166 \n", + "... ... ... \n", + "2557 [211] 1 \n", + "2556 [93] 1 \n", + "2555 [1707] 1 \n", + "2554 [1] 1 \n", + "6771 [306, 326] 2 \n", + "\n", + "[4545 rows x 6 columns]" ] }, - "execution_count": 89, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ret[0]" + "batched" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "8d49b064-4a61-4b34-95ee-2e9ba30208be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "162 Tägliche Wartungstätigkeiten nach Vorgabe des ...\n", + "33 Wöchentliche Sichtkontrolle / Reinigung\n", + "131 Tägliche Überprüfung der Ölabscheider\n", + "160 Wöchentliche Kontrolle der C-Anlagen\n", + "140 Halbjährliche Kontrolle des Stabbreithalters\n", + "1778 Brandschutztechnische Prüfung\n", + "332 Prüfung von: - Scharniere - Dichtung - Schließ...\n", + "104 Täglicher Technikrundgang\n", + "132 Tägliche Kontrolle der Kompressorstationen\n", + "98 Tägliche Kesselhauskontrolle\n", + "Name: entry, dtype: object" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "batched.iloc[:10,1]" ] }, { "cell_type": "code", "execution_count": null, + "id": "c71e23e3-7a56-4d7a-9c05-49d41acce6ee", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa4ebe87-5d40-408d-bb9d-2e386ea28f3f", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "fc2e05b6-95b7-44c0-a014-772a786ce03d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:441: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", + " _torch_pytree._register_pytree_node(\n", + "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", + " _torch_pytree._register_pytree_node(\n" + ] + } + ], + "source": [ + "import spacy\n", + "nlp = spacy.load('de_dep_news_trf')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "1eaf6d3a-c307-4572-a2c4-3e3722a41b6a", + "metadata": {}, + "outputs": [], + "source": [ + "txt = batched.iloc[:10,1].to_list()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "c42457d7-8cbb-4591-8f87-86a34ba26a11", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tägliche Wartungstätigkeiten nach Vorgabe des Maschinenherstellers\n", + "Wöchentliche Sichtkontrolle / Reinigung\n", + "Tägliche Überprüfung der Ölabscheider\n", + "Wöchentliche Kontrolle der C-Anlagen\n", + "Halbjährliche Kontrolle des Stabbreithalters\n", + "Brandschutztechnische Prüfung\n", + "Prüfung von: - Scharniere - Dichtung - Schließvorrichtung - Schloß - Beschlag - allgemeine Funktion - Schmierung - Festhaltevorrichtung\n", + "Täglicher Technikrundgang\n", + "Tägliche Kontrolle der Kompressorstationen\n", + "Tägliche Kesselhauskontrolle\n" + ] + } + ], + "source": [ + "for doc in nlp.pipe(txt, batch_size=10):\n", + " print(doc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d361b861-6277-42b4-921b-3510b1c7cb6a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a93ecd92-eece-41c9-bba0-e1bf3611ff5c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a729ea4-5b88-4c05-aa2f-c09bc79bc901", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 19, "id": "ee0fea45-c26b-4253-b7f6-95ad70d0205a", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-06-05 07:20:18 +0000 | io:INFO | Loaded file successfully.\n" + ] + } + ], + "source": [ + "file = files[1]\n", + "raw = load_pickle(file)[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "09d4777e-2d87-4798-a159-a57423ae7501", + "metadata": {}, + "outputs": [], + "source": [ + "idxs = batched.iloc[0,0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "483dc38b-220b-4154-b784-9362e8169083", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "55ad9530-9cde-4049-8949-c8b31ddeb384", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "| \n", + " | VorgangsID | \n", + "ObjektID | \n", + "HObjektText | \n", + "ObjektArtID | \n", + "ObjektArtText | \n", + "VorgangsTypID | \n", + "VorgangsTypName | \n", + "VorgangsDatum | \n", + "VorgangsStatusId | \n", + "VorgangsPrioritaet | \n", + "VorgangsBeschreibung | \n", + "VorgangsOrt | \n", + "VorgangsArtText | \n", + "ErledigungsDatum | \n", + "ErledigungsArtText | \n", + "ErledigungsBeschreibung | \n", + "MPMelderArbeitsplatz | \n", + "MPAbteilungBezeichnung | \n", + "Arbeitsbeginn | \n", + "ErstellungsDatum | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 232 | \n", + "151991 | \n", + "121 | \n", + "217 C , Webmaschine, DL 280 EMS Breite 280 | \n", + "3 | \n", + "Luft-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2022-03-02 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2022-03-02 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2022-03-02 | \n", + "2022-02-17 | \n", + "
| 241 | \n", + "155717 | \n", + "187 | \n", + "246, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2022-04-01 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2022-04-01 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2022-04-01 | \n", + "2022-02-17 | \n", + "
| 242 | \n", + "152507 | \n", + "177 | \n", + "204 S SI , Webmaschine, DL 280 EMS Breite 220 | \n", + "3 | \n", + "Luft-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2022-04-09 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2022-04-09 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2022-04-09 | \n", + "2022-02-17 | \n", + "
| 244 | \n", + "247625 | \n", + "251 | \n", + "101, Webmaschine, OM 220 EOS | \n", + "3 | \n", + "Luft-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2022-04-19 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2022-04-19 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2022-04-19 | \n", + "2022-04-14 | \n", + "
| 247 | \n", + "254408 | \n", + "251 | \n", + "101, Webmaschine, OM 220 EOS | \n", + "3 | \n", + "Luft-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2022-05-07 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2022-05-07 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2022-05-07 | \n", + "2022-04-28 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 123434 | \n", + "571453 | \n", + "3212 | \n", + "A072, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2023-06-28 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2023-06-28 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2023-06-28 | \n", + "2023-05-26 | \n", + "
| 123435 | \n", + "571453 | \n", + "187 | \n", + "246, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2023-06-28 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2023-06-28 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2023-06-28 | \n", + "2023-05-26 | \n", + "
| 123436 | \n", + "571453 | \n", + "1792 | \n", + "A057, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2023-06-28 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2023-06-28 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2023-06-28 | \n", + "2023-05-26 | \n", + "
| 123437 | \n", + "571453 | \n", + "186 | \n", + "245 J, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2023-06-28 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2023-06-28 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2023-06-28 | \n", + "2023-05-26 | \n", + "
| 123438 | \n", + "571453 | \n", + "2473 | \n", + "A056, Webmaschine Jacquard, | \n", + "6 | \n", + "Jacquard-Webmaschine | \n", + "1 | \n", + "Wartung | \n", + "2023-06-28 | \n", + "5 | \n", + "0 | \n", + "Tägliche Wartungstätigkeiten nach Vorgabe des ... | \n", + "NaN | \n", + "Tägliche Interne Wartungstätigkeiten Weberei | \n", + "2023-06-28 | \n", + "Intern UTT - Sichtkontrolle | \n", + "Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... | \n", + "NaN | \n", + "NaN | \n", + "2023-06-28 | \n", + "2023-05-26 | \n", + "
92592 rows × 20 columns
\n", + "