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 @@ " \n", " \n", " 162\n", + " [232, 241, 242, 244, 247, 249, 268, 269, 289, ...\n", " Tägliche Wartungstätigkeiten nach Vorgabe des ...\n", " 66\n", " 92592\n", @@ -113,6 +460,7 @@ " \n", " \n", " 33\n", + " [37, 50, 57, 61, 129, 245, 246, 266, 353, 378,...\n", " Wöchentliche Sichtkontrolle / Reinigung\n", " 39\n", " 3108\n", @@ -121,6 +469,7 @@ " \n", " \n", " 131\n", + " [179, 196, 216, 350, 355, 408, 426, 427, 428, ...\n", " Tägliche Überprüfung der Ölabscheider\n", " 37\n", " 1619\n", @@ -129,6 +478,7 @@ " \n", " \n", " 160\n", + " [224, 276, 277, 278, 279, 280, 281, 282, 283, ...\n", " Wöchentliche Kontrolle der C-Anlagen\n", " 36\n", " 1265\n", @@ -137,6 +487,7 @@ " \n", " \n", " 140\n", + " [191, 192, 194, 243, 248, 254, 296, 300, 302, ...\n", " Halbjährliche Kontrolle des Stabbreithalters\n", " 44\n", " 687\n", @@ -150,9 +501,11 @@ " ...\n", " ...\n", " ...\n", + " ...\n", " \n", " \n", - " 2559\n", + " 2557\n", + " [21406]\n", " Fehler 9723 Leistungsversorgung Antrieb defekt\n", " 46\n", " 1\n", @@ -160,15 +513,17 @@ " 1\n", " \n", " \n", - " 2558\n", - " T-Warp-Let-Off1 schleppfehler\n", - " 30\n", + " 2556\n", + " [21405]\n", + " T-Warp-Let-Off1 schleppfehler\n", + " 29\n", " 1\n", " [93]\n", " 1\n", " \n", " \n", - " 2557\n", + " 2555\n", + " [21404]\n", " Fahrräder wurden gewartet und gereinigt.\n", " 40\n", " 1\n", @@ -176,7 +531,8 @@ " 1\n", " \n", " \n", - " 2556\n", + " 2554\n", + " [21385]\n", " Bohrlöcher an Gebots- und Verbotszeichen anbri...\n", " 173\n", " 1\n", @@ -184,49 +540,690 @@ " 1\n", " \n", " \n", - " 6782\n", - " Befestigung Deckel für Batteriefach defekt ...\n", - " 106\n", + " 6771\n", + " [123456]\n", + " Befestigung Deckel für Batteriefach defekt Hal...\n", + " 99\n", " 2\n", " [306, 326]\n", " 2\n", " \n", " \n", "\n", - "

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", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VorgangsIDObjektIDHObjektTextObjektArtIDObjektArtTextVorgangsTypIDVorgangsTypNameVorgangsDatumVorgangsStatusIdVorgangsPrioritaetVorgangsBeschreibungVorgangsOrtVorgangsArtTextErledigungsDatumErledigungsArtTextErledigungsBeschreibungMPMelderArbeitsplatzMPAbteilungBezeichnungArbeitsbeginnErstellungsDatum
232151991121217 C , Webmaschine, DL 280 EMS Breite 2803Luft-Webmaschine1Wartung2022-03-0250Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2022-03-02Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2022-03-022022-02-17
241155717187246, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2022-04-0150Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2022-04-01Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2022-04-012022-02-17
242152507177204 S SI , Webmaschine, DL 280 EMS Breite 2203Luft-Webmaschine1Wartung2022-04-0950Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2022-04-09Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2022-04-092022-02-17
244247625251101, Webmaschine, OM 220 EOS3Luft-Webmaschine1Wartung2022-04-1950Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2022-04-19Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2022-04-192022-04-14
247254408251101, Webmaschine, OM 220 EOS3Luft-Webmaschine1Wartung2022-05-0750Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2022-05-07Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2022-05-072022-04-28
...............................................................
1234345714533212A072, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2023-06-2850Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2023-06-28Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2023-06-282023-05-26
123435571453187246, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2023-06-2850Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2023-06-28Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2023-06-282023-05-26
1234365714531792A057, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2023-06-2850Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2023-06-28Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2023-06-282023-05-26
123437571453186245 J, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2023-06-2850Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2023-06-28Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2023-06-282023-05-26
1234385714532473A056, Webmaschine Jacquard,6Jacquard-Webmaschine1Wartung2023-06-2850Tägliche Wartungstätigkeiten nach Vorgabe des ...NaNTägliche Interne Wartungstätigkeiten Weberei2023-06-28Intern UTT - SichtkontrolleSichtkontrolle durchgeführt\\n\\nAuffälligkeiten...NaNNaN2023-06-282023-05-26
\n", + "

92592 rows × 20 columns

\n", + "
" + ], + "text/plain": [ + " VorgangsID ObjektID HObjektText \\\n", + "232 151991 121 217 C , Webmaschine, DL 280 EMS Breite 280 \n", + "241 155717 187 246, Webmaschine Jacquard, \n", + "242 152507 177 204 S SI , Webmaschine, DL 280 EMS Breite 220 \n", + "244 247625 251 101, Webmaschine, OM 220 EOS \n", + "247 254408 251 101, Webmaschine, OM 220 EOS \n", + "... ... ... ... \n", + "123434 571453 3212 A072, Webmaschine Jacquard, \n", + "123435 571453 187 246, Webmaschine Jacquard, \n", + "123436 571453 1792 A057, Webmaschine Jacquard, \n", + "123437 571453 186 245 J, Webmaschine Jacquard, \n", + "123438 571453 2473 A056, Webmaschine Jacquard, \n", + "\n", + " ObjektArtID ObjektArtText VorgangsTypID VorgangsTypName \\\n", + "232 3 Luft-Webmaschine 1 Wartung \n", + "241 6 Jacquard-Webmaschine 1 Wartung \n", + "242 3 Luft-Webmaschine 1 Wartung \n", + "244 3 Luft-Webmaschine 1 Wartung \n", + "247 3 Luft-Webmaschine 1 Wartung \n", + "... ... ... ... ... \n", + "123434 6 Jacquard-Webmaschine 1 Wartung \n", + "123435 6 Jacquard-Webmaschine 1 Wartung \n", + "123436 6 Jacquard-Webmaschine 1 Wartung \n", + "123437 6 Jacquard-Webmaschine 1 Wartung \n", + "123438 6 Jacquard-Webmaschine 1 Wartung \n", + "\n", + " VorgangsDatum VorgangsStatusId VorgangsPrioritaet \\\n", + "232 2022-03-02 5 0 \n", + "241 2022-04-01 5 0 \n", + "242 2022-04-09 5 0 \n", + "244 2022-04-19 5 0 \n", + "247 2022-05-07 5 0 \n", + "... ... ... ... \n", + "123434 2023-06-28 5 0 \n", + "123435 2023-06-28 5 0 \n", + "123436 2023-06-28 5 0 \n", + "123437 2023-06-28 5 0 \n", + "123438 2023-06-28 5 0 \n", + "\n", + " VorgangsBeschreibung VorgangsOrt \\\n", + "232 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "241 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "242 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "244 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "247 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "... ... ... \n", + "123434 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "123435 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "123436 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "123437 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "123438 Tägliche Wartungstätigkeiten nach Vorgabe des ... NaN \n", + "\n", + " VorgangsArtText ErledigungsDatum \\\n", + "232 Tägliche Interne Wartungstätigkeiten Weberei 2022-03-02 \n", + "241 Tägliche Interne Wartungstätigkeiten Weberei 2022-04-01 \n", + "242 Tägliche Interne Wartungstätigkeiten Weberei 2022-04-09 \n", + "244 Tägliche Interne Wartungstätigkeiten Weberei 2022-04-19 \n", + "247 Tägliche Interne Wartungstätigkeiten Weberei 2022-05-07 \n", + "... ... ... \n", + "123434 Tägliche Interne Wartungstätigkeiten Weberei 2023-06-28 \n", + "123435 Tägliche Interne Wartungstätigkeiten Weberei 2023-06-28 \n", + "123436 Tägliche Interne Wartungstätigkeiten Weberei 2023-06-28 \n", + "123437 Tägliche Interne Wartungstätigkeiten Weberei 2023-06-28 \n", + "123438 Tägliche Interne Wartungstätigkeiten Weberei 2023-06-28 \n", + "\n", + " ErledigungsArtText \\\n", + "232 Intern UTT - Sichtkontrolle \n", + "241 Intern UTT - Sichtkontrolle \n", + "242 Intern UTT - Sichtkontrolle \n", + "244 Intern UTT - Sichtkontrolle \n", + "247 Intern UTT - Sichtkontrolle \n", + "... ... \n", + "123434 Intern UTT - Sichtkontrolle \n", + "123435 Intern UTT - Sichtkontrolle \n", + "123436 Intern UTT - Sichtkontrolle \n", + "123437 Intern UTT - Sichtkontrolle \n", + "123438 Intern UTT - Sichtkontrolle \n", + "\n", + " ErledigungsBeschreibung \\\n", + "232 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "241 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "242 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "244 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "247 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "... ... \n", + "123434 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "123435 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "123436 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "123437 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "123438 Sichtkontrolle durchgeführt\\n\\nAuffälligkeiten... \n", + "\n", + " MPMelderArbeitsplatz MPAbteilungBezeichnung Arbeitsbeginn \\\n", + "232 NaN NaN 2022-03-02 \n", + "241 NaN NaN 2022-04-01 \n", + "242 NaN NaN 2022-04-09 \n", + "244 NaN NaN 2022-04-19 \n", + "247 NaN NaN 2022-05-07 \n", + "... ... ... ... \n", + "123434 NaN NaN 2023-06-28 \n", + "123435 NaN NaN 2023-06-28 \n", + "123436 NaN NaN 2023-06-28 \n", + "123437 NaN NaN 2023-06-28 \n", + "123438 NaN NaN 2023-06-28 \n", + "\n", + " ErstellungsDatum \n", + "232 2022-02-17 \n", + "241 2022-02-17 \n", + "242 2022-02-17 \n", + "244 2022-04-14 \n", + "247 2022-04-28 \n", + "... ... \n", + "123434 2023-05-26 \n", + "123435 2023-05-26 \n", + "123436 2023-05-26 \n", + "123437 2023-05-26 \n", + "123438 2023-05-26 \n", + "\n", + "[92592 rows x 20 columns]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw.loc[idxs]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05775885-cf62-482c-9628-fbc976df9656", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29d00943-5c0e-4f5d-81b6-d566dbbcf89d", + "metadata": {}, "outputs": [], "source": [] }, @@ -655,7 +1652,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/test-notebooks/lang_main_config.toml b/test-notebooks/lang_main_config.toml new file mode 100644 index 0000000..c694e25 --- /dev/null +++ b/test-notebooks/lang_main_config.toml @@ -0,0 +1,56 @@ +# lang_main: Config file + +[paths] +inputs = './inputs/' +results = './results/test_new2/' +dataset = './01_2_Rohdaten_neu/Export4.csv' +#results = './results/Export7/' +#dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv' +#results = './results/Export7_trunc/' +#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv' + +[control] +preprocessing = true +preprocessing_skip = false +token_analysis = false +token_analysis_skip = false +graph_postprocessing = false +graph_postprocessing_skip = false +time_analysis = false +time_analysis_skip = false + +#[export_filenames] +#filename_cossim_filter_candidates = 'CosSim-FilterCandidates' + +[preprocess] +filename_cossim_filter_candidates = 'CosSim-FilterCandidates' +date_cols = [ + "VorgangsDatum", + "ErledigungsDatum", + "Arbeitsbeginn", + "ErstellungsDatum", +] +threshold_amount_characters = 5 +threshold_similarity = 0.8 + +[graph_postprocessing] +threshold_edge_weight = 150 + +[time_analysis.uniqueness] +threshold_unique_texts = 4 +criterion_feature = 'HObjektText' +feature_name_obj_id = 'ObjektID' + +[time_analysis.model_input] +input_features = [ + 'VorgangsTypName', + 'VorgangsArtText', + 'VorgangsBeschreibung', +] +activity_feature = 'VorgangsTypName' +activity_types = [ + 'Reparaturauftrag (Portal)', + 'Störungsmeldung', +] +threshold_num_acitivities = 1 +threshold_similarity = 0.8 \ No newline at end of file diff --git a/test-notebooks/timeline_analysis.ipynb b/test-notebooks/timeline_analysis.ipynb index 86d4127..d0b6e9d 100644 --- a/test-notebooks/timeline_analysis.ipynb +++ b/test-notebooks/timeline_analysis.ipynb @@ -2327,7 +2327,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/tests/lang_main_config.toml b/tests/lang_main_config.toml index 9f85e7c..c7fb736 100644 --- a/tests/lang_main_config.toml +++ b/tests/lang_main_config.toml @@ -1,9 +1,9 @@ # lang_main: Config file [paths] -inputs = '../inputs/' -results = './results/test_new2/' -dataset = './01_2_Rohdaten_neu/Export4.csv' +inputs = '../scripts/inputs/' +results = '../scripts/results/test_new2/' +dataset = '../data/02_202307/Export4.csv' #results = './results/Export7/' #dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv' #results = './results/Export7_trunc/'